Rekursi
Definisi Rekursi
Rekursi adalah cara menyelesaikan masalah dengan memecah masalah tersebut menjadi masalah-masalah lebih kecil yang serupa. Dalam bahasa pemrograman, rekursi dapat didefinisikan sebagai fungsi yang memanggil dirinya sendiri hingga mencapai suatu kasus dasar (base case). Kasus dasar adalah kasus di mana hasil dari fungsi telah diketahui penyelesaiannya tanpa harus memanggil dirinya kembali.
Note: Kasus rekursif harus memiliki kasus dasar sehingga tidak memanggil dirinya sendiri tanpa hingga (infinite recursive)
Berpikir Rekursi
Fungsi rekursi terdiri dari dua bagian. Pertama adalah base case. Base case merupakan kasus dasar yang harus didefinisikan hasilnya agar tidak terjadi pemanggilan fungsi secara tak hingga. Kedua adalah recursive case. Recursive case merupalan kasus rekursi yang butuh memanggil fungsinya kembali dengan memberikan masalah yang lebih kecil
Misal:
Rekursi Vs Iterasi
Jika diperhatikan, sebenarnya rekursi dan iterasi memiliki kemiripan. Rekursi dan iterasi sama-sama memiliki kondisi akhir yang membuat perulangannya terhenti. Akan tetapi mereka memiliki perbedaan yaitu:
Rekursi
· Memakai struktur percabangan (if, if/else, atau if/elif/else)
· Berhenti jika mencapai kasus dasar
· Kontrol perulangan melalui pemecahan masalah menjadi masalah yang lebih kecil
Iterasi
· Memakai struktur perulangan (for atau while)
· Berhenti jika elemen yang diiterasi sudah habis
· Kontrol perulangan menggunakan counter