modul pbd jadi fix

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

Upload: danie-wira

Post on 14-Dec-2015

43 views

Category:

Documents


1 download

DESCRIPTION

j

TRANSCRIPT

Page 1: Modul Pbd Jadi Fix

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

Page 2: Modul Pbd Jadi Fix

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.

Page 3: Modul Pbd Jadi Fix

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.

Page 4: Modul Pbd Jadi Fix

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.

Page 5: Modul Pbd Jadi Fix

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));

Page 6: Modul Pbd Jadi Fix

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.

Page 7: Modul Pbd Jadi Fix

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.

Page 8: Modul Pbd Jadi Fix

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.

Page 9: Modul Pbd Jadi Fix

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.

Page 10: Modul Pbd Jadi Fix

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.

Page 11: Modul Pbd Jadi Fix

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

Page 12: Modul Pbd Jadi Fix

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;

Page 13: Modul Pbd Jadi Fix

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;

Page 14: Modul Pbd Jadi Fix

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.

Page 15: Modul Pbd Jadi Fix

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

Page 16: Modul Pbd Jadi Fix

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;

Page 17: Modul Pbd Jadi Fix

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.

Page 18: Modul Pbd Jadi Fix

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.

Page 19: Modul Pbd Jadi Fix

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;

Page 20: Modul Pbd Jadi Fix

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;

Page 21: Modul Pbd Jadi Fix

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;

Page 22: Modul Pbd Jadi Fix

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.

Page 23: Modul Pbd Jadi Fix

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

Page 24: Modul Pbd Jadi Fix

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;

Page 25: Modul Pbd Jadi Fix

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;

Page 26: Modul Pbd Jadi Fix

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;

Page 27: Modul Pbd Jadi Fix

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;

Page 28: Modul Pbd Jadi Fix

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.

Page 29: Modul Pbd Jadi Fix

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 ::.

Page 30: Modul Pbd Jadi Fix

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

Page 31: Modul Pbd Jadi Fix

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

Page 32: Modul Pbd Jadi Fix

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;

Page 33: Modul Pbd Jadi Fix

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;

Page 34: Modul Pbd Jadi Fix

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

Page 35: Modul Pbd Jadi Fix

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

Page 36: Modul Pbd Jadi Fix

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

Page 37: Modul Pbd Jadi Fix

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.

Page 38: Modul Pbd Jadi Fix

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.

Page 39: Modul Pbd Jadi Fix

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

Page 40: Modul Pbd Jadi Fix

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.

Page 41: Modul Pbd Jadi Fix

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.

Page 42: Modul Pbd Jadi Fix

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