๐ Daftar Isi
Special Case Pada Rekursi
Seperti yang telah bahas pada artikel-artikel sebelumnya bahwa sub program rekursif akan memanggil dirinya sendiri selama kondisi pemanggilan dipenuhi. Dengan melihat sifat sub program rekursif tersebut maka sub program rekursif harus memiliki :
- kondisi yang menyebabkan pemanggilan dirinya berhenti (disebut kondisi khusus atau special condition)
- Pemanggilan diri sub program (yaitu bila kondisi khusus tidak dipenuhi)
Secara umum bentuk dari sub progam rekursif memiliki statemen kondisional:
if kondisi khusus tak dipenuhi
then panggil diri-sendiri dengan penyesuaian parameter
else lakukan instruksi yang akan dieksekusi bila kondisi khusus dipenuhi
atau
if kondisi khusus terpenuhi
then lakukan instruksi yang akan dieksekusi bila kondisi khusus dipenuhi
else panggil diri-sendiri dengan penyesuaian parameter
Sub 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 jika dibandingkan denga sub program iteratif.
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
(misalnya dalam pencarian/searching, yang mungkin akan dibahas pada pertemuanpertemuan yang akan datang).
Perancangan Algoritma Rekursi
Dalam merancang suatu algoritma rekursif, strategi yang umum digunakan adalah โDivide and Conquerโ. Terdapat beberapa pertanyaan yang harus dijawab seperti:
- Bagaimana kita dapat memecah suatu masalah menjadi beberapa masalah sama dalam versi yang lebih kecil.
- Bagaimana setiap pemanggilan fungsi dapat membuat masalah menjadi versi kecil.
- Apa base case dari masalah ini?
- Apakah algoritma akan selalu mencapai kondisi base case?
Untuk dapat membuat fungsi dan prosedur yang bersifat rekursif, berikut adalah langkah-langkahnya:
- Memahami masalah yang akan dipecahkan secara tepat. Langkah ini merupakan langkah awal dari seluruh permasalahan pemrograman.
- Tentukan seberapa besar masalah yang akan dipecahkan menjadi beberapa subprogram.
- Kenali dan tentukan base case dari masalah yang akan dikerjakan secara tidak rekursif.
- Terakhir kenali dan tentukan kondisi umum (general case) dengan benar
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Rekursif, daftar lengkapnya adalah sebagai berikut.