ALPRO - Pengulangan · WHILE " Kondisi$awal$perulangan$tersebut$adalah$nilai$n$yang$...

24
Imam Fahrur Rozi Algoritma dan Pemrograman PENGULANGAN

Transcript of ALPRO - Pengulangan · WHILE " Kondisi$awal$perulangan$tersebut$adalah$nilai$n$yang$...

Imam  Fahrur  Rozi  

Algoritma  dan  Pemrograman

PENGULANGAN

KOMPETENSI

v Memahami  kapan  pengulangan  digunakan  dalam  program  v Memahami  tentang  konsep  pengulangan  v Menguasai  cara  mengimplementasikan  konsep  pengulangan  

dalam  program  menggunakan  C++  

PENGULANGAN

²   Pengulangan  dilakukan  untuk  mengulang  satu  atau  beberapa  statement,  sebanyak  n  kali  atau  selama  kondisi  yang  menjadi  syarat  pengulangan  terpenuhi.  

² KarakterisBk  pengulangan”  ² Ada  kondisi  awal  atau  BBk  awal  pengulangan  ² Ada  syarat  pengulangan.  Jika  syarat  tersebut  masih  terpenuhi,  maka  

pengulangan  masih  akan  terus  berjalan.  Pengulangan  berhenB  saat  syarat  tersebut  sudah  Bdak  terpenuhi  

² Ada  step  atau  tahap  pengulangan  

PENGULANGAN

² Dalam  C++  terdapat  3  metode  untuk  mengimplementasikan  pengulangan:  ² while()  {……}  ² do{……..}while()  ²  for(){……..}  

WHILE

²   Format  while(boolean  expression)  

 statement;  atau  while(boolean  expression){  

 statement;    statement;    statement;  

}    

WHILE - Contoh

#include  <iostream.h>    int  main  ()  {            int  n;            cout  <<  "Enter  the  star?ng  number  >  ";            cin  >>  n;              while  (n>0)  {                        cout  <<  n  <<  ",  ";                      -­‐-­‐n;                }                  cout  <<  "FIRE!\n";                return  0;  }  

1.  Nilai  n  mendapat  masukan  dari  user  2.  Dilakukan  pengecekan  untk  syarat  atau  

kondisi  while  yaitu  n>0.  Dari  hasil  pengecekan  ini  ada  2  kemungkinan  hasil  yaitu:  

–  True  :  akan  dilanjutkan  ke  tahap  3  –  False  :  akan  dilanjutkan  ke  tahap  5  

3.  Eksekusi  statement:  cout<<n<<“,”;  dan  -­‐  -­‐  n;  

4.  Akhir  blok  perulangan  dan  kembali  ke  tahap  2  

5.  Keluar  dari  blokp  erulangan  dan  cetak  “FIRE”  

WHILE

² Kondisi  awal  perulangan  tersebut  adalah  nilai  n  yang  dimasukkan  oleh  user.  

² Perulangan  akan  terus  berjalan  jika  kondisi  n>0  masih  terpenuhi  atau  true.  

² Agar  perulangan  berhenB  pada  suatu  saat  tertentu,  maka  diperlukan  step  perulangan.  Step  perulangan  ini  yang  pada  saat  tertentu  akan  mengakibatkan  syarat  perulangan  menjadi  false  dan  perulangan  berhen?.  Pada  contoh  adalah  -­‐-­‐n.  

² Misal  awalnya  nilai  n  yang  dimasukkan  adalah  10,  maka  seBap  kali  perulangan      -­‐-­‐n  akan  menyebabkan  nilai  n  berkurang  satu  seBap  kali  berulang.  Hingga  suatu  saat  n  nilainya  0  dan  perulangan  berakhir.  

WHILE

KarakterisBk  while()  adalah:    1.  Dilakukan  pengecekan  kondisi  terlebih  dahulu  sebelum  

dilakukan  perulangan.    Jika    kondisi  yang  dicek  bernilai  benar  (true)  maka  perulangan  akan  dilakukan.    

2.  Blok  statement  Bdak  harus  ada.    Struktur  tanpa  statement  akan  tetap  dilakukan  selama  kondisi  masih  true.    

FOR

Format  penulisan  for:  for(inisialisasi;  kondisi_perulangan;  step_perulangan)    statement;  

 atau:  for(inisialisasi;  kondisi_perulangan;  step_perulangan){    statement;    statement;  

}    

FOR

for(inisialisasi;  kondisi_perulangan;  step_perulangan)    statement;  

Cara  kerja  1.  Inisialisasi  dieksekusi.  Biasanya  digunakan  untuk  memberikan  

nilai  awal  variabel  yang  digunakan  sbg  counter  perulangan.  Inisialisasi  hanya  dieksekusi  1  kali  saja  

2.  Kondisi  dicek.  Jika  benar,  maka  ke  tahap  3.  Jika  salah  akan  keluar  dari  blok  perulangan  (tahap  5)  

