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.
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.
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..
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..
goodd
BalasHapus(y)