Program 10.1. Penerapan bilangan Fibonaci dengan rekursi
#include<iostream> #include<conio.h> usingnamespacestd; intFibonaci(int); intmain() { intn=7; for(inti=1;i<=n;i++) cout<<"\ndata"<<Fibonaci(i); getch(); return0; } intFibonaci(intn) { if(n<=2) returnn; else return(Fibonaci(n‐2)+Fibonaci(n‐1)); }
Keluaran program diatas adalah: data1 data2 data3 data5 data8 data13 data21
Rekursif adalah suatu method yang memanggil dirinya sendiri secara langsung maupun tidak lansung. Rekursif merupakan teknik pemrograman yang sangat berguna. Dalam beberapa kasus, menggunakan cara rekursi memudahkan pengembangan program secara natural, langsung, dan simple dalam memecahkan problem yang susah dipecahkan. Untuk lebih memahami rekursif perhatikan contoh berikut: Contoh yang umum untuk memahami teknik rekursif adalah masalah factorial.
4!=4x3x2x1 3!=3x2x1 2!=2x1 1!=1
Dari contoh di atas bisa diubah cara pandangnya menjadi:
4!=4x3! 3!=3x2! 2!=2x1! 1!=1
Dengan catatan bahwa 0! = 1 maka cara pandang yang kedua bisa dlanjutkan menjadi:
4!=4x3! 3!=3x2! 2!=2x1! 1!=1 0!=1
Cara pandang yang kedua inilah yang disebut rekursif, karena dalam proses perhitungan selalu memanggil dirinya sendiri. Yaitu factorial memanggil factorial. Akan tetapi perlu dicatat bahwa teknik rekursif ini harus ada terminasinya atau ada saat berhentinya. Pada contoh factorial ini adalah 0!. Yaitu sama dengan 1 bukan 0. Dalam istilah matematika 0! ini disebut dengan base step. Sedangkan bagian yang lain disebut recursive step. Secara umum rumus factorial dalam bentuk rekursif menjadi sebagai berikut:
0!=1;basestep n!=nx(n–1)!;n>0 recursive step
Jadi proses rekursif itu akan selalu memanggil dirinya sendiri dengan variable yang berbeda, dan terus dilakukan sampai mencapai base step sebagai terminasinya. Setelah terminasi maka akan mendapatkan hasil dan selanjutnya hasil tersebut dikembalikan ke pemanggilnya untuk dilakukan perhitungan. Hal itu dilanjutkan sampai ke pemanggil yang pertama sehingga mendapatkan hasil sebagaimana mestinya. Ilustrasi berikut memberi gambaran tentang proses rekursif. Gambar 10.2. Ilustrasi Tentang Proses Rekursif. 3!4!=4x 2!3!=3x 1!2!=2x 0!1!=1x 0!=1 1 1 2 6
Next read ON halaman 4.