1. Apa itu Rekursi (Recursion)?
Rekursi adalah teknik pemrograman di mana sebuah fungsi memanggil dirinya sendiri untuk menyelesaikan sub-masalah yang lebih kecil dari masalah utama, hingga mencapai titik berhenti yang telah ditentukan.
Dua Komponen Wajib Fungsi Rekursif
1. **Base Case (Kasus Dasar)**: Kondisi batas paling sederhana di mana fungsi langsung mengembalikan nilai TANPA memanggil dirinya lagi. (Mencegah loop abadi).
2. **Recursive Step (Langkah Rekursif)**: Bagian di mana fungsi memanggil dirinya sendiri dengan argumen yang semakin mendekati Base Case.
Contoh Klasik: Faktorial (n!)
| 1 | function faktorial(n) { |
| 2 | // 1. Base Case: jika n adalah 1 atau 0, berhenti dan kembalikan 1 |
| 3 | if (n <= 1) { |
| 4 | return 1; |
| 5 | } |
| 6 | |
| 7 | // 2. Recursive Step: n dikalikan faktorial dari (n - 1) |
| 8 | return n * faktorial(n - 1); |
| 9 | } |
| 10 | |
| 11 | console.log(faktorial(5)); // 120 (5 * 4 * 3 * 2 * 1) |
Bahaya 'Maximum Call Stack Size Exceeded'
Setiap kali fungsi dipanggil, ia disimpan di Call Stack memori komputer. Jika rekursi tidak memiliki Base Case yang benar, Call Stack akan penuh hingga terjadi 'Stack Overflow'.
Kuis Pemahaman
+10 XP
Apa fungsi utama dari 'Base Case' pada fungsi rekursif?