TUGAS MANDIRI Sistem Informasi Penjualan

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
TA 2012/2013

1

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
3.2 Saran...................................................................................................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

Fitri Gultom

3

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.

1.1.2.

Sekilas Tentang Microsoft Access

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, langkahlangkahnya 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

2.

mandiri bagi penulis.

Meningkatkan Ilmu penulis dalam Pembelajaran Pemrograman Delphi

BAB II
PEMBAHASAN

5

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',
MB_OK or MB_ICONERROR)

6

else begin
Hide;
F_utama.Show;
end
end;
end;

procedure TF_login.btn_cancelClick(Sender: TObject);

begin
application.terminate;
end;

b. Form Utama

c. Form Supllier

7

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;
d. Form Data Pelanggan

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('Kode Pelanggan').AsString := txt_kode.Text;

9

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.

e. Form Data Pelanggan

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.

f.

Form Data Obat

11

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

procedure TF_tambah_barang.btn_simpanClick(Sender: TObject);

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

13

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:='';

application.MessageBox('Data telah tersimpan..!','informasi')

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.

h. Form Penjualan

15

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;
ADOTable1.TableName := 'tbl_penjualan';

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
//update stok

17

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:='';
txt_qty.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;

19

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.

j. Form Pembelian

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

21

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

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

23

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

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.TableName := 'tbl_stok';

25

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
begin

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.CLOSE;

27

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
exit

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

29

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
with ADOQuery1 do 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');
Open;

31

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;
QuickRep1.Preview

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 :
1. Dengan Menggunakan Program Borland Delph Delphi7.0
Mengurangi beban kerja terutama masalah penyajian data dan
pencarian data yang selama ini masih dilakukan secara manual.

33

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

Perlu perawatan sistem yang berkelanjutan untuk menjamin
kelancaran operasional sistem.