Anda di halaman 1dari 59

2

BAB I
Delphi adalah sebuah perangkat lunak (bahasa pemrograman) untuk membuat
program / aplikasi komputer berbasis windows. Delphi merupakan bahasa
pemograman berbasis objek, artinya semua komponen yang ada merupakan objek-
objek. Ciri sebuah objek adalah memiliki nama, properti dan method/procedure.
Delphi disebut juga visual programming artinya komponen-komponen yang ada tidak
hanya berupa teks (yang sebenarnya program kecil) tetapi muncul berupa gambar-
gambar.
1.1. Membuat Sebuah Form
Saat anda pertama kali masuk ke Delphi, anda akan diperhadapkan pada sebuah form
kosong yang akan dibuat secara otomatis. Form tersebut diberi nama Form1. Form ini
merupakan tempat bekerja untuk membuat antarmuka pengguna.

1.2. Mengganti Nama Form dan Menambahkan Judul


Biasakan sebelum menjalankan program, sebaiknya ganti nama form dan beri judul
sesuai program yang kita buat. Delphi akan secara otomatis memberi nama form1,
form2, form3, dst. Nama form tersebut kurang mengandung arti dan akan
menyulitkan bila form yang dibuat cukup banyak. Saat membuka Delphi pertama kali,
nampak sebuah jendela Object Inspector. Jika tidak muncul pilih menu View | Object
Inspector atau tekan tombol F11. Pada Object Inspector ada dua buah halaman (tab)
yaitu Properties dan Events. Properties digunakan untuk mengganti properti
3

(kepemilikan) sebuah objek/komponen. Sedangkan Events digunakan untuk membuat


procedure yang diaktifkan (trigered) lewat sebuah event.

Semua properti diurutkan berdasarkan alpabetik, dan dapat juga diurutkan


berdasarkan kategori. Gantilah judul form dengan Hello melalui properti Caption,
sedangkan nama form dengan nama frmHello melalui properti Name. Caption
digunakan untuk menyimpan keterangan yang dimunculkan pada form, sedangkan
Name digunakan sebagai Nama dari objek tersebut.

Isi dari properti Name harus diawali alpabet dan tidak menggunakan spasi atau tanda baca

Anda sekarang sudah membuat aplikasi form kosong dengan tombol standar window :
Minimize, Maximize, dan Close. Anda dapat mengubah ukuran form dengan menarik
pada bingkai form menggunakan mouse (drag=klik tombol kiri mouse, tahan tombol
4

tersebut lalu geser ke kiri/kanan atau atas/bawah). Anda dapat memindahkan form
dengan meletakkan kursor pada form kemudian
menggesernya (drag).

1.3. Menyimpan Form


Pada Delphi ada 3 buah file utama (*.dpr, *.pas dan *.dfm).
1) *.dpr adalah file proyek yang dibuat berisi program kecil untuk :
• mendefinisikan Unit yang ada dalam file proyek
• menginisialisasi data
• membangun form
• menjalankan aplikasi
2) *.pas adalah unit-unit (pascal code file), bisa terdiri satu atau banyak file
3) *.dfm adalah file definisi Form (special pseudo code file), bisa terdiri satu atau
banyak file
Pilih submenu Save Project atau Save Project As pada menu File, dan Delphi akan
menanyakan nama file source code untuk unit (*.pas) dan nama file proyeknya (*.dpr).

1.4. Forms, Dialog Boxes, Messages


Menampilkan Form atau Window
Anda dapat bekerja dengan beberapa form pada sebuah project. Saat anda
berada di Form1 untuk menampilkan form yang lain misal Form2 sbb :
Form2.Show;
Membuka (Shows) Form2 (tetapi user diijinkan untuk dapat mengklik Form1)
Form2.ShowModal;
Membuka (Shows) Form2 (tetapi user TIDAK DIIJINKAN mengklik Form1)
Atau menggunakan : <NamaForm>. Visible := True; (Non aktif False)

Menampilkan Pesan (Message)


ShowMessage('Ini kotak pesan);
Tampilan sederhana sebuah baris/teks; User dapat menekan tombol OK untuk
keluar dari kotak pesan
5

(message window).
MessageDlg('Msg',mtConfirmation,[mbYes],0);
Mirip ShowMessage tapi dapat lebih dari satu tombol pilihan.
if MessageDlg('Please say YES or NO',mtConfirmation,[mbYes,mbNo],0)=mrYES
then
begin
Label1.Text:='Tekan tombol YES';
end;

TMsgDlgType = mtWarning, mtError, mtInformation, mtConfirmation, mtCustom

TMsgDlgBtn
= mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbHelp

Return values
= mrNone, mrYes, mrNo, mrOk, mrCancel, mrAbort, mrRetry, mrIgnore,
m
rAll

Meminta Masukan (Input Box)


InputBox(...);
var
InputString: string;
begin
InputString:= InputBox('Masukkan Nama', 'Please Enter your Name','');
end;

3. PERINTAH PENCABANGAN / STRUKTUR PEMILIHAN


Pada beberapa kasus terkadang kita menginginkan komputer melakukan suatu aksi tertentu bila
suatu kondisi terpenuhi. Keberadaan perintah bersyarat pada suatu program memberikan
pencabangan proses seperti ditunjukkan oleh Error! Not a valid link.. Bahasa Pascal
menyediakan dua cara penyajian perintah bersyarat, yaitu If…Then…Else dan Case…of.

Kondisi-1 Kondisi-2

Aksi-1 Aksi-2

Gambar 3.1 Pencabangan pada program

Pada prinsipnya pemilihan aksi dapat dikelompokkan menjadi 3 bagian :


Pemilihan 1 pilihan/kasus. Gunakan perintah IF – THEN
Pemilihan 2 pilihan/kasus. Gunakan perintah IF – THEN – ELSE
Pemilihan N pilihan/kasus. Gunakan Case – of (Catatan sebenarnya dapat menggunakan if—
then – else bersarang)
6

3.1. IF … THEN : Pemilihan 1 kasus


Perintah bersyarat If – then digunakan hanya melakukan 1 aksi bila kondisi dipenuhi. Bentuk
sintaks dari perintah bersyarat ini adalah:
If <kondisi_pencabangan> then
Begin
... {aksi-1}
end;

3.2. IF … THEN … ELSE : Pemilihan 2 kasus


Perintah bersyarat If umumnya digunakan untuk melakukan pencabangan sederhana (antara 2 atau
3 cabang). Atau untuk pencabangan yang banyak, dimana kondisi yang menjadi
prasyaratnya melibatkan lebih dari satu parameter. Bentuk sintaks dari perintah bersyarat ini adalah:

If <kondisi_pencabangan> then
Begin
... {aksi-1}
end
else
Begin
... {aksi-2}
end;

3.3. IF … THEN … ELSE : Pemilihan N kasus


If <kondisi_pencabangan1> then
Begin
... {aksi-1}
end
else
If <kondisi_pencabangan2> then
Begin
... {aksi-2}
end
else
Begin
... {aksi-3}
End;

3.4. CASE … OF … : Pemilihan N kasus


Perintah bersyarat Case umumnya digunakan untuk kondisi dengan banyak pencabangan.
Syarat pencabangan pada bentuk ini hanya boleh melibatkan satu buah parameter dengan tipe
data bukan Real. Pemeriksaan kondisi di sini lebih tepat disebutkan dalam hubungan relasi
7

samadengan (=). Dengan demikian bila parameter bernilai tertentu maka dilakukan suatu aksi
terkait, bila bernilai lain maka dilakukan aksi yang lain juga, demikian seterusnya.

Case <Parameter> Of
<nilai_1> : <aksi_1> ;
<nilai_2> : <aksi_2> ;
...
<nilai_n> : <aksi_n> ;
Else <aksi_n+1> ;
End;

4. STRUKTUR PENGULANGAN

Dalam menyelesaikan masalah, terkadang kita harus melaku suatu proses yang
sama lebih dari satu kali. Untuk itu perlu dibuat suatu algoritma pengulangan.
Pascal memberikan tiga alternatif pengulangan, yaitu dengan For, While, atau
Repeat. Masing-masing memiliki karakteristik, yang akan dipelajari pada modul
ini. Ada dua hal yang penting dalam melakukan merancang perintah pengulangan,
yaitu:
Inisialisasi awal.

Nilai akhir pengulangan atau kondisi berhenti.

4.1. FOR – TO - DO
Pada pengulangan dengan For, inisialisasi awal dan kondisi akhir ditentukan
dengan menggunakan suatu variable kendali yang nilainya dibatasi dalam suatu
range tertentu. Sintaks untuk perintah ini adalah:

For <variable_kendali> := <nilai_awal> to <nilai_akhir> do

Begin

… {aksi}

End ;

atau

For <variable_kendali> := <nilai_awal> downto <nilai_akhir> do

Begin

… {aksi}

End ;
Perbedaan antara to dan downto adalah pada kondisi nilai awal dan akhir. Pada to:
nilai awal lebih kecil dari nilai akhir, sedangkan pada downto nilai awal lebih
besar dari nilai akhir. Perlu diingat, bahwa variable kendali harus dideklarasikan
8

dengan tipe data integer.


Contoh program pengulangan menggunakan For-to-do
procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject);
var I : integer;
begin
lbxHasil.Items.Clear;
For I := 1 to 5 do
Begin
lbxHasil.Items.Add(inttoStr(i));
End;

Hasilnya adalah : 1, 2, 3, 4, 5
Contoh program yang sama jika tanpa perintah pengulangan
procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject);
begin
lbxHasil.Items.Clear;

