Saturday, March 18, 2017

program aplikasi work order pemesanan barang vb 6


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


EmoticonEmoticon