4. implementasi sistem

30
52 Universitas Kristen Petra 4. IMPLEMENTASI SISTEM Pada bab 4 ini akan dijelaskan tentang implementasi interface, implementasi Program dan urutan pembuatannya. Untuk pemrograman menggunakan Borland Delphi 7.0. Untuk Database, digunakan Microsoft Access 2000. 4.1. Setting Koneksi Database Pembuatan database pada Borland Delphi 7 memerlukan penyetingan koneksi terlebih dahulu. Langkah pertama yaitu memilih komponen ADOConnection. Gambar 4.1. Komponen ADOConnection Setelah itu untuk melakukan koneksi database, lakukan setting pada komponen tersebut dengan cara masuk ke menu properties, pilih connection string pada object Inspector. Gambar 4.2. Object Inspector ADOConnection

Transcript of 4. implementasi sistem

52 Universitas Kristen Petra

4. IMPLEMENTASI SISTEM

Pada bab 4 ini akan dijelaskan tentang implementasi interface,

implementasi Program dan urutan pembuatannya. Untuk pemrograman

menggunakan Borland Delphi 7.0. Untuk Database, digunakan Microsoft Access

2000.

4.1. Setting Koneksi Database

Pembuatan database pada Borland Delphi 7 memerlukan penyetingan

koneksi terlebih dahulu. Langkah pertama yaitu memilih komponen

ADOConnection.

Gambar 4.1. Komponen ADOConnection

Setelah itu untuk melakukan koneksi database, lakukan setting pada

komponen tersebut dengan cara masuk ke menu properties, pilih connection string

pada object Inspector.

Gambar 4.2. Object Inspector ADOConnection

Universitas Kristen Petra

53

Berikutnya akan terbuka ConnectionString yang digunakan untuk

memasukan string agar aplikasi dapat terhubung dengan database, user dapat

memasukan string secara manual atau dengan menekan tombol build.seperti yang

terlihat di Gambar 4.3.

Gambar 4.3. Connection String

Setelah tombol build ditekan maka akan keluar Data Link Properties yang

bertujuan untuk memilih jenis database yang dipakai, terdapat di tab provider,

tampilan dapat dilihat pada Gambar 4.4. Setelah itu pilih ”Microsoft Jet 4.0 OLE

DB Provider”.

Gambar 4.4. Data Link Properties – Provider

Universitas Kristen Petra

54

Proses terakhir yang harus dilakukan adalah memasukan nama server dan

nama database yang digunakan, setelah itu tombol test connection ditekan untuk

mencoba apakah nama server dan database yang dimasukan sudah benar apabila

benar maka akan keluar pesan seperti yang terlihat pada Gambar 4.5.

Gambar 4.5. Data Link Properties – Connection

4.2. Implementasi Interface

Setelah database terhubung dengan Program, dilakukan implementasi

interface terlebih dahulu. Implementasi interface adalah dengan membuat form-

form yang digunakan untuk desain dan peletakan isi Program di dalamnya. Setiap

form memiliki fungsi yang berbeda. Untuk mengetahui kegunaan setiap form,

dapat dilihat pada Tabel 4.1.

Universitas Kristen Petra

55

Tabel 4.1. Daftar Form dan Keterangannya

No Nama Form Fungsi

1 FormLogin

Form yang harus dijalankan ketika pertama kali menjalankan Program untuk memasukan username dan password

2 FormUtama Form yang digunakan sebagai main menu

3 FormCreateAccount Form untuk membuat account 4 FormChangePassword Form untuk menganti password 5 FormDeleteAccount Form untuk menghapus account

6 FormChart Form untuk membuat kode rekening baru dan melihat daftar kode rekening yang ada.

7 FormPeriode Form untuk menambah periode

8 FormSaldoAwal Form untuk memasukan saldo awal suatu kode rekening

9 FormMasterBarang Form untuk maintain data barang (tambah, ubah, hapus)

10 FormMasterSupplier Form untuk mantaian data supplier (tambah, ubah, hapus)

11 FormMasterCustomer Form untuk mantaian data customer (tambah, ubah, hapus)

12 FormPurchaseOrder Form untuk membuat purchase order.

13 FormPembelian Form untuk memasukan data pembelian baik langsung maupun menggunakan order pembelian.

14 FormReturPembelian Form untuk memasukan data retur pembelian baik retur berupa uang maupun barang.

15 FormPelunasanPembelian Form untuk mencatat data pembayaran hutang

16 FormPenerimaanBarang Form untuk mencatat data penerimaan retur barang

17 FormOrderCustomer Form untuk membuat order customer

18 FormPenjualan Form untuk memasukan data penjualan dan membuat faktur penjualan

19 FormPelunasanPenjualan Form untuk mencatat data pembayaran piutang

20 FormKasMasuk Form untuk mencatat penerimaan kas di tangan maupun kas di bank.

21 FormKasKeluar Form untuk mencatat pengeluaran kas di tangan maupun kas di bank.

22 FormMutasikas Form untuk mencatat mutasi kas. 23 FormCariSupplier Form untuk melihat data supplier.

Universitas Kristen Petra

56

Tabel 4.1. Daftar Form dan Keterangannya (sambungan)

No Nama Form Fungsi 24 FormCariCustomer Form untuk melihat data customer. 25 FormCariBarang Form untuk melihat data barang. 26 FormCariAkun Form untuk melihat data kode rekening. 27 FormArsipPembelian Form untuk melihat data pembelian 28 FormArsipPenjualan Form untuk melihat data penjualan

29 FormArsipReturPembelian Form untuk melihat data retur pembelian

30 FormArsipPO Form untuk melihat data purchase order

31 FormJurnalUmum Form untuk mencatat data jurnal umum dan penyesuaian

32 FormJurnalKoreksi Form untuk mengkoreksi jurnal yang telah dibuat sebelumnya

33 FormPemakaianBarang Form untuk mencatat data pemakaian barang

34 FormTutupBuku Form untuk proses tutup buku dan mempostingkan jurnal ke buku besar

35 FormLaporanStok Form untuk menampilkan laporan stok

36 FormLaporanPembelian Form untuk menampilkan laporan pembelian

37 FormLaporanReturPembelian Form untuk menampilkan laporan returpembelian

38 FormLaporanPenjualan Form untuk menampilkan laporan penjualan

39 FormLaporanHutang Form untuk menampilkan laporan hutang

40 FormLaporanPiutang Form untuk menampilkan laporan piutang

41 FormLaporanHPP Form untuk menampilkan laporan harga pokok penjualan

42 FormLaporanLabaRugi Form untuk menampilkan laporan laba-rugi

43 FormLaporanPerubahanModal Form untuk menampilkan laporan perubahan modal

44 FormLaporanNeraca Form untuk menampilkan laporan neraca

45 FormLaporanJurnalUmum Form untuk menampilkan laporan jurnal umum

46 FormLaporanJurnal PenerimaanKas

Form untuk menampilkan laporan jurnal pembelian

47 FormLaporanJurnal PengeluaranKas

Form untuk menampilkan laporan jurnal penerimaan kas

48 FormLaporanNeracaSaldo Form untuk menampilkan neraca saldo setelah penutupan.

Universitas Kristen Petra

57

Tabel 4.1. Daftar Form dan Keterangannya (sambungan)

No Nama Form Fungsi

48 FormPilihBukuBesar Form untuk menampilkan laporan jurnal pengeluaran kas

49 FormLaporanBukuBesar Form untuk memilih kode rekening mana yang akan ditampilkan

50 FormLaporanBukuBesar Form untuk menampilkan laporan buku besar.

51 FormCustomizeStatus Form untuk mengganti hak akses dari user.

4.3. Implementasi Program

Dalam implementasi Program akan dibahas beberapa procedure yang

