Anda di halaman 1dari 33

SISTEM PENDETEKSIAN SWINE FLU BERBASIS MOBILE PHONEDENGAN MENGGUNAKAN MODEL BAYESIAN CLASIFICATION

I. PENDAHULUAN Swine Flu merupakan suatu penyakit yang berkembang saat ini. Ada ribuan orang meninggal karena terjangkit penyakit tersebut. Perlu adanya suatu metode untuk memprediksi penyakit yang sangat berbahaya ini sehingga dapat menurunkan biaya (of authentic tests) dan juga waktu. Secara klasikal Swine Flu merupakan suatu penyakit sejenis flu, yang sangat menular dan memiliki potensi penyebaran yang sangat cepat.Penyebaran penyakit ini umumnya menyebar melalui udara dan air. Swine Flu, lebih tepat disebut H1N1, adalah tipe baru dari virus influenza. Pada umumnya, Swine Flu adalah subtipe influenza H1N1 yang merupakan suatu penyakit yang sangat mematikan, dan penyebarannya sangat cepat. Untuk itu dierlukan suatu penanganan medis yang akurat untuk mendeteksi secara dini penyakit ini. Keputusan klinis sering dibuat berdasarkan intuisi dan pengalaman dokter, pendekatan ini mengakibatkan kesalahan yang tidak perlu dan meningkatnya biaya medis. Menurut praktisi medis, untuk membedakan antara Swine Flu dan flu biasa bisa dilakukan melalui tes patologis (uji usap dengan mengambil cairan dibagian nasofaring). Namun ada cara yang dapat dilakukan adalah dengan teknik menggali data dan mengekstrak pengetahuan dari data kasus yang ada dengan menggunakan teknik Bayesian Clasification. Cara ini sangat akurat digunakan untuk mendeteksi Swine Flu berdasarkan data gejala gejala klinis dari pasien yang tersimpan di dalam database. Tujuan utama dari penerapan teknik ini adalah untuk mendiagnosis Swine Flu dengan mengkelompokan menjadi 3 kategori yaitu A, B, & C melalui teknik yang disebut Bayesian classification. Teknik ini dapat menemukan dan mengekstraksi pengetahuan tersembunyi yang terkait dengan Swine Flu dari data historis pasien. II. ANALISIS KASUS Gejala gejala klinis yang digunakan dalam teknik ini adalah dari makalah jurnal IEEE yang berjudul Health Care Decision Support System For Swine Flu Prediction Using Nave Bayes Classifier yang ditulis oleh Binal A. Thakkar, Mosin I. Hasan dan
Mansi A. Desai pada tahun 2010. Adapun gejala gejala yang digunakan adalah sebagai berikut :

Demam (A) o Value:36 C -37 C o Value:38 C -39 C o Value:40 C -42 C) Nyeri badan (B) o Value: Tidak o Value: Jarang o Value: Sering

Tekanan Darah (C) o Value:Normal:120/80 o Value:Abnormal Warna Kuku (D) o Value: Pink o Value: Blue Sesak nafas (E) o Value: Tidak o Value: Sedang o Value:Berat Diare (F) o Value : Tidak o Value: Kadang-Kadang Muntah-Muntah (G) o Value: Tidak, o Value : Kadang Kadang Batuk (H) o Value : Tidak, o Value: Sedang, o Value : Berat Warna Kulit Biru (I) o Value: Tidak, o Value: Ya Sakit Tenggorokan (J) o Value : Tidak, o Value: Kadang-Kadang, o Value: Sering Menggigil (K) o Value : Tidak, o Value: Kadang-Kadang o Value: Sering Umur (L) o Value:0-18 Tahun o Value:18-30 Tahun, o Value:31-45 Tahun, o Value 3: Diatas 45 Jenis Kelamin (M) o Value: Laki-Laki o Value: Perempuan Sakit Paru (N) o Value: Tidak o Value:Ya Nyeri Dada (O) o Value: Tidak o Value: Ya Pandemik Area (P) o Value: Tidak

o Value: Ya Rekomendasi hasil dari diagnosa penyakit Swine Flu berdasarkan gejala gejala tersebut adalah Tes Medis dengan 3 nilai kategori: Positif (A) pasien sudah dapat dipastikan terjangkit virus Swine Flu berdasarkan gejala gejala klinis Tes Lab (B) pasien belum dapat dipastikan terjangkit virus Swine Flu, untuk memastikan disarankan untuk melakukan tes patologis Negatif (C) pasien sudah dipastikan tidak terjangkit virus Swine Flu, berdasarkan gejala gejala klinis Setelah diketahui parameter input dan output rekomendasi hasil, langkah berikutnya adalah memiliki simpanan informasi kasus-kasus yang telah diambil keputusannya dan berhasil. Berikut adalah contoh tabel berisi kasus-kasus yang tersimpan :

Tabel data kasus


