Anda di halaman 1dari 9

TUTORIAL MEMBUAT APLIKASI TRANSAKSI PENJUALAN BARANG

1. Membuat Tampilan sebagai berikut

Gambar 1.1 Perancangan Interface Transaksi

Tabel 1.1 Pengaturan Properti dan Object

OBJECT PROPERTI NILAI


Form1 File Name FrmTransaksiBarang
Caption :: Menggunakan Object ::
Frame1 Name Frame1
Caption :: INPUT DATA ::
Font Arial ; Size 10 ; Bold
Label1 Name Label1
Caption Kode Transaksi
Font Arial ; Size 9
Textbox Name TxtKdTransaksi
Font Arial
Height 350
Width 1820
Label2 Name Label2
Caption Tanggal Transaksi
Font Arial ; Size 9
Name DTPTanggal
DTPicker
Format 1 –dtpShortDate
Label3 Name Label3
Caption Nama Kasir
Font Arial ; Size 9

Textbox Name TxtKdTransaksi


Font Arial
Height 350
Width 3255
Label3 Name LbJmltransaksi
Caption 0
BackColor Blck (&H80000007&)
BackStyle 1-Opaque
BackStyle 1-Fixed Single
Font Arial ; Size 22; Bold
Frame2 Name Frame2
Page 1 of 9
Caption :: INPUT DATA TRANSAKSI ::
Font Arial ; Size 10 ; Bold
Lable4 Name Label4
Autosize True
Caption Kode Barang
Font Arial ; Size 9 ; Bold
ComboBox Name CbKodebarang
BackColor &H00C0E0FF&
Font Arial ; Regular ; 12
Style 2 –Dropdown list
Text CbKodebarang (otomatis terisi
apabila dipilih dropdownlist)
Lable5 Name Label5
Autosize True
Caption Nama Barang
Font Arial ; Size 9 ; Bold
Lable6 Name LbNmBarang
Appearance 0 – flat
Backcolor Putih
BackStyle 1 –Opaque
BorderStyle 1 –Fixed Single
Font Arial ; Regular ; 12
Height 350
Width 2400
Lable7 Name Label7
Autosize True
Caption Harga (Rp)
Font Arial ; Size 9 ; Bold
Lable8 Name LbHarga
Appearance 0 – flat
Backcolor Putih
BackStyle 1 –Opaque
BorderStyle 1 –Fixed Single
Font Arial ; Regular ; 12
Height 350
Width 1335
Lable9 Name Label9
Autosize True
Caption Diskon 5%
Font Arial ; Size 9 ; Bold
Lable10 Name LbDiscon
Appearance 0 – flat
Backcolor Putih
BackStyle 1 –Opaque
BorderStyle 1 –Fixed Single
Font Arial ; Regular ; 12
Height 350
Width 1095
Lable11 Name Label11
Autosize True
Caption Jumlah
Font Arial ; Size 9 ; Bold
TextBox Name TxtJumlah
Appearance 0 – flat
Backcolor Putih
BorderStyle 1 –Fixed Single
Font Arial ; Regular ; 12
Height 350
Width 620
Lable12 Name Label12
Autosize True
Caption Jumlah Total
Font Arial ; Size 9 ; Bold
Lable13 Name LbJmlTotal
Appearance 0 – flat
Backcolor Putih
BackStyle 1 –Opaque

Page 2 of 9
BorderStyle 1 –Fixed Single
Font Arial ; Regular ; 12
Height 350
Width 1335
MSFlexiGrid Name GridDataTransaksi
Font Arial ; Reguler ; 9
Property Pages Klik kana pada data grid pilih
property
Style WordWarp (Cheklist)
Height 2750
Width 11890
CommanButton1 Name CmdTambah
BackColor &H008080FF&
Caption &MASUK
Style 1 –Graphical
Height 450
Width 1455
CommanButton2 Name CmdTransaksibaru
BackColor &H0000FF00&
Caption &TRANSAKSI BARU
Style 1 –Graphical
Height 450
Width 1955
CommanButton3 Name CmdKeluar
BackColor &H000000FF&
Caption &KELUAR
Style 1 –Graphical
Height 450
Width 1955
Name Frame3
Frame3 Caption :: PEMBAYARAN ::
Font Arial ; Size 10 ; Bold
Lable14 Name Label14
Autosize True
Caption BAYAR
Font Arial ; Size 9 ; Bold
TextBox Name TxtBayar
Appearance 1 – 3D
Backcolor Putih
BorderStyle 1 –Fixed Single
Font Arial ; Regular ; 12
Height 350
Width 2295
Lable15 Name Label12
Autosize True
Caption Kembalian
Font Arial ; Size 9 ; Bold
Lable16 Name LbKembalian
Appearance 0 – flat
Backcolor Putih
BackStyle 1 –Opaque
BorderStyle 1 –Fixed Single
Font Arial ; Regular ; 12
Height 350
Width 2295

