2
1. Pendahuluan
Seiring dengan perkembangan zaman dan teknologi, peran komputer
semakin mendominasi kehidupan umat manusia dalam melakukan suatu
pekerjaan. Komputer tidak lagi hanya digunakan sebagai alat hitung, namun
komputer diharapkan agar dapat mengerjakan segala sesuatu yang biasa
dikerjakan oleh manusia.
Manusia bisa menyelesaikan masalah karena manusia mempunyai
pengetahuan dan pengalaman. Pengetahuan diperoleh dengan belajar, semakin
banyak belajar tentu saja pengetahuan seseorang akan meningkat sehingga
memiliki kemampuan dalam menyelesaikan masalah. Tanpa memiliki
kemampuan untuk menalar dengan baik manusia dengan segudang pengalaman
dan pengetahuan tidak akan dapat menyelesaikan masalah dengan baik.
Untuk itu agar komputer dapat melakukan tindakan seperti dan sebaik
manusia, maka komputer juga harus diberi bekal pengetahuan dan mempunyai
kemampuan untuk menalar. Sistem pakar adalah merupakan salah satu cabang
kecerdasan buatan yang mempelajari bagaimana meniru cara berpikir seorang
pakar dalam menyelesaikan suatu permasalahan, membuat keputusan maupun
mengambil kesimpulan sejumlah fakta[1].
Sistem pakar dewasa ini telah banyak digunakan dalam sistem berbasis
pengetahuan yang diterapkan diberbagai bidang. Dari sekian banyaknya sistem
pakar yang dikembangkan kebanyakan dibuat hanya untuk menyelesaikan
masalah tertentu dan dengan tujuan tertentu. Pembangunan sistem pakar juga
membutuhkan pengkodean pada bahasa pemograman. Selain itu, mengetahui
terbatasnya pembelajaran untuk sistem pakar, yang selama ini masih banyak
menggunakan buku-buku, jurnal, artikel dimana pengguna hanya dapat
mempelajari teori-teori tentang sistem pakar tanpa bisa mencoba dan
mengembangkannya. Sehingga dibuat aplikasi shell sistem pakar untuk
pembelajaran kecerdasan buatan.
Dalam penelitian ini dibuat aplikasi Shell sistem pakar yang digunakan
untuk pembelajaran kecerdasan buatan khususnya sistem pakar sehingga dapat
memberikan kemudahan bagi pengguna dalam mencoba dan mengembangkan
sistem pakar dengan memasukkan basis pengetahuan tanpa harus melalui proses
pengkodean pada bahasa pemograman. Rumusan masalah dalam penelitian ini
adalah bagaimana membuat Shell Sistem Pakar untuk Pembelajaran Kecerdasan
Buatan.
2. Kajian Pustaka
Handayani [2] membuat sistem pakar untuk membantu (bukan
menggantikan) tugas-tugas para dokter serta melengkapi kemampuan para dokter
tersebut dalam membuat keputusan yang optimal melalui pengolahan komputer.
Sistem pakar berbasis web dengan e2gLite yang telah dikembangkan mempunyai
keunggulan dalam kemudahan akses dan kemudahan pemakaian. Pada
penelitiannya menuliskan bahwa pengguna dapat membuat sistem pakar berbasis
web dengan shell e2gLite yang membutuhkan 2 buah file. File pertama adalah file
3
halaman web yang berisi applet e2gLite, dan file kedua adalah file basis
pengetahuan. Kedua file tersebut harus ditulis dengan format yang telah
ditentukan oleh pembuat e2gLite. File basis pengetahuan berupa file teks dapat
dibuat menggunakan program editor teks biasa seperti notepad. File ini berisi
definisi aturan-aturan yang digunakan untuk menentukan jenis penyakit hati yang
dapat dibaca oleh siapapun karena bersifat publik atau dapat diakses oleh
siapapun sehingga tidak dapat dijaga kerahasiannya. Mesin inferensi yang
digunakan adalah kombinasi antara Forward Chaining dan Backward Chaining.
Aplikasi ini hanya dapat dijalankan dengan menggunakan browser yang memiliki
fitur Java [2].
Nurhuda [3] membuat shell sistem pakar untuk mempermudah seorang
knowledge engineer atau seorang pakar dalam mengembangkan sistem pakar
dengan waktu dan biaya yang sangat murah. Pada penelitiannya menuliskan
bahwa pengguna dari sistem ini dibedakan dalam 2 kelompok pengguna, masing-
masing adalah pengguna dalam kelompok pengembang sistem pakar dan
pengguna dalam kelompok pemakai sistem pakar. Fasilitas yang digunakan untuk
kelompok pengembang sistem pakar dalam membangun basis pengetahuan terdiri
atas fasilitas untuk mendokumentasikan fakta/kondisi, fasilitas untuk
mendokumentasikan kesimpulan, dan fasilitas untuk mendokumenasikan aturan
yang masing-masing diinputkan melalui user interface. Sedangkan fasilitas yang
digunakan untuk kelompok pemakai sistem pakar terdiri atas fasilitas konsultasi
dan kesimpulan hasil konsultasi. Mesin inferensi yang digunakan adalah Forward
Chaining. Aplikasi yang dibangun berbasis desktop [3].
Penelitian ini mengadopsi dari penelitian Handayani [2] mengenai basis
pengetahuan yang digunakan berupa file editor teks sehingga muncul ide bahwa
basis pengetahuan yang digunakan adalah berupa file teks sehingga dapat dengan
mudah dikembangkan untuk pengetahuan yang berbeda-beda sebagai
pembelajaran kecerdasan buatan. Penelitian ini juga mengadopsi dari penelitian
Nurhuda [3] mengenai mesin inferensi yang digunakan yaitu Forward Chaining,
sehingga dalam mencari kesimpulan dilakukan pencocokan fakta yang diperoleh
dengan aturan yang ada pada basis pengetahuan.
Pada penelitian yang dikerjakan ini dibuatlah suatu sistem pembelajaran
kecerdasan buatan berupa Shell sistem pakar yang dapat memberikan kemudahan
bagi pengguna dalam mempelajari maupun mengembangkan sistem pakar dengan
menggunakan mesin inferensi Forward Chaining dan pendekatan berbasis aturan
(rule based reasoning). Diasosiasikan sebagai shell karena pada dasarnya shell
sistem pakar merupakan sistem pakar tanpa dilengkapi dengan basis pengetahuan
tertentu sehingga dapat diisi dengan pengetahuan yang berbeda-beda. Dengan
menggunakan file teks dan pola if-then maka pengguna dapat dengan mudah
melakukan modifikasi terhadap data yang terdapat pada basis pengetahuan.
Web adalah kumpulan halaman-halaman yang digunakan untuk
menampilkan informasi teks, gambar diam atau gerak, animasi, suara, dan atau
gabungan dari semuanya, baik bersifat statis maupun dinamis yang membentuk
satu rangkaian bangunan yang saling terkait, yang masing-masing dihubungkan
dengan jaringan-jaringan halaman[4].
4
User
Interface
Inference
Engine
Editing
Facilities
for create
and update
the
knowledge
base
Knowledge
Base
Pembelajaran adalah prosedur dan metode yang ditempuh oleh pengajar
untuk memberikan kemudahan bagi peserta didik untuk melakukan kegiatan
belajar secara aktif dalam rangka mencapai tujuan pembelajaran.[5].
Sistem Pakar adalah suatu sistem yang menggunakan pengetahuan yang
dimiliki manusia kemudian diimplementasikan ke dalam suatu komputer untuk
memecahkan masalah yang biasanya ditangani oleh seorang pakar [6]. Sistem
pakar disusun oleh dua bagian utama: (1) Lingkungan pengembang (Development
Environment) digunakan untuk memasukan pengetahuan pakar ke dalam
lingkungan sistem pakar; (2) Lingkungan konsultasi (Consultation Environment)
digunakan oleh pengguna yang bukan pakar guna memperoleh pengetahuan
pakar[7].
Shell adalah bagian dari perangkat lunak yang berisi user interface, format
untuk representasi dari basis pengetahuan dalam domain sempit dan spesifik, dan
mesin inferensi[8]. Gambar 1 menjelaskan tentang arsitektur shell sistem pakar.
Gambar 1 Arsitektur Shell Sistem Pakar[8]
Dalam membangun shell sistem pakar terdapat beberapa komponen –
komponen dasar penyusunnya yang dapat dilihat pada Gambar 2.
Gambar 2 Komponen Dasar Shell Sistem Pakar[9]
Basis pengetahuan menyimpan fakta dan aturan. Sebuah expert system
tool memiliki satu atau lebih skema representasi pengetahuan untuk
mengekspresikan pengetahuan tentang domain aplikasi. Mesin inferensi
menyediakan mekanisme inferensi untuk memanipulasi pengetahuan dalam basis
pengetahuan untuk melakukan penelusuran dalam menyelesaikan masalah.
Subsistem akuisisi pengetahuan merupakan subsistem untuk membantu pakar
dalam membangun basis pengetahuan. Pengumpulan pengetahuan diperlukan
untuk menyelesaikan masalah dan membangun basis pengetahuan lebih jauh
untuk meningkatkan kemampuan sistem pakar. Subsistem penjelasan merupakan
5
penjelas yang menjelaskan tentang aksi sistem. Penjelasan dapat berupa
bagaimana kesimpulan akhir diperoleh dan dari mana solusi yang diberikan
didapatkan. Antar muka pengguna (user interface) merupakan sarana komunikasi
antara sistem dengan pengguna[9].
Rule based reasoning merupakan teknik representasi pengetahuan dengan
menggunakan aturan berbentuk: IF-THEN. Bentuk ini digunakan apabila kita
memiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu, dan
seorang pakar dapat menyelesaikan masalah tersebut secara berurutan. Disamping
itu, juga digunakan apabila dibutuhkan penjelasan tentang jejak (langkah –
langkah) pencapaian solusi[10].
Forward chaining merupakan suatu strategi pengambilan keputusan yang
dimulai dari bagian sebelah kiri (IF terlebih dahulu). Dengan kata lain, penalaran
dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesis[10].
3. Metode dan Perancangan Sistem
Aplikasi shell sistem pakar untuk pembelajaran kecerdasan buatan
dirancang dengan menggunakan UML (Unified Modelling Language) yaitu
metode pemodelan secara visual sebagai sarana untuk merancang dan atau
membuat software berorientasi objek[11]. Aplikasi dirancang dengan
menggunakan use case diagram dan activity diagram.
Use case diagram adalah abstraksi dari interaksi antara sistem dan
aktor[12]. Pada use case diagram, pengguna dapat dapat membuka halaman
konsultasi pada menu konsultasi yang akan menampilkan pertanyaan dan hasil
konsultasi. Selain itu pengguna juga dapat melihat petunjuk penggunaan aplikasi
pada menu petunjuk. Sedangkan pakar diharuskan membuka halaman pengaturan
pada menu pengaturan untuk menginputkan basis pengetahuan yang berupa file
aturan dan file pertanyaan yang telah dibuat sebelumnya dengan format yang telah
ditentukan. Use case pada perancangan aplikasi ini dapat dilihat pada Gambar 3.
Gambar 3 Use Case Diagram
6
Activity diagram adalah salah satu cara untuk memodelkan event-event yang
terjadi dalam suatu use case[13]. Activity diagram menjelaskan langkah atau
urutan aktifitas dalam sebuah proses. Activity diagram dalam perancangan
aplikasi ini dibuat berdasarkan aktifitas yang dilakukan oleh aktor pada use case
diagram.
Activity diagram untuk pakar dimulai dengan memilih menu pengaturan lalu
sistem akan menampilkan form input pertanyaan dan aturan. Kemudian pakar
menginputkan file pertanyaan dan aturan yang akan digunakan pada sistem
sebagai basis pengetahuan. Setelah itu akan dilakukan pengecekan pada file, jika
file tidak sesuai ketentuan maka sistem akan menampilkan pesan file tidak sesuai
ketentuan, jika file yang dicek sesuai ketentuan maka sistem akan menampilkan
pesan file berhasil disimpan. Activity diagram untuk pakar dapat dilihat pada
Gambar 4.
Gambar 4 Activity Diagram Pakar
Activity diagram untuk pengguna dimulai dengan memilih menu konsultasi
maka sistem akan membaca file pertanyaan untuk kemudian ditampilkan pada
user interface. Pengguna yang ingin berkonsultasi diharuskan memilih pertanyaan
yang sesuai dengan gejala yang dialami untuk kemudian dilakukan pencarian
gejala yang sesuai pada aturan yang ada di database. Jika pencarian gejala tidak
ditemukan atau dapat diartikan pengguna tidak memilih satu pun gejala, maka
sistem akan menampilkan pesan tidak ditemukan gejala. Sedangkan jika pencarian
gejala ditemukan, maka sistem akan menampilkan hasil konsultasi yang berupa
kesimpulan dari gejala yang ditemukan. Activity diagram untuk pengguna dapat
dilihat pada Gambar 5.
7
Gambar 5 Activity Diagram Pengguna
Aplikasi shell sistem pakar untuk pembelajaran kecerdasan buatan
dirancang berdasarkan modifikasi komponen-komponen dasar penyusun shell
sistem pakar. Komponen-komponen penyusun shell sistem pakar yang digunakan
pada pembuatan aplikasi ini meliputi basis pengetahuan, mesin inferensi dan
antarmuka pengguna (user interface). Komponen-komponen shell sistem pakar
yang digunakan pada aplikasi ini dapat dilihat pada Gambar 6.
Expert System Shell
Gambar 6 Komponen shell sistem pakar
Basis pengetahuan pada aplikasi ini memerlukan dua file, yaitu file
pertanyaan dan file aturan. Kedua file tersebut dibuat dengan menggunakan
program editor teks biasa seperti notepad yang disimpan dengan format yang
Basis
Pengetahuan
Pertanyaan
Aturan Mesin
Inferensi
Antarmuka Pengguna (User
Interface)
Knowledge Enginner
Pakar Pengguna
Expert System Shell
8
telah ditentukan, yaitu *.x2s. Tujuannya adalah untuk memudah pakar dalam
membangun maupun memodifikasi basis pengetahuan. Untuk file pertanyaan,
berisi pertanyaan-pertanyaan yang akan diajukan kepada pengguna dalam proses
konsultasi. File pertanyaan tersebut dibuat dengan format penulisan yang telah
ditentukan sebelumnya agar dapat ditampilkan kepada pengguna melalui user
interface. Bentuk format penulisan file pada pertanyaan dapat dilihat pada
Gambar 7.
Gambar 7 Bentuk Format Penulisan File Pertanyaan
Gambar 7 merupakan bentuk format penulisan pada file pertanyaan yang
diawali dengan pola “Apakah” yang diikuti dengan kondisi-kondisi yang akan
ditanyakan pada pengguna dan diakhiri dengan simbol tanya (?). Setiap
pertanyaan dipisah menggunakan baris baru.
Gambar 8 Flowchart Proses Menampilkan Pertanyaan
Pada flowchart Gambar 8 dijelaskan proses menampilkan pertanyaan
setelah dilakukan pengecekan untuk format file maupun format penulisan file pada
pertanyaan. Tahap pertama, file pertanyaan yang menjadi input awal dibaca oleh
sistem untuk kemudian dilakukan pemisahan berdasarkan baris. Setelah dilakukan
pemisahan, maka setiap baris pertanyaan akan tersimpan ke dalam array.
Apakah kondisi_1 ?
Apakah kondisi_2 ?
Apakah kondisi_3 ?
Apakah kondisi_4 ?
Apakah kondisi_5 ?
9
kol_1 kol_2 kol_3 kol_4 kol_5 kol_6
Kesimpulan kondisi_1 kondisi_2 kondisi_3 kondisi_4 kondisi_5
Selanjutnya akan dihitung jumlah data pada array yang nantinya akan digunakan
pada proses tahap terakhir. Proses tahap terakhir akan dilakukan perulangan
sebanyak jumlah data pada array untuk menampilkan pertanyaan-pertanyaan pada
proses konsultasi.
Sedangkan untuk file aturan, berisi aturan-aturan yang akan digunakan
pada sistem dalam mencapai suatu kesimpulan. Aturan-aturan direpresentasikan
menggunakan teknik representasi pengetahuan rule based reasoning dengan
bentuk pola IF-THEN. Bentuk format penulisan file aturan dapat dilihat pada
Gambar 9.
Gambar 9 Bentuk Format Penulisan File Aturan
Pada Gambar 9 menjelaskan bagaimana format penulisan file aturan
sehingga sistem dapat membacanya. Tahap pertama penulisan file aturan dimulai
dengan bentuk pola IF yang akan diikuti dengan kondisi-kondisi. Untuk setiap
kondisi yang ada dipisah menggunakan pola AND. Kemudian untuk menuliskan
kesimpulan dari berbagai kondisi yang ada digunakan pola THEN dengan diikuti
pernyataan kesimpulan. Aturan satu dengan aturan lainnya dipisah menggunakan
simbol pagar (#).
Aturan-aturan yang telah dibuat dengan mengikuti pola IF-THEN akan
dibaca oleh sistem untuk selanjutnya direpresentasikan ke dalam bentuk tabel
database. Bentuk representasi aturan ke dalam tabel database dapat dilihat pada
Gambar 10.
Gambar 10 Bentuk Representasi Aturan Pada Tabel Database (Kondisi <= 5)
Pada Gambar 10 dijelaskan bentuk representasi aturan ke dalam tabel
database dengan aturan yang memiliki jumlah kondisi <= 5. Tabel hanya terdiri
atas 6 kolom dimana kol_1 merupakan isi dari kesimpulan sedangkan kol_2
sampai dengan kol_6 merupakan isi dari kondisi. Jadi kondisi-kondisi yang ada
IF kondisi_1
AND kondisi_2
AND kondisi_3
AND kondisi_4
AND kondisi_5
THEN Kesimpulan_1
#
IF kondisi_1
AND kondisi_2
AND kondisi_3
THEN Kesimpulan_2
10
pada aturan akan disimpan pada kol_2 sampai dengan kol_6, sedangkan untuk
kesimpulan dari suatu aturan akan disimpan pada kol_1.
Bentuk representasi aturan ke dalam tabel database dengan aturan yang
memiliki jumlah kondisi > 5 ditunjukkan pada Gambar 11.
Gambar 11 Bentuk Representasi Aturan Pada Tabel Database (Kondisi > 5)
Pada Gambar 11 dilihat bahwa jumlah kondisi yang ada pada aturan
berjumlah lebih dari 5 yaitu terdapat 7 kondisi. Sedangkan kolom kondisi hanya
berjumlah 5 kolom yaitu kol_2, kol_3, kol_4, kol_5 dan kol_6. Untuk itu, maka
dibuatlah baris baru pada tabel dengan sub aksi sebagai kondisi penghubung. Jadi,
tahap pertama dimulai dengan mengisi kesimpulan pada kol_1. Kemudian tahap
kedua dilakukan dengan mengisi kondisi pada kol_2 sampai dengan kol_5. Tahap
ketiga dilakukan dengan mengisi kondisi sebagai sub aksi pada kol_6. Selanjutnya
tahap keempat dibuatlah baris baru dengan kol_1 yang diisi dengan nama yang
sama pada kol_6 baris sebelumnya sebagai penghubung. Tahap kelima yaitu
dengan mengisikan sisa kondisi pada kol_2 sampai dengan kol_6 pada baris baru.
Ulangi tahap ketiga jika diperlukan dengan menyesuaikan sisa kondisi.
Perancangan proses merepresentasikan aturan ke dalam tabel database
diterapkan dalam bentuk flowchart yang dapat dilihat pada Gambar 12.
kol_1 kol_2 kol_3 kol_4 kol_5 kol_6
Kesimpulan kondisi_1 kondisi_2 kondisi_3 kondisi_4 Kesimpulan_
1
Kesimpulan_
1
kondisi_5 kondisi_6 kondisi_7 null null
11
Gambar 12 Flowchart Proses Representasi Aturan ke dalam Tabel Database
Flowchart pada Gambar 12 menjelaskan bagaimana proses yang
dilakukan ketika aturan yang semula berbentuk file dapat dipresentasikan ke
dalam tabel database. Tahap pertama, file aturan yang menjadi input awal dibaca
oleh sistem untuk kemudian dilakukan pemisahaan berdasarkan aturan. Setelah
dilakukan pemisahan berdasarkan aturan, selanjutnya sistem akan melakukan
pemisahan berdasarkan kesimpulan. Setelah kedua proses pemisahan dilakukan,
maka akan dilanjutkan untuk pemisahan berdasarkan kondisi. Setelah dilakukan
pemisahan berdasarkan kondisi maka sistem akan menyimpan kondisi dan
kesimpulan pada array. Selanjutnya sistem akan mengecek ketersediaan aturan
pada tabel database. Jika aturan telah ada sebelumnya maka akan dilakukan
pengosongan pada tabel terlebih dahulu sebelum dilakukan insert kondisi dan
kesimpulan. Sedangkan jika aturan belum ada maka akan langsung dilakukan
insert kondisi dan kesimpulan ke dalam tabel database.
Perancangan proses pengecekan format file dan format penulisan file pada
file pertanyaan dan file aturan diterapkan dalam bentuk flowchart yang dapat
dilihat pada Gambar 13.
12
Gambar 13 Flowchart Proses Pengecekan Format File dan Format Penulisan File
Flowchart pada Gambar 13 menjelaskan bagaimana proses yang
dilakukan sistem dalam mengecek format file dan format penulisan file. Input file
aturan dan file pertanyaan yang telah dibuat sebelumnya. Kemudian akan dicek
untuk format file aturan dan file pertanyaan, apakah sesuai dengan ketentuan atau
tidak. Jika tidak sesuai dengan ketentuan maka akan menampilkan pesan
kesalahan pada file. Sedangkan jika sesuai dengan ketentuan maka akan
dilanjutkan dengan mengecek format penulisan file. Proses pengecekan format
penulisan file dilakukan sesuai dengan format masing-masing file untuk file aturan
dan file pertanyaan. Jika salah satu atau kedua format penulisan file tidak sesuai
ketentuan maka sistem akan menampilkan pesan kesalahan pada file. Sebaliknya,
jika kedua format file sesuai dengan ketentuan maka file aturan dan file
pertanyaan akan disimpan ke dalam directory pada aplikasi dan menampilkan
output pesan file berhasil disimpan.
Perancangan proses mesin inferensi dalam mencari kesimpulan diterapkan
dalam bentuk flowchart yang dapat dilihat pada Gambar 14.
13
Gambar 14 Flowchart Proses Mesin Inferensi
Flowchart Gambar 14 menjelaskan bagaimana proses mesin inferensi
dalam mencari kesimpulan. Awalnya akan dicek input gejala dari pengguna. Jika
tidak ditemukan gejala dari pengguna maka akan menampilkan pesan gejala tidak
ditemukan. Sedangkan jika ditemukan gejala dari pengguna maka akan dicari
gejala pertama yang sama pada rule pertama di database. Jika terdapat gejala
yang sama pada rule pertama di database maka akan disimpan gejala dari
pengguna dan kesimpulan dari rule pertama ke dalam array. Selanjutnya akan
dilakukan pengecekan apakah rule merupakan rule terakhir, jika bukan
merupakan rule terakhir maka akan dilanjutkan kembali untuk mencari gejala
yang sama pada rule berikutnya. Namun jika rule merupakan rule terakhir maka
akan dilanjutkan dengan mengecek apakah gejala dari pengguna merupakan
gejala terakhir, jika bukan gejala terakhir maka akan dilanjutkan untuk mencari
gejala selanjutnya dari pengguna yang dimulai kembali pada rule pertama. Jika
gejala merupakan gejala terakhir maka sistem akan mengambil kesimpulan dari
aturan yang memiliki banyak gejala yang sama dan akan ditampilkan hasilnya.
Proses pencarian bobot kesimpulan dapat dilihat pada Gambar 15.
14
Gambar 15 Proses Pencarian Bobot Kesimpulan
Gambar 15 menunjukkan proses pencarian bobot kesimpulan dalam
bentuk persen (%). Awalnya akan diambil jumlah gejala yang sama yang ada
pada aturan kemudian dibagi dengan jumlah gejala yang ada pada Rule-N dan
dikalikan dengan 100 % maka akan ditemukan bobot dalam bentuk persen pada
suatu aturan. Aturan-aturan yang memiliki gejala yang sama dengan gejala
pengguna akan dihitung bobotnya menggunakan proses tersebut untuk kemudian
diseleksi. Aturan dengan persentase bobot tertinggi akan diambil sebagai
kesimpulan.
4. Hasil dan Pembahasan
Proses menginputkan basis pengetahuan ke dalam sistem pertama kali
dilakukan dengan pengecekan pada format file dan format penulisan file terlebih
dahulu sebelum dapat tersimpan kedalam sistem agar tidak terjadi kesalahan
dalam membaca ataupun error. Kode program proses pengecekan format file dan
format penulisan file dapat dilihat pada Kode Program 1.
Kode Program 1 Proses Pengecekan Format File dan Format Penulisan File
1. $filename = array();
2. $error = 0;
3. $index = 0;
4. if(isset($_POST['simpan'])) {
5. if(get_ext($_FILES['f_quesrule']['name'][0])!= 'x2s' ||
6. get_ext($_FILES['f_quesrule']['name'][1])!= 'x2s') {
7. echo "<div class='warning'>Format file tidak sesuai ketentuan. Mohon ganti
8. format file anda dengan format *.x2s</div>";
9. }
10. else {
11. foreach($_FILES['f_quesrule']['name'] as $keys => $val){
12. $name = $_FILES['f_quesrule']['name'][$keys];
13. $tmp = $_FILES['f_quesrule']['tmp_name'][$keys];
14. if(trim($name)!=''){
15. if(move_uploaded_file($tmp, 'question_rules/'.$name)) {
16. if($keys == 0){
17. $cekfile = file_get_contents("question_rules/".$name);
18. $cekkata = explode("\n",$cekfile);
19. $cekjml = count($cekkata);
20. if($cekjml > 1) {
21. }
22. else {
23. $error += 1;
24. }
25. }
26. else {
27. $cekfile = file_get_contents("question_rules/".$name);
28. $cekkata = explode("#",$cekfile);
29. $cekjml = count($cekkata);
30. if($cekjml > 1) {
31. }
32. else {
33. $error += 1;
34. }
15
Pada Kode Program 1 proses pengecekan dilakukan pertama kali dengan
mengambil masing-masing nama file untuk file pertanyaan dan file aturan yang
kemudian akan diambil formatnya menggunakan fungsi get_ext. Jika format file
tidak sesuai dengan yang ditentukan maka akan ditampilkan pesan format file
tidak sesuai dengan ketentuan. Namun jika format file sesuai dengan ketentuan,
akan dilanjutkan proses pengecekan pada format penulisan file dengan
menggunakan fungsi explode untuk melihat apakah format yang telah ditentukan
terdapat pada file aturan maupun file pertanyaan.
Kode Program 2 Proses Merepresentasikan Aturan ke Dalam Tabel Database
Kode Program 2 merupakan kode program yang digunakan untuk proses
merepresentasikan aturan ke dalam tabel database. Awalnya file aturan yang telah
disimpan pada directory aplikasi, dibaca oleh sistem dan disimpan ke dalam
sebuah variabel untuk dilakukan proses split. Proses split dilakukan berdasarkan
banyaknya aturan, kondisi dari suatu aturan dan kesimpulan dari suatu aturan
menggunakan fungsi explode. Setelah dilakukan proses split, maka akan didapat
kondisi-kondisi dari aturan berserta kesimpulannya yang kemudian diinsertkan ke
dalam tabel database. Hasil dari proses merepresentasikan aturan ke dalam tabel
database dapat dilihat pada Gambar 16.
1. if(!empty($_SESSION['aturan'])) {
2. $file = file_get_contents("question_rules/".$_SESSION['aturan']);
3. $kata = explode("#",$file);
4. $jml = count($kata);
5. .
6. for($i=0;$i<$jml;$i++) {
7. $nonif = strstr($kata[$i],' ');
8. $pecah1 = explode("THEN",$nonif);
9. $pecah2 = explode("AND",$pecah1[0]);
10. $jum = count($pecah2);
11. .
12. if($jum > 0) {
13. if($jum <= 5) {
14. for($w=0;$w<5;$w++) {
15. if(isset($pecah2[$w])) {
16. .
17. }
18. else {
19. $pecah2[$w] = "null";
20. }
21. }
22. $query = mysql_query("insert into rule values(null,
23. '".ucwords(trim($pecah1[1]))."', '".strtolower(trim($pecah2[0]))."',
24. '".strtolower(trim($pecah2[1]))."', '".strtolower(trim($pecah2[2]))."',
25. '".strtolower(trim($pecah2[3]))."', '".strtolower(trim($pecah2[4]))."')")
26. or die(mysql_error());
27. }
16
Gambar 16 Aturan Dalam Tabel Database
Gambar 16 merupakan hasil proses representasi aturan ke dalam tabel
database yang dilakukan secara otomatis oleh sistem sesuai dengan bentuk
representasi aturan yang telah ditentukan.
Kode Program 3 Proses Menampilkan Pertanyaan
Kode Program 3 merupakan kode program proses menampilkan
pertanyaan. File pertanyaan yang disimpan pada directory aplikasi, dibaca oleh
sistem dan disimpan ke dalam sebuah variabel untuk dilakukan proses split.
Proses split dilakukan berdasarkan baris menggunakan fungsi explode. Setelah
dilakukan proses split, maka pertanyaan-pertanyaan akan diinputkan ke dalam
sebuah tag form yang kemudian ditampilkan.
1. $file = file_get_contents("question_rules/".$_SESSION['pertanyaan']);
2. $pertanyaan = explode("\n",$file);
3. $jml = count($pertanyaan);
4. echo "<form method='POST' action='hasilanalisis'><table border='0'
5. cellspacing='0' cellpadding='3'>";
6. for($i=0;$i<$jml;$i++) {
7. $kalimat = strstr($pertanyaan[$i],' ');
8. $jmlkarakter = strlen($kalimat);
9. $kondisi = substr($kalimat,0,$jmlkarakter-2);
10. $urut = $i+1;
11. echo "<tr bgcolor='$warna'>
12. <td align=right><span style='font-size: 15px;'>$urut.</span></td>
13. <td width='460'><span style='font-size:
14. 15px;'> ".ucfirst(strtolower($pertanyaan[$i]))."</span></td>
15. <td align='right'><input type='radio' name='jawab_$i' value='$kondisi'
16. id='y_$i' style='margin-right: 5px;'><label for='y_$i' style='margin
17. right: 15px;'>Ya</label>
18. <input type='radio' name='jawab_$i' value='not' id='t_$i' style='margin
19. right: 5px;' checked><label for='t_$i' style='margin-right:
20. 15px;'>Tidak</label></td></tr>";
21. }
17
Kode Program 4 Potongan Kode Program Proses Mesin Inferensi
Kode Program 4 merupakan potongan kode program proses mesin
inferensi dalam mencari kesimpulan. Dalam proses mencari kesimpulan
dibutuhkan sebuah variabel bertipe data array untuk menampung kondisi-kondisi
dari pengguna. Setelah itu akan dilakukan pencocokan kondisi-kondisi dari
pengguna dengan aturan yang ada pada database. Hasil akhir dari proses mesin
inferensi adalah menyimpan kesimpulan dan menampilkan hasil yang didapat
berdasarkan banyaknya kondisi yang cocok dengan aturan yang ada pada
database.
Contoh kasus yang digunakan pada aplikasi ini yaitu tentang penyakit gigi
dan mulut dengan 15 daftar penyakit beserta gejalanya yang diterapkan pada basis
pengetahuan untuk dilakukan pengujian. Contoh kasus penyakit gigi dan mulut
dapat dilihat pada Tabel 1.
1. include "config/koneksi.php";
2. error_reporting(0);
3. $hasil[] = null;
4. $star[] = null;
5. $sql = mysql_query("SELECT * FROM rule");
6. while ($r = mysql_fetch_array($sql)) {
7. $id = $r['id'];
8. $kol_1 = $r['kol_1'];
9. $star[$kol_1] = 0;
10. foreach($hasil as $key=>$value){
11. if($id == 1) {
12. for($i=2;$i<=6;$i++) {
13. if($r['kol_'.$i] == strtolower(trim($value))) {
14. $star[$kol_1] += 1;
15. }
16. }
17. }
18. else {
19. for($i=2;$i<=6;$i++) {
20. if($r['kol_'.$i] == strtolower(trim($value))) {
21. $sql2 = mysql_query("SELECT kol_1 FROM rule WHERE kol_6='$kol_1'");
22. $r2 = mysql_num_rows($sql2);
23. $d = mysql_fetch_array($sql2);
24. if($r2 > 0){
25. $kol_temp = explode("_", $kol_1);
26. $star[$kol_temp[0]] += 1;
27. }
28. else {
29. $star[$kol_1] += 1 ;
30. }
31. }
32. }
18
Tabel 1 Contoh Kasus Penyakit Gigi dan Mulut
Pengujian aplikasi dilakukan untuk melihat sudah sejauh mana aplikasi
dapat berjalan dan sejauh mana kesalahan yang mungkin terjadi pada aplikasi.
Pengujian aplikasi ini menggunakan blackbox testing, yaitu pengujian fungsional
tanpa melihat alur eksekusi program, namun cukup dengan memperhatikan
apakah setiap fungsi sudah berjalan dengan baik sesuai dengan harapan. Hal-hal
yang diuji dan hasil pengujian blackbox testing dapat dilihat pada Tabel 2.
NO PENYAKIT GEJALA
1 Abses Periodontal Bau mulut tak sedap, demam, gusi bengkak, gusi licin dan
mengkilap, gusi merah muda, gusi mudah berdarah, terdapat
nanah pada pangkal gusi, nyeri saat menyunyah, terdapat
pembekakan kelenjar getah bening, terdapat endapan plak,
terdapat karang gigi.
2 Kalkulus Bau mulut tak sedap, gusi mudah berdarah, terdapat endapan
plak, terdapat karang gigi.
3 Kandidiasis Bau mulut tak sedap, bercak putih pada lidah, bercak putih pada
rongga mulut, terasa perih saat makan dan minum, terdapat luka
pada mulut
4 Kelainan Sendi Temporomandibuler Sakit kepala, nyeri pada TMJ, nyeri pada otot pengunyah.
5 Karies Profunda Dentin terlihat, gigi berlubang, gigi nyeri saat terkena rangsangan
(panas/dingin), pulpa terinfeksi, sakit berdenyut tanpa rangsangan.
6 Cheilitis Bibir kemerahan, bibir pecah-pecah, bibir terasa kering dan
keras, kemerahan pada sudut-sudut mulut, sudut mulut terasa
nyeri, sudut-sudut mulut bersisik, luka pada sudut mulut.
7 Eritema Multiformis Bercak kecoklatan mendatar pada bibir, bibir kemerahan, bibir
pecah-pecah, bibir terasa kering dan keras, bibir terasa panas
seperti terbakar, demam.
8 Gingivitis Gusi bengkak, gusi licin dan mengkilap, gusi merah muda, gusi
mudah berdarah, terdapat endapan plak, terdapat karang gigi.
9 Herpes Simplek Demam, gusi bengkak, gusi mudah berdarah, terdapat
pembengkakan kelenjar getah bening, terasa perih saat makan
dan minum, terdapat luka pada mukosa mulut, terjadi daerah
kemerahan pada mulut, terdapat gelembung pada mukosa mulut.
10 Kanker Terdapat benjolan putih pada bagian dalam bibir, terdapat bercak
kecoklatan mendatar pada bibir, terdapat bercak putih berlendir
pada mulut, bibir pecah-pecah, luka terbuka pada lidah, terjadi
daerah kemerahan pada mulut, luka mudah berdarah,
perkembangan penyakit cepat (bulanan), luka atau benjolan
sering muncul berulang.
11 Karies Superfisial Terdapat bintik putih pada gigi, gigi berlubang.
12 Liken Planus Bintik-bintik merah bersisik pada mulut, disertai rasa gatal, luka
terbuka berwarna biru keputihan, terdapat benjolan ungu pada
mulut, luka atau benjolan sering muncul berulang.
13 Nekrosis Pulpa Gigi berlubang, terdapat lubang sangat besar pada gigi, terjadi
pembusukan gigi, pulpa mati rasa, ruang pulpa terbuka.
14 Pulpitis Akut Gigi berlubang, gigi keluar darah, gigi nyeri saat terkena
rangsangan (panas/dingin), terdapat lubang sangat besar pada
gigi, nyeri saat berbaring, pulpa terinfeksi, sakit berdenyut tanpa
ransangan.
15 Sariawan Bibir kemerahan, demam, disertai rasa gatal, luka mudah
berdarah, luka terbuka pada lidah, terasa perih saat makan dan
minum, terdapat luka pada mukosa mulut.
19
Tabel 2 Hasil Pengujian Blackbox Testing
Fungsi yang
diuji
Kondisi Output yang
diharapkan
Output yang
muncul
Hasil
Pengecekan
format file dan
format
penulisan file
Format sesuai
ketentuan
Sukses
menyimpan file
Sukses
menyimpan file
Valid
Format tidak
sesuai
ketentuan
Tidak dapat
menyimpan file
Tidak dapat
menyimpan file
Valid
Membaca file
pertanyaan
Tidak
mengubah
jumlah
pertanyaan
Sukses
membaca file
pertanyaan
Sukses
membaca file
pertanyaan
Valid
Mengubah
jumlah
pertanyaan
Sukses
membaca file
pertanyaan
Sukses
membaca file
pertanyaan
Valid
Membaca file
aturan
Tidak
mengubah
jumlah aturan
dan kondisi
Sukses
membaca file
aturan
Sukses
membaca file
aturan
Valid
Mengubah
jumlah aturan
dan kondisi
Sukses
membaca file
aturan
Sukses
membaca file
aturan
Valid
Representasi
aturan ke
dalam
database
Tidak
mengubah
jumlah aturan
dan kondisi
Sesuai dengan
bentuk
reprensentasi
aturan
Sesuai dengan
bentuk
reprensentasi
aturan
Valid
Mengubah
jumlah aturan
dan kondisi
Sesuai dengan
bentuk
reprensentasi
aturan
Sesuai dengan
bentuk
reprensentasi
aturan
Valid
Menampilkan
kesimpulan
Memilih
gejala
Sukses
menampilkan
kesimpulan
Sukses
menampilkan
kesimpulan
Valid
Tidak
memilih
gejala
Sukses
menampilkan
pesan
peringatan
Sukses
menampilkan
pesan
peringatan
Valid
Perhitungan
bobot dalam
mencari
kesimpulan
Memilih
gejala
Sesuai
perhitungan
manual
Sesuai
perhitungan
manual
Valid
Memilih
gejala yang
lain
Sesuai
perhitungan
manual
Sesuai
perhitungan
manual
Valid
20
5. Simpulan
Berdasarkan hasil penelitian yang telah dilakukan maka dapat ditarik
beberapa kesimpulan yaitu aplikasi shell sistem pakar untuk pembelajaran
kecerdasan buatan ini mampu untuk membangun sistem pakar dengan
memasukkan basis pengetahuan tanpa melalui proses pengkodean bahasa
pemograman. Basis pengetahuan yang digunakan dalam aplikasi shell sistem
pakar untuk pembelajaran kecerdasan buatan yaitu berupa file teks sehingga dapat
dengan mudah untuk dibuat maupun dikembangkan tanpa mempengaruhi mesin
inferensi. Aplikasi shell sistem pakar untuk pembelajaran kecerdasan buatan yang
telah dibangun dapat digunakan sebagai pembelajaran untuk sistem pakar yang
dapat diakses menggunakan browser sehingga memudahkan untuk proses
pembelajaran.
Pengembangan yang dapat dilakukan selanjutnya pada penelitian ini adalah
dengan mengembangkan mesin inferensi dalam mencari kesimpulan dan
memperbaiki program jika ditemukan bug.
6. Daftar Pustaka
[1] Latumakulita, Luther, 2011, Sistem Pakar Pendiagnosa Penyakit Ginjal,
Manado : Universitas Sam Ratulangi.
[2] Handayani, Lina, 2004, Sistem Pakar Berbasis Web dengan Shell E2gLite
untuk Diagnosis Penyakit Hati, Yogyakarta : Universitas Ahmad Dahlan
Kampus III.
[3] Nurhuda, Yeni A., 2011, Aplikasi Shell Sistem Pakar, Bandar Lampung :
Sekolah Tinggi Manajemen Informatika dan Komputer Teknorat Lampung.
[4] Hidayat Rahmat, 2010, Cara Praktis Membangun Website Gratis:
Memanfaatkan Layanan Domain Dan Hosting Gratis, Jakarta : Media
Komputindo.
[5] Hamalik, O., 1994, Media Pendidikan, Bandung : Citra Aditya Bhakti.
[6] Turban, E., 1995, Decision Support and Expert System, New York : Mc
Millan Publishing Company.
[7] Arhami, Muhammad., 2005, Konsep Dasar Sistem Pakar, Jakarta : Andi.
[8] MD Salim, Alvaro Villavicencio, 2003, A Method for Evaluating Expert
System Shells for Classroom Instruction, Timmerman, Volume 19, Journal
of Industrial Technology.
[9] Nii, H.P., 1993, Tools and Infrastructure for Knowledge-Based Systems,
WTEC Hyper Lybrarian, http://www.wtec.org/loyola/kb/c3_s1.htm,
Diakses tanggal 20 Maret 2014.
[10] Kusumadewi, S. 2003. Artificial Intelligence: Teknik dan Aplikasinya,
Yogyakarta : Graha Ilmu.
[11] Rumambi, Tavipia, 2005, Unified Model Language (UML).
[12] Munawar, 2005, Pemodelan Visual dengan UML, Yogyakarta : Graha
Ilmu.
[13] Hayani, Tuti, 2013, Aplikasi Media Pembelajaran huruf Iqro Berbasis
Multimedia, Bandung : Universitas Widyatama.