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.5.2   Update Tabel  “Tansnilai”

Proses ini bertujuan untuk mentransfer data mahasiswa ke tabel TransNilai. Tabel inilah yang akan digunakan untuk melakukan transaksi entri nilai. Untuk itu buatlah form dengan bentuk seperti gambar di bawah ini.

Koding :

Private Sub Form_Load()

Call BukaDB

End Sub

 

Private Sub Command1_Click()

Dim Hapus As String

Hapus = "Delete * from TransNilai"

Conn.Execute Hapus

 

Dim TransferData As New ADODB.Recordset

TransferData.Open "SELECT * from mahasiswa", Conn

TransferData.MoveFirst

Do While Not TransferData.EOF

    Dim Transfer1 As String

    Transfer1 = "Insert Into TransNilai(NIM,NamaMhs,Kelas) values " & _

    "('" & TransferData!nim & "','" & TransferData!namamhs & "','" & TransferData!Kelas & "')"

    Conn.Execute (Transfer1)

TransferData.MoveNext

Loop

MsgBox "Transfer Data Mahasiswa sukses"

Unload Me

End Sub

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.