Document

advertisement
PENYELEKSIAN
IF … THEN …,
IF … THEN … ELSE …
CASE … OF …
1
Outline


Flowcharts
IF – THEN – ELSE
2
Ekspresi Boolean
Dua macam nilai: True, False
Relation Operator
 = , < , > , <> , <= , >=
2. Boolean Operator
 AND , OR , NOT

1.
15 = 34
15.05 < 17
34 < > 34.00002
False
True
True
3
Aturan Prioritas untuk
operator Aritmatika
1. ( ) parentheses
2. Unary + and –
3. *, / , DIV , MOD
4. + –
5. If equal precedence, left to right
Examples
-a+j/-w
= (-a) + (j / (-w))
C*23/6+23mod2 = ((C*23)/6) + (23 mod 2)
4
Aturan Prioritas untuk
Operator Boolean
1. ( ) parentheses
2. NOT
3. and
4. Or
5. < , <= , > , <= , = , <>
6. If equal precedence, left to right
Examples
(count <= 10) AND (Sum <= Limit) OR NOT Stop
5
Flowchart

Graphical representation of algorithm
Terminator
Process
Input/output
Decision
Connector
Flow line
6
Flowchart example
Start
Read lebar
Read panjang
Luas := panjang + lebar
Lebar < > 0
T
Y
Cetak Luas
End
7
IF – THEN
IF condition THEN
statement
condition
False
True
Statement
8
IF – Then (sum1.pas)
Program summation1;
Var
Sum, number : integer;
Begin
Sum := 10;
Write (‘Please input a number’);
Readln(number);
if number < 0 then
number := 0;
Sum := Sum + number;
writeln (‘Sum =‘, Sum)
End.
9
IF – THEN – ELSE
IF condition THEN
statement 1
ELSE
statement 2
True
Statement1
condition
False
Statement2
10
IF – Then – Else (sum2.pas)
Program summation2;
Var
Sum, number : integer;
Begin
Sum := 10;
Write (‘Please input a number’);
Readln(number);
if number < 0 then
number := 0;
else
number := 20;
Sum := Sum + number;
writeln (‘Sum =‘, Sum)
End.
11
Nested Logic
IF cond1 THEN
statement1
ELSE
IF cond2 THEN
Statement2
ELSE
statement3
True
Statement1
condition1
True
Statement2
False
condition2
False
Statement3
12
Nested Logic (Sum3.pas)
Begin
Sum := 10;
Write (‘Please input a number’);
Readln(number);
if number > 0 then
number := number +1;
if number > 5 then
number := 5;
else
number := 20;
Sum := Sum + number;
writeln (‘Sum =‘, Sum)
End.
13
Nested Logic (sum4.pas)
Begin
Sum := 10;
Write (‘Please input a number’);
Readln(number);
if number > 0 then
begin
number := number +1;
if number > 5 then
number := 5;
End
else
number := 20;
Sum := Sum + number;
writeln (‘Sum =‘, Sum)
End.
14
Case
Case expression of
const_value1 : statement1;
const_value2 : statement2;
const_value3 : statement3;
Else
statement4;
End;
15
Case Example
Readln (number);
Case number of
1,2,3 : writeln(‘small’);
4,5,6 : writeln(‘medium’);
7,8 : writeln (‘large’);
End;
16
LATIHAN


Soal 1. Program yang membaca nilai
integer dan menuliskan nilainya jika
positif.
Soal 2. Program yang membaca nilai
integer dan menuliskan ‘Nilai a positif’
jika a >= 0 dan ‘Nilai a negatif’ jika a
< 0.
17
LATIHAN (lanj.)


Soal 3. Program yang membaca nilai
integer dan menuliskan ‘Nilai a positif’
jika a > 0 , ‘Nilai a negatif ‘ jika a < 0,
dan ‘Nilai Nol ‘ jika a=0.
Soal 4. Dibaca tiga buah harga a, b
dan c, harus dituliskan secara terurut
mulai dari yang terkecil sampai dengan
yang terbesar. Ketiga bilangan yang
dibaca selalu berlainan harganya.
18
Soal 5. Bandingkan 2 bilangan a dan b.
Jika a>b, maka cetak “a terbesar”,
sebaliknya jika a<b, maka cetak “b
terbesar’, selain itu, cetak “a = b”

19

Soal 6.
Dibaca suatu nilai bertipe integer.
Jika dimasukan harga 1 maka tulis di layar ‘SATU’
Jika dimasukan harga 2 maka tulis di layar ‘DUA’
Jika dimasukan harga 3 maka tulis di layar ‘TIGA’
……………
Jika dimasukan harga 9 maka tulis di layar
‘SEMBILAN’
Jika dimasukan harga 0 maka tulis di layar ‘NOL’
Jika dimasukan harga selain 0 s/d 9 maka tulis di
layar ‘BILANGAN SELAIN 0 s/d 9’
20

Soal 7.
Buatlah program untuk menentukan
bonus pegawai, berdasarkan ketentuan yang
diberikan oleh bagian personalia dan keuangan
sebagai berikut : Pegawai perusahaan digolongkan
menjadi dua golongan, yaitu staf dan non staf. Staf
akan mendapatkan bonus sebesar 1 juta rupiah
dengan syarat bahwa ia telah bekerja paling tidak 5
tahun dan umurnya sudah mencapai 50 tahun; staf
yang bekerja kurang dari 5 tahun dan berapapun
umurnya, hanya mendapat bonus sebesar Rp.
500.000. Pegawai non staf yang telah bekerja lebih
dari 5 tahun akan mendapat bonus sebesar Rp.
400.000 jika berumur lebih dari 50 tahun sedangkan
pegawai non staf yang berumur kurang dari 50 tahun
hanya mendapat bonus Rp. 250.000. Pegawai staf
yang umurnya kurang dari 50 tahun akan mendapat
bonus Rp. 300.000
21
Download