Anda di halaman 1dari 20

Created By Uus Rusmawan

BAB 13 APLIKASI PENERIMAAN KARYAWAN Dengan beberapa pertimbangan akhirnya penulis memutuskan membuat program penerimaan karyawan ini dengan database Access. Semula program ini dibuat dengan 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 pelamar 2. Mentransfer jadwal ujian 3. Membuat laporan jadwal ujian 4. Mentransfer data pelamar ke tabel nilai hanya nomor lamaran dan namanya saja 5. Mengentri nilai hasil ujian 6. Membuat laporan hasil ujian 13.1 Rancangan Database Dengan menggunakan database Access, maka disini kami tidak perlu lagi menjelaskan langkah-langkah pembuatannya. Silakan dibuat sendiri dengan panduan tabel-tabel berikut ini. Tabel Pelamar Nama Field NomorLmr Nama Alamat Telepon Type Text Text Text Text Size 4 30 30 15 Keterangan Field index

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 testing yang harus diikuti setelah lamaran diseleksi. Struktur tabelnya adalah sebagai berikut: Nama Field NomorLmr Tanggal Tempat Grup Test1 Test2 Test3 Test4 Type Text Date Text Text Numeric Numeric Numeric Numeric Size 4 8 20 2 Integer Integer Integer Integer Keterangan Field index

193

Created By Uus Rusmawan

Tabel Nilai Tabel ini berfungsi untuk menyimpan data hasil testing baik yang dinyatakan lulus ataupun gagal dengan rincian struktur sebagai berikut: Nama Field NomorLmr Nama Test1 Test2 Test3 Test4 Total Skor Ket Type Text Text Numeric Numeric Numeric Numeric Numeric Numeric Text Size 4 30 Integer Integer Integer Integer Integer Integer 10 Keterangan Filed index

Bekerja Dengan VB .NET Setelah selesai membuat database dan tabel-tabel yang diperlukan, langkah selanjutnya adalah membuat beberapa form yang diperlukan untuk membuat program 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 dapat mengakomodasi seluruh field yang strukturnya telah dirancang sebelumnya.

Gambar 13.1 Pengolahan data pelamar Untuk mempercepat akses ke database, buatlah sebuah module. Caranya klik menu Project > Add Module > Klik Open. Kemudian ketiklah Coding di bawah ini.

194

Created By Uus Rusmawan

Module Module1 Public Function Koneksi() As OleDb.OleDbConnection Dim Conn As OleDb.OleDbConnection Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath.ToString & "\DBSeleksi.mdb") Return Conn Conn = Nothing End Function Public DA As OleDb.OleDbDataAdapter Public DT As New DataTable Public DS As New DataSet Public Cmd As OleDb.OleDbCommand Public strSQL As String Public Conn = Module1.Koneksi End Module Entrilah beberapa pelamar (untuk contoh) sehingga menghasilkan data pelamar seperti tabel berikut : NomorLmr 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 Coding : Imports System.Data Imports System.Data.OleDb Public Class Pelamar Inherits 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 otomatis Sub Otomatis() 195 Nama Kusuma Hati Nita Merlina Dewi Yuliandari Moh. Wahyudi Dedi Supriyadi Panca Hariwan Maslahat Giri Priono Retno Dwi Gustini Turisnawati Alamat Jl Priok No 98 Jl Kebagusan No 76 Jl Cikarang No 65 Jl Cengkareng No 24 Jl Menteng No 45 Jl Kemuning No 76 Jl Ps Minggu No 765 Jl Harapan Indah No 81 Jl Harum Manis No 72 Jl Cilacap No 76 Telepon 2199887766 2198765435 2678276354 2182736432 2122334455 2188227733 2188227799 2199228800 2188220022 2358866551

Created By Uus Rusmawan

