1 / 33

Analisis dan Perancangan Algoritma Kuliah 5 : Looping iteratif rekursif

Analisis dan Perancangan Algoritma Kuliah 5 : Looping iteratif rekursif. E . Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan. Looping. Looping / perulangan Komputer dapat melakukang perulangan sangat cepat Perlu mempelajari algoritma perulangan

carney
Télécharger la présentation

Analisis dan Perancangan Algoritma Kuliah 5 : Looping iteratif rekursif

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analisis dan PerancanganAlgoritmaKuliah 5 : Looping iteratif rekursif E. Haodudin Nurkifli TeknikInformatika Universitas Ahmad Dahlan

  2. Looping Looping / perulangan Komputer dapat melakukang perulangan sangat cepat Perlu mempelajari algoritma perulangan Ada 3 struktur perulangan • Struktur for • Sturktur while • Sturktur repeat

  3. Sturktur perulangan • Struktur for 1.struktur for digunakan untuk menghasilkan pengulangan sejumlah kali yang dispesifikasikan 2. jumlah pengulangan di ketahui sebanyak eksekusi 3. dibutuhkan variable dan counter Algorimta for menaik For i  awal to akhir do aksi End for

  4. Algoritma for menurun for i  akhir down to awal do aksi End for

  5. Contoh algoritma Algoritma mencetak angka 1,2,..8 Algoritma for menaik Deklarasi k : integer Deskripsi for k  1 to 8 do { ulangi sebanyak 8 kali} write (k); endfor

  6. Algoritma for menurun Algoritma cetak angka 1,2,..8 Deklarasi k : integer Deskripsi for k  8 downto 1 do write (k) end for

  7. Struktur while • Aksi berulang terus pada kondisi true dan berhenti pada kondisi false • Perulangan harus berhenti, ketika perulangan tidak berhenti menandakan algoritma salah Algoritma While kondisi do aksi Endwahile

  8. Contoh Algoritma cetak angka 1,2,..8 Deklarasi k  integer Deskripsi k  1 while (k <= 8 ) do write (k) k  k+1 end while

  9. Struktur repeat Sturktur repaeat memiliki makna yang sama dengan while Algoritma repeat Repeat aksi Until (kondisi)

  10. Contoh Algoritma catak angka 1, 2, 4, ..8 Deklarasi k  integer Deskripsi k  1 repeat write (k) k = k + 1 until (k > 8)

  11. Untuk memantapkan konsep perulangan silahkan kerjakan latihan • Buatlah algoritma mencetak kata “ hallo word” sebanyak 10 kali dengan menggunakan sturktur for dan sturktur while do • Buatlah algoritma mencetak bilangan ganjil dari angka 0 sampai 10 dengan menggunakan sturktur for, while dan repeat.

  12. Analisis looping While/ Repeat tidak mudah untuk dianalisis karena banyak langkah tidak pasti. Yang paling mungkin dianalisis adalah For loop. Banyak Langkah untuk Statement FOR Kasus I: Counter : integer Step : 1 Statement S mempunyai banyak langkah yang tidak bergantung nilai counter

  13.   FOR counter : awal TO akhir S S dieksekusi sebanyak akhir – awal +1 kali Hidden : Counter ≤ Akhir S dieksekusi sebanyak akhir – awal + 2 kali Counter = counter + 1 S dieksekusi sebanyak akhir – awal + 1 kali Banyak Langkah = (akhir – awal + 2) + (akhir – awal + 1) (p + 1)

  14. Contoh : Berapa banyak langkah dari FOR i = 1 TO n x : = x + 5 y : = y + x

  15. Penyelesaian : Banyak langkahnya = (akhir – awal + 2) + (akhir – awal + 1) (p + 1) = (n – 1 + 2) + (n – 1 + 1) (2 + 1) = (n + 1) + (n)(3) = n + 1 + 3n = 4n + 1

  16. Kasus II : seperti kasus I tetapi mempunyai STEP = s s dieksekusi sebanyakatau ((akhir – awal) div s + 1) Contoh : Berapa banyak langkah dari FOR i:= j TO n STEP 3 x := x + i y := y + j

  17. Contoh : Berapa banyak langkah dari FOR i = 0,5 TO 7,1 STEP 0,3 x := x + i y := y + j

  18. TEKNIK ITERATIF & REKURSIF • TEKNIK ITERATIF teknik pembuatan algoritma dengan pemanggilan procedure beberapa kali atau hingga suatu kondisi tertentu terpenuhi Contoh Teknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n, adalah sebagai berikut :

  19. Function FAK (n : integer) : integer FAK=1 For i = 1 TO n FAK = FAK * i NEXT i END FAK

  20. Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka : FAK = 1, kemudian

  21. Contoh : BARISAN BILANGAN FIBBONACI → 1, 1, 2, 3, 5, 8, 13, 21, . . . Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :

  22. Set x, y, n, i, f : integer x ← 1 ; y ← 1 If n 〉 2 then begin for i ← 3 to n do begin F ← x + y x ← y y ← F end else F ← x Write(F) End

  23. Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka : x=1, y=1, kemudian

  24. TEKNIK REKURSIF Teknik Rekursif merupakan salah satu cara pembuatan algoritma dengan pemanggilan procedure atau function yang sama Contoh : Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n, adalah sebagai berikut :

  25. Function FAK (n : integer) : integer If n := 0 then FAK := 1 Else FAK := n * FAK(n-1) Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka :

  26. Contoh : BARISAN BILANGAN FIBBONACI → 1, 1, 2, 3, 5, 8, 13, 21, . . . Teknik Rekursif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut : Procedure F(n : integer) : integer If n ≤ 2 then F(n) = 1 else F(n) = F(n-1) + F(n-2) Endif End

  27. Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka :

  28. Perbedaan Antara Teknik Iteratif dan Rekursif : • ITERATIF 1.Tidak ada variabel lokal baru 2.Program tidak sederhana • REKURSIF 1.Ada variabel lokal baru 2.Program menjadi lebih sederhana

  29. Permainan menara hanoi latihan : Contoh paling umum dari penggunaan teknik rekursif adalah pada permainan menara Hanoi. Berdasarkan legenda, pertama kali dimainkan secara manual oleh seorang pendeta Budha di Hanoi, sehingga permainan ini disebut Menara Hanoi. Dalam permainan ini, akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke tonggak lainnya, dengan diperbolehkan menggunakan (melewati) sebuah tonggak bantuan. Aturan permainannya adalah semua piringan pada tonggak A akan dipindahkan ke tonggak C (dapat dengan melewati tonggak bantuan B), dengan ketentuan bahwa pemindahan piringan dilakukan satu per satu dan piringan yang lebih besar tidak boleh diletakan di atas piringan yang lebih kecil. Untuk jelasnya lihat gambar berikut :

More Related