Anda di halaman 1dari 26

Statement IF

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;

if (ekspresi) then BEGIN


... { statement } ClrScr;

Write ('Masukkan Nilai: ');


Readln (Nilai);
Atau boleh ditulis:

if (ekspresi) then If Nilai < 60 Then


begin WriteLn('Anda Tidak Lulus');
    ... { statement }
... { statement } If Nilai >= 60 Then
end WriteLn('Selamat Anda Lulus');

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:

if (ekspresi-1) then if (ekspresi-1) then


... { statement } begin
    ... { statement }
else if (ekspresi-2) then ... { statement }
    ... { statement } end

: else if (ekspresi-2) then


: begin
:     ... { statement }
... { statement }
else end
... { statement }
:
:
:

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”

Program Hitung_Nilai_3; if ujian > 85 then


Uses Crt; nilai := 'A'
else if ujian >= 70 then
Var Ujian: real; nilai := 'B'
Nilai: char; else if ujian >= 55 then
nilai := 'C'
Begin else if ujian >= 40 then
Clrscr; nilai := 'D'
else
Write('Masukkan Nilai Ujian = '); nilai := 'E';
Readln(ujian);
Writeln('Nilai Akhir = ', nilai);
Readkey;

End.
Program Hitung_Nilai_3;
Uses Crt;
Var Ujian: real;
Nilai: char;

Begin
Clrscr;
Write('Masukkan Nilai Ujian = ');
Readln(ujian);

if ujian < 40 then


nilai := 'E'
else if ujian <= 54 then
nilai := 'D'
else if ujian <= 69 then
nilai := 'C'
else if ujian <= 85 then
nilai := 'B'
else
nilai := 'A';

Writeln('Nilai Akhir = ', nilai);


Readkey;
End.
1. Buat program untuk menentukan apakah bilangan yang dimasukkan termasuk bilangan
genap atau bilangan ganjil

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

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
Buat program untuk menentukan apakah bilangan yang dimasukkan termasuk bilangan
genap atau bilangan ganjil

program bilangan_genapganjil;
Uses Crt;
Var Bilangan: Integer;
Begin
Clrscr;

Write('Masukan Bilangan = ');


Readln(Bilangan);

If (Bilangan Mod 2) = 0 Then


Writeln (‘Bilangan Genap’)
else
Writeln (‘Bilangan Ganjil’);

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.

Berbeda di dalam menggunakan if dengan Case, Jika menggunakan if ekspresi


pembandingnya bisa menggunakan type data string, integer, dan lainnya.

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;

     Write('Keterangan    : ', ket);


     readln;
end.
Pengulangan For…Do
• Pengulangan For…Do digunakan untuk melaksanakan
pengulangan satu pernyataan atau blok program beberapa
kali yang di tentukan oleh nilai awal dan nilai akhir. Dengan
kata lain, jumlah pengulangan yang akan di kerjakan sudah di
ketahui.

• Ketentuan dalam For…Do yang dipakai untuk menyimpan nilai


pengulangan pencacah harus didefinisikan secara lokal di
dalam blok For…Do.
Contoh 1:
Uses crt;
Var
 I:Integer;
Begin
clrscr;
  For I:=1 to 5 do
Writeln(I);
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

2. Dengan menggunakan perulangan while, Buat program untuk menampilkan


deret bilangan:
1, 4, 9, 16, 25

3. Dengan menggunakan perulangan repeat, Buat program untuk menampilkan


total dari 5 bilangan positip yang pertama :
1 + 2 + 3 + 4 + 5 (total = 15)

4. Dengan menggunakan perulangan for, Buat program untuk menampilkan deret


bilangan:
-1, 2, -3, 4, -5, 6, -7, 8, -9, 10
program Project1;
{$APPTYPE CONSOLE}

uses
SysUtils;

var i,total: integer;


begin

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.

Anda mungkin juga menyukai