Aplikasi Penjualan VB.net dan MariaDB Contoh Program VB.net

Aplikasi Penjualan dengan VB.net dan MariaDB V1: Membuat Form Pengolahan Data Barang Part 2

Assalamu’alaikum, Selamat datang di matericoding.com. Pada Kesempatan kali ini saya akan melanjutkan pembuatan Aplikasi Penjualan menggunakan Vb.net dan database MariaDb. Pada postingan kali ini merupakan lanjutan dari postingan sebelumnya tentang Membuat Form Pengolahan Data Barang. Disini akan dijelaskan sourcode yang akan digunakan di form pengolahan data barang.

form pengolahan data barang

Untuk langkah penulisan sourcodenya sebagai berikut:

1. Import Data ODBC

Tekan F7 untuk masuk ke layar coding, kita import dulu ODBC nya karena untuk koneksi kita menggunakan Connector ODBC. Tuliskan Source Code dibawah ini di bagian paling atas.

Imports System.Data.Odbc

2. Sub Bersihkan

Berfungsi untuk membersihkan bagian Textbox.

    Sub bersihkan()
        txtkodebarang.Focus()
        txtkodebarang.Clear()
        txtnamabarang.Clear()
        txtstok.Text = "0"
        cbsatuan.Text = ""
        txthargabeli.Text = "0"
        txthargajual.Text = "0"
    End Sub

3. Sub Tampilkan Data

Untuk menampilkan data dari database ke DataGridView

   Sub tampilkan_data()
        Koneksi()
        DA = New OdbcDataAdapter("SELECT * FROM barang", Conn)
        DS = New DataSet
        DA.Fill(DS, 0)
        dgvbarang.DataSource = DS.Tables(0)
        Conn.Close()
    End Sub

4. Sub Auto Complete

Untuk membuat sugesti pada txtkodebarang.

    Sub Autocomplete()
        Koneksi()
        CMD = New OdbcCommand("SELECT kode_barang FROM barang", Conn)
        RD = CMD.ExecuteReader
        While RD.Read
            With txtkodebarang
                .AutoCompleteCustomSource.Add(RD(0).ToString)
                .AutoCompleteMode = AutoCompleteMode.Suggest
                .AutoCompleteSource = AutoCompleteSource.CustomSource
            End With
        End While
        Conn.Close()
    End Sub

5. Sub Isi combo box

Untuk membuat isian item pada combo box. Untuk isian item, bisa diisikan sesuai yang anda inginkan.

    Sub isicombobox()
        cbsatuan.Items.Clear()
        cbsatuan.Items.Add("Kg")
        cbsatuan.Items.Add("Buah")
        cbsatuan.Items.Add("Pack")
    End Sub

6. Sub call all

Sub Procedure ini digunakan saat program dijalankan akan memanggil procedure bersihkan(), isicombobox(), tampilkan_data(), dan Autocomplete().

    Sub call_all()
        bersihkan()
        isicombobox()
        tampilkan_data()
        Autocomplete()
    End Sub

7. Event Form load

Event ini akan berjalan saat form pertama kali dijalankan. Cara buatnya, Klik 2x pada bagian form barang kemudian ketikkan coding berikut:

    Private Sub FrmBarang_Load(sender As Object, e As EventArgs) Handles Me.Load
        call_all()
    End Sub

8. Event KeyPress pada txtstok, txthargabeli dan txthargajual

Membuat Text Stock, Harga Beli dan Harga Jual hanya dapat diinput dengan Angka. Event yang digunakan adalah KeyPress.

     Private Sub txtstok_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtstok.KeyPress
        'agar cuma angka yang bisa diinputkan
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And e.KeyChar <> vbBack Then e.Handled = True
    End Sub
    '--------
    Private Sub txthargabeli_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txthargabeli.KeyPress
        'agar cuma angka yang bisa diinputkan
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And e.KeyChar <> vbBack Then e.Handled = True
    End Sub
    '-------------
    Private Sub txthargajual_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txthargajual.KeyPress
        'agar cuma angka yang bisa diinputkan
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And e.KeyChar <> vbBack Then e.Handled = True
    End Sub

