Rekursi Java: Metode Rekursif (Dengan Contoh)

Dalam tutorial ini, Anda akan belajar tentang fungsi rekursif Java, kelebihan dan kekurangannya.

Di Java, metode yang memanggil dirinya sendiri dikenal sebagai metode rekursif. Dan, proses ini disebut rekursi.

Contoh dunia fisik adalah menempatkan dua cermin paralel saling berhadapan. Objek apa pun di antara mereka akan dipantulkan secara rekursif.

Bagaimana Rekursi bekerja?

Bekerja dari Java Recursion

Dalam contoh di atas, kami telah memanggil recurse()metode dari dalam mainmetode. (panggilan metode normal). Dan, di dalam metode recurse (), kita kembali memanggil metode recurse yang sama. Ini adalah panggilan rekursif.

Untuk menghentikan panggilan rekursif, kita perlu menyediakan beberapa kondisi di dalam metode. Jika tidak, metode ini akan dipanggil tanpa batas.

Oleh karena itu, kami menggunakan pernyataan if… else (atau pendekatan serupa) untuk menghentikan panggilan rekursif di dalam metode.

Contoh: Faktorial Bilangan Menggunakan Rekursi

 class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )

Keluaran :

 4 faktorial = 24

Dalam contoh di atas, kami memiliki metode bernama factorial(). Itu factorial()dipanggil dari main()metode. dengan variabel angka diteruskan sebagai argumen.

Di sini, perhatikan pernyataannya,

 return n * factorial(n-1);

The factorial()Metode memanggil dirinya sendiri. Awalnya nilai n adalah 4 didalamnya factorial(). Selama panggilan rekursif berikutnya, 3 diteruskan ke factorial()metode. Proses ini berlanjut hingga n sama dengan 0.

Ketika n sama dengan 0, ifpernyataan kembali salah maka 1 dikembalikan. Akhirnya, hasil yang terakumulasi diteruskan ke main()metode.

Kerja Program Faktorial

Gambar di bawah ini akan memberi Anda gambaran yang lebih baik tentang bagaimana program faktorial dijalankan menggunakan rekursi.

Program Faktorial menggunakan Rekursi

Keuntungan dan Kerugian Rekursi

Saat panggilan rekursif dilakukan, lokasi penyimpanan baru untuk variabel dialokasikan di stack. Karena, setiap panggilan rekursif kembali, variabel dan parameter lama dihapus dari tumpukan. Karenanya, rekursi umumnya menggunakan lebih banyak memori dan umumnya lambat.

Di sisi lain, solusi rekursif jauh lebih sederhana dan membutuhkan lebih sedikit waktu untuk menulis, men-debug, dan memelihara.

Bacaan yang Direkomendasikan: Apa keuntungan dan kerugian dari rekursi?

Artikel yang menarik...