Page 3 of 9
2. Source Code
Membuat variabel
Option Explicit
Dim GridObjIndex As Integer
Dim Baris As Integer
Dim i As Byte
Dim Konfirmasi As String
'Menonaktifkan Objek, Label, Textbox, Button, Dtpicker dan combobox

Sub FormMati()

TxtKdTransaksi.Enabled = False
DTPTanggal.Enabled = False
TxtNmKasir.Enabled = False
CbKodeBarang.Enabled = False
LbNmBarang.Enabled = False
TxtJumlah.Enabled = False
TxtJmlTotal.Enabled = False
TxtHarga.Enabled = False
TxtDiscon.Enabled = False
TxtBayar.Enabled = False
LbKembalian.Enabled = False
CmdTambah.Enabled = False

End Sub

'Mengaktifkan Objek, Label, Textbox, Button, Dtpicker dan combobox

Sub FormHidup()

TxtKdTransaksi.Enabled = True
DTPTanggal.Enabled = True
TxtNmKasir.Enabled = True
CbKodeBarang.Enabled = True
LbNmBarang.Enabled = True
TxtJumlah.Enabled = True
TxtJmlTotal.Enabled = False
TxtHarga.Enabled = True
TxtDiscon.Enabled = False
TxtBayar.Enabled = True
LbKembalian.Enabled = True
CmdTambah.Enabled = True

End Sub

'Mengosongktifkan Objek, Label, Textbox, Button, Dtpicker dan combobox

Sub FormKosong()
TxtKdTransaksi.Text = ""
TxtNmKasir.Text = ""
CbKodeBarang.ListIndex = -1
LbNmBarang.Caption = ""
TxtJumlah.Text = 0
TxtJmlTotal.Text = 0
TxtHarga.Text = 0
TxtDiscon.Text = 0
TxtBayar.Text = 0
LbKembalian.Caption = 0
LbJmltransaksi.Caption = 0

'mendefinisikan baris grid


Baris = 1
GridDataTransaksi.Clear
GridDataTransaksi.Rows = 2
AktifGridDataTransaksi

End Sub

Page 4 of 9
'Mengembalikan / memanggil prosedur formkosong dan formmati ' pada saat selesai
mengerjakan proses input pada Objek, Label, Textbox, Button, Dtpicker dan combobox

Sub FormNormal()
FormKosong
FormMati

CmdKeluar.Caption = "&KELUAR"
CmdTambah.Enabled = False

End Sub

'Prosedur mengosongkan objeck pada saat Event Click pada CmbTambah (Masuk)

Sub InputDataKosong()

CbKodeBarang.ListIndex = -1
LbNmBarang.Caption = ""
TxtJumlah.Text = 0
TxtJmlTotal.Text = 0
TxtHarga.Text = 0
TxtDiscon.Text = 0
CbKodeBarang.SetFocus

End Sub
'Mengedit Tampilan DataGrid untuk proses input

Sub AktifGridDataTransaksi()

With GridDataTransaksi
.Cols = 6

.RowHeightMin = 450
.Col = 0
.Row = 0
.Text = "KODE BARANG"
.CellFontBold = True
.ColWidth(0) = 1500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 1
.Row = 0
.Text = "NAMA BARANG"
.CellFontBold = True
.ColWidth(1) = 4200
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = "HARGA"
.CellFontBold = True
.ColWidth(2) = 2100
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 3
.Row = 0
.Text = "DISKON"
.CellFontBold = True
.ColWidth(3) = 900
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 4
.Row = 0
.Text = "JUMLAH BARANG"
.CellFontBold = True
.ColWidth(4) = 1400
.AllowUserResizing = flexResizeColumns

Page 5 of 9
.CellAlignment = flexAlignCenterCenter

.Col = 5
.Row = 0
.Text = "JUMLAH TOTAL"
.CellFontBold = True
.ColWidth(5) = 1400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

End With
End Sub
'Double Klik pada objek Commonbotton keluar, proses event klik keluar dan batal dengan
menggunakan fungsi IF Then apabila caption keluar berubah jadi batal maka akan memanggil
FormNormal

Private Sub CmdKeluar_Click()

If CmdKeluar.Caption = "&KELUAR" Then


Unload Me
Else
Call FormNormal
CmdTambah.Enabled = False
CmdTransaksiBaru.Enabled = True
End If