9. Event KeyDown Pada txtkodebarang

Bertujuan untuk mengisi data yang ada pada tabel barang ke TextBoxTextBox yang lainnya setelah txtkodebarang diisi lalu ditekan Enter. Event ini dibuat di txtkodebarang. Klik pada bagian (General) pilih txtkodebarang, kemudian pada bagian (Declaration) pilih KeyDown. Ketikkan coding berikut.

    Private Sub txtkodebarang_KeyDown(sender As Object, e As KeyEventArgs) Handles txtkodebarang.KeyDown
        If e.KeyCode = Keys.Enter Then
            Koneksi()
            CMD = New OdbcCommand("SELECT * FROM barang WHERE kode_barang = '" + txtkodebarang.Text + "'", Conn)
            RD = CMD.ExecuteReader
            If RD.Read Then
                txtkodebarang.Text = RD(0).ToString
                txtnamabarang.Text = RD(1).ToString
                txtstok.Text = RD(2).ToString
                cbsatuan.Text = RD(3).ToString
                txthargabeli.Text = RD(4).ToString
                txthargajual.Text = RD(5).ToString
            End If
            Conn.Close()
            txtnamabarang.Focus()
        End If
    End Sub

10. Fasilitas Pencarian

Fasilitas pencarian ini mungkin diperlukan, terlebih lagi jika data mencapai ribuan. Sangat tidak efektif jika mencari data satu persatu. Pencarian ini diletakkan pada txtcari yang letaknya dibawah button, jika mengetikan Kode Barang atau nama barang maka data langsung tersortir pada bagian DataGridView. Evetnnya adalah TextChanged. Double klik saja pada bagian txtcari lalu ketikkan coding berikut.

    Private Sub txtcari_TextChanged(sender As Object, e As EventArgs) Handles txtcari.TextChanged
        Try
            Koneksi()
            DA = New OdbcDataAdapter("SELECT * FROM barang WHERE kode_barang LIKE '%" + txtcari.Text + "%' or nama_barang LIKE '%" + txtcari.Text + "%'", Conn)
            DS = New DataSet
            DA.Fill(DS, 0)
            dgvbarang.DataSource = DS.Tables(0)
            Conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

11. Event CellClick pada DataGridView

Saat data yang diklik pada DataGridView, maka akan otomatis tampil pada tiap-tiap TextBox. Event yang digunakan adalah CellClick. Pada bagian (General) pilih dgvbarang (DataGridView), kemudian pada bagian (Declaration) pilih CellClick. Setelah itu ketikkan coding berikut ini.

    Private Sub dgvbarang_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvbarang.CellClick
        Try
            Dim i = e.RowIndex
            Koneksi()
            CMD = New OdbcCommand("SELECT * FROM barang WHERE kode_barang = '" + dgvbarang.Item(0, i).Value + "'", Conn)
            RD = CMD.ExecuteReader
            If RD.HasRows Then
                txtkodebarang.Text = RD(0).ToString
                txtnamabarang.Text = RD(1).ToString
                txtstok.Text = RD(2).ToString
                cbsatuan.Text = RD(3).ToString
                txthargabeli.Text = RD(4).ToString
                txthargajual.Text = RD(5).ToString
            End If
            Conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

12. Event Click pada tombol Simpan

