Top Banner
50

Penggunaan loop sebagai kerangka dasar algoritma

Jul 18, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Penggunaan loop sebagai kerangka dasar algoritma
Page 2: Penggunaan loop sebagai kerangka dasar algoritma
Page 3: Penggunaan loop sebagai kerangka dasar algoritma

adalah sekelompok instruksi yang dikerjakan secara berulang-ulang

adalah suatu proses yang terjadi secara berulang-ulang

Page 4: Penggunaan loop sebagai kerangka dasar algoritma
Page 5: Penggunaan loop sebagai kerangka dasar algoritma
Page 6: Penggunaan loop sebagai kerangka dasar algoritma

Contoh-1 :

Bila kedua program diatas dijalankan, (diRUN)maka keduanya akan tecetak:

JakartaJakartaJakartaJakartaJakartaSelesai

#include<iostream.h>void main(){int I; for(I=1; I<=5; I=I+1) { cout << "\nJakarta"; } cout << "\nSelesai";}

#include<iostream.h>void main(){int I; I=1; while( I<=5 ) { cout << "\nJakarta"; I = I + 1; } cout << "\nSelesai";}

Page 7: Penggunaan loop sebagai kerangka dasar algoritma

for ( init; cond; chng of cond ) { - - - loop - - - }

Bentuk Umum

init;while ( cond ) { - - - loop - - - chng of cond }

cond = conditionSuatu pernyataan yang mengandung nilai BENAR (true) atau SALAH (False)

init = inisialisaiInstruksi pemberian suatu nilai yang mempengaruhi nilai condition. Pada proses yang normal, pemberian nilai awal ini akan menyebabkan condition bernilai true.Instruksi ini hanya pernah satu kali dilaksanakan, yaitu hanya pada saat awal

Chng of cond = Change of condition

Suatu instruksi yang dapat mempengaruhi nilai condition. Pada proses yang normal, perubahan nilai disini suatu saat akan membuat nilai condition = false

Loop adalah sekumpulan instruksi yang rencananya akan dikerjakan secara berulang-ulang

Page 8: Penggunaan loop sebagai kerangka dasar algoritma

for ( init; cond; chng of cond ) { - - - loop - - - }

Bentuk Umum

init;while ( cond ) { - - - loop - - - chng of cond }

conditionfalse

true

------

initialization

Change Condition

------

Next instruction

Kerjakanloop

Page 9: Penggunaan loop sebagai kerangka dasar algoritma

for ( init; cond; chng of cond ) { - - - loop - - - }

init;while ( cond ) { - - - loop - - - chng of cond }

false

true

initialization

cond

Chg ofcond

Kerjakanloop

208

Page 10: Penggunaan loop sebagai kerangka dasar algoritma

for ( init; cond; chng of cond ) { - - - loop - - - }

init;while ( cond ) { - - - loop - - - chng of cond }

cond

false

true

init

Chg ofconf

Kerjakanloop

208

Page 11: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

}

}

#include<iostream.h>

void main()

{ int I;

I = 1;

while(I<=5)

{

I=I+1;

}

}

for()

while()

looploop

Berapa Kali Loop Dikerjakan ?

Page 12: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

}

}

#include<iostream.h>

void main()

{ int I;

I = 1;

while(I<=5)

{

I=I+1;

}

}

for()

while()

looploop

Jawab : 5 kali

Page 13: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

cout << “\nJakarta” ;

}

}

#include<iostream.h>void main(){ int I; I = 1; while(I<=5) { cout << “\nJakarta”; I=I+1; }}

for()while()

Apa yang tercetak bila programdiatas dikerjakan

211

Page 14: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

cout << “\nJakarta” ;

}

}

#include<iostream.h>void main(){ int I; I = 1; while(I<=5) { cout << “\nJakarta”; I=I+1; }}

for()while()

Tercetak :

211

JakartaJakartaJakartaJakartaJakarta

Tercetak : JakartaJakartaJakartaJakartaJakarta

Contoh-2 :

Page 15: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

cout << "\n" << I;

}

}

#include<iostream.h>

void main()

{ int I;

I = 1;

while(I<=5)

{

cout << "\n" << I;

I=I+1;

}

}

for()

while()

211

Apa yang tercetak bila programdiatas dijalankan

Contoh-3 :

Page 16: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

cout << "\n" << I;

}

}

#include<iostream.h>

void main()

{ int I;

I = 1;

while(I<=5)

{

cout << "\n" << I;

I=I+1;

}

}

for()

while()

Tercetak : 12345

211

I

1

2

3

4

5

6

1

2

3

4

5

Tercetak

Tercetak : 12345

