0
TUGAS MANDIRI
Sistem Informasi Penjualan Barang pada Apotek M-23
Mata Kuliah: Pemrograman Borland Delphi Versi 7.0
Disusun Oleh:
Nama
: FITRI GULTOM
NPM
: 093130030
Kode Kelas
: 111-IF37P-M2
DOSEN
:
Sasa
STMIK PUTERA BATAM
DAFTAR ISI
HALAMAN JUDUL
DAFTAR ISI ...1
KATA PENGANTAR...2
BAB I PENDAHULUAN ...3
1.1 Latar Belakang masalah...3
1.1.1 Sekilas Mengenai Borland Delphi 7.0...3
1.1.2 Sekilas Tentang Microsoft Access...4
1.2 Rumusan Masalah...4
1.3 Tujuan Penulis...4
BAB II. PEMBAHASAN...5
2.1 Listing Program Penjualan Barang Pada Apotek………... 5
33
3.1 Kesimpulan………...33
2
KATA PENGANTAR
Puji syukur kepada hadirat Tuhan Yang Maha Esa, karena dengan rahmat
dan karuniaNya penulis dapat menyelesaikan makalah ini. Tujuan penulisan
makalah ini adalah untuk menambah pengetahuan dalam pembelajaran mata
kuliah PEMROGRAMAN BORLAND DELPHI VERSI 7.0.
Penulis mengharapkan tugas ini dapat memberikan pengalaman yang berguna
baik bagi pembaca, yang tentunya akan menambah ilmu dan wawasan berfikir
mahasiswa. Terima kasih pada pihak-pihak yang membantu penyusunan makalah ini
semoga makalah ini dapat berguna bagi mahasiswa khususnya, maupun bagi
masyarakat pada umumnya.
Penulis menyadari bahwa makalah ini masih jauh dari sempurna, oleh
karena itu kritik dan saran dari semua pihak yang bersifat membangun selalu kami
harapkan demi kesempurnaan penulisan selanjutnya.
Penulis, 5 Januari 2012
BAB I
PENDAHULUAN
1. 1. Latar Belakang masalah
1.1.1 Sekilas Mengenai Borlan Delphi 7.0
Delphi adalah sebuah bahasa pemrograman dan lingkungan
pengembangan perangkat lunak. Borland delphi 7.0 merupakan pilihan bagi
sebagian kalangan programmer untuk membuat aplikasi. Hal ini disebabkan
kelebihan yang ada pada borland delphi 7.0 berikut ini beberapa kelebihan
borlan delphi 7.0 antara lain :
1. Berbasis Objek Orientid programming, seperti bagian yang ada pada
program dipandang sebagai suatu objek yang mempunyai sifat-sifat
yang dapat diubah dan diatur , sehingga kita dapat membuat tampilan
sebuah program dengan desain kita sendiri tanpa harus membuat
codding yang panjang.
2. Borland delphi 7.0 hadir bersama borland Kylix 3 yang berbasis Linux,
bila ingin berganti flattform dari Windows ke Linux maka aplikasi yang
dibuat di Delphi dapat dijalankan di Kylix 3 yang dikarenakan kedua
produk tersebut merupakan produk Borland.
4
Microsoft Access merupakan salah satu aplikasi berbasis
database yang cukup populer dan paling banyak digunakan serta
memiliki kehandalan dalam menunjang kemampuan kerja komputer
khususnya bidang pengolahan data.
Database yang disusun dalam Access terdiri dari beberapa
komponen yang membentuk suatu kesatuan sistem yaitu : Table,
Query, Form, Report, Macro dan Module. GRA[3]. Untuk memulai
atau menjalankan program aplikasi Microsoft Access,
langkah-langkahnya adalah sebagai berikut :
1.
Klik tombol
Start
yang ada di taskbar
2.
Pilih menu
Program
3.
Kemudian pilih
Microsoft Office
4.
Pilih dan klik
Microsoft Access.
1. 2 Rumusan Masalah
1. Merancang sebuah program dengan menggunakan database Microsoft
Access 2007.
2. Membuat kesimpulan Dan Saran dari sebuah Program tersebut.
a.
3 Tujuan Penulisan
1. Merancang sebuah Program sebagai salah satu untuk menyelesaikan tugas
mandiri bagi penulis.
2. Meningkatkan Ilmu penulis dalam Pembelajaran Pemrograman Delphi
BAB II
2.1. Listing Program Penjualan Barang Pada Apotek
a. Form Login
procedure TF_login.btn_loginClick(Sender: TObject);
begin
with ADOQuery1 do begin
Close;
SQL.Clear; // bersihkan perintah sql jika ada
SQL.Add('select * from login where username='+QuotedStr(edusername.Text));
Open;
end; // end with
// jika tidak ditemukan data yang dicari maka
// tampilkan pesan
if ADOQuery1.RecordCount = 0 then
Application.MessageBox('Maap, username tersebut tidak ada', 'Informasi',
MB_OK or MB_ICONINFORMATION)
else begin
if ADOQuery1.FieldByName('password').AsString <> edpassword.Text
then Application.MessageBox('Pastikan username atau password benar', 'Error',
6
else begin
Hide;
F_utama.Show;
end
end;
end;
procedure TF_login.btn_cancelClick(Sender: TObject);
begin
application.terminate;
end;
b. Form Utama
procedure TF_supplayer.btn_keluarClick(Sender: TObject);
begin
hide;
end;
procedure TF_supplayer.FormCreate(Sender: TObject);
begin
ADOTable1.TableName := 'tbl_supplayer';
ADOTable1.Open;
end;
procedure TF_supplayer.btn_tambahClick(Sender: TObject);
begin
f_tambah_supplayer.showmodal;
end;
procedure TF_supplayer.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
begin
end;
8
procedure TF_tambah_pelanggan.btn_batalClick(Sender: TObject);
begin
close;
end;
procedure TF_tambah_pelanggan.btn_simpanClick(Sender: TObject);
begin
with F_pelanggan.ADOTable1 do begin
if (txt_kode.text <> '') and (txt_nama.text <> '')
and (txt_alamat.text <> '') and (txt_kode_pos.text <> '')
and (txt_telepon.text <> '') and (txt_fax.text <> '')
and (txt_kota.text <> '') and (txt_kontak.text <> '') then
begin
if Locate('Kode Pelanggan',txt_kode.Text,[]) then
begin
exit;
end;
Append;
FieldByName('Nama').AsString := txt_nama.Text;
FieldByName('Alamat').Asstring := txt_alamat.Text;
FieldByName('Kode Pos').AsString := txt_kode_pos.Text;
FieldByName('Telepon').AsString := txt_telepon.Text;
FieldByName('Fax').Asstring := txt_fax.Text;
FieldByName('Kota').AsString := txt_kota.Text;
FieldByName('Kontak').AsString := txt_kontak.Text;
Post;
txt_kode.Text:='';
txt_nama.Text:='';
txt_alamat.Text:='';
txt_kode_pos.Text:='';
txt_telepon.Text:='';
txt_fax.Text:='';
txt_kota.Text:='';
txt_kontak.Text:='';
application.MessageBox('Data telah tersimpan..!','informasi')
end;
end;
end;
end.
10
procedure TF_pelanggan.btn_keluarClick(Sender: TObject);
begin
close;
end;
procedure TF_pelanggan.FormCreate(Sender: TObject);
begin
ADOTable1.TableName := 'tbl_pelanggan';
ADOTable1.Open;
end;
procedure TF_pelanggan.btn_tambahClick(Sender: TObject);
begin
f_tambah_pelanggan.showmodal;
end;
end.
procedure TF_cari_barang_pembelian.btn_keluarClick(Sender: TObject);
begin
close;
end;
procedure TF_cari_barang_pembelian.Button1Click(Sender: TObject);
begin
ADOTable1.CLOSE;
ADOTable1.TableName := 'tbl_barang';
ADOTable1.Open;
end;
end.
g. Form Obat
12
begin
if (txt_kode_barang.text <> '') and (txt_nama_barang.text <> '')
and (cbo_jenis.text <> '') and (cbo_satuan.text <> '')
and (txt_harga_beli.text <> '') and (txt_harga_jual.text <> '')
and (txt_minimum_stok.text <> '') and (txt_maksimum_stok.text <> '')
and (txt_kode_supplayer.text <> '') and (txt_nama_supplayer.text <> '') then
begin
with F_barang.ADOTable1 do begin
if Locate('Kode Obat',txt_kode_barang.Text,[]) then
begin
exit;
end;
Append;
FieldByName('Kode Obat').AsString := txt_kode_barang.Text;
FieldByName('Nama Obat').AsString := txt_nama_barang.Text;
FieldByName('Jenis Obat').Asstring := cbo_jenis.Text;
FieldByName('Satuan').AsString := cbo_satuan.Text;
FieldByName('Harga Beli').AsString := txt_harga_beli.Text;
FieldByName('Harga Jual').Asstring := txt_harga_jual.Text;
FieldByName('Minimum Stok').AsString := txt_minimum_stok.Text;
FieldByName('Maksimum Stok').AsString := txt_maksimum_stok.Text;
FieldByName('Keterangan').Asstring := txt_keterangan.Text;
FieldByName('Kode Supplier').Asstring := txt_kode_supplayer.Text;
FieldByName('Nama Supplier').Asstring := txt_nama_supplayer.Text;
end;
with F_barang.ADOTable2 do begin
if Locate('Kode Obat',txt_kode_barang.Text,[]) then
begin
exit;
end;
Append;
FieldByName('Kode Obat').AsString := txt_kode_barang.Text;
FieldByName('Nama Obat').AsString := txt_nama_barang.Text;
FieldByName('supplier').AsString := txt_nama_supplayer.Text;
FieldByName('Qty').Asstring := '0';
Post;
end;
txt_kode_barang.Text:='';
txt_nama_barang.Text:='';
txt_harga_beli.Text:='';
txt_harga_jual.Text:='';
txt_minimum_stok.Text:='';
txt_maksimum_stok.Text:='';
txt_keterangan.text:='';
txt_nama_supplayer.Text:='';
txt_kode_supplayer.Text:='';
14
end;
end;
procedure TF_tambah_barang.btn_batalClick(Sender: TObject);
begin
txt_kode_barang.Text:='';
txt_nama_barang.Text:='';
txt_harga_beli.Text:='';
txt_harga_jual.Text:='';
txt_minimum_stok.Text:='';
txt_maksimum_stok.Text:='';
txt_keterangan.text:='';
txt_nama_supplayer.Text:='';
txt_kode_supplayer.Text:='';
close;
end;
procedure TF_tambah_barang.Button1Click(Sender: TObject);
begin
f_cari_supplayer.showmodal;
end;
end.
procedure TF_penjualan.FormCreate(Sender: TObject);
begin
ADOTable1.CLOSE;
ADOTable1.TableName := 'tbl_penjualan';
ADOTable1.Open;
ADOTable2.CLOSE;
ADOTable2.TableName := 'tbl_stok';
ADOTable2.Open;
end;
procedure TF_penjualan.btn_simpanClick(Sender: TObject);
var
qty:real;
QtyTotal:real;
StrQtySebelum:string;
FloatQtySebelum:real;
begin
ADOTable1.CLOSE;
16
ADOTable1.Open;
ADOTable2.CLOSE;
ADOTable2.TableName := 'tbl_stok';
ADOTable2.Open;
if (txt_no_faktur.text <> '') and (txt_kode.text <> '')
and (txt_nama.text <> '') and (txt_qty.text <> '')
and (txt_harga.text <> '') and (txt_total.text <> '') then
begin
with F_penjualan.ADOTable1 do begin
if Locate('no faktur',txt_no_faktur.Text,[]) then
begin
application.MessageBox('No Faktur Telah digunakan..!','Informasi');
txt_no_faktur.Text:='';
exit;
end;
Append;
FieldByName('Kode Obat').AsString := txt_kode.Text;
FieldByName('Nama Obat').AsString := txt_nama.Text;
FieldByName('Qty').Asstring := txt_qty.Text;
FieldByName('harga').AsString := txt_harga.Text;
FieldByName('total').AsString := txt_total.Text;
FieldByName('no faktur').Asstring := txt_no_faktur.Text;
FieldByName('Pelanggan').Asstring := txt_pelanggan.Text;
Post;
//ambil nilai sebelumnya di stok
if adotable2.Locate('Kode Obat',txt_kode.Text,[]) then
begin
with F_penjualan.ADOTable2 do begin
StrQtySebelum:= FieldByName('Qty').AsString;
FloatQtySebelum :=StrToFloat(StrQtySebelum);
qty:=StrToFloat(txt_qty.text);
QtyTotal:=FloatQtySebelum - qty;
edit;
FieldByName('Qty').Asstring := FloatTostr(QtyTotal);
Post;
end;
end;
txt_kode.Text:='';
txt_nama.Text:='';
txt_qty.Text:='';
txt_harga.Text:='';
txt_total.Text:='';
txt_no_faktur.Text:='';
txt_pelanggan.Text:='';
application.MessageBox('Data tersimpan..!','informasi')
end;
end;
end;
procedure TF_penjualan.btn_batalClick(Sender: TObject);
begin
txt_kode.Text:='';
txt_nama.Text:='';
18
txt_harga.Text:='';
txt_total.Text:='';
txt_no_faktur.Text:='';
txt_pelanggan.Text:='';
close;
end;
procedure TF_penjualan.btn_cari_kode_barangClick(Sender: TObject);
begin
f_cari_penjualan.showmodal;
end;
procedure TF_penjualan.txt_qtyChange(Sender: TObject);
var
total: real;
harga: real;
qty: real;
begin
if txt_qty.Text = '' then
begin
exit
end
else
begin
harga:= StrToFloat(txt_harga.Text);
qty:= StrToFloat(txt_qty.Text);
total:=harga*qty;
txt_total.text:=FloatToStr(total);
end;
procedure TF_penjualan.Button1Click(Sender: TObject);
begin
f_cari_pelanggan.showmodal;
end;
end.
i.
Form Cari Pelanggan
procedure TF_cari_barang_pembelian.Button1Click(Sender: TObject);
begin
ADOTable1.CLOSE;
ADOTable1.TableName := 'tbl_barang';
ADOTable1.Open;
end;
end.
20
procedure TF_pembelian.btn_cari_kode_barangClick(Sender: TObject);
begin
f_cari_barang_pembelian.showmodal;
end;
procedure TF_pembelian.btn_batalClick(Sender: TObject);
begin
close;
end;
procedure TF_pembelian.btn_simpanClick(Sender: TObject);
var
qty:real;
QtyTotal:real;
StrQtySebelum:string;
FloatQtySebelum:real;
ADOTable1.CLOSE;
ADOTable1.TableName := 'tbl_pembelian';
ADOTable1.Open;
ADOTable2.CLOS;
ADOTable2.TableName := 'tbl_stok';
ADOTable2.Open;
if (txt_no_faktur.text <> '') and (txt_kode.text <> '')
and (txt_nama.text <> '') and (txt_qty.text <> '')
and (txt_harga.text <> '') and (txt_total.text <> '')
and (txt_supplayer.text <> '') then
begin
with F_pembelian.ADOTable1 do begin
if Locate('no faktur',txt_no_faktur.Text,[]) then
begin
application.MessageBox('No Faktur Telah digunakan..!','Informasi');
txt_no_faktur.Text:='';
exit;
end;
Append;
FieldByName('Kode Obat').AsString := txt_kode.Text;
FieldByName('Nama Obat').AsString := txt_nama.Text;
FieldByName('Qty').Asstring := txt_qty.Text;
FieldByName('harga').AsString := txt_harga.Text;
FieldByName('total').AsString := txt_total.Text;
FieldByName('no faktur').Asstring := txt_no_faktur.Text;
FieldByName('Supplier').Asstring := txt_supplayer.Text;
22
//ambil nilai sebelumnya di stok
//update stok
if adotable2.Locate('Kode Obat',txt_kode.Text,[]) then
begin
with F_pembelian.ADOTable2 do begin
StrQtySebelum:= FieldByName('Qty').AsString;
FloatQtySebelum :=StrToFloat(StrQtySebelum);
qty:=StrToFloat(txt_qty.text);
QtyTotal:=qty + FloatQtySebelum;
edit;
FieldByName('Qty').Asstring := FloatTostr(QtyTotal);
Post;
end;
end;
application.MessageBox('Data tersimpan..!','informasi');
txt_kode.Text:='';
txt_nama.Text:='';
txt_qty.Text:='';
txt_harga.Text:='';
txt_total.Text:='';
txt_no_faktur.Text:='';
txt_supplayer.Text:='';
end;
end;
end;
procedure TF_pembelian.FormCreate(Sender: TObject);
ADOTable1.TableName := 'tbl_pembelian';
ADOTable1.Open;
ADOTable2.TableName := 'tbl_stok';
ADOTable2.Open;
end;
procedure TF_pembelian.txt_qtyChange(Sender: TObject);
var
total: real;
harga: real;
qty: real;
begin
if txt_qty.Text = '' then
begin
exit
end
else
begin
harga:= StrToFloat(txt_harga.Text);
qty:= StrToFloat(txt_qty.Text);
total:=harga*qty;
txt_total.text:=FloatToStr(total);
end;
end;
procedure TF_pembelian.Button1Click(Sender: TObject);
24
f_cari_barang_pembelian.showmodal;
end;
end.
begin
f_cari_return.showmodal;
end;
procedure TF_return_pembelian.btn_simpanClick(Sender: TObject);
var
qty:real;
QtyTotal:real;
StrQtySebelum:string;
FloatQtySebelum:real;
begin
ADOTable1.CLOSE;
ADOTable1.TableName := 'tbl_return_pembelian';
ADOTable1.Open;
ADOTable2.CLOSE;
ADOTable2.Open;
with F_return_pembelian.ADOTable1 do begin
if (txt_no_faktur.text <> '') and (txt_kode.text <> '')
and (txt_nama.text <> '') and (txt_qty.text <> '')
and (txt_harga.text <> '') and (txt_total.text <> '')
and (txt_supplayer.text <> '') then
begin
if Locate('no faktur',txt_no_faktur.Text,[]) then
begin
application.MessageBox('No Faktur Telah digunakan..!','Informasi');
txt_no_faktur.Text:='';
exit;
end;
Append;
FieldByName('kode barang').AsString := txt_kode.Text;
FieldByName('Nama Barang').AsString := txt_nama.Text;
FieldByName('Qty').Asstring := txt_qty.Text;
FieldByName('harga').AsString := txt_harga.Text;
FieldByName('total').AsString := txt_total.Text;
FieldByName('no faktur').Asstring := txt_no_faktur.Text;
FieldByName('Supplayer').Asstring := txt_supplayer.Text;
Post;
//ambil nilai sebelumnya di stok
//update stok
if adotable2.Locate('kode barang',txt_kode.Text,[]) then
26
with F_return_pembelian.ADOTable2 do begin
StrQtySebelum:= FieldByName('Qty').AsString;
FloatQtySebelum :=StrToFloat(StrQtySebelum);
qty:=StrToFloat(txt_qty.text);
QtyTotal:=FloatQtySebelum - qty;
edit;
FieldByName('Qty').Asstring := FloatTostr(QtyTotal);
Post;
end;
end;
application.MessageBox('Data tersimpan..!','informasi');
txt_kode.Text:='';
txt_nama.Text:='';
txt_qty.Text:='';
txt_harga.Text:='';
txt_total.Text:='';
txt_no_faktur.Text:='';
application.MessageBox('Data tersimpan..!','informasi')
end;
end;
end;
procedure TF_return_pembelian.FormCreate(Sender: TObject);
begin
ADOTable1.TableName := 'tbl_return_pembelian';
ADOTable1.Open;
ADOTable2.CLOSE;
ADOTable2.TableName := 'tbl_stok';
ADOTable2.Open;
end;
procedure TF_return_pembelian.btn_batalClick(Sender: TObject);
begin
txt_kode.Text:='';
txt_nama.Text:='';
txt_qty.Text:='';
txt_harga.Text:='';
txt_total.Text:='';
txt_no_faktur.Text:='';
txt_supplayer.Text:='';
close;
end;
procedure TF_return_pembelian.txt_qtyChange(Sender: TObject);
var
total: real;
harga: real;
qty: real;
begin
if txt_qty.Text = '' then
begin
28
end
else
begin
harga:= StrToFloat(txt_harga.Text);
qty:= StrToFloat(txt_qty.Text);
total:=harga*qty;
txt_total.text:=FloatToStr(total);
end;
end;
procedure TF_return_pembelian.Button1Click(Sender: TObject);
begin
f_cari_return.showmodal;
end;
end.
k. Form Laporan Penjualan
procedure TF_lap_penjualan.Button1Click(Sender: TObject);
begin
with ADOQuery1 do begin
close;
sql.clear;
sql.Add('select * from tbl_penjualan');
end;
close;
QuickRep1.Preview;
end;
procedure TF_lap_penjualan.Button2Click(Sender: TObject);
begin
close;
end;
end.
l. Form Laporan Pemblian
procedure TF_lap_pembelian.Button1Click(Sender: TObject);
begin
30
close;
sql.clear;
sql.Add('select * from tbl_pembelian');
Open;
end;
close;
QuickRep1.Preview;
end;
procedure TF_lap_pembelian.Button2Click(Sender: TObject);
begin
close;
end;
end.
m.Form Laporan return Pembelian
procedure TF_lap_return.Button1Click(Sender: TObject);
begin
with ADOQuery1 do begin
close;
sql.clear;
sql.Add('select * from tbl_return_pembelian');
end;
close;
QuickRep1.Preview;
end;
procedure TF_lap_return.Button2Click(Sender: TObject);
begin
close;
end;
end.
n. Form Laporan Stock
procedure TF_stok.Button1Click(Sender: TObject);
begin
begin
with ADOQuery1 do begin
close;
sql.clear;
sql.Add('select * from tbl_stok');
Open;
end;
end;
close;
32
end;
procedure TF_stok.Button2Click(Sender: TObject);
begin
close;
end;
end.
BAB III
PENUTUP
3.1 Kesimpulan
Setelah dilakukan perancangan sistem informasi penjualan yang baru
dirancang oleh penuli maka dapat diambil bebrapa kesimpulan bahwa :
2. Program Borlan Delphi 7.0 dapat membantu dalam penyajian
laporan kepada manajer tepat pada waktunya.
3. Dengan Menggunakan Program Borlan Delphi 7.0dengan
Database Access maka keamanan data lebih terjami
3.2 Saran
Setelah mendapat kesimpulan diatas, maka penulis mengajukan beberapa
saran sehubungan dengan penerapan dan pengembangan sistem lebih lanjut.
Adapun saran-saran tersebut adalah sebagai berikut :