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.
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:
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