Dalam setiap pemrograman dikenal sebuah fungsi untuk memilah dan menyeleksi data,
begitu juga di dalam delphi. Fungsi IF digunakan untuk memilah data sehingga nilai yang
diinginkan menjadi tepat dan akurat.
Program Hitung_Nilai_1;
Bentuk Umum: USES Crt;
VAR nilai : Real;
Readkey;
END.
Statement IF
Bentuk Umum ke 2:
if (ekspresi) then Program Hitung_Nilai_2;
USES Crt;
... { statement } VAR nilai : Real;
else
... { statement } BEGIN
ClrScr;
Atau boleh ditulis:
Write ('Masukkan Nilai: ');
if (ekspresi) then Readln (Nilai);
begin
... { statement } If Nilai < 60 Then
... { statement } WriteLn('Anda Tidak Lulus')
end Else
WriteLn('Selamat Anda Lulus');
else
begin Readkey;
... { statement } END.
... { statement }
end
Bentuk Umum ke 3:
else
begin
... { statement }
... { statement }
end
Diketahui input nilai ujian sebagai berikut:
Jika ujian > 85, maka nilai =“A”
Jika ujian 70 - 85, maka nilai =“B”
Jika ujian 55 - 69, maka nilai =“C”
Jika ujian 40 – 54, maka nilai =“D”
Jika ujian < 40, maka nilai =“E”
End.
Program Hitung_Nilai_3;
Uses Crt;
Var Ujian: real;
Nilai: char;
Begin
Clrscr;
Write('Masukkan Nilai Ujian = ');
Readln(ujian);
2. Diketahui input data sisi-sisi segitiga a, b, dan c. Buatlah program untuk mengetahui apakah
segitiga tersebut termasuk segitiga siku-siku, segitiga tumpul, atau segitiga lancip.
• Jika c = a+b. maka segitiga siku-siku
• Jika c > a+b, maka segitiga tumpul
• Jika c < a+b, maka segitiga lancip
3. Diketahui data penjualan barang pada sebuah toko yang terdiri dari: Kode Barang,
Nama Barang, Jumlah, Harga Persatuan, Discount, Bayar
program bilangan_genapganjil;
Uses Crt;
Var Bilangan: Integer;
Begin
Clrscr;
Readkey;
End.
untuk menentukan apakah suatu tahun termasuk tahun kabisat atau bukan sebagai berikut:
Jika angka tahun itu habis dibagi 400, maka tahun itu sudah pasti tahun kabisat.
Jika angka tahun itu tidak habis dibagi 400 tetapi habis dibagi 100, maka tahun itu sudah
pasti bukan merupakan tahun kabisat.
Jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis dibagi 4,
maka tahun itu merupakan tahun kabisat.
Jika angka tahun tidak habis dibagi 400, tidak habis dibagi 100, dan tidak habis dibagi 4,
maka tahun tersebut bukan merupakan tahun kabisat.
program tahunkabisad;
uses crt;
var
tahun : integer;
begin
write('Masukkan Tahun Yang Akan Diperiksa : ');
readln(tahun);
if (tahun mod 4 = 0) and (tahun mod 100 <> 0) or (tahun mod
400 = 0) then
writeln('Tahun ',tahun, ' Merupakan Tahun Kabisat');
readln
end.
Diketahui input data sisi-sisi segitiga. Buatlah program untuk mengetahui apakah segitiga
tersebut termasuk segitiga siku-siku, seigita tumpul, atau segitiga lancip.
program sudut_segitiga;
uses crt;
Var a, b, c : integer;
begin
write('Masukkan Panjang Sisi A : ');readln(a);
write('Masukkan Panjang Sisi B : ');readln(b);
write('Masukkan Panjang Sisi C : ');readln(c);
if (c = a+b) then
writeln('Sisi Tersebut Membentuk : Segitiga Siku-Siku‘)
else if (c > a+b) then
writeln('Sisi Tersebut Membentuk : Segitiga Tumpul')
else if (c < a+b) then
writeln('Sisi Tersebut Membentuk : Segitiga Lancip');
readkey;
end.
1. Diketahui data nilai mahasiswa terdiri dari: Tugas, Kuis, UTS, UAS.
Nilai akhir diperoleh dari rata-rata dari : Tugas, Kuis, UTS, UAS
Jika rata-rata > 85, maka nilai = “A”
Jika rata-rata 70 - 85, maka nilai =“B”
Jika rata-rata 55 - 69, maka nilai =“C”
Jika rata-rata 40 – 54, maka nilai =“D”
Jika rata-rata < 40, maka nilai =“E”
2. Diketahui data penjualan barang pada sebuah toko yang terdiri dari:
Kode Barang, Nama Barang, Jumlah, Harga Persatuan, Harga, Discount, Bayar
Harga = Jumlah * Harga Persatuan
Jika jumlah barang yang dibeli < 10, discount = 0%
Jika jumlah barang yang dibeli 10-30, discount = 5%
Jika jumlah barang yang dibeli 31-50, discount = 10%
Jika jumlah barang yang dibeli 51-70, discount = 15%
Jika jumlah barang yang dibeli 71-100, discount = 20%
Jika jumlah barang yang dibeli >100, discount = 25%
Bayar = Harga – Discount
Pada akhir proses hitung berapakah uang yang harus dibayar
Statement Case ... Of
Disamping statemen if dalam Pascal juga mengenal Case.
Namun Case kita hanya bisa menggunakan type data Char atau angka.
Format Penulisan:
case expressi of
caseList-1: statement-1;
...
caseList-n: statement-n;
end
uses crt ;
var
mtk : string[30];
nilai : byte ;
ket : string[10];
Begin
clrscr ;
Write('Mata Kuliah : '); readln(mtk) ;
Write('Nilai : '); readln(nilai) ;
Case nilai of
80..100: ket:='Lulus' ;
70..79 : ket:='Lulus' ;
60..69 : ket:='Lulus' ;
50..59 : ket:='Lulus' ;
0..49 : ket:='Gagal' ;
end;
Contoh 2:
Uses crt;
Var
I:Integer;
Begin
clrscr;
For I:=5 Downto 1 do
Writeln(I);
readkey;
End.
Pengulangan While…Do dan Repeat…Until
• Pernyataan pengulangan While…Do bertugas mengulang satu
pertanyaan atau suatu blok pernyataan atau selama (while) suatu
kondisi (syarat) bernilai True
• Pengulangan Repeat…until hampir sama dengan pengulangan While…
Do dan biasanya digunakan jika jumlah pengulangan belum dapat
ditentukan pada saat program ditulis. Perbedaannya, pernyataan
repeat…until dan while…do terletak pada letak pengecekan kondisi.
Jika pada pernyataan while…do kondisi dicek pada awal blok
pernyataan yang harus diulang, sedangkan pada pernyataan
repeat….until, kondisi pada akhir blok pernyataan yang harus diulang.
• Perbedaan lainnya adalah pernyataan while…do mengulang pernyataan
selama kondisi masih terpenuhi, tetapi pernyataan repeat…until hanya
akan mengulang pernyataan selama kondisi belum terpenuhi.
Contoh perulangan while… do: Contoh perulangan repeat… until:
uses crt; Uses crt;
var Var
i:integer; I:integer;
Begin Begin
clrscr; clrscr;
i:=0; I:=0;
While i<5 do Repeat
Begin I:=I+1;
Write(i:3); Writeln(I);
I:=I+1; Until I=5;
End; Readkey;
Readkey; End.
End.
1. Dengan menggunakan perulangan for, Buat program untuk menampilkan
5 bilangan negatip yang pertama :
-1,-2,-3,-4,-5
uses
SysUtils;
total := 0;
i := 1;
while i <= 5 do
Begin
write(i, '+');
total:= total + i;
i := i + 1;
End;
writeln;
writeln('total = ',total);
readln;
end.
TAMBAHAN MATERI
USES Crt;
VAR
kodebulan : Integer;
BEGIN
Clrscr;
Write('Masukkan Kode Bulan [1..12] : ');
Readln(kodebulan);
CASE kodebulan OF
1, 3, 5, 7, 8, 10, 12 :
WriteLn('Jumlah hari = 31');
4, 6, 9, 11 :
WriteLn('Jumlah hari = 30');
2 :
WriteLn('Jumlah hari = 28 atau 29');
ELSE
WriteLn('Salah memasukkan kode bulan');
END;
Readkey;
END.
USES crt;
VAR
kar : char;
BEGIN
Clrscr;
Write('Masukkan sembarang karakter = ');
ReadLn(kar);
CASE kar OF
'A'..'Z' : WriteLn('Huruf kapital');
'a'..'z' : WriteLn('Huruf kecil');
ELSE
WriteLn('salah memasukkan karakter');
END;
Readkey;
END.
USES crt;
VAR
kar : Char;
BEGIN
Clrscr;
FOR kar := 'A' TO 'Z' DO
Write(kar);
Readkey;
END.
uses crt; 1 1
var i,j:integer; 1 2
begin 2 1
clrscr; 2 2
for i:= 1 to 3 do 3 1
for j:= 1 to 2 do 3 2
writeln(i, ' ',j);
readkey;
end.
uses crt;
1 1
var i,j:integer;
1 2
begin
1 3
clrscr;
2 1
for i:= 1 to 2 do
2 2
for j:= 1 to 3 do
2 3
writeln(i, ' ',j);
readkey;
end.
uses crt; uses crt;
var i,j:integer; var i,j:integer;
begin begin
clrscr; clrscr;
i := 1; i := 1;
while i<= 2 do Repeat
Begin j:=1;
j:=1; Repeat
while (j<= 3) do writeln(i, ' ',j);
Begin j := j+1;
writeln(i, ' ',j); Until (j=4);
j := j+1; i:=i+1;
End; Until i=3;
i:=i+1; readkey;
End; end.
readkey;
end.
uses crt;
var i,j:integer;
begin
clrscr;
for i:= 2 downto 1 do
for j:= 3 downto 1 do
writeln(i, ' ',j); uses crt;
readkey; var i,j:integer;
end. begin
clrscr;
i := 2;
while i>=1 do
Begin
2 3 j:=3;
2 2 while (j>= 1) do
2 1 Begin
1 3 writeln(i, ' ',j);
1 2 j := j-1;
1 1 End;
i:=i-1;
End;
readkey;
end.