Anda di halaman 1dari 42

Modul Delphi 7 Aplikasi Penjualan Sederhana (By.

Supiyan Sauri)

Page 1

Membuat Tabel, Relasi Tabel, View Data, Triggers dengan tools


SQLyog Enterprise v7.14
Target :
membuat 5 tabel dan mengisi field-field didalam setiap tabel.
relasi antar tabel.
membuat view mudah di SQLyog.
membuat triggers.
1. Membuat Database, Tabel, Field.
Langkah 1: Buka tools SQLyog, kemudian sesuaikan di laptop masing-masing ketika
mengistall Appserv, klik button Connect, seperti gambar berikut.

Langkah 2: Setelah masuk ke tampilan utama SQLyog, klik kanan dibagian


root@localhost dan pilih Create Database.

Langkah 3: Tentukan nama database yang akan dibuat, isi seperti gambar berikut.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 1

Langkah 4: Setelah membuat nama database, maka selanjutnya membuat tabel dan
mengisi field-field yang dibutuhkan, pada modul ini ada 5 tabel yang akan dibuat, yaitu:
tbl_barang, tbl_detailfaktur, tbl_faktur, tbl_login, tbl_supplier. berikut secara rinci
keterangan yang ada di dalam setiap tabel.
1. Tabel Barang
Nama Field
Tipe Data
KodeBarang
char
NamaBarang
varchar
Harga
int
Stok
int

Ukuran
5
25
11
11

Keterangan
Primary Key

2. Tabel Detail Faktur


Nama Field
Tipe Data
NomorUrut
int
NomorFaktur
char
KodeSupplier
char
KodeBarang
char
JumlahBeli
int
Jumlah
int

Ukuran
11
15
5
5
11
11

Ketarangan
Primary Key, Auto Increment

3. Tabel Faktur
Nama Field
NomorFaktur
TanggalFaktur
TanggalJatuhTempo
TotalFaktur

Tipe Data
char
date
date
int

Ukuran
15

Ketarangan
Primary Key

11

4. Tabel Login
Nama Field
Tipe Data
User
varchar
Password
varchar

Ukuran
10
10

Ketarangan
Primary Key

5. Tabel Supplier
Nama Field
Tipe Data
KodeSupplier
char
NamaSupplier
varchar
AlamatSupplier
varchar
TeleponSupplier
varchar

Ukuran
5
25
50
14

Ketarangan
Primary Key

2. Relasi Antar Tabel.


Langkah 1: Untuk membuat relasi tabel di SQLyog, pastikan layar sudah di
SchemaDesigner, dan pilih add table(s) to canvas. atau klik kanan di SchemaDesigner dan
pilih add tables.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 2

Langkah 2: Berikut gambar tampilan desain relasi tabel yang akan dibuat.

tips: pastikan foreign key dahulu yang dipilih kemudian ke primary key, caranya lakukan
drag and drop, jangan lupa perhatikan constrain namenya jangan sampai ada yang sama.
3. Membuat View.
Langkah 1: View yang akan dibuat pada modul ini ada 2, yaitu: vdetailbeli & vfaktur.
Untuk membuat view di SQLyog sebenarnya menggunakan perintah sql command,
tetapi untuk mempermudah pembuatan, modul ini memanfaatkan QueryBuilder, berikut
tampilan contoh pembuatan dengan QueryBuilder pada vdetailbeli.
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 3

Langkah 2: Buat view detailbeli, dengan cara klik kanan di bagian view, create view,
tentukan nama view dengan nama: vdetailbeli. maka akan muncul perintah sql, lakukan
copy-paste untuk sqlnya, dari QueryBuilder yang telah dibuat diatas. Berikut apabila
masih bingung perintah sqlnya tinggal copy-paste di bagian (SELECT * FROM ...).
CREATE
/*[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]*/
VIEW `db_ti12d`.`vdetailbeli`
AS
(SELECT
tbl_detailfaktur.NomorUrut
, tbl_faktur.NomorFaktur
, tbl_supplier.KodeSupplier
, tbl_supplier.NamaSupplier
, tbl_barang.KodeBarang
, tbl_barang.NamaBarang
, tbl_barang.Harga
, tbl_detailfaktur.JumlahBeli
, tbl_detailfaktur.Jumlah
FROM
db_ti12d.tbl_faktur,
db_ti12d.tbl_detailfaktur
INNER JOIN db_ti12d.tbl_supplier
ON (tbl_detailfaktur.KodeSupplier = tbl_supplier.KodeSupplier)
INNER JOIN db_ti12d.tbl_barang
ON (tbl_detailfaktur.KodeBarang = tbl_barang.KodeBarang));

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 4

Langkah 3: Caranya sama dengan langkah 1 & langkah 2, berikut adalah urutan langkahlangkah yang harus di klik 2x terlebih dahulu pada QueryBuilder di vew faktur yang
masih kosong/belum terisi.
Urutan
Pilih Tabel
Field
1
tbl_faktur
NomorFaktur
2
tbl_faktur
TanggalFaktur
3
tbl_faktur
TanggalJatuhTempo
4
tbl_supplier
KodeSupplier
5
tbl_supplier
NamaSupplier
6
tbl_barang
KodeBarang
7
tbl_barang
NamaBarang
8
tbl_barang
Harga
9
tbl_detailfaktur
JumlahBeli
10
tbl_detailfaktur
Jumlah
11
tbl_faktur
TotalFaktur
Setelah membuat querybuilder lalu copy-paste, berikut sql lengkapnya.
CREATE
/*[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]*/
VIEW `db_ti12d`.`vfaktur`
AS
(SELECT
tbl_faktur.NomorFaktur
, tbl_faktur.TanggalFaktur
, tbl_faktur.TanggalJatuhTempo
, tbl_supplier.KodeSupplier
, tbl_supplier.NamaSupplier
, tbl_barang.KodeBarang
, tbl_barang.NamaBarang
, tbl_barang.Harga
, tbl_detailfaktur.JumlahBeli
, tbl_detailfaktur.Jumlah
, tbl_faktur.TotalFaktur
FROM
db_ti12d.tbl_faktur,
db_ti12d.tbl_detailfaktur
INNER JOIN db_ti12d.tbl_barang
ON (tbl_detailfaktur.KodeBarang = tbl_barang.KodeBarang)
INNER JOIN db_ti12d.tbl_supplier
ON (tbl_detailfaktur.KodeSupplier = tbl_supplier.KodeSupplier));

4. Membuat Triggers.
Langkah 1: Dalam pembuatan modul ini ada 2 triggers yaitu: tsimpanpembelian &
thapuspembelian, untuk membuat triggers di dalam SQLyog adalah dengan cara klik
kanan folder triggers, pilih create trigger, tentukan nama triggersnya. Maka akan
muncul perintah sql command yang akan di excute.
Langkah 2: Copy-paste source code berikut ini untuk triggers tsimpanpembelian.
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 5

DELIMITER $$
DROP TRIGGER /*!50032 IF EXISTS */ `xyz`.`TSimpanPembelian`$$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `TSimpanPembelian` AFTER INSERT ON `tbl_detailfaktur`
FOR EACH ROW BEGIN
UPDATE tbl_barang SET stok = stok + new.
JumlahBeli WHERE KodeBarang = new.KodeBarang;
END;
$$
DELIMITER ;

Langkah 3: Copy-paste source code berikut untuk triggers thapuspembelian.


DELIMITER $$
DROP TRIGGER /*!50032 IF EXISTS */ `xyz`.`THapusPembelian`$$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `THapusPembelian` AFTER DELETE ON `tbl_detailfaktur`
FOR EACH ROW BEGIN
UPDATE tbl_barang SET stok = stok - old.
JumlahBeli WHERE KodeBarang = old.KodeBarang;
END;
$$
DELIMITER ;

Pada proses pertama pada aplikasi transaksi penjualan sederhana semua sudah selesai,
mulai dari pembuatan database, tabel, field, relasi tabel, view dan triggers. Semoga
modul ini dapat diikuti langkah-langkahnya secara mudah, dan dapat dimengerti oleh
orang yang baru mengenal database dan tools SQLyog sekalipun. Ilmu yang bermanfaat
adalah ilmu yang di bagikan. Pada modul ini sengaja tidak dijelaskan fungsi dan maksud
komponen yang digunakan, hanya beberapa saja yang dijelaskan.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 6

Membuat Koneksi ODBC Untuk Penghubung MySQL dengan Borland


