Metoda rekursif adalah metoda mengulang dirinya sendiri. Metoda ini memanggil dirinya sendiri untuk melakukan proses berulang-ulang. Kasus sederhana yang sering muncul adalah proses berulang-ulang menghitung hasil factorial. Misalnya adalah factorial dari 5 adalah 1 x 2 x 3 x 4 x 5. Dari proses itu kita ketahui bahwa untuk menghitung factorial 5 manualnya seperti 1 x 2 = 2, lalu hasil 2 ini dikalikan 3 sehingga hasilnya adalah 6, lalu hasil 6 ini dikalikan lagi dengan 4 sehingga hasilnya adalah 36, lalu hasil 36 ini dikalikan dengan 5 sehingga hasilnya adalah 120.
Nah inilah yang dinamakan rekursif, hasil dari proses awal digunakan lagi untuk proses berikutnya sampai batas yang diinginkan.
Langsung aja ya ke javanya :
class faktorial{
int fak_rekursif(int n){
int Hasil;
if(n==1 || n==0) return 1;
Hasil = fak_rekursif(n-1) * n;
return Hasil;
}
int fak_perulangan(int n){
int t;
int Hasil;
Hasil = 1;
for(t=1; t<=n; t++)
Hasil *= t;
return Hasil;
}
}
class faktorialDemo{
public static void main(String args[]){
faktorial fak = new faktorial();
System.out.println("Hitung Faktorial dengan Rekursif");
System.out.println("Faktorial dari 4 adalah : "+ fak.fak_rekursif(4));
System.out.println("Hitung Faktorial dengan Perulangan");
System.out.println("Faktorial dari 4 adalah : "+ fak.fak_perulangan(4));
}
}
Kode diatas saya selipkan juga factorial dengan menggunakan perulangan. Pada proses factorial dengan perulangan, awalnya adalah hasil factorial bernilai 1 dan terus bertambah dengan perkalian tiap kenaikan t dari perulangan.
Berbeda dengan factorial dengan menggunakan metoda rekursif. Code yang menunjukan bahwa proses rekursif adalah :
Hasil = fak_rekursif(n-1) * n;
Nilai dari variable Hasil ini didapat dari pemanggilan terlebih dahulu fungsi fak_rekursif dengan parameter mundur. Jadi secara tidak langsung, code ini menghitung terlebih dahulu factorial dari yang kecil. Misalnya adalah factorial 5, maka code tadi itu menghitung.
Hasil = fak_rekursif(1-1) * 1; , memanggil fungsi fak_rekursif(0)
Hasil = fak_rekursif(2-1) * 2; , memanggil fungsi fak_rekursif(1)
Hasil = fak_rekursif(3-1) * 3; , memanggil fungsi fak_rekursif(2)
Hasil = fak_rekursif(4-1) * 4; , memanggil fungsi fak_rekursif(3)
Hasil = fak_rekursif(5-1) * 5; , memanggil fungsi fak_rekursif(4)
Karena proses awalnya adalah fak_rekursif(5-1)*5; , maka otomatis fungsi itu memanggil fungsi fak_rekursif (4), di dalam fungsi fak_rekursif(4), ada proses pemanggilan fungsi fak_rekursif(4-1)*4, yaitu fungsi fak_rekursif(3). Dan seterusnya.
Moga jelas ya, jadi proses rekursif adalah proses pemanggilan dirinya sendiri.
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar