Rekursif adalah teknik pemrograman di mana sebuah fungsi memanggil dirinya sendiri untuk menyelesaikan suatu masalah. Fungsi rekursif umumnya terdiri dari dua bagian utama: kasus dasar (base case) dan kasus rekursif (recursive case). Kasus dasar adalah kondisi yang menghentikan rekursi, sedangkan kasus rekursif adalah bagian yang memecah masalah menjadi versi yang lebih kecil dan memanggil fungsi itu sendiri. Mirip dengan loop (pengulangan), yang kedua tujuannya memanggil aksi yang sama berkali-kali. Namun rekursif 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)

TUJUAN ALGORITMA REKURSIF

1. Penyederhanaan Kode: Memecah masalah besar menjadi sub-masalah kecil.
2. Solusi Alami untuk Masalah Terpecah: Contoh: pohon, faktorial.
3. Pemecahan Masalah Berulang: Pola berulang seperti Fibonacci.
4. Penanganan Struktur Data Rumit: Efektif untuk pohon biner dan graf.
5. Pemrograman Dinamis: Menggabungkan rekursi dengan memopisasi agar lebih efisin.

KELEBIHAN DAN KEKURANGAN REKURSIF

Kelebihan

Kesederhanaan: Untuk beberapa masalah, solusi rekursif lebih sederhana dan elegan dibandingkan solusi iteratif.
Kemudahan Pemecahan Masalah: Masalah yang dapat dipecah menjadi sub-masalah yang mirip sering kali lebih mudah dipecahkan dengan rekursi.

Kekurangan

Overhead: Pemanggilan fungsi berulang-ulang bisa menimbulkan overhead karena setiap pemanggilan fungsi memerlukan alokasi memori untuk stack frame.
Stack Overflow: Rekursi yang terlalu dalam bisa menyebabkan stack overflow.

CONTOH PENGGUNAAN REKURSIF DALAM SEBUAH APLIKASI

1. Navigasi file / subfolder
2. Web crawling (seperti mesin pencari)
3. Komentar / thread

FUNGSI REKURSIF UNTUK MENGHITUNG FAKTORIAL


FUNGSI REKURSIF UNTUK MENGHITUNG FIBONACCI