92
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 ................................

Modul VB.net

Embed Size (px)

DESCRIPTION

xxx

Citation preview

Page 1: Modul VB.net

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 .......................................................................................

Page 2: Modul VB.net

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

Page 3: Modul VB.net

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.

Page 4: Modul VB.net

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 kejadian-

kejadian 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)

Page 5: Modul VB.net

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 : menambahkan data (record) baru

Delete : Menghapus data (record)

Modify : Mengubah data (field)

Terdapat beberapa konsep yang perlu diketahui pada penyimpanan

data antara lain :

File adalah Sekumpulan record dari tipe tunggal yang berisi elemen-

elemen 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

Page 6: Modul VB.net

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.

Page 7: Modul VB.net

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

Page 8: Modul VB.net

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

Page 9: Modul VB.net

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.5Konsep Database Relational

Model relational merupakan standar untuk rancangan database, dimana

database disimpan dan ditampilkan sebagai suatu koleksi dari tabel-tabel.

Page 10: Modul VB.net

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 :

Page 11: Modul VB.net

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 kolom-

kolom 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.7Entity 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)

Page 12: Modul VB.net

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.

Page 13: Modul VB.net

Nama Field (Foreign

key) Foreign Tabel Foreign Field

Email Peserta Email

ForumID Forum ForumID

Status Status Status

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);

Page 14: Modul VB.net

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”

Page 15: Modul VB.net

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, kemudian klik Next dan pilih Tombol “New

Connection”

Page 16: Modul VB.net
Page 17: Modul VB.net

Pilih Provider : Microsoft Jet 4.0 OLE DB Provider, klik tombol Next

Kemudian pilih database yang akan digunakan

Page 18: Modul VB.net

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 don’t include password

Page 19: Modul VB.net

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 field-

field 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),

Page 20: Modul VB.net

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

Page 21: Modul VB.net

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

Page 22: Modul VB.net

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()

Page 23: Modul VB.net

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

Page 24: Modul VB.net

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

Page 25: Modul VB.net

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

Page 26: Modul VB.net

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")

Page 27: Modul VB.net

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

Page 28: Modul VB.net

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

Page 29: Modul VB.net

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 = ""

Page 30: Modul VB.net

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

Page 31: Modul VB.net

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()

Page 32: Modul VB.net

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

Page 33: Modul VB.net

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

Page 34: Modul VB.net

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 = ""

Page 35: Modul VB.net

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")

Page 36: Modul VB.net

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

Page 37: Modul VB.net

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()

Page 38: Modul VB.net

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

Page 39: Modul VB.net

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)

txtTotal.Text = Format(CDbl(CStr(a)),

"##,####,####,###")

End Sub

Sub AddList(ByVal Value() As String)

Dim subIndex As Integer

lvwPlg.Items.Add("")

Page 40: Modul VB.net

For subIndex = 0 To 4

lvwPlg.Items(index).SubItems.Add("")

lvwPlg.Items(index).SubItems(subIndex).Text =

Value(subIndex)

Next

index = index + 1

End Sub

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

As

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

Page 41: Modul VB.net

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

Page 42: Modul VB.net

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

Page 43: Modul VB.net

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

Page 44: Modul VB.net

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)

Page 45: Modul VB.net

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

Page 46: Modul VB.net

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

Page 47: Modul VB.net

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 :

Page 48: Modul VB.net

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()

Page 49: Modul VB.net

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)), "dd-

MMMM-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

Page 50: Modul VB.net

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 = ""

Page 51: Modul VB.net

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

Page 52: Modul VB.net

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

Page 53: Modul VB.net

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

Dim sql1 As String

Try

sql1 = "INSERT INTO KWITANSI(NO_KWIT, TGL_KWIT,

No_NOTA) " & _ "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

Page 54: Modul VB.net

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

Page 55: Modul VB.net

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

Page 56: Modul VB.net

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)), "dd-

MMMM- yyyy")

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)), "dd-

MMMM- yyyy")

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

Page 57: Modul VB.net

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,

Page 58: Modul VB.net

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)

Page 59: Modul VB.net

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()

Page 60: Modul VB.net

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

Page 61: Modul VB.net

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)

Page 62: Modul VB.net

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

where kd_plg like '%" & Trim(b)

& "%' 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)

txtAlamat.Text = dReader2(1)

End If

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

Page 63: Modul VB.net

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("")

Page 64: Modul VB.net

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)

Page 65: Modul VB.net

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()

Page 66: Modul VB.net

'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

Page 67: Modul VB.net

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

Page 68: Modul VB.net

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

Page 69: Modul VB.net

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

Page 70: Modul VB.net

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

Page 71: Modul VB.net

Kemudian koneksikan form dengan CrystalReport yang telah dibuat :

Atur properties à ReportSource --> pilih CrystalReport yang telah

dibuat

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

Page 72: Modul VB.net

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

Page 73: Modul VB.net

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

Page 74: Modul VB.net

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)

Page 75: Modul VB.net

counter.Text =

Str(Val(counter.Text) + 1)

With ListView1

.Items.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(ListView1.Items.Count - 1).SubItems.Add("")

.Items(x).SubItems(0).Text = dReader.GetString(0)

.Items(x).SubItems(1).Text = dReader2.GetString(1)

.Items(x).SubItems(2).Text = dReader2.GetValue(2)

.Items(x).SubItems(3).Text = dReader2.GetString(3)

.Items(x).SubItems(4).Text = dReader2.GetString(4)

.Items(x).SubItems(5).Text = dReader2.GetString(5)

.Items(x).SubItems(7).Text = 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()

Page 76: Modul VB.net

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 :

Page 77: Modul VB.net

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