LAMPIRAN A LISTING PROGRAM frmMenu.frm

  

LAMPIRAN A

LISTING PROGRAM

frmMenu.frm

  Private Sub cmdAgama_Click() frmRemisi.Show frmRemisi.lbAgama.Visible = True frmRemisi.cbAgama.Visible = True End Sub Private Sub cmdDataWB_Click() frmDataWB.Show End Sub Private Sub cmdKriteria_Click() frmBobot.Show End Sub Private Sub cmdMerdeka_Click() frmRemisi.Show End Sub

  frmDataWB.frm

  Dim newID As String Private Sub cmdAdd_Click() Dim idPelanggaran As String Dim idJasa As String Dim idPerkara As String Dim temp As String If lvPerkara.ListItems.Count = 0 Then MsgBox ("Anda belum mengisi perkara dari warga binaan!") Exit Sub Else cbPerkara.Text = "Umum"

  For i = 1 To lvPerkara.ListItems.Count temp = lvPerkara.ListItems(i).SubItems(1) If temp = "Khusus" Then cbPerkara.Text = "Khusus" Exit For End If Next End If If Not (txtStatusUtama.Text = "Edit Mode") Then Set cari = New Recordset cari.Open "SELECT * FROM data_narapidana ORDER BY id_narapidana DESC", Con, 1, 2 If Not cari.EOF Then newID = cari!id_narapidana + 1 Else newID = 1 End If Set cari = Nothing Set simpan = New Recordset simpan.Open "data_narapidana", Con, 1, 2 simpan.AddNew simpan!id_narapidana = newID simpan!nama = tbNama.Text simpan!Agama = cbAgama.Text simpan!perkara = cbPerkara.Text simpan!tanggal_penahanan = dtPenahanan.Value simpan!masa_pidana = tbTahun.Text & ";" & tbBulan.Text & ";" & tbHari.Text simpan.Update Set simpan = Nothing If lvPelanggaran.ListItems.Count <> 0 Then Set cari = New Recordset cari.Open "SELECT * FROM data_pelanggaran ORDER BY no_urut DESC", Con, 1, 2 If Not cari.EOF Then idPelanggaran = cari!no_urut + 1 Else idPelanggaran = 1

  End If Set cari = Nothing For i = 1 To lvPelanggaran.ListItems.Count Set simpan = New Recordset simpan.Open "data_pelanggaran", Con, 1, 2 simpan.AddNew simpan!no_urut = idPelanggaran simpan!id_narapidana = newID simpan!pelanggaran = lvPelanggaran.ListItems(i).SubItems(2) simpan!Tahun = lvPelanggaran.ListItems(i).SubItems(1) simpan.Update Set simpan = Nothing idPelanggaran = idPelanggaran + 1 Next End If If lvJasa.ListItems.Count <> 0 Then Set cari = New Recordset cari.Open "SELECT * FROM data_jasa ORDER BY no_urut DESC", Con, 1, 2 If Not cari.EOF Then idJasa = cari!no_urut + 1 Else idJasa = 1 End If Set cari = Nothing For i = 1 To lvJasa.ListItems.Count Set simpan = New Recordset simpan.Open "data_jasa", Con, 1, 2 simpan.AddNew simpan!no_urut = idJasa simpan!id_narapidana = newID simpan!aktivitas = lvJasa.ListItems(i).SubItems(2) simpan!Tahun = lvJasa.ListItems(i).SubItems(1) simpan.Update Set simpan = Nothing idJasa = idJasa + 1 Next End If If lvPerkara.ListItems.Count <> 0 Then Set cari = New Recordset cari.Open "SELECT * FROM data_perkara ORDER BY no_urut DESC", Con, 1, 2 If Not cari.EOF Then idPerkara = cari!no_urut + 1 Else idPerkara = 1 End If Set cari = Nothing For i = 1 To lvPerkara.ListItems.Count Set simpan = New Recordset simpan.Open "data_perkara", Con, 1, 2 simpan.AddNew simpan!no_urut = idPerkara simpan!id_narapidana = newID simpan!jenis = lvPerkara.ListItems(i).SubItems(1) simpan!perkara = lvPerkara.ListItems(i).SubItems(2) simpan.Update Set simpan = Nothing idPerkara = idPerkara + 1 Next End If Else Set cari = New Recordset cari.Open "SELECT * FROM data_narapidana WHERE id_narapidana=" & txtIdWB.Text, Con, 1, 2 If Not cari.EOF Then cari.Fields("nama") = tbNama.Text