3.  Masuk  ke  blok  perulangan  dan  statement2  yag  ada  ddi  dalamnya  akan  dieksekusi  

4.  Step  perulangan  dieksekusi,  dan  akan  kembali  ke  tahap  2  5.  Keluar  dari  perulangan  

FOR - Contoh

#include  <iostream.h>    int  main  ()  {          for  (int  n=10;  n>0;  n-­‐-­‐)  {                      cout  <<  n  <<  ",  ";            }              cout  <<  "FIRE!\n";              return  0;  }  

FOR

Ekspresi  inisialisasi  dan  ekspresi  step  perulangan  bersifat  opsional  (boleh  Bdak  ada).  Meski  demikian,  tanda  ;  (semicolon)  yang  memisahkan  antar  ekspresi  dalam  for  harus  tetap  ada  

Contoh:  •  for(;n<10;)  :  jika  menghendaki  Bdak  ada  inisialisasi  dan  step  

perulangan  •  for(;n<10;n++)  :  jika  menghendaki  Bdak  ada  inisialisasi,  

mungkin  inisialisasi  sudah  dilakukan  sebelumnya,  misal  int  n  =  0;  for(;n<10;n++){        …..  }  

 

FOR

Dalam  for  juga  memungkinkan  untuk  menuliskan  lebih  dari  satu  proses  inisialisasi  atau  lebih  dari  satu  step  perulangan,  yaitu  dengan  menggunakan  tanda  koma  (,)  

Contoh:  for  (  n=0,  i=100  ;  n!=i  ;  n++,  i-­‐-­‐  )  {        …....  }  

Loop  akan  berulang  50  kali  

KESETARAAN FOR DAN WHILE

DO-WHILE

Format  penulisan  do-­‐while:  do    statement;  

while(boolean  expression);    atau:  do{    statement;    statement;  

}while(boolean  expression);    

•  Statement  dijalankan  dulu  •  Pengecekan  kondisi  perulangan  

dilakukan  di  akhir  blok  perulangan.  

•  Selama  kondisi  bernilai  true,  maka  akan  perulangan  akan  kembali  dilakukan  

DO-WHILE

#include  <iostream.h>    int  main  ()  {            int  n;            cout  <<  "Enter  the  star?ng  number  >  ";            cin  >>  n;            do  {                        cout  <<  n  <<  ",  ";                      -­‐-­‐n;                }  while  (n>0)  ;                  cout  <<  "FIRE!\n";                return  0;  }  

DO-WHILE

•  Pada  pengulangan  while,  statement  atau  block  statement  mungkin  Bdak  akan  pernah  dilaksanakan  bila  nilai  ekspresi  boolen  false,  karena  operasi  pengulangan  diawali  dengan  mengeksekusi  ekspresi  boolean.  

•  Pada  pengulangan  do-­‐while  statement  atau  block  statement  pasB  dikerjakan  minimal  satu  kali,  karena  ekspresi  boolean  baru  diuji  pada  akhir  blok  pengulangan.  

LOOP BERSARANG – NESTED LOOP

CondiBon  1  

CondiBon  2  

true  

Body  

true  

false  false  

•  Mirip  seperB  NESTED  IF  •  Loop  yang  ada  di  dalam  Loop  yang  lain.  

LOOP BERSARANG – NESTED LOOP

#include  <iostream.h>  int  main(){  

 int  x;    x=5;    for(int  i=1;i<=x;i++){      for(int  j=1;j<=i;j++){        cout<<“*”;      }      cout<<endl;    }  

}  

*  **  ***  ****  *****  

BREAK

•  Sintaks  break;  digunakan  untuk  keluar  dari  blok  perulangan  for,  while  ataupun  do-­‐while,  atau  juga  blok  switch  yang  sudah  dibahas  pada  pertemuan  sebelumnya.  

 

BREAK

#include  <iostream.h>  int  main  ()  {      int  n;      for  (n=10;  n>0;  n-­‐-­‐)      {          cout  <<  n  <<  ",  ";          if  (n==3)          {              cout  <<  "countdown  aborted!";              break;          }      }      return  0;  }  

10,  9,  8,  7,  6,  5,  4,  3,  countdown  aborted!  

CONTINUE

•  Sintaks  con?nue;  digunakan  untuk  melanjutkan  ke  tahap  perulangan  berikutnya,  dan  Bnggalkan  sisa  instruksi  lain  yang  ada  di  dalam  blok  perulangan  

 

BREAK

#include  <iostream.h>    int  main  ()  {      for  (int  n=10;  n>0;  n-­‐-­‐)  {                if  (n==5)                                  con?nue;              cout  <<  n  <<  ",  ";      }      cout  <<  "FIRE!\n";      return  0;  }  

10,  9,  8,  7,  6,  4,  3,  2,  1,  FIRE!  

Selamat  Belajar    

 

Algoritma  dan  Pemrograman    

Serious,  Focus,  stay  cool  &  calm  JJJJJJJJJ