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.
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 :
Kelebihan
Rekursif
+ Karena
program lebih singkat dan ada beberapa kasus yang lebih mudah menggunakan
fungsi yang rekursif
Kekurangan
Rekursif
Memakan
memori yang lebih besar, karena setiap kali bagi dirinya dipanggil, dibutuhkan
sejumlah ruang memori tambahan.
Mengorbankan
efisiensi dan kecepatan dari kerja
"Thank you for nice information
BalasHapusPlease visit our website unimuda and uhamka"