Delphi 7
Target :
menginstall driver ODBC.
membuat koneksi ODBC di windows 8 dan konfigurasinya.
1. Menginstall Driver ODBC.
Langkah 1: Apabila belum mempunyai software mysql connector odbc 5.1.5
win32.exe, maka terpaksa anda harus mendownloadnya terlebih dahulu. saya tidak
memberikan link downloadnya, karena di internet sudah banyak beredar software
tersebut.
Langkah 2: Setelah memiliki software tersebut, lalu install softwarenya, cara installnya
sama saja seperti software pada umumnya (tidak ada penjelasan cara menginstallnya).
tips : disini saya menggunakan mysql connector odbc v5.1, untuk menjaga agar database
tidak error, maka ganti/gunakan driver odbc tersebut di komputer anda.
2. Membuat Koneksi ODBC di Windows 8 dan Konfigurasinya.
Langkah 1: Masuk ke Control Panel windows anda, pilih Administrative Tools, pilih ODBC
Data Sources (32-bit). untuk memperjelas berikut gambarnya.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 7

Langkah 2: Setelah memilih ODBC Data Sources (32-bit), maka akan muncul kotak dialog
berikut.

Langkah 3: Untuk membuat koneksi ODBC baru klik Add, maka akan muncul gambar
berikut dan pilih yang MySQL ODBC 5.1 Driver. Kemudian klik Finish.

Langkah 4: Selanjutnya akan muncuk kotak dialog ODBC, samakan pada gambar
berikut.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 8

Langkah 5: Setelah diisi semua dengan benar maka klik ok dan akan ada tampilan
berikut, yang berarti koneksi yang dibuat sukses/berhasil. Klik Ok sekali lagi untuk
mengakhiri.

Koneksi ODBC sudah selesai. Apabila ada yang masih error, bisa jadi kesalahan dalam
menginstall odbc-nya. Semoga bisa diikuti langkah-langkahnya sampai selesai,
selanjutnya akan membuat form untuk data barang. Pada modul ini sengaja tidak
dijelaskan fungsi dan maksud komponen yang digunakan, hanya beberapa saja yang
dijelaskan.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 9

Membuat Form Menu Utama & Login Dengan Menggunakan Software


Borland Delphi 7
Target :
membuat desain form dan mengisi properties.
memanggil form-form untuk ditampilkan.
mengisi semua kode program.
mengcustom sedikit form di menu utama.
1. Membuat Desain Form Menu Utama dan Login.
Langkah 1: Berikut adalah tampilan desain form menu utama yang akan dibuat,
silahkan di desain sesuai dengan keinginan atau mengikuti desain ini.

Langkah 2: Masukkan beberapa komponen berikut, Komponen yang dibutuhkan berada


di tab Pallete Standard, tab Pallete Addtional, dan tab Pallete ADO. Isi semua semua
propertiesnya untuk form menu utama.
Komponen
Form1 : TForm1
ADOQuery1 : TADOQuery

MainMenu1 : TMainMenu

Properties Yang Diubah


Caption
WindowState
Name
ConnectionString
Name
SQL
Klik 2x QLogin
Active
Klik 2x

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Nilai Properties
Menu Utama
wsMaximized
FMenuUtama
ODBC_TI12D
QLogin
SELECT * FROM tbl_login
Klik kanan Add all fields
True
Isi rincian berikut :
Menu file
- Login

Page 10

GroupBox1 : TGroupBox
Label1 : TLabel (GroupBox1)
Label2 : TLabel (GroupBox1)
TEdit1 : TEdit (GroupBox1)
TEdit2 : TEdit (GroupBox1)
TBitBtn1 : TBitBtn (GroupBox1)
TBitBtn2 : TBitBtn (GroupBox1)
Image1 : Timage (main menu)
Image2 : Timage (Groupbox1)

Caption
Caption
Caption
Name
Name
PasswordChar
Caption
Name
Caption
Name
Picture
Stretch
Align
Picture
Stretch
Align

- Logout
- Keluar
Menu Data
- Barang
- Supplier
- Pembelian
.:: Form Login ::.
Username
Password
EdUser
EdPassword
* (agar karakter terbaca *)
Login
BtnLogin
Keluar
BtnKeluar
Cari lokasi gambar
True
alClient
Cari lokasi gambar
True
alClient

2. Memanggil Form Lain Untuk Ditampilkan.


Langkah 1: Pastikan menu-menu yang dibuat sudah sesuai, pilih menu data masuk ke
barang, maka akan mengarah ke kode programnya. Isi dengan kode program berikut.
procedure Tfmenuutama.Supplier1Click(Sender: TObject);
begin
FBarang.ShowModal; //menampilkan form barang
end;

tips : untuk memanggil form lain maka gunakan tombol (alt+f11) pilih form yang akan
digunakan. misalnya kita berada di FMenuUtama dan ingin memanggil FBarang maka
gunakan tombol (alt+f11) untuk memanggilnya. (tombol alt+f11 adalah untuk
menampilkan kotak dialog use unit).
Langkah 2: pilih menu data, masuk ke supplier, maka akan mengarah ke kode
programnya. Isi dengan kode program berikut.
procedure Tfmenuutama.Supplier2Click(Sender: TObject);
begin
FSupplier.ShowModal;
end;

Langkah 3: pilih menu data, masuk ke pembelian, maka akan mengarah ke kode
programnya. Isi dengan kode program berikut.
procedure Tfmenuutama.Pembelian1Click(Sender: TObject);
begin
FFaktur.ShowModal;
end;

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 11

3. Mengisi Semua Kode Program


Langkah 1: pilih menu file, masuk ke keluar, maka akan mengarah ke kode
programnya. Isi dengan kode program berikut.
procedure Tfmenuutama.Keluar1Click(Sender: TObject);
begin
Application.Terminate;
end;

Langkah 2: Menyembunyikan GroupBox1 ketika program di jalankan, caranya klik


pada FMenuUtama klik 2x sembarang syaratnya posisi di FmenuUtama. Maka akan
tampil kode program yang masih kosong isikan dengan kode berikut.
procedure Tfmenuutama.FormCreate(Sender: TObject);
begin
//menyembunyikan group login
GroupBox1.Visible := false;
Data1.Enabled := false;
//mematikan fungsi logout
Logout1.Enabled := false;
end;

Langkah 3: Mengisi kode pada menu file, bagian login, dengan kode berikut.
procedure Tfmenuutama.Login1Click(Sender: TObject);
begin
//menampilkan group login
GroupBox1.Visible := true;
eduser.Clear;
edpassword.Clear;
eduser.SetFocus;
Data1.Enabled := false;
//mengaktifkan fungsi logout
Logout1.Enabled := true;
Login1.Enabled := false //matikan login
end;

Langkah 4: Mengisi kode pada menu file, bagian logout, dengan kode berikut.
procedure Tfmenuutama.Logout1Click(Sender: TObject);
begin
//menyembunyikan group login
GroupBox1.Visible := false;
Data1.Enabled := false;
//mematikan fungsi logout
Logout1.Enabled := false;
Login1.Enabled := true; //aktifkan login
end;

Langkah 5: Mengisi BtnBatal dengan kode berikut.


procedure Tfmenuutama.btnbatalClick(Sender: TObject);
begin
Logout1Click(Sender);
end;

Langkah 6: Mengisi BtnLogin dengan kode berikut.


procedure Tfmenuutama.btnloginClick(Sender: TObject);
begin
qlogin.Close;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 12

qlogin.SQL.Clear;
qlogin.SQL.Add('select * from tbl_login where '+
'user = '+QuotedStr(eduser.Text)+' AND '+
'password = '+QuotedStr(edpassword.Text)+'');
qlogin.Open;
if qlogin.RecordCount <> 0 THEN //jika ada/sesuai
begin
ShowMessage('SELAMAT DATANG GAN');
GroupBox1.Visible := False;
Data1.Enabled := True;;
end
else //jika data tidak ada/sesuai
begin
ShowMessage('USER/PASS SALAH GAN! PC LOADING');
eduser.SetFocus;
end;
end;

4. Mengcustom Sedikit Form di Menu Utama.


Langkah 1: Pada saat login, user tanpa harus menekan tombol login. Tetapi dengan
menggunakan keyboard Enter user langsung masuk ke pengolahan data (dengan syarat
username dan password benar). Caranya pilih EdPassword, arahkan ke Object
Inspector, pilih Event, cari tulisan OnKeyPress, klik 2x di sebelah kanannya. Isikan kode
berikut.
procedure Tfmenuutama.edpasswordKeyPress(Sender: TObject; var Key: Char);
begin
if key =#13 then
btnloginClick(Sender);
end;

tips : untuk yang lain silahkan dicoba sendiri.


Untuk form menu utama sudah selesai, silahkan di running programnya. Apabila ada
yang masih error, kemungkinan karena kurang teliti saja. Semoga bisa diikuti langkahlangkahnya sampai selesai, selanjutnya akan membuat form untuk data barang. Pada
modul ini sengaja tidak dijelaskan fungsi dan maksud komponen yang digunakan, hanya
beberapa saja yang dijelaskan.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 13

Membuat Form Data Barang Dengan Menggunakan Software Borland


Delphi 7
Target :
membuat desain form dan mengisi properties.
membuat procedure global dan var global.
setting ADOConnection.
mengisi semua kode program.
meminimalisir kesalahan pada form data barang.
1. Membuat Desain Form Data Barang.
Langkah 1: Berikut adalah tampilan desain form data barang yang akan dibuat, silahkan
di desain sesuai dengan keinginan atau mengikuti desain ini.

Langkah 2: Masukkan beberapa komponen berikut, Komponen yang dibutuhkan berada


di tab Pallete Standard, tab Pallete Data Acces, tab Pallete Addtional dan tab Pallete ADO.
Isi semua semua propertiesnya untuk form data barang.
Komponen
Form1 : TForm1
Panel1 : TPanel
Panel2 : TPanel
Panel3 : TPanel
Panel4 : TPanel
GroupBox1 : TGroupBox
Label1 : TLabel (Panel1)
Label2 : TLabel (Panel1)

Properties Yang Diubah


Caption
Position
Name
Caption
BevelInnter
Caption
BevelInnter
Caption
BevelInnter
Caption
BevelInnter
Caption
Caption
Caption

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Nilai Properties
.:: FORM DATA BARANG ::.
PoScreenCenter
FBarang
bvLowered
bvLowered
bvLowered
bvLowered
.:: Pencarian Data ::.
Kode Barang
Nama Barang

Page 14

Label3 : TLabel (Panel1)


Label4 : TLabel (Panel1)
Label5 : TLabel (GroupBox1)
Edit1 : TEdit (Panel1)
Edit2 : TEdit (Panel1)
Edit3 : TEdit (Panel1)
Edit4 : TEdit (Panel1)
Edit5 : TEdit (GroupBox1)
BitBtn1 : TBitBtn (Panel4)
BitBtn2 : TBitBtn (Panel4)
BitBtn3 : TBitBtn (Panel4)
BitBtn4 : TBitBtn (Panel4)
BitBtn5 : TBitBtn (Panel3)
BitBtn6 : TBitBtn (Panel3)
Button1 : TButton (Groupbox1)
ADOConnection1 :
TADOConnection
ADOQuery1 : TADOQuery

ADOCommad1 : TADOCommand
DataSource1 : TDataSource
DBGrid1 : TDBGrid

Caption
Caption
Caption
Name
Name
Name
Name
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
ConnetionString
LoginPromt
Connection
Name
SQL
Klik 2x QBarang
Active
Connection
DataSet
Name
DataSource
Options... (dgEditing)
Options... (dbRowSelect)

Harga
Stok
Masukkan Nama Barang
EdKodeBarang
EdNamaBarang
EdHargaBarang
EdStok
EdCariBarang
Baru
BtnBaru
Edit
BtnEdit
Hapus
BtnHapus
Keluar
BtnKeluar
Batal
BtnBatal
BtnSimpan
<<
ODBC_TI12D
False
ADOConnection1
QBarang
SELECT * FROM tbl_barang
Klik kanan Add all fields
True
ADOConnection1
QBarang
DSBarang
DSBarang
False
True

2. Membuat Procedure Public dan Var Global.


Langkah 1: Klik 2x di FBarang, cari tulisan { Public declarations } isikan koding seperti
dibawah ini.
public
{ Public declarations }
PROCEDURE BERSIH;
PROCEDURE REFRESH_DB;
PROCEDURE AUTONUMBER;
PROCEDURE ATURPANEL(X:BOOLEAN);
end;

Kemudian klik 2x lagi di Fbarang, cara tulisan var isikan koding seperti berikut.
var
FBarang: TFBarang;
//MEMBUAT VAR GLOBAL KET, sebagai keterangan tombol;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 15

KET : STRING;

Langkah 2: Pastikan kursor berada di procedure yang dibuat, kemudian tekan tombol
(shift+ctrl+c), isikan masing-masing procedure dengan kode program berikut.
PROCEDURE AUTONUMBER
procedure TFBarang.AUTONUMBER; (jangan ikut dicopy ya)
var kode : double; //membuat var untuk menampung kodebarang
begin
REFRESH_DB; //mengurutkan data melalui refresh db
//KONDISI, jika belum ada data 1 pun di tabel barang
IF QBarang.RecordCount = 0 THEN
kode := 0001
ELSE //KONDISI, jika sudah ada data minimal 1 di tbl
BEGIN
QBarang.Last; //melihat data yang terakhir
kode := StrToFloat(COPY(QBarangKodeBarang.AsString,2,4));
kode := kode + 1;
END;
EdKodeBarang.Text := 'B'+FormatFloat('0000',kode);
end;

PROCEDURE BERSIH
procedure TFBarang.BERSIH; (jangan ikut dicopy ya)
begin
EdKodeBarang.Clear;
EdNamaBarang.Clear;
EdHargaBarang.Clear;
EdStok.Clear;
EdCariBarang.Clear;
end;

PROCEDURE REFRESH_DB
procedure TFBarang.REFRESH_DB; (jangan ikut dicopy ya)
begin
//MEREFRESH DATA PADA TABEL
QBarang.Close;
QBarang.SQL.Clear;
QBarang.SQL.Add('select * from tbl_barang order by KodeBarang');
QBarang.Open;
end;

3. Setting ADOConnection.
Langkah 1: Pastikan posisi kursor berada di ADOConnection1, arahkan ke Object
Inspector, pilih tab Properties, pilih yang ConnectionString, klik 2x disebelah kanannya.
Maka akan muncul gambar berikut dan klik build.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 16

Langkah 2: Setelah klik Build maka akan muncul gambar berikut, pilih yang ada tulisan
ODBC Driver, kemudian klik Next.

Langkah 3: Ini adalah bagian penting, setelah di klik Next akan muncul kotak dialog
ketentuan ODBC, sesuaikan dengan gambar ini.

Langkah 4: Apabila sudah diisi dengan benar maka klik Ok, Klik Ok lagi.
tips : untuk yang form yang lain saya tidak menyertakan cara setting ADOConnection, jadi
gambaranya seperti diatas caranya. jika didalam form yang tidak ada ADOConnection
dan langsung menggunakan ADOQuery caranya sama, pilih di Propertiesnya yang
ConnectionString dan atur seperti diatas.
4. Mengisi Semua Kode Program.
Langkah 1: Pastikan sudah berada di Form Barang, kemudian pilih Object Inspector,
pilih Event, cari tulisan OnActive, klik 2x di sebelah kanannya, maka akan muncul kode
program yang masih kosong, isikan dengan kode program dibawah ini.
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 17

FORM BARANG ONACTIVE


procedure TFBarang.FormActivate(Sender: TObject); (jangan ikut dicopy ya)
begin
//MEMBUAT BEBERAPA PROCEDURE
BERSIH;
REFRESH_DB;
ATURPANEL(TRUE);
end;

Langkah 2: Mengisi kode program pada BtnBaru, caranya klik 2x BitBtn tersebut dan
copy kode berikut.
TOMBOL BARU
procedure TFBarang.BtnBaruClick(Sender: TObject);
begin
ATURPANEL(FALSE);
BERSIH;
AUTONUMBER;
KET := 'BARU'; //tombol ini pada saat diklik mempunyai keterangan BARU
EdNamaBarang.SetFocus; //fokus kursor ke ednamabarang
end;

Langkah 3: Berikut kode program untuk BtnEdit.


TOMBOL EDIT
procedure TFBarang.BtnEditClick(Sender: TObject);
begin
ATURPANEL(FALSE);
KET := 'EDIT'; //keterangan tombol adalah edit
EdNamaBarang.SetFocus;
end;

Langkah 4: Berikut kode program untuk BtnBatal.


TOMBOL BATAL
procedure TFBarang.BtnBatalClick(Sender: TObject);
begin
FormActivate(Sender); //memanggil coding di form aktif
end;

Langkah 5: Jika kita klik di bagian DBGrid harus muncul kembali datanya di bagian Edit,
maka langkahnya pastikan sudah berada di DBGrid1, arahkan ke Object Inspector, pilih
Event cari tulisan OnCellClick (artinya apabila cell di klik, aksi apa yang akan dilakukan),
klik 2x di sebelah kanan OnCellClick maka akan muncul kotak isian kode program.
Isikan dengan kode berikut.
DBGRID ONCELLCLICK
procedure TFBarang.DBGrid1CellClick(Column: TColumn);
begin
//menampilkan data kekomponen edit melalui dbgrid
EdKodeBarang.Text := QBarangKodeBarang.AsString;
EdNamaBarang.Text := QBarangNamaBarang.AsString;
EdHargaBarang.Text := QBarangHarga.AsString;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 18

EdStok.Text := QBarangStok.AsString;
end;

Langkah 6: Berikut kode program untuk BtnKeluar (pasti sudah tahu).


TOMBOL KELUAR
procedure TFBarang.BtnKeluarClick(Sender: TObject);
begin
Close;
end;

Langkah 7: Berikut adalah kode program untuk EdCariBarang.