cari.Fields("agama") = cbAgama.Text cari.Fields("perkara") = cbPerkara.Text cari.Fields("tanggal_penahanan") = dtPenahanan.Value cari.Fields("masa_pidana") = tbTahun.Text & ";" & tbBulan.Text & ";" & tbHari.Text cari.Update End If Set cari = Nothing End If tbNama.Text = "" cbAgama.Text = "Pilih salah satu" dtPenahanan.Value = Now tbTahun.Text = "" tbBulan.Text = "" tbHari.Text = "" txtIdWB.Text = "" lvPelanggaran.ListItems.Clear lvJasa.ListItems.Clear lvPerkara.ListItems.Clear cmdAdd.Caption = "Tambah" cmdEdit.Visible = True cmdDelete.Visible = True txtStatusUtama.Text = "Netral" LoadData End Sub Private Sub cmdDelete_Click() If lvDataWB.SelectedItem Is Nothing Then Exit Sub If MsgBox("Benarkah Anda ingin menghapus data ini?", vbYesNo, "Konfirmasi") = vbYes Then Set cari = New Recordset cari.Open "DELETE FROM data_narapidana WHERE id_narapidana=" &

lvDataWB.SelectedItem, Con, 1, 2 Set cari = Nothing Set cari = New Recordset cari.Open "DELETE FROM data_perkara WHERE id_narapidana=" & lvDataWB.SelectedItem, Con, 1, 2 Set cari = Nothing Set cari = New Recordset cari.Open "DELETE FROM data_jasa WHERE id_narapidana=" & lvDataWB.SelectedItem, Con, 1, 2 Set cari = Nothing Set cari = New Recordset cari.Open "DELETE FROM data_pelanggaran WHERE id_narapidana=" & lvDataWB.SelectedItem, Con, 1, 2 Set cari = Nothing lvDataWB.ListItems.Remove (lvDataWB.SelectedItem.Index) End If End Sub Private Sub cmdEdit_Click() Dim idWB As Integer Dim lamaArr() As String If lvDataWB.SelectedItem Is Nothing Then Exit Sub Else idWB = lvDataWB.ListItems.Item(lvDataWB.SelectedItem.Index).Text txtIdWB.Text = idWB Set cari = New Recordset cari.Open "SELECT * FROM data_narapidana WHERE id_narapidana=" & idWB, Con, 1, 2 If cari.RecordCount <> 0 Then tbNama.Text = cari!nama cbAgama.Text = cari!Agama cbPerkara.Text = cari!perkara

dtPenahanan.Value = CDate(cari!tanggal_penahanan) lamaArr = Split(cari!masa_pidana, ";") tbTahun.Text = lamaArr(0) tbBulan.Text = lamaArr(1) tbHari.Text = lamaArr(2) End If Set cari = Nothing Set cari = New Recordset cari.Open "SELECT * FROM data_pelanggaran WHERE id_narapidana=" & idWB, Con, 1, 2 If cari.RecordCount <> 0 Then Do While Not cari.EOF Set j = lvPelanggaran.ListItems.Add(, , cari!no_urut) j.SubItems(1) = cari!Tahun j.SubItems(2) = cari!pelanggaran cari.MoveNext Loop End If Set cari = Nothing Set cari = New Recordset cari.Open "SELECT * FROM data_jasa WHERE id_narapidana=" & idWB, Con, 1, 2 If cari.RecordCount <> 0 Then Do While Not cari.EOF Set j = lvJasa.ListItems.Add(, , cari!no_urut) j.SubItems(1) = cari!Tahun j.SubItems(2) = cari!aktivitas cari.MoveNext Loop End If Set cari = Nothing Set cari = New Recordset cari.Open "SELECT * FROM data_perkara WHERE id_narapidana=" & idWB, Con, 1, 2 If cari.RecordCount <> 0 Then Do While Not cari.EOF Set j = lvPerkara.ListItems.Add(, , cari!no_urut) j.SubItems(1) = cari!jenis

