Rekursif vs Iterasi


Dua hal menarik yang membuat saya terkesan memahami istilah perulangan adalah Rekursif dan Iterasi.

pengertian iterasi terlebih dahulu,

Iterasi merupakan suatu teknik perulangan yang digunakan pada penulisan program. Perulangan yang dimaksud adalah seperti perintah-perintah while .. do ataupun for .. do. Perulangan akan terus terjadi selama kondisinya terpenuhi. Yah, perulangan yang umum kita gunakan seperti pada program deret fibonanci, prima, genap, ganjil atau lainnya.

Lalu apa itu Fungsi rekursif ? 

Rekursif sebenarnya merupakan teknik perulangan juga, namun dalam konteks yang berbeda. Fungsi refursif adalah fungsi yang dapat memanggil dirinya sendiri. Maksudnya fungsi tersebut menggunakan dirinya sendiri untuk proses perulangan.

Lalu mengapa ada fungsi rekursif jika sudah ada teknik perulangan itu sendiri? Memang antara iterasi dan rekrusif itu sama-sama digunakan untuk proses perulangan. Namun ada beberapa masalah yang akan lebih mudah jika dipecahkan menggunakan fungsi rekursif. Disamping itu kode program yang menggunakan fungsi rekursif akan lebih mudah dipahami dari pada versi iterasinya.

Untuk lebih jelasnya mengenai perbandingan dari rekursif dan interasi tersebut, mari kita lihat pada tabel berikut ini.

Rekursif

Iterasi

Kode program lebih ringkas dan mudah dipahami

Kode program lebih panjang, untuk beberapa kasus solusi iteratif lebih sulit diterapkan

Membutuhkan alokasi memori yang besar

Relatif lebih kecil alokasi memorinya

Tidak cocok ketika kinerja tinggi diperlukan, karena terjadi overhead pemanggilan fungsi dalam jumlah yang relatif besar

Cocok diterapkan ketika kinerja aplikasi harus diterapkan (hanya ada satu kali pemanggilan fungsi)

Bersambung…

Iklan

tulis comment nya...

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s