Rekursi
Halo sobat, kembali bersama saya di blog ini. kali ini saya ingin berbagi seputar dunia pemrograman, Rekursi. Apa itu rekursi? Apa kegunaannya? langsung saja cek dibawah ini. Happy Learning
Rekursi adalah suatu proses memanggil kembali dirinya sendiri yang dilakukan oleh suatu fungsi dalam pemrograman prosedural, contohnya dalam bahasa pemrograman C++ atau Java. Rekursi itu seperti cermin di depan cermin. Rekursi akan terus berjalan sampai fungsi terpenuhi, maka dari itu dalam sebuah rekursi diperlukan ada blok - blok seperti berikut:
Rekursi adalah suatu proses memanggil kembali dirinya sendiri yang dilakukan oleh suatu fungsi dalam pemrograman prosedural, contohnya dalam bahasa pemrograman C++ atau Java. Rekursi itu seperti cermin di depan cermin. Rekursi akan terus berjalan sampai fungsi terpenuhi, maka dari itu dalam sebuah rekursi diperlukan ada blok - blok seperti berikut:
- Terminate : terminate adalah kode untuk menghentikan sebuah rekursi, kalau tidak rekursi akan terus berjalan tanpa henti.
- Rekursi :Rekursi merupakan kode dalam hal ini sebuah blok program (prosedur, fungsi atau metode) memanggil dirinya sendiri, misalnya ada sebuah fungsi hitung hasil faktorial, bahwa di dalamnya blok kode fungsi itu memanggil dirinya sendiri
Pada kesempatan kali ini saya akan berbagi mengenai implementasi rekursi pada bahasa pemrograman C++, dimana studi kasus nya adalah membuat program faktorial.
Algoritma
Kekurangan Perulangan Rekursif:
• Tidak bisa melakukan nested loop atau looping bersarang.
• Hanya cocok untuk persoalan tertentu saja, banyak fungsi sulit dipahami
• Trace error sulit.
• Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (Stack Overrun).
• Proses yang berbelit - belit terdapat pengulangan data bertumpuk.
Algoritma
#include <iostream>
using namespace std;
long
rekursifaktorial
(int f)
{
if (f==0)
return 1; //merupakan terminate
else
return f * rekursifaktorial(f-1);
//merupakan rekursi
}
int main ()
{
int x;
cout<<
"Masukkan angka yang akan difaktorialkan:";
cin>>x;
cout <<
x << "!="<< rekursifaktorial(x)<<endl;
return 0; }
KELEBIHAN DAN KELEMAHAN REKURSIF
Kelebihan
Perulangan Rekursif :
• Perulangan data yang besar
• Dapat melakukan perulangan dengan batasan fungsi.
• Perulangan data yang besar
• Dapat melakukan perulangan dengan batasan fungsi.
Kekurangan Perulangan Rekursif:
• Tidak bisa melakukan nested loop atau looping bersarang.
• Hanya cocok untuk persoalan tertentu saja, banyak fungsi sulit dipahami
• Trace error sulit.
• Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (Stack Overrun).
• Proses yang berbelit - belit terdapat pengulangan data bertumpuk.
Kesimpulan
Rekursif adalah suatu proses untuk memanggil dirinya sendiri. Rekursif penting dikuasai karena banyak hal dalam penerapannya. Algoritmanya pun mudah diapahami tetapi dalam lebih banyak menggunakan memori
Sekian artikel saya tentang Rekursi, saya harap artikel ini dapat membantu anda. Mohon kritik dan sarannya untuk membangun lebih baik lagi blog ini. Akhir kata saya ucapkan terima kasih sudah berkunjung ^_^
Komentar
Posting Komentar