lbxHasil.Items.Add(inttoStr(1));
lbxHasil.Items.Add(inttoStr(2));
lbxHasil.Items.Add(inttoStr(3));
lbxHasil.Items.Add(inttoStr(4));
lbxHasil.Items.Add(inttoStr(5));
End;

Hasilnya adalah : 1, 2, 3, 4, 5

4.2. WHILE - DO

Pada metoda pengulangan ini aksi hanya akan diproses bila kondisi pengulangan
terpenuhi, bentuk sintaks dari pengulangan ini adalah:

While <kondisi_ pengulangan> do

Begin

… {aksi}

End ;

Selama kondisi_pengulangan bernilai true maka aksi akan dilakukan, dan baru
akan berhenti setelah kondisi pengulangan bernilai false. Karena kondisi
pengulangan diperiksa pada bagian awal, maka ada kemungkinan aksi tidak pernah
dilakukan, yaitu bila kondisi pengulangan tidak pernah bernilai true.
Contoh program pengulangan menggunakan While-do
procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject);
var I : integer;
begin
lbxHasil.Items.Clear;
I := 1;
While I<=5 DO
Begin
lbxHasil.Items.Add(inttoStr(i));
I := I + 1;
9

End;
End;

4.3. REPEAT - UNTIL

Metoda pengulangan ini juga melakukan pengulangan berdasarkan pemeriksaan


kondisi pengulangan. Hanya saja natur dari pengulangan ini adalah sistem seakan-
akan memaksa untuk melakukan pengulangan, sampai di ketahui adanya kondisi
berhenti. Bentuk sintaks dari pengulangan ini adalah:

Repeat

… {aksi}

Until <kondisi_ berhenti>

Berlawanan dengan While, yang akan memproses aksi hanya bila


kondisi_pengulangan bernilai true, pada pengulangan Repeat, sistem akan
memproses aksi selama kondisi_berhenti bernilai false. Dengan demikian aksi pasti
akan selalu diproses (minimal satu kali). Pada tipe ini, pengulangan dapat terjadi
terus-menerus (tidak pernah berhenti), yaitu bila kondisi berhenti tidak pernah
bernilai true.

Contoh program pengulangan menggunakan Repeat- Until


procedure TfrmPengulangan.btnPengulanganClick(Sender: TObject);
var I : integer;
begin
lbxHasil.Items.Clear;

I := 1;
Repeat
lbxHasil.Items.Add(inttoStr(i));
I := I + 1;
Until I > 5;
End;

Latihan-Latihan:
10

Modul 1 :
Modul ini mengenalkan pada mahasiswa untuk menggunakan statemen
IF – then – else dan Case – of, serta penggunaan komponen Radio Button,
menampilkan form lain. Program ini akan menentukan pilihan jenis kelamin
dan pilihan agama yang dianut.
Buat form seperti tampak dibawah ini : beri nama form “Formmasukandata”,
gunakan radiobutton untuk membuat penentuan jenis kelamin, dan pemilihan
agama

Buat form baru dan beri nama “Formtampilkan”


11

Ketikkan Kode Program seperti berikut ini :


unit mod5;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TFormmasukandata = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
RadioGroupagama: TRadioGroup;
RadioGroup1: TRadioGroup;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Formmasukandata: TFormmasukandata;

implementation

uses tampilkan;

{$R *.dfm}

procedure TFormmasukandata.Button1Click(Sender: TObject);


begin
12

formtampilkan.Editnama.Text:=edit1.Text;
formtampilkan.Editalamat.Text:=edit2.Text;

if FormMasukanData.RadioGroup1.ItemIndex = 0 then
FormTampilkan.Editkelamin.Text := 'Pria'
Else
FormTampilkan.Editkelamin.Text := 'Wanita';

Case RadioGroupAgama.ItemIndex of
0: formTampilkan.editAgama.Text := 'Islam';
1: FormTampilkan.editAgama.Text := 'Kristen';
2: formTampilkan.editAgama.Text := 'Khatolik';
3: FormTampilkan.editAgama.Text := 'Hindu';
else
formTampilkan.editAgama.Text := 'Budha';
end;
FormMasukanData.Visible := false;
FormTampilkan.Visible := True;
end;
procedure TFormmasukandata.Button2Click(Sender: TObject);
begin
close;
end;

end.
13

MODUL 2 : Aplikasi Rumah Makan Fast Food


14

Component Pallete Objek Inspectpr


Tab Nama Object Properties Keterangan
Panel1 Caption Kosongi
Panel2 Caption Kosongi
Edit1 Name EdNo Transaksi
Button1 Name BtBaru
Caption &baru
Standard Button2 Name btBatal
Caption &batal
Button3 Name BtKeluar
Caption &Keluar
Button4 Name BtHitung
Caption &Hitung
Static Text1 Name StTanggal
Autosize FALSE
borderStyle sbsSunken
Static Text6 Name Stpajak
Additional Autosize FALSE
borderStyle sbsSunken
Static Text7 Name Sttotal
Autosize FALSE
borderStyle sbsSunken
Buat 2 Name OcMenu
PageControl1 Halaman Hottrack TRUE
Win32 Style tsButtons
TabSheet1 Caption Paket hemat
TabSheet2 Caption Menu Biasa
Panel3 Caption Kosongi
Name RgPaket
Caption JenisPaket
Standar
RadioGroup Items Paket A
Paket B
Paket C
Statictext2 Name StMakanan1
AutoSize FALSE
BorderStyle sbsSunken
Statictext3 Name StMakanan2
Autosize FALSE
BorderStyle sbsSunken
Additional
Statictext4 Name StMinimum
Autosize FALSE
BorderStyle sbsSunken
Statictext5 Name StHargaPaket
Autosize FALSE
BorderStyle sbsSunken
Objek dibawah
ini untuk
Tabsheet2
15

Panel4 Caption Kosongi


ComboBox1 Name CmbMakanan
Items Nasi
Kentang
Sayap Ayam
Paha Ayam
Dada Ayam
Burger Keju
Burger Ayam
ComboBox1 Name CmbMinuman
Items Teh Kotak
Standard
Teh Botol
Kopi
Kopi Susu
Softdrink
Cappucino
Es Buah
ListBox1 Name Lst Daftar
ListBox2 Name LstHarga
Button5 Name BtHapus
Caption Hapus Dari Daftar
StaticText8 Name StBayarBiasa
Additional AutoSize FALSE
BorderStyle sbsSunken
16

Kode Program untuk masing-masing fungsi tombol :


Untuk menuluskan kode program pada masing-masing fungsi tombol dengan cara klik
2 kali pada disain tombol atau menu, kemudian tuliskan kode programnya dibawah ini.
Ctt : usahakan penamaan menu/tombol sama dengan nama prosedurnya.

unit restoran;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
btbaru: TButton;
Button2: TButton;
Button4: TButton;
bthitung: TButton;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
EdnoTransaksi: TEdit;
Sttanggal: TStaticText;
ocmenu: TPageControl;
Panel3: TPanel;
Label3: TLabel;
Label4: TLabel;
Stpajak: TStaticText;
Sttotal: TStaticText;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label5: TLabel;
Label6: TLabel;
Cmbmakanan: TComboBox;
Cmbminuman: TComboBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
lstdaftar: TListBox;
Lstharga: TListBox;
bthapusdaftar: TButton;
Sttbayarbiasa: TStaticText;
rgpaket: TRadioGroup;
Panel4: TPanel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Stmkn1: TStaticText;
Stmkn2: TStaticText;
stminuman: TStaticText;
Sthrgpaket: TStaticText;
Bevel1: TBevel;
17