Page 17: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

cout << "\n" << I;

}

}

for()

Tercetak : 12345

I<=5

I = 1

I = I+1

printf I

false

true

Page 18: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{cout << "\n" << I;

}

}

I<=5

I = 1

I = I+1

print I

false

true

for()Tercetak : 1 2 3 4 5

Perkembangan nilai I

nilai

I

Kondisi

I <= 5

Tercetak oleh

cout << I

Oleh I=I+1

nilai I menjadi:

1

2

3

4

5

6

True

True

True

True

True

False

1

2

3

4

5

Keluar dari loop

2

3

4

5

6

211

Page 19: Penggunaan loop sebagai kerangka dasar algoritma

Tercetak : 1 2 3 4 5

Perkembangan nilai I

nilai

I

Kondisi

I <= 5

Tercetak oleh

cout << I

Oleh I=I+1

nilai I menjadi:

1

2

3

4

5

6

True

True

True

True

True

False

1

2

3

4

5

Keluar dari loop

2

3

4

5

6

#include<iostream.h>void main(){ int I; I = 1; while(I<=5)

{cout << "\n" << I; I=I+1; }}

while()

I<=5

I = 1

I = I+1

print I

false

true

211

Page 20: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{ cout << "\n" << I;

}

} I<=5

I = 1

I = I+1

print I

false

true

#include<iostream.h>

void main()

{ int I;

I = 1;

while(I<=5)

{ cout << "\n" << I;

I=I+1; }

}

for()

while()

211

Page 21: Penggunaan loop sebagai kerangka dasar algoritma

I<=5

false

true

I = 1

I=I+1

print I

false

true

I = 1

I<=5

print I

I=I+1

I<=5

I = 1

I=I+1

print I

false

true

Page 22: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for ( I=1 ; I<=5 ; I=I+1 ) { cout << "\n" << I; }}

Perhatikan kembali Contoh-1 sebelumnyasebagai berikut :

Buku literatur selalu

menggunakan I++

untuk I = I+1

for()

for()

#include<iostream.h>

void main()

{ int I;

for ( I=1 ; I<=5 ; I++ ) { cout << "\n" << I; }} 212

Page 23: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>void main(){ int I; for ( I=1 ; I<=5 ; I=I+1 ) { cout << "\n" << I; }}

Beberapa Cara penulisan loop dengan for( ) untuk Contoh-1 diatas, yang menghasilkan efek yang sama :

{ int I;

for ( I=1 ; I<=5 ; I++ ) cout << "\n" << I;}

Bila instruksi dalam loop hanya ada 1 instruksi, maka boleh tidak diapit oleh tanda kurung.

{ int I;

for(I=1; I<=5; I++) cout << "\n" << I;

}

Loop boleh langsung ditulis pada baris yang sama dengan for().

212

Page 24: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

I = 1;

while(I<=5)

{cout <<"\n"<< I;

I++;

}

}

while()

Perhatikan kembali loop dengan while sebagai berikut:

#include<iostream.h>

void main()

{ int I;

I = 1;

while(I<=5)

{cout <<"\n"<< I++;

}

}

dapat ditulis menjadi:

213

Page 25: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

cout <<“\n ” << I*2;

}

}

#include<iostream.h>void main()

{ int I;

I = 1;

while(I<=5)

{

cout <<“\n ” << I*2; I=I+1;

}

}

for()while()

Apa yang tercetak bila programdiatas dikerjakan

Contoh-4 :

Page 26: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I;

for(I=1; I<=5; I=I+1)

{

cout <<“\n ” << I*2;

}

}

#include<iostream.h>void main()

{ int I;

I = 1;

while(I<=5)

{

cout <<“\n ” << I*2; I=I+1;

}

}

for()while()

Tercetak : 246810

Tercetak : 246810

Page 27: Penggunaan loop sebagai kerangka dasar algoritma

Perkembangan nilai I

nilai

I

Kondisi

I <= 5

Tercetak oleh

Cout << I*2

Oleh I=I+1

nilai I menjadi:

1

2

3

4

5

6

True

True

True

True

True

False

2

4

6

8

10

Keluar dari loop

2

3

4

5

6

#include<iostream.h>void main(){ int I; for(I=1; I<=5; I=I+1) { cout <<“\n ” << I*2; }}

#include<iostream.h>void main(){ int I; I = 1; while(I<=5) { cout <<“\n ” << I*2; I=I+1; }}

for() while()

Page 28: Penggunaan loop sebagai kerangka dasar algoritma

Perhatikan : 15

A

cout << A+2;

Akan mencetak : 17Tapi isi variabel A tidak berubah

