Bilangan Fibonacci pada Bahasa C

Posted by Didi Setyapramana On 7:31 AM 0 komentar

Leonardo of Pisa atau yang lebih dikenal sebagai Fibonacci mengemukakan permasalahan sebagai berikut:


Misalkan mula-mula ada sepasang kelinci yang baru lahir. Setiap bulan, kelinci-kelinci yang sudah berumur 2 bulan akan beranak sepasang kelinci. Bagaimana menentukan banyaknya kelinci dalam waktu 12 bulan?


Penyelesaian :
Pada bulan ke-0 ada 1 pasang kelinci (A)


Pada bulan ke-1 tetap masih ada 1 pasang kelinci (A) karena kelinci akan beranak pada umur 2 bulan, sedangkan kelinci tersebut masih berumur 1 bulan.


Pada bulan ke-2 pasangan kelinci A akan melahirkan sepasang anak(B).
Total sekarang ada 2 pasang kelinci.


Pada bulan ke-3 pasangan kelinci A akan melahirkan sepasang anak lagi(C), tetapi pasangan B, yang masih berumur 1 bulan, belum melahirkan.
Total sekarang ada 3 pasang kelinci.


Pada bulan ke-4, pasangan A melahirkan lagi (D) dan pasangan B juga melahirkan sepasang kelinci (E) sedangkan pasangan D belum cukup umur. Total sekarang adalah 5 pasang.


Dan seterusnya…

Induk
Anak kelinci pada bulan

1
2
3
4
5
6
A
-
B
C
D
F
I
B
-
-
-
E
G
J
C
-
-
-
-
H
K
D
-
-
-
-
-
L
E
-
-
-
-
-
M


Pada table tersebut, terdapat aturan bahwa jumlah pasangan kelinci fn terbentuk dari fn-1 pasang kelinci sebelumnya, ditambah dengan jumlah pasangan anak yang dilahirkan. Karena kelinci akan melahirkan pada umur 2 bulan, jumlah pasang anak yang diperoleh sama dengan jumlah kelinci pada 2 bulan sebelumnya, yaitu fn-2. Deret bilangan inilah yang disebut dengan deret Fibonacci.
Bilangan Fibonacci dapat didefinisikan berdasar deret integer tak berhingga dengan logika sebagai berikut :
n=1 atau n=2, maka Fibo(n)=1
n>2, maka Fibo(n)= Fibo(n-1)+Fibo(n-2)
1 1 2 3 5  8 13 21 34 55 ….


Dari deret di atas dapat dilihat bahwa bilangan ke-n (n>2) dalam deret bisa dicari dari dua bilangan sebelumnya yang terdekat dengan bilangan ke-n, yaitu bilangan ke-(n-1) dan bilangan ke-(n-2). Oleh karena itu, jika Fibo(n) menunjukan bilangan Fibonacci ke-n, maka Fibo(n) bisa dihitung berdasarkan hubungan rekurens berikut :
Fibo(n) = Fibo(n-1)+Fibo(n-2)


Karena Fibo(n) ditentukan oleh dua nilai yang berbeda dengan argument yang nilainya lebih kecil, maka untuk mencari bilangan Fibonacci diperlukan dua nilai awal,yaitu Fibo(1)=1 dan Fibo(2)=1.
Fibo(1)=1
Fibo(2)=1
Fibo(3)= Fibo(2)+ Fibo(1)
Fibo(4)= Fibo(3)+ Fibo(2)
dan seterusnya.


a.    Algoritma dengan Pseuducode


function Fibonacci (n)
if n=1 or n=2 then Fibo=1
else Fibo= Fibo(n-1)+Fibo(n-2)
end if
Fibonacci = Fibo
endfunction



b.    Implementasi dalam bahasa C/C++
/* Program Menghitung deret fibonacci */
#include <stdio.h>

long int fibonacci (int x);
main()
{
int n;
long int hasil;
printf(“Program Menghitung deret fibonacci \n”);
printf(“Deret ke: “);
scanf(“%d”,&n);
hasil=Fibonacci(n);
printf(“Deret Fibonacci (%d) adalah %d \n”,n,hasil);
}

long int fibonacci(int x)
{
long int fibo;
if(x==1 || x==2)
return 1;
else
{
fibo=fibonacci(x-1)+fibonacci(x-2);
return fibo;
}
}


Tampilan program :


Program Menghitung deret Fibonacci
Deret ke : 12
Deret Fibonacci(12) adalah 144

0 Response for the "Bilangan Fibonacci pada Bahasa C"

Post a Comment