1 PROYEK AKHIR PEMBANGUNAN SISTEM PAKAR PADA PERANGKAT MOBILE DENGAN WML DAN PHP UNTUK PENYAKIT PARU PADA ANAK DEASY ASTRID NATALIA NRP Dosen Pembimbi...
JURUSAN TEKNOLOGI INFORMASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA SURABAYA 2006
PEMBANGUNAN SISTEM PAKAR PADA PERANGKAT MOBILE DENGAN WML DAN PHP UNTUK PENYAKIT PARU PADA ANAK Oleh : Deasy Astrid Natalia 7403.030.037 Diajukan Sebagai Salah Satu Syarat untuk menyelesaikan Studi pada Program Pendidikan Diploma III di Politeknik Elektronika Negeri Surabaya-ITS Disetujui oleh : Tim Penguji Proyek Akhir : 1.
Dosen Penguji I
2.
Arna Fariza,S.Kom,M.Kom NIP : 132 233 198 Dosen Penguji II
Tita Karlita,S.Kom NIP: 132 300 680 Dosen Pembimbing II
Entin Martiana K,S.Kom NIP : 132 282 692
Tessy Badriyah, S.Kom,MT NIP : 132 297 020 Mengetahui, Ketua Jurusan Teknologi Informasi
Iwan Syarif, S.Kom, M.Kom NIP: 132 134 725
ABSTRAK Pada saat ini penggunaan teknologi perangkat mobile telah berkembang pesat dan memasyarakat. Sebagian besar masyarakat menggunakannya tidak hanya untuk kepentingan berkomunikasi saja, tetapi juga untuk mendapatkan informasi secara cepat dan efisien dengan aplikasi berorientasi internet melalui teknologi WAP. Perkembangan teknologi Kecerdasan Buatan yang terjadi telah memungkinkan Sistem Pakar untuk diaplikasikan penggunaannya dalam perangkat mobile dengan WML dan PHP. Salah satunya dalam pemberian informasi mengenai berbagai masalah kesehatan, terutama masalah kesehatan paru anak. Metode sistem pakar yang digunakan adalah forward dan backward chaining dengan pembuatan tree dari datadata penunjang. Dengan fasilitas yang diberikan untuk user dan administrator, memungkinkan baik user maupun administrator untuk menggunakan sistem ini sesuai kebutuhannya masing-masing. User diberi kemudahan dalam mengetahui informasi berbagai jenis penyakit paru anak dengan gejala-gejala klinisnya, informasi rumah sakit paru di beberapa daerah serta konsultasi layaknya dengan seorang dokter paru anak melalui beberapa pertanyaan yang harus dijawab user untuk mengetahui hasil diagnosanya. Sedangkan administrator dimudahkan dalam memanajemen sistem, baik proses tambah, hapus maupun update data terbaru. Tugas akhir ini diharapkan mampu memberikan informasi segala hal yang berhubungan dengan masalah kesehatan paru anak secara cepat dan efisien secara timbal baik antara user dan sistem tetapi tetap optimal meski dalam small device. Kata kunci : perangkat mobile, sistem pakar, forward dan backward chaining, WAP.
i
ABSTRACT The fast growing of device technology, making the possibility of accessing internet using mobile device easily. Most people not only use it for communicating, but also for getting information by WAP technology. The growing of Artificial Intelligence making the possibility of using an Expert System to be applicated into mobile device using WML and PHP. As example for giving information about medical problem, especially in children lunge disease. Forward and backward chaining by making a tree is an expert system method that used in this final project. Facility that has given to user and administrator, is possible for each user use this system in different needs. User can be able to know all information about kinds of children lunge disease and its symptoms, location of lunge hospital in several area, and consultation like a medical check with the doctor by answering the questions to know what is the diagnose. Otherwise, administrator can be able to manage the system, not only adding data, deleting but also updating the newest data. We expect that this final project can give all information related to children lunge disease easily and efficiently, but still optimal even in a small device. Keywords : mobile device, expert systems, forward and backward chaining, WAP.
ii
KATA PENGANTAR Puji dan syukur kami ucapkan ke hadirat Tuhan YME , yang telah memberikan rahmat dan berkat-Nya kepada kami sehingga dapat menyelesaikan Proyek Akhir ini tepat pada waktunya. Adapun judul Proyek Akhir ini adalah :
PEMBANGUNAN SISTEM PAKAR PADA PERANGKAT MOBILE DENGAN WML DAN PHP UNTUK PENYAKIT PARU PADA ANAK Proyek Akhir ini dibuat sebagai persyaratan kelulusan pada program studi di Politeknik Elektronika Negeri Surabaya jurusan Teknologi Informasi, Institut Teknologi Sepuluh Nopember, Surabaya. Kami menyadari sepenuhnya bahwa pembuatan Proyek Akhir ini masih jauh dari kesempurnaan, dikarenakan keterbatasan ilmu pengetahuan yang kami miliki. Oleh sebab itu kami berharap adanya saran dan kritik yang membangun sehingga dapat memperbaiki dan membenahi kekurangan-kekurangan yang ada. Akhir kata, semoga buku proyek akhir ini dapat memberi manfaat serta dapat digunakan sebagai salah satu referensi untuk pengembangan Proyek Akhir di kemudian hari dan dapat menjadi nilai tambah khususnya bagi penyusun dan umumnya bagi pembaca. Surabaya, Agustus 2006
Penyusun
iii
UCAPAN TERIMA KASIH Syukur ke hadirat Tuhan YME atas segala nikmat yang telah dilimpahkan. Kami menyadari bahwa terwujudnya proyek akhir ini tidak lepas dari bantuan, bimbingan doa serta dukungan dari berbagai pihak. Dengan segala kerendahan hati, keikhlasan dan ketulusan, kami ingin menyampaikan rasa terima kasih dan penghargaan yang sebesarbesarnya kepada : 1. My Lord, Jesu Christe, for giving me a beautiful life and beautiful world. Thanks for blessing, be with you I shall never fall. 2. Kedua Orang tua tercinta yang membesarkan kami dengan penuh kasih sayang, perjuangan dan pengorbanan serta doa yang selalu ditujukan demi kesuksesan ananda. 3. Kakak-kakakku yang cerewet tapi baik, makasih untuk segala ’sindirannya’, jadi motivator yang bagus buat bangkit. 4. Bapak Dr. Ir. Titon Dutono, M.Eng, selaku Direktur Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember. 5. Bu Tita Karlita, S.Kom dan Bu Entin Martiana K,S.Kom selaku dosen pembimbing yang telah meluangkan waktu untuk memberikan bimbingan, pengarahan, dorongan serta semangat sehingga kami dapat menyelesaikan Proyek Akhir ini. 6. Bapak Sritusta Sukaridhoto yang telah membantu proses pengupload-an proyek akhir ini, maaf Pak banyak merepotkan. 7. Alfante Syafa’at, the one who always giving me his trust for throughing these all. No words can say how much I thank to you, your patience, advice, love and understand will always be the greatest part in my live. I dedicated this for you just to fulfill my promise, and you can see now, I did it.“Ich werden dich immer Lieben, ich sehr verlangen. ” 8. My sisters, ‘Animal Kingdoms’ family, you are the greatest, I love you all. Wish you all the best. 9. Si papi, Ujang Fajar, yg selalu anterin aq pulang kalo kemaleman di kampus, pinjemin komputernya, nemenin beli roti ‘goyeng’, makan soto, ngehibur aq pas sedih or seneng, dan smuanya. Good luck for you bro’,I know u can do it. Thanks for everything, you are more than just my friend, my brother.
iv
10. Si Dodol, Doni, makasih ya uda jadi ’partner’ selama 3 tahun ini, bahkan bantuin benerin program ampe jam 2 pagi di lab TA. Wish u all the best bro’, you are so talented, it’s a blessing. 11. 79’s crew terutama penghuni lantai 3, baik bidadari (Nia, Pu3, Vbri, Ira, Silvie, Qq, Sophie ’pinguku’, Nupi) maupun bidadaranya (Koko, Aa’ yang jenius, Agung, Candra ’Parat’, Pras ’Bapet’, Arief ’Cak Ri’, Mboko, terutama Mas Yoga yang uda mau minjemin HP-nya tuk TAku), thanx ya uda ijinin aq, ‘penyelundup ilegal’, ngerasain susah n seneng bareng hadapin TA, kasih sayang kalian, smuanya yang gak bakal aq lupain seumur hidup. You are the best guys! 12. Para bidadari dan bidadara IT-B’03 lainnya, IT-A’03, D4 IT’03 lainnya, makasih banyak atas dukungan, semangat, dan persahabatan yang terjalin selama ini, semoga berakhirnya perkuliahan ini, bukan berarti berakhir pula persahabatan kita. Keep in contact yach, wherever and whenever you are! 13. Semua dosen, karyawan, mahasiswa-mahasiswi PENS-ITS ataupun semua pihak yang tidak dapat penyusun sebutkan satu-persatu, terima kasih atas segala bantuan, dukungan dan doanya. Penyusun menyadari bahwa “tak ada gading yang tak retak”, demikian juga dalam penyusunan buku proyek akhir ini, namun demikian penyusun berharap semoga buku ini dapat memberikan manfaat bagi kita semua. Surabaya, Agustus 2006
Penyusun
v
DAFTAR ISI ABSTRAK....................................................................................... KATA PENGANTAR..................................................................... UCAPAN TERIMA KASIH........................................................... DAFTAR ISI................................................................................... DAFTAR GAMBAR...................................................................... DAFTAR TABEL...........................................................................
i iii iv vi viii xi
BAB I PENDAHULUAN 1.1 Latar Belakang......................................................................... 1.2 Permasalahan........................................................................... 1.3 Batasan Masalah...................................................................... 1.4 Tujuan Proyek Akhir................................................................ 1.5 Metode Proyek Akhir............................................................... 1.6 Sistematika Pembahasan..........................................................
1 2 2 2 3 4
BAB II DASAR TEORI 2.1 Kecerdasan Buatan.................................................................... 2.2 Sistem Pakar.............................................................................. 2.2.1 Ciri-ciri Sistem Pakar...................................................... 2.2.2 Keuntungan Sistem Pakar............................................... 2.2.3 Kelemahan Sistem Pakar................................................. 2.2.2 Alasan Pengembangan Sistem Pakar............................... 2.2.3 Modul Penyusun Sistem Pakar........................................ 2.2.4 Struktur Sistem Pakar...................................................... 2.2.5 Teknik Representasi Pengetahuan................................... 2.2.6 Inferencing dengan Rule : Forward dan Backward Chaining............................................................................ 2.3 Wireless Application Protocol (WAP)...................................... 2.3.1 Apa itu WAP?.................................................................. 2.3.2 Mengembangkan Aplikasi WAP..................................... 2.3.2.1 Pengembangan Aplikasi WAP dengan PHP.......... 2.3.2.2 Interaksi PHP dengan MySQL BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT LUNAK 3.1 Rancangan Umum……………………………………………. 3.2 Uraian Perancangan Sistem...................................................... 3.2.1 Perancangan Data.............................................................
vi
6 6 7 7 8 8 8 9 10 11 11 12 12 16 18
19 20 20
3.2.1.1 Data-Data Penyakit dan Gejala Klinisnya.............. 3.2.1.2 Penyusunan Basis Data........................................... 3.2.1.2.1 Pembuatan Tabel..................................... 3.2.1.2.2 Pembuatan Relasi Antar Tabel................ 3.2.2 Perancangan Proses........................................................ 3.2.2.1 Diagram Alir Sistem............................................. 3.2.2.2 Fungsi-fungsi yang Digunakan dalam Sistem....... 3.2.3 Perancangan AntarMuka................................................ 3.2.3.1 Pembuatan Tree..................................................... 3.2.3.2 Struktur Data yang digunakan............................... 3.2.3.3 Blok Arsitektur Sistem.......................................... 3.2.3.3 Desain Homepage.................................................. 3.2.3.4 Implementasi Sistem..............................................
24 25 28 29 29 36 39 39 41 41 42 43
BAB IV PENGUJIAN DAN ANALISA 4.1 Pengujian Umum ...................................................................... 4.2 Pengujian Sistem....................................................................... 4.2.1 Pengujian Sistem User..................................................... 4.2.1.1 Pengujian Proses Forward..................................... 4.2.1.2 Pengujian Proses Backward.................................. 4.2.2 Pengujian Sistem Admin................................................. 4.2.2.1 Tambah Data……………………………………. 4.2.2.2 Hapus Data............................................................ 4.2.2.3 Update Data.......................................................... 4.3 Analisa Program.......................................................................
45 45 47 49 51 53 55 60 63 68
BAB V PENUTUP 5.1 Simpulan................................................................................... 5.2 Saran.........................................................................................
71 71
DAFTAR PUSTAKA LAMPIRAN BIODATA PENYUSUN
vii
DAFTAR GAMBAR Gambar 2.1 Gambar 2.2 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 3.8 Gambar 3.9 Gambar 3.10 Gambar 3.11 Gambar 3.12 Gambar 3.13 Gambar 3.14 Gambar 3.15 Gambar 3.16 Gambar 3.17 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Gambar 4.13 Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17 Gambar 4.18
Diagram network pada WAP.................................. Proses komunikasi browser nirkabel dengan nirkabel...................................................................... Struktur tabel penyakit.............................................. Struktur tabel gejala.................................................. Struktur tabel gejala_penyakit.................................. Struktur tabel pertanyaan......................................... Relationship antar tabel............................................ Diagram alir sistem user........................................... Diagram alir manajemen sistem............................... Diagram alir mode edit tambah data........................ Diagram alir mode edit hapus data.......................... Diagram alir mode edit update data......................... Tampilan proses sistem pakar.................................. Blok Arsitekstur Sistem........................................... Desain Homepage Sistem......................................... Halaman Utama........................................................ Halaman Login......................................................... Menu Utama User.................................................... Menu Utama Admin................................................. Tampilan halaman utama pada emulator WAP........ Tampilan pesan error pada command prompt.......... Tampilan halaman utama pada perangkat mobile.... Tampilan halaman utama lanjutan pada perangkat mobile....................................................................... Halaman login.......................................................... Menu Utama User Umum......................................... Halaman utama menu Lokasi Rumah Sakit Paru..... Pilihan daerah Lokasi Rumah Sakit Paru................. Informasi Lokasi Rumah Sakit Paru........................ Halaman Utama menu Konsultasi Penyakit............ Tampilan pertanyaan 1 Konsultasi Penyakit............ Menu jawaban pertanyaan....................................... Tampilan pertanyaan 2 Konsultasi Penyakit........... Hasil kesimpulan diagnosa penyakit....................... Halaman Utama menu Macam Penyakit................. Tampilan pilihan Macam Penyakit.......................... Tampilan pilihan Macam Penyakit lanjutan............. Hasil informasi gejala dari suatu penyakit................
Gambar 4.19 Gambar 4.20 Gambar 4.21 Gambar 4.22 Gambar 4.23 Gambar 4.24 Gambar 4.25 Gambar 4.26 Gambar 4.27 Gambar 4.28 Gambar 4.29 Gambar 4.30 Gambar 4.31 Gambar 4.32 Gambar 4.33 Gambar 4.34 Gambar 4.35 Gambar 4.36 Gambar 4.37 Gambar 4.38 Gambar 4.39 Gambar 4.40 Gambar 4.41 Gambar 4.42 Gambar 4.43 Gambar 4.44 Gambar 4.45 Gambar 4.46 Gambar 4.47 Gambar 4.48 Gambar 4.49 Gambar 4.50 Gambar 4.51 Gambar 4.52 Gambar 4.53 Gambar 4.54
Menu jawaban why dalam pilihan jawaban.............. Hasil informasi akses menu why.............................. Halaman login admin............................................... Tampilan halaman login admin................................ Tampilan pesan jika password salah........................ Tampilan pesan jika password benar....................... Pilihan proses edit admin......................................... Pilihan proses tambah data....................................... Pilihan tambah gejala pada penyakit tertentu........... Pilihan tambah gejala pada penyakit tertentu lanjutan...................................................................... Informasi data gejala sebelum ditambahkan............. ID gejala baru............................................................ Nama gejala baru...................................................... Urutan pertanyaan gejala baru.................................. Informasi sistem jika berhasil ditambahkan............. Gejala penyakit baru berhasil ditambahkan............. Informasi ID dan jenis penyakit yang ada................ ID dan nama penyakit yang ditambahkan................ Tampilan pesan sistem jika proses tambah berhasil Halaman hasil proses tambah penyakit.................... Proses pemberian ID dan nama gejala pada penyakit baru............................................................ Tampilan pesan sistem jika proses insert berhasil.... Halaman hasil penambahan gejala penyakit baru..... Pilihan proses delete data.......................................... Informasi semua gejala beserta IDnya...................... Menuliskan ID gejala yang akan dihapus................. Halaman hasil delete gejala....................................... Informasi semua jenis penyakit paru anak serta IDnya......................................................................... Menuliskan ID penyakit yang akan dihapus............. Tampilan pesan jika proses delete data berhasil....... Pilihan proses update data......................................... Pilihan proses update data......................................... Informasi semua ID dan gejala yang ada.................. Informasi semua ID dan gejala sebelum ditambahkan.............................................................. ID gejala yang dipilih............................................... Nama gejala sebelum di-edit....................................
Gambar 4.55 Gambar 4.56 Gambar 4.57 Gambar 4.58 Gambar 4.59 Gambar 4.60 Gambar 4.61 Gambar 4.62 Gambar 4.63
Nama gejala yang baru............................................. Pesan yang ditampilkan jika berhasil update............ Halaman hasil update gejala..................................... Informasi semua nama penyakit beserta IDnya........ ID penyakit yang akan di-edit................................... Nama penyakit sebelum di-edit................................. Nama penyakit yang di-edit...................................... Tampilan pesan jika proses update berhasil.............. Halaman hasil proses update nama penyakit............
x
66 66 66 67 67 67 68 68 68
DAFTAR TABEL Tabel 1. Tabel penyakit ………………………………………….. Tabel 2. Tabel gejala_penyakit....................................................... Tabel 3. Tabel penyakit…………………………………………... Tabel 4. Tabel pertanyaan………………………………………...
xi
25 26 27 28
BAB I PENDAHULUAN
1.1 LATAR BELAKANG Dengan adanya kemajuan teknologi yang semakin pesat, berpengaruh pula pada perkembangan perangkat mobile saat ini, sehingga penggunaan perangkat mobile semakin memasyarakat. Perkembangan ini sangatlah membantu dalam menyajikan informasi yang cepat dan efisien dengan pengaksesan internet melalui perangkat mobile tersebut. Meski perangkat mobile merupakan small device dengan layar penyajian yang sangat terbatas, tetapi penyajian informasinya pun tidak kalah optimal layaknya informasi yang diakses dari personal computer, tergantung bagaimana cara penyajiannya. 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 yang dimasukkan oleh satu atau banyak pakar ke dalam satu area pengetahuan tertentu sehingga setiap orang dapat menggunakannya untuk memecahkan berbagai masalah yang bersifat spesifik, dalam hal ini adalah permasalahan kesehatan paru anak. Kesehatan anak adalah dambaan setiap orang tua dalam setiap keluarga, terlebih mengingat usia anak-anak yang rentan terhadap penyakit merupakan ketakutan tersendiri bagi orang tua. Ketakutan ini bukanlah tanpa alasan, karena terkadang kesibukan orang tua menyebabkan keterlambatan penanganan kesehatan anak sehingga banyak penderita paru berusia anak-anak berjatuhan bahkan meninggal dunia. Kebutuhan informasi yang cepat dan tepat dari seorang pakar kesehatan anak sangatlah dibutuhkan. Hal inilah yang mendorong pembangunan sebuah sistem pakar kesehatan paru anak untuk diwujudkan. Penyampaian informasi pun dilakukan menggunakan perangkat mobile dengan meminta request dari user. Request tersebut akan diproses dalam sistem, kemudian hasilnya akan dikirim lagi ke user dengan ditampilkan pada layar perangkat mobile. Diharapkan sistem ini
1
mampu memberikan informasi yang optimal dengan timbal balik dari user dan sistem. 1.2 PERMASALAHAN Permasalahan yang timbul dari pembuatan proyek akhir ini adalah : • Bagaimana cara membuat sistem pakar menggunakan tree dari data-data penyakit paru pada anak. • Bagaimana cara memanage sistem (mengedit, menghapus ataupun menambahkan data) di dalam sistem pakar. • Bagaimana cara menyajikan informasi tersebut secara optimal dan cocok untuk ditampilkan ke dalam small device. 1.3. BATASAN MASALAH Batasan-batasan maslah yang digunakan dalam proyek akhir ini adalah : • Data-data penunjang penyakit paru yang digunakan hanya pada usia anak-anak saja. • Perangkat mobile yang digunakan adalah handphone ataupun PDA phone. • Pembangunan sistem pakar menggunakan tree dengan metode inferensi forward dan backward chaining dari data-data penunjang. • Penyimpanan data-data penunjang menggunakan database MySQL. • Interaksi antara program dan user menggunakan pertanyaan yang diberikan melalui proses dialog yang memerlukan jawaban ya atau tidak dari user. • Bahasa pemrograman yang digunakan menggunakan WML dan PHP. 1.4 TUJUAN PROYEK AKHIR Proyek akhir ini bertujuan untuk membangun sebuah sistem berbasis pengetahuan kedokteran dalam mendiagnosa penyakit paru pada anak yang dapat ditampilkan dalam perangkat mobile, sehingga alasan efisiensi waktu dan kurangnya pengetahuan masyarakat akan kesehatan anak dapat teratasi.
2
1.5 METODE PROYEK AKHIR Dalam pembuatan proyek akhir ini meliputi langkah-langkah sebagai berikut : • Studi literatur. Dilakukan studi literatur atau tinjauan pustaka tentang konsep dan teori dasar sistem pakar serta pengembangan program WAP. • Pengumpulan data. Melakukan proses pencarian data-data penunjang mengenai gejala klinis jenis-jenis penyakit paru anak yang diperoleh dari survei dan studi pustaka ilmu kesehatan anak. • Perencanaan sistem. Perencanaan pembuatan sistem meliputi perencanaan sistem pakar dalam perancangan tree serta menyusun rule-rule dan konklusi. • Penyusunan basis data. Data-data penunjang yang didapatkan berupa suatu kesimpulan, fakta-fakta dan aturan yang mengatur proses pencarian data yang saling berhubungan satu sama lain disimpan ke dalam basis data MySQL sebagai media penyimpanan. • Pembuatan program komputer yang meliputi pembuatan antar muka dan mesin inferensi. Pembuatan program dilakukan menggunakan pemrograman WAP dengan WML dan PHP sebagai aplikasi dalam menampilkan sistem pakar tersebut ke dalam perangkat mobile. • Uji coba sistem. Pengujian sistem yang telah dibuat dengan menggunakan emulator WAP ataupun perangkat mobile secara langsung. • Perbaikan/penambahan data. Setelah sistem diuji coba dan terjadi beberapa kekurangan/kelemahan, maka perlu diperbaiki atau diedit lagi data-data yang ada sehingga sistem yang dibuat lebih bersifat valid lagi hasilnya. •
Analisa.
3
•
Dari pengujian sistem dan perbaikan/penambahan data dibuat analisa sistemnya apakah bekerja seperti yang direncanakan. Simpulan. Dibuat kesimpulan dari pengujian sistem proyek akhir dengan membandingkan apakah hasilnya seperti yang diharapkan pada tujuan proyek akhir sebelumnya.
1.6 SISTEMATIKA PEMBAHASAN Sistematika pembahasan yang akan diuraikan dalam buku laporan proyek akhir ini terbagi dalam beberapa bab yang akan dibahas sebagai berikut : BAB I : Pendahuluan. Bab ini menjelaskan secara umum mengenai latar belakang masalah, permasalahan dengan batasan-batasan masalah ang digunakan, tujuan, metode serta sistematika pembahasan proyek akhir ini. BAB II : Teori Penunjang. Bab ini berisi dasar-dasar teoritis kecerdasan buatan dan sistem pakar untuk melandasi pemecahan masalah serta teoriteori sehubungan dengan Wireless Application Protocol (WAP) sebagai teknologi yang digunakan dalam pembuatan proyek akhir ini. BAB III : Perancangan dan Pembuatan Perangkat Lunak. Bab ini membahas tentang perancangan umum maupun uraian lebih lanjut mengenai perancangan sistem dalam pembuatan perangkat lunak. Uraian perancangan sistem ini meliputi perancangan data mengenai data input dan output sistem, perancangan proses mengenai bagaimana sistem akan bekerja dengan proses-proses tertentu, maupun perancangan antar muka dalam desain dan implementasi yang akan digunakan dalam pembuatan proyek akhir ini. BAB IV : Pengujian dan Analisa. Bab ini menjelaskan tentang pengujian sistem secara umum maupun terperinci. Pengujian sistem secara umum akan membahas mengenai lingkungan uji coba untuk
4
menggunakan sistem ini. Selanjutnya secara lebih terperinci dijelaskan dalam pengujian sistem meliputi skenario pengujian baik user umum maupun admin, beserta langkahlangkah dalam uji coba sistem. Dari seluruh hasil uji coba tersebut, kemudian dianalisa kembali apakah telah sesuai dengan tujuan pembuatan pada bab I. BAB V : Penutup Bab ini berisi simpulan yang telah didapatkan dari hasil uji coba sistem dan analisanya mengenai keterkaitan dengan tujuan pembuatan sistem, dan selanjutnya akan dikemukakan saran-saran mengenai penggunaan sistem serta bahan masukan dari penulis bagi rencana pengembangan proyek akhir untuk masa yang akan datang.
5
BAB II TEORI PENUNJANG
2.1 KECERDASAN BUATAN Kecerdasan Buatan adalah ide-ide untuk membuat suatu perangkat lunak komputer yang memiliki kecerdasan sehingga perangkat lunak komputer tersebut dapat melakukan suatu pekerjaan yang dilakukan oleh manusia. Adapun pekerjaan itu adalah berupa konsultasi yang dapat memberikan suatu informasi berupa saran-saran yang akan sangat berguna. Kecerdasan Buatan memungkinkan komputer untuk berpikir dengan cara menyederhanakan program. Dengan cara ini, Kecerdasan Buatan dapat menirukan proses belajar manusia sehingga informasi baru dapat diserap dan digunakan sebagai acuan di masa-masa mendatang. Kecerdasan atau kepandaian itu didapat berdasarkan pengetahuan dan pengalaman, untuk itu agar perangkat lunak yang dikembangkan dapat mempunyai kecerdasan maka perngakat lunak tersebut harus diberi suatu pengetahuan dan kemampuan untuk menalar dari pengetahuan yang telah didapat dalam menemukan solusi atau kesimpulan layaknya seorang pakar dalam bidang tertentu yang bersifat spesifik. Kecerdasan Buatan menawarkan media dan uji teori kecerdasan. Teori ini dapat dinyatakan dalam bahasa program komputer dan dibuktikan melalui eksekusinya pada komputer nyata. 2.2. SISTEM PAKAR Secara umum, sistem pakar adalah sistem yang berusaha mengadopsi pengetahuan manusia ke komputer yang dirancang untuk memodelkan kemampuan menyelesaikan masalah seperti layaknya seorang pakar. Dengan sistem pakar ini, orang awam pun dapat menyelesaikan masalahnya atau hanya sekedar mencari suatu informasi berkualitas yang sebenarnya hanya dapat diperoleh dengan bantuan para ahli di bidangnya. Sistem pakar ini juga akan dapat membantu aktivitas
6
para pakar sebagai asisten yang berpengalaman dan mempunyai asisten yang berpengalaman dan mempunyai pengetahuan yang dibutuhkan. Dalam penyusunannya, sistem pakar mengkombinasikan kaidah-kaidah penarikan kesimpulan (inference rules) dengan basis pengetahuan tertentu yang diberikan oleh satu atau lebih pakar dalam bidang tertentu. Kombinasi dari kedua hal tersebut disimpan dalam komputer, yang selanjutnya digunakan dalam proses pengambilan keputusan untuk penyelesaian masalah tertentu. 2.2.1 Ciri-Ciri Sistem Pakar Sistem pakar yang baik harus memenuhi ciri-ciri sebagai berikut : • Memiliki informasi yang handal. • Mudah dimodifikasi. • Dapat digunakan dalam berbagai jenis komputer. • Memiliki kemampuan untuk belajar beradaptasi. 2.2.2 Keuntungan Sistem Pakar Secara garis besar, banyak manfaat yang dapat diambil dengan adanya sistem pakar, antara lain : 1. Memungkinkan orang awam bisa mengerjakan pekerjaan para ahli. 2. Bisa melakukan proses secara berulang secara otomatis. 3. Menyimpan pengetahuan dan keahlian para pakar. 4. Meningkatkan output dan produktivitas. 5. Meningkatkan kualitas. 6. Mampu mengambil dan melestarikan keahlian para pakar (terutama yang termasuk keahlian langka). 7. Mampu beroperasi dalam lingkungan yang berbahaya. 8. Memiliki kemampuan untuk mengakses pengetahuan. 9. Memiliki reabilitas. 10. Meningkatkan kapabilitas sistem komputer. 11. Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan mengandung ketidakpastian. 12. Sebagai media pelengkap dalam pelatihan. 13. Meningkatkan kapabilitas dalam penyelesaian masalah. 14. Menghemat waktu dalam pengambilan keputusan.
7
2.2.3 Kelemahan Sistem Pakar Di samping memiliki beberapa keuntungan, sistem pakar juga memiliki beberapa kelemahan, antara lain : 1. Biaya yang diperlukan untuk membuat dan memeliharanya sangat mahal. 2. Sulit dikembangkan. Hal ini tentu saja erat kaitannya dengan ketersediaan pakar di bidangnya. 3. Sistem Pakar tidak 100% bernilai benar. 2.2.4 Alasan Pengembangan Sistem Pakar • • • • •
Sistem pakar sendiri dikembangkan lebih lanjut dengan alasan : Dapat menyediakan kepakaran setiap waktu dan di berbagai lokasi. Secara otomatis mengerjakan tugas-tugas rutin yang membutuhkan seorang pakar. Seorang pakar akan pensiun atau pergi. Seorang pakar adalah mahal. Kepakaran dibutuhkan juga pada lingkungan yang tidak bersahabat.
2.2.5 Modul Penyusun Sistem Pakar Menurut Staugaard (1987) suatu sistem pakar disusun oleh tiga modul utama yaitu : 1. Modul Penerimaan Pengetahuan (Knowledge Acquisition Mode) Sistem berada pada modul ini, pada saat ia menerima pengetahuan dari pakar. Proses mengumpulkan pengetahuanpengetahuan yang akan digunakan untuk pengembangan sistem, dilakukan dengan bantuan knowledge engineer. Peran knowledge engineer adalah sebagai penghubung antara suatu sistem pakar dengan pakarnya. 2. Modul Konsultasi (Consultation Mode) Pada saat sistem berada pada posisi memberikan jawaban atas permasalahan yang diajukan oleh user, sistem pakar berada dalam modul konsultasi. Pada modul ini, user
8
berinteraksi dengan sistem dengan menjawab pertanyaanpertanyaan yang diajukan oleh sistem. 3. Modul Penjelasan (Explanation Mode) Modul ini menjelaskan proses pengambilan keputusan oleh sistem (bagaimana suatu keputusan dapat diperoleh). 2.2.6 Struktur Sistem Pakar 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) Mesin inferensi berperan sebagai otak dari sistem pakar. Mesin inferensi berfungsi untuk memandu proses penalaran terhadap suatu kondisi, berdasarkan pada basis pengetahuan yang tersedia. Di dalam mesin inferensi terjadi proses untuk memanipulasi dan mengarahkan kaidah, model, dan fakta yang disimpan dalam basis pengetahuan dalam rangka mencapai solusi atau kesimpulan. Dalam prosesnya, mesin inferensi menggunakan strategi penalaran dan strategi pengendalian. Strategi penalaran terdiri dari strategi penalaran pasti (Exact Reasoning) dan strategi penalaran tak pasti (Inexact Reasoning). Exact reasoning akan dilakukan jika semua data yang dibutuhkan untuk menarik suatu kesimpulan tersedia, sedangkan inexact reasoning dilakukan pada keadaan sebaliknya.Strategi pengendalian berfungsi sebagai panduan arah dalam melakukan prose penalaran. Terdapat tiga tehnik pengendalian yang sering digunakan, yaitu forward chaining, backward chaining, dan gabungan dari kedua tehnik pengendalian tersebut. 3. Basis Data (Data Base)
9
Basis data terdiri atas semua fakta yang diperlukan, dimana fakta-fakta tersebut digunakan untuk memenuhi kondisi dari kaidah-kaidah dalam sistem. Basis data menyimpan semua fakta, baik fakta awal pada saat sistem mulai beroperasi, maupun fakta-fakta yang diperoleh pada saat proses penarikan kesimpulan sedang dilaksanakan. Basis data digunakan untuk menyimpan data hasil observasi dan data lain yang dibutuhkan selama pemrosesan. 4. Antarmuka Pemakai (User Interface) Fasilitas ini digunakan sebagai perantara komunikasi antara pemakai.dengan komputer. 2.2.7 Teknik Representasi Pengetahuan Representasi pengetahuan adalah suatu teknik untuk merepresentasikan basis pengetahuan yang diperoleh ke dalam suatu skema/diagram tertentu sehingga dapat diketahui relasi/keterhubungan antara suatu data dengan data yang lain. Teknik ini membantu knowledge engineer dalam memahami struktur pengetahuan yang akan dibuat sistem pakarnya. Terdapat beberapa teknik representasi pengetahuan yang biasa digunakan dalam pengembangan suatu sistem pakar, yaitu : 1. Rule-Based Knowledge Pengetahuan direpresentasikan dalam suatu bentuk fakta (facts) dan aturan (rules). Bentuk representasi ini terdiri atas premise dan kesimpulan. 2. Frame-Based Knowledge Pengetahuan direpresentasikan dalam suatu bentuk hirarki atau jaringan frame. 3. Object-Based Knowledge Pengetahuan direpresentasikan sebagai jaringan dari obyekobyek. Obyek adalah elemen data yang terdiri dari data dan metoda (proses). 4. Case-Base Reasoning Pengetahuan direpresentasikan dalam bentuk kesimpulan kasus (cases).
10
2.2.8 Inferencing dengan Rule : Forward dan Backward Chaining Inferensi dengan rules merupakan implementasi dari modus ponen, yang direfleksikan dalam mekanisme search (pencarian). Dapat pula mengecek semua rule pada knowledge base dalam arah forward maupun backward. Proses pencarian berlanjut sampai tidak ada rule yang dapat digunakan atau sampai sebuah tujuan (goal) tercapai. Ada dua metode inferencing dengan rules, yaitu forward chaining atau data-driven dan backward chaining atau goal-driven. a.
Backward chaining • Menggunakan pendekatan goal-driven, dimulai dari ekspektasi apa yang diinginkan terjadi (hipotesis), kemudian mengecek pada sebab-sebab yang mendukung (ataupun kontradiktif) dari ekspektasi tersebut. • Jika suatu aplikasi menghasilkan tree yang sempit dan cukup dalam, maka gunakan backward chaining. b. Forward chaining • Forward chaining merupakan grup dari multiple inferensi yang melakukan pencarian dari suatu maslah kepada solusinya. • Jika klausa premis sesuai dengan situasi (bernilai TRUE), maka proses akan meng-assert konklusi. • Forward chaining adalah data-driven karena inferensi dimulai dengan informasi yang tersedia dan baru konklusi diperoleh. • Jika suatu aplikasi menghasilkan tree yang lebar dan tidak dalam, maka gunakan forward chaining. 2.3 WIRELESS APPLICATION PROTOCOL (WAP) Internet, sejak pertengahan tahun 1990-an hingga kini, telah mengubah cara kita berkomunikasi dan berinteraksi. Internet memungkinkan terjadinya pertukaran informasi secara cepat dalam lingkup yang global, yaitu dunia. Informasi kemudian menjadi wilayah publik, dapat diakses dari manapun. Perkembangan sistem komunikasi personal nirkabel (wireless) yang pesat telah membangkitkan gagasan-gagasan tentang akses internet dan informasi dari perangkat komunikasi personal nirkabel dengan tingkat mobilitas tinggi. Bagaimana bisa? Teknologi Wireless Aplication
11
Protocol (WAP) merupakan sinergi dari kombinasi internet dan dunia komunikasi nirkabel. 2.3.1 Apa itu WAP ? Wireless Application Protocol (WAP) merupakan protokol bagi perangkat-perangkat nirkabel yang menyediakan layanan komunikasi data bagi pengguna, baik dalam bentuk yang berhubungan dengan telekomunikasi maupun aplikasi-aplikasi berorientasi internet. Struktur WAP mengadopsi topologi layer-layer yang ada pada Internet Protocol (model TCP/IP). Ini terkait dengan tujuan dibuatnya WAP, yaitu memberikan akses internet bagi alat komunikasi mobile nirkabel. Protokol mengatur bagaimana format paket data dan layananlayanan terhadap paket data pada setiap layer, bagaimana suatu layer memberikan layanan kepada layer lain yang berada di atasnya. 2.3.2 Mengembangkan Aplikasi WAP Pengembangan aplikasi WAP dilakukan dalam suatu lingkungan kerja yang disebut Wireless Application Environment (WAE). Inti dari WAE ini terdiri dari Wireless Markup Language (WML) dan Wireless Markup Language Script (WMLScript). Untuk menjangkau dunia internet, sebuah ponsel dengan teknologi WAP harus berjalan via WAP Gateway. WAP Gateway ini bertindak sebagai perantara, menghubungkan jaringan mobile dan internet dengan menerjemahkan Hypertext TransferProtocol (HTTP) menjadi Wireless Session Protocol (WSP). Gambar di bawah ini menunjukkan skema sederhana hubungan antara web server, gateway dan ponsel dengan WAP. WML
Binary WML
User Agent Web Server
WAP Gateway
Gambar 2.1 Diagram network pada WAP
12
Web server melayani permintaan dari user melalui ponsel untuk sebuah aplikasi WAP. Hubungan ini dilakukan melalui perantara WAP Gateway. Aplikasi dalam WAP dibentuk dalam format WML. Untuk menjalankan suatu aplikasi WAP, sama halnya dengan internet biasa. Kita tinggal mengetikkan URL yang dikehendaki, misalnya : http://mobileinternet.ericsson.com. Karena itu, untuk membuat aplikasi WAP yang kita butuhkan adalah sebuah web server untuk menangani permintaan user akan aplikasi WAP, misalnya Apache, Microsoft Internet Information Service (IIS), ataupun PWS (Personal Web Server). WML merupakan bahasa mark-up yang berbasis pada Extensible Markup Language (XML). WML adalah analogi dari HTML yang berjalan pada protokol nirkabel. Tag-tag pada WML mirip dengan tag-tag yang ada pada HTML . Data WML terstruktur dalam bentuk koleksi kartu atau card. Sebuah koleksi card disebut deck. Tiap deck tersusun dari isi yang terstruktur dan spesifikasi navigasi. Pengguna melakukan navigasi dalam susunan card, melihat isi tiap card, mengisi informasi yang dibutuhkan, membuat pilihan dan bernavigasi ke card selanjutnya atau kembali ke card sebelumnya. Dalam HTML, user interface ditampilkan dalam bentuk halaman-halaman hypertext. Navigasi dilakukan pengguna dalam cardcard tersebut seperti halnya navigasi pada halaman-halaman HTML di mana dalam card pada suatu deck dapat memiliki hyperlink ke card yang lain. Jika WML merupakan analogi dari HTML pada media nirkabel, maka WMLScript merupakan analogi yang tepat dari JavaScript. WMLScript, seperti halnya JavaScript, berjalan pada sisi client (client side scripting). Bedanya, WMLScript tidak dpat ditempatkan menjadi satu dengan halaman WML yang menggunkan fungsi-fungsi dari WMLScript. Fungsi-fungsi WMLScript yang akan digunakan oleh halaman WML ditempatkan dalam file yang terpisah. Pemisahan ini memberikan suatu keuntungan, yaitu dalam fokus pembuatan aplikasi. Jika kita bekerja dengan halaman WML, maka kita hanya berfokus pada isi atau user interface halaman yang kita inginkan. Dengan WMLScript, kita berfokus pada pembuatan prosedur atau fungsi dari logika pemrograman. Aplikasi WML yang kita buat dapat diakses menggunakan browser ang disebut dengan user agent (UA). UA mendownload
13
halaman WML dan atau WMLScript yang dibutuhkan dan merender halaman tersebut. Hasil render halaman WML amat bergantung pada tipe perangkat yang digunakan. Dan tampilan yang diperoleh mungkin berbeda antara ponsel dengan kemampuan grafis yang baik dengan yang hanya mendukung modus teks. a.
Prolog WML
Statemen pertama dalam sebuah dokumen XML dalam sebuah dokumen WML disebut prolog. prolog ini adalah optional (tidak harus ada), dan mengandung dua baris kode: • Deklarasi XML: digunakan untuk mendefinisikan versi XML • Deklarasi DTD: penunjuk ke file yang mengandung DTD dokumen ini. Contoh prolog adalah sebagai berikut:
Setelah prolog, setiap dokumen XML mengandung sebuah elemen tunggal yang mengandung semua sub elemen dan entity yang lainnya. Seperti kalau di HTML, semua elemen dikurung oleh karakter <> dan >. Misal : <element>datadatadata
Hanya boleh ada satu elemen dokumen per dokumen. Dengan WML, elemen dokumennya adalah <wml>; (seperti di html elemen dokumennya adalah ) semua elemen lainnya termasuk di dalamnya. Dua cara paling umum untuk menyimpan data dalam dokumen XML adalah dengan element dan attribute. • Element adalah item-item berstruktur dalam dokumen tersebut yang ditandai dengan tag elemen pembuka dan penutup. Element juga dapat mengandung sub-element.
14
• Attribute biasanya digunakan untuk mendeskripsikan sebuah elemen. Contoh, misalkan ada kode spt ini: Silakan pilih nama user anda.
Dalam kode di atas, element card mengandung attribute id dan title. (Catatan: komentar di WML mirip dengan HTML tetapi harus tampil dalam tag . b.
Element WML yang Valid
WML mendefinisikan sebelumnya sebuah kumpulan element yang dapat dikombinasikan bersama-sama untuk membuat sebuah dokumen WML. Pencantuman Elemen-elemen ini dapat dibagi menjadi dua kelompok: - Element Deck/Card; dan - Element Event. • •
Element Deck/Card : wml, card, template, head, access, meta. Element Event : do, ontimer, onenterforward, onenterbackward, onpick, onevent, postfield. • Task : go, prev, refresh, noop. • Variabel : setvar • User input : input, select, option, optgroup, fieldset. • Anchor, Image, dan Timer : a, anchor, img, timer. • Text Formatting : br, p, table, tr, td. Setiap elemen di atas dimasukkan ke dalam dokumen dengan sintaks seperti ini: <element>nilai elemen itu
Jika sebuah elemen tidak punya data di dalamnya (sebagaimana biasanya dalam kasus menformat elemen dengan misalnya), kita dapat menghemat dengan hanya memasukkan satu tag yang ditambahi karakter / (misal: ) 2.3.2.1 Pengembangan Aplikasi WAP dengan PHP
15
Untuk membuat aplikasi WAP menjadi lebih dinamis dan interaktif, yang mampu memberikan dan menerima respon dari dan ke pengakses, kita dapat menggunakan bahasa-bahasa script yang berjalan pada sisi server (server side-scripting). Dalam proyek akhir ini kita akan menggunakan PHP ( PHP Hypertext Processor), bahasa script serverside yang tangguh, populer di internet dan gratis untuk memberi unsur dinamik dan interaktif pada aplikasi WAP. Pada prinsipnya, komunikasi antara web server dengan perangkat WAP sesama dengan hubungan antara web server dengan browser berbasis PC, hanya saja dalam hal ini ada satu tahap tambahan. Tahap ekstra yang dibutuhkan adalah transfer informasi oleh WAP gateway. WAP gateway bertindak sebagai perantara antara browser nirkabel dengan server tempat informasi berada. WIRELESS NETWORK
MOBILE SERVICES PROVIDER
WAP GATEWAY
INTERNET
WEB SERVER
PHP
Perangkat Mobile
MySQL DATABASE
Gambar 2.2 Proses komunikasi browser nirkabel dengan web server Yang berperan sebagai WAP gateway biasanya adalah perusahaan telekomunikasi yang menyediakan layanan telepon nirkabel atau telepon seluler. Misalkan kita telah membuat sebuah deck yang berisi dua buah card. Kemudian user dengan perangkat nirkabelnya melakukan permintaan atau request terhadap deck tersebut. Maka, uruturutan event yang terjadi untuk permintaan user tersebut adalah sebagai berikut : 1. Request dikirimkan ke WAP gateway dengan protokol WAP. WAP gateway, di bawah “kendali” dari perangkat WAP,
16
melakukan request untuk URL tertentu dengan menggunakan protocol HTTP. 2. Request ditransmisikan via internet ke alamat IP dari perangkat WAP (alamat IP dari suatu perangkat WAP ditentukan oleh operator). 3. Request mencapai tujuan akhirnya, yaitu web server. Server membaca header dan memproses permintaan dokumen WAP. Kode program PHP yang terdapat dalam dokumen ini dikompilasi dan diformat sesuai dengan kebutuhan. 4. Dokumen atau deck WAP yang telah diproses ini dikirimkan kembali melalui WAP gateway. Pada gateway, isi dari deck dikompres menjadi data biner dan dikirimkan ke perangkat WAP. Adalah mungkin (dan sangat mudah) untuk menambahkan unsur dinamik ke dalam WML dengan PHP. Pengembangan aplikasi WAP dengan PHP memungkinkan kita membuat aplikasi seperti database, mailserver, pengiriman pesan, dll. Supaya script PHP dapat didukung oleh perangkat WAP, script ini harus menghasilkan output header WML kepada client. Karena itu, setiap dokumen WML yang berisi kode PHP harus menyertakan baris-baris berikut yang ditempatkan pada awal deck : ”); echo(””; ?>
WML
Deklarasi ini diperlukan karena PHP secara default mengirim baris Content-type: text/html. 2.3.2.2 Interaksi PHP dengan MySQL Komunikasi antara user dengan WAP browser dengan web server dapat menjadi lebih interaktif dengan penggunaan database. Dengan adanya PHP yang bekerja pada sisi server, komunikasi interaktif dapat dilakukan dengan antara user dengan server, baik Apache sebagai web server maupun database server MySQL. User yang mengakses
17
dapat memperoleh data atau informasi dari server dan server dapat menyimpan data yang dikirimkan user dalam database MySQL Database yang dipakai adalah MySQL dengan beberapa alasan, antara lain karena MySQL gratis dan mudah dipelajari. Dalam PHP terdapat banyak fungsi yang digunakan sebagai penghubung atau antarmuka dengan MySQL sehingga data dalam database dapat dilihat dari internet. Banyak situs di internet yang menggunakan PHP-MySQL dalam mengembangkan situsnya.
18
BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT LUNAK 3.1 RANCANGAN UMUM Prosedur perancangan sistem secara umum untuk pembangunan sistem pakar pada perangkat mobile dengan WML dan PHP untuk penyakit paru pada anak ini terdiri atas beberapa tahap, antara lain meliputi perancangan : 1. Data Perancangan data yang dimaksudkan adalah perancangan data-data yang berkaitan dengan pembuatan perangkat lunak, meliputi : • Data input Termasuk di dalamnya data-data penunjang sebagai inputan pembuatan sistem. • Data output Dari data input di atas, bagaimana sistem akan menggunakannya hingga didapatkan data baru sebagai output sistem. 2. Proses Perancangan proses yang dimaksudkan adalah bagaimana sistem akan bekerja, proses-proses apa yang digunakan, mulai dari masuknya data input yang kemudian diproses oleh sistem hingga menjadi data output. 3. Antarmuka Perancangan antarmuka disini mengandung penjelasan tentang penggunaan tree dan keterangannya serta struktur data yang kita gunakan dalam sistem yang kita buat. 3.2 URAIAN PERANCANGAN SISTEM Perancangan sistem ini terdiri atas beberapa tahap yang akan diuraikan pada sub bab di bawah ini.
19
3.2.1
Perancangan Data Dalam perancangan data, akan dijelaskan bagaimana data-data yang terdapat dalam sistem sesuai dengan fungsinya sebagai data input ataupun data output sistem. 3.2.1.1 Data-Data Penyakit dan Gejala Klinisnya 1. Bronkitis Gejala klinis : • batuk kering • batuk berdahak setelah 2-3 hari • suara ada lendir • dahak kental dan kuning • sesak napas • mengeluh rasa sakit retrostenal • mengi 2. Asma Episodik Jarang Gejala klinis : • sesak napas • mengi selama 3-4 hari • batuk selama 10-14 hari • produksi lendir berlebihan • terdapat pada usia 3-6 tahun • serangan 3-4x setahun • gejala timbul di malam hari 3. Asma Episodik Sering Gejala klinis : • sesak napas • mengi • batuk • produksi lendir berlebihan • gejala timbul di malam hari • terjadi pada umur < 3 tahun, dan 8-13 tahun • serangan 3-4x setahun • hay fever 4. Asma Kronik/Persisten Gejala klinis : • terjadi pada umur 6 bulan atau <3 tahun • gejala timbul di malam hari
20
• • • • •
gangguan pertumbuhan sesak napas mengi tiap hari batuk produksi lendir berlebihan 5. Asma Episodik Berat dan Berulang Gejala klinis : • sesak napas • mengi • batuk • produksi lendir berlebihan • ISPA (infeksi saluran napas atas) • pada anak kecil dan umur sebelum sekolah 6. Asma Persisten pada Bayi Gejala klinis : • sesak napas • mengi dengan takhipnu selama beberapa hari atau beberapa minggu • batuk • produksi lendir berlebihan • umur 3-12 bulan 7. Asma Hipersekresi Gejala klinis : • sesak napas • mengi • batuk • produksi lendir berlebihan • suara napas berderak • terdapat pada anak kecil dan umur permulaan sekolah 8. Asma karena Beban Fisik Gejala klinis : • sesak napas • mengi • batuk • produksi lendir berlebihan • setelah melakukan kegiatan fisik 9. Asma dengan Alergen Gejala klinis :
21
• sesak napas • mengi • batuk malam keras dan kering • batuk terjadi pada jam 1-4 pagi • produksi lendir berlebihan • pada umur 2-6 tahun 10. Batuk Malam Gejala klinis : • sesak napas • mengi • batuk • produksi lendir berlebihan • asma pada jam 1-4 pagi 11. Asma Buruk di Pagi Hari Gejala klinis : • terjadi pada anak kecil dan bayi • suhu naik mendadak sampai 39-400 C • disertai kejang demam yang tinggi • anak gelisah • pernapasan cepat dan dangkal • pernapasan cuping hidung • sianosis sekitar hidung dan mulut • disertai muntah dan diare 12. Bronkopneumonia Gejala klinis : • badan menggigil • bayi kejang • suhu naik sampai 39-400 C • sesak napas • pernapasan cuping hidung • sianosis sekitar hidung dan mulut • nyeri pada dada • batuk mula-mula kering dan berdahak • anak lebih suka tiduran pada sebelah dada yang terkena 13. Pneumonia Lobaris Gejala klinis :
22
• ISPA • batuk pilek • sesak napas • pernapasan dangkal dan cepat • anak gelisah, • sianotik • pernapasan cuping hidung • mengi 14. Bronkiolitis Akut Gejala klinis : • disebabkan oleh penyakit lain seperti : asma, bronkitis, bronkopneumonia 15. Atelektasis Gejala klinis : • terjadi 24 jam setelah operasi • dispnu (sesak napas) • sianosis (kebiruan) • takikardia (nadi cepat) • nyeri dada • gelisah • kenaikan suhu badan 16. Atelektasis Masif Gejala klinis : • dispnu ekspirator • ronki basah dan nyaring 17. Emfisema Obstruktif Gejala klinis : • krepitasi (ada udara) di daerah kulit yang emfisematis 18. Emfisema Bulosa Gejala klinis : • nyeri di sisi toraks yang terkena • dispnu • batuk • bersin • karena latihan jasmani yang berat 19. Pneumotoraks Gejala klinis : • sesak napas
23
• mengi • batuk • suara adanya lendir • setelah melakukan kegiatan fisik yang berlebihan 20. Empiema Torasis Gejala klinis : • suhu mendadak tinggi • takikardia • dispnea • sianosis • batuk-batuk • tampak sakit berat • demam remiten Data-data di atas adalah data tentang berbagai jeins penyakit paru pada anak beserta gejala-gejala klinis yang ditimbulkannya. Data tersebut merupakan data awal sebagai inputan dari sistem sebelum diproses menjadi data output. 3.2.1.2 Penyusunan Basis Data Basis Data merupakan suatu media penyimpanan yang digunakan untuk menyimpan data-data penunjang sebagai inputan sistem dan kemudian diolah menjadi data output sistem. Basis Data yang dibuat pada proyek akhir ini menggunakan MySQL. Di bawah ini adalah tahap-tahap penyusunan basis data yang digunakan:
3.2.1.2.1 Pembuatan Tabel a.
Desain tabel penyakit
24
Gambar 3.1 Struktur tabel penyakit Tabel penyakit digunakan untuk menyimpan data jenis-jenis penyakit paru pada anak. Field id_p merupakan nilai id yang diset sebagai primary key pada tabel penyakit. Field nama_peny merupakan keterangan nama jenis penyakit paru pada anak. Contoh tabel : Tabel 1. Tabel Penyakit
b.
Desain tabel gejala
Gambar 3.2 Struktur tabel gejala Tabel gejala digunakan untuk menyimpan data berbagai macam gejala klinis penyakit paru pada anak. Field id_g merupakan nilai id yang diset sebagai primary key pada tabel gejala.
25
Field gejala_peny merupakan keterangan nama jenis penyakit paru pada anak. Contoh tabel : Tabel 2. Tabel gejala_penyakit
c.
Desain tabel gejala_penyakit
Gambar 3.3 Struktur tabel gejala_penyakit Tabel gejala_penyakit digunakan untuk menampung rule jenis penyakit yang berhubungan dengan berbagai macam gejala klinis penyakit paru pada anak. Field id_p merupakan foreign key yang berhubungan dengan id_p pada tabel penyakit. Field id_g merupakan foreign key yang berhubungan dengan id_g pada tabel gejala.
Contoh tabel : Tabel 3. Tabel penyakit
26
d.
Desain tabel pertanyaan
Gambar 3.4 Struktur tabel pertanyaan Tabel pertanyaan digunakan untuk mengatur rule berupa gejala yang akan ditampilkan sebagai pertanyaan sesuai kode yang saling berhubungan untuk didapatkan suatu kesimpulan. Field Kode merupakan kode tiap pertanyaan yang akan ditampilkan. Field tny_sblm merupakan kode dari pertanyaan yang telah diajukan sebelumnya. Field tny_skrg merupakan id gejala yang akan ditampilkan sebagai pertanyaan untuk user. Field tny_ya merupakan kode pertanyaan selanjutnya jika pada pertanyaan saat ini memilih jawaban ’Yes’. Field tny_tdk merupakan kode pertanyaan selanjutnya jika pada pertanyaan saat ini memilih jawaban ’No’. Contoh tabel : Tabel 4. Tabel pertanyaan
27
3.2.1.2.2 Pembuatan Relasi Antar Tabel Setelah tabel dibuat, maka tabel-tabel tersebut akan direlasikan. Hal ini akan sangat berguna dalam proses pengeditan data. Tabel pertanyaan akan berelasi dengan tabel gejala dan tabel penyakit. Tabel gejala akan berelasi dengan tabel pertanyaan dan tabel gejala_penyakit. Tabel penyakit akan berelasi dengan tabel pertanyaan dan tabel gejala_penyakit. Tabel gejala_penyakit akan berelasi dengan tabel gejala dan tabel penyakit. Di bawah ini adalah skema relasi antar tabel yang telah kita buat pada database sebelumnya. gejala pertanyaan Kode tny_sblm tny_skrg tny_ya tny_tdk
id_g gejala_peny
gejala_penyakit
id_g id_p penyakit id_p nama_peny Gambar 3.5 Relationship antar tabel
3.2.2
Perancangan Proses
28
Perancangan proses akan menjelaskan bagaimana sistem bekerja untuk mengolah data input menjadi data output dengan fungsi-fungsi yang telah direncanakan. Untuk perlu diketahui, bahwa sistem ini akan digunakan oleh dua user, yaitu user penderita (umum) dan user administrator. 3.2.2.1 Diagram Alir Sistem Di bawah ini akan ditampilkan diagram alir sistem user menggunakan metode forward dan backward chaining, serta diagram alir manajemen sistem dalam mengedit data melalui proses tambah, hapus atau update data. a.
Diagram Alir Sistem User
Diagram alir sistem user adalah diagram yang menunjukkan bagaimana aliran proses yang terjadi dalam sistem user. Bagaimana aliran proses jika menggunakan metode backward/forward chaining akan dijelaskan lebih lanjut di dalam sub bab ini.
Dari diagram alir di atas, dapat dijelaskan langkah-langkah proses yang dilakukan adalah sebagai berikut : Saat kita mulai menjalankan sistem, kita berada pada posisi START. Kemudian kita pilih metode yang akan digunakan. Pilihan metode berupa FW untuk representasi Forward Chaining dan BW untuk representasi Backward Chaining. Bila memilih metode BW, selanjutnya kita akan memilih jenis penyakit yang kita inginkan. Dari jenis penyakit yang kita pilih tersebut, sistem akan melakukan query select id_p pada tabel penyakit,id_g dan id_p pada tabel gejala_penyakit, yang kemudian diquerykan dengan id_g paad tabel gejala. Maka, akan didapatkan hasil gejala-gejala klinis yang berhubungan dnegan penyakit yang kita pilih sebelumnya. Bila memilih metode FW,pertama kali kita akan melakukan select kode pertama pada tabel pertanyaan. Dari hasil select tersebut, akan ditampilkan gejala pada tny_skrg milik tabel pertanyaan kode pertama. Kemudian user menginputkan jawaban Ya (Yes) atau Tidak (No). Jika user menginputkan jawaban Ya, maka sistem akan menuju pada kode untuk tny_ya dari kode sebelumnya. Apabila pada kode sekarang didapatkan bahwa tny_ya berisi kode penyakit, maka melakukan select nama_peny pada tabel penyakit. Sehingga didapatkanlah hasil nama penyakit yang didiagnosa. Jika user menginputkan jawaban Tidak, maka sistem akan menuju pada kode untuk tny_tdk dari kode sebelumnya. Apabila pada kode sekarang didapatkan bahwa tny_tdk berisi kode penyakit, maka melakukan select nama_peny pada tabel penyakit. Sehingga didapatkanlah hasil nama penyakit yang didiagnosa. Apabila saat user memilih jawaban ya/tidak bukan didapatkan id penyakit tetapi kode pertanyaan selanjutnya, maka kembali ke proses awal FW. Jika sebaliknya, menuju ke posisi END.
31
b. Diagram Alir Manajemen Sistem start 1
Pilih mode edit
2
3
4
end
Gambar 3.7 Diagram alir manajemen sistem Dari diagram alir di atas, dapat dijelaskan langkah-langkah proses yang dilakukan adalah sebagai berikut : Saat kita mulai menjalankan sistem, kita berada pada posisi START. Selanjutnya, admin akan diberi pilihan mode edit yang akan digunakan. Mode edit yang tersedia adalah tambah, hapus dan update data. Setelah melalui proses-proses edit yang dipilih, maka tiap-tiap mode edit akan berakhir pada posisi END sebagai tanda pengakhiran program.
1.
Mode Edit Tambah Data
32
1
penyakit Input id_p, nama penyakit
gejala tambah
Select tabel “penyakit” Input id_g, nama gejala
Create new penyakit, Tabel=”penyakit”,Tabel=”pertanyaan”
Create new gejala, Tabel=”gejala”, Tabel=”gejala_penyakit”, Tabel=”pertanyaan”
hasil Input id_g, nama gejala
hasil Create new gejala, Tabel=”gejala”, Tabel=”gejala_penyakit”,Tabel =”pertanyaan”
4
hasil
Gambar 3.8 Diagram alir mode edit tambah data Dari diagram alir di atas, dapat dijelaskan langkah-langkah proses yang dilakukan adalah sebagai berikut : Admin akan diberi pilihan untuk menambah gejala atau penyakit dengan gejalanya. Penambahan penyakit yang baru haruslah diikuti pengisian gejala yang baru pula. Bila memilih untuk menambah gejala yang baru, maka admin harus memilih penyakit mana yang diberi gejala tersebut. Setelah memilih jenis penyakitnya, admin harus memasukkan id dan nama gejala yang baru. Kemudian informasi tersebut akan diproses dengan proses create gejala baru pada tabel gejala, gejala_penyakit, dan pertanyaan. Selanjutnya, sistem akan menampilkan penambahan gejala tersebut sebagai gejala tambahan pada penyakit yang dipilih. Sedangkan bila memilih untuk menambah penyakit yang baru, maka admin harus memasukkan id dan nama penyakit yang baru. Setelah memasukkan, akan terjadi proses penambahan penyakit tersebut
33
pada tabel penyakit. Kemudian, sistem akan menampilkan penambahan penyakit tersebut. Selanjutnya, admin harus memasukkan id dan gejala yang baru. Kemudian informasi tersebut akan diproses dengan proses create gejala baru pada tabel gejala, gejala_penyakit, dan pertanyaan. Langkah berikutnya, sistem akan menampilkan penambahan gejala tersebut sebagai gejala tambahan pada penaykit yang dipilih. Jika proses-proses di atas telah dilakukan, sistem akan menuju kondisi END. 2.
Gambar 3.9 Diagram alir mode edit hapus data Dari diagram alir di atas, dapat dijelaskan langkah-langkah proses yang dilakukan adalah sebagai berikut : Admin akan diberi pilihan untuk melakukan penghapusan gejala penyakit atau penyakit. Jika admin memilih untuk menghapus gejala, admin harus memasukkan id gejala yang dipilih. Kemudian sistem akan melakukan select id tersebut pada tabel gejala, gejala_penyakit dan pertanyaan. Setelah sistem melakukan select, maka sistem akan melakukan proses
34
delete gejala tersebut. Selanjutnya, sistem akan menampilkan hasil delete yang telah dilakukan. Jika admin memilih untuk menghapus penyakit, admin harus memasukkan id penyakit yang dipilih. Kemudian sistem akan melakukan select id tersebut pada tabel penyakit, gejala_penyakit dan pertanyaan. Setelah sistem melakukan select, maka sistem akan melakukan proses delete penyakit tersebut. Selanjutnya, sistem akan menampilkan hasil delete yang telah dilakukan. Bila proses-proses di atas telah dilakukan, sistem akan menuju kondisi END. 3.
Mode Edit Update Data 3
penyakit Input id_p
gejala
update
Select tabel=”penyakit”
Input id_g
Select tabel=”gejala”
Input nama gejala baru
Input nama penyakit baru Update penyakit
Update gejala
hasil
hasil
4
Gambar 3.10 Diagram alir mode edit update data Dari diagram alir di atas, dapat dijelaskan langkah-langkah proses yang dilakukan adalah sebagai berikut : Admin akan diberi pilihan untuk melakukan peng-update-an gejala penyakit atau penyakit. Jika admin memilih untuk meng-update gejala, admin harus memasukkan id gejala yang dipilih. Kemudian sistem akan melakukan
35
select id tersebut pada tabel gejala. Setelah sistem melakukan select, maka sistem akan meminta admin memasukkan nama gejala yang baru. Selanjutnya, sistem akan melakukan proses update data lama dengan yang baru. Barulah kemudian sistem menampilkan hasil proses update. Jika admin memilih untuk meng-update penyakit, admin harus memasukkan id penyakit yang dipilih. Kemudian sistem akan melakukan select id tersebut pada tabel penyakit. Setelah sistem melakukan select, maka sistem akan meminta admin memasukkan nama penyakit yang baru. Selanjutnya, sistem akan melakukan proses update data lama dengan yang baru. Barulah kemudian sistem menampilkan hasil proses update. Bila proses-proses di atas telah dilakukan, sistem akan menuju kondisi END. 3.2.2.2 Fungsi-fungsi yang Digunakan dalam Sistem Di dalam proses sistem, akan digunakan fungsi-fungsi yang berbeda baik untuk user umum maupun user admin. Pada sistem user, akan digunakan fungsi-fungsi seperti di bawah ini : a. Backward chaining Fungsi ini terdapat di lampiran pada file mcmpeny.php. Pada proses ini, pertama-tama user akan diberikan pilihan mengenai berbagai jenis penyakit paru pada anak. Pilihan user kemudian akan men-select semua gejala yang berhubungan dengan jenis penyakit yang dipilih untuk ditampilkan informasinya. b. Forward chaining Fungsi ini terdapat di lampiran pada file konsul.php. Pada proses ini, pertama-tama user akan diberi pertanyaan mengenai gejala yang paling umum dialami untuk semua jenis penyakit paru anak. User diberikan pilihan jawaban, pilihan jawaban ’Yes’ untuk representasi user mengalami gejala tersebut dan jawaban ’No’ untuk representasi user tidak mengalami gejala tersebut. Dari pilihan jawaban itulah, maka sistem akan mengarah pada kode pertanyaan yang dituju. Kode pertanyaan yang dituju akan
36
menampilkan gejala selanjutnya sebagai pertanyaan berikutnya. Tentunya pertanyaan yang tampil hanya untuk gejala-gejala yang berkaitan saja dengan mengarah pada suatu jenis penyakit tertentu. Begitu seterusnya sistem akan berjalan hingga didapatkan kode pertanyaan berikutnya yang berisi kesimpulan penyakit yang diderita. Sedangkan pada user admin, akan digunakan fungsi-fungsi seperti di bawah ini : 1.
Tambah data
Dalam proses tambah data ini meliputi penambahan gejala penyakit dan penyakit. a)
Gejala penyakit
Fungsi ini terdapat di lampiran pada file addgp2.php dan insert.php. Pada proses penambahan gejala penyakit ini, akan terjadi penambahan pada tabel gejala, gejala_penyakit, dan pertanyaan. Fungsi di atas adalah fungsi yang digunakan pada perubahan dalam tabel pertanyaan. Perubahan pada tabel pertanyaan akan menambah tiap kode pertanyaan setelah kode yang disisipkan. Sedangkan untuk kode sebelum kode yang disisipkan tidak ada perubahan. b) Penyakit Fungsi ini terdapat di lampiran pada file addp.php dan addgp221.php Pada proses penambahan penyakit ini, akan terjadi penambahan pada tabel penyakit, gejala_penyakit, dan pertanyaan. Untuk penyakit baru ini tentunya memiliki gejala-gejala klinis yang baru pula, maka proses penambahan gejalanya sendiri sama dengan proses penambahan gejala penyakit sebelumnya.
37
2.
Hapus data
Dalam proses hapus data ini meliputi penghapusan gejala penyakit dan penyakit. a)
Gejala penyakit
Fungsi ini terdapat di lampiran pada file delg2.php. Pada proses penghapusan gejala penyakit ini, akan terjadi penghapusan pada tabel gejala, gejala_penyakit, dan pertanyaan. Fungsi di atas kita gunakan saat ada perubahan dalam tabel pertanyaan. Untuk kode setelah gejala yang dihapus, maka kode pertanyaan akan berkurang sebanyak jumlah gejala yang dihapus. b) Penyakit Fungsi ini terdapat di lampiran pada file delp2.php. Pada proses penghapusan penyakit ini, akan terjadi penghapusan pada tabel penyakit, gejala_penyakit, dan pertanyaan. Di dalam tabel pertanyaan, untuk kode pertanyaan yang penyakitnya dihapus, maka isi tabel pertanyaan tersebut menjadi penyakit berinisial Ptd. 3. Update data Dalam proses edit data ini meliputi pengeditan gejala penyakit dan penyakit. a)
Gejala penyakit
Fungsi ini terdapat di lampiran pada file upgej3.php. Pada proses pengeditan gejala penyakit ini, akan terjadi pengeditan pada tabel gejala, gejala_penyakit, dan pertanyaan. Data baru akan tersimpan dalam tabel-tabel tersebut setelah di-update. b) Penyakit Fungsi ini terdapat di lampiran pada file uppeny3.php.
38
Pada proses pengeditan penyakit ini, akan terjadi penghapusan pada tabel penyakit, gejala_penyakit, dan pertanyaan. Data baru akan tersimpan dalam tabel-tabel tersebut setelah di-update. 3.2.3
Perancangan Antarmuka
User interface merupakan bagian dari sistem pakar yang digunakan sebagai media atau alat komunikasi antar user dan sistem. Di dalam user interface ini dibedakan dua user : • User penderita (umum) adalah user yang menggunakan sistem pakar ini untuk mencari informasi dari gangguangangguan yang dideritanya atau sekedar mencari informasi jenis-jenis penyakit paru pada anak beserta gejalanya. • User administrator adalah user yang bertugas untuk melakukan proses editing, penambahan dan perawatan data di dalam sistem pakar jika diperlukan perubahan 3.2.3.1 Pembuatan Tree Pembuatan tree pada data digunakan untuk mempermudah dalam proses penalaran data yang akan dimasukkan ke dalam database pada program yang telah dibuat. Proses penalaran yang digunakan akan menggunakan proses penalaran dengan metode forward dan backward chaining. forward Gejala Klinis
Penyakit backward
Gambar 3.11 Tampilan proses sistem pakar Dari gambar di atas dapat dijelaskan bahwa terdapat dua metode dalam sistem pakar, yaitu :
•
Forward chaining
39
•
User harus mengetahui gejala-gejala klinis yang diderita sebagai bahan untuk menjawab pertanyaan yang diberikan oleh program. Pertanyaan yang diberikan berupa gejala yang saling berhubungan dengan gejala-gejala yang telah dijawab sebelumnya, hingga didapatkan kesimpulan diagnosa jenis penyakitnya. Backward chaining User dapat mengetahui informasi mengenai berbagai macam jenis penyakit dengan gejala-gejala klinis yang ditimbulkannya.
Tree dan kode penyakit serta gejala terdapat pada halaman lampiran . Dari tree yang terlampir pada lampiran, maka dapat dijelaskan sebagai berikut : Sebagai root, gejala 5 (dengan asumsi penulisan diawali huruf G untuk semua gejala yang tersimpan dalam database, misal : G5) adalah gejala yang paling banyak dijumpai pada berbagai jenis penyakit paru pada anak. Jika gejala 5 memang dialami user, dalam asumsi pilihan adalah Ya (Yes), maka gejala 1 akan ditanyakan sebagai pertanyaan selanjutnya. Apabila gejala 1 memang dialami (Ya/Yes), maka akan ditampilkan gejala 3 untuk pertanyaan selanjutnya, sebaliknya jika tidak dialami (Tidak/No), maka gejala 20 yang akan ditampilkan sebagai pertanyaan selanjutnya. Sedangkan jika gejala 5 memang tidak dialami user, dalam asumsi pilihan adalah Tidak (No), maka gejala 29 akan ditanyakan sebagai pertanyaan selanjutnya. Apabila gejala 29 memang dialami (Ya/Yes), maka akan ditampilkan penyakit dengan id : R (dengan asumsi penulisan diawali huruf P untuk semua jenis penyakit yang tersimpan dalam database, misal : PR) sebagai hasil/kesimpulan diagnosa, sebaliknya jika tidak dialami (Tidak/No), maka gejala 20 yang akan ditampilkan sebagai pertanyaan selanjutnya. Maka, proses-proses di atas akan berlangsung terus menerus hingga didapatkan hasil/kesimpulan dari tiap-tiap percabangan.
40
3.2.3.2 Struktur Data yang digunakan Dalam sistem admin ini, untuk penyimpanan data-data dalam database menggunakan struktur array yang berurutan tiap barisnya. Misal : $nol=$row[0]; … $satu=$row[1]; … $tiga=$row[3]; … $empat=$row[4]; ... $sql="UPDATE pertanyaan SET Kode=$nol,tny_sblm=$satu,tny_ya='$ya',tny_tdk='$tdk' where Kode =$kod";
3.2.3.3 Blok Arsitektur Sistem Untuk perancangan antar muka, di bawah ini akan ditunjukkan blok arsitektur sistem yang digunakan pada proyek akhir. Web Server
request Perangkat Mobile
request
Sistem Pakar
WAP Gateway response
PHP response
MySQL Database
Gambar 3.12 Blok Arsitektur Sistem Dari gambar di atas, dapat dijelaskan bahwa urutan event yang terjadi dalam sistem adalah :
41
1. 2. 3.
4. 5.
User/admin melakukan request alamat URL yang dituju ke WAP Gateway pada dari perangkat mobile. Request tersebut akan ditransmisikan via internet dari perangkat mobile. Kemudian request akan diteruskan ke web server. Server membaca header dan memproses permintaan dokumen WAP. Kode program PHP yang terdapat dalam dokumen ini dikompilasi dengan sistem pakar dan diformat sesuai dengan kebutuhan. Jika memang dibutuhkan untuk penggunaan database, maka akan terjadi pula koneksi ke database yang digunakan, yaitu MySQL. Dokumen atau deck WAP yang telah diproses ini dikirimkan kembali melalui WAP gateway sebagai response atas request sebelumnya. Pada gateway, isi dari deck dikompres menjadi data biner dan dikirimkan ke perangkat mobile.
3.2.3.4 Desain Homepage Dalam pembuatan antarmuka sistem berupa homepage, maka di bawah ini adalah desain homepage yang digunakan.
42
FW
Konsultasi Penyakit Menu Utama User : -Konsultasi -Macam Penyakit -Lokasi RS
BW
Macam Penyakit
Lokasi RS Halaman Utama
Halaman Login
Gejala Penyakit Tambah data Penyakit Menu Utama Admin : -Tambah data -Hapus data -Update data
Gejala Penyakit Hapus data Penyakit
Gejala Penyakit Update data Penyakit
Gambar 3.13 Desain Homepage Sistem 3.2.3.5 Implementasi Sistem Dari desain homepage sistem yang telah kita buat sebelumnya, maka dapat kita implementasikan seperti beberapa contoh tampilan berikut :
Gambar 3.14 Halaman Utama
43
Gambar 3.15 Halaman Login
Gambar 3.16 Menu Utama User
Gambar 3.17 Menu Utama Admin
44
BAB IV PENGUJIAN DAN ANALISA 4.1 PENGUJIAN UMUM Dalam bab ini akan dijelaskan mengenai hasil uji coba perangkat lunak pembangunan sistem pakar pada perangkat mobile dengan WML dan PHP untuk penyakit paru pada anak. Selain itu, dari hasil uji coba yang telah dilakukan akan dianalisa apakah rancangan ini dapat memenuhi tujuan yang akan dicapai seperti yang telah dipaparkan pada Bab I. Berikut ini adalah spesifikasi perangkat lunak sebagai sistem pendukung aplikasi yang dibuat : • apache2triad1.5.2 yang meliputi Apache sebagai web servernya, PHP untuk bahasa pemrogramannya dan MySQL sebagai databasenya. • upsdkW41e keluaran Openwave Sytems,Inc. sebagai emulator WAP sebelum dijalankan ke perangkat mobile yang sesungguhnya.
4.2 PENGUJIAN SISTEM Sebelum kita mulai untuk menjalankan aplikasi yang kita buat, kita harus memastikan bahwa gateway student.eepis-its.edu sebagai web server lokal telah aktif dan sukses dijalankan. Hal ini sangat penting kita perhatikan karena aplikasi hanya dapat running jika web sever juga running (aktif). Setelah web server telah aktif, maka pada perangkat mobile kita mengetikkan alamat URL sebagai berikut: http://student.eepis-its.edu/~astrid/index.php. Tetapi untuk uji coba sebelum pada perangkat mobile yang sesungguhnya, terlebih dahulu kita gunakan pada emulator WAP dengan Apache sebagai web server lokal. Sehingga pada emulator, kita dapat mengetikkan alamat URL sebagai berikut: http://localhost/taku/index.wml. Jika setelah mengakses halaman tersebut didapatkan tampilan halaman utama, maka kita dapat memulai pengujian baik sistem user atau sistem admin yang kita inginkan.
45
Gambar 4.1 Tampilan halaman utama pada emulator WAP
Gambar 4.2 Tampilan pesan error pada command prompt
Gambar 4.3 Tampilan halaman utama pada perangkat mobile
46
Gambar 4.4 Tampilan halaman utama lanjutan pada perangkat mobile 4.2.1 PENGUJIAN SISTEM USER Saat user mengakses alamat URL yang kita sebutkan di atas, maka kita akan mengakses halaman utama. Selanjutnya, kita akan berada pada halaman login agar sistem dapat mengetahui user yang sedang aktif dan apa yang ingin dilakukannya. Sebagai user umum, sebaiknya kita memilih link Umum karena jika kita memilih link Admnistrator maka akan terdapat autentifikasi yang hanya diketahui oleh admin saja. Selanjutnya, kita akan dihadapkan pada menu utama user dengan pilihan Konsultasi Penyakit, Macam Penyakit dan Lokasi Rumah Sakit Paru. Perlu diketahui, bahwa dengan memilih menu Konsultasi Penyakit, informasi yang didapatkan adalah representasi dari metode Forward Chaining. Sedangkan menu Macam Penyakit, informasi yang didapatkan adalah representasi dari metode Backward Chaining. Dan menu Lokasi Rumah Sakit Paru adalah menu yang akan menampilkan informasi alamat Rumah Sakit Paru yang terletak di beberapa daerah di Indonesia.
Gambar 4.5 Halaman login
47
Gambar 4.6 Menu Utama User Umum
Gambar 4.7 Halaman utama menu Lokasi Rumah Sakit Paru Pilihan daerah untuk Lokasi Rumah Sakit Paru hanya di beberapa daerah saja, tetapi hal ini tidak berarti bahwa selain daerah yang ditunjuk tidak terdapat rumah sakit paru.
Gambar 4.8 Pilihan daerah Lokasi Rumah Sakit Paru
48
Gambar 4.9 Informasi lokasi Rumah Sakit Paru 1) Pengujian Proses Forward Pada proses ini, pertama-tama user akan diberi pertanyaan mengenai gejala yang paling umum dialami untuk semua jenis penyakit paru anak. User diberikan pilihan jawaban, pilihan jawaban ’Yes’ untuk representasi user mengalami gejala tersebut dan jawaban ’No’ untuk representasi user tidak mengalami gejala tersebut. Dari pilihan jawaban itulah, maka sistem akan mengarah pada kode pertanyaan yang dituju. Kode pertanyaan yang dituju akan menampilkan gejala selanjutnya sebagai pertanyaan berikutnya. Tentunya pertanyaan yang tampil hanya untuk gejala-gejala yang berkaitan saja dengan mengarah pada suatu jenis penyakit tertentu. Begitu seterusnya sistem akan berjalan hingga didapatkan kode pertanyaan berikutnya yang berisi kesimpulan penyakit yang diderita. Untuk pengujian proses forward ini, kita dapat melihat pada menu informasi Konsultasi Penyakit.
Gambar 4.10 Halaman utama menu Konsultasi Penyakit
49
Gambar 4.11 Tampilan pertanyaan 1 Konsultasi Penyakit
Gambar 4.12 Menu jawaban pertanyaan
Gambar 4.13 Tampilan pertanyaan 2 Konsultasi Penyakit
50
Gambar 4.14 Hasil kesimpulan diagnosa penyakit 2) Pengujian Proses Backward Pada proses ini, pertama-tama user akan diberikan pilihan mengenai berbagai jenis penyakit paru pada anak. Pilihan jenis penyakit user akan menentukan semua gejala yang berhubungan dengan jenis penyakit yang dipilih untuk ditampilkan informasinya. Dalam pengujian proses backward, kita dapat melihat pada menu informasi Macam Penyakit dan menu jawaban why dari pilihan informasi Konsultasi Penyakit. Dari menu why ini, kita dapat melihat kembali jawaban apa saja yang sudah kita berikan sebelumnya, sehingga diharapkan kita mampu memberikan informasi yang tepat pada sistem. Selanjutnya, sistem dapat memberikan informasi yang tepat pula pada user.
Gambar 4.15 Halaman utama menu Macam Penyakit
Gambar 4.16 Tampilan pilihan Macam Penyakit
51
Gambar 4.17 Tampilan pilihan Macam Penyakit lanjutan Pada halaman pilihan macam penyakit, kita harus menuliskan nomor pilihan berdasarkan jenis penyakit yang ingin kita ketahui informasi gejala-gejalanya.
Gambar 4.18 Hasil informasi gejala dari suatu penyakit Sedangkan di bawah ini adalah hasil uji coba pilihan menu why dalam Konsultasi Penyakit.
Gambar 4.19 Menu jawaban why dalam pilihan jawaban
52
Gambar 4.20 Hasil informasi akses menu why 4.2.2 PENGUJIAN SISTEM ADMIN Dalam proses pengeditan data, user admin harus melakukan proses login pada interface. Pada halaman login admin, admin diminta memasukkan username dan password. Hal ini untuk menghindari penyalahgunaan manajemen sistem oleh selain admin. Setelah admin berhasil login, user dapat memilih mode edit apa yang akan dilakukan. Mode edit yang diberikan berupa tambah, hapus dan update data yang ada.
Gambar 4.21 Halaman login admin
Gambar 4.22 Tampilan halaman login admin
53
Gambar 4.23 Tampilan pesan jika password salah
Gambar 4.24 Tampilan pesan jika password benar
Gambar 4.25 Pilihan proses edit admin 1) Tambah Data Dalam proses tambah data ini, admin diberi pilihan untuk menambah gejala atau jenis penyakit yang baru.
54
Gambar 4.26 Pilihan proses tambah data a. Gejala Penyakit Apabila admin memilih untuk menambah gejala penyakit baru, maka sistem akan menanyakan jenis penyakit mana gejala baru tersebut akan ditambahkan. Karena, penambahan gejala ini tidak diberikan untuk semua jenis penyakit paru yang ada, sebab belum tentu semua jenis penyakit paru yang ada mengandung gejala tersebut. Setelah jenis penyakit yang ingin ditambahkan gejalanya dipilih, maka sistem akan menampilkan kembali gejala-gejala awal sebelum ada penambahan data baru sebagai informasi. Sebelum kita mulai menuliskan nama gejala baru tersebut, sistem meminta admin untuk menulis ID gejala yang baru. Sistem juga memberikan informasi ID gejala terakhir yang telah tersimpan dalam database agar tidak terjadi duplikasi ID. Kemudian kita dapat menuliskan nama gejala yang ingin ditambahkan. Setelah menulis ID dan nama gejala baru tersebut, sistem akan menanyakan pada urutan pertanyaan ke berapa gejala baru tersebut ingin ditampilkan. Semua informasi tersebut dibutuhkan sistem sebgai inputan proses tambah gejala. Dari semua informasi yang dibutuhkan sistem untuk gejala baru tersebut, maka setelah berhasil disimpan oleh sistem akan dimunculkan tampilan pesan sistem. Untuk meyakinkan admin bahwa data telah berhasil ditambahkan, maka sistem memberi fasilitas untuk menampilkan kembali penyakit dan gejala lama maupun baru yang ditambahkan.
55
Gambar 4.27 Pilihan tambah gejala pada penyakit tertentu
Gambar 4.28 Pilihan tambah gejala pada penyakit tertentu lanjutan
Gambar 4.29 Informasi data gejala sebelum ditambahkan
Gambar 4.30 ID gejala baru
56
Gambar 4.31 Nama gejala baru
Gambar 4.32 Urutan pertanyaan gejala baru
Gambar 4.33 Informasi sistem jika berhasil menambah
Gambar 4.34 Gejala penyakit baru berhasil ditambahkan
57
b. Penyakit Apabila admin memilih untuk menambah gejala penyakit baru, maka akan ditampilkan kembali semua ID dan jenis-jenis penyakit yang sudah ada. Informasi tersebut diberikan untuk menghindari adanya kesamaan ID jika penyakit baru ditambahkan. Kemudian admin diminta untuk memasukkan semua informasi mengenai penyakit baru berupa ID dan nama penyakit yang baru. Selanjutnya sistem akan memberi tampilan pesan jika sistem berhasil tambah data tersebut. Untuk meyakinkan admin bahwa data telah berhasil ditambahkan, maka sistem memberi fasilitas untuk menampilkan kembali semua nama penyakit beserta IDnya yang telah tersimpan saat ini dalam database. Karena admin telah menambahkan penyakit yang baru, maka pada penyakit tersebut belum terdapat gejala-gejala klinis yang ditimbulkannya. Oleh sebab itu, sistem memberikan admin fasilitas untuk memberikan penambahan gejala bagi penyakit baru tersebut. Jika informasi ID dan nama gejala yang baru telah tersimpan, maka sistem akan memberikan tampilan pesan berhasil dilakukan. Untuk meyakinkan admin bahwa data telah berhasil ditambahkan, maka sistem memberi fasilitas untuk menampilkan kembali nama penyakit baru tersebut beserta gejala yang telah ditambahkan yang tersimpan saat ini dalam database. Apabila admin ingin menambah kembali gejala lain untuk penyakit yang baru tersebut, maka admin dapat memilih menu Addgejala kembali dengan melalui proses yang sama seperti di atas.
Gambar 4.35 Informasi ID dan jenis penyakit yang ada
58
Gambar 4.36 ID dan nama penyakit yang ditambahkan
Gambar 4.37 Tampilan pesan sistem jika proses tamabah berhasil
Gambar 4.38 Halaman hasil proses tambah penyakit
Gambar 4.39 Proses pemberian ID dan nama gejala pada penyakit baru
59
Gambar 4.40 Tampilan pesan sistem jika proses insert berhasil
Gambar 4.41 Halaman hasil penambahan gejala penyakit baru 2 ) Hapus Data Apabila admin memilih proses hapus data, maka sistem akan memberikan pilihan hapus data gejala penyakit atau penyakit itu sendiri.
Gambar 4.42 Pilihan proses delete data a.
Gejala penyakit
Jika admin ingin melakukan penghapusan salah satu jenis gejala yang ada, maka sistem akan menampilkan kembali informasi semua jenis gejala yang telah ada beserta IDnya. Hal ini diberikan untuk
60
memudahkan admin memilih gejala yang akan dihapus. Kemudian dari informasi yang ditampilkan, admin dapat menuliskan ID gejala yang dipilih. Setelah menuliskan ID gejala yang akan dihapus, maka sistem akan melakukan proses hapus data gejala yang dipilih. Jika sistem berhasil, maka akan tampil pesan di layar bahwa proses tersebut berhasil. Untuk memastikan bahwa sistem telah berhasil melakukan proses delete tersebut, maka sistem akan menampilkan hasil berupa informasi semua jenis gejala beserta IDnya yang tersimpan di tabel gejala saat ini.
Gambar 4.43 Informasi semua gejala beserta IDnya
Gambar 4.44 Menuliskan ID gejala yang akan dihapus
Gambar 4.45 Halaman hasil delete gejala
61
b.
Penyakit
Jika admin ingin melakukan penghapusan salah satu jenis penyakit yang ada, maka sistem akan menampilkan kembali informasi semua jenis penyakit yang telah ada beserta IDnya. Hal ini diberikan untuk memudahkan admin memilih penyakit yang akan dihapus. Kemudian dari informasi yang ditampilkan, admin dapat menuliskan ID penyakit yang dipilih. Setelah menuliskan ID penyakit yang akan dihapus, maka sistem akan melakukan proses hapus data penyakit yang dipilih. Jika sistem berhasil, maka akan tampil pesan di layar bahwa proses tersebut berhasil. Untuk memastikan bahwa sistem telah berhasil melakukan proses delete tersebut, maka sistem akan menampilkan hasil berupa informasi semua jenis penyakit beserta IDnya yang tersimpan di tabel penyakit saat ini
Gambar 4.46 Informasi semua jenis penyakit paru anak serta IDnya
Gambar 4.47 Menuliskan ID penyakit yang akan dihapus
62
Gambar 4.48 Tampilan pesan jika proses delete data berhasil 4.2.2.3 UPDATE DATA Dalam proses update data ini, admin diberi pilihan untuk mengupdate gejala atau penyakit yang sudah ada.
Gambar 4.49 Pilihan proses update data
Gambar 4.50 Pilihan proses update data a.
Gejala penyakit
Apabila admin memilih untuk update data gejala penyakit, maka sistem akan menampilkan kembali semua gejala yang sudah ada beserta IDnya untuk dilihat kembali oleh admin. Sehingga admin dapat memilih gejala mana yang ingin di-edit. Jika admin sudah mengetahui
63
ID gejala mana yang ingin di edit, maka sistem akan meminta admin untuk menuliskan ID gejala yang dipilih. Bila proses update di atas berhasil, maka akan tampil pesan bahwa proses update telah berhasil. Selanjutnya, untuk memastikan bahwa proses update telah berhasil dilakukan, sistem akan menampilkan kembali isi tabel gejala beserta IDnya.
Gambar 4.51 Informasi semua ID dan gejala yang ada
Gambar 4.52 Informasi semua ID dan gejala sebelum ditambahakan
Gambar 4.53 ID gejala yang dipilih
64
Gambar 4.54 Nama gejala sebelum di-edit
Gambar 4.55 Nama gejala yang baru
Gambar 4.56 Pesan yang ditampilkan jika berhasil update
Gambar 4.57 Halaman hasil update gejala b.
Penyakit
65
Apabila admin memilih untuk melakukan proses edit data untuk update data penyakit, maka sistem akan menampilkan kembali isi tabel penyakit secara keseluruhan. Kemudian setelah tampilan di atas, maka sistem akan meminta admin untuk memasukkan ID penyakit yang dipilih untuk di-edit. Baru setelah itu, kita dapat menuliskan nama penyakit yang baru. Jika sistem berhasil untuk update data tersebut, maka akan ditampilkan pesan ini di layar. Untuk memastikan bahwa proses update data telah berhasil, maka sistem memberikan tampilan informasi semua nama gejala penyakit beserta IDnya yang telah tersimpan dalam tabel penyakit saat ini.
Gambar 4.58 Informasi semua nama penyakit beserta IDnya
Gambar 4.59 ID penyakit yang akan di-edit
66
Gambar 4.60 Nama penyakit sebelum di-edit
Gambar 4.61 Nama penyakit yang di-edit
Gambar 4.62 Tampilan pesan jika proses update berhasil
Gambar 4.63 Halaman hasil proses update nama penyakit
67
4.3 ANALISA PROGRAM Secara umum, hasil uji coba sistem pada emulator WAP, sistem aplikasi tidak dapat muncul pada layar. Hal ini disebabkan karena format file yang telah kita buat, berekstensi php bukan wml. Padahal, agar file dapat berjalan pada emulator, file harus berekstensi wml, dengan menggunakan Apache sebagai web server lokal. Sehingga alamat URL yang digunakan akan menjadi http://localhost/index.wml. Hasil dari uji coba sistem pakar untuk user umum telah memenuhi tujuan dari pembuatan sistem pakar yang telah dipaparkan pada bab I. Sistem pakar dapat melakukan proses penalaran suatu data yang berupa gejala ataupun penyakit untuk mencari suatu informasi terhadap suatu penyakit. Proses penalaran data dapat dilakukan dengan menggunakan proses forward dan backward chaining. Sedangkan dari hasil uji coba sistem pakar untuk user admin, diketahui bahwa sistem pakar bersifat fleksibel, dalam arti data di dalam sistem dapat diedit sesuai dengan keinginan user admin. Data-data tersebut antara lain berupa gejala, penyakit dan aturan –aturan yang mengaturnya sesuai dengan tree yang telah dibuat. User admin harus membuat tree terhadap suatu penyakit yang digunakan untuk mempermudah dalam proses penginputan data. Setelah tree dibuat, maka data dapat diinputkan melalui admin interface dan mengedit rule-rule yang mengaturnya sesuai dengan tabeltabel data yang telah dibuat. Mengapa tidak digunakan tabel data seperti di bawah ini ? Gejala/ Penyakit A B C D
1
2
3
4
1 1 1 1
1 1 0 0
1 0 0 0
0 0 1 0
Karena, jika menggunakan tabel data seperti di atas, sistem akan memberikan pertanyaan kepada user semua gejala yang tersimpan dalam database.
68
Apabila jumlah gejala yang ada berjumlah besar, misal 50 buah, tidak akan efektif untuk ditampilkan ke dalam perangkat mobile. Waktu dan tenaga user akan tersita banyak karena harus menjawab 50 pertanyaan tersebut, belum lagi biaya dan waktu user akan banyak terbuang. Sehingga bisa dikatakan sistem tidak bersifat user friendly. Sedangkan jika kita menggunakan desain tabel sebelumnya, dimana terdiri dari beberapa tabel dan ada relasi satu sama lain, maka kelemahan yang kita dapat ada pada proses delete data gejala penyakit. Proses delete gejala penyakit tersebut hanya dapat berjalan untuk kondisi tree yang memiliki satu percabangan saja. Jika kondisi data yang dihapus pada awalnya memiliki banyak percabangan, maka kondisi percabangan berikutnya akan hilang. Karena kelemahan inilah, untuk penghapusan gejala penyakit, sistem memberikan batasan bahwa gejala penyakit tersebut hanya memiliki sebuah percabangan saja di dalam tree yang telah dibuat. Sebab, jika memaksakan untuk dihapus meski memiliki percabangan banyak, maka akan banyak penyakit yang tidak terdeteksi karena tidak diketahuinya gejala-gejala klinisnya. Sebagai tambahan, perlu diketahui bahwa dalam penggunaan perangkat mobile yang sesungguhnya, akan tampil beberapa kejadian yang mungkin dapat dijelaskan sebagai berikut : Saat penggunaan file dengan ekstensi php dalam WAP, kita harus mencantumkan header di bawah ini jika file tersebut membutuhkan proses ke dalam database. Apabila proses database tidak diperlukan, maka tidak perlu mencantumkan heeder di bawah ini. ”); echo(””; ?>
WML
Penggunaan relasi antar dua tabel dalam WAP dapat dilakukan jika akes tabel dilakukan satu persatu terlebih dahulu. Misal, jika kita ingin melakukan query untuk dua tabel yang saling berelasi, terlebih dahulu kita melakukan query pada tabel pertama. Selanjutnya hasil dari query tabel pertama, kita gunakan sebagai input untuk query pada tabel kedua. Apabila kita langsung melakukan query pada dua tabel atau lebih
69
yang saling berelasi, maka dapat dipastikan akan terjadi pesan warning dari sistem. Selain itu, dalam hal pengiriman parameter pada file ekstensi php, proses yang dilakukan adalah pengiriman parameter oleh file asal, kemudian parameter ditangkap oleh file tujuan, baru parameter dapat diproses oleh file tujuan. Jika parameter tidak ditangkap oleh file tujuan, maka dapat dipastikan parameter akan bernilai kosong. Di bawah ini adalah sintaks yang digunakan untuk menangkap parameter pada file tujuan : $nama_parameter = $_POST(”nama_parameter”);
Keunikan yang terjadi saat uji coba aplikasi adalah pada pemilihan nomer jenis penyakit untuk menu Macam Penyakit. Khusus untuk pilihan penyakit nomer 7 tidak dapat diakses, pesan error yang tampil adalah 502 : bad error gateway. Hingga saat ini penyusun belum dapat menjelaskan mengapa hal ini dapat terjadi. Pada kenyataannya, perangkat mobile yang digunakan untuk uji coba aplikasi, tidak semua jenis perangkat mobile dapat mengakses. Dalam uji coba ini, digunakan perangkat mobile Siemens tipe C60, dengan operator seluler Indosat M3. Untuk perangkat mobile sejenis Nokia, penyusun pernah mencoba Nokia 6100, tetapi tidak mampu mengakses. Pesan error yang ditampilkan adalah file format unknown. Hingga sekarang, penyusun belum mengetahui apa alasan yang mungkin dapat menjelaskan kejadian tersebut.
70
BAB V PENUTUP
5.1 Simpulan Setelah dilakukan pengujian dan analisa program, maka dapat diperoleh simpulan sebagai berikut : • Sistem user yang telah dibuat mampu melakukan proses penalaran data baik dengan metode forward ataupun backward chaining. • Sistem admin dapat melakukan proses penambahan, penghapusan dan update data untuk gejala penyakit pada penyakit tertentu atau untuk penyakit itu sendiri. • Khusus untuk proses penghapusan data gejala penyakit, memiliki batasan tertentu berupa gejala yang akan dihapus tidak memiliki lebih dari satu percabangan. • Penggunaan file ekstensi php dalam WAP memungkinkan banyak hal-hal baru yang hanya terjadi untuk situasi tertentu. Mulai dari akses tabel, pengiriman parameter, hingga penggunaan header. 5.2 Saran Dari beberapa simpulan yang telah diambil, maka dapat dikemukakan saran-saran yang akan sangat membantu untuk pengembangan perangkat lunak ini selanjutnya. • Perlu diadakan penambahan data untuk jenis penyakit paru pada anak beserta gejala-gejala klinisnya sehingga informasi yang dimiliki akan semakin luas dan banyak. • Pada sistem admin, jika terjadi penambahan data yang lebih kompleks, admin haruslah mendesain tree dan database yang cukup fleksibel sehingga mampu memudahkan admin dalam melakukan manajemen sistem. Sedangkan untuk penggunaan sistem user, maka dapat dikemukakan saran-saran sebagai berikut :
71
•
Selain menu why seharusnya digunakan pilihan menu how, dimana menu how ini akan merepresentasikan metode forward chaining. Menu ini akan membantu sistem dalam menentukan percabangan selanjutnya setelah satu percabangan dilewati. Diharapkan untuk penyusun baru yang berminat mengembangkan judul proyek akhir ini, mampu menambahkan menu how pada sistem selanjutnya.
72
DAFTAR PUSTAKA 1.
Syarif, Iwan dan Badriyah, Tessy. 2002. Pembuatan Alat Bantu Ajar Sistem Pakar dengan Teknik Inferensi Backward Chaining. Surabaya. 2. Hakim, Lukmanul dan Musalini, Uus. 2005. 150 Rahasia dan Trik Menguasai PHP. Jakarta : PT Gramedia. 3. Wardhani Dyah, Paramita. 2004. Proyek Akhir “Sistem Pakar Untuk Mendeteksi Stadium Penyakit Kanker”. Surabaya 4. Seto, Rahdian 2005. ProyekAkhir “Sistem Pakar Untuk Deteksi Penyakit Pada Daerah Mulut”. Surabaya. 5. Staf Pengajar Ilmu Kedokteran Anak. 1985. Buku Kuliah 3 : Ilmu Kesehatan Anak. Jakarta : Fakultas Kedokteran Universitas Indonesia. 6. Nurhadi, Tyasno. 2003. Pemrograman WML dan WMLS : Hadirkan Diri Anda di Mobile Internet.Yogyakarta : Andi. 7. ...........................2003. Panduan Praktis Pengembangan Program WAP .Yogyakarta : Andi dan Semarang : Wahana Komputer. 8. ............................Informasi Mengenai Sistem Pakar. www.iel.ipb. ac.id/agrinetmedia/modul/aplikasi/spdt/isi/infoSP.htm. 9. ............................SistemPakar.www.iel.ipb.ac.id/agrinetmedia/ modul/aplikasi/servercabai/pakar.htm 10. ...........................WML Scripting Tips and Integration with PHP. www.developer.com.
LAMPIRAN
Tabel Penyakit Tree Kode Penyakit
Nama Penyakit
A B C D E F G H I J K L M N O P Q R S TO td
Bronkitis Asma Episodik Jarang Asma Episodik Sering Asma Kronik/Persisten Asma Episodik Berat dan Berulang Asma Persisten pada Bayi Asma Hipersekresi Asma karena Beban Fisik Asma dengan Alergen Batuk Malam Asma Buruk di Pagi Hari Bronkopneumonia Pneumonia Lobaris Bronkiolitis Akut Atelektasis Atelektasis Masif Emfisema Obstruktif Emfisema Bulosa Pneumotoraks Empiema Torasis tidak terdeteksi
Gejala batuk kering batuk berdahak setelah 2-3 hari suara ada lendir dahak kental dan kuning sesak napas sakit retrostenal (sakit di belakang tulang dada) mengi serangan 3-4x setahun gejala di malam hari takikardia (nadi cepat) tampak sakit berat hay fever suara napas berderak usia <3 tahun usia 3 - 6 tahun usia 8 - 13 tahun gangguan pertumbuhan ISPA (Infeksi Saluran Napas Atas) batuk disertai pilek pernapasan dangkal dan cepat anak menjadi gelisah sianotik (kebiruan) pernapasan cuping hidung (lewat mulut) disertai penyakit lain : asma,bronkitis terasa sakit setelah melakukan kegiatan fisik nyeri di dada terjadi 24 jam setelah operasi ronki bash dan nyaring (ada suara di paru-paru) krepitasi di daerah kulit (seperti ada udara di bawah kulit)
30 31 32 33 34 35 36 37
bersin suhu badan naik setelah terkena alergen batuk malam saat jam 1-4 pagi asma saat jam 1-4 pagi kejang disertai demam muntah disertai diare badan menggigil
Listing program : •
mcmpeny.php <wml>
<do type="accept" label="Back"> Macam-macam penyakit: "); $no=1; $indeks=array(); while($no<$jml){ for ($i=0;$i<($jml);$i++) { //ambil data pada baris ke-i $row = mysql_fetch_array($result); //tampilkan printf("%d. %s ",$no,$row["nama_peny"]); $id_p=$row["id_p"]; //printf(" %s ",$id_p["id_p"]); $jwb=$no; $indeks[$jwb]=$id_p; $no+=1; } } print(" "); ?> Pilihan Anda ? <do type="accept" label="Choose"> <postfield value="$jwb1" name="jwb1"/> <postfield value="" name="id_p"/>
•
konsul.php <wml>
WHERE FROM
$row = mysql_fetch_array($result); if($row!=null) { printf("Apakah anak Anda mengalami %s? ",$row["gejala_peny"]);
gejala
$sql="SELECT pertanyaan.tny_ya FROM WHERE Kode=$id"; $result=mysql_query($sql); $row = mysql_fetch_array($result); $id_ya=$row["tny_ya"];
pertanyaan
$sql="SELECT pertanyaan.tny_tdk FROM WHERE Kode=$id"; $result=mysql_query($sql); $row = mysql_fetch_array($result); $id_tdk=$row["tny_tdk"]; ?>
$file=$PHP_SELF; include("db.inc"); mysql_connect($host,$user,$pass); mysql_select_db($database); $sql="INSERT INTO penyakit (id_p,nama_peny) ('$id_p','$nama_peny')"; $result=mysql_query($sql);
VALUES
if($result){ printf("Anda berhasil menambah !");} else{ printf("Anda gagal menambah!");} ?>
mysql_connect($host,$user,$pass); mysql_select_db($database); //tambah ke tabel gejala $sql="INSERT INTO gejala (id_g,gejala_peny) VALUES ('$id_g','$gejala_peny')"; $result=mysql_query($sql); //tambah ke tabel gejala_penyakit $sql="INSERT INTO gejala_penyakit (id_g,id_p) VALUES ('$id_g','$id_p')"; $result=mysql_query($sql); if($result){ printf("Anda berhasil menambah !");} else{ printf("Anda gagal menambah!");} //nambah di tabel pertanyaan $sql="select * from pertanyaan"; $result=mysql_query($sql); $jum=mysql_num_rows($result); $a=$jum+1; sql="UPDATE pertanyaan SET tny_tdk='$a' Where Kode=52"; $result=mysql_query($sql); if($result){ printf("berhasil UPDATE");} else{ printf("gagal!");} printf(" "); $sql="INSERT INTO pertanyaan (Kode,tny_sblm,tny_skrg,tny_ya,tny_tdk) VALUES ('$a','52','$id_g','$id_p','Ptd')"; $result=mysql_query($sql); if($result){ printf("berhasil pertanyaan");} else{ printf("gagal!");} printf(" "); ?>
•
delg2.php
"); echo(""); ?> <wml>
<do type="accept" label="Back"> <do type="accept" label="Result"> $file=$PHP_SELF; include("db.inc"); mysql_connect($host,$user,$pass); mysql_select_db($database); $sql="DELETE FROM gejala WHERE id_g='$del'"; $result=mysql_query($sql); $sql="DELETE FROM gejala_penyakit WHERE id_g='$del'"; $result=mysql_query($sql); //proses update $sql="select * from pertanyaan "; $result=mysql_query($sql); $jum=mysql_num_rows($result); $x=$jum; for($i=0;$i<$jum;$i++){ $kod=$i; $sql="select * from pertanyaan where Kode=$kod"; $result=mysql_query($sql); $row=mysql_fetch_row($result); if($row[2]==$del){ $x=$row[0]; $sql="delete from pertanyaan where Kode=$x "; $result=mysql_query($sql); $sql="UPDATE pertanyaan SET Kode=Kode-1 where Kode > $x"; $result=mysql_query($sql);
for($j=$x;$j<$jum;$j++){ $sql="select * from pertanyaan Kode=$j"; $result=mysql_query($sql); $row=mysql_fetch_row($result);
where
$satu=$row[1]; settype($satu,"integer"); if($satu>=$x){ $satu=$satu-1;} $tiga=$row[3]; if(strcmp($ya=$tiga{0},"P")!=0){ (settype($tiga,"integer")); if($tiga<$x){ $ya=$tiga;} else{ $ya=$tiga-1;} settype($ya,"string"));} else $ya=$tiga; $empat=$row[4]; if(strcmp($tdk=$empat{0},"P")!=0){ (settype($empat,"integer")); if($empat<$x){ $tdk=$empat;} else{ $tdk=$empat-1;} (settype($tdk,"string"));} else $tdk=$empat; $sql="UPDATE pertanyaan SET tny_sblm=$satu,tny_ya='$ya',tny_tdk='$tdk' where Kode = $j"; $result=mysql_query($sql); } } } if($result){ printf("Anda berhasil menghapus !");} else{ printf("Anda gagal menghapus!");} ?>
•
delp2.php
"); echo(""); ?> <wml>
<do type="accept" label="Back"> <do type="accept" label="Result"> $file=$PHP_SELF; include("db.inc"); mysql_connect($host,$user,$pass); mysql_select_db($database); //hapus di tabel penyakit $sql="DELETE FROM penyakit WHERE id_p='$id_p'"; $result=mysql_query($sql); //hapus di tabel gejala penyakit $sql="DELETE FROM gejala_penyakit WHERE id_p='$id_p'"; $result=mysql_query($sql); //tabel pertanyaan $sql="select * FROM pertanyaan WHERE tny_ya='$id_p' OR tny_tdk='$id_p'"; $result=mysql_query($sql); $row=mysql_fetch_row($result); $tiga=$row[3]; if($tiga==$id_p){ $tiga="Ptd";} $empat=$row[4]; if($empat==$id_p) $empat="Ptd";
$sql="UPDATE pertanyaan SET tny_ya='$tiga',tny_tdk='$empat' WHERE tny_ya='$id_p' OR tny_tdk='$id_p'"; $result=mysql_query($sql); if($result){ printf("Anda berhasil menghapus !");} else{ printf("Anda gagal menghapus!");} ?>
•
upgej3.php
"); echo(""); ?> <wml>
<do type="accept" label="Back"> <do type="accept" label="Result"> $file=$PHP_SELF; include("db.inc"); mysql_connect($host,$user,$pass); mysql_select_db($database); $sql="UPDATE gejala SET gejala_peny='$gejala_peny' WHERE id_g='$id_g'"; $result=mysql_query($sql); if($result){ printf("Anda berhasil meng-update !");} else{ printf("Anda gagal meng-update!");} ?>
•
uppeny3.php
"); echo(""); ?> <wml>
<do type="accept" label="Back"> <do type="accept" label="Result"> $file=$PHP_SELF; include("db.inc"); mysql_connect($host,$user,$pass); mysql_select_db($database); $sql="UPDATE penyakit SET nama_peny='$nama_peny' WHERE id_p='$id_p'"; $result=mysql_query($sql); if($result){ printf("Anda berhasil meng-update !");} else{ printf("Anda gagal meng-update!");} ?>
BIODATA PENYUSUN Nama NRP Tempat/ Tanggal Lahir Alamat E-mail
:Deasy Astrid Natalia :7403.030.037 :Surabaya, 28 Desember 1985 :Jagir Sidoresmo 6- 43 Surabaya 60244 :[email protected]