dokumen-dokumen yang mirip















Gratis Tutorial Pemograman Visual Basic MEMBUAT CRUD VISUAL BASIC.NET DATABASE MYSQL


Source Code Test Program Dengan VB Net

PEMROGRAMAN VB.NET. Koneksi Ke Database

BAB IV IMPLEMENTASI DAN PENGUJIAN

Sistem Informasi Penggajian Karyawan Berbasis Desktop

Program Database Penjualan Barang

PEMROGRAMAN VB.NET. Sintaks Pada Class

P11 & 12 Operasi DML pada Form Aplikasi (Project Aplikasi Rumah Sakit)

Budi permana, S.Kom

PENDAHULUAN. A. Membuat Database dalam SQL SERVER. 1. Klik Kanan pada databases lalu pilih new database

Cara Koneksi Database


Berikut. langkahnya: Pastikan. anda sudah. - Klik File. Berikut. - Save All


LAMPIRAN A. Private Sub Menu_utama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

BAB II MICROSOFT VISUAL STUDIO

BAB VIII PENGENALAN DATABASE

PENGKODEAN AKSES FORM SISTEM USER

Budi Permana, S.Kom Pendahuluan. Lisensi Dokumen:

BAB IV IMPLEMENTASI DAN PENGUJIAN

Materi Pemrograman Database 1 Didik Nugroho,S.Kom,M.kom MODUL III MEMBUAT FORM MENYIMPAN PROSES PEMBELIAN

HOW TO CALL A REPORT IN VB.NET

Aplikasi Login Dengan Database dan Tanpa Database Pada Visual Basic 2010

BAB IV IMPLEMENTASI DAN PENGUJIAN. Dalam pembuatan program ini penulis menggunakan Visual Basic. Net

BAB IV IMPLEMENTASI DAN PENGUJIAN

SISTEM INFORMASI AKUNTANSI PERSEDIAAN BARANG DENGAN MENGGUNAKAN METODE FIFO PADA PT.WINDU PERSADA CARGO

Menjelaskan variabel aksi sebagai data string nilai,hasil dan simpan sebagai data double.

2. MySql (menggunakan namespace ODBC atau mysql client) Command + DataReader. Textbox Label Combobox Listbox. Cara mengambil dan menampilkan database

Aplikasi CRUD dengan Visual Basic 2012 [APLIKASI CRUD DENGAN VISUAL BASIC 2012 & MYSQL] September 18, & MySQL. Bahtiar Imran

LISTING PROGRAM. Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Disini kita akan bahas cara koneksi antara Database MySQL dengan VB.Net 2010, semoga dengan ini E-book ini bisa ingat sepanjang jaman ya ^ ^


Pertemuan ke-3. Statemen input/output Struktur Kontrol Keputusan

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA


BAB Memulai VB.Net

PENGGUNAAN DATA DAN VARIABEL KOMPUTER APLIKASI AKUNTANSI V PRODI AKUNTANSI - UNIKOM


Modul x login dan Periode

PEMROGRAMAN INPUT JURNAL TRANSAKSI

KONEKSI DATABASE SQL DENGAN VB.NET

LAMPIRAN SKRIPSI. A. Lampiran Capture Program. Gambar L.1 Tampilan Layar Menu Home. Gambar L.2 Tampilan Layar Menu Login

Irvan Lewenusa

Belajar Cepat Membuat Aplikasi Menggunakan Visual Basic.Net + DB MYSQL

Tutorial Untuk Membuat Program Database Mahasiswa Teknik Industri Dengan Menggunakan Koneksi VB.NET Dengan Microsoft Access

MODUL 2 SELECTION & LOOPING PADA FORM

Bab 4. Hasil Dan Pembahasan

P8 Procedure & Function pada Visual Basic.Net

BAB IV IMPLEMENTASI DAN TESTING

Budi Permana, S.Kom Pendahuluan. Lisensi Dokumen:

MODUL 3 Pemrograman ADO.NET : Connected Environtment



Budi Permana, S.Kom Pendahuluan. Lisensi Dokumen:

