Deret Fibonacci Rekursif dan Non-Rekursif dengan Java
/** * * @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 :
haturnuhun kang………….moga sukses selalu.!!!!!!!!!!
aku bingung logika fibo ini kemaren hehe
thanks ya ….
mas kalo bikin notes gitu gimana? yang kek gambar tapi bisa di copy?
mksudny tehnik OCR??
semoga membantu tugas saya. Makasih
mkasich tapi perbanyak lagi artikelnya
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. . . .
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.
gmn cara membuat kotak
***********
* *
* *
* *
* *
***********
itu tengah kosong
***********
* ……….*
* ……….*
* ……….*
* ……….*
***********
tinggal disesuaikan bentuk if dan atau for-nya
Ada contoh dengan menggunakan awt ngak?
thanks