Page 29: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>void main(){ int I, N; N = 8; for(I=1; I<=5; I=I+1) { cout << N; N = N + 2; }}

#include<iostream.h>void main(){ int I, N; N = 8; I = 1; while(I<=5) { cout << N; N = N + 2; I=I+1; }}

for()

while()

Apa yang tercetak bila programdiatas Dilaksanakan

Contoh-5 :

Page 30: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>void main(){ int I, N; N = 8; for(I=1; I<=5; I=I+1) { cout << N; N = N + 2; }}

#include<iostream.h>void main(){ int I, N; N = 8; I = 1; while(I<=5) { cout << N; N = N + 2; I=I+1; }}

for()

while()

Tercetak : 810121416

Tercetak : 810121416

Page 31: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>void main(){ int I, N; N = 8; for(I=1; I<=5; I=I+1) { cout << N; N = N + 2; }}

#include<iostream.h>void main(){ int I, N; N = 8; I = 1; while(I<=5) { cout << N; N = N + 2; I=I+1; }}

for() while()

Perkembangan nilai I

nilai

I

Kondisi

I <= 5

Tercetak oleh

cout << N

Oleh I=I+1

nilai I menjadi:

1

2

3

4

5

6

True

True

True

True

True

False

8

10

12

14

16

Keluar dari loop

2

3

4

5

6

NOleh N=N+2

nilai N menjadi:

10

12

14

16

18

8

10

12

14

16

18

Page 32: Penggunaan loop sebagai kerangka dasar algoritma

Soal Susun Algoritma yang ditulis dalam Bahasa C++ untuk mencetak 10 suku pertama deret berikut ini :

1, 2, 3, 4, 5, . . . . . . . . .

#include<iostream.h>

void main()

{ int I;

for( I=1; I<=10; I=I+1 )

{ cout << “\n” << I ;

}

}

Bila algoritma benar, maka

tercetak :

12345678910

Cara-1 I

1234567891011

Tercetak :

12345678910

I terakhir nilainya = 11,Tapi tidak ikut dicetak

Karena sudah keluar dari loop

Page 33: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I,N;

for( I=1; I<=10; I=I+1 )

{ N = I;

cout << “\n” << N ;

}

}

Cara-2

#include<iostream.h>

void main()

{ int I,N;

N = 1;

for( I=1; I<=10; I=I+1 )

{ cout << “\n” << N ;

N = N + 1;

}

}

Cara-3I N

1234567891011

12345678910

I N

12345678910

11

12345678912

11

Nilai N pernah = 11tapi tidak ikut dicetak

karena sudah keluar dari loop

N awalnya =1dan selalu ditambah 1

Page 34: Penggunaan loop sebagai kerangka dasar algoritma

Perkembangan nilai I

nilai

I

Kondisi

I <= 10

Tercetak oleh

Cout << N

Oleh I=I+1

nilai I menjadi:

1

2

3

4

5

6

7

8

9

10

11

True

True

True

True

True

True

True

True

True

True

False

1

2

3

4

5

6

7

8

9

10

Keluar dari loop

2

3

4

5

6

7

8

9

10

11

NOleh N=N+1

nilai N menjadi:

2

3

4

5

6

7

8

9

10

11

1

2

3

4

5

6

7

8

9

10

11

Page 35: Penggunaan loop sebagai kerangka dasar algoritma

Soal Susun Algoritma yang ditulis dalam Bahasa C++ untuk mencetak 10 suku pertama deret berikut ini :

1, 3, 5, 7, 9, . . . . . . . . .

#include<iostream.h>

void main()

{ int I;

for( I=1; I<=19; I=I+2 )

{ cout << “\n” << I ;

}

}

Bila algoritma benar, maka

tercetak :

135791113151719

Cara-1 I

13579111315171921

Tercetak :

135791113151719

I terakhir nilainya = 21,Tapi tidak ikut dicetak

Karena sudah keluar dari loop

Page 36: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I,N;

for( I=1; I<=10; I=I+1 )

{ N = I * 2 - 1;

cout << “\n” << N ;

}

}

Cara-2

#include<iostream.h>

void main()

{ int I,N;

N = 1;

for( I=1; I<=10; I=I+1 )

{ cout << “\n” << N ;

N = N + 2;

}

}

Cara-3I N

1234567891011

135791113151719

I N

12345678910

11

135791113151719

21

Nilai N pernah = 21tapi tidak ikut dicetak

karena sudah keluar dari loop

N awalnya =1dan selalu ditambah 2

Page 37: Penggunaan loop sebagai kerangka dasar algoritma

