aplikasi jual beli cash kredit vb net.pd

UUSRUSMAWAN.C M
PANDUAN MEMBUAT APLIKASI JUAL BELI TUNAI
ATAU KREDIT PLUS JURNAL AKUNTANSI
Dalam bab ini akan dijelaskan tentang aplikasi pembelian dan penjualan secara tunai dan kredit disertai
dengan jurnal akuntansinya. Aplikasi ini dapat diunduh pada tautan berikut ini.
Adapun langkah-langkah pembuatannya adalah sebagai berikut:

3.1 Membuat Project Baru
Langkah pertama yang harus dilakukan dalam pembuatan aplikasi ini adalah membuat project baru.
Caranya adalah sebagai berikut :
1.

Buka Microsoft Visual Studio 2008 (silakan gunakan versi yang anda miliki)

2.

Pilih Create Project

3.2 Memberi Nama Project
Setelah membuat project baru, langkah selanjutnya adalah memberi nama project.
1.


Ketik nama project, contoh "Aplikasi Jual Beli"

2.

Klik OK

UUSRUSMAWAN.C M

3.

Selanjutnya klik menu file

4.

Pilih Save All

5.

Tentukan direktori project


6.

Klik Browse

7.

Klik save

3.3 Membuat Database Dan Tabel
Setelah direktori project terbentuk, langkah berikutnya adalah membuat database disimpan di folder debug.
Lakukanlah langkah-langkah berikut ini:
1.

Buka Microsoft Office 2003

2.

Pilih Microsoft Access 2003


3.

Klik Create New File

4.

Pilih Blank Database

5.

tulis nama database misal "dbjualbeli". Pastikan posisi foldernya debug.

UUSRUSMAWAN.C M

6.

Klik Create

7.


Klik dua kali Create Table In design View

8.

Kemudian buatlah tabel-tabel seperti gambar berikut ini.

Catatan :
Tabel-tabel ini sudah tersedia dalam aplikasi dan dapat anda unduh pada tautan yang akan kami jelaskan di
halaman berikutnya. Dalam tabel-tabel master sudah tersedia contoh data yang dapat anda edit sesuai
kebutuhan.

3.4 Membuat Module Koneksi
Setelah membuat tabel-tabel yang diperlukan, langkah berikutnya adalah membuat module koneksi ke
database, caranya adalah sebagai berikut :
1. Klik Menu Project
2. Pilih Add Module
3. Klik Add

UUSRUSMAWAN.C M


4. Kemudian ketik koding berikut ini
Imports System.Data.OleDb
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Module Module1
Public
Public
Public
Public
Public

Conn As OleDbConnection
DA As OleDbDataAdapter
DS As DataSet
CMD As OleDbCommand
DR As OleDbDataReader

Public
Public
Public

Public
Public

cryRpt As New ReportDocument
crtableLogoninfos As New TableLogOnInfos
crtableLogoninfo As New TableLogOnInfo
crConnectionInfo As New ConnectionInfo
CrTables As Tables

Public Sub seting_laporan()
With crConnectionInfo
.ServerName = (Application.StartupPath.ToString &
"\DBJualBeli.mdb")
.DatabaseName = (Application.StartupPath.ToString &
"\DBJualBeli.mdb")
.UserID = ""
.Password = ""
End With
CrTables = cryRpt.Database.Tables
For Each CrTable In CrTables

crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
End Sub
Public Sub Koneksi()

UUSRUSMAWAN.C M
Conn = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data
source=DBJualBeli.mdb")
Conn.Open()
End Sub
End Module

