Langsung ke konten utama

Membuat Aplikasi Data Pegawai dengan VB.NET


Deskripsi



Aplikasi ini saya buat untuk mendata karyawan dikantor saya beserta foto dari si pegawai tersebut. karena di tempat saya bekerja  pendataan karyawan masih dilakukan secara manual dengan ms.Excel ataupun arsip berkas dokumen yang membuat data rentan terubah-ubah, tercecer kemana-mana ataupun diubah oleh orang-orang yang tanpa hak mengaksesnya dan tidak bertanggung jawab atas yang diperbuat. Untuk itu saya membuat aplikasi ini dengan login form agar hanya orang-orang yang memiliki hak dan akses yang bisa masuk ke dalam aplikasi untuk full control melakukan semua kegiatan pendataan dan aplikasi ini digunakan untuk bagian SDM . Terlebih lagi kantor saya sering sekali merekrut pegawai baru tiap bulannya dan seiring dengan itu banyak juga pegawai yang resign tiap bulannya. Bahkan ada yang resign tanpa bilang ke atasan, itu membuat pendataan pegawai yang ada di kantor menjadi kacau karena tidak tau mana pegawai yang resign bila dicari secara data, daripada itu saya menyisipkan fitur input foto dan search agar lebih mengenal si pegawai agar lebih mudah mencari datanya.

 Design dari aplikasinya :

Sebelum membuat form dan menkoneksikannya dengan database, kamu harus membuat databasenya terlebih dahulu. disini saya membuat database menggunakan ms. access dan mensavenya di folder bin-debug aplikasi yang saya buat. didalam database terdapat 2 tabel yaitu info_pegawai dan user_login

 

berikut tampilan isi databasenya :
  • info_pegawai = digunakan untuk menyimpan data pegawai
  • user_login =  digunakan untuk menyimpan account yang bisa login ke aplikasi
  • untuk menconnect kan aplikasi maka kamu bisa membuat modul koneksi dan mengisinya dengan source code berikut, Source Code Database Connection menggunakan Ms.Access dan membuat module connection:
Imports System.Data.OleDb
Module ModKoneksi

    Public conn As OleDbConnection
    Public cmd As OleDbCommand
    Public da As OleDbDataAdapter
    Public dr As OleDbDataReader
    Public ds As DataSet
    Sub Koneksi()

        conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "/pegawai.accdb")
        conn.Open()

    End Sub

End Module




1. Login Form



Komponen yang digunakan :
  • Label
  • TextBox 
  • Button

Function :
  • Bila textbox diisi dengan data user yang benar lalu login button di klik maka akan muncul Form1 yaitu Form Data Pegawai
  • Bila textbox diisi dengan data user yang salah maka system akan menampilkan warning

