function rekursif dan iteratif


Contoh konversi dari function rekursif ke iteratif :
#include<cstdlib>
#include<iostream>
Using namespace std;
Int jumlah(int n) {
Int hasil = 0;
For(int i=0; i<n; i=i+2)
Hasil = hasil+i;
Return hasil;
}
Void cetak(int n) {
For(int i=0; i<n; i=i+2)
Cout<<i<<””;
}

Int main(int arbc, char*argv[])
{
Int n = 10;
Cout<<jumlah(n);
Cetak(n);

System(“PAUSE”);
Return EXIT_SUCCESS;
}



Contoh konversi dari fuction iteratif ke rekursif
#include<cstdlib>
#include<iostream>
Using namespace std;
Int jumlah(int n) {
If(n==0) return (0);
Else return (n-2 + jumlah(n-2));
}
Void cetak(int n) {
If(n!=0) {
Cetak(n-2);
Cout<<n-2<<””;
}
}
Int main(int argc, char*argv[])
{
Int n=10;
Cout<<jumlah(n);
Cetak(n);

System(“PAUSE”)
Return EXIT_SUCCESS;
}




Rangkuman Secara Teori Ke-2 Bentuk Perulangan :
Dalam beberapa situasi, pemecahan secara rekursif maupun secara iteratif mempunyai kelebihan dan kekurangan yang bisa saling diperbandingkan. Cukup sulit untuk menentukan mana yang paling sederhana, paling jelas, paling efisien dan paling mudah dibanding yang lain. Boleh dikatakan pemilihan secara iteratif maupun rekursif merupakan kesenangan seorang programer dan tergantung konteks permasalahan yang akan dipecahkan sesuai dengan kesanggupan yang bersangkutan.
Persamaan antara perulangan iteratif dan rekursif :
·        Iteratif dan rekursif merupakan metode atau teknik didalam perulangan (looping).
·        Sama-sama mengalami perulangan kondisi.
Adapun dalam kedua perulangan terdapat kelebihan dan kekurangan :
Ø  Perulangan iteratif
Kelebihan :
a.      Mudah dipahami dan mudah melakukan debugging ketika ada perulangan yang salah
b.      Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan
Kelemahan :
a.      Tidak dapat menggunakan batasan berupa fungsi
b.      Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri
Ø  Perulangan rekursif
Kelebihan :
a.      Sangat mudah untuk melakukan perulangan dengan batasan yang luas
b.      Dapat melakukan perulangan dengan batasan fungsi
Kekurangan :
a.      Tidak bisa melakukan looping bersarang.
b.      Membuat fungsi sulit untuk dipahami.
c.      Proses agak berbelit-belit karena terdapat pemanggilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.

Leave reply

Back to Top