Program Input Data Sederhana Dengan Menggunakan VB.net dan Maria DB

Assalamu’alaikum Wr Wb

Selamat datang di web sibukngoding.com. Pada kesempatan kali ini saya akan menjelaskan materi tentang cara membuat program input data menggunakan vb.net. Materi ini merupakan lanjutan dari materi sebelumnya tentang cara menampilkan data dari database ke datagrid.  Pada tutorial kali ini saya menggunakan Visual Studio 2010, XAMPP versi 5.6 dan connector ODBC versi 5.1. Bagi yang beda versi silahkan menyusuaikan dan mudah-mudahan masih bisa jika versinya tidak terlalu jauh perbedaannya.

Langkah pertama silahkan buat database beserta tabelnya. Karena disinilah tempat untuk menyimpan data yang telah diinputkan. Jika belum paham cara buat database dan tabelnya bisa di lihat disini. Untuk database yang dibuat, sebagai contoh saya kasih nama dbjualcontoh. Sedangkan nama tabelnya adalah barang. Untuk struktur tabelnya bisa dilihat di bawah ini,



Setelah database dan tabel berhasil dibuat, langkah selanjutnya kita setting Mysql Connector ODBC driver. Jika belum paham caranya bisa klik disini.
Untuk DSN saya isi contohjual dan untuk database disamakan dengan nama database yang telah dibuat sebelumnya.
Jika sudah selesai dibuat dan koneksi sukses, langkah selanjutnya kita masuk ke visual studio. Buat project baru dan formnya dibuat seperti berikut ini:
Saya harap sudah paham tool yang dimasukkan di formnya, lalu untuk propertis kita atur seperti di bawah ini:
Tool Control
Propertis
Value
Form1
Name
Frmbarang

Text
Input Data Barang

Label1
Text
Kode Barang



Label2
Text
Nama Barang



Label3
Text
Satuan Barang



Label4
Text
Harga Barang



Textbox1
Name
txtkodebarang
Text


Textbox2
Name
txtnamabarang
Text


Textbox3
Name
txtsatuanbarang
Text


Textbox4
Name
txthargabarang
Text


Button1
Name
btsimpan
Text
&Simpan

Button2
Name
btbatal
Text
&Batal

Button3
Name
bthapus
Text
&Hapus

Button4
Name
btkeluar
Text
&Keluar

DataGridView1
Name
DGVbarang




Langkah selanjutnya kita masukkan source code nya. Silahkan masuk dulu ke jendela view Source dengan cara tekan F7

Ketikkan source code import ODBC di atas sendiri atau diatasnya Public Class frmbarang
Imports System.Data.Odbc

Setelah itu kita buat Variabel yang akan digunakan. Disini saya menggunakan 6 Variabel yaitu
  • DSN merupakan nama variabel yang digunakan untuk menyimpan data data source name yang telah kita buat di ODBC
  • Conn merupakan nama variabel yang isinya mereferensikan pada OdbcCOnnection yang berfungsi sebagai penyedia koneksi dari sumber data atau database.
  • DA merupakan variabel yang isinya mereferensikan pada OdbcDataAdapter yang berfungsi mengisi Object Dataset dengan hasil data dari sumber data atau database.
  • CMD Merupakan variabel yang isinya mereferensikan pada ODBCcommand yang digunakan untuk melakukan pernyataan SQl atau prosedur yang akan dilaksanakan pada database. Seperti yang kita tahu bahawa perintah input pada mysql menggunakan fungsi insert, nah fungsi tersebut nantinya akan dituliskan di ODBCcommand. Dalam prakteknya, nanti ada 3 perintah digunakan untuk mengeksekusi perintah SQL di ODBCcommand yaitu ExecuteNonQuery, ExecuteReader dan ExecuteSecalar. ExecuteNonQuery digunakan untuk mengeksekusi Script SQL Data Definition Language(DDL) seperti insert, Update dan delete. ExecuteReader digunakan untuk Mengeksekusi Scrip SQL berupa perintah select saja. Output dari ExecuteReader nanti akan disimpan di variabel OdbcDataReader. Sedangkan ExecuteSecalar hampir sama fungsinya dengan ExecuteReader. Bedanya ExecuteSecalar outputnya adalah object, dan hanya menghasilkan data pada kolom pertama dan baris pertama.
  • RD Merupakan varianel yang isinya mereferensikan pada OdbcDataReader yang berfungsi mengambil data dari database dalam mode read-only dan mode fordward.
  • DS Merupakan nama variabel yang isinya mereferensikan pada Dataset yang berfungsi menyimpan data dari sumber data atau database, jadi data didataset inilah yang akan ditampilkan di DatagridView
