Andi Agusta

Catatan Andi Agusta

Thursday, 10 April 2014

Rekursif atau Rekursi (RECURSION)

3 comments :

Figure 1 Droste effect
Dalam gambar ini ada gambar ini lagi yang di dalamnya ada gambar ini lagi dan seterusnya sampai kedalaman tak terbatas. dan juga bisa kita lihat pada bangunan yang memanjang yang bangunannya sepertinya mengikuti bangunan sebelumnya.
contonya pada aplikasi pemutar vidio berikut berikut  sebuah bentuk rekursif :


Tujuan
1. Memahami rekursi sebagai konsep yang dapat digunakan untuk merumuskan solusi sederhana dalam sebuah permasalahan yang sulit untuk diselesaikan loop for, while do.
2. Dapat menyelesaikan suatu permasalahan dengan konsep rekursif
3. Berpikir secara rekursif

PENGERTIAN REKURSIF (RECURSION)
Rekursif adalah konsep pengulangan yang penting dalam ilmu komputer. Konsep
ini dapat digunakan untuk merumuskan solusi sederhana dalam sebuah permasalahan
yang sulit untuk diselesaikan secara iteratif dengan menggunakan loop for, while do.
Pada saat tertentu konsep ini dapat digunakan untuk mendefinisikan permasalahan
dengan konsisten dan sederhana. Pada saat yang lain, rekursi dapat membantu untuk
mengekspresikan algoritma dalam sebuah rumusan yang menjadikan tampilan algoritma
tersebut mudah untuk dianalisa.

          Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Menurut definisi dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir.



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 lainya pada program pengulangan berikut:



Program diatas mengunakan rekursif dengan cara mengulangi dirinya yaitu n.


Dan program diatas adalah tanpa mengunakan metode rekursif
Jadi bisa di bedakan bahwa program yang menggukan rekursif atau tidak mengunakan pengulangan biasa seperti fungsi dan prosedur.


Kesimpulan:

Rekursif berarti 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 memori yang besar.


Lihat Juga
Apa itu Bubble Sort?
Metode Pengurutan Pilih (selection Sort)
Algoritma Pencarian (SEARCHING)
Prosedur, fungsi dan Array