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