selamat sore para sahabat blogger semuanya, kembali lagi bersama saya guzko di blog yang sederhana ini. Kali ini saya akan sharing tentang bagaimana membuat aplikasi CRUD (Create, Update dan Delete) pada database ms access dan VB.Net, sesuai dengan judulnya gan. Barangkali saja ada agan agan yang lagi membutuhkan referensi, hehe... mudah-mudahan tutorial ini bermanfaat....
penampakan aplikasinya seperti ini gan :
oke gan, langsung saja kita buat programmnya...,
pertama agan buka dulu visual studionya dan buat project baru. Setelah create project, silahkan agan buat 2 buah form (1 form sebagai form utama dan 1 form sebagai form untuk updatenya ) kemudian agan desain kedua form tersebut seperti ini gan :
setelah itu agan buat sebuah database dengan menggunakan microsoft access dengan nama "karyawan.mdb". untuk cara bagaimana membuat database di microsoft accees agan bisa baca di tutorial saya yang ini.
desain databasenya seperti berikut gan :
setelah agan desain kedua form seperti diatas dan juga sudah membuat databasenya, saatnya sekarang kita ngoding gan, pertama untuk di form pertama dulu, silahkan masuk kebagian code editor dan import reference berikut ini :
selanjutnya buat deklarasi variabelnya gan seperti ini :
lanjut gan, sekarang kita buat sebuah sub yang digunakan untuk menampilkan data di database ke listview, silahkan inputkan kode dibawah ini :
setelah itu, masuk ke bagian form_load dan ketikkan kode dibawah ini gan :
pada kode diatas terdapat fungsi untuk koneksi stringnya serta membuka databasenya. ID Karyawan dibuat berdasarkan Tgl+Tahun+Jam+Menit+Detik. kemudian pada kode diatas terdapat juga kode untuk menambahkan pilihan pada combo box jabatan.
pada bagian form_closenya kita tambahkan kode berikut gan :
kode diatas digunakan untuk tutup koneksi database
selanjutnya kita menuju ke bagian button simpannya, ketikkan kode berikut gan :
penjelasanya secara alur program seperti ini gan :
pada saat agan akan melakukan proses simpan data, aplikasi akan mengecek apakah ada field yang kosong, jika ada akan tampil sebuah pesan peringatan untuk mengisi field tersebut namun jika semua field sudah terisi dengan benar maka akan dilakukan proses simpan.
fungsi try catch diatas adalah, jika seandainya pada waktu proses simpan data itu gagal, maka proses gagal atau pesan peringatan tentang error pada aplikasi akan ditampilkan pada messagebox, sehingga nantinya pengembang aplikasi akan mengetahui dimana letak error aplikasinya.
kemudian sekarang kita beralih ke button hapus, silahkan agan tambahkan kode berikut ini :
dan juga tambahkan kode dibawah ini pada button update:
kemudian tambahkan sebait kode pada event_keypress dari textbox nomor telp seperti ini gan :
penampakan aplikasinya seperti ini gan :
oke gan, langsung saja kita buat programmnya...,
pertama agan buka dulu visual studionya dan buat project baru. Setelah create project, silahkan agan buat 2 buah form (1 form sebagai form utama dan 1 form sebagai form untuk updatenya ) kemudian agan desain kedua form tersebut seperti ini gan :
setelah itu agan buat sebuah database dengan menggunakan microsoft access dengan nama "karyawan.mdb". untuk cara bagaimana membuat database di microsoft accees agan bisa baca di tutorial saya yang ini.
desain databasenya seperti berikut gan :
setelah agan desain kedua form seperti diatas dan juga sudah membuat databasenya, saatnya sekarang kita ngoding gan, pertama untuk di form pertama dulu, silahkan masuk kebagian code editor dan import reference berikut ini :
Imports System.Data Imports System.Data.OleDbkode diatas adalah untuk menambahkan reference agar koneksi antara vb.net dan database ms access bisa berjalan.
selanjutnya buat deklarasi variabelnya gan seperti ini :
Dim cnnOLEDB As New OleDbConnection Dim cmdOLEDB As New OleDbCommand Dim cmdInsert As New OleDbCommand Dim sqlAdapter As New OleDbDataAdapter Dim sqlTable As New DataTable Dim strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & System.Environment.CurrentDirectory & "\Karyawan.mdb"kode diatas adalah untuk mendeklarasikan variabel yang akan digunakan nanti untuk koneksi databasenya. serta pada kode terahir tersebut terdapat koneksi string yang diarahkan ke lokasi database berada (oya gan saya taruh database ini pada satu folder dengan aplikasinya.)
lanjut gan, sekarang kita buat sebuah sub yang digunakan untuk menampilkan data di database ke listview, silahkan inputkan kode dibawah ini :
Sub tampilData() With ListView1 .FullRowSelect = True .MultiSelect = False .View = View.Details .Columns.Clear() .Columns.Add("ID Karyawan", 100, HorizontalAlignment.Left) .Columns.Add("Nama Karyawan", 200, HorizontalAlignment.Left) .Columns.Add("Alamat Karyawan", 250, HorizontalAlignment.Left) .Columns.Add("No.Telp", 150, HorizontalAlignment.Left) .Columns.Add("Jabatan", 180, HorizontalAlignment.Left) End With Dim sql As String = "SELECT * FROM tbKaryawan" With cmdOLEDB .CommandText = sql .Connection = cnnOLEDB End With With sqlAdapter .SelectCommand = cmdOLEDB .Fill(sqlTable) End With On Error Resume Next For i = 0 To sqlTable.Rows.Count - 1 With ListView1 .Items.Add(sqlTable.Rows(i)("idKaryawan")) With .Items(.Items.Count - 1).SubItems .Add(sqlTable.Rows(i)("namaKaryawan")) .Add(sqlTable.Rows(i)("alamatKaryawan")) .Add(sqlTable.Rows(i)("noTelp")) .Add(sqlTable.Rows(i)("jabatan")) End With End With Next On Error Resume Next End Sub
setelah itu, masuk ke bagian form_load dan ketikkan kode dibawah ini gan :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With cmbJabatan .Items.Add("-Pilih Jabatan-") .Items.Add("Team Leader") .Items.Add("Operation and Maintenance") .Items.Add("Desk Control") .Items.Add("Quality Assurance") .Items.Add("Supervisor") .Text = "-Pilih Jabatan-" End With cnnOLEDB.ConnectionString = strConnectionString cnnOLEDB.Open() tampilData() txtIDKaryawan.Text = DateTime.Now.ToString("ddyyyyHHmmss") txtNamaKaryawan.Focus() End Sub
pada kode diatas terdapat fungsi untuk koneksi stringnya serta membuka databasenya. ID Karyawan dibuat berdasarkan Tgl+Tahun+Jam+Menit+Detik. kemudian pada kode diatas terdapat juga kode untuk menambahkan pilihan pada combo box jabatan.
pada bagian form_closenya kita tambahkan kode berikut gan :
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed cnnOLEDB.Close() End Sub
kode diatas digunakan untuk tutup koneksi database
selanjutnya kita menuju ke bagian button simpannya, ketikkan kode berikut gan :
Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSimpan.Click If txtIDKaryawan.Text = "" Or txtAlamatKaryawan.Text = "" Or txtNamaKaryawan.Text = "" Or txtTelp.Text = "" Or _ cmbJabatan.Text = "-Pilih Jabatan-" Then MsgBox("Semua Kolom Harus Dilengkapi", vbExclamation, "Crud Application (Guzko Tutorial)") Exit Sub Else Try cmdInsert.CommandText = "INSERT INTO tbKaryawan (idKaryawan,namaKaryawan,alamatKaryawan,noTelp,jabatan) " & _ "VALUES('" & txtIDKaryawan.Text & "','" & txtNamaKaryawan.Text & "'," & _ "'" & txtAlamatKaryawan.Text & "','" & txtTelp.Text & "','" & cmbJabatan.Text & "')" cmdInsert.CommandType = CommandType.Text cmdInsert.Connection = cnnOLEDB cmdInsert.ExecuteNonQuery() MsgBox("Data Berhasil Disimpan", vbInformation, "Crud Application (Guzko Tutorial)") cmdInsert.Dispose() tampilData() cnnOLEDB.Close() txtIDKaryawan.Clear() txtAlamatKaryawan.Clear() txtNamaKaryawan.Clear() txtTelp.Clear() cmbJabatan.Text = "-Pilih Jabatan-" Catch ex As Exception MsgBox("Unknown Error : " & ex.Message, vbCritical, "Crud Application (Guzko Tutorial)") End Try End If End Sub
penjelasanya secara alur program seperti ini gan :
pada saat agan akan melakukan proses simpan data, aplikasi akan mengecek apakah ada field yang kosong, jika ada akan tampil sebuah pesan peringatan untuk mengisi field tersebut namun jika semua field sudah terisi dengan benar maka akan dilakukan proses simpan.
fungsi try catch diatas adalah, jika seandainya pada waktu proses simpan data itu gagal, maka proses gagal atau pesan peringatan tentang error pada aplikasi akan ditampilkan pada messagebox, sehingga nantinya pengembang aplikasi akan mengetahui dimana letak error aplikasinya.
kemudian sekarang kita beralih ke button hapus, silahkan agan tambahkan kode berikut ini :
Private Sub cmdHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHapus.Click If txtIDKaryawan.Text = "" Then MsgBox("silahkan pilih data yang ingin dihapus", vbExclamation, "Crud Application (Guzko Tutorial)") txtIDKaryawan.Focus() Exit Sub Else Dim tanya As Integer tanya = MsgBox("Apakah anda yakin ingin menghapus data dengan ID : " & txtIDKaryawan.Text & " ?", vbQuestion + vbYesNo, "Crud Application (Guzko Tutorial)") If tanya = vbYes Then cmdInsert.CommandText = "DELETE FROM tbKaryawan WHERE idKaryawan='" & txtIDKaryawan.Text & "'" cmdInsert.CommandType = CommandType.Text cmdInsert.Connection = cnnOLEDB cmdInsert.ExecuteNonQuery() MsgBox("Data Berhasil Dihapus", vbInformation, "Crud Application (Guzko Tutorial)") tampilData() cmdInsert.Dispose() cnnOLEDB.Close() End If End If End Sub
dan juga tambahkan kode dibawah ini pada button update:
Private Sub cmdUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpdate.Click If txtIDKaryawan.Text = "" Then MsgBox("silahkan pilih terlebih dahulu data yang akan diupdate", vbExclamation, "Crud Application (Guzko Tutorial)") txtIDKaryawan.Focus() Exit Sub Else Dim tanya As Integer tanya = MsgBox("Apakah anda yakin ingin meng-update data karyawan dengan ID : " & txtIDKaryawan.Text & " ?", vbQuestion + vbYesNo, "Crud Application (Guzko Tutorial)") If tanya = vbYes Then Me.Enabled = False Form2.txtIDKaryawan.Text = txtIDKaryawan.Text Form2.Show() End If End If End Subpada kode diatas, jika textboxt id karyawan sudah dipilih oleh user, maka form1 akan didisable dan form2 akan ditampilkan.
kemudian tambahkan sebait kode pada event_keypress dari textbox nomor telp seperti ini gan :
Private Sub txtTelp_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTelp.KeyPress If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled = True End If End Subkode diatas berguna untuk mencegah inputan dari user selain angka kemudian tambahkan juga sebait kode pada listview_click seperti ini gan :
Private Sub ListView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click txtIDKaryawan.Text = ListView1.SelectedItems.Item(0).Text End Subkode diatas digunakan untuk menampilkan data ID Karyawan pada textbox jika listview diklik oleh user. oke dech coding pada form1 sudah selesai.... masih mau lanjut gan....?????? hehehe... gaspoollllll.... masuk kebagian code editor pada form2 agan dan buat sebuah sub untuk menampilkan data dari database ke textbox. kodenya seperti dibawah ini :
Sub getData() Try 'cnnOLEDB.Open() Dim str As String str = "SELECT * FROM tbKaryawan WHERE idKaryawan = '" & txtIDKaryawan.Text & "'" Dim eksekutor = New OleDbCommand(str, cnnOLEDB) Dim rd = eksekutor.ExecuteReader rd.Read() If rd.HasRows Then txtNamaKaryawan.Text = rd.Item("namaKaryawan") txtAlamat.Text = rd.Item("alamatKaryawan") txtTelp.Text = rd.Item("noTelp") cmbJabatan.Text = rd.Item("jabatan") Else MsgBox("Tidak Ditemukan Data dari ID : " & txtIDKaryawan.Text & " !", vbExclamation, "Crud Application (Guzko Tutorial)") End If Catch ex As Exception MsgBox("Unknow Error : " & ex.Message & "", vbCritical, "Crud Application (Guzko Tutorial)") End Try End Subkemudian setelah itu lanjut ke bagian form2_load dan inputkan kode seperti dibawah ini :
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With cmbJabatan .Items.Add("-Pilih Jabatan-") .Items.Add("Team Leader") .Items.Add("Operation and Maintenance") .Items.Add("Desk Control") .Items.Add("Quality Assurance") .Items.Add("Supervisor") End With cnnOLEDB.ConnectionString = strConnectionString cnnOLEDB.Open() getData() End Subgak perlu saya jelasin lagi kan gan fungsi kode diatas, pasti semuanya sudah pada ngerti, hehe... lanjut kebagian button updatenya, ketikkan kode berikut ini gan :
Private Sub cmdUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpdate.Click Try cmdInsert.CommandText = "UPDATE tbKaryawan SET namaKaryawan='" & txtNamaKaryawan.Text & "', alamatKaryawan = '" & txtAlamat.Text & "',noTelp='" & txtTelp.Text & "',jabatan='" & cmbJabatan.Text & "' WHERE idKaryawan='" & txtIDKaryawan.Text & "'" cmdInsert.CommandType = CommandType.Text cmdInsert.Connection = cnnOLEDB cmdInsert.ExecuteNonQuery() MsgBox("Data Berhasil Diupdate", vbInformation, "Crud Application (Guzko Tutorial)") cmdInsert.Dispose() cnnOLEDB.Close() cmdCancel.PerformClick() Catch ex As Exception MsgBox("Unknown Error : " & ex.Message & "", vbCritical, "Crud Application (Guzko Tutorial)") End Try End Subdan kode dibawah ini untuk di button cancel nya gan :
Private Sub cmdCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCancel.Click Me.Close() cnnOLEDB.Close() Form1.Enabled = True Form1.Show() End Subakhirnyyaaaaa......selesai juga ane buat postingan ini gan...., setelah semua kode agan buat, waktunya sekarang adalah testing aplikasinya brooo.... bagi agan-agan yang mau download source code lengkapnya bisa melalui link dibawah yang sudah saya sediakankan gan. silahkan agan jalankan aplikasi tersebut dan jika masih ada yang bingung silahkan langsung berkomentar gan, gak usah segan-segan, hehee... saya yakin aplikasi saya ini masih sangat jauh dari kata sempurna, namun mudah-mudahan dengan saya membuat aplikasi ini bisa memberikan agan sedikit referensi... oke gan, sampai jumpa lagi di tutorial berikutnya... seeee.....uuuuuuu
3 komentar
database accessnya format mdb atau bukan?
gan..
itu wktu di update bisa tpi pd listview d form1 ga berubah..
tp kalo diclose dlu lalu dijalanin lagi, bru berubah hasilnya..
gimana cara lnsung agar langsung berubah gan??
mohon ilmunya gan
link error bro