Dim Urutan As String Dim Hitung As Long Dim DS As New DataSet 'buka tabel pelamar urutkan secara descending DA = 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 0001 If TBL.Rows.Count = 0 Then Urutan = "0001" Else 'jika sudah ada data, maka DA = New OleDb.OleDbDataAdapter("Select NomorLmr from Pelamar order by NomorLmr desc", Module1.Koneksi) Dim DTNomor As New DataTable DTNomor.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)) + 1 Urutan = 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.Load TextBox1.MaxLength = 4 TextBox2.MaxLength = 30 TextBox3.MaxLength = 30 TextBox4.MaxLength = 15 KondisiAwal() TampilGrid() End Sub Sub TampilGrid() DA = New OleDb.OleDbDataAdapter("select * From Pelamar", Module1.Koneksi) Dim DTPelamar As New DataTable DTPelamar.Clear() DA.Fill(DTPelamar) Me.DataGrid1.DataSource = DTPelamar Me.DataGrid1.ReadOnly = True End Sub Sub Gelap() TextBox1.Enabled TextBox2.Enabled TextBox3.Enabled TextBox4.Enabled End Sub Sub Terang() 196

= = = =

False False False False

Created By Uus Rusmawan

TextBox1.Enabled TextBox2.Enabled TextBox3.Enabled TextBox4.Enabled End Sub Sub Kosongkan() TextBox1.Text TextBox2.Text TextBox3.Text TextBox4.Text End Sub

= = = =

True True True True

= = = =

"" "" "" ""

Sub KondisiAwal() TampilGrid() Gelap() Kosongkan() Button1.Text = "&Input" Button2.Text = "&Edit" Button3.Text = "&Hapus" Button4.Text = "&Tutup" Button1.Enabled = True Button2.Enabled = True Button3.Enabled = True Button4.Enabled = True End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Button1.Text = "&Input" Then Button1.Text = "&Simpan" Button2.Enabled = False Button3.Enabled = False Button4.Text = "&Batal" Terang() Call Otomatis() TextBox1.Enabled = False TextBox2.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 = "" Then TextBox2.Focus() ElseIf TextBox3.Text = "" Then TextBox3.Focus() ElseIf TextBox4.Text = "" Then TextBox4.Focus() End If Else Try Call Module1.Koneksi() 197

Created By Uus Rusmawan

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 Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian") End Try End 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" Then Button2.Text = "&Simpan" Button1.Enabled = False Button3.Enabled = False Button4.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 = "" Then TextBox2.Focus() ElseIf TextBox3.Text = "" Then TextBox3.Focus() ElseIf TextBox4.Text = "" Then TextBox4.Focus() End If Else Try 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 Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian") End Try 198

Created By Uus Rusmawan

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" Then Button1.Enabled = False Button2.Enabled = False Button3.Text = "&Hapus" Button4.Text = "&Batal" TextBox1.Enabled = True TextBox1.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 DataSet DA = 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) Then TextBox1.Text = UCase(TextBox1.Text) If Button1.Text = "&Simpan" Then Dim DS As New DataSet DA = 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 199

Created By Uus Rusmawan

TextBox2.Focus() End If ElseIf Button2.Text = "&Simpan" Then Dim DS As New DataSet DA = 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 = False TextBox2.Focus() Exit Sub Else MessageBox.Show("Kode Pelamar tidak ada, Coba Kode Lain") TextBox1.Focus() Kosongkan() End If ElseIf Button3.Text = "&Hapus" Then Dim DS As New DataSet DA = 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.YesNo Dim 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 Else MessageBox.Show("Data tidak ditemukan") TextBox1.Focus() 200

Created By Uus Rusmawan

Exit Sub End 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) Then TextBox2.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.KeyPress If 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 saja terdapat 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 daya tampung tempat testing. 2. Tiap kelompok berbeda tanggal testing, selisihnya 10 hari dari tanggal hari ini 3. Proses entri jadwal ujian tidak perlu dilakukan secara manual dengan cara menginput data satu persatu, dapat dibayangkan jika jumlah pelamar 201

Created By Uus Rusmawan

mencapai ribuan orang, maka pekerjaan entri jadwal ujian untuk masingmasing peserta menjadi tidak efektif dan efisien. Dalam kasus ini proses entri akan 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.Data Imports 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 Try Call 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 pelamar DA = 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-ulang For Baris = 0 To Baris - 1 Dim grup As Byte Dim tgl As Date 202

Created By Uus Rusmawan

