Cara CRUD Kilat Menggunakan VB.Net
Tutorial Visual Basic kali ini akan dibahas mengenai cara cepat membuat CRUD VB.Net menggunakan Database Ms.Access yang merupakan sebuah DBMS (Database Management System) bagian dari Microsoft Office ,jadi ketika melakukan instalasi Ms.Office secara lengkap otomatis Ms.Access pun akan terinstal.
Microsoft database access yang dapat digunakan adalah microsoft Office 2007, 2010, 2013, 2015 ataupun Office 2016.
Membuat Database
Nama Database : pos
Table : penjualan
Table : penjualan
Dengan kolom – kolom sebagai berikut :
1. kodeBarang > number (Primary Key)
2. namaBarang > text
3. jumlah > number
4. harga > currency
5. diskon >number
6. total > currency
Membuat Koneksi
Langkah-Langkah :
Berikut langkah-langkah melakukan koneksi menggunakan database Ms.Access
Pilih Menu Data->Add New Data Source maka akan muncul.
Pilih Menu Data->Add New Data Source maka akan muncul.
Pilih New Connection Sehingga Muncul :
Kemudian pilih Microsoft Access Database File kemudian Pilih browse kemudian Apabila sudah ditemukan Klik tombol Test Connection untuk Menguji koneksi. Apabila berhasil tekan Tombol oke berikut adalah sebuah form yang diesdiakan untuk memilih database yang akan digunakan :
Tekan tombol Next maka akan muncul pemberitahuan Tekan Not. Selanjutnya Next..Next..hingga Muncul :
Apa itu CRUD
CRUD adalah singkatan dari Create, Read, Update dan Delete. dengan memahami CRUD akan memeprmudah anda ketika membuat atau mengembangkan aplikasi yang lebih besar.
Membuat Project Baru
Buatlah sebuah project baru kemudian design form seperti gambar dibawah ini :Menampilkan Data :
untuk menampilkan data kita perlu membuat sebuah prosedur untuk melakukan koneksi terlebih dahulu ke dalam database, kemudian nanti prosedur koneksi tersebut akan dipanggil juga ketika melakukan proses yang lain misalnya ketika melakukan penyimpanan data, ubah data, hapus data serta operasi - operasi query scalar.
Dim conn As OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim db As String
Sub Koneksi()
db = My.Settings.posConnectionString
conn = New OleDbConnection(db)
If conn.State = ConnectionState.Closed Then conn.Open()
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Call tampilData()
End Sub
Public Sub tampilData()
Koneksi()
da = New OleDbDataAdapter("select * from penjualan", conn)
ds = New DataSet
ds.Clear()
da.Fill(ds, "penjualan")
dgvPenjualan.DataSource = (ds.Tables("penjualan"))
End Sub
Mencari Data
Pencarian data dilakukan pada textbox kode barang pada event keydown caranya dengan menginputkan kode barang yang di cari kemudian tombol enter ditekan,jika data ditemukan akan dimunculkan pada kolom inputan yang lain, proses pencarian data dapat digunakan juga untuk pemilihan data saat akan melakukan proses edit atau hapus. cara membuat event tersebut yaitu aktfikan terlebih dahulu textbox txtKodeBarang kemudian cari event keydown pada jendela event biasanya sebelah protperties (icon tanda petir) kemudian masukan coding berikut :
Private Sub KodeBarang_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles KodeBarangTextBox.KeyDown
If e.KeyCode = Keys.Enter Then
Call Koneksi()
Dim cmd As OleDbCommand
Dim RD As OleDbDataReader
Dim sqltampil As String
sqltampil = "Select * from penjualan where KodeBarang=" & KodeBarangTextBox.Text & ""
cmd = New OleDbCommand(sqltampil, conn)
Debug.Print(sqltampil)
RD = cmd.ExecuteReader
RD.Read()
If Not RD.HasRows Then
MsgBox("Kode Barang Tidak ditemukan, Silahkan coba kode yang lain!")
NamaBarangTextBox.Focus()
Else
NamaBarangTextBox.Text = RD.Item("namaBarang")
HargaTextBox.Text = RD.Item("harga")
JumlahTextBox.Text = RD.Item("jumlah")
DiskonTextBox.Text = RD.Item("diskon")
TotalTextBox.Text = RD.Item("total")
NamaBarangTextBox.Focus()
End If
End If
End Sub
Menyimpan Data
Try
Call koneksi()
Dim cmd As OleDbCommand
Dim simpan As String = "insert into penjualan (kodeBarang,namaBarang,jumlah,harga,diskon,total) values ('" & txtKodeBarang.Text & "','" & txtNamaBarang.Text & "','" & txtJumlah.Text & "','" & txtHarga.Text & "','" & txtDiskon.Text & "','" & txtTotal.Text & "')"
cmd = New OleDbCommand(simpan, conn)
cmd.ExecuteNonQuery()
MsgBox("Data Berhasil disimpan")
Call tampildata()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Mengubah Data
Private Sub btnUbah_Click(sender As System.Object, e As System.EventArgs) Handles btnUbah.Click
Call Koneksi()
Dim cmd As OleDbCommand
Dim edit As String = "update penjualan set namaBarang='" & NamaBarangTextBox.Text & "',jumlah='" & JumlahTextBox.Text & "',harga='" & HargaTextBox.Text & "',total='" & TotalTextBox.Text & "' where KodeBarang=" & KodeBarangTextBox.Text & ""
Debug.Print(edit)
cmd = New OleDbCommand(edit, conn)
cmd.ExecuteNonQuery()
MsgBox("Data Berhasil diubah")
Call tampilData()
End Sub
Hapus Data
Untuk mengubah data diperlukan dua langkah yaitu mencari data yang akan dihapus kemudian hapus data dengan menekan tombol hapus:
Private Sub btnHapus_Click(sender As System.Object, e As System.EventArgs) Handles btnHapus.Click
If (MessageBox.Show("Apakah data akan dihapus?", "Pertanyaan", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes) Then
Call Koneksi()
Dim cmd As OleDbCommand
Dim hapus As String = "delete from penjualan where kodeBarang=" & KodeBarangTextBox.Text & ""
cmd = New OleDbCommand(hapus, conn)
cmd.ExecuteNonQuery()
MsgBox("Data Berhasil dihapus")
Call tampilData()
Else
KodeBarangTextBox.Focus()
End If
End Sub
Button Hitung
Private Sub btnHitung_Click(sender As System.Object, e As System.EventArgs) Handles btnHitung.Click
Dim totalDiskon As Double
totalDiskon = CDbl(HargaTextBox.Text) * CDbl(DiskonTextBox.Text) / 100
Dim hargaAsli = CDbl(HargaTextBox.Text) - totalDiskon
TotalTextBox.Text = hargaAsli * CDbl(JumlahTextBox.Text)
End Sub
Scalar Query
Scalar Query digunakan untuk mendapatkan sebuah nilai / Single Value dari beberapa data yang ada pada tabel atau view (data yang digunakan dari beberapa tabel yang direlasikan). Scalar Query digunakan untuk mengeksekusi aggregate function (agregasi) diantaranya terdiri dari
AVG(field)
Fungsi ini digunakan untuk Mendapatkan rata-rata berdasarkan field pilihan.
MIN(field)
Fungsi ini digunakan untuk Mendapatkan nilai terendah pada field pilihan.
MAX(field)
Fungsi ini digunakan untuk Mendapatkan nilai tertinggi pada field pilihan.
SUM(field)
Fungsi ini digunakan untuk Mendapatkan nilai total pada field pilihan.
COUNT(field)
Fungsi ini digunakan untuk Mendapatkan total row terpilih yang field pilihan nilainya bukan null.
COUNT(*)
Fungsi ini digunakan untuk Mendapatkan total row terpilih.
COUNT(DISTINCT field)
Fungsi ini digunakan untuk Mendapatkan total row terpilih pada field pilihan tanpa mengulang nilai yang sama.
Contoh :
Berikut ini adalah contoh struktur query dari perintah-perintah diatas
Menghitung jumlah baris
select count(*) from namaTabel;
Menghitung nilai total
select sum(kolom) from (namaTabel)
Mencari nilai minimal / terkecil
select min(namaKolom) from namaTabel
Mencari nilai maksimal / terbesar
select max(namaKolom) from namaTabel
Mencari rata-rata
select min(namaKolom) from namaTabel
Implementasi Scalar Query VB.Net
Menghitung Total Bayar :Public Function HitungtotalBayar()
Dim total As Double
Dim cmd As OleDbCommand
Dim sqlTotal As String = "select sum (total) from penjualan" 'where blablabla....=" & blablabla & "" //anda bisa menambahkan filter jika diperlukan misalnya filter berdasarkan no transaksi.
cmd = New OleDbCommand(sqlTotal, conn)
total = cmd.ExecuteScalar
Return total
End Function
Menghitung Jumlah Item :
Public Function HitungTotalItem()
Dim total As Double
Call Koneksi()
Dim cmd As OleDbCommand
Dim sqlTotalItem As String = "select sum(jumlah) from penjualan" 'where blablabla....=" & blablabla & "" //anda bisa menambahkan filter jika diperlukan misalnya filter berdasarkan no transaksi.
cmd = New OleDbCommand(sqlTotalItem, conn)
total = cmd.ExecuteScalar
Return total
End Function
Menghitung Jumlah Baris :
Public Function HitungTotalBaris()
Dim total As Double
Call Koneksi()
Dim cmd As OleDbCommand
Dim sqlTotalBaris As String = "select count(*) from penjualan" 'where blablabla....=" & blablabla & "" //anda bisa menambahkan filter jika diperlukan misalnya filter berdasarkan no transaksi.
cmd = New OleDbCommand(sqlTotalBaris, conn)
total = cmd.ExecuteScalar
Return total
End Function
Implementasi Pada KomponenPemanggilan dapat dilakukan saat even load / ketika menampilkan data atau setelah proses simpan/ubah/hapus sehingga fungsi diatas akan selalu mendapatkan nilai terbaru ketika proses tersebut di eksekusi.
lbTotalBayar.Text = HitungtotalBayar()
lbTotalItem.Text = HitungTotalItem()
lbTotalBaris.Text = HitungTotalBaris()
lbTotalItem.Text = HitungTotalItem()
lbTotalBaris.Text = HitungTotalBaris()
Hasil Akhir :
Gabung dalam percakapan