Iteratif adalah proses perulangan dalam suatu prosedur atau fungsi.
Algoritma iteratif
-Teknik Iteratif merupakan suatu teknik pembuatan algoritma dengan pemanggilan procedure beberapa kali atau hingga suatu kondisi tertentu terpenuhi.
-Tidak ada variabel lokal baru
-Program tidak sederhana
Contoh:
BARISAN BILANGAN FIBBONACI → 1, 1, 2, 3, 5, 8, 13, 21, . . .
Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :
1. Set x, y, n, i, f : integer
2. x ← 1 ; y ← 1
3. If n ⟩ 2 then
begin
4. for i ← 3 to n do
begin
5. F ← x + y
6. x ← y
7. y ← F
end
else
8. F ← x
9. Write(F)
End
Algoritma rekursif
-Teknik Rekursif merupakan salah satu cara pembuatan algoritma dengan pemanggilan procedure atau function yang sama
-Ada variabel lokal baru
-Program menjadi lebih sederhana
Contoh:
BARISAN BILANGAN FIBBONACI → 1, 1, 2, 3, 5, 8, 13, 21, . . .
Teknik Rekursif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :
Procedure F(n : integer) : integer
1. If n ≤ 2 then F(n) = 1
else F(n) = F(n-1) + F(n-2)
Endif
End
#include
#include
int Perkalian(int bilangan1, int bilangan2)
{
int pro=0;
for (int i=bilangan2;i>=1;i–)
{
pro+=bilangan1;
}
return (pro);
}
int main(void)
{
int x,y,N;
scanf(“%d %d”,&x,&y);
N = Perkalian(x,y);
printf(“Hasil : %d”,N);
getch();
return (0);
}
Rekursif merupakan sebuah proses yang terjadi apabila dalam sebuah fungsi terdapat sebuah instruksi yang memanggil (calling) fungsi itu sendiri.
Contoh program:
#include
void hitung(int n);
main()
{
int N, fact;
scanf(“%i”, &N);
fact= hitung(N);
printf(“%i”, fact);
}
void hitung()
{
int x,y;
if(n==0);
return(1);
x=n-1;
y=hitung(x);
return(n*y);
}
Perbedaan dan Persamaan Rekursif dan Iteratif :
a. Persamaan
Sama-sama merupakan bentuk perulangan.
Dilakukan pengecekan kondisi terlebih dahulu sebelum mengulang.
b. Perbedaan
1) Iteratif menggunakan FOR, WHILE, DO-WHILE sedangkan rekursif hanya menggunakan IF.
Kelebihan metode rekursif:
Solusi sangatlah efisien.
Dapat memecahkan masalah yang sulit dengan tahapan yang mudah dan singkat.
Kekurangan metode rekursif:
Sulit dipahami.
Perlu stack besar (stack overflow).
Tidak ada komentar:
Posting Komentar