Top Banner
Jun 10, 2022 Analisis dan Perancangan Algoritma Kuliah 5 : Looping iteratif rekursif E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan
33

Analisis dan Perancangan Algoritma Kuliah 5 : Looping iteratif rekursif

Feb 04, 2016

Download

Documents

carney

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Apr 22, 2023

Analisis dan PerancanganAlgoritma

Kuliah 5 : Looping iteratif rekursif

E. Haodudin Nurkifli

Teknik Informatika

Universitas Ahmad Dahlan

Page 2: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 2

Looping

Looping / perulangan

Komputer dapat melakukang perulangan sangat cepat

Perlu mempelajari algoritma perulangan

Ada 3 struktur perulangan

1. Struktur for

2. Sturktur while

3. Sturktur repeat

Page 3: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 4: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 4

Algoritma for menurun

for i akhir down to awal do

aksi

End for

Page 5: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 6: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 6

Algoritma for menurun

Algoritma cetak angka 1,2,..8

Deklarasi

k : integer

Deskripsi

for k 8 downto 1 do

write (k)

end for

Page 7: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 8: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 9: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 9

Struktur repeat

Sturktur repaeat memiliki makna yang sama dengan while

Algoritma repeat

Repeat

aksi

Until (kondisi)

Page 10: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 10

Contoh

Algoritma catak angka 1, 2, 4, ..8

Deklarasi

k integer

Deskripsi

k 1

repeat

write (k)

k = k + 1

until (k > 8)

Page 11: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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.

Page 12: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 13: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 13

  FOR counter : awal TO akhir

SS 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)

Page 14: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 14

Contoh :

Berapa banyak langkah dari

FOR i = 1 TO n

x : = x + 5

y : = y + x

Page 15: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 16: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

1

s

awalakhir

Page 17: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 17

Page 18: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 18

Contoh :

Berapa banyak langkah dari

FOR i = 0,5 TO 7,1 STEP 0,3

x := x + i

y := y + j

Page 19: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 19

Page 20: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 20

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 :

Page 21: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 21

Function FAK (n : integer) : integer

FAK=1

For i = 1 TO n

FAK = FAK * i

NEXT i

END FAK

Page 22: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 23: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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 :

Page 24: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 24

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

Page 25: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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 2 3

5 2+3=5 3 5

Page 26: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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 :

Page 27: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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 :

Page 28: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 28

Page 29: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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

Page 30: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 30

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

Page 31: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 31

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

Page 32: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 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 :

Page 33: Analisis dan Perancangan Algoritma Kuliah  5  :  Looping iteratif rekursif

Eko AB – Analisis dan Perancangan Algoritma 33