Minggu, 15 April 2012

Pengertian Iteratif


Mengaju pada posting saya sebelumnya tentang “Apa itu Rekursif ?”, sekarang saya lanjutkan kepada pengertian dari  Iteratif.
seperti yang saya bilang sebelumny,”saya harap jangan COPAST (Copy Paste ) saja” harap pelajari dan pahami ok!. Untuk lebih singkatnya baca saja penjelasan saya di bawah ini :
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.
2. 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;
SUB PROGRAM
(REKURSIF DAN ITERATIF)
PERBEDAAN REKURSIF DAN ITERATIF
Pada pertemuan lalu, telah disinggung sedikit mengenai pengertian dan contoh penggunaan fungsi rekursif. Fungsi Rekursif merupakan proses perulangan dengan cara memanggil dirinya sendiri. Sedangkan fungsi iteratif adalah proses perulangan dengan menggunakan fungsi for, while dan repeat-until (do-while). Berikut contoh penggunaan fungsi rekursif dan iteratif :
Menghitung nilai faktorial dari sebuah bilangann faktorial didefinisikan secara rekursif sebagai berikut
n! = 1 untuk n=0 dan n=1
= n*(n-1)! , n>2Algoritma
           Rekursif Iteratif
Fungsi faktorial(input n:integer):integer
Deskripsi
if (n=0) or (n=1) then
1ßfaktorial
else
n*faktorial(n-1)ßfaktorial Fungsi faktorial(input n:integer):integer
Deskripsi
if (n=0) or (n=1) then
1ßfaktorial
else
i:integer
begin
for i=1 to n do
hasil=hasil*i
end
hasilßfaktorialTranslasi program
REKURSIF ITERATIF

#include
int faktorial(int n){
if ((n==0) || (n==1)){
return 1;
}
else{
return (n*faktorial(n-1));
}
}main(){
int n;
cout<<”Masukan n! = “;cin>>n;
cout<<”hasilnya =”<<
return 0;
} #include
int faktorial(int n){
int hasil=1;
if ((n==0) || (n==1)){
return 1;
}else{
for(int i=1;i<=n;i++){
hasil=hasil*i;
}
return hasil;
}
}
main(){
int n;
cout<<”Masukan n! = “;cin>>n;
cout<<”hasilnya =”<<
return 0;
}
OutputDengan semakin lama Anda berlatih, anda akan mengetahui kapan menggunakan metode perulangan iteratif dan rekursif.
Beberapa kasus berikut diharapkan akan membuka wawasan Anda mengenai program Iteratif dan rekursif.Mencetak suatu kalimat dengan cara iteratif dan rekursif
REKURSIF ITERATIF
#include
#include
void balik(char *k){
if(*k!=”){
balik(&k[1]);
cout<
}
}main(){
char *kata=”Politeknik”;
balik(kata);
cout<
return 0;
} #include
#include
void balik(char *k){
int i;
for(i=strlen(k)-1;i>=0;i–){
cout<
}
}main(){
char *kata=”Politeknik”;
balik(kata);
cout<
return 0;
}
Output
3. Berikan persamaan dan perbedaan antara keduanya! Berikan juga masing –masing kelebihan dan kelemahan!
  • Persamaan antara rekursi dengan iteratif adalah keduanya sama – sama digunakan untuk mengulangi suatu kode atau kumpulan kode pada pembuatan program.
  • Kelebihan dan kelemahan masing-masing jenis perulangan tersebut adalah :
Metode Perulangan
Kelebihan
Kekurangan
Rekursi
  • Dapat mempermudah solusi karena kemampuan memanggil dirinya sendiri
  • Memungkinkan terjadinya overflow pada stack (stack tak lagi mampu menangani permintaan pemanggilan subrutin karena kehabisan memori)
  • Untuk menyelesaikan masalah butuh waktu dan jarak karena butuh fungsi panggilan tambahan
Iteratif
  • Waktu yang digunakan menyelesaikan masalah lebih singkat karena memory yang digunakan lebih sedikit.
  • Tidak dapat memanggil dirinya sendiri.