Soal Susun Algoritma yang ditulis dalam Bahasa C++ untuk mencetak 10 suku pertama deret berikut ini :

1, 2, 4, 8, 16, . . . . . . . . .

#include<iostream.h>

void main()

{ int I;

for( I=1; I<=512; I=I*2 )

{ cout << “\n” << I ;

}

}

Bila algoritma benar, maka

tercetak :

1248163264128256512

Cara-1 I Tercetak :

1248

1632641282565121024

1248163264128256512

Page 38: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

#include<math.h>

void main()

{ int I,N;

for( I=1; I<=10; I=I+1 )

{ N = pow(2,(I-1));

cout << “\n” << N ;

}

}

Cara-2

#include<iostream.h>

void main()

{ int I,N;

N = 1;

for( I=1; I<=10; I=I+1 )

{ cout << “\n” << N ;

N = N * 2;

}

}

Cara-3I N

1234567891011

I N

1234567891011

1248163264128256512

pow(2, (I-1)) Maksudnya 2 pangkat (I-1)

Agar dapat menggunakan fungsi

matematik pow (power), harus

menambah : # include<math.h>

12481632641282565121024

Nilai N pernah = 1024tapi tidak ikut dicetak

karena sudah keluar dari loop

N awalnya =1dan selalu dikali 2

Page 39: Penggunaan loop sebagai kerangka dasar algoritma

Soal Susun Algoritma yang ditulis dalam Bahasa C++ untuk mencetak 10 suku pertama deret berikut ini :

5, 8, 11, 14, 17, . . . . . . . . .

#include<iostream.h>

void main()

{ int I;

for( I=5; I<=32; I=I+3 )

{ cout << “\n” << I ;

}

}

Bila algoritma benar, maka

tercetak :

581114172023262932

Cara-1 I Tercetak :

58111417202326293235

581114172023262932

Page 40: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I,N;

for( I=1; I<=10; I=I+1 )

{ N = I*3 + 2 ;

cout << “\n” << N ;

}

}

Cara-2

#include<iostream.h>

void main()

{ int I,N;

N = 5;

for( I=1; I<=10; I=I+1 )

{ cout << “\n” << N ;

N = N + 3;

}

}

Cara-3I N

1234567891011

I N

1234567891011

581114172023262932

58111417202326293235N awalnya = 5

dan selalu ditambah 3

Nilai N pernah = 35tapi tidak ikut dicetak

karena sudah keluar dari loop

Page 41: Penggunaan loop sebagai kerangka dasar algoritma

Soal Susun Algoritma yang ditulis dalam Bahasa C++ untuk mencetak 10 suku pertama deret berikut ini :

5, 8, 13, 20, 29, 40, . . . . . . .

#include<iostream.h>

void main()

{ int I, X;

X = …. ;

for( I=1; I<=104; I=I+3 )

{ cout << “\n” << I ;

I = I + X;

X = X + …. ;

}

}

Bila algoritma benar, maka

tercetak :

5813202940536885104

Cara-1I Tercetak :

5813202940536885104125

5813202940536885104

5 8 13 20 29 40 53 .. .. ..

+3 +5 +7 +9 +11 +13

Page 42: Penggunaan loop sebagai kerangka dasar algoritma

#include<iostream.h>

void main()

{ int I,N ;

for( I=1; I<=10; I=I+1 )

{ N = I*I + 4 ;

cout << “\n” << N ;

}

}

Cara-2

#include<iostream.h>

void main()

{ int I,N, X;

N = 5;

X = 3;

for( I=1; I<=10; I=I+1 )

{ cout << “\n” << N ;

N = N + X;

X = X + 2;

}

}

Cara-3I N

1234567891011

I N

1234567891011

5 8 13 20 29 40 53 .. .. ..

5813202940536885104

5813202940536885104125

1 2 3 4 5 6 7I

N

X 3 5 7 9 11 13

Page 43: Penggunaan loop sebagai kerangka dasar algoritma

Susun program untuk menginput 100 buah bilangan yang merupakan nilai ujian mahasiswa, kemudian cetak nilai tertinggi yang didapat mahasiswa .

{ int N, I, MAX;

cin >> N;

MAX = N;

for(I=2; I <= 100; I++)

{ cin >> N;

if(N > MAX)

MAX = N ;

}

cout << “Tebesar : “ << MAX;

}

Untuk pertama kali, nilai MAX dibuat sama dengan data pertama yang dibaca.

99 kali loop. (dari 2 sampai dengan 100).

Ilustrasi Proses :

Bilangan yangdiinput (N) : 75 72 75 82 64 82 74 82 66 87 72 87 68 . .

