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.
• 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.
Tidak ada komentar:
Posting Komentar