Terakhir diperbarui: 6 Desember 2025
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri di dalam tubuh fungsinya. Konsep ini sering digunakan untuk menyelesaikan masalah yang dapat dipecah menjadi bentuk yang lebih kecil dan sama dengan masalah awal.
Secara konsep, rekursi mengikuti pola:
function → memanggil dirinya → hingga mencapai kondisi berhenti
Sebuah fungsi rekursif harus memiliki dua bagian penting:
| Bagian | Penjelasan |
|---|---|
| Base Case (kondisi berhenti) | Menghentikan rekursi agar tidak berjalan selamanya |
| Recursive Case | Bagian di mana fungsi memanggil dirinya sendiri dengan input yang lebih kecil |
tipe_return namaFungsi(parameter){
if(kondisi){
return nilai; // base case
} else {
return namaFungsi(parameter_baru); // recursive call
}
}
Definisi faktorial:
n! = n × (n-1) × (n-2) × ... × 1 dan 1! = 1 dan 0! = 1 (base case)
Untuk input faktorial(4), prosesnya:
faktorial(4)
= 4 × faktorial(3)
↓
= 4 × (3 × faktorial(2))
↓
= 4 × (3 × (2 × faktorial(1)))
↓ base case
= 4 × 3 × 2 × 1
Definisi:
F(0) = 0 F(1) = 1 F(n) = F(n-1) + F(n-2)
Program menghitung jumlah dari 1 sampai n menggunakan rekursi:
| Aspek | Rekursi | Iterasi (loop) |
|---|---|---|
| Konsep | Fungsi memanggil dirinya | Mengulang dengan for/while |
| Memori | Memakai stack (lebih besar) | Lebih hemat |
| Kecepatan | Kadang lebih lambat | Biasanya lebih cepat |
| Kelebihan | Kode lebih sederhana untuk masalah tertentu | Cocok untuk perhitungan besar |
| Contoh ideal | Fibonacci, faktorial, tree traversal | Looping biasa |
Buat fungsi rekursif untuk:
2^5 → 32)10 9 8 7 ... 1)| Konsep | Inti |
|---|---|
| Fungsi Rekursif | Fungsi yang memanggil dirinya sendiri |
| Base Case | Kondisi yang menghentikan rekursi |
| Recursive Case | Bagian fungsi yang memanggil dirinya sendiri |
| Gunanya | Menyelesaikan masalah berbentuk pecahan masalah yang lebih kecil |