Pages

Fibonacci Source Kode Analysis

2 komentar
 

Barisan Fibonacci sebenarnya adalah barisan yang bisa dibuat dengan fungsi yang paling sederhana yaitu fungsi For. Pada Fungsi ini akan dibahas bagaimana membuat barisan Fibonacci dengan Fungsi For secara lebih sederhana disertai dengan analisis program.

Seperti yang kita ketahui, fungsi For berbeda dengan fungsi While, karena pada For tidak bisa menyatakan kenaikan pencacah lebih dari satu ( dari literatur yang saya baca ). Tapi, ternyata For bisa menyatakan deret aritmatika layaknya fungsi While. Sebelum memulai fibonacci, kita mulai dengan deret sederhana.


Uses crt;

Var

I, f1, f2, f : Integer;

begin

clrscr;

writeln('Deret Aritmatika');

write('1');

write('1');

f1:=1;

f2:=3;

for I:=3 to 10 do

begin

f:=f2+2;

write(f);

f2:=f;

end;

end.


Akan menghasilkan screen, 135791113 dst


Ayo kita perhatikan pada bagian pernyataan,

for I:=3 to 10 do

begin

f:=f2+2;

write (f);

f2:=f;

end;

Di pernyataan tersebut, I merupakan variabel pengulang, layaknya baris dan kolom pada postingan sebelumnya. Nah, dari pernyataan begin, kita harusnya mengetahui, bahwa fungsi For ini bisa juga dimanfaatkan layaknya fungsi While.

F:=f2+2; menandakan bahwa f selanjutnya adalah sama dengan f2+2

dan ditulis pada write(f)

pernyataan terakhir adalah kunci dari program. Seperti pada fungsi While, terdapat biasanya pada bagian terakhir pola dari pencacah. Misalkan :

while pencacah <=10 do

begin

write(pencacah);

pencacah:=pencacah+1;

end;


Nah, mirip dengan pernyataan akhir dari while, pencacah:=pencacah+1;

pada program Aritmatika kita tadi, kita membuat pernyataan terakhir f2:=f; yang bermakna, pada akhir pola f2=f. Untuk lebih jelasnya perhatikan deret ini,

13579

1 adalah f1, 3 adalah f2, 5 adalah f. Ketika kalian mencantumkan pernyataan f2:=f tadi, maka ini akan bermakna, pada akhir pola f2:=f. Misalkan akhir pola ke-4, suku ke-4 adalah 7, angka 7 ini dianggap =f2 oleh pernyataan tadi. Maka pada suku berikutnya akan berlaku f:=f2+2.

Pertanyaannya mengapa tidak f:=f2? Jika ini pernyataan terakhir kalian, ini tidak akan menghasilkan deret, karena untuk f3,f4,f5,f6 akan selalu bernilai f2+2. 135555 itu yang akan muncul di screen. Bila f2:=f maka f3 dianggap f2 tapi nilainya selalu bertambah, layaknya pencacah+1.


Pada Program Fibonacci

uses crt;

var

I, f, f1,f2 : integer;

begin

clrscr;

writeln('Fibonacci');

write('1');

write('1');

f1:=1;

f2:=1;

for I:=3 to 10 do

begin

f:=f1+f2;

write (f);

f1:=f2;

f2:=f;

end;

end.


Kuncinya hanya berada pada bagian terakhir pernyataan, karena Fibonacci adalah deret yang memiliki rumus f:=f1+f2; dan pada bagian f1:=f2; dan f2:=f akan bermakna :

f1=1, f2=1, f3=2

pada pola berikutnya, f1 itu f2, f2 itu f, dan f itu f1+f2

itulah arti pernyataan For yang merangkap While yang berusaha saya terangkan tadi. Hmm.. susah memang menjelaskannya secara kata, tapi pada contoh di atas saya rasa sudah cukup jelas. Hm.. kembangkan source code yang ada!!! another post will published soon.

2 Responses so far.

  1. sourcecodenya bakal lebih enak di baca kalo pake syntax highlighter, berserta indentasinya :)

    nice tutorial om :)

    fibonaci juga bisa manfaatin array. jadi hasilnya di taroh di array, baru di cetak.

    buat orang awam (kaya gw), lebih mudah ngertinya.
    soalnya implementasinya mirip banget dengan definisi fibonaci, f(n) = f(n-1) + f(n-2)

    /*

    fibo[1] = 1;
    fibo[2] = 1;

    for i=3 to n do{
    fibo[i] = fibo[i-1] + fibo[i-2]
    }

    // cetak deh :)

Leave a Reply