4. Dalam metode rekursif dikenal istilah base case dan recursive case… Apa artinya ? Dalam potongan program berikut, mana yang disebut base case, dan mana yang disebut recursive case ?
Apa output dari potongan program di atas jika diberikan input bilangan1 = 7 dan bilangan2 = 6? Kemudian ubahlah metode rekursi dari potongan program tersebut menjadi metode iterative!
  • Base case adalah Suatu keadaan pada fungsi rekursif dimana langkah penyelesaiannya sudah diketahui sehingga menghentikan proses rekursi tersebut.
  • Recursive Case adalah Suatu keadaan pada fungsi rekursif yang penyelesaiannya membutuhkan pemanggilan dirinya sendiri hingga keadaan dalam base casenya terpenuhi.
  • Pada potongan program :
Int perkalian(int bilangan1, int bilangan2)

{

if(bilangan2==1)return bilangan1;

else return bilangan1+perkalian(bilangan1,bilangan2-1);

}
Yang merupakan base case adalah :
if(bilangan2==1)return bilangan1;
Yang merupakan recursive case adalah :
else return bilangan1+perkalian(bilangan1,bilangan2-1);
  • Jika potongan program tersebut disusun secara utuh menjadi :
Algoritma Program :
  1. Program menampilkan statemen ”Menghitung perkalian dari 2 bilangan”.
  2. Program menampilkan instruksi kepada user untuk memasukkan input sebanyak 2 kali.
  3. Program memanggil fungsi perkalian.
  4. Fungsi perkalian menghitung hasil perkalian 2 input tersebut. Jika bilangan kedua sama dengan  1, fungsi perkalian akan mengembalikan nilai bilangan pertama ke fungsi main. Jika tidak fungsi perkalian akan melakukan rekursi dengan menjumlahkan bilangan pertama dengan hasil fungsi perkalian selanjutnya dimana bilangan kedua dikurangi 1 tiap kali rekursi.
  5. Fungsi perkalian mengembalikan nilai ke fungsi main.
  6. Program menampilkan output kepada user.
Source Code Program :
#include<stdio.h>

#include<conio.h>

int perkalian(int, int);

void main()

{

int bil1, bil2;

puts("Menghitung perkalian dari 2 bilangan");

printf("Masukkan bilangan pertama: ");

scanf("%d", &bil1);

printf("Masukkan bilangan kedua: ");

scanf("%d", &bil2);

printf("Hasil perkalian antara %d dengan %d adalah: %d\n", bil1, bil2, perkalian(bil1, bil2));

getch();

}

int perkalian(int bilangan1, int bilangan2)

{

if(bilangan2==1)return bilangan1;

else return bilangan1+perkalian(bilangan1,bilangan2-1);

}
  • Program perulangan dengan metode iteratif :
Algoritma Program :
  1. Program menampilkan statemen ”Menghitung perkalian dari 2 bilangan”.
  2. Program menampilkan instruksi kepada user untuk memasukkan input sebanyak 2 kali.
  3. Program memanggil fungsi perkalian.
  4. Fungsi perkalian menghitung hasil perkalian 2 input tersebut dengan menjumlahkan bilangan pertama dengan dirinya sendiri sebanyak bilangan kedua secara looping(iteratif).
  5. Fungsi perkalian mengembalikan nilai ke fungsi main.
  6. Program menampilkan output kepada user.
Source Code Program :
#include<stdio.h>

#include<conio.h>

int perkalian(int, int);

void main()

{

int bil1, bil2;

puts("Menghitung perkalian dari 2 bilangan");

printf("Masukkan bilangan pertama: ");

scanf("%d", &bil1);

printf("Masukkan bilangan kedua: ");

scanf("%d", &bil2);

printf("Hasil perkalian antara %d dengan %d adalah: %d\n", bil1, bil2, perkalian(bil1, bil2));

getch();

}

int perkalian(int bilangan1, int bilangan2)

{

int i, hasil=0;

for(i=1; i<=bilangan2; i++)

hasil+=bilangan1;

return hasil;

}

Tidak ada komentar:

Posting Komentar