EDIT CARI BARANG
procedure TFBarang.EdCariBarangChange(Sender: TObject);
begin
//mencari data berdasarkan nama barang
QBarang.Close;
QBarang.SQL.Clear;
QBarang.SQL.Add('select * from tbl_barang where '+
'NamaBarang LIKE '+QuotedStr('%'+EdCariBarang.Text+'%')+'');
QBarang.Open;
end;

Langkah 8: Berikut kode program Button1.


TOMBOL HAPUS CARI BARANG
procedure TFBarang.Button1Click(Sender: TObject);
begin
EdCariBarang.Clear;
EdCariBarang.SetFocus;
end;

Langkah 9: Untuk BtnSimpan lumayan banyak kode programnya, berikut adalah


kodenya.
TOMBOL SIMPAN
procedure TFBarang.BtnSimpanClick(Sender: TObject);
begin
//validasi tombol simpan
IF (EdNamaBarang.Text = '') or (EdHargaBarang.Text = '')
or (EdStok.Text = '') THEN
BEGIN
ShowMessage('DATA TIDAK BOLEH KOSONG ');
EdNamaBarang.SetFocus;
Exit;
END;
//JIKA DATA BARU
IF KET = 'BARU' THEN
BEGIN
ADOCommand1.CommandText := 'INSERT INTO tbl_barang '+
'VALUES('+QuotedStr(EdKodeBarang.Text)+','+
QuotedStr(EdNamaBarang.Text)+','+
QuotedStr(EdHargaBarang.Text)+','+
QuotedStr(EdStok.Text)+')';
ADOCommand1.Execute;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 19

ShowMessage('DATA BERHASIL DISIMPAN COOY');


END
//JIKA DATA UPDATE
ELSE
BEGIN
ADOCommand1.CommandText := 'UPDATE tbl_barang set '+
'NamaBarang = '+QuotedStr(EdNamaBarang.Text)+','+
'Harga = '+QuotedStr(EdHargaBarang.Text)+','+
'Stok = '+QuotedStr(EdStok.Text)+' WHERE '+
'KodeBarang = '+QuotedStr(EdKodeBarang.Text)+'';
ADOCommand1.Execute;
ShowMessage('DATA BERHASIL DIEDIT COOY');
END;
FormActivate(Sender); //kembali ke form aktif
end;

Langkah 10: Berikut adalah kode program untuk BtnHapus.


TOMBOL HAPUS
procedure TFBarang.BtnHapusClick(Sender: TObject);
begin
//VALIDASI DATA, TIDAK BOLEH HAPUS KALAU BELUM PILIH DATA
IF EdKodeBarang.Text = '' THEN
BEGIN
ShowMessage('pilih data dulu dong cuy');
exit; //proses berhenti
END;
//pesan sebelum username menghapus data
IF MessageDlg('Yakin akan menghapus data dengan kode '+
'barang '+EdKodeBarang.Text+' ?',mtWarning,[mbYes,mbNo],0)
=MrYes THEN
BEGIN
ADOCommand1.CommandText := 'DELETE FROM tbl_barang WHERE '+
'KodeBarang ='+QuotedStr(EdKodeBarang.Text)+'';
ADOCommand1.Execute;
ShowMessage('Data sudah lenyap cuy');
END;
FormActivate(Sender); //membuat ke keadaab form aktif
end;

5. Meminimalisir Kesalahan Pada Form.


Langkah 1: Isikan kode program di PROCEDURE ATURPANEL(X:BOOLEAN), karena
diawal sebelumnya sudah membuat procedure tersebut dan belum mengisi kode
porgramya. Berikut adalah kode programanya.
procedure TFBarang.ATURPANEL(X: BOOLEAN);
begin
Panel1.Enabled := NOT X;
Panel4.Enabled := X;
Panel3.Enabled :=NOT X;
Panel2.Enabled :=X;
GroupBox1.Enabled :=X;
{ misalkan x adalah TRUE, maka NOT X = tidak true
X berarti panel aktif, dan NOT X berarti panel tidak aktif
}
end;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 20

Untuk form data barang sudah selesai, silahkan di running programnya. Apabila ada
yang masih error, kemungkinan karena kurang teliti saja. Semoga bisa diikuti langkahlangkahnya sampai selesai, selanjutnya akan membuat form data supplier. Pada modul
ini sengaja tidak dijelaskan fungsi dan maksud komponen yang digunakan, hanya
beberapa saja yang dijelaskan.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 21

Membuat Form Data Supplier Dengan Menggunakan Software


Borland Delphi 7
Target :
membuat desain form dan mengisi properties.
membuat procedure global dan var global.
mengisi semua kode program.
meminimalisir kesalahan pada form data supplier.
1. Membuat Desain Form Data Supplier.
Langkah 1: Berikut adalah tampilan desain form data supplier yang akan dibuat,
silahkan di desain sesuai dengan keinginan atau mengikuti desain ini.

Langkah 2: Masukkan beberapa komponen berikut, Komponen yang dibutuhkan berada


di tab Pallete Standard, tab Pallete Data Acces, tab Pallete Addtional dan tab Pallete ADO.
Isi semua semua propertiesnya untuk form data supplier.
Komponen
Form1 : TForm1
Panel1 : TPanel
Panel2 : TPanel
Panel3 : TPanel
Panel4 : TPanel
GroupBox1 : TGroupBox
Label1 : TLabel (Panel1)
Label2 : TLabel (Panel1)
Label3 : TLabel (Panel1)

Properties Yang Diubah


Caption
Position
Name
Caption
BevelInnter
Caption
BevelInnter
Caption
BevelInnter
Caption
BevelInnter
Caption
Caption
Caption
Caption

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Nilai Properties
.:: FORM SUPPLIER ::.
PoScreenCenter
FSupplier
bvLowered
bvLowered
bvLowered
bvLowered
.:: Pencarian Data ::.
Kode Supplier
Nama Supplier
Alamat Supplier

Page 22

Label4 : TLabel (Panel1)


Label5 : TLabel (GroupBox1)
Edit1 : TEdit (Panel1)
Edit2 : TEdit (Panel1)
Edit3 : TEdit (Panel1)
Edit4 : TEdit (Panel1)
Edit5 : TEdit (GroupBox1)
BitBtn1 : TBitBtn (Panel4)
BitBtn2 : TBitBtn (Panel4)
BitBtn3 : TBitBtn (Panel4)
BitBtn4 : TBitBtn (Panel4)
BitBtn5 : TBitBtn (Panel3)
BitBtn6 : TBitBtn (Panel3)
Button1 : TButton (Groupbox1)
ADOConnection1 :
TADOConnection
ADOQuery1 : TADOQuery

ADOCommad1 : TADOCommand
DataSource1 : TDataSource
DBGrid1 : TDBGrid

Caption
Caption
Name
Name
Name
Name
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
ConnetionString
LoginPromt
Connection
Name
SQL
Klik 2x QSupplier
Active
Connection
DataSet
Name
DataSource
Options... (dgEditing)
Options... (dbRowSelect)

Telepon Supplier
Masukkan Nama Supplier
EdKodeSupplier
EdNamaSupplier
EdAlamatSupplier
EdTeleponSupplier
EdCariSupplier
Baru
BtnBaru
Edit
BtnEdit
Hapus
BtnHapus
Keluar
BtnKeluar
Batal
BtnBatal
Simpan
BtnSimpan
<<
ODBC_TI12D
False
ADOConnection1
QSupplier
SELECT * FROM tbl_supplier
Klik kanan Add all fields
True
ADOConnection1
QSupplier
DSSupplier
DSSupplier
False
True

2. Membuat Procedure Public dan Var Global.


Langkah 1: Klik 2x di FSupplier, cari tulisan { Public declarations } isikan koding seperti
dibawah ini.
public
{ Public declarations }
PROCEDURE BERSIH;
PROCEDURE REFRESH_DB;
PROCEDURE AUTONUMBER;
PROCEDURE ATURPANEL(X:BOOLEAN);
end;

Kemudian klik 2x lagi di FSupplier, cara tulisan var isikan koding seperti berikut.
var
FSupplier: TFSupplier;
//MEMBUAT VAR GLOBAL KET, sebagai keterangan tombol
KET : STRING;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 23

Langkah 2: Pastikan kursor berada di procedure yang dibuat, kemudian tekan tombol
(shift+ctrl+c), isikan masing-masing procedure dengan kode program berikut.
PROCEDURE AUTONUMBER
procedure TFSupplier.AUTONUMBER; (jangan ikut dicopy ya)
var kode : double; //membuat var untuk menampung kodesupplier
begin
REFRESH_DB; //mengurutkan data melalui refresh db
IF QSupplier.RecordCount = 0 THEN
kode := 0001
ELSE //KONDISI, jika sudah data minimal data 1 di tbl
BEGIN
QSupplier.Last; //melihat data yang terakhir
kode := StrToFloat(COPY(QSupplierKodeSupplier.AsString,2,4));
kode := kode + 1;
END;
EdKodeSupplier.Text := 'S'+FormatFloat('0000',kode);
end;

