Rekursif adalah proses pengulangan sesuatu dengan cara
kesamaan-diri.
Sebagai contohnya, saat dua cermin berada paralel antara satu dengan
yang lain, gambar yang tertangkap adalah suatu bentuk rekursi
tak-terbatas. Istilah ini memiliki makna beragam bergantung kepada ragam
disiplin mulai dari
linguistik sampai
logika. Penggunaan paling umum dari rekursi yaitu dalam
matematika dan
ilmu komputer, yang mengacu kepada suatu metode mendefinisikan
fungsi
yang mana fungsi tersebut menggunakan definisinya sendiri. Secara
spesifik hal ini mendefinisikan suatu instansi tak-terbatas (nilai
fungsi), menggunakan ekpresi terbatas dengan beberapa instansi bisa
merujuk ke instansi lainnya, tapi dengan suatu cara sehingga tidak ada
perulangan atau keterkaitan tak-terbatas dapat terjadi. Istilah ini juga
digunakan secara umum untuk menjelaskan suatu proses pengulangan objek
dengan cara kesamaan-diri.
KELEBIHAN DAN KELEMAHAN REKURSIF
Kelebihan
Perulangan Rekursif :
• Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian
melakukan perulangan dalam skala yang besar.
• Dapat melakukan perulangan dengan batasan fungsi.
Kekurangan
Perulangan Rekursif:
• Tidak bisa melakukan nested loop atau looping bersarang.
• Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu
saja.
• Trace error sulit.
• Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil,
variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya
akan menyebabkan stack tak cukup lagi (Stack Overrun).
• Proses agak berbelit-belit karena terdapat pemangilan fungsi yang
berulang-ulang dan pemanggilan data yang ditumpuk.
CONTOH REKURSIF
Contoh
dari persoalan yang biasanya kita tidak terpikir mengunakan metode rekursif
yaitu Faktorial. Menghitung 4! dengan menerapkan konsep rekursi dua fase dasar
dari sebuah proses rekursi: fase awal dan fase balik. Dalam fase awal,
masing-masing proses memanggil dirinya
sendiri. Fase awal ini berhenti ketika pemanggilan telah mencapai kondisi
terminal. Sebuah kondisi teminate adalah kondisi dimana sebuah fungsi rekursi kembali
dari pemanggilan, artinya fungsi tersebut sudah tidak memanggil dirinya sendiri
dan kembali pada sebuah nilai. Sebagai contoh, dalam penghitungan faktorial
dari n, kondisi terminal adalah n = 1, n = 0. Untuk setiap fungsi
rekursi, minimal harus ada satu kondisi terminal. Setelah fase awal selesai,
kemudian proses melanjutkan pada fase balik, dimana fungsi sebelumnya akan
dikunjungi lagi dalam fase balik ini. Fase ini berlanjut sampai pemanggilan
awal, hingga secara lengkap proses telah berjalan.
Proses Komputasi Secara Rekursif
dari 4!
F(4)=4x F(3) fase awal
F(3)=3x F(2) .
F(2)=2x F(1) .
F(1)=1 kondisi terminal
F(2)=(2)x(1) fase balik
F(3)=(3)x(2) .
F(4)=(4)x (6) 24 Rekursi lengkap.