1
Seminar Nasional Teknologi Informasi 2010
IMPLEMENTASI FUZZY EXPERT SYSTEM UNTUK ANALISIS PENYAKIT KULIT PADA HEWAN Alexander Setiawan1) Rolly Intan2) Debora Indriati3) 1,2,3)
Jurusan Teknik Informatikan Fakultas Teknologi Industri Universitas Kristen Petra Jl. Siwalankerto 121 – 131 Surabaya 60236 Telp. (031) – 2983455, Fax. (031) – 8417658
email :
[email protected](1),
[email protected](2),
[email protected](3)
ABSTRACT Skin diseases at dog has symptons that are visible at the body. However, there are difficulties to look for informations about skin diseases at dog. The disease can even contagious to human or another animals, especially cat and rabbit. The fuzzy expert system development start with analysis and data gathering about skin diseases at dog. The result of analysis using filter process become information ready to be used for expert system. This expert system developed using forward chaining method and history analysis, including building relation between diseases using fuzzy calculation method. From implementation result and testing of this expert system aplication, shows that it can process symptons which are related with disease, and disease that has relation with other disease automatically. Resulting information of predictions about a dog infected with a disease, with high probabilities number.
Key words : Forward Chaining, Fuzzy, History, Expert System
1. Pendahuluan Dengan meningkatnya perkembangan dunia kedokteran saat ini, semakin banyak pula jenis penyakit yang telah ditemukan, berserta berbagai macam cara penanganan dan obat yang diperlukan. Keadaan ini semakin mempersulit seorang dokter hewan untuk menganalisis penyakit yang diderita pasiennya. Penyakit kulit pada hewan tidak memiliki musim tertentu dalam penyebarannya, namun memiliki gejalagejala yang dapat dianalisa secara fisik. Ada banyak jumlah penyakit kulit yang dapat diderita hewan, terutama oleh anjing. Belum termasuk jenis komplikasi dari beberapa penyakit yang terjadi karena tidak adanya
penanganan pada penyakit, maupun penanganan yang terlambat. Salah satu cara menyimpan informasi untuk mengatasi banyaknya jumlah penyakit kulit tersebut adalah dengan menggunakan teknologi komputer, yaitu pembuatan sistem pakar untuk mengenali penyakit, dan kemudian memberikan informasi yang dibutuhkan oleh seorang dokter untuk menangani penyakit tersebut. Sistem pakar ini juga dapat memperhitungkan hubungan antara penyakit-penyakit yang pernah diderita oleh pasien.
2. Expert System Sistem pakar (expert system) adalah suatu program komputer yang dibuat berdasarkan bidang tertentu, yang memiliki tingkat keahlian untuk menangani masalah sebanding dengan kemampuan seorang ahli pada bidang tersebut [4]. Dalam sistem pakar ini, komputer akan berpikir seperti layaknya jalan pemikiran seorang ahli dalam mengambil kesimpulan, sehingga masalah yang ada dapat diatasi. Masalah yang muncul pada penggunaan sistem pakar terletak pada seberapa akurat kesimpulan yang didapat dari program tersebut. Sistem pakar (expert system) menggunakan basis pengetahuan (knowledge base) sebagai dasar pemikirannya. Knowledge base terdiri dari sejumlah rulerule yang tersusun secara sistematis dan spesifik, juga relasi antara data dan rule dalam pengambilan kesimpulan. Knowledge base tersimpan dalam sebuah basis data pada suatu tempat penyimpanan data. Sedangkan sebagai otak atau pusat pemrosesannya adalah inference engine, yaitu suatu rancangan aplikasi yang berfungsi untuk memberikan pertanyaan dan menerima input dari user, kemudian melakukan proses logika sesuai dengan knowledge base yang tersedia, untuk selanjutnya menghasilkan output
berupa suatu kesimpulan atau keputusan sebagai hasil akhir konsultasi. User memasukkan input dan menerima output melalui sebuah interface atau tampilan, yaitu sebagai sarana penghubung interaksi antara user dengan sistem. Bagan Sistem Pakar (Expert System) secara umum dapat dilihat pada Gambar 1.
Gambar 1. Bagan Sistem Pakar (Expert System) secara umum
2.1 Kecerdasan Buatan Kecerdasan buatan (Artificial Intelligence) adalah cara sederhana untuk membuat sebuah komputer dapat berpikir dan bernalar seperti manusia [7]. Hal ini disempurnakan dengan mempelajari bagaimana manusia berpikir ketika berusaha untuk membuat suatu keputusan dan memecahkan masalah. Proses pemikiran manusia untuk memecahkan masalah itu dibagi menjadi beberapa langkah, dan kemudian mendesain program komputer dengan menggunakan langkah yang sama. Tujuan pokok dari kecerdasan buatan ini adalah untuk mengembangkan sebuah mesin cerdas yang dapat membuat keputusan sendiri. Kecerdasan buatan membuat komputer semakin berguna bagi manusia. Walaupun sebuah komputer memiliki kapasitas besar untuk penyimpanan data, tetapi tetap tidak dapat menampung semua pengetahuan yang penting untuk menirukan semua segi dari pengetahuan manusia [4]. Dengan adanya kecerdasan buatan, diharapkan tidak menutup kemungkinan hanya dengan data pengetahuan yang terbatas, sebuah komputer dapat berpikir seperti manusia dalam menghadapi masalah.
2.2 Metode Forward Chaining Suatu metode penyelesaian masalah yang digunakan untuk mendapatkan solusi dari suatu masalah berdasarkan
kondisi yang ada. Proses pencarian dimulai dari premis atau data menuju pada konklusi (data-driven). Cara kerja inference engine dimulai dari pemilihan rule-rule dimana bagian premis-nya cocok dengan informasi yang tersedia pada bagian working memory. Algoritma untuk metode forward chaining adalah sebagai berikut : 1. Inisialisasi. Dapat dibuat tiga tabel kosong, yaitu tabel Working Memory, tabel Attribute Queue, dan tabel Rule/Premis Status. Tabel Working Memory berguna untuk menyimpan setiap input, yaitu semua fakta yang disimpulkan selama proses konsultasi. Tabel Attribute Queue berguna untuk menyimpan semua atribut dari value yang sedang diperiksa. Atribut pada awal tabel adalah atribut yang sedang menjalani proses pemeriksaan. Tabel Rule/Premis Status menyimpan status dari rule-rule yang ada yaitu Active, Marked, Unmarked, Discarded, Triggered, Fired. Status setiap premis pada saat inisialisasi adalah bebas (Free). Status setiap rule pada saat inisialisasi adalah tidak bertanda (Unmarked) dan aktif (Active). Notasi yang digunakan untuk merepresentasikan keadaan suatu rule dan premis adalah sebagai berikut : A = Active Rule D = Discarded Rule U = Unmarked Rule M = Marked Rule TD = Triggered Rule FD = Fired Rule FR = Free Clause FA = False Clause TU = True Clause 2. Memulai proses pengambilan keputusan. Sebuah value dari sebuah atribut premis diambil, dimana atribut tersebut tidak boleh ada pada klausa kesimpulan. Atribut ini disimpan pada bagian teratas tabel Attribute Queue. 3. Penelitian satu persatu rule yang ada untuk memeriksa ada tidaknya kesamaan. 4. Rule firing, atau menyatakan rule tersebut benar dan mengambil klausa kesimpulan rule tersebut sebagai kesimpulan akhir. 5. Status antrian. 6. Memberikan tanda pada rule. Bila tidak ditemukan, pencarian dihentikan. Bila ada, rule pertama yang ditemui diberikan tanda dengan M (Marked). 7. Query. Pada rule yang baru saja diberi tanda M (Marked), ditanyakan pada user untuk memperoleh input. 8. Menghilangkan tanda M (Marked) pada rule. Atribut ini diletakkan juga beserta value-nya pada bagian terbawah tabel Working Memory.
Tabel 1. Inisialisasi Tabel untuk Metode Forward Chaining Rule Number
Rule / Premise Table Rule Status Premise Clause
Premise Clause
Number (1) (2)
A, U A, U
(3)
A, U
(4)
A, U
Attribute - Queue Table (attribute listing)
(1)-1 (2)-1 (2)-2 (3)-1 (3)-2 (3)-3 (4)-1 (4)-2 (4)-3
Status FR FR FR FR FR FR FR FR FR
Working Memory Table (attribute = value)
penyakit kulit yang dapat menyerang anjing. Informasi yang dikumpulkan adalah penjelasan penyakit, gejalagejala yang tampak pada penyakit, bagian tubuh yang terserang, bentuk dan letak penyebaran luka, cara melakukan diagnosis lanjutan, sampai pada cara pengobatannya. Pengumpulan informasi ini dilakukan melalui buku penunjang, browsing internet, serta informasi yang didapat dari hasil wawancara dengan para pakar yaitu dokter hewan. Tahap selanjutnya yang dilakukan setelah mendapatkan data relasi antara gejala dengan penyakit adalah mengelompokkan gejala-gejala tersebut sehingga dapat lebih mudah dipahami. Hasil pengelompokan tersebut dibagi menjadi : Jenis dan bentuk luka, letek penyebaran luka pada tubuh, gejala fisik selain luka, dan jenis keturunan pada anjing. Kemudian dapat dibuat dependency diagram untuk aplikasi sistem pakar ini. Dependency diagram dapat dilihat pada Gambar 2.
2.3 Fuzzy Expert System Suatu sistem pakar yang menggunakan perhitungan fuzzy dalam mengolah knowledge untuk menghasilkan premis dan konklusi, sehingga menghasilkan informasi yang memiliki keakuratan kepada user. Di dalam dunia nyata ada dua tipe ketidakpastian yaitu ketidakpastian yang dapat ditentukan (deterministic uncertainty) dan ketidakpastian yang tidak dapat ditentukan (non-deterministic uncertainty) [4]. Teori Fuzzy set di kemukakan oleh seorang profesor matematika yang bernama L.A. Zadeh, untuk menjawab permasalahan ketidakpastian yang dapat ditentukan (deterministic uncertainty). Knowledge-based Fuzzy Set adalah suatu logika fuzzy untuk menyatakan ketidakpastian dalam menentukan keanggotaan suatu elemen terhadap suatu set, dengan cara memberikan membership degree antara 0 sampai dengan 1 yang diberikan oleh beberapa orang pakar. Definisi dari knowledge-based fuzzy set adalah sebagai berikut : Misal A = {A 1 ,…, A n } sebagai set of element dan µ A = {µ 1 , …, µ n } sebagai set of membership degree. µA didefinisikan sebagai sebuah fuzzy set berdasarkan membership function terhadap universal set X adalah suatu mapping dari X ke dalam interval yang tertutup [0,1] (dibaca antara 0 sampai 1). Secara formal membership function ditulis : µ A : X → [0,1] … (1) Sehingga dalam bentuk fungsi, secara formal ditulis : A : X → [0,1] … (2)
3. Hasil Percobaan Tahap awal yang dilakukan dalam pembuatan rules adalah pengumpulan informasi mengenai jenis-jenis
Gambar 2. Dependency Diagram Aplikasi
Tahap selanjutnya melakukan penyimpanan terhadap informasi yang telah didapat menjadi sebuah knowledge base. Knowledge base yang digunakan dalam aplikasi sistem pakar ini berada pada tingkat pertama. Yaitu dengan membuat suatu tabel relasi antara penyakit dan gejala yang berisikan penyakit, gejala, beserta fuzzy quantifier. Tabel tersebut digunakan untuk menyatakan relasi antara himpunan penyakit dan himpunan gejala. Tabel relasi antara penyakit dan gejala dapat dilihat pada Tabel 2. Tabel 2. Relasi Antara Penyakit dan Gejala
P
G P 1 ( g(2.1) 1) P2(g2)
K K K
P1(gm) P2(gm)
M
M
M
M
Pn(g1)
Pn(g2)
K
Pn(gm)
g1
g2
P1 P2
P1(g1) P2(g1)
M Pn
gm
Dengan asumsi : G = {g 1 , g 2 , K , g m } adalah himpunan gejala (set of symptoms) P = { p 1 , p 2 , K , p n } adalah himpunan penyakit (set of illness) A = {a1 , a2 , K , ak } adalah set of membership degree Didefinisikan : P × G → A ... (3) Atau dengan kata lain : P i (g j ) ∈ A ... (4)
Proses selanjutnya dilakukan dengan pembuatan Data Flow Diagram (DFD) dan Entity Relationship Diagram (ERD). Adapun tujuannya adalah untuk menjelaskan aliran informasi dan transformasi data baik pemasukan data oleh pakar hingga keluaran data yang dapat dilihat oleh user. Perancangan Data Flow Diagram level 0 ini dapat dilihat pada Gambar 3 dan untuk perancangan Entity Relationship Diagram Conceptual dapat dilihat pada Gambar 4.
Tabel relasi antara penyakit dan gejala yang telah memiliki membership degree yang didefinisikan sebagai sebuah nilai fuzzy, akan disebut sebagai tabel fuzzy database. Dengan rumus sebagai berikut ini : Pi ( gj ) = 1 -
∑
i n
P (g j )
Total _ Case
+
1 Total _ Case
P P1 P2 P3 P4
g1 1 0 0 0
G2 0.5 0.5 0.5 0
G5 0.75 0 0 0.75
Dalam suatu pengukuran yang tidak pasti, disarankan untuk memakai certainty factor (CF) yang menyatakan tinkat keyakinan sang pakar dalam suatu pernyataan. CF dinilai dengan angka dalam rentang -1 (yakin negatif) sampai 1 (yakin positif). Tabel kondisi dan nilai CF dapat dilihat pada Tabel 4. Tabel 4. Tabel Kondisi dan Nilai CF
Uncertain Term /Kondisi Tidak Pasti Definitely not / Pasti Tidak Almost certainly not / Hampir pasti tidak Probably not / Kemungkinan besar tidak Maybe not / Kemungkinan tidak Unknown / Tidak tahu
T_Pemilik
Input History
Input Pemilik
(2.3)
1
Input Data Penyakit
g4 0 0 0.75 0.75
T_History
2
Input Gejala Pasien Pakar Input Data Gejala (Source of Input Data Pemilik Tambah Rule Proses Analisis Analisis Penyakit Knowledge)
Tabel fuzzy database tersebut dapat direpresentasikan dalam bentuk fuzzy set untuk masing-masing penyakit sebagai berikut : P 1 = {1/g 1 , 0.5/g 2 , 0.75/g 5 } P 2 = {0.5/g 2 , 0.75/g 3 } P 3 = {0.5/g 2 , 0.75/g 4 } P 4 = {0.75/g 3 , 0.75/g 4 , 0.75/g 5 }
Maybe / Kemungkinan Probably / Kemungkinan besar Almost certainly / Hampir pasti Definitely / Pasti
Input Relasi Cek History
… (5)
Tabel 3. Fuzzy Database
G g3 0 0.75 0 0.75
Cek Relasi
TR_Penyakit
CF -1.0 -0.8 -0.6 -0.4 -0.2 to 0.2 0.4 0.6 0.8 1.0
User User
Input Data Pasien
+
+
Input Gejala
Input Penyakit
Input Rule
T_Gejala
Tampilkan Solusi Input Pasien
Cek Gejala
T_Penyakit Cek Penyakit T_Rule
T_Pasien
Cek Rule
Gambar 3. Data Flow Diagram Level 0
T_Gejala Kode_G Jenis_G Nama_G CF_G
T_Rule Kode_R Jumlah_R
R1
R11
T_Jenis_A Kode_JA Nama_JA CF_JA
R2
T_Penyakit Kode_P Nama_P Deskripsi Diagnosis Perawatan
TR_Penyakit Kode_Rs Kode_P1 Kode_P2 CF_P2 Support_P2
R3 R5 R4
R10
T_Pemilik Kode_O Nama_O Alamat_O No_Telp_O
R9
T_Pasien Kode_A Nama_A Jenis_A Jenis_Kelamin Tgl_Lahir Warna
T_History Tgl_Periksa R7
R8
R6
TS_History Tgl_Periksa
Gambar 4. Entity Relationship Diagram Conceptual
Proses pengujian awal dilakukan dengan pengujian sistem, adapun menu utama untuk fuzzy expert system dapat dilihat pada Gambar 5.
Gambar 5. Menu Utama
Pengujian selanjutnya adalah dengan melakukan generate rule dengan menu generate rules (Rules Clinical SignsÆ Skin Disease) digunakan untuk menambahkan dan menghitung data gejala yang dimiliki oleh penyakit. Menu generate rules dapat dilihat pada Gambar 8, sedangkan untuk pengujian menu generate relasi antar penyakit (Relation Skin Disease Æ Skin Disease) digunakan untuk menambahkan dan menghitung hubungan yang dimiliki oleh penyakit terhadap penyakit lain. Menu generate relasi antar penyakit dapat dilihat pada Gambar 9.
Pengujian pertama yang dilakukan adalah pengujian pada menu pasien (Medical Patient) yang digunakan untuk menambahkan data pasien yang diperiksa oleh user. Menu pasien dapat dilihat pada Gambar 6.
Gambar 6. Menu Pasien
Penugjian selanjutnya dilakukan pada menu gejala (Clinical Sign) yang digunakan untuk menambahkan data gejala yang dimiliki oleh penyakit. Pembagian jenis gejala terdiri dari bentuk luka (Lesion), tempat penyebaran luka (Distribusion), dan gejala fisik lainnya (Dermatologic Sign). Menu gejala dapat dilihat pada Gambar 7.
Gambar 7. Menu Gejala
Gambar 8. Menu Generate Rules
Gambar 9. Menu Generate Relasi Antar Penyakit
Pengujian selanjutnya adalah dengan melakukan pengujian pada menu analisa penyakit (Skin Diseases Analysis) yang digunakan untuk melakukan proses analisis dan mencari beberapa nama penyakit yang sesuai dengan data gejala-gejala yang dimasukkan oleh user. Menu analisa penyakit dapat dilihat pada Gambar 10, sedangkan untuk menu analisa penyakit lanjutan (Choose Another Appropriate Clinical Sign) digunakan untuk mencari beberapa nama penyakit yang sesuai dengan data gejalagejala yang ditambahkan oleh user dengan menggunakan proses analisis dengan metode forward chaining dan analisis history. Menu analisa penyakit lanjutan dapat dilihat pada Gambar 11.
Gambar 11. Menu Analisa Lanjutan
Pengujian yang terakhir adalah dengan melakukan pengujian pada menu solusi (Appropriate Skin Diseeases Solution) digunakan untuk menampilkan hasil proses pencarian dengan urutan persentase tertinggi dan menyimpan nama penyakit yang dianggap paling sesuai oleh user. User dapat menyimpan nama penyakit yang dianggap paling sesuai dengan hasil analisa, kedalam history pasien. Sehingga nantinya dapat digunakan untuk analisa history dan generate relasi antar penyakit. Menu solusi dapat dilihat pada Gambar 12. Gambar 10. Menu Analisa Penyakit
[4] Ignizio, James P., 2001, “Introduction to expert system : The development and implementation of rule-based expert system”. London : McGraw-Hill. [5] Lorenz, M. D. & Cornelius, L. M., 2007, “Small animal medical diagnosis”. Philadelphia : J.B. Lippincott Co. [6] Turban, Efraim Aronson, Jay; Liang Peng Ting. 2005. “Decision Support Systems and Intellegent Systems”. New Jersey : Pearson Education, Inc. [7] Willyanto, Iwan., 2004, “Aplikasi metode pendekatan berorientasi pada masalah untuk menetapkan diagnosa dan terapi penyakit kulit pada anjing dan kucing”. Denpasar : PHDI.
Alexander Setiawan, S.Kom., M.T. lahir di kota Surabaya pada 11 Mei 1981. Penulis menamatkan pendidikan S1 Jurusan Teknik Informatika di Universitas Kristen Petra Surabaya (2003) dan menamatkan pendidikan S2 Magister Teknologi Informasi di Universitas Gadjah Mada Yogyakarta (2008). Sampai saat ini bekerja sebagai Dosen Tetap dan menjabat sebagai Kepala Laboratorium Sistem Komputer di Jurusan Teknik Informatika Universitas Kristen Petra Surabaya. Gambar 12. Menu Solusi
4. Kesimpulan Kesimpulan dari penelitian ini adalah sebagai berikut : • Aplikasi sistem pakar ini melakukan perhitungan CF dengan rumus fuzzy, baik CF untuk rule, maupun CF kombinasi untuk penyakit yang diderita pasien, sehingga persentase tingkat kemungkinan jawaban lebih sempurna. • Aplikasi sistem pakar ini menggunakan metode forward chaining dan analisa history yaitu relasi diantara penyakit, sehingga dapat menghasilkan analisa dengan cepat, tepat dan mudah.
REFERENSI [1] Ackerman, L., 2006, “Pattern approach to dermatologic diagnosis”. Proceedings of tufts animal expo. 27 Maret 2006. http://www.vin.com/Members/ Proceedings/Proceedings.plx?CID=TUFTS2002&PID=PR0 1921&O=VIN. [2] Dologite, D. G., 1993, “Developing knowledge-based systems using VP-Expert”. New York : Macmillan Publishing Company. [3] Hnilica, K. A., 2006, “A pattern approach to clinical dermatology”. 27 Maret 2006. http://www.utskinvet.org/pdf/10patterns.pdf.