PROCEDURE BERSIH
procedure TFSupplier.BERSIH; (jangan ikut dicopy ya)
begin
EdKodeSupplier.clear;
EdNamaSupplier.Clear;
EdAlamatSupplier.Clear;
EdTeleponSupplier.Clear;
EdCariSupplier.Clear;
end;

PROCEDURE REFRESH_DB
procedure TFSupplier.REFRESH_DB; (jangan ikut dicopy ya)
begin
//MEREFRESH DATA PADA TABEL
QSupplier.Close;
QSupplier.SQL.Clear;
QSupplier.SQL.Add('select * from tbl_supplier order by KodeSupplier');
QSupplier.Open;
end;

3. Mengisi Semua Kode Program.


Langkah 1: Pastikan sudah berada di Form Supplier, kemudian pilih Object Inspector,
pilih Event, cari tulisan OnActive, klik 2x di sebelah kanannya, maka akan muncul kode
program yang masih kosong, isikan dengan kode program dibawah ini.
FORM BARANG ON ACTIVE
procedure TFSupplier.FormActivate(Sender: TObject);(jangan ikut dicopy ya)
begin
//membuat beberapa procedure
BERSIH;
REFRESH_DB;
ATURPANEL(TRUE);
end;

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 24

Langkah 2: Mengisi kode program pada BtnBaru, caranya klik 2x BitBtn tersebut dan
copy kode berikut.
TOMBOL BARU
procedure TFSupplier.BtnBaruClick(Sender: TObject); (jangan ikut dicopy ya)
begin
ATURPANEL(FALSE);
BERSIH;
AUTONUMBER;
KET :='BARU'; //tombol ini pada saat diklik mempunyai keterangan BARU
EdNamaSupplier.SetFocus; //fokus kursor ke ednamasupplier
end;

Langkah 3: Berikut kode program untuk BtnEdit.


TOMBOL EDIT
procedure TFSupplier.BtnEditClick(Sender: TObject); (jangan ikut dicopy ya)
begin
ATURPANEL(FALSE);
KET := 'EDIT'; //keterangan tombol adalah EDIT
EdNamaSupplier.SetFocus;
end;

Langkah 4: Berikut kode program untuk BtnBatal.


TOMBOL BATAL
procedure TFSupplier.BtnBatalClick(Sender: TObject); (jangan ikut dicopy)
begin
FormActivate(Sender); //memanggil coding di form aktif
end;

Langkah 5: Jika kita klik di bagian DBGrid harus muncul kembali datanya di bagian Edit,
maka langkahnya pastikan sudah berada di DBGrid1, arahkan ke Object Inspector, pilih
Event cari tulisan OnCellClick (artinya apabila cell di klik, aksi apa yang akan dilakukan),
klik 2x di sebelah kanan OnCellClick maka akan muncul kotak isian kode program.
Isikan dengan kode berikut.
DBGRID ONCELLCLICK
procedure TFSupplier.DBGrid1CellClick(Column: TColumn); (jangan dicopy)
begin
//menampilkan data kekomponen edit melalui dbgrid
EdKodeSupplier.Text := QSupplierKodeSupplier.AsString;
EdNamaSupplier.Text := QSupplierNamaSupplier.AsString;
EdAlamatSupplier.Text := QSupplierAlamatSupplier.AsString;
EdTeleponSupplier.Text := QSupplierTeleponSupplier.AsString;
end;

Langkah 6: Berikut kode program untuk BtnKeluar (pasti sudah tahu).


TOMBOL KELUAR
procedure TFSupplier.BtnKeluarClick(Sender: TObject); (jangan dicopy)
begin
Close;
end;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 25

Langkah 7: Berikut adalah kode program untuk EdCariBarang.


EDIT CARI BARANG
procedure TFSupplier.EdCariSupplierChange(Sender: TObject); (jangan dicopy)
begin
//mencari data berdasarkan nama supplier
QSupplier.Close;
QSupplier.SQL.Clear;
QSupplier.SQL.Add('select * from tbl_supplier where '+
'NamaSupplier LIKE '+QuotedStr('%'+EdCariSupplier.Text+'%')+'');
QSupplier.Open;
end;

Langkah 8: Berikut kode program Button1.


TOMBOL HAPUS CARI BARANG
procedure TFSupplier.Button1Click(Sender: TObject); (jangan dicopy)
begin
EdCariSupplier.Clear;
EdCariSupplier.SetFocus;
end;

Langkah 9: Untuk BtnSimpan lumayan banyak kode programnya, berikut adalah


kodenya.
TOMBOL SIMPAN
procedure TFSupplier.BtnSimpanClick(Sender: TObject); (jangan dicopy)
begin
//validasi tombol simpan
IF (EdNamaSupplier.Text = '') or (EdAlamatSupplier.Text = '')
or (EdTeleponSupplier.Text = '') THEN
BEGIN
ShowMessage('DATA TIDAK BOLEH KOSONG');
EdNamaSupplier.SetFocus;
Exit;
END;
//JIKA DATA BARU
IF KET = 'BARU' THEN
BEGIN
ADOCommand1.CommandText := 'INSERT INTO tbl_supplier '+
'VALUES('+QuotedStr(EdKodeSupplier.Text)+','+
QuotedStr(EdNamaSupplier.Text)+','+
QuotedStr(EdAlamatSupplier.Text)+','+
QuotedStr(EdTeleponSupplier.Text)+')';
ADOCommand1.Execute;
ShowMessage('DATA BERHASIL DISIMPAN COY');
END
//JIKA DATA UPDATE
ELSE
BEGIN
ADOCommand1.CommandText := 'UPDATE tbl_supplier set '+
'NamaSupplier ='+QuotedStr(EdNamaSupplier.Text)+','+
'AlamatSupplier ='+QuotedStr(EdAlamatSupplier.Text)+','+
'TeleponSupplier ='+QuotedStr(EdTeleponSupplier.Text)+' WHERE '+
'KodeSupplier ='+QuotedStr(EdKodeSupplier.Text)+'';
ADOCommand1.Execute;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 26

ShowMessage('DATA BERHASIL DIEDIT COY');


END;
FormActivate(Sender); //kembali ke form aktif
end;

Langkah 10: Berikut adalah kode program untuk BtnHapus.


TOMBOL HAPUS
procedure TFSupplier.BtnHapusClick(Sender: TObject); (jangan dicopy)
begin
//VALIDASI DATA, TIDAK BOLEH HAPUS KALAU BELUM PILIH DATA
IF EdKodeSupplier.Text = '' THEN
BEGIN
ShowMessage('pilih data dulu dong cuy');
exit; //proses berhenti
END;
//pesan sebelum username menghapus data
IF MessageDlg('Yakin akan menghapus data dengan kode '+
'supplier '+EdKodeSupplier.Text+' ?',mtWarning,[mbYes,mbNo],0)
=MrYes THEN
BEGIN
ADOCommand1.CommandText := 'DELETE FROM tbl_supplier WHERE '+
'KodeSupplier ='+QuotedStr(EdKodeSupplier.Text)+'';
ADOCommand1.Execute;
ShowMessage('data sudah lenyap cuy');
END;
FormActivate(Sender); //membuat ke keadaan form aktif
end;

4. Meminimalisir Kesalahan Pada Form.


Langkah 1: Isikan kode program di PROCEDURE ATURPANEL(X:BOOLEAN), karena
diawal sebelumnya sudah membuat procedure tersebut dan belum mengisi kode
porgramya. Berikut adalah kode programanya.
procedure TFSupplier.ATURPANEL(X: BOOLEAN); (jangan dicopy)
begin
Panel1.Enabled := NOT X;
Panel4.Enabled := X;
Panel3.Enabled := NOT X;
Panel2.Enabled := X;
{ misalkan x adalah TRUE, maka NOT X = tidak true
X berarti panel aktif, dan NOT X berarti panel tidak aktif
}
end;

Untuk form data supplier sudah selesai, silahkan di running programnya. Apabila ada
yang masih error, kemungkinan karena kurang teliti saja. Semoga bisa diikuti langkahlangkahnya sampai selesai, selanjutnya akan membuat form faktur. Pada modul ini
sengaja tidak dijelaskan fungsi dan maksud komponen yang digunakan, hanya beberapa
saja yang dijelaskan.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 27

Membuat Form Faktur Dengan Menggunakan Software Borland


Delphi 7
Target :
membuat desain form dan mengisi properties.
membuat procedure global.
mengisi semua kode program.
1. Membuat Desain Form Faktur.
Langkah 1: Berikut adalah tampilan desain form faktur yang akan dibuat, silahkan di
desain sesuai dengan keinginan atau mengikuti desain ini.

Langkah 2: Masukkan beberapa komponen berikut, Komponen yang dibutuhkan berada


