Anda di halaman 1dari 11

Lampiran Materi 3.3 dan 4.

Algoritma Perulangan
Pada Bab ini anda akan mempelajari

1. Pengertian algoritma perulangan


2. Perulangan for-do
3. Perulangan while-do
4. Perulangan repeat-until
Algoritma Perulangan
Ada kalanya untuk menyelesaikan suatu masalah, satu atau beberapa perintah
harus dikerjakan beberapa kali. Misalnya anda hendak menampilkan tulisan algoritma
sebanyak tiga kali. Maka algoritmanya dapat ditulis
1. Mulai
2. Tulis ‘Algoritma’
3. Tulis ‘Algoritma’
4. Tulis ‘Algoritma’
5. Selesai

Sehingga diperoleh keluaran


Algoritma
Algoritma
Algoritma
Contoh lain. Anda hendak menghitung suatu bilangan dipangkatkan tiga. Maka
algoritmanya dapat dituliskan
1. Mulai
2. Masukkan bilangan X
3. Set nilai Y=1
4. Kalikan X dengan Y, simpan sebagai Y
5. Kalikan X dengan Y, simpan sebagai Y
6. Kalikan X dengan Y, simpan sebagai Y
7. Tulis (Y)
8. Selesai
Atau dalam algoritma standar ditulis

Deskripsi
Read(X)
Y1
YX*Y
YX*Y
YX*Y
Write(Y)
Jika input algoritma (X) adalah 2, maka dengan tabel penyimpanan data

Perintah X Y Ouput
Read(X) 2
Y1 1
YX*Y 4
YX*Y 8
YX*Y 16
Write(Y) 16

Output yang dihasilkan adalah : 16


Cara ini memang dapat menyelesaikan permasalahan tersebut di atas, tapi
sangat tidak efisien dalam penulisannya. Bayangkan kalau pengulangannya dilakukan
sebanyak 1000 kali, maka kita harus menulisnya sebanyak seribu kali pula. Tentunya
akan sangat merepotkan. Untuk itu kita perlu mengenal satu lagi algoritma dasar yaitu
algoritma pengulangan. Dengan algoritma ini kita cukup menuliskan perintahnya
sekali untuk pengulangan berapapun banyaknya.
Bila mengacu pada bahasa pemrograman Pascal, terdapat tiga ekspresi algoritma
untuk pengulangan :
1. for-do
2. while-do
3. repeat-until
Namun demikian, ketiganya memiliki komponen-komponen pengulangan yang sama
yaitu,
- Kondisi pengulangan : Setiap aksi atau kumpulan aksi dikerjakan jika memenuhi kondisi
tertentu. Selama kondisi terpenuhi aksi akan terus dikerjakan
- Badan pengulangan : bagian aksi yang diulang
- Nilai awal atau inisialisasi : Pemberian nilai satu atau beberapa variabel sebelum
pengulangan dilakukan.

1. Pengulangan For-Do
Ada 2 macam pengulangan for-do, yaitu for-do menaik dan for-do menurun. Berikut
ini adalah bentuk umumnya.
For-do menaik
For varnilai_awal to nilai_akhir do
pernyataan

Flowchart for-do menaik


Var ni...nf

pernyataan

For-do menurun
For variabelnilai_awal downto nilai_akhir do

Pernyataan

Flowchart for-do menurun


Var = ni...nf

pernyataan

Kondisi pengulangan for secara tersirat dapat dilihat pada ni (nilai_awal)


dan nf (nilai_akhir); Nilai yang terkandung pada var mula-mula sama dengan
nilai_awal, kemudian bertambah (berkurang) sebanyak satu, kemudian berhenti
setelah var lebih besar (lebih kecil) nilai_akhir.
Karakteristik pengulangan for-do

 Aksi mula-mula dilakukan saat var=nilai_awal dan terakhir saat


var=nilai_akhir.
 Var, nilai_awal dan nilai_akhir bertipe bilangan bulat (integer)
 Setiap selesai satu kali pengulangan var berubah +1 (for-do menaik) atau –1
(for-do menurun).
 Pengulangan paling sedikit dilakukan sekali, banyaknya pengulangan adalah
selisih nilai_awal dan nilai_akhir ditambah 1
Contoh
for i1 to 3 do
Write(‘Halo’)

var <- 1…3

Pada perintah di atas, mula-mula i diberi nilai 1. Kemudian perintah write(‘Halo’)


