Anda di halaman 1dari 9

Aplikasi Sistem Pakar Untuk Mendiagnosa Gejala Penyakit Manusia

dengan SWI – Prolog


Muhammad Rifky Prayanta Muhammad Nurwiseso Wibisono
Fakultas Teknik Elektro Fakultas Teknik Elektro
Universitas Negeri Malang Universitas Negeri Malang
prayanta.rifky@gmail.com wibisono.ft@um.ac.id

Abstrak - Penyakit datang menyerang Gejala yang dimaksudkan dalam penitian ini
manusia, karena diantaranya tidak menjaga adalah gejala penyakit secara umum yang
kesehatan. Banyak juga yang tidak terjadi pada manusia, seperti gejala penyakit
memahami bagaimana penyakit itu dapat tipes, gejala demam berdarah, gejala TBC,
muncul, karena ketidakpahaman mengenai gejala alergi. Dimana didalamnya terdapat
jenis penyakit yang dideritanya. Maka dari berbagai macam dan variasi kondisi tertentu
itu, penelitian kali ini bertujuan membantu yang mengarah pada gejala penyakit tersebut.
pengguna khususnya bagi orang-orang yang Salah satu masalah yang dihadapi adalah
sedang mengalami sakit tertentu agar masyarakat kurang memahami terhadap
mengetahui gejala apa yang sedang gejala-gejala penyakit yang diderita. Maka
dialaminya. Metode yang digunakan dalam dari itu, sistem pakar ini membantu
penelitian ini adalah backward chaining masyarakat dalam memahami gejala apa saja
dimana lebih menekankan kepada ‘goal yang dapat terjadi dari penyakit yang
driven’ atau menjawab sebuah permasalahan. dideritanya.
Kata kunci : sistem pakar, gejala, II. DASAR TEORI
penyakit.
Tahun 1960, sistem pakar pertama kali
I. PENDAHULUAN dikembangkan oleh Artificial Intelligence
yang merupakan sebuah komunitas. General
Dewasa ini perkembangan dunia teknologi
Purpose Problem Solver yang dikembangkan
begitu cepat, manusia mampu untuk
oleh Newel dan Simon adalah sistem pakar
membuat sebuah teknologi dimana dapat
yang pertama kali muncul. Sistem pakar
mengidentifikasi gejala bahkan hingga
dirancang untuk menyelesaikan
penyakit yang akan diderita oleh penderita
permasalahan tertentu seperti yang
penyakit. Keberadaan sistem pakar tidak
dikerjakan oleh para ahli. [1]
lepas dari kedua hal tersebut. Sistem pakar
secara umum dikaitkan dengan kemampuan Konsep Dasar Sistem Pakar
dokter dalam mendiagnosa sebuah penyakit
Adapun menurut Efraim Turban, konsep
secara dini terhadap pasien. Disisi lain sistem
dasar sistem pakar merupakan : ahli,
pakar juga dapat memberikan sebuah edukasi
keahliam, inferensi aturan dan kemampuan
kepada masyarakat apabila sedang menderita
menjelaskan yang diperoleh dari latihan,
sebuah penyakit maka dapat dikategorikan ke
membaca ataupun pengalaman. Adapun
dalam gejala penyakit tertentu.
bentuk contoh pengetahuan yang termasuk
keahlian adalah :
a. Teori yang digunakan pada lingkup Backward Chaining
permasalah tertentu.
Sebuah strategi pencarian yang dimulai dari
b. Fakta-fakta yang digunakan pada
proses runtut mundur. Proses pencarian
lingkup permasalahan tertentu.
dimulai dari mengetahui tujuan, yaitu
c. Strategi yang digunakan untuk
kesimpulan yang menjadi sebuah solusi dari
menyelesaikan sebuah masalah
masalah yang sedang dihadapi. Mesin
d. Prosedur atau aturan yang digunakan
inferensi mencari kaidah-kaidah dalam basis
untuk menyelesaikan masalah dalam
pengetahuan yang kesimpulannya
lingkup tertentu.
merupakan solusi yang ingin dicapai,
e. Pengembangan tentang pengetahuan
kemudian dari kaidah-kaidah yang di
yang dimiliki.
peroleh, masing-masing kesimpulan di runut
balik jalur yang mengarah pada kesimpulan
Forward Chaining
tersebut. [3]
Sebuah teknik pencarian yang dimulai dari
Pengenalan Prolog
mencari sebuah fakta yang diketahui
kemudian mencocokkan fakta-fakta tersebut Programming in Logic atau yang dapat
dengan menggunakan aturan IF maupun IF – disingkat prolog dikembangkan oleh
THEN [6]. Bila terdapat sebuah fakta yang P.Roussel dan Alain Colmenraurer dari
cocok dengan bagian IF, maka rule yang ada Universitas Marseilles Perancis 1972. Di
didalamnya akan dilakukan sebuah eksekusi. Eropa prolog popular untuk aplikasi artificial
Bila sebuah rule tersebut dieskekusi maka intelligence, kemudian LISP peneliti dari
fakta yang dibuat akan ditambah ke database. Amerika sedang mengembangkan aplikasi
[2] Langkah – langkah dalam membuat sama. Adapun perbedaan bahasa Prolog
ssstem pakar dengan menggunakan metode dengan Bahasa Pemrograman Umum lainnya
forward chaining yaitu: (seperti : Basic, Pascal, C, Fortran), yaitu : [4]
[5]
a. menjelaskan masalah dimulai dengan
memilih domain masalah dan 1. Program tidak dapat menjalankan
pengatahuan prosedur yang sama berulangkali
b. menjelaskan dan mendefinisikan data dengan data yang berbeda-beda.
input untuk memulai inferensi karena 2. Tidak diperlukan sebuah algoritma /
diperlukan oleh sistem forward prosedur untuk memecahkan masalah
chaining. 3. Prosedur dan pengendalian program
c. Pendefenisian struktur pengendalian tidak ditentukan oleh programmer
data pendefinisian suatu aturan. dan perhitungan tidak dilakukan
d. Penulisan kode awal pengatahuan sesuai dengan prosedur yang telah
e. Pengujian sistem dapat mengatahui dibuat.
sejauh mana system berjalan
f. Perancangan antarmuka dengan basis
pengatahuan
g. Pengembangan sistem
h. Evaluasi sistem
III. PERANCANGAN SISTEM dianggap asing oleh tubuh. Bisa dianggap
berbahaya maupun tidak berbahaya. Alergi
Dalam perancangan sistem kali ini, metode
sendiri disebabkan oleh pemicu alergi yang
yang digunakan adalah metode backward
berupa gigitan serangga, bulu hewan, obat,
chaining. Dimana penelitian ini menentukan
makanan tertentu. Adapun gejala-gejala
tujuan kemudian merancang sistem sesuai
dalam alergi adalah bersin, batuk, mual dan
tujuan yang diinginkan. Sistem pakar
muntah dan terjadi ruam pada kulit.
diagnosa gejala penyakit manusia memiliki
data-data dari proses studi pustaka dari Jika dari penjelasan diatas dapat disimpulkan
berbagai literatur online. bahwa yang menjadi acuan dalam fakta
gejala digambarkan dalam tabel dibawah ini.
Menurut Honestdoc, penyakit tipes atau
demam tifoid adalah infeksi bakteri yang A B C D E
menyerang saluran pencernaan dan dapat Tipes v v v x x
mempengaruhi organ lain. Adapun bakteri DB v x x v x
yang menyerang penderita tipes adalah TBC v x x x v
salmonella typhi, bakteri makanan dan Alergi x v x v v
minuman. Hingga muncul gejala tipes.
Gejala ditandai dengan demam, diare atau Keterangan :
sembelit dan badan terasa pegal – pegal. A : Demam
Gejala penyakit kedua adalah demam B : Diare
berderah. Menurut halodoc, penyakit ini C : Pegal-pegal
adalah penyakit yang disebabkan oleh virus D : Mual dan Muntah
dengue dan disebabkan oleh nyamuk aides E : Batuk
aygepti. Secara umum, gejala ini ditandai
Analisis Prolog
dengan demam tinggi hingga 40 ℃, nafsu
makan menurun, mual dan muntah hingga Kumpulan-kumpulan data data objek yang
terjadi pendarahan pada hidung dan gusi. terdiri dari fakta adalah prolog. Sedangkan
aturan merupakan suatu pernyataan yang
Adapun penyakit ketiga adalah tuberkulosis.
menunjukkan bagaimana fakta dapat
Menurut, Alodokter, yang ditinjau dari dr.
berinteraksi dengan yang lain membentuk
Tjin Willy, tuberculosis adalah penyakit yang
sebuah relasi dalam satu kesimpulan. Setiap
menyerang paru-paru yang disebabkan
aturan terdiri dari kesimpulan (kepala) dan
kuman mycobacterium tuberculosis. Kuman
tubuh. Tubuh dapat terdiri dari 1 atau lebih
TBC tidak hanya menyerang paru-paru,
pernyataan atau aturan yang lain yang disebut
tetapi bias menyerang tulang, usus, dan
subgoal. Logika and dihubungkan dengan
kelenjar. Adapun gejala dari TBC adalah
yang lain antara sub goal yang memiliki sifat
demam, badan lemas, nyeri dada dan batuk
: kesimpulan menjadi benar jika dan hanya
berkepanjangan.
jika semua bagian tubuh tersebut benar.
Gejala penyakit terakhir adalah alergi. Dengan kata lain: kepala benar jika tubuh
Menurut, Alodokter yang ditinjau dari dr. benar. Adapun berikut adalah contoh dari
Marianti, alergi merupakan reaksi sistem penyakit dengan logika prolog :
kekebalan tubuh terhadap suatu hal yang
Domain Penyakit Tipes Domain Penyakit Tuberkulosis
Gejala : Penyakit tipes disebabkan oleh Gejala : penyakit tuberkulosis disebabkan
gejala-gejala sebagai berikut yaitu badan dari demam dan batuk
terasa demam, perut terasa diare, dan badan
Algoritma Penyakit Tuberkulosis
pegal – pegal
Jika(“Apakah anda merasa demam”)?
Algoritma Penyakit Tipes
Jawab : ya
Jika(“Apakah anda merasa demam”)? Jika(“Apakah anda merasa diare”)?
Jawab : ya Jawab : tidak.
Jika(“Apakah anda merasa diare”)? Jika(“Apakah anda merasa pegal-pegal”)?
Jawab : ya Jawab : tidak.
Jika(“Apakah anda merasa pegal-pegal”)? Jika(“Apakah anda merasa mual dan
Jawab : ya muntah”)?
Jika(“Apakah anda merasa mual dan Jawab : tidak.
muntah”)? Jika(“Apakah anda merasa batuk”)?
Jawab : tidak. Jawab : ya.
Jika(“Apakah anda merasa batuk”)? Maka, pasien didiagnosa gejala Tuberkulosis
Jawab : tidak.
Maka, pasien didiagnosa gejala Tipes. Domain Penyakit Alergi
Gejala : penyakit alergi disebabkan oleh
Domain Penyakit Demam Berdarah
diare, mual dan muntah, serta batuk
Gejala : penyakit demam berdarah
Algoritma Penyakit Alergi
disebabkan oleh demam dan mual dan
muntah Jika(“Apakah anda merasa demam”)?
Jawab : tidak
Algoritma Penyakit Demam Berdarah
Jika(“Apakah anda merasa diare”)?
Jika(“Apakah anda merasa demam”)? Jawab : ya.
Jawab : ya Jika(“Apakah anda merasa pegal-pegal”)?
Jika(“Apakah anda merasa diare”)? Jawab : tidak.
Jawab : tidak. Jika(“Apakah anda merasa mual dan
Jika(“Apakah anda merasa pegal-pegal”)? muntah”)?
Jawab : tidak. Jawab : ya.
Jika(“Apakah anda merasa mual dan Jika(“Apakah anda merasa batuk”)?
muntah”)? Jawab : ya.
Jawab : ya. Maka, pasien didiagnosa gejala Alergi.
Jika(“Apakah anda merasa batuk”)?
Jawab : tidak.
Maka, pasien didiagnosa gejala Demam
berdarah.
Perancangan Sistem Membuat fakta pertanyaan.
pertanyaan('Apakah anda merasa
demam?', demam).
Sistem yang dibuat dapat digambarkan
pertanyaan('Apakah anda merasa
melalui flowchart dibawah ini. diare?', diare).
pertanyaan('Apakah badan anda
pegal-pegal?', pegal).
pertanyaan('Apakah anda mual dan
muntah?', mual).
pertanyaan('Apakah anda batuk?',
batuk).

Fakta diatas adalah untuk menyimpan jenis


jenis pertanyaan dan menyimpan dalam
sebuah variabel dari masing-masing
pertanyaan.
Membuat aturan pengamatan.
Aturan pengamatan ini dibuat untuk
menyimpan variabel dari masing-masing
pertanyaan.
pengamatan :-
pertanyaan(Simpan,Observasi),
write(Simpan),nl,
read(Jawaban),
Jawaban=yes,

assert(observation(Observasi)),
fail.

pengamatan.

Membuat Aturan Penyakit


Aturan ini didefinisikan untuk mengetahui
jenis penyakit yang diderita berdasarkan
jawaban dari setiap pertanyaan yang ada.
Langkah Pembuatan Aplikasi aturan(1,tipes) :-
observation(demam),
Dalam implementasinya untuk membuat observation(diare),
sebuah program prolog diperlukan sebuah observation(pegal).
aturan(2, demam) :-
rancangan fakta, predikat klausa seperti yang
observation(demam),
dijelaskan dibawah ini. observation(mual).
aturan(3, tbc) :-
observation(demam),
observation(batuk).
aturan(4, alergi) :- IV. ANALISA HASIL PERCOBAAN
observation(diare),
observation(mual), Dari hasil metode perancangan sebelumnya
observation(batuk).
dibuatlah sebuah program yang digunakan
untuk mengimplementasikan kedalam
Membuat fakta jawaban.
program swi-prolog. Kemudian prolog akan
Dibawah ini adalah untuk mendefinisikan menjalan perintah-perintah yang sudah
jawaban dari variabel-variabel yang sudah didefinisikan sebelumnya. Setelah dijalankan
ditetapkan sebelumnya. perintah-perintah tersebut, maka dilakukan
jawaban(tipes, 'anda terkena analisa dari percobaan-percobaan pada
gejala tipes'). perintah main.
jawaban(demam, 'anda terkena
gejala demam berdarah'). Percobaan tersebut adalah pada penyakit
jawaban(tbc, 'anda terkena gejala tipes, yaitu terdapat lima percobaan jawaban.
TBC').
jawaban(alergi, 'anda terkena
Pertama jawaban ‘ya’ pada pertanyaan
gejala alergi'). demam, diare, pegal-pegal, mual dan muntah,
serta batuk. Kedua, jawaban ‘ya’ pada
pertanyaan demam, diare, pegal-pegal, mual
Membuat fungsi delete dan muntah. Ketika jawaban ‘ya’, pada
Fungsi delete digunakan untuk menghapus pertanyaan demam, diare, pegal-pegal.
penyimpanan sementara dari jawaban setiap Keempat, jawaban ‘ya’ pada pertanyaan
gejala penyakit. Sehingga program dapat demam dan diare. Serta jawaban ‘ya’ pada
dipakai seterusnya. pertanyaan demam. Tidak terdapat ketidak
cocokan data dengan fakta.
delete :-
retractall(observation(_)). Kemudian, pada penyakit selanjutnya yaitu
demam berdarah. Terdapat lima percobaan
Membuat fungsi main. jawaban. Pertama, jawaban ‘ya’ pada
pertanyaan mual dan muntah. Kedua,
Fungsi main dibawah ini adalah untuk
jawaban ‘ya’ pada pertanyaan pegal-pegal.
memanggil aturan pengamatan, aturan
Ketiga jawaban ‘ya’ pada pertanyaan diare.
penyakit, fakta jawaban dan menghapus
Keempat, jawaban ‘ya’ pada pertanyaan
fungsi penyimpanan sementara. Ketika
demam. Kelima, jawaban ‘ya’ pada
program dijalankan user hanya perlu
pertanyaan demam dan mual dan muntah.
memanggil fungsi main.
Terdapat ketidakcocokan data berdasarkan
main :- fakta atau anomali pada hasil dari percobaan
write('selamat datang'),nl,
write('tuliskan nama anda: '),
keempat. Yaitu jawaban penyakit tipes.
read(A),
write('Selamat datang
Penyakit tuberkulosis, terdapat lima
'),write(A),nl, percobaan jawaban. Pertama, jawaban ya
pengamatan,nl, pada batuk. Kedua, jawaban ya pada demam.
aturan(X,Y),
Ketiga jawaban ya pada demam dan batuk.
jawaban(Y,Z),
write(Z),nl, Keempat, jawaban ya pada. diare, pegal-
delete. pegal dan muntah. Kelima jawaban ya pada
pegal-pegal. Tidak terdapat ketidak cocokan serta dukungan penggunaan yang tidak hanya
data dengan fakta. terbatas pada program prolog, melainkan
pada program yang terkini seperti android
Penyakit alergi, terdapat lima percobaan
maupun web.
jawaban. Pertama jawaban ya pada
pertanyaan demam dan pegal pegal. Kedua, VI. DAFTAR PUSTAKA
jawaban ya pada pertanyaan diare, mual
[1] Turban, Efraim. 1995. Decision
muntah dan batuk. Ketiga jawaban ya pada
Support System and Expert System.
pertanyaan mual muntah dan batuk.
Prentice Hall International, New
Keempat, jawaban ya pada pertanyaan batuk.
Jersey.
Kelima jawaban ya pada diare. Terdapat
ketidakcocokan data berdasarkan fakta atau [2] Adi, Prasetyo, Surpiyanto Catur. 2015.
anomali pada hasil dari percobaan kedua. Analisis Metode Forward Chaining
Yaitu jawaban penyakit tipes. Dari percobaan Dalam Sistem Pakar Diagnosa
diatas dapat disimpulkan bahwa program ini Penyakit Pada Hewan Sapi. Teknik
memiliki tingkat 10% dari semua pertanyaan Informatika FIK Dinus, Semarang
dengan hasil diagnosa anomali.
[3] Herliana, Asti, Ade Setiawan, Visqia,
V. PENUTUP Tri Prasetyo, Rizki. 2018. Penerapan
Inferensi Backward Chaining Pada
Kesimpulan
Sistem Pakar Diagnosa Awal Penyakit
Setelah dilakukannya sebuah perancangan, Tulan. Jurnal Informatika BSI. Vol 5,
analisis dan pembahasan dapat disimpulkan pp. 50 – 60.
bahwa program ini dapat membantu
[4] Dwi Laksono, Satrio, 2012, Sistem
khususnya masyarakat awam dalam
Pakar untuk Mendiagnosa penyakit,
mengenal jenis-jenis penyakit yang
Universitas Gunadarma, Depok
dideritanya sehingga masyarakat awam dapat
lebih dini dalam menangani penyakitnya. [5] Febri Nova Lenti, Ibrahim, Ali, 2009,
Selain itu, program ini dapat mengedukasi Pemrograman Deklaratif Dengan
bagi masyarakat awam kodisi kondisi apa Visual Prolog, Graha Ilmu,
saja yang nantinya akan menimbulkan Yogyakarta.
sebuah penyakit tertentu. Selain itu, dengan
menggunakan metode backward chaining ini [6] Honestdoc. 2019. “Ciri-Ciri dan Gejala
sudah sesuai dengan kaidah karena lebih Tipes yang Mudah Dikenali”.
menekankan kepada tujuan atau hasil akhir. https://www.honestdocs.id/ciri-ciri-
dan-gejala-penyakit-tipes. Diakses 2
Saran Mei 2019 08.13
Dalam penelitian kali ini hanya terbatas [7] Halodoc. 2019. “Demam Berdarah”.
empat contoh, namun kedepannya https://www.halodoc.com/kesehatan/d
harapannya akan bertambah karena penyakit emam-berdarah. Diakses pada tanggal
manusia sendiri sangat beragam. Dengan 02 Mei 2019 8.15
menambahkan kondisi kondisi baru, penyakit
akan mudah didefinisikan. Selain itu, [8] Willy, Tjin. 2019. “TBC
pengembangan algoritma yang memadai (Tuberkulosis)”.https://www.alodokter
.com/tuberkulosis. Diakses pada
tanggal 2 Mei 2019.8.19
[9] Marianti. 2017. “Alergi”.
https://www.alodokter.com/alergi.
Diakses pada tanggal 2 Mei 2019.8.22
VII. Lampiran
Jalankan fungsi main.

Pada hasil percobaan diatas, program


menampilkan pertanyaan dan pengguna
diminta untuk menjawab ya dan tidak.
Pada hasil percobaan diatas, program Jawaban ya pada pertanyaan ‘apakah anda
menampilkan pertanyaan dan pengguna merasa demam?’, ‘apakah anda batuk?’
diminta untuk menjawab ya dan tidak. program akan mengenalinya sebagai gejala
Jawaban ya pada pertanyaan ‘apakah anda TBC.
merasa demam?’, ‘apakah anda merasa
demam?’, ‘apakah anda merasa pegal-
pegal?’, program akan mengenalinya sebagai
gejala tipes.

Pada hasil percobaan diatas, program


menampilkan pertanyaan dan pengguna
diminta untuk menjawab ya dan tidak.
Jawaban ya pada pertanyaan ‘apakah anda
Pada hasil percobaan diatas, program merasa diare?’, ‘apakah anda merasa mual
menampilkan pertanyaan dan pengguna dan muntah?’, ‘apakah anda batuk?’,
diminta untuk menjawab ya dan tidak. program akan mengenalinya sebagai gejala
Jawaban ya pada pertanyaan ‘apakah anda alergi.
merasa demam?’, ‘apakah anda batuk?’,
program akan mengenalinya sebagai gejala
demam berdarah.

Anda mungkin juga menyukai