Anda di halaman 1dari 31

PERTEMUAN 9

HENDRI ARDIANSYAH
initialization 1
init; 1
do
{
- Loop 2 2 Kerjakan
- loop
chng of cond 3
} while ( cond ); 4 Change
- condition 3
Next Intruction 5
-
1. Inizialization false
Lakukan inisialisasi kondisi, atau memberi nilai awal kondisi cond
4
2. Lalu kerjakan loop True
Kerjakan loop no. 2, yang dilanjutkan dengan intruksi no. 3 yang mempengaruhi
nilai kondisi

3. Setelah mengerjakan loop,


Nilai kemudian periksa condition 4 yang ada pada intruksi while Next Intruction 5
a. Bila kondisi bernilai true, maka mengerjakan loop no. 2 dan seterusnya
b. Bila kondisi bernilai false, keluar, dan langsung mengerjakan next intruktion 5
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
main() main() main()
{ { {
for(I=1; I<=5; I++) int I = 1; int I=1;
{ while( I<=5 ) do
cout << endl<<“Pamulang"; { {
} cout << endl<<“Pamulang"; cout << endl<<“Pamulang";
I = I+1; I = I + 1;
cout<<“Jakarta”; } } while( I <= 5 );
}
cout<<“Jakarta”; cout<<“Jakarta”;
Bila Program di atas dijalankan, maka } }
akan tercetak : Pamulang
Bila Program di atas dijalankan, maka Bila Program di atas dijalankan, maka
Pamulang akan tercetak : Pamulang akan tercetak : Pamulang
Pamulang
Pamulang Pamulang
Pamulang
Pamulang Pamulang
Pamulang
Pamulang Pamulang
Jakarta
Pamulang Pamulang
Jakarta Jakarta
I=1 I=1 I=1

False False
I <= 5 I <= 5
cout “Pamulang”

True Terlihat True


Untuk
cout “Pamulang” For dan while cout “Pamulang” I=I+1
Alur
algoritmanya
sama True
I=I+1 I=I+1
I <= 5

False

cout “Jakarta” cout “Jakarta” cout “Jakarta”


for(I=1; I>=5; I++) int I = 1; int I=1;
{ while( I>=5 ) do
cout << i ; { {
} cout << i ; cout << i ;
I = I+1; I = I + 1;
Bila Program di atas dijalankan, maka } } while( I >= 5 );
tidak ada yang tercetak :
Bila Program di atas dijalankan, maka Bila Program di atas dijalankan, maka
tidak ada yang tercetak : akan tercetak : 1

I=1 Pada if dan while I=1


Kondisi langsung false.
Pada do while()
(loop tidak dikerjakan,
I >= 5 sehingga tidak ada minimal
mencetak/mengerjakan loop cout
False yang tercetak)
True satu kali, karena loop
dikerjakan terlebih dahulu,
cout I=I+1
kemudian baru memeriksa
Terlihat perbedaan antara kondisi
if dan while True
I=I+1 dengan do while I <= 5

False
I=1
#include<iostream>
using namespace std;
main()
{ Nilai Tercetak Kondisi
i++
int i=1; i “Unpam” (i <= 5)
cout “Unpam”
do 1 Unpam 2 True
{
2 Unpam 3 True
cout << endl<<“Unpam";
I=I+1
i = i+1; 3 Unpam 4 True
} while( i<=5 ); 4 Unpam 5 True

} True 5 Unpam 6 False


I <= 5
Tercetak : Unpam
Unpam False
Unpam
Unpam
Unpam
#include<iostream> Tercetak :
using namespace std;
main() 1
{ 2
int i; 3 i=1
i=1;
4
do
{ 5
cout << endl << i ;
i++; Cetak i
}
while( i<=5 );
}
i = i+1
Nilai Tercetak Kondisi
i++
i cout<< i (i <= 5)
false
1 1 2 True
i<=5
2 2 3 True
3 3 4 True
True
4 4 5 True
5 5 6 False
#include<iostream> Tercetak :
using namespace std;
main() 2
{ 3
int i; 4 i=1
i=1; 5
do
6
{
i++;
i ditambah 1 lebih dulu, i = i+1
cout << endl << i ; i
} kemudian baru di cetak
while( i<=5 );
}
Cetak