Write (‘Halo’)
dikerjakan. Setelah itu i bertambah satu sehingga menjadi 2, dilanjutkan dengan perintah
write(‘Halo’). Proses yang sama diulang lagi hingga i bernilai tiga, perintah write(’Halo’)
dikerjakan. Setelah itu proses pengulangan berhenti di situ.
Dengan demikian outputnya dapat kita nyatakan seperti berikut

Halo
Halo
Halo
Kita dapat membuat output yang sama seperti di atas dengan for-do menurun.
for i3 downto 1 do
Write(‘Halo’)

var 3…1

Write (‘Halo’)

Perbedaannya, pada for-do menaik i berubah dari 1 sebanyak +1 dan berhenti setelah
lebih dari 3, sedangkan pada for-do menurun, i berubah dari 3 sebanyak –1 hingga
akhirnya berhenti saat i kurang dari 1. Coba tentukan bentuk dari algoritma di atas.

Contoh soal
1. Buat algoritma menampilkan deret 1, 2, 3, …, N. N adalah masukan.
Algoritma deret
Deklarasi
N,x : integer
Deskripsi
read(N)
for x=1 to N do
write(x)
Penjelasan
Mula-mula masukkan nilai N, misalnya 3. Setelah itu masuk ke dalam loop
dengan x mula-mula 1. Kemudian Write(x) menghasilkan keluaran 1. Proses diulang
lagi dengan x (=2) Kemudian Write(x) menghasilkan keluaran 2. Demikian
seterusnya. Aksi tidak lagi dikerjakan saat x>N.
Perintah N x Output

Read(N) 3

For x=1 to N do 1 1

Write(x) 2 2

3 3

Latihan : coba anda tuliskan bentuk flowchart dari algoritma di atas

2. Buat algoritma yang menampilkan jumlah dari deret pada soal no 1 di atas
Algoritma jumlah_deret
Deklarasi
N,x,jum : integer

Deskripsi
read(N)
jum0
for x=1 to N do
jumjum+x
write(jum)
Penjelasan
Mula-mula masukkan nilai N, misalnya 4, kemudian inisialisasi jum=0.
Setelah itu masuk ke dalam loop dengan x mula-mula 1. Kemudian jum = 0 ditambah
dengan x = 1 sehingga diperoleh jum (baru) = 1. Proses diulang lagi dengan x = 2.
Kemudian jum = 1 ditambah dengan x = 2 sehingga diperoleh jum = 3. Demikian
seterusnya. Aksi tidak lagi dikerjakan saat x>N.
Perintah N x jum Output

Read(N) 4

Jum0 0

For x=1 to N do 1 1

Jumjum+x 2 3

3 6

4 10

Write(jum) 10

Dengan demikian keluaran dari algoritma di atas adalah 10.

Latihan : coba masukkan input N yang lain, misalnya 7, kemudian isi tabel
penyimpanan data dan tuliskan nilai keluarannya.
begin

Read
(N)

For x=1
to N

Jum  jum+x

write(jum)

end

Perulangan While-Do

Secara umum algoritma while adalah

while <kondisi> do
begin
pernyataan
end
sedangkan bentuk flowchartnya

t
<kondisi>?

Aksi

loop

Teks algoritma dan flowchart di atas menunjukkan bahwa ada pengecekan


kondisi dulu sebelum aksi berikutnya dilakukan. Aksi di bawah kondisi dikerjakan
jika kondisinya atau lebih tepatnya nilai boolean kondisi bernilai benar. Jika kondisi
bernilai salah maka proses akan ‘melompat’ atau mengerjakan aksi yang berada di
luar loop.
Contoh soal
Buat algoritma menampilkan deret 2, 4, 6, …, N. N adalah masukan berupa bilangan genap.
Algoritma deret
Deklarasi
N,x : integer

Deskripsi
read(N)
x2
while x<=N do
Write(x)
xx+2

begin

read
(N)

x<--2

t
x<=N

write (x)

x<--x+2

End

Mula-mula inputkan nilai N, kemudian x diberi nilai 2 (proses inisialisasi).


Setelah itu x dibandingkan dengan N, jika pernyataan (x<=N) bernilai benar maka x
ditampilkan, lalu x ditambah 2 dan menghasilkan x baru. Setelah itu arus data kembali
ke atas untuk menguji apakah pernyataan x<=N bernilai benar. Jika iya, maka proses
yang sama dengan sebelumnya dilakukan kembali. Demikian seterusnya hingga
pernyataan x<=N bernilai salah.
Untuk input N = 8, tabel penyimpanan datanya dapat kita nyatakan sebagai berikut.
Perintah Kondisi x N Output