75 -- -- 82 -- -- -- -- -- -- -- 87 -- -- -- . .

Seriap kali loop :Bila nilai yang baru diinput lebih besar dari MAX, maka nilai MAX diganti dengan nilai yang baru.

Soal

Nilai MAX :

Terakhir cetak MAX

Page 44: Penggunaan loop sebagai kerangka dasar algoritma

Susun program untuk menginput 10 buah bilangan yang merupakan nilai ujian mahasiswa, kemudian cetak nilai tertinggi yang didapat mahasiswa , serta mencetak ada berapa orang mahasiswa yang mendapat nilai tertinggi tersebut :

Soal

Bila diinput :

15 12 15 10 15 17 25 17 25 13

Seharusnya tercetak :

Nilai terbesar : 25Jum Mahasiswa : 2

Page 45: Penggunaan loop sebagai kerangka dasar algoritma

15 12 15 10 15 17 25 17 25 13

Konsep Proses :

1. Input 15

Data :

15MAX

115N Jum

Input pertama, isi MAX = N, dan Jum dibuat = 1

2. Input 12 15MAX

112N Jum

N=12 N tidak > MAX isi MAX tetap tidak diubah

N tidak == MAX, Jum tetap, tidak ditambah

3. Input 15 15MAX

215N Jum

N=15 N tidak > MAX isi MAX tetap, tidak diubah

Tapi, N == MAX, Jum ditambah 1

4. Input 10 15MAX

210N Jum

N=10 N tidak > MAX isi MAX tetap tidak diubah

N tidak == MAX, Jum tetap, tidak ditambah

5. Input 15 15MAX

315N Jum

N=15 N tidak > MAX isi MAX tetap, tidak diubah

Tapi, N == MAX, Jum ditambah 1

6. Input 17 17MAX

117N Jum

N=17 N > MAX isi MAX = N dan Jum = 1

Page 46: Penggunaan loop sebagai kerangka dasar algoritma

15 12 15 10 15 17 25 17 25 13 Data :

9. Input 25 25MAX

225N Jum

N=15 N tidak > MAX isi MAX tetap, tidak diubah

Tapi, N == MAX, Jum ditambah 1

7. Input 25 25MAX

125N Jum

N=25 N > MAX isi MAX = N dan Jum = 1

17MAX

1Jum

8. Input 17 25MAX

117N Jum

N=17 N tidak > MAX isi MAX tetap tidak diubah

N tidak == MAX, Jum tetap, tidak ditambah

10. Input 13 25MAX

213N Jum

N=13 N tidak > MAX isi MAX tetap tidak diubah

N tidak == MAX, Jum tetap, tidak ditambah

Data habis : 25MAX

2Jum

Jadi dari 12 data yang diinput, Nilai terbesar = MAX = 25Dan jumlah mahasiswa yang mendapat nilai terbesar = Jum = 2

Page 47: Penggunaan loop sebagai kerangka dasar algoritma

Konsep Proses :

1. Input pertama, simpan ke MAX dan Jum dibuat = 1.

2. Input ke N 9 kali.

Setiap kali input periksa :

Input ke : N

MAX menampung nilai terbesar

Jum menampung jumlah mahasiswa yang mempunyai nilai terbesarN MAX Jum

Proses :

Bila N > MAX Ganti nilai MAX dengan nilai N dan nilai Jum dibuat ulang = 1.

Bila N tidak lebih besar dari MAX,Periksa apakah N == MAX.

Bila N == MAX, Jum ditambah 1

3. Setelah selesai 9 kali input,Cetak MAX dan Jum

Page 48: Penggunaan loop sebagai kerangka dasar algoritma

input

MAX=NJum=1

I<=10

print

N>MAX

MAX=NJum=1

N

I=2

input N

N==MAX

Jum=Jum+1

True

TrueFalse

END

I=I+1

False

END

#include<iostream.h> void main() { int N,I,MAX, Jum; cin >> N; MAX = N; Jum = 1; for(I=2; I <= 10; I++) { cin >> N; if(N > MAX) { MAX = N ;

Jum = 1; }

else if(N == MAX) Jum++; } cout << "\nTerbesar : " << MAX; cout << "\nJum Mhs : " << Jum;}

MAX,Jum

Susun program untuk menginput 10 buah bilangan yang merupakan nilai ujian mahasiswa, kemudian cetak nilai tertinggi yang didapat mahasiswa, serta mencetak ada berapa orang mahasiswa yang mendapat nilai tertinggi tersebut :

Soal

Page 49: Penggunaan loop sebagai kerangka dasar algoritma
Page 50: Penggunaan loop sebagai kerangka dasar algoritma