Rekursif
Metode rekursif adalah metode yang mengulang dirinya sendiri. Metode ini memanggil dirinya sendiri untuk melakukan proses berulang-ulang. Kasus sederhana yang sering muncul adalah proses berulang-ulang menghitung hasil factorial. Misalnya adalah factorial dari 5 adalah 1 x 2 x 3 x 4 x 5. Dari proses itu kita ketahui bahwa untuk menghitung factorial 5 manualnya seperti 1 x 2 = 2, lalu hasil 2 ini dikalikan 3 sehingga hasilnya adalah 6, lalu hasil 6 ini dikalikan lagi dengan 4 sehingga hasilnya adalah 36, lalu hasil 36 ini dikalikan dengan 5 sehingga hasilnya adalah 120.
Nah inilah yang dinamakan rekursif, hasil dari proses awal digunakan lagi untuk proses berikutnya sampai batas yang diinginkan. Dengan adanya fungsi, akan meningkatkan readability (kemudahan untuk dibaca), modularity (pemecahan program menjadi modul-modul) dan reusability (dapat digunakan kembali) program kita.
Nah inilah yang dinamakan rekursif, hasil dari proses awal digunakan lagi untuk proses berikutnya sampai batas yang diinginkan. Dengan adanya fungsi, akan meningkatkan readability (kemudahan untuk dibaca), modularity (pemecahan program menjadi modul-modul) dan reusability (dapat digunakan kembali) program kita.
Ada beberapa hal yang patut diperhatikan bagi seorang programmer ketika membuat program aplikasi yang memanfaatkan fungsi rekursif. Pemanggilan fungsi rekursif akan menjadi sebuah bug yang tidak terampuni, jika variable yang digunakan sebagai kondisi yang menghentikan rekursif tersebut berisi kondisi yang harus melakukan proses pemanggilan fungsi tersebut secara berulang-ulang tanpa henti. Untuk kondisi tertentu proses in bisa mengakibatkan sebuah program menghabiskan memory dan mungkin kinerja prosessor itu sendiri. Jika fungsi tersebut terpasang dalam program service, bisa jadi sebuah komputer harus mematikan program secara paksa melalui task manager (jika di windows) atau mungkin harus dilakukan restart.
Ciri-ciri rekursif
• Fungsi yang berisi definisi dirinya sendiri
• Fungsi yang memanggil dirinya sendiri
• Prosesnya terjadi secara berulang-ulang
• Yang perlu diperhatikan adalah “stopping role”
• Sisi positif dan negatif :
+ Karena program lebih singkat dan ada beberapa kasus yang lebih mudah menggunakan fungsi yang rekursif
- Memakan memori yang lebih besar, karena setiap kali bagi dirinya dipanggil, dibutuhkan sejumlah ruang memori tambahan.
- Mengorbankan efisiensi dan kecepatan dari kerja
Comments
Post a Comment