Read(N) 8

x2 2

Blok pengulangan

x<=N Write(x) / output xx+2


true 2 4
true 4 6
true 6 8
true 8 10
false

Jika N adalah 10 maka output algoritma deret : 2, 4, 6, 8


Catatan
Gunakan perintah write(parameter) untuk deret dengan penulisan ke samping
kanan
Pertanyaan
Untuk N=10
 Bagaimana output algoritma jika x tidak diinisialisasi?
 Bagaimana output jika pernyataan kondisi (x>10)?
 Bagaimana output algoritma jika pernyataan (xx+2) dihilangkan.?
 Bagaimana output algoritma jika pernyataan (xx+2) dan (write(x)) saling
bertukar tempat (urutannya ditukar)?
 Bagaimana output algoritma jika pernyataan (xx+2) diganti dengan
(xx*2)?
Pengulangan Repeat-Until
Secara umum algoritma repeat-until adalah
repeat

aksi

until <kondisi>

sedangkan bentuk flowchartnya


Aksi
loop

t
<kondisi>

Secara umum teks dan flowchart di atas berarti bahwa aksi tidak dikerjakan
lagi jika kondisi bernilai benar.

Algoritma while-do dengan repeat-until sebenarnya hampir sama,


perbedaannya hanya terletak pada penempatan kondisinya. Pada while-do
pengecekan kondisi diletakkan di awal loop, sedangkan pada repeat-until
pengecekan kondisi dilakukan di akhir loop. Itu sebabnya pada algoritma while-do
aksi bisa jadi tidak dilakukan sama sekali jika sejak awal kondisinya sudah bernilai
salah. Sedangkan pada pada repeat-until aksi sekurang-kurangnya dilakukan
sebanyak satu kali. (Perhatikan flowchart)

Contoh soal
Buatlah algoritma dengan keluaran sebagai berikut

1 1
2 3
3 9
4 27
... ...
N ...

Algoritma DeretGanda

Deklarasi
A,B,N : integer
Deskripsi
read(N)
A0, B1
repeat
AA+1
BB+3
writeln (A,B)
until (B=N)
Catatan
Gunakan perintah writeln untuk penulisan deret ke bawah

Begin

Read (N)

A<--0,B<--1

A<--A+1

B<--B*3

writeln (A,B)

A>=N

End

SOAL LATIHAN
1. Buatlah algoritma menghitung menampilkan deret berikut ini
a. 1 2 3 4 5
b. 1 3 5 7 11
c. 3 6 9 12 15
d. 64 32 16 8 4
e. 1 1/2 1/4 1/8 1/16
f. 2 -4 8 -16 32
2. Buatlah algoritma menampilkan tampilan berikut sebanyak N kali (N merupakan
input
Nomor 1
Nomor 2
Nomor 3
....
3. Modifikasi algoritma pada nomor 1 sehingga keluaran algoritma dapat
menghitung jumlah deret tersebut

4. Buatlah algoritma yang menghitung jumlah bilangan ganjil yang terletak di


antara 0-100

5. Buatlah algoritma menghitung perpangkatan xn, dimana x adalah bilangan real


dan n adalah bilangan bulat positif.

6. Modifikasi algoritma no.4 sehingga dapat pula menghitung x n dengan n dapat


berupa bilangan bulat positif atau negatif.

7. Buat algoritma menghitung N! N merupakan input yang berupa bilangan bulat.


(N! = 1x2x3x...xN)

8. Buatlah algoritma yang menampilkan tampilan berikut sebanyak N kali (N


merupakan input)

2 Genap
3 Ganjil
4 Genap
5 Ganjil
... ..........

9. Buatlah algoritma yang menampilkan


a. bilangan genap saja dimulai dari A sebanyak N suku
b. bilangan kelipatan 5 dimulai dari A sebanyak N suku
Catatan : N dan A merupakan input

10. Buatlah algoritma menghitung penjumlahan


a. bilangan genap yang terletak antara 0-100
b. bilangan kelipatan 7 yang terletak antara 0-N (N adalah input)

11. Buatlah algoritma menghitung


a. Banyaknya suku bilangan kelipatan 4 yang terletak antara 0-100
b. Banyaknya suku bilangan ganjil yang terletak antara 0-N

Anda mungkin juga menyukai