Aplikasi Work Order Dan Akuntansi VB 6.0
Program ini merupakan sebuah ilustrasi
tentang pemesanan barang bubut, seperti pintu gerbang, teralis jendela, pagar
rumah, tangga dalam rumah dan sejenisnya. Pola ini dapat digunakan pada
pemesanan barang yang lainnya.
Proses yang terjadi dalam program ini
adalah sebagai berikut :
1.
Penyimpanan uang kas oleh
pemilik perusahaan
2.
Pemesan datang meminta
dibuatkan barang misalnya berupa pintu gerbang
3.
Pemilik perusahaan menyebutkan
harga pembuatan barang pesanan tersebut
4.
Pemesan membayar uang muka atau
dilunasi sekaligus
5.
Pemilik perusahaan membeli
bahan baku yang
diperlukan dan melakukan kalkulasi biaya pembuatan barang pesanan. Dalam proses
inilah kalkulasi akuntasi terjadi
6.
Barang yang telah jadi
dikirimkan kepada pemesan
7.
Pembuatan laporan pemesanan dan
pengiriman barang
2.1 Merancang Database Dan Bentuk Relasi
Tabel
Langkah awal yang harus dilakukan adalah
membuat database dnegan nama DBAKN.mdb. kemudian membuat beberapa tabel yang
diperlukan antara lain:
Relasi tabel pada program akuntansi
terlihat pada gambar di bawah ini:
Itulah ilustrasi program pemesanan barang
ini. Langkah berikutnya adalah membuat database sesuai dengan spesifikasi file
yang disebutkan di atas, kemudian membuat project di VB. Agar akses ke database
lebih efektif dan efisien maka sebaiknya dibuat sebuah module.
2.2 Membuat
Module
·
Aktifkan VB
·
Klik menu project
·
Add module
·
Open
·
Ketiklah program berikut ini.
Public Conn As New
ADODB.Connection
Public RSPerkiraan
As ADODB.Recordset
Public RSPemesan
As ADODB.Recordset
Public RSMasterPO
As ADODB.Recordset
Public RSDetailPO
As ADODB.Recordset
Public RSBukuBesar
As ADODB.Recordset
Public RSKASIR As
ADODB.Recordset
Public RSKas As
ADODB.Recordset
Public RSArusKas
As ADODB.Recordset
Public Sub
BukaDB()
Set Conn = New
ADODB.Connection
Set RSPerkiraan =
New ADODB.Recordset
Set RSPemesan =
New ADODB.Recordset
Set RSMasterPO =
New ADODB.Recordset
Set RSDetailPO =
New ADODB.Recordset
Set RSBukuBesar =
New ADODB.Recordset
Set RSKASIR = New
ADODB.Recordset
Set RSKas = New
ADODB.Recordset
Set RSArusKas =
New ADODB.Recordset
Conn.Open
"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &
"\DBAKN.mdb"
End Sub
2.3 Login
Koding :
Dim A As Byte
Dim B As Byte
Private Sub
Form_Load()
TxtNamaKsr.MaxLength
= 30
TxtPasswordKsr.MaxLength
= 10
TxtPasswordKsr.PasswordChar
= "X"
TxtPasswordKsr.Enabled
= False
TxtKodeKsr.Enabled
= False
End Sub
Private Sub
TxtNamaKsr_KeyPress(Keyascii As Integer)
Keyascii =
Asc(UCase(Chr(Keyascii)))
If Keyascii = 27
Then Unload Me
If Keyascii = 13
Then
Call BukaDB
RSKASIR.Open "Select NamaKsr from
Kasir where NamaKsr ='" & TxtNamaKsr & "'", Conn
If RSKASIR.EOF Then
A = A + 1
If 1 - A = 0 Then
MsgBox "Kesempatan ke "
& A & " Salah" & Chr(13) & _
"Nama '" &
TxtNamaKsr & "' tidak dikenal"
TxtNamaKsr = ""
TxtNamaKsr.SetFocus
ElseIf 2 - A = 0 Then
MsgBox "Kesempatan ke "
& A & " Salah" & Chr(13) & _
"Nama '" &
TxtNamaKsr & "' tidak dikenal"
TxtNamaKsr = ""
TxtNamaKsr.SetFocus
ElseIf 3 - A = 0 Then
MsgBox "Kesempatan ke "
& A & " Salah" & Chr(13) & _
"Nama '" &
TxtNamaKsr & "' tidak dikenal" & Chr(13) & _
"Kesempatan habis, Ulangi
dari awal"
Unload Me
End If
Else
TxtNamaKsr.Enabled = False
TxtPasswordKsr.Enabled = True
TxtPasswordKsr.SetFocus
End If
End If
End Sub
Private Sub
txtpasswordksr_KeyPress(Keyascii As Integer)
Keyascii =
Asc(UCase(Chr(Keyascii)))
If Keyascii = 27
Then Unload Me
Dim KodeKasir As
String
Dim NamaKasir As
String
If Keyascii = 13
Then
Call BukaDB
RSKASIR.Open "Select * from Kasir
where NamaKsr ='" & TxtNamaKsr & "' and PasswordKsr='"
& TxtPasswordKsr & "'", Conn
If RSKASIR.EOF Then
B = B + 1
If 1 - B = 0 Then
MsgBox "Kesempatan ke "
& B & " Salah"
TxtPasswordKsr = ""
TxtPasswordKsr.SetFocus
ElseIf 2 - B = 0 Then
MsgBox "Kesempatan ke "
& B & " Salah"
TxtPasswordKsr = ""
TxtPasswordKsr.SetFocus
ElseIf 3 - B = 0 Then
MsgBox "Kesempatan ke "
& B & " Salah"
Unload Me
End If
Else
Unload Me
Menu.Show
Order.Caption = "Data Pesanan
" & TxtNamaKsr
End If
End If
End Sub
2.4 Kasir
2.5 Simpan
Kas Sebagai Modal
Koding :
Private Sub
Form_Load()
'buka database
Call BukaDB
'tanggal diambil
dari sistem komputer
Tanggal = Date
End Sub
Private Sub
Jumlah_KeyPress(Keyascii As Integer)
'jika menekan
enter maka
If Keyascii = 13
Then
'jika jumlah kosong atau jumlah nol maka
If Jumlah = "" Or Jumlah = 0 Then
'tampilkan pesan
MsgBox "jumlah pemasukan masih
kosong"
Jumlah.SetFocus
Exit Sub
Else
'jika jumlah telah diisi maka ubah
formatnya
Jumlah = Format(Jumlah,
"###,###,###")
'tampilkan pesan
Pesan = MsgBox("Data sudah
benar..?", vbYesNo)
'jika pesan dibawaj YES maka
If Pesan = vbYes Then
Dim Simpankas As String
'simpan data ke tabel kas,
keterangan diambil dari caption form
Simpankas = "insert into kas
(tanggal,Keterangan,DEBET) values ('" & Tanggal & "','"
& Kas.Caption & "','" & Jumlah & "')"
Conn.Execute (Simpankas)
Jumlah = ""
Tanggal.SetFocus
End If
End If
End If
End Sub
2.6 Pemesan
2.7 Kode
Perkiraan
2.8 Pemesanan
Barang
Alur proses dalam program pemesanan
barang ini adalah sebagai berikut :
1.
Nomor PO otomatis
2.
Mengisi data pemesan cukup
dengan memilih atau mengetiknya dalam combo
3.
Isilah berapa jumlah ordernya
4.
Berapa uang muka yang
dibayarkan
5.
Transaksi barang-barang yang
diperlukan dalam pembuatan pesanan dimulai dengan memilih tanggal, kemudian
diisi barang apa saja yang dibeli
6.
Kode barang atau account yang
dibeli cukup dengan memilih dalam list kemudian menekan enter
7.
Setelah itu isilah berapa
jumlah dana yang dikeluarkan untuk pembelian bahan-bahan pesanan tersebut.
2.9 Pengiriman Barang
2.10 Laporan
Pembuatan laporan dapat dilakukan
selengkap mungkin yaitu :
1.
Laporan pemesanan per nomor
faktur
2.
Laporan pemesanan harian,
mingguan dan bulanan
3.
Laporan pemesanan yang sudah
dikirim atau belum dikirim
4.
Laporan pemesanan yang sudah
lunas atau belum lunas
5.
Laporan biaya-biaya (harian,
mingguan dan bulanan)
6.
Laporan biaya-biaya per kode
perkiraan
7.
Dan sebagainya
Langkah awalnya adalah membuat form
dengan bentuk seperti gambar di bawah ini :
Koding :
Private Sub
Form_Load()
Call BukaDB
'buka tabel
masterpo
RSMasterPO.Open
"Select * From MasterPO order By 1", Conn
RSMasterPO.Requery
Do Until
RSMasterPO.EOF
'tampilkan nomor po di combo6
Combo6.AddItem RSMasterPO!NOPO
RSMasterPO.MoveNext
Loop
Conn.Close
Call BukaDB
'buka tabel
masterpo dan tampilkan field Ket1
RSMasterPO.Open
"Select distinct Ket1 From MasterPO", Conn
RSMasterPO.Requery
Do Until
RSMasterPO.EOF
'tampilkan ket1 di combo7
Combo7.AddItem RSMasterPO!ket1
RSMasterPO.MoveNext
Loop
Conn.Close
Call BukaDB
RSMasterPO.Open
"Select distinct Ket2 From MasterPO", Conn
RSMasterPO.Requery
Do Until
RSMasterPO.EOF
'tampilkan field ket2 di combo8
Combo8.AddItem RSMasterPO!ket2
RSMasterPO.MoveNext
Loop
Conn.Close
Call BukaDB
'buka tabel
masterpo dan ambil tanggalnya saja
RSMasterPO.Open
"Select Distinct TGLPO From MasterPO order By 1", Conn
RSMasterPO.Requery
Do Until
RSMasterPO.EOF
'tampilkan tglpo di combo1,2 dan 3
Combo1.AddItem RSMasterPO!TglPO
Combo2.AddItem Format(RSMasterPO!TglPO,
"YYYY ,MM, DD")
Combo3.AddItem Format(RSMasterPO!TglPO,
"YYYY ,MM, DD")
RSMasterPO.MoveNext
Loop
Conn.Close
Call BukaDB
Dim RSTGL As New
ADODB.Recordset
RSTGL.Open
"select distinct tGLpo from MASTERPO", Conn
Do While Not
RSTGL.EOF
'tampilkan tglpo berupa angka bulan di
combo4
Combo4.AddItem Format(RSTGL!TglPO,
"MM")
RSTGL.MoveNext
Loop
Conn.Close
Call BukaDB
Dim RSTHN As New
ADODB.Recordset
RSTHN.Open
"select distinct year(tGLpo) as sss
from MASTERPO", Conn
Do While Not
RSTHN.EOF
'tampilkan angka tahun di combo5
Combo5.AddItem RSTHN!sss
RSTHN.MoveNext
Loop
Conn.Close
End Sub
'lap per nomor po
Private Sub
Combo6_Click()
CR.SelectionFormula =
"{MasterPO.NOPO}='" & Combo6 & "'"
CR.ReportFileName = App.Path &
"\Faktur order.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
'Lap Harian
Private Sub
Combo1_Click()
CR.SelectionFormula =
"Totext({MasterPO.TGLPO})='" & Combo1 & "'"
CR.ReportFileName = App.Path &
"\Lap Order Harian.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
'Lap Mingguan (Tgl
Antara)
Private Sub
Combo3_Click()
If Combo2 = "" Then
MsgBox "TGLPO awal kosong", ,
"Informasi"
Combo2.SetFocus
Exit Sub
Else
If Combo3 < Combo2 Or Combo2 >
Combo3 Then
MsgBox "Tanggal terbalik"
Exit Sub
ElseIf Combo3 = Combo2 Then
MsgBox "pilih tanggal yang
berbeda"
Exit Sub
End If
End If
CR.SelectionFormula =
"{MasterPO.TGLPO} in date (" & Combo2.Text & ") to date
(" & Combo3.Text & ")"
CR.ReportFileName = App.Path &
"\Lap Order Mingguan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
'Lap Bulanan
Private Sub
Combo5_Click()
Call BukaDB
RSMasterPO.Open "select * from
MasterPO where month(TGLPO)='" & Val(Combo4) & "' and
year(TGLPO)='" & (Combo5) & "'", Conn
If RSMasterPO.EOF Then
MsgBox "Data tidak ditemukan"
Exit Sub
Combo4.SetFocus
End If
CR.SelectionFormula = "Month({MasterPO.TGLPO})="
& Val(Combo4.Text) & " and Year({MasterPO.TGLPO})=" &
Val(Combo5.Text)
CR.ReportFileName = App.Path &
"\Lap Order Bulanan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub
Combo7_Click()
CR.SelectionFormula =
"{MASTERPO.KET1}='" & Combo7 & "'"
CR.ReportFileName = App.Path &
"\Lap KET1.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub
Combo8_Click()
CR.SelectionFormula =
"{MASTERPO.KET2}='" & Combo8 & "'"
CR.ReportFileName = App.Path &
"\Lap KET2.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
2.10.1 Laporan
Pemesanan Barang Per Nomor Faktur
2.10.2 Laporan
Pemesanan Lunas / Belum Lunas
2.10.3 Laporan
Pemesanan Dikirm / Belum Dikirim
2.11 Laporan arus kas
Sebelum membuat laporan arus kas, buatlah
form dengan bentuk seperti gambar di bawah ini:
Koding
:
Private Sub
Form_Load()
'buka database
Call BukaDB
'buka tabel kas
dan tampilkan tanggalnya secara terurut dari yang terkecil
RSKas.Open
"Select Distinct Tanggal From Kas order By 1", Conn
RSKas.Requery
'tampilkan tanggal
di combo1,2 dan 3
Do Until RSKas.EOF
Combo1.AddItem RSKas!Tanggal
Combo2.AddItem Format(RSKas!Tanggal,
"YYYY ,MM, DD")
Combo3.AddItem Format(RSKas!Tanggal,
"YYYY ,MM, DD")
RSKas.MoveNext
Loop
'definisikan
recordset baru
Dim RSTGL As New
ADODB.Recordset
'buka tabel kas
dan ambil angka bulannya saja dari field tanggal
RSTGL.Open
"select distinct Tanggal from Kas", Conn
'tampilkan
berulang2 bulannya dengan format 2 angka
Do While Not
RSTGL.EOF
'tampilkan angka bulan di combo4
Combo4.AddItem Format(RSTGL!Tanggal,
"MM")
RSTGL.MoveNext
Loop
'ciptakan
recordset baru
Dim RSTHN As New
ADODB.Recordset
'buka tabel kas
dan ambil angka tahunya saja dari field tanggal
RSTHN.Open
"select distinct year(Tanggal) as
sss from Kas", Conn
'tampilkan angka
tahun di combo5
Do While Not
RSTHN.EOF
Combo5.AddItem RSTHN!sss
RSTHN.MoveNext
Loop
Conn.Close
End Sub
'Lap Harian
Private Sub
Combo1_Click()
'saring laporan dari tabel kas yang
tanggalnya dipilih di combo1
CR.SelectionFormula =
"Totext({Kas.Tanggal})='" & Combo1 & "'"
'panggil file laporan lap arus kas harian
CR.ReportFileName = App.Path &
"\Lap arus kas harian.rpt"
'tampilkan satu layar penuh
CR.WindowState = crptMaximized
'jika ada perubahan isi data maka data
diupdate
CR.RetrieveDataFiles
'tampilkan ke layar
CR.Action = 0
End Sub
'Lap Mingguan (Tgl
Antara)
Private Sub
Combo3_Click()
'jika tanggal awal kosong, tampilkan pesan
If Combo2 = "" Then
MsgBox "Tanggal awal kosong",
, "Informasi"
Combo2.SetFocus
Exit Sub
Else
'jika tanggal awal lebih besar dari
tanggal akhir, tampilkan pesan
If Combo3 < Combo2 Or Combo2 >
Combo3 Then
MsgBox "Tanggal terbalik"
Exit Sub
'jika tgl awal = tgl akhir, tampilkan
pesan
ElseIf Combo3 = Combo2 Then
MsgBox "pilih tanggal yang
berbeda"
Exit Sub
End If
End If
'jika semua pilihan sudah benar maka,
saring laporang
'yang tgl awalnya =combo2 dan tgl
akhirnya=combo3
CR.SelectionFormula = "{Kas.Tanggal}
in date (" & Combo2.Text & ") to date (" &
Combo3.Text & ")"
'panggil file lap arus kas mingguan
CR.ReportFileName = App.Path &
"\Lap arus kas mingguan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
'Lap Bulanan
Private Sub
Combo5_Click()
'sebelum lap dipanggil cek datanya dulu
Call BukaDB
'buka tabel kas yg bulan dan tahunnya
dipilih di combo4 dan 5
RSKas.Open "select * from Kas where
month(Tanggal)='" & Val(Combo4) & "' and
year(Tanggal)='" & (Combo5) & "'", Conn
'jika data tidak ditemukan lap tidak usah
diloading, tapi munculkan pesan
If RSKas.EOF Then
MsgBox "Data tidak ditemukan"
Exit Sub
Combo4.SetFocus
End If
'jika datanya ada maka saring data dalam
laporan
CR.SelectionFormula =
"Month({Kas.Tanggal})=" & Val(Combo4.Text) & " and
Year({Kas.Tanggal})=" & Val(Combo5.Text)
'panggil file laporannya
CR.ReportFileName = App.Path &
"\Lap arus kas bulanan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
2.11.1 Laporan
Arus Kas Harian
2.11.2 Laporan
Arus Kas Mingguan
2.11.3 Laporan
Arus Kas Bulanan
2.12 Laporan Biaya-Biaya
Koding :
Private Sub
Form_Load()
Call BukaDB
Dim RS1 As New
ADODB.Recordset
RS1.Open
"select distinct perkiraan.kodeprk,perkiraan.namaprk from
perkiraan,detailpo where perkiraan.kodeprk=detailpo.kodeprk", Conn
List1.Clear
Do While Not
RS1.EOF
List1.AddItem RS1!KodePrk & Space(3)
& RS1!NamaPrk
RS1.MoveNext
Loop
Dim RSTGL As New
ADODB.Recordset
RSTGL.Open
"select distinct tanggal from detailpo", Conn
Do While Not
RSTGL.EOF
Combo1.AddItem Format(RSTGL!Tanggal,
"MM")
RSTGL.MoveNext
Loop
Dim RSTHN As New
ADODB.Recordset
RSTHN.Open
"select distinct year(tanggal) as
sss from detailpo", Conn
Do While Not
RSTHN.EOF
Combo2.AddItem RSTHN!sss
RSTHN.MoveNext
Loop
Conn.Close
End Sub
Private Sub
List1_Click()
If Combo1 =
"" Or Combo2 = "" Then
MsgBox "Bulan dan Tahun tidak boleh
kosong"
Combo1.SetFocus
Exit Sub
End If
Call BukaDB
Dim RS2 As New
ADODB.Recordset
RS2.Open
"select * from detailpo where month(tanggal)='" & Val(Combo1)
& "' and year(tanggal)='" & (Combo2) & "' and
kodeprk='" & Left(List1, 3) & "'", Conn
If RS2.EOF Then
MsgBox "Data tidak ditemukan"
Combo1.SetFocus
Exit Sub
Else
If Left(List1, 3) = "401" Then
CR.SelectionFormula =
"{Detailpo.Kodeprk}='" & Left(List1, 3) & "' and
Month({detailPO.tanggal})=" & Val(Combo1.Text) & " and
Year({Detailpo.Tanggal})=" & Val(Combo2.Text)
CR.ReportFileName = App.Path &
"\Lap oprs kendaraan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
Else
CR.SelectionFormula =
"{Detailpo.Kodeprk}='" & Left(List1, 3) & "' and
Month({detailPO.tanggal})=" & Val(Combo1.Text) & " and
Year({Detailpo.Tanggal})=" & Val(Combo2.Text)
CR.ReportFileName = App.Path &
"\Lap umum.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End If
End If
End Sub
2.12.1 Laporan
Buku Besar
pada kesempatan kali ini saya akan menunjukkan aplikasi work order atau pemesanan barang, asumsi dalam aplikasi ini adalah sebuah usaha bengkel bubut yang sering membuat (misal) pagar teralis, jendela, pintu dan lain-lain.
aplikasi ini dibuat dengan vb 6 dan database access 2003. anda bisa mengembangkannya dengan tools lain. proses dalam aplikasi ini adalah sebagai berikut :
1. entri data user
2. entri data barang
3. entri data perkiraan
4. entri data pemesanan barang
5. entri data pengiriman barang
6. proses pelaporan