Selasa, 31 Desember 2013

Rekursif

,

Assalamu'alaikum.. kali ini saya akan share makul algoritma tentang rekursif . Selamat membaca ! 

KONSEP REKURSIF

  • Rekursif adalah suatu proses yang memanggil dirinya sendiri.
  • Fungsi Rekursif adalah sebuah fungsi yang memanggil dirinya sendiri
  • Perbedaan rekursif dengan fungsi/prosedur adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi.

Contoh 1 Proses Rekursif :

Berikut contoh fungsi rekursif untuk menghitung hasil kali dari dua bilangan :



Selama nilai b bukan 1, fungsi akan terus memanggil perintah a + kali (a, b-1), yang tiap tahapnya memanggil dirinya sendiri sambil mengurangi nilai b.

     Uraian Langkahnya



Sebelum melakukan penambahan, program melakukan pemanggilan fungsi rekursif terlebih dahulu sampai fungsi rekursif mengembalikan nilai pasti (2).

Setelah menghilangkan semua pemanggilan fungsi, penambahan baru dilakukan, mulai dari nilai kembalian dari fungsi yang paling terakhir

Contoh 2 Proses Rekursif:

Contoh : fungsi untuk menghitung harga pangkat suatu nilai bilangan bulat misalnya 35


statement pertama menunjukkan nilai yang utama dari fungsi, dan statemen kedua menunjukan perulangan penurunan dari n yaitu n-1.




 

Ciri Khas Fungsi Rekursif

  • 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 akan dapat membuktikan bahwa fungsi akan berhenti, yang berarti algoritma tidak benar
  • Fungsi rekursif selalu memanggil dirinya sendiri sambil mengurangi atau memecahkan data masukan setiap panggilannya. Hal ini penting, karena tujuan utama dari rekursif adalah memecahkan masalah dengan mengurangi masalah tersebut menjadi masalah-masalah kecil.

Kekurangan fungsi rekursif

  • Memerlukan memory yang lebih banyak untuk menyimpan activation record dan variabel lokal. Activation record diperlukan waktu proses kembali kepada pemanggil
  • Memerlukan waktu yang lebih banyak untuk menangani activation record

Secara umum gunakan penyelesaian rekursif hanya jika:

  • Penyelesaian sulit dilaksanakan secara iteratif.
  • Efisiensi dengan cara rekursif sudah memadai.
  • Efisiensi bukan masalah dibandingkan dengan kejelasan logika program

Perbandingan Iterasi dan Rekursif

Iterasi merupakan suatu teknik perulangan yang digunakan pada penulisan program. Perulangan yang dimaksud adalah seperti perintah-perintah while .. do ataupun for .. do.
iterasi dan rekrusif itu sama-sama digunakan untuk proses perulangan.





Intinya adalah jika sebuah masalah dapat diselesaikan dengan cara iteratif maka gunakan iteratif. Jika penyelesaian dengan menggunakan iteratif memerlukan algoritma yang relatif rumit maka dapat dicoba dengan pendekatan rekursif karena rekursif memerlukan sumber daya yang lebih banyak


semoga bermanfaat, wassalamu'alaikum..




1 komentar: