Anda di halaman 1dari 31

Pertemuan 6

PERULANGAN / LOOP
WAYAN GALIH PRATAMA, S.TI., M.T.I.
Perulangan / Loop
• Sebuah proses yang dikerjakan secara berulang
sampai suatu kondisi terpenuhi
• Secara umum, struktur pengulangan di dalam
program terdiri atas kondisi pengulangan dan
badan pengulangan
• Jenis perulangan, FOR , WHILE-DO, DO-WHILE
Notasi FOR - pseudocode
Notasi
FOR -
flowchart
Notasi WHILE-DO, DO-WHILE - pseudocode
Notasi
WHILE-
DO
flowchart
Notasi DO
- WHILE
flowchart
Notasi DO
- WHILE
flowchart
Increment / Decrement
• Perulangan dapat dilakukan secara increment atau
decrement
• i++ atau i = i + 1
• i-- atau i = i - 1
• Contoh pada slide sebelumnya menunjukkan
perulangan secara increment
• Decrement bagaimana ?
• Misalkan, cetak 100 nilai x ke layar secara menurun
Kapan menggunakan FOR ?
• For dapat digunakan ketika kondisi perulangan
diketahui secara pasti.
• Misal, cetaklah tulisan “Baris ke-n” sebanyak 100
kali, dimana n dimulai dari 1.
• Kondisi perulangan diketahui secara pasti sebanyak 100
kali
Kapan menggunakan WHILE-DO ?
• While-do dapat digunakan baik dalam kondisi
perulangan yang diketahui secara pasti maupun
tidak pasti.
• Misal, buatlah program yang membaca input
berupa angka dari user dan menampilkannya ke
layar selama angka tidak sama dengan -1.
• Kondisi perulangan tidak diketahui secara pasti, karena
bergantung pada angka yang diinputkan user
• WHILE-DO dan DO-WHILE merupakan jenis
perulangan yang mempunyai makna yang sama
WHILE-DO atau DO-WHILE
• Pada kondisi tertentu, pemilihan while-do atau do-
while bergantung pada persoalan itu sendiri.
• Artinya, ada masalah yang hanya benar bila
menggunakan while-do, begitu pula sebaliknya.
• Jadi apa perbedaan while-do vs do-while ?
WHILE-DO atau DO-WHILE
• While-do • Do-while
• Kondisi diperiksa di awal • Kondisi diperika di akhir
• Instruksi di dalam • Instruksi di dalam
perulangan dilaksanakan perulangan dilaksanakan
hanya jika kondisi bernilai terlebih dulu, kemudian
TRUE. baru pengecekan kondisi.
• Ini memungkinkan • Ini memungkinkan
perulangan tidak akan perulangan akan tepat
dilaksanakan sekalipun dilaksanakan sekali
karena ketika pengecekan walaupun saat
kondisi pertama bernilai pengecekan kondisi
FALSE pertama bernilai FALSE
WHILE-DO atau DO-WHILE
• Gunakanlah konstruksi WHILE-DO pada kasus yang
mengharuskan melakukan pengecekan kondisi
objek terlebih dahulu sebelum suatu proses
dilaksanakan terhadap objek tersebut.

• Gunakanlah konstruksi DO-WHILE pada kasus yang


mengharuskan melaksanakan proses terhadap
suatu objek terlebih dahulu sebelum kondisi objek
tersebut di cek.
Contoh Kasus 1
• Buatlah sebuah algoritma yang dapat mencetak 10
bilangan bulat ke layer
• Output nya adalah 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Algoritma Kasus 1 - FOR
Algoritma 10BilanganBulat
{ mencetak atau menampilkan nilai 10 bilangan bulat ke layar }

DEKLARASI:
x : integer

ALGORITMA:
for x ß 1 to x <= 10 step x++ do
write(x)
endfor
Algoritma Kasus 1 - WHILE - DO
Algoritma 10BilanganBulat
{ mencetak atau menampilkan nilai 10 bilangan bulat ke layar }

DEKLARASI:
x : integer

ALGORITMA:
xß1
while x <= 10 do
write(x)
x++
endwhile
Algoritma Kasus 1 – DO - WHILE
Algoritma 10BilanganBulat
{ mencetak atau menampilkan nilai 10 bilangan bulat ke layar }

DEKLARASI:
x : integer

ALGORITMA:
xß1
repeat
write(x)
x++
until x ß 10
Contoh Kasus 2
• Buatlah sebuah algoritma yang menerima inputan
bilangan bulat positif dari user dan menampilkan
semua bilangan tersebut ke layar.
• Misal, user menginputkan 0, 1, 2, 3, 4, 5
• Maka yang ditampilkan ke layar adalah 0, 1, 2, 3, 4, 5
• Jika user menginputkan nilai bilangan bulat negatif,
perulangan akan terhenti
• Adakah perbedaan jika menggunakan while-do atau do-
while?
Algoritma Kasus 2 - FOR
Algoritma CetakBilangan
{ mencetak atau menampilkan nilai bilangan bulat positif yang
diinputkan user ke layar secara berulang }