penting yang terdapat pada form.

4.3.1. Login

SegmenProgram 4.1 digunakan untuk mengijinkan pengguna masuk ke

dalam menu utama. Pada form login ini akan di cek apakah username dan

password yang dimasukkan sudah sesuai dengan data yang terdapat pada

database yang sudah dimasukkan sebelumnya. Jika user memasukkan username

dan password yang salah, user tetap dihadapkan pada form login, sedangkan bila

user memasukkan username dan password yang benar maka form utama ( menu

utama ) dapat diakses. Selain itu, dari login juga ditentukan fitur mana yang bisa

dibuka dan tidak bisa dibuka sesuai dengan status dari username.

Segmen Program 4.1. Procedure Login procedure TFormLogin.ButtonOKClick(Sender: TObject); var mast : string; begin ADOQueryLogin.Close; ADOQueryLogin.Parameters.ParamValues['user']:=EditNama.Text; ADOQueryLogin.Parameters.ParamValues['pass']:=EditPassword.Text; ADOQueryLogin.open; if ADOQueryLogin.Eof then bsSkinMessage1.MessageDlg('Username/Password Salah',mterror,[mbok],0) else begin FormUtama.user:= ADOQueryLogin.FieldValues['username']; FormUtama.status:= ADOQueryLogin.FieldValues['status']; mast := '';

Universitas Kristen Petra

58

Segmen Program 4.1. Procedure Login (sambungan) //master mast := ADOQueryLogin.FieldValues['master']; showmessage(mast); if mast[1] = '1' then begin FormUtama.BuatUser1.Enabled := true; FormUtama.HapusUser1.Enabled := true; end else begin FormUtama.BuatUser1.Enabled := false; FormUtama.HapusUser1.Enabled := false; end; if mast[2] = '1' then FormUtama.SettingHakAkses1.Enabled := true else FormUtama.SettingHakAkses1.Enabled := false; if mast[3] = '1' then FormUtama.COA1.Enabled := true else FormUtama.COA1.Enabled := false; if mast[4] = '1' then FormUtama.Bahan1.Enabled := true else FormUtama.Bahan1.Enabled := false; if mast[5] = '1' then FormUtama.Supplier1.Enabled := true else FormUtama.Supplier1.Enabled := false; if mast[6] = '1' then FormUtama.Customer1.Enabled := true else FormUtama.Customer1.Enabled := false; //pembelian mast:=ADOQueryLogin.FieldValues['Pembelian']; if mast[1]='1' then formutama.PemesananBahanProduksi1.Enabled:=true else FormUtama.PemesananBahanProduksi1.Enabled := false; if mast[2]='1' then formutama.PembelianBarang1.Enabled:=true else FormUtama.PembelianBarang1.Enabled := false; if mast[3]='1' then formutama.ReturPembelian1.Enabled:=true else FormUtama.ReturPembelian1.Enabled := false; if mast[4] = '1' then FormUtama.PembayaranHutang1.Enabled := true else FormUtama.PembayaranHutang1.Enabled := false; if mast[5] = '1' then FormUtama.Penerimaan1.Enabled := true else FormUtama.Penerimaan1.Enabled := false; //penjualan mast:=ADOQueryLogin.FieldValues['Penjualan']; if mast[1]='1' then formutama.PemesananUdang1.Enabled:=true else FormUtama.PemesananUdang1.Enabled := false; if mast[2]='1' then formutama.Penjualan1.Enabled:=true else FormUtama.PembelianBarang1.Enabled := false; if mast[3]='1' then formutama.PelunasanPiutang1.Enabled:=true else FormUtama.PelunasanPiutang1.Enabled := false; //akuntasi mast:=ADOQueryLogin.FieldValues['akuntansi']; if mast[1]='1' then formutama.Kas1.Enabled:=true else FormUtama.Kas1.Enabled := false; if mast[2]='1' then formutama.JurnalEntry1.Enabled:=true else FormUtama.JurnalEntry1.Enabled := false; if mast[3]='1' then formutama.JurnalKoreksi1.Enabled:=true else FormUtama.JurnalKoreksi1.Enabled := false; if mast[4] = '1' then

Universitas Kristen Petra

59

Segmen Program 4.1. Procedure Login (sambungan) FormUtama.PemakaianBahanProduksi1.Enabled := true else FormUtama.PemakaianBahanProduksi1.Enabled := false; if mast[5] = '1' then FormUtama.utupBuku1.Enabled := true else FormUtama.utupBuku1.Enabled := false; //laporan mast:=ADOQueryLogin.FieldValues['laporan']; if mast[1]='1' then formutama.LaporanStok1.Enabled:=true else FormUtama.LaporanStok1.Enabled := false; if mast[2]='1' then formutama.LaporanPembelian1.Enabled:=true else FormUtama.LaporanPembelian1.Enabled := false; if mast[3]='1' then formutama.LaporanReturPembelian1.Enabled:=true else FormUtama.LaporanReturPembelian1.Enabled := false; if mast[4] = '1' then FormUtama.LaporanPenjualan1.Enabled := true else FormUtama.LaporanPenjualan1.Enabled := false; if mast[5] = '1' then FormUtama.LaporanHutang1.Enabled := true else FormUtama.LaporanHutang1.Enabled := false; if mast[6]='1' then formutama.LaporanPiutang1.Enabled:=true else FormUtama.LaporanPiutang1.Enabled := false; if mast[7]='1' then formutama.LaporanPemakaian1.Enabled:=true else FormUtama.LaporanPemakaian1.Enabled := false; if mast[8] = '1' then FormUtama.LaporanHargaPokokPenjualan1.Enabled := true else FormUtama.LaporanHargaPokokPenjualan1.Enabled := false; if mast[9] = '1' then FormUtama.LaporanJurnal1.Enabled := true else FormUtama.LaporanJurnal1.Enabled := false; if mast[10] = '1' then FormUtama.LaporanBukuBesar1.Enabled := true else FormUtama.LaporanBukuBesar1.Enabled := false; FormUtama.ShowModal; end; end;

4.3.2. Menambah Kode Rekening

Segmen Program 4.2 digunakan untuk mengenerate kode rekening baru

pada waktu tipe akun dipilih. Apabila tipe akun yang dipilih adalah aktiva dan

jenis lancar maka kode akun akan di generate dengan awal 11, digit pertama

untuk tipe akun dan digit 2 untuk jenis akun.

Segmen Program 4.2. Procedure Auto Generate Nomor Perkiraan Akuntasi procedure TFormChart.ComboboxTipeChange(Sender: TObject); var i : string; j : string; kodeCOA : string; hit : integer; begin i:=inttostr(ComboboxTipe.ItemIndex+1); if RadiogroupJenis.Visible then

Universitas Kristen Petra

61

Segmen Program 4.2. Procedure Auto Generate Nomor Perkiraan Akuntasi

(sambungan) j:=inttostr(RadiogroupJenis.ItemIndex+1) else j:='1'; kode:= i+j; ADOQueryAuto.Close; ADOQueryAuto.Parameters.ParamValues['kode']:= kode+'%'; ADOQueryAuto.Open; hit:=ADOQueryAuto.RecordCount+1; kodeCOA:=kode+FormUtama.addzero(hit,2); EditKode.Text:=kodeCOA; if ComboboxTipe.ItemIndex=0 then begin RadiogroupJenis.Items.Clear; RadiogroupJenis.Items.Add('Lancar'); RadiogroupJenis.Items.Add('Tetap'); RadiogroupJenis.Items.Add('Akumulasi Penyusutan'); RadiogroupJenis.ItemIndex:=0; bsSkinPanel1.Show; end else if ComboboxTipe.ItemIndex=5 then begin RadiogroupJenis.Items.Clear; RadiogroupJenis.Items.Add('Operasional'); RadiogroupJenis.Items.Add('nonoperasional'); RadiogroupJenis.ItemIndex:=0; bsSkinPanel1.Show; end else begin RadiogroupJenis.ItemIndex:=0; bsSkinPanel1.Hide; end;

