Jun 10, 2022 Analisis dan Perancangan Algoritma Kuliah 5 : Looping iteratif rekursif E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan
Feb 04, 2016
Apr 22, 2023
Analisis dan PerancanganAlgoritma
Kuliah 5 : Looping iteratif rekursif
E. Haodudin Nurkifli
Teknik Informatika
Universitas Ahmad Dahlan
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
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
Eko AB – Analisis dan Perancangan Algoritma 4
Algoritma for menurun
for i akhir down to awal do
aksi
End for
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
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
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
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
Eko AB – Analisis dan Perancangan Algoritma 9
Struktur repeat
Sturktur repaeat memiliki makna yang sama dengan while
Algoritma repeat
Repeat
aksi
Until (kondisi)
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)
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.
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
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)
Eko AB – Analisis dan Perancangan Algoritma 14
Contoh :
Berapa banyak langkah dari
FOR i = 1 TO n
x : = x + 5
y : = y + x
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
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
Eko AB – Analisis dan Perancangan Algoritma 17
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
Eko AB – Analisis dan Perancangan Algoritma 19
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 :
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
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
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 :
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
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
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 :
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 :
Eko AB – Analisis dan Perancangan Algoritma 28
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
Eko AB – Analisis dan Perancangan Algoritma 30
Gambaran jalannya proses algoritma tersebut adalah sebagai berikut : Misal n = 5, maka :
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
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 :
Eko AB – Analisis dan Perancangan Algoritma 33