Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan

Presentasi serupa


Presentasi berjudul: "E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan"— Transcript presentasi:

1 E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan
Analisis dan Perancangan Algoritma Kuliah 5 : Looping iteratif rekursif E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan 2-Jul-18

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,
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 : = (n – 1 + 2) + (n – 1 + 1) (2 + 1) = (n + 1) + (n)(3)
Banyak langkahnya = (akhir – awal + 2) + (akhir – awal + 1) (p + 1) = (n – 1 + 2) + (n – 1 + 1) (2 + 1) = (n + 1) + (n)(3) = n n = 4n + 1

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

17

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

19

20 TEKNIK ITERATIF & REKURSIF
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 :

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

22 Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka : FAK = 1, kemudian i FAK 1 1*1 = 1 2 1*2 = 2 3 2*3 = 6 4 6*4 = 24 5 24*5= 120

23 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 :

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

25 Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka : x=1, y=1, kemudian i F x y 3 1+1=2 1 2 4 1+2=3 5 2+3=5

26 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 :

27 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 :

28

29 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

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

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

32 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 :

33


Download ppt "E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan"

Presentasi serupa


Iklan oleh Google