Uploaded by mdelinha513

PEMILIHAN 1

advertisement
PEMILIHAN
Abertun Sagit Sahay, ST., M.Eng.
• Statemen kendali digunakan untuk mengambil
suatu keputusan atau memilih bagian program
yang akan dikerjakan sesuai dengan kondisi
atau syarat yang diberikan.
• Statemen-statemen diatas memerlukan suatu
kondisi atau syarat sebagai dasar pengambilan
keputusan. Salah satu kondisi yang umum
digunakan adalah berupa keadaan benar atau
salah (true or false).
PENYAJIAN
• Ketika menyelesaikan masalah, tidak hanya
satu kasus yang kita temui, namun ada banyak
kadang kala kita menemui beberapa kasus.
Ada beberapa format yang berbeda untuk
setiap kasus ketika diimplementasikan di
algoritma pemrograman.
Satu Kasus
• Menggunakan konstruksi IF-THEN (jika-maka)
dalam bentuk pernyataan :
if kondisi then
pernyataan
endif
• Pernyataan sesudah kata then (dapat berupa
satu atau lebih pernyataan) adalah aksi yang
hanya akan dilaksanakan bila kondisi bernilai
benar (true).
• Bila kondisi bernilai salah (false), tidak ada
pernyataan apapun yang dikerjakan. Kata
endif sengaja ditambahkan untuk
mempertegas awal dan akhir struktur IFTHEN.
Contoh Masalah :
• Buatlah algoritma yang membaca sebuah
bilangan bulat dari suatu papan ketik, lalu
mencetak pesan “genap” jika bilangan tersebut
adalah genap.
Penyelesaian :
• Bilangan genap adalah bilangan yang habis dibagi
dengan 2 (sisa pembagian = 0). Oleh karena itu,
kita perlu membagi data masukan dengan 2. Jika
data masukan habis dibagi 2, maka dapat ditulis
bahwa bilangan tersebut bilangan genap.
ALGORITMA Genap
{ Mencetak pesan “bilangan
genap” jika sebuah bilangan
bulat yang dibaca dari piranti
masukan merupakan
bilangan genap }
Program Genap;
{ Mencetak pesan “bilangan
genap” jika sebuah bilangan
bulat yang dibaca dari
piranti masukan merupakan
bilangan genap }
DEKLARASI
x : integer
var
x : integer;
DESKRIPSI :
read(x)
if x mod 2 = 0 then
write(’genap’)
endif
begin
read(x);
if x mod 2 = 0 then
write(’genap’);
end.
Dua Kasus
• Menggunakan konstruksi IF-THEN-ELSE (jika-makakalau tidak) dalam bentuk pernyataan :
if kondisi then
pernyataan1
else
pernyataan2
endif
• Pernyataan1 dilaksanakan jika kondisi bernilai benar,
sebaliknya jika kondisi bernilai salah, maka pernyataan2
yang akan dilaksanakan. else menyatakan ingkaran
(negation) dari kondisi.
• Contoh Masalah :
Tulislah algoritma yang membaca sebuah
bilangan bulat, lalu menuliskan pesan “genap”
jika bilangan tersebut adalah genap atau
“ganjil” jika bilangan tersebut adalah bilangan
ganjil.
ALGORITMA GenapGanjil
{ Mencetak pesan “genap” jika sebuah bilangan bulat yang
dibaca merupakan bilangan genap atau “ganjil” jika bilangan
tersebut ganjil }
DEKLARASI
x : integer
DESKRIPSI
read(x)
if x mod 2 = 0 then
write(’genap’)
else
write(’ganjil’)
endif
Program GenapGanjil
{ Mencetak pesan “genap” jika sebuah bilangan bulat
yang dibaca merupakan bilangan genap atau “ganjil”
jika bilangan tersebut ganjil }
var
x : integer;
begin
read(x);
if x mod 2 = 0 then
write(’genap’)
else
write(’ganjil’);
End.
Tiga Kasus atau Lebih
• Menggunakan konstruksi IF-THEN-ELSE (jikamaka-kalau tidak) bertingkat-tingkat dalam
bentuk pernyataan
Tiga Kasus :
Empat Kasus :
if kondisi1 then
if kondisi1 then
pernyataan1
pernyataan1
else if kondisi2 then
else if kondisi2 then
pernyataan2
else if kondisi3 then
pernyataan2
pernyataan3
else if kondisi3 then
else if kondisi4 then
pernyataan3
pernyataan4
endif
endif
endif
endif
endif
endif
endif
Tulislah algoritma yang membaca sebuah
bilangan bulat, lalu menentukan apakah
bilangan tersebut positif, negatif atau nol.
ALGORITMA JenisBilanganBulat
{ Menentukan apakah sebuah bilangan bulat merupakan bilangan positif,
negatif atau nol }
DEKLARASI
x : integer
DESKRIPSI :
read(x)
if x > 0 then
write(‘positif’)
else if x < 0 then
write(‘negatif’)
else
write(‘nol’)
endif
endif
endif
Latihan
• Buatlah algoritma dan translasikan ke dalam
Pascal untuk membandingkan 3 buah bilangan
dan menentukan nilai terbesar dari ketiga
bilangan bulat tersebut.
Latihan
Seorang guru ingin menghitung nilai akhir mata pelajaran
dengan ketentuan : Tugas 20%, MidTest 30% dan UAS
50%, dimana sebelum menentukan peritungan, akan
dicek apakah seorang siswa tersebut mengkuti ujian akhir.
Jika tidak, maka perhitungan tersebut tidak akan
dilakukan dan langsung dinyatakan tidak tersebut tidak
lulus. Sementara jika ikut ujian akhir, nilai akhirnya akan
ditentukan apakah nilai memuaskan atau tidak.
Sangat Memuaskan 80 – 100
Memuakan
70 – 79
Cukup Memuaskan 60 – 69
Mengecewakan
< 60
Struktur CASE
• Untuk masalah dengan dua kasus atau lebih,
konstruksi CASE dapat menyederhanakan
penulisan IF..THEN..ELSE yang bertingkattingkat.
• Konstruksi CASE sebagai berikut :
case ekspresi
nilai1 : aksi1
nilai2 : aksi2
...
...
nilain : aksin
otherwise : aksix
endcase
• Ekspresi adalah sembarang ekspresi (aritmatika
atau boolean) yang menghasilkan suatu nilai
(konstanta).
• Struktur CASE memeriksa apakan nilai dari
ekspresi tersebut sama dengan salah satu dari
nilai1, nilai2,...nilain.
• Semua nilai-nilai ini harus berbeda.
• Jika tidak ada satupun nilai ekspresi yang cocok,
maka aksi sesudah otherwise dikerjakan.
• Otherwise bersifat optional, artinya boleh ditulis
atau tidak di dalam konstruksi CASE
Read(x)
Case x
1 : write(‘satu’)
2 : write(‘dua’)
3 : write(‘tiga’)
Otherwise : write(‘yang anda masukan bukan
yang dimaksud’)
endcase
DEKLARASI :
Nama, Ket
NA, Tgs, Mid, Final
Mutu
: string
: real
: char
DESKRIPSI :
Read(nama)
Read( Tgs, Mid,Final)
NA 
(Tgs*20%)+(Mid*30%)+(Final*50%
)
1
If NA >= 80 then Mutu  ‘A’
Else if NA >= 70 then Mutu  ‘B’
Else if NA >= 56 then Mutu  ‘C’
Else if NA >= 46 then Mutu  ‘D’
Else Mutu  ‘E’
End if
End if
End if
2
End if
If (Mutu = ‘A’) OR (Mutu = ‘B’) OR
(Mutu = ‘C’) THEN
Ket  ‘LULUS’
Else Ket  ‘TIDAK LULUS’
End if
Write(Nama)
Write(NA)
Write(Mutu)
Write(Ket)
3
Download