Rekursi Jawa
Rekursi Java
Dalam tutorial ini, Anda akan belajar tentang fungsi rekursif Java, kelebihan dan kekurangannya.
Dalam Java, metode yang memanggil dirinya sendiri dikenal sebagai metode rekursif. Dan, proses ini dikenal sebagai rekursi.
Contoh dunia fisik adalah menempatkan dua cermin paralel yang saling berhadapan. Objek apa pun di antaranya akan dipantulkan secara rekursif.
Bagaimana cara kerja Rekursi?
Pada contoh di atas, kita telah memanggil recurse()
metode dari dalam main
metode. (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 mengakhiri panggilan rekursif di dalam metode.
Contoh:Faktorial Angka 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 factorial = 24
Dalam contoh di atas, kami memiliki metode bernama factorial()
. factorial()
dipanggil dari main()
metode. dengan nomor variabel diteruskan sebagai argumen.
Di sini, perhatikan pernyataannya,
return n * factorial(n-1);
factorial()
metode memanggil dirinya sendiri. Awalnya, nilai n adalah 4 di dalam factorial()
. Selama panggilan rekursif berikutnya, 3 diteruskan ke factorial()
metode. Proses ini berlanjut sampai n sama dengan 0.
Kapan n sama dengan 0, if
pernyataan mengembalikan false maka 1 dikembalikan. Akhirnya, hasil akumulasi 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.
Keuntungan dan Kerugian Rekursi
Saat panggilan rekursif dibuat, lokasi penyimpanan baru untuk variabel dialokasikan pada tumpukan. Karena, setiap panggilan rekursif kembali, variabel dan parameter lama dihapus dari tumpukan. Oleh karena itu, 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 kelebihan dan kekurangan rekursi?