Double Click tombol simpan kemudian ketikkan coding dibawah ini:

    Private Sub btsimpan_Click(sender As Object, e As EventArgs) Handles btsimpan.Click
        Try
            'validasi jika data masih kosong
            If txtkodebarang.Text = "" Then
                MsgBox("Isi terlebih dahulu Kode barang")
            ElseIf txtnamabarang.Text = "" Then
                MsgBox("Isi terlebih dahulu Nama barang")
            ElseIf txtstok.Text = "" Then
                MsgBox("Isi terlebih dahulu Stok barang")
            ElseIf cbsatuan.Text = "" Then
                MsgBox("Isi terlebih dahulu Satuan")
            ElseIf txthargabeli.Text = "" Then
                MsgBox("Isi terlebih dahulu Harga Beli")
            ElseIf txthargajual.Text = "" Then
                MsgBox("Isi terlebih dahulu Harga Jual")
                'validasi jika harga beli lebih besar dari harga jual
            ElseIf Val(txthargajual.Text) <= Val(txthargabeli) Then
                MsgBox("Harga jual harus lebih besar dari harga beli")
            Else
                Koneksi()
                CMD = New OdbcCommand("SELECT kode_barang FROM barang WHERE kode_barang = '" + txtkodebarang.Text + "'", Conn)
                RD = CMD.ExecuteReader
                RD.Read()
                If Not RD.HasRows Then
                    Koneksi()
                    'program untuk simpan data
                    CMD = New OdbcCommand("INSERT INTO barang VALUES (?,?,?,?,?,?)", Conn)
                    With CMD
                        .Parameters.AddWithValue("?", txtkodebarang.Text)
                        .Parameters.AddWithValue("?", txtnamabarang.Text)
                        .Parameters.AddWithValue("?", txtstok.Text)
                        .Parameters.AddWithValue("?", cbsatuan.Text)
                        .Parameters.AddWithValue("?", txthargabeli.Text)
                        .Parameters.AddWithValue("?", txthargajual.Text)
                        .ExecuteNonQuery()
                    End With
                    Conn.Close()
                Else
                    Koneksi()
                    'program untuk hapus data
                    CMD = New OdbcCommand("UPDATE barang set nama_barang=?, stok=?, satuan=?, harga_beli=?, harga_jual=? WHERE kode_barang=?", Conn)
                    With CMD
                        .Parameters.AddWithValue("?", txtnamabarang.Text)
                        .Parameters.AddWithValue("?", txtstok.Text)
                        .Parameters.AddWithValue("?", cbsatuan.Text)
                        .Parameters.AddWithValue("?", txthargabeli.Text)
                        .Parameters.AddWithValue("?", txthargajual.Text)
                        .Parameters.AddWithValue("?", txtkodebarang.Text)
                        .ExecuteNonQuery()
                    End With
                    Conn.Close()
                End If
                Conn.Close()
                call_all()
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

13. Event Click pada tombol Hapus

