BAB 13 Penerimaan Karyawan
Transcript of BAB 13 Penerimaan Karyawan
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 1/20
Created By Uus Rusmawan
193
BAB 13
APLIKASI PENERIMAAN KARYAWAN
Dengan beberapa pertimbangan akhirnya penulis memutuskan membuat programpenerimaan karyawan ini dengan database Access. Semula program ini dibuatdengan database MySQL, tetapi rasanya Access lebih banyak digunakan oleh
pemakai komputer.
Ilustrasi
Program ini dibuat sebagai salah satu contoh sistem penerimaan karyawan baru.Alur sistem yang terjadi digambarkan sebagai berikut:1. Mengentri data pelamar2. Mentransfer jadwal ujian
3. Membuat laporan jadwal ujian4. Mentransfer data pelamar ke tabel nilai hanya nomor lamaran dan namanya
saja5. Mengentri nilai hasil ujian
6. Membuat laporan hasil ujian
13.1 Rancangan Database
Dengan menggunakan database Access, maka disini kami tidak perlu lagimenjelaskan langkah-langkah pembuatannya. Silakan dibuat sendiri denganpanduan tabel-tabel berikut ini.
Tabel Pelamar
Nama Field Type Size Keterangan
NomorLmr Text 4 Field index
Nama Text 30
Alamat Text 30
Telepon Text 15
Dalam kasus yang sebenarnya data pelamar harus didata selengkap mungkin,misalnya dengan menambahkan field No KTP, jenis kelamin, agama, pendidikan
dan sebagainya. Tabel di atas hanya sebagai contoh saja.
Tabel Jadwal (Testing)
Tabel ini digunakan untuk memberitahukan kepada para pelamar jadwal testingyang harus diikuti setelah lamaran diseleksi. Struktur tabelnya adalah sebagaiberikut:
Nama Field Type Size Keterangan
NomorLmr Text 4 Field index
Tanggal Date 8
Tempat Text 20
Grup Text 2
Test1 Numeric Integer
Test2 Numeric Integer
Test3 Numeric Integer
Test4 Numeric Integer
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 2/20
Created By Uus Rusmawan
194
Tabel Nilai
Tabel ini berfungsi untuk menyimpan data hasil testing baik yang dinyatakan lulusataupun gagal dengan rincian struktur sebagai berikut:
Nama Field Type Size Keterangan
NomorLmr Text 4 Filed indexNama Text 30
Test1 Numeric Integer
Test2 Numeric Integer
Test3 Numeric Integer
Test4 Numeric Integer
Total Numeric Integer
Skor Numeric Integer
Ket Text 10
Bekerja Dengan VB .NET
Setelah selesai membuat database dan tabel-tabel yang diperlukan, langkah
selanjutnya adalah membuat beberapa form yang diperlukan untuk membuatprogram aplikasi penerimaan karyawan baru dengan rincian sebagai berikut:
13.2 Data Pelamar
Buatlah form untuk data pelamar dengan bentuk seperti gambar 13.1. Anda dapat
membuatnya sesuai selera yang terpenting adalah form tersebut dapatmengakomodasi seluruh field yang strukturnya telah dirancang sebelumnya.
Gambar 13.1 Pengolahan data pelamar
Untuk mempercepat akses ke database, buatlah sebuah module. Caranya klik menuProject > Add Module > Klik Open. Kemudian ketiklah Coding di bawah ini.
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 3/20
Created By Uus Rusmawan
195
Module Module1Public Function Koneksi() As OleDb.OleDbConnection
Dim Conn As OleDb.OleDbConnectionConn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & Application.StartupPath.ToString & "\DBSeleksi.mdb")
Return ConnConn = Nothing
End Function
Public DA As OleDb.OleDbDataAdapterPublic DT As New DataTablePublic DS As New DataSetPublic Cmd As OleDb.OleDbCommand
Public strSQL As StringPublic Conn = Module1.Koneksi
End Module
Entrilah beberapa pelamar (untuk contoh) sehingga menghasilkan data pelamar
seperti tabel berikut :
NomorLmr Nama Alamat Telepon
0001 Kusuma Hati Jl Priok No 98 2199887766
0002 Nita Merlina Jl Kebagusan No 76 2198765435
0003 Dewi Yuliandari Jl Cikarang No 65 2678276354
0004 Moh. Wahyudi Jl Cengkareng No 24 2182736432
0005 Dedi Supriyadi Jl Menteng No 45 2122334455
0006 Panca Hariwan Jl Kemuning No 76 2188227733
0007 Maslahat Jl Ps Minggu No 765 2188227799
0008 Giri Priono Jl Harapan Indah No 81 2199228800
0009 Retno Dwi Gustini Jl Harum Manis No 72 21882200220010 Turisnawati Jl Cilacap No 76 2358866551
Coding :
Imports System.DataImports System.Data.OleDb
Public Class PelamarInherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "Public Sub New()
MyBase.New()InitializeComponent()
End Sub. . .. . .
#End Region
'fungsi ini digunakan untuk membaca nomor pelamar secara otomatisSub Otomatis()
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 4/20
Created By Uus Rusmawan
196
Dim Urutan As StringDim Hitung As LongDim DS As New DataSet'buka tabel pelamar urutkan secara descendingDA = New OleDb.OleDbDataAdapter("select Nomorlmr from Pelamar order by
NomorLmr desc", Module1.Koneksi)
DA.Fill(DS)Dim TBL As DataTable = DS.Tables(0)'jika belum ada data, maka nomor lamarannya 0001If TBL.Rows.Count = 0 Then
Urutan = "0001"Else
'jika sudah ada data, makaDA = New OleDb.OleDbDataAdapter("Select NomorLmr from Pelamar order
by NomorLmr desc", Module1.Koneksi)Dim DTNomor As New DataTableDTNomor.Clear()DA.Fill(DTNomor)
'nomor lamaranya adalah nomor lamaran terakhir + 1
Me.BindingContext(DTNomor).Position =Me.BindingContext(DTNomor).Position.MaxValue
Hitung = (TBL.Rows(0)(0)) + 1Urutan = Microsoft.VisualBasic.Right("0000" & Hitung, 4)
End If TextBox1.Text = Urutan
End Sub
Private Sub Pelamar_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.LoadTextBox1.MaxLength = 4TextBox2.MaxLength = 30TextBox3.MaxLength = 30
TextBox4.MaxLength = 15KondisiAwal()TampilGrid()
End Sub
Sub TampilGrid()DA = New OleDb.OleDbDataAdapter("select * From Pelamar",
Module1.Koneksi)Dim DTPelamar As New DataTableDTPelamar.Clear()DA.Fill(DTPelamar)
Me.DataGrid1.DataSource = DTPelamarMe.DataGrid1.ReadOnly = True
End Sub
Sub Gelap()TextBox1.Enabled = FalseTextBox2.Enabled = False
TextBox3.Enabled = FalseTextBox4.Enabled = False
End Sub
Sub Terang()
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 5/20
Created By Uus Rusmawan
197
TextBox1.Enabled = TrueTextBox2.Enabled = TrueTextBox3.Enabled = TrueTextBox4.Enabled = True
End Sub
Sub Kosongkan()TextBox1.Text = ""TextBox2.Text = ""TextBox3.Text = ""
TextBox4.Text = ""End Sub
Sub KondisiAwal()
TampilGrid()Gelap()Kosongkan()Button1.Text = "&Input"
Button2.Text = "&Edit"
Button3.Text = "&Hapus"Button4.Text = "&Tutup"
Button1.Enabled = TrueButton2.Enabled = TrueButton3.Enabled = TrueButton4.Enabled = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.ClickIf Button1.Text = "&Input" Then
Button1.Text = "&Simpan"Button2.Enabled = False
Button3.Enabled = FalseButton4.Text = "&Batal"Terang()Call Otomatis()
TextBox1.Enabled = FalseTextBox2.Focus()Exit Sub
ElseIf TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or
TextBox4.Text = "" ThenMessageBox.Show("Data belum lengkap")
If TextBox1.Text = "" ThenTextBox1.Focus()
ElseIf TextBox2.Text = "" Then
TextBox2.Focus()ElseIf TextBox3.Text = "" Then
TextBox3.Focus()ElseIf TextBox4.Text = "" Then
TextBox4.Focus()End If
ElseTry
Call Module1.Koneksi()
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 6/20
Created By Uus Rusmawan
198
Conn.Open()Dim SqlInput As String = "insert into Pelamar
(NomorLmr,Nama,Alamat,Telepon) values ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "')"
Dim SqlKu As OleDbCommand = New OleDbCommand(SqlInput,Conn)
SqlKu.ExecuteNonQuery()Conn.Close()KondisiAwal()Button1.Focus()
Catch ex As ExceptionMsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End TryEnd If
End If End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
If Button2.Text = "&Edit" ThenButton2.Text = "&Simpan"
Button1.Enabled = FalseButton3.Enabled = FalseButton4.Text = "&Batal"Terang()
TextBox1.Focus()Exit Sub
Else
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Then
MessageBox.Show("data belum lengkap")If TextBox1.Text = "" Then
TextBox1.Focus()ElseIf TextBox2.Text = "" ThenTextBox2.Focus()
ElseIf TextBox3.Text = "" Then
TextBox3.Focus()ElseIf TextBox4.Text = "" Then
TextBox4.Focus()End If
ElseTry
Call Module1.Koneksi()
Conn.Open()Dim SqlEdit As String = "Update Pelamar Set Nama='" &
TextBox2.Text & "',Alamat='" & TextBox3.Text & "',Telepon='" & TextBox4.Text & "'
where NomorLmr='" & TextBox1.Text & "'"Dim SqlKu As OleDbCommand = New OleDbCommand(SqlEdit, Conn)SqlKu.ExecuteNonQuery()Conn.Close()
KondisiAwal()Button2.Focus()
Catch ex As ExceptionMsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 7/20
Created By Uus Rusmawan
199
End If End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If Button3.Text = "&Hapus" ThenButton1.Enabled = FalseButton2.Enabled = FalseButton3.Text = "&Hapus"
Button4.Text = "&Batal"TextBox1.Enabled = TrueTextBox1.Focus()
End If
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Select Case Button4.Text
Case "&Tutup"KondisiAwal()
Me.Close()Case "&Batal"
KondisiAwal()End Select
End Sub
Sub TampilData()
Dim DS As New DataSetDA = New OleDb.OleDbDataAdapter("select * from Pelamar where
NomorLmr='" & TextBox1.Text & "'", Module1.Koneksi)DA.Fill(DS)
Dim Tbl As DataTable = DS.Tables(0)TextBox2.Text = Tbl.Rows(0)(1)TextBox3.Text = Tbl.Rows(0)(2)TextBox4.Text = Tbl.Rows(0)(3)
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) ThenTextBox1.Text = UCase(TextBox1.Text)If Button1.Text = "&Simpan" Then
Dim DS As New DataSetDA = New OleDb.OleDbDataAdapter("select * from Pelamar where
NomorLmr='" & TextBox1.Text & "'", Module1.Koneksi)
DA.Fill(DS)Dim TBL As DataTable = DS.Tables(0)If TBL.Rows.Count <> 0 Then
TampilData()
MessageBox.Show("Kode Pelamar sudah ada, Coba Kode Lain")TextBox1.Focus()Kosongkan()Exit Sub
Else
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 8/20
Created By Uus Rusmawan
200
TextBox2.Focus()End If
ElseIf Button2.Text = "&Simpan" ThenDim DS As New DataSetDA = New OleDb.OleDbDataAdapter("select * from Pelamar where
NomorLmr='" & TextBox1.Text & "'", Module1.Koneksi)DA.Fill(DS)Dim TBL As DataTable = DS.Tables(0)If TBL.Rows.Count <> 0 Then
TampilData()TextBox1.Enabled = FalseTextBox2.Focus()Exit Sub
ElseMessageBox.Show("Kode Pelamar tidak ada, Coba Kode Lain")TextBox1.Focus()Kosongkan()
End If
ElseIf Button3.Text = "&Hapus" Then
Dim DS As New DataSetDA = New OleDb.OleDbDataAdapter("select * from Pelamar where
NomorLmr='" & TextBox1.Text & "'", Module1.Koneksi)DA.Fill(DS)
Dim TBL As DataTable = DS.Tables(0)If TBL.Rows.Count <> 0 Then
TampilData()
Dim Message As String = "Yakin akan di&Hapus ?"Dim Caption As String = "&Hapus Data"Dim Buttons As Integer = MessageBoxButtons.YesNoDim Result As DialogResult
Result = MessageBox.Show(Me, Message, Caption,MessageBoxButtons.YesNo, MessageBoxIcon.Question,MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
If Result = DialogResult.Yes Then
Call Module1.Koneksi()Conn.Open()Dim SqlHapus As String = "delete * from Pelamar where
NomorLmr='" & TextBox1.Text & "'"Dim SqlKu As OleDbCommand = New OleDbCommand(SqlHapus,
Conn)SqlKu.ExecuteNonQuery()
Conn.Close()Kosongkan()KondisiAwal()
Button3.Focus()Else
Kosongkan()KondisiAwal()
Button3.Focus()End If
ElseMessageBox.Show("Data tidak ditemukan")
TextBox1.Focus()
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 9/20
Created By Uus Rusmawan
201
Exit SubEnd If
End If End If If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack)
Then e.Handled() = True
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) ThenTextBox2.Text = UCase(TextBox2.Text)TextBox3.Focus()
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)Handles TextBox3.KeyPress
If e.KeyChar = Chr(13) Then
TextBox3.Text = UCase(TextBox3.Text)TextBox4.Focus()
End If End Sub
Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs)Handles TextBox4.KeyPressIf e.KeyChar = Chr(13) Then
If Button1.Text = "&Simpan" Then
Button1.Focus()Else
Button2.Focus()End If
End If If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack)Then e.Handled() = True
End Sub
End Class
Penjelasan:
Tidak ada yang istimewa dalam program pengolahan data pelamar ini, hanya sajaterdapat satu sub program yaitu Sub Otomatis untuk menampilkan nomor lamaran
secara otomatis (terurut) dari 0001 s/d ….. pada saat proses input dilakukan.Penjelasannya telah kami berikan dalam coding.
13.3 Transfer Jadwal Testing
Dalam kasus ini, entri jadwal testing ditentukan sebagai berikut:1. Perserta testing dikelompokkan dengan jumlah 5 orang per kelompok Anda
dapat mengubah jumlah per kelompok sesuai banyaknya pelamar dan dayatampung tempat testing.
2. Tiap kelompok berbeda tanggal testing, selisihnya 10 hari dari tanggal hari ini3. Proses entri jadwal ujian tidak perlu dilakukan secara manual dengan cara
menginput data satu persatu, dapat dibayangkan jika jumlah pelamar
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 10/20
Created By Uus Rusmawan
202
mencapai ribuan orang, maka pekerjaan entri jadwal ujian untuk masing-masing peserta menjadi tidak efektif dan efisien. Dalam kasus ini proses entriakan dilakukan cukup dengan membuat sebuah otomasi dengan sekali klik.Oleh karena itu buatlah form seperti gambar 13.2.
Gambar 13.2 Transfer jadwal ujian
Coding :
Imports System.DataImports System.Data.OleDb
Public Class TransferJadwal
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()MyBase.New()InitializeComponent()
End Sub. . .. . .#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TryCall Module1.Koneksi()Conn.Open()'hapus dulu tabel jadwal
Dim Sqlhapus1 As String = "Delete * from Jadwal"Dim Sqlhapus2 As OleDbCommand = New OleDbCommand(Sqlhapus1,
Conn)Sqlhapus2.ExecuteNonQuery()
Dim DS As New DataSet'buka tabel pelamarDA = New OleDb.OleDbDataAdapter("select * From Pelamar",
Module1.Koneksi)DA.Fill(DS)Dim TBL As DataTable = DS.Tables(0)'hitung banyaknya record dalam tabel jadwal
Dim Baris As Integer = TBL.Rows.Count'baca berulang-ulangFor Baris = 0 To Baris - 1
Dim grup As ByteDim tgl As Date
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 11/20
Created By Uus Rusmawan
203
Dim tempat, Test1, Test2, Test3, Test4 As String'jika jumlah data <5 maka termasuk grup 1 dan'tanggal testing 10 hari dari tanggal hari iniIf Baris < 5 Then
grup = 1 ‘tambah 10 hari dari hari ini
tgl = DateAdd(DateInterval.Day, 10, Today)ElseIf Baris >= 5 And Baris < 8 Then
grup = 2tgl = DateAdd(DateInterval.Day, 11, Today)
ElseIf Baris > 9 Thengrup = 3tgl = DateAdd(DateInterval.Day, 12, Today)
End If
tempat = "AULA"Test1 = "Ruang 1"Test2 = "Ruang 2"Test3 = "Ruang 3"
Test4 = "Ruang 4"
'input berulang-ulang sesuai kriteria di atasDim SqlInput As String = "insert into
Jadwal(Nomorlmr,tanggal,tempat,grup,Test1,Test2,Test3,Test4) " & Chr(13) & _"values ('" & TBL.Rows(Baris)(0) & "','" & tgl & "','" & tempat & "','" &
grup & "','" & Test1 & "','" & Test2 & "','" & Test3 & "','" & Test4 & "')"Dim SqlDetail As OleDbCommand = New OleDbCommand(SqlInput,
Conn)SqlDetail.ExecuteNonQuery()
Next Baris
MsgBox("Transfer sukses")Me.Close()
Catch ex As ExceptionMsgBox("Transfer gagal, perbaiki programnya..", MsgBoxStyle.Information)
EndEnd Try ‘panggil form jadwaltesting
Dim Form As New JadwalTesting
Form.TopMost() = TrueForm.ShowDialog()Form.Dispose()
End SubEnd Class
Sebelum project di RUN buatlah sebuah form dengan nama JadwalTesting dengan
menambahkan sebuah Datagrid lalu ketik coding berikut:
Imports System.Data
Imports System.Data.OleDb
Public Class JadwalTestingInherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "Public Sub New()
MyBase.New()InitializeComponent()
End Sub
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 12/20
Created By Uus Rusmawan
204
. . .
. . .#End Region
Private Sub JadwalTesting_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DA = New OleDb.OleDbDataAdapter("select * From Jadwal",Module1.Koneksi)
Dim DTJadwal As New DataTableDTJadwal.Clear()
DA.Fill(DTJadwal)Me.DataGrid1.DataSource = DTJadwalMe.DataGrid1.ReadOnly = True
End Sub
End Class
Jika program di RUN akan menghasilkan data sebagai berikut:
Gambar 13.3 Hasil transfer data jadwal
13.4 Transfer Data Pelamar
Program ini digunakan untuk menyalin data pelamar (hanya nomor lamaran dan
nama pelamar) ke tabel Nilai. Hal ini dilakukan mengingat jumlah pelamar yangsangat banyak tidak mungkin dientri satu persatu secara manual. Buatlah formseperti gambar 13.4.
Gambar 13.4 Transfer data pelamar ke tabel nilai
Coding :
Imports System.DataImports System.Data.OleDb
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 13/20
Created By Uus Rusmawan
205
Public Class TransferPelamarInherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "Public Sub New()
MyBase.New()
InitializeComponent()End Sub
. . .#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Call Module1.Koneksi()Conn.Open()Dim Sqlhapus1 As String = "Delete * from Nilai"Dim Sqlhapus2 As OleDbCommand = New OleDbCommand(Sqlhapus1,
Conn)
Sqlhapus2.ExecuteNonQuery()Dim DS As New DataSet
DA = New OleDb.OleDbDataAdapter("select * From Pelamar",Module1.Koneksi)
DA.Fill(DS)Dim TBL As DataTable = DS.Tables(0)
Dim Baris As Integer = TBL.Rows.CountFor Baris = 0 To Baris - 1
Dim SqlInput As String = "insert into Nilai(Nomorlmr,Nama)values ('" &
TBL.Rows(Baris)(0) & "','" & TBL.Rows(Baris)(1) & "')"Dim SqlDetail As OleDbCommand = New OleDbCommand(SqlInput,
Conn)SqlDetail.ExecuteNonQuery()
Next BarisMsgBox("Transfer sukses")Me.Close()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information)End
End TryEnd Sub
End Class
13.5 Entri Nilai Testing
Data nilai dientri langsung dalam DataGrid, setelah nomor lamaran dan namapelamar ditransfer oleh program sebelumnya.
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 14/20
Created By Uus Rusmawan
206
Gambar 13.5 Hasil transfer pelamar
Jika data nilai dientri seperti gambar di bawah ini, maka perintah Update dilakukan
pada saat form di Close, tetapi perubahan terjadi saat tiap sel diisi. Lihat coding dibawahnya.
Gambar 13.6 Entri nilai testing
Coding :
Imports System.DataImports System.Data.OleDb
Public Class EntriNilai
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()InitializeComponent()End Sub
. . .
. . .#End Region
Private Sub EntriNilai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 15/20
Created By Uus Rusmawan
207
'tampilkan data nilaiDA = New OleDb.OleDbDataAdapter("Select * from Nilai", Module1.Koneksi)DS = New DataSetDA.Fill(DS, "Nilai")Dim TBL As DataTable = DS.Tables(0)Dim Jumlah As Byte
'hitung banyaknya baris (jumlah data)Jumlah = TBL.Rows.CountLabel2.Text = Jumlah'tabel di binding dalam DataGrid
DataGrid1.SetDataBinding(DS, "Nilai")End Sub
'perubahan dilakukan saat terjadi entri data di tiap sel
Private Sub Datagrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
TryDim TBL As DataTable = DS.Tables(0)
Dim baris As Byte
For baris = 0 To Label2.Text - 1If TBL.Rows.Count <> 0 Then
'Total dihasilkan dari penjumlahan test1 s/d text4TBL.Rows(baris)(6) = Val(TBL.Rows(baris)(2)) +
Val(TBL.Rows(baris)(3)) + Val(TBL.Rows(baris)(4)) + Val(TBL.Rows(baris)(5))'skor dihasilkan dari total/4
TBL.Rows(baris)(7) = Val(TBL.Rows(baris)(6)) / 4'ket dihasilkan dari skor, jika >80 Lulus, selain itu gagalIf Val(TBL.Rows(baris)(7) >= 80) Then
TBL.Rows(baris)(8) = "Lulus"Else
TBL.Rows(baris)(8) = "Gagal"End If
End If Next barisCatch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
EndEnd Try
End Sub
'Update dilakukan saat form di ClosePrivate Sub EntriNilai_Closed(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Closed
TryDim TBL As DataTable = DS.Tables(0)Dim baris As Byte
For baris = 0 To Label2.Text - 1DA = New OleDb.OleDbDataAdapter("select * from Nilai where
nomorlmr='" & TBL.Rows(baris)(0) & "'", Module1.Koneksi)Dim DTNilai As New DataTable
DTNilai.Clear()DA.Fill(DTNilai)
If TBL.Rows.Count <> 0 Then
'semua updating dilakukan pada nomor lamaran
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 16/20
Created By Uus Rusmawan
208
'yang terdapat di kolom 0Dim Sqledit1 As String = "Update Nilai set Test1='" &
TBL.Rows(baris)(2) & "',Test2 ='" & TBL.Rows(baris)(3) & "',Test3 ='" & TBL.Rows(baris)(4) & "',Test4 ='" & TBL.Rows(baris)(5) & "' where NomorLmr='" & TBL.Rows(baris)(0) & "'"
Dim Sqledit2 As OleDbCommand = New OleDbCommand(Sqledit1,
Conn)
Dim SqlTotal1 As String = "Update Nilai set Total='" & Val(TBL.Rows(baris)(6)) & "' where nomorlmr='" & TBL.Rows(baris)(0) & "'"
Dim SqlTotal2 As OleDbCommand = New OleDbCommand(SqlTotal1,Conn)
Dim SqlSkor1 As String = "Update Nilai set Skor='" &
Val(TBL.Rows(baris)(7)) & "' where nomorlmr='" & TBL.Rows(baris)(0) & "'"Dim SqlSkor2 As OleDbCommand = New OleDbCommand(SqlSkor1,
Conn)
Dim SqlKet1 As String = "Update Nilai set Ket= '" &
TBL.Rows(baris)(8) & "' where nomorlmr='" & TBL.Rows(baris)(0) & "'"Dim SqlKet2 As OleDbCommand = New OleDbCommand(SqlKet1,
Conn)
Conn.Open()'eksekusi semua perintah sql di atas
Sqledit2.ExecuteNonQuery()SqlTotal2.ExecuteNonQuery()SqlSkor2.ExecuteNonQuery()
SqlKet2.ExecuteNonQuery()
Conn.Close()End If
Next barisCatch ex As ExceptionMsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")End
End TryEnd Sub
End Class
13.6 Membuat Laporan
Pembuatan laporan terdiri dari laporan data pelamar, laporan jadwal testing, dan
laporan hasil seleksi (yang dapat dipilah-pilah). Untuk menghemat ruang, waktudan tenaga kita tidak perlu membuat form sebanyak jumlah laporan yang akanditampilkan, cukup dengan satu form dan satu Crystal Report Viewer tetapi
ditambah dengan tiga buah Button yang digunakan untuk memanggil tiga laporantersebut.Ikuti langkah-langkah pembuatan laporan di bab 10 tetapi properti ReportSourcedikosongkan, karena satu Crystal Report Viewer itu akan dimanfaatkan untuk
menampilkan tiga laporan. Buatlah form seperti gambar 13.7.
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 17/20
Created By Uus Rusmawan
209
Gambar 13.7 form untuk tiga laporan
Coding
Public Class Laporan
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()MyBase.New()InitializeComponent()
End Sub. . .. . .#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.CrystalReportViewer1.ReportSource = NothingMe.CrystalReportViewer1.RefreshReport()Me.CrystalReportViewer1.ReportSource = "C:\Pemrograman VB.NET\Program
7 Seleksi Access\bin\lappelamar.rpt"
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.CrystalReportViewer1.ReportSource = NothingMe.CrystalReportViewer1.RefreshReport()
Me.CrystalReportViewer1.ReportSource = "C:\Pemrograman VB.NET\Program7 Seleksi Access\bin\lapjadwal.rpt"End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.CrystalReportViewer1.ReportSource = NothingMe.CrystalReportViewer1.RefreshReport()
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 18/20
Created By Uus Rusmawan
210
Me.CrystalReportViewer1.ReportSource = "C:\Pemrograman VB.NET\Program7 Seleksi Access\bin\lapnilai.rpt"
End SubEnd Class
Laporan Data Pelamar
Buatlah laporan data pelamar dengan hasil seperti gambar di bawah ini
Gambar 13.8 Laporan data pelamar
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 19/20
Created By Uus Rusmawan
211
Laporan Jadwal Testig
Buatlah laporan jadwal testing seperti gambar 13.9.
Gambar 13.9 Laporan jadwal testing
Laporan ini dirancang dengan mengelompokan tanggalnya.
Laporan Hasil Testing
Buatlah sebuah laporan dengan hasil seperti gambar 13.10.
Gambar 13.10 Laporan hasil testing
Catatan :
5/12/2018 BAB 13 Penerimaan Karyawan - slidepdf.com
http://slidepdf.com/reader/full/bab-13-penerimaan-karyawan 20/20
Created By Uus Rusmawan
212
Jika Anda berinovasi dan berkreasi, sebenarnya file laporan ini dapat dimanipulasi,misalnya menampilkan palamar yang Lulus atau Gagal saja, menampilkan pelamardengan nilai tertinggi dan sebagainya, caranya cukup mudah yaitu denganSELECTIONFORMULA.