Assalamu’alaikum Wr Wb
Selamat datang di Web Sibukngoding.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 Data Pelanggan. Disini
akan dijelaskan sourcode yang akan digunakan di form pengolahan Pelanggan.
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()
TxtKodePelanggan.Focus()
TxtKodePelanggan.Clear()
TxtNamaPelanggan.Clear()
TxtAlamat.Clear()
TxtNoHp.Clear()
End Sub
3.Sub
Tampilkan Data
Untuk menampilkan data dari database ke
DataGridView
Sub
tampilkan_data()
Koneksi()
DA = New OdbcDataAdapter("SELECT
* FROM pelanggan", Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVPelanggan.DataSource = DS.Tables(0)
Conn.Close()
End Sub
4. Sub Auto
Complete
Untuk membuat sugesti pada txtkodepelanggan.
Sub
Autocomplete()
Koneksi()
CMD = New OdbcCommand("SELECT
kode_pelanggan FROM pelanggan", Conn)
RD = CMD.ExecuteReader
While RD.Read
With TxtKodePelanggan
.AutoCompleteCustomSource.Add(RD(0).ToString)
.AutoCompleteMode = AutoCompleteMode.Suggest
.AutoCompleteSource = AutoCompleteSource.CustomSource
End With
End While
Conn.Close()
End Sub
5. Sub call
all
Untuk menggabungakan semua sub sehingga nanti
pemanggilan cukup sub ini saja yang akan dipanggil.
Sub call_all()
bersihkan()
tampilkan_data()
Autocomplete()
TxtKodePelanggan.Enabled=True
TxtKodePelanggan.Enabled=True
End Sub
6. Event
Form load
Klik 2x pada bagian form pelanggan kemudian
ketikkan coding berikut:
Private Sub FormPelanggan_Load(sender As Object, e As EventArgs) Handles MyBase.Load
call_all()
End Sub
7. Event
KeyPress pada TxtNoHp
Membuat Text NoHp
hanya dapat diinput dengan Angka. Event yang digunakan adalah KeyPress.
Private Sub TxtNoHp_KeyPress(sender As Object, e As KeyPressEventArgs) Handles
TxtNoHp.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
8. Event
KeyDown Pada txtkodepelanggan
Bertujuan untuk mengisi data yang ada pada tabel pelanggan
ke TextBox-TextBox yang lainnya setelah txtkodepelanggan diisi lalu ditekan
Enter. Event ini dibuat di txtkodepelanggan pada event KeyDown. Klik pada
bagian (General) pilih txtkodepelanggan, kemudian pada bagian
(Declaration) pilih KeyDown. Ketikkan coding berikut.
Private Sub TxtKodePelanggan_KeyDown(sender As Object, e As KeyEventArgs) Handles
TxtKodePelanggan.KeyDown
If e.KeyCode = Keys.Enter Then
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pelanggan WHERE kode_pelanggan =
'" + TxtKodePelanggan.Text + "'",
Conn)
RD = CMD.ExecuteReader
If RD.Read Then
TxtKodePelanggan.Text =
RD(0).ToString
TxtNamaPelanggan.Text =
RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtNamaPelanggan.Focus()
End If
End Sub
9. 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 pelanggan atau nama pelanggan 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 pelanggan WHERE kode_pelanggan LIKE '%" + txtcari.Text + "%'
or nama_pelanggan LIKE '%" +
txtcari.Text + "%'", Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVPelanggan.DataSource =
DS.Tables(0)
Conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
10. 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 DGVpelanggan (DataGridView), kemudian pada bagian (Declaration) pilih CellClick. Setelah itu ketikkan coding
berikut ini.
Private Sub DGVPelanggan_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DGVPelanggan.CellClick
Try
Dim i = e.RowIndex
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pelanggan WHERE kode_pelanggan =
'" + DGVPelanggan.Item(0,
i).Value + "'", Conn)
RD = CMD.ExecuteReader
If RD.HasRows Then
TxtKodePelanggan.Text =
RD(0).ToString
TxtNamaPelanggan.Text =
RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtKodePelanggan.Enabled=False
TxtKodePelanggan.Enabled=False
Catch ex As Exception
MsgBox(ex.Message)
End Try
End
Sub
11. 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 TxtKodePelanggan.Text = "" Then
MsgBox("Isi terlebih dahulu Kode Pelanggan")
ElseIf TxtNamaPelanggan.Text = "" Then
MsgBox("Isi terlebih dahulu Nama Pelanggan")
ElseIf TxtAlamat.Text = "" Then
MsgBox("Isi terlebih dahulu Alamat Pelanggan")
ElseIf TxtNoHp.Text = "" Then
MsgBox("Isi terlebih dahulu No HP Pelanggan")
Else
Koneksi()
CMD = New OdbcCommand("SELECT kode_pelanggan FROM pelanggan WHERE
kode_pelanggan = '" +
TxtKodePelanggan.Text + "'", Conn)
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
Koneksi()
'program untuk simpan data
CMD = New OdbcCommand("INSERT INTO pelanggan VALUES (?,?,?,?)", Conn)
With CMD
.Parameters.AddWithValue("?", TxtKodePelanggan.Text)
.Parameters.AddWithValue("?", TxtNamaPelanggan.Text)
.Parameters.AddWithValue("?", TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.Text)
.ExecuteNonQuery()
End With
Conn.Close()
Else
Koneksi()
'program untuk edit data
CMD = New OdbcCommand("UPDATE pelanggan set nama_pelanggan=?,
alamat=?, no_hp=? WHERE kode_pelanggan=?",
Conn)
With CMD
.Parameters.AddWithValue("?", TxtKodePelanggan.Text)
.Parameters.AddWithValue("?", TxtNamaPelanggan.Text)
.Parameters.AddWithValue("?",
TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.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
12. 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 TxtKodePelanggan.Text = "" Then
MsgBox("Isi terlebih dahulu kode pelanggan")
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 pelanggan WHERE kode_pelanggan
='" + TxtKodePelanggan.Text + "'",
Conn)
CMD.ExecuteNonQuery()
Conn.Close()
call_all()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
bersihkan()
End If
End Sub
13. 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
14. 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 FormPelanggan
Sub bersihkan()
TxtKodePelanggan.Focus()
TxtKodePelanggan.Clear()
TxtNamaPelanggan.Clear()
TxtAlamat.Clear()
TxtNoHp.Clear()
End Sub
'----------------------
Sub tampilkan_data()
Koneksi()
DA = New OdbcDataAdapter("SELECT
* FROM pelanggan", Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVPelanggan.DataSource = DS.Tables(0)
Conn.Close()
End Sub
'----------------------
Sub Autocomplete()
Koneksi()
CMD = New OdbcCommand("SELECT
kode_pelanggan FROM pelanggan", Conn)
RD = CMD.ExecuteReader
While RD.Read
With TxtKodePelanggan
.AutoCompleteCustomSource.Add(RD(0).ToString)
.AutoCompleteMode = AutoCompleteMode.Suggest
.AutoCompleteSource = AutoCompleteSource.CustomSource
End With
End While
Conn.Close()
End Sub
'----------------------
Sub call_all()
bersihkan()
tampilkan_data()
Autocomplete()
TxtKodePelanggan.Enabled=True
TxtKodePelanggan.Enabled=True
End Sub
'----------------------
Private Sub FormPelanggan_Load(sender As Object, e As EventArgs) Handles MyBase.Load
call_all()
End Sub
'----------------------
Private Sub TxtNoHp_KeyPress(sender As Object, e As KeyPressEventArgs) Handles
TxtNoHp.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 TxtKodePelanggan_KeyDown(sender As Object, e As KeyEventArgs) Handles
TxtKodePelanggan.KeyDown
If e.KeyCode = Keys.Enter Then
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pelanggan WHERE kode_pelanggan =
'" + TxtKodePelanggan.Text + "'",
Conn)
RD = CMD.ExecuteReader
If RD.Read Then
TxtKodePelanggan.Text =
RD(0).ToString
TxtNamaPelanggan.Text =
RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtNamaPelanggan.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 pelanggan WHERE kode_pelanggan LIKE '%" + txtcari.Text + "%'
or nama_pelanggan LIKE '%" +
txtcari.Text + "%'", Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVPelanggan.DataSource =
DS.Tables(0)
Conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
'----------------------
Private Sub DGVPelanggan_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DGVPelanggan.CellClick
Try
Dim i = e.RowIndex
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pelanggan WHERE kode_pelanggan =
'" + DGVPelanggan.Item(0,
i).Value + "'", Conn)
RD = CMD.ExecuteReader
If RD.HasRows Then
TxtKodePelanggan.Text =
RD(0).ToString
TxtNamaPelanggan.Text =
RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtKodePelanggan.Enabled=False
TxtKodePelanggan.Enabled=False
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 TxtKodePelanggan.Text = "" Then
MsgBox("Isi terlebih dahulu Kode Pelanggan")
ElseIf TxtNamaPelanggan.Text = "" Then
MsgBox("Isi terlebih dahulu Nama Pelanggan")
ElseIf TxtAlamat.Text = "" Then
MsgBox("Isi terlebih dahulu Alamat Pelanggan")
ElseIf TxtNoHp.Text = "" Then
MsgBox("Isi terlebih dahulu No HP Pelanggan")
Else
Koneksi()
CMD = New OdbcCommand("SELECT kode_pelanggan FROM pelanggan WHERE
kode_pelanggan = '" +
TxtKodePelanggan.Text + "'", Conn)
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
Koneksi()
'program untuk simpan data
CMD = New OdbcCommand("INSERT INTO pelanggan VALUES (?,?,?,?)", Conn)
With CMD
.Parameters.AddWithValue("?", TxtKodePelanggan.Text)
.Parameters.AddWithValue("?", TxtNamaPelanggan.Text)
.Parameters.AddWithValue("?", TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.Text)
.ExecuteNonQuery()
End With
Conn.Close()
Else
Koneksi()
'program untuk edit data
CMD = New OdbcCommand("UPDATE pelanggan set nama_pelanggan=?,
alamat=?, no_hp=? WHERE kode_pelanggan=?",
Conn)
With CMD
.Parameters.AddWithValue("?", TxtKodePelanggan.Text)
.Parameters.AddWithValue("?", TxtNamaPelanggan.Text)
.Parameters.AddWithValue("?",
TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.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 TxtKodePelanggan.Text = "" Then
MsgBox("Isi terlebih dahulu kode pelanggan")
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 pelanggan WHERE kode_pelanggan
='" + TxtKodePelanggan.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 btkeluar_Click(sender As Object, e As EventArgs) Handles
btkeluar.Click
Close()
End Sub
'----------------------
Private Sub btbatal_Click(sender As Object, e As EventArgs) Handles btbatal.Click
call_all()
End Sub
End Class
Jika dijalankan, tampilan akhir form Pengolahan
Data Pelangganya seperti berikut:
Sampai disini pembahasan tentang Pengolahan Data Pelanggan.
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 Pelanggan bisa ditanyakan lewat kolom komentar. Jika sudah
berhasil dalam pembuatan Form Pengolahan Data Pelanggan, bisa lanjut ke
pembuatan Form lainnya.
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.