Anda di halaman 1dari 11

Zaenal Abidin,S.Si.,M.Cs.

RizaArifudin.,S.Pd.,M.Cs.
Rekursi adalah kemampuan suatu rutin untuk
memanggil dirinya sendiri.
Memungkinkan untuk memanggil prosedur dari
prosedur itu sendiri.
Kendala:
Tidak efisien dan butuh waktu relatif lebih lama.
Eksekusi yang tidak pernah berhenti.
Selama eksekusi program, sistem membangun daftar
nilai yang disebut STACK (tumpukan), sehingga
ketika rekursi berakhir, program dapat kembali ke
lokasi yang tepat untuk melengkapi perhitungan yang
untuk sementara telah dikesampingkan.
Fungsi faktorial dari bilangan bulat positif n
didefinisikan sebagai berikut.
n! = n(n-1)! Untuk n > 1
n! = 1, untuk n =0,1
Contoh:
3! = 3.2!
3! = 3.2.1!
3! = 3.2.1
3! = 6
Function Faktorial (n:integer):longint;
Begin
If (n=0) or (n=1) then
Faktorial:=1
Else
Faktorial := n*Faktorial(n-1); {letak
rekursi, dimana fungsi Faktorial
memanggil dirinya sendiri tetapi
dengan parameter (n-1)}
End;
Function Faktorial (n:integer):longint;
Begin
Writeln(Atas: ,n);
If (n=0) or (n=1) then
Faktorial:=1
Else
Faktorial := n*Faktorial(n-1);
Writeln(Bawah: ,n);
End;
Untuk n = 3, fungsi Faktorial akan
menampilkan hasil sebagai berikut:
Atas: 3
Atas: 2
Atas: 1
Bawah: 1
Bawah: 2
Bawah: 3
Mengapa bisa demikian?
Mula-mula n = 3, fungsi Faktorial dipanggil, berarti
dilayar muncul Atas: 3. Karena n 0 atau 1, maka
fungsi Faktorial dipanggil dengan parameter 2. Karena
n 0 atau 1, maka dilayar muncul Atas: 2. Demikian
seterusnya sampai n=1 dan dilayar muncul Atas: 1.
Setelah n = 1, tidak ada lagi proses rekursi, jadi dilayar
akan tertulis Bawah: 1. Berikutnya fungsi
Faktorial (1) akan mengembalikan proses pada
pemanggilnya, yaitu Faktorial (2), dan pada
layar akan tertulis Bawah: 2. Berikutnya fungsi
Faktorial (2) akan mengembalikan proses pada
pemanggilnya, yaitu Faktorial (3), dan pada
layar akan tertulis Bawah: 3
Faktorial (3) 3.2=6

Faktorial(3)

Faktorial (2) 2.1=2

Faktorial(2)

Faktorial (1) 1

Faktorial(1)
Bentuk bilangan Fibonacciadalah:
1,1,2,3,5,8,13,21,34,
Bilangan Fibonaccidapat didefinisikan sebagai berikut:
fn =fn1 +fn2,untuk n>1
f0 =0
f1 =1
Sebagai contoh,untuk n=4,proses perhitungan Fibonacci
dapat dilakukan sebagai berikut.
f4 =f3 +f2
f4 =(f2 +f1)+(f1 +f0)
f4 =((f0 +f1)+f1)(f1 +f0)
f4 =((1+0)+1)+(1+0)
f4 =3
Function Fibonacci(n:byte):longint;
Begin
If (n=1) then
Fibonacci:=0;
Else if (n=1) then
Fibonacci:=1
Else
Fibonacci:=Fibonacci(n-1)+Fibonacci(n-2)
End;
Buatlah programfungsi Fibonaccitanpa
menggunakan rekursi.
Buatlah programfungsi faktorial tanpa
menggunakan rekursi.

Anda mungkin juga menyukai