end;

Segmen Program 4.3 digunakan untuk menambah data kode rekening

baru. Sebelum penyimpanan dilakukan pengecekan apakah nama akun pada kode

rekening sudah diisi, bila belum diisi maka penyimpanan tidak dapat dilakukan.

SegmenProgram 4.3. Procedure Penyimpanan Akun Baru procedure TFormChart.ButtonTambahClick(Sender: TObject); begin if EditNama.Text<>'' then begin ADOQueryAdd.Close; ADOQueryAdd.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQueryAdd.Parameters.ParamValues['pnama']:=EditNama.Text; ADOQueryAdd.Parameters.ParamValues['pposisi']:=RadioGroupPosisi.Items[RadioGroupPosisi.ItemIndex][1]; ADOQueryAdd.Parameters.ParamValues['ptipe']:=inttostr(ComboboxTipe.ItemIndex)+inttostr(RadiogroupJenis.ItemIndex); ADOQueryAdd.ExecSQL; FormShow(sender); end else bsSkinMessage1.MessageDlg('Nama Akun Masih Kosong',mtError,[mbOk],0); end;

Universitas Kristen Petra

62

4.3.3. Menambah Data Pembelian

Segmen Program 4.4 digunakan untuk menambah data pembelian terdapat

beberapa hal yang penting. Pada pembelian terdapat pembelian dengan purchase

order (pembelian tidak langsung) maupun pembelian tanpa purchase order

(pembelian langsung). Untuk pembelian tidak langsung sebelumnya harus

melakukan purchase order telebih dahulu. Data pembelian akan di masukan pada

Tabel pembelian, Tabel detail pembelian, dan Tabel hutang jika ada pembayaran

dari pembelian kredit. Penyimpanan data pembelian juga disertai dengan update

stok dan harga barang yang dibeli pada Tabel barang, serta penjurnalan otomatis

sesuai dengan transaksi yang kemudian akan dimasukan pada tabel jurnal.

Segmen Program 4.4. Procedure Penyimpanan Data Pembelian procedure TFormPembayaranPembelian.ButtonSimpanClick(Sender: TObject); var no,hargasatuansetelahdiskon : integer; dis : real; kodejurnal: string[8]; begin //insert ke Tabel pembelian ADOQueryInsertPembelian.Close; ADOQueryInsertPembelian.Parameters.ParamValues['pkodebeli']:=Label6.Caption; ADOQueryInsertPembelian.Parameters.ParamValues['pkodepo']:=FormPembelianLangsung.EditPO.Text; ADOQueryInsertPembelian.Parameters.ParamValues['pkodesup']:=FormPembelianLangsung.EditKode.Text; ADOQueryInsertPembelian.Parameters.ParamValues['ptglpesan']:=datetostr(FormPembelianLangsung.DateTimePicker1.Date); ADOQueryInsertPembelian.Parameters.ParamValues['ptgllunas']:=datetostr(FormPembelianLangsung.DateTimePicker2.Date); ADOQueryInsertPembelian.Parameters.ParamValues['ptotal']:=LabelTotal.Caption; if strtoint(Label9.Caption) = strtoint(EditHarga.EditText) then ADOQueryInsertPembelian.Parameters.ParamValues['plunas']:=True else ADOQueryInsertPembelian.Parameters.ParamValues['plunas']:=False; ADOQueryInsertPembelian.Parameters.ParamValues['pum']:=EditHarga.EditText; ADOQueryInsertPembelian.Parameters.ParamValues['pdis']:=Editdiscount.EditText; ADOQueryInsertPembelian.ExecSQL; //insert ke Tabel detail_Pembelian dis:=StrToInt(Editdiscount.EditText) /

Universitas Kristen Petra

63

Segmen Program 4.4. Procedure Penyimpanan Data Pembelian (sambungan) StrToInt(LabelTotal.Caption) ; dis:=1-dis; FormPembelianLangsung.ADOQueryDetailPO.Close; FormPembelianLangsung.ADOQueryDetailPO.Open; FormPembelianLangsung.ADOQueryDetailPO.First; while not FormPembelianLangsung.ADOQueryDetailPO.Eof do begin ADOQueryDetailPembelian.Close; ADOQueryDetailPembelian.Parameters.ParamValues['pkodebeli']:=Label6.Caption; ADOQueryDetailPembelian.Parameters.ParamValues['pkodebrg']:=FormPembelianLangsung.ADOQueryDetailPO.FieldValues['kode_barang']; ADOQueryDetailPembelian.Parameters.ParamValues['pjumlah']:=FormPembelianLangsung.ADOQueryDetailPO.FieldValues['jumlah_pesan']; ADOQueryDetailPembelian.Parameters.ParamValues['pharga']:=FormPembelianLangsung.ADOQueryDetailPO.FieldValues['harga_satuan']; hargasatuansetelahdiskon:= Floor(FormPembelianLangsung.ADOQueryDetailPO.FieldValues['harga_satuan']*dis); ADOQueryDetailPembelian.Parameters.ParamValues['phrgbersih']:=hargasatuansetelahdiskon; ADOQueryDetailPembelian.ExecSQL; ADOQuerycekjumlahstok.Close; ADOQuerycekjumlahstok.Parameters.ParamValues['pkode']:=FormPembelianLangsung.ADOQueryDetailPO.FieldValues['kode_barang']; ADOQuerycekjumlahstok.Open; //update harga dan stok barang ADOQueryUpdateBarang.Close; ADOQueryUpdateBarang.Parameters.ParamValues['pharga']:=FormPembelianLangsung.ADOQueryDetailPO.FieldValues['harga_satuan']; ADOQueryUpdateBarang.Parameters.ParamValues['pkode']:=FormPembelianLangsung.ADOQueryDetailPO.FieldValues['kode_barang']; ADOQueryUpdateBarang.Parameters.ParamValues['pstok']:=inttostr(strtoint(FormPembelianLangsung.ADOQueryDetailPO.FieldValues['jumlah_pesan'])+strtoint(ADOQuerycekjumlahstok.FieldValues['stok'])); ADOQueryUpdateBarang.Parameters.ParamValues['pnominal']:=StrToInt(ADOQuerycekjumlahstok.FieldValues['nominal'])+(FormPembelianLangsung.ADOQueryDetailPO.FieldValues['jumlah_pesan']*hargasatuansetelahdiskon); ADOQueryUpdateBarang.ExecSQL; FormPembelianLangsung.ADOQueryDetailPO.Next; end; ADOQueryNomorKodeJurnal.Close; ADOQueryNomorKodeJurnal.Parameters.ParamValues['pkode']:='PB'; ADOQueryNomorKodeJurnal.Open;

Universitas Kristen Petra

64