j.SubItems(2) = cari!perkara cari.MoveNext Loop End If Set cari = Nothing cmdAdd.Caption = "Simpan" cmdEdit.Visible = False cmdDelete.Visible = False txtStatusUtama.Text = "Edit Mode" End If End Sub Private Sub cmdHapusJasa_Click() If lvJasa.SelectedItem Is Nothing Then Exit Sub If MsgBox("Benarkah Anda ingin menghapus data ini?", vbYesNo, "Konfirmasi") = vbYes Then If txtStatusUtama.Text = "Edit Mode" Then Set cari = New Recordset cari.Open "DELETE FROM data_jasa WHERE no_urut=" & lvJasa.ListItems.Item(lvJasa.SelectedItem.Index), Con, 1, 2 Set cari = Nothing End If lvJasa.ListItems.Remove (lvJasa.SelectedItem.Index) End If End Sub Private Sub cmdHapusPelanggaran_Click() If lvPelanggaran.SelectedItem Is Nothing Then Exit Sub If MsgBox("Benarkah Anda ingin menghapus data ini?", vbYesNo, "Konfirmasi") = vbYes Then If txtStatusUtama.Text = "Edit Mode" Then Set cari = New Recordset cari.Open "DELETE FROM data_pelanggaran WHERE no_urut=" & lvPelanggaran.ListItems.Item(lvPelanggaran.SelectedItem.Index), Con, 1, 2 Set cari = Nothing End If lvPelanggaran.ListItems.Remove (lvPelanggaran.SelectedItem.Index)

  End If End Sub Private Sub cmdHapusPerkara_Click() If lvPerkara.SelectedItem Is Nothing Then Exit Sub If MsgBox("Benarkah Anda ingin menghapus data ini?", vbYesNo, "Konfirmasi") = vbYes Then If txtStatusUtama.Text = "Edit Mode" Then Set cari = New Recordset cari.Open "DELETE FROM data_perkara WHERE no_urut=" & lvPerkara.ListItems.Item(lvPerkara.SelectedItem.Index), Con, 1, 2 'cari.Open "DELETE FROM data_perkara WHERE no_urut=" & no_urut, Con, 1, 2 Set cari = Nothing End If lvPerkara.ListItems.Remove (lvPerkara.SelectedItem.Index) End If End Sub Private Sub cmdTmbhJasa_Click() frmIsian.Show frmIsian.tbStatus.Text = "Jasa" End Sub Private Sub cmdTmbhPelanggaran_Click() frmIsian.Show frmIsian.tbStatus.Text = "Pelanggaran" End Sub Private Sub cmdTmbhPerkara_Click() frmIsian.Show frmIsian.tbStatus.Text = "Perkara" End Sub Private Sub Form_Load() Dim ch As ColumnHeader Connect

  Set ch = lvDataWB.ColumnHeaders.Add(, , "No.", 500) Set ch = lvDataWB.ColumnHeaders.Add(, , "Nama Warga Binaan", 2300, vbLeftJustify) Set ch = lvDataWB.ColumnHeaders.Add(, , "Agama", 900, vbCenter) Set ch = lvDataWB.ColumnHeaders.Add(, , "Perkara", 900, vbCenter) Set ch = lvDataWB.ColumnHeaders.Add(, , "Tanggal Penahanan", 1800, vbCenter) Set ch = lvDataWB.ColumnHeaders.Add(, , "Masa Pidana", 1800, vbCenter) lvDataWB.GridLines = True LoadData End Sub Public Sub LoadData() lvDataWB.ListItems.Clear Set cari = New Recordset cari.Open "SELECT * FROM data_narapidana ORDER BY id_narapidana ASC", Con, 1, 2 With cari Do While Not .EOF Set j = lvDataWB.ListItems.Add(, , .Fields!id_narapidana) j.SubItems(1) = .Fields!nama j.SubItems(2) = .Fields!Agama j.SubItems(3) = .Fields!perkara j.SubItems(4) = .Fields!tanggal_penahanan j.SubItems(5) = .Fields!masa_pidana .MoveNext Loop End With Set cari = Nothing End Sub

  frmBobot.frm

  Private Sub cmdSimpan_Click() Dim totBobot As Integer Dim noKriteria As Integer noKriteria = 1 totBobot = CInt(tbKelakuan.Text) + CInt(tbPerkara.Text) + CInt(tbJasa.Text) tbKelakuan.Text = Format(CDec(CInt(tbKelakuan.Text) / totBobot), "0.0000") tbPerkara.Text = Format(CDec(CInt(tbPerkara.Text) / totBobot), "0.0000") tbJasa.Text = Format(CDec(CInt(tbJasa.Text) / totBobot), "0.0000") Set hapus = New Recordset hapus.Open "DELETE FROM data_kriteria", Con, 1, 2 Set hapus = Nothing Do While Not noKriteria > 3 Set simpan = New Recordset simpan.Open "data_kriteria", Con, 1, 2 simpan.AddNew simpan!no_kriteria = noKriteria If noKriteria = 1 Then simpan!nama = "Kelakuan" simpan!bobot = tbKelakuan.Text ElseIf noKriteria = 2 Then simpan!nama = "Perkara" simpan!bobot = tbPerkara.Text ElseIf noKriteria = 3 Then simpan!nama = "Jasa" simpan!bobot = tbJasa.Text End If simpan.Update Set simpan = Nothing noKriteria = noKriteria + 1 Loop End Sub Private Sub Form_Load() Connect End Sub

  frmIsian.frm

  Private Sub cmdSimpan_Click() Dim a As Integer If frmDataWB.txtStatusUtama.Text = "Edit Mode" Then Dim idPelanggaran As String Dim idJasa As String Dim idPerkara As String If tbStatus.Text = "Pelanggaran" Then Set cari = New Recordset cari.Open "SELECT * FROM data_pelanggaran ORDER BY no_urut DESC", Con, 1, 2 If Not cari.EOF Then idPelanggaran = cari!no_urut + 1 Else idPelanggaran = 1 End If Set cari = Nothing Set simpan = New Recordset simpan.Open "data_pelanggaran", Con, 1, 2 simpan.AddNew simpan!no_urut = idPelanggaran simpan!id_narapidana = frmDataWB.txtIdWB.Text simpan!pelanggaran = tbKet.Text simpan!Tahun = dtTanggal.Value simpan.Update Set simpan = Nothing Set j = frmDataWB.lvPelanggaran.ListItems.Add(, , idPelanggaran) j.SubItems(1) = dtTanggal.Value j.SubItems(2) = tbKet.Text ElseIf tbStatus.Text = "Jasa" Then Set cari = New Recordset cari.Open "SELECT * FROM data_jasa ORDER BY no_urut DESC", Con, 1, 2

  If Not cari.EOF Then idJasa = cari!no_urut + 1 Else idJasa = 1 End If Set cari = Nothing Set simpan = New Recordset simpan.Open "data_jasa", Con, 1, 2 simpan.AddNew simpan!no_urut = idJasa simpan!id_narapidana = frmDataWB.txtIdWB.Text simpan!aktivitas = tbKet.Text simpan!Tahun = dtTanggal.Value simpan.Update Set simpan = Nothing Set j = frmDataWB.lvJasa.ListItems.Add(, , idJasa) j.SubItems(1) = dtTanggal.Value j.SubItems(2) = tbKet.Text Else Set cari = New Recordset cari.Open "SELECT * FROM data_perkara ORDER BY no_urut DESC", Con, 1, 2 If Not cari.EOF Then idPerkara = cari!no_urut + 1 Else idPerkara = 1 End If Set cari = Nothing Set simpan = New Recordset simpan.Open "data_perkara", Con, 1, 2 simpan.AddNew simpan!no_urut = idPerkara simpan!id_narapidana = frmDataWB.txtIdWB.Text simpan!perkara = tbKet.Text simpan!jenis = cbPerkara.Text simpan.Update Set simpan = Nothing Set j = frmDataWB.lvPerkara.ListItems.Add(, , idPerkara) j.SubItems(1) = cbPerkara.Text j.SubItems(2) = tbKet.Text End If Else ' bukan edit mode If tbStatus.Text = "Pelanggaran" Then a = frmDataWB.lvPelanggaran.ListItems.Count Set j = frmDataWB.lvPelanggaran.ListItems.Add(, , a + 1) j.SubItems(1) = dtTanggal.Value j.SubItems(2) = tbKet.Text ElseIf tbStatus.Text = "Jasa" Then a = frmDataWB.lvJasa.ListItems.Count Set j = frmDataWB.lvJasa.ListItems.Add(, , a + 1) j.SubItems(1) = dtTanggal.Value j.SubItems(2) = tbKet.Text Else a = frmDataWB.lvPerkara.ListItems.Count Set j = frmDataWB.lvPerkara.ListItems.Add(, , a + 1) j.SubItems(1) = cbPerkara.Text j.SubItems(2) = tbKet.Text End If End If Unload Me End Sub Private Sub Form_Activate() If tbStatus.Text = "Perkara" Then lbTgl.Visible = False dtTanggal.Visible = False lbPerkara.Visible = True cbPerkara.Visible = True

  End If End Sub

  frmRemisi.frm

  Dim tot_rank_kelakuan As Double Dim tot_rank_perkara As Double Dim tot_rank_jasa As Double Dim AmaxKelakuan As Double Dim AmaxPerkara As Double Dim AmaxJasa As Double Dim AminKelakuan As Double Dim AminPerkara As Double Dim AminJasa As Double Private Sub cbAgama_Click() lvDataWB.ListItems.Clear End Sub Private Sub cmdJarak_Click() Dim Dmax As Double Dim Dmin As Double For i = 1 To lvDataWB.ListItems.Count Dmax = Sqr((AmaxKelakuan - lvNormBobot.ListItems(i).SubItems(3)) ^ 2 + (AmaxPerkara - 2 - (AmaxJasa

  • lvNormBobot.ListItems(i).SubItems(4)) ^ lvNormBobot.ListItems(i).SubItems(5)) ^ 2)

  2 + - Dmin = Sqr((lvNormBobot.ListItems(i).SubItems(3) AminKelakuan) ^

  • (lvNormBobot.ListItems(i).SubItems(4) AminPerkara) + ^

  2 (lvNormBobot.ListItems(i).SubItems(5) - AminJasa) ^ 2) Set j = lvJarakPisah.ListItems.Add(, , i) j.SubItems(1) = lvDataWB.ListItems(i).SubItems(1) j.SubItems(2) = lvDataWB.ListItems(i).SubItems(2) j.SubItems(3) = Format(Dmax, "0.0000") j.SubItems(4) = Format(Dmin, "0.0000") Next cmdJarak.Enabled = False cmdKedekatan.Enabled = True End Sub Private Sub cmdKedekatan_Click() Dim v As Double For i = 1 To lvDataWB.ListItems.Count v = Val(lvJarakPisah.ListItems(i).SubItems(4)) / (Val(lvJarakPisah.ListItems(i).SubItems(4))

  • Val(lvJarakPisah.ListItems(i).SubItems(3))) Set j = lvKedekatan.ListItems.Add(, , i) j.SubItems(1) = lvDataWB.ListItems(i).SubItems(1) j.SubItems(2) = lvDataWB.ListItems(i).SubItems(2) j.SubItems(3) = Format(v, "0.0000") Next

  cmdKedekatan.Enabled = False cmdUrut.Enabled = True End Sub Private Sub cmdLaporan_Click() crLaporan.ReportFileName = App.Path & "\Hasil.rpt" crLaporan.WindowShowRefreshBtn = True crLaporan.DataFiles(0) = App.Path & "\dRutan.mdb" crLaporan.Action = 1 End Sub Private Sub cmdMulai_Click() Dim Query As String Dim Batas As Date 'Dim status As String Dim noUrut As Integer If dtTime.Value >= DateValue(Now) Then Batas = DateValue(DateAdd("m", -6, dtTime.Value))

  If cbAgama.Visible Then 'jika remisi Khusus Query = "SELECT * FROM data_narapidana" & _ " WHERE agama = '" & cbAgama.Text & "'" Else 'jika remisi umum Query = "SELECT * FROM data_narapidana" End If noUrut = 0 Set cari = New Recordset cari.Open Query, Con, 1, 2 With cari Do While Not .EOF If (.Fields!perkara = "Umum" And .Fields!tanggal_penahanan <= Batas) Or (.Fields!perkara = "Khusus" And cekKhusus(.Fields!masa_pidana, .Fields!tanggal_penahanan, dtTime.Value)) Then noUrut = noUrut + 1 Set j = lvDataWB.ListItems.Add(, , noUrut) j.SubItems(1) = .Fields!id_narapidana j.SubItems(2) = .Fields!nama j.SubItems(3) = .Fields!perkara j.SubItems(4) = .Fields!tanggal_penahanan End If .MoveNext Loop End With Set cari = Nothing cmdMulai.Enabled = False cmdRanking.Enabled = True End If End Sub

  Private Sub cmdNorm_Click() 'lvLoadNormalisasi For i = 1 To lvDataWB.ListItems.Count Set j = lvNormalisasi.ListItems.Add(, , i) j.SubItems(1) = lvDataWB.ListItems(i).SubItems(1) j.SubItems(2) = lvDataWB.ListItems(i).SubItems(2) j.SubItems(3) = Format(Val(lvRanking.ListItems(i).SubItems(3)) / tot_rank_kelakuan, "0.0000") j.SubItems(4) = Format(Val(lvRanking.ListItems(i).SubItems(4)) / tot_rank_perkara, "0.0000") j.SubItems(5) = Format(Val(lvRanking.ListItems(i).SubItems(5)) / tot_rank_jasa, "0.0000") Next cmdNorm.Enabled = False cmdNormBobot.Enabled = True End Sub Private Sub cmdNormBobot_Click() Dim Query As String Dim BobotK1 As Double Dim BobotK2 As Double Dim BobotK3 As Double Dim NormBobotK1 As Double Dim NormBobotK2 As Double Dim NormBobotK3 As Double Query = "SELECT * FROM data_kriteria" Set cari = New Recordset cari.Open Query, Con, 1, 2 Do While Not cari.EOF If cari!nama = "Kelakuan" Then BobotK1 = cari!bobot ElseIf cari!nama = "Perkara" Then BobotK2 = cari!bobot ElseIf cari!nama = "Jasa" Then BobotK3 = cari!bobot

  End If cari.MoveNext Loop Set cari = Nothing For i = 1 To lvDataWB.ListItems.Count NormBobotK1 = Format(Val(lvNormalisasi.ListItems(i).SubItems(3)) * BobotK1, "0.0000") NormBobotK2 = Format(Val(lvNormalisasi.ListItems(i).SubItems(4)) * BobotK2, "0.0000") NormBobotK3 = Format(Val(lvNormalisasi.ListItems(i).SubItems(5)) * BobotK3, "0.0000") Set j = lvNormBobot.ListItems.Add(, , i) j.SubItems(1) = lvDataWB.ListItems(i).SubItems(1) j.SubItems(2) = lvDataWB.ListItems(i).SubItems(2) j.SubItems(3) = NormBobotK1 j.SubItems(4) = NormBobotK2 j.SubItems(5) = NormBobotK3 If i = 1 Then AmaxKelakuan = NormBobotK1 AmaxPerkara = NormBobotK2 AmaxJasa = NormBobotK3 AminKelakuan = NormBobotK1 AminPerkara = NormBobotK2 AminJasa = NormBobotK3 Else If AmaxKelakuan < NormBobotK1 Then AmaxKelakuan = NormBobotK1 End If If AmaxPerkara < NormBobotK2 Then AmaxPerkara = NormBobotK2 End If If AmaxJasa < NormBobotK3 Then AmaxJasa = NormBobotK3 End If

  If AminKelakuan > NormBobotK1 Then AminKelakuan = NormBobotK1 End If If AminPerkara > NormBobotK2 Then AminPerkara = NormBobotK2 End If If AminJasa > NormBobotK3 Then AminJasa = NormBobotK3 End If End If Next cmdNormBobot.Enabled = False cmdSolusi.Enabled = True End Sub Private Sub cmdRanking_Click() Dim Query As String Dim Tahun1 As String Dim Tahun2 As String Dim totUmum As Integer Dim totKhusus As Integer Dim rank_kelakuan As Integer Dim rank_perkara As Integer Dim rank_jasa As Integer tot_rank_kelakuan = 0 tot_rank_perkara = 0 tot_rank_jasa = 0 'lvLoadRanking For i = 1 To lvDataWB.ListItems.Count Query = "SELECT * FROM data_pelanggaran" & _

  " WHERE id_narapidana = " & lvDataWB.ListItems(i).SubItems(1) Set cari = New Recordset cari.Open Query, Con, 1, 2 If cari.RecordCount > 0 Then Tahun = DatePart("yyyy", CDate(cari!Tahun)) If Tahun = DatePart("yyyy", dtTime) Then rank_kelakuan = 1 ElseIf cari.RecordCount > 3 Then rank_kelakuan = 2 ElseIf cari.RecordCount >= 2 Then rank_kelakuan = 3 ElseIf cari.RecordCount = 1 Then rank_kelakuan = 4 End If ElseIf cari.RecordCount = 0 Then rank_kelakuan = 5 End If tot_rank_kelakuan = tot_rank_kelakuan + (rank_kelakuan * rank_kelakuan) Set cari = Nothing Query = "SELECT * FROM data_perkara" & _ " WHERE id_narapidana = " & Val(lvDataWB.ListItems(i).SubItems(1)) & _ " AND jenis = 'Umum'" Set cari = New Recordset cari.Open Query, Con, 1, 2 totUmum = cari.RecordCount Set cari = Nothing Query = "SELECT * FROM data_perkara" & _ " WHERE id_narapidana = " & Val(lvDataWB.ListItems(i).SubItems(1)) & _ " AND jenis = 'Khusus'" Set cari = New Recordset cari.Open Query, Con, 1, 2 totKhusus = cari.RecordCount Set cari = Nothing

  If (totUmum = 1) And (totKhusus = 0) Then rank_perkara = 5 ElseIf (totUmum > 1) And (totKhusus = 0) Then rank_perkara = 4 ElseIf (totUmum = 0) And (totKhusus = 1) Then rank_perkara = 3 ElseIf (totUmum = 0) And (totKhusus > 1) Then rank_perkara = 2 ElseIf (totUmum > 0) And (totKhusus > 0) Then rank_perkara = 1 End If tot_rank_perkara = tot_rank_perkara + (rank_perkara * rank_perkara) Query = "SELECT * FROM data_jasa" & _ " WHERE id_narapidana = " & lvDataWB.ListItems(i).SubItems(1) & _ " ORDER BY tahun DESC" Set cari = New Recordset cari.Open Query, Con, 1, 2 If cari.RecordCount = 0 Then rank_jasa = 1 ElseIf cari.RecordCount > 0 Then Tahun1 = DatePart("yyyy", dtTime.Value) Tahun2 = DatePart("yyyy", CDate(cari!Tahun)) If Tahun1 = Tahun2 Then rank_jasa = 5 Else rank_jasa = 3 End If End If tot_rank_jasa = tot_rank_jasa + (rank_jasa * rank_jasa) Set cari = Nothing

  Set j = lvRanking.ListItems.Add(, , i) j.SubItems(1) = lvDataWB.ListItems(i).SubItems(1) j.SubItems(2) = lvDataWB.ListItems(i).SubItems(2) j.SubItems(3) = rank_kelakuan j.SubItems(4) = rank_perkara j.SubItems(5) = rank_jasa Next tot_rank_kelakuan = Format(Sqr(tot_rank_kelakuan), "0.0000") tot_rank_perkara = Format(Sqr(tot_rank_perkara), "0.0000") tot_rank_jasa = Format(Sqr(tot_rank_jasa), "0.0000") cmdRanking.Enabled = False cmdNorm.Enabled = True End Sub Private Sub cmdSave_Click() For i = 1 To lvDataWB.ListItems.Count Set simpan = New Recordset simpan.Open "data_topsis", Con, 1, 2 simpan.AddNew simpan!no_urut = i simpan!id_narapidana = lvDataWB.ListItems(i).SubItems(1) simpan!rank_kelakuan = lvRanking.ListItems(i).SubItems(3) simpan!rank_perkara = lvRanking.ListItems(i).SubItems(4) simpan!rank_jasa = lvRanking.ListItems(i).SubItems(5) simpan!norm_kelakuan = lvNormalisasi.ListItems(i).SubItems(3) simpan!norm_perkara = lvNormalisasi.ListItems(i).SubItems(4) simpan!norm_jasa = lvNormalisasi.ListItems(i).SubItems(5) simpan!norm_bobot_kelakuan = lvNormBobot.ListItems(i).SubItems(3) simpan!norm_bobot_perkara = lvNormBobot.ListItems(i).SubItems(4) simpan!norm_bobot_jasa = lvNormBobot.ListItems(i).SubItems(5) simpan!amax_kelakuan = lvSolusiIdeal.ListItems(i).SubItems(3) simpan!amax_perkara = lvSolusiIdeal.ListItems(i).SubItems(4) simpan!amax_jasa = lvSolusiIdeal.ListItems(i).SubItems(5) simpan!amin_kelakuan = lvSolusiIdeal.ListItems(i).SubItems(6) simpan!amin_perkara = lvSolusiIdeal.ListItems(i).SubItems(7) simpan!amin_jasa = lvSolusiIdeal.ListItems(i).SubItems(8) simpan!Dmax = lvJarakPisah.ListItems(i).SubItems(3) simpan!Dmin = lvJarakPisah.ListItems(i).SubItems(4) simpan!v = lvKedekatan.ListItems(i).SubItems(3) simpan.Update Set simpan = Nothing Next MsgBox ("Data berhasil disimpan.") cmdSave.Enabled = False cmdLaporan.Enabled = True End Sub Private Sub cmdSolusi_Click() For i = 1 To lvDataWB.ListItems.Count Set j = lvSolusiIdeal.ListItems.Add(, , i) j.SubItems(1) = lvDataWB.ListItems(i).SubItems(1) j.SubItems(2) = lvDataWB.ListItems(i).SubItems(2) j.SubItems(3) = AmaxKelakuan j.SubItems(4) = AmaxPerkara j.SubItems(5) = AmaxJasa j.SubItems(6) = AminKelakuan j.SubItems(7) = AminPerkara j.SubItems(8) = AminJasa Next cmdSolusi.Enabled = False cmdJarak.Enabled = True End Sub Private Sub cmdUrut_Click() For i = 1 To lvDataWB.ListItems.Count Set j = lvHasil.ListItems.Add(, , lvKedekatan.ListItems(i).Index) j.SubItems(1) = lvKedekatan.ListItems(i).SubItems(1)

