Home > Programming > Deret Fibonacci Rekursif dan Non-Rekursif dengan Java

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 :

/**
 *
 * @author Goes Redy
 */
public class Fibonacci {
    public static int fibbon(int x){
        if (x<=0 || x<=1){
            return x;
        }
        else{
            return fibbon(x-2)+fibbon(x-1);
        }
    }
    public static void main(String[]args){
        int n=10;
        for (int i=0;i<n;i++){
            System.out.print(fibbon(i)+" ");
        }
    }
}

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 :

/**
 *
 * @author Goes Redy
 */
public class Fibonacci {
    public static void main(String[]args){
    int a=0,b=1;
    int n = 10; // input deret fibonacci
    for (int i=1;i<=n;i++){
      System.out.print(a+" ");
      a=a+b;
      b=a-b;
    }
  }
}

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 :

About these ads
Categories: Programming Tags:
  1. November 6, 2010 at 12:44 pm

    haturnuhun kang………….moga sukses selalu.!!!!!!!!!!

  2. February 14, 2011 at 8:23 pm

    aku bingung logika fibo ini kemaren hehe
    thanks ya ….

  3. February 14, 2011 at 8:24 pm

    mas kalo bikin notes gitu gimana? yang kek gambar tapi bisa di copy?

  4. April 3, 2011 at 2:23 pm

    semoga membantu tugas saya. Makasih

  5. November 19, 2011 at 8:20 am

    mkasich tapi perbanyak lagi artikelnya

  6. Amir
    November 24, 2011 at 1:20 pm

    mau tanya kalo misal a dan b ditentukan user trus nilai a+b harus kurang dari 1000, jika lebih maka akan dikurangi 1000,
    contoh : a= 500, b= 700
    500+700= 1200 jadi hasilnya 1200-1000=200
    ini tugas dari dosenku, tolong bantuannya hehehe. . . .

    • November 26, 2011 at 1:28 pm

      tinggal anda menambahkan syntax untuk meminta masukan dari user,
      kemudian, kalau untuk jumlah yg lebih dari 1000, anda tinggal menambahkan sebuah kondisi yang mengecek, apakah nilainya lebih atau tidak.

  7. antok
    May 29, 2012 at 1:10 pm

    gmn cara membuat kotak
    ***********
    * *
    * *
    * *
    * *
    ***********

    • antok
      May 29, 2012 at 1:11 pm

      itu tengah kosong
      ***********
      * ……….*
      * ……….*
      * ……….*
      * ……….*
      ***********

  8. antok
    May 29, 2012 at 1:14 pm

    antok :
    itu tengah kosong

    *******************
    *                        *
    *                        *
    *                        *
    *                        *
    *                        *
    *                        *
    ******************
  9. May 29, 2012 at 4:36 pm
    for (i=0;i<=m;i++){
       for (j=0;j<=n;j++){
          if((i=0)||(i=m)||(j=0)||(j=n)){
             System.out.print("*");
          }else{
             System.out.print(" ");
          }
       }
    }
    

    tinggal disesuaikan bentuk if dan atau for-nya

  10. October 1, 2012 at 11:57 pm

    Ada contoh dengan menggunakan awt ngak?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: