BAB IV IMPLEMENTASI PROGRAM
5.5 Evaluasi
Hasil evaluasi dari uji coba terhadap beberapa sekenario yang telah dilakukan oleh montir membuktikan bahwa aplikasi yang telah berjalan sesuai dengan fungsinya masing-masing dan dapat membantu montir dalam memecahkan permasalahannya.
Selain itu proses uji coba yang dilakukan juga telah membuktikan bahwa aplikasi telah dilengkapi dengan fasilitas penanganan kesalahan saat berinteraksi dengan pengguna yang sangat membantu sistem untuk berjalan secara optimal.
92
BAB VI PENUTUP
6.1. Kesimpulan
Setelah dilakukan uji coba maka dapat diambil kesimpulan yaitu:
a. Aplikasi sistem pakar diagnosis kerusakan pada televisi berwarna dapat
mempermudah dan mempercepat proses diagnosis kerusakan pada televisi berwarna sehingga bisa membantu pengguna maupun pakar dalam menangani permasalahan kerusakan televisi tersebut.
b. Dengan menerapkan data flow diagram pada proses perancangan sistem,
dapat mengidentifikasi kebutuhan-kebutuhan sistem yang benar dan menspesifikasikannya ke dalam cara yang mudah dipahami oleh pengguna sehingga kebutuhan dapat diverifikasi dan divalidasi.
c. Dengan menerapkan activeX control untuk mengantisipasi semua
kemungkinan input user, aplikasi tetap responsif saat berinteraksi dengan pengguna.
6.2. Saran
Berdasarkan pengalaman dalam proses pembuatan aplikasi ini, terdapat beberapa saran yang diusulkan oleh penyusun terkait untuk pengembangan aplikasi lebih lanjut. Saran - saran tersebut antara lain:
a. Dilakukan pengembangan terhadap aplikasi yang ada untuk mengoptimalkan
b. Diharapkan sistem ini bisa dikembangkan lebih lanjut dengan menggunakan teknologi – teknologi baru seperti aplikasi hp mobile bersistem operasi java , symbian dan android, sehingga hasil yang didapatkan bisa benar – benar optimal
c. Pada aplikasi hanya mendiagnosis televisi berwarna dengan jenis tabung CRT (Cathode Ray Tube) karena sebagian masyarakat masih banyak yang mempunyai televisi tersebut. Di harapkan ada pengembangan dengan jenis LCD dan LED.
Andi, 2003, Pengembangan Sistem Pakar Menggunakan Visual Basic, Penerbit Andi, Yogyakarta
Aziz, M farid, 1994 : Belajar Sendiri Pemrograman Sistem Pakar, Penerbit PT Elex Media Komputindo Kelompok Gramedia, Jakarta.
Chang, Chin-Liang, 1990: Pengenalan Tekmik Kecerdasan Buatan (Artificial Intelegence), Penerbit Erlangga, Jakarta.
Jayadikara Edi A & Paulus Sigit, 2002: Merawat dan Memperbaiki Televisi Berwarna, Penerbit Puspa Swara, Jakarta.
Kusrini, S.Kom, 2006, Sistem Pakar, Teori dan Aplikasi, Penerbit Andi, Yogyakarta Rio, S. Reka,Yoshikatsu Sawamura, 2001: “Teknik Reparasi TV Berwarna”, Penerbit
Pradina Paramita, Jakarta.
Syarif, Iwan dan Badriyah 2002, Pembuatan Alat Bantu Ajar Sistem Pakar dengan Teknik Inferensi Forward Chaining, Penerbit PT INFORMATIKA, Bandung
Nama : Amar
Alamat : Jl. Kendangsari Gg VII/9 Hari/Tgl : Selasa, 10 Mei 2011 Merek TV : Thosiba 21”
Tujuan dari hasil uji coba ini untuk mengetahui tentang manfaat dan kepuasan para montir TV dalam menggunakan program ini.
Manfaat :
- Menghemat waktu dalam bekerja karena lebih cepat dari proses manual dan pendapatan otomatis meningkat
- Membantu proses berpikir para montir dalam menangani penyebab gejala kerusakan televisi
Kepuasan :
Puas, karena sangat membantu montir dalam bekerja dan perlu latihan dalam proses adaptasi untuk mengoperasikan program.
Saran – Saran :
- Sebaiknya di buatkan juga program untuk layar LCD dan LED karena untuk mengimbangi perkembangan teknologi.
-Dalam program sebaiknya diberi gambar masing – masing komponen untuk memudahkan mengoperasikan program.
Nama : Harsono
Alamat : Jl. Kendangsari Gg IV/45 Hari/Tgl : Senin, 09 Mei 2011 Merek TV : LG 21”
Tujuan dari hasil uji coba ini untuk mengetahui tentang manfaat dan kepuasan para montir TV dalam menggunakan program ini.
Manfaat :
- Bisa membantu dalam menangani gejala kerusakan televisi - Mengefisiensi waktu montir dalam bekerja
Kepuasan :
Puas, karena sudah di buatkan program untuk membantu dalam bekerja dan perlu belajar lagi untuk mengoperasikannya.
Saran – Saran :
- Kebanyakan montir masih belum mempunyai seperangkat alat komputer jadi belum terbiasa mengoperasikan komputer dan program.
-Dalam program sebaiknya diberi gambar komponen untuk memudahkan mengoperasikan program
Nama : Rokim
Alamat : Jl. Kendangsari Gg XIV/21 Hari/Tgl : Selasa, 10 Mei 2011
Merek TV : Sharp 21”
Tujuan dari hasil uji coba ini untuk mengetahui tentang manfaat dan kepuasan para montir TV dalam menggunakan program ini.
Manfaat :
- Menghemat waktu dalam bekerja karena lebih cepat dari proses manual dan pendapatan otomatis meningkat
- Membantu proses berpikir para montir dalam menangani penyebab gejala kerusakan televisi
Kepuasan :
Puas, di karenakan mayoritas montir belum mempunyai komputer maka perlu latihan lagi dalam mengoperasikan program.
Saran – Saran :
- Sebaiknya di buatkan juga program berbasis HP mobile karena lebih efisiensi biaya dan tempat.
-Dalam program sebaiknya diberi gambar masing – masing komponen untuk memudahkan mengoperasikan program.
On Error GoTo login_err
If cboLevel.Text = "Pengguna" Then userid = "Pengguna" levelid = "Pengguna" frmUtama.Show Unload Me Exit Sub Else If txtlogin.Text = "" Then
MsgBox "Masukkan User ID !", vbCritical txtlogin.SetFocus
Exit Sub End If
If Not validity(txtlogin, "User ID") Then txtlogin.SetFocus
Exit Sub End If
If txtpass.Text = "" Then
MsgBox "Masukkan Password !", vbCritical txtpass.SetFocus
Exit Sub End If
If Not validity(txtpass, "Password") Then txtpass.SetFocus
Exit Sub End If konek_db
Dim sql As String
Set adoRS = New ADODB.Recordset
sql = "select * from list_user where user_id = '" & txtlogin.Text & "' and pass = '" & Crypt(txtpass.Text) & "'"
adoRS.Open sql, Conn, adOpenDynamic, adLockOptimistic If (adoRS.EOF) Then
MsgBox "User ID dan Password salah! Coba Lagi !", vbCritical, "Peringatan" txtlogin.Text = "" txtpass.Text = "" txtlogin.SetFocus Call closeconn Exit Sub End If levelid = adoRS!Level Call closeconn userid = txtlogin.Text Unload Me frmUtama.Show End If Exit Sub Koneksi Database
Public Conn As New ADODB.Connection Public rsKnowledge As New ADODB.Recordset Public rsSolusi As New ADODB.Recordset Public rsTemp As New ADODB.Recordset Public rsKerusakan As New ADODB.Recordset
Public Sub konek_db() On Error GoTo konekErr
If Conn.State = 1 Then Conn.Close
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\tv.mdb;Persist Security Info=False"
rsKnowledge.Open "select * from knowledge", Conn, adOpenDynamic, adLockOptimistic rsSolusi.Open "select * from solusi", Conn, adOpenDynamic, adLockOptimistic rsTemp.Open "select * from temp", Conn, adOpenDynamic, adLockOptimistic
rsKerusakan.Open "select * from kerusakan", Conn, adOpenDynamic, adLockOptimistic
Exit Sub
rsSolusi.Close rsTemp.Close rsKerusakan.Close
Conn.Close End Sub
Public adoRS As New ADODB.Recordset Public userid, levelid As String
' =============== check for valid chracters only .--============= Public Function validity(ByVal str As TextBox, ByVal field As String) If Len(str.Text) > 0 Then For i = 1 To Len(str.Text) xyz = InStr(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890", Mid(str.Text, i, 1), vbBinaryCompare) If xyz = 0 Then
MsgBox "Invalid Character (" & Mid(str.Text, i, 1) & ") Found in " & field & " Field", vbCritical, "Cannot Proceed!"
invalid = True Exit For
End If Next i
If invalid = True Then validity = False Else validity = True End If Else validity = True End If End Function
' =============== check for valid of ' & " only .--============= Public Function validity2(ByVal str As TextBox, ByVal field As String) If Len(str.Text) > 0 Then
For i = 1 To Len(str.Text)
xyz = InStr(1, """'", Mid(str.Text, i, 1), vbBinaryCompare) If xyz > 0 Then
MsgBox "Invalid Character (" & Mid(str.Text, i, 1) & ") Found in " & field & " Field", vbCritical, "Cannot Proceed!"
invalid = True Exit For
End If Next i
If invalid = True Then validity2 = False Else validity2 = True End If Else validity2 = True End If End Function '********************************************************* '****************** Encryption/Decryption ****************
'Works for general text encryption/decryption in order to encrypt usernames 'and passwords all text with character string first and numeric
'later, is encrypted properly
Public Function Crypt(ByVal s_text As String)
s_text = Replace(s_text, "0", "%r", , , vbBinaryCompare) s_text = Replace(s_text, "1", "#g", , , vbBinaryCompare) s_text = Replace(s_text, "2", "1$", , , vbBinaryCompare) s_text = Replace(s_text, "3", "j~", , , vbBinaryCompare)
s_text = Replace(s_text, "9", "&x", , , vbBinaryCompare)
s_text = Replace(s_text, "a", "1!", , , vbBinaryCompare) s_text = Replace(s_text, "b", "2@", , , vbBinaryCompare) s_text = Replace(s_text, "c", "3#", , , vbBinaryCompare) s_text = Replace(s_text, "d", "4$", , , vbBinaryCompare) s_text = Replace(s_text, "e", "5$", , , vbBinaryCompare) s_text = Replace(s_text, "f", "7*", , , vbBinaryCompare) s_text = Replace(s_text, "g", "9#", , , vbBinaryCompare) s_text = Replace(s_text, "h", "0#", , , vbBinaryCompare) s_text = Replace(s_text, "i", "4@", , , vbBinaryCompare) s_text = Replace(s_text, "j", "7#", , , vbBinaryCompare) s_text = Replace(s_text, "k", "8^", , , vbBinaryCompare) s_text = Replace(s_text, "l", "0^", , , vbBinaryCompare) s_text = Replace(s_text, "m", "5%", , , vbBinaryCompare) s_text = Replace(s_text, "n", "a%", , , vbBinaryCompare) s_text = Replace(s_text, "o", "e$", , , vbBinaryCompare) s_text = Replace(s_text, "p", "f5", , , vbBinaryCompare) s_text = Replace(s_text, "q", "6$", , , vbBinaryCompare) s_text = Replace(s_text, "r", "h&", , , vbBinaryCompare) s_text = Replace(s_text, "s", "0.", , , vbBinaryCompare) s_text = Replace(s_text, "t", "e`", , , vbBinaryCompare) s_text = Replace(s_text, "u", "4r", , , vbBinaryCompare) s_text = Replace(s_text, "v", "7@", , , vbBinaryCompare) s_text = Replace(s_text, "w", "f^", , , vbBinaryCompare) s_text = Replace(s_text, "x", "t%", , , vbBinaryCompare) s_text = Replace(s_text, "y", "g@", , , vbBinaryCompare) s_text = Replace(s_text, "z", "h0", , , vbBinaryCompare)
s_text = Replace(s_text, "A", ".2", , , vbBinaryCompare) s_text = Replace(s_text, "B", ".3", , , vbBinaryCompare) s_text = Replace(s_text, "C", ".4", , , vbBinaryCompare) s_text = Replace(s_text, "D", ".5", , , vbBinaryCompare) s_text = Replace(s_text, "E", ".6", , , vbBinaryCompare) s_text = Replace(s_text, "F", ".7", , , vbBinaryCompare) s_text = Replace(s_text, "G", ".8", , , vbBinaryCompare) s_text = Replace(s_text, "H", ".9", , , vbBinaryCompare) s_text = Replace(s_text, "I", ".0", , , vbBinaryCompare) s_text = Replace(s_text, "J", ".1", , , vbBinaryCompare) s_text = Replace(s_text, "K", "/3", , , vbBinaryCompare) s_text = Replace(s_text, "L", "/5", , , vbBinaryCompare) s_text = Replace(s_text, "M", "/7", , , vbBinaryCompare) s_text = Replace(s_text, "N", "/9", , , vbBinaryCompare) s_text = Replace(s_text, "O", "/1", , , vbBinaryCompare) s_text = Replace(s_text, "P", "/0", , , vbBinaryCompare) s_text = Replace(s_text, "Q", "/8", , , vbBinaryCompare) s_text = Replace(s_text, "R", "/6", , , vbBinaryCompare) s_text = Replace(s_text, "S", "/4", , , vbBinaryCompare) s_text = Replace(s_text, "T", "/2", , , vbBinaryCompare) s_text = Replace(s_text, "U", ";0", , , vbBinaryCompare) s_text = Replace(s_text, "V", ";2", , , vbBinaryCompare) s_text = Replace(s_text, "W", ";3", , , vbBinaryCompare) s_text = Replace(s_text, "X", ";4", , , vbBinaryCompare) s_text = Replace(s_text, "Y", ";6", , , vbBinaryCompare) s_text = Replace(s_text, "Z", ";7", , , vbBinaryCompare)
Crypt = s_text End Function
Public Function Decrypt(ByVal s_text As String)
s_text = Replace(s_text, "1!", "a", , , vbBinaryCompare) s_text = Replace(s_text, "2@", "b", , , vbBinaryCompare) s_text = Replace(s_text, "3#", "c", , , vbBinaryCompare) s_text = Replace(s_text, "4$", "d", , , vbBinaryCompare) s_text = Replace(s_text, "5$", "e", , , vbBinaryCompare) s_text = Replace(s_text, "6#", "d", , , vbBinaryCompare) s_text = Replace(s_text, "7*", "f", , , vbBinaryCompare) s_text = Replace(s_text, "9#", "g", , , vbBinaryCompare) s_text = Replace(s_text, "0#", "h", , , vbBinaryCompare)
s_text = Replace(s_text, "a%", "n", , , vbBinaryCompare) s_text = Replace(s_text, "e$", "o", , , vbBinaryCompare) s_text = Replace(s_text, "f5", "p", , , vbBinaryCompare) s_text = Replace(s_text, "6$", "q", , , vbBinaryCompare) s_text = Replace(s_text, "h&", "r", , , vbBinaryCompare) s_text = Replace(s_text, "0.", "s", , , vbBinaryCompare) s_text = Replace(s_text, "e`", "t", , , vbBinaryCompare) s_text = Replace(s_text, "4r", "u", , , vbBinaryCompare) s_text = Replace(s_text, "7@", "v", , , vbBinaryCompare) s_text = Replace(s_text, "f^", "w", , , vbBinaryCompare) s_text = Replace(s_text, "t%", "x", , , vbBinaryCompare) s_text = Replace(s_text, "g@", "y", , , vbBinaryCompare) s_text = Replace(s_text, "h0", "z", , , vbBinaryCompare)
s_text = Replace(s_text, ".2", "A", , , vbBinaryCompare) s_text = Replace(s_text, ".3", "B", , , vbBinaryCompare) s_text = Replace(s_text, ".4", "C", , , vbBinaryCompare) s_text = Replace(s_text, ".5", "D", , , vbBinaryCompare) s_text = Replace(s_text, ".6", "E", , , vbBinaryCompare) s_text = Replace(s_text, ".7", "F", , , vbBinaryCompare) s_text = Replace(s_text, ".8", "G", , , vbBinaryCompare) s_text = Replace(s_text, ".9", "H", , , vbBinaryCompare) s_text = Replace(s_text, ".0", "I", , , vbBinaryCompare) s_text = Replace(s_text, ".1", "J", , , vbBinaryCompare) s_text = Replace(s_text, "/3", "K", , , vbBinaryCompare) s_text = Replace(s_text, "/5", "L", , , vbBinaryCompare) s_text = Replace(s_text, "/7", "M", , , vbBinaryCompare) s_text = Replace(s_text, "/9", "N", , , vbBinaryCompare) s_text = Replace(s_text, "/1", "O", , , vbBinaryCompare) s_text = Replace(s_text, "/0", "P", , , vbBinaryCompare) s_text = Replace(s_text, "/8", "Q", , , vbBinaryCompare) s_text = Replace(s_text, "/6", "R", , , vbBinaryCompare) s_text = Replace(s_text, "/4", "S", , , vbBinaryCompare) s_text = Replace(s_text, "/2", "T", , , vbBinaryCompare) s_text = Replace(s_text, ";0", "U", , , vbBinaryCompare) s_text = Replace(s_text, ";2", "V", , , vbBinaryCompare) s_text = Replace(s_text, ";3", "W", , , vbBinaryCompare) s_text = Replace(s_text, ";4", "X", , , vbBinaryCompare) s_text = Replace(s_text, ";6", "Y", , , vbBinaryCompare) s_text = Replace(s_text, ";7", "Z", , , vbBinaryCompare)
s_text = Replace(s_text, "%r", "0", , , vbBinaryCompare) s_text = Replace(s_text, "#g", "1", , , vbBinaryCompare) s_text = Replace(s_text, "1$", "2", , , vbBinaryCompare) s_text = Replace(s_text, "j~", "3", , , vbBinaryCompare) s_text = Replace(s_text, "j#", "4", , , vbBinaryCompare) s_text = Replace(s_text, "3?", "5", , , vbBinaryCompare) s_text = Replace(s_text, "*t", "6", , , vbBinaryCompare) s_text = Replace(s_text, "u@", "7", , , vbBinaryCompare) s_text = Replace(s_text, "n!", "8", , , vbBinaryCompare) s_text = Replace(s_text, "&x", "9", , , vbBinaryCompare) Decrypt = s_text
End Function
Public Sub closeconn()
On Error Resume Next adoRS.Close
Set adoRS = Nothing
End Sub
Menu Basis Pengetahuan
Public baru As Boolean
Dim rsRusak As New ADODB.Recordset
Private Sub cboCari_Click() txtCari.Text = ""
txtCari.SetFocus End Sub
Private Sub cmdInputKerusakan_Click() frmKerusakan.Show vbModal
End Sub
Private Sub cmdInputSolusi_Click() frmSolusi.Show vbModal
End Sub
Private Sub cmdKeluar_Click() Me.Hide
End Sub
Private Sub cmdSimpan_Click() On Error GoTo simpanErr
If txtIDKnowledge.Text = Empty Or _ cboKerusakan.Text = "" Or _ txtPertanyaan.Text = Empty Or _ txtFaktaYA.Text = Empty Or _ txtFaktaTIDAK.Text = Empty Or _ cboYA.Text = Empty Or _
cboTIDAK.Text = Empty Then
MsgBox "Informasi belum lengkap ! Lengkapi terlebih dahulu !", vbExclamation, "Peringatan"
txtIDKnowledge.SetFocus Else
Dim rsCek As ADODB.Recordset Set rsCek = New ADODB.Recordset
rsCek.Open "select * from knowledge where ID='" & txtIDKnowledge.Text & "'", Conn If Not rsCek.EOF And baru Then
MsgBox "Aturan dengan kode " & txtIDKnowledge.Text & " sudah ada, silahkan ganti dengan kode yang lain !", vbExclamation, "Peringatan"
txtIDKnowledge.SetFocus: SendKeys "{HOME}+{END}" Else
With Adodc1.Recordset If baru Then .AddNew !ID = txtIDKnowledge.Text !ID_kerusakan = txtIDKerusakan.Text !pertanyaan = txtPertanyaan.Text !faktaYA = txtFaktaYA.Text !faktaTIDAK = txtFaktaTIDAK.Text !Ya = cboYA.Text !Tidak = cboTIDAK.Text .Update
MsgBox "Data berhasil disimpan !", vbInformation, "Informasi" KunciTeks True tombolAwal True KosongkanForm End With End If End If Exit Sub simpanErr:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Sub tombolAwal(kunci As Boolean) cmdTambah.Enabled = kunci
cmdSimpan.Enabled = Not kunci cmdBatal.Enabled = Not kunci cmdUbah.Enabled = kunci cmdHapus.Enabled = kunci cmdKeluar.Enabled = kunci End Sub
txtIDKnowledge.Text = !ID txtIDKerusakan.Text = !ID_kerusakan txtPertanyaan.Text = !pertanyaan txtFaktaYA.Text = !faktaYA txtFaktaTIDAK.Text = !faktaTIDAK cboYA.Text = !Ya cboTIDAK.Text = !Tidak
Set rsRusak = New ADODB.Recordset
rsRusak.Open "select * from kerusakan where ID_kerusakan='" & txtIDKerusakan.Text & "'", Conn cboKerusakan.Text = rsRusak!jenis_kerusakan End With txtIDKnowledge.SetFocus baru = False Exit Sub ubahErr:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Private Sub Form_Activate() Dim i As Integer For i = 0 To 6 gridKnowledge.Columns(i).Locked = True Next i For i = 0 To 1 gridKerusakan.Columns(i).Locked = True gridSolusi.Columns(i).Locked = True Next i
cboCari.AddItem "ID Pengetahuan" cboCari.AddItem "Pertanyaan" cboCari.AddItem "ID Kerusakan"
'If Not rsKerusakan.EOF Then cboKerusakan.Clear
rsKerusakan.MoveFirst While Not rsKerusakan.EOF
cboKerusakan.AddItem rsKerusakan!jenis_kerusakan rsKerusakan.MoveNext
Wend 'End If
'If Not rsKnowledge.EOF Then cboYA.Clear
cboTIDAK.Clear rsKnowledge.MoveFirst While Not rsKnowledge.EOF
cboYA.AddItem rsKnowledge!ID cboTIDAK.AddItem rsKnowledge!ID rsKnowledge.MoveNext
Wend 'End If
'If Not rsSolusi.EOF Then rsSolusi.MoveFirst While Not rsSolusi.EOF
cboYA.AddItem rsSolusi!ID_solusi cboTIDAK.AddItem rsSolusi!ID_solusi rsSolusi.MoveNext Wend 'End If End Sub
Private Sub Form_Load() KunciTeks True
Adodc3.ConnectionString = Conn.ConnectionString Adodc3.RecordSource = "select * from kerusakan" Adodc3.Refresh
Set gridKerusakan.DataSource = Adodc3
Adodc2.ConnectionString = Conn.ConnectionString Adodc2.RecordSource = "select * from solusi" Adodc2.Refresh
Set gridSolusi.DataSource = Adodc2
gridKerusakan.Columns(0).Width = 400 gridKerusakan.Columns(1).Width = 5000 gridSolusi.Columns(0).Width = 400 gridSolusi.Columns(1).Width = 5000 gridKnowledge.Columns(0).Width = 400 gridKnowledge.Columns(4).Width = 400 gridKnowledge.Columns(5).Width = 400 gridKnowledge.Columns(6).Width = 400 End Sub
Private Sub cboKerusakan_Click() On Error GoTo rusakErr
Set rsRusak = New ADODB.Recordset
rsRusak.Open "select * from kerusakan where jenis_kerusakan='" & cboKerusakan.Text & "'", Conn
txtIDKerusakan.Text = rsRusak!ID_kerusakan Exit Sub
rusakErr:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Sub DaftarCari() On Error GoTo pesan
Dim adofilter As New ADODB.Recordset Set adofilter = New ADODB.Recordset Dim sqlc As String
adofilter.CursorLocation = adUseClient
Select Case cboCari.Text Case "ID Pengetahuan"
sqlc = "SELECT * FROM knowledge where ID like " & "'%" & txtCari.Text & "%'" & _
"ORDER BY ID" Case "Pertanyaan"
sqlc = "SELECT * FROM knowledge where pertanyaan like " & "'%" & txtCari.Text & "%'" & _
"ORDER BY ID" Case "ID Kerusakan"
sqlc = "SELECT * FROM knowledge where ID_kerusakan like " & "'%" & txtCari.Text & "%'" & _
"ORDER BY ID" Case Else
MsgBox "Pilih dulu mau mencari berdasarkan apa !", vbExclamation, "Peringatan" 'txtCari.Text = ""
cboCari.SetFocus Exit Sub
End Select
adofilter.Open sqlc, Conn, adOpenDynamic, adLockOptimistic
If Not adofilter.EOF Then
Set gridKnowledge.DataSource = adofilter Set Adodc1.Recordset = adofilter
pesan:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Private Sub txtCari_Change() DaftarCari
End Sub
Menu Solusi
Public baru As Boolean
Private Sub cmdBatal_Click() KunciTeks True
tombolAwal True
Adodc1.Recordset.Cancel KosongkanForm
End Sub
Private Sub cmdHapus_Click() On Error GoTo hapusErr Dim pil
pil = MsgBox("Apakah anda yakin data ini akan dihapus ?", vbQuestion + vbYesNo + vbDefaultButton2, "Konfirmasi")
If pil = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveLast
MsgBox "Data Berhasil Dihapus !", vbInformation, "Informasi" End If
Exit Sub
hapusErr:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Private Sub cmdKeluar_Click() Me.Hide
End Sub
Private Sub cmdSimpan_Click() On Error GoTo simpanErr
If txtIDSolusi.Text = Empty Or _ txtSolusi.Text = Empty Then
MsgBox "Informasi belum lengkap ! Lengkapi terlebih dahulu !", vbExclamation, "Peringatan"
txtIDSolusi.SetFocus Else
Dim rsCek As ADODB.Recordset Set rsCek = New ADODB.Recordset
rsCek.Open "select * from solusi where ID_solusi='" & txtIDSolusi.Text & "'", Conn If Not rsCek.EOF And baru Then
MsgBox "Solusi dengan kode " & txtIDSolusi.Text & " sudah ada, silahkan ganti dengan kode yang lain !", vbExclamation, "Peringatan"
txtIDSolusi.SetFocus: SendKeys "{HOME}+{END}" Else
With Adodc1.Recordset If baru Then .AddNew
!ID_solusi = txtIDSolusi.Text !solusi = txtSolusi.Text
.Update
MsgBox "Data berhasil disimpan !", vbInformation, "Informasi" KunciTeks True
simpanErr:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Private Sub cmdTambah_Click() baru = True
KunciTeks False tombolAwal False txtIDSolusi.SetFocus End Sub
Sub tombolAwal(kunci As Boolean) cmdTambah.Enabled = kunci
cmdSimpan.Enabled = Not kunci cmdBatal.Enabled = Not kunci cmdUbah.Enabled = kunci cmdHapus.Enabled = kunci cmdKeluar.Enabled = kunci End Sub
Private Sub cmdUbah_Click() On Error GoTo ubahErr KunciTeks False tombolAwal False With Adodc1.Recordset txtIDSolusi.Text = !ID_solusi txtSolusi.Text = !solusi End With txtIDSolusi.SetFocus baru = False Exit Sub ubahErr:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Private Sub Form_Activate() Dim i As Integer For i = 0 To 1 gridSolusi.Columns(i).Locked = True Next i txtCari.Text = "" End Sub
Private Sub Form_Load() KunciTeks True
tombolAwal True
Adodc1.ConnectionString = Conn.ConnectionString Adodc1.RecordSource = "select * from solusi" Adodc1.Refresh
Set gridSolusi.DataSource = Adodc1
gridSolusi.Columns(0).Width = 400 gridSolusi.Columns(1).Width = 5000 End Sub Sub KosongkanForm() txtIDSolusi.Text = Empty txtSolusi.Text = Empty End Sub
Sub KunciTeks(kunci As Boolean) txtIDSolusi.Locked = kunci txtSolusi.Locked = kunci
Set adofilter = New ADODB.Recordset Dim sqlc As String
adofilter.CursorLocation = adUseClient
Select Case cboCari.Text Case "ID Solusi"
sqlc = "SELECT * FROM solusi where ID_Solusi like " & "'%" & txtCari.Text & "%'" & _
"ORDER BY ID_Solusi" Case "Solusi"
sqlc = "SELECT * FROM solusi where solusi like " & "'%" & txtCari.Text & "%'" & _
"ORDER BY ID_Solusi" Case Else
MsgBox "Pilih dulu mau mencari berdasarkan apa !", vbExclamation, "Peringatan" cboCari.SetFocus
Exit Sub End Select
adofilter.Open sqlc, Conn, adOpenDynamic, adLockOptimistic
If Not adofilter.EOF Then
Set gridSolusi.DataSource = adofilter Set Adodc1.Recordset = adofilter Else
MsgBox "Maaf, data yang anda cari tidak terdapat pada database !", vbInformation, "Informasi"
txtCari.Text = "" End If
Exit Sub
pesan:
MsgBox "Terdapat kesalahan ! " & Err.Description, vbCritical, "Peringatan" End Sub
Menu Pilih Kerusakan
Private Sub cboKerusakan_Click() nc_proses.Enabled = True
End Sub
Private Sub Form_Load() Dim i As Integer
i = 0
cboKerusakan.Clear rsKerusakan.MoveFirst While Not rsKerusakan.EOF
cboKerusakan.AddItem rsKerusakan!jenis_kerusakan, i i = i + 1 rsKerusakan.MoveNext Wend nc_proses.Enabled = False End Sub
Private Sub nc_proses_Click() frmDiagnosis.Show vbModal End Sub
Menu Diagnosis
Private Sub Form_Activate() Call Form_Load
End Sub
Private Sub Form_Load() On Error Resume Next
rsKnowledge.MoveFirst
Select Case frmPilihKerusakan.cboKerusakan.ListIndex Case 0 rsKnowledge.Find " ID='T1' " Label1.Caption = rsKnowledge!pertanyaan Case 1 rsKnowledge.Find " ID='T10' " Label1.Caption = rsKnowledge!pertanyaan Case 2 rsKnowledge.Find " ID='T21' " Label1.Caption = rsKnowledge!pertanyaan Case 3 rsKnowledge.Find " ID='T38' " Label1.Caption = rsKnowledge!pertanyaan Case 4 rsKnowledge.Find " ID='T33' " Label1.Caption = rsKnowledge!pertanyaan Case 5 rsKnowledge.Find " ID='T52' " Label1.Caption = rsKnowledge!pertanyaan End Select End Sub
Private Sub Form_Unload(Cancel As Integer) Call cmdSelesai_Click
End Sub
Private Sub nc_selesai_Click() Me.Hide
End Sub
Private Sub nc_tidak_Click() On Error Resume Next
rsTemp.AddNew rsTemp!ID_temp = rsKnowledge!ID rsTemp!fakta = rsKnowledge!faktaTIDAK rsTemp.Update jwb = rsKnowledge!Tidak If Left(jwb, 1) = "T" Then rsKnowledge.MoveFirst
rsKnowledge.Find " ID= '" & jwb & "' " Label1.Caption = rsKnowledge!pertanyaan Else
rsSolusi.MoveFirst
rsSolusi.Find " ID_solusi= '" & jwb & "' "
frmHasilDiagnosis.Label1.Caption = rsSolusi!solusi frmHasilDiagnosis.Show vbModal
End If End Sub
Private Sub nc_ya_Click() On Error Resume Next rsTemp.AddNew rsTemp!ID_temp = rsKnowledge!ID rsTemp!fakta = rsKnowledge!faktaYA rsTemp.Update jwb = rsKnowledge!Ya If Left(jwb, 1) = "T" Then rsKnowledge.MoveFirst
rsKnowledge.Find " ID= '" & jwb & "' " Label1.Caption = rsKnowledge!pertanyaan Else
rsSolusi.MoveFirst
Menu Hasil Diagnosis
Private Sub Form_Unload(Cancel As Integer) Call nc_selesai_Click
End Sub
Private Sub nc_alasan_Click() frmPenanganan.Label2.Text = "" rsTemp.MoveFirst
While Not rsTemp.EOF
frmPenanganan.Label2.Text = frmPenanganan.Label2.Text + _ rsTemp!fakta + vbCrLf
rsTemp.MoveNext Wend
frmPenanganan.Label2.Text = frmPenanganan.Label2.Text + vbCrLf + vbCrLf + _ "Maka Hasil Diagnosis : " + vbCrLf + rsSolusi!solusi
frmPenanganan.Show vbModal End Sub
Private Sub nc_selesai_Click() Me.Hide
frmDiagnosis.Hide End Sub
Menu Tambah Pakar
Private Sub nc_batal_Click() Unload Me
End Sub
Private Sub nc_buat_Click() If txtlogin.Text = "" Then
MsgBox "Masukkan User ID !", vbCritical txtlogin.SetFocus
Exit Sub End If
If Not validity(txtlogin, "User ID") Then txtlogin.SetFocus
Exit Sub End If
If txtpass.Text = "" Then
MsgBox "Masukkan Password !", vbCritical txtpass.SetFocus
Exit Sub End If
If Not validity(txtpass, "Password") Then txtpass.SetFocus
Exit Sub End If
If txtpass2.Text = "" Then
MsgBox "Ulangi Memasukkan Password !", vbCritical txtpass2.SetFocus
Exit Sub End If
If Not validity(txtpass2, "Konfirmasi Password") Then txtpass2.SetFocus
Exit Sub End If
If txtpass.Text <> txtpass2.Text Then
MsgBox "Password dan ulangi password tidak sesuai !", vbCritical txtpass.Text = "" txtpass2.Text = "" txtpass.SetFocus Exit Sub End If If cboTipe.Text = "" Then
MsgBox "Pilih tipe user !", vbCritical cboTipe.SetFocus
End If
If Not validity(txtadmin, "Administrator Password") Then txtadmin.SetFocus
Exit Sub End If konek_db
sql = "select * from list_user where level = '" & "Administrator" & "' and pass = '" & Crypt(txtadmin.Text) & "'"
adoRS.Open sql, Conn, adOpenDynamic, adLockOptimistic
If (adoRS.EOF) Then
MsgBox "Password Administrator Salah! Coba lagi dengan password Administrator yang benar !", vbCritical
txtadmin.Text = "" txtadmin.SetFocus Call closeconn Exit Sub End If Call closeconn
sql = "select * from list_user where user_id = '" & txtlogin.Text & "'" adoRS.Open sql, Conn, adOpenDynamic, adLockOptimistic
If Not (adoRS.EOF) Then
MsgBox "User ID sudah ada! Masukkan user ID yang lain!", vbCritical, "Peringatan"