Wednesday, March 18, 2015

Sub Program Rekursif Pascal

Sebuah objek disebut berulang (rekursif, recursive) jika setiap objek mengandung dirinya sendiri atau didefinisikan dengan dirinya sendiri. Dalam matematika, definisi rekursif sebuah fungsi adalah definisi fungsi yang menggunakan fungsi tersebut.
Kegunaan hubungan berulang terletak pada kemampuannya yang memungkinkan menyatakan definisi yang tak hingga (indefinite) dengan pernyataan yang hingga (finite). Algoritma rekursif memungkinkan perulangan yang tidak akan berhenti atau tak hingga. Karenanya, untuk memecahkan masalah menggunakan hubungan berulang, harus ditemukan basis, yaitu kondisi berhenti (termination) rekursif yang jelas dan definisi rekursif. Implementasi definisi rekursif dapat berbentuk fungsi rekursif atau prosedur rekursif.
Jika sebuah masalah telah didefinisikan secara rekursif, maka penggunaan algoritma rekursif akan memudahkan dalam membuat program dan program akan lebih mudah dibaca, meskipun ada kemungkinan dalam eksekusinya menjadi tidak efesien. Tetapi, jika sebuah masalah dapat diselesaikan tanpa hubungan rekursif dan algoritmanya tidak menjadi rumit, pendekatan tersebut biasanya lebih baik.
Sub program rekursif adalah sub program yang memanggil dirinya sendiri selama kondisi dipenuhi. Dengan melihat sifat sub program rekursif di atas maka sub program rekursif harus memiliki :
1.     Kondisi yang menyebabkan pemanggilan dirinya berhenti (disebut kondisi khusus atau special condition)
2.     Pemanggilan diri sub program (yaitu bila kondisi khusus tidak dipenuhi)
Secara umum bentuk dari sub program rekursif memiliki statement kondisional :
·       If kondisi khusus tak dipenuhi
·       Then panggil diri-sendiri dengan parameter yang sesuai
·       Else lakukan instruksi yang akan dieksekusi bila kondisi khusus dipenuhi
sebuah program rekursif umumnya dipakai untuk permasalahan yang memiliki langkah penyelesaian yang terpola atau langkah-langkah yang teratur. Bila kita memiliki suatu permasalahan dan kita mengetahui algoritma penyelesaiannya, kadang-kadang sub program rekursif menjadi pilihan kita bila memang memungkinkan untuk dipergunakan. Secara algoritmis (dari segi algoritma, yaitu bila kita mempertimbangkan penggunaan memori, waktu eksekusi sub program) sub program rekursif sering bersifat tidak efisien.
Dengan demikian sub program rekursif umumnya memiliki efisiensi  dalam penulisan perintah, tetapi kadang tidak efisien secara algoritmis. Meskipun demikian banyak pula permasalahan-permasalahan yang lebih sesuai diselesaikan dengan cara rekursif.

Kelebihan menggunakan rekursif :
  1. Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar.
  2. Dapat melakukan perulangan dengan batasan fungsi.
Kekurangan menggunakan rekursif :
  1. Tidak bisa melakukan nested loop atau looping bersarang.
  2. Biasanya membuat fungsi sulit dipahami, hanya cocok untuk persualan tertentu saja.
  3. Trace error sulit.
  4. Memerulukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempat ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (stack over run).
  5. Proses agak berbelit-belit karena terdapat pemanggilan fungsi yang berulang-ulang dan pemanggilan data ditumpuk.

Contoh Programnya bisa lihat: Faktorial Menggunakan Rekursif

Sumber :

Fathul Wahid : Dasar-Dasar Algoritma & Pemrograman

http://khabib.staff.ugm.ac.id/index.php?option=com_content&view=article&id=82:prosedur-dan-fungsi-rekursif&catid=28:introduction-to-algorithm-and-programming

http://array-fitriani-array.blogspot.com/2011/04/array-rekursif-iteratif.html

Share this

0 Comment to "Sub Program Rekursif Pascal"

Post a Comment