Professional Documents
Culture Documents
Rekursif sendiri adalah suatu fungsi yang memanggil dirinya sendiri. Dalam Rekursif
sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif
bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat
pemanggil prosedur dan fungsi. Rekursif sendiri sering digunakan dalam perhitungan
matematika, seperti untuk mencari faktorial, menghitung permutasi, kombinasi dan
menghitung bilangan fibonacci.
Algoritma rekursif ini langsung mengimplementasikan definisi rekursif bilangan
fibonacci dalam bentuk fungsi rekursif. Contoh fungsi fibonacci :
Analisis Dari fungsi rekursif di atas, bisa dilihat bahwa T(0) dan T(1) bernilai 1
karena jika inputnya 0 atau 1, program akan melakukan 1 proses yaitu assignment
(permberian nilai). T(n) bernilai T(n-1) + T(n-2) + 1 karena di setiap tahap rekurens, program
akan memanggil fibo(n-1) yang memiliki kompleksitas T(n-1) dan fibo(n-2) yang memiliki
kompleksitas T(n-2), sementara itu untuk menjumlahkan keduanya dibutuhkan 1 proses. Oleh
karena itu :
Dari situ bisa kita lihat bahwa T(n) akan berkembang secara eksponensial. Untuk mencari
notasi O besarnya :
T(n) T(n-1)+ T(n-1)+ T(n-1)
T(n) 3T(n-1)
Sehingga diperoleh T(n) = O(3n). Algoritma ini adalah algoritma yang stabil, kompleksitas
untuk kasus terbaik sama dengan kompleksitas untuk kasus terburuknya.
DERET FIBONACCI
Deret Fibonacci diperkenalkan pada tahun 1202 oleh Leonardo dari Pisa (yang
dikenal sebagai Fibonacci). Deret ini didefinisikan secara rekursif sebagai : f(n) = f(n-1) +
f(n-2) f(0) = 0 f(1) = 1 Sebenarnya terdapat versi lain untuk f(0) dan f(1) yaitu f(0) = 1, f(1) =
1. Namun dalam makalah ini, deret Fibonacci yang digunakan adalah deret yang nilai f(0) = 0
dan f(1) = 1. Selain itu, deret Fibonacci yang dibahas pada makalah ini adalah deret
Fibonacci untuk indeks n bilangan bulat non negatif.
Penjelasan mengenai fungsi FPB dan fungsi fibonacci yang juga menggunakan fungsi
rekursif. Berikut merupakan source code program FPB :
#include <math.h>
#include <iostream.h>
using namespace std;
int FPB(int x, int y);
int main()
{
int X1, X2;
cout << "PERHITUNGAN FPB" << endl;
cout << "Masukkan bilangan pertama : "; cin >> X1;
cout << "Masukkan bilangan kedua : "; cin >> X2;
cout << "Faktor Persekutuan Terbesar = " << FPB(X1,X2)<<endl;
}
Masukkan