40
Bab 4
Hasil dan Pembahasan
1.14
Hasil Implementasi
Implementasi Aplikasi Sistem Pakar terdiri dari implementasi
diagnosa kerusakan yang terdiri dari gejala, tempat yang diduga, diagnosa
kerusakan dan pencarian hasil atau kesimpulan serta implementasi
workplace.
4.1.1 Implementasi Gejala
Pada modul gejala, dilakukan implementasi dengan membaca
berkas xml yang berisi daftar gejala yang disediakan oleh sistem pakar
untuk kemudian ditampilkan ke dalam antarmuka pengguna aplikasi
sistem pakar.
Kode Program 4.1. Menampilkan Daftar Gejala
1 XStream xstreamGejala = new XStream(new DomDriver());
2 xstreamGejala.alias("gejala", Gejala.class);
3 ArrayList<Gejala> listGejala = new ArrayList<Gejala>();
4 ObjectInputStream in;
5
6 model = new DefaultListModel();
7 lstGejala.setModel(model);
8 try {
9 in = xstreamGejala.createObjectInputStream(
10 new FileInputStream("gejala.xml"));
11 listGejala = (ArrayList<Gejala>) in.readObject();
12 for (Gejala g : listGejala) {
13 model.addElement(g);
14 }
15 } catch (Exception ex) {
16 Logger.getLogger(frmGejala.class.getName()).log(
17 Level.SEVERE, null, ex);
Kode Program 4.1 dapat dijelaskan pada baris 1 dibuat objek
pustaka XStream yang dapat digunakan untuk membantu membaca berkas
xml menjadi objek di dalam java. Pada baris 2, ditentukan class java yang
akan menampung data xml yaitu class Gejala. Pada baris 3, dibuat list
untuk menampung Gejala lebih dari satu menggunakan ArrayList.
Pada baris 6 dan 7 ditentukan model antarmuka yang menampilkan
daftar gejala yaitu lstGejala. Baris 9 dan 10, ditentukan berkas xml yang
akan dibaca oleh xstream yaitu gejala.xml. Pada baris 11, dibaca data xml
dan dikonversi ke dalam bentuk ArrayList.
Pada baris 12-14, setiap data di dalam list dimasukkan ke dalam
model yang akan mengubah tampilan menjadi berisi data-data gejala dari
berkas xml. Selanjutnya baris 15-18 adalah baris yang akan dijalankan
ketika terjadi kesalahan aplikasi.
4.1.2 Implementasi Tempat Yang Diduga
Berikutnya setelah pengguna memilih gejala tertentu, maka
pengguna diharuskan untuk memilih tempat yang diduga. Data-data
tempat yang diduga juga diambil berdasarkan berkas xml sesuai dengan
Kode Program 4.2.
Kode Program 4.2. Implementasi Tempat Yang Diduga
1 XStream xstreamTYD = new XStream(new DomDriver());
2 xstreamTYD.alias("tempatYangDiduga", TempatYangDiduga.class);
3 ArrayList<TempatYangDiduga> listTYD =
4 new ArrayList<TempatYangDiduga>();
5 ObjectInputStream in;
6
7 model = new DefaultListModel();
8 lstTempatYgDiduga.setModel(model);
9 try {
10 in = xstreamTYD.createObjectInputStream(
11 new FileInputStream("tyd.xml"));
13 for (TempatYangDiduga tyd : listTYD) {
14 if (tyd.kodeGejala.equals(kodeGejala)) {
15 model.addElement(tyd);
16 }
17 }
18 } catch (Exception ex) {
19 Logger.getLogger(frmGejala.class.getName()).log(
20 Level.SEVERE, null, ex);
21 }
Kode Program 4.2 dapat dijelaskan pada baris 1 dibuat objek
pustaka XStream yang dapat digunakan untuk membantu membaca berkas
xml menjadi objek di dalam java. Pada baris 2, ditentukan class java yang
akan menampung data xml yaitu class TempatYangDiduga. Pada baris 3,
dibuat list untuk menampung TempatYangDiduga lebih dari satu
menggunakan ArrayList.
Pada baris 6 dan 7 ditentukan model antarmuka yang menampilkan
daftar tempatyang diduga yaitu lstTempatYangDiduga. Baris 9 dan 10,
ditentukan berkas xml yang akan dibaca oleh xstream yaitu tyd.xml. Pada
baris 11, dibaca data xml dan dikonversi ke dalam bentuk ArrayList.
Pada baris 13-17, setiap data di dalam list dimasukkan ke dalam
model yang akan mengubah tampilan menjadi berisi data-data tempat
yang diduge dari berkas xml. Pada baris 14 dilakukan pengecekan data
tempat yang diduga yang dimasukkan adalah tempat yang diduge yang
termasuk dalam gejala sesuai yang dipilih pengguna. Selanjutnya baris
18-21 adalah baris yang akan dijalankan ketika terjadi kesalahan aplikasi.
4.1.3 Implementasi Diagnosa Kerusakan
Berikutnya adalah diagnosa kerusakan yang akan menampilkan
pertanyaan-pertanyaan sesuai dengan tempat yang diduga oleh pengguna
sistem pakar. Implementasi Diagnosa Kerusakan terdapat di dalam Kode
Kode Program 4.3. Implementasi Diagnosa Kerusakan
1 String kodeSelanjutnya = "";
2 if (y) {
3 kodeSelanjutnya = solusi.kodeJawabOk;
4 } else {
5 kodeSelanjutnya = solusi.kodeJawabJelek;
6 }
7
8 Solusi solusiBerikutnya = null;
9 for(Solusi s:listSolusi) {
10 if (s.kode.equals(kodeSelanjutnya)) {
11 solusiBerikutnya = s;
17 frmKesimpulan kesimpulan = new frmKesimpulan(
18 null, true, "Solusi Kerusakan Tidak Dapat Ditemukan!");
19 kesimpulan.setVisible(true);
20 this.dispose();
21 } else {
22 if (solusiBerikutnya.jenis.equals("Kesimpulan")) {
23 frmKesimpulan kesimpulan = new frmKesimpulan(
24 null, true, solusiBerikutnya.isi);
25 kesimpulan.setVisible(true);
26 this.dispose();
27 } else {
28 frmDiagnosaKerusakan nextForm = new frmDiagnosaKerusakan(
29 null, true, solusiBerikutnya);
30 nextForm.setVisible(true);
31 this.dispose();
32 }
33 }
Kode Program 4.3 dapat dijelaskan pada baris 1-6 dicek apakah
yang dipilih pengguna jawaban Bagus atau Jelek. Jika jawaban bagus yang
dipilih maka kode selanjutnya diambilkan kodeJawabOK dari solusi yang
diberikan. Sedangkan jika pilihan jawaban adalah Jelek maka kode solusi
Pada baris 8-14 dilakukan pencarian solusi yang sesuai dengan
kode selanjutnya yang didapatkan. Dari semua solusi dilakukan
perulangan kemudian menggunakan if, akan didapatkan solusi yang sesuai
dengan kode selanjutnya.
Pada baris 16-21 dicek apakah solusi berikutnya bernilai null. Jika
solusi berikutnya bernilai null, artinya tidak ditemukan kesimpulan atau
hasil yang cocok. Maka tampilkan FormKesimpulan dan diisi dengan
kesimpulan “Solusi Kerusakan Tidak Dapat Ditemukan!”.
Pada baris 22-27, adalah kondisi ketika solusi tidak null dan solusi
memiliki tipe sebagai kesimpulan. Maka tampilkan FormKesimpulan
dengan isi dari isi solusi tersebut.
Pada baris 28-32 adalah kondisi ketika solusi tidak null dan solusi
memiliki tipe bukan kesimpulan, maka tampilkan
FormDiagnosaKerusakan dengan isi solusi yang didapatkan tersebut.
Dengan perintah tersebut, maka sebelum solusi ditemukan akan terus
ditampilkan pertanyaan-pertanyaan sampai didapatkan solusi berupa
kesimpulan atau jika null berarti tidak ada solusi yang cocok dan solusi
tidak ada.
4.1.4 Implementasi Kesimpulan
Berikutnya adalah implementasi Kesimpulan. Pada implementasi
kesimpulan, memiliki inputan berupa isi kesimpulan yang ditampilkan ke
dalam Textarea hasil kesimpulan tersebut.
Kode Program 4.4. Implementasi Kesimpulan
1 public frmKesimpulan(Frame parent, boolean modal, String kesimpulan) {
2 txtGejala.setText(kesimpulan);
4.1.5 Implementasi Workplace
Implementasi yang terakhir adalah workplace. Workplace akan
menampilkan
Kode Program 4.5. Implementasi Workplace
1 xstreamWorkplace = new XStream(new DomDriver());
2 xstreamWorkplace.alias("workplace", Workplace.class);
3
4 model = (DefaultTableModel) tblData.getModel();
5 model.setRowCount(0);
6 try {
7 in = xstreamWorkplace.createObjectInputStream(
8 new FileInputStream("workplace.xml"));
9 listWorkplace = (ArrayList<Workplace>) in.readObject();
10 for (Workplace work : listWorkplace) {
11 model.addRow(new Object[]{
12 work, work.gejala,
13 work.tempatyangdiduga, work.kesimpulan});
14 }
15 } catch (Exception ex) {
16 Logger.getLogger(frmGejala.class.getName()).log(
17 Level.SEVERE, null, ex);
18 }
Kode Program 4.5 dapat dijelaskan pada baris 1-2 dilakukan
inisialisasi xstream agar dapat membaca berkas xml berdasarkan class
Workplace. Pada baris 4-5 didapatkan model dari tabel agar tabel dapat
dimodifikasi isi datanya. Pada baris 6-15 dilakukan pembacaan data dari
workplace.xml dilakukan loop setiap data dan dimasukkan ke dalam tabel
melalui model. Pada baris 15-18 adalah kode program yang dijalankan
1.15
Pengujian Aplikasi
Pengujian aplikasi dilakukan dengan menguji modul utama sistem
yaitu:
- Pengujian diagnosa kerusakan disamakan dengan manual. Jika urutan
yang dilakukan sama dan menghasilkan kesimpulan yang sama, maka
sistem pakar diagnosa kerusakan sudah dapat dikatakan berjalan
dengan baik dan benar.
- Pengujian berikutnya adalah pada workplace. Setiap hasil pengujian
seharusnya tersimpan ke dalam workplace dan dapat ditampilkan
kembali dengan baik.
4.2.1 Pengujian Diagnosa Kerusakan (Sistem Pakar)
Pengujian diagnosa dilakukan dengan membandingkan antara
urutan gejala, tempat yang diduga, pertanyaan yang muncul dan
kesimpulan atau solusi yang didapatkan.
Gambar 4.1. Pengujian Input Nama Workplace
Awal mula ketika memulai diagnosa kerusakan kita akan diminta
untuk memasukkan nama workplace sebagai penanda proses diagnosa.
Nama yang dimasukkan kemudian nantinya akan dapat diakses melalui
Gambar 4.2. Pengujian Pemilihan Gejala
Ketika sudah memasukkan nama workplace maka selanjutnya
adalah memilih gejala yang ditampilkan oleh sistem pakar. Seperti pada
Gambar 4.2. kita memilih “Mesin tidak bisa berputar” sebagai gejala
Gambar 4.3. Pengujian Tempat Yang Diduga
Berikutnya akan muncul Form Tempat Yang Diduga yang akan
mengharuskan pengguna untuk memilih tempat yang diduga mengalami
kerusakan. Sesuai dengan Gambar 4.3. ditampilkan pilihan “Starter dan
relay starter” dan “Rangkaian switch posisi parkir / netral”. Dua pilihan
tersebut tampil karena pengguna memilih gejala “mesin tidak bisa
berputar”.
Jika pengguna melakukan pemilihan gejala yang lain, maka daftar
tempat yang diduga yang ditampilkan juga akan berbeda. Dibandingkan
dengan manual, sudah sesuai urutan dari gejala yang dipilih ke daftar
Gambar 4.4. Pengujian Diagnosa Kerusakan Melalui Pertanyaan
Gambar 4.6. Pengujian Diagnosa Kerusakan 3
Ketika pengguna sudah memilih tempat yang diduga tertentu,
maka akan ditampilkan beberapa pertanyaan yang mengharuskan
pengguna untuk melakukan pengecekan kondisi komponen tertentu.
Pengguna cukup menjawab kondisi bagus (ok) atau kondisi jelek. Seperti
pada Gambar 4.4. sampai pada Gambar 4.7 ditampilkan pertanyaan sesuai
dengan kondisi hasil pengecekan pengguna. Sampai akhirnya didapatkan
kesimpulan seperti pada Gambar 4.8 yaitu “Jika arus tidak seperti yang
ditentukan, gant starter”. Berdasarkan hasil pengujian tersebut, maka dapat
disimpulkan modul sistem pakar diagnosa kerusakan dapat berjalan
dengan baik dan benar.
4.2.2 Pengujian Workplace
Pengujian berikutnya adalah pengujian workplace. Pengujian dilakukan dengan melihat daftar diagnosa yang telah dilakukan menggunakan sistem pakar, kemudian melihat detail dari jawaban sampai pada kesimpulan yang didapatkan.
Hasil pengujian workplace dapat dilihat pada Gambar 4.9, ditampilkan daftar penggunaan diagnosa kerusakan yang telah dilakukan sebelumnya:
Gambar 4.9. Pengujian Workplace