Jurnal Skripsi IT-IF Unsil 2012
RANCANG BANGUN EXPERT SYSTEM DIAGNOSA PENYAKIT ANAK MENGGUNAKAN METODE FORWARD CHAINING DAN BACKWARD CHAINING (Studi Kasus : Puskesmas Tawang) Paksi Wicaksono (087006059) Teknik Informatika Universitas Siliwangi Tasikmalaya Email :
[email protected] ABSTRACT
Tawang Health Center is one of the public health services in the area of Tawang district Tasikmalaya. One of the health centers in health centers in addition to the examination is an examination at the IHC. IHC examination activities involving paediatricians, midwives and nurses. IHC activities carried out once a month, type of inspection is conducted medical examination of children. Based on these observations, a pediatrician who amounted to one person at the health center Tawang hours pediatricians make a solid, it makes health care in health centers run Tawang be less expected. Therefore, we need a service that can help to diagnose the disease early IHC child when doctors could not attend. The services are Expert Systems, a service that can help provide a temporary solution to patients in health centers Tasikmalaya Tawang town. Knowledge representation used is a decision table, tree tracking, production rules of the form IF-THEN. Tracking method used is the method of Forward Chaining and Backward Chaining. Forward Chaining is a method of tracking which starts from tracking all the data and rules to achieve the goal, and Backward Chaining is starting to approach tracking purposes, will find that the rules have consequences that lead to the goal. With the services patients can do a virtual consultation based on the symptoms suffered and got the diagnosis while the disease. Keyword : Expert System, Pediatric, Forward Chaining, Backward Chaining ABSTRAK
Puskesmas Tawang adalah salah satu tempat pelayanan kesehatan masyarakat yang berada di wilayah kecamatan Tawang kota Tasikmalaya. Salah satu kegiatan Puskesmas selain pemeriksaan di Puskesmas adalah pemeriksaan di Posyandu. Kegiatan pemeriksaan di Posyandu melibatkan dokter anak, bidan dan perawat. Kegiatan Posyandu dilakukan satu bulan sekali, jenis pemeriksaan yang dilakukan adalah pemeriksaan kesehatan anak. Berdasarkan pengamatan tersebut, dokter anak yang berjumlah satu orang di Puskesmas Tawang membuat jam kerja dokter anak menjadi padat, hal tersebut membuat pelayanan kesehatan di Puskesmas Tawang menjadi kurang berjalan dengan yang diharapkan. Oleh karena itu, dibutuhkan suatu layanan yang bisa membantu untuk mendiagnosa awal penyakit anak di Posyandu ketika dokter tidak bisa hadir. Layanan tersebut adalah Sistem Pakar, yaitu layanan yang dapat membantu memberikan solusi sementara kepada pasien di Puskesmas Tawang Kota Tasikmalaya. Representasi pengetahuan yang digunakan adalah tabel keputusan, pohon pelacakan, kaidah produksi berbentuk IF-THEN. Metode pelacakan yang digunakan adalah metode Forward Chaining dan Backward Chaining. Forward Chaining adalah metode pelacakan yang dimulai dari penelusuran semua data dan aturan untuk mencapai tujuan, dan Backward Chaining adalah pelacakan dimulai dengan pendekatan tujuan, akan mencari aturan yang memiliki konsekuen yang mengarah kepada tujuan. Dengan adanya layanan tersebut pasien dapat melakukan konsultasi secara virtual berdasarkan gejala - gejala yang diderita dan mendapat hasil diagnosa sementara terhadap penyakit yang diderita. Kata kunci : Sistem Pakar, Penyakit Anak, Forward Chaining, Backward Chaining 1
Jurnal Skripsi IT-IF Unsil 2012
I. PENDAHULUAN 1.1 Latar Belakang Puskesmas Tawang adalah salah satu tempat pelayanan kesehatan masyarakat yang berada di wilayah kecamatan Tawang kota Tasikmalaya. Salah satu kegiatan Puskesmas selain pemeriksaan di Puskesmas adalah pemeriksaan di Posyandu. Kegiatan pemeriksaan di Posyandu melibatkan dokter anak, bidan dan perawat. Kegiatan Posyandu dilakukan satu bulan sekali, jenis pemeriksaan yang dilakukan adalah pemeriksaan kesehatan anak. Berdasarkan pengamatan tersebut, dokter anak yang berjumlah satu orang di Puskesmas Tawang membuat jam kerja dokter anak menjadi padat, hal tersebut membuat pelayanan kesehatan di Puskesmas Tawang menjadi kurang berjalan dengan yang diharapkan, karena dokter anak tidak sempat untuk melakukan pemeriksaan kesehatan anak di Posyandu karena banyaknya pasien yang ada di Puskesmas. Tidak bisa hadirnya dokter anak di Posyandu terkadang membuat pasien yang ada di Posyandu tidak bisa mendapat penanganan lebih dini karena tidak ada diagnosa awal. Oleh karena itu, dibutuhkan suatu layanan yang bisa membantu untuk mendiagnosa awal penyakit anak di Posyandu ketika dokter tidak bisa hadir yaitu berupa suatu sistem pakar (Expert System). Sistem pakar mempunyai beberapa kelebihan yaitu memungkinkan orang awam bisa mengerjakan pekerjaan para ahli, dapat melakukan proses berulang secara otomatis, menyimpan pengetahuan dan keahlian para pakar, meningkatkan output dan produktivitas, mampu mengambil keahlian para pakar. Sistem pakar mempunyai beberapa metode dalam mengambil keputusan, diantaranya adalah metode Forward Chaining dan Backward Chaining. Pada metode Forward Chaining, pelacakan dimulai dari penelusuran semua data dan aturan untuk mencapai tujuan. Metode Forward Chaining cocok untuk diagnosa awal pada penyakit dengan pelacakan dari gejala-gejala yang diderita. Pada metode Backward Chaining pelacakan dimulai dengan pendekatan tujuan, akan mencari aturan yang memiliki konsekuen yang mengarah kepada tujuan. Metode Backward Chaining baik digunakan untuk diagnosa awal pada pelacakan penyakit musiman. Untuk membatasi objek yang menjadi pokok penelitian maka permasalahan akan dibatasi sebagai berikut:
a. Sistem pakar ini khusus digunakan di Puskesmas Tawang. b. Data sampel yang digunakan sebagai data awal adalah 10 jenis penyakit pada pernafasan anak yang tinggal di daerah tropis. Sumber data-data penyakit, definisi serta solusi atau saran yang didapat dalam masalah ini diambil dari wawancara serta buku yang direferensikan oleh dokter anak Puskesmas Tawang. Untuk jenis penyakit lainnya dapat dilakukan penambahan pada sistem. c. Sistem pakar ini hanya digunakan untuk diagnosa awal penyakit pada anak balita (bawah lima tahun). d. Metode yang digunakan dalam pembangunan sistem pakar ini menggunakan metode Forward Chaining dan Backward Chaining. e. Aplikasi menggunakan bahasa pemrograman PHP dan Database Management System (DBMS) menggunakan MySQL 4.0. 2. LANDASAN TEORI 2.1 Sistem Pakar Sistem pakar (Expert System) merupakan salah satu cabang dari kecerdasan buatan. Definisi dari sistem pakar yaitu sistem yang berusaha mengadopsi pengetahuan manusia ke komputer, agar komputer dapat menyelesaikan masalah seperti biasa dilakukan oleh para ahli. Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalahan tertentu dengan meniru kerja para ahli. Bagi para ahli pun sistem pakar ini juga akan membantu aktivitasnya sebagai asisten yang berpengalaman (Kusumadewi, 2003). 2.2 Pohon Keputusan Hampir semua masalah Artificial Intellegence ditampilkan dalam bentuk grafik atau jaringan yang berbentuk node dan akar yang disebut pohon keputusan/pelacakan. Untuk menghindari kemungkinan adanya proses pelacakan suatu node secara berulang, maka digunakan struktur pohon. Struktur pohon digunakan untuk menggambarkan keadaan secara hirarki yang terdiri dari beberapa node. Node yang terletak pada level ke nol disebut dengan nama akar. Node akar menunjukkan keadaan awal yang biasanya merupakan topic atau objek. Node akar teletak pada level ke nol yang memiliki beberapa percabangan yang terdiri atas beberapa node successor yang disebut dengan nama anak dan 2
Jurnal Skripsi IT-IF Unsil 2012
merupakan node-node perantara.
3. Metodologi Metode perancangan Metode perancangan yang digunakan pada penelitian tugas akhir ini menggunakan pendekatan berorientasi data atau terstruktur yaitu Linier Sequential Model, model proses ini sering disebut sebagai Waterfall yang menyarankan pendekatan yang sistematis dan sekuensial dalam pengembangan perangkat lunak yang dimulai pada level sistem dan bergerak maju mulai tahap system engineering, analysis, design, coding, testing, maintance (Pressman, 2002).
Gambar 1.1 Pohon Keputusan 2.3 Forward Chaining Forward chaining merupakan perunutan yang dimulai dengan menampilkan kumpulan data atau fakta yang menyakinkan menuju konklusi akhir. (Iswanti, 2008).
Gambar 1.4 Metode Waterfall (R.S. Preesman)
Gambar 1.2 Forward Chaining 2.4 Backward Chaining Backward chaining merupakan proses perunutan yang arahnya kebalikan dari runut maju. Proses penalaran runut balik di mulai dengan tujuan/goal kemudian merunut balik ke jalur yang akan mengarahkan ke goal tersebut, mencari bukti–bukti bahwa itu diaplikasikan ketika tujuan atau hipotesis yang dipilih itu sebagai titik awal penyelesaian masalah (Iswanti, 2008).
3.1 Tahapan Analisis 3.1.1 Analisis Masalah Analisis masalah adalah penguraian dari suatu masalah yang utuh ke dalam bagian-bagian komponennya dengan maksud mengidentifikasi dan mengevaluasi permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan. Berdasarkan hasil wawancara dengan dokter, bidan dan perawat yang bertugas di Puskesmas Tawang, dengan adanya dua kegiatan pemeriksaan kesehatan anak di Puskesmas dan di Posyandu sedangkan jumlah dokter anak hanya satu orang, membuat jam kerja praktek dokter anak menjadi padat. Terkadang dokter anak tidak sempat untuk melakukan pemeriksaan kesehatan anak di Posyandu karena banyaknya pasien yang ada di Puskesmas. Tidak bisa hadirnya dokter anak di Posyandu terkadang membuat pasien yang ada di Posyandu tidak bisa mendapat penanganan lebih dini karena tidak ada diagnosa awal.
Gambar 1.3 Backward Chaining 3
Jurnal Skripsi IT-IF Unsil 2012
Tabel 1.3 Tabel Keputusan 3.1.2 Analisis Tabel Keputusan Tabel keputusan digunakan sebagai acuan dalam membuat pohon keputusan dan kaidah yang digunakan. Tabel 1.1 Penyakit Kode Penyakit P001 P002 P003 P004 P005 P006 P007 P008 P009 P010
Nama Penyakit Batuk Pilek Bronkitis Bronkopneumia Laringitis Pneumonia Flu Burung Kanker Paru Kolaps paru Psittakosis Tubercolosis (TBC)
Tabel 1.2 Gejala Kode Gejala G001 G002 G003 G004 G005 G006 G007 G008 G009 G010 G011 G012 G013 G014 G015 G016 G017 G018 G019 G020 G021 G022 G023 G024 G025 G026 G027 G028
Nama Gejala Batuk Pilek Bersin Batuk Kering Batuk Berdahak Mengi Sesak Nafas Sianosis Demam Tapkipneu Diare Serak Anoreksia Nyeri Menelan Nyeri Dada Mudah Lelah Sakit Kepala Hilang Nafsu Makan Berat Badan Turun Lelah Dahak Berdarah Dada Sempit Detak Jantung Cepat Hipotensi Mengigil Nyeri Perut Nyeri Sendi Infeksi Selaput Mata
Tabel ini menjelaskan setiap penyakit dengan beberapa gejala dengan tanda ‘x’, penjelasan ini menggunakan pencocokan Kode Gejala dengan Kode Penyakit. 3.1.3 Analisis Metode Pelacakan Berdasarkan metode pelacakan yang digunakan yaitu metode Forward Chaining dan Backward Chaining dari 10 data sampel penyakit, untuk gejala dibedakan menjadi 2 jenis yaitu: 1. Gejala umum (gejala yang dimiliki oleh dua penyakit atau lebih) 2. Gejala unik (gejala yang hanya dimiliki oleh satu penyakit). Kategori Penyakit akan dibedakan menjadi dua jenis sesuai metode pelacakannya. Tabel 1.4 Analisis Penyakit Berdasarkan metode pelacakan No Analisis Metode Metode Forward Backward Chaining Chaining 1 Jumlah Sedikit Banyak Gejala 2 Gejala yang Gejala Umum Gejala mendominasi Unik 3 Keterangan Jenis Penyakit Jenis tidak mengenal Penyakit musiman Musiman 4
Jurnal Skripsi IT-IF Unsil 2012
3.1.4 Analisis Pohon Keputusan a. Pohon Keputusan dengan Forward Chaining Keterangan :
G001
Gejala
Y
Penyakit
G002
Berikut ini contoh analisis pengambilan kesimpulan : 1. Analisis pengambilan kesimpulan yang terhenti di node penyakit
Y T G003 Y
T G012
P001
T
Y
G004 T Y
G013
0
0
G005
T Y
Y
T
G006
0
G014
0 T
T
Y
Y G007
0
Y
0
T
P004
G008
0
Y
T
P002
G009 Y
T
G010
G015
T
Y
Y
T
0 G011
T
Y
P005
0
0 P003
Gambar 1.5 Pohon Keputusan Forward Chaining
Karena penelusuran terhenti tepat di node penyakit maka kesimpulannya : Penyakit yang terdeteksi => P001 Nilai proporsi => 3/3 x 100 % = 100% Status => ‘Terjangkit’ Berdasarkan analisis, maka hasil diagnosa akan adalah terjangkit penyakit P001 atau batuk pilek.
Pada proses pencarian pada pohon keputusan 2. Analisis pengambilan kesimpulan yang terhenti forward chaining di atas, untuk menentukan status di node 0 hasil diagnosa maka akan dihitung dengan rumus Penyakit yang terdeteksi akan proporsi yaitu menentukan kemungkinan dengan frekuensi relatif. diarahkan ke penyakit yang berada Rumus proporsi pada sistem pakar untuk diagnosa penyakit anak yaitu : pada cabang node gejala terpenuhi p = n (A) x 100% n (S) Keterangan : p : Proporsi n (A) : banyaknya gejala yang tedeteksi pada penyakit A n (S) : banyaknya gejala yang dimiliki penyakit A Setelah diketahui nilai proporsinya maka akan ditentukan status hasil diagnosa dengan aturan sebagai berikut: 1. Nilai Proporsi antara 100%-75% maka status hasil diagnosa adalah ‘terjangkit’ 2. Nilai Proporsi <75% maka status hasil diagnosa ‘kemungkinan menderita’ 3. Penyakit akan diarahkan pada nilai proporsi terbesar, nilai yang paling mendekati 100%
yang terakhir (G002) Penyakit yang terdeteksi
=>
P001,P004 Nilai proporsi => P001 = 2/3 x 100% = 66,7 % => P004 = 2/5 x 100% = 40 % Status => Kemungkinan menderita Berdasarkan analisis, maka hasil diagnosa akan adalah “kemungkinan menderita” penyakit P001 atau batuk pilek.
5
Jurnal Skripsi IT-IF Unsil 2012
3.1.5 Analisis Kebutuhan Fungsional Hak Akses Info Data Penyakit Info Data Gejala Info Data Relasi
b. Pohon Keputusan dengan Backward Chaining Keterangan :
G001
Gejala
t
y
Penyakit
G006
0
y
Expert System Diagnosa Penyakit Anak
Pakar
t
G007 t
G009
Username Password Data Penyakit Data Gejala Data Relasi
G008
y t
t
G011 t
y 0
y
G026
t
G022
t y
G027
t
y 0
G018
G023
t
0
t
y G024
t
y
P006
nm_penyakit
definisi
solusi
kd_gejala*
nm_gejala
P010 t
0
P008
t
0
t P007
P09
kd_penyakit*
y
G020 y
y
0
3.2 Tahapan Desain 3.2.1 Entity-Relationship Diagram (ER-D)
0
0 y
G025
G028
t
y
G019 y
0 t
y
y
G021
0 t
y
G017
Data Pasien
Gambar 1.7 Diagram Konteks Expert System Diagnosa Penyakit Anak (R.S. Preesman)
G015
G016
Pasien
0
y
y
Hasil Analisa
penyakit
0
relasi
gejala
0
kd_penyakit**
kd_gejala**
Gambar 1.6 Pohon Keputusan Backward Chaining Sama seperti metode Forward Chaining, untuk menentukan status hasil diagnosa maka akan dihitung dengan rumus proporsi, dengan contoh kasus penyakit P010 yaitu Tubercolosis (TBC). Analisis penelusuran Backward Chaining
mempunyai
id*
nama
analisa_hasil
kelamin
alamat
tanggal
noip
kd_penyakit**
pekerjaan
Gambar 1.8 Entity-Relationship Diagram Sistem Pakar Penyakit Anak
Maka kesimpulannya : Penyakit yang ditelusuri => P010 Nilai proporsi => 5/8 x 100 % = 62,5% Status => ‘Kemungkinan menderita’ Berdasarkan analisis, maka hasil diagnosa akan adalah “kemungkinan menderita” penyakit P010 atau Tubercolosis. 6
Jurnal Skripsi IT-IF Unsil 2012
3.2.2 Interface Berikut ini adalah contoh beberapa desain interface :
Gambar 1.9 Menu Utama Pasien
Gambar 1.12 Login Pakar
Gambar 1.13 Input Data Penyakit Gambar 1.10 Diagnosa Penyakit
Gambar 1.11 Hasil Diagnosa
Gambar 1.14 Laporan Data penyakit 7
Jurnal Skripsi IT-IF Unsil 2012
3.3 Tahapan Coding 4. Testing Berikut ini adalah penggalan listing source code Berikut ini adalah hasil dari pengujian menggunakan metode Forward Chaining dan menggunakan Pengujian BlackBox : Backward Chaining Kelebihan 1. Dapat menambah wawasan pengguna if ($datacek >= 1) { $sqlg = "SELECT gejala.* FROM terhadap jenis gejala-gejala yang ditimbulkan gejala,tmp_analisa oleh beberapa penyakit. WHERE gejala.kd_gejala=tmp_analisa.kd_gejala 2. Memberikan penanganan sementara AND tmp_analisa.noip='$NOIP' AND NOT tmp_analisa.kd_gejala pengguna sebelum didiagnosa oleh dokter. IN(SELECT kd_gejala 3. Perangkat lunak ini sangat mudah digunakan FROM tmp_gejala WHERE noip='$NOIP') karena menu-menunya tidak membingungkan ORDER BY gejala.kd_gejala LIMIT 1"; $qryg = mysql_query($sqlg, $koneksi); dan sehingga dapat mudah dimengerti oleh $datag = mysql_fetch_array($qryg); pengguna $kdgejala = $datag['kd_gejala']; Kekurangan $gejala = $datag['nm_gejala']; 1. Hanya memberikan solusi bukan dan hanya } memberikan resep obat yang bukan resep else { $sqlg = "SELECT * FROM gejala ORDER BY spesifik. kd_gejala LIMIT 1"; 2. Data - data penyakit hanya dari hasil $qryg = mysql_query($sqlg, $koneksi); wawancara pengetahuan dengan dokter anak $datag = mysql_fetch_array($qryg); di puskesmas setempat dan buku referensi $kdgejala = $datag['kd_gejala']; yang diajukan oleh dokter, sehingga hasil $gejala = $datag['nm_gejala']; akhir tidak bisa jadi acuan. } ?> 3. Perangkat lunak masih belum bisa diakses Penjelasan : Source code diatas memanggil tabel melalui internet untuk saat ini, dan hanya gejala dari database dimana gejala dan kode gejala untuk server lokal saja, sehingga perlu berelasi dengan tabel tmp_analisa dan kode gejala, pengembangan lebih lanjut dimana jika gejala-gejala yang dijawab “Ya” oleh pasien, maka tabel tmp_pasien, penyakit, gejala dan 5. Kesimpulan Dan Saran tmp_analisa akan mengirimkan data ke tabel 5.1. Kesimpulan hasil_analisa dan diperoleh hasil akhir yaitu menampilkan tabel hasil_analisa, dan jika Dari hasil penelitian ini dapat disimpulkan pertanyaan gejala dan kd_gejala dijawab “Tidak” bahwa: oleh pasien, makan tmp_pasien, penyakit, gejala 1. Berhasil merancang dan membuat sebuah dan tmp analisa akan terus mendiagnosa hasil tabel aplikasi sistem pakar (expert system) untuk analisa_akhir sampai pasien menemukan gejala diagnosa awal pada penyakit anak. yang diderita, sehingga menjawab “Ya” dan bisa 2. Berhasil merancang dan membuat sebuah menemukan hasil akhir diagnosa aplikasi sistem pakar (expert system) dengan menggunakan metode forward chaining dan backward chaining. 3. Berhasil menyediakan layanan sistem pakar (expert system) diagnosa penyakit anak untuk Puskesmas tawang sehingga pasien bisa mendapatkan wawasan tentang berbagai macam penyakit berdasarkan gejala-gejala yang diderita dan berkonsultasi secara virtual untuk mengetahui penyakit yang diderita setelah menjawab pertanyaan yang diajukan oleh perangkat lunak expert system diagnosa penyakit anak ini. Sehingga, jika keadaan Puskesmas Tawang sedang banyak antrian, pasien dapat memanfaatkan waktu 8
Jurnal Skripsi IT-IF Unsil 2012
untuk menambah wawasan dan berkonsultasi secara virtual kepada perangkat lunak. 5.2. Saran Perangkat lunak yang telah dirancang dan dibuat sudah berjalan dengan baik sesuai dengan tujuan awal dari penelitian ini, yaitu untuk mercancang dan membuat sebuah perangkat lunak sistem pakar (expert system) berbasis PHP untuk diagnosa penyakit anak dan memberikan solusi sementara kepada pasien, sehingga memberikan layanan baru. Saran untuk pengembangan selanjutnya pada layanan ini yaitu : 1. Perlu diadakan penambahan data untuk jenis penyakit pernafasan anak beserta gejala-gejalanya sehingga sehingga tidak hanya terbatas untuk mendiagnosa 10 penyakit saja, tetapi dapat menambah berbagai jenis penyakit lainnya dan informasi yang dimiliki akan semakin luas dan banyak. 2. Pengembangan program dan analisis data agar dapat lebih diperluas cakupannya sesuai dengan kebutuhan program. 3. Setelah implementasi maka dilakukan pengujian sistem yang baru, dimana akan dilihat kekurangan-kekurangan pada aplikasi yang baru untuk pengembangan sistem selanjutnya.
DAFTAR PUSTAKA Andi, Panduan praktis pemrograman Borland Delphi 7.0, 2003, Yogyakarta, Wahana Komputer. Fathansyah. 2007. Buku Teks Komputer Basis Data. Penerbit : Informatika. Bandung Jogiyanto HM, Analisis dan Desain Informasi: pendekatan terstruktur, 2001, Yogyakarta, Andi. Hoffer, Jeffrey A., Prescott, Mary B. dan McFadden, Fred R. (2002). Modern Database Management, Sixth Edition. Prentice Hall, New Jersey. Kusrini, Sistem Pakar Teori dan Aplikasinya, 2006, Yogyakarta, Andi. Kusumadewi, Sri, Artificial Intelligence (Teknik dan Aplikasinya), 2003, Yogyakarta, Graha Ilmu. Ngastiyah, Perawatan Anak Sakit, 1995, Jakarta, EGC. Nugroho bunafit, Membuat aplikasi sistem pakar dengan PHP dan Editor Dreamweaver, edisi pertama, cetakan pertama, 2008, Yogyakarta, Gava Media. Pressman RS. 2005. Software Engineering: a Practitioner's Approach-6th ed. New York: McGraw-Hill. Sari Iswanti, Sri Hartati, Sistem Pakar dan Pengembangannya. 2008, Yogyakarta, Graha Ilmu. Solichin, Achmad, Pemrograman web dengan PHP dan MYSQL. 2010. Jakarta. Universitas Budi Luhur.
9
Jurnal Skripsi IT-IF Unsil 2012
Nama Ttgl Pend
: Paksi Wicaksono : Tasikmalaya, 29 September 1989 : S1 Teknik Informatika Universitas Siliwangi E-mail :
[email protected]
10