Bab 4 Hasil dan Pembahasan
Bab ini berisi pemaparan mengenai hasil dari perancangan sistem dalam bentuk pembahasan mengenai uji implementasi dari hasil perancangan tersebut. Pengujian dilakukan untuk memperoleh evaluasi apakah perancangan yang dilakukan dapat mencapai tujuan yang diharapkan. Penjelasan akan didukung dengan gambar hasil printscreen dari perangkat lunak, berikut penjelasannya.
4.1 Pembahasan Aplikasi 4.1.1 Form Login Terdapat satu macam bentuk antar-muka yaitu antar-muka untuk admin dan user. Tampilan awal adalah halaman awal web, dimana admin dan user harus melakukan login terlebih dahulu. Menu halaman awal ini meliputi login untuk mahasiswa, dosen dan admin. Tampilan dapat dilihat pada Gambar 4.1.
Gambar 4.1 Tampilan awal Login
43
44
Gambar 4.1 merupakan halaman login administrator. Untuk melakukan login sebagai administrator, administrator harus memasukkan username dan password agar dapat mengakses sistem informasi akademik yang berupa mengolah data mahasiswa, mengolah data dosen, mengolah data matakuliah, mengolah data jurusan, mengolah tahun akademik, mengolah konversi nilai, mengolah persyaratan matakuliah, mengolah batas sks (Sistem Kredit Semester), mengolah jadwal registrasi dan mengolah matakuliah semester). Untuk user yang dalam hal ini adalah dosen dan mahasiswa, harus melewati proses yang sama dengan administrator untuk dapat mengakses sistem informasi akademik. User tersebut dapat melihat sistem informasi yang ada namun tidak memiliki otoritas yang sama dengan administrator, yakni mengolah.
Kode Program 4.1 Proses Login
Kode Program 4.1 digunakan untuk melakukan proses login. Pada baris 5-7 digunakan untuk memeriksa apakah login benar atau salah. Sedangkan pada baris 9-11 digunakan untuk memeriksa login admin. Else.FailureText pada baris 12-13 digunakan untuk
45
menampilkan pesan “Login anda tidak berhasil, silahkan ulangi lagi”, jika login salah. Jika username dan password benar maka akan masuk ke halaman berikutnya.
4.1.2 Form Administrator Jika user melakukan login sebagai administrator, maka akan ditampilkan halaman utama administrator.
Gambar 4.2 Halaman Data Dosen
Gambar 4.2 merupakan halaman dosen, yang terdapat data dosen dimana admin dapat menambah, merubah dan menghapus data. Hanya saja, NIP yang sudah ada tidak dapat diedit.
46
Kode Program 4.2 Halaman Data Dosen 1.
2. 3.
4. 5. 6.
7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Protected Sub ASPxGridView1_CustomCallback(ByVal sender As Object, ByVal e As DevExpress.Web.ASPxGridView.ASPxGridViewCustomCallbackEventA rg) Handles ASPxGridView1.CustomCallback Dim gv As ASPxGridView = DirectCast(sender, ASPxGridView) gv.StartEdit(CInt(e.Parameters)) Dim tb As ASPxTextBox = DirectCast(gv.FindEditRowCellTemplateControl(DirectCas (gv.Columns(0), GridViewDataColumn), "NIPTextBox"), ASPxTextBox) tb.ClientEnabled = False End Sub Protected Sub ASPxGridView1_CustomErrorText(ByVal sender As Object, ByVal e As DevExpress.Web.ASPxGridView.ASPxGridViewCustomErrorTextEvent Arg) Handles ASPxGridView1.CustomErrorText Dim errText As String = "" If (e.Exception Is Nothing) Then Exit Sub Else Dim ex As SqlException = DirectCast(e.Exception.InnerException, SqlException) Dim errNumber As Integer = ex.Number Select Case errNumber Case 547 errText = "Maaf Data ini masih di gunakan" End Select End If e.ErrorText = errText End Sub
NIP yang telah di-input tidak dapat diubah. Kode program tersebut ada di baris 1-5. Kode program baris 6-18 berfungsi untuk errorhandling, dimana data primary tidak dapat dihapus. Jika ada pengisian data secara berulang atau data yang dimasukkan sama dengan data sebelumnya, maka database tidak akan menyimpan data tersebut, kemudian akan tampil pesan “Maaf Data ini masih digunakan”.
47
Kode Program 4.3 Generate Password Data Dosen 1.
2. 3. 4. 5. 6. 7.
Protected Sub ASPxGridView1_RowInserting(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataInsertingEventArgs) Handles ASPxGridView1.RowInserting Dim nip As String = CStr(e.NewValues.Item("NIP")) Dim tgl As Date = CDate(e.NewValues.Item("TglLahir")) e.NewValues.Item("Password") = ConvertFromDate(tgl) e.Cancel = CheckNIP(nip) End Sub
8. 9. 10. 11. 12. 13. 14. 15.
Protected Sub ResetButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim btn As ASPxButton = DirectCast(sender, ASPxButton) Dim id As String = btn.CommandArgument Dim obj As Dosen = GetObject(id) With obj .Password = ConvertFromDate(.TglLahir) .Save() End With End Sub
16. 17. 18. 19. 20. 21. 22. 23. 24.
Private Function CheckNIP(ByVal nip As String) As Boolean Dim obj As Dosen = session1.GetObjectByKey(Of Dosen)(nip) If obj Is Nothing Then Return False Else Throw New Exception("NIP " & nip & " sudah ada!") Return True End If End Function
25. 26. 27. 28. 29. 30.
Private Function ConvertFromDate(ByVal tgl As Date) As String Dim tanggal As String = Left(tgl.ToShortDateString, 2) Dim bulan As String = Mid(tgl.ToShortDateString, 4, 2) Dim thn As String = Right(tgl.ToShortDateString, 4) Return tanggal & bulan & thn End Function
Kode program baris 1-6 berfungsi untuk mengambil teks yang telah dimasukkan, sedangkan kode program baris 7-15 berfungsi untuk generate password berdasarkan tanggal lahir. Kode program baris 16-17 berfungsi untuk mengambil NIP yang ada di session, sedangkan kode program baris 18-24 berfungsi untuk menguji apakah NIP yang dimasukkan telah sesuai atau tidak. Kode program 25-30 berfungsi untuk mengkonversi tanggal ke password.
48
Gambar 4.3 Halaman Data Mahasiswa
Gambar 4.3 merupakan halaman mahasiswa, yang terdapat data mahasiswa. Sama halnya dengan data dosen, data mahasiswa dapat diubah, ditambah atau dihapus oleh admin. NIM yang telah diinput tidak dapat di-edit. Untuk kode program halaman data mahasiswa, kurang lebih hampir sama dengan Kode Program 4.3.
Gambar 4.4 Halaman Fakultas
49
Gambar 4.4 merupakan halaman fakultas untuk mengakses penambahan, edit, dan hapus fakultas di dalam universitas. Kode Program 4.4 Halaman Fakultas 1.
2. 3. 4. 5. 6.
Protected Sub ASPxGridView1_DetailRowExpandedChanged(ByVal sender As Object, ByVal e As DevExpress.Web.ASPxGridView.ASPxGridViewDetailRowEventArgs) Handles ASPxGridView1.DetailRowExpandedChanged Session("FakultasID") = ASPxGridView1.GetRowValues(e.VisibleIndex, "FakultasID") End Sub Protected Sub ASPxGridView2_RowInserting(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataInsertingEventArgs) e.NewValues End Sub
Kode program baris 1-3 digunakan untuk mengambil id fakultas, sedangkan kode program baris 4-6 berfungsi untuk menyimpan jurusan.
Gambar 4.5 Halaman Matakuliah
Gambar
4.5
merupakan
halaman
matakuliah,
untuk
menambah, mengubah dan menghapus matakuliah dari masingmasing fakultas dan jurusannya. Halaman ini berisikan Kode Matakuliah, Nama Matakuliah, SKS Kuliah, SKS bayar dan Jurusan.
50
Gambar 4.6 Halaman Syarat Matakuliah
Gambar 4.6 merupakan halaman syarat matakuliah, untuk mengatur syarat dari pengambilan matakuliah semester berikut, dan nilai minimum dari matakuliah sebelumnya.
Kode Program 4.5 Halaman Syarat Matakuliah 1.
2. 3. 4. 5. 6.
Protected Sub ASPxGridView1_DetailRowExpandedChanged(ByVal sender As Object, ByVal e As DevExpress.Web.ASPxGridView.ASPxGridViewDetailRowEventArgs) Handles ASPxGridView1.DetailRowExpandedChanged Session("MatkulID") = ASPxGridView1.GetRowValues(e.VisibleIndex, "MatkulID") End Sub Protected Sub ASPxGridView2_RowInserting(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataInsertingEventArgs) e.NewValues.Item("IDMatKul!Key") = Session("MatkulID") End Sub
Kode program baris 1-3 berfungsi untuk mengambil id matakuliah untuk disimpan di syarat matakuliah. Kode program baris 4-6 berfungsi untuk menyimpan syarat matakuliah.
51
Gambar 4.7 Halaman Matakuliah Semester
Pada halaman matakuliah semester, administrator dapat memilih matakuliah yang akan dibuka berdasarkan fakultas dan jurusan.
Gambar 4.8 Halaman Jadwal Matakuliah
Gambar 4.8 merupakan halaman jadwal matakuliah dari setiap fakultas dan jurusan. Administrator dapat menambahkan, mengubah dan menghapus data sesuai kebutuhan.
52
Gambar 4.9 Halaman Pengajar
Gambar
4.9
merupakan
halaman
pengajar,
untuk
memasukkan, meng-edit dan menghapus nama pengajar/dosen yang akan mengajar sesuai dengan jadwal di tiap fakultas.
Kode Program 4.6 Simpan Jadwal Pengajar 1.
2. 3. 4. 5. 6.
Protected Sub ASPxGridView1_DetailRowExpandedChanged(ByVal sender As Object, ByVal e As DevExpress.Web.ASPxGridView.ASPxGridViewDetailRowEventArgs) Handles ASPxGridView1.DetailRowExpandedChanged Session("JadwalID") = ASPxGridView1.GetRowValues(e.VisibleIndex, "JadwalID") End Sub Protected Sub ASPxGridView1_RowInserting(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataInsertingEventArgs) e.NewValues.Item("JadwalID!Key") = Session("JadwalID") End Sub
Kode program 4.6 berfungsi mengambil id jadwal untuk di simpan di dosen.
53
Gambar 4.10 Halaman Nilai
Gambar 4.10 merupakan halaman yang berisi nilai setiap mahasiswa. Di halaman ini Administrator memiliki akses penuh untuk memasukkan, edit dan hapus nilai.
Gambar 4.11 Halaman Tahun Akademik
Gambar 4.11 merupakan halaman tahun akademik, untuk mengakses tahun ajaran dan semester yang sedang berlangsung.
54
Gambar 4.12 Halaman Batas SKS (Satuan Kredit Semester)
Gambar 4.12 merupakan halaman batas sks (Satuan Kredit Semester) untuk mengatur batas maksimum matakuliah sesuai dengan IP (Indeks Prestasi) yang diperoleh.
Gambar 4.13 Halaman Setting Mahasiswa
Gambar 4.13 merupakan halaman setting mahasiswa, untuk mengatur mahasiswa yang dapat dan tidak dapat melakukan registrasi.
55
Gambar 4.14 Halaman Jadwal Registrasi Matakuliah
Gambar
4.14
merupakan
halaman
jadwal
regristasi
matakuliah, untuk mengatur jadwal regristrasi agar registrasi dapat berjalan sesuai dengan jadwal.
Gambar 4.15 Halaman Konversi Nilai
Gambar 4.15 merupakan halaman konversi nilai dari angka menjadi huruf.
56
4.1.3 Form Mahasiswa Gambar 4.16 merupakan halaman utama dari form mahasiswa.
Gambar 4.16 Halaman Utama
Jika user melakukan login sebagai mahasiswa, maka akan ditampilkan halaman utama mahasiswa.
Gambar 4.17 Halaman Registrasi Matakuliah
Gambar 4.17 merupakan halaman regristrasi matakuliah, agar mahasiswa dapat melihat matakuliah apa saja yang akan diambil.
57
Kode Program 4.7 Ambil Data Jurusan 1. 2. 3.
4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Private Function GetMatkulbyJurusan() As String Dim thn As New TahunAktifvb(session1) Dim cr As CriteriaOperator = CriteriaOperator.Parse("[TahunAjaranID.TglAktifID]=" & thn.TahunID & _ " And [MatkulID.IDJur.JurusanID]= " & GetMahasiswa.IdJur.JurusanID) Dim coll As New XPCollection(Of JadwalMatkKul)(session1, cr) coll.Sorting.Add(New SortProperty("MatkulID", SortingDirection.Ascending)) Dim st As String = "" For Each obj As JadwalMatkKul In coll If coll.IndexOf(obj) = 0 Then st = st & obj.MatkulID.MatkulID.ToString Else st = st & ", " & obj.MatkulID.MatkulID.ToString End If Next Return "[TahunAjaranID!Key]=" & thn.TahunID & " And [MatkulID!Key] in (" & st & ")" End Function
Kode program baris 1-15 berfungsi untuk mengambil data jurusan.
Hasil dari kode program tersebut menampilkan kode
matakuliah dan nama matakuliah yang dapat diambil oleh mahasiswa.
Kode Program 4.8 Periksa Tanggal Registrasi 1. 2. 3. 4.
Private Function CheckValid() As Boolean If CheckTanggalRegistrasi() Then Dim jam As Date = Date.Now If GetRegistrasi.WaktuMulai <= jam And GetRegistrasi.WaktuAhkir >= jam Then 5. Return True 6. Else 7. KeteranganEror = "Jadwal Registrasi Anda adalah " & GetRegistrasi.WaktuMulai & " sampai " & GetRegistrasi.WaktuAhkir 8. Return False 9. End If 10. End If 11. End Function
Kode program baris 27-31 berfungsi memeriksa tanggal dan waktu registrasi. Jika valid, mahasiswa dapat melanjutkan registrasi. Kode program baris 33-34 berfungsi untuk menampilkan keterangan
58
error jika waktu registrasi tidak valid (waktu registrasi tidak cocok dengan NIM mahasiswa yang login).
Kode Program 4.9 Periksa Objek Registrasi 1. 2. 3. 4. 5. 6. 7. 8. 9.
Private Function GetRegistrasi() As Registrasi Dim objRegistrasi As Registrasi = session1.FindObject(Of Registrasi)(GetCriteria) Return objRegistrasi End Function Private Function GetMahasiswa() As Mahasiswa Dim nim As String = CStr(Session("user")) Dim obj As Mahasiswa = session1.GetObjectByKey(Of Mahasiswa)(nim) Return obj End Function
Kode program baris 47-50 berfungsi untuk mengambil objek registrasi dari session. Kode program baris 57-58 digunakan untuk mengambil user mahasiswa yang ada di session, sedangkan kode program baris 59-61 berfungsi untuk mengambil objek. Hasil dari kode program 4.7, akan ditampilkan pada kartu studi dan jadwal kuliah yang akan diambil mahasiswa.
Gambar 4.18 Halaman Kartu Studi
59
Gambar 4.18 merupakan halaman kartu studi, agar user dengan level mahasiswa, dapat melihat dan membatalkan matakuliah yang telah diregistrasi.
Gambar 4.19 Halaman Hasil Studi
Gambar
4.19
merupakan
halaman
hasil
studi,
agar
mahasiswa dapat melihat hasil pembelajaran selama semester berjalan. Cara perhitungan nilai IP (Indeks Prestasi) ialah sebagai berikut :
Kode Program 4.10 Hitung IP (Indeks Prestasi) Sementara 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Private Function IPSementara() As Decimal Dim coll As New XPCollection(Of Kuliah)(session1, GetCriteria) Dim ak As Decimal = 0 Dim sks As Integer = 0 For Each obj As Kuliah In coll ak = ak + obj.AK sks = sks + obj.MatKulID.SKSKuliah Next If coll.Count > 0 Then Return ak / sks Else Return 0 End If End Function
60
Kode program 4.8 baris 6-7 berfungsi untuk menghitung IP (Indeks Prestasi) mahasiswa.
Gambar 4.20 Halaman Jadwal Kuliah
Gambar
4.20
merupakan
halaman
jadwal
kuliah,
menampilkan matakuliah dan waktu yang dipilih mahasiswa saat registrasi matakuliah untuk diampuh selama semester berjalan.
Gambar 4.21 Halaman Transkrip Nilai
Gambar 4.21 merupakan halaman transkrip nilai, agar mahasiswa dapat melihat IPK (Indeks Prestasi Kumulatif).
61
Cara perhitungan nilai IPK (Indeks Prestasi Kumulatif) ialah sebagai berikut :
Kode Program 4.11 Hitung IPK (Indeks Prestasi Kumulatif) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Private Function IPSementara() As Decimal Dim coll As ArrayList = GetListNilai() Dim ak As Decimal = 0 Dim sks As Integer = 0 For Each obj As NilaiMahasiswa In coll ak = ak + obj.AK sks = sks + obj.SKS Next If coll.Count > 0 Then Return ak / sks Else Return 0 End If End Function
Kode program 4.9 berfungsi untuk menghitung IPK (Indeks Prestasi Kumulatif).
4.1.4 Form Dosen Jika user melakukan login sebagai dosen, maka akan ditampilkan halaman utama dosen.
Gambar 4.22 Halaman Input Nilai
62
Gambar 4.22 merupakan halaman nilai, agar dosen dapat memasukkan nilai sesuai dengan kelas yang diajarkan pada semester berjalan. Kode Program 4.12 Simpan Nilai 1.
9.
Protected Sub SimpanButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim gv As ASPxGridView = ASPxGridView1 For x As Integer = 0 To gv.VisibleRowCount - 1 Dim tb As ASPxTextBox = CType(gv.FindRowCellTemplateControl(x, CType(gv.Columns("Nilai"), GridViewDataColumn), "ASPxTextBox"), ASPxTextBox) If tb.Enabled Then Dim nim As String = CStr(gv.GetRowValues(x, "NIM!Key")) Dim nilaiMhs As String = tb.Text If String.IsNullOrEmpty(nilaiMhs) Then nilaiMhs = "DT" End If
10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Dim obj As New Nilai(session1) With obj .MatKulID = GetMK() .NIM = session1.GetObjectByKey(Of Mahasiswa)(nim) .TahunID = GetThnAjaran() .Nilai_ = nilaiMhs .Save() End With End If Next gv.DataBind() Response.Redirect("default.aspx") End Sub
2. 3. 4.
5. 6. 7. 8.
Kode program 1-9 berfungsi untuk memberi nilai „DT‟ bagi mahasiswa jika nilai kosong atau bernilai nol, sedangkan kode program baris 10-17 berfungsi untuk memasukkan nilai baru mahasiswa dalam satuan huruf.
4.2 Pengujian Aplikasi 4.2.1 Performance Analysis Pada bagian ini dilakukan analisis aplikasi menggunakan bantuan Software Web Application Testing 5.0 (WAPT). WAPT
63
sendiri merupakan alat uji yang digunakan untuk menguji performa sebuah aplikasi web, server web yang berjalan pada jaringan internet maupun internet dengan antarmuka web. Hasil dari pengujian menggunakan software ini dapat digunakan untuk menganalisis performa dari sebuah aplikasi web. Pada Gambar 4.22 disajikan gambar grafik yang menunjukkan hasil pengujian menggunakan WAPT.
Gambar 4.23 Grafik Unjuk Kerja Aplikasi
Dengan grafik pada Gambar 4.23 dapat dijelaskan tentang unjuk kerja aplikasi yang meliputi waktu response yang dibutuhkan oleh seorang user untuk menunggu response dari server, waktu download yang dibutuhkan oleh user dan banyaknya halaman web yang dapat dieksekusi tiap detik, banyaknya hits yang dieksekusi tiap detik, dan user yang aktif dalam mengakses aplikasi. Waktu eksekusi (sumbu x) berbanding dengan waktu untuk melakukan pengujian aplikasi (sumbu y).
64
Pages per Second Pages per second yang dimaksud adalah banyaknya halaman web yang dapat dieksekusi tiap detik. Hal ini terlihat pada grafik Gambar 4.23 dimana untuk tiap interval waktu tertentu terjadi perubahan pages per second berkisar antara 0 – 8,4 detik. Hits per Second Hits per second yang dimaksud adalah banyaknya hits tiap halaman web yang dapat dieksekusi tiap detik. Halaman ini terlihat pada Gambar 4.23 dimana untuk tiap interval waktu tertentu terjadi perubahan yang sama dengan pages per second yaitu berkisar antara 0 – 12,6 detik. Active Users Active users yang dimaksud adalah banyaknya user yang aktif dalam mengakses aplikasi web. Gambar 4.23 menunjukkan sebanyak 10 user yang mengakses aplikasi ini dan tidak terjadi penambahan atau pengurangan users. Hasil analisa dari grafik pengujian aplikasi, dapat diketahui semakin banyak user yang melakukan aktivitas semakin lama waktu response dari server.