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 wahyukr@staff.gunadarma.ac.id, 2 iinnurfaraditha@gmail.com
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
pakar yang telah dibuat dengan menggunakan data user sehingga diketahui kinerja dari sistem.
2. 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).
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
No Penyakit Kode Nama Penyakit P01 A Penyakit Abses Paru P02 B Penyakit Asma P03 C Penyakit Atelektasis P04 D Penyakit Batuk Produktif P05 E Penyakit Batuk Tidak Produktif P06 F Penyakit Batuk Akut P07 G Penyakit Batuk Kronis P08 H Penyakit Bronkiektasis P09 I Penyakit Bronkiolitis P10 J Penyakit Bronkitis P11 K Penyakit Pilek / Flu P12 L Penyakit Pnumonia P13 M Penyakit Pnumonia Atipik P14 N Penyakit Pnumonia Virus P15 O Penyakit Pnumonia Jamur
P16 P Penyakit Pnumonitis Hipersensitif Akut P17 Q Penyakit Pnumonitis Hipersensitif
Kronis
P18 R Penyakit TBC
P19 S Penyakit Asbetosis P20 T Penyakit Psittakosis P21 U Penyakit Emboli Paru P22 V Penyakit Kolaps Paru P23 W Penyakit Sinusitis
P24 X Penyakit Aspergilosis
Bronkupolmoner Alergika (ABPA) P25 Y Penyakit Berilliosis P26 Z Penyakit Histiositosis X P27 AA Penyakit Legionnaire P28 AB Penyakit Pneumonia Bakteri Gram Negatif P29 AC Penyakit Pneumonia Eosinofilik P30 AD Penyakit Pneumonia Karena
Hemophila Influenzae
P31 AE Penyakit Pneumonia Pneumokokus P32 AF Penyakit Pneumonia Stafilokokus P33 AG Penyakit Sindroma Good Pasture P34 AH Penyakit Efusi Pleura
P35 AI Penyakit Polip Hidung
P36 AJ Penyakit Obstructive Sleep Apna (OSA)
Tabel 2. Daftar Kode Dan Gejala Penyakit
No Kode Gejala Gejala 01 G001 Demam 02 G002 Batuk 03 G003 Sesak Nafas
04 G004 Lelah
05 G005 Nafsu Makan Hilang / Berkurang 06 G006 Berat Badan Menurun
07 G007 Berkeringat 08 G008 Batuk Berdahak 09 G009 Dahak Berbau Busuk
10 G010 Nafas Berbunyi (Bengek) 11 G011 Rasa Sesak Di Dada
12 G012 Batuk Pendek-Pendekl 13 G013 Dada Terasa Penuh Dan Berbunyi 14 G014 Kesulitan Bernafas 15 G015 Batuk Tidak Berdahak / Batuk Kering 16 G016 Tenggorokan Gatal 17 G017 Suara Serak / Hilang 18 G018 Pilek / Flu
19 G019 Batuk Berlangsung Kurang Dari 3 Minggu
20 G020 Batuk Berlangsung Lebih Dari 3 Minggu
21 G021 Batuk Menahun dengan Banyak Dahak, berbau busuk
22 G022 Batuk Berat Jika Tidur Dalam Posisi Miring
23 G023 Clubbing Fingers 24 G024 Warna Kulit Kebiruan 25 G025 Bau Mulut 26 G026 Nafas Cepat
27 G027 Hidung Kembang Kempis 28 G028 Dahak Bewarna merah / Mengandung
Darah
29 G029 Pembengkakan Pergelangan, Tungkai Kaki
30 G030 Sakit Kepala 31 G031 Gangguan Penglihatan
32 G032 Rasa Tidak Enak Pada Hidung Dan Tenggorokan
33 G033 Bersin Bersin 34 G034 Hidung Meler 35 G035 Dahak Kehijauan, Berlendir 36 G036 Nyeri Dada 37 G037 Menggigil 38 G038 Mual, Muntah 39 G039 Tidak Enak Badan 40 G040 Sendi / Otot Kaku 41 G041 Kulit Lembab 42 G042 Batuk Darah 43 G043 Cemas, Stress, Tegang 44 G044 Ruam 45 G045 Diare 46 G046 Nyeri Sendi
47 G047 Rasa Tidak Enak Dan Terbakar Di Dada 48 G048 Haus Udara
49 G049 Batuk Lebih Dari 4 minggu 50 G050 Lemas
51 G051 Berkeringat Pada Malam Hari
52 G052 Berkurangnya Kemampuan untuk melakukan gerak badan
53 G053 Hidung Tampak Kemerahan 54 G054 Tekanan Darah Rendah
55 G055 Denyut Nadi Lemah
56 G056 Rasa Sakit Atau Adanya Tekanan Di Daerah Pipi, Hidung dan Antara Mata 57 G057 Hidung Mampet
58 G058 Berkurangnya Indra Penciuman 59 G059 Nafas Berbau 60 G060 Sakit Gigi
61 G061 Asma Yang Semakin Memburuk 62 G062 Gangguan Pernafasan 63 G063 Sering Haus 64 G064 Nyeri Tulang
65 G065 Tidak Bertenaga 66 G066 Dahak seperti agar-agar 67 G06i7 Gemetar
68 G068 Warna Dahak Seperti Karat 69 G069 Animea
70 G070 Dada terasa sempit 71 G071 Denyut Jantung Cepat 72 G072 Penyumbatan Hidung 73 G073 polip yang tumbuh di daerah sinus pada
rongga hidung
74 G074 Perasan tidak segar karena kurang tidur 75 G075 Sakti atau nyeri tenggorokan ketika
bangun Tidur
76 G076 Mengantuk berlebihan ketika siang hari 77 G077 Mendengkur dengan suara keras 78 G078 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.
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
login yang nantinya digunakan untuk mengakses
halaman admin.
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 :
3. Tabel Penyakit
Tabel penyakit digunakan untuk menyimpan semua daftar penyakit meliputi nama penyakit, definisi, penyebab, dan pengobatan.
Tabel 3. Struktur File “Tabel Penyakit”
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”
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
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 .
Tabel 7. Stuktur File “Tabel tpenyakit”
5. Perancangan Sistem
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
Use Case Diagram User
Gambar 4. Use case Diagram User
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.
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
Gambar 5. Use Case Diagram Admin
Activity Diagram Hasil Konsultasi Pasien
Gambar 6. Activity Diagram Hasil Konsultasi Pasien
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. System User Daftar Login Konsultasi Hasil Diagnosis System Admin Tambah Penyakit Edit Penyakit Hapus Penyakit Tambah Gejala Edit Gejala Hapus Gejala Tambah Relasi Edit Relasi Hapus Relasi
Lihat Hasil Konsultasi
Hapus Hasil Konsultasi
Admin Sistem
Halaman Admin
Menu Hasil Konsultasi
Halaman Hasil Konsultasi User
Detail Konsultasi Menentukan Kegiatan Yang Dilakukan
Pilih Data Yang Dihapus Proses Penghapusan Data Hapus
Pilih Data Hasil Konsultasi Lihat Hasil Konsultasi
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.
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.
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.
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
Pasien <<pk>>-Username: Varchar -Password: Varchar -Nama: Varchar -Alamat: varchar -Jenis kelamin: enum('P 'W') -Pekerjaan: Varchar Hasil <<pk>>-kd_hasil: varchar -username: varchar -kd_penyakit: varchar -tanggal: datetime tpenyakit <<PK>>-No: int -kd_penyakit: varchar 1 1..* Sementara -kd_gajala: varchar -kd_penyakit: varchar Penyakit <<pk>>-Kd_penyakit: Varchar -penyakit: varchar -Defenisi: text -Penyebab: Text -Pengobatan : Text Relasi -kd_penyakit: varchar -kd_gejala: varchar 1 * * 1 1 0..1 1 1 gejala <<PK>>-kd_gejala: Varchar -gejala: Varchar 1 1 Home Konsultasi Login Daftar Informasi Kesehatan Daftar Penyakit Detail Penyakit Bantuan Jawab Pertanyaan Hasil Diagnosis Logout