Jumat, 20 April 2012

Deret Bilangan Fibonacci + contoh Program Dengan Java

Dalam matematika, bilangan Fibonacci adalah barisan yang didefinisikan secara rekursif sebagai berikut:

  F(n)=
   \begin{cases}
    0, & \mbox{jika }n=0; \\
    1, & \mbox{jika }n=1; \\
    F(n-1)+F(n-2) & \mbox{jika tidak.}
   \end{cases}
Penjelasan: barisan ini berawal dari 0 dan 1, kemudian angka berikutnya didapat dengan cara menambahkan kedua bilangan yang berurutan sebelumnya. Dengan aturan ini, maka barisan bilangan Fibonaccci yang pertama adalah:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946...
Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut:
Fn = (x1n – x2n)/ sqrt(5)
dengan
  • Fn adalah bilangan Fibonacci ke-n
  • x1 dan x2 adalah penyelesaian persamaan x2-x-1=0
Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk sebarang nilai n dan mulai nilai n tertentu, perbandingan ini nilainya tetap. Perbandingan itu disebut Golden Ratio yang nilainya mendekati 1,618.


Listing Program Deret Fibonacci

import javax.swing.*;
class deretfibonacci{
public static void main (String [] args) {
int  t=0, p=1, hasil=0;
String s = JOptionPane.showInputDialog("Masukkan banyaknya deret Fibonacci: " );
int x = Integer.parseInt(s);
for(int i=1; i<=x; i++){
t=p;
p=hasil;
System.out.print(hasil+" ");
hasil=t+p;
}
}
}

Logika Program

                Pertama – tama kita buka teks editor di notepad, notepad ++ atau pun di  teks editor lain yang digunakan untuk menuliskan listing program kita. Disini saya menggunakan teks editor EditPlus. Cara menggunakannya mungkin sudah pada mengetahuinya, namun bagi yang belum tau saya akan memberi tahukan cara menggunakannya. Pilih file -> new -> java, maka kita akan masuk ke dalam java source code. Saat kita memilih java secara otomatis kita sudah mendapatkan bentuk umum dari java. Jika sudah kita langsung saja mengerjakan listing programnya.
a.       Kita menuliskan import javax.swing.*; listing tersebut digunakan untuk mendeklarasikan JoptionPane yaitu inputan dari keyboard.
b.      Sesudah itu kita menuliskan dan membentuk suatu class, kita memberi nama classnya yaitu Deret dan diikuti dengan membuka { tempat pembuka blok kelas.
c.       Lalu kita menuliskan public static void main (String[]args){, listing tersebut digunakan sebagai method main atau method utama yang akan di eksekusi pertama kali. Kita deklarasikan variabel t,p, hasil yang bertipe Integer dengan nilai secara berturut-turut yaitu 0,1,0. Dan kita menuliskan lagi selanjutnya yaitu;
String s = JOptionPane.showInputDialog("Masukkan banyaknya deret Fibonacci: " );
int x = Integer.parseInt(s); yang digunakan sebagai inputan dari keyboard dan menentukan jumlah deret yang di inginkan untuk d proses.
d.      for(int i=1; i<=x; i++){
t=p;
p=hasil;
System.out.print(hasil+" ");
hasil=t+p;}
listing pada tahap d, merupakan perulangan yang dilakukan untuk mencetak dan memproses jumlah deret yang akan di input. Dimulai dari i=0 dengan batas maksimalnya x dan berturut-turut i bertambah 1. Dibuka dengan kurung kurawal ( { ) untuk memulai blok perulangan. Tadi nilai t awalnya adalah 1, sekarang kita ubah nilai t menjadi nilai dari p yaitu satu. Secara logika berarti sekarang nilai t=1 dan untuk nilai p juga diubah menjadi nilai hasil yaitu p sekarang nilainya menjadi 0. Lalu perulangan pertama mencetak 0 . lalu masuk ke pengerjaan yaitu hasil = t+p ( hasil = 1+0 ), maka didapatlah hasil dan nilai hasil dimasukkan ke variabel p, dan sekarang variabel p menjadi 1 dan nilai t menjadi 0. Pada proses perulangan kedua mencetak 0 1 .dan masuk lagi ke pengerjaan yaitu hasil t+p ( hasil = 0+1) dan sekarang hasil bernilai satu lagi.lalu pada perulangan ketiga nilai t menjadi 1 dan p juga 1 lalu di lakukan lagi pengerjaan 1+1.begitu seterusnya sampai perulangan yang diinginkan berhenti.
e.      Jangan lupa tuliskan } sebanyak 3, yang pertama untuk menutup perulangan, yang kedua untuk menutup method utama dan yang ketiga menutup class.

                                    output program

        

        

 

     

 














1 komentar: