Anda di halaman 1dari 93

Modul VB.

Net
Daftar Isi
BAB 1 Instalasi VB.Net .........................................................................
1.1 Proses Instalasi VB.Net ............................................................
1.2 Sekilas tentang VB.Net ............................................................
BAB 2 Merancang Database ...............................................................
2.1 Konsep Database ....................................................................
2.2 Key ..........................................................................................
2.3 Teknologi Manipulasi Data .......................................................
2.4 Database dan Data Kontrol .....................................................
2.5 Konsep Database Relational ....................................................
2.6 Index .......................................................................................
2.7 Entity Relationship Diagram (ERD) ..........................................
2.8 Membuat Relasi antar database ..............................................
2.9 Koneksi Database Access pada VB.Net ...................................
BAB 3 Membuat Form ...........................................................................
3.1 Main Menu ...............................................................................
3.2 Membuat Main Menu ...............................................................
3.3 Penggunaan Module ...............................................................
3.4 Form Entri Data Barang ...........................................................
3.5 Form Entri Data Pelanggan ......................................................
3.6 Form Entry Pesanan ................................................................
3.7 Form Entry Nota ......................................................................
3.8 Form Entry Cetak Nota ............................................................
3.9 Form Cetak Kwitansi ................................................................
3.10 Form Entry Surat Jalan ..........................................................
3.11 Form Entry Retur ...................................................................
3.12 Form Cetak Retur ..................................................................
BAB 4 Membuat Laporan .....................................................................
4.1 Form Cetak Surat Jalan ............................................................
4.2 Form Cetak Laporan Penjualan ................................................
Daftar Pustaka .......................................................................................

BAB 1
INSTALASI VB.NET
1.1 Proses Instalasi VB.NET
Untuk menginstall Microsoft VB.NET sama seperti menginstal aplikasi
produk Miscrosoft lain pada umumnya. Dalam hal ini tinggal hidupkan
komputer, kemudian masukkan CD instalan VB.NET kedalam CD-ROM.
Kemudian tunggu hingga proses selesai.
Untuk menjalankan Microsoft VB.NET diperlukan perangkat keras yang
sesuai dengan kebutuhan. Namun apabila koputer sudah terpasang
Microsoft Windows 2000 atau yang lebih tinggi misalnya Windows XP,
maka sudah dipastikan bahwa Anda bisa menjalankan Microsoft VB.NET.
Untuk menginstal VB.NET Anda harus mempersiapkan perangkat keras
dan perangkat lunak sebagai berikut :
Komputer dengan spesifikasi minimal Pentium II 450 MHz
Memori atau RAM yang disesuaikan dengan sistem operasi yang
digunakan.
Monitor Super VGS (1024x768) atau yang lebih tinggi.
Hardisk minimal 10 GB.
Mouse
Sistem Operasi Windows 2000 atau yang lebih tinggi.
1.2 Sekilas tentang VB.Net
Hampir sebagian besar pengguna komputer di dunia sudah mengenal
produk-produk Microsoft, salah satunya adalah Microsoft Visual Basic.Net.
VB.Net merupakan pengembangan dari Microsoft Visual Basic versi
sebelumnya.
Membangun suatu program aplikasi dengan vB.Net lebih mudah dan
menyenangkan, karena selain dilengkapi fitur-fitur baru juga tersedia
bermacam-bermacam toolbars, komponen, class, object dan sebagainya.
Jika Anda sudah terbiasa dengan Visual Basic kemungkinan besar untuk

migrasi ke VB.Net tidak akan mengalami kesulitan, karena hampir semua


komponen di Visual Basic versi sebelumnya masih bisa digunakan.
Sebagai contoh untuk membuat suatu Project dengan VB.Net Anda tinggal
klik Menu File, kemudian pilih Project dan akan keluar kotak dialog.
Setelah itu pilih Windows Application, kemudian beri nama Project
tersebut.

BAB 2
MERANCANG DATABASE
2.1 Konsep Database
Dalam membangun aplikasi menggunakan Visual basic selalu dilengkapi
dengan database. Database ini bisa dibuat dengan Microsoft Access,
Oracle, Microsoft SQL dan sebagainya. Dalam hal ini tentu disesuaikan
dengan kebutuhan dan kemampuan pemrogram.
Yang dimaksud dengan mendesain database adalah merancang suatu
database yang akan digunakan dalam suatu aplikasi yang akan dibangun.
Sedangkan database itu sendiri adalah kumpulan beberapa tabel yang
ditampung dalam suatu file yang namanya database.
Basisdata (database) adalah kumpulan data yang saling berhubungan
satu dengan lainnya yang tersimpan di perangkat keras komputer dan
diperlukan suatu perangkat lunak untuk memanipulasi basis data
tersebut.
Data, merupakan kenyataan yang menggambarkan suatu kejadiankejadian dari kesatuan yang nyata. Data tersimpan secara terintegrasi
dan dipakai secara bersama-sama.
DBMS

adalah

sistem

perangkat

lunak

yang

digunakan

untuk

mengendalikan data, termasuk penyimpanan data, pengambilan data,


keamanan data dan integritas data. Fungsi utama DBMS adalah untuk
menyediakan lingkungan yang nyaman dan efisien untuk digunakan
dalam pengambilan dan penyimpanan informasi di basis data.
Operasi-operasi dasar yang dapat dilakukan berkenaan dengan basis data
meliputi :
1. Pembuatan basis data baru (create database)
2. Penghapusan basis data (drop database)
3. Pembuatan file atau tabel baru ke suatu basis data (create table)

4. Penghapusan file atau tabel dari suatu basis data (drop table)
5. Penambahan atau pengisian data baru ke sebuah file atau tabel di
sebuah basis data (insert)
6. Pengambilan data dari sebuah file atau tabel (retieve atau search)
7. Perubahan data dari sebuah file atau tabel (update)
8. Penghapusan data dari sebuah file atau tabel (delete)
File adalah tempat penyimpanan informasi. Agar file mutakhir/uptodate
maka file harus di mutakhirkan/update.
Update terdiri dari :

Insert

Delete : Menghapus data (record)

Modify : Mengubah data (field)

: menambahkan data (record) baru

Terdapat beberapa konsep yang perlu diketahui pada penyimpanan


data antara lain :

File adalah Sekumpulan record dari tipe tunggal yang berisi elemenelemen data yang menggambarkan himpunan entitas.

Record adalah rangkaian field yang berisi elemen-elemen data yang


menggambarkan

beberapa

entitas.

Suatu

record

mengandung

informasi dari suatu isian tunggal dalam suatu tabel. Sebagai contoh,
sebuah record dalam suatu tabel Karyawan akan mengandung
informasi dari karyawan-karyawan.

Field adalah suatu elemen yang memiliki atribut (panjang, tipe data,
dll) dan harga dan merupakan unit informasi terkecil yang bisa
diakses. Suatu record dibentuk oleh banyak field. Setiap field dalam
suatu record mengandung suatu potongan tunggal dari informasi
tentang record. Sebagai contoh, suatu record Karyawan memiliki No
Induk Karyawan, Nama, Marga dan yang lainnya.

2.2 Key

Key adalah elemen record yang dipakai untuk menemukan record pada
waktu akses. Untuk secara unik mengenali suatu baris (record), setiap
tabel harus memiliki suatu primary key. Dalam konsep database, dikenal
beberapa key, antara lain :
a. Primary Key
Primary key adalah suatu field, atau kombinasi dari field-field, yang
mana nilainya bersifat unik untuk tiap baris atau record dalam tabel.
Key merupakan field yang mengidentifikasikan sebuah record dalam
file dan bersifat unix.

b. Secondary Key
Berbeda dengan primary key, secondary key merupakan field yang
mengidentifikasikan sebuah record dalam file yangt idak bersifat unix.

c. Candidate Key
Merupakan field-field yang bisa dipilih (dipakai) menjadi primary key.

d. Alternate Key
Merupakan Candidate key yang tidak terpilih menjadi Primary key

e. Composite Key
Yang dimaksud dengan Composite Key adalah primary key yang
dibentuk dari beberapa Field

d. Foreign Key
adalah field yang bukan key, tapi key pada file yang lain

2.3 Teknologi Manipulasi Data


Sebelum kita bergerak terlalu jauh ada baiknya kita mengenal dulu apa
itu ADO, DAO dan RDO pada Visual Basic. Bagi pendatang baru di
pemrograman basis data dengan menggunakan Visual Basic, perlu
diketahui bahwa khusus pada VB 6.0 terdapat tiga 'interface' untuk
pengaksesan data, yaitu ;

ADO : ActiveX Data Objects

RDO : Remote Data Object

DAO : Data Access Objects

Seperti kita ketahui, teknologi data access selalu berkembang dengan


cepat. Teknologi terakhir adalah ADO, yang menawarkan kemudahan dan
fleksibilitas dibandingkan dengan RDO atau DAO. Selain itu ADO juga
mudah untuk dipelajari. Jadi untuk mengembangkan suatu aplikasi basis
data baru, gunakan saja teknologi terakhir yang disebut ADO (ActiveX
Data Objects).

Alasan menggunakan teknologi ini karena, ADO (ActiveX Data Objects) di


disain untuk memudahkan interaksi aplikasi dengan data access sesuai
dengan paradigma baru yang dikembangkan oleh Microsoft yaitu OLE DB.
OLE DB menyedikan 'high-performance' untuk meng-akses semua jenis
data source, termasuk didalamnya non-relational database dan relational
(ORACLE-InterBase-BD2), email dan file systems, text dan grafik, dan
lainnya.

2.4 Database dan Data Kontrol


Database merupakan koleksi dari informasi yang berhubungan dengan
subjek atau fungsi tertentu, seperti menangani nilai-nilai ujian mahasiswa
atau menangani suatu daftar koleksi musik. Jika database anda tidak
tersimpan dalam komputer, maka anda harus menangani informasi
tersebut

dari

berbagai

sumber

dan

mengkoordinir

serta

mengorganisasinya sendiri.
Dengan mengunakan suatu Sistem Manajemen Database (DBMS) anda
dapat

menempatkan

database

anda

dalam

suatu

file,

dan

mengorganisasikannya menjadi tabel-tabel, dan mengkoordinir data


tersebut menjadi laporan dengan berbagai fasilitas seperti Form, Query,
Report.

2.5 Konsep Database Relational


Model relational merupakan standar untuk rancangan database, dimana
database disimpan dan ditampilkan sebagai suatu koleksi dari tabel-tabel.

Suatu struktur didefinisikan dengan membuat relasi antar tabel, kaitan


data antar tabel ini di dalam database merupakan model dari relationship.

Adapun model database relational menawarkan keuntungan sebagai


berikut :

Mengorganisasikan data didalam suatu koleksi tabel-tabel membuat


rancangan menjadi mudah dipahami.

Menyediakan suatu bahasa yang relatif lengkap untuk mendefinisikan


data, mengambil dan mengupdate.

Menyediakan aturan integritas yang mana mendefinisikan suatu


keadaan yang konsisten untuk meningkatkan reliabilitas data.

Model database relational menampilkan data sebagai suatu koleksi dari


tabel-tabel. Suatu tabel adalah pengelompokan secara logika dari
informasi yang berhubungan. Tabel-tabel dibentuk oleh baris-baris dan
kolom-kolom. Baris-baris sering disebut sebagai record-record dan kolomkolom disebut sebagai field-field.

2.6 Index
Untuk mempercepat akses, banyak database menggunakan index. Data
tabel yang terindex berurut akan lebih cepat pencariaannya dibandingkan
dengan tabel. Setiap isi index menunjuk ke posisi ditabelnya

2.7 Entity Relationship Diagram (ERD)


Dalam ERD, hubungan antar table dikenal sebagai cardinality (tingkat
hubungan antar entitas/table). Cardinality terdiri dari :
(one to one)
1-M (one to many)
M-N (many to many)

2.8 Membuat Relasi antar database


Sesuai dengan konsep database relational, tentu saja tabel-tabel didalam
suatu database memiliki link berdasarkan field tertentu yang bertindak
sebagai foreign key dan primary key.

Dari bentuk relational database diatas maka dapat kita lihat bahwa :

Tabel Aktifitas berisi data aktifitas peserta dimana seorang Peserta


dapat mengikuti lebih dari satu forum Diskusi, dan sebuah forum
diskusi dapat diikuti oleh lebih dari satu peserta, dan status Peserta
pada masing-masing forum diskusi dapat berbeda-beda.

Nama Field (Foreign

Foreign Tabel

Foreign Field

Email

Peserta

Email

ForumID

Forum

ForumID

Status

Status

Status

key)

Untuk membuat Relasi antar tabel dapat menggunakan Bahasa SQL


yang diketikan pada jendela SQL Language dan kemudian di Execute.

Adapun DDL (Data Definition Language) SQL untuk membuat Relasi


antar tabel adalah sebagai berikut :
ALTER TABLE table ADD CONSTRAINT name

FOREIGN KEY (ref1[,

ref2 [, ...]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2


[, ...]])]

dimana :
table

Nama tabel

name

Nama Constraint yang akan dibuat

ref

Nama field yang akan dibuat relasi

foreigntable

Nama foreign table

foreignfield

Nama foreign field

Contoh :

ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasEmail FOREIGN


KEY (Email) REFERENCES Peserta (Email);

ALTER

TABLE

Aktifitas

ADD

CONSTRAINT

AktifitasForumID

FOREIGN KEY (ForumId) REFERENCES Forum (ForumId);

ALTER

TABLE

Aktifitas

ADD

CONSTRAINT

AktifitasStatus

FOREIGN KEY (Status) REFERENCES Satus (Status);

Jika dibuka dengan Relationship pada Microsoft Access maka hasil


perintah SQL diatas akan membuat relasi antar tabel sebagai berikut :

2.9 Koneksi Database Access pada VB.Net


Materi database pada perkuliahan VB Net menggunakan Microsoft Access
2003. Setelah membuat project baru, siapkan database pada folder
tempat project baru.
Misal : nama project VBNet = supermarket
nama database

= supermarket.mdb

Pada database supermarket siapkan tabel-tabel yang diperlukan, misal


untuk tahap awal, siapkan tabel barang, dengan struktur berikut :

Tahap selanjutnya, isikan beberapa record barang. Kemudian pada project


Supermarket aplikasi VB Net, lakukan koneksi ke database supermarket
dengan tahapan berikut : Pada Toolbox Data, lakukan dobel klik pada
OleDbDataAdapter,
Connection

kemudian

klik

Next

dan

pilih

Tombol

New

Pilih Provider : Microsoft Jet 4.0 OLE DB Provider, klik tombol Next
Kemudian pilih database yang akan digunakan

Setelah proses koneksi selesai, klik tombol Next. Lanjutkan hingga pada
perintah

Generate

SQL

statements,

ketikkan

perintah

SQL

untuk

menampilkan data barang. Urutan Field Pada perintah Select akan


berpengaruh pada susunan kolom pada komponen DataGrid.
Kemudian pada proses selanjutnya akan muncul hak akses yang diberikan
ke kita secara penuh, yaitu Select,Insert, Update dan Delete.

Pada tahap berikutnya pilih dont include password

Setelah proses koneksi selesai, tahap berikutnya adalah membuat


dataset, Dataset adalah komponen yang berfungsi sebagai sumber data
(data source) untuk komponen-komponen yang ada dalam Form.

Untuk membuat dataset, klik kanan pada komponen OledbDataAdapter1,


kemudian pilih generate dataset
Setelah proses membuat dataset baru selesai, ganti properties name
komponen dataset (misal: dsbarang).

Untuk menampilkan data, pilih komponen datagrid, letakkan dalam from,


kemudian

atur

properties

datasourcenya,

pilih dsbarang.barang.

Setelah dipilih datasource, pada komponen Datagrid akan tampil fieldfield dari tabel barang

Agar pada saat running/dijalankan, pada komponen datagridnya muncul


data/record tabel barang, pada komponen form1 event load, ketikkan
perintah : OleDBDataAdapter1.fill(dsbarang),

Pada tombol keluar, ketikkan perintah untuk menutup koneksi dan


menutup form/program.

BAB 3
MEMBUAT FORM
3.1 Main Menu
Agar program aplikasi yang dibangun bisa digunakan dengan baik, harus
ada suatu menu sebagai pengontrol proses yang sedang atau akan
berlangsung. Tanpa dibangun suatu menu, maka akan sulit bagi pemakai
atau user untuk menjalankan suatu aplikasi yang dibangun. Oleh karena
itu menu dalam suatu aplikasi sangat penting. Main menu yang ada dalam
program dapat digunakan untuk memanggil semua form yang telah
dibuat.
Untuk membuat menu, dalam VB.Net sangat berbeda dibandingkan
dengan bahasa pemrograman lainnya, karena VB.Net sudah menyediakan
fasilitas berupa Control Object.

3.2 Membuat Main Menu


Dalam diktat VB.Net Lanjutan ini Anda di anggap sudah bisa bagaimana
cara membuat form, mendesain form dan menambah obyek-obyek yang
akan dijadikan menu maupun sub menu.
Tampilan main menu yang akan di buat seperti ditampilkan gambar
berikut ini

Listing program dari main menu diatas adalah :

Public Class Menu


Inherits System.Windows.Forms.Form
Private Sub Label3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
Label3.Click
Me.Hide()
cur = New Barang
cur.Show()
End Sub
Private Sub Label5_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
Label5.Click
Me.Hide()
cur = New Pelanggan
cur.Show()
End Sub
Private Sub Label10_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
Label10.Click
Me.Hide()
cur = New Nota1
cur.Show()
End Sub
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
If MsgBox("Apakah anda yakin ingin keluar dari
Program ini?",
MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
End
End If
End Sub

Private Sub Label17_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles Label17.Click
Me.Hide()
cur = New Entry_SJ
cur.Show()
End Sub

Private Sub Label15_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles Label15.Click
Me.Hide()
cur = New cetak_Kwitansi
cur.Show()
End Sub
Private Sub Label14_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Label14.Click
Me.Hide()
cur = New Retur
cur.Show()
End Sub
Private Sub Label2_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Label2.Click
Me.Hide()
cur = New SP
cur.Show()
End Sub
Private Sub Label12_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Label12.Click
Me.Hide()

cur = New Lap_Barang


cur.Show()
End Sub
Private Sub Label11_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Label11.Click
Me.Hide()
cur = New Form1
cur.Show()
End Sub
Private Sub Menu_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs)Handles MyBase.Load
End Sub
End Class

3.3 Penggunaan Module