Segmen Program 4.4. Procedure Penyimpanan Data Pembelian (sambungan) no:=ADOQueryNomorKodeJurnal.FieldValues['nomor']; kodejurnal:='PB'+FormUtama.addzero(no,6); //edit no di kode jurnal ADOQueryUpdateKodeJurnal.Close; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pnomor']:=no+1; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pkode']:='PB'; ADOQueryUpdateKodeJurnal.ExecSQL; //insert ke Tabel jurnal (pembelian D) ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(FormPembelianLangsung.DateTimePicker1.Date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='5102'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:='D'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=strtoint(LabelTotal.Caption); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:='PEMBELIAN '+Label6.Caption; ADOQueryInsertJurnal.ExecSQL; //insert pembayaran ke Tabel hutang jika ada if strtoint(EditHarga.EditText) > 0 then begin ADOQueryInsertPembayaran.Close; ADOQueryInsertPembayaran.Parameters.ParamValues['ptgl'] := datetostr(FormPembelianLangsung.DateTimePicker1.date); ADOQueryInsertPembayaran.Parameters.ParamValues['pkode'] := Label6.Caption; ADOQueryInsertPembayaran.Parameters.ParamValues['pjmlh'] := strtoint(EditHarga.EditText); ADOQueryInsertPembayaran.ExecSQL; //insert ke Tabel jurnal (kas K) ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; DOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(FormPembelianLangsung.DateTimePicker1.Date); if comboboxvia.ItemIndex=0 then ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='1101' else if comboboxvia.ItemIndex=1 then ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='1102'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:='K'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=EditHarga.EditText; ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:='PEMBELIAN '+Label6.Caption; ADOQueryInsertJurnal.ExecSQL; end; if strtoint(EditHarga.EditText)=0 then bsSkinMessage1.MessageDlg('Pembayaran0',mtInformation,[mbOk],0);

Universitas Kristen Petra

65

Segmen Program 4.4. Procedure Penyimpanan Data Pembelian (sambungan) //insert ke Tabel jurnal (Diskon Pembelian K) if strtoint(EditDiscount.EditText)>0 then begin ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber'] := kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal'] := datetostr(FormPembelianLangsung.DateTimePicker1.date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode'] := '5104'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi'] := 'K'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo'] := strtoint(EditDiscount.EditText); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan'] := 'PEMBELIAN '+Label6.Caption; ADOQueryInsertJurnal.ExecSQL; end; //insert ke Tabel jurnal (Hutang Dagang K) if strtoint(LabelTotal.Caption)-strtoint(Editdiscount.EditText)-strtoint(EditHarga.EditText) > 0 then begin ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber'] := kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal'] := datetostr(FormPembelianLangsung.DateTimePicker1.date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode'] := '2101'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi'] := 'K'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo'] := strtoint(Label9.Caption)-strtoint(EditHarga.EditText); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan'] := 'PEMBELIAN '+Label6.Caption; ADOQueryInsertJurnal.ExecSQL; end; //update sudahtransaksi PO apabila pembelian Tidak langsung if FormPembelianLangsung.EditPO.Text <>'' then begin ADOQueryUpdatePO.Close; ADOQueryUpdatePO.Parameters.ParamValues['pkode']:=FormPembelianLangsung.EditPO.Text; ADOQueryUpdatePO.ExecSQL; end; //Finish back:=False; close; end;

Universitas Kristen Petra

66

Segmen Program 4.5 digunakan untuk menyimpan data pembayaran

hutang kepada supplier. Sebelum di simpan akan di cek terlebih dahulu apakah

jumlah yang diinputkan sudah benar, apabila jumlah pembayaran diinputkan lebih

besar dari sisa hutang maka data tidak bisa disimpan. Apabila jumlah pembayaran

benar maka data pelunasan pembelian akan dimasukan pada Tabel hutang dan

Tabel jurnal. Apabila sisa hutang langsung dilunasi maka status lunas pada Tabel

pembelian akan diupdate.

Segmen Program 4.5. Procedure Penyimpanan Pelunasan Pembelian procedure TFormPelunasanPembelian.ButtonSimpanClick(Sender: TObject); var kodejurnal :string[8]; no : integer; begin if (EditKode.Text='') then begin bsSkinMessage1.MessageDlg('Input masih kosong',mtError,[mbOk],0) end else if (strtoint(EditBayar.EditText)>strtoint(LabelSisa.Caption)) then bsSkinMessage1.MessageDlg('Input Jumlah Pembayaran ada yang salah',mtError,[mbOk],0) else if strtoint(EditBayar.EditText)>0 then begin ADOQueryInsertIntoHutang.Close; ADOQueryInsertIntoHutang.Parameters.ParamValues['ptgl']:= datetostr(DateTimePicker1.Date); ADOQueryInsertIntoHutang.Parameters.ParamValues['pkode']:= EditKode.Text; ADOQueryInsertIntoHutang.Parameters.ParamValues['pjumlah']:= EditBayar.EditText; ADOQueryInsertIntoHutang.ExecSQL; ADOQueryCekKodeJurnal.Close; ADOQueryCekKodeJurnal.Parameters.ParamValues['pkode'] := 'LL'; ADOQueryCekKodeJurnal.Open; no := ADOQueryCekKodeJurnal.FieldValues['nomor']; kodejurnal := 'LL'+FormUtama.addzero(ADOQueryCekKodeJurnal.FieldValues['nomor'],6); //update Nomor di KodeJurnal ADOQueryUpdateKodeJurnal.Close; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pkode'] := 'LL'; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pno'] := no+1; ADOQueryUpdateKodeJurnal.ExecSQL; //insert ke jurnal ( Hutang Dagang D) ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date);

Universitas Kristen Petra

67

Segmen Program 4.5. Procedure Penyimpanan Pelunasan Pembelian

(sambungan) ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='2101'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:='D'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=strtoint(EditBayar.EditText); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:='PEMBAYARAN'+EditKode.Text; ADOQueryInsertJurnal.ExecSQL; //insert ke jurnal ( Kas K) ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); if ComboboxVia.ItemIndex=0 then ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='1101' else ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='1102'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:='K'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=strtoint(EditBayar.EditText); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:='PEMBAYARAN'+EditKode.Text; ADOQueryInsertJurnal.ExecSQL; if strtoint(EditBayar.EditText) = strtoint(LabelSisa.Caption) then begin ADOQueryUpdatePembelian.Close; ADOQueryUpdatePembelian.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQueryUpdatePembelian.ExecSQL; bsSkinMessage1.MessageDlg(' HUTANG LUNAS',mtInformation,[mbok],0); end; FormShow(sender); end else begin bsSkinMessage1.MessageDlg('Jumlah Pembayaran 0',mtError,[mbOk],0); FormShow(sender);

Universitas Kristen Petra

68

4.3.4. Menambah Data Retur Pembelian

Ada beberapa procedure penting dalam retur pembelian. Procedure untuk

menyimpan data retur pembelian (Segmen Program 4.6.) dan untuk menerima

barang atau uang dari retur pembelian (Segmen Program 4.7 dan Segmen Program

4.8). Pada waktu SegmenProgram 4.6 dijalankan maka stok barang akan di update

pada Tabel barang sesuai dengan jumlah barang yang diretur. Kemudian data retur

pembelian seperti nomor retur, nota pembelian, supplier, total retur akan

dimasukan pada Tabel retur pembelian, sedangkan untuk barang yang diretur akan

dimasukan pada Tabel detail retur pembelian.

