Anda di halaman 1dari 16

Struktur Rekursif

Dyah Darma Andayani


Perulangan Rekursif dan Perulangan
Iteratif
 Rekursif adalah suatu proses yang bisa memanggil dirinya sendiri .
 Perulangan rekursif merupakan salah satu metode didalam
pemrograman yang mana dalam sebuah fungsi terdapat intruksi
yang memanggil fungsi itu sendri, atau lebih sering disebut
memanggil dirinya sendiri.

 Perulangan iteratif merupakan perulangan yang melakukan proses


perulangan terhadap sekelompok instruksi. Perulangan dilakukan
dalam batasan syarat tertentu. Ketika syarat tersebut tidak
terpenuhi lagi maka perulangan akan terhenti.
 Persamaan :
 Iteratif dan rekursif merupakan metode atau teknik
didalam perulangan(looping)
 Sama-sama memiliki bagian yang berfungsi sebagai batas
dalam sebuah perulangan

 Perbedaan :
Iteratif dalam melakukan perulangan membutuhkan suatu
instruksi program seperti for, repeat until dan while do,
sedangkan rekursi tidak memakai instruksi program seperti
itu. Cukup dengan fungsi tersebut.
Contoh Penggunaan Proses
Rekursif
 Masalah : Memotong roti tawar tipis-tipis sampai habis.
 Algoritma :
1. Jika roti sudah habis atau potongannya sudah paling tipis
maka pemotongan roti selesai.
2. Jika roti masih bisa dipotong, potong tipis dari tepi roti
tersebut.
3. Lakukan prosedur 1 dan 2 untuk sisa potongannya.
Contoh Fungsi Rekursif
 Fungsi Pangkat
 Faktorial
 Deret Fibonacci
 Menara Hanoi
Fungsi Pangkat
 Menghitung 10 pangkat n dengan menggunakan konsep
rekursif.
 Secara notasi pemrograman dapat dituliskan sebagai berikut :
100 = 1.......................................(1)
10n = 10. 10n-1..............................(2)
Contoh : 3 2
10 = 10. 10

102 = 10. 101

101 = 10. 100

100 = 1
Faktorial
 0!=1
 N ! = N x (N-1) ! Untuk N > 0
 Secara notasi pemrograman dapat dituliskan sebagai berikut :
FAKT(0) = 1...................................(1)
FAKT(N) = N * FAKT(N-1)................(2)
Contoh :
FAKT(5) = 5 * FAKT(4)
FAKT(4) = 4 * FAKT(3)
FAKT(3) = 3 * FAKT(2)
FAKT (2) = 2 * FAKT(1)
FAKT(1) = 1 * FAKT (0)
Nilai awal;
 Misal :
Hitung 5 ! dapat dihitung dengan cara rekursif sebagai
berikut :
5!=5*4!
secara rekursif nilai dari 4 ! dapat dihitung kembali dengan
cara : 4 * 3 !
sehingga 5 ! menjadi 5! = 5 * 4 * 3!
secara rekursif nilai dari 3 ! dapat dihitung kembali dengan
cara : 3 * 2 !
sehingga 5 ! menjadi 5! = 5 * 4 * 3 * 2 !
secara rekursif nilai dari 2 ! dapat dihitung kembali dengan
cara : 2 * 1
sehingga 5 ! menjadi 5! = 5 * 4 * 3 * 2 * 1
Deret Fibonacci
 Deret Fibonacci : 0, 1, 1,2, 3, 5, 8, 13,...
 Secara notasi pemrograman dapat dituliskan sebagai berikut :
FIBO (1) = 0 dan FIBO (2) = 1.....................(1)
FIBO (N) = FIBO (N-1) + FIBO (N-2)............(2)

Contoh :
FIBO(5) = FIBO (4) + FIBO (3)
FIBO (4) = FIBO(3) + FIBO (2)
FIBO (3) = FIBO (2) + FIBO (1)

Nilai Awal
Konsep Menara Hanoi

 Tujuan permainan ini adalah memindahkan n buah piringan


dari tonggak asal A melalui tonggak bantu B menuju tonggak
tujuan C. dengan aturan piring yang lebuh kecil tidak boleh
berada dipiringan yang lebih besar.
 Bayangkan keadaan berikut:
Ada 3 tiang (a, b, c) tempat piringan dengan ukuran yang
bervariasi dapat ditumpuk. Pada mulanya semua piringan ada
di “a”. Tugasnya adalah Memindah semua piringan ke “c”
dengan aturan sbb:
 pada satu saat hanya boleh memindah 1 piringan
 setiap perpindahan berupa pengambilan piringan teratas
dari satu tiang dan memasukannya ketiang lain, diatas
piringan lain yang mungkin sudah ada pada tiang tersebut.
 Tidak boleh meletakan piringan diatas piringan lain yang
lebih kecil. (piringan yang lebih besar tidak boleh berada di
atas piringan yang lebih kecil).
 pada setiap akhir pemindahan semua piringan harus berada
di tiang
 Dalam notasi algoritma dapat dituliskan sebagai berikut :
 Jika n = 1, maka langsung pindahkan saja piringan dari
tiang A ke tiang C dan selesai.
 Pindahkan n- 1 piringan yang paling atas dari tiang A ke
tiang B.
 Pindahkan piringan ke n ( piringan terakhir) dari tiang A
ke tiang C.
 Pindahkan n-1 piringan dari tiang B ke tiang C.
 Untuk Penyelesaian masalah kita daftarkan terlebih dahulu
langkah-langkah penyelesaiannya:
 ketika kondisi piringan  N= 1
Piringan 1 dipindahkan dari A ke C.
 N =2
Pindahkan piringan 1 dari A ke B
Pindahkan piringan 2 dari A ke C
Pindahkan piringan 1 dari B ke C
 Langkah pemindahan tersebut di atas dapat diubah menjadi
notasi sebagai berikut :
Menara (n, asal, bantu, tujuan)
 Untuk jumlah piringan n > 1 dapat dibagi menjadi tiga
notasi penyelesaian.
 Menara(n-1, asal, bantu, tujuan);
 Menara (n, asal, bantu, tujuan); atau asal → tujuan
 Menara (n, bantu, asal, tujuan);
Langkah Pemindahan Piring
 Menara (1, A, C, B).................A→ B
 Menara (2,A, B, C) A→ C......... A→ C
 Menara (1, B, A, C).................B → C
 Menara (3, A, C, B) A→ B......... A→ B
 Menara (1, C, B, A).................C→ A
 Menara (2, C, A, B)C→ B..........C → B
 Menara (1, A, C, B).................A→ B
 Menara (4, A, B, C) A→ C......... A→ C
 Menara (1, B, A, C).................B→ C
 Menara (2, B, C, A) B→ A.........B→ A
 Menara (1, C, B, A).................C→ A
 Menara (3, B, A, C) B → C....... B→ C
 Menara (1, A, C, B).................A→ B
 Menara (2, A, B, C) A → C ......A→ C
 Menara (1, B, A, C).................B→ C
 Ilustrasi di atas menghasilkan 15 langkah penyelesaian dari
permasalahan konsep menara Hanoi dengan jumlah piringan
sebanyak 4 buah.
 Rumus Langkah Pemindahan :

2 N –1
N = jumlah piringan

Anda mungkin juga menyukai