di tab Pallete Standard, tab Pallete Data Acces, tab Pallete Addtional, tab pallete Win32
dan tab Pallete ADO. Isi semua semua propertiesnya untuk form data supplier.
Komponen
Form1 : TForm1
Panel1 : TPanel
Panel2 : TPanel
GroupBox1 : TGroupBox

Properties Yang Diubah


Caption
Position
Name
Caption
BevelInnter
Caption
BevelInnter
Caption

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Nilai Properties
.:: FORM FAKTUR ::.
PoScreenCenter
FFaktur
bvLowered
bvLowered
.:: Data Faktur ::.

Page 28

GroupBox2 : TGroupBox
GroupBox3 : TGroupBox
GroupBox4 : TGroupBox
GroupBox5 : TGroupBox
GroupBox6 : TGroupBox
Label1 : TLabel (GroupBox1)
Label2 : TLabel (GroupBox1)
Label3 : TLabel (GroupBox1)
Label4 : TLabel (GroupBox1)
Label5 : TLabel (GroupBox2)
Label6 : TLabel (GroupBox2)
Label7 : TLabel (GroupBox3)
Label8 : TLabel (GroupBox3)
Label9 : TLabel (GroupBox3)
Label10 : TLabel (GroupBox3)
Label11 : TLabel (GroupBox3)
Label12 : TLabel (GroupBox3)
Label13 : TLabel (GroupBox3)
Label14 : TLabel (GbSupplier)
Label15 : TLabel (GbBarang)
TDateTimePicker1:
TDateTimePicker (GroupBox1)
TdateTimePicker2:
TDateTimePicker (GroupBox1)
TEdit1 : TEdit (GroupBox2)
TEdit2 : TEdit (GroupBox2)
TButton1 : TButton (GroupBox2)
TEdit3 : TEdit (GroupBox3)
TEdit4 : TEdit (GroupBox3)
TEdit5 : TEdit (GroupBox3)
TEdit6 : TEdit (GroupBox3)
TButton2 : TButton (GroupBox3)
TButton3 : TButton (GroupBox3)
TButton4 : TButton (GroupBox3)
TBitBtn1 : TBitBtn (Panel1)
TBitBtn2 : TBitBtn (Panel1)
TBitBtn3 : TBitBtn (Panel2)
TEdit7 : TEdit (GbSupplier)
TEdit8 : TEdit (GbBarang)
ADOConnection1 :
TADOConnection
ADOCommad1 : TADOCommand

Caption
Caption
Caption
Caption
Name
Caption
Name
Caption
Name
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Name
Caption
Caption
Name

.:: Data Supplier ::.


.:: Data Pembelian Barang ::.
.:: View Data Pembelian ::.
Cari Supplier
GbSupplier
Cari Barang
GbBarang
No Faktur
LblNoFaktur
Tanggal
J Tempo
Kode Supplier
Nama
Kode Barang
Nama Barang
Harga
Jumlah
Total
Rp.
LblTotal
Masukkan Nama Supplier
Masukkan Nama Barang
DtpTanggal

Name

DtpJatuhTempo

Name
Name
Caption
Name
Name
Name
Name
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Name
Name
ConnetionString
LoginPromt
Connection

EdKodeSupplier
EdNamaSupplier
...
BtnCariNamaSupplier
EdKodeBarang
EdNamaBarang
EdHarga
EdJumlah
...
BtnCariNamaBarang
+
BtnTambah
BtnKurang
Baru
BtnBaru
Keluar
BtnKeluar
Cetak Faktur
BtnCetak
EdCariNamaSupplier
EdCariNamaBarang
ODBC_TI12D
False
ADOConnection1

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 29

ADOQuery1 : TADOQuery

DataSource1 : TDataSource
DBGrid1 : TDBGrid
ADOQuery2 : TADOQuery

DataSource2 : TDataSource
DBGrid2 : TDBGrid
ADOQuery3 : TADOQuery

DataSource3 : TDataSource
DBGrid3 : TDBGrid
ADOQuery4 : TADOQuery

Connection
Name
SQL
Klik 2x QFaktur
Active
DataSet
Name
DataSource
Options... (dgEditing)
Options... (dbRowSelect)
Connection
Name
SQL
Klik 2x Barang
Active
DataSet
Name
DataSource
Options... (dgEditing)
Options... (dbRowSelect)
Connection
Name
SQL
Klik 2x QSupplier
Active
DataSet
Name
DataSource
Options... (dgEditing)
Options... (dbRowSelect)
Connection
Name

ADOConnection1
QFaktur
SELECT * FROM vdetailbeli
Klik kanan Add all fields
True
QFaktur
DsFaktur
DsFaktur
False
True
ADOConnection1
QBarang
SELECT * FROM tbl_barang
Klik kanan Add all fields
True
QBarang
DsBarang
DsBarang
False
True
ADOConnection1
QSupplier
SELECT * FROM tbl_supplier
Klik kanan Add all fields
True
QSupplier
DsSupplier
DsSupplier
False
True
ADOConnection1
Qtotal

2. Membuat Procedure Public.


Langkah 1: Klik 2x di FFaktur, cari tulisan { Public declarations } isikan koding seperti
dibawah ini.
public
{ Public declarations }
PROCEDURE BERSIH;
PROCEDURE REFRESH_DB;
PROCEDURE AUTONUMBER;
PROCEDURE REFRESH_INPUT; //kalau sudah isi data
PROCEDURE REFRESH_FAKTUR; //hanya fokus ke faktur transaksi
PROCEDURE TOTAL_BAYAR;
end;

Langkah 2: Pastikan kursor berada di procedure yang telah dibuat, kemudian tekan
tombol (shift+ctrl+c), isikan masing-masing procedure dengan kode program berikut.
PROCEDURE AUTONUMBER
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 30

procedure TFFaktur.AUTONUMBER;
var nomor : double;
BLN, THN :string;
begin
//mengambil data bulan dan tahun
BLN := FormatDateTime('MM',DtpTanggal.Date);
THN := FormatDateTime('yyyy', DtpTanggal.Date);
//refresh database
REFRESH_DB;
//kondisi untuk menentukan urutan nomor faktur
IF QFaktur.RecordCount = 0 THEN
nomor := 00001
ELSE
BEGIN
QFaktur.Last;
nomor := StrToFloat(COPY(QFakturNomorFaktur.AsString,3,5));
nomor := nomor + 1;
END;
LblNoFaktur.Caption := 'FP'+FormatFloat('00000',nomor)+
'/'+BLN+'/'+THN;
end;

PROCEDURE BERSIH
procedure TFFaktur.BERSIH;
begin
LblNoFaktur.Caption:='-';
DtpTanggal.Date:=Date;
DtpJatuhTempo.Date:=Date;
EdKodeSupplier.Clear;
EdNamaSupplier.Clear;
EdKodeBarang.Clear;
EdNamaBarang.Clear;
EdHarga.Clear;
EdJumlahBeli.Clear;
LblTotal.Caption:='-';
end;

PROCEDURE REFRESH_DB
procedure TFFaktur.REFRESH_DB;
begin
//refresh detail;
QFaktur.Close;
QFaktur.SQL.Clear;
QFaktur.SQL.Add('select * from vdetailbeli order by '+
' NomorFaktur');
QFaktur.Open;
end;

PROCEDURE REFRESH_INPUT
procedure TFFaktur.REFRESH_INPUT;
begin
REFRESH_FAKTUR;
EdKodeBarang.Clear;
EdNamaBarang.Clear;
EdHarga.Clear;
EdJumlahBeli.Clear;
EdKodeBarang.SetFocus;
end;
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 31

PROCEDURE REFRESH_FAKTUR
procedure TFFaktur.REFRESH_FAKTUR;
begin
QFaktur.Close;
QFaktur.SQL.Clear;
QFaktur.SQL.Add('select * from vdetailbeli where '+
'NomorFaktur = '+QuotedStr(LblNoFaktur.Caption)+'');
QFaktur.Open;
end;

PROCEDURE TOTAL_BAYAR
procedure TFFaktur.TOTAL_BAYAR;
begin
REFRESH_FAKTUR;
IF QFaktur.RecordCount = 0 THEN
LblTotal.Caption := '0'
ELSE
BEGIN
QTotal.Close;
QTotal.SQL.Clear;
QTotal.SQL.Add('select sum(Jumlah) as totalx from '+
' vdetailbeli where '+
'NomorFaktur = '+QuotedStr(LblNoFaktur.Caption)+'');
QTotal.Open;
LblTotal.Caption := QTotal.FieldValues['totalx'];
END;
end;

3. Mengisi Semua Kode Program.


Langkah 1: Pastikan sudah berada di Form Faktur, kemudian pilih Object Inspector, pilih
Event, cari tulisan OnActive, klik 2x di sebelah kanannya, maka akan muncul kode
program yang masih kosong, isikan dengan kode program dibawah ini.
FORM FAKTUR ONACTIVE
procedure TFFaktur.FormActivate(Sender: TObject);
begin
//membuat beberapa procedure
BERSIH;
REFRESH_DB;
//menyembunyikan groupbox pencarian data
GbSupplier.Visible := False;
GbBarang.Visible := False;
end;

