-->

Membuat Aplikasi CRUD dengan VB.Net dan Database Microsoft Access

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 :

Imports System.Data
Imports System.Data.OleDb

kode 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 Sub

pada 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 Sub
kode 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 Sub

kode 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 Sub
kemudian 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 Sub
gak 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 Sub
dan 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 Sub
akhirnyyaaaaa......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

avatar

database accessnya format mdb atau bukan?

avatar

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

Click to comment