Ketikan variabel-variabel diatas di bawahnya  Public Class frmbarang 
    Dim DSN As String
    Public Conn As OdbcConnection
    Public DA As OdbcDataAdapter
    Public DS As DataSet
    Public CMD As OdbcCommand
    Public RD As OdbcDataReader
Selanjutnya kita buat sub procedure baru dengan nama koneksi() yang berisi perintah koneksi dari vb.net ke database. Ketikkan di bawahnya source code variabel.
   Public Sub Koneksi()
        DSN = "DSN=contohjual"
        Try
            Conn = New OdbcConnection(DSN)
            Conn.Open()
        Catch ex As Exception
            MsgBox("Koneksi Gagal")
        End Try

    End Sub

Pada  DSN=contohjual Sesuaikan dengan isi data source name di MysqlConnectorODBC yang telah dibuat sebelumnya.

Selanjutnya kita buat sub procedure dengan nama bersihkan() yang nantinya berisi perintah untuk membersihkan tulisan yang telah kita ketikkan di textbox saat input data. Ketikkan source code nya dibawab sub procedure koneksi()
    Sub bersihkan()
        txtkodebarang.Clear()
        txtnamabarang.Clear()
        txtsatuanbarang.Clear()
        txthargabarang.Text = "0"
        txtkodebarang.Focus()
    End Sub

Selanjutnya kita buat sub precedure lagi dengan nama tampil_data() yang berisi perintah untuk menampilkan data dari database ke datagridview. Ketikkan Source codenya dibawah sub procedure bersihkan().

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

    End Sub

Perintah select * from barang menunjukkan bahwa data ditampilkan dari tabel barang. Sesuaikan dengan nama tabel yang telah temen- temen buat sebelumnya.
Selanjutnya kita kita Kembali ke form dengan menekan tombol Shift+F7. Lalu kita masuk ke form_load . Form_load merupakan suatu event yang akan dieksekusi saat program pertama kali dijalankan. Untuk masuk ke form load, kita klik formnya 2x.

Atau kita klik sekali, lalu masuk ke propertis event(Gambar Petir kuning), lalu pilih load

Lalu ketikkan di form_load Source Code berikut ini:
        bersihkan()
        tampil_data()
Setelah itu kita masukkan souce code di tombol simpan. Klik tombol simpan 2x lalu ketikkan source code berikut:
Try
            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()
                CMD = New OdbcCommand("INSERT INTO barang VALUES (?,?,?,?)", Conn)
                    With CMD
                    .Parameters.AddWithValue("?", txtkodebarang.Text)
                    .Parameters.AddWithValue("?", txtnamabarang.Text)
                    .Parameters.AddWithValue("?", txtsatuanbarang.Text)
                    .Parameters.AddWithValue("?", txthargabarang.Text)
                    .ExecuteNonQuery()
                    End With
                    Conn.Close()
                Else
                    Koneksi()
                CMD = New OdbcCommand("UPDATE barang set nama_barang=?, satuan_barang=?, harga_barang=? WHERE kode_barang=?", Conn)
                    With CMD
                    .Parameters.AddWithValue("?", txtnamabarang.Text)
                    .Parameters.AddWithValue("?", txtsatuanbarang.Text)
                    .Parameters.AddWithValue("?", txthargabarang.Text)
                    .Parameters.AddWithValue("?", txtkodebarang.Text)
                    .ExecuteNonQuery()
                    End With
                    Conn.Close()
                End If
                Conn.Close()
            bersihkan()
            tampil_data()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

Pada fungsi diatas selain digunakan untuk menyimpan data juga terdapat source code yang berfungsi sebagai edit data. Pada source code di atas terdapat fungsi if yang menyatakan jika kode barang yang kita masukkan belum ada di tabel barang, maka fungsi simpan(Insert) yang akan dijalankan. Lalu jika sebaliknya, fungsi edit(update) yang akan dijalankan.


Setelah itu kita masukkan souce code di tombol batal. Klik tombol batal 2x lalu ketikkan source code berikut:
        tampil_data()
        bersihkan()

Setelah itu kita masukkan souce code di tombol Hapus. Klik tombol hapus 2x lalu ketikkan source code berikut:
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()
                CMD = New OdbcCommand("DELETE FROM barang WHERE kode_barang ='" + txtkodebarang.Text + "'", Conn)
                CMD.ExecuteNonQuery()
                Conn.Close()
                tampil_data()
                bersihkan()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Else
            bersihkan()
        End If

    End Sub

Setelah itu kita masukkan souce code di tombol Keluar. Klik tombol keluar 2x lalu ketikkan source code berikut:
Me.Close()

Setelah itu kita masukkan source code yang berfungsi untuk menampilkan data dari datagridview ke textbox. Jadi data yang ada di datagrid view akan tampil di textbox setelah data di datagrid kita klik 2x. Fungsi ini digunakan pada saat akan mengedit atau menghapus data. Untuk source codenya kita masukkan di datagridview dengan event cell click