Bevel2: TBevel;
procedure Button2Click(Sender: TObject);
procedure btbaruClick(Sender: TObject);
procedure bthapusdaftarClick(Sender: TObject);
procedure CmbmakananChange(Sender: TObject);
procedure lstdaftarClick(Sender: TObject);
procedure LsthargaClick(Sender: TObject);
procedure CmbminumanChange(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure rgpaketClick(Sender: TObject);
procedure bthitungClick(Sender: TObject);
procedure hitungbayarbiasa;
procedure ocmenuChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
i,n:integer;
jbaru:boolean;
implementation
{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);


begin
if application.MessageBox('Yakin Mau Keluar??','Konfirmasi',MB_iconquestion or
MB_YesNo)=idYes Then
halt
else
exit;
end;

procedure TForm1.btbaruClick(Sender: TObject);


begin
Jbaru:=True;
btbaru.enabled:=False;
EdnoTransaksi.Enabled:=true;
EdnoTransaksi.Color:=clwindow;
sttanggal.caption:=Datetostr(date);
rgpaket.enabled:=true;
cmbMakanan.enabled:=true;
cmbminuman.enabled:=true;
cmbMakanan.color:=clwindow;
cmbminuman.color:=clwindow;
lstdaftar.enabled:=true;
Lstharga.enabled:=true;
lstdaftar.color:=clwindow;
lstharga.color:=clwindow;
bthapusdaftar.enabled:=true;
bthitung.enabled:=true;
ednotransaksi.setfocus;
end;

procedure TForm1.bthapusdaftarClick(Sender: TObject);


var hargaM, TotHarga, hasil:real;
z:integer;
18

begin
z:=lstharga.ItemIndex;
hargaM:=strtofloat(lstharga.Items[z]);
totharga:=strtofloat(sttbayarbiasa.caption);
hasil:=totharga-hargaM;
sttbayarbiasa.caption:=floattostr(hasil);
lstdaftar.deleteselected;
lstharga.deleteselected;
end;

procedure TForm1.CmbmakananChange(Sender: TObject);


var x :integer;
begin
x:=cmbmakanan.ItemIndex;
lstdaftar.Items.Add(cmbmakanan.Items.Strings[x]);
case x of
0:lstharga.Items.Append('1000');
1:lstharga.Items.Append('700');
2:lstharga.Items.Append('900');
3:lstharga.Items.Append('2500');
4:lstharga.Items.Append('3000');
5:lstharga.Items.Append('1500');
6:lstharga.Items.Append('1000');
else
exit;
end;
hitungbayarbiasa;
end;

procedure TForm1.lstdaftarClick(Sender: TObject);


begin
lstharga.ItemIndex:=lstdaftar.ItemIndex;
end;

procedure TForm1.LsthargaClick(Sender: TObject);


begin
lstdaftar.ItemIndex:=lstharga.ItemIndex;
end;

procedure TForm1.CmbminumanChange(Sender: TObject);


var y :integer;
begin
y:=cmbminuman.ItemIndex;
lstdaftar.Items.Add(cmbminuman.Items.Strings[y]);
case y of
0:lstharga.Items.Append('700');
1:lstharga.Items.Append('700');
2:lstharga.Items.Append('500');
3:lstharga.Items.Append('1000');
4:lstharga.Items.Append('1500');
5:lstharga.Items.Append('800');
6:lstharga.Items.Append('700');
else
exit;
end;
hitungbayarbiasa;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
jbaru:=false;
19

btbaru.Enabled:=true;
ednotransaksi.Text:='';
ednotransaksi.Enabled:=false;
ednotransaksi.Color:=clbtnface;
sttanggal.Caption:='';
rgpaket.Enabled:=false;
stmkn1.Caption:='';
stmkn2.Caption:='';
stminuman.Caption:='';
sthrgpaket.caption:='';
cmbmakanan.Text:='';
cmbminuman.Text:='';
cmbmakanan.Enabled:=false;
cmbminuman.Enabled:=false;
cmbmakanan.color:=clbtnface;
cmbminuman.Color:=clbtnface;
lstdaftar.clear;
lstharga.Clear;
lstdaftar.Enabled:=false;
lstharga.Enabled:=false;
lstdaftar.Color:=clbtnface;
lstharga.Color:=clbtnface;
sttbayarbiasa.caption:='';
bthapusdaftar.Enabled:=false;
bthitung.Enabled:=false;
stpajak.caption:='';
sttotal.caption:='';
end;

procedure TForm1.hitungbayarbiasa;
var harga,jbayar:real;
begin
jbayar:=0;
harga:=0;
for i:=0 to (lstharga.Items.Count-1) do
begin
harga:=strtofloat(lstharga.Items.Strings[i]);
jbayar:=jbayar+harga;
end;
sttbayarbiasa.caption:=floattostr(jbayar);
end;
procedure TForm1.rgpaketClick(Sender: TObject);
var makanan1, makanan2,minuman:string;
hargaP:string;
begin
case rgpaket.ItemIndex of
0:begin
makanan1:='2 kentang goreng';
makanan2:='sayap ayam, paha ayam';
minuman:='softDrink';
hargap:='4500';
end;
1:begin
makanan1:='nasi, kentang goreng';
makanan2:='2 paha ayam';
minuman:='softDrink';
hargap:='5500';
end
else
begin
20

makanan1:='burger ayam';
makanan2:='kentang goreng';
minuman:='es teh';
hargap:='5000';
end;
end;
stmkn1.caption:=makanan1;
stmkn2.caption:=makanan2;
stminuman.Caption:=minuman;
sthrgpaket.caption:=hargaP;
stpajak.caption:='';
sttotal.caption:='';
end;
procedure TForm1.bthitungClick(Sender: TObject);
var tbayar,pajak,total:real;
begin
case ocmenu.activepageindex of
0:tbayar:=strtofloat(sthrgpaket.caption);
1:tbayar:=strtofloat(sttbayarbiasa.caption);
end;
pajak:=(5/100)*tbayar;
total:=tbayar + pajak;
stpajak.caption:=floattostr(pajak);
sttotal.caption:=floattostr(total);
end;

procedure TForm1.ocmenuChange(Sender: TObject);


begin
if jbaru=true then
begin
if application.MessageBox('anda mau membatalkan
transaksi...','konfirmasi',Mb_iconquestion or mb_yesNo)=idyes then
begin
stpajak.caption:='';
sttotal.Caption:='';
case ocmenu.ActivePageIndex of
0: begin
cmbmakanan.Text:='';
cmbminuman.Text:='';
lstdaftar.clear;
lstharga.clear;
sttbayarbiasa.caption:='';
end;
1:begin
stmkn1.Caption:='';
stmkn2.Caption:='';
stminuman.caption:='';
sthrgpaket.Caption:='';
end;
end;
end
else
exit;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
jbaru:=false;
end;
end.
21

MEMBUAT MENU

1. Bagaimana Membuat Menu Pop-Up ?


Latihan
Buat Menu Pop-Up Seperti Berikut :

CARA MEMBUAT
1. Pada Komponen Standard pilih icon MAIN MENU, dan letakkan pada
form rancangan anda.
2. untuk membuat menu pilihan ; klik 2 x pada icon MAIN MENU
3. ketikkan judul menu dan sub menu dibawahnya.
4. untuk membuat sub menu pada menu yang ada ; klik kanan mouse
anda dan pilih create sub menu. Lakukan untuk hal yang sama
membuat sub-sub menu berikutnya.
5. Jalankan dan lihat hasilnya dengan menekan tombol F9.
6. tambahkan dengan prosedur dibawah ini pada form anda;
7. var
8. y:longint;
9. rect:trect;
10. begin
11. rect.Left := 0;
12. rect.Right:= width;
13. for y:= 0 to 255 do
14. begin
15. canvas.Brush.Color :=tcolor(rgb (50,150,y));
16. rect.top := y * height div 256;
17. rect.bottom := (y + 1) * height div 256;
18. canvas.fillrect(rect);
19. end;
20. end;
21. end.

Jalankan dan lihat hasilnya.


22

BUAT FORM DENGAN TAMPILAN SEBGAI BERIKUT ;

CARA MEMBUAT
1. Pilih komponen standar, dan klik icon Tedit, dan atur sesuai kemauan.
2. untuk menampilkan tanggal sistem, pilih komponen Win32 dan pilih
ikon DateTime Picker.
3. Untuk membuat combobox pilih komponen standar dan klik
ComboBox.
4. pada properti Item isikan data sesuai kebutuhan.
5. pada sorted, pilih True.
6. buat tombol Simpan dan Keluar.
7. Pada tombol simpan beri kode program sebagi berikut;
8. table1.insert;
9. table1['nodaf']:= edit1.text;
10. table1['nama']:= edit2.text;
11. table1['alamat']:= edit3.text;
12. table1['tml']:= edit7.text;
13. table1['tgl']:= edit6.text;
14. table1['agama']:= COMBOBOX1.TEXT;
15. table1['aslsma']:= edit9.text;
16. table1['jursma']:= edit10.TEXT;
17. table1['nosttb']:= edit12.text;
18. table1['thSTTB']:= COMBOBOX2.TEXT;
19. table1['NILSTTB']:= edit13.text;
20. table1['piljur']:= COMBOBOX3.TEXT;
21.
22. table1.post;
23.
24. EDIT1.Text:='';
25. EDIT2.Text:='';
26. EDIT3.Text:='';
27. {EDIT4.Text:=''; }
28. EDIT6.Text:='';
29. EDIT7.Text:='' ;
23

30. EDIT12.Text:='' ;
31. EDIT13.Text:='' ;
32. COMBOBOX1.TEXT:='';
33. COMBOBOX2.TEXT:='' ;
34. COMBOBOX3.TEXT:='' ;
35. TABLE1.REFRESH;
36. end;

Untuk mencoban jalankan program dengan menekan tombol F9


37. pada tombol keluar berikan prosedur sebgai berikut :
38. var i:integer;
39. begin
40. i:=messagedlg('anda yakin akan keluar form ini ??..!',
41. mtconfirmation, [mbyes]+ [mbcancel],0);
42. if i = 6 then daf.close;
24

BAB 2
Dasar Database Delphi

Suatu database terdiri beberapa object, diantaranya tabel, view, domain, stored
procedure, dan triger. Obyek-obyek database menyimpan semua informasi mengenai
struktur database dan data.
Istilah-istilah dalam Database diantaranya :
Entitas Adalah suatu objek, yang mana data akan disimpan, diorganisasikan dan
dimanipulasi. Segala informasi, yang ingin kita ketahui adalah Entitas, misalnya
orang, tempat, atau benda. Contoh suatu Entitas misalnya Pelanggan Toko dan data
Inventori Toko.
Attribut Informasi atau data tunggal berkenaan terhadap suatu Entitas. Bila kita
menganggap Inventori Toko sebagai suatu Entitas, maka Keterangan Produk, Harga
Produk, dan Ketersediaan (Stok) Produk adalah Atribut .
Setiap entitas Direpresentasikan sebagai suatu Tabel. Suatu tabel berisi field-field
(kolom-kolom) yang saling berhubungan (field adalah bagian atau potongan
informasi). Contoh: Dalam Tabel Inventori akan berisi field-field (kolom-kolom)
seperti Kode Produk, Keterangan Produk, Ketersediaan Produk, Harga Produk, dan
lain-lain..
Setiap atribut Direpresentasikan sebagai suatu field (kolom). kumpulan dari atribut-
atribut yang saling berhubungan adalah record (baris). Suatu DBMS (Database
Management System) merupakan perantara pemakai dengan database dalam media
penyimpan (storage). contoh DBMS : Interbase, MS SQL Server, MySQL, Oracle,
Access, Paradox dan PostGreSQL. Sebagian besar DBMS digunakan untuk mengolah
database relational sehingga sering disebut sebagai RDBMS.
Tabel Database
Database relational menyimpan semua datanya dalam tabel-tabel. Tabel adalah
sebuah struktur data yang terdiri dari kumpulan baris dan kolom.
Contoh sebuah tabel database :
25

KOMPONEN DATABASE
Dalam pengembangan aplikasi database Delphi diperlukan 3 kelompok komponen
utama, yaitu DATA SET, DATASOURCE, dan DATA-CONTROL. Ketiga
komponen ini saling berkaitan satu sama lainnya.

Data Set Data-Control


(Data-access) Data-Source (Data-aware)

Table Query Data-Source DBNavigator, DBGrid,


StorageProc. DBEdit, DBText, dll

Non Visual Visual

Komponen Data Access adalah komponen non visual yang secara langsung
berhubungan dengan database (file secara fisik). Komponen data access hanya
melakukan akses dengan database, seperti membuka tabel. menutup tabel.
membuat record baru, menghapus record, membaca record. mengubah record, dan
sebagainya.

Komponen Data Access

Komponen Keguanaan
TDAtaSource Sebagai penghubung antara data access component dengan data-
aware visual control.
Ttable Sebagai data source yang mengakses record dari Tabel
Tquery Sebagai data source yang mengakses record dari tabel berdasarkan
perintah SQL query.
TstoredProc Bertindak sebagai Datasource yang mengakses record berdasarkan
perintah store procedure untuk database server.
Tdatabase Menciptakan client sever connection dengan sebuah database dalam
sebuah session session.
Dll Dll
26

KOMPONEN DATA CONTROL

Adalah komponen visual yang juga merupakan komponen data-aware atau disebut
juga visual controls. Dengan komponen ini kita dapat menysusun tampilan untuk
pemakai. Misalnya menampilkan record, menampilkan image, dll.

Komponen Data control

Komponen Kegunaan
TDBGrid Display dan edit dataset seperti dengan format Tabular.
TDBNavigator Mengontrol kursor (posisi) record seperti Previous
Record, Next Record. First record dll.
TDBText Display sebuah field sebagai sebuah Tabel
TDBEdit Display dan Edit sebuah field dalam edit box.
TDBImage Display dan edit sebuah field image atau binary blok
data.
TDBListBox Display sejumlah pilihan untuk mengisi sebuah field.
TDBRadioGroup. Display sejumlah pilihan dalam bentuk radio button
group.

KOMPONEN DATA SET

Yang termasuk dalam komponen Tdataset adalah Ttable, Tquery, dan TstoredProc.
Setiap Dataset berhubungan dengan sebuah komponen DataSource,
sedangkan sebuah DataSource akan berhubungan langsung dengan komponen data
control. Daftar state Dataset

Value State Penjelasan


Dslnactive Inactive DataSet tertutup, sehingga data tidak dapat di
access.
dsBrowse Browse Dataset terbuka, data dapat diview, tetapi tidak
dapat diubah. Kondisi ini adalah kondisi
pertama kali Dataset dibuka
dsEdit Edit Dataset terbuka dan record Dapat diubah.
27

dslnsert Insert Dataset terbuka dan siap menerima sebuah


record yang baru.
dsSetKey SetKey Hanya berlaku untuk Ttable. Data set terbuka
dsCalcFields CalcField Dataset terbuka. State ini menyatakan bahwa
event OnCalcFields sedang berlangsung untuk
menghindari perubahan pada field yang tidak
dihitung.
dsFilter Filter Dataset terbuka Menyatatakan proses filter sedang
berlangsung, dalam state ini dataset hanya dapat
diview
28

Tabel Penjualan

Kode Barang Merek Monitor Jumlah Unit Nilai Penjualan


M1 samsung 13 Rp1.560.000,00
M2 LG 2 Rp600.000,00
M4 Sony 10 Rp5.000.000,00
M2 LG 5 Rp1.500.000,00
M6 Polytron 3 Rp600.000,00
M5 Akari 6 Rp600.000,00

DATABASE DESKTOP
Database Desktop (DBD) adalah software yang disertakan bersama dengan
Delphi yang dapat digunakan untuk membuat database, biasanya standalone. Format
database yang banyak dibuat oleh DBD adalah Paradox, dan dBase, format Paradox
lebih disukai oleh programmer. Di dalam Delphi, database (berisi tabel-tabel) yang
dibuat dengan Database Desktop, diakses melalui borland Database Engine (BDE),
komponen khusus yang bertanggung jawab terhadap koneksi database.
MENJALANKAN DATABASE DESKTOP
1. Klik menu Start Windows
2. Pilih Programs, pilih Borland Delphi 7
3. Klik Database Desktop.

Pemrograman II (Delphi lanjut) By: Dadang Priyanto, M.Kom


29

MEMBUAT TABEL
Setelah DBD dijalankan maka kita bisa langsung membuat tabel, yaitu
dengan cara :
1. Klik Menu File, pilih New, Pilih Table.
2. Setelah muncul tampilan berukut, pilih driver database yang diinginkan. Untuk
latihan pilih Paradox, dan klik OK.

3. Setelah muncul kotak dialog Create Paradox 7 Table, berarti kita siap
merancang struktur tabel.

- Field Name = Nama field


- Type = Tipe data field
- Size = Ukuran berdasarkan tipe data
- Key = Apakah field ini dijadikan kunci atau tidak.
30

Untuk latihan buat tabel berikut :


Field Tipe Data Ukuran
KD_Barang A 5
NM_Barang A 15
Harga N 8
Jumlah N 8
Ctt. Untuk berpindah dari pengisian yang satu dengan yang lainnya gunakan tombol TAB

4. Simpan Tabel dengan menekan tombol Save.

MEMBUAT ALIAS
1. Klik menu tools | Alias Manager..
2. Tampilan jendela Alias Manager seperti berikut ini :

3. Klik New
4. Pada Kotak Database alias beri nama database alias. Misal Dbku1.
5. Tentukan jenis dirver database pada kotak isian Driver type. Misal
STANDARD.
6. Pada bagian Path isikan nama direktori dimana tabel-tabel database anda
disimpan. Misal D:\Delphi\Data. Atau gunakan tombol BROWSE...
31

7. Klik OK jika konfigurasi alias telah selesai.


8. Jendela Public Alias Have Change ditampilkan, Klik YES, agar konfigurasi
alias anda akan segera disimpan ke dalam konfigurasi BDE.

MEMASUKKAN DATA.
Setelah membuat struktur database, sekarang saatnya memasukkan data, yaitu dengan
cara :
1. Buka Tabel dengan mengklik menu FILE | OPEN | TABEL..
2. Jendela Open Tabel

3. Pada bagian alias pilih alias yang digunakan untuk menampung tabel yang
telah dibuat.
4. setelah Tabel ditampilkan klik open.
5. untuk memasukkan data pilih toolbar EDIT DATA.
32

BEKERJA DENGAN TABEL


Buat Aplikasi baru dengan cara :
Pilih menu File | New Application
1. Klik Tab BDE (Borland Database Engine). Tempatkan sebuah komponen
Table pada form. (secara otomatis akan diberi nama Table1.
2. Klik Tab DataAccess dan Tempatkan sebuah komponen DataSource. (secara
otomatis akan diberi nama DataSource1.
3. Klik Tab DataControls dan Tempatkan komponen DBGrid pada form.
4. Klik Tab DataControls dan Tempatkan komponen DBNavigator
5. Klik Tab DataControls dan Tempatkan DBEdit.
6. Tempatkan 3 buah tombol di Form, dan ganti captionnya dengan berturut-turut
dengan Buka Tabel, Tutup Tabel, dan Keluar Form.
7. Program ini kalau dijalankan belum ada isinya, oleh sebab itu lanjutkan
langkah-langkah berikut :
8. klik Table1, pada object inspector ubah property DatabaseName dengan
Database DBDEMOS
9. Klik Table Name dan isi dengan table BIOLIFE.Db (pada langkah ini berarti
kita telah mengaktifkan table yang ada di database alias).
10. Klik Datasource1, pada object Inspector ubah property Dataset dengan Table1.
11. Klik DBNavigator, pada object Inspector ubahlah property DataSource dengan
DataSource1.
12. Klik DBEdit, ubah property DataSource dengan DataSource1, property
DataField diisi dengan NamaField yang akan dimunculkan, missal “Nama”.
13. Klik ganda pada tombol Buka Tabel, isi dengan prosedur berikut ini :
Begin
Table1.Open;
End;
14. Klik ganda pada tombol Tutup Tabel dan isi dengan prosedur berikut:
Begin
Tabel1.Close;
End;
15. Klik ganda pada tombol Keluar Form dan isi dengan prosedur berikut ini:
Begin
Close;
End;
Jalankan Program dengan menekan tombol F9
33
34

BAB 3
Mengakses Database pada
Delphi dengan ADO
Pendahuluan
Bahasa pemrograman Delphi dapat digunakan untuk berbagai
keperluan baik untuk perhitungan matematis, aplikasi perkantoran, aplikasi
multimedia, pembuatan aplikasi pengolah, aplikasi kontrol industri sampai kepada
aplikasi database. Pada materi ini akan dijelaskan bagaimana cara mengakses
database MS Acces dalam Delphi menggunakan Komponen ADO.
Mungkin anda pernah atau bahkan sering mengembangkan program database
dengan Delphi atau Visual Basic. Anda dapat menggunakan database paradox,
dbase maupun MS Acces, dan mungkin anda mengalami masalah dalam distribusi
file yang anda bangun mempunyai ukuran yang sangat besar karena anda harus
menyertakan file database beserta kelengkapannya. Hal ini tentu tidak
menguntungkan terutama jika harus mendistribusikannya lewat email.
Disini akan dibahahas tentang aplikasi database dengan bahasa pemrograman
Delphi. Untuk mengakses database dalam MS Acces, mulai Delphi 5 telah
menyediakan komponen ADO yang akan memudahkan dalam mengelola database
yang akan kita bangun. Dengan ADO pada Delphi distribusi program hanya
membutuhkan file exe dan database-nya (*.mdb) saja. Tentu ini untuk program yang
sederhana. Sehingga anda dapat mendistribusikannya dengan mudah.

Memulai Program database Dengan Delphi


Delphi telah menyediakan komponen database yang akan memudahkan kita
dalam merancang dan membangun aplikasi database. Komponen-komponen
database dikelompokkan dalam Component Pallete Data Acces Data Control
dan BDE Serta ADO seperti pada gambar dibawah ini.

• Data Acces dan BDE banyak berperan pada penentuan sumber data seperti
tabel, SQL, query maupun koneksivitasnya. Contoh komponen ini yaitu Table
dan Datasource.
• Data Control lebih menekankan pada pengaturan data yang terpasang pada
aplikasi sepeti DBLabel, DBNavigator, DBGrid, DBImage, DBMemo, DBEdit,
DBCombobox dan lain sebagainya.
35

• ADO digunakan untuk komunikasi Program dengan Database MS Acces sehingga


data yang dibuat dengan MS Acces akan dapat diintegrasikan dengan Delphi

Latihan 1. Membuat Program database Dengan Delphi


Untuk membuat program database dengan Delphi, sebelumnya anda harus membuat
database dalam
MS Acces terlebih dahulu.

Contoh database dalam MS. Acces dengan Nama pemasaran yang berisi 4 tabel dengan
nama Dosen, Mahasiswa, Nilai dan T_Kuliah
Buatlah Form dalam Delphi dan berilah komponen-komponen seperti terlihat pada gambar
berikut :

Daftar Komponen Yang Digunakan


• ADO Connection Ada Di Pallete ADO
• ADOTable Ada di Pallete ADO
• DataSource Ada di Pallete Data Acces
• DBNavigator Ada di Pallete Data Control

• DBGrid Ada di Pallete Data Control


Setelah anda membuat form seperti di atas maka aturlah properties masing-masing
komponen melalaui Object Inspector di Delphi sbb:
36

Contoh pengaturan properties komponen ADO


Connection1. Yang perlu diatur adalah Name dan
ConnectionString

Komponen Properties Nilai Properti


Form Name Form1
Caption Latihan Database Acces Dg Delphi
ADOConnection Name ADOConnection1
ConnectionString Ke database pemasaran.mdb
ADOTable Name ADOTable1
Connection ADOConnection1
TableName Mahasiswa
Active True
DataSource Name DataSource1
Dataset ADOTable1
DBGrid Name DBGrid1
Data Source DataSource1
DBNavigator Name DBNavigator1
Data Source DataSource1

Contoh Setting Properties Komponen ADOConnection


Pilih Tombol ... pada Connection String pada gambar di atas sehingga
muncul tampilan sbb :

Pilih Use Connection String Lalu Pilih Tombol Build

Pilih Microsoft Jet 4.0 OLE DB Provider lalu pilih Next sehingga muncul
tampilan gambar di atas
Pilih Nama Database dengan menekan tombol ... dipojok kanan lalu pilih
database-nya.
Tekan Tombol Test Connection untuk memastikan database sudah benar
37

Setelah anda mengatur properties semua komponen di atas dengan benar maka tampilan
pada mode form Delphi akan berubah sebagai berikut :

Tabel mahasiswa
pada database
pemasaran.mdb

DBNavigator untuk menggeser data

Anda sudah dapat membuat contoh aplikasi database dengan Delphi.


Sekarang anda tinggal menjalankan (meng-Run) program agar dihasilkan file exe
agar dapat dipakai tanpa program Delphi lagi. Tekan F-9 di Keyboard atau Pilih
Menu Run > Run maka akan dihasilkan sebuah program executable sbb:

Anda dapat mengembangkan progam database di atas dengan menambahkan menu


tambah data, edit data, hapus data. Anda juga dapat menambahkan data
atau tabel lainnya dalam database pemasaran.mdb.
Contoh program yang telah penulis lengkapi dengan berbagai aksesoris dan tampilan
hasilnya sebagai berikut :
38

Anda juga dapat menambahkan Report baik dengan Quick Report yang telah
disediakan pada Delphi
6 ke bawah maupun dengan Rave (Delphi 7) yang akan dibahas pada modul
berikutnya. Contoh report yang telah dibuat sbb :

Latihan 2 Membuat Aplikasi Database Bergambar Dengan ADO

• Buat Aplikasi Baru dari Menu File > New > Application
• Desainlah Form seperti pada tampilan di atas yang berisi 7 Komponen sebagai
berikut :
39

Komponen Properties Nilai Properti


Form Name Form1
Caption Database Bergambar
ADOConnection Name ADOConnection1
Connection String ...
ADOTable Name
ADOTable1
Connection ADOConnection1
TableName Mahasiswa
Active True
DataSource Name DataSource1
DataSet ADOTable1
DBEdit Name DBEdit1
Datasource DataSource1
Data Field Nama
DBImage Name DBImage
Datasource DataSource1
Data Field Foto
DBNavigator Name DBNavigator1
Datasource DataSource1
Button Name Button1
Caption Data Baru
Button Name Button2
Caption Hapus

• Sebelumnya anda harus membuat Database Dengan MS Acces dengan nama


latihan2 yang berisi tabel mahasiswa dengan struktur tabel sbb:
Field No Nama Foto
Tipe Data Number Text Ole Object
Ukuran 20

• Setelah semuanya diatur melalui properti dengan benar maka akan tampak pada
gambar seperti di di bawah ini. Gambar dan Nama akan muncul jika database sudah
diisi dengan data jika belum maka tidak akan muncul

• Isilah Kode Program dengan klik dobel pada Tombol Data Baru
sbb Procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
ADOtable1.Append;
end;
40

• Isilah Kode Program dengan klik dobel pada Tombol Hapus Data
sbb Procedure TForm1.Button2Click(Sender: TObject);

begin
if messagedlg('Hapus data ?', mtConfirmation,
[mbYes,mbNo],0)=mryes then ADOtable1.delete;
end;

• Tambahkan Form baru untuk input data sbb :

Komponen Properties Nilai Properti


Form Name Form2
Caption Input Data Mahasiswa
DBEdit Name DBEdit1
Datasource DataSource1
Data Field No
DBEdit Name DBEdit2
Datasource Form1.DataSource1
Data Field Nama
DBImage Name DBImage
Datasource Form1.DataSource1
Data Field Foto
OpenPictureDialog Name OpenPictureDialog1
Button Name Button1
Caption Insert
Button Name OK
Caption Hapus

• Isikan Program dengan menekan dobel klik pada Button (Insert) dengan
program sbb : Procedure TForm2.Button1Click(Sender: TObject);
begin
if
openpicturedialog1.execu
te then begin
dbimage1.Picture.LoadFromFile(openpicturedialog1.FileName);
end;
end;
41

Dobel Klik Button2 (OK) Dengan kode program


sbb : Procedure
TForm2.Button2Click(Sender: TObject);
begin
form1.ADOtable1.post;
close;
end;
• Sudah Selesai tinggal program dijalankan dengan menekan tombol F9 maka
tampilannya sbb :

• Tombol Navigator < dan > digunakan untuk menggeser data ke bawah dan ke atas.
• Jika Tombol Data Baru ditekan maka muncul tampilan seperti pada gambar di atas.
• Jika pada Form2 ditekan tombol Insert maka akan muncul tampilan untuk memilih
gambar sebagai berikut :
42

BAB 4
MEMBUAT LAPORAN DENGAN RAVE REPORT
Report Authoring Visual Environment (RAVE), merupakan aplikasi pembuatan
laporan secara visual. Komponen-komponen yang digunakan tergabung dalam Rave
Component Palette.
Cara membuat laporan dengan RAVE report :
1. Jalankan Delphi untuk membuat sebuah aplikasi database.
2. Buat database alias dengan nama “Stok” dan table barang dengan struktur
sebagai berikut :
Nama Filed Lebar Type Data
KD_BRG 4 N
NM_BRG 15 A
Jumlah 5 N
Harga 6 N
Total 6 N

3. Letakkan sebuah komponen table, DBGrid di atas form. Komponen ini hanya
untuk menampilkan data pada aplikasi Delphi.
4. Klik control Table1, pilih Stok pada property DataBaseName, Barang.db
untuk property TableName dan True untuk property Active.
5. Hubungkan control Datasource1 ke Table1 melalui property Dataset,
hubungkan pula control DBGrid1 ke DataSource1 melalui property
DataSource.
6. Letakkan sebuah komponen TRvDataSetConnection1 ke atas form dan akan
otomatis bernama RvDataSetConnection1. Pada property DataSet pilih
komponen DataSet yang digunakan, dalam hal ini adalah Table1.
7. Letakkan sebuah komponen TRvProject ke atas form, otomatis bernama
RvProject1.
8. Klik dua kali control RvProject1 untuk menjalankan tool Rave Visual
Designer.
43

9. Dari Jendela Rave report pilih new data object dan pilih database
connection , pilih tombol Next dan pilih BDE, kemudian pilih Finish.
Lanjutkan dengan mengisi DataBase Alias, dan klik tombol OK
10. Pada jendela Rave Visual Designer, pilih menu File | New Data Object untuk
membuka jendela DataConnections. Pilih Direct Data View dan klik tombol
Next. Pada kotak Active klik tombol Finish. Langkah-langkah ini dilakukan
untuk membangun sebuah DataView yang selanjutnya digunakan untuk
menampilkan data pada table barang.db dalam bentuk Report.

Gambar : Jendela Rave Report


44

11. Perhatikan tampilan jendela Rave Report diatas, sebelah kanan menunjukkan
RaveProject,; yaitu mempunayai 2 cabang Report Library dan Data View
Dictionary. Report Library berisi nama-nama report yang terdapat dalam suatu
proyek. Kita bisa mengganti nama report ini, (defaultnya Report1). Yang
kedua DataView, yaitu berisi data-data yang mewakili filed yang terdapat pada
table Barang.db. Field-field ini yang akan ditampilkan pada laporan. Kita bisa
melakukan perubahan pada field ini.
12. Pada posisi sebelah kiri jendela Rave Report merupakan property-properti
yang dapat diatur seperti pada saat kita mendisain form. Secara fungsi sama
dengan property Object Inspector.
13. Langkah selanjutnya adalah membuat laporan; cara yang paling mudah dengan
memanfaatkan fasilitas Wizard. Yaitu pilih menu TOOLS | Report Wizards |
Simple Table. Kita dapat memilih Tools | Report Wizards | Master/Detail
Report untuk membuat report dari data yang tersimpan pada lebih satu table.
14. Pada Jendela Simple Table, pilih DataView yang akan digunakan, DataView1.
Klik tombol Next.
15. Pilih semua field yang dimunculkan dengan meng-klik tombol All. Kemudian
klik tombol Next.
16. Atur urutan field-field yang akan ditampilkan pada laporan. Klik tombol Next.
17. Atur Layout tampilan report mencakup judul report dan batas kertas (Margin).
Klik Next.
18. Anda dapat mengtaur jenis huruf dan ukurannya. Kemudian Klik Generate.
19. Maka jadilah tampilan laporan yang dibuat dengan Aplikasi RAVE REPORT.
Tampilan laporan tersebut masih kurang bagus, harus diatur kembali posisinya
supaya mendapatkan tampilan laporan sesuai yang diinginkan.

MENCETAK LAPORAN

Untuk mencetak laporan dapat dilakukan dengan cara :


1. Tekan tombol F9, atau Pilih menu File | Execute Report.
2. Tentukan tujuan keluarannya, apakah cetak ke Printer, Preview, atau File.
3. Klik tombol OK.
45

MENAMPILKAN LAPORAN
Laporan yang sudah dibuat sebelumnya dapat ditampilkan melalui desain form kita.
Yaitu dengan cara memberikan perintah :
RvProject1.Execute;
Contoh :
1. Buat tombol button pada disain form anda, dan beri Caption “Tampil
Laporan”.
2. Berikan komponen RvProject pada form anda.
3. Pada control RvProject1, pada property ProjectFile Klik tanda … dan cari
nama file report yang akan ditangani.
4. Berikan statemen pada tombol “Tampil Laporan” : RvProject1.Execute;
5. Jalankan, tekan F9.
46

MEMBUAT LAPORAN DENGAN QUICK REPORT

Membuat Laporan Berdasar Nama Per Group

Gunakan database DBDEMOS, dan table gunakan VENDORS.DB.


Contoh berikut akan mencetak daftar nama seperti contoh sebelumnya, tetapi akan
dikelompokkan berdasarkan huruf pertama nama tersebut. Setiap kali terjadi
perubahan maka sebuah band (QRGroup) akan dicetak yang berisi huruf awal daftar
nama selanjutnya.
Langkah pembuatan laporan :
1. Buat komponen Quick Report yang baru. Pilih menu File | New, lanjutkan
dengan memilih Report, dan klik OK. Delphi akan membuat sebuah report
yang diberi nama Quick Report1.
2. Ubah property Name Quick Report1 menjadi qrvendorbygroup.
3. Tempatkan sebuah komponen Query. Ubah property databasename dengan
DBDEMOS dan ganti property Name menjadi quvendor. Setelah itu ubahlah
property SQL seperti berikut ini : SELECT * FROM VENDORS
ORDER BY VENDORNAME
4.
(Digunakan perintah ORDER untuk membuat group)
5. aktifkan query dengan mengubah property active menjadi True.
6. untuk memberitahu Qreport bahwa Dataset yang akan digunakan adalah
quVendor, kliklah report. Pada object Inspector ubah property Dataset menjadi
quVendor.
7. pada object Isnpector, klik ganda property Bands sehingga muncul property
band lainnya. Isi True untuk band Hasdetail dan HasPageHeader.
8. tempatkan sebuah komponen QRGroup (tidak dapat dilakukan melalui Obejct
Inspector). Secara otomatis band ini akan diletakkan diatas band Detail yang
disebut juga sebagai band Group Header.
9. tempatkan sebuah QRLabel pada band PageHeader. Ubah property Capiton
menjadi List of Vendor by Group. Ubah ukuran font menjadi 16 dan style
menjadi bold. Atur posisi label sehingga berada ditengah-tengah.
47

10. tempatkan sebuah komponen QRDBText pada band Group Header. Ubah
Property Dataset menjadi quVendor dan property DataField menjadi
vendorNo.
11. tempatkan pula tiga buah komponen QRDBText di band Group Header dan
ubah semua property Dataset menjadi quVendor. Sedangkan property
DataField secara berturut-turut diubah menjadi VendorName, Address dan
City. Sekarang kita telah membuat sebuah report dan hamper jadi. Untuk
melihat hasilnya klik kananan mouse dan pilih Preview. Kemudian lanjutkan
dengan langkah berikut :
12. beri judul pada masing-masing kolom, tempatkan empat buah komponen
QRLabel (bukan QRDBText) tepat di atas masing-masing kolom di band
Group Header. Ubah property Caption secara berurutan yakni Vendor No,
Vendor Name, Address dan City.
13. untuk memberi garis bawah Group Header band pada property Frame ubahlah
DrawBottom menjadi True.
14. untuk membuat group, klik band Group. Band ini memiliki sebuah property
dengan Expression. Fungsi dari rumus ini untuk memeriksa terjadinya
perubahan group dari record saat itu denan record sebelumnya.
15. Untuk membuat rumus, klik ganda pada property tersebut sehingga muncul
kotak dialog Expression Builder. Untuk membuat rumus lakukan langkah
berikut :
• Pilih rumus COPY dari kotak Available Box. Fungsi akan tampil diatas
kotak parameter dan terlihat COPY (Expr)
• Untuk mengisi parameter VendorName, Klik field vendorName di
Field Box. Lanjutkan dengan mengklik tombol ADD yang berada
dikotak DataField lalu klik tombol OK. Sekarang hasilnya menjadi
COPY (quVendor. VendorName, <Expr>)
• Untuk menambah parameter 1 (satu), isi Edit Box Constant dengan 1.
klik tombol ADD yang ada di Constant Box, kemudian klik tombol
OK. Sekarang hasilnya menjadi COPY (quVendor.VendorName,
1,<Expr>.
48

• Untuk menambah parameter 1 (satu), isi Edit Box Constant dengan 1.


klik tombol ADD yang ada di Constant Box. Kemudian klik tombol
OK. Sekarang hasilnya menjadi Copy (quVendor.VendorName, 1,1).
• Selesailah membuat rumus untuk memeriksa perubahan record pada
band Group Header. Klik tombol OK. Untuk melihat hasilnya pilih
Preview.

16. agar laporan dapat dipilih pada saat dijalankan kembalilah pada Forkm1. ubah
event Onklik tombol buVendorByGroup dengan prosedur berikut :
begin
qrVendorbyGroup.Preview;
end;
17. letakkan sebuah komponen QRLabel, pada band Group Header ubah property
Name menjadi lbHurufPertama.
18. Ubah property font milik Group Header ini dengan style bold. Jika dijalankan
di Group Header masih menampilkan QRLabel5.
19. untuk mengisi property caption komponen lbhurufPertama, lakukan pada
event OnBeforePrint band Group Header. Klik bandGroup Header, pada
Object Inspector klik ganda event On-BeforePrint, kemudian ubah procedur
seperti berikut :
var printBand : Boolean;
begin
lbhurufpertama.Caption := Copy (quVendor[`VendorName`],
1,1);
end;
Event ini juga bisa untuk melakukan perhitungan yang lain.
20. Jalankan dengan menekan tombol F9.
49

Contoh : APLIKASI DATABASE

Berikut dibawah ini adalah contoh aplikasi database untuk pengelolaan stok
barang. Yang perlu diperhatikan adalah bagaimana membuat prosedur-prosedur
Tambah Data, Hapus Data, Simpan Data, dan lain-lain, untuk dapat kita gunakan pada
aplikasi program yang lain.

Gambar : Aplikasi stok barang


Prosedur yang sudah ada dapat dikopi dan digunakan pada aplikasi yang lain
dengan sedikit melakukan perubahan pada Tabel databasenya, yaitu penyesuaian
nama field, dan lokasi penyimpanan table databasenya. Setelah dilakukan
penyesuaian maka prosedur tersebut dapat dipakai/berjalan. Berikut tabel databasenya:

LISTING PROGRAM LENGKAP :


unit UTugas;
interface
50

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, ExtCtrls, Buttons, Grids, DBGrids,
ComCtrls, QuickRpt, QRCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
DataSource1: TDataSource;
Table1: TTable;
Panel1: TPanel;
EJudul: TEdit;
Dbgr: TDBGrid;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
EKode: TEdit;
ENama: TEdit;
ESatuan: TEdit;
EJumlah: TEdit;
EHarga: TEdit;
Panel3: TPanel;
Tambah: TBitBtn;
Koreksi: TBitBtn;
Hapus: TBitBtn;
Simpan: TBitBtn;
Batal: TBitBtn;
BitBtn6: TBitBtn;
StatusBar1: TStatusBar;
Prin: TBitBtn;
Preview: TBitBtn;
Cari: TBitBtn;
Urut: TBitBtn;
Panel4: TPanel;
Bold: TBitBtn;
GrBw: TBitBtn;
Miring: TBitBtn;
Awal: TBitBtn;
Mundur: TBitBtn;
Maju: TBitBtn;
Akhir: TBitBtn;
Lapor: TQuickRep;
TitleBand1: TQRBand;
DetailBand1: TQRBand;
D1: TQRDBText;
D2: TQRDBText;
D3: TQRDBText;
D4: TQRDBText;
D5: TQRDBText;
PageHeaderBand1: TQRBand;
J1: TQRLabel;
L1: TQRLabel;
L2: TQRLabel;
L3: TQRLabel;
L4: TQRLabel;
L5: TQRLabel;
QRShape1: TQRShape;
QRShape5: TQRShape;
51

QRShape6: TQRShape;
QRShape7: TQRShape;
QRShape8: TQRShape;
QRShape2: TQRShape;
QRShape3: TQRShape;
QRShape4: TQRShape;
J2: TQRLabel;
Carid: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
cKode: TEdit;
cNama: TEdit;
Gurut: TGroupBox;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Aktiv;
procedure NonAktiv;
procedure Kosong;
procedure Oper;
procedure Tebal;
procedure TMiring;
procedure BrBawah;
procedure TambahClick(Sender: TObject);
procedure EKodeExit(Sender: TObject);
procedure EKodeChange(Sender: TObject);
procedure EKodeKeyPress(Sender: TObject; var Key: Char);
procedure ENamaChange(Sender: TObject);
procedure ENamaExit(Sender: TObject);
procedure ENamaKeyPress(Sender: TObject; var Key: Char);
procedure ESatuanExit(Sender: TObject);
procedure ESatuanChange(Sender: TObject);
procedure ESatuanKeyPress(Sender: TObject; var Key: Char);
procedure EJumlahExit(Sender: TObject);
procedure EJumlahChange(Sender: TObject);
procedure EJumlahKeyPress(Sender: TObject; var Key: Char);
procedure EHargaChange(Sender: TObject);
procedure EHargaExit(Sender: TObject);
procedure EHargaKeyPress(Sender: TObject; var Key: Char);
procedure BatalClick(Sender: TObject);
procedure KoreksiClick(Sender: TObject);
procedure HapusClick(Sender: TObject);
procedure SimpanClick(Sender: TObject);
procedure DbgrCellClick(Column: TColumn);
procedure BoldClick(Sender: TObject);
procedure GrBwClick(Sender: TObject);
procedure MiringClick(Sender: TObject);
procedure AwalClick(Sender: TObject);
procedure MundurClick(Sender: TObject);
procedure MajuClick(Sender: TObject);
procedure AkhirClick(Sender: TObject);
procedure PreviewClick(Sender: TObject);
procedure PrinClick(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure cKodeKeyPress(Sender: TObject; var Key: Char);
procedure cNamaKeyPress(Sender: TObject; var Key: Char);
52

procedure CariClick(Sender: TObject);


procedure UrutClick(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
St : String;
I : Integer;
Baru : Boolean;
Tb,Mr,Gr : Boolean;
implementation
uses UTugas2;
{$R *.dfm}
procedure TForm1.Tebal;
Begin
If Tb then
Begin
Miring.Font.Color:=clWindowText;
GrBw.Font.Color:=clWindowText;
Bold.Font.Color:=clInfoBk;
eKode.Font.Style:=[fsBold];
eNama.Font.Style:=[fsBold];
eSatuan.Font.Style:=[fsBold];
eJumlah.Font.Style:=[fsBold];
eHarga.Font.Style:=[fsBold];
Dbgr.Font.Style:=[fsBold];
End Else Begin
Bold.Font.Color:=clWindowText;
eKode.Font.Style:=[];
eNama.Font.Style:=[];
eSatuan.Font.Style:=[];
eJumlah.Font.Style:=[];
eHarga.Font.Style:=[];
Dbgr.Font.Style:=[];
End;
End;
procedure TForm1.TMiring;
Begin
if Mr then
Begin
Miring.Font.Color:=clInfoBk;
Bold.Font.Color:=clWindowText;
GrBw.Font.Color:=clWindowText;
eKode.Font.Style:=[fsItalic];
eNama.Font.Style:=[fsItalic];
eSatuan.Font.Style:=[fsItalic];
eJumlah.Font.Style:=[fsItalic];
eHarga.Font.Style:=[fsItalic];
Dbgr.Font.Style:=[fsItalic];
End Else
Begin
Miring.Font.Color:=clWindowText;
eKode.Font.Style:=[];
eNama.Font.Style:=[];
eSatuan.Font.Style:=[];
53

eJumlah.Font.Style:=[];
eHarga.Font.Style:=[];
Dbgr.Font.Style:=[];
End
End;

procedure TForm1.BrBawah;
Begin
if Gr then Begin
GrBw.Font.Color:=clInfoBk;
Miring.Font.Color:=clWindowText;
Bold.Font.Color:=clWindowText;
eKode.Font.Style:=[fsUnderline];
eNama.Font.Style:=[fsUnderline];
eSatuan.Font.Style:=[fsUnderline];
eJumlah.Font.Style:=[fsUnderline];
eHarga.Font.Style:=[fsUnderline];
Dbgr.Font.Style:=[fsUnderline];
End Else
Begin
GrBw.Font.Color:=clWindowText;
eKode.Font.Style:=[];
eNama.Font.Style:=[];
eSatuan.Font.Style:=[];
eJumlah.Font.Style:=[];
eHarga.Font.Style:=[];
Dbgr.Font.Style:=[];
End;
End;
procedure TForm1.Timer1Timer(Sender: TObject);
Var
AA,BB : String;
Begin
St:= '--PEMROGRAMAN DELPHI 07--PEMROGRAMAN DELPHI 07--PEMROGRAMAN
DELPHI 07--';
i:=i+1;
AA:=Copy(St,i,Length(st));
BB:=AA+Copy(St,1,i);
EJudul.Text:=BB ;
If i=1+length(St) then i:=1;
Statusbar1.Panels.Items[0].Text:='Tanggal : '+DAteToStr(Now);
Statusbar1.Font.Size:=8;
Statusbar1.Font.Style:=[fsBold];
Statusbar1.Font.Color:=clYellow;
Statusbar1.Panels.Items[1].Text:='Waktu Sekarang : '+TimeToStr(Now);
Statusbar1.Font.Color:=clYellow;
end;
procedure TForm1.Oper;
Begin
eKode.Text:=Table1.FieldByName('KodeBrg').AsString ;
eNama.Text:=Table1.FieldByName('NamaBrg').AsString;
eSatuan.Text:=Table1.FieldByName('Satuan').AsString;
eJumlah.Text:=Table1.FieldByName('Jumlah').AsString;
eHarga.Text:=Table1.FieldByName('Harga').AsString;
eKode.Color:=clSkyBlue;
eNama.Color:=clSkyBlue;
eSatuan.Color:=clSkyBlue;
eHarga.Color:=clSkyBlue;
eJumlah.Color:=clSkyBlue;
End;
54

procedure TForm1.FormCreate(Sender: TObject);


begin
Table1.Open;
Form1.Hide;
AnimateWindow(Form1.Handle,350,AW_CENTER);
Form1.Show;
end;
Procedure TForm1.Aktiv;
Begin
eKode.Enabled:=true ;
eNama.Enabled:=true;
eSatuan.Enabled:=true;
eJumlah.Enabled:=true;
eHarga.Enabled:=true;
End;
procedure TForm1.NonAktiv;
Begin
eKode.Enabled:=False ;
eNama.Enabled:=False;
eSatuan.Enabled:=False;
eJumlah.Enabled:=False;
eHarga.Enabled:=False;
End;
procedure TForm1.Kosong;
Begin
eKode.Text:='';
eNama.Text :='';
eSatuan.Text :='';
eJumlah.Text :='';
eHarga.Text :='';
End;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
Table1.Close;
Application.Terminate;
end;

procedure TForm1.FormActivate(Sender: TObject);


begin
Baru:=False;
Kosong;
Oper;
Carid.Visible:=False;
GUrut.Visible:=False;
Tb:=FAlse; Mr:=False ; Gr :=False;
NonAktiv;
Bold.Enabled:=True;
GrBw.Enabled :=True;
Miring.Enabled :=True;
Tambah.Enabled :=True;
Koreksi.Enabled :=True;
Hapus.Enabled :=True;
Simpan.Enabled :=False;
Batal.Enabled :=False;
Prin.Enabled :=True;
Preview.Enabled :=True;
Cari.Enabled :=True;
Urut.Enabled :=True;
eKode.Color:=clSkyBlue;
eNama.Color:=clSkyBlue;
55

eSatuan.Color:=clSkyBlue;
eHarga.Color:=clSkyBlue;
eJumlah.Color:=clSkyBlue;
end;
procedure TForm1.TambahClick(Sender: TObject);
begin
Aktiv;
Kosong;
Awal.Enabled :=False;
Mundur.Enabled :=False; Prosedur tambahklik ini digunakan untuk tambah data
Maju.Enabled :=False; baru. Prosedur pertama mengekseskusi prosedur
Akhir.Enabled :=False; AKTIV, prosedur tersebut digunakan untuk
Dbgr.Enabled:=False; mengaktifkan komponen-koponen input data. (seperti
Baru:=true; Tedit Kode, Nama, Satuan, Jumlah, Harga). Kemudian
Bold.Enabled:=False; prosedur mengeksekusi prosedur KOSONG, Prosedur
GrBw.Enabled :=False; ini digunakan untuk mengosongkan atau membersihkan
Miring.Enabled :=False; komponen input data yang sebelumnya telah terisi data,
Tambah.Enabled :=False; sehingga tampilan input menjadi kosong/siap diisi data
Koreksi.Enabled :=False; kembali. Listing berikutnya digunakan untuk
Hapus.Enabled :=False; menonaktifkan prosedur Awal s/d Urut, selain prosedur
Simpan.Enabled :=False; Batal saja yang diaktifkan. (sehingga tampilan tombol
Batal.Enabled :=True; menjadi tenggeleam/tidak tampak).
Prin.Enabled :=False;
Preview.Enabled :=False;
Cari.Enabled :=False;
Urut.Enabled :=False;
Table1.IndexFieldNames:='KodeBrg';
ActiveControl:=eKode;
end;
procedure TForm1.EKodeExit(Sender: TObject);
begin
IF Baru then
Begin
If Table1.FindKey([eKode.Text]) then
Begin
Application.MessageBox('Maaf.. Data Yang Anda Masukan Sudah Terdaftar','Informasi');
eKode.SetFocus;
End;
eKode.Color:=clSkyBlue;
End Else
Begin
If Not Table1.FindKey([eKode.Text]) then
Begin
Application.MessageBox('Maaf.. Data Yang Anda Masukan Belum Terdaftar','Informasi');
BatalClick(Sender);
End;
Oper;
eKode.Color:=clSkyBlue;
end;
end;
procedure TForm1.EKodeChange(Sender: TObject);
begin
eKode.Color:=clWhite;
end;
procedure TForm1.EKodeKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
eNama.SetFocus;
end;
procedure TForm1.ENamaChange(Sender: TObject);
56

begin
eNama.Color:=clWhite;
end;
procedure TForm1.ENamaExit(Sender: TObject);
begin
eNama.Color:=clSkyBlue;
end;
procedure TForm1.ENamaKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
eSatuan.SetFocus;
end;
procedure TForm1.ESatuanExit(Sender: TObject);
begin
eSatuan.Color:=clSkyBlue;
end;
procedure TForm1.ESatuanChange(Sender: TObject);
begin
eSatuan.Color:=clWhite;
end;
procedure TForm1.ESatuanKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
eJumlah.SetFocus;
end;
procedure TForm1.EJumlahExit(Sender: TObject);
Var Mj : Integer;
begin
Try
Mj:=StrToInt(eJumlah.Text);
eJumlah.Color:=clSkyBlue;
Except
Application.MessageBox('Maaf.. Pemasukan Data Jumlah Tidak Valid','Informasi');
eJumlah.SetFocus;
End;
end;
procedure TForm1.EJumlahChange(Sender: TObject);
begin
eJumlah.Color:=clWhite;
end;
procedure TForm1.EJumlahKeyPress(Sender: TObject; var Key: Char);
begin
If Key=#13 then
eHarga.SetFocus;
end;
procedure TForm1.EHargaChange(Sender: TObject);
begin
eHarga.Color:=clWhite;
end;
procedure TForm1.EHargaExit(Sender: TObject);
Var Ass : Integer;
begin
Try
Ass:=StrToInt(eHarga.Text);
eHarga.Color:=clSkyBlue;
Except
Application.MessageBox('Maaf.. Pemasukan Data Harga Tidak Valid','Informasi');
eHarga.SetFocus;
End;
end;
57

procedure TForm1.EHargaKeyPress(Sender: TObject; var Key: Char);


begin
if key=#13 then Begin
eHarga.Color:=clSkyBlue;
if Simpan.Enabled =False then
Begin
Simpan.Enabled :=true;
End;
ActiveControl:=Simpan
End;
end;
procedure TForm1.BatalClick(Sender: TObject);
begin
Kosong;
NonAktiv;
Awal.Enabled :=True;
Mundur.Enabled :=True;
Maju.Enabled :=True;
Akhir.Enabled :=True;
Dbgr.Enabled:=True;
Bold.Enabled:=True;
GrBw.Enabled :=True;
Miring.Enabled :=True;
Tambah.Enabled :=True;
Koreksi.Enabled :=True;
Hapus.Enabled :=True;
Simpan.Enabled :=False;
Batal.Enabled :=False;
Prin.Enabled :=True;
Preview.Enabled :=True;
Cari.Enabled :=True;
Urut.Enabled :=True;
eKode.Color:=clSkyBlue;
eNama.Color:=clSkyBlue;
eSatuan.Color:=clSkyBlue;
eHarga.Color:=clSkyBlue;
eJumlah.Color:=clSkyBlue;
ActiveControl:=Tambah;
end;
procedure TForm1.KoreksiClick(Sender: TObject);
begin
Aktiv;
Kosong;
Oper;
Baru:=False;
Table1.IndexFieldNames:='KodeBrg';
Awal.Enabled :=False;
Prosedur ini digunakan untuk fasilitas koreksi, data yang telah
Mundur.Enabled :=False;
diinputkan. Pertama listing akan mengeksekusi prosedur
Maju.Enabled :=False;
AKTIV; yang digunakan untuk mengaktifkan komponen input
Akhir.Enabled :=False;
data, Yang Kedua Prosedur KOSONG; yang digunakan untuk
Dbgr.Enabled:=False;
mengosongkan komponen input data dari data yang diinputkan
Bold.Enabled:=False;
sebelumnya, Yang Ketiga Prosedur OPER; yang digunakan
GrBw.Enabled :=False;
untuk mengaktifkan TEdit KodeBarang, NamaBarang, Satuan,
Miring.Enabled :=False;
Jumlah, HargaSatuan, yang hubungannya langsung ke TABEL
Tambah.Enabled :=False;
DataBase. Yang Keempat Listing Menonaktifkan Prosedur
Koreksi.Enabled :=False;
yang lain, dengan status FALSE
Hapus.Enabled :=False;
Simpan.Enabled :=False;
Batal.Enabled :=True;
Prin.Enabled :=False;
58

Preview.Enabled :=False;
Cari.Enabled :=False;
Urut.Enabled :=False;
ActiveControl:=eKode;
end;
procedure TForm1.HapusClick(Sender: TObject);
begin
Table1.IndexFieldNames:='KodeBrg';
If Not Table1.FindKey([eKode.Text]) then
Begin
Application.MessageBox('Pilih Data Yang Akan Dihapus pada Table','Informasi');
End Else
Begin
If (Application.MessageBox('Apakah Data Benar-Benar di Hapus..?','Peringatan',MB_YESNO or
MB_ICONQUESTION)=IDYES) then
Begin
Table1.Delete;
Table1.Refresh;
End;
end;
End;
procedure TForm1.SimpanClick(Sender: TObject);
begin
If Baru then
Table1.Append
Else
Table1.Edit;
Table1.FieldByName('KodeBrg').AsString:=eKode.Text;
Table1.FieldByName('NamaBrg').AsString:=eNama.Text ;
Table1.FieldByName('Satuan').AsString:=eSatuan.Text ;
Table1.FieldByName('Harga').AsString:=eHarga.Text ;
Table1.FieldByName('Jumlah').AsString:=eJumlah.Text ;
Table1.Post;
BatalClick(Sender);
end;
procedure TForm1.DbgrCellClick(Column: TColumn);
begin
Table1.IndexFieldNames:='KodeBrg';
oper;
end;
procedure TForm1.BoldClick(Sender: TObject);
begin
Tb:=not Tb;
Gr:=not Gr;
Mr:=not Mr;
Tebal;
end;
procedure TForm1.GrBwClick(Sender: TObject);
begin
Tb:=not Tb;
Gr:=not Gr;
Mr:=not Mr;
BrBawah;
end;
procedure TForm1.MiringClick(Sender: TObject);
begin
Tb:=not Tb;
Gr:=not Gr;
Mr:=not Mr;
TMiring ;
59

end;
procedure TForm1.AwalClick(Sender: TObject);
begin
Table1.First;
end;
procedure TForm1.MundurClick(Sender: TObject);
begin
Table1.Prior;
end;
procedure TForm1.MajuClick(Sender: TObject);
begin
Table1.Next;
end;
procedure TForm1.AkhirClick(Sender: TObject);
begin
Table1.Last;
end;
procedure TForm1.PreviewClick(Sender: TObject);
begin
lAPOR.Preview;
end;
procedure TForm1.PrinClick(Sender: TObject);
begin
Form1.Hide;
Form2.Show;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
Table1.IndexFieldNames:='KodeBrg';
cKode.Visible:=True;
cNama.Visible:=False;
cKode.SetFocus;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
Table1.IndexFieldNames:='NamaBrg';
cKode.Visible:=FAlse;
cNama.Visible:=True;
cNama.SetFocus;
end;
procedure TForm1.cKodeKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Begin
if Not Table1.FindKey([cKode.Text]) then
Application.MessageBox('Kode Barang Belum Terdaftar','Informasi');
Carid.Visible:=false;
Cari.SetFocus;
End;
end;
procedure TForm1.cNamaKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Begin
if Not Table1.FindKey([cNama.Text]) then Begin
Application.MessageBox('Kode Barang Belum Terdaftar','Informasi');
Carid.Visible:=false;
Cari.SetFocus;
End;
End;
End;
procedure TForm1.CariClick(Sender: TObject);
60

begin
Carid.Visible:=True;
cKode.Text:='';
cNama.Text:='';
cKode.Visible:=False;
cNama.Visible :=False;
end;
procedure TForm1.UrutClick(Sender: TObject);
begin
GUrut.Visible:=true;
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
Table1.IndexFieldNames:='KodeBrg';
gUrut.Visible:=False;
end;

procedure TForm1.RadioButton4Click(Sender: TObject);


begin
Table1.IndexFieldNames:='NamaBrg';
gUrut.Visible:=False;

end;

end.

Anda mungkin juga menyukai