Nilai Tercetak Kondisi


i++
i cout<< i (i <= 5)
false
1 2 2 True
i<=5
2 3 3 True
3 4 4 True
True
4 5 5 True
5 6 6 False
#include<iostream>
using namespace std; Nilai Tercetak Kondisi
i++
main() i cout<< i (i <= 10)
{
int i; 1 1 2 True
i=1; 2 2 3 True
do
{ 3 3 4 True
cout << endl << i ; 4 4 5 True
i++;
} while( i<=10 ); 5 5 6 True
} 6 6 7 True
Tercetak : 7 7 8 True
8 8 9 True
1
2 9 9 10 True
3 10 10 11 False
4
5
6
7
8
9
10
&
Pernyataan break dimaksudkan untuk memaksa keluar dari loop (for, while, do-while)

#include<iostream> start
using namespace std;
main() Tercetak : i=1
{
int i; 1 i++
for(i=1; i<=10; i++) 2
{ 3
if(i==5) 4 true False
i<=10 i==5
Cetak
break; Keluar dari loop i
cout << "\n“ << i ;
} False break true
cout<<“Keluar dari loop” ;
}
Pada saat i=5 maka eksekusi langsung keluar Cetak Keluar dari loop
dari loop , akibatnya pernyataan :
cout<<i<<endl;
i++;
tidak dijalankan saat i = 5 end
Dalam lembar dokumen ada 10 buah bilangan integer, susun program untuk menginput
CONTOH bilangan-bilangan tersebut dan mencetak totalnya. Yang di input belum tentu
SOAL semua(10) bilangan. Walaupun belum sepuluh buah bilangan tapi totalya sudah > 1000
maka berhenti menginput, langsung mencetak total dan proses selesai. Tetapi bila
totalnya belum >1000, barulah menginput semua (10) bilangan.

#include<iostream> #include<iostream>
using namespace std; using namespace std;
main() main()
{ {
int i, N, T; int i, N, T;
T=0; i=1; T=0; i=1;
for(i=1; i<=10; i++) while(i<=10)
{ {
cout<<“Masukkan Nilai : ”; cin>>N;
cin>>N; T = T + N;
T = T + N; if(T>1000)
if(T>1000) break;
break; i++;
}
} cout<<“Total :”<<T ;
cout<<“Total : ”<<T; }
}
T=0 ATAU T=0

i=1 i=1

False break i++


i <=10
False
true break
T>1000
true
baca N

T=T+N Kedua Flowchart ini berlaku T=T+N


baik untuk for maupun untuk
true
T>1000 while baca N

False break
i++
true
i <=10

Keluar dari loop False