Langkah 2: Mengisi kode program pada BtnKeluar, caranya klik 2x BitBtn tersebut dan
copy kode berikut.
TOMBOL KELUAR
procedure TFFaktur.BtnKeluarClick(Sender: TObject);
begin
close;
end;

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 32

Langkah 3: Mengisi kode program pada BtnBaru, caranya klik 2x BitBtn tersebut dan
copy kode berikut.
TOMBOL BARU
procedure TFFaktur.BtnBaruClick(Sender: TObject);
begin
BERSIH;
AUTONUMBER;
EdKodeSupplier.SetFocus;
end;

Langkah 4: Membuat tombol apabila diklik 2x muncul GroupBox pencarian nama


supplier, caranya klik 2x BtnCariNamaSupplier (ada di GroupBox2 dengan caption ...).
Isikan kode program berikut.
TOMBOL MASUK CARI SUPPLIER
procedure TFFaktur.BtnCariNamaSupplierClick(Sender: TObject);
begin
//kondisi jika groupbox supplier nya tidak tampil
IF GbSupplier.Visible = FALSE THEN
BEGIN
//refresh data do dbgrid supplier
QSupplier.Close;
QSupplier.SQL.Clear;
QSupplier.SQL.Add('select * from tbl_supplier');
QSupplier.Open;
GbSupplier.Visible := True; //groupbox supplier tampil
EdCariNamaSupplier.Clear; //bersih edcarisupplier
EdCariNamaSupplier.SetFocus; //fokus kursor ke edcari
END
ELSE //jika groupbox supplier sedang tampil
BEGIN
GbSupplier.Visible := False; //sembunyikan groupbox supplier
END;
end;

Langkah 5: Berikut adalah kode program untuk EdCariNamaSupplier (ada di


GbSupplier).
EDIT CARI NAMA SUPPLIER
procedure TFFaktur.EdCariNamaSupplierChange(Sender: TObject);
begin
//mencari data supplier berdasarkan nama
QSupplier.Close;
QSupplier.SQL.Clear;
QSupplier.SQL.Add('select * from tbl_supplier where '+
'NamaSupplier LIKE '+QuotedStr('%'+EdCariNamaSupplier.Text+'%')
+'');
QSupplier.Open;
end;

Langkah 6: Pastikan sudah di DBGrid3 (berada di GbSupplier), Arahkan ke Object


Inspector, pilih Event cari tulisan OnCellClick (artinya apabila cell di klik, aksi apa yang
akan dilakukan), klik 2x di sebelah kanan OnCellClick maka akan muncul kotak isian
kode program. Fungsi kode ini adalah ketika kita memilih data di DBGrid3, maka
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 33

langsung di tampilkan di EdKodeSupplier dan EdNamaSupplier, kemudian GroupBox ini


akan tersembunyi lagi.
DBGRID ONCELLCLICK SUPPLIER
procedure TFFaktur.DBGrid3CellClick(Column: TColumn);
begin
EdKodeSupplier.Text := QSupplierKodeSupplier.AsString;
EdNamaSupplier.Text := QSupplierNamaSupplier.AsString;
EdKodeBarang.SetFocus; //kursor fokus ke kode barang
GbSupplier.Visible := False; //sembunyikan groupbox supplier
end;

Langkah 7: Membuat tombol apabila diklik 2x muncul GroupBox pencarian nama


barang, caranya klik 2x BtnCariNamaBarang (ada di GroupBox3 dengan caption ...), dan
isikan kode program berikut.
TOMBOL MASUK CARI BARANG
procedure TFFaktur.BtnCariNamaBarangClick(Sender: TObject);
begin
//kondisi jika groupbox barang nya tidak tampil
IF GbBarang.Visible = FALSE THEN
BEGIN
//refresh data do dbgrid supplier
Qbarang.Close;
Qbarang.SQL.Clear;
Qbarang.SQL.Add('select * from tbl_barang');
Qbarang.Open;
GbBarang.Visible := True; //groupbox supplier tampil
EdCariNamaBarang.Clear; //bersih edcarisupplier
EdCariNamaBarang.SetFocus; //fokus kursor ke edcari
END
ELSE //jika groupbox supplier sedang tampil
BEGIN
GbBarang.Visible := False; //sembunyikan groupbox supplier
END;
end;

Langkah 8: Berikut adalah kode program untuk EdCariNamaBarang (ada di GbBarang).


EDIT CARI NAMA BARANG
procedure TFFaktur.EdCariNamaBarangChange(Sender: TObject);
begin
//mencari data supplier berdasarkan nama
Qbarang.Close;
Qbarang.SQL.Clear;
Qbarang.SQL.Add('select * from tbl_barang where '+
'NamaBarang LIKE '+QuotedStr('%'+EdCariNamaBarang.Text+'%')
+'');
Qbarang.Open;
end;

Langkah 9: Pastikan sudah di DBGrid2 (berada di GbBarang), Arahkan ke Object


Inspector, pilih Event cari tulisan OnCellClick (artinya apabila cell di klik, aksi apa yang
akan dilakukan), klik 2x di sebelah kanan OnCellClick maka akan muncul kotak isian
kode program. Fungsi kode ini adalah ketika kita memilih data di DBGrid2, maka
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 34

langsung di tampilkan di EdKodeBarang, EdNamaBarang, dan EdHarga, kemudian


GroupBox ini akan tersembunyi lagi.
DBGRID ONCELLCLICK BARANG
procedure TFFaktur.DBGrid2CellClick(Column: TColumn);
begin
EdKodeBarang.Text := QbarangKodeBarang.AsString;
EdNamaBarang.Text := QbarangNamaBarang.AsString;
EdHarga.Text := QbarangHarga.AsString;
EdJumlahBeli.SetFocus; //kursor fokus ke kode barang
GbBarang.Visible := False; //sembunyikan groupbox supplier
end;

Langkah 10: Mengisi kode program pada BtnTambah (ada di GroupBox3), fungsinya
apabila melakukan transaksi supplier boleh membeli lebih dari 1 barang. Isikan kode
berikut.
TOMBOL TAMBAH
procedure TFFaktur.BtnTambahClick(Sender: TObject);
var jumlahbayar : integer;
begin
QFaktur.Close;
QFaktur.SQL.Clear;
QFaktur.SQL.Add('select * from vdetailbeli where '+
'NomorFaktur = '+QuotedStr(LblNoFaktur.Caption)+' AND '+
'KodeBarang = '+QuotedStr(EdKodeBarang.Text)+'');
QFaktur.Open;
IF QFaktur.RecordCount = 0 THEN
BEGIN
jumlahbayar := StrToInt(EdHarga.Text)*
StrToInt(EdJumlahBeli.Text);
//proses penyimpanan
ADOCommand1.CommandText := 'INSERT INTO '+
'tbl_detailfaktur(NomorFaktur,KodeSupplier,'+
'KodeBarang,JumlahBeli,Jumlah) '+
'values('+QuotedStr(LblNoFaktur.Caption)+','+
QuotedStr(EdKodeSupplier.Text)+','+
QuotedStr(EdKodeBarang.Text)+','+
QuotedStr(EdJumlahBeli.Text)+','+
IntToStr(jumlahbayar)+')';
ADOCommand1.Execute;
END
ELSE
ShowMessage('Data Sudah Ada Sebelumnya');
REFRESH_INPUT;
TOTAL_BAYAR;
end;

Langkah 11: Mengisi kode program pada BtnKurang (ada di GroupBox3), fungsinya
apabila melakukan transaksi supplier boleh membatalkan atau menghapus barang yang
tidak jadi dibeli sebelum disimpan ke database. Isikan kode berikut.
TOMBOL KURANG
procedure TFFaktur.BtnKurangClick(Sender: TObject);
begin
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 35

ADOCommand1.CommandText := 'delete from tbl_detailfaktur '+


'where '+
'NomorFaktur = '+QuotedStr(LblNoFaktur.Caption)+' and '+
'KodeBarang = '+QuotedStr(EdKodeBarang.Text)+'';
ADOCommand1.Execute;
REFRESH_INPUT;
TOTAL_BAYAR;
end;

