Rekursif

 

Apa itu rekursif?

Rekursif adalah sebuah teknik di pemrograman, di mana sebuah fungsi memanggil dirinya sendiri. Mirip dengan loop (pengulangan), yang kedua tujuannya memanggil aksi yang sama berkali-kali.

Namun rekursi sering digunakan untuk menyelesaikan masalah yang lebih kompleks:

  • yang tidak bisa (sulit) diselesaikan dengan loop biasa
  • atau kode implementasinya akan sangat sulit dibaca jika menggunakan loop (iterasi).

Contoh sederhana rekursi

Contoh sederhana penggunaan rekursi bisa dilihat pada kasus “menghitung faktorial pada pelajaran Matematika”.

Catatan: Kita bisa menggunakan loop/iterasi untuk ini, tapi ini hanya contoh sederhana untuk memahami konsep rekursi.

Sekilas tentang Faktorial pada matematika: Faktorial dari sebuah bilangan adalah hasil perkalian bilangan itu dengan semua bilangan sebelumnya. Misalnya, faktorial dari 5 adalah 5 x 4 x 3 x 2 x 1 = 120.

Maka, untuk menghitung faktorial dari sebuah bilangan, kita bisa menggunakan rekursi. Kita bisa membuat fungsi yang memanggil dirinya sendiri dengan parameter yang lebih kecil, sampai parameter bernilai 1.

function factorial(n) {
    if (n == 1) { // <- Penting untuk menentukan kondisi berhenti
        return 1;
    } else {
        return n * factorial(n - 1); // <- Wow! dia panggil factorial lagi!
    }
}

Jika program di atas di jalankan, contoh dengan angka 5, maka yang terjadi

 factorial(5) // contoh memanggil
    return 5 * factorial(4) // 5 * 4 = 20
        return 4 * factorial(3) // 20 * 3 = 60
            return 3 * factorial(2) // 60 * 2 = 120
                return 2 * factorial(1) // 120 * 1 = 120
                    return 1 // kondisi berhenti

sehingga, hasilnya adalah 120.

Contoh penggunaan rekursi di dunia nyata

Berikut beberapa kasus di dunia nyata, di mana rekursi bisa digunakan:

1. Navigasi file / subfolder

Sistem operasi seperti Windows, Mac, dan Linux menggunakan struktur pohon untuk menyimpan file dan folder.

Jika kamu ingin mencari file atau folder tertentu di dalam struktur ini, kamu bisa menggunakan rekursi.

  • Jika ada folder cari file
  • JIka file ketemu atau tidak ada folder lagi, berhenti
  • Jika ada folder, masuk ke dalam folder dan ulangi langkah pertama (Rekursif).

2. Web crawling

Web crawler (seperti yang digunakan oleh mesin pencari) bisa menggunakan rekursi. Dimulai dari sebuah halaman, crawler akan menemukan semua halaman yang terhubung, dan kemudian untuk setiap halaman yang terhubung, crawler akan memanggil dirinya sendiri.

Proses ini akan terus berlanjut sampai semua halaman yang bisa diakses telah dikunjungi atau batas kedalaman tertentu tercapai.

3. Komentar / thread

Jika kamu pernah menggunakan situs seperti Reddit atau forum yang memungkinkan komentar bersarang (komentar di bawah komentar), rekursi adalah teknik yang digunakan.

Kamu bisa membuat fungsi yang menampilkan komentar, dan kemudian memanggil dirinya sendiri untuk setiap balasan komentar. Ini akan terus berlanjut sampai semua balasan komentar ditampilkan.

Fungsi Rekursif untuk Menghitung Faktorial



0 Comments

Brand creation, trend analysis & style consulting

We'd love to hear from you! Whether you have questions, feedback, or just want to say hello, feel free to get in touch with us. Here's how you can reach us