02a Rekursi
02a Rekursi
Rekursi
Suatu proses didalam Procedure/Function yang bisa
memanggil dirinya sendiri atau proses secara berulang
yang tidak bisa diketahui kapan akan berakhir.
Untuk beberapa kasus rekursi merupakan algorithma
yang baik dan bisa digunakan untuk memecahkan
masalah secara lebih mudah.
Procedure/Function rekursif ini dipakai karena memiliki
kelebihan yaitu penulisan baris program dapat menjadi
singkat, tetapi juga memiliki kekurangan yaitu
membutuhkan banyak memori.
Bahasa Java :
public void recursive () {
recursive();
}
Bahasa VB :
Sub recursive ()
recursive;
End sub
Contoh :
Diketahui suatu Bilangan Fibonacci
1 1 2 3 5 8 13 21 34
Solusi :
Cari rumus :
Misalkan suatu deretan dengan N, Jika Fibo(N)
menunjukan bilang fibonacci yang ke N, Maka Fibo(N)
bisa dihitung berdasarkan :
Mis :
Untuk N = 3
Fibo(3) = Fibo(3-1)+Fibo(3-2)
= Fibo(2)+Fibo(1)
=1+1
=2
Untuk N = 5
Fibo(5) = Fibo(4) + Fibo(3)
= Fibo(3)+Fibo(2) + Fibo(2)+Fibo(1)
= Fibo(2)+Fibo(1)+1 + 1 + 1
= 1+1+3
=5
Latihan :
Tentukan Fibo untuk N = 6, 7, 8 dan 9
Langkah-langkah memprogram :
- Lagika Program
Jika N=1 atau N=2
Fibo = 1
Jika tidak
Fibo(N) = Fibo(N-1) + Fibo(N-2)
- Sub Program
Fuction Fibo(N : Integer): Integer;
Begin
If (N=1) or (N=2)
Fibo=1
Else
Fibo(N) := Fibo(N-1) + Fibo(N-2)
End.
- Program dalam bentuk flowchart
Bahasa Pemrograman VB
Disain Form Sbb :
Nama Component
Forms
Text1
Text2
Command1
Command2
Command3
Properties
Caption = Bilangan Fibonacci
Name = text1
Text = spaces
Name = text2
Text = spaces
Enable = false
Name = Command1
Caption =&Input Lagi
Name = Command2
Caption = &Tampil Hasil
Name = Command3
Caption =&Exit