Catatan :
Jika anda menggunakan database access 2007 atau 2010, maka string koneksi diubah menjadi sebagai
berikut:
Conn = New OleDbConnection("provider=microsoft.ACE.oledb.12.0;data
source=DBJualBeli.accdb")


Jika program mengalami error karena OS anda 64 bit, maka ubahlah setingnya sebagai berikut :
1. Klik Menu Project > Aplikasi Jual Beli properties...
2. Compile > Advance Compile Option
3. Ubah taget CPU menjadi x86 (32 bit) seperti gambar di bawah ini.

3.5 Form Login
Setelah membuat module koneksi ke database, langkah berikutnya adalah membuat form login dengan
bentuk seperti gambar di bawah ini.

Setelah itu ketiklah koding berikut ini.

UUSRUSMAWAN.C M
Imports System.Data.OleDb
Public Class Login
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TXTnama.KeyPress
If e.KeyChar = Chr(13) Then TXTPassword.Focus()
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TXTPassword.KeyPress

If e.KeyChar = Chr(13) Then BTNLogin.Focus()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNLogin.Click
Call Koneksi()
CMD = New OleDbCommand("select * from tbluser where nama_User= '" &
TXTnama.Text & "' and pwd_user='" & TXTPassword.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
'jika nama dan password tidak cocok huruf besar kecilnya maka login
dinyatakan gagal
If TXTnama.Text DR.Item("nama_user") And TXTPassword.Text
DR.Item("Pwd_user") Then
MsgBox("Login Gagal")
TXTnama.Clear()
TXTPassword.Clear()
TXTnama.Focus()
Exit Sub
Else

Me.Visible = False
MenuUtama.Show()
MenuUtama.Panel1.Text = DR.Item("Kode_user")
MenuUtama.Panel2.Text = DR.Item("nama_User")
MenuUtama.Panel3.Text = UCase(DR.Item("status_user"))
If MenuUtama.Panel3.Text "ADMIN" Then
MenuUtama.btnuser.Visible = False
Else
MenuUtama.btnuser.Visible = True
End If
End If
Else
MsgBox("Login Gagal")
TXTnama.Clear()
TXTPassword.Clear()
TXTnama.Focus()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNKeluar.Click

End
End Sub
End Class

6

UUSRUSMAWAN.C M
3.6 Form Menu Utama
Setelah membuat form login berikut codingnya, selanjutnya adalah membuat menu utama dengan bentuk
tampilan sebagai berikut.

Menu utama ini dibuat menggunakan TabControl, adapaun cara pembuatannya dapat anda lihat video
tutorialnya di website www.konsultasivb.com.

3.7 Form User
Form user digunakan untuk mengentri data user atau pamakai aplikasi, bentuk form user dapat dilihat pada
gambar di bawah ini.

UUSRUSMAWAN.C M

Setelah membuat form user, langkah berikutnya adalah membuat codingnya yang dapat anda lihat pada
bagian dibawah ini.
Imports System.Data.OleDb
Public Class MasterUser
Sub Kosongkan()
txtkodeuser.Clear()
txtnamauser.Clear()
cbostatus.Text = ""
txtpassword.Clear()
txtcaridata.Clear()
txtkodeuser.Focus()
Call TampilStatus_user()
Call TampilGrid()
End Sub
Sub DataBaru()
txtnamauser.Clear()
cbostatus.Text = ""
txtpassword.Clear()
txtcaridata.Clear()
txtnamauser.Focus()
End Sub
Sub Ketemu()
txtnamauser.Text = DR.Item("nama_User")
txtpassword.Text = DR.Item("pwd_User")
cbostatus.Text = DR.Item("Status_user")
txtnamauser.Focus()
End Sub
Sub TampilGrid()
DA = New OleDbDataAdapter("select * from tblUser", CONN)

UUSRUSMAWAN.C M
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.ReadOnly = True
End Sub
Sub TampilStatus_user()
CMD = New OleDbCommand("select distinct Status_user from tblUser",
CONN)
DR = CMD.ExecuteReader
cbostatus.Items.Clear()
Do While DR.Read
cbostatus.Items.Add(DR.Item("Status_user"))
Loop
End Sub
Private Sub MasterUser_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.StartPosition = FormStartPosition.CenterScreen
Call Koneksi()
Call Kosongkan()
End Sub
Private Sub combobox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles cbostatus.KeyPress
If ((e.KeyChar >= "0" And e.KeyChar = Val(lbltotalharga.Text) Then
lblcarabeli.Text = "TUNAI"
lblsisahutang.Text = 0
txttempo.Text = 0
txttempo.Enabled = False
lbljatuhtempo.Text = dtptanggal.Text
lblstatusbeli.Text = "LUNAS"
btnsimpan.Focus()
Else
lblcarabeli.Text = "KREDIT"
lblsisahutang.Text = Val(lbltotalharga.Text) Val(txtdibayar.Text)
lblstatusbeli.Text = "BELUM LUNAS"
txttempo.Enabled = True
txttempo.Focus()
End If
End If
If Not ((e.KeyChar >= "0" And e.KeyChar = "0" And e.KeyChar Val(lbltotalharga.Text) Then
lblcarajual.Text = "CASH"
lblsisahutang.Text = 0
txttempo.Text = 0
lblkembali.Text = Val(txtdibayar.Text) Val(lbltotalharga.Text)
txttempo.Enabled = False
lbljatuhtempo.Text = dtptanggal.Text
lblstatusjual.Text = "LUNAS"
btnsimpan.Focus()
Else
lblcarajual.Text = "CREDIT"
lblsisahutang.Text = Val(lbltotalharga.Text) Val(txtdibayar.Text)
lblstatusjual.Text = "BELUM LUNAS"
lblkembali.Text = 0
txttempo.Enabled = True
txttempo.Focus()
End If
End If
If Not ((e.KeyChar >= "0" And e.KeyChar = "0" And e.KeyChar Val(lblsisahutang.Text) Then
MsgBox("Utang lunas, uang kembali " &
Val(txtjumlahbayar.Text) - Val(lblsisahutang.Text) & "")
btnsimpan.Focus()
End If
End If
End Sub
Sub Bersihkan()
lbltglbeli.Text = ""
lblkodesupplier.Text = ""
lblnamasupplier.Text = ""
lbltotalharga.Text = ""
lblcarabeli.Text = ""
lblsisahutang.Text = ""
lbljatuhtempo.Text = ""
txtdibayar.Clear()
txttempo.Clear()
txtjumlahbayar.Clear()
DGV.Columns.Clear()
End Sub

31

UUSRUSMAWAN.C M
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnbatal.Click
Call Bersihkan()
End Sub
End Class

3.18 Terima Piutang
Langkah berikutnya adalah membuat form penerimaan piutang akibat penjualan secara kredit kepada
customer berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Proses penerimaan piutang ini hampir sama dengan pembayaran utang, yaitu :
1. Piliha nomor faktur di dalam listbox sebelah kanan kanan atas
2. Kemudian isi jumlah penerimaannya
3. Jika jumlah penerimaan lebih kecil dari tagihan maka piutang akan menyisakan data dan nomor
faktur masih tampil dalam listbox
4. Jika jumlah penerimaan lebih besar sama dengan tagihan maka piutang dinyatakan lunas dan
nomor faktur akan hilang dari listbox
5. Klik simpan
Coding transaksi terima piutang dapat dilihat pada listing program di bawah ini.
Imports System.Data.OleDb
Public Class TransaksiTerimaPiutang

Sub NomorOtomatis()
CMD = New OleDbCommand("select * from TBLTerimaPiutang where
Nomor_Terima in(select max(Nomor_Terima) from TBLTerimaPiutang)", Conn)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
lnlnomorterima.Text = "TR" + Format(Now, "yyMMdd") + "01"
Else

UUSRUSMAWAN.C M
If Microsoft.VisualBasic.Mid(DR.Item("Nomor_Terima"), 3, 6)
Format(Now, "yyMMdd") Then
lnlnomorterima.Text = "TR" + Format(Now, "yyMMdd") + "01"
Else
lnlnomorterima.Text =
Microsoft.VisualBasic.Right(DR.Item("Nomor_Terima"), 8) + 1
lnlnomorterima.Text = "TR" + lnlnomorterima.Text
End If
End If
End Sub
Sub TampilFakturPiutang()
CMD = New OleDbCommand("select * from TBLpenjualan where
Status_Jual='BELUM LUNAS'", Conn)
DR = CMD.ExecuteReader
ListBox1.Items.Clear()
Do While DR.Read
ListBox1.Items.Add(DR.Item("Faktur_Jual"))
Loop
End Sub
Sub InfoPiutang()
If ListBox1.Items.Count = 0 Then
MsgBox("SEMUA PIUTANG SUDAH LUNAS")
Me.Close()
End If
End Sub
Private Sub TransaksiterimaPiutang_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call TampilFakturPiutang()
Call NomorOtomatis()
Call InfoPiutang()
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ListBox1.SelectedIndexChanged
CMD = New OleDbCommand("select * from TBLpenjualan where
Faktur_Jual='" & ListBox1.Text & "'", Conn)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lbltanggaljual.Text = DR.Item("TGL_Jual")
lblkodecustomer.Text = DR.Item("KODE_Customer")
txtdibayar.Enabled = False
txttempohari.Enabled = False
lbltotalharga.Text = DR.Item("TOTAL_Jual")
txtdibayar.Text = DR.Item("BAYAR_Jual")
lblcarajual.Text = DR.Item("CARA_Jual")
lblsisapiutang.Text = DR.Item("SISA_Piutang")
txtjumlahterima.Text = lblsisapiutang.Text
txttempohari.Text = DR.Item("jTH_TEMPO_JUAL")
lbljatuhtempo.Text = DR.Item("JTH_TEMPO_Jual")

33

UUSRUSMAWAN.C M
CMD = New OleDbCommand("select * from tblCustomer where
KODE_Customer='" & lblkodecustomer.Text & "'", Conn)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblnamacustomer.Text = DR.Item("nAMA_Customer")
End If
DA = New OleDbDataAdapter("Select tbldetailJual.kode_barang as
[Kode Barang],tblbarang.Nama_barang as [Nama Barang],tbldetailJual.harga_JL
as [Harga],qty_Jual as [Jumlah],subtotal_Jual as [Total] from
tbldetailJual,tblbarang where
tbldetailJual.kode_barang=tblbarang.kode_barang and
tbldetailJual.Faktur_Jual='" & ListBox1.Text & "'", Conn)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.ReadOnly = True
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtjumlahterima.KeyPress
If e.KeyChar = Chr(13) Then
If Val(txtjumlahterima.Text) < Val(lblsisapiutang.Text) Then
MsgBox("Sisa piutang " & Val(lblsisapiutang.Text) Val(txtjumlahterima.Text) & "")
btnsimpan.Focus()
ElseIf Val(txtjumlahterima.Text) = Val(lblsisapiutang.Text)
Then
MsgBox("Utang lunas")
btnsimpan.Focus()
ElseIf Val(txtjumlahterima.Text) > Val(lblsisapiutang.Text)
Then
MsgBox("Utang lunas, uang kembali " &
Val(txtjumlahterima.Text) - Val(lblsisapiutang.Text) & "")
btnsimpan.Focus()
End If
End If
End Sub
Sub Bersihkan()
lbltanggaljual.Text = ""
lblkodecustomer.Text = ""
lblnamacustomer.Text = ""
lbltotalharga.Text = ""
lblcarajual.Text = ""
lblsisapiutang.Text = ""
lbljatuhtempo.Text = ""
txtdibayar.Clear()
txttempohari.Clear()
txtjumlahterima.Clear()
DGV.Columns.Clear()
End Sub

34

UUSRUSMAWAN.C M
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnbatal.Click
Call Bersihkan()
End Sub
End Class

3.19 Laporan Master
Setelah selesai proses transaksi, selanjutnya adalah membuat laporan-laporan master. Laporan ini akan
ditarik dari sebuah form dengan bentuk seperti gambar di bawah ini.

Laporan ini terdiri dari laporan data user, barang, perkiraan, supplier dan customer.

3.19.1 Laporan Data User
Laporan master user sebagai pemakai aplikasi terlihat pada gambar berikut ini.

Perhatikan bagian header, data ini diambil dari tabel profil perusahaan. jika isi tabel ini diubah maka
seluruh laporan akan memiliki header yang sama. Listing programnya terlihat di bagian bawah berikut ini.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNUser.Click
cryRpt.Load("master User.rpt")

UUSRUSMAWAN.C M
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.19.2 Laporan Data Barang
Laporan data barang yang dijadikan sumber transaksi jual beli dapat dilihat pada gambar di bawah ini.

listing programnya terlihat di bagian bawah berikut ini.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNBarang.Click
cryRpt.Load("master Barang.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.19.3 Laporan Data Perkiraan
Laporan data perkiraan yang menjadi sumber dalam jurnal dapat dilihat pada gambar di bawah ini.

UUSRUSMAWAN.C M

listing programnya terlihat di bagian bawah berikut ini.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNPerkiraan.Click
cryRpt.Load("master perkiraan.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.20 Laporan Pembelian
Laporan transaksi pembelian dibagi menjadi beberapa kriteria, diantaranya laporan harian, mingguan,
bulanan, laporan per faktur, laporan per status dan sejenisnya. Adapun gambar-gambarnya dapat dilihat
pada tampilan dibawah ini.

3.20.1 Laporan Harian

UUSRUSMAWAN.C M
Bentuk laporan harian transaksi pembelian barang dapat dilihat pada gambar di bawah ini.

Gambar 3.29 Laporan Pembelian Harian

Listing programnya terlihat di bagian bawah berikut ini.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNHarian.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "totext({tblpembelian.tgl_beli}) ='" &
DTPHarian.Text & "'"
cryRpt.Load("pembelian umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

Coding diatas menjelaskan bahwa daam form laporan pembelian ini terdapat dua objek besar yaitu
datagrid dan crystalreportviewer yang diatur kondisinya antara true dan false agar tampilan menjadi lebih
proporsional.

3.20.2 Laporan Periodik
laporan periodik yang biasa disebut dengan laporan mingguan dapat dilihat bentunya pada gambar
dibawah ini.

listing programnya terlihat di bagian bawah berikut ini.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNPeriodik.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing

UUSRUSMAWAN.C M
CRV.SelectionFormula = "totext({tblpembelian.tgl_beli}) >='" &
DTPAwal.Text & "' and totext({tblpembelian.tgl_beli})