End Sub
''Double Klik pada objek Commonbotton Tambah prosedure tambah ini adalah menggunakan
event clik pada commonbutton (cmdtambah prosedure ini akan memasukan object,
cbkodebarang (Combobox), lbnmbarang (label) 'txtharga (textbox)kedalam MSFlexigrid
(GridDataTransaski)dengan menggunakan Fungsi IF Then dan With End with

Private Sub CmdTambah_Click()

If TxtNmKasir.Text = "" Then


MsgBox "Nama Kasir masing Ksong!!", vbOKOnly + vbCritical, "Warning"
TxtNmKasir.SetFocus
Else
With GridDataTransaksi
.Rows = Baris + 1
.TextMatrix(Baris, 0) = CbKodeBarang
.TextMatrix(Baris, 1) = LbNmBarang
.TextMatrix(Baris, 2) = TxtHarga.Text
.TextMatrix(Baris, 3) = TxtDiscon
.TextMatrix(Baris, 4) = TxtJumlah.Text
.TextMatrix(Baris, 5) = TxtJmlTotal.Text
End With
'Menambahkan baris pada Datagrid pada saat menambahkan input 'transaksi berikutnya
Baris = Baris + 1
Call JumlahPermintaan
End If

'menampilkan format curentse / bilangan desimal dengan'method format(objectk,"#,##0")


LbJmltransaksi.Caption = Format(LbJmltransaksi.Caption, "#,##")
TxtJumlah.SetFocus
Call InputDataKosong

End Sub
'Klik CommondBotton Transaksibaru, prosedur memanggil nomor barang dan kodebarang serta
mengaktifkan baris grid\

Private Sub CmdTransaksiBaru_Click()


Call Nomor_BarangMasuk
Call KodeBarang
Call FormHidup
CmdKeluar.Caption = "&BATAL"
CmdTransaksiBaru.Enabled = False
Baris = 1

End Sub

Page 6 of 9
'Double Klik pada Form Transaksi, prosedure event load ini memanggil dan mendefinisikan sub
prosedur yang telah di buat sebelumnya\

Private Sub Form_Load()

DTPTanggal.Value = Format(Date, "dd/MM/yyyy")


Call AktifGridDataTransaksi
Call FormMati

TxtJumlah.Text = 0
TxtJmlTotal.Text = 0
TxtHarga.Text = 0
TxtDiscon.Text = 0
TxtBayar.Text = 0
LbKembalian.Caption = 0

End Sub
'sub prosedur membuat nomor kode transaksi

Sub Nomor_BarangMasuk()
Dim NoMasuk As String
Dim No As String
NoMasuk = TxtKdTransaksi.Text
NoMasuk = Val(Mid(NoMasuk, 5, 4))
NoMasuk = NoMasuk + 1
No = Format(NoMasuk, "BAK-000")
TxtKdTransaksi.Text = No
End Sub
'membuat sub prosedur kodebarang ke dalam combobox

Sub KodeBarang()

CbKodeBarang.AddItem "BR001"
CbKodeBarang.AddItem "BR002"
CbKodeBarang.AddItem "BR003"
CbKodeBarang.AddItem "BR004"
CbKodeBarang.AddItem "BR005"
CbKodeBarang.AddItem "BR006"
CbKodeBarang.AddItem "BR007"

End Sub

'Double Klik Commonbutton Kodebarang, Membuat fungsi kode barang, nama barang, harga
barang menggunakan fungsi IF Then, (apabila memilih kodebarang 'maka namabarang dan
harga barang ditamnpilkkan pada 'objek lbnmbarang dan txtharga

Private Sub CbKodeBarang_Click()

If CbKodeBarang.Text = "BR001" Then


LbNmBarang.Caption = "IDOMIE KARIAYAM"
TxtHarga.Text = 45000
ElseIf CbKodeBarang.Text = "BR002" Then
LbNmBarang.Caption = "SAMBUN MANDI"
TxtHarga.Text = 1500
ElseIf CbKodeBarang.Text = "BR003" Then
LbNmBarang.Caption = "SUSU BENDERA KETAL MANIS"
TxtHarga.Text = 15000
End If
TxtHarga.Text = Format(TxtHarga.Text, "#,##")
TxtJumlah.SetFocus

End Sub

Page 7 of 9
'sub prosedur menjumlahkan data transaksi pada MSFlexiGrid (Datagrid) 'berdasarkan
banyaknya barang yang di beli

Sub JumlahPermintaan()
Dim Jum(5), nil(5) As Long
Jum(0) = 0
Jum(2) = 0
Jum(3) = 0
Jum(4) = 0
Jum(5) = 0
With GridDataTransaksi
For i = 1 To GridDataTransaksi.Rows - 1
If IsNumeric(.TextMatrix(i, 5)) Then
nil(0) = .TextMatrix(i, 5)
Else
nil(0) = Val(.TextMatrix(i, 4))
End If
Jum(0) = Jum(0) + nil(0)
Next
LbJmltransaksi.Caption = Jum(0)

End With
End Sub

'Double Klik pada objek Txtbayar kemudian ganti eventnya menjadi Change, Rumus
pembayaran

Private Sub TxtBayar_Change()

LbKembalian.Caption = Val(Format(TxtBayar.Text, "")) - Val(Format(LbJmltransaksi.Caption, ""))


TxtBayar.Text = Format(TxtBayar.Text, "#,##0")
LbKembalian.Caption = Format(LbKembalian.Caption, "#,##0")

End Sub
''Double Klik pada objek Txtbayar kemudian ganti eventnya menjadi Keypress, prosedur
keypress proses ini berjalan setelah input angka selesai dengan 'menekang tombol enter pada
keybrod, kemudian menampilkan Msgbox

Private Sub TxtBayar_KeyPress(KeyAscii As Integer)

'Agar hanya angka yang boleh di ketik


If Not ((KeyAscii > 47 And KeyAscii < 58) Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn) Then
KeyAscii = 0
TxtBayar.Text = ""
Beep
Else
'jika dienter, kursor berpindah
If KeyAscii = vbKeyReturn Then
Konfirmasi = MsgBox("Apakah ada transaki lagi?", vbYesNo + vbQuestion, "Informasi")
If Konfirmasi = vbYes Then
Call Nomor_BarangMasuk
CbKodeBarang.SetFocus
LbNmBarang.Caption = ""
TxtHarga.Text = 0
TxtDiscon.Text = 0
TxtJumlah.Text = 0
TxtJmlTotal.Text = 0
LbJmltransaksi.Caption = 0
TxtBayar.Text = 0
LbKembalian.Caption = 0

'Memanggil baris pertama dan membersikan data grid


Baris = 1
GridDataTransaksi.Clear
GridDataTransaksi.Rows = 2
AktifGridDataTransaksi

Page 8 of 9
Else
Call FormNormal
Baris = 1
GridDataTransaksi.Clear
GridDataTransaksi.Rows = 2
AktifGridDataTransaksi
CmdTransaksiBaru.Enabled = True
CmdTransaksiBaru.SetFocus
End If
End If
End If

End Sub
''Double Klik pada objek Txtbayar kemudian ganti eventnya menjadi KeyUp, fungsi keyup pada
saat mengetikan jumlah pembayaran, sehingga kursor/pointer nya berbalik ke awal dan akhir

Private Sub TxtBayar_KeyUp(KeyCode As Integer, Shift As Integer)

TxtBayar.Text = Format(TxtBayar.Text, "#,##0")


TxtBayar.SelStart = Len(TxtBayar.Text)

End Sub

''Double Klik pada objek Txtbayar kemudian ganti eventnya menjadi keypress, prosedur
keypress dengan memijit tombol enter setelah input jumlah pada txtjumlah maka pointer akan
diarahkan langsung ke commonbutton (cmdtambah)

Private Sub TxtJumlah_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then
CmdTambah.SetFocus
'ElseIf Val(TxtDiscon.Text) <= 3 Then
'TxtDiscon.Text = 0
End If

End Sub
''Double Klik pada objek TxtJumlah kemudian ganti eventnya menjadi Change, prosedur ini nanti
akan menghitung jumlah pembelian dan diskon secara otomatis pada saat di inputkan jumlah
barang yang akan dibeli

Private Sub TxtJumlah_Change()

'Menghitung Diskon apabila pembelian barang lebih dari 3 buah


If Val(TxtJumlah.Text) >= 3 Then
TxtDiscon.Text = Val(Format(TxtHarga.Text, "")) * 0.05
'Mengurangi diskon
TxtJmlTotal.Text = (Val(Format(TxtHarga.Text, "")) * Val(Format(TxtJumlah.Text, ""))) -
Val(Format(TxtDiscon.Text, ""))

'menghitung jumlah pembelian barang apabila kurang dari 3 buah


ElseIf Val(TxtJumlah.Text) <= 3 Then
TxtJmlTotal.Text = Val(Format(TxtHarga.Text, "")) * Val(Format(TxtJumlah.Text, ""))
TxtDiscon.Text = 0
End If

'format rupiah/ desimal


TxtHarga.Text = Format(TxtHarga.Text, "#,###0")
TxtDiscon.Text = Format(TxtDiscon.Text, "#,###0")
TxtJmlTotal.Text = Format(TxtJmlTotal.Text, "#,###0")

End Sub

Crate By: Halimil Fathi. S.Kom

Page 9 of 9