Double Click tombol hapus kemudian ketikkan coding dibawah ini:

    Private Sub bthapus_Click(sender As Object, e As EventArgs) Handles bthapus.Click
        If txtkodebarang.Text = "" Then
            MsgBox("Isi terlebih dahulu kode barang")
        ElseIf MsgBox("Apakah Anda yakin ingin menghapus data ini?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            Try
                Koneksi()
                'program untuk hapus data
                CMD = New OdbcCommand("DELETE FROM barang WHERE kode_barang ='" + txtkodebarang.Text + "'", Conn)
                CMD.ExecuteNonQuery()
                Conn.Close()

                call_all()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Else
            bersihkan()
        End If
    End Sub

14. Event Click pada Tombol Batal

Double Click pada tombol batal kemudian ketikkan coding dibawah ini:

    Private Sub btbatal_Click(sender As Object, e As EventArgs) Handles btbatal.Click
        call_all()
    End Sub

15. Event Click pada Tombol Keluar

Double click pada tombol keluar kemudian ketikkan coding dibawah ini:

    Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
        Close()
    End Sub

Full Source Code Form Data Barang

Untuk Full source Codenya sebagai berikut:

Imports System.Data.Odbc
Public Class FrmBarang
    Sub bersihkan()
        txtkodebarang.Focus()
        txtkodebarang.Clear()
        txtnamabarang.Clear()
        txtstok.Text = "0"
        cbsatuan.Text = ""
        txthargabeli.Text = "0"
        txthargajual.Text = "0"
    End Sub
'-----------------------------
    Sub tampilkan_data()
        Koneksi()
        DA = New OdbcDataAdapter("SELECT * FROM barang", Conn)
        DS = New DataSet
        DA.Fill(DS, 0)
        dgvbarang.DataSource = DS.Tables(0)
        Conn.Close()
    End Sub
'-----------------------------
    Sub Autocomplete()
        Koneksi()
        CMD = New OdbcCommand("SELECT kode_barang FROM barang", Conn)
        RD = CMD.ExecuteReader
        While RD.Read
            With txtkodebarang
                .AutoCompleteCustomSource.Add(RD(0).ToString)
                .AutoCompleteMode = AutoCompleteMode.Suggest
                .AutoCompleteSource = AutoCompleteSource.CustomSource
            End With
        End While
        Conn.Close()
    End Sub
'-----------------------------
    Sub isicombobox()
        cbsatuan.Items.Clear()
        cbsatuan.Items.Add("Kg")
        cbsatuan.Items.Add("Buah")
        cbsatuan.Items.Add("Pack")
    End Sub
'-----------------------------
    Sub call_all()
        bersihkan()
        isicombobox()
        tampilkan_data()
        Autocomplete()
    End Sub
'-----------------------------
    Private Sub FrmBarang_Load(sender As Object, e As EventArgs) Handles Me.Load
        call_all()
    End Sub
'-----------------------------
    Private Sub txtstok_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtstok.KeyPress
        'agar cuma angka yang bisa diinputkan
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And e.KeyChar <> vbBack Then e.Handled = True
    End Sub
'-----------------------------
    Private Sub txthargabeli_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txthargabeli.KeyPress
        'agar cuma angka yang bisa diinputkan
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And e.KeyChar <> vbBack Then e.Handled = True
    End Sub
'-----------------------------
    Private Sub txthargajual_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txthargajual.KeyPress
        'agar cuma angka yang bisa diinputkan
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And e.KeyChar <> vbBack Then e.Handled = True
    End Sub
'-----------------------------
    Private Sub txtkodebarang_KeyDown(sender As Object, e As KeyEventArgs) Handles txtkodebarang.KeyDown
        If e.KeyCode = Keys.Enter Then
            Koneksi()
            CMD = New OdbcCommand("SELECT * FROM barang WHERE kode_barang = '" + txtkodebarang.Text + "'", Conn)
            RD = CMD.ExecuteReader
            If RD.Read Then
                txtkodebarang.Text = RD(0).ToString
                txtnamabarang.Text = RD(1).ToString
                txtstok.Text = RD(2).ToString
                cbsatuan.Text = RD(3).ToString
                txthargabeli.Text = RD(4).ToString
                txthargajual.Text = RD(5).ToString
            End If
            Conn.Close()
            txtnamabarang.Focus()
        End If
    End Sub
'-----------------------------
    Private Sub txtcari_TextChanged(sender As Object, e As EventArgs) Handles txtcari.TextChanged
        Try
            Koneksi()
            DA = New OdbcDataAdapter("SELECT * FROM barang WHERE kode_barang LIKE '%" + txtcari.Text + "%' or nama_barang LIKE '%" + txtcari.Text + "%'", Conn)
            DS = New DataSet
            DA.Fill(DS, 0)
            dgvbarang.DataSource = DS.Tables(0)
            Conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
'-----------------------------
    Private Sub dgvbarang_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvbarang.CellClick
        Try
            Dim i = e.RowIndex
            Koneksi()
            CMD = New OdbcCommand("SELECT * FROM barang WHERE kode_barang = '" + dgvbarang.Item(0, i).Value + "'", Conn)
            RD = CMD.ExecuteReader
            If RD.HasRows Then
                txtkodebarang.Text = RD(0).ToString
                txtnamabarang.Text = RD(1).ToString
                txtstok.Text = RD(2).ToString
                cbsatuan.Text = RD(3).ToString
                txthargabeli.Text = RD(4).ToString
                txthargajual.Text = RD(5).ToString
            End If
            Conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
'-----------------------------
    Private Sub btsimpan_Click(sender As Object, e As EventArgs) Handles btsimpan.Click
        Try
            'validasi jika data masih kosong
            If txtkodebarang.Text = "" Then
                MsgBox("Isi terlebih dahulu Kode barang")
            ElseIf txtnamabarang.Text = "" Then
                MsgBox("Isi terlebih dahulu Nama barang")
            ElseIf txtstok.Text = "" Then
                MsgBox("Isi terlebih dahulu Stok barang")
            ElseIf cbsatuan.Text = "" Then
                MsgBox("Isi terlebih dahulu Satuan")
            ElseIf txthargabeli.Text = "" Then
                MsgBox("Isi terlebih dahulu Harga Beli")
            ElseIf txthargajual.Text = "" Then
                MsgBox("Isi terlebih dahulu Harga Jual")
                'validasi jika harga beli lebih besar dari harga jual
            ElseIf Val(txthargajual.Text) <= Val(txthargabeli) Then
                MsgBox("Harga jual harus lebih besar dari harga beli")
            Else
                Koneksi()
                CMD = New OdbcCommand("SELECT kode_barang FROM barang WHERE kode_barang = '" + txtkodebarang.Text + "'", Conn)
                RD = CMD.ExecuteReader
                RD.Read()
                If Not RD.HasRows Then
                    Koneksi()
                    'program untuk simpan data
                    CMD = New OdbcCommand("INSERT INTO barang VALUES (?,?,?,?,?,?)", Conn)
                    With CMD
                        .Parameters.AddWithValue("?", txtkodebarang.Text)
                        .Parameters.AddWithValue("?", txtnamabarang.Text)
                        .Parameters.AddWithValue("?", txtstok.Text)
                        .Parameters.AddWithValue("?", cbsatuan.Text)
                        .Parameters.AddWithValue("?", txthargabeli.Text)
                        .Parameters.AddWithValue("?", txthargajual.Text)
                        .ExecuteNonQuery()
                    End With
                    Conn.Close()
                Else
                    Koneksi()
                    'program untuk hapus data
                    CMD = New OdbcCommand("UPDATE barang set nama_barang=?, stok=?, satuan=?, harga_beli=?, harga_jual=? WHERE kode_barang=?", Conn)
                    With CMD
                        .Parameters.AddWithValue("?", txtnamabarang.Text)
                        .Parameters.AddWithValue("?", txtstok.Text)
                        .Parameters.AddWithValue("?", cbsatuan.Text)
                        .Parameters.AddWithValue("?", txthargabeli.Text)
                        .Parameters.AddWithValue("?", txthargajual.Text)
                        .Parameters.AddWithValue("?", txtkodebarang.Text)
                        .ExecuteNonQuery()
                    End With
                    Conn.Close()
                End If
                Conn.Close()
                call_all()
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
'-----------------------------
    Private Sub bthapus_Click(sender As Object, e As EventArgs) Handles bthapus.Click
        If txtkodebarang.Text = "" Then
            MsgBox("Isi terlebih dahulu kode barang")
        ElseIf MsgBox("Apakah Anda yakin ingin menghapus data ini?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            Try
                Koneksi()
                'program untuk hapus data
                CMD = New OdbcCommand("DELETE FROM barang WHERE kode_barang ='" + txtkodebarang.Text + "'", Conn)
                CMD.ExecuteNonQuery()
                Conn.Close()

                call_all()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Else
            bersihkan()
        End If
    End Sub
'-----------------------------
    Private Sub btbatal_Click(sender As Object, e As EventArgs) Handles btbatal.Click
        call_all()
    End Sub
'-----------------------------
    Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
        Close()
    End Sub
End Class

Jika dijalankan, tampilan akhir form Pengolahan Data Barangnya seperti berikut:

run form pengolahan data barang

Sampai disini pembahasan tentang Form Pengolahan Data Barang. Anda tidak harus terpaku pada Coding di atas. Anda dapat menambahkan sendiri kreasi coding Anda jika coding di atas dirasa masih kurang menurut Anda karena coding diatas memang masih sederhana. Jika ada pertanyaan terkait pembuatan Form Pengolahan Data Barang bisa ditanyakan lewat kolom komentar. Jika sudah berhasil dalam pembuatan Form Pengolahan Data Barang, bisa lanjut ke pembuatan Form lainnya.

Sekian dan Terimakasih

Wassalamu’alaikum Wr Wb

Salam MateriCoding

(sumber)

Add Comment

Leave a Comment