4 Pemilihan Proses
4 Pemilihan Proses
(Selection)
Pencabangan
Keputusan (Decision)
Penyeleksian Kondisi (Syarat)
Keputusan:
Naik Kelas atau Tidak Naik Kelas
Proses:
bila NR 50 (syarat terpenuhi) maka naik kelas,
bila tidak maka tidak naik kelas.
Keputusan:
Naik Kelas atau Tidak Naik Kelas
Syarat:
bila NR < 50 (syarat terpenuhi) maka tidak naik kelas,
bila tidak maka naik kelas.
Benar
Syarat
Pernyataan
Salah
Ya
T>
100 ?
Bunyikan Alarm
Tidak
Operator
Fungsi atau arti
Matematika Pascal
= = Sama dengan
<> Tidak sama dengan
< < Lebih kecil daripada
> > Lebih besar daripada
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
Salah
A=B?
Benar
Salah
pswd = kode ?
Benar
1. Menentukan naik kelas atau tidak waktu di SMA. Siswa naik kelas
bila nilai rata-rata (NR) 50 dan tidak naik kelas bila NR < 50.
2. Menentukan sifat gaya Coulomb, F. Bila F > 0 maka ”gaya tolak-
menolak”, bila F < 0 maka ”gaya tarik-menarik”.
3. Menentukan jenis bilangan, ganjil atau genap.
Salah
Kondisi?
Pernyataan2
Benar
Pernyataan1
Tidak
NR 50 ?
‘Naik Kelas’
Tidak
NR < 50 ?
‘Naik Kelas’
Ya
Contoh:
Readln(NR);
IF NR >= 50 THEN writeln (‘Naik Kelas’)
ELSE Writeln (‘Tidak Naik Kelas’);
Jika kondisi benar (NR < 50) maka yang akan dikerjakan adalah
menampilkan tulisan ‘Tidak Naik Kelas’, sedangkan bila kondisi
bernilai salah (NR 50) maka yang akan dikerjakan adalah
menampilkan tulisan ‘Naik Kelas’.
Readln(NR);
IF NR < 50 THEN Status := ‘Tidak Naik Kelas’
ELSE Status := ‘Naik Kelas’;
Writeln (status);Afdal, Andalas Physics 2018
Contoh soal:
Buatlah flow chart program untuk menentukan jenis bilangan, apakah
ganjil atau genap.
Mulai
Buat perintah
Input Bilangan (x) pascalnya!
Sisa = 0? Tidak
Ya
Cetak ‘ Bilangan Genap’ Cetak ‘Bilangan Ganjil’
Selesai
Afdal, Andalas Physics 2018
Pilihan Jamak / Multi
Bentuk ini digunakan bila terdapat banyak (lebih dari dua) pilihan.
Ya Pernyataan 1
Kondisi 1?
Tidak
Ya
Kondis 2 ? Pernyataan 2
Tidak
Perhatikan: untuk kasus
dengan tiga pilihan,
Pernyataan 3 hanya ada dua kondisi yang
diperiksa.
RhoB := mb/vb;
IF RhoB < RhoF THEN writeln (‘Benda Terapung’)
ELSE IF RhoB = RhoF THEN Writeln (‘Benda
Melayang’)
ELSE Writeln (‘Benda Tenggelam’);
Afdal, Andalas Physics 2018
Contoh:
Sebuah muatan positif q bergerak dengan kecepatan v memasuki
“selektor-kecepatan” yang memiliki medan listrik E berarah ke
bawah, dan medan magnet B berarah ke dalam. Muatan tersebut
akan mendapat dua gaya sekaligus, yaitu gaya Coulomb Fc = qE
Input program:
- Nilai a, b, c dari persamaan kuadrat
Keluaran program:
• Persamaan kuadratnya
• Tipe akarnya
• Nilai akar-akarnya
D b 2 4ac
Ya
Cetak ('pk punya dua akar real : ')
D > 0?
Tidak
x1 (b D ) / 2a
Ya x2 (b D ) / 2a
D=0?
Tidak Cetak ('akar pertama = ', x1)
Cetak ('akar kedua = ', x2)
Cetak ('pk punya dua akar kompleks : ')
Re -b/(2a)
Cetak ('pk punya akar kembar : ')
Im D / 2a
X1 -b /(2a)
cetak (‘ x1 = ', Re, ' + ', Im , ‘ i ‘ );
cetak (‘ x2 = ', Re, ' - ', Im , ‘ i ‘ ); Cetak (‘ akar = ', x1)
Selesai
Afdal, Andalas Physics 2018
Program: if d > 0 then
begin
writeln('pk punya dua akar real : ') ;
Program persamaankuadrat; x1:= (-b + sqrt(d))/(2*a);
uses crt; x2:= (-b - sqrt(d))/(2*a) ;
var writeln('akar pertama = ',x1:5:2);
a,b,c,d:integer; writeln('akar kedua = ',x2:5:2);
x1,x2, Re, Im : real; end
begin else if d = 0 then
clrscr; begin
write('bilangan pertama : '); read(a); writeln ('pk punya akar kembar :');
write('bilangan kedua : '); read(b); x1:= -b /(2*a);
write('bilangan ketiga : '); read(c); writeln('akar = ',x1:5:2);
writeln('y =',a,'x^2 +', b, 'x +', c); end
d:=b*b-4*a*c; else
begin
writeln ('pk punya dua akar kompleks :');
Re := -b/(2*a);
Im := sqrt(abs(D))/(2*a);
writeln('x1 = ', Re:3:1, ' + ', Im:3:1, 'i');
writeln('x2 = ', Re:3:1, ' - ', Im:3:1, 'i');
end;
end.
Afdal, Andalas Physics 2018
Contoh kasus dengan 5 alternatif pilihan
Menentukan wujud H2O berdasarkan temperaturnya:
Ya
T<0? Wujud ‘ Es ’
Tidak
Ya
T=0? Wujud ‘ Mencair ’
Tidak
Ya
T < 100 ? Wujud ‘ Air ’
Tidak
Ya
T = 100 ? Wujud ‘ Menguap ’
Tidak
Wujud ‘ Uap ’
Perhatikan:
untuk kasus dengan lima pilihan,
Afdal, Andalas Physics 2018
hanya ada empat kondisi yang diperiksa.
Contoh
Konversi nilai angka menjadi nilai huruf:
Tidak
Ya
NA < 65 NH ‘C+’
Ya
NA < 85 NH ‘A-’
Tidak
NH ‘A’
Flowchart alternatif, Ya
konversi nilai angka NA 85 ? NH ‘A’
menjadi nilai huruf: Tidak
Ya
NA 80 ? NH ‘A-’
Tidak
Ya
NA 75 ? NH ‘B+’
Tidak
Ya
NA 70 NH ‘B’
Ya
NA 40 NH ‘D’
Tidak
NH ‘E’
Perintah Pascal:
if ( NA >=85)then NH := 'A'
else if ( NA >= 80 ) then NH := 'A-'
else if ( NA >= 75 ) then NH := 'B+'
else if (NA >=70) then NH := 'B'
else if (NA >= 65) then NH := 'B-'
else if NA >= 60 then NH := 'C+'
else if (NA >= 55) then NH := 'C'
else if NA >= 40 then NH := 'D'
else NH := 'E‘;
Afdal, Andalas Physics 2018
Bentuk CASE
CASE Ungkapan OF
A : pernyataan_1;
B : pernyataan_2;
C : pernyataan_3;
M : pernyataan_M;
ELSE
Pernyataan_N ;
END
Ungkapan adalah ekspresi yang bertipe ordinal ( integer, char, boolean )
A sampai M adalah konstanta yang bertipe sama dengan ungkapan.
Pernyataan yang akan dikerjakan adalah pernyataan yang kode-nya
bernilai sama dengan nilai ungkapan.