BAB IV. IMPLEMENTASI SISTEM
4.3 Pembuatan Antar Muka Pemakai (User Interface)
Di sini akan dijelaskan bagaimana pembuatan antar muka pemakai (user interface) implementasi algoritma K-means untuk memprediksi nilai mahasiswa. Pada sistem ini hanya ada satu pengguna, yaitu user (dalam
hal ini yaitu mahasiswa) yang berhak untuk melalukan prediksi, mengubah password dan mengetahui tentang sistem.
Saat pertama kali sistem dijalankan akan menampilkan tampilan pembuka, sebagai berikut:
Setelah itu, sistem akan meminta aktivasi dengan mengisi form
login. Untuk login user diminta memasukkan identitas berupa nim dan
password (Gambar 4.3).
40
Dengan menekan tombol LOGIN, keabsahan data yang dimasukkan akan
dicek kecocokannya (verifikasi) .
Kode program pada form Login adalah sebagai berikut: Option Explicit
Dim conP As ADODB.Connection
Private Sub cmdBatal_Click() Unload LOGIN_USER End Sub
Private Sub cmdLogin_Click() If in_nim.Text = "" Then
MsgBox "NIM blm diinputkan", 0, "Peringatan" in_nim.SetFocus
ElseIf in_password.Text = "" Then
MsgBox "Password belum diinputkan", 0, "Peringatan" in_password.SetFocus
Else
With DE.rsLOGIN_USER
.Filter = "[nim]='" & in_nim.Text & "'" If .EOF And .BOF Then
MsgBox "Data tidak ditemukan", vbInformation, "DOR!" ElseIf in_password.Text = ![Password] Then
Me.Hide Load MENU_USER
MENU_USER.Show Else
MsgBox "Login anda salah, silahkan anda mengulangi kembali!", vbInformation, "Peringatan" in_nim = "" in_password = "" in_nim.SetFocus End If End With End If End Sub
Private Sub Form_Activate() in_nim.SetFocus
End Sub
Private Sub in_nim_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And _ KeyAscii <> vbKeyBack Then
KeyAscii = 0 End If If Len(in_nim.Text) = 10 Then in_password.SetFocus End If End Sub
Kemudian jika login berhasil maka user dapat masuk ke menu user
(Gambar 4.4).
Halaman Menu User memperlihatkan semua menu yang dapat diakses oleh user diantaranya adalah:
1. Prediksi
2. Ubah Password.
3. Abaout (Mengetahui bagaimana sistem digunakan) 4. Logout (jika user ingin keluar dari sistem)
42
Kode program pada Menu Utama adalah sebagai berikut :
Halaman Ubah Password digunakan oleh user untuk mengubah
data password yang sudah ada dalam database. Untuk mengubah
password user diminta untuk memasukkan data password baru dan
verifikasi password. Dengan menekan tombol EDIT maka secara otomatis data password baru akan disimpan dalam database menggantikan
Private Sub cmdLogout_Click() End
End Sub
Private Sub cmdPrediksi_Click() Unload Me
Load FORM_PREDIKSI FORM_PREDIKSI.Show End Sub
Private Sub Command2_Click() Load UBAH_PASSWORD UBAH_PASSWORD.Show End Sub
Private Sub cmd_about_Click() Unload Me
Load ABOUT ABOUT.Show End Sub
password yang lama, hal ini terjadi jika data password baru yang
dimasukkan sama dengan data verifikasi password.
Kode program pada form Ubah Password, adalah sebagai berikut:
Private Sub cmdBatal_Click() Unload Me
Load MENU_USER MENU_USER.Show End Sub
Private Sub cmdEdit_Click()
If Text1.Text = "" Then
MsgBox "Data belum diinputkan", vbInformation, "Peringatan" Text1.SetFocus
ElseIf Text2.Text = "" Then
MsgBox "data belum diinputkan", vbInformation, "Peringatan" Text2.SetFocus
Else
With DE.rsLOGIN_USER
.Filter = "[nim]='" & txtnim.Text & "'" If Text1.Text = Text2.Text Then
dbLog = " Update mahasiswa " & _
"Set [password] ='" & Text1.Text & "'" & _ "Where [nim]='" & txtnim.Text & "'" DE.DE_Prediksi.Execute (dbLog) DE.rsLOGIN_USER.Requery Unload UBAH_PASSWORD Load UBAH_PASSWORD Label3.ForeColor = &HC0& Label3.BackColor = &HE0E0E0 UBAH_PASSWORD.Show Else
MsgBox "data verifikasi salah, Ulangi lagi", vbInformation, "Peringatan" Text2 = "" Text2.SetFocus End If End With End If End Sub
Private Sub Form_Activate()
Text1.SetFocus
44
Pada form prediksi ini ditampilkan semua mata kuliah yang sudah diambil oleh mahasiswa beserta dengan nilai yang didapat, juga ditampilkan jumlah SKS yang telah ditempuh dan IPK mahasiswa. Saat menekan tombol PREDIKSI maka akan ditampilkan form pilih semester (Gambar 4.7).
kode program pada form Prediksi, adalah sebagai berikut: Private Sub cmd_batal_Click()
Unload Me MENU_USER.Show End Sub
Private Sub cmd_prediksi_Click() PILIH_SEMESTER.Show End Sub
Private Sub Form_Activate() End Sub
Private Sub Form_Load() Dim ipk As Double
ipk = Round(txtjum_nilai.Text / txtjum_sks.Text, 2)
txt_IPK.Text = ipk
End Sub
Pada form pilih semester terdapat dua pilihan yaitu semester genap dan ganjil. Saat memilih semester genap maka akan ditampilkan matakuliah yang ditawarkan pada saat semester genap (Gambar 4.9), begitu juga saat memilih semester ganjil maka akan ditampilkan matakuliah yang ditawarkan pada semester ganjil (Gambar 4.8).
Kode program pada halaman pilih semester, adalah sebagai berikut: Private Sub cmb_semester_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And _ KeyAscii <> vbKeyBack Or _
Not (KeyAscii < vbKey0 Or KeyAscii > vbKey9) Then
KeyAscii = 0
End If End Sub
Private Sub cmd_pilih_Click() Me.Hide
Unload FORM_PREDIKSI
If cmb_semester.ListIndex = 0 Then PILIH_MATAKULIAH_Ganjil.Show
ElseIf cmb_semester.ListIndex = 1 Then PILIH_MATAKULIAH_Genap.Show
Else
MsgBox "Pilih Dulu", vbInformation, "Pemberitahuan"
Load Me
Me.Show
End If End Sub
Private Sub Form_Activate() Dim pil As ComboItem cmb_semester = ""
cmb_semester.DataChanged = False End Sub
Private Sub Form_Load()
cmb_semester.AddItem ("Ganjil") cmb_semester.AddItem ("Genap") End Sub
46
Pada form ini mahasiswa bisa memilih matakuliah apa saja yang akan diprediksi, tentunya matakuliah yang ditawarkan berdasarkan pilihan semester. Setelah memilih matakuliah, untuk memprediksinya tekan tombol prediksi.
Kode program pada halaman pilih matakuliah, adalah sebagai berikut: Private Sub cmd_prediksi_Click()
Dim error As Boolean List3.Clear List7.Clear
For i = 0 To List1.ListCount - 1 With DE.rsMK_PRASYARAT
.Filter = "[kode_MK]='" & CStr(List1.List(i)) & "'" If .EOF And .BOF Then
Exit Sub Else If .RecordCount > 0 Then .MoveFirst Do Until .EOF With DE.rsCommand4
.Filter = "([nim]='" & txtnim.Text & "') And ([kode_prasyarat]='" & DE.rsMK_PRASYARAT.Fields("kode_prasyarat") & "')"
If .EOF And .BOF Then
MsgBox "prasyarat mata kuliah" & vbCrLf & _ CStr(List1.List(i)) & _
vbTab & "yaitu" & vbCrLf &
DE.rsMK_PRASYARAT.Fields("kode_prasyarat").Value & _
vbTab & "belum diambil", vbInformation, "Pemberitahuan" List1.RemoveItem (i) List2.RemoveItem (i) List4.RemoveItem (i) List7.RemoveItem (i) error = True Else List3.AddItem CStr(DE.rsMK_PRASYARAT.Fields("kode_prasyarat")) List7.AddItem CStr(DE.rsMK_PRASYARAT.Fields("nama_MK")) 'Call kmeans End If End With .MoveNext Loop End If End If End With Next i
If error = True Then Exit Sub
Else
If List1.ListCount = 0 Then
MsgBox "Pilih dahulu mata kuliah yang akan diprediksi !", vbInformation, "DOR!"
ElseIf List1.ListCount > 1 Then
MsgBox "Pilih satu mata kuliah saja !", vbInformation, "DOR!" Else Me.Hide 'prediksi_ganjil.Show hasil_prediksi_ganjil.Show End If End If End Sub
Private Sub cmd_Tambah_Click() Dim X As Object
Dim i As Integer Dim clm As ColumnHeader
'If ListView1.SelectedItem Is Nothing Then Exit Sub If ListView1.Checkboxes = False Then Exit Sub List1.Clear List2.Clear List4.Clear List5.Clear List7.Clear For i = 1 To ListView1.ListItems.Count
If ListView1.ListItems(i).Checked = True Then
List1.AddItem CStr(ListView1.ListItems(i).ListSubItems(1).Text) List2.AddItem CStr(ListView1.ListItems(i).ListSubItems(2).Text) List4.AddItem CStr(ListView1.ListItems(i).ListSubItems(3).Text) End If 'ListView1.ListItems(i).Checked = False Next i End Sub