Setelah selesai membuat main menu, sekarang kita akan mencoba
membuat sebuah module. Module ini nantinya akan digunakan pada
pengembangan aplikasi program yang akan dibuat, dimana di dalam
module ini akan terdapat variabel yang bersifat global atau dapat diakses
dari semua form pada program aplikasi dan beberapa procedure yang
juga bisa diakses dari semua form.
Fungsi pembuatan module ini adalah agar kita tidak perlu selalu membuat
koneksi ke database dalam hal ini supermarket.mdb pada setiap form.
Modul yang akan di buat adalah sebagai berikut :

Imports System.Data.OleDb
Imports System.Data
Module MyModule
Public strConn As String =

"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & Application.StartupPath &
"\jeckess.mdb;"
Public cur As New Form
End Module

3.4 Form Entri Data Barang


Sebelum membuat program entri data barang, terlebih dahulu Anda harus
membuat sebuah module.
Form yang menarik biasanya akan disukai, karena yang berhubungan
dengan proses Entri, Edit dan sebagainya erat kaitannya dengan
penampilan suatu form. Adapun fungsi dari data entri adalah untuk proses
input data, misalnya data barang yang nantinya akan digunakan pada
saat transaksi pembelian dan penjualan barang.
Bentuk atau desain dari form entry data barang seperti pada gambar
berikut :

Listing program Entry Data Barang sebagai berikut :


Imports System.Data.OleDb
Imports System.Data
Public Class Barang
Dim cnn As OleDbConnection
Dim cmmd As OleDbCommand
Dim dReader As OleDbDataReader
Private Sub Barang_Closing(ByVal sender As Object, ByVal
e As System.ComponentModel.CancelEventArgs) Handles
MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub
Private Sub btnKeluar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
btnKeluar.Click
'Me.Hide()
'cur = New Menu
'cur.Show()
Me.Close()
End Sub
Private Sub Barang_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
'Buka koneksi
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then
cnn.Close()
cnn.Open()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM barang ORDER BY KD_BRG
DESC"
cmmd = New OleDbCommand(sql, cnn)

dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_BRG"), 3, 5)
Else
txtkdBrg.Text = "BR00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdBrg.Text = "BR" & Mid("0000", 1, 5 strValue.Length) & strValue
End Sub
Private Sub txtkdBrg_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles
txtkdBrg.KeyPress
If Asc(e.KeyChar) = 13 Then
cmmd = New OleDbCommand("SELECT * FROM barang WHERE
KD_BRG='" & _txtkdBrg.Text & "'", cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
''jika data ditemukan
btnSimp.Enabled = True
btnUbah.Enabled = True
btnHps.Enabled = True
txtnmBrg.Text = dReader.Item("nm_brg")
txtHarsat.Text = dReader.Item("HARSAT")
cmbSex.Text = dReader.Item("Jk")
cmbColor.Text = dReader.Item("WARNA")
cmbSize.Text = dReader.Item("UKURAN")
txtnmBrg.Focus()
Else
txtnmBrg.Focus()
txtnmBrg.Text = ""
txtHarsat.Text = ""
cmbSex.Text = ""
cmbColor.Text = ""
cmbSize.Text = ""
End If
End If
End Sub

Private Sub btnSimp_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnSimp.Click
Dim sql As String
Dim strTemp As String = ""
Dim strValue As String = ""
sql = "INSERT INTO barang(kd_brg, nm_brg, harsat, jk, warna,
ukuran) " & _"VALUES('" & txtkdBrg.Text & _"','" & txtnmBrg.Text &
"','" & txtHarsat.Text & "','" & cmbSex.Text & _"','" &
cmbColor.Text & "','" & cmbSize.Text & "')"
cmmd = New OleDbCommand(sql, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA BARANG BERHASIL DISIMPAN")
sql = "SELECT * FROM barang ORDER BY KD_BRG DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_BRG"), 3,5)
Else
txtkdBrg.Text = "BR00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdBrg.Text = "BR" & Mid("0000", 1, 5 strValue.Length) & strValue
txtnmBrg.Text = ""
txtHarsat.Text = ""
cmbSex.Text = ""
cmbColor.Text = ""
cmbSize.Text = ""
txtnmBrg.Focus()
Else
MessageBox.Show("GAGAL MENYIMPAN DATA BARANG")
End If
End Sub
Private Sub btnUbah_Click(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles btnUbah.Click
Dim sql As String

Dim strTemp As String = ""


Dim strValue As String = ""
sql = "UPDATE barang SET nm_brg='" & txtnmBrg.Text &
"'," & _
"harsat='" & txtHarsat.Text & "', " & _"jk='" &
cmbSex.Text &
"'," & _"warna='" & cmbColor.Text &
"'," & _"ukuran='" &
cmbSize.Text & "'" &
_"WHERE kd_brg='" & txtkdBrg.Text & "'"
cmmd = New OleDbCommand(sql, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA BARANG BERHASIL DIUPDATE")
sql = "SELECT * FROM barang ORDER BY KD_BRG DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_BRG"), 3, 5)
Else
txtkdBrg.Text = "BR00001"
Exit Sub
End If

strValue = Val(strTemp) + 1
txtkdBrg.Text = "BR" & Mid("0000", 1, 5 strValue.Length) & strValue
txtnmBrg.Text = ""
txtHarsat.Text = ""
cmbSex.Text = ""
cmbColor.Text = ""
cmbSize.Text = ""
txtkdBrg.Enabled = True
txtkdBrg.Focus()
Else
MessageBox.Show("GAGAL UPDATE DATA BARANG")
End If
End Sub

Private Sub btnHps_Click(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles btnHps.Click

Dim sql As String


Dim strTemp As String = ""
Dim strValue As String = ""
sql = "DELETE FROM barang WHERE KD_BRG='" &
txtkdBrg.Text
& "'
cmmd = New OleDbCommand(sql, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA BARANG BERHASIL DIHAPUS")
sql = "SELECT * FROM barang ORDER BY KD_BRG DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_BRG"), 3, 5)
Else
txtkdBrg.Text = "BR00001"
Exit Sub
End If

strValue = Val(strTemp) + 1
txtkdBrg.Text = "BR" & Mid("0000", 1, 5 - strValue.Length) &
strValue
txtnmBrg.Text = ""
txtHarsat.Text = ""
cmbSex.Text = ""
cmbColor.Text = ""
cmbSize.Text = ""
txtkdBrg.Enabled = True
txtkdBrg.Focus()
Else
MessageBox.Show("GAGAL HAPUS DATA BARANG")
End If
End Sub

Private Sub btnBtl_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnBtl.Click
txtnmBrg.Text = ""
txtHarsat.Text = ""
cmbSex.Text = ""

cmbColor.Text = ""
cmbSize.Text = ""
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM barang ORDER BY KD_BRG DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_BRG"), 3, 5)
Else
txtkdBrg.Text = "BR00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdBrg.Text = "BR" & Mid("0000", 1, 5 strValue.Length) & strValue
End Sub
Private Sub btnCariBrg_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
btnCariBrg.Click
Dim popupbrg As New PopBrg
popupbrg.ShowDialog()
If popupbrg.retKd_Brg <> "" Then
txtkdBrg.Text = popupbrg.retKd_Brg
txtnmBrg.Text = popupbrg.retNm_Brg
txtHarsat.Text = Format(CDbl(popupbrg.retHarsat),
"##,####,####,###")
cmbSex.Text = popupbrg.retJK
cmbColor.Text = popupbrg.retWarna
cmbSize.Text = popupbrg.retUkuran
txtkdBrg.Enabled = False
txtnmBrg.Focus()
End If
End Sub
End Class

3.5 Form Entri Data Pelanggan


Fungsi Data Pelanggan adalah untuk memasukkan data-data pelanggan
yang digunakan pada saat penjualan barang. Adapun desain form Entri
Data Pelanggan adalah sebagai berikut :

Listing program Entry Data Pelanggan sebagai berikut :

Imports System.Data.OleDb
Imports System.Data
Public Class Pelanggan
Dim cnn As OleDbConnection
Dim cmmd As OleDbCommand
Dim dReader As OleDbDataReader
Private Sub Pelangan_Closing(ByVal sender As Object,
ByVal e As System.ComponentModel.CancelEventArgs)
Handles MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub

Private Sub Pelanggan_Load(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles MyBase.Load
'Buka koneksi
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close()
cnn.Open()
'Buat AutoNumber u kode pelanggan
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM pelanggan ORDER BY KD_PLG
DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_PLG"), 3, 5)
Else
txtkdPlg.Text = "PL00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdPlg.Text = "PL" & Mid("0000", 1, 5 strValue.Length) &
strValue
End If
End Sub
Private Sub txtkdPlg_KeyPress(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles
txtkdPlg.KeyPress
If Asc(e.KeyChar) = 13 Then
cmmd = New OleDbCommand("SELECT * FROM pelanggan
WHERE
KD_PLG='" & _txtkdPlg.Text & "'", cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
''jika data ditemukan
btnSimp.Enabled = True
btnUbah.Enabled = True
btnHps.Enabled = True
txtnmPlg.Text = dReader.Item("nm_plg")

txtAlmt.Text = dReader.Item("almt")
txtKontak.Text = dReader.Item("telp")
txtnmPlg.Focus()
Else
txtnmPlg.Focus()
txtnmPlg.Text = ""
txtAlmt.Text = ""
End If
End If
End Sub
Private Sub btnSimp_Click(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles btnSimp.Click
Dim sql As String
Dim strTemp As String = ""
Dim strValue As String = ""
sql = "INSERT INTO pelanggan(KD_PLG, nm_plg, almt, TELP)
" & _
"VALUES('" & txtkdPlg.Text & _ "','" &
txtnmPlg.Text & "','" & txtAlmt.Text &
"','" &
txtKontak.Text & "')"
cmmd = New OleDbCommand(sql, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA PELANGGAN BERHASIL
DISIMPAN")
sql = "SELECT * FROM pelanggan ORDER BY KD_PLG
DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_PLG"), 3, 5)
Else
txtkdPlg.Text = "PL00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdPlg.Text = "PL" & Mid("0000", 1, 5 strValue.Length) & strValue

txtnmPlg.Text = ""
txtAlmt.Text = ""
txtKontak.Text = ""
txtnmPlg.Focus()
Else
MessageBox.Show("GAGAL MENYIMPAN DATA PELANGGAN")
End If
End Sub
Private Sub btnUbah_Click(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles btnUbah.Click
Dim sql As String
Dim strTemp As String = ""
Dim strValue As String = ""
sql = "UPDATE pelanggan SET nm_plg='" & txtnmPlg.Text &
"'," & _
"almt='" & txtAlmt.Text & "', " & _ "TELP='" &
txtKontak.Text & "' " & _
"WHERE KD_PLG='" & txtkdPlg.Text & "'
cmmd = New OleDbCommand(sql, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA BERHASIL DIUPDATE")
sql = "SELECT * FROM pelanggan ORDER BY KD_PLG
DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_PLG"), 3, 5)
Else
txtkdPlg.Text = "PL00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdPlg.Text = "PL" & Mid("0000", 1, 5 strValue.Length) & strValue
txtnmPlg.Text = ""
txtAlmt.Text = ""
txtKontak.Text = ""

txtkdPlg.Enabled = True
txtkdPlg.Focus()
Else
MessageBox.Show("GAGAL UPDATE DATA")
End If
End Sub
Private Sub btnHps_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnHps.Click
Dim sql As String
Dim strTemp As String = ""
Dim strValue As String = ""
sql = "DELETE FROM pelanggan WHERE KD_PLG='" &
txtkdPlg.Text & "'"
cmmd = New OleDbCommand(sql, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA BERHASIL DIHAPUS")
sql = "SELECT * FROM pelanggan ORDER BY KD_PLG
DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_PLG"), 3, 5)
Else
txtkdPlg.Text = "PL00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdPlg.Text = "PL" & Mid("0000", 1, 5 strValue.Length) &
strValue
txtnmPlg.Text = ""
txtAlmt.Text = ""
txtKontak.Text = ""
txtkdPlg.Enabled = True
txtkdPlg.Focus()
Else
MessageBox.Show("GAGAL HAPUS DATA")
End If
End Sub

Private Sub btnBtl_Click(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles btnBtl.Click
Dim sql As String
Dim strTemp As String = ""
Dim strValue As String = ""
txtnmPlg.Text = ""
txtAlmt.Text = ""
txtKontak.Text = ""
sql = "SELECT * FROM pelanggan ORDER BY KD_PLG DESC"
cmmd = New OleDbCommand(Sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("KD_PLG"), 3, 5)
Else
txtkdPlg.Text = "PL00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtkdPlg.Text = "PL" & Mid("0000", 1, 5 strValue.Length) &
strValue
End Sub
Private Sub btnKeluar_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs)
Handles btnKeluar.Click
Me.Close()
End Sub
Private Sub btnCariPlg_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles btnCariPlg.Click
Dim popupplg As New PopPlg
popupplg.ShowDialog()
If popupplg.retKdPlg <> "" Then
txtkdPlg.Text = popupplg.retKdPlg
txtnmPlg.Text = popupplg.retNmPlg
txtAlmt.Text = popupplg.retAlmtPlg
txtKontak.Text = popupplg.retTlpPlg
txtkdPlg.Enabled = False
txtnmPlg.Focus()

End If
End Sub
End Class

3.6 Form Entry Pesanan


Form in berfungsi untuk mencatat data pesanan, setiap kali transaksi
yang akan dilakukan yang mana form ini berhubungan dengan data
barang dan data pelanggan.
Adapun cara pembuatannya hampir sama dengan pembuatan form
sebelumnya. Layout desain form entry pesanan seperti gambar berikut :

Sedang listing program dari entry pesanan adalah :

Imports System.Data.OleDb
Imports System.Data
Public Class SP
Dim cnn As OleDbConnection
Dim cmmd, cmmd1, cmmd2 As OleDbCommand
Dim dReader As OleDbDataReader
Private index As Integer = 0
Private Total As Double = 0.0
Private Sub SP_Closing(ByVal sender As System.Object,
ByVal e As

System.ComponentModel.CancelEventArgs) Handles
MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub
Private Sub SP_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
txtNoSP.Enabled = False
txtkdPlg.Focus()
End Sub
Private Sub SP_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs)Handles MyBase.Load
''Buka koneksi
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close()
cnn.Open()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM sp ORDER BY no_sp DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("no_sp"), 3, 5)
Else
txtNoSP.Text = "SP00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtNoSP.Text = "SP" & Mid("0000", 1, 5 strValue.Length) &
strValue
End Sub
Private Sub btnCariPlg_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles btnCariPlg.Click
Dim popupplg As New PopPlg

popupplg.ShowDialog()
If popupplg.retKdPlg <> "" Then
txtkdPlg.Text = popupplg.retKdPlg
txtnmPlg.Text = popupplg.retNmPlg
txtAlmt.Text = popupplg.retAlmtPlg
txtKontak.Text = popupplg.retTlpPlg
txtkdPlg.Enabled = False
cariBrg.Focus()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
cariBrg.Click
Dim popupbrg As New PopBrg
popupbrg.ShowDialog()
If popupbrg.retKd_Brg <> "" Then
txtkdBrg.Text = popupbrg.retKd_Brg
txtnmBrg.Text = popupbrg.retNm_Brg
txtHarsat.Text = Format(CDbl(popupbrg.retHarsat),
"##,####,####,###")
txtSex.Text = popupbrg.retJK
txtColor.Text = popupbrg.retWarna
txtSize.Text = popupbrg.retUkuran
txtkdBrg.Enabled = False
txtJml.Focus()
End If
End Sub
Private Sub txtJml_KeyPress(ByVal sender As Object,
ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles txtJml.KeyPress
If Asc(e.KeyChar) = 13 Then
SetTotal()
btnPesan.Focus()
End If
End Sub
Sub SetTotal()
Dim a As Integer
a = CInt(txtJml.Text) * CInt(txtHarsat.Text)

End
Sub

End
Private
As

txtTotal.Text = Format(CDbl(CStr(a)),
"##,####,####,###")
Sub
AddList(ByVal Value() As String)
Dim subIndex As Integer
lvwPlg.Items.Add("")
For subIndex = 0 To 4
lvwPlg.Items(index).SubItems.Add("")
lvwPlg.Items(index).SubItems(subIndex).Text =
Value(subIndex)
Next
index = index + 1
Sub
Sub btnPesan_Click(ByVal sender As System.Object, ByVal e

System.EventArgs) Handles btnPesan.Click


Dim Value() As String = {txtkdBrg.Text, txtnmBrg.Text,
txtJml.Text,
txtHarsat.Text, txtTotal.Text}
AddList(Value)
Total += CDbl(txtTotal.Text) : LblGrandTotal.Text =
Format(CDbl(CStr(Total)),
"##,####,####,###")
txtkdBrg.Text = ""
txtnmBrg.Text = ""
txtHarsat.Text = ""
txtSex.Text = ""
txtColor.Text = ""
txtSize.Text = ""
txtJml.Text = ""
txtTotal.Text = ""
cariBrg.Focus()
End Sub
Private Sub txtBayar_KeyPress(ByVal sender As Object, ByVal e
As
System.Windows.Forms.KeyPressEventArgs)
Handles
txtBayar.KeyPress
If Asc(e.KeyChar) = 13 Then
txtKembali.Text =
Format(CDbl(CStr(CInt(txtBayar.Text) -

CInt(LblGrandTotal.Text))),
"##,####,####,###")
End If
End Sub
Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles cmdSimpan.Click
Dim counter As Integer
Dim sql1, sql2 As String
Try
sql1 = "INSERT INTO SP(NO_SP, TGL_SP, KD_plg) " &
_
"VALUES('" & txtNoSP.Text & "','" & _
DateTimePicker1.Text & "','" & _
txtkdPlg.Text & "')"
cmmd1 = New OleDbCommand(sql1, cnn)
Dim x As Integer = cmmd1.ExecuteNonQuery
For counter = 0 To index - 1
sql2 = "INSERT INTO PESAN(no_sp,kd_brg,
jml_psn) " & _
"VALUES('" & _
txtNoSP.Text & "','" & _
lvwPlg.Items(counter).SubItems(0).Text
&
"','" & _
lvwPlg.Items(counter).SubItems(2).Text &
"')"
cmmd2 = New OleDbCommand(sql2, cnn)
cmmd2.ExecuteNonQuery()
Next
If x = 1 Then
MessageBox.Show("DATA SURAT PESANAN BERHASIL
DISIMPAN")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub cmdBatal_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdBatal.Click
lvwPlg.Items.Clear()

index = 0 : Total = 0
LblGrandTotal.Text = ""
End Sub
Private Sub cmdKeluar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
cmdKeluar.Click
Me.Close()
End Sub
End Class

3.7 Form Entry Nota


Form entri nota digunakan untuk melakukan transaksi penjualan, seperti
penjualan counter di mana secara otomatis akan mengunakan nomor
counter sebagai nomor nota, dan untuk setiap kali transaksi dilakukan
akan mencetak struk/nota. Desain lengkap form entri nota tersebut
ditampilkan pada gambar berikut :

Listing program entri nota sebagai berikut :

Imports System.Data.OleDb
Imports System.Data
Public Class Nota1
Dim cnn As OleDbConnection
Dim cmmd, cmmd1, cmmd2 As OleDbCommand
Dim dReader, dReader2 As OleDbDataReader
Dim total1, total2 As Integer
Private index As Integer = 0
Private Total As Double = 0.0, GTotal As Double = 0.0
Private Sub Nota_Closing(ByVal sender As Object, ByVal e As

System.ComponentModel.CancelEventArgs) Handles
MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub
Private Sub Nota1_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
txtnoNota.Enabled = False
txtnoSP.Focus()
End Sub
Private Sub Nota_Load(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles MyBase.Load
''Buka koneksi
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close()
cnn.Open()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM NOTA ORDER BY no_nota DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("no_nota"), 3, 5)
Else
txtnoNota.Text = "NA00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtnoNota.Text = "NA" & Mid("0000", 1, 5 strValue.Length) &
strValue
End Sub
Private Sub btncrPlg_Click(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles btncrPlg.Click
Dim popupSP As New PopSP
lvwPlg.Items.Clear()

index = 0
GTotal = 0
popupSP.ShowDialog()
If popupSP.retNoSP <> "" Then
txtnoSP.Text = popupSP.retNoSP
txtTglSP.Text = Format(CDate(popupSP.retTglSP),
"dd - MMMM - yyyy")
txtKdPlg.Text = popupSP.retKdPlg
btnCetak.Focus()
End If
'''' UNTUK MENAMPILKAN NAMA PELANGGAN
Dim sqlx As String
sqlx = "select nm_plg,almt,telp from PELANGGAN where
kd_plg like '%" &
Trim(txtKdPlg.Text) & "%' order by kd_plg
asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sqlx, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
txtnmPlg.Text = dReader(0)
txtAlmt.Text = dReader(1)
txtKontak.Text = dReader(2)
End If
'''' UNTUK MENAMPILKAN data barang yang ada di PESAN
Dim sql2 As String
sql2 = "select kd_brg, jml_psn from PESAN where no_sp
like
'%" & Trim(txtnoSP.Text) & "%' order
by no_sp
desc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql2, cnn)
dReader = cmmd.ExecuteReader
While dReader.Read
Dim Value() As String = {dReader(0), dReader(1)}
AddList(Value)
total1 = dReader(1)

'''' UNTUK MENAMPILKAN nama barang dan harga satuan di


BARANG
Dim sql3 As String
sql3 = "select nm_brg,kd_brg, harsat from BARANG
where
kd_brg like '%" & Trim(dReader(0)) &
"%' order by
kd_brg asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd2 = New OleDbCommand(sql3, cnn)
dReader2 = cmmd2.ExecuteReader
If dReader2.Read Then
Dim Value2() As String = {dReader2(0),
dReader2(2)}
total2 = dReader2(2)
Total = CInt(total1 * total2)
AddList2(Value2)
End If
GTotal += CDbl(Total)
' MsgBox(GTotal)
End While
txtJT.Text = Format(CDbl(CStr(GTotal)),
"##,####,####,###")
End Sub
Sub AddList(ByVal Value() As String)
Dim subIndex As Integer
Dim a As Integer = 0
lvwPlg.Items.Add("")
For subIndex = 0 To 1
lvwPlg.Items(index).SubItems.Add("")
lvwPlg.Items(index).SubItems(a).Text =
Value(subIndex)
a = a + 2
Next
End Sub
Sub AddList2(ByVal Value2() As String)
Dim subIndex As Integer
Dim a As Integer = 1
lvwPlg.Items.Add("")
For subIndex = 0 To 1

lvwPlg.Items(index).SubItems.Add("")
lvwPlg.Items(index).SubItems(a).Text =
Value2(subIndex)
'lvwPlg.Items(index).SubItems(4).Text = Total
a = a + 2
Next
index = index + 1
End Sub
Private Sub btnSimp_Click(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles btnSimp.Click
Dim sql1 As String
Try
sql1 = "INSERT INTO NOTA(NO_NOTA, TGL_NOTA, No_SP)
" & _
"VALUES('" & txtnoNota.Text & "','" & _
DateTimePicker1.Text &
"','" & _
txtnoSP.Text & "')"
cmmd1 = New OleDbCommand(sql1, cnn)
Dim x As Integer = cmmd1.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA NOTA BERHASIL
DISIMPAN")
bersih()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM NOTA ORDER BY no_nota
DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("no_nota"),
3, 5)
Else
txtnoNota.Text = "NA00001"
Exit Sub
End If

strValue = Val(strTemp) + 1
txtnoNota.Text = "NA" & Mid("0000", 1, 5 strValue.Length) & strValue
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub btnBtl_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnBtl.Click
bersih()
End Sub
Sub bersih()
lvwPlg.Items.Clear()
index = 0 : Total = 0
txtnoSP.Text = ""
DateTimePicker1.Text = ""
txtKdPlg.Text = ""
txtnmPlg.Text = ""
txtAlmt.Text = ""
txtKontak.Text = ""
txtTglSP.Text = ""
txtJT.Text = ""
End Sub
Private Sub btnCetak_Click(ByVal sender As System.Object,
ByVal e As
System.EventArgs) Handles btnCetak.Click
cetak_Nota.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class

3.8 Form Entry Cetak Nota


Form ini jika dijalankan akan menghasilkan sebuah output berupa Nota,
dimana akan

berisi mengenai data-data barang

yang dibeli oleh

pelanggan. Desain layout dari form cetak nota seperti gambar berikut :

Listing program dari form cetak nota adalah sebagai berikut :

Imports System.Data.OleDb
Imports System.Data
Public Class cetak_Nota
Dim cnn As OleDbConnection
Dim cmmd As OleDbCommand
Dim dReader As OleDbDataReader
Private Sub cetak_Nota_Closing(ByVal sender As
System.Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
MyBase.Closing
Me.Hide()
cur = New Nota1
cur.Show()

End Sub
Private Sub btnCetak_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
btnCetak.Click
MessageBox.Show("Maaf, aplikasi ini belum berfungsi",
"Pesan",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub btnKeluar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnKeluar.Click
Me.Close()
End Sub
Private Sub btnLayar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnLayar.Click
Layar_Nota.a = txtNoNota.Text
Layar_Nota.Show()
End Sub
Private Sub btnCari_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnCari.Click
Dim popupnota As New PopNota
popupnota.ShowDialog()
If popupnota.retNoNota <> "" Then
txtNoNota.Text = popupnota.retNoNota
txttglnota.Text = popupnota.retTglNota
txtNoSP.Text = popupnota.retNoSP
txtNoNota.Enabled = False
btnLayar.Focus()
End If
'''' UNTUK MENAMPILKAN TANGGAL SP
Dim sqlx As String
sqlx = "select tgl_sp from SP where no_sp like '%" &
Trim(txtNoSP.Text) & "% order by no_sp asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sqlx, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then

txtTglSP.Text = Format(CDate(dReader(0)), "ddMMMM-yyyy")


End If
End Sub
Private Sub cetak_Nota_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Public Class Layar_Nota
Public a As String
Private Sub Layar_Nota_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
MsgBox("No Nota = " & a)
CrystalReportViewer1.SelectionFormula =
"{nota.no_nota}= '" & a & "'"
CrystalReportViewer1.RefreshReport()
End Sub
End Class

3.9 Form Cetak Kwitansi


Form ini jika dijalankan akan menghasilkan sebuah cetakan berupa
kwitansi yang digunakan sebagai alat bukti pembayaran. Desain dari form
Cetak Kwitansi seperti gambar di bawah ini :

Sedangkan listing program dari Cetak Kwitansi adalah :

Imports System.Data.OleDb
Imports System.Data
Public Class cetak_Kwitansi
Public retNoSP, retTglSP, retKdSup As String
Dim cnn As OleDbConnection
Dim cmmd As OleDbCommand
Dim dReader, dreader2, dreader3 As OleDbDataReader
Dim total As Double, GTotal As Double
Private Sub cetak_Kwitansi_Closing(ByVal sender As
System.Object, ByVal e As
System.ComponentModel.CancelEventArgs)
Handles
MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub
Private Sub cetak_Kwitansi_Activated(ByVal sender As Object, ByVal e
As System.EventArgs) Handles Me.Activated
txtnoKwi.Enabled = False
txtNoNota.Focus()
End Sub
Private Sub cetak_Kwitansi_Load(ByVal sender As System.Object,
ByVal
e As System.EventArgs) Handles MyBase.Load
''Buka koneksi
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close()
cnn.Open()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM KWITANSI ORDER BY no_kwit
DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader

If dReader.Read Then
strTemp = Mid(dReader.Item("no_kwit"), 3, 5)
Else
txtnoKwi.Text = "KW00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtnoKwi.Text = "KW" & Mid("0000", 1, 5 strValue.Length) &
strValue
End Sub
Private Sub btnCetak_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCetak.Click
MessageBox.Show("Maaf, aplikasi ini belum berfungsi",
"Pesan",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub btnCari_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles btnCari.Click
Dim popupnota As New PopNota
Dim a As String, b As String, c As String, d As String
total = 0
GTotal = 0
popupnota.ShowDialog()
If popupnota.retNoNota <> "" Then
txtNoNota.Text = popupnota.retNoNota
txtTglNota.Text = popupnota.retTglNota
txtnoKwi.Enabled = False
btnSimpan.Focus()
End If
'''' UNTUK MENAMPILKAN TANGGAL SP
Dim sql1 As String, sql2 As String, sql3 As String
sql1 = "select no_sp from nota where no_nota like '%" &
rim(txtNoNota.Text) & "%' order by
no_nota asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql1, cnn)
dReader = cmmd.ExecuteReader

If dReader.Read Then
a = dReader(0)
sql2 = "select kd_brg,jml_psn from PESAN where no_sp like
'%" & Trim(a) & "%' order by no_sp desc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql2, cnn)
dreader2 = cmmd.ExecuteReader
While dreader2.Read
b = dreader2(1)
c = dreader2(0)
sql3 = "select harsat from BARANG where
kd_brg like
'%" & Trim(c) & "% order
by kd_brg desc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql3, cnn)
dreader3 = cmmd.ExecuteReader
If dreader3.Read Then
d = dreader3(0)
total = CDbl(b * d)
End If
GTotal += total
txtJmlByr.Text = GTotal
End While
End If
End Sub
Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnKeluar.Click
Me.Close()
End Sub
Private Sub btnLayar_Click(ByVal sender As System.Object,
ByVal e
As System.EventArgs) Handles btnLayar.Click
Layar_Kwitansi.b = txtnoKwi.Text
Layar_Kwitansi.Show()
End Sub
Private Sub btnSimpan_Click(ByVal sender As System.Object,
ByVal
e As System.EventArgs) Handles
btnSimpan.Click

No_NOTA) "
& _

Dim sql1 As String


Try
sql1 = "INSERT INTO KWITANSI(NO_KWIT, TGL_KWIT,
& _ "VALUES('" & txtnoKwi.Text & "','"
tglKwi.Text & "','" & _ txtNoNota.Text &

"')"
cmmd = New OleDbCommand(sql1, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery
If x = 1 Then
MessageBox.Show("DATA KWITANSI BERHASIL
DISIMPAN")
btnLayar.Focus()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Sub bersih()
txtnoKwi.Text = ""
tglKwi.Text = ""
txtNoNota.Text = ""
txtTglNota.Text = ""
txtJmlByr.Text = ""
End Sub
End Class
Public Class Layar_Kwitansi
Public b As String
Private Sub Layar_Kwitansi_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
CrystalReportViewer1.SelectionFormula =
"{kwitansi.no_kwit}= '" & b & "'"
CrystalReportViewer1.RefreshReport()
End Sub
End Class

3.10 Form Entry Surat Jalan


Form in berfungsi untuk mencatat data pesanan yang akan dikirim, setiap
kali transaksi yang akan dilakukan yang mana form ini berhubungan
dengan data barang dan data pelanggan.
Desain layout dari form entry surat jalan seperti gambar berikut :

Adapun listing programnya adalah :

Imports System.Data.OleDb
Imports System.Data
Public Class Entry_SJ
Dim cnn As OleDbConnection
Dim cmmd, cmmd1, cmmd2 As OleDbCommand
Dim dReader, dReader1, dReader2, dReader3, dReader4 As
OleDbDataReader

Dim total1, total2 As Integer


Private index As Integer = 0
Private Total As Double = 0.0, GTotal As Double = 0.0
Public a As String
Private Sub Entry_SJ_Closing(ByVal sender As System.Object,
ByVal
e As System.ComponentModel.CancelEventArgs)
Handles
MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub
Private Sub Entry_SJ_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
txtnoSJ.Enabled = False
txtNoNota.Focus()
End Sub
Private Sub Entry_SJ_Load(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles MyBase.Load
''Buka koneksi
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close()
cnn.Open()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM SJ ORDER BY no_sj DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("no_sj"), 3, 5)
Else
txtnoSJ.Text = "SJ00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtnoSJ.Text = "SJ" & Mid("0000", 1, 5 strValue.Length) &
strValue
End Sub

Private Sub btnCariNota_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
btnCariNota.Click
Dim popupnota As New PopNota
popupnota.ShowDialog()
If popupnota.retNoNota <> "" Then
txtNoNota.Text = popupnota.retNoNota
txtTglNota.Text = popupnota.retTglNota
txtNoSP.Text = popupnota.retNoSP
txtNoNota.Enabled = False
txtkdBrg.Focus()
End If
'''' UNTUK MENAMPILKAN TANGGAL NOTA
Dim sqlx As String
sqlx = "select tgl_nota,no_sp from nota where no_nota
like '%" &
Trim(txtNoNota.Text) & "%' order by no_nota asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sqlx, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
txtTglNota.Text = Format(CDate(dReader(0)), "ddMMMMyyyy")
txtNoSP.Text = dReader(1)
End If
'''' UNTUK MENAMPILKAN TANGGAL SP
Dim sql1 As String
sql1 = "select tgl_sp,kd_plg from SP where no_sp like
'%" &
Trim(txtNoSP.Text) & "%' order by
no_sp asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql1, cnn)
dReader1 = cmmd.ExecuteReader
If dReader1.Read Then
txtTglSP.Text = Format(CDate(dReader1(0)), "ddMMMMyyyy")
End If

'''' UNTUK MENAMPILKAN NAMA PELANGGAN


Dim sql2 As String
sql2 = "select nm_plg,almt,telp from PELANGGAN where
kd_plg
like '%" &
Trim(dReader1(1)) & "%' order by kd_plg asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql2, cnn)
dReader2 = cmmd.ExecuteReader
If dReader2.Read Then
txtnmPlg.Text = dReader2(0)
txtAlmt.Text = dReader2(1)
txtTelpPlg.Text = dReader2(2)
End If
End Sub
Private Sub btnCrBrg_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnCrBrg.Click
Dim popupbrg As New PopBrg2
bersih_brg()
popupbrg.txtNoSP.Text = txtNoSP.Text
popupbrg.txtNoSP.Text = dReader(1)
popupbrg.ShowDialog()
If popupbrg.retKd_Brg <> "" Then
txtkdBrg.Text = popupbrg.retKd_Brg
txtnmBrg.Text = popupbrg.retNm_Brg
txtHarsat.Text = Format(CDbl(popupbrg.retHarsat),
"##,####,####,###")
txtJmlPsn.Text = popupbrg.retJmlPsn
txtkdBrg.Enabled = False
txtJmlKrm.Focus()
End If
End Sub
Private Sub txtJmlKrm_KeyPress(ByVal sender As Object,
ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles txtJmlKrm.KeyPress
If Asc(e.KeyChar) = 13 Then
txtTotal.Text =
Format(CDbl(CStr(CInt(txtHarsat.Text)

CInt(txtJmlKrm.Text))),
"##,####,####,###")
btnCrBrg.Focus()
End If
End Sub
Private Sub btnTambah_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnTambah.Click
Dim Value() As String = {txtkdBrg.Text, txtnmBrg.Text,
txtJmlPsn.Text,
txtJmlKrm.Text, txtHarsat.Text, txtTotal.Text}
AddList(Value)
Total += CDbl(txtTotal.Text)
txtGrandTotal.Text = Format(CDbl(CStr(Total)),
"##,####,####,###")
End Sub
Sub AddList(ByVal Value() As String)
Dim subIndex As Integer
lvwBrg.Items.Add("")
For subIndex = 0 To 5
lvwBrg.Items(index).SubItems.Add("")
lvwBrg.Items(index).SubItems(subIndex).Text =
Value(subIndex)
Next
index = index + 1
End Sub
Private Sub btnSimpan_Click(ByVal sender As System.Object,
ByVal e As
System.EventArgs) Handles btnSimpan.Click
Dim counter As Integer
Dim sql1, sql2 As String
Try
sql1 = "INSERT INTO SJ(NO_sj, TGL_sj, no_nota) " &
_
"VALUES('" & txtnoSJ.Text & "','" & _
DateTimePicker1.Text & "','" & _
txtNoNota.Text & "')"
cmmd1 = New OleDbCommand(sql1, cnn)
Dim x As Integer = cmmd1.ExecuteNonQuery
`For counter = 0 To index - 1

sql2 = "INSERT INTO


ADA(no_sj,kd_brg,jml_kirim) " & _
"VALUES('" & _ txtnoSJ.Text & "','" &
_
lvwBrg.Items(counter).SubItems(0).Text &
"','" & _
lvwBrg.Items(counter).SubItems(3).Text &
"')"
cmmd2 = New OleDbCommand(sql2, cnn)
cmmd2.ExecuteNonQuery()
Next
If x = 1 Then
MessageBox.Show("DATA SURAT JALAN BERHASIL
DISIMPAN")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Sub bersih_brg()
txtkdBrg.Text = ""
txtnmBrg.Text = ""
txtJmlPsn.Text = ""
txtHarsat.Text = ""
txtJmlKrm.Text = ""
txtTotal.Text = ""
End Sub
Sub bersih_semua()
txtnoSJ.Text = ""
DateTimePicker1.Text = ""
txtNoNota.Text = ""
txtTglNota.Text = ""
txtNoSP.Text = ""
txtTglSP.Text = ""
txtnmPlg.Text = ""
txtAlmt.Text = ""
txtTelpPlg.Text = ""
Call bersih_brg()
lvwBrg.Items.Clear()

End Sub
Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBatal.Click
bersih_semua()
End Sub
Private Sub btnCetak_Click(ByVal sender As System.Object,
ByVal e
As System.EventArgs) Handles btnCetak.Click
cetak_SJ.Show()
End Sub
End Class

3.11 Form Entry Retur


Form ini berfungsi untuk mengisi data-data barang yang dikembalikan
oleh pelanggan karena rusak atau tidak sesuai pesanan. Prinsip dasarnya
sama dengan proses entry pesanan atau entri nota. Desain form dari
Entry retur adalah :

Listing program dari entry retur adalah :

Imports System.Data.OleDb
Imports System.Data
Public Class Retur
Dim cnn As OleDbConnection
Dim cmmd, cmmd1, cmmd2 As OleDbCommand
Dim dReader, dReader1, dReader2, dReader3, dReader4 As
OleDbDataReader
Dim total1, total2 As Integer
Private index As Integer = 0
Private Total As Double = 0.0, GTotal As Double = 0.0
Public a As String
Private Sub Retur_Closing(ByVal sender As System.Object,
ByVal e As System.ComponentModel.CancelEventArgs)
Handles MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub
Private Sub Retur_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
txtnoretur.Enabled = False
txtNoSj.Focus()
End Sub
Private Sub Retur_Load(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles MyBase.Load
''Buka koneksi
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close()
cnn.Open()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM retur ORDER BY no_ret DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then

strTemp = Mid(dReader.Item("no_ret"), 3, 5)
Else
txtnoretur.Text = "RT00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtnoretur.Text = "RT" & Mid("0000", 1, 5 strValue.Length) &
strValue
End Sub
Private Sub btncrSJ_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btncrSJ.Click
Dim popupsj As New PopSJ
Dim a As String
popupsj.ShowDialog()
If popupsj.retNoNota <> "" Then
txtNoSj.Text = popupsj.retNoSj
txtNoSj.Enabled = False
txtkdBrg.Focus()
End If
'''' UNTUK MENAMPILKAN no NOTA pada nota
Dim sqlx As String
sqlx = "select no_nota,no_sp from nota where no_nota
like
'%" & Trim(popupsj.retNoNota) & "%'
order by
no_nota asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sqlx, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
a = dReader(1)
'''' UNTUK MENAMPILKAN TANGGAL SP
Dim sql1 As String, b As String
sql1 = "select no_sp,kd_plg from SP where no_sp
like '%" &
Trim(a) & "%'order by no_sp asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql1, cnn)
dReader1 = cmmd.ExecuteReader
If dReader1.Read Then

b = dReader1(1)
'''' UNTUK MENAMPILKAN NAMA PELANGGAN
Dim sql2 As String
sql2 = "select nm_plg,almt from PELANGGAN
kd_plg like '%" & Trim(b)
kd_plg asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql2, cnn)
dReader2 = cmmd.ExecuteReader
If dReader2.Read Then
txtnmPlg.Text = dReader2(0)
txtAlamat.Text = dReader2(1)
End If

where
& "%' order by

End If
End If
End Sub
Private Sub btnCrBrg_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCrBrg.Click
Dim popupbrg As New PopBrg3
bersih_brg()
popupbrg.txtNoSJ.Text = txtNoSj.Text
popupbrg.ShowDialog()
If popupbrg.retKd_Brg <> "" Then
txtkdBrg.Text = popupbrg.retKd_Brg
txtnmBrg.Text = popupbrg.retNm_Brg
txtHarsat.Text = Format(CDbl(popupbrg.retHarsat),
"##,####,####,###")
txtJmlkrm.Text = popupbrg.retJmlKrm
txtkdBrg.Enabled = False
txtTotal1.Text =
Format(CDbl(CStr(CInt(txtHarsat.Text) *
CInt(txtJmlkrm.Text))), "##,####,####,###")
txtJmlretur.Focus()
End If
End Sub
Private Sub txtJmlretur_KeyPress(ByVal sender As Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs)
Handles
txtJmlretur.KeyPress

If Asc(e.KeyChar) = 13 Then
txtTotal2.Text =
Format(CDbl(CStr(CInt(txtHarsat.Text) *
CInt(txtJmlretur.Text))),
"##,####,####,###")
txtKet.Focus()
End If
End Sub
Private Sub btnTmbh_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnTmbh.Click
Dim Value() As String = {txtkdBrg.Text, txtnmBrg.Text,
txtJmlkrm.Text,
txtHarsat.Text, txtJmlretur.Text, txtKet.Text,
txtTotal2.Text}
AddList(Value)
Total += CDbl(txtTotal2.Text)
txtGrandtotal.Text = Format(CDbl(CStr(Total)),
"##,####,####,###")
End Sub
Sub AddList(ByVal Value() As String)
Dim subIndex As Integer
lvwretur.Items.Add("")
For subIndex = 0 To 6
lvwretur.Items(index).SubItems.Add("")
lvwretur.Items(index).SubItems(subIndex).Text =
Value(subIndex)
Next
index = index + 1
End Sub
Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnSimpan.Click
Dim counter As Integer
Dim sql1, sql2 As String
Try
sql1 = "INSERT INTO retur(NO_ret, TGL_ret, no_sj)
" & _
"VALUES('" & txtnoretur.Text & "','" & _
DateTimePicker1.Text & "','" & _

txtNoSj.Text & "')"


cmmd1 = New OleDbCommand(sql1, cnn)
Dim x As Integer = cmmd1.ExecuteNonQuery
For counter = 0 To index - 1
sql2 = "INSERT INTO
KEMBALI(no_ret,kd_brg,jml_ret,ket) "
& _
"VALUES('" & _ txtnoretur.Text & "','" & _
lvwretur.Items(counter).SubItems(0).Text &
"','" & _
lvwretur.Items(counter).SubItems(4).Text &
"','" & _
lvwretur.Items(counter).SubItems(5).Text &
"')"
cmmd2 = New OleDbCommand(sql2, cnn)
cmmd2.ExecuteNonQuery()
Next
If x = 1 Then
MessageBox.Show("DATA RETUR BERHASIL DISIMPAN")
bersih_semua()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM retur ORDER BY no_ret DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("no_ret"), 3, 5)
Else
txtnoretur.Text = "RT00001"
Exit Sub
End If
strValue = Val(strTemp) + 1
txtnoretur.Text = "RT" & Mid("0000", 1, 5 strValue.Length) & strValue
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Sub bersih_brg()
txtkdBrg.Text = ""
txtnmBrg.Text = ""
txtJmlkrm.Text = ""
txtHarsat.Text = ""
txtTotal1.Text = ""
txtJmlretur.Text = ""
txtKet.Text = ""
txtTotal2.Text = ""
End Sub
Sub bersih_semua()
txtnoretur.Text = ""
DateTimePicker1.Text = ""
txtNoSj.Text = ""
txtnmPlg.Text = ""
txtAlamat.Text = ""
Call bersih_brg()
lvwretur.Items.Clear()
End Sub
Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnBatal.Click
bersih_semua()
'Buat AutoNumber u kode
Dim strTemp As String = ""
Dim strValue As String = ""
Dim sql As String
sql = "SELECT * FROM retur ORDER BY no_ret DESC"
cmmd = New OleDbCommand(sql, cnn)
dReader = cmmd.ExecuteReader
If dReader.Read Then
strTemp = Mid(dReader.Item("no_ret"), 3, 5)
Else
txtnoretur.Text = "RT00001"
Exit Sub
End If
strValue = Val(strTemp) + 1

txtnoretur.Text = "RT" & Mid("0000", 1, 5 strValue.Length) &


strValue
End Sub
Private Sub btnCetak_Click(ByVal sender As System.Object,
ByVal e
As System.EventArgs) Handles btnCetak.Click
cetak_Retur.Show()
End Sub
End Class

3.12 Form Cetak Retur


Form ini akan menampilkan data retur yang telah dientri melalui form
entry retur. Desain tampilannya adalah seperti gambar berikut :

Listing program cetak retur adalah :

Public Class cetak_Retur


Private Sub cetak_Retur_Closing(ByVal sender As System.Object,
ByVal e As

System.ComponentModel.CancelEventArgs) Handles
MyBase.Closing
Me.Hide()
cur = New Retur
cur.Show()
End Sub
Private Sub btnLayar_Click(ByVal sender As System.Object,
ByVal e
As System.EventArgs) Handles btnLayar.Click
Layar_Retur.d = txtNoRetur.Text
Layar_Retur.Show()
End Sub
Private Sub btnCetak_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnCetak.Click
MessageBox.Show("Maaf, aplikasi ini belum berfungsi",
"Pesan",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub btnCariRetur_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
btnCariRetur.Click
Dim popupretur As New PopRetur
popupretur.ShowDialog()
If popupretur.retNoret <> "" Then
txtNoRetur.Text = popupretur.retNoret
txtTglRetur.Text = popupretur.retTglret
txtNoSJ.Text = popupretur.retNosj
txtNoRetur.Enabled = False
btnLayar.Focus()
End If
End Sub
Private Sub btnKeluar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
btnKeluar.Click
Me.Close()
End Sub
Private Sub cetak_Retur_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load

End Sub
End Class
Public Class Layar_Retur
Public d As String
Private Sub Layar_Retur_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
MyBase.Load
MsgBox(d)
CrystalReportViewer1.SelectionFormula = "{retur.no_ret}=
'" & d & "'
CrystalReportViewer1.RefreshReport()
End Sub
End Class

BAB 4
MEMBUAT LAPORAN

Yang tidak boleh dikesampingkan dalam membuat suatu aplikasi adalah


pembuatan laporan. Jika suatu program yang dibangun tanpa dilengkapi
program untuk membuat suatu laporan masih belum lengkap. Oleh
karena itu laporan menjadi penting untuk program aplikasi. Gunanya dari
suatu laporan adalah untuk melihat hasil dari suatu proses komputer
dalam bentuk review atau dalam bentuk print out ke printer atau media
lain.
Membuat laporan dengan VB.Net tidak perlu sulit, karena banyak tools
yang bisa digunakan, seperti Crystal Report.
Untuk membuat laporan dengan Crystal Report langkah yang harus
dilakukan adalah sebagai berikut :
Klik kanan pada Project kemudian pilih Add " lalu pilih Add Windows Forms
setelah itu program akan menampilkan kontak dialog Add New Item
Pada form Add New Item, pilih Crystal Report, lalu tekan tombol Add.
Tuliskan nama laporan yang akan dibuat pada kolom Name.

Pada Form Crystal Report Gallery " klik As a Blank Report " klik tombol OK

Setelah desain Crystal Report tampil klik kanan pada Database Fields lalu
pilih Database Expert.

Sehingga muncul tampilan seperti dibawah. Karena kita menggunakan


database Access, maka kita pilih Create New Connection " Access/Excel
(DAO) " klik OK

Muncul window untuk memilih Database yang akan digunakan, setelah itu
klik tombol finish.

Kemudian pilih tabel yang akan dibuat reportnya pada Form Database
Expert setelah itu klik OK

Untuk menampilkan field-field pada yang akan dicetak, drag field pada sisi
Field Explorer ke dalam Layar Design Crystal Report.

Untuk mendesign bentuk cetakan, dapat dilakukan di bagian Report


Header, Page Header, Report Footer dan Page Footer
Contoh tampilan layout Laporan Data Barang :

Untuk membuat laporan dengan Crystal Report, biasanya diperlukan


sebuah form yang menampung tampilan sementara Crystal Report. Maka

kita perlu menambah sebuah form baru. Langkah-langkah yang dilakukan


adalah sbb:
Klik kanan pada Project di Solution Explorer Klik Add Windows
Form

Ubah nama pada kolom Name

Tambahkan objek CrystalReportViewer dari Toolbox kedalam form. Hal ini


berguna untuk koneksi form dengan CrystalReport

Kemudian koneksikan form dengan CrystalReport yang telah dibuat :


Atur properties
dibuat

ReportSource --> pilih CrystalReport yang

telah

Tampilannya akan menjadi :

4.1 Form Cetak Surat Jalan


Form ini berfungsi untuk mencetak surat jalan yang telah dientry. Desain
tampilan formnya :

Sedang listing programnya adalah :


Public Class cetak_SJ
Private Sub cetak_SJ_Closing(ByVal sender As ystem.Object,
ByVal e As System.ComponentModel.CancelEventArgs)
Handles MyBase.Closing
Me.Hide()
cur = New Menu
cur.Show()
End Sub
Private Sub btnLayar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnLayar.Click
Layar_SJ.c = txtNoSJ.Text
Layar_SJ.Show()
End Sub
Private Sub btnCetak_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
btnCetak.Click
MessageBox.Show("Maaf, aplikasi ini belum berfungsi",
"Pesan", MessageBoxButtons.OK,
MessageBoxIcon.Information)
End Sub

Private Sub btnKeluar_Click(ByVal sender As


System.Object, ByVal e As
System.EventArgs) Handles btnKeluar.Click
Me.Close()
End Sub
Private Sub btnCariSJ_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles btnCariSJ.Click
Dim popupsj As New PopSJ
popupsj.ShowDialog()
If popupsj.retNoNota <> "" Then
txtNoSJ.Text = popupsj.retNoSj
txttglsj.Text = popupsj.retTglSj
txtNoNota.Text = popupsj.retNoNota
txtNoNota.Enabled = False
btnLayar.Focus()
End If
End Sub
Private Sub cetak_SJ_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Public Class Layar_SJ
Public c As String
Private Sub Layar_SJ_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
MsgBox(c)
CrystalReportViewer1.SelectionFormula = "{sj.no_sj}= '"
& c & "' CrystalReportViewer1.RefreshReport()
End Sub
End Class

Rancangan layar pop barang yang ada di surat jalan

Listing program pop barang yang ada di surat jalan :


Imports System.Data.OleDb
Imports System.Data
Public Class PopBrg2
Public retKd_Brg, retNm_Brg, retHarsat, retJmlPsn As String
Dim cnn As OleDbConnection
Dim cmmd As OleDbCommand
Dim dReader, dReader2 As OleDbDataReader
Private Sub txtKey_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Call list_data()
End Sub
Private Sub ListView1_DoubleClick(ByVal sender As Object,
ByVal
e As System.EventArgs) Handles
ListView1.DoubleClick
Call pilih()
End Sub

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles btnOK.Click
Call pilih()
End Sub
Sub pilih()
Try
retKd_Brg =
ListView1.SelectedItems(0).SubItems(0).Text.ToString

retNm_Brg =
ListView1.SelectedItems(0).SubItems(1).Text.ToString
retHarsat =
ListView1.SelectedItems(0).SubItems(2).Text.ToString
retJmlPsn =
ListView1.SelectedItems(0).SubItems(7).Text.ToString
Me.Close()
Catch ex As Exception
MsgBox("pilih salah satu data",
MsgBoxStyle.Information)
End Try
End Sub
Private Sub list_data()
Call clear_list()
Dim sqlx As String, sql As String
Dim x As Integer
sqlx = "select kd_brg,jml_psn from PESAN where no_sp
like '%" &
Trim(txtNoSP.Text) & "%' order by no_sp asc"
cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close()
cnn.Open()
cmmd = New OleDbCommand(sqlx, cnn)
dReader = cmmd.ExecuteReader
Try
While dReader.Read = True
sql = "select
kd_brg,nm_brg,harsat,JK,warna,ukuran
from BARANG where
kd_brg like '%" &
Trim(dReader(0)) & "%'
order by kd_brg asc"
cnn = New OleDbConnection(strConn)
cnn.Open()
cmmd = New OleDbCommand(sql, cnn)
dReader2 = cmmd.ExecuteReader
Try

While dReader2.Read = True


x = Val(counter.Text)
counter.Text =
Str(Val(counter.Text) + 1)
With ListView1
.Items.Add("")
.Items(ListView1.Items.Count
.Items(ListView1.Items.Count
.Items(ListView1.Items.Count
.Items(ListView1.Items.Count
.Items(ListView1.Items.Count
.Items(ListView1.Items.Count
.Items(ListView1.Items.Count
.Items(ListView1.Items.Count
.Items(x).SubItems(0).Text =
.Items(x).SubItems(1).Text =
.Items(x).SubItems(2).Text =
.Items(x).SubItems(3).Text =
.Items(x).SubItems(4).Text =
.Items(x).SubItems(5).Text =
.Items(x).SubItems(7).Text =

- 1).SubItems.Add("")
- 1).SubItems.Add("")
- 1).SubItems.Add("")
- 1).SubItems.Add("")
- 1).SubItems.Add("")
- 1).SubItems.Add("")
- 1).SubItems.Add("")
- 1).SubItems.Add("")
dReader.GetString(0)
dReader2.GetString(1)
dReader2.GetValue(2)
dReader2.GetString(3)
dReader2.GetString(4)
dReader2.GetString(5)
dReader.GetValue(1)
End With
End While
Finally
End Try
End While
Finally
dReader.Close()
End Try
cnn.Close()
End Sub

Sub clear_list()
While Val(counter.Text) > 0
ListView1.Items(0).Remove()
counter.Text = Val(counter.Text) - 1
End While
End Sub

Private Sub PopBrg2_Load(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles MyBase.Load
Call list_data()
End Sub
End Class

4.2 Form Cetak Laporan Penjualan


Program ini berfungsi untuk menampilkan data dalam bentuk laporan,
baik melalui layar komputer (Review) atau mencetaknya ke printer.
Laporan ini dirancang agar bisa digunakan untuk mencetak laporan
transaksi penjualan secara periodeik. Adapun desain laporan tersebut
adalah sebagai berikut :

Listing program dari laporan tersebut adalah :


Imports System.Data.OleDb
Public Class Lap_Penjualan
Public tgl1 As Date
Public tgl2 As Date
Private Sub Lap_Penjualan_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
MyBase.Load
CR_penjualan1.SetParameterValue("tglawal", tgl1.Date)

CR_penjualan1.SetParameterValue("tglakhir", tgl2.Date)
End Sub
Private Sub Lap_Penjualan_Closing(ByVal sender As
System.Object,
ByVal e As System.EventArgs)
Handles MyBase.Load
Me.Hide()
cur = New Menu
cur.Show()
End Sub
End Class

Hasil cetakan laporan penjualan :

Daftar Pustaka

Junindar, 2008, Panduan Lengkap Menjadi Programmer. Membuat Aplikasi


Penjualan Menggunakan VB.NET, Penerbit Mediakita
Lubis, Ahmad Subuhan, 2005, Membangun Aplikasi dengan VB.Net,
Penerbit Datakom.
Santoso, Harip, 2004, VB.Net Untuk programmer, Penerbit PT. Elex Media
Komputindo, Jakarta

Anda mungkin juga menyukai