Analisis Algoritma Non Rekursif Dan Rekursiffix

24
ANALISIS ALGORITMA NON REKURSIF DAN REKURSIF KELOMPOK 2A I GUSTI BAGUS HADI WIDHINUGRAHA (1208605010) NI PUTU SINTYA DEWI (1208605017) LUH GEDE PUTRI SUARDANI (1208605018) I PUTU INDRA MAHENDRA PRIYADI (1208605020) DESAIN ANALISIS DAN ALGORITMA

description

algoritma non rekrusif

Transcript of Analisis Algoritma Non Rekursif Dan Rekursiffix

  • ANALISIS ALGORITMA NON REKURSIF DAN REKURSIF

    KELOMPOK 2AI GUSTI BAGUS HADI WIDHINUGRAHA(1208605010)NI PUTU SINTYA DEWI (1208605017)LUH GEDE PUTRI SUARDANI(1208605018)I PUTU INDRA MAHENDRA PRIYADI(1208605020)DESAIN ANALISIS DAN ALGORITMA

  • Algoritma Non Rekursif

  • Efisiensi Waktu Algoritma NonrecursiveTentukan parameter n yang menunjukkan ukuran inputTentukan operasi dasar algoritma (loop terdalam)Periksa apakah operasi dasar dijalankan hanya bergantung pada ukuran input. Jika tergantung bukan hanya pada ukuran input saja, kasus terburuk, rata-rata, dan jika perlu efisiensi kasus terbaik harus diselidiki secara terpisah.Tentukan rumus sigma yang menunjukkan berapa kali operasi dasar dijalankan C(n)Selesaikan rumus sigma untuk menghitung banyaknya operasi dasar dijalankan

  • Contoh:Perkalian MatriksMax Element

  • Contoh1. Perkalian Matriks Algoritma PerkalianMatrik(A[0n-1,0n-1], B[0n-1,0n-1])//mengalikan 2 matriks persegi berordo n //input: 2 matriks A dan B//output: Matriks C = AB

    for i 0 to n - 1 do for j 0 to n 1 do C[i,j] 0,0for k 0 to n 1 do C[i,j] C[i,j] + A[i,k] * B[k,j]return C

  • Contoh1. Analisis(1)Ukuran input = matriks ordo nLoop terdalam = perkalian dan penambahan calon operasi dasarPerkalian dan pertambahan dilakukan tepat sekali dalam setiap perulangan, sehingga kita tidak harus memilih antara dua operasi Jumlah dari total perkalian

  • Contoh1. Analisis (2)Perkiraan waktu berjalannya algoritma pada mesin tertentu

    Perkiraan yang lebih akurat (termasuk penambahan)

    cm:waktu satu perkalianca:waktu satu tambahan

  • Contoh2. Algoritma MaxElementBerikut adalah algoritma untuk mencari elemen terbesar dari sekumpulan n bilangan:

    ALGORITHM MaxElement (A[0..n-1])//Input: Array A[0..n-1] dari bilangan real//Output: Nilai dari elemen terbesar pada array Amax A[0]for i 1 to n-1 doif A[i] > maxmax A[i]return max

  • Contoh2. Analisis (1) Ukuran input dari algoritma ini adalah jumlah elemen pada array, yaitu n.Operasi dasar yang paling banyak dieksekusi ada dalam loop for.Ada 2 operasi dalam loop: perbandingan A[i] >max dan assignment max A[i].Karena operasi perbandingan dieksekusi pada tiap iterasi (dan operasi assignment tidak), maka perbandingan dijadikan sebagai operasi dasar.

  • Contoh2. Analisis (2)

  • Algoritma Rekursif

  • Bentuk RekursifSuatu subrutin/fungsi yang memanggil dirinya sendiri. Bentuk dimana pemanggilan fungsi terdapat dalam body fungsiDengan rekursi, program akan lebih mudah dilihat

  • Tujuan Bentuk RekursifMenyederhanakan penulisan programMenggantikan bentuk iterasi

  • Syarat Bentuk RekursifAda kondisi terminal (basis) Ada subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence)

  • Efisiensi Waktu Algoritma RecursiveLangkah-langkah dalam analisis matematis dari algoritma nonrekursif:Tentukan parameter n yang menunjukkan ukuran inputTentukan operasi dasar algoritma (loop terdalam)Periksa apakah operasi dasar dijalankan hanya bergantung pada ukuran input. Jika tergantung bukan hanya pada ukuran input saja, kasus terburuk, rata-rata, dan jika perlu efisiensi kasus terbaik harus diselidiki secara terpisah.Menentukan relasi rekurens, dengan kondisi awal yang tepat untuk berapa kali algoritma akan dijalankanMemecahkan atau memastikan urutan solusi rekurens

  • Contoh Menghitung faktorialMenar hanoi

  • Menghitung FaktorialFunction Faktorial (input n : integer) integer{menghasilkan nilai n!, n tidak negatif}

    Algoritma :

    If n=0 thenReturn 1ElseReturn ( n*faktorial (n-1) )Endif

  • Analisis 1Ukuran input n = nKompleksitas waktu:Untuk kasus basis, tidak ada operasi perkalian T(0) = 0 (kondisi awal) Untuk kasus rekurens, kompleksitas waktu diukur dari jumlah perkalian (1) ditambah kompleksitas waktu untuk faktorial (n-1)

  • Analisis 2Kompleksitas waktu T(n)=1+T(n-1)T(n)=1+1+T(n-2)=2+T(n-2)T(n)=2+1+T(n-3)=3+T(n-3)= = = n+T(0)= n + 0 Jadi T(n) = n T(n) O(n)

  • Menara hanoiBagaimana memindahkan seluruh piringan tersebut ke sebuah tiang yang lain (dari A ke B); setiap kali hanya satu piringan yang boleh dipindahkan, tetapi tidak boleh ada piringan besar di atas piringan kecil. Ada tiang perantara C. Kata pendeta, jika pemindahan berhasil dilakukan, maka DUNIA KIAMAT !!!

  • Algoritma Procedure Hanoi (input n, A, B, C:integer) Algoritma If n=1 then Write (Pindahkan piringan dari,A,ke,B) Else Hanoi(n-1,A,C,B) Writeln(Pindahkan piringan dari,A,ke,B) Hanoi(n-1,C,B,A) Endif

    Relasi Rekurens

  • T(n)=2n+1 adalah jumlah seluruh perpindahan piringan dari satu tiang ke tiang lainnya. Bila terdapat 64 tumpukan piringan da perpindahan 1 piringan butuh waktu 1 detik, maka waktu yang dibutuhkan : detik 2641 detik = 10.446.744.073.709.551.615 detik= kira-kira 600 milyar tahun (???!!!)

  • Terima KasihThank YouDankeGratiasMerciKiitosGrazias

    2. Sebagai aturan, operasi dasar terletak di loop yang terdalam3. Periksa apakah jumlah dari waktu operasi dijalankan hanya bergantung pada ukuran masukan atau tidak, jika ya tambahkan kasus terburuk, rata2, kasus terbaik.4. Temukan berapa kali operasi dasar algoritma ini dijalankan5. Menggunakan rumus standar dan aturan manipulasi penjumlahan, *2. Sebagai aturan, operasi dasar terletak di loop yang terdalam3. Periksa apakah jumlah dari waktu operasi dijalankan hanya bergantung pada ukuran masukan atau tidak, jika ya tambahkan kasus terburuk, rata2, kasus terbaik.4. Temukan berapa kali operasi dasar algoritma ini dijalankan5. Menggunakan rumus standar dan aturan manipulasi penjumlahan, *