Langkah 12: Mengisi BtnCetakFaktur (ada di panel2), tombol ini tidak akan berfungsi
fasilitas cetaknya sebelum membuat terlebih dahulu report yang sesuai. Apabila report
sudah dibuat maka tombol cetak ini sebelum mencetak report tombol ini menyimpan
data yang diinputkan ke database. Ini adalah kode programnya.
TOMBOL CETAK FAKTUR + SIMPAN DATABASE
procedure TFFaktur.BtnCetakFakturClick(Sender: TObject);
begin
ADOCommand1.CommandText := 'INSERT INTO tbl_faktur '+
'VALUES('+QuotedStr(LblNoFaktur.Caption)+','+
QuotedStr(FormatDateTime('yyyy/MM/dd',DtpTanggal.Date))+','+
QuotedStr(FormatDateTime('yyyy/MM/dd',DtpJatuhTempo.Date))+','+
QuotedStr(LblTotal.Caption)+')';
ADOCommand1.Execute;
ShowMessage('DATA BERHASIL DISIMPAN');
//untuk mencetak faktur harus membuat form report terlebih dahulu
flaporan.QLaporan.Close;
flaporan.QLaporan.SQL.Clear;
flaporan.QLaporan.SQL.Add('select * from vfaktur where '+
'NomorFaktur = '+QuotedStr(LblNoFaktur.Caption)+'');
flaporan.QLaporan.Open;
// preview laporan
flaporan.FakturPembelian.Preview;
FormActivate(Sender);
end;

tips : khusus tombol cetak faktur + simpan database, untuk memanggil form lain maka
gunakan tombol (alt+f11) pilih form yang akan digunakan. misalnya kita berada di
FFaktur dan ingin memanggil flaporan maka gunakan tombol (alt+f11) untuk
memanggilnya. (tombol alt+f11 adalah untuk menampilkan kotak dialog use unit).
Untuk form data faktur sudah selesai, silahkan di running programnya. Apabila ada
yang masih error, kemungkinan karena kurang teliti saja. Semoga bisa diikuti langkahlangkahnya sampai selesai, selanjutnya akan membuat form untuk report. Pada modul
ini sengaja tidak dijelaskan fungsi dan maksud komponen yang digunakan, hanya
beberapa saja yang dijelaskan.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 36

Membuat Laporan Faktur Dengan Menggunakan QReport di Software


Borland Delphi 7
Target :
mengintall QReport.
membuat desain form report dan mengisi properties.
menentukan ukuran kertas dan band yang akan digunakan.
tampilan hasil desain report.
1. Menginstall QReport.
Langkan 1: Sebelum menggunakan QReport, pastikan QReport sudah terinstall di
Borland Delphi 7. Apabila belum terinstall ikut langkah-langkah berikut.
- Buka Borland Delphi 7
- Masuk menu Component
- Pilih Install Packages
- Klik Button Add
- Cari Lokasi di C:/Program File/Borland/Delphi7/Bin/
- Setelah masuk di Bin pilih file dclqrt70.bpl jangan sampai salah
- Klik open kemudian Ok.
- Apabila diikuti dengan benar maka QReport akan muncul di tab Pallete paling
akhir.
2. Membuat Desain Form Report Faktur dan Mengisi Properties.
Langkah 1: Berikut adalah tampilan desain form report faktur yang akan dibuat,
silahkan di desain sesuai dengan keinginan atau mengikuti desain ini.

Langkah 2: Masukkan beberapa komponen berikut, Komponen yang dibutuhkan berada


di tab Pallete QReport dan tab Pallete ADO. Isi semua semua propertiesnya untuk form
data report.
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 37

Komponen
Form1 : TForm1
ADOQuery1 : TADOQuery

QuickRep1 : TQuickRep
QRLabel1 (PageHeader)
QRLabel2 (PageHeader)
QRLabel3 (PageHeader)
QRLabel4 (PageHeader)
QRLabel5 (PageHeader)
QRLabel6 (PageHeader)
QRLabel7 (PageHeader)
QRLabel8 (PageHeader)
QRLabel9 (PageHeader)
QRLabel10 (PageHeader)
QRLabel11 (PageHeader)
QRLabel12 (PageHeader)
QRLabel13 (PageHeader)
QRDBText1 (PageHeader)
QRDBText2 (PageHeader)
QRDBText3 (PageHeader)
QRDBText4 (PageHeader)
QRDBText5 (PageHeader)
QRLabel14 (PageHeader)
QRLabel15 (PageHeader)
QRLabel16 (PageHeader)
QRLabel17 (PageHeader)
QRLabel18 (PageHeader)
QRLabel19 (PageHeader)
QRShape1 (PageHeader)
QRShape2 (PageHeader)
QRShape3 (PageHeader)
QRShape4 (PageHeader)
QRShape5 (PageHeader)

Properties Yang Diubah


Position
Name
ConnectionString
Name
SQL
Klik 2x QLaporan
Active
Name
DataSet
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
DataSet
DataField
AutoSize
DataSet
DataField
AutoSize
DataSet
DataField
AutoSize
DataSet
DataField
AutoSize
DataSet
DataField
AutoSize
Caption
Caption
Caption
Caption
Caption
Caption
Width
Width
Width
Width

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Nilai Properties
PoScreenCenter
FLaporan
ODBC_TI12D
QLaporan
SELECT * FROM vfaktur
Klik kanan Add all fields
True
FakturPembelian
QLaporan
FAKTUR PEMELIAN
PT TI 12 D TOPAN ANGIN BADAI
Jalan Apa Adanya Gang
Sederhana, Samping Abadi No.
10 Lampung
No Faktur
Tanggal
Jatuh Tempo
:
:
:
Kode Supplier
Nama Supplier
:
:
QFaktur
NomorFaktur
False
QFaktur
TanggalFaktur
False
QFaktur
TanggalJatuhTempo
False
QFaktur
KodeSupplier
False
QFaktur
NamaSupplier
False
No
Kode Barang
Nama Barang
Harga
Jumlah Beli
Jumlah
1
1
1
1

Page 38

QRShape6 (PageHeader)
QRSysDate1 (Detail Band)
QRDBText6 (Detail Band)
QRDBText7 (Detail Band)
QRLabel20 (Detail Band)
QRDBText8 (Detail Band)

QRDBText9 (Detail Band)


QRDBText10 (Detail Band)
QRLabel21 (Detail Band)
QRDBText11 (Detail Band)

QRShape7 (Detail Band)


QRShape8 (Detail Band)
QRShape9 (Detail Band)
QRShape10 (Detail Band)
QRShape11 (Detail Band)
QRShape12 (Detail Band)
QRLabel22 (Summary)
QRLabel23 (Summary)
QRDBText12 (Summary)

QRShape13 (Summary)
QRLabel24 (Summary)
QRLabel25 (Summary)

Width
Data
DataSet
DataField
AutoSize
DataSet
DataField
AutoSize
Caption
DataSet
DataField
Mask
AutoSize
DataSet
DataField
AutoSize
DataSet
DataField
AutoSize
Caption
DataSet
DataField
Mask
Alignment
AutoSize
Width
Width
Width
Width
Width
Caption
Caption
DataSet
DataField
Mask
Alignment
AutoSize
Caption
Caption

1
qrsDetailNo
QFaktur
KodeBarang
False
QFaktur
NamaBarang
False
Rp.
QFaktur
Harga
#,##0
False
QFaktur
JumlahBeli
False
QFaktur
NamaSupplier
False
Rp.
QFaktur
Jumlah
#,##0
taRightJustify
False
1
1
1
1
1
Total
Rp.
QFaktur
TotalFaktur
#,##0
taRightJustify
False
Kasir,
Prof. Dr. Ir. Tanpa Nama Asli,
M.Kom., M.T.I

3. Menentukan Ukuran Kertas dan Band.


Langkah 1: Setelah memasukan QuickRep1 ke dalam form Laporan, maka jangan dulu
menginputkan komponen-komponennya. Terlebih dahulu mengatur ukuran kertas dan
Band yang digunakan. Caranya klik 2x di bagian pinggir QuickRep1, apabila kurang jelas
ikut gambar berikut.
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 39

Langkah 2: Setelah klik 2x dibagian tersebut, maka akan muncul kotak dialog Report
Setting, atur sesuai dengan gambar berikut.

Langkah 3: apabila sudah sesuai dengan gambar diatas atau keinginan klik Ok.

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 40

4. Tampilan Hasil Desain Report.


Berikut adalah contoh tampilan hasil desain report dari program yang dibuat.

Semua program telah dibuat, maka selesai juga modul ini semoga bisa diikuti dari awal
desain database sampai menggunakan qreport, mohon maaf apabila ada kesalahan
dalam penulisan kata atau huruf, karena kurang telitinya pembuat modul ini. silahkan
memberikan pesan kesan setelah mengikuti modul ini. Pada modul ini sengaja tidak
dijelaskan fungsi dan maksud komponen yang digunakan, hanya beberapa saja yang
dijelaskan.
Saya adalah adalah manusia biasa, kesalahan pasti ada didalam modul ini. silahkan
inisiatif sendiri atau membenarkan kesalahan tersebut.
siapa tahu ada yang penasaran berikut adalah link download dari program pembelian
dan sudah dimodifikasi sehingga desainya lumayan menarik langsung saja menuju link
berikut, : http://www.filedais.com/hejygzxo5vpd.htm

Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri)

Page 41

Anda mungkin juga menyukai