Rekursif pada Fibonacci Java
Rekursif adalah fungsi yang memanggil dirinya sendiri.
Misalkan kita memiliki fungsi f(1) = 1, f(2) = 1, dan f(x) = f(x-1) + f(x-2).
Fungsi diatas dalam matematika disebut dengan fungsi rekursif. Dengan cara memanggil fungsi dirinya sendiri kita bisa mendapatkan nilai dari x ke 3, 4, 5 dst.
Meskipun barisan tersebut memiliki rumus kita akan mencoba membuatnya menggunakan fungsi rekursif. Berikut ini barisan fibonacci dengan java:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Rekursif { | |
public Rekursif(int i) { | |
System.out.println(fibonacci(i)); | |
} | |
private int fibonacci(int i){ | |
if (i == 1 || i == 2){ | |
return 1; | |
} | |
return fibonacci(i-1) + fibonacci(i-2); | |
} | |
public static void main(String[] args) { | |
Rekursif rekursif = new Rekursif(5); | |
} | |
} |
Keluaran dari program diatas adalah angka 5.
Penjelasan dari program:
Program main dieksekusi terlebih dahulu, dalam java main program adalah public static void main. Program ini akan dieksekusi terlebih dahulu.
Dalam main ada perintah untuk membuat objek Rekursif. Objek akan di create atau diawali pada bagian constructur. Bagian ini terdapat pada baris yang berisi System.out.pritnln(..).
Constructor biasa digunakan untuk melakukan inisialisasi pada objek. Constructor bersifat opsional maksudnya boleh tidak memiliki constructor atau boleh memiliki constructor lebih dari satu dengan parameter yang berbeda.
Masuk kedalam program rekursif fibonacci. Program akan mendapatkan inputan i melalui parameter. Jika i sama dengan 1 atau sama dengan 2 maka akan mengeluarkan kembalian satu. Apabila tidak harus memanggil method diri sendiri sampai ketemu i sama dengan 1 atau i sama dengan 2.
Rekursif harus dipahami karena nantinya akan banyak digunakan. Meskipun tanpa rekursif kita bisa membuatnya namun rekursif dirasa lebih effektif dan efisien untuk digunakan.
Sorting menggunakan algoritma quick sort, merge sort menggunakan rekursif.
Berkomentarlah secara bijak.
EmoticonEmoticon