Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006) Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286
KUANTIFIKASI PERTANYAAN UNTUK MENDAPATKAN CERTAINTY FACTOR PENGGUNA PADA APLIKASI SISTEM PAKAR UNTUK DIAGNOSIS PENYAKIT Kusrini1 1
STMIK AMIKOM Yogyakarta, Jl. Ringroad Utara Condong Catur Sleman Yogyakarta email:
[email protected]
ABSTRAK Sangat sulit untuk mendapatkan besarnya kepercayaan atau certainty factor (CF) pasien terhadap gelala yang dialami. Dalam penelitian ini, peneliti mengusulkan suatu metode penghitungan besarnya CF pengguna pada aplikasi sistem pakar untuk diagnosis penyakit dengan menggunakan metode kuantifikasi pertanyaan. Dengan menggunakan metode ini, diharapkan sistem pakar akan menjadi lebih mudah digunakan karena pasien tidak perlu memperhitungkan besarnya CF dari gejala yang dialami, tetapi cukup memasukkan kuantitas dan lama gejala tersebut dialami. Sistem secara otomatis akan menghitung nilai CF pengguna. Nilai CF diperoleh dengan mencari fungsi keanggotaan dari kuantitas dan lama yang dimasukkan pasien terhadap nilai dalam aturan yang diberikan oleh pakar. Metode kuantifikasi pertanyaaan ini sudah diimplementasikan dalam sistem pakar untuk menangani Penyakit dengan menggunakan bahasa pemrograman Delphi dan basis data Interbase.
Kata Kunci: Kuantifikasi Pertanyaan,Sistem Pakar,Certainty Factor 1. PENDAHULUAN 1.1. Latar Belakang Permasalahan yang ditangani oleh seorang pakar bukan hanya permasalahan yang mangandalkan algoritma namun terkadang juga permasalahan yang sulit dipahami. Permasalahan tersebut dapat diatasi oleh seorang pakar dengan pengetahuan dan pengalamannya. Permasalahan ini juga bisa diselesaikan oleh sistem pakar yang menirukan kepakaran seseorang. Sistem pakar dibangun bukan berdasarkan algoritma tertentu tetapi berdasarkan basis pengetahuan dan aturan. Dalam melakukan diagnosis, seorang pakar terkadang mendasarkan pada data yang kurang lengkap atau data yang tidak pasti. Agar sistem pakar dapat melakukan penalaran sebagaimana seorang pakar meskipun data yang diperoleh kurang lengkap atau kurang pasti, dapat digunakan Certainty Factor. Kebanyakan sistem pakar yang ada, untuk mendapatkan kepercayaan pengguna terhadap gejala yang ada (misalnya batuk) adalah dengan Kuantifikasi pertanyaan untuk mendapatkan (Kusrini)
meminta nilai CF langsung dari pasien. Menurut peneliti, hal ini sulit diperoleh mengingat pasien sendiri sulit memperkirakan berapa derajat ke-batuk-annya. 1.2. Perumusan Masalah Dalam makalah ini peneliti mengusulkan suatu metode, untuk mengetahui derajat kepercayaan pengguna terhadap gejala yang dialami, yaitu dengan kuantifikasi pertanyaan. Yang dimaksud dengan kuantifikasi pertanyaan disini yaitu pemberian faktor kuantitas dan lama pada gejala. Pengguna diminta untuk menentukan kuantitas gejala dan lama gejala yang dialami, setelah itu sistem akan menghitung nilai CFnya dengan menggunakan derajat keanggotaan kuantitas dan gejala tersebut terhadap nilai dalam aturan. 1.3. Tujuan Tujuan peneliti adalah untuk memberikan alternatif kepada para pembangun sistem pakar dalam memperoleh kepercayaan dari pengguna. Dengan menggunakan metode ini, diharapkan 1
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006) Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006
aplikasi sistem pakar yang dibangun akan lebih user friendly. 2. LANDASAN TEORI 2.1. Sistem Pakar Sistem pakar adalah program komputer yang menirukan penalaran seorang pakar dengan keahlian pada suatu wilayah pengetahuan tertentu (Turban, 2005). Sistem pakar memiliki beberapa komponen utama yaitu: antar muka pengguna (user interface), basis data sistem pakar (expert system database), fasilitas akuisisi pengetahuan (knowledge acquisition facility) dan mekanisme inferensi (inference mechanism). Selain itu ada satu komponen yang ada pada beberapa sistem pakar yaitu fasilitas penjelasan (explanation facility) Antar muka pengguna adalah perangkat lunak yang menyediakan media komunikasi antara pengguna dengan sistem. Basis data sistem pakar berisi pengetahuan setingkat pakar pada subyek tertentu. Pengetahuan ini bisa berasal dari pakar, jurnal, majalah, dan sumber pengetahuan lainnya. Fasilitas akuisisi pengetahuan merupakan perangkat lunak yang menyediakan fasilitas dialog antara pakar dengan sistem. Fasilitas akuisisi ini digunakan untuk memasukkan fakta-fakta dan kaidah-kaidah sesuai dengan perkembangan ilmu. Mekanisme inferensi merupakan perangkat lunak yang melakukan penalaran dengan menggunakan pengetahuan yang ada untuk menghasilkan suatu kesimpulan atau hasil akhir. Fasilitas penjelasan berguna dalam memberikan penjelasan kepada pengguna mengapa komputer meminta suatu informasi tertentu dari pengguna dan dasar apa yang digunakan komputer sehingga dapat menyimpulkan suatu kondisi. Agar pengetahuan dapat digunakan dalam sistem, pengetahuan harus di representasikan dalam format tertentu yang kemudian dihimpun dalam suatu basis pengetahuan. Cara sistem pakar merepresentasikan pengetahuan akan mempengaruhi perkembangan, efisiensi dan perbaikan sistem. Kaidah menyediakan cara formal untuk merepresentasikan rekomendasi, arahan atau strategi. Kaidah produksi dituliskan dalam bentuk
2
ISSN : 1411-6286
jika-maka (if-then) Kaidah if-then menghubungkan anteseden (antecedent) dengan konskuensi yang diakibatkannya.
2. 2. Certainty Factor Sistem pakar harus mampu bekerja dalam ketidakpastian (Giarattano dan Riley, 1994). Sejumlah teori telah ditemukan untuk menyelesaikan ketidakpastian, termasuk diantaranya probabilitas klasik (classical probability), probabilitas Bayes (Bayesian probability), teori Hartley berdasarkan himpunan klasik (Hartley theory based on classical sets), teori Shannon berdasarkan pada probabilitas (Shanon theory based on probability), teori Dempster-Shafer (DempsterShafer theory), teori fuzzy Zadeh (Zadeh’s fuzzy theory) dan faktor kepastian (certainty factor). Faktor kepastian (certainty factor) diperkenalkan oleh Shortliffe Buchanan dalam pembuatan MYCIN. Certainty factor (CF) merupakan nilai parameter klinis yang diberikan MYCIN untuk menunjukkan besarnya kepercayaan. Certainty factor didefinisikan sebagai pada persamaan 1 berikut (Giarattano dan Riley, 1994):
CF ( H , E ) = MB( H , E ) − MD ( H , E )
(1)
CF(H,E) : certainty factor dari hipotesis H yang dipengaruhi oleh gejala (evidence) E. Besarnya CF berkisar antara –1 sampai dengan 1. Nilai –1 menunjukkan ketidakpercayaan mutlak sedangkan nilai 1 menunjukkan kerpercayaan mutlak. MB(H,E) : ukuran kenaikan kepercayaan (measure of increased belief) terhadap hipotesis H yang dipengaruhi oleh gejala E. MD(H,E) : ukuran kenaikan ketidakpercayaan (measure of increased disbelief) terhadap hipotesis H yang dipengaruhi oleh gejala E Bentuk dasar rumus certainty factor sebuah aturan JIKA E MAKA H adalah seperti ditunjukkan oleh persamaan 2 berikut: Kuantifikasi Pertanyaan untuk Mendapatkan (Kusrini)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006) Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286
CF ( H , e) = CF ( E , e) * CF ( H , E ) dimana CF(E,e) CF(H,E)
CF(H,e)
(2)
gambar 1. Sedangkan fungsi keanggotaannya ditunjukkan oleh persamaan 4.
: certainty factor evidence E yang dipengaruhi oleh evidence e : certainty factor hipotesis dengan asumsi evidence diketahui dengan pasti, yaitu ketika CF(E, e) = 1 : certainty factor hipotesis yang dipengaruhi oleh evidence e
Jika semua evidence pada antecedent diketahui dengan pasti maka persamaannya akan menjadi:
CF ( H , e) = CF ( H , E )
(3)
Dalam aplikasinya, CF(H,E) merupakan nilai kepastian yang diberikan oleh pakar terhadap suatu aturan, sedangkan CF(E,e) merupakan nilai kerpercayaan yang diberikan oleh pengguna terhadap gejala yang dialaminya. Sebagai contoh, berikut ini adalah sebuah aturan dengan CF yang diberikan oleh seorang pakar: JIKA batuk DAN demam DAN sakit kepala DAN bersin-bersin MAKA influensa, CF: 0,7 2.3. Fungsi Keanggotaan Fungsi keanggotaan adalah sebuah representasi grafis dari besarnya partisipasi masing-masing input. Dia dihubungkan dengan pembobotan masing-masing input yang diproses, definisi pencocokan fungsi antar input dan penentuan respon keluaran (Kaehler, ---). Sebagai contoh dalam menentukan fungsi keanggotaan, diberikan himpunan semesta U adalah umur manusia antara [0, 100]. Seseorang dikatakan tua jika dia berumur lebih dari 50 tahun. Sedangkan orang yang berumur 30 tahun atau kurang, dianggap tidak tua. Grafik fungsi keanggotaan untuk menggambarkan besarnya derajat ketuaan seseorang ditunjukkan pada Kuantifikasi pertanyaan untuk mendapatkan (Kusrini)
Gambar 1. Fungsi Keanggotaan Tua
0 , x ≤ 30 x − 30 f ( x) = , 30 < x < 50 20 1, x ≥ 50
(4)
Jika diketahui seseorang memiliki umur 35 tahun, maka dapat diketahui derajat ketuaannya adalah sebesar (35-30)/20 yaitu 0.25 Dalam penelitian ini besarnya nilai keanggotaan akan menentukan besarnya CF pengguna. 3. METODE PENELITIAN Berikut ini adalah bentuk aturan yang digunakan dalam sistem ini: Operator_Aturan_n Data_n dengan kuantitas Operator_kuantitas_n Kuantitas_n toleransi Toleransi_kuantitas_n selama Operator_waktu_n toleransi Toleransi_waktu_n Maka Data, CF x (Pakar) Operator_Aturan merupakan operator logika yang menghubungkan satu premis dengan premis yang lain dalam sebuah aturan. Operator_Aturan yang diijinkan dalam sistem ini yaitu: Jika, Jika Tidak, Dan, Dan Tidak, Atau, dan Atau Tidak. Sesuai hukum logika, untuk premis pertama dari sebuah aturan hanya boleh menggunakan operator_aturan ‘Jika’ dan ‘Jika tidak’, sedangkan operator_aturan yang
3
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006) Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006
lain digunakan untuk premis selain premis pertama. Data adalah premis dan juga kesimpulan dari suatu aturan. Dalam hal ini, data bisa berupa gejala atau penyakit. Operator_kuantitas dan Operator_waktu terdiri dari operator =, >=, <=. Operator_kuantitas, operator_waktu, kuantitas, waktu, toleransi_kuantitas dan toleransi_waktu digunakan untuk menghitung CF User CF user diperoleh dari jawaban user saat melakukan konsultasi. CF tidak secara langsung diberikan oleh user tetapi dihitung oleh sistem berdasarkan jawaban user. Pilihan jawaban yang disediakan oleh sistem berupa jawaban tidak tahu (CF : 0) ya (CF : 1), tidak (CF : -1). Tetapi apabila aturan yang mengandung fungsi kuantitas dan waktu, maka CF akan dihitung sebesar gabungan derajat keanggotaan dari fungsi karakteristik kuantitas dan derajat keanggotaan dari fungsi karakteristik waktu. Fungsi-fungsi karakteristik didapatkan dari premis aturan. Untuk fungsi karakteristik kuantitas didasarkan pada bagian aturan “Operator _Kuantitas”, “Kuantitas” dan “Toleransi_Kuantitas”. Sedangkan fungsi karakteristik waktu didasarkan pada bagian aturan “Operator _Waktu”, “Waktu” dan “Toleransi_Waktu”. “Operator_Kuantitas” dan “Operator_Waktu” yang disediakan berupa “=’, “>=”, dan “<=”. “Kuantitas” dan “Waktu” merupakan syarat nilai dari berlakunya aturan itu, sedangkan “Toleransi_Kuantitas” dan “Toleransi_Waktu” memberikan batasan hingga suatu nilai yang membuat data premis ini tidak diabaikan. Sesuai dengan jenis operatornya, ada 3 macam fungsi karakteristik untuk kuantitas dan waktu. Grafik fungsi operator “=”dapat dilihat pada gambar 2, sedangkan fungsinya bisa dilihat pada persamaan 5
ISSN : 1411-6286
Gambar 2. Grafik Fungsi Operator “=” 0, x <=Nilai−Toleransi Atau x >=Nilai+Toleransi (x − Nilai+Toleransi ) (5) < x < Nilai , Nilai−Toleransi Toleransi CF(x) = (Nilai+Toleransi − x) , Nilai< x < Nilai+Toleransi Toleransi 1, x = Nilai
dengan x : Kuantitas/Waktu yang dialami user Nilai : Nilai kuantitas/waktu standar Toleransi : Toleransi kuantitas/waktu Grafik fungsi untuk operator “>=”dapat dilihat pada gambar 3, sedangkan fungsinya bisa dilihat pada persamaan 6.
Gambar 3. Grafik Fungsi untuk Operator “>=” 0, x <= Nilai−Toleransi (x − Nilai+Toleransi (6) ) CF(x) = , Nilai−Toleransi< x < Nilai Toleransi 1, x > Nilai
4
Kuantifikasi Pertanyaan untuk Mendapatkan (Kusrini)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006) Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286
dengan x user Nilai Toleransi
: Kuantitas/Waktu yang dialami : Nilai kuantitas/waktu standar : Toleransi kuantitas/waktu
Grafik fungsi operator “<=” dapat dilihat pada gambar 4, dan fungsinya bisa dilihat pada persamaan 7.
Gambar 4. Grafik Fungsi untuk Operator “<=” 0, x >= Nilai+ Toleransi (7) ( Nilai+ Toleransi− x) CF( x) = , Nilai < x < Nilai+ Toleransi Toleransi 1, x < Nilai
dengan x user Nilai Toleransi
: Kuantitas/Waktu yang dialami : Nilai kuantitas/waktu standar : Toleransi kuantitas/waktu
Untuk mendapatkan CF user, dilakukan perhitungan interpretasi standar dari interseksi antara CFKuantitas dan CFWaktu yang ditunjukkan pada persamaan 8. CFUser ( x) = Min(CFKuantita s ( x), CFWaktu ( x )) (8)
3. PEMBAHASAN Metode kuantifikasi pertanyaan ini telah diterapkan dalam aplikasi sistem pakar untuk menangani penyakit TBC pada anak dengan menggunakan bahasa pemrograman Delphi dan basis data interbase. Sistem ini bekerja dengan berdasarkan masukan gejala dari pasien yang disertai dengan Kuantifikasi pertanyaan untuk mendapatkan (Kusrini)
informasi kuantitas dan lama. Dari informasi tersebut sistem akan memperkirakan penyakit yang mungkin diderita. Selanjutnya sistem akan memberikan pertanyaan-pertanyaan yang mendukung untuk dapat menyimpulkan penyakit yang diderita. Gambar 5 dibawah adalah contoh tampilan dari aplikasi sistem pakar tersebut
Gambar 5. Tampilan Aplikasi Sistem Pakar 4. PENUTUP Metode kuantifikasi pertanyaan untuk menentukan CF pengguna, telah dapat diimplementasikan dengan baik dalam aplikasi sistem pakar untuk menangani penyakit. Metode ini memudahkan pengguna dalam memberikan jawaban terkait dengan besarnya kepercayaan terhadap gejala yang dialami. DAFTAR PUSTAKA [1] Giarratano, J.C and Riley G, Expert
Systems: Principles and Programming, 2nd edition, PWS Publishing Co, USA, 1994. [2] Kaehler, S. D., ---, Fuzzy Logic – An
Introduction [3] Turban, E., Decicion Support System and Expert Systems, Prentice Hall International Inc., USA, 1995
5