LAMPIRAN-A
PENYELESAIAN DENGAN METODE FUZZY TOPSIS
Secara umum, prosedur
Fuzzy
TOPSIS mengikuti langkah-langkah sebagai berikut:
1.
Membuat matriks keputusan yang ternormalisasi,
2.
Menentukan matriks solusi ideal positif dan negatif,
3.
Menentukan farak antara nilai setiap alternatif dengan matriks solusi ideal positif dan negatif,
4.
Menetukan nilai preferensi untuk setiap alternatif.
Nilai
Input
(Peringkat Alternatif
Fuzzy
dan
Crisp
Terhadap Kriteria)
Alternatif
Nilai Fuzzy Nilai Crisp
C1 C2 C3 C4 C5
C1 C2 C3 C4 C5
a b c a b c a b c a b c a b c
Alternatif
C1
C2
C3
C4
C5
G1
0,310
0,302
0,276
0,284
0,253
G2
0,310
0,302
0,326
0,229
0,314
G3
0,285
0,328
0,249
0,369
0,222
G4
0,287
0,251
0,300
0,339
0,286
G5
0,236
0,328
0,276
0,339
0,381
G6
0,262
0,277
0,302
0,199
0,284
G7
0,335
0,275
0,300
0,227
0,222
G8
0,285
0,277
0,274
0,284
0,348
G9
0,285
0,226
0,302
0,255
0,317
G10
0,310
0,302
0,276
0,284
0,284
G11
0,287
0,302
0,277
0,255
0,253
G12
0,262
0,277
0,300
0,342
0,253
2.
Hasil perhitungan matriks solusi ideal positif dan negatif
C1
C2
C3
C4
C5
A+
0,335 0,328 0,326 0,369 0,381
A-
0,236 0,226 0,249 0,199 0,222
Alternatif
d+
d-
G1
0,305
0,324
G2
0,285
0,368
G3
0,351
0,419
G4
0,303
0,325
G5
0,288
0,459
G6
0,416
0,219
G7
0,399
0,315
G8
0,273
0,326
G9
0,381
0,257
G10
0,268
0,337
G11
0,349
0,271
4.
Hasil perhitungan koefisien kedekatan relatif dan Rangking urutan preferensi
Alternatif
Koefisien
Kedekatan
Relatif
Alternatif
Koefisien
Kedekatan
Relatif
Ranking
G1
0,516
G5
0,635
1
G2
0,563
G8
0,564
2
G3
0,544
G4
0,540
3
G4
0,518
G3
0,537
4
G5
0,614
G10
0,532
5
G6
0,345
G2
0,522
6
G7
0,441
G12
0,497
7
G8
0,544
G1
0,482
8
G9
0,403
G9
0,415
9
G10
0,557
G11
0,402
10
G11
0,437
G7
0,388
11
LAMPIRAN-B
LISTING PROGRAM
1. Entry Jenis Objek Penelitian
Option Explicit Dim KP As String * 5 Dim JP As String * 3
Private Sub cmdParam_Click() If Me.vIdx_Ob = "" Then
MsgBox ("Pilih Objek yang akan ditentukan parameternya") Exit Sub
Else
With frmParameter .Show
.vIdx_Ob = Me.vIdx_Ob .Isi_Combo
.vObjek = Me.vObjek .vTentang = Me.vTentang .Temukan
End With End If
End Sub
Private Sub Form_Load() Call BukaDB
vIdx_Ob.Clear
RsObjek.Open "SELECT Idx_ob FROM tbObjek order by Idx_ob Asc", Conn
Do While Not RsObjek.EOF
vIdx_Ob.AddItem RsObjek!Idx_Ob RsObjek.MoveNext
Loop End Sub
Function CariData() Call BukaDB
RsObjek.Open "Select * From tbObjek where Idx_ob='" & vIdx_Ob & "'", Conn
End Function
Private Sub cmdInput_Click() If vJP = "" Then
MsgBox ("Pilih jumlah parameter alternatif penilaian") Exit Sub
Else
If CmdInput.Caption = "&Input" Then CmdInput.Caption = "&Simpan" cmdEdit.Enabled = False
cmdHapus.Enabled = False Call AutoNumber
Else
If vIdx_Ob = "" Or vObjek = "" Then MsgBox "Data Belum Lengkap...!" Else
SQLTambah = "Insert Into tbObjek values ('" & vIdx_Ob & "','" & vObjek & "','" & vTentang & "')"
Conn.Execute SQLTambah
Form_Load End If
End If End If End Sub
Private Sub CmdEdit_Click()
If cmdEdit.Caption = "&Edit" Then CmdInput.Enabled = False cmdEdit.Caption = "&Simpan" cmdHapus.Enabled = False vIdx_Ob.SetFocus
Else
If vObjek = "" Then
MsgBox "Masih Ada Data Yang Kosong" Else
Dim SQLEdit As String
SQLEdit = "Update tbObjek Set Objek= '" & vObjek & "',Tentang='" & vTentang & "' where Idx_ob='" & vIdx_Ob & "'" Conn.Execute SQLEdit
End If End If End Sub
Private Sub cmdHapus_Click() Dim ps
If cmdHapus.Caption = "&Hapus" Then CmdInput.Enabled = False
cmdEdit.Enabled = False
CmdBatal.Caption = "&Para meters" Call CariData
If Not RsObjek.EOF Then TampilkanData
ps = MsgBox("Yakin akan dihapus", vbYesNo, "Konfirmasi") If ps = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbObjek where Idx_ob= '" & vIdx_Ob & "'"
Conn.Execute SQLHapus Else
MsgBox "Data Tidak ditemukan" End If
End If End Sub
Private Sub vIdx_Ob_Click() Call CariData
Call TampilkanData vJP = Left(vIdx_Ob, 3) End Sub
Private Sub vIdx_ob_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
Call CariData
If Not RsObjek.EOF Then TampilkanData
MsgBox "Idx_ob Sudah Ada"
vIdx_Ob.SetFocus Else
vObjek.SetFocus End If
End If
If cmdEdit.Caption = "&Simpan" Then Call CariData
If Not RsObjek.EOF Then TampilkanData
vObjek.SetFocus Else
MsgBox "Idx_ob Tidak Ada" vIdx_Ob = ""
vIdx_Ob.SetFocus End If
End If
If cmdHapus.Enabled = True Then End If
End If End Sub
Private Sub vTentang_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
If CmdInput.Enabled = True Then CmdInput.SetFocus
ElseIf cmdEdit.Enabled = True Then cmdEdit.SetFocus
End If End If End Sub
Sub AutoNumber() Dim Hitung As Byte Call BukaDB
With RsObjek
.Open "select * from tbObjek Where Idx_ob In(Select
Max(Idx_ob)from tbObjek where left(Idx_ob,3)='" & JP & "') Order by Idx_ob Desc", Conn
.Requery If .EOF Then
KP = JP + "01" Else
Hitung = Right(!Idx_Ob, 2) + 1
KP = Left(!Idx_Ob, 3) + Right("00" & Hitung, 2) End If
End With vIdx_Ob = KP vObjek.SetFocus End Sub
2. Entry Parameter
MsgBox ("Pilih Objek yang akan ditentukan Fungsi Keanggotaanya")
Exit Sub Else
With frmMembership .Show
.vIdx_Ob = Me.vIdx_Ob .Isi_Combo
.vObjek = Me.vObjek .vTentang = Me.vTentang End With
End If End Sub
Sub Isi_Combo() Call BukaDB vObjek.Clear
RsObjek.Open "SELECT Objek FROM tbObjek where left(Idx_ob,3)='" & Left(vIdx_Ob, 3) & "' order by Objek Asc", Conn
Do While Not RsObjek.EOF
vObjek.AddItem RsObjek!Objek RsObjek.MoveNext
Loop End Sub
Function CariData() Call BukaDB
RsParameter.Open "Select * From tbParameter where Idx_ob='" & vIdx_Ob & "'", Conn
End Function
Private Sub vObjek_Click() Call BukaDB
RsObjek.Open "SELECT * FROM tbObjek where objek='" & vObjek & "'", Conn
If Not RsObjek.EOF Then
vTentang = RsObjek!Tentang vIdx_Ob = RsObjek!Idx_Ob Call CariData
If Not RsParameter.EOF Then vC1 = RsParameter!C1 vC2 = RsParameter!C2 vC3 = RsParameter!C3 vC4 = RsParameter!C4 vC5 = RsParameter!C5 vC6 = RsParameter!C6 vC7 = RsParameter!C7 vC8 = RsParameter!C8 vC9 = RsParameter!C9 vC10 = RsParameter!C10 CmdSimpan.Caption = "&Edit" Else
Call End If End If End Sub
Private Sub TampilkanData() With RsParameter
vC1 = !C1 vC2 = !C2 vC3 = !C3 vC4 = !C4 vC5 = !C5 vC6 = !C6 vC7 = !C7 vC8 = !C8 vC9 = !C9 vC10 = !C10
CmdSimpan.Enabled = True CmdSimpan.Caption = "&Edit" Else
CmdSimpan.Caption = "&Simpan" Call
lblKetForm = "Silahkan Isi Parameter dari Objek" End If
End With End Sub
Private Sub cmdSimpan_Click() If vIdx_Ob = "" Or vC1 = "" Then MsgBox "Data Belum Lengkap...!" Else
If CmdSimpan.Caption = "&Simpan" Then Dim SQLTambah As String
SQLTambah = "Insert Into tbParameter
(Idx_ob,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10) values ('" & vIdx_Ob & "','" & vC1 & "','" & vC2 & "','" & vC3 & "','" & vC4 & "','" & vC5 & "','" & vC6 & "','" & vC7 & "','" & vC8 & "','" & vC9 & "','" & vC10 & "')"
Conn.Execute SQLTambah
ElseIf CmdSimpan.Caption = "&Update" Then Dim SQLEdit As String
SQLEdit = "Update tbParameter Set C1= '" & vC1 & "',C2='" & vC2 & "',C3='" & vC3 & "',C4='" & vC4 & "',C5='" & vC5 & "',C6='" & vC6 & "',C7='" & vC7 & "',C8='" & vC8 & "',C9='" & vC9 & "',C10='" & vC10 & "' where Idx_ob='" & vIdx_Ob & "'"
Conn.Execute SQLEdit Call Tidak
Else Call
CmdSimpan.Caption = "&Update" End If
End If End Sub
3. Entry Triangular Fuzzy Number (TFN)
Sub Form_Load() Call Isi_Combo End Sub
Private Sub cmdFRs_Click() If Me.vIdx_Ob = "" Then
MsgBox ("Pilih Objek yang akan ditentukan Alternatif Penilainnya")
Exit Sub Else
frmFRs.Show
frmFRs.vObjek = Me.vObjek frmFRs.vTentang = Me.vTentang frmFRs.Isi_Combo
End If End Sub
Private Sub cmdGunakan_Click() frmViewMF.Show
frmViewMF.vIdx_Ob = Me.vIdx_Ob
frmViewMF.vObj = "Gunakan sebagai Fungsi Keanggotaan Untuk " & Me.vObjek
End Sub
Function CariData() Call BukaDB
rsTFN.Open "Select * From tbTFN where Idx_ob='" & vIdx_Ob & "' and Simbol='" & vSimbol & "'", Conn
End Function
Private Sub TampilkanData() With rsTFN
If Not .EOF Then
vKriteria = !Kriteria vA = !TFNa
vB = !TFNb vC = !TFNc
vLKriteria = !LKriteria LA = !LTFNa
LB = !LTFNb LC = !LTFNc
CmdSimpan.Enabled = True CmdSimpan.Caption = "&Edit" Else
CmdSimpan.Caption = "&Simpan"
lblKetForm = "Entry Membership Function" Call
End If End With
cmdHapus.Enabled = True End Sub
Private Sub cmdHapus_Click()
If cmdHapus.Caption = "&Hapus" Then CmdTutup.Caption = "&Batal" Call CariData
If Not rsTFN.EOF Then TampilkanData
Pesan = MsgBox("Yakin akan dihapus", vbYesNo) If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbTFN where Simbol= '" & vSimbol & "'"
Conn.Execute SQLHapus End If
Else
MsgBox "Data Tidak ditemukan" End If
Private Sub cmdSimpan_Click()
If vIdx_Ob = "" Or vKriteria = "" Then MsgBox "Data Belum Lengkap...!" Else
If CmdSimpan.Caption = "&Simpan" Then Dim SQLTambah As String
SQLTambah = "Insert Into tbTFN values ('" & vIdx_Ob & "','" & vKriteria & "','" & vSimbol & "','" & vA & "','" & vB & "','" & vC & "','" & vLKriteria & "','" & LA & "','" & LB & "','" & LC & "')"
Conn.Execute SQLTambah Tampil_LV
ElseIf CmdSimpan.Caption = "&Update" Then Dim SQLEdit As String
SQLEdit = "Update tbTFN Set Kriteria='" & vKriteria & "',TFNa= '" & vA & "',TFNb='" & vB & "',TFNc='" & vC &
"',LKriteria='" & vLKriteria & "',LTFNa= '" & LA & "',LTFNb='" & LB & "',LTFNc='" & LC & "' where Simbol='" & vSimbol & "'"
Conn.Execute SQLEdit Call Tidak
CmdSimpan.Caption = "&Edit" Else
CmdSimpan.Caption = "&Update" End If
End If End Sub
Private Sub ListView1_DblClick() vSimbol.Text = ListView1.SelectedItem Tampilkan
End Sub
Private Sub vObjek_Click() Call BukaDB
RsObjek.Open "SELECT * FROM tbObjek where objek='" & vObjek & "'", Conn
If Not RsObjek.EOF Then
vTentang = RsObjek!Tentang vIdx_Ob = RsObjek!Idx_Ob End If
CmdSimpan.Enabled = True End Sub
Sub Tampilkan() Call CariData
If Not rsTFN.EOF Then TampilkanData Else
MsgBox "Peringkat Kriteria Tidak Ditemukan" vKriteria = ""
vKriteria.SetFocus End If
End Sub
4. Entry Kebutuhan Fungsional (Functional Requirements)
Dim C5a, C5b, C5c As String Dim C6a, C6b, C6c As String Dim C7a, C7b, C7c As String Dim C8a, C8b, C8c As String Dim C9a, C9b, C9c As String Dim C10a, C10b, C10c As String Dim xKD, Kod As String
Dim By As Byte
Private Sub cmdAlternatif_Click() frmAlternatif.Show
frmAlternatif.vIdx_Ob = Me.vIdx_Ob frmAlternatif.Isi_Combo
frmAlternatif.vObjek = Me.vObjek frmAlternatif.vTentang = Me.vTentang Unload Me
End Sub
Private Sub Form_Activate() Call Tampil_DMs
Call Hitung_FR End Sub
Function CariData() Call BukaDB
rsFRs.Open "Select * From tbFRs where KP='" & vKP & "'", Conn End Function
Sub Isi_Kriteria() Call BukaDB
With rsFRs
.Open "SELECT Distinct LKriteria FROM tbTFN where left(Idx_ob,3)='" & Left(vIdx_Ob.Caption, 3) & "' order by LKriteria Asc", Conn
Do While Not .EOF
xC1.AddItem !LKriteria xC2.AddItem !LKriteria xC3.AddItem !LKriteria xC4.AddItem !LKriteria xC5.AddItem !LKriteria xC6.AddItem !LKriteria xC7.AddItem !LKriteria xC8.AddItem !LKriteria xC9.AddItem !LKriteria xC10.AddItem !LKriteria .MoveNext
Loop End With End Sub
Sub Isi_Combo() Call BukaDB
RsObjek.Open "SELECT Objek FROM tbObjek where left(Idx_ob,3)='" & Left(vIdx_Ob.Caption, 3) & "' order by Objek Asc", Conn
Do While Not RsObjek.EOF
vObjek.AddItem RsObjek!Objek RsObjek.MoveNext
Isi_Kriteria Call BukaDB
RsParameter.Open "SELECT * FROM tbParameter where Idx_ob='" & vIdx_Ob & "'", Conn
If Not RsParameter.EOF Then vC1 = RsParameter!C1 vC2 = RsParameter!C2 vC3 = RsParameter!C3 vC4 = RsParameter!C4 vC5 = RsParameter!C5 vC6 = RsParameter!C6 vC7 = RsParameter!C7 vC8 = RsParameter!C8 vC9 = RsParameter!C9 vC10 = RsParameter!C10 End If
Call Tampil_DMs Hitung_FR
End Sub
Private Sub vObjek_Click() Call BukaDB
RsObjek.Open "SELECT * FROM tbObjek where objek='" & vObjek & "'", Conn
If Not RsObjek.EOF Then
vTentang = RsObjek!Tentang vIdx_Ob = RsObjek!Idx_Ob Call BukaDB
RsParameter.Open "SELECT * FROM tbParameter where Idx_ob='" & vIdx_Ob & "'", Conn
If Not RsParameter.EOF Then vC1 = RsParameter!C1 vC2 = RsParameter!C2 vC3 = RsParameter!C3 vC4 = RsParameter!C4 vC5 = RsParameter!C5 vC6 = RsParameter!C6 vC7 = RsParameter!C7 vC8 = RsParameter!C8 vC9 = RsParameter!C9 vC10 = RsParameter!C10 vDMs.Clear
Call BukaDB
rsFRs.Open "Select Distinct DMs From tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
Do While Not rsFRs.EOF vDMs.AddItem rsFRs!DMs rsFRs.MoveNext
Loop Else
MsgBox ("Parameter untuk objek ini belum ada")
lblKetForm = "Nilai FRs untuk penilaian objek ini belum ada" Exit Sub
Private Sub xC1_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC1 & "'", Conn If Not .EOF Then
C1a = !LTFNa C1b = !LTFNb C1c = !LTFNc vS1 = !Simbol End If
End With End Sub
Private Sub xC2_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC2 & "'", Conn If Not .EOF Then
C2a = !LTFNa C2b = !LTFNb C2c = !LTFNc vS2 = !Simbol End If
End With End Sub
Private Sub xC3_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC3 & "'", Conn If Not .EOF Then
C3a = !LTFNa C3b = !LTFNb C3c = !LTFNc vS3 = !Simbol End If
End With End Sub
Private Sub xC4_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC4 & "'", Conn If Not .EOF Then
C4a = !LTFNa C4b = !LTFNb C4c = !LTFNc vS4 = !Simbol End If
End With End Sub
Private Sub xC5_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC5 & "'", Conn If Not .EOF Then
C5c = !LTFNc vS5 = !Simbol End If
End With End Sub
Private Sub xC6_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC6 & "'", Conn If Not .EOF Then
C6a = !LTFNa C6b = !LTFNb C6c = !LTFNc vS6 = !Simbol End If
End With End Sub
Private Sub xC7_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC7 & "'", Conn If Not .EOF Then
C7a = !LTFNa C7b = !LTFNb C7c = !LTFNc vS7 = !Simbol End If
End With End Sub
Private Sub xC8_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC8 & "'", Conn If Not .EOF Then
C8a = !LTFNa C8b = !LTFNb C8c = !LTFNc vS8 = !Simbol End If
End With End Sub
Private Sub xC9_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC9 & "'", Conn If Not .EOF Then
C9a = !LTFNa C9b = !LTFNb C9c = !LTFNc vS9 = !Simbol End If
Private Sub xC10_Click() Call BukaDB
With rsFRs
.Open "select * from tbTFN where LKriteria='" & xC10 & "'", Conn If Not .EOF Then
C10a = !LTFNa C10b = !LTFNb C10c = !LTFNc vS10 = !Simbol End If
End With End Sub
Private Sub TampilkanData() With rsFRs
If Not .EOF Then vDMs = !DMs xC1 = !C1 xC2 = !C2 xC3 = !C3 xC4 = !C4 xC5 = !C5 xC6 = !C6 xC7 = !C7 xC8 = !C8 xC9 = !C9 xC10 = !C10 End If
End With
cmdHapus.Enabled = True End Sub
Private Sub cmdInput_Click() If vIdx_Ob.Caption = "" Then
MsgBox ("Silahkan tentukan objek dari parameter") Exit Sub
Else
If CmdInput.Caption = "&Input" Then CmdInput.Caption = "&Simpan" cmdEdit.Enabled = False cmdHapus.Enabled = False
CmdTutup.Caption = "&Batal" Call AutoNumber
vDMs.SetFocus Else
If vDMs = "" Or xC1 = "" Or xC2 = "" Or xC3 = "" Then MsgBox "Data Belum Lengkap...!"
Else
Dim SQLTambah As String
SQLTambah = "Insert Into tbFRs
Val(C5c) & "','" & Val(C6a) & "','" & Val(C6b) & "','" & Val(C6c) & "','" & Val(C7a) & "','" & Val(C7b) & "','" & Val(C7c) & "','" & Val(C8a) & "','" & Val(C8b) & "','" & Val(C8c) & "','" &
Val(C9a) & "','" & Val(C9b) & "','" & Val(C9c) & "','" & Val(C10a) & "','" & Val(C10b) & "','" & Val(C10c) & "')" Conn.Execute SQLTambah
Form_Activate End If
End If End If End Sub
Private Sub CmdEdit_Click() If vIdx_Ob.Caption = "" Then
MsgBox ("Silahkan tentukan objek dari parameter") Exit Sub
Else
If cmdEdit.Caption = "&Edit" Then CmdInput.Enabled = False cmdEdit.Caption = "&Simpan" cmdHapus.Enabled = False CmdTutup.Caption = "&Batal"
Else
If vKP = "" Then
MsgBox "Masih Ada Data Yang Kosong" Else
Dim SQLEdit As String
SQLEdit = "Update tbFRs Set DMs='" & vDMs & "',C1='" & vS1 & "',C2='" & vS2 & "',C3='" & vS3 & "',C4='" & vS4 & "',C5='" & vS5 & "',C6='" & vS6 & "',C7='" & vS7 & "',C8='" & vS8 & "',C9='" & vS9 & "',C10='" & vS10 & "',C1a ='" & C1a & "',C1b ='" & C1b & "',C1c ='" & C1c & "',C2a ='" & C2a & "',C2b ='" & C2b & "',C2c ='" & C2c & "',C3a ='" & C3a & "',C3b ='" & C3b & "',C3c ='" & C3c & "',C4a ='" & C4a & "',C4b ='" & C4b & "',C4c ='" & C4c & "',C5a ='" & C5a & "',C5b ='" & C5b & "',C5c ='" & C5c & "',C6a ='" & C6a & "',C6b ='" & C6b & "',C6c ='" & C6c & "',C7a ='" & C7a & "',C7b ='" & C7b & "',C7c ='" & C7c & "',C8a ='" & C8a & "',C8b ='" & C8b & "',C8c ='" & C8c & "',C9a ='" & C9a & "',C9b ='" & C9b & "',C9c ='" & C9c & "',C10a ='" & C10a & "',C10b ='" & C10b & "',C10c ='" & C10c & "' where KP='" & vKP & "'"
Conn.Execute SQLEdit End If
End If
vKP.Enabled = True Call T_KP
End If End Sub
Private Sub cmdHapus_Click()
If cmdHapus.Caption = "&Hapus" Then CmdInput.Enabled = False
cmdEdit.Enabled = False CmdTutup.Caption = "&Batal" Call CariData
If Not rsFRs.EOF Then TampilkanData
Dim SQLHapus As String
SQLHapus = "Delete From tbFRs where DMs= '" & vDMs & "'" Conn.Execute SQLHapus
Else
MsgBox "Data Tidak ditemukan" End If
End Sub
Sub K1() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS1 & "'", Conn If Not rsTFN.EOF Then
xC1 = rsTFN!LKriteria xC1_Click
End If End Sub
Sub K2() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS2 & "'", Conn If Not rsTFN.EOF Then
xC2 = rsTFN!LKriteria xC2_Click
End If End Sub
Sub K3() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS3 & "'", Conn If Not rsTFN.EOF Then
xC3 = rsTFN!LKriteria xC3_Click
End If End Sub
Sub K4() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS4 & "'", Conn If Not rsTFN.EOF Then
xC4 = rsTFN!LKriteria xC4_Click
End If End Sub
Sub K5() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS5 & "'", Conn If Not rsTFN.EOF Then
xC5 = rsTFN!LKriteria xC5_Click
End If End Sub
Sub K6() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS6 & "'", Conn If Not rsTFN.EOF Then
End If End Sub
Sub K7() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS7 & "'", Conn If Not rsTFN.EOF Then
xC7 = rsTFN!LKriteria xC7_Click
End If End Sub
Sub K8() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS8 & "'", Conn If Not rsTFN.EOF Then
xC8 = rsTFN!LKriteria xC8_Click
End If End Sub
Sub K9() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS9 & "'", Conn If Not rsTFN.EOF Then
xC9 = rsTFN!LKriteria xC9_Click
End If End Sub
Sub K10() Call BukaDB
rsTFN.Open "select * from tbTFN where Simbol='" & vS10 & "'", Conn
If Not rsTFN.EOF Then xC10 = rsTFN!LKriteria xC10_Click
End If End Sub
Sub Hitung_FR() On Error Resume Next Call BukaDB
rsFRs.Open "Select count(Idx_ob) as BYK from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
Br = rsFRs!Byk
Call BukaDB
rsFRs.Open "Select sum(C1a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR1a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C1b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
Call BukaDB
rsFRs.Open "Select sum(C1c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR1c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C2a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR2a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C2b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR2b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C2c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR2c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C3a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR3a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C3b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR3b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C3c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR3c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C4a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR4a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C4b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR4b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C4c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR4c = Round(rsFRs!JL / Br, 3) Call BukaDB
rsFRs.Open "Select sum(C5a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR5a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C5b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
Call BukaDB
rsFRs.Open "Select sum(C5c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR5c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C6a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR6a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C6b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR6b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C6c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR6c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C7a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR7a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C7b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR7b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C7c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR7c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C8a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR8a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C8b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR8b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C8c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR8c = Round(rsFRs!JL / Br, 3) Call BukaDB
rsFRs.Open "Select sum(C9a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR9a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C9b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
Call BukaDB
rsFRs.Open "Select sum(C9c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR9c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C10a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR10a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C10b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR10b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C10c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR10c = Round(rsFRs!JL / Br, 3) End Sub
Sub C_Objek() Call BukaDB
RsObjek.Open "SELECT * FROM tbObjek where Idx_ob='" & vIdx_Ob & "'", Conn
If Not RsObjek.EOF Then vObjek = RsObjek!Objek Call vObjek_Click End If
End Sub
Sub AutoNumber() Call BukaDB
rsFRs.Open "select * from tbFRS Where KP In(Select Max(KP)From tbFRS WHERE left(KP,3)='D10')Order By KP Desc", Conn
rsFRs.Requery
Dim Urutan As String * 5 Dim Hitung As Byte
With rsFRs
If .EOF Then
Urutan = "D10" + "01" Else
Hitung = Right(!KP, 2) + 1
Urutan = "D10" + Right("0" & Hitung, 2) End If
vKP = Urutan End With
vDMs.SetFocus End Sub
Sub T_KP() vKP.Clear Call BukaDB
rsFRs.Open "Select Distinct KP From tbFRs where left(KP,3)='D10'", Conn
Do While Not rsFRs.EOF vKP.AddItem rsFRs!KP rsFRs.MoveNext
5. Entry Alternatif Penilaian
Private Sub vObjek_Click() Call BukaDB
RsObjek.Open "SELECT * FROM tbObjek where objek='" & vObjek & "'", Conn
If Not RsObjek.EOF Then
vTentang = RsObjek!Tentang vIdx_Ob = RsObjek!Idx_Ob End If
End Sub
Function CariData() Call BukaDB
RsAlternatif.Open "Select * From tbAlternatif where Idx_a='" & vIDX_A & "'", Conn
End Function
Private Sub cmdSimpan_Click() Dim SQLTambah As String
If vIdx_Ob.Caption = "" Then
MsgBox ("Pilih jenis objek penilaian") Exit Sub
Else
If CmdSimpan.Caption = "&Simpan" Then
If vIdx_Ob = "" Or vAlternatif = "" Then MsgBox "Data Belum Lengkap...!" Else
Call CariData
If RsAlternatif.EOF Then
SQLTambah = "Insert Into tbAlternatif values ('" & vIDX_A & "','" & vIdx_Ob & "','" & vAlternatif & "','" & vKet & "')"
Conn.Execute SQLTambah
Else
Dim SQLEdit As String
SQLEdit = "Update tbAlternatif set Idx_ob='" &
vIdx_Ob & "',Alternatif='" & vAlternatif & "',Ket='" & vKet & "' where Idx_a='" & vIDX_A & "'"
Conn.Execute SQLEdit End If
End If
ElseIf CmdSimpan.Caption = "&New" Then Call AutoNumber
vAlternatif.SetFocus
CmdSimpan.Caption = "&Simpan" CmdTutup.Caption = "&Batal"
ElseIf CmdSimpan.Caption = "&Edit" Then Call
CmdSimpan.Caption = "&Simpan" End If
End If End Sub
Private Sub cmdHapus_Click()
If cmdHapus.Caption = "&Hapus" Then CmdSimpan.Enabled = False
If Not RsAlternatif.EOF Then
Pesan = MsgBox("Yakin akan dihapus", vbYesNo) If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbAlternatif where Idx_a= '" & vIDX_A & "'"
Conn.Execute SQLHapus End If
Else
MsgBox "Data Tidak ditemukan" End If
End If End Sub
Sub Tampil_LV() Dim X
Call BukaDB
RsAlternatif.Open "Select * from tbAlternatif where Idx_ob='" & vIdx_Ob & "'", Conn
LV.ListItems.Clear
While Not RsAlternatif.EOF
Set X = LV.ListItems.Add(, , RsAlternatif!Idx_A) X.SubItems(1) = RsAlternatif!Alternatif X.SubItems(2) = RsAlternatif!Ket
RsAlternatif.MoveNext Wend
Call BukaDB vIDX_A.Clear
RsAlternatif.Open "SELECT idx_a FROM tbAlternatif where left(Idx_A,3)='A05' order by idx_a Asc", Conn
Do While Not RsAlternatif.EOF
vIDX_A.AddItem RsAlternatif!Idx_A RsAlternatif.MoveNext
Loop End Sub
Sub AutoNumber() Call BukaDB
RsAlternatif.Open "select * from tbAlternatif Where IDX_A
In(Select Max(IDX_A)From tbAlternatif WHERE mid(IDX_A,2,2)='" & Mid(vIdx_Ob, 2, 2) & "') Order By IDX_A Desc", Conn
RsAlternatif.Requery
Dim Urutan As String * 5 Dim Hitung As Byte
With RsAlternatif If .EOF Then
Urutan = "A" + Mid(vIdx_Ob, 2, 2) + "01" Else
Hitung = Right(!Idx_A, 2) + 1
Urutan = "A" + Mid(vIdx_Ob, 2, 2) + Right("0" & Hitung, 2)
End If
vIDX_A = Urutan End With
6. Input Pendapat Para Penilai
Dim C1a, C1b, C1c As String Dim C2a, C2b, C2c As String Dim C3a, C3b, C3c As String Dim C4a, C4b, C4c As String Dim C5a, C5b, C5c As String Dim C6a, C6b, C6c As String Dim C7a, C7b, C7c As String Dim C8a, C8b, C8c As String Dim C9a, C9b, C9c As String Dim C10a, C10b, C10c As String
Dim S1, S2, S3, S4, S5, S6, S7, S8, S9, S10 As String Dim xKD As String
Dim vNo As Byte Dim By
Sub T_Objek() Call BukaDB
RsObjek.Open "SELECT Objek FROM tbObjek where left(Idx_ob,3)='" & Left(vIdx_Ob.Caption, 3) & "' order by Objek Asc", Conn
Do While Not RsObjek.EOF
vObjek.AddItem RsObjek!Objek RsObjek.MoveNext
Loop End Sub
Private Sub vIDX_A_Change() Call BukaDB
RsAlternatif.Open "Select * from tbAlternatif where Idx_A='" & vIDX_A & "'", Conn
If Not RsAlternatif.EOF Then
vAlternatif = RsAlternatif!Alternatif End If
End Sub
Private Sub vIDX_A_Click() vIDX_A_Change
End Sub
Private Sub vObjek_Click() Call BukaDB
RsObjek.Open "SELECT * FROM tbObjek where objek='" & vObjek & "'", Conn
If Not RsObjek.EOF Then vIdx_Ob = RsObjek!Idx_Ob vTentang = RsObjek!Tentang Call BukaDB
RsParameter.Open "SELECT * FROM tbParameter where Idx_ob='" & vIdx_Ob & "'", Conn
Call Tampil_LV Call Tampil_DM Call TKriteria Else
LV.ListItems.Clear End If
End If End Sub
Sub TKriteria() Call BukaDB With rsTFN
.Open "SELECT Distinct Kriteria FROM tbTFN where Idx_ob='" & vIdx_Ob & "'", Conn
Do While Not .EOF
xC1.AddItem !Kriteria xC2.AddItem !Kriteria xC3.AddItem !Kriteria xC4.AddItem !Kriteria xC5.AddItem !Kriteria xC6.AddItem !Kriteria xC7.AddItem !Kriteria xC8.AddItem !Kriteria xC9.AddItem !Kriteria xC10.AddItem !Kriteria .MoveNext
Loop End With End Sub
Sub Tampil_LV() Dim X
Call BukaDB
With RsAlternatif
.Open "Select * from tbAlternatif where Idx_ob='" & vIdx_Ob & "'", Conn
LV.ListItems.Clear While Not .EOF
Set X = LV.ListItems.Add(, , .Fields!Idx_A) X.SubItems(1) = .Fields!Alternatif X.SubItems(2) = .Fields!Ket
.MoveNext Wend
End With End Sub
Sub Tampil_DM() Call BukaDB
rsFRs.Open "SELECT DMs FROM tbFRs where Idx_ob='" & vIdx_Ob & "' order by DMs Asc", Conn
Do While Not rsFRs.EOF vDMs.AddItem rsFRs!DMs rsFRs.MoveNext
Loop End Sub
Private Sub Form_Activate() Call BukaDB
DT.ConnectionString = Conn
DT.Refresh
Set DTGrid.DataSource = DT DTGrid.Refresh
cmdEdit.Enabled = True cmdEdit.Caption = "&Edit" End Sub
Function Cari() Call BukaDB
rsTemp.Open "Select * from tbTemp where Idx_A='" & vIDX_A & "'", Conn
End Function
Private Sub cbNama_Click() Call BukaDB
With rsTemp
.Open "Select * from tbTemp Where Idx_A='" & vIDX_A & "'", Conn
If Not .EOF Then vNo = !Nomor vNama = !Idx_A End If
End With
cmdDel.Caption = "&Del" cmdInsert.Enabled = True cmdInsert.Caption = "&Batal" End Sub
Private Sub cmdDel_Click()
If cmdDel.Caption = "&Batal" Then cmdEdit.Caption = "&Edit" cmdInsert.Caption = "&Insert" cmdInsert.Enabled = False cmdDel.Enabled = False
ElseIf cmdDel.Caption = "&Del" Then Call BukaDB
With rsTemp
Pesan = MsgBox("Yakin akan dihapus", vbYesNo) If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbTemp where Idx_A='" & vIDX_A & "'"
Conn.Execute SQLHapus Call Form_Activate vIDX_A.Clear
DT.Refresh
DT.Recordset.Requery DTGrid.Refresh
Conn.Close Else
Exit Sub End If
End With End If End Sub
Private Sub CmdEdit_Click()
cmdInsert.Enabled = True cmdDel.Enabled = True vIDX_A.Enabled = True Call BukaDB
vIDX_A.Clear
rsTemp.Open "Select Distinct Idx_A From tbTemp", Conn Do While Not rsTemp.EOF
vIDX_A.AddItem rsTemp!Idx_A rsTemp.MoveNext
Loop
ElseIf cmdEdit.Caption = "&Save" Then If vIDX_A = "" Or vDMs = "" Then
MsgBox ("Masih ada data yang kosong...") Exit Sub
Else
Call BukaDB
rsTemp.Open "Select * from tbTemp Where Idx_A='" & vIDX_A & "' order by nomor", Conn
Pesan = MsgBox("Yakin melakukan perubahan data..?", vbYesNo)
If Not rsTemp.EOF And Pesan = vbYes Then DT.Recordset.Update
DT.Recordset!Nomor = vNo DT.Recordset!Idx_A = vNama DT.Recordset!Idx_A = vIDX_A
DT.Recordset!C1 = S1 DT.Recordset!C2 = S2 DT.Recordset!C3 = S3 DT.Recordset!C4 = S4 DT.Recordset!C5 = S5 DT.Recordset!C6 = S6 DT.Recordset!C7 = S7 DT.Recordset!C8 = S8 DT.Recordset!C9 = S9 DT.Recordset!C10 = S10
DT.Recordset!C1a = C1a DT.Recordset!C1b = C1b
DT.Recordset!C1c = C1c DT.Recordset!C2a = C2a
DT.Recordset!C2b = C2b
DT.Recordset!C2c = C2c DT.Recordset!C3a = C3a
DT.Recordset!C3b = C3b
DT.Recordset!C3c = C3c DT.Recordset!C4a = C4a
DT.Recordset!C4b = C4b
DT.Recordset!C4c = C4c DT.Recordset!C5a = C5a
DT.Recordset!C5b = C5b DT.Recordset!C5c = C5c
DT.Recordset!C6a = C6a DT.Recordset!C6b = C6b
DT.Recordset!C6c = C6c DT.Recordset!C7a = C7a
DT.Recordset!C7b = C7b
DT.Recordset!C8a = C8a DT.Recordset!C8b = C8b DT.Recordset!C8c = C8c DT.Recordset!C9a = C9a DT.Recordset!C9b = C9b
DT.Recordset!C9c = C9c DT.Recordset!C10a = C10a
DT.Recordset!C10b = C10b DT.Recordset!C10c = C10c DT.Recordset.Update
Call Form_Activate DT.Refresh
DT.Recordset.Requery DTGrid.Refresh
Conn.Close End If
End If
cmdEdit.Caption = "&Edit" End If
End Sub
Private Sub cmdSave_Click()
If vIdx_Ob = "" Or vDMs = "" Then
MsgBox ("Data masih ada yang kosong") Exit Sub
Else
Dim SqlT, SqlDetail As String
SqlT = "Insert Into tbDMs(Kode,Tanggal,Idx_ob,DMs,Ket) values('" & xKD & "','" & Format(Date, "dd/MM/yyyy") & "','" & vIdx_Ob & "','" & vDMs & "','" & vKet & "')"
Conn.Execute (SqlT)
With DT.Recordset .MoveFirst
Do While Not .EOF
If !Nomor <> vbNullString Then
SqlDetail = "Insert Into tbDMsDetail
(Kode,Idx_A,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C1a,C1b,C1c,C2a,C2b,C2 c,C3a,C3b,C3c,C4a,C4b,C4c,C5a,C5b,C5c,C6a,C6b,C6c,C7a,C7b,C7c,C8a ,C8b,C8c,C9a,C9b,C9c,C10a,C10b,C10c) values ('" & xKD & !Nomor & "','" & !Idx_A & "','" & !C1 & "','" & !C2 & "','" & !C3 & "','" & !C4 & "','" & !C5 & "','" & !C6 & "','" & !C7 & "','" & !C8 & "','" & !C9 & "','" & !C10 & "','" & !C1a & "','" & !C1b & "','" & !C1c & "','" & !C2a & "','" & !C2b & "','" & !C2c & "','" & !C3a & "','" & !C3b & "','" & !C3c & "','" & !C4a & "','" & !C4b & "','" & !C4c & "','" & !C5a & "','" & !C5b & "','" & !C5c & "','" & !C6a & "','" & !C6b & "','" & !C6c & "','" & !C7a & "','" & !C7b & "','" & !C7c & "','" & !C8a & "','" & !C8b & "','" & !C8c & "','" & !C9a & "','" & !C9b & "','" & !C9c & "','" & !C10a & "','" & !C10b & "','" & !C10c & "')"
Conn.Execute (SqlDetail) End If
DT.Recordset.MoveNext Loop
End With
Dim Hitung As Byte Call BukaDB
With rsTemp
.Open ("select * from tbTemp Where Nomor In(Select Max(Nomor)From tbTemp)Order By Nomor Desc"), Conn .Requery
If .EOF Then Urutan = 1 Else
Urutan = !Nomor + 1 End If
vNo = Urutan End With
If xKD = "" Then vDMs_Click End Sub
Private Sub xC1_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC1 & "'", Conn If Not .EOF Then
C1a = !TFNa C1b = !TFNb C1c = !TFNc S1 = !Simbol End If
End With End Sub
Private Sub xC2_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC2 & "'", Conn If Not .EOF Then
C2a = !TFNa C2b = !TFNb C2c = !TFNc S2 = !Simbol End If
End With End Sub
Private Sub xC3_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC3 & "'", Conn If Not .EOF Then
C3a = !TFNa C3b = !TFNb C3c = !TFNc S3 = !Simbol End If
End With End Sub
Private Sub xC4_Click() Call BukaDB
With rsTFN
If Not .EOF Then C4a = !TFNa C4b = !TFNb C4c = !TFNc S4 = !Simbol End If
End With End Sub
Private Sub xC5_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC5 & "'", Conn If Not .EOF Then
C5a = !TFNa C5b = !TFNb C5c = !TFNc S5 = !Simbol End If
End With End Sub
Private Sub xC6_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC6 & "'", Conn If Not .EOF Then
C6a = !TFNa C6b = !TFNb C6c = !TFNc S6 = !Simbol End If
End With End Sub
Private Sub xC7_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC7 & "'", Conn If Not .EOF Then
C7a = !TFNa C7b = !TFNb C7c = !TFNc S7 = !Simbol End If
End With End Sub
Private Sub xC8_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC8 & "'", Conn If Not .EOF Then
C8a = !TFNa C8b = !TFNb C8c = !TFNc S8 = !Simbol End If
End Sub
Private Sub xC9_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC9 & "'", Conn If Not .EOF Then
C9a = !TFNa C9b = !TFNb C9c = !TFNc S9 = !Simbol End If
End With End Sub
Private Sub xC10_Click() Call BukaDB
With rsTFN
.Open "select * from tbTFN where Kriteria='" & xC10 & "'", Conn If Not .EOF Then
C10a = !TFNa C10b = !TFNb C10c = !TFNc S10 = !Simbol End If
End With End Sub
Sub Nomor()
Dim Urutan As String * 9 Dim Hitung As Long
Dim Tgl As Variant
Tgl = Format(Date, "yymmdd") Call BukaDB
With rsDMs
.Open "select * from tbDMs Where Kode In(Select Max(Kode)From tbDMs)Order By Kode Desc", Conn
.Requery If .EOF Then
Urutan = Tgl + "001" Else
Hitung = (!Kode) + 1
Urutan = Tgl + Right("000" & Hitung, 3) End If
xKD = Urutan
vDMs.Enabled = False End With
End Sub
7. Hasil Penilaian
Dim rC1a, C1b, rC1c, rC2a, rC2b, rC2c, rC3a, rC3b, rC3c, rC4a, rC4b, rC4c, rC5a, rC5b, rC5c, rC6a, rC6b, rC6c, rC7a, rC7b, rC7c, rC8a, rC8b, rC8c, rC9arC9b, rC9c, rC10a, rC10b, rC10c
Dim fC1a, fC1b, fC1c, fC2a, fC2b, fC2c, fC3a, fC3b, fC3c, fC4a, fC4b, fC4c, fC5a, fC5b, fC5c, fC6a, fC6b, fC6c, fC7a, fC7b, fC7c, fC8a, fC8b, fC8c, fC9afC9b, fC9c, fC10a, fC10b, fC10c
vObjek.Clear
RsObjek.Open "select Distinct Objek from tbObjek,tbDMs where tbDMs.Idx_Ob=tbObjek.Idx_Ob", Conn
Do While Not RsObjek.EOF
vObjek.AddItem RsObjek!Objek RsObjek.MoveNext
Loop End Sub
Private Sub cmdEliminasi_Click() CR.Reset
CR.SelectionFormula = "Totext({tbHasilakhir.Idx_Ob})='" & vIdx_Ob & "' and Totext({tbHasilakhir.Ket})='Eliminasi'" CR.ReportFileName = App.Path & "\File\LapEliminasi.rpt" CR.WindowState = crptMaximized
CR.DiscardSavedData = True CR.RetrieveDataFiles
CR.Action = 1 End Sub
Private Sub cmdHasil_Click() LvHasil.ListItems.Clear Call BukaDB
With RsHasil Z = 0
.Open "Select * from tbHasilAkhir where Ket <> 'Eliminasi' and Idx_ob='" & vIdx_Ob & "' order by ICT", Conn
While Not .EOF
Set X = LvHasil.ListItems.Add(, , .Fields!Idx_Ob) X.SubItems(1) = !Alternatif
Call BukaDB
RsAlternatif.Open "select Idx_a from tbAlternatif where Alternatif='" & .Fields!Alternatif & "'", Conn
If Not RsAlternatif.EOF Then
X.SubItems(2) = RsAlternatif!Idx_A End If
X.SubItems(3) = .Fields!ICt X.SubItems(4) = .Fields!Ket .MoveNext
Wend End With End Sub
Private Sub vIdx_Ob_Change() Call T_List
Call BukaDB
RsObjek.Open "select * from tbObjek where Idx_ob='" & vIdx_Ob & "'", Conn
If Not RsObjek.EOF Then
vTentang = RsObjek!Tentang vObjek = RsObjek!Objek End If
Call Hitung_FRs End Sub
Sub Klik_Combo() Call BukaDB
If Not RsObjek.EOF Then
vTentang = RsObjek!Tentang vIdx_Ob = RsObjek!Idx_Ob End If
Call BukaDB
rsFRs.Open "Select * from tbDMs where Idx_Ob='" & vIdx_Ob & " '", Conn
If Not rsFRs.EOF Then vKode = rsFRs!Kode vTgl = rsFRs!Tanggal Call Tampil_H5a End If
End Sub
Private Sub cmdTutup_Click() Unload Me
End Sub
Sub T_List() Call BukaDB List1.Clear
rsDMs.Open "Select Distinct Dms from tbDMs where Idx_Ob='" & vIdx_Ob & "' order by Dms asc", Conn
Do Until rsDMs.EOF
List1.AddItem rsDMs!DMs rsDMs.MoveNext
Loop End Sub
Private Sub list1_click() Call BukaDB
Conn.CursorLocation = adUseClient
rsDMs.Open "select * from tbDMs where Dms='" & List1.Text & "' and Idx_Ob='" & vIdx_Ob & "'", Conn
rsDMs.Requery
If Not rsDMs.EOF Then
vTgl = " " & rsDMs!Tanggal vKode = rsDMs!Kode
End If
Call Tampil_Detail End Sub
Sub Tampil_H5a() On Error Resume Next Dim Br As Byte
Lv_H5a.ListItems.Clear Call BukaDB
With rsFRs
.Open "Select * from tbDMsDetail where left(Kode,9)='" & vKode & "' order by Idx_a", Conn
While Not .EOF
Set X = Lv_H5a.ListItems.Add(, , .Fields!Idx_A) Call BukaDB
RsAlternatif.Open "Select Alternatif from
tbAlternatif,tbObjek where tbobjek.idx_ob=tbAlternatif.Idx_ob and Idx_A ='" & .Fields!Idx_A & "'order by Idx_a", Conn
If Not RsAlternatif.EOF Then
End If
Call BukaDB
rsDMs.Open "Select count(Idx_A) as BYK from tbDMsDetail where Idx_A='" & .Fields!Idx_A & "'", Conn
Br = rsDMs!Byk Call BukaDB
RsCS.Open "Select sum(C1a) as sC1a,sum(C1b) as sc1b,sum(C1c) as sC1c,sum(C2a) as sC2a,sum(C2b) as sc2b,sum(C2c) as sC2c,sum(C3a) as sC3a,sum(C3b) as sc3b,sum(C3c) as sC3c,sum(C4a) as
sC4a,sum(C4b) as sc4b,sum(C4c) as sC4c,sum(C5a) as sC5a,sum(C5b) as sc5b,sum(C5c) as sC5c,sum(C6a) as sC6a,sum(C6b) as
sc6b,sum(C6c) as sC6c,sum(C7a) as sC7a,sum(C7b) as sc7b,sum(C7c) as sC7c,sum(C8a) as sC8a,sum(C8b) as sc8b,sum(C8c) as
sC8c,sum(C9a) as sC9a,sum(C9b) as sc9b,sum(C9c) as sC9c,sum(C10a) as sC10a,sum(C10b) as sc10b,sum(C10c) as sC10c from tbDMsDetail where Idx_A='" & .Fields!Idx_A & "'", Conn
rC1a = Round(RsCS!sC1a / Br, 3) rC1b = Round(RsCS!sC1b / Br, 3) rC1c = Round(RsCS!sC1c / Br, 3) rC2a = Round(RsCS!sC2a / Br, 3) rC2b = Round(RsCS!sC2b / Br, 3) rC2c = Round(RsCS!sC2c / Br, 3) rC3a = Round(RsCS!sC3a / Br, 3) rC3b = Round(RsCS!sC3b / Br, 3) rC3c = Round(RsCS!sC3c / Br, 3) rC4a = Round(RsCS!sC4a / Br, 3) rC4b = Round(RsCS!sC4b / Br, 3) rC4c = Round(RsCS!sC4c / Br, 3) rC5a = Round(RsCS!sC5a / Br, 3) rC5b = Round(RsCS!sC5b / Br, 3) rC5c = Round(RsCS!sC5c / Br, 3) rC6a = Round(RsCS!sC6a / Br, 3) rC6b = Round(RsCS!sC6b / Br, 3) rC6c = Round(RsCS!sC6c / Br, 3) rC7a = Round(RsCS!sC7a / Br, 3) rC7b = Round(RsCS!sC7b / Br, 3) rC7c = Round(RsCS!sC7c / Br, 3) rC8a = Round(RsCS!sC8a / Br, 3) rC8b = Round(RsCS!sC8b / Br, 3) rC8c = Round(RsCS!sC8c / Br, 3) rC9a = Round(RsCS!sC9a / Br, 3) rC9b = Round(RsCS!sC9b / Br, 3) rC9c = Round(RsCS!sC9c / Br, 3) rC10a = Round(RsCS!sC10a / Br, 3) rC10b = Round(RsCS!sC10b / Br, 3)
rC10c = Round(RsCS!sC10c / Br, 3) Wend
End With Tampil_H5b End Sub
Sub Tampil_H5b() On Error Resume Next
Dim rsTemp As New ADODB.Recordset Dim Br, N As Byte
Lv_H5b.ListItems.Clear N = 0
.Open "Select * from tbDMsDetail where left(Kode,9)='" & vKode & "'", Conn
While Not .EOF
Set X = Lv_H5b.ListItems.Add(, , .Fields!Idx_A)
Call BukaDB
RsAlternatif.Open "Select Alternatif from
tbAlternatif,tbObjek where tbobjek.idx_ob=tbAlternatif.Idx_ob and Idx_A ='" & .Fields!Idx_A & "' order by Alternatif", Conn
If Not RsAlternatif.EOF Then
X.SubItems(1) = RsAlternatif.Fields!Alternatif End If
Call BukaDB
rsDMs.Open "Select count(Idx_A) as BYK from tbDMsDetail where Idx_A='" & .Fields!Idx_A & "'", Conn
Br = rsDMs!Byk Call BukaDB
RsCS.Open "Select sum(C1a) as sC1a,sum(C1b) as sc1b,sum(C1c) as sC1c," & _
"sum(C2a) as sC2a,sum(C2b) as sc2b,sum(C2c) as
sC2c,sum(C3a) as sC3a,sum(C3b) as sc3b,sum(C3c) as sC3c," & _ "sum(C4a) as sC4a,sum(C4b) as sc4b,sum(C4c) as
sC4c,sum(C5a) as sC5a,sum(C5b) as sc5b,sum(C5c) as sC5c," & _ "sum(C6a) as sC6a,sum(C6b) as sc6b,sum(C6c) as
sC6c,sum(C7a) as sC7a,sum(C7b) as sc7b,sum(C7c) as sC7c," & _ "sum(C8a) as sC8a,sum(C8b) as sc8b,sum(C8c) as
sC8c,sum(C9a) as sC9a,sum(C9b) as sc9b,sum(C9c) as sC9c," & _ "sum(C10a) as sC10a,sum(C10b) as sc10b,sum(C10c) as sC10c from tbDMsDetail where Idx_A='" & .Fields!Idx_A & "'", Conn
rC10b = RsCS!sC10b / Br rC10c = RsCS!sC10c / Br
Dim C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, ICt As Double Dim IC1, IC2, IC3, IC4, IC5, IC6, IC7, IC8, IC9, IC10 As Double Dim AC1, AC2, AC3, AC4, AC5, AC6, AC7, AC8, AC9, AC10 As Double Dim SA1, SA2, SA3, SA4, SA5, SA6, SA7, SA8, SA9, SA10 As Double Dim sCa1, sSa1
If FR1a < rC1a Then sCa1 = rC1c - rC1a sSa1 = rC1c - rC1a
ElseIf FR1a > rC1a And FR1a < rC1b Then sCa1 = rC1c - FR1a
sSa1 = rC1c - rC1a
ElseIf FR1a > rC1b And FR1a < rC1c Then sCa1 = rC1c - FR1a
sSa1 = rC1c - rC1a ElseIf rC1c < FR1a Then sCa1 = 0
sSa1 = 0 End If
Dim Miu Miu = 0.5
CA1 = (sCa1 / 2) * Miu SA1 = sSa1 / 2
If CA1 = 0 Then CI1 = "~" Else
IC1 = Log(SA1 / CA1) / Log(2) CI1 = Round(IC1, 3)
End If AC1 = CA1
X.SubItems(2) = Round(AC1, 3) X.SubItems(12) = Round(SA1, 3) X.SubItems(22) = CI1
X.SubItems(33) = Ket1
Dim sCa2, sSa2 If FR2a < rC2a Then sCa2 = rC2c - rC2a sSa2 = rC2c - rC2a
ElseIf FR2a > rC2a And FR2a < rC2b Then sCa2 = rC2c - FR2a
sSa2 = rC2c - rC2a
ElseIf FR2a > rC2b And FR2a < rC2c Then sCa2 = rC2c - FR2a
sSa2 = rC2c - rC2a ElseIf rC2c < FR2a Then sCa2 = 0
sSa2 = 0 End If
CA2 = (sCa2 / 2) * Miu SA2 = sSa2 / 2
If CA2 = 0 Then CI2 = "~" Else
IC2 = Log(SA2 / CA2) / Log(2) CI2 = Round(IC2, 3)
X.SubItems(3) = Round(AC2, 3) X.SubItems(13) = Round(SA2, 3) X.SubItems(23) = CI2
Dim sCa3, sSa3 If FR3a < rC3a Then sCa3 = rC3c - rC3a sSa3 = rC3c - rC3a
ElseIf FR3a > rC3a And FR3a < rC3b Then sCa3 = rC3c - FR3a
sSa3 = rC3c - rC3a
ElseIf FR3a > rC3b And FR3a < rC3c Then sCa3 = rC3c - FR3a
sSa3 = rC3c - rC3a ElseIf rC3c < FR3a Then sCa3 = 0
sSa3 = 0 End If
CA3 = (sCa3 / 2) * Miu SA3 = sSa3 / 2
If CA3 = 0 Then CI3 = "~" Else
IC3 = Log(SA3 / CA3) / Log(2) CI3 = Round(IC3, 3)
End If AC3 = CA3
X.SubItems(4) = Round(AC3, 3) X.SubItems(14) = Round(SA3, 3) X.SubItems(24) = CI3
Dim sCa4, sSa4 If FR4a < rC4a Then sCa4 = rC4c - rC4a sSa4 = rC4c - rC4a
ElseIf FR4a > rC4a And FR4a < rC4b Then sCa4 = rC4c - FR4a
sSa4 = rC4c - rC4a
ElseIf FR4a > rC4b And FR4a < rC4c Then sCa4 = rC4c - FR4a
sSa4 = rC4c - rC4a ElseIf rC4c < FR4a Then sCa4 = 0
sSa4 = 0 End If
CA4 = (sCa4 / 2) * Miu SA4 = sSa4 / 2
If CA4 = 0 Then CI4 = "~" Else
IC4 = Log(SA4 / CA4) / Log(2) CI4 = Round(IC4, 3)
End If AC4 = CA4
Dim sCa5, sSa5 If FR5a < rC5a Then sCa5 = rC5c - rC5a sSa5 = rC5c - rC5a
ElseIf FR5a > rC5a And FR5a < rC5b Then sCa5 = rC5c - FR5a
sSa5 = rC5c - rC5a
ElseIf FR5a > rC5b And FR5a < rC5c Then sCa5 = rC5c - FR5a
sSa5 = rC5c - rC5a ElseIf rC5c < FR5a Then sCa5 = 0
sSa5 = 0 End If
CA5 = (sCa5 / 2) * Miu SA5 = sSa5 / 2
If CA5 = 0 Then CI5 = "~" Else
IC5 = Log(SA5 / CA5) / Log(2) CI5 = Round(IC5, 3)
End If AC5 = CA5
X.SubItems(6) = Round(AC5, 3) X.SubItems(16) = Round(SA5, 3) X.SubItems(26) = CI5
Dim sCa6, sSa6
If FR6a < rC6a Then sCa6 = rC6c - rC6a sSa6 = rC6c - rC6a
ElseIf FR6a > rC6a And FR6a < rC6b Then sCa6 = rC6c - FR6a
sSa6 = rC6c - rC6a
ElseIf FR6a > rC6b And FR6a < rC6c Then sCa6 = rC6c - FR6a
sSa6 = rC6c - rC6a ElseIf rC6c < FR6a Then sCa6 = 0
sSa6 = 0 End If
CA6 = (sCa6 / 2) * Miu SA6 = sSa6 / 2
If CA6 = 0 Then CI6 = "~" Else
IC6 = Log(SA6 / CA6) / Log(2) CI6 = Round(IC6, 3)
End If AC6 = CA6
X.SubItems(7) = Round(AC6, 3) X.SubItems(17) = Round(SA6, 3) X.SubItems(27) = CI6
sSa7 = rC7c - rC7a
ElseIf FR7a > rC7a And FR7a < rC7b Then sCa7 = rC7c - FR7a
sSa7 = rC7c - rC7a
ElseIf FR7a > rC7b And FR7a < rC7c Then sCa7 = rC7c - FR7a
sSa7 = rC7c - rC7a ElseIf rC7c < FR7a Then sCa7 = 0
sSa7 = 0 End If
CA7 = (sCa7 / 2) * Miu SA7 = sSa7 / 2
If CA7 = 0 Then CI7 = "~" Else
IC7 = Log(SA7 / CA7) / Log(2) CI7 = Round(IC7, 3)
End If AC7 = CA7
X.SubItems(8) = Round(AC7, 3) X.SubItems(18) = Round(SA7, 3) X.SubItems(28) = CI7
Dim sCa8, sSa8 If FR8a < rC8a Then sCa8 = rC8c - rC8a sSa8 = rC8c - rC8a
ElseIf FR8a > rC8a And FR8a < rC8b Then sCa8 = rC8c - FR8a
sSa8 = rC8c - rC8a
ElseIf FR8a > rC8b And FR8a < rC8c Then sCa8 = rC8c - FR8a
sSa8 = rC8c - rC8a ElseIf rC8c < FR8a Then sCa8 = 0
sSa8 = 0 End If
CA8 = (sCa8 / 2) * Miu SA8 = sSa8 / 2
If CA8 = 0 Then CI8 = "~" Else
IC8 = Log(SA8 / CA8) / Log(2) CI8 = Round(IC8, 3)
End If AC8 = CA8
X.SubItems(9) = Round(AC8, 3) X.SubItems(19) = Round(SA8, 3) X.SubItems(29) = CI8
Dim sCa9, sSa9 If FR9a < rC9a Then sCa9 = rC9c - rC9a sSa9 = rC9c - rC9a
sSa9 = rC9c - rC9a
ElseIf FR9a > rC9b And FR9a < rC9c Then sCa9 = rC9c - FR9a
sSa9 = rC9c - rC9a ElseIf rC9c < FR9a Then sCa9 = 0
sSa9 = 0 End If
CA9 = (sCa9 / 2) * Miu SA9 = sSa9 / 2
If CA9 = 0 Then CI9 = "~" Else
IC9 = Log(SA9 / CA9) / Log(2) CI9 = Round(IC9, 3)
End If AC9 = CA9
X.SubItems(10) = Round(AC9, 3) X.SubItems(20) = Round(SA9, 3) X.SubItems(30) = CI9
Dim sCa10, sSa10 If FR10a < rC10a Then sCa10 = rC10c - rC10a sSa10 = rC10c - rC10a
ElseIf FR10a > rC10a And FR10a < rC10b Then sCa10 = rC10c - FR10a
sSa10 = rC10c - rC10a
ElseIf FR10a > rC10b And FR10a < rC10c Then sCa10 = rC10c - FR10a
sSa10 = rC10c - rC10a ElseIf rC10c < FR10a Then sCa10 = 0
sSa10 = 0 End If
CA10 = (sCa10 / 2) * Miu SA10 = sSa10 / 2
If CA10 = 0 Then CI10 = "~" Else
IC10 = Log(SA10 / CA10) / Log(2) CI10 = Round(IC10, 3)
End If AC10 = CA10
X.SubItems(11) = Round(AC10, 3) X.SubItems(21) = Round(SA10, 3) X.SubItems(31) = CI10
ICt = IC1 + IC2 + IC3 + IC4 + IC5 + IC6 + IC7 + IC8 + IC9 + IC10 If CI1 = "~" Or CI2 = "~" Or CI3 = "~" Or CI4 = "~" Or CI5 = "~" Or CI6 = "~" Or CI7 = "~" Or CI8 = "~" Or CI9 = "~" Or CI10 = "~" Then
X.SubItems(33) = "Eliminasi" End If
End If
X.SubItems(32) = Round(ICt, 3) .MoveNext
End With End Sub
Sub Hitung_FRs() On Error Resume Next Call BukaDB
rsFRs.Open "Select count(Idx_ob) as BYK from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
Br = rsFRs!Byk
Call BukaDB
rsFRs.Open "Select sum(C1a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR1a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C1b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR1b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C1c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR1c = Round(rsFRs!JL / Br, 3) Call BukaDB
rsFRs.Open "Select sum(C2a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR2a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C2b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR2b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C2c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR2c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C3a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR3a = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C3b) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR3b = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C3c) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn
FR3c = Round(rsFRs!JL / Br, 3)
Call BukaDB
rsFRs.Open "Select sum(C4a) as JL from tbFRs where Idx_ob='" & vIdx_Ob & "'", Conn