Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
AMIK BSI TEGAL i
Ahmad Al Kaafi, M.Kom
AMIK BSI TEGAL
Jl. Sipelem No. 22, Tegal
Modul Praktikum Pemrograman Visual II
AMIK BSI TEGAL ii
KATA PENGANTAR
Alhamdulillah, penulis panjatkan kehadirat Allah SWT, yang telah
melimpahkan rahmat dan karunia-Nya, sehingga pada akhirnya penulis
dapat menyelesaikan modul praktikum Pemrograman Visual II ini dengan
baik. Dimana modul praktikum ini penulis sajikan dalam bentuk yang
sederhana.
Sebagai bahan penulisan diambil berdasarkan dari beberapa sumber
literatur yang mendukung penulisan ini. Penulis menyadari bahwa tanpa
arahan dan dorongan dari berbagai pihak, maka penulisan modul
praktikum ini tidak akan lancar.
Penulis menyadari bahwa penulisan modul praktikum ini masih jauh
dari sempurna, untuk itu penulis mohon kritik dan saran yang bersifat
membangun demi kesempurnaan penulisan dimasa yang akan datang.
Akhir kata semoga modul praktikum ini dapat berguna bagi penulis
khususnya dan bagi para pembaca yang berminat pada umumnya.
Tegal, 28 November 2016
Penulis,
Ahmad Al Kaafi, M.Kom
AMIK BSI TEGAL iii
DAFTAR ISI
Halaman
Lembar Judul ............................................................................................... i
Kata Pengantar ........................................................................................... ii
Daftar Isi ...................................................................................................... iii
BAB I MICROSOFT VISUAL BASIC 6.0 ........................................... 1
A. Mengenal Microsoft Visual Basic 6.0 .................................... 1
B. Lingkungan Kerja Visual Basic 6.0 ....................................... 2
BAB II DATABASE MYSQL ................................................................... 4
A. Mengenal Database Yang Digunakan .................................... 4
B. Membuat Database ................................................................. 4
BAB III MERANCANG CODING KONEKSI ........................................ 6
A. Mengaktifkan Komponen Yang Dibutuhkan ......................... 6
B. Membuat Coding Koneksi ..................................................... 6
BAB IV MERANCANG FORM MENU UTAMA DAN OGIN ............. 9
A. Membuat Form Menu Utama ................................................. 9
B. Membuat Form Login .......................................................... 12
BAB V MERANCANG FORM BARANG............................................. 16
A. Membuat Form Barang......................................................... 16
B. Listing Form Barang ............................................................ 12
BAB VI MERANCANG FORM USER .................................................. 23
A. Membuat Form User............................................................. 23
BAB VII MERANCANG STRUK PEMBAYARAN .............................. 24
A. Membuat Struk Pembayaran ................................................ 24
BAB VIII MERANCANG FORM TRANSAKSI .................................... 31
A. Membuat Form Transaksi..................................................... 31
B. Listing Form Transaksi ........................................................ 34
BAB IX MERANCANG FORM GANTI PASSWORD USER ............ 44
A. Membuat Form Ganti Password User .................................. 44
B. Listing Form Ganti Password User ...................................... 45
BAB X MEMBUAT LAPORAN PENJUALAN HARIAN,
MINGGUAN, BULANAN ......................................................... 46
A. Membuat Laporan Penjualan Harian .................................... 46
B. Membuat Laporan Penjualan Mingguan .............................. 49
C. Membuat Laporan Penjualan Bulanan ................................. 50
AMIK BSI TEGAL iv
BAB XI MEMBUAT FORM LAPORAN DAN FILE.EXE ................. 52
A. Membuat Form Laporan ....................................................... 52
B. Membuat File.exe ................................................................. 55
DAFTAR REFERENSI ............................................................................. 56
AMIK BSI TEGAL 1
BAB I
MICROSOFT VISUAL BASIC 6.0
A. Mengenal Microsoft Visual Basic 6.0
Visual Basic adalah bahasa pemrogramam berbasis Microsoft Windows yang
merupakan Object Oriented Programming (OOP), yaitu pemrograman berorientasi
objek, Visual Basic menyediakan objek-objek yang sangat kuat, berguna dan
mudah.
Keistimewaan Visual Basic 6.0
1. Memiliki compiler andal yang dapat menghasilkan file executable yang
lebih cepat dan lebih efesien dari sebelumnya.
2. Memiliki beberapa tambahan sarana Wizard yang baru.
3. Tambahan kontrol-kontrol baru yang lebih canggih serta peningkatan
kaidah struktur bahasa Visual Basic.
4. Sarana akses data yang lebih cepat dan andal untuk membuat aplikasi
database yang berkemampuan tinggi.
5. Visual Basic 6.0 memiliki beberapa versi atau edisi yang disesuaikan
dengan kebutuhan pemakainya.
AMIK BSI TEGAL 2
Ada Beberapa Hal yang harus dipahami dalam mempelajari Visual Basic :
o Objek
Sering disebut entity adalah sesuatu yang bisa dibedakan dengan lainnya.
Pada dasarnya seluruh benda didunia ini bisa dikatakan sebagai objek,
contoh : mobil, komputer, radio, dll. Dalam Visual Basic objek-objek yang
dimaksud disebut kontrol. Jenis-jenis kontrol antara lain : Label, Textbox,
Combo Box, List Box, dan masih banyak lagi.
o Properti
Sering disebut atribut, adalah ciri-ciri yang menggambarkan suatu objek.
Misalnya disebut objek mobil jika mempunyai ban, spion, rem, dll.
o Event
Suatu kejadian yang menimpa objek. Bagaimana jika mobil didorong,
ditabrak, dicat, dsb.
o Metode
Kemampuan yang dimiliki oleh suatu objek. Contohnya jika mobil
berbelok, mundur, dan maju.
B. Lingkungan Kerja Visual Basic 6.0
Komponen Visual Basic
1. Project adalah sekumpulan modul/program aplikasi itu sendiri, projek
disimpan dalam file berextension .VBP biasanya berisi form-form.
2. Form adalah objek yang dipakai untuk tempat bekerja program aplikasi.
3. Toolbox adalah alat berisi icon-icon atau komponen untuk memasukan objek
tertentu kedalam form. Tambahan Komponen : Klik kanan pada toolbox >
komponen atau add tab.
4. Properties adalah untuk menentukan setting suatu objek, menentukan cara
kerja dari objek saat program dijalankan misal warna, huruf, dll.
AMIK BSI TEGAL 3
3
2
4
1
5
5. Kode Program adalah serangkaian tulisan perintah yang akan dilaksanakan
jika suatu objek dijalankan.
AMIK BSI TEGAL 4
BAB II
DATABASE MYSQL
A. Mengenal Database Yang Digunakan
Dalam pembuatan basis data pada MySQL software yang digunakan adalah :
1. apache2triad dll.
2. mysql-connector-odbc-5.1.10-win32 (untuk mengkoneksikan database
dengan software pemrograman).
Software pemrograman yang dipakai untuk pembelajaran ini adalah Visual
Basic 6.0. Berikut tampilan normalisasi bentuk ketiga (3):
B. Membuat Database
1. Nama databasenya: penjualan_amikbsitegal
2. Buatlah Tabel-tabel dibawah ini
a) Nama tabel: Barang
AMIK BSI TEGAL 5
Langsung isi datanya:
b) Nama tabel: Transaksi
c) Nama tabel: DetailTransaksi
d) Nama tabel: Login
Langsung isi datanya:
AMIK BSI TEGAL 6
BAB III
MERANCANG CODING KONEKSI
A. Mengaktifkan Komponen Yang Dibutuhkan
Sebelum kita memulai menuliskan coding/script koneksi, maka kita harus
mengaktifkan beberapa komponen yang dibutuhkan dengan cara sebagi
berikut:
1. Aktifkan Microsoft Visual Basic 6.0 – Pilih STANDART EXE
2. Tambahkan terlebih dahulu Reference ADO Library ke dalam project
anda:
3. Klik menu project – reference – arahkan scrollnya ke bawah cari
Microsoft ActiveX Data Objects 2.5 Library(bisa juga 2.6/2.7/2.8) –
ceklist – ok
B. Membuat Coding Koneksi
Setelah persiapan komponen telah diaktifkan selanjutnya kita akan membuat
coding untuk koneksi. Ketika membuka code, jika terdapat tampilan option
AMIK BSI TEGAL 7
explicit artinya setiap variabel yang dibuat harus di deklarasikan. Contoh:
dim k as string
Untuk menghilangkannya pilih menu tools – options – hilangkan
ceklist di require variable declaration kemudian exit, tidak usah disimpan.
Lalu buka kembali vb yang baru. Lihat tampilan code maka option explicit
sudah tidak ada.
Selanjutnya membuat coding koneksi di dalam modul.
Klik menu project – add module – open – Ketikan script berikut pada
modul untuk membuka koneksi database:
MODUL1
'MENDEFINISIKAN OBJEK
Public KON As New ADODB.Connection
Public rsbrg As ADODB.Recordset Public rsuser As ADODB.Recordset
Public rsdetail As ADODB.Recordset Public rstrans As ADODB.Recordset
Public rstemp As ADODB.Recordset
AMIK BSI TEGAL 8
Sub koneksi()
'MEMBUKA OBJEK
Set KON = New ADODB.Connection Set rsbrg = New ADODB.Recordset
Set rsuser = New ADODB.Recordset Set rsdetail = New ADODB.Recordset
Set rstrans = New ADODB.Recordset Set rstemp = New ADODB.Recordset
KON.ConnectionString = "driver={mysql odbc 5.1
driver};server=localhost;uid=root;pwd=password;db=penjualan;" KON.Open
End Sub
AMIK BSI TEGAL 9
BAB IV
MERANCANG FORM MENU UTAMA DAN OGIN
A. Membuat Form Menu Utama
Dalam pembuatan form menu utama kita harus pahami terlebih dahulu
seperti apa bentuk tampilan form menu utama yang akan kita buat.
Langkah pembuatan Menu Utama sebagai berikut:
1. Pilih Menu Tools
2. Pilih Menu
Editor
Keterangan:
CAPTION NAME
FILE MNFILE
BARANG MNUSER
DATA USER MNUSER
TRANSAKSI MNTRANSAKSI
LAPORAN MNLAPORAN
UTILITY MNUTILITY
GANTI PASSWORD MNGP
LOGOUT MNLOGOUT
AMIK BSI TEGAL 10
untuk objek statusbar, Tambahkan komponen ini:
StatusBar (name: STBAR)
Klikkanan – properties
Tab panel - Insert panel 2 x
AMIK BSI TEGAL 11
Listing Menu Utama (name=menu):
Private Sub MNBARANG_Click() menu.Hide barang.Show 'ke form barang End Sub
Private Sub MNGP_Click()
menu.Hide G_USER.Show 'ke form ganti password user End Sub
Private Sub MNLAPORAN_Click() menu.Hide Form3.Show 'ke form laporan End Sub
Private Sub mnlogout_Click() Me.Visible = False login.Show 'ke form login End Sub
Private Sub MNTRANSAKSI_Click() menu.Hide Form1.Show 'ke form transaksi End Sub
Private Sub MNUSER_Click() menu.Hide DATAUSER.Show 'ke form datauser End Sub
AMIK BSI TEGAL 12
B. Membuat Form Login
Untuk membuat form login langkah hampir sama seperti membuat form biasa.
Adapun rancangan form loginnya sebagi berikut:
AKF
Sehingga
Tampilan/Ou
tputnya
seperti ini
AMIK BSI TEGAL 13
Listing form login (name=login):
Dim a, b As Byte
Private Sub CMDBERSIH_Click()
txtuser = "" txtpassword = "" txtuser.Enabled = True txtpassword.Enabled
= False txtuser.SetFocus
End Sub
Private Sub CMDTUTUP_Click()
End
End Sub
Private Sub Form_Activate()
txtuser.Enabled = True txtpassword.Enabled = False txtuser.SetFocus
txtuser.MaxLength = 3 txtpassword.PasswordChar = "*" txtlevel.Visible =
False
End Sub
Private Sub txtpassword_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
Call koneksi 'petik,kutip harus rapat
rsuser.Open "Select * from login where Password='" & txtpassword & "'",
KON If rsuser.EOF Then
b = b + 1
If 1 - b = 0 Then
MsgBox "Kesempatan ke " & b & " Salah" txtpassword = "" 'kutipnya
rapat jgn ada spasi txtpassword.SetFocus
ElseIf 2 - b = 0 Then
MsgBox "Kesempatan ke " & b & " Salah" txtpassword = ""
AMIK BSI TEGAL 14
txtpassword.SetFocus
ElseIf 3 - b = 0 Then
MsgBox "Kesempatan ke " & b & " Salah" Unload Me
End If
Else
txtlevel = rsuser!akseslevel txtlevel.Enabled = False Me.Visible = False
menu.Show
menu.WindowState = 2 'supaya tampil max menu.stbar.Panels(1) =
login.txtuser
If txtlevel = 1 Then menu.MNUSER.Enabled = True menu.stbar.Panels(2)
= "ADMIN"
ElseIf txtlevel = 2 Then menu.MNUSER.Enabled = False
menu.stbar.Panels(2) = "USER"
End If
End If
End If
End Sub
Private Sub txtuser_KeyPress(KeyAscii As Integer) KeyAscii =
Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
Call koneksi
rsuser.Open "Select kodeuser from login where kodeuser ='" & txtuser &
"'", KON If rsuser.EOF Then
a = a + 1
If 1 - a = 0 Then 'chr(13) = kalimat setelahnya otomatis ke bawah
MsgBox "Kesempatan ke " & a & " Salah" & Chr(13) & _ "Nama '" &
txtuser & "' tidak dikenal"
txtuser = "" 'KUTIP HARUS RAPAT
txtuser.SetFocus
ElseIf 2 - a = 0 Then
MsgBox "Kesempatan ke " & a & " Salah" & Chr(13) & _ "Nama '" &
txtuser & "' tidak dikenal"
AMIK BSI TEGAL 15
txtuser = "" txtuser.SetFocus
ElseIf 3 - a = 0 Then
MsgBox "Kesempatan ke " & a & " Salah" & Chr(13) & _ "Nama '" &
txtuser & "' tidak dikenal" & Chr(13) & _ "Kesempatan habis, Ulangi dari
awal"
Unload Me
End If
Else
txtuser.Enabled = False txtpassword.Enabled = True
txtpassword.SetFocus
End If
End If
End Sub
AMIK BSI TEGAL 16
BAB V
MERANCANG FORM BARANG
A. Membuat Form Barang
Form menu barang merupakan salah satu form master dalam studi kasus
ini. Form barang digunakan untuk menambahkan, menghapus dan mengubah
data barang yang kita miliki.
Langkah pembuatan Menu Barang sebagai berikut:
1. Pilih Add Form
2. Lalu rancang form barang seperti berikut:
Keterangan Name pada properties:
Cmdinput : INPUT
Cmdtutup : TUTUP
Tkode : KD BARANG
Tnama : NAMA BARANG
Cmbsat : SATUAN
Tstok : STOK
Tharga : HARGA
Grid : MSHFLEXGRID
AMIK BSI TEGAL 17
Outputnya setelah di tekan INPUT dan mengisi data baru:
Adapun logika jalannya program (from barang):
1. Pertama run semua textbox dan combo nonaktif, data barang tampil di
grid.
INPUT DAN TUTUP aktif.
2. Tekan INPUT semua textbox, combo aktif. INPUT berubah jadi
SIMPAN, TUTUP berubah jadi BATAL. Kursor muncul di kd barang.
3. Ketikan kd barang. Jika sudah ada tampil nama,satuan,stok,harga. Kd
barang nonaktif. SIMPAN berubah jadi UPDATE. Lakukan perubahan
data barang untuk menyimpan tekan UPDATE, tekan BATAL untuk
membatalkan perubahan data barang kembali ke kondisi no. 1
4. Ketikan kd barang. Jika tidak ada tampil pesan kode barang tidak ada.
Kursor pindah ke nama barang. Isikan data barang baru, tekan SIMPAN
untuk menyimpan, tekan BATAL untuk membatalkan dan kondisi
kembali ke no.1
5. Tekan TUTUP keluar dari program kembali ke menu utama.
AMIK BSI TEGAL 18
B. Listing Form Barang
Sub isicsat()
csat.AddItem "unit"
csat.AddItem "pcs"
End Sub
Sub NONAKTIF()
Dim kontrol As Control
For Each kontrol In Me.Controls
If TypeOf kontrol Is TextBox Then kontrol.Enabled = False
Next
csat.Enabled = False
End Sub
Sub aktif()
Dim kontrol As Control
For Each kontrol In Me.Controls
If TypeOf kontrol Is TextBox Then kontrol.Enabled = True
Next
csat.Enabled = True
End Sub
Sub bersih()
For Each kontrol In Me.Controls
If TypeOf kontrol Is TextBox Then kontrol.Text = "" Next
csat = ""
End Sub
AMIK BSI TEGAL 19
Sub tampilgrid()
'buka tabel barang dulu
Call koneksi
rsbrg.Open "select * from barang", KON
'atur grid utk tabel brg
Set grid.DataSource = rsbrg grid.ColWidth(0) = 0 grid.ColWidth(1) = 1000
grid.ColWidth(2) = 1500 grid.ColWidth(3) = 500 grid.ColWidth(4) = 500
grid.ColWidth(5) = 1000
End Sub
Sub simpanbrg()
simpan = "insert into barang values('" & tkode & "','" & tnama & "','" &
csat & "','" &
tstok & "','" & tharga & "')" ‘ngetiknya kesamping
KON.Execute simpan
End Sub
Sub updatebrg()
Update = "update barang set namabarang='" & tnama & "',satuan='" & csat
& "',stok='" & tstok & "',hargasatuan='" & tharga & "' where kodebarang='"
& tkode & "'" KON.Execute Update
End Sub
Private Sub bin_Click()
If bin.Caption = "INPUT" Then bin.Caption = "SIMPAN" bt.Caption =
"BATAL"
Call aktif tkode.SetFocus
ElseIf bin.Caption = "SIMPAN" Then
Call simpanbrg Call tampilgrid bin.Caption = "INPUT" bt.Caption =
"TUTUP" Call bersih
Call NONAKTIF
AMIK BSI TEGAL 20
ElseIf bin.Caption = "UPDATE" Then
Call updatebrg Call tampilgrid Call bersih
Call NONAKTIF
bin.Caption = "INPUT" bt.Caption = "TUTUP
End If
End Sub
Private Sub bt_Click()
If bt.Caption = "TUTUP" Then
Unload Me menu.Show
ElseIf bt.Caption = "BATAL" Then
Call bersih
Call NONAKTIF bt.Caption = "TUTUP" bin.Caption = "INPUT" End If
End Sub
Private Sub Form_Activate() Call bersih
Call NONAKTIF Call isicsat
Call tampilgrid
End Sub
Private Sub Form_Load()
Call koneksi
End Sub
Private Sub grid_KeyPress(KeyAscii As Integer)
'agar bisa hapus per record didalam grid.
'caranya klik kode di grid yang akan dihapus tekan backspace a = grid.Row
kode = grid.TextMatrix(a, 1)
Call koneksi
rsbrg.Open "select * from barang ", KON
With rsbrg
If KeyAscii = 8 Then
AMIK BSI TEGAL 21
If Not (.BOF And .EOF) Then
h = MsgBox("Bener mau dihapus ?", vbQuestion + vbYesNo, "--TaNYa--
") If h = vbYes Then
hapus = "delete from barang where kodebarang='" & kode & "'"
KON.Execute (hapus)
End If
End If
End If
End With
Call tampilgrid grid.Refresh
End Sub
Private Sub tharga_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
bin.SetFocus
End If
End Sub
Private Sub tkode_KeyPress(KeyAscii As Integer)
Call koneksi
KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then
rsbrg.Open "SELECT * FROM barang WHERE Kodebarang='" & tkode &
"'", KON With rsbrg
If .BOF And .EOF Then
psn = MsgBox("KD " + tkode + " TDK ADA", vbInformation, "KONF")
tnama = "" tsat = "" tstok = "" tharga = ""
tnama.SetFocus
Else
tkode.Enabled = False
tnama = .Fields("Namabarang")
csat = .Fields("SATUAN")
tstok = .Fields("stok")
AMIK BSI TEGAL 22
tharga = .Fields("hargaSATUAN")
bin.Caption = "UPDATE"
End If
End With
End If
End Sub
Private Sub tnama_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then csat.SetFocus
End If
End Sub
Private Sub tstok_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
tharga.SetFocus
End If
End Sub
AMIK BSI TEGAL 23
BAB VI
MERANCANG FORM USER
A. Membuat Form User
Form menu barang merupakan salah satu form master dalam studi kasus
ini. Form user ini digunakan untuk menambahkan, menghapus dan mengubah
data user yang kita miliki.
Langkah pembuatan Menu Barang sebagai berikut:
1. Pilih Add Form
2. Lalu rancang form user sehingga tampilannya seperti berikut:
Keterangan:
Cara pengerjaan dan listing form user hampir sama dengan form
barang. Silahkan Dikerjakan
AMIK BSI TEGAL 24
BAB VII
MERANCANG STRUK PEMBAYARAN
A. Membuat Struk Pembayaran
Struk pembayaran ini merupakan output yang dihasilkan dari form
transaksi. Untuk pembuatnya kita perlu menggunakan crystal report, penulis
sebelumnya menginstal terlebih dahulu, yang penulis gunakan crystal report
versi 8.5. Buka Crystal Report melalui langkah-langkah dibawah ini:
1. Klik Start
2. Pilih All Programs
3. Klik Crystal Reports
4. Pilih Using as a blank report
5. Lalu Klik OK
AMIK BSI TEGAL 25
Maka akan tampil Data Explorer seperti gambar dibawah ini
6. Pilih ODBC – Create New Data Source – Add
7.
Pilih option user atau system
AMIK BSI TEGAL 26
8.
9.
10.
Sesuaikan dgn nama
database masing-masing
AMIK BSI TEGAL 27
11. Double klik/ Add semua tabel yang ada di folder tutorial lalu close
12.
Bila belum ada garis relasinya cek tabel-tabel di databasenya, biasanya ada
yg beda type/sizenya. Misal kodebarang yg di barang beda dgn di
detailtransaksi.
AMIK BSI TEGAL 28
Tanda panah di mistar berguna untuk memudahkan pengaturan
penempatan objek field,garis dll. Caranya cukup di klik di mistar saja
Menampilkan field explorer: MENU INSERT – FIELD OBJECT
Field Tabel
Tgljual → transaksi
Kodeuser → transaksi
Kodebarang → barang
Namabarang → barang
hargasatuan → barang
jumlahbeli → detailtransaksi
subtotal → detailtransaksi
AMIK BSI TEGAL 29
No transaksi :
Menu insert –
group
Pilih
notransaksi dari
tabel transaksi
Grand total:
Menu Insert – Grandtotal
AMIK BSI TEGAL 30
Pindahkan group#1 Name ke posisi page header atur seperti di bawah ini.
Untuk garis ada di menu insert – line. Bantu dengan panah di mistar untuk
penempatan.
Kendala yang mungkin terjadi ketika crystal report di
preview/run:
Myodbc error.... solusinya:
1. Buka regedit ( Start – Run – Regedit – Enter )
2. Cari : HKEY_CURRENT_USER\Software\Seagate
Software\Crystal
Reports\DatabaseOptions\ODBC
3. Buat key baru : Klik kanan pada ODBC, pilih New, Key
4. Beri Nama : outerjoin
5. Di Dalam Key OuterJoin, buat New String Value
6. Beri nama : SQL2outerjoin
7. Klik kanan pada String Value SQL2outerjoin, pilih Modify
8. Isikan : libmyodbc3 (untuk myodbc versi 3) atau
libmyodbc5 (untuk myodbc versi 5)
Setelah di PRIVIEW kosong tidak ada isi datanya.
Solusinya:
Cek tabel-tabelnya di database tipedata, size, isi data mungkin
tidak sama. Contoh; Antara kode barang di tabel barang
dengan tabel detail mungkin tidak sama type, size atau isi
datanya di tabel yang satu ada di tabel lain yang berkaitan
tidak ada.
AMIK BSI TEGAL 31
BAB VIII
MERANCANG FORM TRANSAKSI
A. Membuat Form Transaksi
Dalam membuat form transaksi kita membutuhkan beberapa komponen
yang di form transaksi antara lain: INPUT, SIMPAN, BATAL, TUTUP, LIST
BRG objeknya command button, Timer, textbox, label, listbox, gridnya
mengginakan MSHFLEXGRID.
Kemudian rancanglah form transaki penjualan seperti berikut:
AMIK BSI TEGAL 32
Outputnya seperti ini:
Keterangan Name Pada Properties:
List1 : LIST1
Kode barang :TXTKDBRG
Nama barang : TXTNMBRG
Satuan : TXTSATUAN
Harga : TXTHARGA
Jumlah Jual : TXTJMHJUAL
Subtotal : TXTSUBTOTAL
GRID
Uang Bayar : TXTBAYAR
Kembalian : TXTKEMBALIAN
Input : cmdinput
Simpan : cmdsimpan
Batal : cmdbatal
Tutup : Cmdtutup
ListBrg : Cmdlistbrg
AMIK BSI TEGAL 33
Logika jalannya program:
1. Pertama run tombol aktif: INPUT sama TUTUP selain itu nonaktif, tgl
otomatis muncul.
2. Tekan INPUT notrans muncul otomatis dan tombol SIMPAN, BATAL
aktif. Sedangkan INPUT, TUTUP nonaktif.
3. Kode barang bisa langsung di input di txtkdbrg lalu enter nama barang,
satuan harga tampil
4. Atau di klik tombol list brg, tampil list barangnya klik salah satu barang
maka kode barang, nama barang,satuan, harga tampil.
5. Kursor langsung muncul di jumlah jual, input jumlah jual lalu enter
muncul kotak pesan.
6. Pilih yes ulangi no. 3 atau 4, pilih no input uang bayar.
7. Jika uang bayar kurang muncul pesan
8. Selain itu muncul kembalian langsung TEKAN TOMBOL SIMPAN atau
BATAL.
9. Jika SIMPAN tampil struk pembayaran. BATAL kembali semula.
10. Di dalam grid bisa juga membatalkan salah satu barang yang di beli,
caranya: klik di dalam grid, pake panah atas bawah utk memilih
barangnya lalu tekan backspace.
11. TEKAN TUTUP keluar dari program transaksi
AMIK BSI TEGAL 34
B. Listing Form Transaksi
Dim ambilstok As Boolean
Sub cetak()
Call koneksi
cr.SelectionFormula = "{TRANSAKSi.notransaksi}='" & TXTNOTRANS
& "'" cr.ReportFileName = App.Path & "\cetak.rpt"
cr.WindowState = crptMaximized cr.RetrieveDataFiles
cr.Action = 1
End Sub
Sub isilist()
'masukin data barang ke list
rsbrg.Open "select * from barang", KON List1.Clear
Do While Not rsbrg.EOF
List1.AddItem rsbrg!kodebarang & Space(3) & rsbrg!namabarang &
Space(3) &
rsbrg!stok rsbrg.MoveNext
Loop
End Sub
Sub SEMULA()
Call bersih
Call NONAKTIF CMDSIMPAN.Enabled = False CMDINPUT.Enabled =
True CMDTUTUP.Enabled = True CMDBATAL.Enabled = False
cmdlistbrg.Enabled = False
List1.Visible = False
End Sub
Sub NONAKTIF()
Dim kontrol As Control
For Each kontrol In Me.Controls
AMIK BSI TEGAL 35
If TypeOf kontrol Is TextBox Then kontrol.Enabled = False
Next
List1.Enabled = False
End Sub
Sub aktif()
Dim kontrol As Control
For Each kontrol In Me.Controls
If TypeOf kontrol Is TextBox Then kontrol.Enabled = True
Next
List1.Enabled = True TXTTGL.Enabled = False TXTUSER.Enabled =
False
End Sub
Sub bersih()
Dim kontrol As Control LBAYAR.Caption = "Bayar" Call hapusTEMP
For Each kontrol In Me.Controls
If TypeOf kontrol Is TextBox Then kontrol.Text = "" Next
TXTUSER = menu.stbar.Panels(1).Text
End Sub
Sub tampilgrid()
Call koneksi
'buka tabel barang
rstemp.Open "select * from TEMP", KON
'atur grid utk tabel TEMP
Set grid.DataSource = rstemp
grid.ColWidth(0) = 50
grid.ColWidth(1) = 1000
grid.ColWidth(2) = 1300
AMIK BSI TEGAL 36
grid.ColWidth(3) = 1300
grid.ColWidth(4) = 1300
grid.ColWidth(5) = 1000
grid.ColWidth(6) = 1000
grid.TextMatrix(0, 1) = "Kode Barang"
grid.TextMatrix(0, 2) = "Nama Barang" grid.TextMatrix(0, 3) = "Satuan"
grid.TextMatrix(0, 4) = "HARGA " grid.TextMatrix(0, 5) = "Jumlah Jual"
grid.TextMatrix(0, 6) = "Subtotal"
End Sub
Sub bikinTEMP()
' bikin tabel TEMP
bikin = "create table TEMP(kodebarang varchar(7),nmbrg varchar(25),sat
varchar(10),hrg double,qty int, subttl double)"
KON.Execute (bikin)
tampilgrid
End Sub
Sub hapusTEMP()
hapus = "drop table if exists TEMP" KON.Execute (hapus)
End Sub
Sub simpanTEMP()
simpan = "insert into TEMP() values('" & TXTKDBRG & "','" &
TXTNMBRG & "','" & TXTSATUAN & "','" & TXTHARGA & "','" &
TXTJMHJUAL & "','" & TXTSUBTOTAL & "')"
KON.Execute (simpan) End Sub
AMIK BSI TEGAL 37
Sub nomor()
TXTTGL = Format(Date, "DD/MM/YYYY") Dim cari As String
'buka tabel transaksi
Call koneksi
rstrans.Open "SELECT * FROM TRANSAKSI ORDER BY
NOTRANSAKSI DESC LIMIT 1;", KON
With rstrans
If .EOF Then
TXTNOTRANS = Format(Date, "yymm") + "001"
ElseIf Left(rstrans!notransaksi, 4) <> Format(Date, "yymm") Then
TXTNOTRANS = Format(Date, "yymm") + "001" Else
NO = .Fields("notransaksi") + 1
TXTNOTRANS = Format(Date, "yymm") + Right("000" + NO, 3) End If
End With
End Sub
Sub simpantransaksijual()
TXTTGL = Format(Date, "YYYY/MM/DD")
simpan = "INSERT INTO transaksi() VALUES('" & TXTNOTRANS &
"','" & TXTTGL & "','" & Val(LBAYAR) & "','" & TXTUSER & "')"
KON.Execute (simpan)
End Sub
Sub simpandetailjual()
For a = 1 To (grid.Rows - 1)
fak = TXTNOTRANS
kdbrg = grid.TextMatrix(a, 1) 'kdbrg berada di kolom 1 jmhjual =
grid.TextMatrix(a, 5) 'jmhjual berada di kolom 5 subttl =
grid.TextMatrix(a, 6) 'subtotal berada di kolom 6
'variabel fak,kdbrg,jmhjual,subttl utk data masukan ke tabel detailjual
AMIK BSI TEGAL 38
simpan = "insert into detailTRANSAKSI()values('" & fak & "','" &
Val(jmhjual) & "','" & Val(subttl) & "','" & kdbrg & "')"
KON.Execute (simpan) Next a
End Sub
Sub ubahstok()
Call koneksi
If ambilstok = True Then
kurang = "update barang set stok=stok - '" & Val(TXTJMHJUAL) & "'
where kodebarang='" & TXTKDBRG & "'"
Set rsbrg = KON.Execute(kurang) ElseIf ambilstok = False Then
tambah = "update barang set stok=stok + '" & Val(TXTJMHJUAL) & "'
where kodebarang='" & TXTKDBRG & "'"
Set rsbrg = KON.Execute(tambah) End If
End Sub
Private Sub cmdlistbrg_Click()
List1.Visible = True
End Sub
Private Sub CMDBATAL_Click()
Call SEMULA
Call hapusTEMP
End Sub
Private Sub CMDINPUT_Click()
Call aktif TXTNOTRANS.Enabled = False
CMDINPUT.Enabled = False
CMDTUTUP.Enabled = False
CMDSIMPAN.Enabled = True
CMDBATAL.Enabled = True
AMIK BSI TEGAL 39
cmdlistbrg.Enabled = True
Call hapusTEMP
Call bikinTEMP
Call nomor
TXTKDBRG.SetFocus
End Sub
Private Sub CMDSIMPAN_Click()
Call simpantransaksijual
Call simpandetailjual
x = MsgBox("cetak?", vbYesNo, "cetak") If x = vbYes Then
Call cetak
y = "delete from temp" KON.Execute (y)
Call tampilgrid
Call SEMULA Else
Call SEMULA
End If
End Sub
Private Sub CMDTUTUP_Click()
Call hapusTEMP
Unload Me
menu.Show
End Sub
Private Sub Form_Activate()
TXTNOTRANS.Enabled = False
Call SEMULA
TXTUSER = menu.stbar.Panels(1).Text
End Sub
AMIK BSI TEGAL 40
Private Sub Form_Load()
Call koneksi
ambilstok = True 'agar memilih mengurangi stok,lihat sub ubahstok
Call isilist
End Sub
Private Sub grid_KeyPress(KeyAscii As Integer)
'agar bisa hapus per record didalam grid. caranya klik di grid lalu pake
panah
'atas bawah utk pilih record yg akan dihapus lalu tekan backspace
a = grid.Row
kodegrid = grid.TextMatrix(a, 1)
Call koneksi
rstemp.Open "select * from TEMP", KON With rstemp
If KeyAscii = 8 Then
If Not (.BOF And .EOF) Then
h = MsgBox("Bener mau dihapus ?", vbQuestion + vbYesNo, "--TaNYa--
") If h = vbYes Then
hapus = "delete from TEMP where kodebarang='" & kodegrid & "'" Set
rstemp = KON.Execute(hapus)
ambilstok = False
Call ubahstok
Call isilist
Me.List1.Refresh grid.Refresh TXTKDBRG.Text = "" TXTNMBRG.Text
= "" TXTSATUAN.Text = "" TXTHARGA.Text = ""
TXTJMHJUAL.Text = "" TXTSUBTOTAL.Text = ""
ttl = Val(LBAYAR.Caption) x = Val(grid.TextMatrix(a, 6)) ttl = ttl - x
LBAYAR.Caption = ttl
End If
End If
End If
End With
AMIK BSI TEGAL 41
Call tampilgrid grid.Refresh End Sub
Private Sub list1_Click()
brg = "select * from barang where kodebarang='" & Left(List1, 7) & "'"
Set rsbrg = KON.Execute(brg)
TXTKDBRG = rsbrg!kodebarang
TXTNMBRG = rsbrg!namabarang
TXTSATUAN = rsbrg!SATUAN
TXTHARGA = rsbrg!HARGASATUAN
TXTJMHJUAL.SetFocus
List1.Visible = False
End Sub
Private Sub Timer1_Timer()
TXTTGL = Format(Date, "DD/MM/YYYY")
End Sub
Private Sub TXTBAYAR_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If Val(LBAYAR) > Val(TXTBAYAR) Then MsgBox "uang bayar
kurang" TXTBAYAR.SetFocus TXTKEMBALIAN.Enabled = False
Else
TXTKEMBALIAN.Enabled = True
TXTKEMBALIAN = Val(TXTBAYAR) - Val(LBAYAR)
CMDSIMPAN.SetFocus
End If
End If
End Sub
Private Sub TXTJMHJUAL_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Call koneksi
AMIK BSI TEGAL 42
rsbrg.Open "select * from barang where kodebarang='" & TXTKDBRG &
"'", KON If Val(TXTJMHJUAL) > rsbrg!stok Then
MsgBox "stok kurang" TXTJMHJUAL.SetFocus Exit Sub
Else
TXTSUBTOTAL = Val(TXTJMHJUAL) * Val(TXTHARGA)
ambilstok = True
Call ubahstok
Call simpanTEMP Call tampilgrid
Call isilist ttl = 0
For a = 1 To (grid.Rows - 1)
x = Val(grid.TextMatrix(a, 6))
ttl = ttl + x
Next a
LBAYAR.Caption = ttl
t = MsgBox("Mau tambah pembelian lagi?", vbQuestion + vbYesNo,
"Konfirmasi") If t = vbYes Then
TXTKDBRG = ""
TXTKDBRG.SetFocus
TXTNMBRG = ""
TXTSATUAN = "" TXTHARGA = "" TXTJMHJUAL = ""
TXTSUBTOTAL = "" Else
Me.Refresh grid.Refresh TXTBAYAR.SetFocus
End If
End If
End If
End Sub
Private Sub TXTKDBRG_KeyPress(KeyAscii As Integer)
Call koneksi
KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then
rsbrg.Open "SELECT * FROM barang WHERE Kodebarang='" &
TXTKDBRG & "'", KON
AMIK BSI TEGAL 43
With rsbrg
If .BOF And .EOF Then
psn = MsgBox("KD" + TXTKDBRG + "TDK ADA", vbInformation,
"KONF") TXTKDBRG = ""
TXTKDBRG.SetFocus
Else
TXTNMBRG = .Fields("Namabarang")
TXTSATUAN = .Fields("SATUAN")
TXTHARGA = .Fields("hargaSATUAN")
TXTJMHJUAL.Enabled = True
TXTJMHJUAL.SetFocus
End If
End With
End If
End Sub
AMIK BSI TEGAL 44
BAB IX
MERANCANG FORM GANTI PASSWORD USER
A. Membuat Form Ganti Password User
Rancanglah form ganti password user seperti berikut:
Outputnya
Name:
Tkduser : kode user
Tlama : passwd lama
Tbaru : passwd baru
T konf : konfirmasi passwd
Btutup : TUTUP
AMIK BSI TEGAL 45
B. Listing Form Ganti Password User
Private Sub BTUTUP_Click()
Unload Me
menu.Show
End Sub
Private Sub Form_Activate()
For Each k In Me.Controls
If TypeOf k Is TextBox Then k.Enabled = False
End If
Next
TKDUSER = menu.stbar.Panels(1).Text
TLAMA.Enabled = True
TLAMA.SetFocus TLAMA.PasswordChar = " * " TBARU.PasswordChar
= " * " TKONF.PasswordChar = " * "
End Sub
Private Sub TBARU_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TKONF.Enabled = True
TKONF.SetFocus
End If
End Sub
Private Sub TKONF_KeyPress(KeyAscii As Integer)
Call koneksi
If KeyAscii = 13 Then
If TKONF <> TBARU Then
MsgBox "konfirmasi dan password baru berbeda" Else
rsuser.Open "update LOGIN set password=' " & TKONF & " ' WHERE
kodeuser=' " & TKDUSER & " ' ", KON
MsgBox "password telah diupdate"
AMIK BSI TEGAL 46
Form_Activate TLAMA = " "
End If
End If
End Sub
Private Sub TLAMA_KeyPress(KeyAscii As Integer)
Call koneksi
If KeyAscii = 13 Then
rsuser.Open "SELECT * FROM LOGIN WHERE password=' " &
TLAMA & " ' ", KON If rsuser.EOF Then
MsgBox "password " + TLAMA + " tidak ada" TLAMA.SetFocus
Else
TBARU.Enabled = True
TBARU.SetFocus
End If
End If
End Sub
AMIK BSI TEGAL 47
BAB X
MEMBUAT LAPORAN PENJUALAN HARIAN, MINGGUAN,
BULANAN
A. Membuat Laporan Penjualan Harian
Di pertemuan 7 pembuatan struk pembayaran, sudah membuat koneksi odbc
dengan nama tutorial. Berikutnya akan kita gunakan kembali ODBC: tutorial.
Buka crystal report, pilih as a blank report, di data explorer klik Add/double
klik tabel barang, detailtransaksi, login, transaksi.
AMIK BSI TEGAL 48
Buat design laporan harian seperti di bawah ini hampir sama dengan struk
pembayaran (save as saja dari cetak.rpt):
Field Tabel
Tgljual → transaksi
Kodeuser → transaksi
Kodebarang → barang
Namabarang → barang
Hargasatuan → barang
jumlahbeli → detailtransaksi
subtotal → detailtransaksi
No. Transaksi:
Menu insert – group
Pilih notransaksi dari tabel
transaksi
Grand total:
Menu Insert – Grandtotal
Pilih subtotal dari
detailtransaksi
AMIK BSI TEGAL 49
Bedanya dengan struk pembayaran di posisi group #1Name notransaksi
B. Membuat Laporan Penjualan Mingguan
Untuk mingguan, juga tinggal di save as dari laporan harian, lalu tambahkan
tanggal jual dari tabel transaksi. Sedangkan untuk tanggal sekarang gunakan
formula fields – new – isikan tanggal di formula name – di formula editor ketikan
CurrentDate atau double klik seperti gambar di bawah ini – lalu simpan.
L alu drag tanggal yang sudah jadi ke
page header
AMIK BSI TEGAL 50
C. Membuat Laporan Penjualan Bulanan
Untuk laporan bulanan tinggal di save as dari laporan MINGGUAN, lalu
tambahkan @BULAN dan @tanggal.
Tempatnya sama di formula editor, menggunakan 2 fungsi Month(untuk
menghasilkan bulan) dan monthName(untuk output bulannya nama).
AMIK BSI TEGAL 51
AMIK BSI TEGAL 52
Crystal
Report
BAB XI
MEMBUAT FORM LAPORAN DAN FILE.EXE
A. Membuat Form Laporan
Rancanglah Form laporannya seperti berikut:
Listingnya:
Private Sub Bkeluar_Click()
Unload Me menu.Show
End Sub
Private Sub CBULAN_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then Unload Me
End Sub
'LAP HARIAN
Private Sub CHARIAN_Click()
'panggil laporan yang tanggalnya = charian
Keterangan Name pada Properties
: Combo1 : Charian
Combo2 : Cmingguawal
Combo3 : Cmingguakhir
Combo4 : Cbulan
Combo5 : Ctahun
Crystal Report : CR
AMIK BSI TEGAL 53
CR.SelectionFormula = "Totext ({ TRANSAKSI.TglJUAL})=' " & CHARIAN
& " ' "
CR.ReportFileName = App.Path & "\Lap_HARIAN.rpt" CR.WindowState =
CRptMaximized CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub CHARIAN_KeyPress(KeyAscii As Integer)
If CHARIAN = " " Or KeyAscii = 27 Then Unload Me
End Sub
'LAP MINGGUAN
Private Sub CMINGGUAKHIR_Click()
'cegah data kosong di CMINGGUAWAL dan cMINGGUAKHIR If
CMINGGUAWAL = " " Then
MsgBox "Tanggal awal kosong", , "Informasi" CMINGGUAWAL.SetFocus
Exit Sub
End If
'panggil laporan yang tanggal awalnya=CMINGGUAWAL dan tanggal
akhirnya = CMINGGUAKHIR
CR.SelectionFormula = "{TRANSAKSI.TglJUAL} in date (" &
CMINGGUAWAL.Text & ") to date (" & CMINGGUAKHIR.Text & ")"
CR.ReportFileName = App.Path & "\Lap_Mingguan.rpt" CR.WindowState =
CRptMaximized CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub CMINGGUAWAL_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then Unload Me
End Sub
AMIK BSI TEGAL 54
'LAP BULANAN
Private Sub CTAHUN_Click()
'buka database
Call koneksi
'cari data yang tanggal dan bulannya dipilih di CBULAN dan CTAHUN
rstrans.Open "select * from TRANSAKSI where month(TGLJUAL)=' " &
Val(CBULAN) & " ' and year(TGLJUAL)=' " & (CTAHUN) & " ' ", KON
'jika tidak cocok, munculkan pesan
If rstrans.EOF Then
MsgBox "Data tidak ditemukan" Exit Sub
CBULAN.SetFocus
End If
'jika ditemukan panggil file laporan yang
'datanya bulannya=cBULAN dan tahunnya= CTAHUN
CR.SelectionFormula = "Month({TRANSAKSI.TGLJUAL})=" &
Val(CBULAN.Text) & " and
Year({TRANSAKSI.TGLJUAL})=" & Val(CTAHUN.Text)
CR.ReportFileName = App.Path & "\Lap_Bulanan.rpt" CR.WindowState =
CRptMaximized CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub Form_Load()
'buka database
Call koneksi
AMIK BSI TEGAL 55
'cari tanggal pembelian
rstrans.Open "Select Distinct TGLJUAL From transaksi order By 1", KON
rstrans.Requery
'tampilkan tanggal dalam combo
Do Until rstrans.EOF CHARIAN.AddItem rstrans!Tgljual
CMINGGUAWAL.AddItem Format(rstrans!Tgljual, "YYYY ,MM, DD")
CMINGGUAKHIR.AddItem Format(rstrans!Tgljual, "YYYY ,MM, DD")
rstrans.MoveNext
Loop
'buatlah looping untuk bulan dari 1-12
'dan tahun mulai tahun 2010 s/d 2020
For i = 1 To 12
CBULAN.AddItem i
Next i
For i = 10 To 20
CTAHUN.AddItem 2000 + i
Next i
End Sub
B. Membuat File.Exe
Klik menu file – pilih make P.TUTORIAL.exe – kasih nama file : proj-tutorial
- ok.
AMIK BSI TEGAL 56
DAFTAR REFERENSI
Fathansyah. 2015. Basis Data Revisi Kedua. Bandung. Informatika Bandung.
Fauzi,M. Miftakul Amin. 2012. Pemrograman Database Visual Basic 6 dan SQL
Server. Yogyakarta: Andi.
Kadir, Abdul. 2008. Tuntunan Praktis Belajar Database Menggunakan MySQL.
Yogyakarta: Andi
Ladjamudin, Al Bahra bin. 2012. Analisis dan Desain Sistem Informasi.
Yogyakarta:Graha Ilmu.