View
10
Download
0
Category
Preview:
Citation preview
4. IMPLEMENTASI SISTEM
Pada bab ini akan dijelaskan mengenai cara mengatur database program
dan akan dijelaskan menu beserta submenunya secara detail. Untuk database
menggunakan Microsoft SQL Server 2000 dan pembuatan program dengan
menggunakan Borland Delphi 7.
4.1. Implementasi Database
Database yang digunakan dalam pembuatan sistem administrasi pada
Toko Foto Nirwana adalah Microsoft SQL Server 2000. Database yang dibuat
sesuai dengan desain database yang dibuat pada Bab 3, seperti pada Gambar 4.1.
Gambar 4.1 Tampilan Database Microsoft SQL Server 2000
4.2.Setting Koneksi Database
Untuk koneksi database program dengan menggunakan komponen
ADOConnection.
Gambar 4.2 Komponen ADO Connection
Setelah itu untuk melakukan koneksi database, pilih connection string
pada object inspector nya ADOConnection.
Gambar 4.3 Object Inspector ADOConnection
Setelah itu, pilih connection string, kemudian tekan tombol build.
Setelah itu akan muncul gambar seperti Gambar 4.4 dibawah ini. Setelah itu pilih
Microsoft OLE DB Provider for SQL Server. Jika sudah benar tekan next, akan
muncul Gambar 4.5. Pilih database yang digunakan dan tekan Test Connection
untuk memastikan database sudah bisa atau belum.
Gambar 4.4 OLE DB Provider SQL Server
Gambar 4.5 Data Link Properties
4.3.Implementasi Program
Setelah mengatur koneksi barulah user bisa menjalankan program ini.
Pada Form Main ada beberapa Menu dan juga beberapa Submenu. Pada Tabel 4.1
akan ditampilkan tiap menu dan juga submenu yang ada.
4.3.1. Menu dan Submenu
Tabel 4.1 Tabel Menu dan Submenu dari Form Main
Nama Menu Sub Menu Nama Form yang Digunakan
Master Supplier Master_Supplier
Customer Master_Customer
Pegawai Master_Pegawai
Barang Master_Barang
Barang Hasil Produksi FormMasterBrgProduksi
Mesin FormMasterMesin
Proses Produksi FormProsesProduksi
Transaksi Order Pembelian Form_Order_Pembelian
Pembelian FormPembelian
Retur Pembelian FormReturBeli
Pembayaran FormPembayaran
Penjualan FormPenjualan
Retur Penjualan FormReturPenjualan
Service Penerimaan Service FormPenerimaanService
Pengembalian Service FormPengembalianService
Pegawai Absensi FormAbsensiPegawai
Penggajian FormPenggajian
Panggilan Pemesanan Foto dan Video FormPemesananFotoVideo
Laporan Absensi FormReportAbsensiPegawai
Order Pembelian per Supplier FormReportOrderPembelian
Pembelian per Supplier FormReportPembelian
Pembelian per Barang FormReportPembelianPerBarang
Retur Pembelian per Barang FormReportReturPembelian
Penjualan per Barang FormReportPenjualanPerBarang
Hutang FormReportHutang
Pembayaran FormReportPembayaran
Pemesanan Foto Video FormReportPemesananFotoVideo
Cuci Cetak Pemesanan Cuci Cetak FormPemesananCuciCetak
Proses Proses Produksi FormProduksii
4.3.2. Nirwana
Nirwana adalah form main dari aplikasi ini.
Tabel 4.2 Daftar Procedure Form Main (Nirwana)
Nama Prosedur Fungsi Segmen
Program
procedure Msg(s: String; index: byte;
judul: String); Menampilkan pesan 4.1
procedure penggajian; Memeriksa waktu penerimaan gaji 4.2
function total_gaji (Kode_Pegawai :
string) : integer;
Menghitung total gaji pegawai beserta bonus
berdasarkan absensi 4.3
function last_day (bulan,tahun :
integer) : integer;
Menentukan jumlah hari yang ada dari setiap
bulan 4.4
function get_tanggal_awal
(tanggal_masuk : TDate) : string; Menentukan tanggal awal dari tiap bulan 4.5
function get_tanggal (tanggal : TDate)
: integer; Mengambil tanggal 4.6
function get_bulan (bulan : TDate) :
integer; Mengambil bulan 4.7
function get_tahun (tahun : TDate) :
integer; Mengambil tahun 4.8
function StringToCurrency(str:
String): String; Mengubah dari string ke mata uang 4.9
function CurrencyToString(str:
String): String; Mengubah dari mata uang ke string 4.10
Segmen program 4.1. merupakan segmen yang digunakan untuk
menampilkan message dialog.
Segmen 4.1. Procedure Msg
procedure TNirwana.Msg(s: String; index: byte; judul: String);
begin
case index of
1: suiMessageDialog1.IconType := suiInformation;
2: suiMessageDialog1.IconType := suiWarning;
Segmen 4.1. Procedure Msg (lanjutan)
3: suiMessageDialog1.IconType := suiStop;
4: suiMessageDialog1.IconType := suiNone;
end;
suiMessageDialog1.Caption := judul;
suiMessageDialog1.Text := s;
suiMessageDialog1.ShowModal;
end;
Segmen 4.2 digunakan untuk memasukkan data pegawai ke dalam
database penggajian yang hari ini gajian.
Segmen 4.2. Procedure Penggajian
procedure TNirwana.penggajian;
begin
with QueryPenggajian do begin
Close;
SQL.Clear;
SQL.Add('select * from Pegawai where flag = 0');
Open;
end;
QueryPenggajian.First;
while not QueryPenggajian.Eof do begin
with QueryCek do begin
Close;
SQL.Clear;
SQL.Add('select * from Penggajian where Kode_Pegawai = :a
and Tanggal = :b');
Parameters.ParamByName('a').Value :=
QueryPenggajian['Kode_Pegawai'];
Parameters.ParamByName('b').Value := Floor(Now);
Open;
end;
if QueryCek.RecordCount = 0 then begin
Segmen 4.2. Procedure Penggajian (lanjutan)
dlm suatu bln dan tgl masuk > hari ini)
if (get_tanggal(QueryPenggajian['Tgl_Masuk']) =
get_tanggal(Now)) or ( (get_tanggal(QueryPenggajian['Tgl_Masuk'])
> last_day(get_bulan(Now),get_tahun(Now))) and
(get_tanggal(Now)=last_day(get_bulan(Now),get_tahun(Now))))then
begin
with QueryInsertPenggajian do begin
Close;
SQL.Clear;
SQL.Add('insert into Penggajian values (:a, :b, :c,
:d)');
Parameters.ParamByName('a').Value :=
QueryPenggajian['Kode_Pegawai'];
Parameters.ParamByName('b').Value := Floor(Now);
Parameters.ParamByName('c').Value :=
total_gaji(QueryPenggajian['Kode_Pegawai']);
Parameters.ParamByName('d').Value := 'Belum Dibayar';
ExecSQL;
end;
end;
end;
QueryPenggajian.Next;
end;
end;
Segmen 4.3 digunakan untuk menghitung gaji pegawai beserta bonus
yang didapat. Penghitungan gaji ini berdasarkan absensinya.
Segmen 4.3. Function Total_Gaji function TNirwana.total_gaji(Kode_Pegawai: string): integer;
var gaji_harian, gaji_bulanan, total_absen : integer;
tanggal_masuk : TDate;
begin
Result := 0;
Segmen 4.3. Function Total_Gaji (lanjutan)
gaji_harian := 0;
gaji_bulanan := 0;
total_absen := 0;
with QueryTotalGaji do begin
Close;
SQL.Clear;
SQL.Add('Select * from Pegawai where Kode_Pegawai = :a');
Parameters.ParamByName('a').Value := Kode_Pegawai;
Open;
end;
if QueryTotalGaji.RecordCount > 0 then begin
gaji_bulanan := QueryTotalGaji['Gaji'];
gaji_harian := gaji_bulanan div 30;
tanggal_masuk := QueryTotalGaji['Tgl_Masuk'];
end;
with QueryTotalGaji do begin
Close;
SQL.Clear;
SQL.Add('Select * from Absensi_Pgw where Kode_Pegawai = :a and
Tanggal >= :b and Tanggal < :c and Status = ''Tidak Masuk'' ');
Parameters.ParamByName('a').Value := Kode_Pegawai;
Parameters.ParamByName('b').Value := get_tanggal_awal(tanggal_masuk);
Parameters.ParamByName('c').Value := Floor(Now);
Open;
end;
if QueryTotalGaji.RecordCount > 0 then begin
total_absen := QueryTotalGaji.RecordCount;
end;
if total_absen <= 3 then begin
Result := gaji_bulanan + 3*gaji_harian * (3-total_absen);
end
Segmen 4.3. Function Total_Gaji (lanjutan)
else begin
Result := gaji_bulanan - (total_absen - 3)*gaji_harian;
end;
end;
egmen 4.4 digunakan untuk menentukan jumlah hari yang ada dari
setiap bula
Segmen 4.4. Function Last_Day
nction TNirwana.last_day(bulan,tahun: integer): integer;
S
n.
fu
begin
Result := 0;
hen begin
if bulan = 2 then begin
n
lt := 28;
if bulan = 3 then begin
if bulan = 4 then begin
if bulan = 5 then begin
if bulan = 6 then begin
if bulan = 7 then begin
if bulan = 1 t
Result := 31;
end
else
if tahun div 4 = 0 then begi
Result := 29;
end
else
Resu
end
else
Result := 31;
end
else
Result := 30;
end
else
Result := 31;
end
else
Result := 30;
end
else
Segmen 4.4. Function Last_Day (lanjutan)
Result := 31;
end
else if bulan = 8 then begin
Result := 31; end
else if bulan = 9 then begin
Result := 30;
end
else if bulan = 10 then begin
Result := 31;
end
else if bulan = 11 then begin
Result := 30;
end
else if bulan = 12 then begin
Result := 31;
end;
end;
egmen 4.5 digunakan untuk menentukan tanggal awal dari setiap
bulan yang
egmen 4.5. Function Get_Tanggal_Awal
nction TNirwana.get_tanggal_awal(tanggal_masuk : TDate): string;
gal gajian umum
(get_tanggal(tanggal_masuk)) + '/' +
//skrg bln 1, bln lalu 12, tahun beda
anggal_masuk)) + '/12' + '/' +
S
digunakan untuk menghitung penggajian pegawai.
S
fu
var temp_tanggal : string;
begin
//tang
Result := IntToStr
IntToStr(get_bulan(Now)-1) + '/' + IntToStr(get_tahun(Now));
if get_bulan(Now) = 1 then begin
Result := IntToStr(get_tanggal(t
Segmen 4.5. Function Get_Tanggal_Awal (lanjutan)
IntToStr(get_tahun(Now)-1);
end;
//jika skrg tgl masuk 31, bln sblm 30
if get_tanggal(tanggal_masuk) > last_day(get_bulan(Now)-
1,get_tahun(Now)) then begin
Result := IntToStr(last_day(get_bulan(Now)-1,get_tahun(Now)))
+ '/' + IntToStr(get_bulan(Now)-1) + '/' +
IntToStr(get_tahun(Now));
end;
end;
Segmen 4.6 digunakan untuk mengambil hanya tanggalnya saja.
Segmen 4.6. Function Get_Tanggal
nction TNirwana.get_tanggal(tanggal: TDate): integer;
tanggal := DateToStr(tanggal);
oInt(Copy(temp_tanggal,1,2));
fu
var temp_tanggal : string;
begin
temp_
Result := 0;
Result := StrT
end;
Segmen 4.7 digunakan untuk mengambil hanya bulannya saja.
Segmen 4.7. Function Get_Bulan
nction TNirwana.get_bulan(bulan: TDate): integer;
bulan := DateToStr(bulan);
oInt(Copy(temp_bulan,4,2));
fu
var temp_bulan : string;
begin
temp_
Result := 0;
Result := StrT
end;
egmen 4.8 digunakan untuk mengambil hanya tahunnya saja.
Segmen 4.8. Function Get_Tahun
nction TNirwana.get_tahun(tahun: TDate): integer;
tahun := DateToStr(tahun);
oInt(Copy(temp_tahun,7,4));
S
fu
var temp_tahun : string;
begin
temp_
Result := 0;
Result := StrT
end;
Segmen 4.9 digunakan untuk mengubah string yang berupa angka
menjadi string yang berupa currency. Contohnya, jika terdapat string
‘125000750’ maka akan dirubah menjadi ‘125.000.750’.
Segmen 4.9. Function StringToCurrency
function TNirwana.StringToCurrency(str: String): String;
var i, counter: Integer;
tempResult: String;
begin
tempResult := '';
if Length(Trim(str)) > 0 then
begin
counter := 0;
for i := Length(str) downto 1 do
begin
counter := counter + 1;
if counter = 3 then
begin
tempResult := '.' + str[i] + tempResult;
counter := 0;
end
else
begin
tempResult := str[i] + tempResult;
Segmen 4.9. Function StringToCurrency (lanjutan)
end;
end;
if TempResult[1] = '.' then
begin
tempResult := Copy(tempResult,2,Length(tempResult));
end;
end;
Result := tempResult;
end;
Segmen 4.10 digunakan untuk mengubah string yang berupa currency
menjadi string yang berupa angka. Contohnya, jika terdapat string ‘125.000.750’
maka akan dirubah menjadi ‘125000750’.
Segmen 4.10. Function CurrencyToString
function TNirwana.CurrencyToString(str: String): String;
var i: Integer;
tempResult: String;
begin
tempResult := '';
if Length(Trim(str)) > 0 then
begin
for i := 1 to Length(str) do
begin
if str[i] <> '.' then
tempResult := tempResult + str[i];
end;
end;
Result := tempResult;
end;
4.3.3. Form Login
Daftar Procedure Form Login
Nama Prosedur Fungsi Segmen
Program
function valid_input : Boolean; Memeriksa username dan password benar
atau salah/
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
procedure
ButtonLoginClick(Sender:
TObject);
Menampilkan Form Main jika username dan
passwordnya benar
procedure ButtonQuitClick(Sender: Tidak jadi masuk ke dalam aplikasi
TObject);
procedure FormActivate(Sender:
TObject); Mengosongkan username dan password
procedure
EditPasswordKeyPress(Sender:
TObject; var Key: Char);
Menampilkan Form Main jika username dan
passwordnya benar
4.3.4. Form Master Supplier
Daftar Procedure Form Master Supplier
Nama Prosedur Fungsi Segmen
Program
function generate_code : string; Membuat kode supplier secara otomatis 4.11
procedure isi_kota; Memasukkan isi kota ke dalam combo box
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
function valid_input : Boolean; Memeriksa daa supplier sudah diisi dengan
benar atau tidak
procedure FormActivate(Sender:
TObject); Memanggil Button Clear
procedure ButtonClearClick(Sender:
TObject);
Mengosongkan edit text dan refresh dbgrib
master supplier
Tabel 4.4. Daftar Procedure Form Master Supplier (lanjutan)
Nama Prosedur Fungsi
Segmen
Program
procedure ButtonAddClick(Sender:
TObject);
Memasukkan data master supplier ke dalam
database 4.12
procedure ButtonGoClick(Sender:
TObject);
Mencari nama supplier jika ingin melihat,
menghapus atau mengubah
procedure
suiDBGrid1DblClick(Sender:
TObject);
Menampilkan ke dalam edit text
procedure
ButtonDeleteClick(Sender:
TObject);
Menghapus data supplier 4.13
procedure No telp tidak boleh diisi dengan huruf
EditTelpKeyPress(Sender: TObject;
var Key: Char);
Segmen 4.11 digunakan untuk membuat Kode Customer secara
otomatis.
Segmen 4.11. Function Generate_Code function TMaster_Supplier.generate_code: string;
var
temp_angka : integer;
kode : string;
begin
kode := '';
with QueryCode do begin
close;
sql.Clear;
sql.Add('select * from Supplier');
open;
end;
if QueryCode.RecordCount > 0 then begin
temp_angka := QueryCode.RecordCount + 1;if temp_angka < 10
then begin kode := 'SUP000' + IntToStr(temp_angka);
Segmen 4.11. Function Generate_Code
end
else if temp_angka < 100 then begin
kode := 'SUP00' + IntToStr(temp_angka);
end
else if temp_angka < 1000 then begin
kode := 'SUP0' + IntToStr(temp_angka);
end
else if temp_angka < 10000 then begin
kode := 'SUP' + IntToStr(temp_angka);
end;
end
else begin
kode := 'SUP0001';
end;
Result := kode;
end;
Segmen 4.12 digunakan untuk memasukkan data customer dan mengubah
data customer jika sudah ada. Sebelum dimasukkan maupun diubah terlebih
dahulu di cek sudah valid atau tidak.
Segmen 4.12. Procedure ButtonAddClick
procedure TMaster_Supplier.ButtonAddClick(Sender: TObject);
begin
if valid_input then begin
with QueryCek do begin
Close;
SQL.Clear;
SQL.Add('select * from supplier');
SQL.Add('where Kode_Supplier = :a');
Parameters.ParamByName('a').Value := Trim(EditKode.Text);
Open;
end;
//update supplier
Segmen 4.12. Procedure ButtonAddClick (lanjutan)
if QueryCek.RecordCount > 0 then begin
with QuerySupplier do begin
Close;
SQL.Clear;
SQL.Add('update supplier set Nama = :a,');
SQL.Add('Alamat = :b, Kota = :c, No_Telp = :d');
SQL.Add('where Kode_Supplier = :e');
Parameters.ParamByName('a').Value := EditNama.Text;
Parameters.ParamByName('b').Value := EditAlamat.Text;
Parameters.ParamByName('c').Value := ComboBoxKota.Text;
Parameters.ParamByName('d').Value := EditTelp.Text;
Parameters.ParamByName('e').Value := EditKode.Text;
ExecSQL;
end;
Msg('Data Sudah Dirubah',1,'Information');
ButtonClearClick(Sender);
end
else begin
//insert supplier
with QuerySupplier do begin
Close;
SQL.Clear;
SQL.Add('insert into supplier values (:a, :b, :c, :d, :e,
:f)');
Parameters.ParamByName('a').Value := EditKode.Text;
Parameters.ParamByName('b').Value := EditNama.Text;
Parameters.ParamByName('c').Value := EditAlamat.Text;
Parameters.ParamByName('d').Value := EditTelp.Text;
Parameters.ParamByName('e').Value := ComboBoxKota.Text;
Parameters.ParamByName('f').Value := 0;
ExecSQL;
end;
Msg('Data Sudah Dimasukkan',1,'Information');
ButtonClearClick(Sender);
end;
end; end;
Segmen 4.13 digunakan untuk menghapus data dari customer dengan
mengubah
Segmen 4.13. Procedure ButtonDeleteClick
ocedure TMaster_Supplier.ButtonDeleteClick(Sender: TObject);
QueryCek do begin
r;
ect * from supplier');
rim(EditKode.Text);
ryCek.RecordCount > 0 then begin
r;
flag dari 0 menjadi 1.
pr
begin
with
Close;
SQL.Clea
SQL.Add('sel
SQL.Add('where Kode_Supplier = :a');
Parameters.ParamByName('a').Value := T
Open;
end;
if Que
with QuerySupplier do begin
Close;
SQL.Clea
SQL.Add('update supplier set flag = 1');
ditKode.Text;
ata Sudah Dihapus',1,'Information');
begin
Ada Data Yang Dihapus',1,'Information');
SQL.Add('where Kode_Supplier = :a');
Parameters.ParamByName('a').Value := E
ExecSQL;
end;
Msg('D
ButtonClearClick(Sender);
end
else
Msg('Tidak
end;
end;
4.3.5. Form Master Customer
ustomer Daftar Procedure Form Master C
Nama Prosedur Fungsi Segmen
Program
function generate_code : string; customer secara otomatis Membuat kode
procedure isi_kota; Memasukkan isi kota ke dalam combo box
procedure Msg(s: String; index: Menampilkan pesan
byte; judul: String);
function valid_input : Boolean; Memeriksa data customer sudah diisi dengan
benar atau tidak
procedure FormActivate(Sender: emanggil Button Clear
TObject); M
procedure
ButtonClea
TObject);
rClick(Sender: Mengosongkan edit text dan refresh dbgrib
master customer
procedure ButtonAddClick(Sender: Memasukkan data master customer ke dalam
TObject); database
procedure ButtonGoClick(Sender: ama customer jika ingin melihat,
TObject);
Mencari n
menghapus atau mengubah
procedure
suiDBGrid
TObject);
1DblClick(Sender: Menampilkan ke dalam edit text
procedure
ButtonDele
TObject);
teClick(Sender: Menghapus data customer
procedure
EditTelpKe
TObject; var Key: Char);
yPress(Sender: No telp tidak boleh diisi dengan huruf
.3.6. Form Master Pegawai
Pegawai
4
Daftar Procedure Form Master
Nama Prosedur Fungsi Segmen
Program
function generate_code : string; Membuat kode pegawai secara otomatis
procedure isi_kota; Memasukkan isi kota ke dalam combo box
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
function valid_input : Boolean; sudah diisi
Memeriksa data pegawai
dengan benar atau tidak
procedure FormActivate(Sender:
TObject); Memanggil Button Clear
procedure
ButtonClearClick(Sender: TObject);
refresh dbgrib
Mengosongkan edit text dan
master pegawai
procedure ButtonAddClick(Sender:
TObject);
Memasukkan data master pegawai ke
dalam database
procedure ButtonGoClick(Sender: gawai jika ingin melihat,
TObject);
Mencari nama pe
menghapus atau mengubah
procedure
suiDBGrid1
TObject);
DblClick(Sender: Menampilkan ke dalam edit text
procedure
ButtonDele
TObject);
teClick(Sender: Menghapus data pegawai
procedure
EditTelpKe
var Key: Char);
yPress(Sender: TObject; No telp tidak boleh diisi dengan huruf
procedure Jumlah gaji tidak boleh diisi dengan huruf
EditGajiKe
var Key: Char);
yPress(Sender: TObject;
procedure EditGajiChange(Sender: Mengubah string menjadi mata uang
TObject);
.3.7. Form Master Barang
r Barang
4
Daftar Procedure Form Maste
Nama Prosedur Fungsi
Segmen
Program
function generate_code : string; t kode barang secara otomatis Membua
procedure ButtonClearClick(Sender: bgrib
TObject);
Mengosongkan edit text dan refresh d
master barang
procedure Msg(s: String; index: Menampilkan pesan
byte; judul: String);
function valid_input : Boolean; Memeriksa data barang sudah diisi dengan
benar atau tidak
procedure FormActivate(Sender: emanggil Button Clear
TObject); M
procedure ButtonAddClick(Sender: barang ke dalam
TObject);
Memasukkan data master
database
procedure ButtonGoClick(Sender: nama barang jika ingin melihat,
TObject);
Mencari
menghapus atau mengubah
procedure
suiDBGrid1
TObject);
DblClick(Sender: Menampilkan ke dalam edit text
procedure
ButtonDele
TObject);
teClick(Sender: Menghapus data barang
procedure
EditJumlah
TObject;
StokKeyPress(Sender: Jumlah stok tidak boleh diisi dengan huruf
procedure
ualKeyPress(Sender: Harga jual tidak boleh diisi dengan huruf EditHargaJ
TObject; var Key: Char);
4.3.8. Form Master Barang Hasil Produksi
Daftar Procedure Form Master Barang
Nama Prosedur Fungsi
Segmen
Program
function generate_code : string; Membuat kode barang secara otomatis
procedure ButtonClearClick(Sender:
TObject);
Mengosongkan edit text dan refresh dbgrib
master barang
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
function valid_input : Boolean; Memeriksa data barang sudah diisi dengan
benar atau tidak
procedure FormActivate(Sender:
TObject); Memanggil Button Clear
procedure ButtonAddClick(Sender:
TObject);
Memasukkan data master barang ke dalam
database
procedure ButtonGoClick(Sender:
TObject);
Mencari nama barang jika ingin melihat,
menghapus atau mengubah
procedure
suiDBGrid1DblClick(Sender:
TObject);
Menampilkan ke dalam edit text
procedure
ButtonDeleteClick(Sender:
TObject);
Menghapus data barang
procedure
EditJumlahStokKeyPress(Sender:
TObject;
Jumlah stok tidak boleh diisi dengan huruf
procedure
EditHargaJualKeyPress(Sender:
TObject; var Key: Char);
Harga jual tidak boleh diisi dengan huruf
4.3.9. Form Master Mesin
Daftar Procedure Form Master Mesin
Nama Prosedur Fungsi Segmen
Program
function generate_code : string; Membuat kode mesin secara otomatis
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
function valid_input : Boolean; Memeriksa data mesin sudah diisi dengan
benar atau tidak
procedure FormActivate(Sender:
TObject); Memanggil Button Clear
procedure ButtonClearClick(Sender:
TObject);
Mengosongkan edit text dan refresh dbgrib
master mesin
procedure ButtonAddClick(Sender:
TObject);
Memasukkan data master mesin ke dalam
database
procedure ButtonGoClick(Sender:
TObject);
Mencari nama mesin jika ingin melihat,
menghapus atau mengubah
procedure
suiDBGrid1DblClick(Sender:
TObject);
Menampilkan ke dalam edit text
procedure
ButtonDeleteClick(Sender:
TObject);
Menghapus data mesin
procedure
EditHargaBeliChange(Sender:
TObject);
Mengubah string ke mata uang
procedure
EditHargaBeliKeyPress(Sender:
TObject; var Key: Char);
Mengubah string ke mata uang
procedure
EditJangkaWaktuKeyPress(Sender:
TObject; var Key: Char);
Jangka waktu tidak boleh diisi dengan huruf
4.3.10. Form Master Proses Produksi
Daftar Procedure Form Master Proses Produksi
Nama Prosedur Fungsi Segmen
Program
function valid_input : boolean; Memeriksa nama mesin dan nama produksi
sudah diisi dengan benar atau tidak
function valid_input_bahan : boolean; Memeriksa data bahan dasar sudah diisi
dengan benar atau tidak
procedure Msg(s: String; index: byte;
judul: String); Menampilkan pesan
procedure
suiDBGrid1DblClick(Sender:
TObject);
Menampilkan nama barang hasil produksi
ke dalam edit text
procedure EditSearchChange(Sender:
TObject); Mencari nama barang hasil produksi
procedure FormActivate(Sender:
TObject); Menampilkan nama pada stringgrid
procedure suiButton1Click(Sender:
TObject);
Memasukkan nama produksi dan jenis
mesin apa yang digunakan
procedure
EditSearchBahanChange(Sender:
TObject);
Mencari bahan dasar
procedure
suiDBGrid2DblClick(Sender:
TObject);
Menampilkan nama bahan dasar ke dalam
edit text
procedure
ButtonAddBahanClick(Sender:
TObject);
Memasukkan bahan dasar ke dalam
stringgrid
procedure
StringGrid2SelectCell(Sender:
TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
Menghapus data yang ada di stringgrid
bahan dasar
procedure
StringGrid2KeyPress(Sender:
TObject; var Key: Char);
Menentukan kursor pada stringgrid
Daftar Procedure Form Master Proses Produksi (lanjutan)
procedure
EditJumlahBahanKeyPress(Sender:
TObject; var Key: Char);
Jumlah bahan tidak boleh diisi dengan huruf
procedure
ButtonSimpanClick(Sender:
TObject);
Menyimpan data ke dalam database
procedure ClearClick(); Mengembalikan tampilan ke keadaan
semula
4.3.11. Form Order Pembelian
Tabel 1.1. Daftar Procedure Form Order Pembelian
Nama Prosedur Fungsi
Segmen
Program
procedure FormActivate(Sender:
TObject);
Memanggil Button Clear dan menampilkan
tulisan pada stringgrid
procedure
EditSearchSupplierChange(Sender:
TObject);
Mencari data supplier
procedure
EditSearchBarangChange(Sender:
TObject);
Mencari data barang
function generate_code : string; Membuat no order pembelian secara
otomatis berdasarkan tanggal
function get_waktu( Waktu : integer
) : string;
Mengambil waktu hari ini untuk membuat
no order
procedure ButtonClearClick(Sender:
TObject); Mengembalikan tampilan seperti semula
procedure
suiDBGrid1DblClick(Sender:
TObject);
Memasukkan supplier ke dalam edit text
procedure
EditJumlahBarangKeyPress(Sender:
TObject; var Key: Char);
Jumlah barang tidak boleh diisi dengan
huruf
Tabel 4.11. Daftar Procedure Form Order Pembelian (lanjutan)
Nama Prosedur Fungsi Segmen
Program
procedure
suiDBGrid2DblClick(Sender:
TObject);
Menampilkan barang ke dalam edit text
procedure
EditHargaBarangChange(Sender:
TObject);
Harga barang tidak boleh diisi dengan huruf
function valid_input : Boolean; Memeriksa supplier sudah diisi atau belum
function valid_input_simpan :
Boolean;
Memeriksa data barang sudah diisi atau
belum
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
procedure
ButtonSimpanClick(Sender:
TObject);
Menyimpan data order pembelian ke dalam
database 4.14
function hitung_total : integer; Menghitung jumlah total order pembelian
procedure
StringGrid1KeyPress(Sender:
TObject; var Key: Char);
Menghapus data di stringgrid
procedure
StringGrid1SelectCell(Sender:
TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
Menentukan cursor dari stringgrid
Segmen 4.14 digunakan untuk memasukkan semua data order
pembelian ke dalam database order_pembelian dan detail_order_pembelian.
Sebelum dimasukkan di cek terlebih dahulu valid atau tidak.
Segmen 4.14. Procedure ButtonSimpanClick
procedure TForm_Order_Pembelian.ButtonSimpanClick(Sender:
TObject);
var i : integer;
begin
Segmen 4.14. Procedure ButtonSimpanClick (lanjutan)
if valid_input_simpan then begin
with QueryOrderPembelian do begin
Close;
SQL.Clear;
SQL.Add('Insert into Order_Pembelian values (:a, :b, :c,
:d)');
Parameters.ParamByName('a').Value := EditOrder.Text;
Parameters.ParamByName('b').Value := EditKode.Text;
Parameters.ParamByName('c').Value := Floor(Now);
Parameters.ParamByName('d').Value := 'Belum Terpenuhi';
ExecSQL;
end;
for i := 1 to jumlah_item do begin
with QueryOrderPembelian do begin
Close;
SQL.Clear;
SQL.Add('Insert into Detail_Order_Pembelian values (:a,
:b, :c, :d)');
Parameters.ParamByName('a').Value := EditOrder.Text;
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value :=
StringGrid1.Cells[3,i];
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[4,i];
ExecSQL;
end;
end;
Msg('Data Sudah Dimasukkan',1,'Information');
ButtonClearClick(Sender);
end;
end;
4.3.12. Form Pembelian
Tabel 1.2. Daftar Procedure Form Pembelian
Nama Prosedur Fungsi Segmen
Program
function generate_code : string; Membuat no nota pembelian secara otomatis
berdasarkan tanggal
function get_waktu( Waktu : integer
) : string;
Mengambil waktu hari ini untuk membuat
no nota
procedure ButtonClearClick(Sender:
TObject); Mengembalikan tampilan seperti semula
procedure FormActivate(Sender:
TObject);
Memanggil Button Clear dan menampilkan
tulisan pada stringgrid
procedure insert_order; Memasukkan no order ke dalam form
pembelian 4.15
procedure
ComboBox1Change(Sender:
TObject);
Berisi pembelian secara order atau tanpa
order
procedure
ComboBoxOrderChange(Sender:
TObject);
Berisi no order yang telah dilakukan
procedure
EditSearchSupplierChange(Sender:
TObject);
Mencari nama supplier
procedure
EditSearchBarangChange(Sender:
TObject);
Mencari nama barang
function hitung_total : integer; Untuk menghitung jumlah total pembelian
procedure
suiDBGrid1DblClick(Sender:
TObject);
Memasukkan nama supplier ke dalam edit
text
procedure
suiDBGrid2DblClick(Sender:
TObject);
Memasukkan nama barang ke dalam edit
text
function valid_input : Boolean; Memeriksa supplier sudah diisi atau belum
function valid_input_simpan :
Boolean;
Memeriksa data barang sudah diisi atau
belum
Tabel 4.12 Daftar Procedure Form Pembelian (lanjutan) function
get_kode_FIFO(Kode_Barang :
string) : string;
Memberi barang kode FIFO setiap
melakukan pembelian 4.16
procedure Msg(s: String; index: byte;
judul: String); Menampilkan pesan
procedure
ButtonSimpanClick(Sender:
TObject);
Menyimpan data pembelian ke dalam
database 4.17
procedure
EditHargaBarangKeyPress(Sender:
TObject; var Key: Char);
Harga barang tidak boleh diisi huruf
procedure
EditJumlahBarangKeyPress(Sender:
TObject; var Key: Char);
Jumlah barang tidak boleh diisi huruf
procedure
RadioButtonCashClick(Sender:
TObject);
Pembayaran cash
procedure
RadioButtonKreditClick(Sender:
TObject);
Pembayaran kredit
procedure
StringGrid1SelectCell(Sender:
TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
Menentukan cursor dari stringgrid
procedure
StringGrid1KeyPress(Sender:
TObject; var Key: Char);
Untuk menghapus data pada stringgrid
Segmen 4.15 digunakan untuk memasukkan no_order ke dalam Form
Pembelian.
Segmen 4.15. Procedure Insert_Order
procedure TFormPembelian.insert_order;
begin
ComboBoxOrder.Clear;
Segmen 4.15. Procedure Insert_Order (lanjutan)
with QueryOrder do begin
Close;
SQL.Clear;
SQL.Add('Select * from Order_Pembelian where Status = ''Belum
Terpenuhi'' ');
Open;
end;
QueryOrder.First;
while not QueryOrder.Eof do begin
ComboBoxOrder.Items.Add(QueryOrder['No_Order']);
QueryOrder.Next;
end;
ComboBoxOrder.ItemIndex := 0;
end;
Segmen 4.16 digunakan untuk memberikan setiap barang Kode_FIFO
pada setiap transaksi pembelian. Contohnya ‘BRG0001-0001’.
Segmen 4.16. Function Get_Kode_FIFO function TFormPembelian.get_kode_FIFO(Kode_Barang: string):
string;
var
temp_angka : integer;
kode : string;
begin
Result := '';
kode := '';
with QueryCode do begin
close;
sql.Clear;
sql.Add('select * from Detail_Barang where Kode_Barang = :a');
Parameters.ParamByName('a').Value := Kode_Barang;
open;
end;
Segmen 4.16. Function Get_Kode_FIFO (lanjutan)
if QueryCode.RecordCount > 0 then begin
temp_angka := QueryCode.RecordCount + 1;
if temp_angka < 10 then begin
kode := Kode_Barang + '-000' + IntToStr(temp_angka);
end
else if temp_angka < 100 then begin
kode := Kode_Barang + '-00' + IntToStr(temp_angka);
end
else if temp_angka < 1000 then begin
kode := Kode_Barang + '-0' + IntToStr(temp_angka);
end
else if temp_angka < 10000 then begin
kode := Kode_Barang + '-' + IntToStr(temp_angka);
end;
end
else begin
kode := Kode_Barang + '-0001';
end;
Result := kode;
end;
egmen 4.17 digunakan untuk memasukkan data – data pembelian.
Sebelum d
Segmen 4.17. Procedure ButtonSimpanClick lick(Sender: TObject);
integer;
ring;
lid_input_simpan then begin
do begin
r;
ert into Pembelian values (:a, :b, :c, :d,
S
imasukkan akan di cek terlebih dahulu valid atau tidak.
procedure TFormPembelian.ButtonSimpanC
var
i :
kode_FIFO : st
begin
if va
//insert pembelian
with QueryPembelian
Close;
SQL.Clea
SQL.Add('Ins
Segmen 4.17. Procedure ButtonSimpanClick (lanjutan)
:e, :f, :g, :h, :i)');
Parameters.ParamByName('a').Value := EditNota.Text;
if ComboBox1.ItemIndex = 0 then begin
Parameters.ParamByName('b').Value := ComboBoxOrder.Text;
end
else begin
Parameters.ParamByName('b').Value := '';
end;
Parameters.ParamByName('c').Value := EditKode.Text;
Parameters.ParamByName('d').Value := Floor(Now);
Parameters.ParamByName('e').Value := EditTotal.Text;
if RadioButtonCash.Checked then begin
Parameters.ParamByName('f').Value := 'Cash';
Parameters.ParamByName('g').Value :=
Floor(DateTimePicker1.Date);
Parameters.ParamByName('h').Value := 'Lunas';
end
else begin
Parameters.ParamByName('f').Value := 'Kredit';
Parameters.ParamByName('g').Value :=
Floor(DateTimePicker1.Date);
Parameters.ParamByName('h').Value := 'Belum Lunas';
end;
Parameters.ParamByName('i').Value := Floor(Now);
ExecSQL;
end;
//insert detail pembelian
for i := 1 to jumlah_item do begin
kode_FIFO := get_kode_FIFO(StringGrid1.Cells[0,i]);
with QueryPembelian do begin
Close;
SQL.Clear;
SQL.Add('Insert into Detail_Pembelian values (:a, :b, :c,
:d, :e, :f)');
Parameters.ParamByName('a').Value := EditNota.Text;
Segmen 4.17. Procedure ButtonSimpanClick (lanjutan)
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value :=
StringGrid1.Cells[3,i];
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[4,i];
Parameters.ParamByName('e').Value :=
StringGrid1.Cells[5,i];
Parameters.ParamByName('f').Value := kode_FIFO;
ExecSQL;
end;
//update stok barang
with QueryPembelian do begin
Close;
SQL.Clear;
SQL.Add('Update Barang set Jumlah_Stok = Jumlah_Stok + :a
where Kode_barang = :b');
Parameters.ParamByName('a').Value :=
StringGrid1.Cells[3,i];
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
ExecSQL;
end;
//insert detail barang
with QueryPembelian do begin
Close;
SQL.Clear;
SQL.Add('Insert into Detail_Barang values (:a, :b, :c, :d,
:e, :f)');
Parameters.ParamByName('a').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('b').Value := EditNota.Text;
Parameters.ParamByName('c').Value := Floor(Now);
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[4,i];
S
yName('e').Value :=
egmen 4.17. Procedure ButtonSimpanClick (lanjutan)
Parameters.ParamB
StringGrid1.Cells[3,i];
Parameters.ParamByName('f').Value := kode_FIFO;
ExecSQL;
end;
end;
//update status order
with QueryPembelian do begin
Close;
SQL.Clear;
SQL.Add('Update Order_Pembelian set Status = ''Terpenuhi''
where No_Order = :a');
Parameters.ParamByName('a').Value := ComboBoxOrder.Text;
ExecSQL;
end;
Msg('Data Sudah Dimasukkan',1,'Information');
ButtonClearClick(Sender);
End;
end;
4.3.13. Form Retur Pembelian
abel 1.3. Daftar Procedure Form Retur Pembelian T
Nama Prosedur Fungsi Segmen
Program
procedure B nClearClick(Sender: utto
TObject); Mengembalikan tampilan seperti semula
procedure FormActivate(Sender: gil Button Clear dan menampilkan
tulisan pada stringgrid TObject);
Memang
procedure
ComboBoxSearchChange(Sender:
TObject);
Memilih supplier mana yang akan diretur
Tabel 4.14 Daftar Procedure Form Retur Pembelian (lanjutan)
1CellClick(Column:
TColumn);
Mengeluarkan detail barang
procedure
suiDBGrid
procedure
KeyDown(Sender:
hift:
;
Mengeluarkan detail barang suiDBGrid1
TObject; var Key: Word; S
TShiftState)
procedure
suiDBGrid1KeyUp(Sender:
TObject; var Key: Word; Shift:
TShiftState);
Mengeluarkan detail barang
function generate_code : string; Membuat no nota pembelian secara otomatis
berdasarkan tanggal
function get_waktu( Waktu : integer
) : string;
Mengambil waktu hari ini untuk membuat
no nota
procedure
form jumlah retur suiDBGrid2DblClick(Sender:
TObject);
Untuk menampilkan
function detail_valid_input : ta barang sudah diisi atau
belum
boolean;
Memeriksa da
procedure Msg(s: String; i
byte; judul: Strin
ndex:
g); Menampilkan pesan
procedure
ButtonSimpanClick(Sender: e
.18
TObject);
Menyimpan data retur pembelian ke dalam
databas4
Segmen 4.18 digunakan untuk m
p sukkan ek terlebih dahulu valid atau tidak.
Segmen 4.18. Procedure ButtonSimpanClick procedure TFormReturBeli.ButtonSimpanClick(Sender: TObject);
begin
n
emasukkan data – data retur
akan di cembelian. Sebelum dima
var i : integer;
if jum_brg_yg_diretur > 0 then begi
with QueryInsert do begin
Close;
Segmen 4.18. Procedure ButtonSimpanClick (lanjutan)
SQL.Clear;
SQL.Add('Insert into Retur_Pembelian values (:a, :b, :c)');
Parameters.ParamByName('a').Value := EditNoRetur.Text;
Parameters.ParamByName('b').Value :=
Copy(ComboBoxSearch.Text,1,7);
Parameters.ParamByName('c').Value := Floor(Now);
ExecSQL;
end;
for i := 1 to jum_brg_yg_diretur do begin
with QueryInsert do begin
Close;
SQL.Clear;
SQL.Add('Insert into Detail_Retur_Pembelian values (:a,
:b, :c, :d, :e)');
Parameters.ParamByName('a').Value := EditNoRetur.Text;
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.Param yName 'c').Value := B (
StringGrid1.Cells[1,i];
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[3,i];
Parameters.ParamByName('e').Value :=
StringGrid1.Cells[4,i];
ExecSQL;
end;
end;
Msg('Barang Sudah Diretur',1,'Information');
ButtonClearClick(Sender);
end
else begin
Msg('Jumlah Yang diretur kosong',1,'Information');
end;
end;
4.3.14. Form Pembayaran
.4. Daftar Procedure Form Pembayaran Tabel 1
Nama Prosedur Fungsi
Segmen
Program
procedure ButtonClearClick(Sender:
TObject);
Mengembalikan tampilan seperti
semula
procedure
EditSearchChange(Sender:
TObject);
Mencari berdasarkan supplier
procedure
DblClick(Sender: Melakukan pembayaran 4.19 suiDBGrid1
TObject);
procedure suiButton2Click(Sender: Memanggil procedure DBGrid dblClick
TObject);
procedure FormActivate(Se
TObject);
nder: Refresh ADO Query
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
Segmen 4.19 digunakan untuk memasukkan data – data pembayaran
Segmen 4.
procedure TFormPembayaran.suiDBGrid1DblClick(Sender: TObject);
begin
then begin
with QueryBayar do begin
QL.Clear;
''Lunas'' where
rs.ParamByName('a').Value :=
yang telah dilunasi.
19. Procedure DBGrid1DblClick
if QueryPembayaran.RecordCount > 0
Close;
S
SQL.Add('Update Pembelian set Status =
No_Nota = :a');
Paramete
Segmen 4.19. Procedure DBGrid1DblClick (lanjutan)
QueryPembayaran['No_Nota'];
ExecSQL;
end;
Msg('Sudah Dibayar',1,'Information');
QueryPembayaran.Close;
QueryPembayaran.Open;
end;
end;
4.3.15. Form Penjualan
abel 1.5. Daftar Procedure Form Penjualan T
Nama Prosedur Fungsi Segmen
Program
fu e_cembelian secara otomatis
berdasarkan tanggal nction generat ode : string;
Membuat no nota p
function get_waktu( Waktu : integer ) : Mengambil waktu hari ini untuk membuat no
string; nota
procedure FormActivate(Sender:
TObject);
Memanggil buttonclear dan mengisi judul
stringgrid
procedure ButtonClearClick(Sender:
TObject); Menampilkan tampilan semula
procedure
suiDBGrid2DblClick(Sender: an nama barang ke dalam edit text
TObject);
Memasukk
procedure
EditSearch
TObject);
BarangChange(Sender: Untuk mencari barang
procedure
EditHargaB
TObject; var Key: Char);
arangKeyPress(Sender: Harga barang harus diisi dengan angka
procedure
EditJumlah
TObject; var Key: Char);
BarangKeyPress(Sender: Jumlah barang harus diisi dengan angka
Tabel 4procedure
EditHargaBarangChange(S
.16 Daftar Procedure Form Penjualan (lanjutan)
ender:
Object);
Mengubah string menjadi mata uang
T
pr alan ke dalam
database 4.20
ocedure ButtonSimpanClick(Sender: Memasukkan data penju
TObject);
procedure Menghapus data yang ada di stringgrid
StringGrid1KeyPress(Sender: TObject;
var Key: Char);
procedure
StringGrid1
TObject; ACol, ARow: Integer; var
CanSelect: Boole
SelectCell(Sender:
an);
Menentukan letak cursor
function valid_input:boolean; Memeriksa supplier sudah diisi atau belum
function valid_input_simpan : Boolean; dah diisi atau belum Memeriksa data barang su
function hitung_total:integer; Untuk menghitung jumlah total pembelian
procedure Msg(s: String; index: byte;
judul: String); Menampilkan pesan
Segmen 4.20 digunak enj lan ke
n. Sebelum dimasukkan di cek
rlebih dahulu valid atau tidak.
var i,jumlah : integer;
gin
alan
with QueryPenjualan do begin
lose;
ualan values (:a, :b, :c)');
Value := EditNota.Text;
rs.ParamByName('b').Value := Floor(Now);
an untuk memasukkan data – data p ua
dalam database penjualan dan juga detail_penjuala
te
Segmen 4.20. Procedure ButtonSimpanClick
procedure TFormPenjualan.ButtonSimpanClick(Sender: TObject);
be
if valid_input_simpan then begin
//insert master penju
C
SQL.Clear;
SQL.Add('insert into Penj
Parameters.ParamByName('a').
Paramete
Segmen 4.20. Procedure ButtonSimpanClick (lanjutan)
Parameters.ParamByName('c').Value := EditTotal.Text;
ExecSQL;
end;
//Insert Detail
for i := 1 to jumlah_item do begin
jumlah := StrToInt(StringGrid1.Cells[3,i]);
with QueryJumlahBarang do begin
Close;
SQL.Clear;
SQL.Add('Select * From Detail_Barang where Kode_Barang =
:a Order By Kode_FIFO');
Parameters.ParamByName('a').Value :=
StringGrid1.Cells[0,i];
Open;
end;
QueryJumlahBarang.First;
while jumlah <> 0 do begin
//insert detail jika jumlahbrg dr suatu nota beli >= dr
jumlah brg yg dijual
if QueryJumlahBarang['Jumlah'] >= jumlah then begin
with QueryPenjualan do begin
Close;
SQL.Clear;
SQL.Add('insert into Detail_Penjualan values(:a, :b,
:c, :d, :e, :f, :g, 0)');
Parameters.ParamByName('a').Value := EditNota.Text;
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value := jumlah;
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[4,i];
Parameters.ParamByName('e').Value := jumlah *
StrToInt(Nirwana.CurrencyToString(StringGrid1.Cells[4,i]));
Parameters.ParamByName('f').Value :=
QueryJumlahBarang['Kode_FIFO'];
if RadioButtonTidak.Checked then begin
Segmen 4.20. Procedure ButtonSimpanClick (lanjutan)
Parameters.ParamByName('g').Value := 'Tidak'
end
else begin
Parameters.ParamByName('g').Value := 'Dapat'
end;
ExecSQL;
end;
jumlah := 0;
end
else begin
//insert detail jika jumlahbrg dr suatu nota beli < dr
jumlah brg yg dijual
with QueryPenjualan do begin
Close;
SQL.Clear;
SQL.Add('insert into Detail_Penjualan values(:a, :b,
:c, :d, :e, :f, :g, 0)');
Parameters.ParamByName('a').Value := EditNota.Text;
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value :=
QueryJumlahBarang['Jumlah'];
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[4,i];
Parameters.ParamByName('e').Value :=
QueryJumlahBarang['Jumlah'] *
StrToInt(Nirwana.CurrencyToString(StringGrid1.Cells[4,i]));
Parameters.ParamByName('f').Value :=
QueryJumlahBarang['Kode_FIFO'];
if RadioButtonTidak.Checked then begin
Parameters.ParamByName('g').Value := 'Tidak'
end
else begin
Parameters.ParamByName('g').Value := 'Dapat'
end;
ExecSQL;
end;
Segmen 4.20. Procedure ButtonSimpanClick (lanjutan)
jumlah := jumlah - QueryJumlahBarang['Jumlah'];
end;
QueryJumlahBarang.Next;
end;
with QueryPenjualan do begin
Close;
SQL.Clear;
SQL.Add('update Barang set Jumlah_Stok = Jumlah_Stok - :a
where Kode_Barang = :b');
Parameters.ParamByName('a').Value :=
StringGrid1.Cells[3,i];
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
ExecSQL;
end;
end;
with QueryJumlahBarang do begin
Close;
SQL.Clear;
SQL.Add('Select * from Detail_Penjualan where No_Nota =
:a');
Parameters.ParamByName('a').Value := EditNota.Text;
Open;
end;
QueryJumlahBarang.First;
while not QueryJumlahBarang.Eof do begin
with QueryPenjualan do begin
Close;
SQL.Clear;
SQL.Add('update Detail_Barang set Jumlah = Jumlah - :a
where Kode_FIFO = :b');
Parameters.ParamByName('a').Value :=
QueryJumlahBarang['Jumlah'];
Parameters.ParamByName('b').Value :=
QueryJumlahBarang['Kode_FIFO'];
ExecSQL;
Segmen 4.20. Procedure ButtonSimpanClick (lanjutan)
end;
QueryJumlahBarang.Next;
end;
with FormNotaPenjualan do begin
ADOQuery1.Close;
ADOQuery1.Parameters.ParamByName('a').Value :=
EditNota.Text;
ADOQuery1.Open;
if ADOQuery1.RecordCount > 0 then
begin
QuickRep1.Preview;
end;
end;
ButtonClearClick(Sender);
end;
end;
4.3.16. Form Retur Penjualan
Daftar Procedure Form Retur Penjualan Tabel 1.6.
Nama Prosedur Fungsi Segmen
Program
function get_waktu( Waktu : integer ) :
string;
Mengambil waktu hari ini untuk membuat
no nota
function generate_code : string; at no nota pembelian secara Membu
otomatis berdasarkan tanggal
function detail_valid_input : boolean; umlah barang yang diretur Memeriksa j
function valid_input_simpan : boolean; Memeriksa data barang sudah diisi atau
belum
procedure Msg(s: String; index: byte;
judul: String); Menampilkan pesan
function valid_input:boolean; Memeriksa supplier sudah diisi atau belum
function hitung_total:integer; Menghitung jumlah total retur penjualan
Tabel 4.17 Daftar Procedure Form Retur Penjualan (lanjutan)
function hitung_total_retur:integer; ng
iretur
Menghitung jumlah total barang ya
d
function hitung_total_bayar:integer; Menghitung jumlah total yang harus
dibayar
procedure ButtonClearClick(Sender: balikan tampilan seperti semula
TObject); Mengem
procedure FormActivate(Sender: gil Button Clear dan menampilkan
TObject); tulisan pada
Memang
stringgrid
procedure suiDBGrid2DblClick(Sender: Menampilka form jumlah retur
TObject);
procedure StringGrid1SelectCell(Sender:
Boolean);
enentukan cursor dari stringgrid TObject; ACol, ARow: Integer; var
CanSelect:
M
procedure StringGrid1KeyPress(Sender:
TObject; var Key: Char); Menghapus data di stringgrid
procedure suiDBGrid1DblClick(Sender: Memasukkan nama barang ke dalam edit
xt
TObject); te
procedure EditHargaKeyPress(Sender:
TObject; var Key: Char); Harga harus diisi dengan angka
procedure EditHargaChange(Sender: ubah string menjadi mata uang
TObject); Meng
procedure EditJumlahKeyPress(Sender: lah harus diisi dengan angka
TObject; var Key: Char); Jum
procedure
EditSearchBarangChange(Sender:
TObject);
Mencari nama barang
procedure
StringGridTukarDenganKeyPress(S
TObject; va
ender:
r Key: Char);
nggrid Menghapus data di stri
procedure
TObject);
ButtonSimpanClick(Sender: Menyimpan data retur penjualan ke dalam 4.21
database
Segmen 4.21 digunak
penjualan. Sebelum
an untuk memasukkan data – data retur
dimasukkan akan di cek terlebih dahulu valid atau tidak.
procedure TFormReturPenjualan.ButtonSimpanClick(Sender: TObject);
var i, jumlAh:integer;
alan
h QueryInsert do begin
Segmen 4.21. Procedure ButtonSimpanClick
begin
if valid_input_simpan then begin
//insert retur penju
wit
Close;
SQL.Clear;
SQL.Add('Insert into Retur_Penjualan values (:a, :b)');
rs.ParamByName('a').Value := EditNoRetur.Text;
aramByName('b').Value := Floor(Now);
:= 1 to jum_brg_yg_diretur do begin
//update detail penjualan : jumlah retur
with QueryInsert do begin
Penjualan set Jumlah_Retur =
a where No_Nota = :b and Kode_FIFO = :c');
me('a').Value := StringGrid1.Cells[4,i];
sert do begin
e;
tail_Retur_Penjualan values (:a,
:f)');
aramByName('a').Value := EditNoRetur.Text;
Paramete
Parameters.P
ExecSQL;
end;
for i
Close;
SQL.Clear;
SQL.Add('Update Detail_
Jumlah_Retur + :
Parameters.ParamByNa
Parameters.ParamByName('b').Value := StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value := StringGrid1.Cells[2,i];
ExecSQL;
end;
//insert detail barang yg diretur
with QueryIn
Clos
SQL.Clear;
SQL.Add('insert into De
:b, :c, :d, :e,
Parameters.P
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Segmen 4.21. Procedure ButtonSimpanClick (lanjutan)
Parameters.ParamByName('c').Value :=
StringGrid1.Cells[1,i];
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[5,i];
Parameters.ParamByName('e').Value :=
StringGrid1.Cells[2,i];
Parameters.ParamByName('f').Value :=
StringGrid1.Cells[4,i];
ExecSQL;
end;
//update stok barang(bertambah) yg diretur
with QueryInsert do begin
Close;
SQL.Clear;
SQL.Add('update Barang set Jumlah_Stok = Jumlah_Stok + :a
where Kode_Barang = :b ');
Parameters.ParamByName('a').Value :=
StringGrid1.Cells[4,i];
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[1,i];
ExecSQL;
end;
//update detail_barang yg diretur (bertambah) berdasarkan
kode_FIFO
with QueryInsert do begin
Close;
SQL.Clear;
SQL.Add('Update Detail_Barang set Jumlah = Jumlah + :a
where Kode_FIFO = :b');
Parameters.ParamByName('a').Value :=
StringGrid1.Cells[4,i];
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[2,i];
ExecSQL;
end;
end;
Segmen 4.21. Procedure ButtonSimpanClick (lanjutan)
Barang set Jumlah_Stok = Jumlah_Stok - :a where SQL.Add('update
Kode_Barang = :b ');
Parameters.ParamByName('a').Value :=
StringGridTukarDengan.Cells[3,i];
Parameters.ParamByName('b').Value :=
StringGridTukarDengan.Cells[0,i];
ExecSQL;
end;
with QueryJumlahBarang do begin
Close;
SQL.Clear;
SQL.Add('Select * From Detail_Barang where Kode_Barang =
:a Order By Kode_FIFO');
Parameters.ParamByName('a').Value :=
StringGridTukarDengan.Cells[0,i];
Open;
end;
//insert ke detail penjualan seperti FormPenjualan
QueryJumlahBarang.First;
while jumlah <> 0 do begin
//insert detail jika jumlahbrg dr suatu nota beli >= dr
jumlah brg yg dijual
if QueryJumlahBarang['Jumlah'] >= jumlah then begin
with QueryInsert do begin
Close;
SQL.Clear;
SQL.Add('insert into
Detail_Retur_Penjualan_Pengembalian_Barang values(:a, :b, :c, :d,
:e)');
Parameters.ParamByName('a').Value := EditNoRetur.Text;
Parameters.ParamB := yName('b').Value
StringGridTukarDengan.Cells[0,i];
Parameters.ParamByName('c').Value := jumlah;
Segmen 4.21. Procedure ButtonSimpanClick (lanjutan)
Parameters.ParamByName('d').Value :=
StringGridTukarDengan.Cells[4,i];
Parameters.ParamByName('e').Value :=
QueryJumlahBarang['Kode_FIFO'];
ExecSQL;
end;
jumlah := 0;
end
else begin
//insert detail jika jumlahbrg dr suatu nota beli < dr
jumlah brg yg dijual
with QueryInsert do begin
Close;
SQL.Clear;
SQL.Add('insert into
Detail_Retur_Penjualan_Pengembalian_Barang values(:a, :b, :c, :d,
:e)');
Parameters.ParamByName('a').Value := EditNoRetur.Text;
Parameters.ParamByName('b').Value :=
StringGridTukarDengan.Cells[0,i];
Parameters.ParamByName('c').Value := QueryJumlahBarang['Jumlah'];
Parameters.ParamByName('d').Value :=
StringGridTukarDengan.Cells[4,i];
Parameters.ParamByName('e').Value :=
QueryJumlahBarang['Kode_FIFO'];
ExecSQL;
end;
jumlah := jumlah - QueryJumlahBarang['Jumlah'];
end;
QueryJumlahBarang.Next;
end;
//update detail barang (berkurang)
with QueryJumlahBarang do begin
Close;
SQL.Clear;
Segmen 4.21. Procedure ButtonSimpanClick (lanjutan)
'Select * from SQL.Add(
Detail_Retur_Penjualan_Pengembalian_Barang where No_Retur = :a');
Parameters.ParamByName('a').Value := EditNoRetur.Text;
Open;
end;
QueryJumlahBarang.First;
while not QueryJumlahBarang.Eof do begin
with QueryInsert do begin
Close;
SQL.Clear;
SQL.Add('update Detail_Barang set Jumlah = Jumlah - :a
where Kode_FIFO = :b');
Parameters.ParamByName('a').Value :=
QueryJumlahBarang['Jumlah'];
Parameters.ParamByName('b').Value :=
QueryJumlahBarang['Kode_FIFO'];
ExecSQL;
end;
QueryJumlahBarang.Next;
end;
end;
ButtonClearClick(Sender);
end;
end;
4.3.17. Form Penerimaan Service
abel 1.7. Daftar Procedure Form Penerimaan Service T
Nama Prosedur Fungsi Segmen
Program
procedure ButtonClearClick(Sender: balikan tampilan seperti semula
TObject); Mengem
procedure ButtonGoClick(Sender:
TObject); Mencari data customer
Tabel 4.18. Daftar Procedure Form Penerimaan Service (lanjutan)
Nama Prosedur Fungsi Segmen
Program
function get_waktu( Waktu : integer Mengambil waktu hari ini untuk membuat
ce ) : string; no servi
function generate_code : string; Membuat kode service otomatis
procedure FormActivate(Sender: l Button Clear
TObject); Memanggi
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
function valid_input : Boolean; Memeriksa data sudah diisi atau belum
procedure
ButtonSimpanClick(Sender:
TObject);
Menyimpan data service ke dalam database .22 4
procedure
suiDBGrid1DblClick(Sender:
text
TObject);
Memasukkan nama customer ke dalam edit
Segmen 4.22 digunakan untuk memasukkan data – data penerimaan
ervice. Sebelum dimasukkan akan di cek terlebih dahulu data tersebut valid atau
tidak.
n 4.22. Procedure ButtonSimpanClick
ice.ButtonSimpanClick(Sender:
bject);
input then begin
h QueryService do begin
Add('insert into Service values (:a, :b, :c, :d, :e,
rameters.ParamByName('b').Value := EditKode.Text;
s
Segme
procedure TFormPenerimaanServ
TO
begin
if valid_
wit
Close;
SQL.Clear;
SQL.
:f)');
Parameters.ParamByName('a').Value := EditService.Text;
Pa
Parameters.ParamByName('c').Value := EditBarang.Text;
Parameters.ParamByName('d').Value := Floor(Now);
Segmen 4.22. Procedure ButtonSimpanClick (lanjutan)
Parameters.ParamByName('e').Value := MemoKeterangan.Text;
Parameters.ParamByName('f').Value := 'Belum Selesai';
ExecSQL;
end;
with FormReportTandaTerimaService.ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('select S.*, C.Nama as Nama_Customer, C.Alamat as
Alamat_Customer, C.No_Telp as Telepon, C.Kota as Kota');
SQL.Add('from Customer C, Service S');
SQL.Add('where No_Service = :a');
Parameters.ParamByName('a').Value := EditService.Text;
Open;
end;
FormReportTandaTerimaService.QuickRep1.Preview;
ButtonClearClick(Sender);
end;
end;
4.3.18. Form Pengembalian Service
abel 1.8. Daftar Procedure Form Pengembalian Service T
Nama Prosedur Fungsi Segmen
Program
function vali put : Boolean; Memeriksa data sudah diisi atau bed_in lum
function valid_input_detail :
Boolean;
Memeriksa keterangan dan biaya sudah diisi
atau belum
procedure
EditBiayaKeyPress(Sender:
TObject; var Key: Char);
Biaya harus diisi dengan angka
procedure
ButtonSimp
TObject);
anClick(Sender: ata order pembelian ke dalam
database 4.23
Menyimpan d
Tabel 4.1procedure Msg(s: String;
byte; judul: Strin
9 Daftar Procedure Formindex:
g); kan pesan
Pengembalian Service (lanjutan)
Menampil
procedure ButtonClearClick(Sender:
TObject); Mengembalikan tampilan seperti semula
procedure FormActivate(Sender:
TObject); Memanggil Button Clear
procedure
suiDBGrid1DblClick(Sender: ext
TObject);
Memasukkan data service ke dalam edit t
procedure EditBiayaChange(Sender: Mengubah string menjadi mata uang
TObject);
function hitung_total : integer; Menghitung jumlah total dari service
procedure
StringGrid1SelectCell(Sender:
TObject; ACol, ARow: Integer; var
CanSelect: Boolean);
Menentukan cursor dari stringgrid
procedure
StringGrid1KeyPress(Sender:
TObject; var Key: Char);
Menghapus data di stringgrid
Segmen 4.23 digunakan untuk memasukkan data – data pengembalian
s an aka ata tersebut v lid atau
dak.
ure TFormPengembalianService.ButtonSimpanClick(Sender:
ar i : integer;
eryPengembalianService do begin
QL.Clear;
e set Status = ''Selesai'' where
Name('a').Value :=
xt; ExecSQL;
ervice. Sebelum dimasukk n di cek terlebih dahulu d a
ti
Segmen 4.23. Procedure ButtonSimpanClick proced
TObject);
v
begin
if valid_input then begin
with Qu
Close;
S
SQL.Add('update Servic
No_Service = :a');Parameters.ParamBy
EditService.Te
Segmen 4.23. Procedure ButtonSimpanClick (lanjutan)
end;
with QueryPengembalianService do begin
Close;
SQL.Clear;
SQL.Add('insert into Pengembalian_Service values (:a, :b,
:c)');
Parameters.ParamByName('a').Value := EditService.Text;
Parameters.ParamByName('b').Value := Floor(Now);
Parameters.ParamByName('c').Value :=
Nirwana.CurrencyToString(EditTotal.Text);
ExecSQL;
end;
for i := 1 to jumlah_biaya do begin
with QueryPengembalianService do begin
Close;
SQL.Clear;
SQL.Add('insert into Detail_Pengembalian_Service values
(:a, :b, :c, :d)');
Parameters.ParamByName('a').Value := EditService.Text;
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value :=
StringGrid1.Cells[1,i];
Parameters.ParamByName('d').Value :=
Nirwana.CurrencyToString(StringGrid1.Cells[2,i]);
ExecSQL;
end;
end;
QPengembalianService.Close;
QPengembalianService.Open;
with FormReportPembayaranService.ADOQuery1 do begin
Close;
SQL.Clear;
Segmen 4.23. Procedure ButtonSimpanClick (lanjutan)
_Customer SQL.Add('select S.No_Service as No_Service, S.Kode
as Kode_Customer,');
SQL.Add('C.Nama as Nama, C.Alamat as Alamat, C.Kota as Kota,
PS.Tanggal as Tanggal,');
SQL.Add('PS.Total as Total, DPS.No as No, DPS.Keterangan as
Keterangan, DPS.Harga as Harga');
SQL.Add('from Pengembalian_Service PS,
Detail_Pengembalian_Service DPS,');
SQL.Add('Customer C, Service S');
SQL.Add('where S.Kode_Customer = C.Kode_Customer and
S.No_Service = PS.No_Service');
SQL.Add('and rvice = PS.No_S and DPS.No_Se ervice
PS.No_Service = :a');
Parameters.ParamByName('a').Value := EditService.Text;
Open;
end;
FormReportPembayaranService.QuickRep1.Preview;
ButtonClearClick(Sender);
end;
end;
4.3.19. Form Absensi Pegawai
Tabel 1.9. Daftar Procedure Form Absensi Pegawai
Nama Prosedur Fungsi Segmen
Program
procedure FormActivate(Sender: Memanggil Button Clear
TObject);
procedure ButtonClearClick(Sender: Mengembalikan tampilan seperti semula
TObject);
function get_tanggal (tanggal : Mengambil tanggal
TDate) : string;
procedure
ButtonSelectAllClick(Sender:
TObject);
Memilih semua
Tabel 4.20 Daftar Procedure Formprocedure
Absensi Pegawai (lanjutan)
StringGrid1
TObject);
DblClick(Sender: Mengganti status pegawai
procedure
StringGrid1SelectCell(Sender: Menentukan cursor dari stringgrid
TObject; A
CanSelect: Boolean);
Col, ARow: Integer; var
function valid_input : Boolean; Memeriksa data sudah benar atau belum
procedure
byte; judul: String);
Msg(s: String; index: Menampilkan pesan
procedure
ButtonSimpanClick(Sender: Menyimpan data pembelian ke dalam
4.24
TObject); database
Segmen 4.24 digunakan untuk memasukkan data – data absensi
pegawai. Sebelum dimasukkan ak alid atau
tidak.
Segmen 4.24.
if valid_input then begin
lete from Absensi_Pgw where Tanggal = :a');
'a').Value := DateToStr(Now);
jumlah_pegawai do begin
('insert into Absensi_Pgw values (:a, :b,
an di cek terlebih dahulu data tersebut v
Procedure ButtonSimpanClickk procedure TFormAbsensiPegawai.ButtonSimpanClick(Sender: TObject);
var i : integer;
begin
with QueryHapus do begin
Close;
SQL.Clear;
QL.Add('de S
Parameters.ParamByName(
ExecSQL;
end;
for i := 1 to
with QAbsensiPegawai do begin
Close;
r; SQL.Clea
L.Add SQ
Segmen 4.24. Procedure ButtonSimpanClick (lanjutan)
:c)');
Parameters.ParamByName('a').Value := Floor(Now);
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value :=
StringGrid1.Cells[2,i];
ExecSQL;
end;
end;
Msg('Data Sudah Dimasukkan',1,'Information');
end;
end;
4.3.20. Form Penggajian
4.1.20.1.1.1.1.1. Daftar Procedure Form Penggajian
Nama Prosedur Fungsi Segmen
Program
procedure Form
TObject); Mengisi nama pada stringgrid
Activate(Sender:
procedure
k(Sender: ar gaji pegawai ButtonBayarClic
TObject);
Membay
procedure
suiDBGrid
TObject);
1DblClick(Sender: Membayar gaji pegawai
procedure Msg(s: String; index:
String); Menampilkan pesan
byte; judul:
.3.21. Form Pemesanan Foto Video
Daftar Procedure Form Pemesanan Foto Video
4
Tabel 1.10.
Nama Prosedur Fungsi Segmen
Program
procedure
EditSearchCu merChange(Sender: Mencari nama customer sto
TObject);
procedure
EditSearchB
TObject);
arangChange(Sender: Mencari nama barang
function generate_code : string; Membuat no pemesanan ot video secara
nggal
otomatis berdasarkan ta
procedure Msg(s: String; index:
byte; judul: Strin
g); Menampilkan pesan
function get_waktu( Waktu : integer
) : string;
Mengambil waktu hari ini untuk membuat
no pemesanan
function valid_input : Boolean; Memeriksa customer sudah diisi atau belum
function valid_input_simpan : Memeriksa data barang sudah diisi atau
Boolean; belum
function hitung_total : integer; ng jumlah total Untuk menghitu
procedure FormActivate(Sender:
TObject);
Memanggil Button Clear dan menampilkan
tulisan pada stringgrid
procedure ButtonClearClick(Sender: ula
TObject); Mengembalikan tampilan seperti sem
procedure
suiDBGrid1DblClick(Sender: ke dalam edit text
TObject);
Memasukkan customer
procedure
EditUangM
TObject);
ukaChange(Sender: Merubah string menjadi mata uang
procedure
EditHargaB
TObject);
arangChange(Sender: Merubah string menjadi mata uang
procedure
EditUangM
TObject; var Key: Char);
ukaKeyPress(Sender: Uang muka harus diisi dengan angka
Tabel 4.22 Daftar Procedure Form Pemesanan Foto Video (lanjutan)
procedure
suiDBGrid2DblClick(Sender:
TObject);
Memasukkan barang ke dalam edit text
procedure
EditJumlah
TObject; var Key: Char);
BarangKeyPress(Sender: Jumlah barang harus diisi dengan angka
procedure
ButtonSimp
TObject);
anClick(Sender: Menyimpan data pemesanan foto video ke
4.25 dalam database
procedure
EditHargaB
TObject; var Key: Char);
arangKeyPress(Sender: Harga barang harus diisi dengan angka
Segmen 4.25 digunakan untuk memasukkan data – data pemesanan
f su u data tersebut
valid
Segmen 4.25.
var i : integer;
rt pemesanan
sanan do begin
lose;
to Pemesanan_Foto_Video values (:a, :b,
rs.ParamByName('a').Value := EditNoPesanan.Text;
aramByName('b').Value := EditKodeCustomer.Text;
amByName('d').Value := EditUangMuka.Text;
oto dan video. Sebelum dima
atau tidak.
kkan akan di cek terlebih dahul
Procedure ButtonSimpanClick procedure TFormPemesananFotoVideo.ButtonSimpanClick(Sender:
TObject);
begin
if valid_input_simpan then begin
// inse
with QueryPeme
C
SQL.Clear;
SQL.Add('Insert in
:c, :d, :e, :f)');
Paramete
Parameters.P
Parameters.ParamByName('c').Value := EditLokasi.Text;
Parameters.Par
Parameters.ParamByName('e').Value :=
Segmen 4.25. Procedure ButtonSimpanClick (lanjutan)
Floor(DateTimePicker1.Date);
Parameters.ParamByName('f').Value := DateTimePicker2.Time;
ExecSQL;
end;
//insert detail pemesanan
for i := 1 to jumlah_barang do begin
with QueryPemesanan do begin
Close;
SQL.Clear;
SQL.Add('Insert into Detail_Pemesanan_Foto_Video values
(:a, :b, :c, :d)');
Parameters.ParamByName('a').Value := EditNoPesanan.Text;
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value :=
StringGrid1.Cells[3,i];
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[4,i];
ExecSQL;
end;
end;
Msg('Data Sudah Dimasukkan',1,'Information');
ButtonClearClick(Sender);
end;
end;
4.3.22. Form Pemesanan Cuci Cetak
Daftar Procedure Form Pemesanan Foto Video Tabel 1.11.
Nama Prosedur Fungsi Segmen
Program
function generate_code : string; Membuat no pemesanan otomatis
Tabel 4.23 Daftar Procedure Form esanan Foto Video (lanjutan) Pemfunction valid_input : Boolean; Memeriksa customer sudah diisi atau belum
function valid_input_simpan : isi atau
Boolean; belum
Memeriksa data barang sudah di
function get_waktu( Waktu : integer
) : string;
Mengambil waktu hari ini untuk membuat
no pemesanan
procedure ButtonClearClick(Sender: mbalikan tampilan seperti semula
TObject); Menge
procedure FormActivate(Sender: tton Clear dan menampilkan
tulisan pada stringgrid
TObject);
Memanggil Bu
procedure
EditSearchCustomerChange(Sender:
TObject);
Mencari nama customer
procedure
suiDBGrid1DblClick(Sender:
TObject);
Untuk menghitung jumlah total
procedure
EditSearchBarangChange(Sender: Mencari nama barang
TObject);
procedure
suiDBGrid2DblClick(Sender:
TObject);
Memasukkan nama baran
text
g ke dalam edit
procedure
ComboBoxUserChange(Sende
TObject);
r: Merubah status pelanggan
procedure
EditUangMukaChange(Sender:
TObject);
Merubah string menjadi mata uang
procedure
EditUangMukaKeyPress(Sender
TObject; va
:
r Key: Char);
Uang muka harus diisi dengan angka
procedure
EditJumlahBarangKeyPress(Sende
TObject; var Key: Char);
r: a Jumlah barang harus diisi dengan angk
procedure
byte; judul: String);
Msg(s: String; index: Menampilkan pesan
function hitung_total : integer; Menghitung total biaya
4.26 digunakan untuk memasukkan data – data pemesanan
cuci cetak. Sebelum valid
procedure TFormPemesananCuciCetak.ButtonSimpanClick(Sender:
r i : integer;
input_simpan then begin
sanan cuci cetak
h QueryPemesanan do begin
anan_Cuci_Cetak values (:a, :b,
, :g)');
Segmen
dimasukkan akan di cek terlebih dahulu data tersebut
atau tidak.
Segmen 4.26. Procedure ButtonSimpanClick
TObject);
va
begin
if valid_
// insert peme
wit
Close;
SQL.Clear;
SQL.Add('Insert into Pemes
:c, :d, :e, :f
Parameters.ParamByName('a').Value := EditNoPesanan.Text;
Name('c').Value := EditNamaCustomer.Text;
o jumlah_barang do begin
Parameters.ParamByName('b').Value := EditKodeCustomer.Text;
Parameters.ParamBy
Parameters.ParamByName('d').Value := Floor(Now);
Parameters.ParamByName('e').Value := DateTimePicker1.Date;
Parameters.ParamByName('f').Value :=
FormatDateTime('HH:mm',DateTimePicker2.Time);
Parameters.ParamByName('g').Value := EditUangMuka.Text;
ExecSQL;
end;
//insert detail pemesanan cuci cetak
for i := 1 t
Segmen 4.26. Procedure ButtonSimpanClick (lanjutan)
with QueryPemesanan do begin
Close;
SQL.Clear;
SQL.Add('Insert into Detail_Pemesanan_Cuci_Cetak values
(:a, :b, :c, :d)');
Parameters.ParamByName('a').Value := EditNoPesanan.Text;
Parameters.ParamByName('b').Value :=
StringGrid1.Cells[0,i];
Parameters.ParamByName('c').Value :=
StringGrid1.Cells[3,i];
Parameters.ParamByName('d').Value :=
StringGrid1.Cells[4,i];
ExecSQL
end;
end;
Msg('Data Sudah Dimasukkan',1,'Information');
ButtonClearClick(Sender);
end;
end;
4.3.23. Form Pembatalan Order Pembelian
atalan Order Pembelian Tabel 1.12. Daftar Procedure Form Pemb
Nama Prosedur Fungsi Segmen
Program
function hitung_total : integer; ung total biaya Menghit
procedure Msg(s: String; index:
byte; judul: String); Menampilkan pesan
procedure ButtonClearClick(Sender:
TObject); Mengembalikan tampilan seperti semula
procedure FormActivate(Sender:
TObject);
Memanggil Button Clear dan menampilkan
tulisan pada stringgrid
procedure ButtonSimpanClick(Sender:
TObject);
Menyimpan data pembatalan order
pembelian ke dalam database .27 4
Segmen 4.27 digunakan untuk melakukan pembatalan pad
aktu pemesanan.
a order
pembelian jika ada kesalahan pada w
an.ButtonSimpanClick(Sender:
bject);
yBatalOrderPembelian do begin
se;
'Update Order_Pembelian set Status = ''Batal'' where
dah Dimasukkan',1,'Information');
ClearClick(Sender);
Segmen 4.27. Procedure ButtonSimpanClickk
procedure TFormPembatalanOrderPembeli
TO
begin
with Quer
Clo
SQL.Clear;
SQL.Add(
No_Order = :a');
Parameters.ParamByName('a').Value := ComboBoxNoOrder.Text;
ExecSQL;
end;
Msg('Data Su
Button
end;
Universitas Kristen Petra59
Recommended