CodeGym /Java Blog /Acak /Rekursi Java
John Squirrels
Level 41
San Francisco

Rekursi Java

Dipublikasikan di grup Acak

Apa itu Rekursi Java?

Skenario di mana suatu fungsi atau metode memanggil dirinya sendiri dikenal sebagai rekursi dan fungsi atau metode tersebut dikenal sebagai fungsi rekursif atau metode rekursif. Pendekatan ini selalu digunakan untuk memecah permasalahan yang kompleks menjadi permasalahan yang sederhana dan mudah untuk ditulis. Contoh sederhananya adalah dengan menempatkan dua cermin di depan satu sama lain dan keduanya akan mulai memantulkan satu sama lain secara rekursif yang dapat Anda lihat dengan mudah.

Rekursi Tidak Langsung

Contoh di atas mewakili rekursi tidak langsung , yaitu fungsi satu memanggil fungsi dua dan fungsi dua memanggil fungsi satu.

Rekursi Langsung

Ketika suatu metode memanggil dirinya sendiri lagi dan lagi, hal ini disebut rekursi langsung .

Kondisi Menghentikan

Sekarang Anda akan berpikir jika suatu metode memanggil dirinya sendiri lagi dan lagi, maka pasti metode tersebut akan menghadapi kesalahan Stack Overflow . Ya, Anda benar, seperti perulangan tak terbatas, hal itu bisa berubah menjadi rekursi tak terbatas. Kita harus menyediakan kondisi dasar atau kondisi terminasi untuk menghentikan rekursi tak terbatas ini, yang dikenal sebagai kondisi penghentian, dan kondisi ini selalu disediakan di dalam metode rekursi, yang akan kita lihat secara detail pada contoh di bawah.

Contoh Rekursi

class Recursion {

    static int factorial( int n ) {
        // base condition or termination condition
        if (n != 0)
        // here we are calling the recursive method
            return n * factorial(n-1);
        else
            return 1;
    }

    public static void main(String[] args) {
        // initializing the variables
        int number = 5, result;
        result = factorial(number);
        System.out.println(number + " factorial = " + result);

        // changing the value from 5 to 10
        number = 10;
        result = factorial(number); // recursive function call
        System.out.println(number + " factorial = " + result);
    }
}

Contoh Keluaran

5 faktorial = 120 10 faktorial = 3628800
Dalam contoh metode berulang ini kita memiliki fungsi faktorial yang dipanggil dari metode utama. Kita melewatkan nilai 5 untuk melihat berapa faktorialnya, yaitu 120. Fungsi faktorial ini memanggil dirinya sendiri lagi dengan meneruskan nilai 4, yang kembali memanggil dan meneruskan nilai 3, dan seterusnya, hingga kondisi terhenti. terpenuhi, yaitu nilai 0. Hal yang sama terjadi ketika kita mengubah nilainya dari 5 menjadi 10.

Keuntungan dan Kerugian Rekursi

Kode rekursif mudah untuk ditulis, di-debug, dan dipelihara, sehingga menghemat waktu. Namun di sisi lain, dengan setiap panggilan, memori digunakan untuk variabel, dan karena itu kita dapat kehabisan memori.

Kesimpulan

Kami harap Anda memahami rekursi Java dan cara mengimplementasikannya, serta kelebihan dan kekurangannya. Jangan ragu untuk berlatih dan kembali kapan pun Anda membutuhkan bantuan lebih lanjut. Selamat belajar!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION