Thursday, April 10, 2014

Rekursif

0 comments
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.

Leave a Reply