Kamis, 27 September 2018

Rekursif Pada Java Serta Latihan Program

metode rekursif pada java

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.

Didalam code rekursif factorial, Code yang menunjukan bahwa proses rekursif adalah :

Hasil = faktorial(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 = faktorial (1-1) * 1; , memanggil fungsi faktorial (0)
Hasil = faktorial (2-1) * 2; , memanggil fungsi faktorial (1)
Hasil = faktorial (3-1) * 3; , memanggil fungsi faktorial (2)
Hasil = faktorial (4-1) * 4; , memanggil fungsi faktorial (3)
Hasil = faktorial (5-1) * 5; , memanggil fungsi faktorial (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.

Untuk lebih jelas silahkan lakukan latihan Program berikut..

public class Faktorial
{
     public static long faktorial(long n)
     {
           if(n==0)
           {
                return 1;
           }
           else
           {
                return n * faktorial(n-1);
           }
     }
     public static void main(String[] args)
     {
           long n = 5;
           System.out.println(n+"! = "+faktorial(5));
     }
}

0 komentar

Posting Komentar

Kritik dan Saran Anda sangat kami perlukan