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 2
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, masingmasing 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]. 3
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. Editing Facilities for create and update the knowledge base
User Interface Knowledge Base Inference Engine
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 4
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
5
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. 6
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 ExpertSystem SystemShell Shell Pertanyaan Pakar
Mesin Inferensi
Aturan Basis Pengetahuan
Antarmuka Pengguna (User Interface)
Pengguna
Knowledge Enginner
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 7
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. Apakah kondisi_1 ? Apakah kondisi_2 ? Apakah kondisi_3 ? Apakah kondisi_4 ? Apakah kondisi_5 ? 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. 8
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. 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 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. kol_1 Kesimpulan
kol_2 kondisi_1
kol_3 kondisi_2
kol_4 kondisi_3
kol_5 kondisi_4
kol_6 kondisi_5
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 9
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. kol_1 Kesimpulan
kol_2 kondisi_1
kol_3 kondisi_2
kol_4 kondisi_3
kol_5 kondisi_4
kol_6 Kesimpulan_ 1
Kesimpulan_ 1
kondisi_5
kondisi_6
kondisi_7
null
null
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.
10
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.
11
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.
12
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.
13
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. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
$filename = array(); $error = 0; $index = 0; if(isset($_POST['simpan'])) { if(get_ext($_FILES['f_quesrule']['name'][0])!= 'x2s' || get_ext($_FILES['f_quesrule']['name'][1])!= 'x2s') { echo "
Format file tidak sesuai ketentuan. Mohon ganti format file anda dengan format *.x2s
"; } else { foreach($_FILES['f_quesrule']['name'] as $keys => $val){ $name = $_FILES['f_quesrule']['name'][$keys]; $tmp = $_FILES['f_quesrule']['tmp_name'][$keys]; if(trim($name)!=''){ if(move_uploaded_file($tmp, 'question_rules/'.$name)) { if($keys == 0){ $cekfile = file_get_contents("question_rules/".$name); $cekkata = explode("\n",$cekfile); $cekjml = count($cekkata); if($cekjml > 1) { } else { $error += 1; } } else { $cekfile = file_get_contents("question_rules/".$name); $cekkata = explode("#",$cekfile); $cekjml = count($cekkata); if($cekjml > 1) { } else { $error += 1; }
14
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 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
if(!empty($_SESSION['aturan'])) { $file = file_get_contents("question_rules/".$_SESSION['aturan']); $kata = explode("#",$file); $jml = count($kata); . for($i=0;$i<$jml;$i++) { $nonif = strstr($kata[$i],' '); $pecah1 = explode("THEN",$nonif); $pecah2 = explode("AND",$pecah1[0]); $jum = count($pecah2); . if($jum > 0) { if($jum <= 5) { for($w=0;$w<5;$w++) { if(isset($pecah2[$w])) { . } else { $pecah2[$w] = "null"; } } $query = mysql_query("insert into rule values(null, '".ucwords(trim($pecah1[1]))."', '".strtolower(trim($pecah2[0]))."', '".strtolower(trim($pecah2[1]))."', '".strtolower(trim($pecah2[2]))."', '".strtolower(trim($pecah2[3]))."', '".strtolower(trim($pecah2[4]))."')") or die(mysql_error()); }
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.
15
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 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
$file = file_get_contents("question_rules/".$_SESSION['pertanyaan']); $pertanyaan = explode("\n",$file); $jml = count($pertanyaan); echo "