Source Code :
Private Sub Btnlogin_Click(sender As Object, e As EventArgs) Handles Btnlogin.Click
Try
            Call Koneksi()
            Dim str As String = "SELECT * FROM user_login WHERE username = '" & txtusername.Text & "' and password = '" & txtpass.Text & "'"
            cmd = New OleDbCommand(str, conn)
            dr = cmd.ExecuteReader
            If dr.HasRows Then
                Form1.Show()
                Me.Hide()
            Else
                dr.Close()
                MessageBox.Show("Login gagal, username atau Password salah", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                txtpass.Text = ""
                txtusername.Text = ""
                txtusername.Focus()
            End If
        Catch ex As Exception
        End Try
    End Sub


2. Form Data Pegawai

 

Komponen yang digunakan : 
  • Button
  • ComboBox
  • DataGridView
  • Label
  • PictureBox
  • TextBox
Function :
  • Create & Update Data : Membuat atau menambahkan data baru kedalam database melalui aplikasi ini dengan cara mengisi semua textbox yang ada dan mengklik tombol save bila data yang diinput merupakan data baru, sedangkan bila data sudah ada maka akan masuk ke update.


    • Gambar :


    • Source Code :
Private Sub SaveBTN_Click(sender As Object, e As EventArgs) Handles SaveBTN.Click
        cmd = New OleDbCommand("SELECT *  FROM info_pegawai WHERE ID='" & idTxt.Text & "'", conn)
        dr = cmd.ExecuteReader
        dr.Read()

        If Not dr.HasRows Then

            Dim simpan As String = "INSERT INTO info_pegawai VALUES('" & idTxt.Text & "','" & namaTxt.Text & "','" & JabatanTxt.Text & "','" & jamkerjaCMB.Text & "' , '" & divisiCMB.Text & "','" & locfoto.Text & "' )"
            cmd = New OleDbCommand(simpan, conn)
            cmd.ExecuteNonQuery()
            MessageBox.Show("Data Tersimpan", "System Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
            TampilGrid()

        Else

            Dim edit As String = "UPDATE info_pegawai SET nama_pegawai='" & namaTxt.Text & "' , jabatan='" & JabatanTxt.Text & "' , jam_kerja='" & jamkerjaCMB.Text & "' , divisi='" & divisiCMB.Text & "' , foto='" & locfoto.Text & "' 
            where ID= '" & idTxt.Text & "'"
            cmd = New OleDbCommand(edit, conn)
            cmd.Connection = conn
            cmd.ExecuteNonQuery()
            MessageBox.Show("Data Terupdate", "System Info", MessageBoxButtons.OK, MessageBoxIcon.Information)

            TampilGrid()
        End If
    End Sub




Read Data : Membaca isi data yang terdapat di database, di aplikasi ini saya menampilakan isi data di dalam komponen Data Grid View, dan bila data di datagridview di klik maka akan otomatis muncul di kolom-kolomnya.
    • Gambar : 

    • Source Code menampilakan isi database ke datagridview :
Sub TampilGrid()
        da = New OleDbDataAdapter("SELECT * FROM info_pegawai", conn)
        ds = New DataSet
        da.Fill(ds)
        DataGridView1.DataSource = ds.Tables(0)
        DataGridView1.ReadOnly = True
    End Sub

    •  Source Code untuk menload Data langsung tampil saat form dijalankan :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Call Koneksi()
        Call BuatBaru()
        Call TampilGrid()
    End Sub




    • Source Code agar saat data di datagridview otomatis muncul ke kolom-kolomnya


        Sub BuatBaru()

              idTxt.Clear()
              idTxt.Focus()
              namaTxt.Text = ""
              JabatanTxt.Text = ""
              jamkerjaCMB.Text = ""
              divisiCMB.Text = ""
              locfoto.Clear()
              PictureBox1.Image = Nothing

          End Sub 


      Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
              Try
                  If DataGridView1.RowCount > 0 Then
                      Dim baris As Integer
                      With DataGridView1
                          baris = .CurrentRow.Index
                          idTxt.Text = .Item(0, baris).Value
                          namaTxt.Text = .Item(1, baris).Value
                          JabatanTxt.Text = .Item(2, baris).Value
                          jamkerjaCMB.Text = .Item(3, baris).Value
                          divisiCMB.Text = .Item(4, baris).Value
                          locfoto.Text = .Item(5, baris).Value

                          idTxt.Enabled = True
                          namaTxt.Enabled = True
                          JabatanTxt.Enabled = True
                          jamkerjaCMB.Enabled = True
                          divisiCMB.Enabled = True
                          locfoto.Enabled = True

                          idTxt.Focus()
                          namaTxt.Focus()
                          JabatanTxt.Focus()
                          jamkerjaCMB.Focus()
                          divisiCMB.Focus()
                          locfoto.Focus()
                      End With
                  End If
              Catch ex As Exception
                  Call BuatBaru()
              End Try

          End Sub
      End Class 



      Search & Delete Data : Kamu bisa mencari data hanya dengan mengisi id nya di kolom id lalu tekan enter, seacara otomatis data dari id yang kamu cari akan muncul di kolom-kolom yang ada sedangkan untuk menghapus data dari database dengan cara mengisi id di kolom id pegawai atau menklik datanya di datagridview lalu klik button delete, maka otomatis ia akan meminta konfirmasi dari user untuk menghapus datanya

        • Source Code Search : 
      Private Sub idTxt_KeyPress(sender As Object, e As KeyPressEventArgs) Handles idTxt.KeyPress
              Try
                  If e.KeyChar = Chr(13) Then
                      Call Koneksi()
                      cmd = New OleDbCommand("SELECT * FROM info_pegawai WHERE ID='" & idTxt.Text & "'", conn)
                      idTxt.Focus()
                      dr = cmd.ExecuteReader
                      dr.Read()
                      If Not dr.HasRows Then
                          MsgBox(" Data tidak terdaftar")
                          Call BuatBaru()
                      Else
                          Call ketemu()
                      End If
                  End If

              Catch ex As Exception
                  MsgBox(ex.Message)
              End Try

          End Sub


        • Source Code Delete :
       Private Sub DelBTN_Click(sender As Object, e As EventArgs) Handles DelBTN.Click
              If idTxt.Text = "" Then
                  MessageBox.Show("Harap Isi ID Terlebih Dahulu", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
                  idTxt.Focus()
                  Exit Sub

              Else
                  If MessageBox.Show("Delete ?", "System Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes.Yes Then
                      Dim hapus As String = "DELETE * FROM info_pegawai WHERE ID='" & idTxt.Text & "'"
                      cmd = New OleDbCommand(hapus, conn)
                      cmd.ExecuteNonQuery()
                      MessageBox.Show("Data Berhasil Dihapus", "System Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
                      Call BuatBaru()
                      Call TampilGrid()
                  Else

                  End If
              End If
          End Sub 


      • Insert Photo : Dengan cara mengklik button upload photo dan memilih foto yang dicari tapi sebelumnya kamu harus menambahkan komponen openfiledialog dan picturebox
        • Source Code :
      Private Sub fotoBtn_Click(sender As Object, e As EventArgs) Handles fotoBtn.Click
              Try
                  OpenFileDialog1.Filter = "Jpeg.file | *.jpg|Bitmap.file|*.bmp|PNG.file|*.png|Semua File| *.*"
                  OpenFileDialog1.DefaultExt = "*.Jpg"
                  OpenFileDialog1.ShowDialog()
                  PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
                  locfoto.Text = OpenFileDialog1.FileName
              Catch ex As Exception

              End Try

          End Sub 






      • Cancel Button : Digunakan untuk menghapus data di textbox saat baru saja diisi dan tidak jadi disave, Source Code :
       Private Sub cancelBtn_Click(sender As Object, e As EventArgs) Handles cancelBtn.Click
              Call BuatBaru()
              locfoto.Text = ""
          End Sub


      • Exit button : Digunakan untuk keluar dari aplikasi , Source code :
      Private Sub ExitBtn_Click(sender As Object, e As EventArgs) Handles ExitBtn.Click
              If MessageBox.Show("Exit ?", "System Info", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes.Yes Then
                  Close()
                  Form_Login.Close()
              Else

              End If
          End Sub 


      • Gambar Otomatis muncul saat textbox lokasi foto terisi, Source code :
      Private Sub locfoto_TextChanged(sender As Object, e As EventArgs) Handles locfoto.TextChanged
              Try
                  PictureBox1.Image = Image.FromFile(locfoto.Text)
              Catch ex As Exception

              End Try
          End Sub




       Full Source Code :

      • Module ModKoneksi:


      Imports System.Data.OleDb
      Module ModKoneksi

          Public conn As OleDbConnection
          Public cmd As OleDbCommand
          Public da As OleDbDataAdapter
          Public dr As OleDbDataReader
          Public ds As DataSet
          Sub Koneksi()

              conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "/pegawai.accdb")
              conn.Open()

          End Sub

      End Module 





        • Form Login :

          Imports System.Data.OleDb
          Public Class Form_Login
              Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
                  Select Case keyData
                      Case Keys.Tab
                          ProcessTabKey(True)
                      Case Else
                          Return MyBase.ProcessCmdKey(msg, keyData)
                  End Select
                  Return True
              End Function

              Private Sub Btnlogin_Click(sender As Object, e As EventArgs) Handles Btnlogin.Click
                  Try
                      Call Koneksi()
                      Dim str As String = "SELECT * FROM user_login WHERE username = '" & txtusername.Text & "' and password = '" & txtpass.Text & "'"
                      cmd = New OleDbCommand(str, conn)
                      dr = cmd.ExecuteReader
                      If dr.HasRows Then
                          Form1.Show()
                          Me.Hide()
                      Else
                          dr.Close()
                          MessageBox.Show("Login gagal, username atau Password salah", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                          txtpass.Text = ""
                          txtusername.Text = ""
                          txtusername.Focus()
                      End If
                  Catch ex As Exception
                  End Try
              End Sub

              Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
                  Close()
              End Sub
          End Class



            • Form Data Pegawai :

              Imports System.Data.OleDb



              Public Class Form1

                  Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
                      Select Case keyData
                          Case Keys.Tab
                              ProcessTabKey(True)
                          Case Else
                              Return MyBase.ProcessCmdKey(msg, keyData)
                      End Select
                      Return True
                  End Function


                  Sub ketemu()
                      idTxt.Text = dr.Item(0)
                      namaTxt.Text = dr.Item(1)
                      JabatanTxt.Text = dr.Item(2)
                      jamkerjaCMB.Text = dr.Item(3)
                      divisiCMB.Text = dr.Item(4)
                      locfoto.Text = dr.Item(5)
                      idTxt.Focus()
                  End Sub


                  Sub Koneksi()

                      conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "/pegawai.accdb")
                      conn.Open()

                  End Sub

                  Sub BuatBaru()

                      idTxt.Clear()
                      idTxt.Focus()
                      namaTxt.Text = ""
                      JabatanTxt.Text = ""
                      jamkerjaCMB.Text = ""
                      divisiCMB.Text = ""
                      locfoto.Clear()
                      PictureBox1.Image = Nothing

                  End Sub

                  Sub TampilGrid()
                      da = New OleDbDataAdapter("SELECT * FROM info_pegawai", conn)
                      ds = New DataSet
                      da.Fill(ds)
                      DataGridView1.DataSource = ds.Tables(0)
                      DataGridView1.ReadOnly = True
                  End Sub

                  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
                      Call Koneksi()
                      Call BuatBaru()
                      Call TampilGrid()
                  End Sub


                  Sub ClearPictureBox(pb As PictureBox)
                      pb.Image = Nothing
                      pb.BackColor = Color.Empty
                      pb.Invalidate()
                  End Sub



                  Private Sub SaveBTN_Click(sender As Object, e As EventArgs) Handles SaveBTN.Click
                      cmd = New OleDbCommand("SELECT *  FROM info_pegawai WHERE ID='" & idTxt.Text & "'", conn)
                      dr = cmd.ExecuteReader
                      dr.Read()

                      If Not dr.HasRows Then

                          Dim simpan As String = "INSERT INTO info_pegawai VALUES('" & idTxt.Text & "','" & namaTxt.Text & "','" & JabatanTxt.Text & "','" & jamkerjaCMB.Text & "' , '" & divisiCMB.Text & "','" & locfoto.Text & "' )"
                          cmd = New OleDbCommand(simpan, conn)
                          cmd.ExecuteNonQuery()
                          MessageBox.Show("Data Tersimpan", "System Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
                          TampilGrid()

                      Else

                          Dim edit As String = "UPDATE info_pegawai SET nama_pegawai='" & namaTxt.Text & "' , jabatan='" & JabatanTxt.Text & "' , jam_kerja='" & jamkerjaCMB.Text & "' , divisi='" & divisiCMB.Text & "' , foto='" & locfoto.Text & "' 
                          where ID= '" & idTxt.Text & "'"
                          cmd = New OleDbCommand(edit, conn)
                          cmd.Connection = conn
                          cmd.ExecuteNonQuery()
                          MessageBox.Show("Data Terupdate", "System Info", MessageBoxButtons.OK, MessageBoxIcon.Information)

                          TampilGrid()
                      End If
                  End Sub

                  Private Sub fotoBtn_Click(sender As Object, e As EventArgs) Handles fotoBtn.Click
                      Try
                          OpenFileDialog1.Filter = "Jpeg.file | *.jpg|Bitmap.file|*.bmp|PNG.file|*.png|Semua File| *.*"
                          OpenFileDialog1.DefaultExt = "*.Jpg"
                          OpenFileDialog1.ShowDialog()
                          PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
                          locfoto.Text = OpenFileDialog1.FileName
                      Catch ex As Exception

                      End Try

                  End Sub

                  Private Sub DelBTN_Click(sender As Object, e As EventArgs) Handles DelBTN.Click
                      If idTxt.Text = "" Then
                          MessageBox.Show("Harap Isi ID Terlebih Dahulu", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
                          idTxt.Focus()
                          Exit Sub

                      Else
                          If MessageBox.Show("Delete ?", "System Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes.Yes Then
                              Dim hapus As String = "DELETE * FROM info_pegawai WHERE ID='" & idTxt.Text & "'"
                              cmd = New OleDbCommand(hapus, conn)
                              cmd.ExecuteNonQuery()
                              MessageBox.Show("Data Berhasil Dihapus", "System Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
                              Call BuatBaru()
                              Call TampilGrid()
                          Else

                          End If
                      End If
                  End Sub

                  Private Sub idTxt_TextChanged(sender As Object, e As EventArgs) Handles idTxt.TextChanged

                  End Sub

                  Private Sub idTxt_KeyPress(sender As Object, e As KeyPressEventArgs) Handles idTxt.KeyPress
                      Try
                          If e.KeyChar = Chr(13) Then
                              Call Koneksi()
                              cmd = New OleDbCommand("SELECT * FROM info_pegawai WHERE ID='" & idTxt.Text & "'", conn)
                              idTxt.Focus()
                              dr = cmd.ExecuteReader
                              dr.Read()
                              If Not dr.HasRows Then
                                  MsgBox(" Data tidak terdaftar")
                                  Call BuatBaru()
                              Else
                                  Call ketemu()
                              End If
                          End If

                      Catch ex As Exception
                          MsgBox(ex.Message)
                      End Try

                  End Sub

                  Private Sub cancelBtn_Click(sender As Object, e As EventArgs) Handles cancelBtn.Click
                      Call BuatBaru()
                      locfoto.Text = ""
                  End Sub

                  Private Sub ExitBtn_Click(sender As Object, e As EventArgs) Handles ExitBtn.Click
                      If MessageBox.Show("Exit ?", "System Info", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes.Yes Then
                          Close()
                          Form_Login.Close()
                      Else

                      End If
                  End Sub

                  Private Sub locfoto_TextChanged(sender As Object, e As EventArgs) Handles locfoto.TextChanged
                      Try
                          PictureBox1.Image = Image.FromFile(locfoto.Text)
                      Catch ex As Exception

                      End Try
                  End Sub

                  Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
                      Try
                          If DataGridView1.RowCount > 0 Then
                              Dim baris As Integer
                              With DataGridView1
                                  baris = .CurrentRow.Index
                                  idTxt.Text = .Item(0, baris).Value
                                  namaTxt.Text = .Item(1, baris).Value
                                  JabatanTxt.Text = .Item(2, baris).Value
                                  jamkerjaCMB.Text = .Item(3, baris).Value
                                  divisiCMB.Text = .Item(4, baris).Value
                                  locfoto.Text = .Item(5, baris).Value

                                  idTxt.Enabled = True
                                  namaTxt.Enabled = True
                                  JabatanTxt.Enabled = True
                                  jamkerjaCMB.Enabled = True
                                  divisiCMB.Enabled = True
                                  locfoto.Enabled = True

                                  idTxt.Focus()
                                  namaTxt.Focus()
                                  JabatanTxt.Focus()
                                  jamkerjaCMB.Focus()
                                  divisiCMB.Focus()
                                  locfoto.Focus()
                              End With
                          End If
                      Catch ex As Exception
                          Call BuatBaru()
                      End Try

                  End Sub
              End Class


               









              Komentar

              Postingan populer dari blog ini

              Program Python || Program Menyebutkan Angka(Terbilang)

              Hai guys! Saya Bram, saya baru di dalam blogger ini. hihi... Kali ini saya akan memberikan tutorial pemrograman Python dan saya akan membuat sebuah aplikasi yang mana dapat menyebutkan angka atau terbilang dari angka yang kita input, semisal angka 12987, maka penyebutannya adalah Dua belas ribu Sembilan ratus Delapan puluh Tujuh bahkan dapat ditambahkan kata "Rupiah" di akhir penyebutannya . Namun aplikasi ini bukan dalam bentuk GUI (Graphical User Interface) hanya dalam bentuk Command Line saja.   pada saat blog ini saya buat, tools yang saya gunakan adalah Enthough Canopy 64-bit karena device yang saya gunakan bersistem operasi 64 bit/x64. Python   sendiri merupakan bahasa pemrograman yang multi platform yang dimana bahasa pemrograman ini dapat digunakan di aplikasi web, mobile, desktop, dll, juga bahasa pemrograman ini lebih mudah dimengerti karena penggunaan bahasanya yang sederhana dibanding bahasa pemrograman lain seperti C,C++, Java, dll. Berikut Source Cod...

              Pemrograman Visual Aplikasi Event Order Catering

              Pada blog saya kali ini, saya akan membahas tentang Aplikasi Event Order Catering. Deskripsi Aplikasi ini apa sih? Jadi, aplikasi ini ditujukan untuk mencatat pesanan dari client dan dibuat menjadi form dokumen Word dan Excel oleh sales, antara lain seperti nama acara, jumlah tamu, waktu acara, menu yang dipilih client, waktu operasional kendaraan untuk menloading barang ke acara dan beberapa hal lain seperti pelayanan lainya bila client menginginkannya seperti Steward dan Floris. setelah form word jadi dibuat oleh sales lalu form tersebut akan di sebar ke beberapa bagian perusahaan seperti; Account Officer, Kitchen, Purchasing, Banquet Operation, Transportation, Steward, dan File untuk di kerjakan. sedangkan yang Excel akan di disimpan sebagai jadwal catering itu sendiri. Berikut Tampilan dari aplikasinya : Di Aplikasi ini saya menggunakan beberapa toolbox yaitu : Label TextBox RichTextBox CheckBox DateTimePicker, Button Lalu mari kita isi Aplikasi tersebut ...