PERTEMUAN03 Pengulangan (Looping)
PERTEMUAN03 Pengulangan (Looping)
PERTEMUAN03 Pengulangan (Looping)
(Looping/Repetition)
(Python)
Jumlah kentang = 4?
Jumlah kentang = 400?
Jumlah kentang = jumlah orang yang
hadir?
Jumlah kentang
terkupas cukup
8
1 # ALGORITMA
2 print(1)
3
=
print(2)
print(1+2)
8
1 print(1)
E
2 print(2)
3 print(3)
6 print(1+2+3)
I
1 print(1)
2
E-
print(2)
3 print(3)
4 print(4)
5 print(5)
6 print(6)
7 … #lanjutkan sendiri!!
print(10)
8
print(1+2+3+4+5+6+7+8+9+10)
9
10
24/09/19
55 KU1102/Pengenalan Teknologi Informasi B 7
Menulis 1 s.d. 100
• Tuliskan program yang menuliskan angka 1 s.d. 100 dan
selanjutnya 1+2+3+…+100 ke layar
• Contoh keluaran: # ALGORITMA Capek
• •
let in ~
1 print(1)
2 print(2)
3 print(3)
4 print(4)
5 print(5)
6 print(6)
7 … #lanjutkan sendiri!!
8 print(100)
9 print(1+2+3+4+5+6+7+8+9+10+ … #lanjutkan sendiri!!)
10 -
… // lanjutkan sendiri!!
24/09/19 KU1102/Pengenalan Teknologi Informasi B 8
Bagaimana kalau…
Anda diminta menulis dan menjumlahkan…
….
Kita but uh p roses looping
until
menyederhanakanp roses g- berulang
9/24/19 WD/KU1102 10
Pengulangan (Looping)
• Elemen: Apabila kondisi Masih terpenuhi ,
Maka aksiakantetp berga/an
• Kondisi pengulangan: ekspresi lojik
Maka alai berhenti
• Badan pengulangan: aksi yang diulang → KI Sudan tidakterpenuhi ,
• Berdasarkan pencacah:①for
'
,
i
↳ ggunak
men an index →
9/24/19 WD/KU1102 11
Contoh-1
• Tuliskan program yang menerima masukan sebuah integer
misalnya N dan menuliskan angka 1, 2, 3, … N dan menuliskan
1+2+3+…+N ke layar.
§
N = 10
%
• Asumsikan N > 0. Tampilan di layar:
1
§
• Contoh: N=1 N=5 2
Tampilan di layar: Tampilan di layar: 3
1 1 4
2 5
1
3 6
4 7
5 8
15 9
10
55
24/09/19 KU1102/Pengenalan Teknologi Informasi B 12
I → to [ 1,11)
µ
for range ( 1,11 )
Berdasarkan Pencacah (for)
i in
00
• Range harga pencacah yang diproses adalah dari hmin ke hmaks
• Pencacah harus suatu variabel dengan type yang terdefinisi
suksesor dan predesesornya, misalnya integer
• Aksi akan dilakukan selama nilai pencacah masih berada dalam
0 range yang ditentukan
• Harga pencacah di-increment, setiap kali Aksi selesai dilakukan
diproses)
③
• Karena itulah, nilai akhir range harus ditulis hmaks+1 (agar hmaks tetap -
⇐
Inisialisasi-aksi i ß hmin
→
for i in range(hmin,hmaks+1):
Aksi
i<= hmaks
Terminasi
i adalah variabel pencacah (bisa diganti variabel lain)
false true
hmin = nilai i di awal loop; hmaks = nilai i terakhir yang diproses;
nilai i ketika keluar loop adalah hmaks+1
Setiap berulang, i di-increment (ditambah 1) Aksi
Inisialisasi-aksi
i traversal [hmin..hmaks] ißi+1
•
Aksi
pseudocode Terminasi
Terminasi
9/24/19 WD/KU1102 14
Contoh-1:
f-
# Program JumlahAngka
'
for # Menghitung 1+2+3+...+N. Asumsi N > 0
# KAMUS
# N : int
# i, sum : int
# ALGORITMA
1-
N = int(input()) # Inisialisasi
sum = 0 # Inisialisasi
for i in range(1,N+1):
print(i) # Aksi
sum = sum + i # Aksi
print(sum) # Terminasi
Python Inisialisasi-aksi
Inisialisasi-aksi 20 ) for
i ß hmaks
for i in range(hmaks,hmin-1,-1): 25 )
an
)
- -
Aksi 10 0 I - 30
, ,
Inisialisasi-aksi
i traversal [hmaks..hmin] ißi-1
Aksi
pseudocode Terminasi
Terminasi
9/24/19 WD/KU1102 16
Pengulangan Berdasarkan
Kondisi Mengulang di Awal (while)
• Aksi akan dilakukan selama kondisi-mengulang masih dipenuhi
(berharga0
=
true)
-
" "
mengulang
Terminasi
false
true
Aksi
Inisialisasi-Aksi
First-Element
while (kondisi-mengulang) do Next-Element
Aksi
Next-Element
{ kondisi-mengulang = false }
Terminasi
pseudocode Terminasi
9/24/19 WD/KU1102 18
v0 - -
v0
Contoh-1: # Program JumlahAngka
while # Menghitung 1+2+3+...+N Asumsi N > 0
# KAMUS
# N : int
# i, sum : int
# ALGORITMA
N = int(input()) # Inisialisasi
sum = 0 # Inisialisasi
i = 1 # First-Element
while (i <= N): # Kondisi-mengulang
print(i) # Aksi
sum = sum + i # Aksi
i = i + 1 # Next-Element
# i > N
print(sum) # Terminasi
24/09/19 KU1102/Pengenalan Teknologi Informasi B 19
Contoh-2
• Buatlah program yang menerima masukan 10 buah bilangan
integer (dari keyboard) dan menuliskan ke layar jumlah total ke-
10 integer tersebut.
Masukan Tampilan di Layar
• Contoh: 2 18
1
0
-9
7
13
2
2
1
-1
for
iß1
pseudocode flowchart
sum ß 0 { inisialisasi } false
i <= 10
i traversal [1..10]
input(X) { aksi } true
sum ß sum + X { aksi } input(X)
output(sum) { terminasi } sum ß sum + X
ißi+1
output(sum)
Selesai
24/09/19 Pengenalan Teknologi Informasi 21
Contoh-2: # Program Jumlah10Angka
for # Menerima masukan 10 buah integer dan
# menjumlahkan totalnya
Python # KAMUS
# N, i, sum : int
# ALGORITMA
sum = 0 # Inisialisasi
print(sum) # Terminasi
input(X) { First-Elmt }
{ Proses pengulangan dengan while-do }
while (X != -999) do
sum ß sum + X
count ß count + 1
input(X)
{ X = -999 }
{ Terminasi }
if (count > 0) then
rata ß sum/count
output(count,sum,rata)
else { count = 0 }
output(“Tidak ada data yang diolah”)
input(X)
Contoh-3: Flowchart
while
false
X ≠ -999
true
Aksi
sum ß sum + X
count ß count + 1
input(X)
Contoh-3: #
#
memasukkan -999 dan dan menampilkan banyak bilangan, total, dan
rata-ratanya
Python # KAMUS
# X, count, sum : int
# rata : float
# ALGORITMA
sum = 0; count = 0 # Inisialisasi
X = int(input()) # First-Elmt
while (X != -999):
count = count + 1 # Aksi
sum = sum + X
X = int(input()) # Next-Elmt
# X = -999
# Terminasi
if (count > 0):
print("Banyaknya bilangan = " + str(count))
print("Jumlah total = " + str(sum))
rata = sum/count
print("Rata-rata = " + str(rata))
else:
24/09/19 print ("Tidak ada data
Pengenalan Teknologi yang diolah")
Informasi 27
Contoh-3: Diskusi
• Pengulangan menggunakan while paling tepat karena:
• Ada kemungkinan Aksi tidak pernah dilakukan sama sekali (kasus
kosong), yaitu jika nilai X yang pertama kali dimasukkan user adalah -999
(lihat contoh ke-2)
• For tidak tepat digunakan karena tidak terdefinisi range nilainya
Contoh 1 7 A
B
Lulus = 6
Tidak lulus = 1
C
A
A
E
D
2 5 A Lulus = 5
B Tidak lulus = 0
B
A
A
3 5 E Lulus = 0
E Tidak lulus = 5
E
E
E
8 Ganjil = 2
0
• Buatlah algoritma/program 9
untuk membaca sekumpulan 10
bilangan bulat (integer) -1
2 4 Genap = 3
positif. Pembacaan data 10 Ganjil = 0
diakhiri jika pengguna 6
memasukkan nilai negatif. -111
3 5 Genap = 0
• Selanjutnya, cetaklah berapa 17 Ganjil = 2
banyak bilangan genap dan -234
ganjil. 4 -99 Genap = 0 Tidak ada bilangan positif
yang dimasukkan
Ganjil = 0
• 0 adalah bilangan genap. Semua input bilangan negatif mengakhiri pembacaan data
• Buatlah 3 versi program yang menerima masukan sebuah integer positif, misalnya N (asumsi
N>0), dan menuliskan lirik lagu Anak Ayam di atas dengan menggunakan perulangan for, do-
while, dan while.
• Berikan komentar, apakah masing-masing jenis pengulangan tepat untuk persoalan ini.
10 Tugas:
Buatlah algoritma/program untuk menghitung
0 luas daerah yang dibangun dari rumus f(x) = x^3
1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4 +x+1
dari x=a sampai x=b dengan interval
delta, dengan a,b,delta
Asumsi: merupakan masukan pengguna.
a < b; a ³ 0; b > 0; delta > 0
for
Pengulangan yang paling tepat iß1
adalah for karena range nilai untuk false
pengulangan diketahui dengan pasti i <= N
Python
# dan menampilkan penjumlahan bilangan kelipatan 5 dari 1 s.d. N
# KAMUS
# N, i, sum : int
# ALGORITMA
# Masukan nilai N
N = int(input())
# Terminasi
print(sum)
Latihan 2
# Menerima masukan N buah nilai tugas (A s.d. F) dan menuliskan berapa yang
# lulus dan tidak lulus
Python #
#
KAMUS
N, i : int
# nilai : char
# lulus, notlulus : int
# ALGORITMA
# Masukan nilai N
N = int(input("Banyaknya mahasiswa = "))
# Terminasi
print("Lulus = " + str(lulus))
print("Tidak lulus = " + str(notlulus))
24/09/19 Pengenalan Teknologi Informasi 43
Latihan 3: Pembahasan
• Pengulangan yang paling tepat digunakan adalah while
• Ada kemungkinan Aksi tidak pernah dilakukan sama sekali (kasus
kosong), yaitu jika nilai X yang pertama kali dimasukkan user adalah nilai
negatif
• For tidak tepat digunakan karena tidak terdefinisi range nilainya
Python
# Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan
# nilai negatif dan menampilkan banyak bilangan genap dan ganjil
# KAMUS
# X, countgenap, countganjil : int
# ALGORITMA
countgenap = 0 # Inisialisasi
countganjil = 0 # Inisialisasi
X = int(input()) # First-Elmt
while (X >= 0):
# cek ganjil atau genap
if (X % 2 == 0): # X genap
countgenap = countgenap + 1
else: # X ganjil
countganjil = countganjil + 1
X = int(input()) # Next-Elmt
# Terminasi
print("Bilangan genap ada = " + str(countgenap))
print("Bilangan ganjil ada = " + str(countganjil))
# ALGORITMA
N = int(input("Masukkan jumlah anak ayam = "))
while # KAMUS
# N, i : int
# ALGORITMA
N = int(input("Masukkan jumlah anak ayam = "))