🔁 Fungsi Rekursif dalam Bahasa C

Terakhir diperbarui: 6 Desember 2025

📌 1. Apa Itu Fungsi Rekursif?

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

📌 2. Komponen Utama Rekursi

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
Tanpa base case, program akan mengalami infinite recursion dan berakhir dengan error stack overflow.
Contoh Struktur Fungsi Rekursif:
tipe_return namaFungsi(parameter){
    if(kondisi){
        return nilai;    // base case
    } else {
        return namaFungsi(parameter_baru);  // recursive call
    }
}

📌 3. Contoh Dasar: Fungsi Rekursif untuk Menghitung Faktorial

Definisi faktorial:

n! = n × (n-1) × (n-2) × ... × 1  
dan 1! = 1 dan 0! = 1 (base case)
Programnya:
Output:

📌 4. Ilustrasi Proses Rekursi (Trace)

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

📌 5. Contoh Rekursi untuk Deret Fibonacci

Definisi:

F(0) = 0  
F(1) = 1  
F(n) = F(n-1) + F(n-2)
Kode:
Output:

📌 6. Contoh Rekursi: Menghitung Jumlah Bilangan

Program menghitung jumlah dari 1 sampai n menggunakan rekursi:

Output:

📌 7. Rekursi vs Iterasi (Loop)

Aspek Rekursi Iterasi (loop)
KonsepFungsi memanggil dirinyaMengulang dengan for/while
MemoriMemakai stack (lebih besar)Lebih hemat
KecepatanKadang lebih lambatBiasanya lebih cepat
KelebihanKode lebih sederhana untuk masalah tertentuCocok untuk perhitungan besar
Contoh idealFibonacci, faktorial, tree traversalLooping biasa
Contoh Perbandingan (Iterasi):
Output:

📌 8. Keuntungan Rekursi

  • ✔ Kode lebih singkat
  • ✔ Lebih mudah dipahami untuk pola matematis
  • ✔ Berguna untuk struktur data pohon (tree), DFS, backtracking (misalnya puzzle atau permutasi)

📌 9. Kekurangan Rekursi

  • ❌ Menggunakan lebih banyak memori
  • ❌ Bisa menyebabkan stack overflow
  • ❌ Lebih lambat daripada iterasi dalam banyak kasus

📌 10. Latihan Soal

Buat fungsi rekursif untuk:

  1. Menghitung pangkat (misalnya 2^5 → 32)
  2. Mencari nilai minimum dalam array menggunakan rekursi
  3. Mencetak angka dari n turun ke 1 (contoh output: 10 9 8 7 ... 1)
Area Latihan
Output:

🎓 Kesimpulan

Konsep Inti
Fungsi RekursifFungsi yang memanggil dirinya sendiri
Base CaseKondisi yang menghentikan rekursi
Recursive CaseBagian fungsi yang memanggil dirinya sendiri
GunanyaMenyelesaikan masalah berbentuk pecahan masalah yang lebih kecil