BAB 4 PROTOKOL TCP UDP - REMOTE

MODUL PRAKTIKUM PEMROGRAMAN VISUAL LANJUT

PEMROGRAMAN VISUAL BASIC

MODUL 2 PERANCANGAN INTERFACE



Sesi 12 : Pengenalan Pemrograman Database

PEMROGRAMAN TERSTRUKTUR II

Data Hasil Penelitian bobot 200 butir persilangan tanaman jagung

MODUL 4 Pemrograman ADO.NET : Disconnected Environtment


Coding : Coding : Oleh : Uus Rusmawan Hal - 1

PENGGUNAAN STRUKTUR KONTROL


TiPe Data Array di Vb.net. By Faizah,S.Kom

WAWANCARA SEBELUM IMPLEMENTASI. 1. Sejak kapan Klinik Gigi Drg. Kosasih Kurnia berdiri? memadai dengan jumlah pasien yang semakin bertambah.

MODUL 2 IP ADDRESS SOCKET

Oleh : Uus Rusmawan Hal - 1 -






Membuat Program Kriptografi dengan VB.Net 2010


MENU. 5.1 Membuat MenuStrip

P6 Struktur Kontrol pada Visual Basic.Net



Spesifikasi: Ukuran: 14x21m Tebal: 220 hlm Harga: Rp Terbit pertama: Mei 2005 Sinopsis singkat:

Transkripsi:

APLIKASI UJIAN DIGITAL - VB.NET Peminat silakan hubungi : Email : uusrusmawan71@gmail.com Facebook : konsultasivb@ymail.com (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

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

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

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. Coding dalam module koneksi : Gambar 4.8 Membuat module 4

Imports System.Data.OleDb Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Module Module1 Public Conn As OleDbConnection Public DA As OleDbDataAdapter Public DS As DataSet Public CMD As OleDbCommand Public DR As OleDbDataReader Public cryrpt As New ReportDocument Public crtablelogoninfos As New TableLogOnInfos Public crtablelogoninfo As New TableLogOnInfo Public crconnectioninfo As New ConnectionInfo Public 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 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 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

4.5 Form Login Gambar 4.9 Menambah reference 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

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. Coding dalam form menu utama: Public Class MenuUtama Gambar 4.11 Form menu utama Private Sub UserToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) User.Show() 7

Private Sub SiswaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) DataSiswa.Show() Private Sub MataKuliahToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) DataMataKuliah.Show() Private Sub SoalUjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) SoalUjian.Show() Private Sub UjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Ujian.Show() Private Sub MasterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) LaporanMaster.Show() Private Sub HasilUjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) LaporanNilai.Show() 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 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 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 Private Sub AdminToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Login.Show() Private Sub PesertaUjianToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) LoginPeserta.Show() 8

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click User.Show() Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click DataSiswa.Show() Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click DataMataKuliah.Show() Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click SoalUjian.Show() Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click Ujian.Show() Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click LaporanMaster.Show() Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click LaporanNilai.Show() 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 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 Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click ImportSoalUjian.Show() 9

Private Sub Button24_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button24.Click Login.Show() Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click LoginPeserta.Show() 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 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

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

Coding : Imports System.Data.OleDb Public Class DataSiswa Gambar 4.13 Form siswa 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 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() 12

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Call CariJumlahSiswa() Call Carikelas() TextBox3.Focus() 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" And Val(TextBox5.Text) <= 3 Then TextBox1.Text = "MA" & Format(Today, "yy") & "A" ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" And Val(TextBox5.Text) > 3 And Val(TextBox5.Text) <= 6 Then TextBox1.Text = "MA" & Format(Today, "yy") & "B" ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" And Val(TextBox5.Text) > 6 And Val(TextBox5.Text) <= 9 Then TextBox1.Text = "MA" & Format(Today, "yy") & "C" ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" And Val(TextBox5.Text) > 9 Then TextBox1.Text = "MA" & Format(Today, "yy") & "Z" 6 Then 9 Then 6 Then 9 Then 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) <= TextBox1.Text = "AK" & Format(Today, "yy") & "B" ElseIf ComboBox1.Text = "AKUNTANSI" And Val(TextBox5.Text) > 6 And Val(TextBox5.Text) <= 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) <= TextBox1.Text = "SK" & Format(Today, "yy") & "B" ElseIf ComboBox1.Text = "SEKRETARI" And Val(TextBox5.Text) > 6 And Val(TextBox5.Text) <= TextBox1.Text = "SK" & Format(Today, "yy") & "C" ElseIf ComboBox1.Text = "SEKRETARI" And Val(TextBox5.Text) > 9 Then TextBox1.Text = "SK" & Format(Today, "yy") & "Z" Call CariNIM() 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

