fbpx

Algoritma dan Pemrogaman : Special Case Pada Rekursi dan Perancangan Algoritma Rekursif

๐Ÿ“‹ 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 :

  1. kondisi yang menyebabkan pemanggilan dirinya berhenti (disebut kondisi khusus atau special condition)
  2. 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.


Tonton juga video pilihan dari kami berikut ini

Bagikan ke teman-teman Anda

Contact Us

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site
error: Content is protected !!