DEKLARASI:
x : integer

ALGORITMA:
read(x)
for x ß 0 to ??? step x++ do
write(x)
read(x)
endfor
Algoritma Kasus 2 - WHILE - DO
Algoritma CetakBilangan
{ mencetak atau menampilkan nilai bilangan bulat positif yang
diinputkan user ke layar secara berulang }

DEKLARASI:
x : integer

ALGORITMA:
read(x)
while x >= 0 do
write(x)
read(x)
endwhile
Algoritma Kasus 2 – DO - WHILE
Algoritma CetakBilangan
{ mencetak atau menampilkan nilai bilangan bulat positif yang
diinputkan user ke layar secara berulang }

DEKLARASI:
x : integer

ALGORITMA:
read(x)
repeat
write(x)
read(x)
until x < 0
Contoh Kasus 3
• Buatlah sebuah algoritma yang menerima input
sebanyak N bilangan bulat kemudian menampilkan
nilai rerata dari jumlah bilangan bulat yang
diinputkan ke layar.
• Misal, user menginputkan 1, 2, 3, 4, 5
• Maka yang ditampilkan ke layar adalah rerata dari
jumlah 1 + 2 + 3 + 4 + 5, yaitu 15 / 5 = 3
Algoritma Kasus 3 - FOR
Algoritma RerataNBilangan
{ menghitung dan menampilkan rerata dari N bilangan yang iinputkan user }

DEKLARASI:
n : integer { banyak data yang dibaca }
x : integer { bilangan bulat yang diinputkan }
i : integer { pencacah }
sum : integer { jumlah bilangan }
rerata : real { rata-rata semua bilangan }

ALGORITMA:
read(n)
sum ß 0
for i ß 1 to i <= n step i++ do
read(x)
sum = sum + x { boleh gunakan sum += x }
endfor

rerata ß sum/n
write(rerata)
Algoritma Kasus 3 - WHILE - DO
Algoritma RerataNBilangan
{ menghitung dan menampilkan rerata dari N bilangan yang iinputkan user }

DEKLARASI:
n : integer { banyak data yang dibaca }
x : integer { bilangan bulat yang diinputkan }
i : integer { pencacah }
sum : integer { jumlah bilangan }
rerata : real { rata-rata semua bilangan }

ALGORITMA:
read(n)
sum ß 0
iß1
while i <= n do
read(x)
sum = sum + x { boleh gunakan sum += x }
i=i+1
endwhile

rerata ß sum/n
write(rerata)
Contoh Kasus 4 & 5
• Kasus 4 - Buatlah algoritma untuk menentukan nilai
terkecil dari N buah bilangan bulat yang diinputkan
oleh user.
• Kasus 5 - Buatlah algoritma untuk menentukan nilai
terkecil dari bilangan yang diinputkan oleh user
(seperti kasus 4). Pembacaan input dari user
berakhir bila user menginputkan -1. (nilai -1 tidak
masuk dalam perhitungan)
Algoritma Kasus 4 - FOR
Algoritma RerataNBilangan
{ menghitung dan menampilkan rerata dari N bilangan yang iinputkan user }

DEKLARASI:
n : integer { banyak data yang dibaca }
x : integer { bilangan bulat yang diinputkan }
i : integer { pencacah }
min : integer { variable bantu untuk bilangan terkecil }

ALGORITMA:
read(n)
read(x)
min ß x

for i ß 2 to i <= n step i++ do


read(x)
if x < min then
min ß x
endif
endfor

write(min)
Contoh Kasus 6
• Buatlah algoritma yang membaca nilai a dan
n ( n >= 0 ) lalu hitung nilai an
• an = a * a * a * a * ……… * a ( sebanyak n kali )
• Misalkan
• 54 = 5 * 5 * 5 * 5 = 625
• 30 = 1
Tugas – Soal 1
• Buatlah algoritma dan program untuk menghitung
nilai factorial.
• Misal user menginputkan 3
• Maka hasilnya adalah nilai 3! = 1 * 2 * 3 = 6
Tugas - Soal 2
• Seseorang mempunyai tabungan di sebuah bank. Ia
dapat menyetor dan mengambil uangnya, dengan
ketentuan saldo minimum yang harus disisakan adalah
Rp10.000.
• Kode transaksi untuk menyetor adalah 0 dan kode
transaksi untuk mengambil adalah 1.
• Buatlah algoritma dan program yang mensimulasikan
transaksi yang dilakukan orang tersebut.
• Algoritma menerima input berupa kode transaksi dan jumlah
uang yang disetor/diambil.
• Rancanglah algortima tersebut agar si penabung dapat
melakukan transaksi berulang kali sampai saldo yang tersisa
Rp.10.000 atau jumlah uang yang diambil lebih besar dari sisa
saldonya.
SEKIAN & TERIMAKASIH
WAYAN GALIH PRATAMA, S.TI., M.T.I.

Anda mungkin juga menyukai