2.1 Pendahuluan
Program ini menggambarkan alur sistem pengolahan
nilai mahasiswa di suatu lembaga pendidikan mulai dari proses entri data mahasiswa
sampai pencetakan transkrip nilai. Program ini dapat dikembangkan dengan melakukan
beberapa penambahan hal-hal yang diperlukan sesuai dengan kebutuhan sistem.
2.2 Rancangan
Database Dan Relasi Tabel
Di bawah ini terdapat rancangan database
untuk keperluan membuat aplikasi pengolahan nilai mahasiswa. Beberapa tabel
berupa tabel temporer yang digunakan untuk melakukan transaksi pengolahan data.
Tabel-tabel temporer tersebut tidak akan digambarkan dalam relasi tabel atau
pembuatan normalisasi.
Gambar berikutnya menunjukan relasi tabel
dalam sistem pengolahan data nilai mahasiswa. Rancangan relasi tabel ini
sifatnya subjektif, artinya masing-masing analis dan programer memiliki
pandangan yang berbeda dalam membuat aplikasi pengolahan nilai sesuai dengan
kebutuhan sistem.
2.3 Proses
Kegiatan Akademik
Ilustrasi dalam program ini digambarkan
sebagai berikut:
1.
Diawali dengan proses entri data
mahasiswa, entri data dosen dan mata kuliah.
2.
Melakukan updating data untuk
mengisi tabel master, dimana masing-masing mahasiswa harus mengambil mata
kuliah pada semester yang bersangkutan.
3.
Dilanjutkan dengan pencetakan
Kartu Tanda Mahasiswa (KTM), Kartu Rencana Studi (KRS) dan absen kuliah
masing-masing kelas.
4.
Setelah perkuliahan
berlangsung, kegiatan selanjutnya adalah melakukan pendataan pada nilai
kehadiran dan nilai tugas, kemudian pelaksanaan UTS dan UAS. Rasio masing-masing
komponen nilai adalah 10% nilai kehadiran, 20% nilai tugas, 30% nilai UTS dan
40% nilai UAS.
5.
Setelah pelaksanaan UAS, maka
akan terlihat hasil akhir nilai semester satu. Bagi mereka yang mendapat nilai
di bawah standar kelulusan diwajibkan mengikuti ujian her.
6.
Setelah ujian her dilaksanakan,
nilai her akan diupdate dengan nilai sebelumnya dengan rasio 30% nilai awal dan
70% nilai her.
7.
Setelah semua proses selesai,
selanjutnya adalah pencetakan nilai akhir semester. Dan tahapan terakhir adalah
pencetakan transkrip nilai.
2.4 Pengolahan Data Master
2.4.1 Data
Mahasiswa
Untuk mengolah data pendaftaran mahasiswa
baru buatlah form seperti gambar berikut ini.
Penjelasan :
Entri nim sebanyak 7 digit, masing-masing
digit mewakili informasi sebagai berikut:
Dua digit pertama mewakili tahun masuk :
10 = 2010
Dua digit berikutnya mewakili jurusan
01 = Jurusan MI (Manajemen Informatika)
02 = Jurusan KA (Komputer Akuntansi)
03 = Jurusan TK (Teknik Komputer)
Tiga digit terakhir mewakili nomor urut
mahasiswa
Contoh :
1001001 = Masuk tahun 2010, Jurusan MI,
nomor urut 001
1001002 = Masuk tahun 2010, Jurusan MI,
nomor urut 002
1002001 = Masuk tahun 2010, Jurusan KA,
nomor urut 001
1002002 = Masuk tahun 2010, Jurusan KA,
nomor urut 002
1003001 = Masuk tahun 2010, Jurusan TK,
nomor urut 001
1003002 = Masuk tahun 2010, JurusanTK,
nomor urut 002
Struktur kode nim di atas dapat diubah
sesuai kebutuhan. Jumlah mahasiswa tiap kelas disesuaikan dengan kapasitas
kelas. Dalam contoh kasus ini tiap kelas
menampung 5 mahasiswa. Anda dapat mengaturnya sesuai situasi dan kondisi.
2.4.2 Data
Mata Kuliah
Entri data mata kuliah memiliki aturan
sebagai berikut :
1.
Kode mata kuliah terdiri dari 4
digit
2.
Satu digit pertama mewakili
jurusan 1 = “MI”, 2 = “KA” dan 3 = “TK”
3.
Satu digit kedua mewakili
semester
4.
Dua digit terakhir mewakili
nomor urut mata kuliah
Contoh :
1101 = Jurusan MI, Semester 1 nomor urut
01
1201 = Jurusan MI, Semester 2 nomor urut
01
2101 = Jurusan KA, Semester 1 nomor urut
01
2201 = Jurusan KA, Semester 2 nomor urut
01
3101 = Jurusan TK, Semester 1 nomor urut
01
3201 = Jurusan TK, Semester 2 nomor urut
01
Untuk melakukan pengolahan data mata
kuliah buatlah form seperti gambar di bawah ini :
Penjelasan :
Dalam kasus ini saya tidak membuat field
yang lengkap tentang data pribadi dosen, seperti alamat, tempat tanggal lahir,
agama, pendidikan dan lain-lain. Disini saya hanya membuat beberapa field yang
berkaitan erat dengan proses pengolahan nilai saja. Untuk itu pembaca dipersilakan
menambahkan field yang diperlukan. (Data lengkap dosen ada di bagian HRD)
2.5 Updating Data
2.5.1 Update
Data Master
Yang dimaksud updating data master disini
adalah melakukan transfer data dimana setiap mahasiswa harus mengambil sekian
banyak mata kuliah sesuai jurusannya. Tabel ini sangat dibutuhkan untuk membuat
laporan atau pencetakan berbagai macam berkas seperti absen kelas, form
pengisian nilai dan sejenisnya. Bentuk
form pun cukup sederhana, yaitu hanya dengan menambahkan sebuah command ke dalam
form seperti gambar berikut ini.
Koding :
Private Sub
Form_Load()
Call BukaDB
End Sub
Private Sub
Command1_Click()
Dim SQLHapus As
String
SQLHapus =
"Delete From Master"
Conn.Execute
(SQLHapus)
'entri NIM dan
KodeMK khusus jurusan MI
Dim RSMI As New
ADODB.Recordset
RSMI.Open
"select distinct nim,kodemk from mahasiswa,matakuliah where
mid(nim,4,1)='1' and left(kodemk,1)='1'", Conn
RSMI.MoveFirst
Do While Not
RSMI.EOF
Dim UPMI As String
UPMI = "Insert Into Master(NIM,KodeMK)
values ('" & RSMI!nim & "','" & RSMI!kodemk &
"')"
Conn.Execute (UPMI)
RSMI.MoveNext
Loop
'entri NIM dan
KodeMK khusus jurusan KA
Dim RSKA As New
ADODB.Recordset
RSKA.Open
"select distinct nim,kodemk from mahasiswa,matakuliah where
mid(nim,4,1)='2' and left(kodemk,1)='2'", Conn
RSKA.MoveFirst
Do While Not
RSKA.EOF
Dim UPKA As String
UPKA = "Insert Into Master(NIM,KodeMK)
values ('" & RSKA!nim & "','" & RSKA!kodemk &
"')"
Conn.Execute (UPKA)
RSKA.MoveNext
Loop
'entri NIM dan
KodeMK khusus jurusan TK
Dim RSTK As New
ADODB.Recordset
RSTK.Open
"select distinct nim,kodemk from mahasiswa,matakuliah where
mid(nim,4,1)='3' and left(kodemk,1)='3'", Conn
RSTK.MoveFirst
Do While Not
RSTK.EOF
Dim UPTK As String
UPTK = "Insert Into Master(NIM,KodeMK)
values ('" & RSTK!nim & "','" & RSTK!kodemk &
"')"
Conn.Execute (UPTK)
RSTK.MoveNext
Loop
MsgBox
"Updating Berhasil"
Unload Me
End Sub
Penjelasan Program :
Dalam melakukan updating ini hanya
mengambil data mata kuliah dan mahasiswa yang dilakukan pada field-field index
saja (kodeMK dan NIM), sedangkan data dosen tidak disertakan. Hal ini dilakukan
dengan alasan efektifitas dan efisiensi. Updating tabel master yang diambil
dari tabel mahasiswa dan mata kuliah menghasilkan 300 record (10 mahasiswa
dikali 10 mata kuliah dikali 3, karena ada tiga jurusan). Jika data dosen
disertakan akan dihasilkan 1500 record (300 dikali 5 orang dosen). Dengan cara
seperti itu berkas-berkas yang harus dicetak menjadi sangat tidak efisien
(walaupun dilihat dari konsep normalisasi itu harus dilakukan). Dalam kasus
seperti ini Anda dapat mengambil keputusan terbaik disesuaikan dengan situasi
dan kondisi. Perhatikanlah Gambar 2.4 dengan cara seperti itu nama dosen dapat
ditulis secara manual dalam form absen. Dan form yang sudah tersedia tinggal
diperbanyak dengan cara fotocopy.
2.6 Pencetakan Berkas Awal
Pencetakan absen kelas dilakukan setelah
melakukan updating data mahasiswa dan mata kuliah. Hal ini diperlukan untuk
melakukan pendataan nilai absensi, tugas, UTS dan UAS. Dalam form ini pula
dilakukan pencetakan KRS (Kartu Rencana Studi) dan absensi peserta ujian.
Koding
:
Private Sub
Form_Load()
Call BukaDB
Dim Tabel As New
ADODB.Recordset
Tabel.Open
"select Distinct Kelas from Mahasiswa", Conn
Tabel.Requery
Do While Not
Tabel.EOF
CboAbsen.AddItem Tabel!Kelas
Tabel.MoveNext
Loop
Conn.Close
Call BukaDB
Tabel.Open
"select Distinct Jurusan from Mahasiswa", Conn
Tabel.Requery
Do While Not
Tabel.EOF
CboKTM.AddItem Tabel!Jurusan
CboKRS.AddItem Tabel!Jurusan
CboAbsenUjian.AddItem Tabel!Jurusan
Tabel.MoveNext
Loop
Conn.Close
Call BukaDB
Tabel.Open
"select Distinct smt from matakuliah", Conn
Tabel.Requery
Do While Not
Tabel.EOF
CboSMT.AddItem Tabel!SMT
Tabel.MoveNext
Loop
End Sub
Private Sub
CmdCetakAbsenKelas_Click()
If CboAbsen =
"" Or CboAbsen = "Kelas" Then
MsgBox "Anda belum memilih
Kelasnya"
Exit Sub
End If
CR.SelectionFormula
= "{Mahasiswa.Kelas}='" & CboAbsen & "'"
CR.ReportFileName
= App.Path & "\absen kelas.rpt"
CR.WindowState =
crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub
CmdCetakKTM_Click()
If CboKTM =
"" Or CboKTM = "Jurusan" Then
MsgBox "Anda belum memilih
Jurusannya"
Exit Sub
End If
CR.SelectionFormula
= "{Mahasiswa.Jurusan}='" & CboKTM & "'"
CR.ReportFileName
= App.Path & "\KTM.rpt"
CR.WindowState =
crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub
CboKRS_Click()
If CboKRS =
"MANAJEMEN INFORMATIKA" Then
Text1 = "1"
ElseIf CboKRS =
"KOMPUTER AKUNTANSI" Then
Text1 = "2"
ElseIf CboKRS =
"TEKNIK KOMPUTER" Then
Text1 = "3"
End If
End Sub
Private Sub
CmdCetakKRS_Click()
If CboKRS =
"" Or CboKRS = "Jurusan" Or CboSMT = "" Then
MsgBox "Pilih Jurusan dan
semesternya"
Exit Sub
End If
CR.SelectionFormula
= "{Mahasiswa.Jurusan}='" & CboKRS & "' and
{matakuliah.kodemk}[1]='" & Text1 & "' and
{matakuliah.smt}[1]='" & CboSMT & "'"
CR.ReportFileName
= App.Path & "\KPU.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub
CmdCetakAbsenUJian_Click()
If CboAbsenUjian =
"" Or CboAbsenUjian = "Jurusan" Then
MsgBox "Anda belum memilih
jurusannya"
Exit Sub
End If
CR.SelectionFormula
= "{Mahasiswa.Jurusan}='" & CboAbsenUjian & "'"
CR.ReportFileName
= App.Path & "\absen ujian.rpt"
CR.WindowState =
crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub
Command1_Click()
CR.ReportFileName
= App.Path & "\form daftar nilai.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Dalam contoh program di atas,
formulanya mengandung teknik pengambilan karakter dalam field. Di dalam Crystal Report cara
pengambilan karakternya adalah sebagai berikut :
Syntax :
{NamaTabel.Field}[n] = ‘nilai yang dicari’
Fungsi :
mengambil karakter pada digit ke n dari sebuah field
Contoh :
{MataKuliah.SMT}[1]=’2’
Fungsi :
mengambil satu digit dari mata kuliah yang semesternya bernilai 2
Syntax :
{NamaTabel.Field}[n1 to n2] = ‘nilai yang dicari’
Fungsi :
mengambil karakter dari digit ke n1 sampai digit ke n2 dari sebuah field
Contoh :
{MataKuliah.KodeMK}[1 to 2]=’13’
Fungsi :
mengambil dua digit dari kode mata kuliah yang digit pertamanya bernilai 1 dan
digit kedunya bernilai 3
2.6.1 Pencetakan
Absen Kelas
2.6.2 Pencetakan
KTM
2.6.3 Pencetakan
KRS
Kartu rencana studi ini wajib dibawa
ketika mengikuti ujian, baik ujian tengah semester maupun ujian akhir semester.
2.6.4 Pencetakan Absen UTS atau UAS
Sebelum pelaksaaan ujian, panitia menyiapkan
absen peserta ujian dengan bentuk seperti Gambar 2.9 di bawah ini.
2.6.5 Berkas Daftar Nilai Mahasiswa
2.7 Entri
nilai
Form
untuk melakukan entri nilai terlihat seperti gambar di bawah ini. Form ini
digunakan untuk mengentri nilai Absen, Tugas, UTS dan UAS. Hasil entri data
akan terlihat di tabel NILAI. Cara mengentri data cukup dengan memilih daftar
matakuliah dan kelas di dalam list yang sudah berpasangan. Form inipun dapat
digunakan untuk melakukan perubahan nilai.
Koding
:
Private Sub
Form_activate()
Call BukaDB
Adodc1.ConnectionString
= pathdata
Call
KosongkanNilai
Adodc1.RecordSource
= "select * from transnilai Where nim='xxx'"
Adodc1.Refresh
Set
DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
Call TampilList
JmlList =
List2.ListCount
End Sub
Private Sub
Form_Load()
Call BukaDB
Dim RSMI As New
ADODB.Recordset
RSMI.Open
"SELECT distinct kodemk,kelas FROM MAHASISWA,MATAKULIAH WHERE
left(kelas,2)='MI' AND LEFT(KODEMK,1)=1", Conn
RSMI.MoveFirst
List1.Clear
List1.AddItem RSMI!kodemk & vbTab &
RSMI!Kelas
RSMI.MoveNext
Loop
Dim RSKA As New
ADODB.Recordset
RSKA.Open
"SELECT distinct kodemk,kelas FROM MAHASISWA,MATAKULIAH WHERE
left(kelas,2)='KA' AND LEFT(KODEMK,1)=2", Conn
RSKA.MoveFirst
Do While Not
RSKA.EOF
List1.AddItem RSKA!kodemk & vbTab &
RSKA!Kelas
RSKA.MoveNext
Loop
Dim RSTK As New
ADODB.Recordset
RSTK.Open
"SELECT distinct kodemk,kelas FROM MAHASISWA,MATAKULIAH WHERE
left(kelas,2)='TK' AND LEFT(KODEMK,1)=3", Conn
RSTK.MoveFirst
Do While Not RSTK.EOF
List1.AddItem RSTK!kodemk & vbTab &
RSTK!Kelas
RSTK.MoveNext
Loop
Call Semula
End Sub
Private Sub
CmdSimpanData_Click()
If LBJumlah =
"" Or LblMtkl = "" Or LblJurusan = "" Then
MsgBox "Tidak ada entri atau edit
nilai"
Exit Sub
End If
Call BukaDB
RSNilai.Open
"select * from nilai where kodemk='" & Trim(Left(List1, 4)) &
"' and kelas ='" & Trim(Right(List1, 4)) & "'", Conn
If RSNilai.EOF
Then
Adodc1.Recordset.MoveFirst
Do While Not Adodc1.Recordset.EOF
Dim Simpan As String
Simpan = "Insert Into
Nilai(Kelas,KodeMK,NIM,namamhs,absen,tugas,uts,uas) values " & _
"('" & Right(List1, 4)
& "','" & Left(List1, 4) & "','" &
Adodc1.Recordset!nim & "','" & Adodc1.Recordset!namamhs &
"','" & Adodc1.Recordset!absen & "','" &
Adodc1.Recordset!tugas & "','" & Adodc1.Recordset!uts &
"','" & Adodc1.Recordset!uas & "')"
Conn.Execute (Simpan)
Call KosongkanNilai
Adodc1.Recordset.MoveNext
Loop
Else
Adodc1.Recordset.MoveFirst
Do While Not Adodc1.Recordset.EOF
Dim edit As String
edit = "Update nilai set absen='"
& Adodc1.Recordset!absen & "',Tugas='" &
Adodc1.Recordset!tugas & "',UTS='" & Adodc1.Recordset!uts
& "',UAS='" & Adodc1.Recordset!uas & "' where
nim='" & Adodc1.Recordset!nim & "' and kelas='" &
Combo2 & "' and kodemk='" & Combo1 & "'"
Conn.Execute edit
Adodc1.Recordset.MoveNext
Loop
End If
Call Updating
Call Semula
Call KosongkanGrid
Call
KosongkanNilai
Form_activate
End Sub
Private Sub
DataGrid1_AfterColEdit(ByVal ColIndex As Integer)
If DataGrid1.Col =
3 Then
If Adodc1.Recordset!absen > 100 Then
MsgBox "Nilai maksimal adalah
100"
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
End If
If DataGrid1.Col =
4 Then
If Adodc1.Recordset!tugas > 100 Then
MsgBox "Nilai maksimal adalah
100"
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
End If
If DataGrid1.Col =
5 Then
If Adodc1.Recordset!uts > 100 Then
MsgBox "Nilai maksimal adalah
100"
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
End If
If DataGrid1.Col =
6 Then
If Adodc1.Recordset!uas > 100 Then
MsgBox "Nilai maksimal adalah
100"
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
End If
End Sub
Sub Semula()
Command3.Caption =
"&Tutup"
Command3.Enabled =
True
LblMtkl =
"": LblJurusan = ""
End Sub
Private Sub
Command3_Click()
Select Case
Command3.Caption
Case "&Tutup"
'End
Unload Me
Case "&Batal"
Semula
Call KosongkanNilai
Call KosongkanGrid
End Select
End Sub
Private Sub
datagrid1_Keypress(KeyAscii As Integer)
On Error Resume
Next
If Not (KeyAscii
>= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack Or KeyAscii = vbKeyReturn) Then KeyAscii = 0
End Sub
Sub TampilList()
List2.Clear
Dim RS As New ADODB.Recordset
RS.Open "select distinct kodemk,kelas
from nilai", Conn
Do While Not RS.EOF
List2.AddItem RS!kodemk & vbTab
& RS!Kelas
RS.MoveNext
Loop
End Sub
Sub GridEntri()
Call KosongkanNilai
Adodc1.RecordSource = "Select
NIM,NamaMhs,absen,tugas,uts,uas from
TransNilai where kelas='" & Trim(Right(List1, 4)) & "'"
Adodc1.Refresh
LBJumlah = Adodc1.Recordset.RecordCount
End Sub
Sub TampilNilai()
Adodc1.RecordSource = "Select
Nim,NamaMhs,Absen,Tugas,UTS,UAS From Nilai Where Kodemk='" &
Trim(Left(List1, 4)) & "' And Kelas='" & Trim(Right(List1,
4)) & "'"
Adodc1.Refresh
LBJumlah = Adodc1.Recordset.RecordCount
End Sub
Sub
KosongkanGrid()
Adodc1.RecordSource = "Select
nim,namamhs From TransNilai Where kelas='" & Trim(Right(List1, 4))
& "'"
Adodc1.Refresh
LBJumlah = ""
End Sub
Sub CariData()
Adodc1.RecordSource = "Select
Nim,NamaMhs,kelas,kodemk,Absen,Tugas,UTS,UAS From Nilai Where Kodemk='"
& Trim(Left(List1, 4)) & "' And Kelas='" &
Trim(Right(List1, 4)) & "'"
Adodc1.Refresh
LBJumlah = Adodc1.Recordset.RecordCount
End Sub
Sub Updating()
On Error Resume
Next
Dim RSNilai As New ADODB.Recordset
RSNilai.Open "select * from
Nilai", Conn
If Not RSNilai.EOF Then
Dim aa As String
aa = "Update Nilai Set
Total=(Absen*0.1) + (tugas* 0.2) + (uts*0.3) + (uas*0.4) where kodemk='"
& Left(List1, 4) & "' and kelas ='" & Right(List1, 4)
& "'"
Conn.Execute aa
Dim bb As String
bb = "Update Nilai Set Grade=iif
(val(Total)=0,'E',iif(val(Total)>0 and
val(Total)<60,'D',iif(val(Total)>=60 and
val(Total)<75,'C',iif(val(Total)>=75 and val(Total)<85,'B','A'))))
where kodemk='" & Left(List1, 4) & "' and kelas ='"
& Right(List1, 4) & "'"
Conn.Execute bb
Dim cc As String
cc = "Update Nilai Set Ket=iif
(Grade='E' or
Grade='D','Her',iif(Grade='A','Memuaskan',iif(Grade='B','Baik','Cukup'))) where
kodemk='" & Left(List1, 4) & "' and kelas ='" &
Right(List1, 4) & "'"
Conn.Execute cc
End If
MsgBox "Penyimpanan dan Updating Data
Sukses"
End Sub
Sub
KosongkanNilai()
On Error Resume
Next
Dim Nolkan As
String
Nolkan =
"update transnilai set absen=0,tugas=0,uts=0,uas=0 where kelas ='"
& Trim(Right(List1, 4)) & "'"
Conn.Execute
Nolkan
End Sub
Private Sub
List1_Click()
Call BukaDB
Dim aa As New
ADODB.Recordset
aa.Open
"Select NamaMK, Jurusan From matakuliah,mahasiswa Where Kodemk='"
& Trim(Left(List1, 4)) & "' And kelas='" &
Trim(Right(List1, 4)) & "'", Conn
If Not aa.EOF Then
LblMtkl = aa!namamk
LblJurusan = aa!Jurusan
End If
Adodc1.RecordSource
= "Select Nim,NamaMhs,kelas,kodemk,Absen,Tugas,UTS,UAS From Nilai Where
Kodemk='" & Left(List1, 4) & "' And Kelas='" &
Right(List1, 4) & "'"
Adodc1.Refresh
If
Adodc1.Recordset.EOF Then
Adodc1.RecordSource = "Select
Nim,NamaMhs,Absen,Tugas,UTS,UAS From transNilai Where Kelas='" &
Right(List1, 4) & "'"
Adodc1.Refresh
End If
LBJumlah =
Adodc1.Recordset.RecordCount
End Sub
Private Sub
List2_Click()
Call BukaDB
Dim aa As New
ADODB.Recordset
aa.Open
"Select NamaMK, Jurusan From matakuliah,mahasiswa Where Kodemk='"
& Trim(Left(List2, 4)) & "' And kelas='" &
Trim(Right(List2, 4)) & "'", Conn
If Not aa.EOF Then
LblMtkl = aa!namamk
LblJurusan = aa!Jurusan
End If
Adodc1.RecordSource
= "Select Nim,NamaMhs,kelas,kodemk,Absen,Tugas,UTS,UAS From Nilai Where
Kodemk='" & Left(List2, 4) & "' And Kelas='" &
Right(List2, 4) & "'"
Adodc1.Refresh
LBJumlah =
Adodc1.Recordset.RecordCount
End Sub
2.8 Pencetakan
Nilai Semester
Proses pencetakan nilai semester
dilakukan melalui form dengan bentuk desain seperti gambar di bawah ini.
Koding :
Private Sub
Form_Load()
Call BukaDB
Dim Tabel As New
ADODB.Recordset
Tabel.Open
"select Distinct Jurusan from Mahasiswa", Conn
Tabel.Requery
Do While Not
Tabel.EOF
Combo1.AddItem Tabel!Jurusan
Tabel.MoveNext
Loop
RSMTKL.Open
"select distinct smt from matakuliah", Conn
Do While Not
RSMTKL.EOF
Combo2.AddItem RSMTKL!SMT
Combo4.AddItem RSMTKL!SMT
RSMTKL.MoveNext
Loop
RSMHS.Open
"select distinct kelas from mahasiswa", Conn
Do While Not
RSMHS.EOF
Combo3.AddItem RSMHS!Kelas
RSMHS.MoveNext
Loop
Conn.Close
End Sub
Private Sub Combo1_Click()
If Combo1 =
"KOMPUTER AKUNTANSI" Then
Text1 = "2"
ElseIf Combo1 =
"MANAJEMEN INFORMATIKA" Then
Text1 = "1"
ElseIf Combo1 =
"TEKNIK KOMPUTER" Then
Text1 = "3"
End If
End Sub
Private Sub
Command1_Click()
If Text1 =
"" Or Combo2 = "" Or Combo2 = "Semester" Then
MsgBox "Pilih Jurusan dan
Semesternya..!"
Combo1.SetFocus
Exit Sub
End If
CR.SelectionFormula =
"{Mahasiswa.Jurusan}='" & Combo1 & "' and
{matakuliah.kodemk}[1]='" & Text1 & "' and
{matakuliah.smt}[1]='" & Combo2 & "'"
CR.ReportFileName = App.Path &
"\Nilai Semester.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
Private Sub
Command2_Click()
If Combo3 =
"Kelas" Or Combo4 = "Semester" Then
MsgBox "Pilih Kelas dan
semester..!"
Combo3.SetFocus
Exit Sub
End If
CR.SelectionFormula =
"{matakuliah.smt}[1]='" & Combo4 & "' and
{mahasiswa.kelas}='" & Combo3 & "'"
CR.ReportFileName = App.Path &
"\Nilai Kelas.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
2.8.1 Nilai
IPS (Index Prestasi Semester)
2.8.2
Rincian Nilai Semester
2.8.3 Daftar
Mahasiswa Wajib Remedial
Setelah data nilai semester dibuat,
proses berikutnya adalah menampilkan data mahasiswa yang harus mengikuti ujian
remedial.
2.9
Pengolahan Data Remedial
2.9.1 Pendaftaran
Her
Dengan
satu asumsi bahwa tidak semua mahasiswa memenuhi standar kelulusan, maka perlu
dibuatkan program HER. Proses pendaftaran her dilakukan dengan mengentri data
dari berkas pendaftaran her yang diberikan oleh mahasiswa kepada panitia dalam
bentuk sebagai berikut:
NIM
|
15001
|
|
NAMA
|
UUS
RUSMAWAN
|
|
JURUSAN
|
MANAJEEN
INFORMATIKA
|
|
KODE
|
MATA
KULIAH
|
SKS
|
1101
|
BAHASA
INGGRIS 1
|
2
|
1102
|
DASAR
AKUNTANSI
|
2
|
1103
|
LOGIKA
ALGORITMA *
|
4
|
1104
|
PENDIDIKAN
PANCASILA
|
2
|
1105
|
PPN
|
4
|
1201
|
KOMUNIKASI
DATA
|
2
|
1202
|
MANAJEMEN
UMUM
|
2
|
1203
|
BAHASA
INGGRIS 2
|
2
|
1204
|
KEWIRAUSAHAAN
|
2
|
1205
|
PEMROGRAMAN
PASCAL *
|
4
|
Beri
tanda ceklist kode mata kuliah yang diambil
|
Model
berkas ini dapat diubah dengan bentuk yang sesuai dengan kebutuhan,
penyesuaiannya diselaraskan dengan bentuk form yang akan dirancang atau bentuk
output yang diinginkan.
Form
ini mengindikasikan sebuah asumsi bahwa seorang mahasiswa mengambil beberapa
matakuliah remedial. Cara kerja form ini adalah sebagai berikut :
1.
Isilah NIM
2.
Jika data ditemukan
maka akan tampil nama mahasiswa dan daftar mata kuliah her yang wajib
diikutinya di sebelah kanan dalam list
3.
Jika data tidak
ditemukan, maka akan tampil pesan bahwa mahasiswa tersebut sebenarnya tidak
perlu mengikuti her
4.
Selanjutnya mengentri
kode mata kuliah dalam grid, kemudian data disimpan
5.
Data ini akan tersimpan
ke tabel “PESERTAHER”
2.9.2 Pencetakan
Data Her
Di
bawah ini disediakan beberapa pencetakan yang berkaitan dengan pelaksaan ujian
her yang dipisah berdasarkan jurusan dan semester. Oleh karena itu laporan yang
telah dibentuk akan disaring datanya berdasarkan dua kriteria di atas.
2.9.3 Pencetakan Kartu Peserta Her
2.9.4 Pencetakan
Absensi Perserta Her
2.9.5 Entri
Nilai Her
Proses
entri nilai her ini dilakukan dari daftar peserta ujian her dimana nilainya
dientri oleh dosen pengawas dalam daftar tersebut. Contoh daftar ujian her
dapat dilihat pada Gambar 2.16 dimana
kolom keterangan dapat diisi dengan nilai hasil ujian her yang nilainnya
dientri pada form di bawah ini.
Cara
kerja program :
1.
Isilah kode mata kuliah
2.
Jika data ditemukan
maka akan tampil nama mata kuliah dan beberapa NIM yang mengikuti ujuan her
pada mata kuliah tersebut
3.
Kemudian isilah NIM dan
nilai mahasiswa pada mata kuliah her tersebut
4.
Jika data tidak
ditemukan maka akan tampil pesan bahwa kode mata kulah tidak terdaftar
5.
Setelah data dientri
dan disimpan, maka nilai akan terupdate ke tabel NILAI (dengan rasio 70% - 30%)
dan ke tabel NILAIHER
2.9.6 Pencetakan Nilai Her
Hasil
ini diperoleh setelah pelaksanaan her berlangsung dan nilai her telah dientri
sebelumnya. Seperti laporan yang lainnya, pencetakan nilai her bentuk
laporannya telah dirancang untuk dapat mengakomodasi kebutuhan dengan kondisi
satu laporan dapat menyaring beberapa data sekaligus berdasarkan jurusan,
semester, kode mata kuliah atau berdasarkan NIM.
Catatan
:
Dalam
Crystal Report penulisan fungsi IF agak sedikit berbeda dengan Visual Basic VB.
Kasusnya adalah dalam menentukan keterangan untuk hasil her. Batas kelulusannya
silakan ditentukan sendiri, misalnya 60 “Lulus” dibawah 60 “Gagal”. Perhatikan
contoh berikut ini.
2.10
Pencetakan Transkrip Nilai
Form
di bawah ini merupakan salah satu inti program, dimana informasi tentang
berbagai nilai mahasiswa dapat dilihat, mulai dari nilai semester 1 dengan
berbagai elemennya (nilai UTS, Tugas, Absen, UAS) dan nilai semester berikutnya
berikut transkrip nilai masing-masing mahasiswa yang dapat dilihat (dicetak)
per jurusan.
Listing
Program
Private Sub Form_Load()
Call BukaDB
Dim Tabel As New
ADODB.Recordset
Tabel.Open
"select Distinct Jurusan from Mahasiswa", Conn
Tabel.Requery
Do While Not
Tabel.EOF
Combo1.AddItem Tabel!Jurusan
Tabel.MoveNext
Loop
End Sub
Private Sub
Command1_Click()
If Combo1 =
"" Or Combo1 = "Jurusan" Then
MsgBox "Pilih Jurusannya"
Combo1.SetFocus
Exit Sub
End If
CR.SelectionFormula =
"{Mahasiswa.Jurusan}='" & Combo1 & "'"
CR.ReportFileName = App.Path &
"\Nilai Transkrip.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub
2.11 Membuat Formula Dalam Transkrip Nilai
Untuk
pembuatan laporan nilai semester dan nilai transkrip, kita membutuhkan beberapa
formula (rumus) yang dibuat secara manual. Mari kita lihat bagaimana cara
membuat laporan nilai semester untuk menghasilkan MUTU,TOTAL SKS, TOTAL MUTU,
IPS DAN PREDIKAT.
2.11.1 Mutu
Mutu
diperoleh dari hasil perkalian antara bobot SKS dengan Nilai (nilai ini diambil
dari Grade). Lakukan langkah-langkah berikut ini
1.
Buatlah rancangan
laporan dengan satu nim banyak mata kuliah (lihat kembali caranya dari no 1 –
37)
2.
Lalu buatlah rumus
dengan memilih menu Insert>Formula Field
3.
Ketik Mutu di kotak
Formula Name>OK
4.
Lalu ketik rumus
berikut di kotak Formula Text
if{Nilai1.Grade}="A"
then
ToNumber
({MataKuliah.SKS})*4
else
if{Nilai1.Grade}="B"
then
ToNumber
({MataKuliah.SKS})*3
else
if{Nilai1.Grade}="C"
then
ToNumber
({MataKuliah.SKS})*2
else
if{Nilai1.Grade}="D"
then
ToNumber
({MataKuliah.SKS})*1
else
if{Nilai1.Grade}="E"
then
ToNumber
({MataKuliah.SKS})*0
Catatan
:
Jika
type field MataKuliah.SKS berupa Text atau Character, maka gunakan fungsi
ToNumber, tetapi jika field SKS bertype Number, maka fungsi ToNumber tidak
perlu digunakan.
5.
Klik Accept
6.
Simpan di area Details
di sebelah kanan Nilai
2.11.2 Total
SKS dan Total Mutu
Untuk
menghasilkan data TOTAL SKS dan TOTAL MUTU cukup mudah karena fasilitasnya
telah disediakan oleh Crystal Report, lakukanlah langkah-langkah berikut:
1.
Klik kanan pada field
SKS
2.
Pilih Insert Grand
Total
3.
Klik OK
4.
Klik kanan pada field
Mutu
5.
Pilih insert Grand
Total
6.
Klik OK
7.
Simpan kedua hasilnya
di area #2 : Kelas – A
2.11.3 IPS
IPS
adalah Indeks Prestasi Semester. Cara membuatnya hampir sama dengan membuat
rumus untuk Mutu. Lakukan langkah-langkah berikut ini.
1.
Klik Menu Insert
>Formula Field
2.
Ketik IP di kotak
Formula Name>OK
3.
Pilih Sum Of @Mutu
dikotak Fields
4.
Klik Select
5.
Ketik tanda pembagian
(/)
6.
Pilih Sum Of SKS di kotak fields
7.
Klik Select
8.
Klik Check
9.
Klik Accept
10.
Simpan di area di area
#2 : Kelas – A
2.11.4 Predikat
Predikat
adalah keterangan berupa sebuah kalimat yang menjelaskan kondisi hasil yang
diperoleh. Cara membuatnya adalah sebagai berikut:
1.
Klik Menu Insert
>Formula Field
2.
Ketik Predikat di kotak
Formula Name>OK
3.
Ketik rumus di bawah
ini di kotak Formula Text
if
{@IP}>0 and {@IP}<1 then
"Gagal"
else
if
{@IP}>=1 and {@IP}<2 then
"Kurang"
else
if
{@IP}>=2 and {@IP}<3 then
"Cukup"
else
if
{@IP}>=3 and {@IP}<=3.50 then
"Memuaskan"
else
if
{@IP}>3.50 then
"Sangat
Memuaskan"
4.
Klik Check
5.
Klik Accept
6.
Simpan di area di area
#2 : Kelas – A
7.
Setelah semua hasil
diperoleh, aturlah masing-masing data di posisi yang tepat.
EmoticonEmoticon