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 XStreamnew DomDriver; 2 xstreamTYD.aliastempatYangDiduga, TempatYangDiduga.class;
3 ArrayListTempatYangDiduga listTYD = 4 new ArrayListTempatYangDiduga;
5 ObjectInputStream in; 6
7 model = new DefaultListModel; 8 lstTempatYgDiduga.setModelmodel;
9 try { 10
in = xstreamTYD.createObjectInputStream 11
new FileInputStreamtyd.xml; 12
listTYD = ArrayListTempatYangDiduga in.readObject;
13 for TempatYangDiduga tyd : listTYD {
14 if tyd.kodeGejala.equalskodeGejala {
15 model.addElementtyd;
16 }
17 }
18 } catch Exception ex { 19 Logger.getLoggerfrmGejala.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 Program 4.3.
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 forSolusi s:listSolusi { 10
if s.kode.equalskodeSelanjutnya { 11
solusiBerikutnya = s; 12
break; 13
} 14 }
15 16 if solusiBerikutnya == null {
17 frmKesimpulan kesimpulan = new frmKesimpulan
18 null, true, Solusi Kerusakan Tidak Dapat Ditemukan;
19 kesimpulan.setVisibletrue;
20 this.dispose;
21 } else { 22
if solusiBerikutnya.jenis.equalsKesimpulan { 23
frmKesimpulan kesimpulan = new frmKesimpulan 24
null, true, solusiBerikutnya.isi; 25
kesimpulan.setVisibletrue; 26
this.dispose; 27
} else { 28
frmDiagnosaKerusakan nextForm = new frmDiagnosaKerusakan 29
null, true, solusiBerikutnya; 30
nextForm.setVisibletrue; 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
berikutnya diambilkan dari kodeJawabJelek.
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