Jumat, 11 April 2014

Algoritma dan Pemrograman (REKURSIF)

Selamat malam semua, kali ini eta mau berbagi mengenai...




REKURSIF



Rekursif merupakan salah satu metode algoritma yang kerap digunakan dalam membuat perulangan, seperti halnya iterasi for, repeat .. until, do.. while, dan lainnya. Perbedaannya terletak dalam sifatnya yang memanggil dirinya sendiri, baik secara langsung ataupun melalui metode yang lainnya. Ciri masalah yang dapat diselesaikan secara rekursif adalah masalah itu dapat direduksi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil.
Secara umum metode algoritma rekursif terdiri atas dua komponen utama, yaitu:
  1. Bagian induksi, merupakan satu atau lebih kasus yang menyelesaikan masalah serupa namun dengan ukuran data ataupun metode yang lebih sederhana.
  2. Bagian penyetop, merupakan satu atau lebih kasus yang paling sederhana dan solusinya tidak perlu lagi terjadi rekursi.
Supaya tidak terjadi rekursif yang tak berhingga, setiap langkah rekursif haruslah mengarah ke kasus penyetop. Cara bekerja algoritma rekursif ini adalah ketika sebuah metode rekursif dipanggil S(n), maka aksi ini akan di push ke stack yang ada di dalam register. Demikian pula ketika S(n) memanggil S(n-1) hingga S(k) yang merupakan komponen penyetop dipanggil maka barulah isi stack di TOP.
algoritma rekursif 
 
Dalam kehidupan sehari-hari banyak terdapat objek yang rekursif, contohnya yaitu: 
Daun Pakis, yang dibentuk oleh ranting-ranting daun yang mempunyai pola yang mirip dengan daun pakis itu sendiri. Setiap ranting daun disusun lagi oleh ranting daun dengan pola yang mirip. 
Selain itu, hal yang sama juga tampak pada Pohon Cemara.
Objek rekursif yang khas seperti Daun Pakis dan Pohon Cemara tersebut disebut Fraktal.

- Definisi rekursif diturunkan secara matematik. 
- Definisi yang tidak formal menyatakan bahwa sebuah objek dikatakan rekursif jika ia didefinisikan menjadi lebih sederhana dalam terminologi dirinya sendiri.




Perhatikan bahwa sebelum melakukan penambahan program, lakukanlah pemanggilan fungsi rekursif terlebih dahulu sampai fungsi rekursif mengembalikan nilai pasti ([Math Processing Error]). Setelah menghilangkan semua pemanggilan fungsi, penambahan baru dilakukan, mulai dari nilai kembalian dari fungsi yang paling terakhir. 

Dengan melihat kemiripan cara kerja serta kode dari fungsi faktorial dan kali, kita dapat melihat bagaimana fungsi rekursif memiliki dua ciri khas:
  1. Fungsi rekursif selalu memiliki kondisi yang menyatakan kapan fungsi tersebut berhenti. Kondisi ini harus dapat dibuktikan akan tercapai, karena jika tidak tercapai maka kita tidak dapat membuktikan bahwa fungsi akan berhenti, yang berarti algoritma kita tidak benar.
  2. Fungsi rekursif selalu memanggil dirinya sendiri sambil mengurangi atau memecahkan data masukan setiap panggilannya. Hal ini penting diingat, karena tujuan utama dari rekursif ialah memecahkan masalah dengan mengurangi masalah tersebut menjadi masalah-masalah kecil.

ANALISIS ALGORITMA REKURSIF

Referensi:
Rizki. (5 September 2012). Mengenal Algoritma Rekursif. http://rizki.info/2012/09/05/mengenal-algoritma-rekursif/. 11 April 2014
Munir, Rinaldi. (2011). Algoritma dan Pemrograman Dalam Bahasa Pascal dan C. Edisi Revisi. Bandung: Informatika.
Bertzzie. Rekursif-Dasar Analisis Algoritma. http://bertzzie.com/knowledge/analisis-algoritma/Rekursif.html#. 11 April 2014