Minggu, 03 Juni 2012

PERBEDAAN ALGORITMA ITERATIF DAN REKURSIF


PERBEDAAN ALGORITMA ITERATIF DAN REKURSIF
A. ITERATIF
1.Pengertian    iteratif
Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok instruksi di mana perulangan tersebut akan berhenti jika batasan syarat sudah tidak terpenuhi.
Kelebihan Perulangan Iteratif
§  Mudah dipahami dan mudah melakukan debugging ketika ada perulangan yang salah.
§  Dapat melakukan nested loop atau yang disebut dengan looping bersarang.
§  Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan.
§  Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas.
Kelemahan Perulangan Iteratif:
§  Tidak dapat menggunakan batasan berupa fungsi
§  Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan  itu sendiri.
program 1
Bentuk fungsi 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 argc, char *argv[])
{
int n = 10;
cout << jumlah(n);
cetak(n);
system(“PAUSE”);
return EXIT_SUCCESS;
}

B.REKURSIF
1.Pengertian Rekursif
Rekursif dapat diartikan bahwa suatu proses yang  bisa memanggil dirinya sendiri. sedikit menyimpang dari pengertian ada sedikit pendapat tentang Rekursif salah satunya adalah Menurut definisi dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir.
Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.
Kelebihan Perulangan Rekursif
1.      Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar
2.      Dapat melakukan perulangan dengan batasan fungsi

Kekurangan Perulangan Rekursif:
1.      Tidak bisa melakukan nested loop atau looping bersarang.
2.       Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
3.       Trace error sulit.
4.      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).
5.       Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.
jika pada program 1, diubah kedalam bentuk rekursif :
Dalam bentuk rekursif :
#include <cstdlib>                                                      return EXIT_SUCCESS;
#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”);

Tidak ada komentar:

Posting Komentar