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

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

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

Hasil Akhir :