cetak T cetak T
Pernyataan continue dimaksudkan untuk memaksa melanjutkan loop (for, while, do-while)
for()
#include<iostream> start
Tercetak :
using namespace std;
main() 1 i=1
{ 2
int i; 3 i++
for(i=1; i<=10; i++) 4
{ continue
6
if(i==5) 7 true
i<=10 i==5
Cetak
continue; 8 False i
cout << "\n“ << i ; 9
} False
10
cout<<“penggunaan
\“continue\” melewatkan cetak 5” ;
}
end
Pada saat i=5 maka i dinaikan 1 dan loop for diulangi lagi ,
akibatnya pernyataan :
cout<<i<<endl;  dilewatkan
start
while()
Tercetak :
#include<iostream> i=1
using namespace std; 1
main() i++
2
{ 3 continue
int i=1; 4
while(i<=10) true Cetak
6 i<=10 i==5
{ 7 False i
if(i==5) 8 False
{ 9
i++ 10
continue;
} end
cout << "\n“ << i ;
i++ Pada saat i=5 maka i dinaikan 1 dan kondisi while diuji lagi ,
} akibatnya pernyataan :
cout<<endl<<“penggunaan cout<<i<<endl;
\“continue\” melewatkan cetak 5” ; i++;
} tidak dijalankan saat i sama dengan 5
Program A
Dalam Program A ada loop yang di kerjakan sebanyak 3 kali, dan penggalan program B
#include<iostream> sendiri adalah loop yang dikerjakan sebanyak 5 kali.
using namespace std; Bila penggalan program B “dimasukkan” ke dalam program A menggantikan kotak 1,
main() maka terbentuk suatu loop didalam loop yang biasa disebut NESTED LOOP atau loop
{ tersarang
int i, j;
for(i=1; i<=3; i++) #include<iostream>
{ using namespace std;
main()
- {
- 1 int i, j;
- for(i=1; i<=3; i++)
} {
}
for(j=1; j<=5; j++) Outer Loop
{ (loop Bagian Luar)
Program B
-
for(j=1; j<=5; j++) Inner Loop
-
{ (loop Bagian dalam)
-
-
} Intruksi-intruksi yang ada
- 2 dalam loop ini akan
- dilaksanakan 3x5 kali = 15
} }
kali
}
#include<iostream>
using namespace std;
Dalam bentuk while()
main()
{ #include<iostream>
int i; using namespace std;
i =1; main()
while(i <=3 ) {
{ int i, j;
i =1;
- while(i<=3)
- {
i++;
int j=1
} Outer Loop
while(j<=5)
} (loop Bagian Luar)
{
-
- Inner Loop
int j = 1; j++; (loop Bagian dalam)
while( j<=5 ) }
{ i++;
- }
- }
j++;
}
Nested Loop gabungan for() dan while()
#include<iostream> #include<iostream>
using namespace std; using namespace std;
main() main()
{ {
int i, j; int i, j;
i =1; for(i=1; i<=3; i++)
while(i<=3) {
{ Outer Loop
j=1;
(loop Bagian
for(j=1; j>=5;j++) Outer Loop while(j<=5)
Luar)
{ (loop Bagian Luar) {
- -
- Inner Loop
-
Inner Loop j++; (loop Bagian
-
(loop Bagian dalam) } dalam)
}
i++; }
} }
}
Outer Loop menggunakan for()
Outer Loop menggunakan while() inner loop mennfunakan while()
inner loop menggunakan for()
i=1 Flowchart nested loop
False
i <=3 i=1
True

j=1
True
i <=3 j=1
False
j <= 5
Outer loop

False
True

Outer loop
Inner True Inner
Loop J<=5
Loop
False
j++

j++
i++
i++
Keluar
Keluar
Contoh Penggunaan Nested Loop
Tercetak ”Unpam” Nilai i Nilai J
sebanyak 15 kali : 1  (unpam)
Contoh 1 Unpam 2  (unpam)
Unpam 1 3  (unpam)
#include<iostream> Unpam 4  (unpam)
using namespace std; Unpam 5 (unpam), j = 6, keluar dari
main() Unpam 1  (unpam) inner loop
{ int i, j; Unpam 2  (unpam)
for(i=1;i<=3;i++) Unpam 2 3  (unpam)
{ for(j=1; j<=5;j++) Unpam 4  (unpam)
{ Unpam 5  (unpam), j = 6, keluar dari
cout<<“\nUnpam”; Unpam inner loop
1  (unpam)
} Unpam
2  (unpam)
} Unpam
3 3  (unpam)
} Unpam
Unpam 4 (unpam)
Unpam 5  (unpam) j = 6, keluar dari
inner loop
i = 4, keluar dari outer loop
Contoh Penggunaan Nested Loop
Contoh 2 Contoh 3 Tercetak : Contoh 4

#include<iostream> #include<iostream> 1 #include<iostream>


using namespace std; using namespace std; 2 using namespace std;
main() main() 3 main()
{ int i, j; { int i, j; 4 { int i, j;
for(i=1;i<=3;i++) for(i=1;i<=3;i++) 5 for(i=1;i<=3;i++)
{ for(j=1; j<=5;j++) { for(j=1; j<=5;j++) 1 { for(j=1; j<=5;j++)
{ { 2 {
cout<<j; cout<<“\n”<<j; 3 cout<<j;
} } 4 }
} } 5 cout<<“\n”;
} } 1 }
2 }
Tercetak : 3 Tercetak :
4 Setiap 5 kali
123451234512345 12345 mencetak nilai j,
5
Turun 1 baris
12345
dengan intruksi
12345 cout<<“\n”
Contoh Penggunaan Nested Loop
Contoh 5 Contoh 6

