pemilihan

advertisement
PEMILIHAN
Dian Palupi Rini, M.Kom
Runtunan
• Struktur runtunan hanya terdapat pada
program sederhana. Pada umumnya,
masalah yang akan diselesaikan memiliki
beberapa alternatif pelaksanaan aksi.
Suatu aksi hanya dilakukan bila
persyaratan atau kondisi tertentu dipenuhi
1
Notasi algoritmik :
if kondisi then
Aksi
endif
Aksi (dapat berupa satu atau lebih aksi)
hanya akan dilaksanakan bila kondisi bernilai
benar (true), jika kondisi bernilai salah, tidak
ada aksi apapun yang dikerjakan.
Contoh analisis dengan satu kasus
Dibaca sebuah bilangan bulat dari piranti
masukan. Diminta mencetak pesan
‘bilangan genap’ jika bilangan tersebut
adalah genap.
2
Algoritma Bilangan_Genap
{mencetak pesan ‘bilangan genap’ jika sebuah bilangan
bulat yang dibaca merupakan bilangan genap}
Deklarasi :
Bil : integer
Deskripsi :
read (bil)
if bil mod 2 = 0 then
write (‘bilangan genap’)
endif
Algoritma Huruf_vokal
{mencetak pesan ‘Huruf hidup’ jika sebuah karakter yang
dibaca merupakan huruf vokal}
Deklarasi :
c : character
Deskripsi :
read (c)
if (c=’a’) or (c=’i’) or(c=’u’)or(c=’e’)or(c=’o’)then
write (‘Huruf hidup’)
endif
3
Dua Kasus
• if kondisi then
•
Aksi1
• else
•
Aksi2
• endif
Dua Kasus
• Aksi1 (dapat berupa satu atau lebih aksi)
akan dilaksanakan bila kondisi bernilai
benar (true), jika kondisi bernilai salah
maka aksi2 yang akan dilaksanakan.
4
Contoh 1:
Dibaca sebuah bilangan bulat dari piranti
masukan. Diminta mencetak pesan
‘bilangan genap’ jika bilangan tersebut
adalah genap atau bilangan ganjil jika
bilangan tersebut adalah ganjil.
Algoritma Genap_Ganjil
{mencetak pesan ‘bilangan genap’ jika sebuah bilangan bulat yang dibaca
merupakan bilangan genap atau ‘bilangan ganjil’ jika bilangan tsb ganjil}
Deklarasi :
Bil : integer
Deskripsi :
read (bil)
if bil mod 2 = 0 then
write (‘bilangan genap’)
else
write (‘bilangan ganjil’)
endif
5
Contoh 2:
Tulis algoritma yang membaca dua buah
bilangan bulat dari piranti masukan, lalu
tentukan bilangan terbesar dari kedua
bilangan tersebut.
Algoritma Maksimum
{menentukan bilangan terbesar dari dua buah bilangan bulat}
Deklarasi :
a,b : character
Deskripsi :
read (a,b)
if a > b then
write (‘Bilangan terbesar : ’,a)
else
write (‘Bilangan terbesar : ’,b)
endif
6
Tiga Kasus atau Lebih
•
if kondisi1 then
Aksi1
else
if kondisi2 then
Aksi2
else
If kondisi3 then
Aksi3
endif
endif
endif
Contoh 1:
Tulis algoritma yang membaca sebuah
bilangan bulat, lalu menentukan apakah
bilangan tersebut positif, negatif atau nol.
7
Algoritma Jenis_bilangan
{mencetak pesan ‘bilangan positif’ jika bilangan bulat yang dibaca > 0, atau ‘bilangan
negatif’ jika < 0 atau ‘nol’ jika = 0}
Deklarasi :
Bil : integer
Deskripsi :
read (bil)
if bil > 0 then
write (‘bilangan positif’)
else
if bil < 0 then
write (‘bilangan negatif’) else
if bil = 0 then
write (‘nol’)
endif endif endif
Program Menghitung Total Harga Barang
• Jika Jumlah barang yang dibeli < 100 buah, maka harga
perbarang yang dibeli adalah Rp 10.000,• Jika jumlah barang yang dibeli lebih besar dari atau
sama dengan 100 dan kurang daari 150, maka harga
perbarang adalah Rp 9.500
• Jika jumlah barang yang dibeli lebih dari atau sama
dengan 150, maka harga perbarang adalah RP 9.000,Masukan dari program ini adalah jumlah barang yang dibeli
Keluarannya adalah harga yang harus dibayar
8
Algoritma Program
Deklarasi
Jumlah : integer;
Harga, total : Real;
Deskripsi
Write (‘Masukan jumlah barang’)
Read (Jumlah)
If Jumlah < 100 then
Harga Å10000
Else
If Jumlah >= 100 and jumlah < 150 then
Harga Å 9500
Else
If Jumlah >= 150 then
Harga Å 9000
End if
Total Å Harga * Jumlah
Write (harga)
Program Hubungan 2 garis
• Masukan dari kedua gradien kedua garis
ini bertipe real.
• Keluarannya adalah hubungan antara 2
garis yaitu :
– Sejajar jika m1=m2
– Tegak lurus jika m1.m2= -1
– Perpotongan jika tidak memenuhi keduanya
9
Algoritma Program
Deklarasi
M1,m2 : real;
Hubungan : string;
Deskripsi
Write (Masukan Nilai garis 1);
Read (m1);
Write (Masukan Nilai garis 2);
Read (m2);
If m1 = m2 then
Hubungan = ‘sejajar’
Else
If m1.m2 = -1 then
Hubungan = ‘Tegak lurus’
Else
Hubungan = ‘Berpotongan’
End if
Write (‘hubungannya =‘);
Write (hubungan)
Program Kuadran
• Masukan dari program ini adalah 2 buah
bilangan real yang melambangkan
koordinat disuatu titik
• Keluaran program ini adalah ‘Kuadran I’,
‘Kuadran II’, ‘Kuadran III’, ‘Kuadran IV’
10
Algoritma Program
Deklarasi :
Koordinat : Record
<x : real;
y : real>
P : Koordinat
Deskripsi
Write (‘Px =‘), Read (P.x)
Write (‘Py =‘), Read (P.y)
If P.x>0 and P.y>0 then
kuadran = ‘kuadran I’
Else
If P.x<0 and P.y>0 then
kuadran = ‘kuadran II’
Else
If P.x<0 and P.y<0 then
kuadran = ‘kuadran III’
Else
If P.x>0 and P.y<0 then
kuadran = ‘kuadran IV’
Struktur Case
Case (nama)
Kondisi1 : Aksi1
kondisi2 : Aksi2
kondisi3 : Aksi3
. . .
kondisiN : AksiN
[otherwise aksix]
endcase
11
Contoh :
• Tulis algoritma yang membaca sebuah
titik, lalu menentukan kuadran titik tersebut
pada bidang kartesian.
Algoritma Kuadran_titik
{menentukan kuadran sebuah titik di bidang kartesian}
Deklarasi :
Type titik : record
<x: real,
y : real>
P : titik
Deskripsi :
read (p.x,p.y)
case (p.x, p.y)
(p.x > 0)and (p.y > 0) : write (‘kuadran 1’)
(p.x < 0)and (p.y > 0) : write (‘kuadran 2’)
(p.x < 0)and (p.y < 0) : write (‘kuadran 3’)
(p.x > 0)and (p.y < 0) : write (‘kuadran 4’)
otherwise
write (‘tidak terletak di kuadran manapun’)
endcase
12
Download