Friday, January 15, 2010

Program Fibonaci dengan Bahasa C

Semenjak di bangku SMA pasti temen-temen sudah mengenal deret Fibonaci (dalam bahasa inggris disebut Fibonacci, pake dobel c). Bagi yang belum tau coba lihat deret berikut:

1 1 2 3 5 8 13 21 34 55 . . .

Menurutku, deret ini cukup unik. Bagi yang pertama kali melihat deret ini mungkin akan agak sulit menemukan polanya. Sebenarnya mudah saja. Kita asumsikan bahwa suku pertama dan suku kedua deret fibonaci adalah angka 1. Untuk mencari suku berikutnya kita tinggal menjumlahkan dua suku sebelumnya. Sebagai contoh: suku ke-tiga, yaitu angka 2 didapat dari penjumlahan 1 dan 1. Suku ke-empat, yaitu angka 3 didapat dari penjumlahan 1 dan 2. Begitu seterusnya.


Deret di atas hanya tertulis hingga 10 suku saja. Bagaimana untuk membuat deret fibonaci yang lebih panjang? Misal: 100 deret :). Haruskah kita menghitung secara manual. Haah, cape bro, hari gene ngitung manual? :P

Baik, kita buat saja programnya dengan bahasa C. Berikut sourcenya:
#include<stdio.h>    //memanggil header stdio.h

void main(void){    
int a=1,b=1,c,i;    //deklarasi dan inisialisasi variabel

for(i=1;i<=10;i++){    //mulai perulangan
if(i==1||i==2){    //pengkondisian   
printf(" %d",a);  //statement jika kondisi terpenuhi  
}else{   
c=a+b;    //statement jika kondisi tidak terpenuhi   
a=b;   
b=c;   
printf(" %d",c);
}
}
}  
Untuk mengerti source di atas, temen-temen harus mengerti dulu basic dari bahasa C. Bagi yang sudah mengerti tinggal baca aja comment yang tertera di source. Penjelasan sederhananya sebagai berikut: Pertama kita buat variabel a dan b bernilai satu. Lalu kita buat perulangan dari 1 hingga 10 (10 kali perulangan). Sebenarnya terserah kamu ingin mencetak berapa deret fibonaci, namun contoh di atas hanya sampai 10 suku saja. Di dalam perulangan kita buat pengkondisian. if(i==1||i==2) itu maksudnya untuk pengkondisian suku pertama dan kedua agar mencetak angka satu (ingat! suku pertama dan kedua deret fibonacci selalu 1). Jika sudah masuk ke perulangan ke-tiga, maka program akan masuk ke kondisi else. Di situ terdapat swap angka, variabel a menjadi b, variabel b menjadi c, sedangkan variabel c sendiri hasil penjumlahan dari a dan b (ini karena suku fibonaci merupakan penjumlahan dari dua suku sebelumnya). Jika masih belum puas dengan program di atas, temen-temen bisa coba dengan algoritma atau penggunaan keyword lain. Misalnya temen-temen pengen membuat program ini dengan perulangan while, atau membuatnya menjadi fungsi rekursif, yah oke-oke aja lah. Toh, algoritma pemikiran setiap orang sangat beragam.

0 comment(s):

Post a Comment

feel free to write your comment here.. :)