Dim tempat, Test1, Test2, Test3, Test4 As String 'jika jumlah data <5 maka termasuk grup 1 dan 'tanggal testing 10 hari dari tanggal hari ini If 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 = 2 tgl = DateAdd(DateInterval.Day, 11, Today) ElseIf Baris > 9 Then grup = 3 tgl = 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 atas Dim 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 Exception MsgBox("Transfer gagal, perbaiki programnya..", MsgBoxStyle.Information) End End Try panggil form jadwaltesting Dim Form As New JadwalTesting Form.TopMost() = True Form.ShowDialog() Form.Dispose() End Sub End 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 JadwalTesting Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() InitializeComponent() End Sub 203

Created By Uus Rusmawan

... ... #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 DataTable DTJadwal.Clear() DA.Fill(DTJadwal) Me.DataGrid1.DataSource = DTJadwal Me.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 yang sangat banyak tidak mungkin dientri satu persatu secara manual. Buatlah form seperti gambar 13.4.

Gambar 13.4 Transfer data pelamar ke tabel nilai Coding : Imports System.Data Imports System.Data.OleDb

204

Created By Uus Rusmawan

Public Class TransferPelamar 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 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.Count For 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 Baris MsgBox("Transfer sukses") Me.Close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information) End End Try End Sub End Class 13.5 Entri Nilai Testing Data nilai dientri langsung dalam DataGrid, setelah nomor lamaran dan nama pelamar ditransfer oleh program sebelumnya.

205

Created By Uus Rusmawan

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 di bawahnya.

Gambar 13.6 Entri nilai testing Coding : Imports System.Data Imports 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

206

Created By Uus Rusmawan

'tampilkan data nilai DA = New OleDb.OleDbDataAdapter("Select * from Nilai", Module1.Koneksi) DS = New DataSet DA.Fill(DS, "Nilai") Dim TBL As DataTable = DS.Tables(0) Dim Jumlah As Byte 'hitung banyaknya baris (jumlah data) Jumlah = TBL.Rows.Count Label2.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 Try Dim TBL As DataTable = DS.Tables(0) Dim baris As Byte For baris = 0 To Label2.Text - 1 If TBL.Rows.Count <> 0 Then 'Total dihasilkan dari penjumlahan test1 s/d text4 TBL.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 gagal If Val(TBL.Rows(baris)(7) >= 80) Then TBL.Rows(baris)(8) = "Lulus" Else TBL.Rows(baris)(8) = "Gagal" End If End If Next baris Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian") End End Try End Sub 'Update dilakukan saat form di Close Private Sub EntriNilai_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed Try Dim TBL As DataTable = DS.Tables(0) Dim baris As Byte For baris = 0 To Label2.Text - 1 DA = 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 207

Created By Uus Rusmawan

'yang terdapat di kolom 0 Dim 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 baris Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian") End End Try End 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, waktu dan tenaga kita tidak perlu membuat form sebanyak jumlah laporan yang akan ditampilkan, cukup dengan satu form dan satu Crystal Report Viewer tetapi ditambah dengan tiga buah Button yang digunakan untuk memanggil tiga laporan tersebut. Ikuti langkah-langkah pembuatan laporan di bab 10 tetapi properti ReportSource dikosongkan, karena satu Crystal Report Viewer itu akan dimanfaatkan untuk menampilkan tiga laporan. Buatlah form seperti gambar 13.7.

208

Created By Uus Rusmawan

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 = Nothing Me.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 = Nothing Me.CrystalReportViewer1.RefreshReport() Me.CrystalReportViewer1.ReportSource = "C:\Pemrograman VB.NET\Program 7 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 = Nothing Me.CrystalReportViewer1.RefreshReport()

209

Created By Uus Rusmawan

Me.CrystalReportViewer1.ReportSource = "C:\Pemrograman VB.NET\Program 7 Seleksi Access\bin\lapnilai.rpt" End Sub End Class

Laporan Data Pelamar Buatlah laporan data pelamar dengan hasil seperti gambar di bawah ini

Gambar 13.8 Laporan data pelamar

210

Created By Uus Rusmawan

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 : 211

Created By Uus Rusmawan

Jika Anda berinovasi dan berkreasi, sebenarnya file laporan ini dapat dimanipulasi, misalnya menampilkan palamar yang Lulus atau Gagal saja, menampilkan pelamar dengan nilai tertinggi dan sebagainya, caranya cukup mudah yaitu dengan SELECTIONFORMULA.

212

Anda mungkin juga menyukai