Segmen Program 4.6. Procedure Penyimpanan Retur Pembelian procedure TFormReturPembelian.ButtonSimpanClick(Sender: TObject); var kodejurnal : string[8]; no : integer; begin ADOQuery1.Close; ADOQuery1.Open; ADOQuery1.Last; if (ADOQuery1.RecordCount>0) and (DateTimePicker1.Date<=ADOQuery1.FieldValues['akhir_periode']) then bsSkinMessage1.MessageDlg('Tranksaksi pada periode ini sudah ditutup',mtError,[mbok],0) else begin if ADOQueryTempdetailretur.Eof then begin bsSkinMessage1.MessageDlg('Barang yang diretur belum diinputkan',mtError,[mbok],0); end else begin ADOQueryInsertRetur.Close; ADOQueryInsertRetur.Parameters.ParamValues['pkoderetur'] := label4.Caption; ADOQueryInsertRetur.Parameters.ParamValues['pkodebeli'] := EditKode.Text; ADOQueryInsertRetur.Parameters.ParamValues['ptgl'] := datetostr(DateTimePicker1.Date); ADOQueryCekSupplier.Close; ADOQueryCekSupplier.Parameters.ParamValues['pnama']:= Label5.Caption; ADOQueryCekSupplier.Open; ADOQueryInsertRetur.Parameters.ParamValues['pkodesup'] := ADOQueryCekSupplier.FieldValues['kode_supplier']; ADOQueryInsertRetur.Parameters.ParamValues['ptotal'] := DBText1.Caption; ADOQueryInsertRetur.ExecSQL; ADOQueryTempdetailretur.First; while not ADOQueryTempdetailretur.Eof do begin ADOQueryInsertDetail.Close; ADOQueryInsertDetail.Parameters.ParamValues['pkoderetur'] := label4.Caption; ADOQueryInsertDetail.Parameters.ParamValues['pkodebrg'] := ADOQueryTempdetailretur.FieldValues['kode_barang']; ADOQueryInsertDetail.Parameters.ParamValues['pjumlah'] := ADOQueryTempdetailretur.FieldValues['jumlah_retur'];

Universitas Kristen Petra

69

Segmen Program 4.6. Procedure Penyimpanan Retur Pembelian (sambungan) ADOQueryInsertDetail.Parameters.ParamValues['pharga'] := ADOQueryTempdetailretur.FieldValues['harga_satuan']; ADOQueryInsertDetail.ExecSQL; //update stok di Tabel barang ADOQuerycekjumlahstok.Close; ADOQuerycekjumlahstok.Parameters.ParamValues['pkode']:=LabelKode.Caption; ADOQuerycekjumlahstok.Open; ADOQueryUpdateBarang.Close; ADOQueryUpdateBarang.Parameters.ParamValues['pkode']:=LabelKode.Caption; ADOQueryUpdateBarang.Parameters.ParamValues['pstok']:=inttostr(strtoint(ADOQuerycekjumlahstok.FieldValues['stok'])-strtoint(ADOQueryTempdetailretur.FieldValues['jumlah_retur'])); ADOQueryUpdateBarang.Parameters.ParamValues['pnominal']:=StrToInt(ADOQuerycekjumlahstok.FieldValues['nominal'])-StrToInt(DBText1.Caption); ADOQueryUpdateBarang.ExecSQL; ADOQueryTempdetailretur.Next; end; end; end; end;

Pada waktu SegmenProgram 4.7 dijalankan maka stok barang akan di

update pada Tabel barang dan dicatat pada Tabel penerimaan retur dan Tabel

detail penerimaanretur.

Segmen Program 4.7. Procedure Penyimpanan Penerimaan Retur Barang. procedure TFormPenerimaanReturBarang.ButtonSimpanClick(Sender: TObject); var no : integer; kodejurnal : string; begin if not ADOQueryDetail.Eof then begin ADOQueryDetail.First; while not ADOQueryDetail.Eof do begin ADOQueryUpdateBarang.Close; ADOQueryUpdateBarang.Parameters.ParamValues['pkode']:=ADOQueryDetail.FieldValues['b.kode_barang']; ADOQueryUpdateBarang.Open; ADOQueryUpdateBarang.Edit; ADOQueryUpdateBarang.FieldValues['stok']:=ADOQueryUpdateBarang.FieldValues['stok']+ ADOQueryDetail.FieldValues['jumlah_retur'];

Universitas Kristen Petra

70

Segmen Program 4.7. Procedure Penyimpanan Penerimaan Retur Barang

(sambungan) ADOQueryUpdateBarang.FieldValues['nominal']:=strtoint(ADOQueryUpdateBarang.FieldValues['nominal'])+(strtoint(ADOQueryDetail.FieldVal ues['jumlah_retur'])*strtoint(ADOQueryDetail.FieldValues['d.harga_bersih'])); ADOQueryUpdateBarang.Post; ADOQueryDetail.Next; end; //insert ke penerimaan retur ADOQueryInsertPenerimaan.Close; ADOQueryInsertPenerimaan.Parameters.ParamValues['ptgl']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertPenerimaan.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQueryInsertPenerimaan.ExecSQL; // insert ke detail PenerimaanRetur ADOQueryInsertDetailPenerimaanRetur.Close; ADOQueryInsertDetailPenerimaanRetur.Parameters.ParamValues['ptgl']:=datetostr(DateTimePicker1.Date); ADOQueryInsertDetailPenerimaanRetur.Parameters.ParamValues['pkoderetur']:=EditKode.Text; ADOQueryInsertDetailPenerimaanRetur.Parameters.ParamValues['pkodebrg']:=ADOQueryDetail.FieldValues['b.kode_barang']; ADOQueryInsertDetailPenerimaanRetur.Parameters.ParamValues['pjml']:=ADOQueryDetail.FieldValues['jumlah_retur']; ADOQueryInsertDetailPenerimaanRetur.Parameters.ParamValues['pharga']:=ADOQueryDetail.FieldValues['d.harga_bersih']; ADOQueryInsertDetailPenerimaanRetur.ExecSQL; FormShow(sender); bsSkinMessage1.MessageDlg('Data Penerimaan Retur Barang Disimpan',mtInformation,[mbOk],0); end else bsSkinMessage1.MessageDlg('Nota Retur Tidak Valid',mtError,[mbOk],0); end;

Pada waktu Segmen Program 4.8 dijalankan maka akan di cek jumlah

hutang lebih besar/lebih kecil dari total retur jika lebih besar maka akan langsung

dilakukan pengurangan hutang tanpa pengembalian uang dan total beli akan

dikurangi dengan jumlah hutang kemudian status lunas pada Tabel pembelian

akan diupdate menjadi true. Jika jumlah hutang lebih kecil total retur maka total

Universitas Kristen Petra

71

retur akan di kurangi hutang sisanya akan dikembalikan berupa uang. Kemudian

akan dilakukan posting ke jurnal secara otomatis sesuai dengan kondisi.

Segmen Program 4.8. Procedure Penyimpanan Penerimaan Retur Uang procedure TFormPenerimaanReturUang.ButtonSimpanClick(Sender: TObject); var no: integer; kodejurnal : string; begin if not ADOQueryDetail.eof then begin ADOQueryCekKodeJurnal.Close; ADOQueryCekKodeJurnal.Parameters.ParamValues['pkode']:='LL'; ADOQueryCekKodeJurnal.open; no:=ADOQueryCekKodeJurnal.FieldValues['nomor']; kodejurnal:='LL'+FormUtama.addzero(no,6); //edit nomor kode jurnal ADOQueryUpdateKodeJurnal.Close; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pno']:=no+1; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pkode']:='LL'; ADOQueryUpdateKodeJurnal.ExecSQL; if strtoint(LabelPengembalianUang.Caption) > 0 then begin //insert ke jurnal ( Kas D) ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); if comboboxvia.ItemIndex=0 then ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='1101' else ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='1102'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:='D'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=strtoint(LabelPengembalianUang.Caption); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:='Penerimaan Retur Pembelian '+ EditKode.Text; ADOQueryInsertJurnal.ExecSQL; end; if strtoint(LabelPengembalianHutang.Caption)>0 then begin // insert ke jurnal ( Hutang D ) ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date);

Universitas Kristen Petra

72

Segmen Program 4.8. Procedure Penyimpanan Penerimaan Retur Uang

