Struktur Perulangan
Struktur Perulangan
PEMROGRAMAN I
TIM PRODI TEKNIK INFORMATIKA UNW
STRUKTUR PERULANGAN
FOR
WHILE
REPEAT UNTIL/DO WHILE
STRUKTUR PERULANGAN
Struktur pengulangan secara umum terdiri dari dua bagian:
1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi
untuk melaksanakan pengulangan.
Kondisi yang mengakibatkan pengulangan berhenti
Dinyatakan oleh sebuah ekspresi logika.
Baik secara explisit ataupun implisit.
2. Badan (body) pengulangan
Bagian algoritma yang diulang.
Pengulangan dilakukan jika statement belum terpenuhi.
STRUKTUR PERULANGAN
Stuktur pengulangan biasanya disertai dengan :
Inisialisasi
Aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
Terminasi
Aksi yang dilakukan setelah pengulangan selesai dilaksanakan.
#include<iostream>
using namespace std;
int main(){
cout<<“HALLO”<<endl;
cout<<“HALLO”<<endl;
cout<<“HALLO”<<endl;
cout<<“HALLO”<<endl;
cout<<“HALLO”<<endl;
}
Catatan :
Ada sekumpulan statement/pernyataan yang perlu dilakukan
berulang-ulang.
Banyaknya perulangan tergantung dari persoalan
– Bagaimana kalau ada banyak bilangan?
– ada 1000 bilangan atau lebih?
Sebuah perulangan dalam algoritma, harus berhenti.
STRUKTUR PERULANGAN
Ada tiga bentuk pernyataan pengulangan yang akan digunakan dalam
yaitu:
1. Pernyataan FOR
2. Pernyataan WHILE
3. Pernyataan REPEAT-UNTIL/DO WHILE
Keterangan :
Ungkapan 1 : memberikan nilai awal untuk variabel pencacah/counter, contoh i = 1.
Ungkapan 2 : Kondisi pengulangan akan berhenti atau tidak.
Ungkapan 3 : pengubahan nilai variabel pencacah untuk mencapai kondisi berhenti
dapat berupa kenaikan/penurunan atau lebih dari satu.
Pernyataan : pernyataan yang akan diulang.
STRUKTUR PERULANGAN
Keterangan :
PROGRAM CetakHALLO Pengulangan sudah ditentukan
{Mencetak ‘HALLO’ sebanyak 5 kali} sebanyak 5 kali.
Menggunakan pernyataan FOR.
DEKLARASI Badan pengulangan hanya berisi
satu buah pernyataan yaitu
i : integer ‘HALLO’.
i adalah peubah pencacah
ALGORITMA /counter.
for i 1 to 5 do {ulangi sebanyak 5 kali} i semula bernilai 1 dan selalu
bertambah 1 setiap
write (‘HALLO’) pengulangan sampai akhirnya I
endfor mencapai 5 yang berarti proses
selesai.
STRUKTUR PERULANGAN
C++
#include <iostream>
using namespace std;
int main(){
int i;
for(i=1;i<=5;i++)
cout<<"HALLO"<<endl;
}
FLOWCHART FOR
i=1
salah
i≤5
Benar
write (i)
i=i+1
end
PERNYATAAN FOR
Ada 2 (dua) jenis pengulangan for, yaitu :
1. Ascending (sifatnya menaik)
Algoritma:
for inisialisasi pencacah/counter nilai awal to nilai akhir do
pernyataan
endfor
C++
for(nilai_awal;kondisi pengulangan;variabel++)
{
pernyataan;
}
PERNYATAAN FOR
2. Descending (sifatnya menurun)
Bentuk umum :
Algoritma:
for inisialisasi pencacah/counter nilai akhir to nilai awal do
pernyataan
endfor
C++
for(nilai akhir;kondisi pengulangan;variable--)
{
pernyataan;
}
PERNYATAAN FOR
PROGRAM Cetak
{Mencetak 1,2,……., N dan N,9,………,1 }
DEKLARASI
N : integer
i : integer
ALGORITMA
read(N)
for i 1 to N do {ulangi sebanyak N kali}
for i N downto 1 do
write (i)
endfor
PERNYATAAN FOR
Sourcecode di C++ :
#include <iostream>
using namespace std;
int main() {
cout<<"PENGULANGAN MENAIK"<<endl;
for (int C=1; C<10; C++) {
cout<<C<<endl;
}
cout<<"PENGULANGAN MENURUN"<<endl;
for (int J=10; J>0; J--) {
cout<<J<<endl;
}
return 0;
}
PERNYATAAN NESTED FOR
struktur pengulangan dapat juga diterapkan pengulangan bersarang (nested
looping). Pengulangan bersarang (nested looping) maksudnya adalah
pengulangan yang didalamnya ada pengulangan lagi
Keterangan :
Struktur while akan memeriksa kondisi pengulangan diawal blok
pengulangan.
pernyataan akan dilaksanakan berulang kali selama kondisi bernilai
benar, jika salah badan pengulangan tidak akan dimasuki yang berarti
pengulangan selesai.
kondisi diakhir pengulangan disebut loop invariant yaitu variable kondisi
yang nilainya sudah tidak berubah lagi.
PERNYATAAN WHILE
PROGRAM Cetak
{Mencetak “Belajar Pemrograman” sebanyak 10 kali}
DEKLARASI
i : integer {pencacah pengulangan}
ALGORITMA
i1 Selama i masih ≤ 10 maka badan pengulangan
masih dimasuki
while i ≤ 10 {ulang selama 10 kali} do
write ( “Belajar Pemrograman yuks”)
i = i+1
endwhile
{ I > 10} (loop invariant)…. Pengulangan dihentikan jika I > 10
PERNYATAAN WHILE
i=1
salah
i ≤ 10
Benar
write (“Belajar
Pemrograman yuks”)
i=i+1
end
PERNYATAAN WHILE
Sourcecode di C++ :
#include <iostream>
Keterangan :
Struktur do while akan memeriksa kondisi pengulangan diakhir blok
pengulangan
Perintah ini ekuivalen dengan repeat until yang ada di algoritma.
PERNYATAAN DO WHILE
PROGRAM Cetak
{Mencetak “Belajar Pemrograman” sebanyak 10 kali}
DEKLARASI
i : integer {pencacah pengulangan}
ALGORITMA
i1
do
write ( “Belajar Pemrograman yuks”)
i = i+1
while i ≤ 10 do {ulang selama 10 kali}
endwhile
PERNYATAAN DO WHILE
Sourcecode di C++ :
#include <iostream>
using namespace std;
int main() {
int C = 0;
do {
cout<<"Belajar pemrograman yuks"<<endl;
C++;
} while (C < 10);
return 0;
}
PERNYATAAN REPEAT
Pernyataan perulangan ini hampir sama dengan pernyataan pengulangan
while, dan biasanya digunakan bila jumlah belum dapat ditentukan pada
saat program ditulis.
Perbedaan pernyataan repeat... until dan while yaitu :
1. Terletak pada pengecekkan kondisi. Jika pada pernyataan while, kondisi
di cek pada awal blok struktur, sedangkan pada pernyataan repeat..until,
kondisi di cek pada akhir blok struktur.
2. Pernyataan while pernyataan selama kondisi masih terpenuhi, sedangkan
pernyataan repeat ..until mengulang pernyataan selama kondisi belum
terpenuhi.
Bentuk umum pernyataan repeat..until adalah sebagai berikut
repeat
pernyataan yang diulang
until kondisi
PERNYATAAN REPEAT
PROGRAM Cetak
{Mencetak “Belajar Pemrograman” sebanyak 10 kali}
DEKLARASI
i : integer {pencacah pengulangan}
ALGORITMA
i1
repeat {ulang selama 10 kali}
write ( “Belajar Pemrograman yuks”)
i = i+1
until i ≤ 10
PERNYATAAN REPEAT
Source Code C++ :
#include <iostream>
DEKLARASI
i : integer
ALGORITMA
for i 1 to 10 do {ulangi sebanyak 10 kali}
write (i)
endfor
JAWABAN
#include <iostream>
using namespace std;
int main (){
int i;
cout << "Penghitung mundur, ketik angka: ";
cin >> i;
do
{
cout << i << ", ";--i;
}
while(i>0);
cout << "Selesai!\n";
return 0;
}
JAWABAN
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int a=0, b, c, jumlah=0, i, n;
cout<<"Masukkan bilangan awal : ";
cin>>a;
cout<<"Masukkan beda : ";
cin>>b;
cout<<"Masukkan jumlah sampai deret ke-n : ";
cin>>n;
cout<<"Deret ke-"<<n<<" : ";
cout<<a<<",";
jumlah=jumlah+a;
for(i=0; i<n-1; i++){
c=a+b;
a=c;
cout<<c<<",";
jumlah=jumlah+c;
}
cout<<"\nJumlah deret ke-"<<n<<" : ";
cout<<jumlah;
getch();
return 0;
}
TERIMA KASIH