IMPLEMENTASI SISTEM PAKAR BERBASIS WEB UNTUK DIAGNOSIS PENYAKIT PARU DAN SALURAN PERNAFASAN Wahyu Kusuma R1, Iin Nurfaraditha2 1,2
Jurusan Sistem Informasi, Fakultas Ilmu Komputer dan Teknologi Informasi , Universitas Gunadarma Jl. Margonda Raya No. 100 Depok 1
[email protected], 2
[email protected]
Abstrak Penelitian ini mengimplementasikan sistem pakar untuk mendiagnosa 36 jenis penyakit paru dan saluran pernafasan berdasarkan 78 jenis gejala yang mengiringinya. Penelitian ini bertujuan agar dapat memberikan informasi kepada masyarakat terutama bagi para penderita mengenai penyakit paru dan saluran pernafasan sehingga dapat membantu mereka dalam mendiagnosis sendiri penyakit yang dialaminya berdasarkan gejala yang dirasakannya. Dalam pembuatan sistem pakar ini penulis mengikuti tahapan pengembangan sistem pakar berupa identifikasi, konseptualisasi, formalisasi, implementasi dan pengujian, dengan menggunakan metode inferensi forwad chaining, sedangkan metode decession tree digunakan untuk menggambarkan hubungan antara penyakit dan gejala klinisnya. UML (Unified Modeling Language) digunakan untuk perancangan pemodelan sistem. Penggambaran alur sistem menggunakan struktur navigasi composite. Pembangunan sistem pakar ini menggunakan bahasa pemrograman PHP dan pengelolaan databasenya menggunakan MySQL. Hasil aplikasi telah diunggah ke website dengan alamat http://spparu2.freevar.com/sp_paru2/index.php Kata kunci : sistem pakar, penyakit paru, saluran pernafasan, berbasis web
1.
Pendahuluan
Seiring perkembangan teknologi, dikembangkan pula suatu teknologi yang mampu mengadopsi proses dan cara berpikir manusia yaitu teknologi Artificial Intelligence atau Kecerdasan Buatan. Sistem Pakar adalah salah satu bagian dari Kecerdasan Buatan yang mengandung pengetahuan dan pengalaman pakar yang dapat disimpan dan diaplikasikan ke dalam komputer, kemudian diterapkan oleh masyarakat saat dibutuhkan. Dengan pengimplementasian sistem pakar ke dalam komputer, dapat menghasilkan beberapa manfaat seperti keakurasian, kecepatan, dapat diakses kapan pun Salah satu pemanfaatan sistem pakar adalah bidang kedokteran, mengingat pandangan masyarakat terhadap penyakit dan pola kesehatan belakangan ini semakin peka sehingga menimbulkan rasa ingin tahu tentang jenis penyakit yang dideritanya. Penyakit paru dan saluran pernafasan merupakan penyakit yang tingkat kejadiannya cukup luas, baik dari sisi jenis maupun penyebabnya, dan dapat menyerang siapa saja, tanpa memandang usia, dan suku bangsa. Penyakit ini muncul pada saat-saat tertentu sesuai dengan musim atau bersifat endemis.
Sejumlah penyakit paru dan saluran pernafasan menunjukkan peningkatan di seluruh dunia seperti asma, flu, batuk, TBC dan lain-lain. Tujuan penelitian ini adalah membangun sebuah sistem pakar berbasis web yang dapat membantu seseorang mendiagnosis sendiri penyakit paru dan saluran pernafasan yang dideritanya berdasarkan gejala yang dialaminya. Serta diharapkan dapat memberikan informasi bagi penderita penyakit paru dan saluran pernafasan mengenai penyakit yang dideritanya. Metode yang digunakan mengikuti lima tahapan dalam mengembangkan sistem pakar, meliputi identifikasi, konseptualisasi, formalisasi, implementasi dan pengujian. Pada tahap identifikasi, digunakan untuk menentukan batasan yang akan dikaji pada sistem ini. Tahap konseptualisasi, digunakan untuk mempelajari keterhubungan gejala dan penyakit yang pada akhirnya menghasilkan pohon keputusan (decision tree). Tahap formalisasi digunakan untuk mengformulasikan seluruh konsep yang meliputi merancang basis pengetahuan, memilih metode inferensi, merancang database, merancang pemodelan sistem, merancang stuktur navigasi dan storyboard. Tahap implementasi dan pengujian digunakan untuk menguji aplikasi sistem
pakar yang telah dibuat dengan menggunakan data user sehingga diketahui kinerja dari sistem. Struktur Sistem Pakar [3] Komponen utama pada struktur sistem pakar menurut Hu et al (1987) meliputi: 1. Basis Pengetahuan (Knowledge Base) Basis pengetahuan merupakan inti dari suatu sistem pakar, yaitu berupa representasi pengetahuan dari pakar. Basis pengetahuan tersusun atas fakta dan kaidah. Fakta adalah informasi tentang objek, peristiwa, atau situasi. Kaidah adalah cara untuk membangkitkan suatu fakta baru dari fakta yang sudah diketahui. 2. Mesin Inferensi (Inference Engine) Komponen ini mengandung mekanisme pola pikir dan penalaran yang digunakan oleh pakar dalam menyelesaikan suatu masalah. Metode inferensi adalah program komputer yang memberikan metedologi untuk penalaran tentang informasi yang ada dalam basis pengetahuan dan dalam workplace, dan untuk memformulasikan kesimpulan (Turban, 1995). Kebanyakan sistem pakar berbasis aturan menggunakan strategi inferensi yang dinamakan modus ponen. Berdasarkan strategi ini, jika terdapat aturan “IF A THEN B”, dan jika diketahui bahwa A benar, maka dapat disimpulkan bahwa B juga benar. Strategi inferensi modus ponen dinyatakan dalam bentuk: [A And (A→B)] →B (1) dengan A dan A→B adalah proposisi-proposisi dalam basis pengetahuan. Terdapat dua pendekatan untuk mengontrol inferensi dalam sistem pakar berbasis aturan, yaitu pelacakan ke belakang (Backward chaining) dan pelacakan ke depan (forward chaining).
2.
Pelacakan ke belakang (Backward Chaining) Pelacakan ke belakang adalah pendekatan yang dimotori oleh tujuan (goaldriven). Dalam pendekatan ini pelacakan dimulai dari tujuan, selanjutnya dicari aturan yang memiliki tujuan tersebut untuk kesimpulannya. Selanjutnya proses pelacakan menggunakan premis untuk aturan tersebut sebagai tujuan baru dan mencari aturan lain dengan tujuan baru sebagai kesimpulannya. Proses berlanjut sampai semua kemungkinan ditemukan [6].
Gambar 1. Pelacakan ke belakang
Pelacakan ke depan (forward chaining) Pelacakan kedepan adalah pendekatan yang dimotori data (data-driven). Dalam pendekatan ini pelacakan dimulai dari informasi masukan, dan selanjutnya mencoba menggambarkan kesimpulan. Pelacakan ke depan, mencari fakta yang sesuai dengan bagian IF dari aturan IF-THEN.
Gambar 2 Pelacakan ke depan Kedua metode inferensi tersebut, dipengaruhi oleh tiga macam teknik penelusuran, yaitu depth-first search, breadth-first search, dan best-first search. Depth-first search merupakan penelusuran kaidah secara mendalam dari simpul akar bergerak menurun ke tingkat dalam berurutan. Breadth-first search bergerak dari simpul akar, simpul yang ada pada setiap tingkat diuji sebelum pindah ke tingkat selanjutnya. Best-first search bekerja berdasarkan kombinasi kedua metode sebelumnya. Dalam memilih apakah akan menggunakan pelacakan ke depan atau ke belakang, semuanya tergantung pada masalah yang akan dibuat sistem pakarnya, dan sebelum dibuktikan mana yang lebih baik diantara kedua metode inferensi ini. Untuk sebuah sistem pakar yang besar, dengan jumlah “rule” yang relatif banyak, metode pelacakan ke depan akan dirasakan sangat lambat dalam mengambil kesimpulan sehingga untuk sistem-sistem yang besar biasanya digunakan metode pelacakan ke belakang. 3.
Rancangan Umum Sistem Pakar Perancangan sistem dimulai dengan mengidentifikasi permasalahan hingga pengujian. Perancangan sistem pakar terdiri dari lima tahapan, yaitu identifikasi, konseptualisasi, formalisasi, implementasi dan pengujian [3]. Dikarenakan tiap-tiap tahap saling berhubungan dan saling menunjang, maka setiap tahapan diatas harus dikerjakan secara berurutan satu sama lain. Sistem sederhana yang akan dirancang ini merupakan bagian kecil dari sistem analisis secara keseluruhan. Sedangkan permasalahan spesifik yang akan diangkat adalah mengenai penyakit paru dan saluran pernafasan meliputi gejala penyakit, defenisi, penyebab, dan pengobatan.
3.1 Tahapan Identifikasi Pada tahap ini hal yang dilakukan adalah mengidentifikasi masalah yang akan dibuat dan menentukan batasannya. Pada perancangan sistem pakar ini masalah yang akan dikaji hanya terbatas
pada penyakit paru dan saluran pernafasan berdasarkan gejala klinis yang di rasakan oleh user.
3.2
Tahapan Konseptualisasi
Pada tahapan ini hal yang dilakukan adalah menganalisis keterhubungan antara jenis penyakit dan gejalanya. Untuk menggambarkan keterhubungannya digunakan teknik decision tree (pohon keputusan). 3.2.1 Pohon Keputusan Sebelum menggambarkan pohon keputusan, terlebih dahulu dilakukan pengkodean terhadap data penyakit dan gejalanya. Tabel 1. Daftar Kode Dan Nama Penyakit P01 P02 P03 P04 P05 P06 P07 P08 P09 P10 P11 P12 P13 P14 P15
Kode Penyakit A B C D E F G H I J K L M N O
P16
P
P17
Q
P18 P19 P20 P21 P22 P23
R S T U V W
P24
X
P25 P26 P27
Y Z AA
No
P28
AB
P29
AC
P30
AD
P31 P32 P33 P34 P35
AE AF AG AH AI
P36
AJ
Kode Gejala G001 G002 G003
G004 G005 G006 G007 G008 G009 G010 G011 G012 G013 G014 G015 G016 G017 G018 G019
20
G020
21
G021
22
G022
23 24 25 26 27 28
G023 G024 G025 G026 G027 G028
29
G029
30 31 32
G030 G031 G032
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
G033 G034 G035 G036 G037 G038 G039 G040 G041 G042 G043 G044 G045 G046 G047
48 49 50 51 52
G048 G049 G050 G051 G052
53 54 55 56
G053 G054 G055 G056
57 58 59 60 61
G057 G058 G059 G060 G061
Hidung Mampet Berkurangnya Indra Penciuman Nafas Berbau Sakit Gigi Asma Yang Semakin Memburuk
62 63 64
G062 G063 G064
Gangguan Pernafasan Sering Haus Nyeri Tulang
Nama Penyakit Penyakit Abses Paru Penyakit Asma Penyakit Atelektasis Penyakit Batuk Produktif Penyakit Batuk Tidak Produktif Penyakit Batuk Akut Penyakit Batuk Kronis Penyakit Bronkiektasis Penyakit Bronkiolitis Penyakit Bronkitis Penyakit Pilek / Flu Penyakit Pnumonia Penyakit Pnumonia Atipik Penyakit Pnumonia Virus Penyakit Pnumonia Jamur Penyakit Pnumonitis Hipersensitif Akut Penyakit Pnumonitis Hipersensitif Kronis Penyakit TBC Penyakit Asbetosis Penyakit Psittakosis Penyakit Emboli Paru Penyakit Kolaps Paru Penyakit Sinusitis Penyakit Aspergilosis Bronkupolmoner Alergika (ABPA) Penyakit Berilliosis Penyakit Histiositosis X Penyakit Legionnaire Penyakit Pneumonia Bakteri Gram Negatif Penyakit Pneumonia Eosinofilik Penyakit Pneumonia Karena Hemophila Influenzae Penyakit Pneumonia Pneumokokus Penyakit Pneumonia Stafilokokus Penyakit Sindroma Good Pasture Penyakit Efusi Pleura Penyakit Polip Hidung Penyakit Obstructive Sleep Apna (OSA)
Tabel 2. Daftar Kode Dan Gejala Penyakit No 01 02 03
04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
Gejala Demam Batuk Sesak Nafas
Lelah Nafsu Makan Hilang / Berkurang Berat Badan Menurun Berkeringat Batuk Berdahak Dahak Berbau Busuk Nafas Berbunyi (Bengek) Rasa Sesak Di Dada Batuk Pendek-Pendekl Dada Terasa Penuh Dan Berbunyi Kesulitan Bernafas Batuk Tidak Berdahak / Batuk Kering Tenggorokan Gatal Suara Serak / Hilang Pilek / Flu Batuk Berlangsung Kurang Dari 3 Minggu Batuk Berlangsung Lebih Dari 3 Minggu Batuk Menahun dengan Banyak Dahak, berbau busuk Batuk Berat Jika Tidur Dalam Posisi Miring Clubbing Fingers Warna Kulit Kebiruan Bau Mulut Nafas Cepat Hidung Kembang Kempis Dahak Bewarna merah / Mengandung Darah Pembengkakan Pergelangan, Tungkai Kaki Sakit Kepala Gangguan Penglihatan Rasa Tidak Enak Pada Hidung Dan Tenggorokan Bersin Bersin Hidung Meler Dahak Kehijauan, Berlendir Nyeri Dada Menggigil Mual, Muntah Tidak Enak Badan Sendi / Otot Kaku Kulit Lembab Batuk Darah Cemas, Stress, Tegang Ruam Diare Nyeri Sendi Rasa Tidak Enak Dan Terbakar Di Dada Haus Udara Batuk Lebih Dari 4 minggu Lemas Berkeringat Pada Malam Hari Berkurangnya Kemampuan untuk melakukan gerak badan Hidung Tampak Kemerahan Tekanan Darah Rendah Denyut Nadi Lemah Rasa Sakit Atau Adanya Tekanan Di Daerah Pipi, Hidung dan Antara Mata
65 66 67 68 69 70 71 72 73 74
G065 G066 G06i7 G068 G069 G070 G071 G072 G073 G074
75
G075
76
G076
77 78
G077 G078
Tidak Bertenaga Dahak seperti agar-agar Gemetar Warna Dahak Seperti Karat Animea Dada terasa sempit Denyut Jantung Cepat Penyumbatan Hidung polip yang tumbuh di daerah sinus pada rongga hidung Perasan tidak segar karena kurang tidur
login yang nantinya digunakan untuk mengakses halaman admin.
Sakti atau nyeri tenggorokan ketika bangun Tidur Mengantuk berlebihan ketika siang hari
3. Tabel Penyakit Tabel penyakit digunakan untuk menyimpan semua daftar penyakit meliputi nama penyakit, definisi, penyebab, dan pengobatan. Tabel 3. Struktur File “Tabel Penyakit”
Mendengkur dengan suara keras Rasa sesak dan tercekik yang membuat penderita bangun
Berdasarkan hasil pengkodean data penyakit dan gejala, maka dibuat pohon keputusan, yang direpresentasikan dengan 2 jenis node yaitu, node keputusan yang diwakili dengan kotak menunjukkan jenis penyakit dan node kesempatan yang diwakili oleh lingkaran menunjukkan gejala penyakit.
2. Tabel Pasien Tabel pasien digunakan untuk menyimpan data user. Data tersebut meliputi, Nama, Alamat, Jenis_Kelamin, Pekerjaan, Username, dan Password. Struktur tabelnya adalah sebagai berikut :
4. Tabel Gejala Tabel gejala digunakan untuk menyimpan daftar gejala yang mungkin terjadi pada user. 5. Tabel Hasil Tabel hasil digunakan untuk menyimpan data hasil penelusuran. Struktur tabelnya adalah sebagai berikut : Tabel 4. Stuktur File “Tabel Hasil”
Gambar 3. Diagram Keputusan Sistem Pakar Penyakit Paru Dan Saluran Pernafasan 4.
Perancangan Database
Program sistem pakar penyakit paru dan saluran pernafasan ini menggunakan bahasa pemrograman PHP sebagai program utama dan juga menggunakan MySQL sebagai file databasenya. Perancangan database pada sistem pakar ini terbagi menjadi dua jenis tabel yaitu tabel utama dan tabel pembantu. 4.1 Tabel Utama Untuk merancang sistem pakar ini diperlukan enam tabel utama yang saling terkait. Tabel utama tersebut antara lain tabel admin, tabel user, tabel penyakit, tabel hasil, tabel gejala dan tabel relasi. Berikut ini adalah desain tabel secara lengkap 1 . Tabel Admin Tabel admin digunakan untuk menyimpan username dan password administrator pada saat
6. Tabel Relasi Tabel relasi digunakan untuk memasukkan daftar gejala yang terjadi dari setiap penyakit. Tabel 5. Stuktur File “Tabel Relasi” Kolom Atribut Ukuran Keterangan kd_gejala varchar 5 not null kd_penyakit varchar 5 not null 4.2 Tabel Bantu Tabel ini berfungsi untuk merekam data (Penyakit dan Relasi), secara sementara selama masih dianalisis. Tabel bantu tersebut antara lain : 1. Tabel Sementara Tabel ini merupakan tabel sementara untuk memuat data relasi. Tujuannya adalah untuk menyimpan daftar relasi yang kode penyakitnya mungkin terjadi. Stuktur tabelnya adalah: Tabel 6. Stuktur File “Tabel Sementara” Kolom Atribut Ukuran Keterangan kd_gejala varchar 5 not null kd_penyakit
varchar
5
not null
2. Tabel tpenyakit Tabel tpenyakit merupakan tabel sementara untuk memuat data Penyakit. Tujuannya adalah menyimpan daftar kemungkinan penyakit yang dialami saat user menjawab setiap gejala yang ditanyakan. Tabel bantu tersebut antara lain .
System
Tambah Penyakit
Edit Penyakit
Hapus Penyakit
Tambah Gejala
Tabel 7. Stuktur File “Tabel tpenyakit” Edit Gejala
Hapus Gejala Admin Tambah Relasi
Edit Relasi
5. Perancangan Sistem
Hapus Relasi
Perancangan sistem secara umum dilakukan dengan menggunakan UML(Unified Modeling Language). Dalam perangcangan sistem pakar ini penulis menggunakan empat jenis diagram yaitu, use case diagram, activity diagram, class diagram dan sequence diagram
Lihat Hasil Konsultasi
Hapus Hasil Konsultasi
Gambar 5. Use Case Diagram Admin
Activity Diagram Hasil Konsultasi Pasien
Use Case Diagram User System
Admin
Sistem Halaman Admin
Daftar
Menu Hasil Konsultasi
Login Menentukan Kegiatan Yang Dilakukan
Halaman Hasil Konsultasi User
Konsultasi Hapus
User Hasil Diagnosis
Pilih Data Yang Dihapus
Proses Penghapusan Data
Lihat Hasil Konsultasi Pilih Data Hasil Konsultasi
Detail Konsultasi
Gambar 4. Use case Diagram User
Gambar 6. Activity Diagram Hasil Konsultasi Pasien
Pada sistem ini hal yang pertama kali dilakukan oleh user adalah melakukan pendaftaran terlebih dahulu, setelah itu user melakukan proses login. Apabila proses login telah berhasil user dapat melakukan konsultasi dan kemudian user akan memperoleh hasil diagnosis.
Class Diagram Class diagram menggambarkan objek-objek yang ada dalam sistem pakar penyakit paru dan saluran pernafasan ini. Diagram kelas ini menggambarkan keterkaitan antar kelas. Rancangan relasional hubungan antara beberapa tabel yang saling memiliki keterkaitan data dan tidak dapat dipisahkan. Database dalam sistem ini diberi nama paru2. Dengan menggunakan struktur kelas yang tampak pada gambar di bawah, maka setiap atribut data dapat dipisahkan menurut kelas. Sehingga redudansi atau kesalahan rekaman data tidak terjadi.
Use Case Diagram Admin Pada sistem ini admin dapat melakukan berbagai hal diantaranya menambah data penyakit, mengedit data penyakit, menghapus data penyakit, menambah data gejala, mengedit data gejala, menghapus data gejala, menambah data relasi, mengedit data relasi, menghapus data relasi. Selain itu admin dapat melihat data setiap user yang telah menggunakan sistem pakar ini
Pasien
Penyakit
<
>-Username: Varchar -Password: Varchar 1 -Nama: Varchar -Alamat: varchar -Jenis kelamin: enum('P 'W') -Pekerjaan: Varchar
1..*
gejala
Relasi
<>-kd_gejala: Varchar 1 -gejala: Varchar
1
* -kd_penyakit: varchar * -kd_gejala: varchar 1
<>-Kd_penyakit: Varchar -penyakit: varchar -Defenisi: text -Penyebab: Text -Pengobatan : Text
Tampilan Hasil Halaman Utama Halaman ini merupakan gerbang utama pada saat menjalankan aplikasi. Saat aplikasi ini dijalankan pertama kali, maka akan tampil halaman home, baik untuk pasien umum maupun admin.
0..1 Sementara -kd_gajala: varchar -kd_penyakit: varchar 1 1
Hasil
tpenyakit <>-No: int -kd_penyakit: varchar
1
<>-kd_hasil: varchar 1 -username: varchar -kd_penyakit: varchar -tanggal: datetime
Gambar 7. Diagram Class Pada sistem pakar ini terdapat tujuh tabel yang saling terkait satu sama lain. Ketujuh kelas tersebut adalah tabel pasien, relasi, gejala, penyakit, hasil, sementara, dan tpenyakit. 6. Perancangan Stuktur Navigasi Stuktur navigasi user ini merupakan stuktur navigasi campuran yang merupakan gabungan antara stuktur navigasi linier dan non liner. Stuktur navigasi linier dapat dilihat pada bagian halaman konsultasi mulai dari proses login sampai dengan proses logout, yang merupakan suatu rangkaian dimana apabila user telah melakukan proses login maka sistem akan melampilkan tampilan secara berurut sesuai dengan urutannya dan user tidak dapat menuju halaman lain sebelum ia melakukan proses logout terlebih dahulu. Home
Konsultasi
Daftar Penyakit
Informasi Kesehatan
Bantuan
Detail Penyakit Login
Daftar
Jawab Pertanyaan
Hasil Diagnosis
Logout
Gambar 8. Strukur navigasi user Sedangkan stuktur navigasi non liner dapat dilihat dari hubungan antara halaman home, konsultasi, daftar penyakit, informasi kesehatan, dan bantuan. Dimana pada halaman ini merupakan perjejakan bercabang yang berkedudukan sama.
Gambar 9. Tampilan hasil Halaman Utama Web.
7. Kesimpulan Penelitian ini telah berhasil mengimplementasikan sistem pakar berbasis web untuk mendiagnosis penyakit paru dan saluran pernafasan berdasarkan gejala yang dialami oleh user. Hasil aplikasi telah berhasil diunggah di website dengan alamat http://spparu2.freevar.com/sp_paru2/index.php. Sistem pakar ini berisi 78 gejala penyakit, direpresentasikan sebagai node kesempatan, yang diwakili dengan lingkaran, serta terdiri dari 36 jenis penyakit, direpresentasikan sebagai node keputusan yang diwakili dengan kotak. Daftar Pustaka: [1] Iskandar Junaidi, 2010, Penyakit Paru & Saluran Nafas, Jakarta, PT Bhuana Ilmu Populer [2] Kusrini, 2008, Aplikasi Sistem Pakar, Yogjakarta, ANDI [3] Kusumadewi Sri, 2003, Artificial Intelligence (Teknik dan Aplikasinya), Yogyakarta, Graha Ilmu [4] Madcoms, 2005, Aplikasi program PHP & MySQL Untuk Membuat Website Interaktif, Yogjakarta, ANDI [5] Suhendar. A dan Hariman Gunadi, 2002, Visual Modeling Menggunakan UML dan Rational Rose, Bandung, Informatika [6] Sutisna Dadan , 2007, 7 Langkah Mudah menjadi Web Master, Jakarta, Media Kita