(sambungan) ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='2101'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:='D'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=strtoint(LabelPengembalianHutang.Caption); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:='Penerimaan Retur Pembelian '+ EditKode.Text; ADOQueryInsertJurnal.ExecSQL; if ADOQueryInformasi.RecordCount>0 then begin ADOQueryUpdatePembelian.Close; ADOQueryUpdatePembelian.Parameters.ParamValues['pkode']:=ADOQueryInformasi.FieldValues['kode_beli']; ADOQueryUpdatePembelian.open; ADOQueryUpdatePembelian.Edit; ADOQueryUpdatePembelian.FieldValues['total_beli']:=strtoint(ADOQueryUpdatePembelian.FieldValues['total_beli'])-strtoint(LabelPengembalianHutang.Caption); ADOQueryUpdatePembelian.Post; end; if StrToInt(Labelyangmasih.Caption)<= strtoint(LabelTotalRetur.Caption) then begin ADOQueryUpdatePembelian.Close; ADOQueryUpdatePembelian.Parameters.ParamValues['pkode']:=ADOQueryInformasi.FieldValues['kode_beli']; ADOQueryUpdatePembelian.open; ADOQueryUpdatePembelian.Edit; ADOQueryUpdatePembelian.FieldValues['lunas']:=True; ADOQueryUpdatePembelian.Post; end; end; // insert ke jurnal ( Retur Pembelian K ) ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:='5103'; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:='K'; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=strtoint(LabelTotalRetur.Caption); ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:='Penerimaan Retur Pembelian '+ EditKode.Text; ADOQueryInsertJurnal.ExecSQL; //insert ke penerimaan retur ADOQueryInsertPenerimaan.Close; ADOQueryInsertPenerimaan.Parameters.ParamValues['ptgl']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertPenerimaan.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQueryInsertPenerimaan.ExecSQL; FormShow(sender); bsSkinMessage1.MessageDlg('Data Penerimaan Retur Uang Disimpan',mtInformation,[mbOk],0); end else bsSkinMessage1.MessageDlg('Nota Retur Tidak Valid',mtError,[mbOk],0); end;

Universitas Kristen Petra

73

4.3.5. Menyimpan Pemakaian Barang Secara FIFO

SegmenProgram 4.9 digunakan untuk memasukan data pemakaian barang

pada Tabel pemakaian barang. Data stok pada Tabel barang akan diupdate sesuai

pemakaian, serta pada Tabel detail pembelian akan di cek tanggal beli yang paling

awal untuk di ambil harga satuannya yang akan di masukkan pada Tabel

pemakaian barang.

Segmen Program 4.9. Procedure Pemakaian Barang FIFO procedure TFormPemakaianBarang.ButtonSimpanClick(Sender: TObject); var selesai : boolean; pakai,no : integer; jumlah : longint; kodejurnal : string[8]; begin jumlah:=0; if (EditKode.Text<>'') and (Editjumlah.EditText<>'') and (strtoint(Editjumlah.EditText)<= strtoint(LabelSisa.Caption)) then begin ADOQueryDetail_Pembelian.Close; ADOQueryDetail_Pembelian.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQueryDetail_Pembelian.open; ADOQueryDetail_Pembelian.First; selesai := False; pakai:=0; pakai := strtoint(Editjumlah.EditText); ADOQuerycekjumlahstok.Close; ADOQuerycekjumlahstok.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQuerycekjumlahstok.open; while not selesai do begin if ADOQueryDetail_Pembelian.FieldValues['jumlah_beli']-ADOQueryDetail_Pembelian.FieldValues['sudah_dipakai']>=pakai then begin selesai:=True; jumlah:=jumlah + pakai *ADOQueryDetail_Pembelian.FieldValues['harga_bersih']; ADOQueryUpdateDetailPembelian.Close; ADOQueryUpdateDetailPembelian.Parameters.ParamValues['psudah']:=ADOQueryDetail_Pembelian.FieldValues['sudah_dipakai']+pakai; ADOQueryUpdateDetailPembelian.Parameters.ParamValues['pkodebrg']:=EditKode.Text;

Universitas Kristen Petra

74

Segmen Program 4.9. Procedure Pemakaian Barang FIFO (sambungan) ADOQueryUpdateDetailPembelian.Parameters.ParamValues['pkodebeli']:=ADOQueryDetail_Pembelian.FieldValues['kode_beli']; ADOQueryUpdateDetailPembelian.ExecSQL; end else begin ADOQueryUpdateDetailPembelian.Close; ADOQueryUpdateDetailPembelian.Parameters.ParamValues['psudah']:=ADOQueryDetail_Pembelian.FieldValues['jumlah_beli']; ADOQueryUpdateDetailPembelian.Parameters.ParamValues['pkodebrg']:=EditKode.Text; ADOQueryUpdateDetailPembelian.Parameters.ParamValues['pkodebeli']:=ADOQueryDetail_Pembelian.FieldValues['kode_beli']; ADOQueryUpdateDetailPembelian.ExecSQL; pakai:=pakai-(ADOQueryDetail_Pembelian.FieldValues['jumlah_beli']-ADOQueryDetail_Pembelian.FieldValues['sudah_dipakai']); jumlah:=jumlah+(ADOQueryDetail_Pembelian.FieldValues['jumlah_beli']-ADOQueryDetail_Pembelian.FieldValues['sudah_dipakai']) * ADOQueryDetail_Pembelian.FieldValues['harga_bersih']; ADOQueryDetail_Pembelian.Next; end; end; ADOQueryInsertPemakaian.Close; ADOQueryInsertPemakaian.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertPemakaian.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQueryInsertPemakaian.Parameters.ParamValues['pjumlah']:=Editjumlah.EditText; ADOQueryInsertPemakaian.Parameters.ParamValues['pletak']:=ComboBox2.Tex ADOQueryInsertPemakaian.Parameters.ParamValues['pnominal']:=jumlah; ADOQueryInsertPemakaian.ExecSQL; ADOQueryUpdateBarang.Close; ADOQueryUpdateBarang.Parameters.ParamValues['pkode']:=EditKode.Text; ADOQueryUpdateBarang.Parameters.ParamValues['pstok']:=ADOQuerycekjumlahstok.FieldValues['stok']-strtoint(Editjumlah.EditText); ADOQueryUpdateBarang.Parameters.ParamValues['pnominal']:=StrToInt(ADOQuerycekjumlahstok.FieldValues['nominal'])-jumlah; ADOQueryUpdateBarang.ExecSQL; FormShow(sender); FormUtama.FormShow(sender); end else begin bsSkinMessage1.MessageDlg('Input data Pemakaian ada yang salah',mtError,[mbOk],0); Editjumlah.SetFocus; end;

end;

Universitas Kristen Petra

75

4.3.6. Penyimpanan Proses Penerimaan Kas

SegmenProgram 4.10 digunakan untuk menyimpan transaksi kas masuk

seperti pendapatan bunga, penambahan modal oleh pemilik (Investasi), dan lain-

lain ke Tabel jurnal.

Segmen Program 4.10. Procedure Penyimpanan Penerimaan Kas procedure TFormKasMasuk.ButtonOKClick(Sender: TObject); var kodejurnal : string[8]; no : integer; begin ADOQueryNomorKodeJurnal.Close; ADOQueryNomorKodeJurnal.Parameters.ParamValues['pkode']:='KM'; ADOQueryNomorKodeJurnal.Open; no:=ADOQueryNomorKodeJurnal.FieldValues['nomor']; kodejurnal:='KM'+FormUtama.addzero(no,6); ADOQueryUpdateKodeJurnal.Close; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pnomor']:=no+1; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pkode']:='KM'; ADOQueryUpdateKodeJurnal.ExecSQL; ADOQueryTempDebet.Close; ADOQueryTempDebet.Open; ADOQueryTempDebet.First; while not ADOQueryTempDebet.Eof do begin ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:=ADOQueryTempDebet.FieldValues['kode_akun']; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:=ADOQueryTempDebet.FieldValues['posisi']; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=ADOQueryTempDebet.FieldValues['saldo']; ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:=EditKeterangan.Text; ADOQueryInsertJurnal.ExecSQL; ADOQueryTempDebet.Next; end;

