BAB 13 Penerimaan Karyawan

Document Sample
BAB 13 Penerimaan Karyawan Powered By Docstoc
					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        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 testing
yang harus diikuti setelah lamaran diseleksi. Struktur tabelnya adalah sebagai
berikut:

 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



                                                                           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          Type         Size        Keterangan
NomorLmr             Text           4         Filed index
Nama                 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 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             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       2188220022
    0010      Turisnawati           Jl Cilacap No 76           2358866551

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
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   =   False
    TextBox2.Enabled   =   False
    TextBox3.Enabled   =   False
    TextBox4.Enabled   =   False
  End Sub

  Sub Terang()

196
Created By Uus Rusmawan



    TextBox1.Enabled     =   True
    TextBox2.Enabled     =   True
    TextBox3.Enabled     =   True
    TextBox4.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 = 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 masing-
      masing 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

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:107
posted:11/20/2012
language:Malay
pages:20