modul pbd jadi fix
DESCRIPTION
jTRANSCRIPT
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri) Page 1
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 2
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 Ukuran Keterangan
KodeBarang char 5 Primary Key NamaBarang varchar 25 Harga int 11 Stok int 11
2. Tabel Detail Faktur
Nama Field Tipe Data Ukuran Ketarangan
NomorUrut int 11 Primary Key, Auto Increment NomorFaktur char 15 KodeSupplier char 5 KodeBarang char 5 JumlahBeli int 11 Jumlah int 11
3. Tabel Faktur
Nama Field Tipe Data Ukuran Ketarangan
NomorFaktur char 15 Primary Key TanggalFaktur date TanggalJatuhTempo date TotalFaktur int 11
4. Tabel Login
Nama Field Tipe Data Ukuran Ketarangan
User varchar 10 Primary Key Password varchar 10
5. Tabel Supplier
Nama Field Tipe Data Ukuran Ketarangan
KodeSupplier char 5 Primary Key NamaSupplier varchar 25 AlamatSupplier varchar 50 TeleponSupplier varchar 14
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 3
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 4
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 5
Langkah 3: Caranya sama dengan langkah 1 & langkah 2, berikut adalah urutan langkah-langkah 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 6
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 7
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 8
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 9
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 10
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 Properties Yang Diubah Nilai Properties
Form1 : TForm1 Caption WindowState Name
Menu Utama wsMaximized FMenuUtama
ADOQuery1 : TADOQuery ConnectionString Name SQL Klik 2x QLogin Active
ODBC_TI12D QLogin SELECT * FROM tbl_login Klik kanan Add all fields True
MainMenu1 : TMainMenu Klik 2x Isi rincian berikut : Menu file
- Login
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri) Page 11
- Logout - Keluar
Menu Data - Barang - Supplier - Pembelian
GroupBox1 : TGroupBox Caption .:: Form Login ::.
Label1 : TLabel (GroupBox1) Caption Username
Label2 : TLabel (GroupBox1) Caption Password TEdit1 : TEdit (GroupBox1) Name EdUser
TEdit2 : TEdit (GroupBox1) Name PasswordChar
EdPassword * (agar karakter terbaca *)
TBitBtn1 : TBitBtn (GroupBox1) Caption Name
Login BtnLogin
TBitBtn2 : TBitBtn (GroupBox1) Caption Name
Keluar BtnKeluar
Image1 : Timage (main menu) Picture Stretch Align
Cari lokasi gambar True alClient
Image2 : Timage (Groupbox1) Picture Stretch Align
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 12
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 13
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 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 14
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 Properties Yang Diubah Nilai Properties
Form1 : TForm1 Caption Position Name
.:: FORM DATA BARANG ::. PoScreenCenter FBarang
Panel1 : TPanel Caption BevelInnter
- bvLowered
Panel2 : TPanel Caption BevelInnter
- bvLowered
Panel3 : TPanel Caption BevelInnter
- bvLowered
Panel4 : TPanel Caption BevelInnter
- bvLowered
GroupBox1 : TGroupBox Caption .:: Pencarian Data ::.
Label1 : TLabel (Panel1) Caption Kode Barang
Label2 : TLabel (Panel1) Caption Nama Barang
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri) Page 15
Label3 : TLabel (Panel1) Caption Harga
Label4 : TLabel (Panel1) Caption Stok
Label5 : TLabel (GroupBox1) Caption Masukkan Nama Barang
Edit1 : TEdit (Panel1) Name EdKodeBarang
Edit2 : TEdit (Panel1) Name EdNamaBarang
Edit3 : TEdit (Panel1) Name EdHargaBarang
Edit4 : TEdit (Panel1) Name EdStok Edit5 : TEdit (GroupBox1) Name EdCariBarang
BitBtn1 : TBitBtn (Panel4) Caption Name
Baru BtnBaru
BitBtn2 : TBitBtn (Panel4) Caption Name
Edit BtnEdit
BitBtn3 : TBitBtn (Panel4) Caption Name
Hapus BtnHapus
BitBtn4 : TBitBtn (Panel4) Caption Name
Keluar BtnKeluar
BitBtn5 : TBitBtn (Panel3) Caption Name
Batal BtnBatal
BitBtn6 : TBitBtn (Panel3) Caption Name
BtnSimpan
Button1 : TButton (Groupbox1) Caption <<
ADOConnection1 : TADOConnection
ConnetionString LoginPromt
ODBC_TI12D False
ADOQuery1 : TADOQuery Connection Name SQL Klik 2x QBarang Active
ADOConnection1 QBarang SELECT * FROM tbl_barang Klik kanan Add all fields True
ADOCommad1 : TADOCommand Connection ADOConnection1 DataSource1 : TDataSource DataSet
Name QBarang DSBarang
DBGrid1 : TDBGrid DataSource Options... (dgEditing) Options... (dbRowSelect)
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 16
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 17
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 18
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 19
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 20
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 21
Untuk form data barang sudah selesai, silahkan di running programnya. Apabila ada yang masih error, kemungkinan karena kurang teliti saja. Semoga bisa diikuti langkah-langkahnya 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 22
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 Properties Yang Diubah Nilai Properties
Form1 : TForm1 Caption Position Name
.:: FORM SUPPLIER ::. PoScreenCenter FSupplier
Panel1 : TPanel Caption BevelInnter
- bvLowered
Panel2 : TPanel Caption BevelInnter
- bvLowered
Panel3 : TPanel Caption BevelInnter
- bvLowered
Panel4 : TPanel Caption BevelInnter
- bvLowered
GroupBox1 : TGroupBox Caption .:: Pencarian Data ::.
Label1 : TLabel (Panel1) Caption Kode Supplier
Label2 : TLabel (Panel1) Caption Nama Supplier
Label3 : TLabel (Panel1) Caption Alamat Supplier
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri) Page 23
Label4 : TLabel (Panel1) Caption Telepon Supplier
Label5 : TLabel (GroupBox1) Caption Masukkan Nama Supplier
Edit1 : TEdit (Panel1) Name EdKodeSupplier
Edit2 : TEdit (Panel1) Name EdNamaSupplier
Edit3 : TEdit (Panel1) Name EdAlamatSupplier
Edit4 : TEdit (Panel1) Name EdTeleponSupplier
Edit5 : TEdit (GroupBox1) Name EdCariSupplier BitBtn1 : TBitBtn (Panel4) Caption
Name Baru BtnBaru
BitBtn2 : TBitBtn (Panel4) Caption Name
Edit BtnEdit
BitBtn3 : TBitBtn (Panel4) Caption Name
Hapus BtnHapus
BitBtn4 : TBitBtn (Panel4) Caption Name
Keluar BtnKeluar
BitBtn5 : TBitBtn (Panel3) Caption Name
Batal BtnBatal
BitBtn6 : TBitBtn (Panel3) Caption Name
Simpan BtnSimpan
Button1 : TButton (Groupbox1) Caption <<
ADOConnection1 : TADOConnection
ConnetionString LoginPromt
ODBC_TI12D False
ADOQuery1 : TADOQuery Connection Name SQL Klik 2x QSupplier Active
ADOConnection1 QSupplier SELECT * FROM tbl_supplier Klik kanan Add all fields True
ADOCommad1 : TADOCommand Connection ADOConnection1
DataSource1 : TDataSource DataSet Name
QSupplier DSSupplier
DBGrid1 : TDBGrid DataSource Options... (dgEditing) Options... (dbRowSelect)
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 24
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 25
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 26
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 27
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 langkah-
langkahnya 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 28
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 Properties Yang Diubah Nilai Properties
Form1 : TForm1 Caption Position Name
.:: FORM FAKTUR ::. PoScreenCenter FFaktur
Panel1 : TPanel Caption BevelInnter
- bvLowered
Panel2 : TPanel Caption BevelInnter
- bvLowered
GroupBox1 : TGroupBox Caption .:: Data Faktur ::.
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri) Page 29
GroupBox2 : TGroupBox Caption .:: Data Supplier ::.
GroupBox3 : TGroupBox Caption .:: Data Pembelian Barang ::.
GroupBox4 : TGroupBox Caption .:: View Data Pembelian ::.
GroupBox5 : TGroupBox Caption Name
Cari Supplier GbSupplier
GroupBox6 : TGroupBox Caption Name
Cari Barang GbBarang
Label1 : TLabel (GroupBox1) Caption No Faktur
Label2 : TLabel (GroupBox1) Name LblNoFaktur
Label3 : TLabel (GroupBox1) Caption Tanggal
Label4 : TLabel (GroupBox1) Caption J Tempo
Label5 : TLabel (GroupBox2) Caption Kode Supplier
Label6 : TLabel (GroupBox2) Caption Nama
Label7 : TLabel (GroupBox3) Caption Kode Barang Label8 : TLabel (GroupBox3) Caption Nama Barang
Label9 : TLabel (GroupBox3) Caption Harga
Label10 : TLabel (GroupBox3) Caption Jumlah
Label11 : TLabel (GroupBox3) Caption Total
Label12 : TLabel (GroupBox3) Caption Rp.
Label13 : TLabel (GroupBox3) Name LblTotal
Label14 : TLabel (GbSupplier) Caption Masukkan Nama Supplier
Label15 : TLabel (GbBarang) Caption Masukkan Nama Barang
TDateTimePicker1: TDateTimePicker (GroupBox1)
Name DtpTanggal
TdateTimePicker2: TDateTimePicker (GroupBox1)
Name DtpJatuhTempo
TEdit1 : TEdit (GroupBox2) Name EdKodeSupplier
TEdit2 : TEdit (GroupBox2) Name EdNamaSupplier
TButton1 : TButton (GroupBox2) Caption Name
... BtnCariNamaSupplier
TEdit3 : TEdit (GroupBox3) Name EdKodeBarang
TEdit4 : TEdit (GroupBox3) Name EdNamaBarang
TEdit5 : TEdit (GroupBox3) Name EdHarga
TEdit6 : TEdit (GroupBox3) Name EdJumlah
TButton2 : TButton (GroupBox3) Caption Name
... BtnCariNamaBarang
TButton3 : TButton (GroupBox3) Caption Name
+ BtnTambah
TButton4 : TButton (GroupBox3) Caption Name
- BtnKurang
TBitBtn1 : TBitBtn (Panel1) Caption Name
Baru BtnBaru
TBitBtn2 : TBitBtn (Panel1) Caption Name
Keluar BtnKeluar
TBitBtn3 : TBitBtn (Panel2) Caption Name
Cetak Faktur BtnCetak
TEdit7 : TEdit (GbSupplier) Name EdCariNamaSupplier
TEdit8 : TEdit (GbBarang) Name EdCariNamaBarang
ADOConnection1 : TADOConnection
ConnetionString LoginPromt
ODBC_TI12D False
ADOCommad1 : TADOCommand Connection ADOConnection1
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri) Page 30
ADOQuery1 : TADOQuery Connection Name SQL Klik 2x QFaktur Active
ADOConnection1 QFaktur SELECT * FROM vdetailbeli Klik kanan Add all fields True
DataSource1 : TDataSource DataSet Name
QFaktur DsFaktur
DBGrid1 : TDBGrid DataSource Options... (dgEditing) Options... (dbRowSelect)
DsFaktur False True
ADOQuery2 : TADOQuery Connection Name SQL Klik 2x Barang Active
ADOConnection1 QBarang SELECT * FROM tbl_barang Klik kanan Add all fields True
DataSource2 : TDataSource DataSet Name
QBarang DsBarang
DBGrid2 : TDBGrid DataSource Options... (dgEditing) Options... (dbRowSelect)
DsBarang False True
ADOQuery3 : TADOQuery Connection Name SQL Klik 2x QSupplier Active
ADOConnection1 QSupplier SELECT * FROM tbl_supplier Klik kanan Add all fields True
DataSource3 : TDataSource DataSet Name
QSupplier DsSupplier
DBGrid3 : TDBGrid DataSource Options... (dgEditing) Options... (dbRowSelect)
DsSupplier False True
ADOQuery4 : TADOQuery Connection Name
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 31
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 32
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 33
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 34
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 35
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 36
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 langkah-langkahnya 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 37
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 38
Komponen Properties Yang Diubah Nilai Properties
Form1 : TForm1 Position Name
PoScreenCenter FLaporan
ADOQuery1 : TADOQuery ConnectionString Name SQL Klik 2x QLaporan Active
ODBC_TI12D QLaporan SELECT * FROM vfaktur Klik kanan Add all fields True
QuickRep1 : TQuickRep Name DataSet
FakturPembelian QLaporan
QRLabel1 (PageHeader) Caption FAKTUR PEMELIAN
QRLabel2 (PageHeader) Caption PT TI 12 D TOPAN ANGIN BADAI
QRLabel3 (PageHeader) Caption Jalan Apa Adanya Gang Sederhana, Samping Abadi No. 10 Lampung
QRLabel4 (PageHeader) Caption No Faktur
QRLabel5 (PageHeader) Caption Tanggal
QRLabel6 (PageHeader) Caption Jatuh Tempo
QRLabel7 (PageHeader) Caption :
QRLabel8 (PageHeader) Caption :
QRLabel9 (PageHeader) Caption :
QRLabel10 (PageHeader) Caption Kode Supplier
QRLabel11 (PageHeader) Caption Nama Supplier
QRLabel12 (PageHeader) Caption : QRLabel13 (PageHeader) Caption :
QRDBText1 (PageHeader) DataSet DataField AutoSize
QFaktur NomorFaktur False
QRDBText2 (PageHeader) DataSet DataField AutoSize
QFaktur TanggalFaktur False
QRDBText3 (PageHeader) DataSet DataField AutoSize
QFaktur TanggalJatuhTempo False
QRDBText4 (PageHeader) DataSet DataField AutoSize
QFaktur KodeSupplier False
QRDBText5 (PageHeader) DataSet DataField AutoSize
QFaktur NamaSupplier False
QRLabel14 (PageHeader) Caption No
QRLabel15 (PageHeader) Caption Kode Barang
QRLabel16 (PageHeader) Caption Nama Barang
QRLabel17 (PageHeader) Caption Harga
QRLabel18 (PageHeader) Caption Jumlah Beli
QRLabel19 (PageHeader) Caption Jumlah
QRShape1 (PageHeader) - - QRShape2 (PageHeader) Width 1
QRShape3 (PageHeader) Width 1
QRShape4 (PageHeader) Width 1
QRShape5 (PageHeader) Width 1
Modul Delphi 7 Aplikasi Penjualan Sederhana (By. Supiyan Sauri) Page 39
QRShape6 (PageHeader) Width 1
QRSysDate1 (Detail Band) Data qrsDetailNo
QRDBText6 (Detail Band) DataSet DataField AutoSize
QFaktur KodeBarang False
QRDBText7 (Detail Band) DataSet DataField AutoSize
QFaktur NamaBarang False
QRLabel20 (Detail Band) Caption Rp.
QRDBText8 (Detail Band) DataSet DataField Mask AutoSize
QFaktur Harga #,##0 False
QRDBText9 (Detail Band) DataSet DataField AutoSize
QFaktur JumlahBeli False
QRDBText10 (Detail Band) DataSet DataField AutoSize
QFaktur NamaSupplier False
QRLabel21 (Detail Band) Caption Rp.
QRDBText11 (Detail Band) DataSet DataField Mask Alignment AutoSize
QFaktur Jumlah #,##0 taRightJustify False
QRShape7 (Detail Band) - -
QRShape8 (Detail Band) Width 1
QRShape9 (Detail Band) Width 1
QRShape10 (Detail Band) Width 1
QRShape11 (Detail Band) Width 1
QRShape12 (Detail Band) Width 1
QRLabel22 (Summary) Caption Total QRLabel23 (Summary) Caption Rp.
QRDBText12 (Summary) DataSet DataField Mask Alignment AutoSize
QFaktur TotalFaktur #,##0 taRightJustify False
QRShape13 (Summary) - -
QRLabel24 (Summary) Caption Kasir,
QRLabel25 (Summary) Caption 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 40
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 41
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