Setelah itu masukkan scrip berikut:

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
                txtsatuanbarang.Text = RD(2).ToString
                txthargabarang.Text = RD(3).ToString
            End If
            Conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)

        End Try

Untuk source code keseluruhan sebagai berikut:
Imports System.Data.Odbc
Public Class frmbarang

    Dim DSN As String
    Public Conn As OdbcConnection
    Public DA As OdbcDataAdapter
    Public DS As DataSet
    Public CMD As OdbcCommand
    Public RD As OdbcDataReader

    Public Sub Koneksi()
        DSN = "DSN=contohjual"
        Try
            Conn = New OdbcConnection(DSN)
            Conn.Open()
        Catch ex As Exception
            MsgBox("Koneksi Gagal")
        End Try
    End Sub

    Sub bersihkan()
        txtkodebarang.Clear()
        txtnamabarang.Clear()
        txtsatuanbarang.Clear()
        txthargabarang.Text = "0"
        txtkodebarang.Focus()
    End Sub

    Sub tampil_data()
        Koneksi()
        DA = New OdbcDataAdapter("SELECT * FROM barang", Conn)
        DS = New DataSet
        DA.Fill(DS, 0)
        dgvbarang.DataSource = DS.Tables(0)
        dgvbarang.ReadOnly = True
        Conn.Close()
    End Sub
   
    Private Sub frmbarang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        bersihkan()
        tampil_data()
    End Sub

    Private Sub btsimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btsimpan.Click
        Try
            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()
                CMD = New OdbcCommand("INSERT INTO barang VALUES (?,?,?,?)", Conn)
                    With CMD
                    .Parameters.AddWithValue("?", txtkodebarang.Text)
                    .Parameters.AddWithValue("?", txtnamabarang.Text)
                    .Parameters.AddWithValue("?", txtsatuanbarang.Text)
                    .Parameters.AddWithValue("?", txthargabarang.Text)
                    .ExecuteNonQuery()
                    End With
                    Conn.Close()
                Else
                    Koneksi()
                CMD = New OdbcCommand("UPDATE barang set nama_barang=?, satuan_barang=?, harga_barang=? WHERE kode_barang=?", Conn)
                    With CMD
                    .Parameters.AddWithValue("?", txtnamabarang.Text)
                    .Parameters.AddWithValue("?", txtsatuanbarang.Text)
                    .Parameters.AddWithValue("?", txthargabarang.Text)
                    .Parameters.AddWithValue("?", txtkodebarang.Text)
                    .ExecuteNonQuery()
                    End With
                    Conn.Close()
                End If
                Conn.Close()
            bersihkan()
            tampil_data()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub btbatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btbatal.Click
        tampil_data()
        bersihkan()
    End Sub

    Private Sub dgvbarang_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.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
                txtsatuanbarang.Text = RD(2).ToString
                txthargabarang.Text = RD(3).ToString
            End If
            Conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

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

    Private Sub bthapus_Click(ByVal sender As System.Object, ByVal e As System.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()
                CMD = New OdbcCommand("DELETE FROM barang WHERE kode_barang ='" + txtkodebarang.Text + "'", Conn)
                CMD.ExecuteNonQuery()
                Conn.Close()
                tampil_data()
                bersihkan()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Else
            bersihkan()
        End If
    End Sub
End Class

Jika semua source codenya sudah dimasukkan, saatnya kita coba jalankan atau di run, maka hasilnya seperti berikut ini
Sekarang kita coba satu per satu fungsi tombolnya. Untuk menambahkan data, kita isikan dulu datanya lalu tekan simpan

Jika benar, maka data yang kita ketikkan akan masuk ke datagridview seperti di bawah ini

Untuk Edit data, Kita klik 2x data di datagridview hingga muncul di textbox.

Lalu kita ganti data yang ingin di edit, seumpama saya ingin mengganti supermi menjadi indomie. Setelah selesai diganti kita klik tombol simpan.

Jika program benar, maka data di datagrid akan berganti.
Untuk hapus hampir sama saat akan edit data, kita klik data di datagrid yang akan dihapus sampai muncul di textbox, setelah itu klik tombol hapus.


Jika benar maka data yang ada di datagrid akan hilang.

Demikian sedikit tutorial cara membuat program input data dengan menggunakan vb.net. Tentu saja program diatas masih sangat sederhana dan perlu pengembangan. Jadi silahkan program diatas dikembangkan lebih lanjut. Jika teman-teman ada pertanyaan bisa ditanyakan lewat kolom komentar. Tetap kunjungi web sibukngoding.com untuk mendapatkan tutorial bahasa pemrograman lainnya.

Terimakasih atas kunjungannya, selamat belajar, tetap semangat dan jangan mudah menyerah.

Wassalamu’alaikum Wr Wb

Comments