Assalamu’alaikum Wr Wb
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
Untuk menggabungakan semua sub sehingga nanti
pemanggilan cukup sub ini saja yang akan dipanggil.
Sub call_all()
bersihkan()
isicombobox()
tampilkan_data()
Autocomplete()
End Sub
7. Event
Form load
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 TextBox-TextBox 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
Pada coding simpan, Insert atau Update saya menggunakan tanda “?”(tanda tanya) karena Itu adalah ketentuan dari ODBC, jika Anda menggunakan mysqlconnector .net maka tidak bisa menggunakan tanda tanya “?”, melainkan menggunakan karakter @ diikuti karakter huruf atau angka. Contohnya “INSERT INTO barang VALUES (@1, @2, @3, ….).
13. Event
Click pada tombol Hapus
Double Click tombol hapuskemudian 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
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:
Sampai disini pembahasan tentang 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 berikutnya.
Terimakasih atas kunjungannya, Selamat belajar dan
jangan mudah menyerah.
Wassalamu'alaikum Wr Wb
Comments
Post a Comment
- Berkomentarlah dengan bijak, Komentar akan di moderasi dahulu sebelum ditampilkan.