Hitung, 3) Hitung, 3) Hitung, 3) Hitung, 3) 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" 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" & ElseIf ComboBox1.Text = "MANAJEMEN ADMINISTRASI" Then TextBox2.Text = Format(Today, "yy") + "02" + Microsoft.VisualBasic.Right("000" & ElseIf ComboBox1.Text = "AKUNTANSI" Then TextBox2.Text = Format(Today, "yy") + "03" + Microsoft.VisualBasic.Right("000" & ElseIf ComboBox1.Text = "SEKRETARI" Then TextBox2.Text = Format(Today, "yy") + "04" + Microsoft.VisualBasic.Right("000" & 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() Call Kosongkan() Call Tampilgrid() Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Call Kosongkan() 14

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Close() 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() 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 Class 15

4.9 Form Mata Kuliah Proses program dalam pengolahan data mata kuliah sama dengan data siswa. 4.10 Form Soal Ujian Gambar 4.14 Form mata kuliah 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

Coding : Imports System.Data.OleDb Public Class SoalUjian Gambar 4.15 Form soal ujian model pertama 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 Sub JumlahSoal() For jumlah As Integer = 5 To 50 Step 5 ComboBox2.Items.Add(jumlah) Next Private Sub SoalUjian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call Koneksi() Call TampilKuliah() Call JumlahSoal() Sub AturKolomBaru() DGV.Columns.Add("Pertanyaan", "Pertanyaan") DGV.Columns(1).Width = 550 DGV.Columns.Add("A", "Jawaban A") : DGV.Columns(2).Width = 75 DGV.Columns.Add("B", "Jawaban B") : DGV.Columns(3).Width = 75 DGV.Columns.Add("C", "Jawaban C") : DGV.Columns(4).Width = 75 DGV.Columns.Add("D", "Jawaban D") : DGV.Columns(5).Width = 75 17

DGV.Columns.Add("Jawaban", "Kunci Jawaban") : DGV.Columns(6).Width = 75 DGV.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 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() 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 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 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

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() 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}") 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}") 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}") 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}") 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}") 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) Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click 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

Coding : Imports System.Data.OleDb Public Class ImportSoalUjian Gambar 4.16 Form soal ujian model pertama '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() 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

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 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() Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Close() 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 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 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() 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

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

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() 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 '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() 23

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") Sub BersihkanJawaban() RadioButton1.Checked = False RadioButton2.Checked = False RadioButton3.Checked = False RadioButton4.Checked = 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" 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" 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

"SALAH" Label20.Text = "C" Label21.Text = DR.Item("Jawaban") If Label20.Text = Label21.Text Then Label22.Text = "BENAR" Else Label22.Text = 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" 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 'jika belum memeilih nomor soal If ListBox1.Text = "" Or TextBox1.Text = "" Then MsgBox("Anda belum memilih nomor soal") Exit Sub '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 '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 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 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label12.Text = TimeOfDay Timer1.Enabled = False 25

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Label13.Text = TimeOfDay '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 Next '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 Next 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() 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") 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 Class 26

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() 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() 27

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() 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() 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

cryrpt.load("laporan mtkuliah.rpt") Call seting_laporan() CRV.ReportSource = cryrpt CRV.RefreshReport() 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() 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() 29

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() 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

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() 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() 31