www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
APLIKASI UJIAN DIGITAL - VB.NET Peminat silakan hubungi : Email :
[email protected] Facebook :
[email protected] (Uus Rusmawan) Phone : 0812 8438 1118 Ujian digital ini biasa digunakan di perusahaan, sekolah atau kampus ketika akan menerima karyawan atau siswa (mahasiswa) baru. Ujian digital ini memberikan kemudahan dalam pengolahan data dibandingkan dengan ujian menggunakan bentuk soal berupa kertas.
4.1 Membuat Project Baru Tahapan pertama dalam pembuatan aplikasi ujian digital ini adalah membuat project baru dengan langkah sebagai berikut: 1.
Buka visual studio 2008
2.
Klik create project
3.
Tulis nama project “Aplikasi Ujian Digital”
4.
OK
Setelah membuat project baru dan menyimpannya di posisi tertentu, maka akan terbentuk folder project secara otomatis yang di dalamnya terdapat folder ... >> BIN>> DEBUG. Folder inilah yang akan dijadikan tempat menyimpan database.
4.2 Membuat Database Dan Tabel Lakukan langkah-langkah di bawah ini untuk membuat database dan tabel. 1.
Buka database access 2003
2.
Buatlah sebuah database yang baru kemudian tulis nama database “DTUjian.mdb” dan simpan di posisi DEBUG project anda
3.
Kemudian buatlah tabel user dengan cara klik menu Create >> Table >> Klik kanan table1 >> Design View dan tulis nama tabel
4.
Selanjutnya buatlah beberapa tabel dengan struktur berikut ini :
1
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Gambar 4.1 Tabel User
Tipe data dalam tabel user semuanya menggunakan text karena tidak ada data yang akan dihitung dalam kalkulasi matematika.
Gambar 4.2 Tabel siswa
Tipe data dalam tabel siswa semuanya menggunakan text karena tidak ada data yang akan dihitung dalam kalkulasi matematika.
Gambar 4.3 Tabel mata kuliah
Tipe data SKS dalam tabel mata kuliah menggunakan number, karena akan dihitung bobotnya setelah ada komponen nilai yang dientri. Selain itu semuanya menggunakan text.
2
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Gambar 4.4 Tabel soal
Field Nomor menggunakan tipe data number, hal ini digunakan untuk memudahkan pengurutan data.
Gambar 4.5 Tabel master jawaban
Secara umum tipe data tanggal dan waktu menggunakan date-time, tipe data yang akan digunakan dalam perhitungan menggunakan number, selain itu menggunakan tipe text.
Gambar 4.6 Tabel detail jawaban
3
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 4.3 Bentuk Relasi Tabel Bentuk relasi tabel dapat dilihat pada ilustrasi di bawah ini. Gambar ini diambil dari hasil relasi pada crystal report.
Gambar 4.7 Relasi tabel
4.4 Membuat Module Koneksi Database Tujuan utama membuat module ini adalah agar koneksi ke database cukup dibuat satu kali dan dapat digunakan berkali-kali pada semua form dalam project yang bersangkutan dengan hanya menuliskan nama fungsinya.
Gambar 4.8 Membuat module
Coding dalam module koneksi :
4
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Imports System.Data.OleDb Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared
Module Module1 Public Public Public Public Public
Conn As OleDbConnection DA As OleDbDataAdapter DS As DataSet CMD As OleDbCommand DR As OleDbDataReader
Public Public Public Public Public
cryRpt As New ReportDocument crtableLogoninfos As New TableLogOnInfos crtableLogoninfo As New TableLogOnInfo crConnectionInfo As New ConnectionInfo CrTables As Tables
Public Sub seting_laporan() With crConnectionInfo .ServerName = (Application.StartupPath.ToString & "\DTUjian.mdb") .DatabaseName = (Application.StartupPath.ToString & "\DTUjian.mdb") .UserID = "" .Password = "" End With CrTables = cryRpt.Database.Tables For Each CrTable In CrTables crtableLogoninfo = CrTable.LogOnInfo crtableLogoninfo.ConnectionInfo = crConnectionInfo CrTable.ApplyLogOnInfo(crtableLogoninfo) Next End Sub Public Sub Koneksi() Try Conn = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=DTUjian.mdb") Conn.Open() Catch ex As Exception MsgBox(ex.Message) End End Try End Sub End Module
jika penulisan coding anda mengalami error, maka anda harus tambahkan references dengan cara sebagai berkut : 1.
Klik menu project >> Pilih add reference
2.
Pilih crystalldecisions.crystalreport.engine >> ok
3.
Lakukan hal yang sama untuk crystalldecisions.share >> ok
5
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Gambar 4.9 Menambah reference
4.5 Form Login Form login digunakan sebagai sarana keamanan data dalam aplikasi agar tidak sembarang orang dapat menggunakan aplikasi tersebut.
Gambar 4.10 Form login
Logika program : 1.
Setelah mengisi nama user lalu menekan enter maka kursor pindah ke password
2.
Setelah mengisi password lalu menekan enter maka kursor pindah ke button Login
3.
Pada saat Login di klik maka cari nama_user dan pass_user di tabel user
4.
Jika data tidak ditemukan maka munculkan pesan “password salah”
5.
Jika data ditemukan, maka form login disembunyikan dan menu untuk admin ditampilkan
6
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 6.
Pada Menu utama panel1 tampilkan kode user, di panel2 tampilkan nama user, di panel3 tampilkan status user
Catatan : Sebelumnya menu utama harus dibuat terlebih dahulu dengan menambahkan MenuStrip dan StatusStrip. Pembahasan tentang hal dapat dilihat dalam video tutorial.
4.6 Form Menu Utama Admin Menu utama digunakan sebagai sarana integrasi untuk dapat memanggil semua form dalam project yang bersangkutan.
Gambar 4.11 Form menu utama
Coding dalam form menu utama: Public Class MenuUtama Private Sub UserToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) User.Show() End Sub
7
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub SiswaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) DataSiswa.Show() End Sub Private Sub MataKuliahToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) DataMataKuliah.Show() End Sub Private Sub SoalUjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) SoalUjian.Show() End Sub Private Sub UjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Ujian.Show() End Sub Private Sub MasterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) LaporanMaster.Show() End Sub Private Sub HasilUjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) LaporanNilai.Show() End Sub Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) If MessageBox.Show("Tutup aplikasi...?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then End End If End Sub Private Sub MenuUtama_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress If e.KeyChar = Chr(27) Then If MessageBox.Show("Tutup aplikasi...?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then End End If End If End Sub Private Sub MenuUtama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load GroupBox1.Visible = False If Panel3.Text = "ADMIN" Then GroupBox1.Visible = True End If End Sub Private Sub AdminToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Login.Show() End Sub Private Sub PesertaUjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) LoginPeserta.Show()
8
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click User.Show() End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click DataSiswa.Show() End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click DataMataKuliah.Show() End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click SoalUjian.Show() End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click Ujian.Show() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click LaporanMaster.Show() End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click LaporanNilai.Show() End Sub Private Sub Button13_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click Panel1.Text = "" Panel2.Text = "" Panel3.Text = "" Login.TextBox1.Clear() Login.TextBox2.Clear() LoginPeserta.TextBox1.Clear() LoginPeserta.TextBox2.Clear() GroupBox1.Visible = False GroupBox2.Visible = True End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click If MessageBox.Show("Tutup aplikasi...?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then End End If End Sub Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click ImportSoalUjian.Show() End Sub
9
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub Button24_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button24.Click Login.Show() End Sub Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click LoginPeserta.Show() End Sub Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click If MessageBox.Show("Tutup aplikasi...?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then End End If End Sub End Class
4.7 Form User Logika dan proses program dalam form User adalah sebagai berikut : 1.
Ketik kode user dengan pola USR01, jika kode ditemukan maka tampilkan nama, password dan statusnya di masing-masing texbox
2.
Jika datanya tidak ditemukan maka entrilah data yang baru
3.
Pada saat button simpan di klik maka, program akan mencari kode tersebut ke dalam tabel user
4.
Jika kodenya tidak ada maka data tersebut akan disimpan sebagai data baru (proses Insert)
5.
Jika kode tersebut ada maka data tersebut akan diedit (proses update)
6.
Proses edit dan hapus cukup dengan memilih data user dalam grid maka data akan masuk ke masingmasing textbox atau combo, kemudian lakukan proses edit atau hapus sesuai kebutuhan.
10
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Gambar 4.12 Form user
Dalam pembuatan sebuah form, sebaiknya menggunakan GroupBox agar mengatur posisi objek-objek di dalamnya lebih mudah.
4.8 Form siswa Logika dan proses program dalam form siswa adalah sebagai berikut : 1.
Pilih jurusan dalam combobox1
2.
NIM dan kelas akan muncul secara otomatis berdasarkan jurusannya
3.
Langkan selanjutnya mengisi nama siswa dan menyimpan data baru tersebut
4.
Proses edit dan hapus cukup dengan memilih data siswa dalam grid maka data akan masuk ke masingmasing textbox atau combo, kemudian lakukan proses edit atau hapus sesuai kebutuhan.
11
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Gambar 4.13 Form siswa
Coding : Imports System.Data.OleDb Public Class DataSiswa Private Sub DataSiswa_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBox1.Items.Add("MANAJEMEN INFORMATIKA") ComboBox1.Items.Add("MANAJEMEN ADMINISTRASI") ComboBox1.Items.Add("AKUNTANSI") ComboBox1.Items.Add("SEKRETARI") Call Tampilgrid() TextBox1.Enabled = False TextBox2.Enabled = False TextBox5.Enabled = False End Sub Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress If e.KeyChar = Chr(13) Then Call CariJumlahSiswa() Call Carikelas() TextBox3.Focus() End If End Sub
12
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Call CariJumlahSiswa() Call Carikelas() TextBox3.Focus() End Sub Sub Carikelas() If ComboBox1.Text = "MANAJEMEN INFORMATIKA" And Val(TextBox5.Text) <= 3 Then TextBox1.Text = "MI" & Format(Today, "yy") & "A" ElseIf ComboBox1.Text = "MANAJEMEN INFORMATIKA" And Val(TextBox5.Text) > 3 And Val(TextBox5.Text) <= 6 Then TextBox1.Text = "MI" & Format(Today, "yy") & "B" ElseIf ComboBox1.Text = "MANAJEMEN INFORMATIKA" And Val(TextBox5.Text) > 6 And Val(TextBox5.Text) <= 9 Then TextBox1.Text = "MI" & Format(Today, "yy") & "C" ElseIf ComboBox1.Text = "MANAJEMEN INFORMATIKA" And Val(TextBox5.Text) > 9 Then TextBox1.Text = "MI" & Format(Today, "yy") & "Z" ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" TextBox1.Text = "MA" & Format(Today, "yy") & ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" Val(TextBox5.Text) <= 6 Then TextBox1.Text = "MA" & Format(Today, "yy") & ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" Val(TextBox5.Text) <= 9 Then TextBox1.Text = "MA" & Format(Today, "yy") & ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" TextBox1.Text = "MA" & Format(Today, "yy") &
And Val(TextBox5.Text) <= 3 Then "A" And Val(TextBox5.Text) > 3 And "B" And Val(TextBox5.Text) > 6 And "C" And Val(TextBox5.Text) > 9 Then "Z"
ElseIf ComboBox1.Text = "AKUNTANSI" And Val(TextBox5.Text) <= 3 Then TextBox1.Text = "AK" & Format(Today, "yy") & "A" ElseIf ComboBox1.Text = "AKUNTANSI" And Val(TextBox5.Text) > 3 And Val(TextBox5.Text) <= 6 Then TextBox1.Text = "AK" & Format(Today, "yy") & "B" ElseIf ComboBox1.Text = "AKUNTANSI" And Val(TextBox5.Text) > 6 And Val(TextBox5.Text) <= 9 Then TextBox1.Text = "AK" & Format(Today, "yy") & "C" ElseIf ComboBox1.Text = "AKUNTANSI" And Val(TextBox5.Text) > 9 Then TextBox1.Text = "AK" & Format(Today, "yy") & "Z" ElseIf ComboBox1.Text = "SEKRETARI" And Val(TextBox5.Text) <= 3 Then TextBox1.Text = "SK" & Format(Today, "yy") & "A" ElseIf ComboBox1.Text = "SEKRETARI" And Val(TextBox5.Text) > 3 And Val(TextBox5.Text) <= 6 Then TextBox1.Text = "SK" & Format(Today, "yy") & "B" ElseIf ComboBox1.Text = "SEKRETARI" And Val(TextBox5.Text) > 6 And Val(TextBox5.Text) <= 9 Then TextBox1.Text = "SK" & Format(Today, "yy") & "C" ElseIf ComboBox1.Text = "SEKRETARI" And Val(TextBox5.Text) > 9 Then TextBox1.Text = "SK" & Format(Today, "yy") & "Z" End If Call CariNIM() End Sub Sub CariNIM() Call Koneksi() CMD = New OleDbCommand("select nim from tblsiswa where jurusan='" & ComboBox1.Text & "' order by nim desc", Conn) DR = CMD.ExecuteReader DR.Read() If Not DR.HasRows Then If ComboBox1.Text = "MANAJEMEN INFORMATIKA" Then TextBox2.Text = Format(Today, "yy") + "01" + "001"
13
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" Then TextBox2.Text = Format(Today, "yy") + "02" + "001" ElseIf ComboBox1.Text = "AKUNTANSI" Then TextBox2.Text = Format(Today, "yy") + "03" + "001" ElseIf ComboBox1.Text = "SEKRETARI" Then TextBox2.Text = Format(Today, "yy") + "04" + "001" End If Else Dim Hitung As String = Microsoft.VisualBasic.Right(DR.Item("NIM"), 3) + 1 If ComboBox1.Text = "MANAJEMEN INFORMATIKA" Then TextBox2.Text = Format(Today, "yy") + "01" + Microsoft.VisualBasic.Right("000" & Hitung, 3) ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" Then TextBox2.Text = Format(Today, "yy") + "02" + Microsoft.VisualBasic.Right("000" & Hitung, 3) ElseIf ComboBox1.Text = "AKUNTANSI" Then TextBox2.Text = Format(Today, "yy") + "03" + Microsoft.VisualBasic.Right("000" & Hitung, 3) ElseIf ComboBox1.Text = "SEKRETARI" Then TextBox2.Text = Format(Today, "yy") + "04" + Microsoft.VisualBasic.Right("000" & Hitung, 3) End If End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If ComboBox1.Text = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Then MsgBox("data belum lengkap") Exit Sub Else Call Koneksi() CMD = New OleDbCommand("select * from TBLSiswa where NIM='" & TextBox2.Text & "'", Conn) DR = CMD.ExecuteReader DR.Read() If Not DR.HasRows Then Call Koneksi() Dim simpan As String = "insert into TBLSiswa values('" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox1.Text & "','" & UCase(ComboBox1.Text) & "','" & TextBox2.Text & "')" CMD = New OleDbCommand(simpan, Conn) CMD.ExecuteNonQuery() Else Call Koneksi() Dim edit As String = "update TBLSiswa set Nama='" & TextBox3.Text & "',jurusan='" & UCase(ComboBox1.Text) & "',kelas='" & TextBox1.Text & "' where NIM='" & TextBox2.Text & "'" CMD = New OleDbCommand(edit, Conn) CMD.ExecuteNonQuery() End If Call Kosongkan() Call Tampilgrid() End If End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Call Kosongkan() End Sub
14
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If TextBox2.Text = "" Then MsgBox("NIM harus diisi dulu") TextBox2.Focus() Exit Sub Else If MessageBox.Show("hapus data ini...?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then Call Koneksi() Dim hapus As String = "delete from TBLSiswa where NIM='" & TextBox2.Text & "'" CMD = New OleDbCommand(hapus, Conn) CMD.ExecuteNonQuery() Call Kosongkan() Call Tampilgrid() Else Call Kosongkan() End If End If End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged Call Koneksi() CMD = New OleDbCommand("select * from TBLSiswa where Nama like '%" & TextBox4.Text & "%'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then Call Koneksi() DA = New OleDbDataAdapter("select * from TBLSiswa where Nama like '%" & TextBox4.Text & "%'", Conn) DS = New DataSet DA.Fill(DS) DGV.DataSource = DS.Tables(0) Else MsgBox("Nama user tidak ditemukan") End If End Sub End Class
15
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 4.9 Form Mata Kuliah Proses program dalam pengolahan data mata kuliah sama dengan data siswa.
Gambar 4.14 Form mata kuliah
4.10 Form Soal Ujian 4.10.1 Soal Ujian Model Pertama Bentuk form soal ujian terdiri dari dua model, yang pertama adalah dengan mengetik soal ujian satu persatu sesuai mata kuliahnya. Bentuk form model pertama adalah sebagai berikut :
16
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Gambar 4.15 Form soal ujian model pertama
Coding : Imports System.Data.OleDb Public Class SoalUjian Sub TampilKuliah() CMD = New oledbCommand("select * from TBLKuliah order by 1", CONN) DR = CMD.ExecuteReader ComboBox1.Items.Clear() Do While DR.Read ComboBox1.Items.Add(DR.Item("IDKuliah") & Space(2) & DR.Item("MataKuliah")) Loop End Sub Sub JumlahSoal() For jumlah As Integer = 5 To 50 Step 5 ComboBox2.Items.Add(jumlah) Next End Sub Private Sub SoalUjian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call Koneksi() Call TampilKuliah() Call JumlahSoal() End Sub Sub AturKolomBaru() DGV.Columns.Add("Pertanyaan", DGV.Columns(1).Width = 550 DGV.Columns.Add("A", "Jawaban DGV.Columns.Add("B", "Jawaban DGV.Columns.Add("C", "Jawaban DGV.Columns.Add("D", "Jawaban
"Pertanyaan") A") B") C") D")
: : : :
DGV.Columns(2).Width DGV.Columns(3).Width DGV.Columns(4).Width DGV.Columns(5).Width
17
= = = =
75 75 75 75
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi DGV.Columns.Add("Jawaban", "Kunci Jawaban") : DGV.Columns(6).Width = 75 DGV.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter End Sub Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged DGV.Columns.Clear() DGV.DataSource = Nothing DGV.Refresh() DGV.Columns.Add("Nomor", "Nomor") DGV.Columns(0).ReadOnly = True DGV.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DGV.Columns(0).Width = 50 For baris As Integer = 0 To Val(ComboBox2.Text) - 1 DGV.RowCount = DGV.RowCount + 1 DGV.Rows(baris).Cells(0).Value = DGV.RowCount - 1 Next Call AturKolomBaru() End Sub Sub AturKolomKetemu() DGV.Columns(0).Width = 50 'DGV.Columns(0).ReadOnly = True DGV.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DGV.Columns(1).Width = 550 DGV.Columns(2).Width = 75 DGV.Columns(3).Width = 75 DGV.Columns(4).Width = 75 DGV.Columns(5).Width = 75 DGV.Columns(6).Width = 75 DGV.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter For baris As Integer = 0 To DGV.RowCount - 2 DGV.Rows(baris).Cells(0).ReadOnly = True Next End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Call Koneksi() CMD = New oledbCommand("select Nomor,Pertanyaan,A,B,C,D,Jawaban from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 5) & "'", CONN) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then Call Koneksi() DA = New oledbDataAdapter("select Nomor,Pertanyaan,A,B,C,D,Jawaban from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 5) & "' order by 1 ", CONN) DS = New DataSet DA.Fill(DS) DGV.DataSource = DS.Tables(0) Call AturKolomKetemu() ComboBox2.Enabled = False Else DGV.Columns.Clear() ComboBox2.Enabled = True End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ComboBox1.Text = "" ComboBox2.Text = "" DGV.Columns.Clear()
18
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub
Private Sub DGV_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellEndEdit If e.ColumnIndex = 1 Then DGV.Rows(e.RowIndex).Cells(1).Value = UCase(DGV.Rows(e.RowIndex).Cells(1).Value) DGV.CurrentCell = DGV(2, DGV.CurrentCell.RowIndex) SendKeys.Send("{UP}") End If If e.ColumnIndex = 2 Then DGV.Rows(e.RowIndex).Cells(2).Value = UCase(DGV.Rows(e.RowIndex).Cells(2).Value) DGV.CurrentCell = DGV(3, DGV.CurrentCell.RowIndex) SendKeys.Send("{UP}") End If If e.ColumnIndex = 3 Then DGV.Rows(e.RowIndex).Cells(3).Value = UCase(DGV.Rows(e.RowIndex).Cells(3).Value) DGV.CurrentCell = DGV(4, DGV.CurrentCell.RowIndex) SendKeys.Send("{UP}") End If If e.ColumnIndex = 4 Then DGV.Rows(e.RowIndex).Cells(4).Value = UCase(DGV.Rows(e.RowIndex).Cells(4).Value) DGV.CurrentCell = DGV(5, DGV.CurrentCell.RowIndex) SendKeys.Send("{UP}") End If If e.ColumnIndex = 5 Then DGV.Rows(e.RowIndex).Cells(5).Value = UCase(DGV.Rows(e.RowIndex).Cells(5).Value) DGV.CurrentCell = DGV(6, DGV.CurrentCell.RowIndex) SendKeys.Send("{UP}") End If If e.ColumnIndex = 6 Then DGV.Rows(e.RowIndex).Cells(6).Value = UCase(DGV.Rows(e.RowIndex).Cells(6).Value) DGV.CurrentCell = DGV(1, DGV.CurrentCell.RowIndex) End If End Sub
Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click End Sub End Class
4.10.2 Soal Ujian Model Kedua Bentuk form soal ujian model kedua adalah dengan cara import data dari excel. Cara ini dianggap lebih mudah dan lebih efektif dibandingkan dengan cara pertama.
19
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Gambar 4.16 Form soal ujian model pertama
Coding : Imports System.Data.OleDb Public Class ImportSoalUjian 'membuat definisi variabel untuk koneksi yang baru ke data excel Dim connexcel As OleDbConnection Dim daexcel As OleDbDataAdapter Dim dsexcel As DataSet Dim cmdexcel As OleDbCommand Dim drexcel As OleDbDataReader Sub excelkoneksi() 'string koneksi ke data excel connexcel = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & Label1.Text & "';Extended Properties=""Excel 12.0 Xml;HDR=YES"";") connexcel.Open() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click OpenFileDialog1.Filter = "(*.xls)|*.xls|(*.xlsx)|*.xlsx|All files (*.*)|*.*" OpenFileDialog1.ShowDialog() Label1.Text = OpenFileDialog1.FileName Call excelkoneksi()
20
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Dim dtSheets As DataTable = connexcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing) Dim listSheet As New List(Of String) Dim drSheet As DataRow 'menambahan nama-nama sheet excel agar dianggap sebagai tabel For Each drSheet In dtSheets.Rows listSheet.Add(drSheet("TABLE_NAME")) Next 'menampilkan nama-nama worksheet dalam file excel For Each sheet As String In listSheet ListBox1.Items.Add(sheet) Next End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Label1.Text = "" ListBox1.Items.Clear() DGV.Columns.Clear() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Close() End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged Call excelkoneksi() 'menampilkan isi worksheet excel yang dipilih dalam listbox1 ke dalam grid daexcel = New OleDbDataAdapter("select * from [" & ListBox1.Text & "]", connexcel) dsexcel = New DataSet daexcel.Fill(dsexcel) DGV.DataSource = dsexcel.Tables(0) DGV.ReadOnly = True End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If ListBox1.Text = "" Then MsgBox("pilih soal ujian dalam listbox") Exit Sub End If For baris As Integer = 0 To DGV.RowCount - 2 Call Koneksi() CMD = New OleDbCommand("select idkuliah from Tblsoal where idkuliah='" & DGV.Rows(baris).Cells(0).Value & "'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then 'data yang sudah ada dihapus terlebih dahulu Dim hapus As String = "delete * from Tblsoal where idkuliah='" & DGV.Rows(baris).Cells(0).Value & "'" CMD = New OleDbCommand(hapus, Conn) CMD.ExecuteNonQuery() End If Next 'data dari excel diimport ke dalam tabel soal ujian For baris As Integer = 0 To DGV.RowCount - 2 Dim simpan As String = "insert into Tblsoal values('" & DGV.Rows(baris).Cells(0).Value & "','" & DGV.Rows(baris).Cells(1).Value & "','" &
21
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi DGV.Rows(baris).Cells(2).Value & "','" & DGV.Rows(baris).Cells(3).Value & "','" & DGV.Rows(baris).Cells(4).Value & "','" & DGV.Rows(baris).Cells(5).Value & "','" & DGV.Rows(baris).Cells(6).Value & "','" & DGV.Rows(baris).Cells(7).Value & "')" CMD = New OleDbCommand(simpan, Conn) CMD.ExecuteNonQuery() Next DGV.Columns.Clear() End Sub End Class
4.11 Form Ujian Digital Logika dan proses program dalam ujian digital adalah sebagai berikut : 1.
Peserta melakukan login terlebih dahulu ke dalam sistem
2.
Peserta memilih soal ujian (mata kuliah)
3.
Memilih nomor soal dalam list sebelah kiri
4.
Membaca soal ujian dan memberikan jawaban pada radio button yang telah disediakan
5.
Klik button jawab, maka hasil jawaban akan muncul di dalam grid sebelah kanan
6.
Butir soal ujian yang sudah dijawab tidak dapat diulang kembali
7.
Setelah selesai mengerjakan soal ujian peserta memilih button “selesai” maka akan muncul hasil akumulasi jawaban
Gambar 4.17 Form transaksi ujian digital
22
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Coding : Imports System.Data.OleDb Public Class Ujian Private Sub Ujian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label11.Text = Format(Today, "MM/dd/yyyy") Call Koneksi() 'tampilkan mata kuliah yang cocok dengan hasil login yang tercantum di panel1 menu utama (sesuai jurusan) CMD = New oledbCommand("select * from tblkuliah WHERE LEFT(IDKULIAH,1)='" & Trim(Microsoft.VisualBasic.Mid(MenuUtama.Panel1.Text, 4, 1)) & "'", CONN) DR = CMD.ExecuteReader ComboBox1.Items.Clear() Do While DR.Read ComboBox1.Items.Add(DR.Item("Idkuliah") & Space(5) & DR.Item("matakuliah")) Loop Label14.Text = 0 Label15.Text = 0 Label16.Text = 0 Label17.Text = 0 Label18.Text = 0 Label19.Text = "-" DGV.ReadOnly = True DGV.Rows.Clear() End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 'cari data NIM yang pernah melakukan ujian di mata kuliah yang dipilih di combobox1 CMD = New OleDbCommand("select * from tblmasterjawaban where nim='" & Label23.Text & "' and idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 3) & "'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then 'jika sudah ada maka tampilkan pesan MsgBox("Anda sudah mengikuti test mata kuliah ini " & Chr(13) & _ "Tanggal :" & Format(DR.Item("tanggal"), "dd-MMM-yyyy") & " " & Chr(13) & _ "Mulai :" & Format(DR.Item("Mulai"), "hh:mm:ss") & " " & vbCrLf & _ "Selesai :" & Format(DR.Item("selesai"), "hh:mm:ss") & " " & vbCrLf & _ "Jml Soal :" & DR.Item("jmlsoal") & " " & vbCrLf & _ "Dijawab :" & DR.Item("dijawab") & " " & vbCrLf & _ "Jml Benar :" & DR.Item("benar") & " " & vbCrLf & _ "Jml Salah :" & DR.Item("salah") & " " & vbCrLf & _ "Keterangan :" & DR.Item("keterangan") & " ") Exit Sub End If 'jika belum ada maka tampilkan nomor soal ujiannya CMD = New OleDbCommand("select nomor from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 3) & "' order by 1", Conn) DR = CMD.ExecuteReader ListBox1.Items.Clear() Do While DR.Read ListBox1.Items.Add(DR.Item("Nomor")) Loop ListBox1.Focus() End Sub
23
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged Call BersihkanJawaban() 'tampilkan pertanyaan soal ujian dalam textbox1 sesuai dengan nomor soal yang dipilih CMD = New OleDbCommand("select * from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 3) & "' and VAL(nomor)='" & Val(ListBox1.Text) & "'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then TextBox1.Text = DR.Item("pertanyaan") RadioButton1.Text = DR.Item("A") RadioButton2.Text = DR.Item("B") RadioButton3.Text = DR.Item("C") RadioButton4.Text = DR.Item("D") End If End Sub Sub BersihkanJawaban() RadioButton1.Checked RadioButton2.Checked RadioButton3.Checked RadioButton4.Checked End Sub
= = = =
False False False False
Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.Click 'jika jawaban A dipilih maka lakukan proses penyesuaian jawaban apakah benar atau salah CMD = New OleDbCommand("select * from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 3) & "' and VAL(nomor)='" & ListBox1.Text & "'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then Label20.Text = "A" Label21.Text = DR.Item("Jawaban") If Label20.Text = Label21.Text Then Label22.Text = "BENAR" Else Label22.Text = "SALAH" End If End Sub Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.Click 'jika jawaban B dipilih maka lakukan proses penyesuaian jawaban apakah benar atau salah CMD = New OleDbCommand("select * from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 3) & "' and VAL(nomor)='" & ListBox1.Text & "'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then Label20.Text = "B" Label21.Text = DR.Item("Jawaban") If Label20.Text = Label21.Text Then Label22.Text = "BENAR" Else Label22.Text = "SALAH" End If End Sub Private Sub RadioButton3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton3.Click 'jika jawaban C dipilih maka lakukan proses penyesuaian jawaban apakah benar atau salah CMD = New OleDbCommand("select * from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 3) & "' and VAL(nomor)='" & ListBox1.Text & "'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then
24
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Label20.Text = "C" Label21.Text = DR.Item("Jawaban") If Label20.Text = Label21.Text Then Label22.Text = "BENAR" Else Label22.Text = "SALAH" End If End Sub Private Sub RadioButton4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton4.Click 'jika jawaban D dipilih maka lakukan proses penyesuaian jawaban apakah benar atau salah CMD = New OleDbCommand("select * from tblsoal where idkuliah='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 3) & "' and VAL(nomor)='" & ListBox1.Text & "'", Conn) DR = CMD.ExecuteReader DR.Read() If DR.HasRows Then Label20.Text = "D" Label21.Text = DR.Item("Jawaban") If Label20.Text = Label21.Text Then Label22.Text = "BENAR" Else Label22.Text = "SALAH" End If End Sub
Private Sub BTNJawab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNJawab.Click 'jika mata kuliah belum dipilih If ComboBox1.Text = "" Then MsgBox("Anda belum memilih mata kuliah") Exit Sub End If 'jika belum memeilih nomor soal If ListBox1.Text = "" Or TextBox1.Text = "" Then MsgBox("Anda belum memilih nomor soal") Exit Sub End If 'jika belum memilih jawaban If RadioButton1.Checked = False And RadioButton2.Checked = False And RadioButton3.Checked = False And RadioButton4.Checked = False Then MsgBox("Anda belum memilih jawaban") Exit Sub End If 'jika nomor soal tersebut sudah dijawab For BARIS As Integer = 0 To DGV.RowCount - 1 If ListBox1.Text = DGV.Rows(BARIS).Cells(0).Value Then MsgBox("Nomor ini sudah dijawab") Exit Sub End If Next 'jawaban akan tampil di dalam grid sebelah kanan DGV.Rows.Add(ListBox1.Text, Label20.Text, Label21.Text, Label22.Text) ListBox1.Focus() ListBox1.SelectedItem = ListBox1.SelectedItem + 1 End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label12.Text = TimeOfDay Timer1.Enabled = False End Sub
25
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Label13.Text = TimeOfDay End Sub 'membuat fungsi untuk menghitung jumlah jawaban yang benar Sub JumlahBenar() Dim hitung As Integer = 0 For baris As Integer = 0 To DGV.RowCount - 2 If DGV.Rows(baris).Cells(3).Value = "BENAR" Then hitung = hitung + 1 Label17.Text = hitung End If Next End Sub 'membuat fungsi untuk menghitung jumlah jawaban yang benar Sub JumlahSalah() Dim hitung As Integer = 0 For baris As Integer = 0 To DGV.RowCount - 2 If DGV.Rows(baris).Cells(3).Value = "SALAH" Then hitung = hitung + 1 Label18.Text = hitung End If Next End Sub Private Sub BTNTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNTutup.Click ComboBox1.Text = "" ListBox1.Items.Clear() TextBox1.Clear() DGV.Rows.Clear() Me.Close() End Sub Private Sub BTNPetunjuk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNPetunjuk.Click MsgBox("1. Pilih Materi di combo paling atas" & Chr(13) & _ "2. Pilih Nomor Soal dalam list di sebelah kiri" & Chr(13) & _ "3. Pilih Jawaban pada option button" & vbCrLf & _ "4. Klik Jawab" & vbCrLf & _ "5. Lanjutkan ke soal nomor Berikutnya") End Sub Private Sub BTNBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNBatal.Click ComboBox1.Text = "" ListBox1.Items.Clear() TextBox1.Clear() DGV.Rows.Clear() Call BersihkanJawaban() End Sub End Class
26
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 4.12 Laporan Master Tahapan pembuatan laporan telah dibahas pada bab sebelumnya, untuk itu silakan dipelajari kembali.
4.12.1 Laporan Data Siswa Sebelum membuat laporan master, buatlah sebuah form dengan bentuk seperti gambar di bawah ini.
Gambar 4.18 Laporan data siswa Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CRV.ReportSource = Nothing cryRpt.Load("LAPORAN siswa.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged CRV.ReportSource = Nothing CRV.SelectionFormula = "{tblsiswa.kelas}='" & ComboBox1.Text & "'" cryRpt.Load("LAPORAN siswa.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
27
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged CRV.ReportSource = Nothing CRV.SelectionFormula = "{tblsiswa.nama}='" & ComboBox2.Text & "'" cryRpt.Load("LAPORAN siswa.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
4.12.2 Laporan Data Mata Kuliah Laporan master data mata kuliah berada satu form dengan laporan master lainnya.
Gambar 4.19 Laporan data mata kuliah Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click CRV.ReportSource = Nothing cryRpt.Load("LAPORAN mtkuliah.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub Private Sub ComboBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged CRV.ReportSource = Nothing CRV.SelectionFormula = "{tblkuliah.matakuliah} like '*" & ComboBox3.Text & "*'"
28
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi cryRpt.Load("LAPORAN mtkuliah.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub Private Sub ComboBox4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox4.SelectedIndexChanged CRV.ReportSource = Nothing CRV.SelectionFormula = "{tblkuliah.jurusan} like '*" & ComboBox4.Text & "*'" cryRpt.Load("LAPORAN mtkuliah.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
4.12.1 Laporan Data Soal Ujian Laporan master data soal ujian berada satu form dengan laporan master lainnya.
Gambar 4.20 Laporan data soal ujian Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click CRV.ReportSource = Nothing cryRpt.Load("LAPORAN soal ujian.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
29
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub ComboBox5_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox5.SelectedIndexChanged CRV.ReportSource = Nothing CRV.SelectionFormula = "{tblkuliah.matakuliah} like '*" & ComboBox5.Text & "*'" cryRpt.Load("LAPORAN soal ujian.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
4.13 Laporan Hasil Ujian digital Tahapan pembuatan laporan dimulai dengan mendesain bentuk-bentuk laporan yang diperlukan, silakan gunakan Ms. Word atau Ms. Excel sebagai model awalnya atau bahkan dengan coretan tangan pada lembaran kertas kosong, kemudian masing-masing laporan tersebut diprediksi tabel apa yang terlibat di dalamnya. Setelah desain selesai dan prediksi tabel-tabel yang diperlukan diketahui, maka mulailah membuat laporan dengan Crystal report.
4.13.1 Laporan Hasil Ujian Per Kelas Pembuatan laporan hasil ujian diawali dengan membuat form seperti gambar di bawah ini dan membuat laporan di crystal report.
Gambar 4.21 Laporan ujian per kelas dan mata kuliah
30
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Imports System.Data.OleDb Public Class LaporanNilai Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CRV.ReportSource = Nothing CRV.SelectionFormula = "{tblsiswa.kelas}='" & ComboBox1.Text & "' and {tblkuliah.matakuliah}='" & ComboBox2.Text & "'" cryRpt.Load("LAPORAN per kelas.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
4.13.2 Laporan Hasil Ujian Per Nim Laporan hasil ujian per nim (siswa) dapat dilihat pada form di bawah ini.
Gambar 4.22 Laporan hasil ujian per nim Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click CRV.ReportSource = Nothing CRV.SelectionFormula = "{tblmasterjawaban.nim}='" & ComboBox3.Text & "'" cryRpt.Load("LAPORAN per nim.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
31