Tes kondisi atau seleksi merupakan konstruktor penting dalam algoritma yang mendefinisikan kondisi dan tindakan berdasarkan hasil evaluasi kondisi tersebut. Dokumen ini menjelaskan notasi algoritma untuk menyatakan tes kondisi tunggal, ganda, dan bersarang beserta contoh-contoh penerapannya.
2. Pengantar
• Test Kondisi atau Seleksi
• Konstruktor terpenting dalam algoritma
membuat teks yang sama dapat menghasilkan
eksekusi yang berbeda-beda.
• Mendefinisikan Test Kondisi adalah
mendefinisikan :
o Kondisi, yang berupa suatu ekspresi boolean yang
menghasilkan true atau false
o Aksi, yang akan dilaksanakan jika kondisi yang
dipasangkan dengan aksi yang bersangkutan dipenuhi
2
4. Notasi
• Dengan syarat :
o Kondisi-1, kondisi-2, kondisi-3, ..., kondisi-n
domain harganya [true, false]
o Kondisi-1 kondisi-2 kondisi-3 ... kondisin=
o Kondisi-1 kondisi-2 kondisi-3 ... kondisin mencakup semua kemungkinan
o Kondisi-1, kondisi-2, kondisi-3, ..., kondisi-n adalah
ekspresi boolean / logika yang mengandung
nama-nama sebagai operand
4
5. Notasi
• Contoh - 1. Dibaca dua buah harga a dan b, a
mungkin sama dengan b. Harus dituliskan harga
yang lebih besar. Eksekusi akan menghasilkan dua
kemungkinan menuliskan a jika a b, atau
menuliskan b jika b > a. Tidak mungkin keduanya.
• Spesifikasi :
• Input
: a dan b integer
• Proses : menuliskan harga yang lebih
besar
• Output : a atau b
5
6. Notasi
Algoritma Terbesar
{diberikan a dan b, menuliskan a jika a b atau menuliskan b jika
b>a}
Kamus
a, b : integer
Algoritma
Input(a, b)
Depend On (a,b)
a b : Output(a)
b>a : Output(b)
6
9. Notasi Algoritmik Dua Kasus
• Contoh - 2. Dibaca dua buah harga a dan b, a
mungkin sama dengan b. Harus dituliskan harga
yang lebih besar. Eksekusi akan menghasilkan dua
kemungkinan menuliskan a jika a b, atau
menuliskan b jika b > a. Tidak mungkin keduanya.
• Spesifikasi :
oInput : a dan b integer
oProses : menuliskan harga yang lebih
besar
oOutput : a atau b
9
10. Notasi Algoritmik Dua Kasus
Algoritma Terbesar
{diberikan a dan b, menuliskan a jika a b atau
menuliskan b jika b>a}
Kamus
a, b : integer
Algoritma
Input(a, b)
IF (a b) THEN
Output(a)
Else
Output(b)
10
11. Notasi Algoritmik Multi Kasus
IF (kondisi-1) THEN
Aksi-1
Else IF (kondisi-2) THEN
Aksi-2
Else IF (kondisi-3) THEN
Aksi-3
.....
Else IF (kondisi-n) THEN
Aksi-n
Else
Aksi-m
End-IF
11
12. Notasi Algoritmik Multi Kasus
• Contoh 3. Dibaca sebuah harga berupa bilangan bulat, yang
mewakili pengukursan suhu air (dalam oC) pada tekanan
atmosfir, harus dituliskan wujud air pada temperatur dan
tekanan itu.
• Spesifikasi :
o Input : T (integer)
o Proses : menuliskan wujud air sesuai dengan harga T
o Output:
‘Beku’ Jika T 0
‘Cair’ jika 0 < T 100
‘Uap’ jika T > 100
12
13. Notasi Algoritmik Multi Kasus
Algoritma Wujud_Air
{Diabaca T (integer) temperatur air dalam oC pada tekanan atmosfir
Harus dituliskan wujud air pada temperatur T}
Kamus
T : Integer
Algoritma
Input(T)
IF (T 0) THEN
Output(‘Beku’)
Else IF (T>0 AND T 0) THEN
Output(‘Cair’)
Else
Output(‘Uap’)
13
14. Notasi Algoritmik Test Kondisi
Bersarang
• Artinya adalah suatu Test kondisi ada di dalam
suatu test kondisi yang lain
• Kondisi yang ada didalam dianggap sebagai
aksi
14
15. Notasi Algoritmik Test Kondisi
Bersarang
IF (kondisi-1) THEN
[Aksi-1a]
IF (kondisi-11) THEN
Aksi-11
ELSE
Aksi-12
End-IF-a
[Aksi-1b]
Else
[Aksi-2a]
IF (kondisi-21) THEN
Aksi-21
ELSE
Aksi-22
End-IF-b
[Aksi-2b]
End-IF
[Aksi]
IF (kondisi-11) THEN
Aksi-11
ELSE
Aksi-12
End-IF
[Aksi]
15
16. Notasi Algoritmik Test Kondisi
Bersarang
• Contoh-4. Dibaca 3 buah bilangan bulat a, b dan c. Harus dituliskan
secara terurut mulai dari terkecil sampai dengan terbesar. Ketiga
bilangan yang dibaca selalu berlainan harganya (a b c).
– Spesifikasi :
Input
: a, b, c integer
Proses : Menuliskan harga yang dibaca mulai dari yang terkecil s/d
yang terbesar
Output : a,b,c jika a<b dan b<c
o
o
o
o
o
a,c,b jika a<c dan c<b
b,a,c jika b<a dan a<c
b,c,a jika b<c dan c<a
c,a,b jika c<a dan a<b
c,b,a jika c<b dan b<a
16
17. Notasi Algoritmik Test Kondisi
Bersarang
Algoritma urut_1
{dibaca 3 harga a,b dan c, a b c}
{harus ditulis mulai dari terkecil hingga terbesar}
Kamus
a, b, c : integer
Algoritma
Input(a, b, c)
Depend On (a, b, c)
a<b<c : output (a,b,c)
a<c<b : output (a,c,b)
b<a<c : output (b,a,c)
b<c<a : output (b,c,a)
c<a<b : output (c,a,b)
c<b<a : output (c,b,a)
17
18. Notasi Algoritmik Test Kondisi
Bersarang
Algoritma urut_2
{dibaca 3 harga a,b dan c, a b c}
{harus ditulis mulai dari terkecil hingga terbesar}
Kamus
a, b, c : integer
Algoritma
Input(a, b, c)
IF (a b AND a c AND b c) THEN
Depend On (a, b)
a<b<c : output (a,b,c)
a<c<b : output (a,c,b)
b<a<c : output (b,a,c)
b<c<a : output (b,c,a)
c<a<b : output (c,a,b)
c<b<a : output (c,b,a)
ELSE
Output(‘Data Salah Spesifikasi...’)
18
19. Notasi Algoritmik Test Kondisi
Bersarang
Algoritma urut_3
{dibaca 3 harga a,b dan c, a b c}
{harus ditulis mulai dari terkecil hingga terbesar}
Kamus
a, b, c : integer
Algoritma
INPUT(a, b, c)
IF (a<b) THEN
IF (b<c) THEN
OUTPUT(a,b,c)
ELSE IF (a<c) THEN
OUTPUT(a,c,b)
ELSE
OUTPUT(c,a,b)
End-IF
ELSE
IF (a<c) THEN
OUTPUT(b,a,c)
ELSE IF (b<c) THEN
OUTPUT(b,c,a)
ELSE
OUTPUT(c,b,a)
End-If
End-If
19
20. Soal Latihan
• Sebuah toko foto copy dalam menyambut HUT
Kemerdekaan RI ke 66 memberikan potongan
harga setiap pelanggan. Potongan yang diberikan
tergantung pada jumlah foto copy yang dilakukan
oleh pelanggan, yaitu Jika jumlah foto copy 50
diberikan potongan sebesar 5% dari jumlah
harga. Tetapi Jika jumlah foto lebih dari 50 lembar
diberikan potongan sebesar 7,5%.Buatlah
algoritma untuk menghitung jumlah yang harus
dibayar oleh pelanggan jika harga satu lembar
foto copy Rp. 113,20
21. Soal Latihan
• Sebuah toko foto copy dalam menyambut HUT
Kemerdekaan RI ke 66 memberikan potongan harga
setiap pelanggan. Potongan yang diberikan tergantung
pada jumlah foto copy yang dilakukan oleh pelanggan,
yaitu Jika jumlah foto copy 50 diberikan potongan
sebesar 2,5%. Jika jumlah foto copy 100 diberikan
potongan sebesar 5%. Jika jumlah foto copy 250
diberikan potongan sebesar 7,5% dan jika lebih maka
diberikan potongan 12%. Buatlah algoritma untuk
menghitung jumlah yang harus dibayar oleh pelanggan
jika harga satu lembar foto copy Rp. 113,21
22. Soal Latihan
• Sama dengan soal 1 di atas. Jika pelangan
dibedakan atas dua jenis, yaitu Pelanggan
“Tetap” dan “Tidak Tetap”. Jika jenis
pelanggan adalah Tetap maka potongan
diberlakukan seperti pada soal 1 di atas, tetapi
jika jenis pelanggan Tidak Tetap maka
potongan hanya diberikan sebesar 2%
berapapun jumlah lembar foto copyannya
22
23. Soal Latihan
• Sebuah toko foto copy dalam menyambut HUT Kemerdekaan RI ke
66 memberikan potongan harga setiap pelanggan. Potongan yang
diberikan tergantung pada jumlah foto copy yang dilakukan oleh
pelanggan, yaitu Jika jumlah foto copy 50 diberikan potongan
sebesar 2,5%. Jika jumlah foto copy 100 diberikan untuk 50
pertama diberi potongan 2,5% dan sisanya diberi potongan sebesar
5%. Jika jumlah foto copy 250 maka 100 lembar pertama
diberikan potongan sebesar 5% dan sisanya diberikan potongan
sebesar sebesar 7,5%. Jika lebih maka 100 pertama diberi potongan
5%, 150 lembar berikutnya diberi potongan 7,5% dan sisanya
diberikan potongan sebesar 12,5%. Buatlah algoritma untuk
menghitung jumlah yang harus dibayar oleh pelanggan jika harga
satu lembar foto copy Rp. 113,-
23
24. Soal Latihan
• Pada suatu perusahaan, terdapat 5 golongan karyawan.
Gaji karyawan ditentukan berdasarkan gaji tetap dan
juga dari lamanya bekerja. Gaji tetap dan gaji per jam
tersebut tergantung kepada golongan karyawan sesuai
dengan tabel dibawah ini. Jika karyawan bekerja lebih
dari 150 jam, kelebihan dari 150 jam tersebut dihitung
sebagai Lembur, dengan gaji perjam 1,5 kali gaji perjam
biasa
Golongan
1
2
3
4
5
Gaji Tetap
Gaji Per Jam
Rp. 500.000
Rp. 300.000
Rp. 250.000
Rp. 100.000
Rp. 50.000
Rp. 5.000
Rp. 3.000
Rp. 2.000
Rp. 1.500
Rp. 1.000
24