#include<iostream> #include<iostream>
using namespace std; using namespace std;
main() main()
{ int i, j; { int i, j;
for(i=1;i<=3;i++) for(i=1;i<=3;i++)
{ for(j=1; j<=5;j++) { for(j=1; j<=5;j++)
{ {
cout<<i; Yang di cetak cout<<i;
nilai i Yang di cetak
} } nilai i
} cout<<“\n”;
} }
}
Tercetak :
Tercetak :
111112222233333
11111
22222
33333
Contoh Penggunaan Nested Loop
Contoh 7 Contoh 8
i j
#include<iostream> #include<iostream>
using namespace std; using namespace std; 1 1
main() main() 2
{ int i, j; { int i, j; 3
for(i=1;i<=3;i++) for(i=1;i<=3;i++) 4
{ for(j=i; j<=5;j++) Nilai { for(j=i; j<=5;j++) Nilai 5,
{ awal j=i { awal j=i 2 2 Nilai awal j
cout<<j; cout<<j; 3 Dibuat =
} } 4 nilai i
} cout<<“\n”; 5,
} } 3 3
} 4
Tercetak : 5
Tercetak :
123452345345
12345
2345
345
Outer LOOP

Inner LOOP

i i<=3 j J<=5 Cetakt J J++ i++


1 True 1 True 1 2 2
2 True 2 3
3 True 3 4
4 True 4 5
5, True 5 6
6 False
Nilai awal j 2 True 2 true 2 3 3
Dibuat = nilai i 3 true 3 4
4 true 4 5
5, True 5 6
6 false
3 True 3 true 3 4 4
4 True 4 5
5, True 5 6
6 false
4 false Keluar loop
00 01 02 03 04 05
#include <iostream> 10 11 12 13 14 15
using namespace std; 20 21 22 23 24 25
main () 30 31 32 33 34 35
{ 40 41 42 43 44 45
int i, j;
50 51 52 53 54 55
for(i=0; i<=5; i++)
{
Nilai i Nilai j dalam inner loop
for(j=0; j <= 5; j++)
i=0 j=012345
{
cout << i << j <<" \t"; i=1 j=012345
} i=2 j=012345
cout <<"\n"; i=3 j=012345
} i=4 j=012345
}
i=5 j=012345
i i<=5 j J<=5 Cetakt i, J J++ i++
0 True 0 True 00 1 1
1 True 01 2
2 True 02 3
3 True 03 4
4 True 04 5
5 True 05 6
6 False
1 True 0 true 10 1 2
1 true 11 2
2 true 12 3
3 True 13 4
4 True 14 5
5 True 15 6
6 False
2 True 0,... 3
3 True 0,... 4
4 True 0,... 5
5 True 0,... 6
6 false Keluar loop
1. Buat Program untuk mencetak output berikut :

a. b. c.
5 4 3 2 1 1 2 3 4 5 00 01 02 03 04 05
4 3 2 1 6 7 8 9 10 11 12 13 14 15
22 23 24 25
3 2 1 11 12 13 14 15
33 34 35
2 1
44 45
1
55
2. Apa yang tecetak jika program di bawah di jalankan, dan buat flowchar dari masing-
masing program. jelaskan

a. b. c.
main() main() main()
{ { {
int I, J, N, X, T; int I, J, N, X, T; int I, J, N, X, T;
T=0; T=0; T=0;
N=5; N=5; N=5;
X=2; X=2; X=2;
for(I=1; I<=5; I+=2) for(I=1; I<=5; I+=2) for(I=1; I<=5; I+=2)
{for(J=I; J<=9; J+=3) {for(J=I; J<=9; J+=3) {for(J=I; J<=9; J+=3)
{ { {
T = T + N; T = T + N; T = T + N;
N = N + X; N = N + X; N = N + X;
X = X + 2; X = X + 2; X = X + 2;
cout<<T; } }
} cout<<endl<<T; }
cout<<endl; } cout<<endl<<T;
} } }
}

Anda mungkin juga menyukai