rekursif dan iterasi
Definisi tentang Rekursif dan Iterasi
Rekursif adalah fungsi yang memanggil dirinya sendiri secara langsung
ataupun tidak, dan proses pemanggilannya itu disebut rekursi.
Prinsif dan proses rekursi:
·
Memiliki kasus non rekursi(sederhana)
·
Kasus awal diarahkan menuju kasus sederhana
·
Mendefinisikan proses rekursi
Bentuk rekursif :
·
Suatu subrutin/fungsi/
prosedur yang memanggil dirinya sendiri.
·
Bentuk dimana
pemanggilan subrutin terdapat dalam body subrutin
·
Dengan rekursi,
program akan lebih mudah dilihat
Kelebihan perulangan rekursif:
·
Sangat mudah untuk melakukan perulangan dengan batasan yang luas
dalam artian melakukan perulangan dalam skala yang besar
·
Dapat melakukan perulangan dengan batasan fungsi
Kekurangan perulangan rekursif:
·
Tidak bisa melakukan nested loop atau looping bersarang.
·
Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk
persoalan tertentu saja.
·
Memerlukan stack yang lebih besar, sebab setiap kali fungsi
dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan
ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum).
·
Proses agak berbelit-belit karena terdapat pemangilan fungsi
yang berulang-ulang dan pemanggilan data yang ditumpuk
Iterasi adalah sifat
tertentu darialgoritma atau program komputer di mana suatu urutan atau lebih dari
langkah algoritmik dilakukan di loop
program, dapat juga
diartikan sebagai suatu proses atau metode yang digunakan secara berulang-ulang
(pengulangan) dalam menyelesaikan suatu permasalahan matematik.
Kelebihan Iterasi :
·
Dapat mengakomodasi jika terjadi perubahan pada tahapan
pengembangan yang telah dilaksanakan.
·
Dapat disesuaikan agar system bisa dipakai selama hidup software
computer.
·
Cocok untuk pengembangan sistem dan perangkat lunak skala besar.
·
Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi
terhadap resiko setiap tahapan karena system terus bekerja selama proses.
Kekurangan Iterasi :
·
Hanya berlaku untuk Short-Lifetime system.
·
Tahapan proses tidak terlihat sedang berada ditahapan mana suatu
pekerjaan.
·
Memerlukan alat ukur kemajuan secara regular.
·
Perubahan yang sering terjadi dapat merubah struktur system.
·
Memerlukan tenaga ahli dengan kemampuan tinggi.
Perbedaan
dari Rekursif dan Iterasi
Rekursif :
·
Kode program lebih ringkas dan mudah dipahami
·
Membutuhkan alokasi memori yang besar
·
Tidak cocok ketika kinerja tinggi diperlukan,
karena terjadi overhead pemanggilan fungsi dalam jumlah yang relatif besar
·
Merupakan fungsi menggunakan IF
Iterasi :
·
Kode program lebih panjang, untuk beberapa
kasus solusi iteratif lebih sulit diterapkan
·
Relatif lebih kecil alokasi memorinya
·
Cocok diterapkan ketika kinerja aplikasi
harus diterapkan (hanya
ada satu kali pemanggilan fungsi)
·
Dapat berjalan pada program yang terdiri dari
prosedur (rtidak terdapat fungsi) menggunakan FOR, WHILE, DO-WHILE
Contoh
program Rekusif dan Iterasi
·
Rekursif
#include
<iostream.h>
#include <conio.h>
long int faktorial( long
int a);
main(){
long int faktor;
long int n;
cout<<"Masukkan
Nilai Faktorial ";
cin>>n;
faktor = faktorial(n);
cout<<n<<"!
= "<<faktor<<endl;
getch();
}
long int faktorial( long
int a){
if(a==2 || a==0){
return(1);
}else if (a>1){
return(a*faktorial(a-1));
}else{
return(0);
}
}
·
Iterasi
#include <stdio.h>
#include <conio.h>
#include
<iostream>
int main () {
printf("Program
Iterasi Perpangkatan \n\n");
int x,a,hasil;
{
printf ("masukkan
nilai x = "); scanf("%d",&x);
printf("masukkan
nilai a = "); scanf("%d", &a);
for (int i=0; i<a;
i++)
hasil= x*x;
cout<<"hasil
pemangkatan "<<x <<"^" <<a <<" =
" <<hasil;
}
getch();
}
Komentar
Posting Komentar