Universitas Kristen Petra

76

Segmen Program 4.10. Procedure Penyimpanan Penerimaan Kas (sambungan) ADOQueryTempKredit.Close; ADOQueryTempKredit.Open; ADOQueryTempKredit.First; while not ADOQueryTempKredit.Eof do begin ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:=ADOQueryTempKredit['kode_akun']; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:=ADOQueryTempKredit['posisi']; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=ADOQueryTempKredit['saldo']; ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:=EditKeterangan.Text; ADOQueryInsertJurnal.ExecSQL; ADOQueryTempKredit.Next; end; bsSkinMessage1.MessageDlg('Entry kas masuk berhasil',mtInformation,[mbOk],0); FormShow(sender); end;

4.3.7. Penyimpanan Pengeluaran Kas

SegmenProgram 4.11 digunakan untuk menyimpan data kas keluar ke

Tabel jurnal seperti pembayaran beban operasional,beban non operasional, dan

prive oleh pemilik.

Segmen Program 4.11. Procedure Penyimpanan Pengeluaran Kas procedure TFormKasKeluar.ButtonOKClick(Sender: TObject); var kodejurnal : string[8]; no : integer; begin ADOQueryNomorKodeJurnal.Close; ADOQueryNomorKodeJurnal.Parameters.ParamValues['pkode']:='KK'; ADOQueryNomorKodeJurnal.Open; no:=ADOQueryNomorKodeJurnal.FieldValues['nomor']; kodejurnal:='KK'+FormUtama.addzero(no,6); ADOQueryUpdateKodeJurnal.Close; ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pnomor']:=no+1;

Universitas Kristen Petra

77

Segmen Program 4.11. Procedure Penyimpanan Pengeluaran Kas (sambungan) ADOQueryUpdateKodeJurnal.Parameters.ParamValues['pkode']:='KK'; ADOQueryUpdateKodeJurnal.ExecSQL; ADOQueryTempDebet.Close; ADOQueryTempDebet.Open; ADOQueryTempDebet.First; while not ADOQueryTempDebet.Eof do begin ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:=ADOQueryTempDebet.FieldValues['kode_akun']; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:=ADOQueryTempDebet.FieldValues['posisi']; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=ADOQueryTempDebet.FieldValues['saldo']; ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:=EditKeterangan.Text; ADOQueryInsertJurnal.ExecSQL; ADOQueryTempDebet.Next; end; ADOQueryTempKredit.Close; ADOQueryTempKredit.Open; ADOQueryTempKredit.First; while not ADOQueryTempKredit.Eof do begin ADOQueryInsertJurnal.Close; ADOQueryInsertJurnal.Parameters.ParamValues['pnumber']:= kodejurnal; ADOQueryInsertJurnal.Parameters.ParamValues['ptanggal']:=DateToStr(DateTimePicker1.Date); ADOQueryInsertJurnal.Parameters.ParamValues['pkode']:=ADOQueryTempKredit['kode_akun']; ADOQueryInsertJurnal.Parameters.ParamValues['pposisi']:=ADOQueryTempKredit.FieldValues['posisi']; ADOQueryInsertJurnal.Parameters.ParamValues['psaldo']:=ADOQueryTempKredit['saldo']; ADOQueryInsertJurnal.Parameters.ParamValues['pketerangan']:=EditKeterangan.Text; ADOQueryInsertJurnal.ExecSQL; ADOQueryTempKredit.Next; end; bsSkinMessage1.MessageDlg('Entry kas keluar berhasil',mtInformation,[mbOk],0); FormShow(sender);

end;

Universitas Kristen Petra

78

4.3.8. Proses Tutup Buku

SegmenProgram 4.12 digunakan untuk mengupdate status tutup pada

Tabel periode yang saat itu sedang berlangsung menjadi true dan tanggal akhir

periode pada Tabel periode akan di cek apakah sama dengan tanggal hari ini jika

tidak sama akan disesuaikan dan tanggal awal periode otomatis akan disesuaikan

juga. Ketika periode sudah ditutup maka tidak akan ada data lagi yang

dimasukkan selama periode tersebut. Pada proses penutupan buku juga dilakukan

posting Tabel jurnal ke Tabel buku besar serta sisa persediaan barang yang ada

pada periode itu akan dimasukkan juga ke dalam Tabel buku besar sebagai

persediaan barang dagang periode berikutnya dan pengisian ke Tabel stok awal.

serta akan ditampilkan jurnal penutup pada akhir proses.

Segmen Program 4.12. Procedure Tutup Buku procedure TFormTutupBuku.ButtonOKClick(Sender: TObject); var saldoawal, saldodebet, saldokredit, beban : integer; periode : string[3]; tgl1,tgl2 : TDate; begin ADOQueryDelete.Close; ADOQueryDelete.ExecSQL; //Update periode ADOQueryPeriode.Close; ADOQueryPeriode.Open; periode:=ADOQueryPeriode.FieldValues['kode_periode']; ADOQueryPeriode.Edit; ADOQueryPeriode.FieldValues['akhir_periode']:=date(); ADOQueryPeriode.FieldValues['tutup']:=true; ADOQueryPeriode.Post; tgl1:=ADOQueryPeriode.FieldValues['awal_periode']; tgl2:=ADOQueryPeriode.FieldValues['akhir_periode']; ADOQueryPeriode.Next; ADOQueryPeriode.Edit; ADOQueryPeriode.FieldValues['awal_periode']:=date()+1; ADOQueryPeriode.Post; //Insert stok awal ADOQueryPeriode.Close; ADOQueryPeriode.Open; ADOQueryBarang.Close; ADOQueryBarang.Open; ADOQueryBarang.First; while not ADOQueryBarang.Eof do begin ADOQueryInsertStokAwal.Close; ADOQueryInsertStokAwal.Parameters.ParamValues['pkode']:=ADOQueryBarang.FieldValues['kode_barang']; ADOQueryInsertStokAwal.Parameters.ParamValues['pperiode']:=ADOQueryPeriode.FieldValues['kode_periode'];

Universitas Kristen Petra

79

