PERCABANGAN ( If, If Else, Case Of )
Perintah if digunakan untuk
menentukan perintah mana yang akan dikerjakan ketika suatu kondisi terjadi.
Bentuk baku perintah if adalah sebagai berikut :
Bentuk baku perintah if adalah sebagai berikut :
if (kondisi1) then
perintah
else
if (kondisi2) then
if (kondisi2) then
begin
perintah;
perintah;
end
else
begin
perintah;
perintah;
end;
Kondisi 1, Kondisi 2 adalah suatu pernyataan yang menghasilkan kondisi
benar (true) atau salah(false).
Contoh kondisi :
if (a>=5) then
begin
perintah;
end
else
if (a<5 span="span" then="then">5>
begin
perintah;
end;
Aturan-aturan penulisan
program yang menggunakan perintah IF :
1.
Jika suatu kondisi tercapai (bernilai benar), maka
If hanya mengenal satu perintah berikutnya.
2.
Kalau suatu perintah if ingin mengerjakan lebih dari
1 perintah, maka gunakan perintah Begin dan End;
3.
Sebelum Else jangan memakai titik koma. Karena titik
koma merupakan tanda akhir dari suatu perintah.
Contoh kasus:
Sebuah toko mempunyai tabel
harga dan diskon seperti berikut :
Kode
|
Nama Barang
|
Harga Barang
|
A01
|
Speaker
|
50000
|
B02
|
Mouse
|
25000
|
C03
|
Harddisk
|
750000
|
D04
|
Mouse Pad
|
5000
|
Sub total |
Diskon
|
>=100000
|
15%
|
>=50000
|
10%
|
>=25000
|
5%
|
<25000
|
0%
|
-
Buatlah Form
Isi properti sebagai berikut
:
Items : A01
B02
C03
D04
Text :
{dikosongkan saja}
Name : CBKode
-
Kemudian tambahkan komponen lain sehingga terbentuk
form seperti berikut :
Catatan :
Untuk tombol gunakan BitBtn yang ada di Component Palette Additional.
Untuk mengisikan gambar pada tombol,
gunakan properti Glyph kemudian pilih
Load dan pilih file gambar yang ada di folder :
C:\Program Files \ commonFiles\
BorlandShared \ Images \ Buttons
Contoh Kasus :
Tombol Hitung :
Calculate.bmp
Tombol Ulang : Retry.bmp
Tombol Keluar : Picture.bmp
Tulislah program pada event onclick tombol Hitung
procedure TForm1.THitungClick(Sender:
TObject);
var
NamaBarang:String;
Quantity:integer;
Harga,Total,Subtotal,Diskon:real;
begin
If
CBKode.Text='A01' then // Kalau Kode = A01
begin
NamaBarang:='Speaker'; //Pengisian String diapit ' '
Harga :=50000; // Pengisian
Harga
end
else
if
CBKode.Text='B02' then {Kalau Kode = B02}
begin
NamaBarang:='Mouse';
Harga :=25000;
end
else
if
CBKode.Text='C03' then {Kalau Kode = C03 }
begin
NamaBarang:='HardDisk';
Harga :=750000;
end
else
if
CBKode.Text='D04' then {Kalau Kode = D04}
begin
NamaBarang:='Mouse Pad';
Harga :=5000;
end
else // jika kode tidak diketahui
begin
NamaBarang:='Tidak Ada';
Harga :=0;
end;
Quantity:=StrToInt(EQTY.Text);// Ambil Quantity dari EQty
SubTotal:=Harga*Quantity; //
Hitung Subtotal
if
SubTotal>=100000 then // Jika
Subtotal >= 100000 maka
Diskon:=0.15*SubTotal // diskon
= 15%
else
if
SubTotal>=50000 then // Jika
subtotal >=50000 maka
Diskon:=0.10 * SubTotal // diskon
= 10%
else
if
SubTotal>=25000 then // Jika
subtotal>=25000 maka
Diskon:=0.05 * SubTotal // diskon
= 5%
else //
jika subtotal < 25000
Diskon:=0; // diskon
= 0%
Total:=SubTotal - Diskon; //
hitung total
ENama.Text:=NamaBarang; //
tampilkan nama barang
EHarga.Text:=FloatToStr(Harga); // tampilkan harga
ESubTotal.Text:=FloatToStr(SubTotal); // tampilkan subtotal
EDiskon.Text:=FloatToStr(Diskon); //tampilkan diskon
ETotal.Text:=FloatToStr(Total); // tampilkan total
end;
Untuk event Onclick pada tombol Ulang, silahkan
diisi perintah berikut :
procedure TForm1.TUlangClick(Sender:
TObject);
begin
CBKode.Text:='';
ENama.Text:='';
EHarga.Text:='0';
ESubTotal.Text:='';
EDiskon.Text:='';
ETotal.Text:='';
CBKode.SetFocus;
end;
Untuk event OnClick pada tombol Tutup isilah dengan perintah:
procedure TForm1.TKeluarClick(Sender:
TObject);
begin
Close;
end;
Operator-operator
boolean :
Simbol
|
Keterangan
|
Contoh
|
=
|
Sama dengan
|
(a = 7)
|
>=
|
Lebih besar sama dengan
|
(a >= 7)
|
>
|
Lebih besar
|
(a > 7)
|
<=
|
Lebih kecil sama dengan
|
(a <= 7)
|
<
|
Lebih kecil
|
(a < 7)
|
<>
|
Tidak sama dengan
|
(a <> 7)
|
Not
|
Tidak / Invers
|
Not (a<>7)
|
And
|
Operator dan
|
(a = 7)And(b =5)
|
Or
|
Operator
|
(a = 7) Or (b =5)
|
Komponen RadioButton
Radiobutton
adalah suatu komponen yang digunakan untuk pemilihan suatu kondisi dari
beberapa kondisi yang ada. Kondisi yang bisa dipilih hanya ada 1 buah.
Properti yang
menandakan bahwa suatu radiobutton dipilih adalah properti Checked. Jika
properti checked suatu Radiobutton berisi true, maka berarti Radiobutton
tersebut dipilih.
Contoh kasus :
- Buatlah form
seperti berikut :
Caranya adalah sebagai
berikut :
- Tempatkan sebuah
group box
- Tempatkan 3 buah
radiobutton kemudian ganti namanya sesuai dengan keperluan. Contoh untuk radiobutton Jakarta beri namanya RBJakarta untuk
mempermudah dalam program.
- Tempatkan sebuah
Button.
Procedure TForm1.Button1Click(Sender:TObject) begin if (RBJakarta.Checked=true) then ShowMessage(‘Jurusan yang dipilih adalah jakarta’) else if (RBYogya.Checked=true) then ShowMessage(‘Jurusan yang dipilih adalah Yogyakarta’) else if (RBSurabaya.Checked=true) then ShowMessage(‘Jurusan yang dipilih adalah Surabaya’); End; |
ShowMessage adalah suatu
perintah untuk menampilkan pesan dengan ketentuan adalah sebagai berikut :
ShowMessage(Pesan:String)
Contoh :
ShowMessage(‘Jurusan yang
dipilih adalah jakarta’);
Hasilnya adalah sebagai
berikut :
Komponen Radiogroup
Radiogroup adalah suatu komponen yang digunakan untuk memilih sebuah
option dari beberapa pilihan (sifatnya seperti radiobutton) hanya dengan satu
buah komponen radiogroup saja.
Tabel Properti dari RadioGroup
Properti
|
Keterangan
|
Columns
|
Pilihan mau dibuat berapa
kolom
|
Items
|
Daftar pilihan yang akan
ditampilkan
|
ItemIndex
|
Item ke berapa yang
dipilih. Jika ItemIndex berisi 0 maka yang dipilih adalah pilihan ke-1, jika
ItemIndex berisi 1 maka yang dipilih adalah pilihan ke-2 dan seterusnya. Jika
ItemIndex berisi dengan –1 maka berarti tidak ada yang dipilih.
|
Pada program sebelumnya, kita membuat suatu pemilihan dengan membuat
sebuah group box dan 3 buah radiogroup. Sekarang kita akan membuat suatu
pemilihan hanya dengan menggunakan sebuah radiogroup saja.
Caranya :
1.
Buat form seperti berikut
-
Tempatkan sebuah radiogroup, kemudian ganti namanya
menjadi RGKelas dan captionnya diisi dengan Kelas.
-
Isi properti Items dengan
Eksekutif
Bisnis
Ekonomi
-
Isi properti ItemIndex dengan 0 agar pilihan default
adalah Eksekutif.
2.
Isi tombol Oncliknya dengan perintah berikut :
Procedure
TForm1.Button2Click(Sender:TObject)
begin
if (RGKelas.ItemIndex=0) then
ShowMessage(‘Kelas adalah Exekutif’)
else
if (RGKelas.ItemIndex=1) then
ShowMessage(‘Kelas adalah Bisnis’)
else
if (RGKelas.ItemIndex=2) then
ShowMessage(‘Kelas adalah Ekonomi’);
End;
|
Atau :
Procedure
TForm1.Button2Click(Sender:TObject)
begin
case RGKelas.ItemIndex of
0:ShowMessage(‘Kelas adalah Exekutif’);
1:ShowMessage(‘Kelas adalah Bisnis’);
2:ShowMessage(‘Kelas adalah Ekonomi’);
end;
end;
|
3.
Run Program
Contoh Kasus :
Sebuah Perusahaan angkutan “Jalan Terus” memiliki
ketentuan harga seperti berikut :
|
Eksekutif
|
Bisnis
|
Ekonomi
|
Jakarta
|
70000
|
40000
|
10000
|
Solo
|
80000
|
50000
|
20000
|
Surabaya
|
90000
|
60000
|
30000
|
Karena ada masa promosi maka khusus untuk Surabaya
Ekonomi atau Solo Eksekutif terdapat diskon 10%.
Untuk lebih
jelasnya, ikutilah cara berikut :
1.
Buat suatu aplikasi baru dengan File-New
Application
2.
Tempatkan sebuah Groupbox kemudian ganti
property Caption dengan Jurusan.
3.
Tempatkan tiga buah RadioButton pada GroupBox
tersebut kemudian ganti properti-propertinya seperti berikut :
RadioButton1 |
Name
Caption
|
:
:
|
RBJakartaJakarta |
RadioButton2 |
Name
Caption
|
:
:
|
RBSoloSolo |
RadioButton3 |
Name
Caption
|
:
:
|
RBSurabayaSurabaya |
4.
Tempatkan sebuah RadioGroup kemudian ganti
propertinya seperti berikut :
Name
Items
ItemIndex
|
:
:
:
|
RGKelas
Eksekutif
Bisnis
Ekonomi
0
|
5.
Tempatkan 2 buah Edit untuk pengisian data banyaknya
tiket dan untuk menampilkan hasil dari perhitungan. Gantilah
properti-propertinya seperti berikut :
Edit1
Edit2
|
Name
Name
|
:
:
|
ETiketETotal |
6.
Tempatkan 3 buah tombol untuk tombol perhitungan,
reset, dan tombol keluar. Kemudian atur
form seperti form berikut :
7.
Untuk program selengkapnya dari kasus diatas adalah
sebagai berikut :
procedure
TForm1.THitungClick(Sender: TObject);
var
jmltiket,harga:integer;
total:real;
begin
jmltiket:=StrToInt(ETiket.text);
if
(RBJakarta.Checked=true)and(RGKelas.ItemIndex=0) then
harga:=70000
else
if (RBJakarta.Checked=true)and(RGKelas.ItemIndex=1)
then
harga:=40000
else
if
(RBJakarta.Checked=true)and(RGKelas.ItemIndex=2) then
harga:=10000
else
if (RBSolo.Checked=true) then
begin
if RGKelas.ItemIndex=0 then
harga:=80000
else
if RGKelas.ItemIndex=1 then
harga:=50000
else
if RGKelas.ItemIndex=2 then
harga:=20000;
end
else
if (RBSurabaya.Checked=true) then
begin
case RGKelas.ItemIndex of
0:Harga:=90000;
1:Harga:=60000;
2:Harga:=30000;
end;
end;
total:=harga*jmltiket;
ETotal.Text:=FormatFloat('Rp
#,##0.00',total);
end;
|
8.
Untuk perhitungan diskon, sisipkan program berikut
setelah perhitungan total :
if ((RBSurabaya.checked=true)and
(RGKelas.ItemIndex=2)
) // Surabaya Ekonomi
or // atau
((RBSolo.Checked=true)and
(RGKelas.ItemIndex=0)
) then //Solo Bisnis
total:=0.9*total;
|
9.
Untuk event OnClick dari tombol Reset, programnya
adalah sebagai berikut :
procedure
TForm1.TResetClick(Sender: TObject);
begin
RBJakarta.Checked:=true;
RGKelas.ItemIndex:=0;
ETiket.Text:='0';
EJmlTotal.Text:='0';
end;
|
10.
Run Program.
Komponen Check Box
CheckBox adalah komponen untuk pemilihan option dimana option yang
dipilih bisa lebih dari satu buah.
Properti-properti CheckBox
Property
|
Keterangan
|
Caption |
Tulisan yang ada di
Checkbox
|
Checked
|
Jika berisi true berarti
checkbox yang bersangkutan dipilih.
|
Contoh kasus
:
Rental Internet “Surf The World” mempunyai harga
rental perjam Rp. 3500, dan juga menyediakan fasilitas pemesanan makanan dan
minuman. Daftar yang bisa dipesan adalah sebagai berikut :
Menu
|
Harga
|
Nasi goreng
|
3500
|
Coca Cola
|
1250
|
Teh Botol
|
1000
|
Buatlah program untuk menghitung berapa yang harus
dibayar.
Form yang dibuat :
Catatan :
Untuk Kotak, gunakan komponent Panel yang ada di Standar dan untuk Gambar gunakan
komponen Image yang ada di additional.
Properti-properti
dari Panel :
Properti |
Keterangan
|
Caption
|
Tulisan yang ada di Panel
|
Alignment
|
Peletakan dari Caption, di
kiri, tengah atau kanan
|
BorderWidth
|
Lebar bingkai panel antara
kotak luar dengan kotak dalam
|
BevelInner
|
Bentuk kotak dalam
|
BevelOuter
|
Bentuk kotal luar
|
Color
|
Warna Panel
|
Properti-properti
dari Image :
Properti |
Keterangan
|
AutoSize
|
Jika berisi true maka
bidang gambar mengikuti besarnya gambar.
|
Picture
|
Isi gambar yang ada di
image
|
Stretch
|
Jika berisi true maka
seluruh gambar akan tampil dalam bidang yang ditentukan, besar gambar
menyesuaikan besarnya bidangnya.
|
Center
|
Jika berisi true maka
gambar akan ditampilkan di tengah bidang gambar.
|
Program untuk
hitung onclick adalah seperti berikut :
procedure
TForm1.THitungClick(Sender: TObject);
const
// membuat suatu nilai konstanta
HargaRental=3500;
HargaNasGor=3500;
HargaCocaCola=1250;
HargaTehBotol=1000;
var
lama:real;
TotalRental,TotalMakanMinum,GrandTotal:Real;
TotalNasgor,TotalCocaCola,TotalTehBotol:real;
begin
Lama:=StrToFloat(ELama.Text);
TotalRental:=Lama * HargaRental;
if CBNasgor.checked=true then
TotalNasgor:=StrToInt(ENasGor.text)
* HargaNasgor
else
TotalNasgor:=0;
if CBCoca.checked=true then
TotalCocaCola:=StrToInt(ECoca.text)
* HargaCocaCola
else
TotalCocaCola:=0;
if CBTeh.checked=true then
TotalTehBotol:=StrToInt(ETeh.text)
* HargaTehBotol
else
TotalTehBotol:=0;
TotalMakanMinum:=TotalNasGor +
totalCocaCola + TotalTehBotol;
GrandTotal:=TotalRental +
TotalMakanMinum;
ERental.text:=FloatToStr(TotalRental);
EMakan.Text:=FloatToStr(TotalMakanMinum);
ETotal.Text:=FloatToStr(GrandTotal);
end;
|
Program untuk
tombol Ulang :
procedure
TForm1.TUlangClick(Sender: TObject);
begin
ELama.TexT:='1';
ENasGor.text:='0';
ECoca.text:='0';
ETeh.text:='0';
CBNasGor.checked:=false;
CBCoca.checked:=false;
CBTeh.checked:=false;
ETotal.TexT:='0';
EMakan.text:='0';
ERental.Text:='0';
ELama.SetFocus;
end;
|