Saturday, March 18, 2017

program aplikasi pengolahan nilai vb 6


Aplikasi Pengolahan Nilai VB 6.0

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 :



2.4.3   Data Dosen



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

Do While Not RSMI.EOF
    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