4
Pemilihan
• Memahami
struktur
pemilihan
dalam
program
• Mengenal
struktur
IF
dan
CASE
yang
dapat
digunakan
dalam
pemilihan
• Memahami
konsep
kondisi
dan
aksi
dalam
struktur
pemilihan
• Menerapkan
pemilihan
dalam
menyelesaikan
berbagai
kasus
Bentuk
If
dan
Variasinya
Bentuk
umum
If
kondisi
then
Aksi-‐1
[else]
Aksi-‐2
End
if
• Kondisi
adalah
ekspresi
boolean
yang
bernilai
benar
atau
salah
• Aksi
berupa
satu
statement
beberapa
statement
• [else
Aksi-‐2],
tanda
[
]
menyatakan
opsional
(boleh
ada/Fdak
ada),
dimana
kalau
Fdak
ada,
berarF
setelah
Aksi-‐1
langsung
selesai
Bentuk
If
dan
Variasinya
1.
IF
condiFon
1
pilihan
Bentuk
If
dan
Variasinya
2.
IF
condiFon
2
pilihan
Bentuk
If
dan
Variasinya
2.
IF
condiFon
3
pilihan
atau
lebih
Penerapan
IF
Condi>on
Contoh:
Lampu
lalu
lintas
merah,
kuning,
hijau
If
(lampu
=
merah)
then
If
(pengendara
taat)
then
Kendaraan
berhenF
else
Kendaraan
jalan
end
if
Else
if
(lampu
=
kuning)
HaF-‐haF
Memperlambat
laju
kendaraan
Kendaraan
berhenF
Else
/*
lampu
hijau
atau
lampu
ma0
*/
Kendaraan
jalan
dengan
haF-‐haF
End
if
Penerapan
IF
Condi>on
Contoh:
algoritma
menentukan
apakah
bilangan
yang
diinput
posiFf
atau
negaFf.
Solusi
1
Solusi
2
Input(bil)
Input(bil)
If
(bil>=0)
then
Ket
ß
‘negaFp’
Output(‘posiFp’)
If
(bil>=0)
then
Else
Ket
ß
‘posiFp
Output(‘negaFp’)
End
if
End
if
Output(Ket)
Solusi
lain???
Penerapan
IF
Condi>on
Penerapan
IF
Condi>on
Ulasan
dari
beberapa
solusi:
• Solusi-‐1
dan
Solusi-‐2
adalah
solusi
yang
sama,
digunakan
kondisi
berkebalikan
sehingga
posisi
perintah
tampilan
ditukar.
• Solusi-‐3
dan
Solusi-‐4
juga
sama,
keduanya
menggunakan
“if
tanpa
else”,
dengan
cara
variabel
Ket
diinisialisasi
(diberi
nilai
awal)
dengan
salah
satu
kemungkinan
hasilnya,
kemudian
diubah
bila
memenuhi
kondisi.
• Solusi-‐5
dan
Solusi-‐6
juga
sama,
pada
solusi
ini
dibuat
2
buah
“if
tanpa
else”
secara
terpisah.
Dengan
cara
ini,
berarF
akan
dilakukan
pemeriksaan
kondisi
2
kali
(padahal
sebenarnya
cukup
satu
kali).
• Solusi-‐7
dan
Solusi-‐8
keduanya
menggunakan
variabel
berFpe
boolean
bernama
posiFp
untuk
mencatat
hasil
pembandingan
bil>=0.
Penulisan
“if
(posiFf=true)”
sama
saja
dengan
menuliskan
“if
(posiFf)”
cara
yang
terakhir
lebih
cepat
waktu
eksekusinya.
Penerapan
IF
Condi>on
Contoh:
Menentukan
bilangan
terbesar
dari
3
bilangan.
Misalnya:
A
=
100,
B
=
200
,
C
=
300.
Bilangan
terbesar
adalah
C
dengan
nilai
300
Input(A,B,C)
Input(A,B,C)
If
(A
>
B)
then
If
(100
>
200)
then
Max
ß
A
Max
ß
100
else
else
Max
ß
B
Max
ß
200
End
if
End
if
If
(C
>
Max)
then
If
(300
>
200)
then
Max
ß
C
Max
ß
300
End
if
End
if
Output(‘terbesar
=
‘,300)
Output(‘terbesar
=
‘,Max)
Penerapan
IF
Condi>on
Contoh:
Pembayaran
air
minum
PDAM
PDAM
menerapkan
pembayaran
air
minum
perumahan
dengan
cara
perhitungan
sebagai
berikut
:
-‐ Tarif
per
m3
untuk
10
m3
pertama
(1-‐10)
adalah
2.000
-‐ Tarif
per
m3
untuk
10
m3
kedua
(11-‐20)
adalah
3.000
-‐ Tarif
per
m3
untuk
10
m3
keFga
(21-‐30)
adalah
4.000
-‐ Tarif
per
m3
untuk
10
m3
selanjutnya
(31
ke
atas)
adalah
5.000
-‐ Pemakaian
air
dihitung
minimal
10
m3
(kurang
dari
10
m3
dianggap
10
m3)
-‐ Biaya
administrasi
bulanan
sebesar
10.000
Contoh
kasus
Pemakaian
air
dibagi
menjadi
4
area
pemakaian
(misal
area
a,b,c,d),
baru
dihitung
total
biaya
Penggunaan
air
5
m3
dengan
biaya
10
x
2.000
+
10.000
=
30.000
Penggunaan
air
15
m3
dengan
biaya
10
x
2.000
+
5
x
3.000
+
10.000
=
45.000
Penggunaan
air
75
m3
dengan
biaya
10
x
2.000
+
10
x
3.000
+
10
x
4.000
+
45
x
5.000
+10.000
=
325.000
Penerapan
IF
Condi>on
Contoh:
Algoritma
pembayaran
air
minum
PDAM
Input(pakai)
If
(pakai
>
30)
then
a
ß
10
b
ß
10
c
ß
10
d
ß
pakai
-‐
30
Else
If
(pakai
>
20)
then
a
ß
10
b
ß
10
c
ß
pakai
-‐
20
d
ß
0
Else
If
(pakai
>
10)
then
a
ß
10
b
ß
pakai
-‐
10
c
ß
0
d
ß
0
Else
a
ß
10
b
ß
0
c
ß0
d
ß
0
End
if
Biaya
ß
a*2000
+
b*3000
+
c*4000
+
d*5000
+
10000
Output(‘biaya
=’,biaya)
Bentuk
CASE
dan
Variasinya
Sebenarnya
semua
bentuk
pemilihan
dapat
ditulis
dengan
IF,
namun
penulisan
dengan
IF
untuk
banyak
pilihan
terasa
kurang
prakFs.
Bentuk
CASE
adalah
cara
lain
penulisan
bentuk
pemilihan
yang
lebih
sederhana,
namun
bentuk
ini
hanya
dapat
mengganFkan
IF
apabila
memenuhi
syarat:
-‐ kondisi
berupa
pembandingan
kesamaan
(dengan
tanda
“=”
)
-‐ nilai
yang
dibandingkan
berFpe
ordinal
(integer,char
dan
boolean)
Case
ekspresi
Nilai-‐1:
Aksi-‐1
Nilai-‐2:
Aksi-‐2
...
Nilai-‐N:
Aksi-‐N
[Otherwise
:
Aksi-‐X]
End
Case
Bentuk
CASE
dan
Variasinya