Tiap program yang komplek mengandung suatu penyeleksian kondisi. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, di dalam bahasa pascal dapat dipergunakan statemen if case.
Statemen (pernyataan) If dapat dibagi menjadi tiga, yaitu:
1. Statemen If-Then
2. Statemen If-then…Else
Contoh:
Program Kelulusan_Hasil_Ujian;
uses wincrt;
var a:integer;
begin
write('Nilai Mahasiswa = ');readln(a);
If a>60 then writeln('Selamat Anda Lulus!')
else writeln('Maaf Anda Tidak Lulus')
end.
3. Statemen If bersarang (Nested)
Bentuk statemen if yang mengandung pernyataan if yang lain.
If
Begin
If
Else
End.
Statemen case dapat dibagi menjadi dua, yaitu:
1.Statemen Case-Of
Struktur case-of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector.
Case
Daftar case-label1:statemen1;
Daftar case-label2:statemen2;
Daftar case-labe3:statemen3; .
Daftar case-labeln:statemenn;
End;
2.Statemen Case-Of…Else
Statemen Case-Of…Else merupakan pengembangan dari struktur case of dan juga pengembangan dari standar Pascal. Dengan struktur Case-Of…Else, bila tidak ada kondisi yang terpenuhi, maka statemen yang akan diproses di dalam lingkunagn Case-Of adalah statemen yang ada di Else.
Contoh penyeleksian kondisi :
1.Program Kelulusan_Hasil_Ujian;
uses wincrt;
var
nilai:integer;
keterangan:string[25];
begin
Keterangan:='Selamat Anda Lulus !';
write('Nilai Mahasiswa = ');readln(nilai);
If Nilai<60 then keterangan:='Maaf Anda Belum Lulus !';
write(keterangan);
end.
2.Program Bilangan_Positif_Negatif_Netral;
uses wincrt;
var bilangan:integer;
begin
write('Masukkan bilangan = '); readln (bilangan);
if bilangan>0 then write ('Bilangan Positif') else
if bilangan=0 then write ('Bilangan Netral') else
write ('Bilangan Negatif');
end.
3.Program Nilai_Terbesar;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write ('Masukkan 1: ');Readln(a);
Write ('Masukkan 2: ');Readln(b);
Write ('Masukkan 3: ');Readln(c);
If (a>b) and (a>c) then Write(a);
If (b>a) and (b>c) then Write(b);
If (c>a) and (c>b) then Write(c);
End.
4.Program Menu_Makanan;
uses wincrt;
var x:integer;
menu:string;
begin
writeln('========================');
writeln('Menu Makanan Rumah Makan');
writeln('========================');
writeln('1. Nasi Goreng');
writeln('2. Mie Goreng');
writeln('3. Nasi Gudeg');
write('Pilih Menu Favoritmu! ');readln(x);
if x=1 then write ('>>Nasi Goreng = Rp 6.000,00') else
if x=2 then write ('>>Mie Goreng = Rp 5.000,00') else
if x=3 then write ('>>Nasi Gudeg = Rp 4.500,00') else
writeln ('Pilihan anda tidak ada dalam menu kami')
end.
5.Program Menu_Makanan;
uses wincrt;
var x:integer;
menu:string;
begin
gotoxy(10,1);writeln('========================');
gotoxy(10,2);writeln('Menu Makanan Rumah Makan');
gotoxy(10,3);writeln('========================');
gotoxy(10,5);writeln('1. Ayam Bakar');
gotoxy(10,6);writeln('2. Ayam Goreng');
gotoxy(10,7);writeln('3. Ayam Panggang');
gotoxy(10,10);writeln('Pilih Menu Favoritmu!');
gotoxy(10,12);readln(x);
case x of
1: begin
clrscr;
gotoxy(10,4);writeln('>> Ayam Bakar = Rp 7.000,00 <<');
end;
2: begin
clrscr;
gotoxy(10,4);writeln('>> Ayam Goreng = Rp 7.000,00 <<');
end;
3: begin
clrscr;
gotoxy(10,4);writeln('>> Ayam Panggang = Rp 7.000,00 <<');
end;
end;
end.
6.Program Terbilang;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write('Masukkan Angka: ');readln(a);
b:=a div 10;
c:=a mod 10;
Writeln;
Begin
If (b=1) and (c=0) then write('sepuluh');
If (b=1) and (c=1) then write('sebelas');
If (b=1) and (c=2) then write('dua belas');
If (b=1) and (c=3) then write('tiga belas');
If (b=1) and (c=4) then write('empat belas');
If (b=1) and (c=5) then write('lima belas');
If (b=1) and (c=6) then write('enam belas');
If (b=1) and (c=7) then write('tujuh belas');
If (b=1) and (c=8) then write('delapan belas');
If (b=1) and (c=9) then write('sembilan belas');
Begin
If (b=0) and (c=1) then write('satu');
If (b=0) and (c=2) then write('dua');
If (b=0) and (c=3) then write('tiga');
If (b=0) and (c=4) then write('empat');
If (b=0) and (c=5) then write('lima');
If (b=0) and (c=6) then write('enam');
If (b=0) and (c=7) then write('tujuh');
If (b=0) and (c=8) then write('delapan');
If (b=0) and (c=9) then write('sembilan');
End;
Case b of
2: Write('dua puluh ');
3: Write('tiga puluh ');
4: Write('empat puluh ');
5: Write('lima puluh ');
6: Write('enam puluh ');
7: Write('tujuh puluh ');
8: Write('delapan puluh ');
9: Write('sembilan puluh ');
End;
If b>1 then
Case c of
1: Write('satu');
2: Write('dua');
3: Write('tiga');
4: Write('empat');
5: Write('lima');
6: Write('enam');
7: Write('tujuh');
8: Write('delapan');
9: Write('sembilan');
End;
End;
End.
7.Program Kelulusan;
uses wincrt;
var
a,b,c,d:real;
Ket:string[11];
begin
writeln ('Masukkan Nilai PDB=');readln(a);
writeln ('Masukkan Nilai Kalkulus=');readln(b);
writeln ('Masukkan Nilai Statistika Inferensial=');readln(c);
d:=(a+b+c)/3;
writeln ('Rata-rata Nilai',(d):5:2);
Ket:='Lulus';
if d <50 then Ket:='Tidak Lulus';
writeln(Ket);
end.
8.Program Mencari_Akar_Persamaan;
uses wincrt;
var a,b,c,d,e,x1,x2,x:real;
begin
repeat
repeat
writeln('masukkan nilai a=');readln(a);
writeln('masukkan nilai b=');readln(b);
writeln('masukkan nilai c=');readln(c);
until a<>0;
d:=sqr(b)-4*a*c;
until d>=0;
if d=0 then
begin
e :=-b/2*a;
writeln('x1=x2=',e:5:2);
end else
if d>0 then
begin
x1:=-b+sqrt(d)/(2*a);
x2:=-b-sqrt(d)/(2*a);
writeln('x1=',x1:5:2);
writeln('x2',x2:5:2);
end;
end.
9.Program Operasi_Tambah_Kurang_Kali_Bagi_Div_Mod;
Uses Wincrt;
Var
a,b,i:longint;
c,d,e,f,g,h:real;
Begin
Gotoxy (25,3); Writeln ('Menu Opersai Dua Bilangan');
Gotoxy (25,5); Writeln ('1. Penjumlahan');
Gotoxy (25,6); Writeln ('2. Pengurangan');
Gotoxy (25,7); Writeln ('3. Perkalian');
Gotoxy (25,8); Writeln ('4. Pembagian');
Gotoxy (25,9); Writeln ('5. Pembagian Bulat');
Gotoxy (25,10); Writeln ('6. Sisa Hasil Pembagian');
Gotoxy (25,12); Write ('Masukkan Pilihan Anda= '); readln (i);
Clrscr;
Gotoxy (20,3); If i=1 then
Begin
Writeln ('Operasi yang anda pilih adalah Penjumlahan');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
c:=a+b;
Gotoxy (20,7); Writeln ('Hasil Penjumlahan adalah ',(c):5:0);
End
else If i=2 then
Begin
Writeln ('Operasi yang anda pilih adalah Pengurangan');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
d:=a-b;
Gotoxy (20,7); Writeln ('Hasil Pengurangan adalah ',(d):5:0);
End
else If i=3 then
Begin
Writeln ('Operasi yang anda pilih adalah Perkalian');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
e:=a*b;
Gotoxy (20,7); Writeln ('Hasil Perkalian adalah ',(e):5:0);
End
else If i=4 then
Begin
Writeln ('Operasi yang anda pilih adalah Pembagian');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
f:=a/b;
Gotoxy (20,7); Writeln ('Hasil Pembagian adalah ',(f):5:0);
End
else If i=5 then
Begin
Writeln ('Operasi yang anda pilih adalah Pembagian Bulat');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
g:=a div b;
Gotoxy (20,7); Writeln ('Hasil Pembagian Bulat adalah ',(g):5:0);
End
else If i=6 then
Begin
Writeln ('Operasi yang anda pilih adalah Sisa Hasil Pembagian');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
h:=a mod b;
Gotoxy (20,7); Writeln ('Sisa Hasil Pembagian adalah ',(h):5:0);
End
else Writeln ('Pilihan Anda Salah');
End.
10.Program_Rumus_ABC;
uses wincrt;
var
a,b,c,x1,x2,D,e:real;
begin
writeln(‘masukkan nilai a?’);readln(a);
writeln(‘masukkan nilai b?’);readln(b);
writeln(‘masukkan nilai c?’);readln(c);
D:=b*b-4*a*c;
If a=0 then writeln(‘tidak memiliki persamaan kuadrat’)
else if D<0 then write(‘merupakan bilangan imaginer’)
else if D=0 then
begin
e:=-b/2*a;
writeln(‘x1=x2= ‘,e:5:2);
end; else
if D>0 then
begin
x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
writeln(‘x1= ‘,x1:5:2);
writeln(‘x2= ‘,x2:5:2);
end;
end.
Tidak ada komentar:
Posting Komentar