j.SubItems(2) = lvKedekatan.ListItems(i).SubItems(2) j.SubItems(3) = lvKedekatan.ListItems(i).SubItems(3) Next lvHasil.SortKey = 3 lvHasil.SortOrder = lvwDescending lvHasil.Sorted = True cmdUrut.Enabled = False cmdSave.Enabled = True End Sub Private Sub Form_Load() Connect Set cari = New Recordset cari.Open "DELETE FROM data_topsis", Con, 1, 2 Set cari = Nothing lvLoadHeaderWB lvLoadRanking lvLoadNormalisasi lvLoadNormalisasiBobot lvLoadSolusiIdeal lvLoadJarakPisah lvLoadKedekatan End Sub Private Sub lvLoadHeaderWB() Dim ch As ColumnHeader Set ch = lvDataWB.ColumnHeaders.Add(, , "No.", 500) Set ch = lvDataWB.ColumnHeaders.Add(, , "id", 0) Set ch = lvDataWB.ColumnHeaders.Add(, , "Nama", 2000, vbLeftJustify) Set ch = lvDataWB.ColumnHeaders.Add(, , "Perkara", 900, vbCenter) Set ch = lvDataWB.ColumnHeaders.Add(, , "Tanggal Penahanan", 1800, vbCenter) lvDataWB.GridLines = True

  End Sub Private Sub lvLoadRanking() Dim ch As ColumnHeader Set ch = lvRanking.ColumnHeaders.Add(, , "No.", 500) Set ch = lvRanking.ColumnHeaders.Add(, , "id", 0) Set ch = lvRanking.ColumnHeaders.Add(, , "Nama", 2000, vbLeftJustify) Set ch = lvRanking.ColumnHeaders.Add(, , "Kelakuan (K1)", 900, vbCenter) Set ch = lvRanking.ColumnHeaders.Add(, , "Perkara (K2)", 900, vbCenter) Set ch = lvRanking.ColumnHeaders.Add(, , "Jasa (K3)", 900, vbCenter) lvRanking.GridLines = True End Sub Private Sub lvLoadNormalisasi() Dim ch As ColumnHeader Set ch = lvNormalisasi.ColumnHeaders.Add(, , "No.", 500) Set ch = lvNormalisasi.ColumnHeaders.Add(, , "id", 0) Set ch = lvNormalisasi.ColumnHeaders.Add(, , "Nama", 2000, vbLeftJustify) Set ch = lvNormalisasi.ColumnHeaders.Add(, , "K1", 900, vbCenter) Set ch = lvNormalisasi.ColumnHeaders.Add(, , "K2", 900, vbCenter) Set ch = lvNormalisasi.ColumnHeaders.Add(, , "K3", 900, vbCenter) lvNormalisasi.GridLines = True End Sub Private Sub lvLoadNormalisasiBobot() Dim ch As ColumnHeader Set ch = lvNormBobot.ColumnHeaders.Add(, , "No.", 500) Set ch = lvNormBobot.ColumnHeaders.Add(, , "id", 0) Set ch = lvNormBobot.ColumnHeaders.Add(, , "Nama", 2000, vbLeftJustify) Set ch = lvNormBobot.ColumnHeaders.Add(, , "K1", 900, vbCenter) Set ch = lvNormBobot.ColumnHeaders.Add(, , "K2", 900, vbCenter) Set ch = lvNormBobot.ColumnHeaders.Add(, , "K3", 900, vbCenter) lvNormBobot.GridLines = True End Sub

  Private Sub lvLoadSolusiIdeal() Dim ch As ColumnHeader Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "No.", 500) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "id", 0) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "Nama", 2000, vbLeftJustify) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "Amax Kelakuan", 900, vbCenter) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "Amax Perkara", 900, vbCenter) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "Amax Jasa", 900, vbCenter) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "Amin Kelakuan", 900, vbCenter) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "Amin Perkara", 900, vbCenter) Set ch = lvSolusiIdeal.ColumnHeaders.Add(, , "Amin Jasa", 900, vbCenter) lvSolusiIdeal.GridLines = True End Sub Private Sub lvLoadJarakPisah() Dim ch As ColumnHeader Set ch = lvJarakPisah.ColumnHeaders.Add(, , "No.", 500) Set ch = lvJarakPisah.ColumnHeaders.Add(, , "id", 0) Set ch = lvJarakPisah.ColumnHeaders.Add(, , "Nama", 2000, vbLeftJustify) Set ch = lvJarakPisah.ColumnHeaders.Add(, , "Dmax", 900, vbCenter) Set ch = lvJarakPisah.ColumnHeaders.Add(, , "Dmin", 900, vbCenter) lvJarakPisah.GridLines = True End Sub Private Sub lvLoadKedekatan() Dim ch As ColumnHeader Set ch = lvKedekatan.ColumnHeaders.Add(, , "No.", 0) Set ch = lvKedekatan.ColumnHeaders.Add(, , "id", 0) Set ch = lvKedekatan.ColumnHeaders.Add(, , "Nama", 2000, vbLeftJustify) Set ch = lvKedekatan.ColumnHeaders.Add(, , "V", 900, vbCenter) lvKedekatan.GridLines = True End Sub Private Function cekKhusus(MasaPidana As String, TglTahan As Date, TglTujuan As Date) As Boolean

  Dim LamaTinggal As Integer Dim LamaPidanaArr() As String Dim LamaPidana As Integer Dim TotalMasa As String Dim TglAkhir As String LamaTinggal = DateDiff("d", TglTahan, TglTujuan) LamaPidanaArr = Split(MasaPidana, ";") TglAkhir = DatePart("m", DateAdd("m", LamaPidanaArr(1), TglTahan)) & "/" & _ DatePart("d", DateAdd("d", LamaPidanaArr(2), TglTahan)) & "/" & _ DatePart("yyyy", DateAdd("yyyy", LamaPidanaArr(0), TglTahan)) TotalMasa = DateDiff("d", TglTahan, TglAkhir) If TotalMasa <= (3 * LamaTinggal) Then cekKhusus = True Else cekKhusus = False End If End Function