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:
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.ClickTry
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
- 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 :
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
- Gambar :
- Source Code menampilakan isi database ke datagridview :
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 :
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 :
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 :
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 :
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 :
Call BuatBaru()
locfoto.Text = ""
End Sub
- Exit button : Digunakan untuk keluar dari aplikasi , Source code :
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 :
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 :
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 :
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
Posting Komentar