REKURSIF
Rekursi adalah suatu proses dari
fungsi yang memanggil dirinya sendiri. Fungsi yang seperti ini disebut fungsi
rekursif ( recursive function ). Dalam sebuah fungsi rekursif pemanggilan dapat
terjadi berulang kali. Karena ada proses yang berulang-ulang maka harus ada
suatu kondisi yang mengakhiri prosesnya. Jika tidak, maka proses tidak akan
pernah berhenti sampai memori yang digunakan tidak dapat menampung lagi.
Pemecahan masalah dengan pendekatan rekursif dapat dilakukan jika masalah
tersebut dapat didefinisikan secara rekursif, yaitu masalah dapat diuraikan
menjadi masalah sejenis yang lebih sederhana.
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.
Contoh lain pada program pengulangan berikut :
hasilnya adalah :
Kesimpulan :
Rekursif adalah suatu proses bisa memanggil dirinya sendiri, sehingga dengan cirinya tersebut
rekursif salah satu konsep yang penting untuk dikuasai. Hal ini
dikarenakan fungsi ini memiliki sangat banyak implementasi, yang dalam hal ini
adalah implementasi dalam algoritma. Fungsi rekursif memiliki kelebihan dan
kelemahan. Secara umum fungsi rekursif memiliki algoritma yang lebih mudah
dipahami dan dibuat tetapi membutuhkan penggunaan memoriyang besar.