ID PASIEN p16 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ID REKAP p16120424030432 p2120424030542 p3120424040741 p4120424030712 p5120424031014 p6120424033123 p7120424040825 p8120425050826 p9120425070851 p10120424031217 p11120424041219 p12120424052553 p13120425031253 p14120425081255 p15120424091024 A 40-42 40-42 38-39 40-42 38-39 40-42 38-39 40-42 40-42 38-39 38-39 40-42 36-37 38-39 36-37 B Sering Sering Sering Sering Sering Tidak Sering Jarang Jarang Tidak Tidak Sering Jarang Sering Tidak C Abnormal Abnormal Normal(120/80) Abnormal Abnormal Normal(120/80) Abnormal Normal(120/80) Normal(120/80) Normal(120/80) Normal(120/80) Abnormal Abnormal Normal(120/80) Normal(120/80) D Biru Biru Biru Biru Biru Biru Biru Biru Biru Pink Pink Biru Pink Pink Pink E Berat Berat Berat Berat Berat Sedang Sedang Sedang Tidak Sedang Tidak Tidak Sedang Berat Tidak F KadangKadang KadangKadang KadangKadang KadangKadang Tidak Tidak Tidak KadangKadang Tidak KadangKadang Tidak KadangKadang KadangKadang Tidak Tidak G KadangKadang Tidak KadangKadang KadangKadang Tidak KadangKadang Tidak KadangKadang KadangKadang Tidak Tidak KadangKadang KadangKadang Tidak Tidak H Berat Sedang Berat Sedang Berat Sedang Sedang Berat Sedang Sedang Berat Berat Tidak Berat Tidak I Ya Ya Ya Ya Ya Tidak Tidak Ya Ya Ya Tidak Ya Tidak Tidak Tidak J Sering Sering KadangKadang KadangKadang Sering Sering KadangKadang KadangKadang Sering KadangKadang Tidak KadangKadang KadangKadang Sering Tidak K Sering KadangKadang Sering KadangKadang Sering Sering KadangKadang KadangKadang KadangKadang Tidak Tidak Sering Tidak Tidak KadangKadang L Diatas:45 31-45 19-30 Diatas:45 0-18 Diatas:45 31-45 19-30 Diatas:45 0-18 31-45 19-30 Diatas:45 31-45 0-18 M Perempuan Perempuan Laki-Laki Laki-Laki Laki-Laki Perempuan Laki-Laki Perempuan Laki-Laki Perempuan Perempuan Laki-Laki Laki-Laki Perempuan Perempuan N Ya Ya Tidak Ya Tidak Ya Tidak Ya Ya Tidak Tidak Tidak Ya Ya Tidak O Ya Ya Ya Ya Ya Ya Tidak Ya Ya Tidak Ya Ya Tidak Ya Tidak P Ya Ya Ya Ya Ya Ya Tidak Ya Tidak Ya Tidak Tidak Tidak Ya Tidak TES MEDIS A A A A A B B A B B C B C B C