Segmen Program 4.12. Procedure Tutup Buku (sambungan) ADOQueryInsertStokAwal.Parameters.ParamValues['pstokawal']:=ADOQueryBarang.FieldValues['stok']; ADOQueryInsertStokAwal.ExecSQL; ADOQueryBarang.Next; end; ADOQueryNominal.Close; ADOQueryNominal.Open; //insert sisa stok ADOQueryInsertSisaStock.Close; ADOQueryInsertSisaStock.Parameters.ParamValues['pperiode']:=periode; ADOQueryInsertSisaStock.Parameters.ParamValues['psisa']:=ADOQueryNominal.FieldValues['sisa']; ADOQueryInsertSisaStock.ExecSQL; // insert persediaan barang ke buku besar ADOQueryInsertBukuBesar.Close; ADOQueryInsertBukuBesar.Parameters.ParamValues['pkode']:='1104'; ADOQueryInsertBukuBesar.Parameters.ParamValues['pperiode']:=ADOQueryPeriode.FieldValues['kode_periode']; ADOQueryInsertBukuBesar.Parameters.ParamValues['psaldoawal']:=ADOQueryNominal.FieldValues['sisa']; ADOQueryInsertBukuBesar.ExecSQL; ADOQueryCOA.Close; ADOQueryCOA.Parameters.ParamValues['pkode']:='1%'; ADOQueryCOA.Open; ADOQueryCOA.First; while not ADOQueryCOA.Eof do begin ADOQueryJurnalDebet.Close; ADOQueryJurnalDebet.Parameters.ParamValues['pkode']:=ADOQueryCOA.FieldValues['kode_akun']; ADOQueryJurnalDebet.Parameters.ParamValues['ptgl1']:=DateToStr(tgl1); ADOQueryJurnalDebet.Parameters.ParamValues['ptgl2']:=DateToStr(tgl2); ADOQueryJurnalDebet.Open; if ADOQueryJurnalDebet.RecordCount=0 then saldodebet:=0 else saldodebet:=ADOQueryJurnalDebet.FieldValues['total']; ADOQueryJurnalKredit.Close; ADOQueryJurnalKredit.Parameters.ParamValues['pkode']:=ADOQueryCOA.FieldValues['kode_akun']; ADOQueryJurnalKredit.Parameters.ParamValues['ptgl1']:=DateToStr(tgl1); ADOQueryJurnalKredit.Parameters.ParamValues['ptgl2']:=DateToStr(tgl2); ADOQueryJurnalKredit.Open; if ADOQueryJurnalKredit.RecordCount=0 then saldokredit:=0 else saldokredit:=ADOQueryJurnalKredit.FieldValues['total']; ADOQuerySaldoAwal.Close; ADOQuerySaldoAwal.Parameters.ParamValues['pkode']:=ADOQueryCOA.FieldValues['kode_akun']; ADOQuerySaldoAwal.Parameters.ParamValues['pperiode']:=periode; ADOQuerySaldoAwal.Open; if ADOQuerySaldoAwal.RecordCount=0 then saldoawal:=0 else saldoawal:=ADOQuerySaldoAwal.FieldValues['saldo_awal']; //insert ke buku besar if ADOQueryCOA.FieldValues['kode_akun']<>'1104' then

begin ADOQueryInsertBukuBesar.Close;

Universitas Kristen Petra

80

Segmen Program 4.12. Procedure Tutup Buku (sambungan) ADOQueryInsertBukuBesar.Parameters.ParamValues['pkode']:=ADOQueryCOA.FieldValues['kode_akun']; ADOQueryInsertBukuBesar.Parameters.ParamValues['pperiode']:=ADOQueryPeriode.FieldValues['kode_periode']; if ADOQueryCOA.FieldValues['posisi']='D' then ADOQueryInsertBukuBesar.Parameters.ParamValues['psaldoawal']:=saldoawal+saldodebet-saldokredit else ADOQueryInsertBukuBesar.Parameters.ParamValues['psaldoawal']:=saldoawal+saldokredit-saldodebet; ADOQueryInsertBukuBesar.ExecSQL; end; ADOQueryCOA.Next; end; //jurnal penutup //insert pendapatan ADOQueryTotalPendapatan.Close; ADOQueryTotalPendapatan.Parameters.ParamValues['ptanggal1']:=DateToStr(tgl1); ADOQueryTotalPendapatan.Parameters.ParamValues['ptanggal2']:=DateToStr(tgl2); ADOQueryTotalPendapatan.Open; ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='1'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:='Pendapatan'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=ADOQueryTotalPendapatan.FieldValues['total']; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=0; ADOQueryinserttemp.Parameters.ParamValues['pno']:='1'; ADOQueryinserttemp.ExecSQL; ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='1'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:=' Ikhtisar laba/rugi'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=0; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=ADOQueryTotalPendapatan.FieldValues['total']; ADOQueryinserttemp.Parameters.ParamValues['pno']:=''; ADOQueryinserttemp.ExecSQL; //insert total beban beban :=0; ADOQueryTotalBeban.Close; ADOQueryTotalBeban.Parameters.ParamValues['ptanggal1']:=DateToStr(tgl1); ADOQueryTotalBeban.Parameters.ParamValues['ptanggal2']:=DateToStr(tgl2); ADOQueryTotalBeban.Open; ADOQueryPemakaian.Close; ADOQueryPemakaian.Parameters.ParamValues['ptanggal1']:=DateToStr(tgl1); ADOQueryPemakaian.Parameters.ParamValues['ptanggal2']:=DateToStr(tgl2);

Universitas Kristen Petra

81

Segmen Program 4.12. Procedure Tutup Buku (sambungan) ADOQueryPemakaian.Open; if ADOQueryPemakaian.RecordCount>0 then beban:=ADOQueryPemakaian.FieldValues['nominal']; while not ADOQueryTotalBeban.Eof do begin beban:=beban+ADOQueryTotalBeban.FieldValues['total']; ADOQueryTotalBeban.Next; end; ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='2'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:='Ikhtisar laba/rugi'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=beban; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=0; ADOQueryinserttemp.Parameters.ParamValues['pno']:='2'; ADOQueryinserttemp.ExecSQL; ADOQueryTotalBeban.First; while not ADOQueryTotalBeban.Eof do begin ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='2'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:=' ' + ADOQueryTotalBeban.FieldValues['nama_akun']; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=0; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=ADOQueryTotalBeban.FieldValues['total']; ADOQueryinserttemp.Parameters.ParamValues['pno']:=''; ADOQueryinserttemp.ExecSQL; ADOQueryTotalBeban.Next; end; ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='2'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:=' Biaya Pemakaian Barang'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=0; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=ADOQueryPemakaian.FieldValues['nominal']; ADOQueryinserttemp.Parameters.ParamValues['pno']:=''; ADOQueryinserttemp.ExecSQL; //insert modal ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='3'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:='Ikhtisar laba/rugi'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=strtoint(ADOQueryTotalPendapatan.FieldValues['total'])-beban; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=0; ADOQueryinserttemp.Parameters.ParamValues['pno']:='3'; ADOQueryinserttemp.ExecSQL; ADOQueryinserttemp.Close;

Universitas Kristen Petra

82

Segmen Program 4.12. Procedure Tutup Buku (sambungan) ADOQueryinserttemp.Parameters.ParamValues['pkode']:='3'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:=' Modal PT.Sumberanyar Winduprima'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=0; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=strtoint(ADOQueryTotalPendapatan.FieldValues['total'])-beban; ADOQueryinserttemp.Parameters.ParamValues['pno']:=''; ADOQueryinserttemp.ExecSQL; //insert prive ADOQueryTotalPrive.Close; ADOQueryTotalPrive.Parameters.ParamValues['ptanggal1']:=DateToStr(tgl1); ADOQueryTotalPrive.Parameters.ParamValues['ptanggal2']:=DateToStr(tgl2); ADOQueryTotalPrive.Open; ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='4'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:='Modal PT.Sumberanyar Winduprima'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=ADOQueryTotalPrive.FieldValues['total']; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=0; ADOQueryinserttemp.Parameters.ParamValues['pno']:='4'; ADOQueryinserttemp.ExecSQL; ADOQueryinserttemp.Close; ADOQueryinserttemp.Parameters.ParamValues['pkode']:='4'; ADOQueryinserttemp.Parameters.ParamValues['pnama']:=' Prive PT.Sumberanyar Winduprima'; ADOQueryinserttemp.Parameters.ParamValues['pdebet']:=0; ADOQueryinserttemp.Parameters.ParamValues['pkredit']:=ADOQueryTotalPrive.FieldValues['total']; ADOQueryinserttemp.Parameters.ParamValues['pno']:=''; ADOQueryinserttemp.ExecSQL; bsSkinMessage1.MessageDlg('Proses Tutup Buku Berhasil',mtInformation,[mbOk],0); FormUtama.FormShow(sender); ORJurnalPenutup.adoquery1.close; ORJurnalPenutup.adoquery1.open; ORJurnalPenutup.Lperiode.Caption:='Periode ' + DateToStr(tgl1) + ' sampai ' + DateToStr(tgl2); ORJurnalPenutup.QuickRep1.Preview; close; end;