--==** Silahkan Baca Sesuka hati anda.....!! Jangan lupa klik buku tamu ...!!**==--

Selasa, 01 November 2011

Deret Fibonacci Rekursif dan Non-Rekursif dengan Java

Dari beberapa artikel sebelumnya pada algoritma fibonacci rekursif dan fibonacci non-rekursif, kita tahu bagaimana merumuskan deret bilangan fibonacci dengan algoritma logika yang kita miliki. Sekarang akan dibahas pnerapan algoritma tersebut ke dalam programming java. Pertama mari kita lihat source code java untuk deret bilangan fibonnaci rekursif. Source codenya seperti di bawah ini :


01/**
02 *
03 * @author Goes Redy
04 */
05public class Fibonacci {
06    public static int fibbon(int x){
07        if (x<=0 || x<=1){
08            return x;
09        }
10        else{
11            return fibbon(x-2)+fibbon(x-1);
12        }
13    }
14    public static void main(String[]args){
15        int n=10;
16        for (int i=0;i<n;i++){
17            System.out.print(fibbon(i)+" ");
18        }
19    }
20}


Code di atas mengeluarkan nilai dari setiap alamatnya pada array. Jika for pada code java di atas dihilangkan, maka kita akan mendapatkan satu nilai saja dari setiap alamat yang kita ketikkan pada pemanggilan rekursifnya. Jadi for tersebut diperlukan agar bilangan fibonacci tersebut dikeluarkan dari bilangan pertama sampai ke deret yang kita inginkan secara berurutan.
Kedua, mari kita bahas untuk algoritma yang non-rekursif. Cara ini relatif lebih baik, karena penggunaan memorynya jauh sekali lebih hemat untuk penggunaan data yang banyak. Sedikit memory tentunya jauh lebih cepat. Contoh sourcodenya adalah seperti di bawah ini :


01/**
02 *
03 * @author Goes Redy
04 */
05public class Fibonacci {
06    public static void main(String[]args){
07    int a=0,b=1;
08    int n = 10; // input deret fibonacci
09    for (int i=1;i<=n;i++){
10      System.out.print(a+" ");
11      a=a+b;
12      b=a-b;
13    }
14  }
15}


Bisa langsung dilihat pada sourcecode tersebut hampir sama dengan algoritmanya. Algoritmanya bisa dibilang sangat efektif karena menghabiskan source sesuai kebutuhannya, jadi bisa dibilang efesien bukan.
Hasilnya akan sama saja, cuma berbeda cara saja. Hasilnya sebagai berikut :

sumber

Tidak ada komentar:

Posting Komentar