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
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
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.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("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
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
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(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
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
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
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
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.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
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 -
lvNormBobot.ListItems(i).SubItems(4)) ^ 2 + (AmaxJasa -
lvNormBobot.ListItems(i).SubItems(5)) ^ 2)
Dmin = Sqr((lvNormBobot.ListItems(i).SubItems(3) - AminKelakuan) ^ 2 +
(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")
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
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
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
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
" 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
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 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!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(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)
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
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
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