III. IMPLEMENTASI 1. Metode Representasi Metode representasi yang digunkan dalam kasus ini adalah metode representasi relasional. Yaitu dengan menggunakan relasi database dalam merepresentasikan data kasus diagnosis penyakit Swine Flu. Terdapat 5 objek yang digunakan dalam merepresentasikan data kasus ini, diantaranya : a. Objek data pasien Objek data pasien digunakan untuk menyimpan biodata pasien yang akan menggunakan sistem ini. Objek data pasien diimplementasikan ke dalam bentuk tabel pasien, seperti sintaks SQL berikut : -- ----------------------------- Table structure for t_pasien -- ---------------------------CREATE TABLE `t_pasien` ( `id_pasien` varchar(5) NOT NULL DEFAULT '', `nama` varchar(60) DEFAULT NULL, `alamat` varchar(80) DEFAULT NULL, `pass` varchar(10) DEFAULT NULL, PRIMARY KEY (`id_pasien`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Atribut id_pasien dijadikan sebagai atribut kunci utama (primary key) b. Objek data kasus Objek data kasus digunakan untuk menyimpan data kasus (case base) yang akan digunakan untuk proses pembelajaran awal dari sistem ini. Objek data kasus diimplementasikan ke dalam bentuk tabel kasus, seperti sintaks SQL berikut : -- ----------------------------- Table structure for t_kasus -- ---------------------------CREATE TABLE `t_kasus` ( `id_pasien` varchar(5) NOT NULL, `id_rekap` varchar(20) NOT NULL, `Demam` enum('40-42','38-39','36-37') DEFAULT NULL, `Nyeri_badan` enum('Sering','Jarang','Tidak') DEFAULT NULL, `Tekanan_Darah` enum('Abnormal','Normal(120/80)') DEFAULT NULL, `Warna_kuku` enum('Biru','Pink') DEFAULT NULL, `Sesak` enum('Berat','Sedang','Tidak') DEFAULT NULL, `Diare` enum('Kadang-Kadang','Tidak') DEFAULT NULL, `Muntah` enum('Kadang-Kadang','Tidak') DEFAULT NULL, `Batuk` enum('Berat','Sedang','Tidak') DEFAULT NULL, `Warna_kulit` enum('Ya','Tidak') DEFAULT NULL, `Sakit_tenggorokan` enum('Sering','Kadang-Kadang','Tidak') DEFAULT NULL, `Meriang` enum('Sering','Kadang-Kadang','Tidak') DEFAULT NULL, `Umur` enum('Diatas:45','31-45','19-30','0-18') DEFAULT NULL,

`Gender` enum('Perempuan','Laki-Laki') DEFAULT NULL, `Sakit_paru` enum('Ya','Tidak') DEFAULT NULL, `Nyeri_dada` enum('Ya','Tidak') DEFAULT NULL, `Pandemik` enum('Ya','Tidak') DEFAULT NULL, `Tes_Medis` enum('C','B','A') DEFAULT NULL, PRIMARY KEY (`id_rekap`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Atribut id rekap dijadikan sebagai atribut kunci utama (primary key) dan atribut id pasein merupakan atribut kunci tamu (foreign key) dari objek data pasien c. Objek probabilitas Objek probabilitas digunakan untuk menyimpan data nilai prior probabilitas setiap Tes Medis (A, B, C) terhadap semua kasus. Objek data probabilitas diimplementasikan ke dalam bentuk tabel prob, seperti sintaks SQL berikut : -- ----------------------------- Table structure for t_prob -- ---------------------------CREATE TABLE `t_prob` ( `tes_medis` varchar(5) NOT NULL DEFAULT '', `jumlah` varchar(5) DEFAULT NULL, `prob` varchar(300) DEFAULT NULL, PRIMARY KEY (`tes_medis`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Atribut tes medis dijadikan sebagai atribut kunci utama (primary key) d. Objek probabilitas1 Objek probabilitas1 digunakan untuk menyimpan data nilai probabilitas dari setiap gejala (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) medis terhadap masing masing tes medis (A, B, C). Objek ini juga digunakan untuk menyimpan indexing data kasus baru. Objek data probabilitas diimplementasikan ke dalam bentuk tabel prob1, seperti sintaks SQL berikut : -- ----------------------------- Table structure for t_prob1 -- ---------------------------CREATE TABLE `t_prob1` ( `id_rekap` varchar(20) DEFAULT NULL, `Gejala` varchar(30) DEFAULT NULL, `Nilai` varchar(30) DEFAULT NULL, `Tes_medis` varchar(5) DEFAULT NULL, `jumlah` varchar(5) DEFAULT NULL, `prob1` varchar(300) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Atribut id_rekap dijadikan atribut kunci tamu (foreign key) dari atribut data kasus.

e. Objek rekomendasi Objek rekomendasi digunakan untuk menyimpan data nilai rekomendasi tes medis (A, B, C) untuk setiap gejala medis (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P). Objek data rekomendasi diimplementasikan ke dalam bentuk tabel rekomendasi, seperti sintaks SQL berikut : -- ----------------------------- Table structure for t_rekomendasi -- ---------------------------CREATE TABLE `t_rekomendasi` ( `Id_rekap` varchar(20) DEFAULT NULL, `Tes_medis` varchar(5) DEFAULT NULL, `Rekomendasi` varchar(300) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Atribut id_rekap dan tes_medis dijadikan sebagai atribut kunci tamu (foreign key) dari tabel kasus dan tabel prob 2. Metode Indexing dan Retrive Metode indexing yang digunakan adalah metode Bayesian Indexing. Melalui proses indexing, maka proses retrive dapat dilakukan secara bersamaan, dengan mencari nilai rekomendasi tertinggi dari masing masing rekomendasi Tes Medis (A, B, C) Proses pembandingan kasus dalam perangkat lunak penalaran komputer berbasis kasus yang dilakukan penulis adalah menggunakan metode indexing dengan Bayesian modeling. Prosesnya dengan melakukan pengindexan berdasarkan parameter input yang ada dan dilakukan perhitungan matematis dengan menggunakan probabilitas yang terjadi untuk kasus yang dianggap serupa (Bayesian model). Adapun rumusan matematis Bayesian modeling adalah sebagai berikut : P (C i | X ) = P ( X | C i ) P (C i ) P ( X | C i ) P (C i ) = n P( X ) P ( X | C i ) P (C i )
i =1

Ket : Ci = Rekomendasi hasil ke-i X = Parameter input x P( ) = Nilai probabilitas Setelah perhitungan melalui model matematis di atas, jika probabilitas nilai X yang menunjuk pada rekomendasi suatu hasil lebih dari satu maka nilai probabilitas X tersebut dikalikan satu sama lainnya untuk mendapatkan nilai probabiltas gabungannya. Secara matematis ditulis : P( X | Ci ) = P( X j | Ci )
j =1 n

Setelah didapat nilai probabilitas masing-masing gabungan input terhadap rekomendasi hasil, berikutnya adalah mencari nilai probabilitas rekomendasi yang terbesar sebagai rekomendasi dari perangkat lunak. Secara matematis ditulis : P ( X | C j ) P (C j ) = max ( P ( X | C i ) P (C i ))
i

Berdasarkan data gejala yang tersimpan dan hasil diagnosa penyakit yang tampak pada tabel diatas, maka perangkat lunak dapat melakukan penalaran untuk pengambilan keputusan berdasarkan kasus lama yang telah tersimpan. Berikut akan ditunjukkan proses indexing bayesian model beserta perhitungannya sehingga dihasilkan sebuah rekomendasi diagnosa suatu penyakit. Contoh 1. Misalkan seseorang memiliki gejala gejala klinis seperti berikut: o Demam (A) Value:40 C -42 C o Nyeri badan (B) Value: Sering o Tekanan Darah (C) Value:Abnormal o Warna Kuku (D) Value: Biru o Sesak nafas (E) Value: Sedang o Diare (F) Value: Kadang-Kadang o Muntah-Muntah (G) Value : Kadang Kadang o Batuk (H) Value: Sedang, o Warna Kulit Biru (I) Value: Tidak o Sakit Tenggorokan (J) Value: Kadang-Kadang, o Menggigil (K) Value: Sering o Umur (L) Value:31-45 Tahun, o Jenis Kelamin (M) Value: Laki-Laki o Sakit Paru (N) Value:Ya o Nyeri Dada (O) Value: Ya o Pandemik Area (P) Value: Ya 2. maka Jika di-index-kan menurut database kasus pada tabel di atas, o Demam (A) Value:40 C-42 C berhubungan dengan Tes Medis A, B o Nyeri badan (B) Value: Sering berhubungan dengan Tes Medis A, B o Tekanan Darah (C) Value:Abnormal berhubungan dengan Tes Medis A, B, C o Warna Kuku (D) Value: Biru berhubungan dengan Tes Medis A, B o Sesak nafas (E) Value: Sedang berhubungan dengan Tes Medis A, B, C o Diare (F) Value: Kadang-Kadang berhubungan dengan Tes Medis A, B, C o Muntah-Muntah (G) Value : Kadang Kadang berhubungan dengan Tes Medis A, B, C o Batuk (H) Value: Sedang berhubungan dengan Tes Medis A, B o Warna Kulit Biru (I) Value: Tidak berhubungan dengan Tes Medis C, B

o Sakit Tenggorokan (J) Value: Kadang-Kadang berhubungan dengan Tes Medis A, B, C o Menggigil (K) Value: Sering berhubungan dengan Tes Medis A, B o Umur (L) Value:31-45 berhubungan dengan Tes Medis A,B,C o Jenis Kelamin (M) Value: Laki-Laki berhubungan dengan Tes Medis A, B, C o Sakit Paru (N) Value:Ya berhubungan dengan Tes Medis A, B, C o Nyeri Dada (O) Value: Ya berhubungan dengan Tes Medis A, B, C o Pandemik Area (P) Value: Ya berhubungan dengan Tes Medis A, B Data indexing ini disimpan di dalam tabel t_prob1 Langkah langkah perhitungan dari metode Bayesian Indexing adalah sebagai berikut : 1. Langkah 1 : Menentukan Probabilitas C P(Ci), i=1,2,3,4. Data dari perhitungan ini disimpan di dalam tabel t_prob | C1 | 6 P(C1)=P(rekomendasi Tes Medis A )= = = 0.4 | S | 15 | C2 | 6 P(C2)=P(rekomendasi Tes Medis B)= = = 0.4 | S | 12 | C3 | 3 P(C3)=P(rekomendasi Tes Medis C)= = = 0.2 | S | 12 2. Langkah 2: Menentukan Probabilitas X terhadap C P(Xj | Ci), i=1,2,3,4 dan j disesuaikan. Data dari perhitungan ini disimpan di dalam tabel t_prob1 a. Menentukan probabilitas setiap gejala terhadap rekomendasi Tes Medis A P(X1|C1)=P(Demam = 40C - 42C| 4 rekomendasi Tes Medis A)= = 0.667 6 P(X2|C1)=P(Nyeri Badan= Sering| 5 rekomendasi Tes Medis A)= = 0.833 6 P(X3|C1)=P(Tekanan Darah= Abnormal| 4 rekomendasi Tes Medis A)= = 0.667 6 P(X4|C1)=P(Warna Kuku =Biru | rekomendasi 6 Tes Medis A)= = 1 6 P(X5|C1)=P(Sesak Nafas = Sedang | 1 rekomendasi Tes Medis A )= = 0.167 6 P(X6|C1)=P(Diare = Kadang-Kadang | 5 rekomendasi Tes Medis A)= = 0.833 6

P(X7|C1)=P(Muntah-Muntah = Kadang 4 Kadang | rekomendasi Tes Medis A)= = 0.667 6 P(X8|C1)=P(Batuk=Sedang| rekomendasi Tes 2 Medis A)= = 0.333 6 P(X10|C1)=P(Sakit Tenggorokan = Kadang3 Kadang | rekomendasi Tes Medis A) = = 0.5 6 P(X11|C1)=P(Menggigil = Sering | 3 rekomendasi Tes Medis A)= = 0.5 6 P(X12|C1)=P(Umur= 31-45| rekomendasi Tes 1 Medis A)= = 0.167 6 P(X13|C1)=P(Jenis Kelamin= Laki-Laki| 3 rekomendasi Tes Medis A)= = 0.5 6 P(X14|C1)=P(Sakit Paru= Ya| rekomendasi Tes 4 Medis A)= = 0.667 6 P(X15|C1)=P(Nyeri Dada= Ya| rekomendasi 6 Tes Medis A)= = 1 6 P(X16|C1)=P(Pandemik Area= Ya| 6 rekomendasi Tes Medis A)= = 1 6 b. Menentukan probabilitas setiap gejala terhadap rekomendasi Tes Medis B P(X1|C2)=P(Demam = 40C - 42C| 3 rekomendasi Tes Medis B)= = 0.5 6 P(X2|C2)=P(Nyeri Badan= Sering| 3 rekomendasi Tes Medis B)= = 0.5 6 P(X3|C2)=P(Tekanan Darah= Abnormal| 2 rekomendasi Tes Medis B)= = 0.333 6 P(X4|C2)=P(Warna Kuku =Biru | rekomendasi 4 Tes Medis B)= = 0.667 6 P(X5|C2)=P(Sesak Nafas = Sedang | 3 rekomendasi Tes Medis B )= = 0.5 6

P(X6|C2)=P(Diare = Kadang-Kadang | 2 rekomendasi Tes Medis B)= = 0.333 6 P(X7|C2)=P(Muntah-Muntah = Kadang 3 Kadang | rekomendasi Tes Medis B)= = 0. 5 6 P(X8|C2)=P(Batuk=Sedang| rekomendasi Tes 4 Medis B)= = 0.667 6 P(X9|C2)=P(Warna Kulit Biru=Tidak| 3 rekomendasi Tes Medis B)= = 0.5 6 P(X10|C2)=P(Sakit Tenggorokan = Kadang3 Kadang | rekomendasi Tes Medis B) = = 0.5 6 P(X11|C2)=P(Menggigil = Sering | 2 rekomendasi Tes Medis B)= = 0.333 6 P(X12|C2)=P(Umur= 31-45| rekomendasi Tes 2 Medis B)= = 0.333 6 P(X13|C2)=P(Jenis Kelamin= Laki-Laki| 3 rekomendasi Tes Medis B)= = 0.5 6 P(X14|C2)=P(Sakit Paru= Ya| rekomendasi Tes 3 Medis B)= = 0.5 6 P(X15|C2)=P(Nyeri Dada= Ya| rekomendasi 4 Tes Medis B)= = 0.667 6 P(X16|C2)=P(Pandemik Area= Ya| 3 rekomendasi Tes Medis B)= = 0.5 6 c. Menentukan probabilitas setiap gejala terhadap rekomendasi Tes Medis C P(X3|C3)=P(Tekanan Darah= Abnormal| 1 rekomendasi Tes Medis C)= = 0.333 3 P(X5|C3)=P(Sesak Nafas = Sedang | 1 rekomendasi Tes Medis C )= = 0.333 3

P(X6|C3)=P(Diare = Kadang-Kadang | 1 rekomendasi Tes Medis C)= = 0.333 3 P(X7|C3)=P(Muntah-Muntah = Kadang 1 Kadang | rekomendasi Tes Medis C)= = 0.333 3 P(X9|C3)=P(Warna Kulit Biru=Tidak| 3 rekomendasi Tes Medis C)= = 1 3 P(X10|C3)=P(Sakit Tenggorokan = Kadang1 Kadang | rekomendasi Tes Medis C) = = 0.333 3 P(X12|C3)=P(Umur= 31-45| rekomendasi Tes 1 Medis C)= = 0.333 3 P(X13|C3)=P(Jenis Kelamin= Laki-Laki| 1 rekomendasi Tes Medis C)= = 0.333 3 P(X14|C3)=P(Sakit Paru= Ya| rekomendasi Tes 1 Medis C)= = 0.333 3 P(X15|C3)=P(Nyeri Dada= Ya| rekomendasi 1 Tes Medis C)= = 0.333 3 3. Langkah 3: Menghitung P ( X | C i ) = P ( X j | C i ) , i=1,2,3,4
j =1 n

dan j meneyesuaikan. P(X|C1) = P(X| rekomendasi Tes Medis A ) = 0.667 x 0.833 x 0.667 x 1 x 0.167 x 0.833 x 0. 667 x 0.333 x 0.5 x 0.5 x 0.167 x 0.5 x 0.667 x 1 x 1 = 0.1587 x 103 P(X|C2) = P(X| rekomendasi Tes Medis B ) = 0.5 x 0.5 x 0.333 x 0.667 x 0.5 x 0.333 x 0.5 x 0.667 x 0.5 x 0.5 x 0.333 x 0.333 x 0.5 x 0.5 x 0.667 x 0.5 = 0.071 x 103 P(X|C3) = P(X| rekomendasi Tes Medis C ) = 0.333 x 0.333 x 0.333 x 0.333 x 1 x 0.333 x 0.333 x 0.333 x 0.333 x 0.333 = 0.0503 x 103

4. Langkah 4: Menghitung dan Mencari Nilai Terbesar dari P(X | Ci) P(Ci), i=1,2,3,4. Data dari perhitungan ini disimpan di dalam tabel t_rekomendasi P(X | C1) P(C1)= 0.1587 x 103 * 0.4 = 0.0635065792816 x 103 P(X | C2) P(C2)= 0.071 x 103 * 0.4 = 0.00285779606767 x 103 P(X | C3) P(C3)= 0.0503 x 103 * 0.2 = 0.0101610526851 x 103

Pada langkah 4 proses retrive dilakukan dengan mencari nilai similarity (Maximum) dari masing masing rekomendasi Tes Medis (A, B, C) terhadap gejala dari kasus baru yang dimasukan. Dari ketiga nilai similarity yang ada, dapat disimpulkan bahwa seseorang (berdasarkan gejala gejala yang diinputkan) tersebut di diagnosis POSITIF terinfeksi penyakit swine flu dengan nilai probabilita 0.1587 x 103 3. Implementasi Program Implementasi sistem ini menggunakan bahasa pemrograman J2ME dan PHP. Untuk implementasi database kasus yang digunakan, menggunakan MySQL. Terdapat 2 subsistem dari aplikasi yang dirancang, diantaranya a. Aplikasi server Aplikasi ini berfungsi untuk menerima data dari aplikasi client (berbasis mobile phone) ke database. Aplikasi server tidak memiliki tampilan karena berfungsi sebagai penghubung antara aplikasi client dengan database. Implementasi dari sistem ini menggunakan bahasa pemrograman PHP, adapun source code dari aplikasi ini adalah sebagai berikut :
<?php mysql_connect("localhost","root",""); mysql_select_db("cbr"); //=========================================== === // bagian ini untuk menangani proses login pasien //=========================================== === if ($_REQUEST['c']=="login"){ $user_name = ereg_replace("~", $reg, $_REQUEST['user']); $password = ereg_replace("~", $reg, $_REQUEST['passwd']); $sql = "SELECT * FROM t_pasien "; $sql .= "WHERE id_pasien = '$user_name' and pass = '$password'"; $result = mysql_query($sql) ; $row = mysql_num_rows($result); if ($row > 0) { $www = mysql_query("select id_pasien,nama,alamat from t_pasien where I d_pasien='$user_name' "); $hasil= mysql_num_rows($www); if ($hasil == 0){ echo "0"; } else { while ($b=mysql_fetch_array($www)) echo "\nId Pasien :\n ".">>".$b["id_pasien"]."\nNama : \n".">>".$b["nama"]."\nAlamat : \n".">>". $b["alamat"]; } } else { echo "0"; } } //=========================================== ===

// bagian ini untuk menangani proses pengolahan data gejala pasien //=========================================== === if ($_REQUEST['c']=="gejala"){ $user_name = ereg_replace("~", $reg, $_REQUEST['user']); $demam = ereg_replace("~", $reg, $_REQUEST['demam']); $nyeri_badan = ereg_replace("~", $reg, $_REQUEST['nyeri_badan']); $tekanan_darah = ereg_replace("~", $reg, $_REQUEST['tekanan_darah']); $warna_kuku = ereg_replace("~", $reg, $_REQUEST['warna_kuku']); $sesak = ereg_replace("~", $reg, $_REQUEST['sesak']); $diare = ereg_replace("~", $reg, $_REQUEST['diare']); $muntah = ereg_replace("~", $reg, $_REQUEST['muntah']); $batuk = ereg_replace("~", $reg, $_REQUEST['batuk']); $warna_kulit = ereg_replace("~", $reg, $_REQUEST['warna_kulit']); $sakit_tenggorokan = ereg_replace("~", $reg, $_REQUEST['sakit_tenggorokan']); $meriang = ereg_replace("~", $reg, $_REQUEST['meriang']); $umur = ereg_replace("~", $reg, $_REQUEST['umur']); $gender = ereg_replace("~", $reg, $_REQUEST['gender']); $sakit_paru = ereg_replace("~", $reg, $_REQUEST['sakit_paru']); $nyeri_dada = ereg_replace("~", $reg, $_REQUEST['nyeri_dada']); $pandemik = ereg_replace("~", $reg, $_REQUEST['pandemik']); $date=date("ymdhms"); $id = $user_name.$date; $sql = "SELECT count(*) total FROM t_kasus "; $hasil = mysql_query($sql) or die(mysql_error()); $tes=mysql_fetch_array($hasil); $total=$tes["total"]; $row = mysql_num_rows($hasil); if ($row > 0) { /*Langkah 1 Menghitung probabilitas masing masing tes medis*/ $sql = "SELECT count(*) jumlah,(count(*)/$total) prob, tes_medis FROM t_kasus group by tes_medis"; $hasil = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil); if($row>0){ $i=0; $sql = "INSERT INTO t_prob (tes_medis,jumlah,prob) VALUES "; while($data=mysql_fetch_array($hasil)){ $sql.= ($i>0? ",": " ")."('".$data['tes_medis']."','". $data['jumlah']."','".$data['prob']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala demam */

$sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where demam='$demam' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql ="INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.=($i>0?",": " ")." ('$id','Demam','$demam','". $data['tes_medis']."','".$data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala nyeri badan */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where nyeri_badan='$nyeri_badan' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','nyeri_badan','$nyeri_badan','". $data['tes_medis']."','". $data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } probabilitas gejala tekanan_darah */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where tekanan_darah='$tekanan_darah' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){

/*

$sql.= ($i>0? ",": " ")."('$id','tekanan_darah','$tekanan_darah','". $data['tes_medis']."',' ".$data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala warna_kuku */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where warna_kuku='$warna_kuku' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','warna_kuku','$warna_kuku','". $data['tes_medis']."','" .$data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala sesak */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where sesak='$sesak' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','sesak','$sesak','". $data['tes_medis']."','" .$data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala diare */

$sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where diare='$diare' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','diare','$diare','". $data['tes_medis']."',' ".$data['jumlah']."','". $data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala muntah */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where muntah='$muntah' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','muntah','$muntah','". $data['tes_medis']."','". $data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala batuk */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where batuk='$batuk' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','batuk','$batuk','". $data['tes_medis']."','". $data['jumlah']."','".$data['prob1']."') ";

$no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala warna_kulit */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where warna_kulit='$warna_kulit' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','warna_kulit','$warna_kulit','". $data['tes_medis']." ','".$data['jumlah']."','". $data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } probabilitas gejala sakit_tenggorokan */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where sakit_tenggorokan='$sakit_tenggorokan' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','sakit_tenggorokan','$sakit_tenggorokan','" . $data['tes_medis']."','".$data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } probabilitas gejala meriang */

/*

/*

$sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where meriang='$meriang' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','meriang','$meriang','". $data['tes_medis']."','" .$data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala umur */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where umur='$umur' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','umur','$umur','". $data['tes_medis']."','".$data['jumlah']."','". $data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala gender */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where gender='$gender' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){

$sql.= ($i>0? ",": " ")."('$id','gender','$gender','". $data['tes_medis']."','". $data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala sakit_paru */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where sakit_paru='$sakit_paru' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','sakit_paru','$sakit_paru','". $data['tes_medis']."','". $data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); }

/*

probabilitas gejala nyeri_dada */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where nyeri_dada='$nyeri_dada' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','nyeri_dada','$nyeri_dada','". $data['tes_medis']."','". $data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* probabilitas gejala pandemik */ $sql = "SELECT count(*) as jumlah,(count(*)/b.jumlah) as prob1, a.tes_medis FROM t_kasus a, t_prob b where

pandemik='$pandemik' and a.tes_medis =b.tes_medis group by a.tes_medis"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $i=0; $sql = "INSERT INTO t_prob1(id_rekap,Gejala,Nilai,Tes_medis,jumlah, prob1) VALUES "; while($data=mysql_fetch_array($hasil1)){ $sql.= ($i>0? ",": " ")."('$id','pandemik','$pandemik','". $data['tes_medis']."','". $data['jumlah']."','".$data['prob1']."') "; $no .= $data["tes_medis"]; $i++; } mysql_query($sql); } /* menghitung semua gejala pada tes medis A*/ $sql = "select prob1,prob from t_prob1 a, t_prob b where a.tes_medis=b.tes_medis and a.tes_medis='A' and id_rekap='$id'"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $no1=1; while ((int)$data = mysql_fetch_array($hasil1)){ $no1 *= $data["prob1"]; $norek=$no1*1000*$data["prob"]; } $squel="INSERT INTO t_rekomendasi (id_rekap,tes_medis,rekomendasi) VALUES ('$id','A','$norek')"; mysql_query($squel); }else { echo "0"; } /* menghitung semua gejala pada tes medis B*/ $sql = "select prob1,prob from t_prob1 a, t_prob b where a.tes_medis=b.tes_medis and a.tes_medis='B' and id_rekap='$id'"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $no1=1; while ((int)$data = mysql_fetch_array($hasil1)){ $no1 *= $data["prob1"]; $norek=$no1*1000*$data["prob"]; } $squel="INSERT INTO t_rekomendasi (id_rekap,tes_medis,rekomendasi) VALUES ('$id','B','$norek')";

mysql_query($squel); } else { echo "0"; } /* menghitung semua gejala pada tes medis C*/ $sql = "select prob1,prob from t_prob1 a, t_prob b where a.tes_medis=b.tes_medis and a.tes_medis='C' and id_rekap='$id'"; $hasil1 = mysql_query($sql) or die(mysql_error()); $row=mysql_num_rows($hasil1); if($row>0){ $no1=1; while ((int)$data = mysql_fetch_array($hasil1)){ $no1 *= $data["prob1"]; $norek=$no1*1000*$data["prob"]; } $squel="INSERT INTO t_rekomendasi (id_rekap,tes_medis,rekomendasi) VALUES ('$id','C','$norek')"; mysql_query($squel); } else { echo "0"; }

//menghitung nilai max dari setiap tes medis dan menyimpan ke dalam tabel kasus $sql2 = "select tes_medis,rekomendasi from t_rekomendasi where id_rekap ='$id' order by rekomendasi desc limit 1"; $hasil2 = mysql_query($sql2) or die(mysql_error()); $row=mysql_num_rows($hasil2); $data=mysql_fetch_array($hasil2); $tes_rekomen=$data['tes_medis']; $nilai_rekomen=$data['rekomendasi']; if ($tes_rekomen==A) { $sql3 = mysql_query("select nama from t_pasien where id_pasien='$user_name' "); $hasil= mysql_num_rows($sql3); if ($hasil == 0){ echo "0"; } else { while ($b=mysql_fetch_array($sql3)) echo "Dari gejala yang dimasukan. Saudara ". $b["nama"]." dinyatakan POSITIF TERKENA FLUE BABI, dengan nilai kemungkinan sebesar ".$nilai_rekome } } else if ($tes_rekomen==B){ $sql3 = mysql_query("select nama from t_pasien where id_pasien='$user_name' "); $hasil= mysql_num_rows($sql3); if ($hasil == 0){ echo "0"; } else {

while ($b=mysql_fetch_array($sql3)) echo "Dari gejala yang dimasukan. Saudara ". $b["nama"]." disarankan untuk CEK LABORATORIUM, dengan nilai kemungkinan sebesar ".$nilai_rekomen; } }else { $sql3 = mysql_query("select nama from t_pasien where id_pasien='$user_name' "); $hasil= mysql_num_rows($sql3); if ($hasil == 0){ echo "0"; } else { while ($b=mysql_fetch_array($sql3)) echo "Dari gejala yang dimasukan. Saudara ".$b["nama"]." dinyatakan TIDAK TEKENA FLUE BABI, dengan nilai kemungkinan sebesar ".$nilai_rekomen; } } $squel4 ="INSERT INTO t_kasus (id_pasien,id_rekap,demam,nyeri_badan,tekanan_darah, warna_kuku,sesak,diare,muntah,batuk,warna_kulit,sakit_tenggo rokan,meriang,umur,gender,sakit_paru,nyeri_dada,pandemik,te s_medis) "; $squel4 .=" VALUES ('$user_name','$id','$demam','$nyeri_badan','$tekanan_darah', '$warna_kuku','$sesak','$diare','$muntah','$batuk','$warna_kulit' ,'$sakit_tenggorokan','$meriang','$umur','$gender','$sakit_paru' ,'$nyeri_dada','$pandemik','$tes_rekomen')"; $result = mysql_query($squel4) or die(mysql_error()) ; } else { echo "0"; } } ?>

b. Aplikasi Client Aplikasi client merupakan aplikasi yang berbasis mobile phone yang berfungsi mengirim data ke aplikasi server dan menerima data dari aplikasi server. Adapun source code implementasi aplikasi client berbasis J2ME adalah sebagai berikut :
import java.io.IOException; import java.io.InputStreamReader; import javax.microedition.io.Connector; import javax.microedition.io.HttpConnection; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /* @author wirawan */ public class MobileDiagnosis extends MIDlet implements CommandListener {

private boolean midletPaused = false; private String domain = "http://localhost/CBR/cbr.php?"; String demam,nyeri_badan, tekanan_darah,warna_kuku; String sesak, diare,muntah,batuk,warna_kulit,sakit_tenggorokan,meriang; String umur,gender,sakit_paru,nyeri_dada,pandemik ; String user, passwd; public void commandAction(Command command, Displayable displayable) { // write pre-action user code here if (displayable == fDataPribadi) { if (command == cmdGejala) { // write pre-action user code here switchDisplayable(null, getFGejala()); // write post-action user code here } else if (command == cmdLogOut) { // write pre-action user code here txtPass.setString(""); txtUser.setString(""); switchDisplayable(null, getFLogin()); // write post-action user code here } } else if (displayable == fDiagnosis) { if (command == cmdOK) { // write pre-action user code here switchDisplayable(null, getFDataPribadi()); // write post-action user code here } } else if (displayable == fGejala) { if (command == cmdDiagnosis) { // write pre-action user code here gejala l = new gejala(); l.setListener(this); l.start(); switchDisplayable(null, getFDiagnosis()); // write post-action user code here } else if (command == cmdKembali) { // write pre-action user code here switchDisplayable(null, getFDataPribadi()); // write post-action user code here } } else if (displayable == fLogin) { if (command == cmdKeluar2) { // write pre-action user code here exitMIDlet(); // write post-action user code here } else if (command == cmdLogin) { // write pre-action user code here login l = new login(); l.setListener(this); l.start(); // write post-action user code here } } else if (displayable == fWarning) {

if (command == cmdKembali1) { // write pre-action user code here switchDisplayable(null, getFLogin()); // write post-action user code here } } // write post-action user code here } //============================================= ================ //Method untuk proses mengirim data login menerima data biodata pasien //============================================= ================ public String Login(String u, String p) { HttpConnection conn = null; int responsecode; String and = "&"; String add = and + "user=" + user + and + "passwd=" + passwd; try { // Lakukan koneksi String url = domain + "c=login" + add; conn = (HttpConnection) Connector.open(url); int size = (int) conn.getLength(); StringBuffer tmp = new StringBuffer(size); InputStreamReader input = new InputStreamReader(conn.openInputStream()); char[] buffer = new char[size]; // Menampung pesan dari web server while ((input.read(buffer, 0, buffer.length)) != -1) { tmp.append(buffer); buffer = new char[size]; } input.close(); // Kembalikan hasilnya String result = tmp.toString(); return result; } catch (Exception er) { throw new IllegalArgumentException(er.getMessage()); } finally { // Tutup koneksi HTTP if (conn != null) { try { conn.close(); } catch (IOException ex) { ex.printStackTrace(); } } } } //============================================= ================

// class untuk proses mengirim data login dan menerima data biodata pasien //============================================= ================ class login extends Thread { private CommandListener listener; public void setListener(CommandListener cl) { listener = cl; } public void run() { String rs = ""; user = txtUser.getString(); passwd = txtPass.getString(); try { // Panggil method rs = Login(user, passwd); } catch (Exception err) { System.out.println(err); } finally { if (rs.equals("0")) { getDisplay().setCurrent(getFWarning()); strPeringatan.setText("Login salah"); } else { getDisplay().setCurrent(getFDataPribadi()); strPasien.setText(""); strPasien.setText(rs); } } } } //============================================= ======================== // Method untuk proses mengirim data gejala penyakit dan menerima data diagnosis // penyakit //============================================= ========================= public String Gejala(String user,String a,String b,String c ,String d ,String e ,String f ,String g,String h ,String i,String j,String k ,String l ,String m ,String n ,String o ,String p) { HttpConnection conn = null; int responsecode; String and = "&"; String add = and+"user="+user+and+"demam="+a+and+"nyeri_b adan="+b+ and+"tekanan_darah="+c+and+"warna_kuku="+d+an d+"sesak="+e+and+"diare="+f+and+"muntah="+g+ and+"batuk="+h+and+"warna_kulit="+i+and+"sakit_t enggorokan="+j+and+"meriang="+k+and+"umur="+l +and+"gender="+m+and+"sakit_paru="+n+and+"ny eri_dada="+o+and+"pandemik="+p ; try {

// Lakukan koneksi String url = domain+"c=gejala"+add; conn = (HttpConnection) Connector.open(url); int size = (int) conn.getLength(); StringBuffer tmp = new StringBuffer(size); InputStreamReader input = new InputStreamReader(conn.openInputStream()); char[] buffer = new char[size]; // Menampung pesan dari web server while ((input.read(buffer, 0, buffer.length)) != -1) { tmp.append(buffer); buffer = new char[size]; } input.close(); // Kembalikan hasilnya String result = tmp.toString(); return result; } catch (Exception er) { throw new IllegalArgumentException(er.getMessage()); } finally { // Tutup koneksi HTTP if (conn != null) { try { conn.close(); } catch (IOException ex) { ex.printStackTrace(); } } } } //============================================= =========================== // Class untuk untuk proses mengirim data gejala penyakit dan menerima data diagnosis // penyakit //============================================= =========================== class gejala extends Thread { String jawaban=""; private CommandListener listener; public void setListener(CommandListener cl) { listener = cl; } public void run() { String rs = ""; try { boolean selected[] = new boolean[cgDemam.size()]; cgDemam.getSelectedFlags(selected); demam= cgDemam.getString(cgDemam.getSelectedIndex()); boolean selected1[] = new boolean[cgNyeriBadan.size()]; cgNyeriBadan.getSelectedFlags(selected1);

nyeri_badan= cgNyeriBadan.getString(cgNyeriBadan.getSelectedIndex()); boolean selected2[] = new boolean[cgTekananDarah.size()]; cgTekananDarah.getSelectedFlags(selected2); tekanan_darah= cgTekananDarah.getString( cgTekananDarah.getSelectedIndex ()); boolean selected3[] = new boolean[cgWarnaKuku.size()]; cgWarnaKuku.getSelectedFlags(selected3); warna_kuku= cgWarnaKuku.getString(cgWarnaKuku.getSelectedIndex()); boolean selected4[] = new boolean[cgSesak.size()]; cgSesak.getSelectedFlags(selected4); sesak= cgSesak.getString(cgSesak.getSelectedIndex()); boolean selected5[] = new boolean[cdDiare.size()]; cdDiare.getSelectedFlags(selected5); diare= cdDiare.getString(cdDiare.getSelectedIndex()); boolean selected6[] = new boolean[cgMuntah.size()]; cgMuntah.getSelectedFlags(selected6); muntah= cgMuntah.getString(cgMuntah.getSelectedIndex()); boolean selected7[] = new boolean[cgBatuk.size()]; cgBatuk.getSelectedFlags(selected7); batuk= cgBatuk.getString(cgBatuk.getSelectedIndex()); boolean selected8[] = new boolean[cgKulit.size()]; cgKulit.getSelectedFlags(selected8); warna_kulit= cgKulit.getString(cgKulit.getSelectedIndex()); boolean selected9[] = new boolean[cgTenggorokan.size()]; cgTenggorokan.getSelectedFlags(selected9); sakit_tenggorokan= cgTenggorokan.getString( cgTenggorokan.getSelectedInde x()); boolean selected10[] = new boolean[cgMenggigil.size()]; cgMenggigil.getSelectedFlags(selected10); meriang= cgMenggigil.getString(cgMenggigil.getSelectedIndex()); boolean selected11[] = new boolean[cgUmur.size()]; cgUmur.getSelectedFlags(selected11); umur= cgUmur.getString(cgUmur.getSelectedIndex()); boolean selected12[] = new boolean[cgGender.size()]; cgGender.getSelectedFlags(selected12); gender= cgGender.getString(cgGender.getSelectedIndex()); boolean selected13[] = new boolean[cgSakitParu.size()]; cgSakitParu.getSelectedFlags(selected13); sakit_paru= cgSakitParu.getString(cgSakitParu.getSelectedIndex()); boolean selected14[] = new boolean[cgNyeriDada.size()]; cgNyeriDada.getSelectedFlags(selected14); nyeri_dada= cgNyeriDada.getString(cgNyeriDada.getSelectedIndex()); boolean selected15[] = new boolean[cgPandemik.size()]; cgPandemik.getSelectedFlags(selected15);

pandemik= cgPandemik.getString(cgPandemik.getSelectedIndex()); user = txtUser.getString(); rs = Gejala(user,demam,nyeri_badan,tekanan_darah,warna_kuk u,sesak ,diare,muntah,batuk,warna_kulit,sakit_tenggorokan,merian g,umur,gender,sakit_paru,nyeri_dada,pandemik); } catch (Exception err) { System.out.println(err); } finally { getDisplay().setCurrent(getFDiagnosis()); strPenyakit.setText(rs); } } } }

c. Tampilan dari aplikasi client berbasis mobile phone Aplikasi client dapat dijalankan pada perangkat handphone yang mendukung layanan java, dengan menginstall file .JAR dari aplikasi client. Aplikasi client terdiri dari beberapa tampilan menu, diantaranya : Form Login Form login berfungsi sebagai verifikasi data user sebelum menggunakan aplikasi diagnosa penyakit swine flu

Form Menu Utama Data Pasien Apabila verifikasi data yang dimasukan dinyatakan valid maka data biodata pasien akan ditampilkan pada form menu data pasien.

Form Gejala Klinis Untuk melakukan proses diagnosa klinis, pilih tombol Gejala sehingga akan muncul form gejala gejala klinis dari penyakit swine flu. Pasien diminta untuk mengisi setiap gejala yang disajikan.

Form Diagnosis Penyakit Setelah memasukan data gejala gejal klinis, klik tombol Diagnosis sehingga akan muncul form diagnosis. Form diagnosis berfungsi untuk menampilkan probabilitas penyakit dari pasien berdasarkan data gejala klinis yang sudah simasukan pada form gejala.

d. Tampilan tabel tabel yang digunakan dalam implementasi sistem Tabel Rekomendasi Tabel ini berfungsi untuk menyimpan data hasil perhitungan data dari tabel probabilitas1 dan tabel probabilitas untuk masing masing rekomendasi

Tabel Kasus Tabel ini berfungsi untuk menyimpan data kasus yang digunakan untuk proses learning sari sistem dan juga untuk menyimpan data kasus baru dari pasien.

Tabel Probabilitas1

Tabel ini berfungsi untuk menyimpan data nilai probabilitas setiap gejala gejala dari kasus baru.

Tabel Probabilitas Tabel ini berfungsi untuk menyimpan data probabilitas setiap rekomendasi Tes Medis terhadap semua kasus

TUGAS TAKE HOME PENALARAN KOMPUTER SISTEM PENDETEKSIAN SWINE FLU BERBASIS MOBILE PHONE DENGAN MENGGUNAKAN MODEL BAYESIAN CLASIFICATION

Oleh: I Made Agus Wirawan (323553) Kelas B Dosen Pengampu: Dra Sri Hartati M.Sc., Ph.D

PROGRAM PASCA SARJANA ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2012

Anda mungkin juga menyukai