lembar pengesahan -...
TRANSCRIPT
i
LEMBAR PENGESAHAN
Judul Penulisan Ilmiah : SISTEM PAKAR DIAGNOSIS PENYAKIT
TERNAK KAMBING
Nama : Daniel Fernando Manullang
NPM : 065106186
Fakultas/Jenjang : Matematika Dan Ilmu Pengetahuan Alam
Jurusan : Ilmu Komputer
Mengesahkan,
Pembimbing II Pembimbing I
(Diat Nurhidayat, MTI) (Tjut Awaliyah Z., M. Kom.)
Mengetahui,
Ketua Jurusan Ilmu Komputer Dekan Fakultas MIPA
(Prihastuti Harsani, M.Si) (Dr. Prasetyorini)
ii
PERNYATAAN KEASLIAN KARYA TULIS TUGAS AKHIR
Dengan ini saya :
Nama : Daniel Fernando Manullang
NPM : 065106186
Jurusan : Ilmu Komputer
Menyatakan bahwa :
Sejauh ini yang saya ketahui, karya tulis ini bukan merupakan karya tulis
yang pernah dipublikasikan atau sudah pernah dipakai untuk mendapatkan gelar
sarjana di Universitas lain, kecuali pada bagian-bagian tertentu dimana sumber
informasinya dicantumkan dengan cara referensi yang semestinya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya.
Apabila kelak dikemudian hari terdapat gugatan, penulis bersedia dikenakan
sanksi sesuai dengan peraturan yang berlaku.
Bogor, 31 Oktober 201
(Daniel Fernando Manullang)
iii
RIWAYAT HIDUP
Penulis dilahirkan di Medan pada tanggal 29 Januari 1988 dari pasangan N.P. Manullang dan R. br. Manurung (Alm), sebagai anak pertama dari 4 (empat) bersaudara.
Penulis memulai pendidikan di SDN 060931 Medan, lulus pada tahun 1999. Tahun 2002 penulis menyelesaikan Sekolah Lanjut Tingkat Pertama (SLTP) di SLTP Katolik Trisakti I - Medan. Penulis menyelesaikan Sekolah Menengah Atas (SMA) Katolik Trisakti Medan tahun 2005 dan melanjutkan pendidikan ke Universitas Pakuan, Fakultas Matematika dan Ilmu Pengetahuan Alam, Jurusan Ilmu Komputer.
Pada tahun 2010 penulis melakukan praktek lapang di GPIB – Cileungsi. Pada tahun 2011 penulis memulai studi literatur mengenai pengendalian penyakit pada hewan ternak kambing, yang menjadi awal dibuatnya penulisan ini yang berjudul Sistem Pakar Diagnosis Penyakit Ternak Kambing.
iv
RINGKASAN
Daniel Fernando Manullang, 065106186, Sistem Pakar Diagnosis
Penyakit Ternak Kambing. Dibimbing oleh Tjut Awaliyah dan Diat Nurhidayat.
Perkembangan teknologi di dunia saat ini sangat maju pesat disegala
bidang. Dalam perkembangannya, teknologi diharapkan bisa mempermudah
user/pemakai dalam mengakses untuk memperoleh informasi yang diinginkan
dengan lebih mudah dan nyaman dimana saja. Dalam mendapatkan informasi
yang diperlukan oleh user/pemakai saat ini telah dikembangkan teknologi yang
berupa aplikasi berbasis web. Dengan menggunakan aplikasi yang telah berbasis
web maka user/pemakai dapat dengan mudah dalam pengaksesan informasi
dimana saja secara online.
Sistem pakar diagnosis penyakit ternak kambing merupakan sebuah sistem
yang berbasiskan website yang berfungsi untuk mendiagnosa penyakit yang
mungkin diderita oleh ternak kambing, dengan beberapa fakta gejala yang
diperlihatkan ternak kambing dan di berikan user/pemakai kepada sistem. Setelah
dibuat kesimpulan tentang penyakit yang mungkin diderita oleh ternak kambing,
sistem juga akan memberikan saran pengendalian yang bisa diterapkan
user/pemakai kepada ternak kambing yang menderita penyakit tersebut. Sistem
pakar diagnosis penyakit ternak kambing ini dikembangkan dengan menggunakan
bahasa pemrograman php. Tahap pengembangan sistem ini menggunakan siklus
System Development Life Cycle (SDLC), dimana tahapan dimulai dari proses
analisis masalah, proses pengambilan data, pembuatan interface program,
perancangan diagram sistem dengan menggunakan DFD (Data Flow Diagram),
pembuatan kode program penyusun sistem memanfaatkan bahasa pemrograman
php.
v
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena atas
berkah rahmat dan karunia-Nya penulis dapat menyelesaikan penulisan tugas
akhir dengan judul “Sistem Pakar Diagnosis Penyakit Ternak Kambing” tepat
pada waktunya. Adapun penulisan ini ditulis guna melengkapi syarat untuk
mencapai gelar Sarjana Strata Satu (S1) Jurusan Ilmu Komputer Fakultas
Matematika dan Ilmu Pengetahuan Alam Universitas Pakuan.
Penulisan tugas akhir ini tidak lepas dari dukungan bantuan dan bimbingan
berbagai pihak. Dalam kesempatan ini penulis mengucapkan terima kasih dan
penghargaan yang sebesar-besarnya kepada :
1. Ibu Tjut Awaliyah Z, M.Kom selaku pembimbing I dan Bapak Diat Nurhidayat, MTI selaku pembimbing II, yang telah banyak memberikan bimbingan, dukungan dan semangat hingga terselesaikannya tugas akhir.
2. N.P. Manullang dan R. br. Manurung (Alm) yang telah melahirkan dan membesarkan penulis serta ketiga adik tercinta, Andry, Debby dan Yohana untuk doa dan motivasinya.
3. Eko Fridi Ismanto yang telah memberikan semangat dan motivasi kepada penulis.
4. Haben, Titus, Yudha, Agan dan Della untuk doa dan dorongan semangat yang diberikan kepada penulis baik berupa materil dan spiritual.
5. Teman-teman satu angkatan 2006 jurusan Ilmu Komputer Ciangsana.
6. Seluruh pihak yang telah memberikan dukungan dan dorongan baik secara langsung maupun tidak langsung yang tidak dapat penulis sebutkan satu persatu.
Penulis menyadari bahwa penulisan skripsi ini jaduh dari kesempurnaan
karena keterbatasan kemampuan ilmu dan pengetahuan yang dimiliki oleh
penulis, walaupun usaha untuk meminimalisasikan kekurangan telah banyak
ditempuh oleh penulis. Oleh karena itu kritik dan sumbang saran posotif yang
sifatnya membangun akan penulis terima dengan tangan terbuka.
vi
Akhirnya penulis berharap semoga apa yang disajikan dalam penulisan ini
dapat bermanfaat dan memberi tambahan ilmu bagi penulis dan teman-teman
maupun pihak lain yang berkepentingan. Amin.
Bogor, 31 Oktober 2011
Daniel Fernando Manullang
vii
DAFTAR ISI
DAFTAR ISI ................................................................................................................................... I
BAB I ........................................................................................................................................... 1
PENDAHULUAN ........................................................................................................................... 1
1.1 LATAR BELAKANG ............................................................................................................ 1 1.2 TUJUAN PENELITIAN ......................................................................................................... 2 1.3 RUANG LINGKUP ............................................................................................................. 2 1.4 MANFAAT PENULISAN....................................................................................................... 2 1.5 SISMETIKA PENULISAN ...................................................................................................... 3
BAB II .......................................................................................................................................... 3
TINJAUAN PUSTAKA .................................................................................................................... 3
2.1 INTERNET....................................................................................................................... 3 2.2 PENGENALAN PHP........................................................................................................... 3 2.3 KECERDASAN BUATAN ...................................................................................................... 4 2.4 SISTEM PAKAR ................................................................................................................ 5
2.4.1 Manfaat Sistem Pakar ............................................................................................. 6 2.5 Kategori Sistem Pakar ............................................................................................. 6 2.6 Struktur Sistem Pakar .............................................................................................. 8 2.6.1 Antarmuka Pengguna ............................................................................................. 9 2.6.2 Basis Pengetahuan ................................................................................................ 10 2.6.3 Akuisisi Pengetahuan ............................................................................................ 10 2.6.4 Mesin Inferensi ..................................................................................................... 12 2.6.5 Blackboard (Tempat Kerja) .................................................................................... 13 2.6.6 Fasilitas Penjelasan (Justifier) ................................................................................ 14 2.6.7 Perbaikan Pengetahuan ........................................................................................ 14
2.7 REPRESENTASI PENGETAHUAN .......................................................................................... 14 2.8 REPRESENTASI DALAM LOGIKA DAN SKEMA LAINNYA .............................................................. 14 2.9 ATURAN PRODUKSI ........................................................................................................ 15 2.10 BASIS DATA .................................................................................................................. 17 2.11 MODEL DATA ............................................................................................................... 17 2.12 SISTEM MANAJEMEN BASIS DATA (SMBD) ......................................................................... 18 2.13 POPULASI KAMBING ....................................................................................................... 19 2.14 PENYAKIT PADA KAMBING ................................................................................................ 19
BAB III ....................................................................................................................................... 21
METODOLOGI PENELITIAN ........................................................................................................ 21
3.1 KERANGKA PEMIKIRAN .................................................................................................... 21 3.2 METODOLOGI PENGEMBANGAN SISTEM .............................................................................. 21 3.3 TAHAP ANALISIS ............................................................................................................ 22
3.3.1 Tahap Perancangan .............................................................................................. 22 3.3.2 Tahap Implementasi ............................................................................................. 23 3.3.3 Tahap Pengujian ................................................................................................... 23
viii
3.3.4 Tahap Penggunaan ............................................................................................... 24 3.4 PENGUMPULAN DATA ATAU INFORMASI .............................................................................. 24
BAB IV ....................................................................................................................................... 24
PERANCANGAN DAN IMPLEMENTASI........................................................................................ 24
4.1 ANALISIS SISTEM ........................................................................................................... 24 4.1.1 Analisis Masalah ................................................................................................... 24 4.1.2 Identifikasi Kebutuhan .......................................................................................... 25
4.1.2.1 Analisis Kebutuhan Fungsional .................................................................................. 25 4.1.2.2 Analisis Kebutuhan non Fungsional ........................................................................... 25
4.1.3 Deskripsi Sistem .................................................................................................... 26 4.2 PERANCANGAN SISTEM ................................................................................................... 26
4.2.1 Perancangan Basis Pengetahuan........................................................................... 27 4.2.2 Mesin Inferensi ..................................................................................................... 32 4.2.3 Perancangan Tabel untuk Basis Data..................................................................... 35
4.2.3.1 Tabel ........................................................................................................................ 35 4.2.3.2 Hubungan Antar Tabel .............................................................................................. 37
4.2.4 Perancangan Proses .............................................................................................. 38 4.3 STRUKTUR NAVIGASI ...................................................................................................... 41 4.4 PERANCANGAN ANTARMUKA ............................................................................................ 43 4.5 IMPLEMENTASI .............................................................................................................. 49
BAB V ........................................................................................................................................ 51
HASIL DAN PEMBAHASAN ......................................................................................................... 51
5.1 TAMPILAN HALAMAN HOME GUEST ................................................................................... 51 5.2 TAMPILAN HALAMAN DIAGNOSA ....................................................................................... 52 5.3 TAMPILAN HALAMAN KESIMPULAN PENYAKIT ....................................................................... 53 5.4 TAMPILAN HALAMAN SARAN PENGENDALIAN ....................................................................... 54 5.5 TAMPILAN HALAMAN GEJALA ........................................................................................... 55 5.6 TAMPILAN HALAMAN TAMBAH GEJALA ............................................................................... 56 5.7 TAMPILAN HALAMAN EDIT GEJALA .................................................................................... 57 5.8 TAMPILAN HALAMAN PENYAKIT ........................................................................................ 58 5.9 TAMPILAN HALAMAN TAMBAH PENYAKIT ............................................................................ 59 5.10 TAMPILAN HALAMAN EDIT PENYAKIT .................................................................................. 60 5.11 TAMPILAN HALAMAN PENGENDALIAN................................................................................. 61 5.12 TAMPILAN HALAMAN TAMBAH PENGENDALIAN .................................................................... 62 5.13 TAMPILAN HALAMAN EDIT PENGENDALIAN .......................................................................... 63 5.14 TAMPILAN HALAMAN BASIS ATURAN PENYAKIT..................................................................... 64 5.15 TAMPILAN HALAMAN PERBAHARUI ATURAN PENYAKIT ........................................................... 65 5.16 TAMPILAN HALAMAN PERBAHARUI ATURAN PENGENDALIAN .................................................... 66 5.17 TAMPILAN HALAMAN INFORMASI ...................................................................................... 67 5.18 TAMPILAN HALAMAN HUBUNGI KAMI ................................................................................ 68 5.19 UJI COBA ..................................................................................................................... 69
5.19.1 Uji Coba Fungsional .......................................................................................... 70 5.19.2 Uji Coba Validasi ............................................................................................... 71
BAB VI ....................................................................................................................................... 63
ix
KESIMPULAN DAN SARAN ......................................................................................................... 63
6.1 KESIMPULAN ................................................................................................................ 63 6.2 SARAN ........................................................................................................................ 63
DAFTAR PUSTAKA ..................................................................................................................... 64
LAMPIRAN ................................................................................................................................ 65
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Peternakan mempunyai arti yang penting bagi manusia, selama manusia
hidup, selama itu juga peternakan tetap akan ada. Hal itu disebabkan karena,
makanan merupakan kebutuhan manusia paling pokok selain udara dan air.
Makanan yang merupakan salah satu hasil peternakan adalah daging. Daging
dapat diperoleh dari hewan yang diternak sebagai salah satu makanan untuk
penyeimbang asupan gizi yang dibutuhkan oleh tubuh manusia pada umumnya.
Hal yang sering terjadi, banyak kerugian yang diakibatkan karena adanya
penyakit pada ternak yang terlambat untuk didiagnosis dan sudah mencapai pada
tahap serius sehingga menyebabkan terjadinya gagal produksi. Sebenarnya setiap
penyakit yang diderita ternak sebelum mencapai tahap yang lebih serius dan
meluas umumnya menunjukkan gejala-gejala penyakit yang diderita tetapi masih
dalam tahap yang ringan dan masih sedikit. Tetapi peternak sering mengabaikan
hal ini karena ketidaktahuannya dan menganggap gejala tersebut sudah biasa
terjadi pada masa ternak, sampai suatu saat timbul gejala yang sangat serius dan
meluas, sehingga sudah terlambat untuk dikendalikan.
Ahli peternakan dalam hal ini mempunyai kemampuan untuk menganalisa
gejala-gejala penyakit pada ternak tersebut, tetapi untuk mengatasi semua
permasalahan yang dihadapi peternak terkendala oleh waktu dan banyaknya
peternak yang mempunyai masalah dengan ternaknya. Jumlah yang tidak
signifikan antara peternak dan ahli peternakan juga dapat menjadi alasan. Oleh
karena itu, pada penelitian ini akan dibuat suatu aplikasi sistem pakar yang
memberikan informasi mengenai virus atau bakteri yang menginfeksi ternak dan
dapat mendiagnosa gejala-gejala penyakit ternak, khususnya ternak kambing,
sekaligus memberikan solusi penanggulangannya, yang nantinya diharapkan dapat
mengurangi atau memperkecil resiko kematian ternak. Implementasi sistem pakar
ini dibuat dengan berbasis web agar dapat diakses dan dimanfaatkan masyarakat
secara luas.
2
Metode yang digunakan dalam penelitian ini menggunakana teknik
inferensi, sedangkan persoalan yang dibahas mengenai diagnosa penyakit pada
kambing. Sistem pakar ini dibuat berbasis web dengan menggunakan PHP dan
database Mysql yang sangat ringan dan mudah diakses. Hasil penelitian ini
diharapkan dapat dimanfaatkan oleh peternak untuk mendiagnosa penyakit pada
ternak kambingnya, sehingga peternak tidak harus menunggu kehadiran seorang
pakar peternakan untuk mendiagnosa penyakit pada ternak kambing.
1.2 Tujuan Penelitian
Tujuan penelitian adalah untuk membuat Rancangan dan Implementasi
Sistem Pakar Untuk Diagnosis Penyakit Pada Ternak Kambing.
1.3 Ruang Lingkup
Dalam penulisan ini pembahasan akan dibatasi pada ruang lingkup sebagai
berikut:
1. Metode yang digunakan dalam pengambilan keputusan yaitu Metode Rule
inference.
2. Membahas gejala penyakit pada ternak kambing yang hanya terdapat pada
database sistem (sistem tidak menerima gejala yang dimasukkan secara
manual oleh user).
3. Aplikasi dibuat dengan memanfaatkan PHP sebagai bahasa pemrograman
web server, HTML dan CSS sebagai interface (tampilan antar muka) dan
MySql untuk menyimpan dan mendokumentasikan struktur data.
1.4 Manfaat Penulisan
Adapun manfaat penulisa yang diharapkan dapat dicapai dari penelitian dan
penulisan Tugas Akhir (TA) ini adalah sebagai berikut :
1. Dapat melakukan diagnosa penyakit tanpa bertemu langsung dengan pakar dan aplikasi ini berbasis web sehingga tak terbatas tempat dan waktu.
2. Dengan adanya sistem pakar berbasis web ini dapat memberikan kemudahan dalam hal mengakses dan memperoleh informasi yang berhubungan dengan peternakan (ternak kambing) yang cepat.
3
1.5 Sismetika Penulisan
BAB I : PENDAHULUAN
Pada pendahuluan membahas tentang latar belakang,
batasan masalah, tujuan penulisan, metode penelitian dan
sistematika penulisan.
BAB II : TINJAUAN PUSTAKA
Tinjauan teori yang menerengkan teori-teori yang
berhubungan dengan penulisan ini serta tinjauan pustaka
tentang teknologi sistem pakar yang berbasis bahasa
pemrograman web PHP, MySQL, Pengendalian Penyakit
Kambing dan DFD sebagai pendukung pembuatan sistem
dan aplikasi program.
BAB III : METODOLOGI PENELITIAN
Untuk metodologi penelitian sistem menggunakan System
Development Life Cycle (SDLC).
BAB IV : PERANCANGAN DAN IMPLEMENTAS
Sedangkan untuk perancangan sistem membahas tentang
perancangan DFD sistem, relasi antar tabel database,
perancangan database dan perancangan tampilan.
Implementasi sistem menjelaskan langkah pembuatan
website, ujicoba dan proses pembaharuan pengetahuan pada
basis data sistem pakar diagnosis penyakit ternak kambing.
BAB V : HASIL DAN PEMBAHASAN
Membahas tentang bentuk tampilan sistem pakar diagnosis
penyakit ternak kambing yang user friendly dan sudah bisa
dipakai oleh pengguna.
BAB VI : KESIMPULAN DAN SARAN
Berisi tentang kesimpulan dan saran penulis dalam
pembuatan sistem pakar diagnosis penyakit ternak kambing
ini.
3
BAB II
TINJAUAN PUSTAKA
2.1 Internet
Internet adalah sebuah alat penyebaran informasi secara global, sebuah
mekanisme penyebaran informasi dan sebuah media untuk berkolaborasi dan
berinteraksi antar individu dengan menggunakan sebuah komputer tanpa terhalang
batas geografis.
Sejarah berkembangnya teknologi ini melibatkan 4 aspek berbeda yang
saling berintegrasi, yatu:
7. Aspek tekonologi, yaitu di awali dengan sebuah riset dalam packet switching dan ARPANET (dan teknologi lain yang terkait) kemudian diikuti oleh pengembang infrastruktur untuk berbagai macam dimensi, seperti ukuran, kinerja dan fungsi-fungsi level atas lainnya.
8. Aspek operasional dan manajemen, yaitu untuk mengatur secara operasional infrastruktur yang kompleks dan bekerja secara global.
9. Aspek sosial , yaitu aspek ini menghasilkan suatu komunitas internet yang luas dimana mereka saling bekerja sama untuk mengembangkan teknologi baru.
10. Aspek komersial, yaitu dengan menghasilkan suatu perubahan yang sangat efektif dari sebuah hasil penelitian menjadi sebuah infrastruktur penyedia dan penyebar informasi yang dapat mencakup wilayah yang luas.
2.2 Pengenalan PHP
PHP adalah sebuah bahasa script server-side yang dirancang secara khusus
untuk membangun aplikasi web. Dengan sebuah halaman HTML, kita dapat
menyisipkan kode PHP yang akan dilakukan setiap saat mengunjungi halaman
HTML. Kode PHP diinterpretasikan pada web server dan menghasilkan HTML
atau output lain yang dapat dilihat oleh pengunjung web.
PHP dikembangkan pada tahun 1994 dan murni merupakan pekerjaan
seorang pria bernama Rasmus Lerdorf. PHP diadopsi oleh orang-orang berbakat
lainnya dan telah berpindah melalui 3 penulisan ulang penting yang membawa
4
kita pada produk yang matang dan luas yang kita lihat sekarang. Pada akhir
Januari 2001, PHP digunakan hampir di 5 juta daerah diseluruh dunia, dan jumlah
ini berkembang dengan cepat. PHP adalah produk open source, yang berarti kita
mempunyai akses ke kode sumber. Kita dapat menggunakannya, mengubahnya
dan mendistribusikannya kembali tanpa biaya. Tidak seperti produk-produk
sumber tertutup komersil. Jika ada sesuatu yang kita ingin modifikasi atau
menambahkan pada bahasa pemrogramnya, kita bebas melakukannya.
Dibandingkan dengan produk-produk lain, PHP mempunyai banyak
kekuatan, yaitu sebagai berikut :
1. Performance tinggi
PHP sangat efisien, menggunakan sebuah server single yang tidak mahal, kita
dapat mengerjakan jutaan bit perhari.
2. Dapat berhadapan dengan banyak sistem database yang berbeda Integrasi database, PHP dapat berhubungan secara langsung dengan banyak sistem database. Menggunakan Open Database Connectivity Standard (ODBC), kita dapat berhubungan ke database apapun yang menyediakan sebuah driver ODBC. Termasuk produk-produk Microsoft, dan banyak lainnya.
2.3 Kecerdasan Buatan
Kecerdasan buatan (artificial intelligent) merupakan salah satu bagian ilmu
komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan
seperti yang sebaik dilakukan manusia. Hal ini dilakukan dengan mempelajari
bagaimana manusia berpikir ketika manusia mencoba untuk membuat suatu
keputusan dan memecahkan masalah, membagi–bagi proses berpikir tersebut
menjadi langkah-langkah dasar dan merancang suatu program komputer yang
akan memecahkan masalah dengan mempergunakan langkah-langkah yang sama.
Kecerdasan buatan dipelajari dalam beberapa bidang, seperti: Robotika dan
Sistem Sensor, Penglihatan Komputer (Computer Vision), Sistem Saraf Tiruan
(Artificial Neural System), Agen Cerdas (Intelligent Agent) Pengenalan Suara
5
(Speech Recognition), Permainan (Game Playing) dan Sistem Pakar (Expert
System).
2.4 Sistem Pakar
Sistem pakar pertama kali dikembangkan oleh komunitas AI pada
pertengahan tahun 1960. Sistem pakar yang muncul pertama kali adalah General
Purpose Problem Solver (GPS) yang dikembangkan oleh Newel & Simon
(Turban,1995).
Beberapa defenisi yang ada untuk sistem pakar (expert system) :
a. Sistem Pakar (Expert System) adalah suatu cabang ilmu dari Kecerdasan
Buatan (Artificial Intelligent) yang digunakan secara luas untuk pengetahuan
(keahlian) khusus dalam memecahkan suatu masalah layaknya seorang pakar.
b. Sistem pakar adalah sistem yang menggunakan pengetahuan manusia (ahli)
yang terekam dalam komputer untuk memecahkan persoalan yang biasanya
memerlukan keahlian manusia.
c. Konsep dasar sistem pakar mencakup beberapa persoalan mendasar, antara lain
apa yang dimaksud dengan keahlian, siapa yang disebut pakar, bagaimana
keahlian dapat ditransfer, dan bagaimana sistem bekerja.
d. Pakar adalah orang yang memiliki pengetahuan, penilaian, pengalaman, dan
metode khusus, serta kemampuan untuk menerapkan bakat ini dalam memberi
nasehat dan memecahkan persoalan. Adalah tugas pakar untuk menyediakan
pengetahuan tentang bagaimana melaksanakan suatu tugas yang akan
dijalankan oleh sistem berbasis pengetahuan. Pengertian lain dari pakar ialah
orang yang memiliki keahlian dalam suatu hal, yaitu memiliki pengetahuan
atau keahlian khusus yang tidak diketahui dan tidak ada pada kebanyakan
orang.
6
e. Keahlian adalah pengetahuan ekstensif yang spesifik terhadap tugas yang
dimiliki pakar. Tingkat keahlian menentukan performa keputusan. Keahlian
sering dicapai dari pelatihan, membaca, dan mempraktikan. Keahlian
mencakup pengetahuan eksplisit, misalnya teori yang dipelajari dari buku teks
atau kelas, dan pengetahuan implisit yang diperoleh dari pengalaman.
2.4.1 Manfaat Sistem Pakar
Secara garis besar, ada banyak manfaat bila menggunakan sistem pakar.
Beberapa diantaranya yaitu :
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. Mampu mengambil dan melestarikan keahlian para pakar (terutama yang
termasuk keahlian langka)
5. Mampu beroperasi dalam keadaan berbahaya.
6. Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan
mengandung ketidakpastian.
7. Suatu sistem pakar dapat diberi pengamanan untuk menentukan siapa saja
yang mempunyai hak akses untuk menggunakannya dan jawaban yang
diberikan oleh sistem terbebas dari proses intimidasi/ancaman, sedangkan
seorang pakar bisa saja mendapat ancaman atau tekanan pada saat
menyelesaikan masalah.
8. Umumnya kecepatan dalam memecahkan masalah pada suatu sistem pakar
relatif lebih cepat dibandingkan oleh seorang pakar manusia.
2.5 Kategori Sistem Pakar
Secara umum sistem pakar dapat diklasifikasikan dalam beberapa area
permasalahan, yaitu :
1. Interpretasi, yaitu pengambilan keputusan atau deskripsi tingkat tinggi dari
sekumpulan data mentah, termasuk diantaranya juga pengawasan, pengenalan
ucapan, analisis citra, interpretasi sinyal, dan beberapa analisis kecerdasan.
7
2. Prediksi, yaitu memprediksi akibat-akibat yang dimungkinkan dari situasi-
situasi tertentu, diantaranya peramalan, prediksi demografis, peramalan
ekonomi, prediksi lalu lintas, estimasi hasil, militer, pemasaran atau peramalan
keuangan.
3. Diagnosis, yaitu menentukan sebab mal fungsi dalam situasi kompleks yang
didasarkan pada gejala-gejala yang teramati, diantaranya medis, elektronis,
mekanis dan diagnosis perangkat lunak.
4. Desain, yaitu menentukan konfigurasi komponen-komponen sistem yang
cocok dengan tujuan- tujuan kinerja tertentu yang memenuhi kendala-kendala
tertentu diantaranya layout circuit dan perancangan bangunan.
5. Perencanaan, yaitu fokus pada persoalan perencanaan, misalnya pemrograman
otomatis. Juga menangani perencanaan jangka pendek dan panjang pada area
seperti manajemen proyek, routing, komunikasi, pengembangan produk,
aplikasi militer, dan perencanaan keuangan.
6. Sistem pengawasan, yaitu membandingkan observasi kelakuan sistem dengan
standar yang tampaknya penting untuk keberhasilan pencapaian tujuan. Fitur
penting ini berhubungan dengan kecacatan potensial dalam rencana tersebut.
Terdapat banyak sistem pengawasan dengan bantuan komputer untuk topik dari
kontrol arus lalu lintas udara hingga tugas manajemen fiskal.
7. Debugging, yaitu mengandalkan pada kemampuan perencanaan, desain,
prediksi untuk membuat spesifikasi atau rekomendasi untuk membetulkan
persoalan diagnosis.
8
8. Perbaikan, yaitu mengembangkan dan mengeksekusi rencana untuk mengelola
perbaikan persoalan diagnosis tertentu. Sistem tersebut menggabungkan
kemampuan debugging, perencanaan, dan eksekusi.
9. Instruksi, yaitu mendeteksi dan mengoreksi defisiensi dalam pemahaman
domain subjek, diantaranya melakukan instruksi untuk diagnosis, debugging
dan perbaikan kerja.
10. Kontrol, yaitu secara adaptif mengatur keseluruhan kelakuan sistem. Untuk
melakukan ini, sistem kontrol harusa berulang kali menginterpretasikan situasi
terbaru, memprediksi masa depan, mendiagnosis penyebab persoalan yang
terantisipasi, merumuskan rencana pemulihan, dan mengawasi eksekusinya
untuk memastikan keberhasilan.
2.6 Struktur Sistem Pakar
Sistem pakar dapat ditampilkan dengan dua lingkungan, yaitu lingkungan
pengembangan (development environment) dan lingkungan konsultasi
(consultation environment) (Gambar 1). Lingkungan pengembangan digunakan
oleh sistem pakar (ES) builder untuk membangun komponen dan memasukkan
pengetahuan ke dalam basis pengetahuan. Lingkungan konsultasi digunakan oleh
nonpakar untuk memperoleh pengetahuan dan nasihat pakar. Lingkungan ini
dapat dipisahkan setelah sistem lengkap (Turban, 1995).
9
Gambar 1 Struktur Sistem Pakar
Tiga komponen utama yang tampak secara virtual di setiap sistem pakar
adalah basis pengetahuan, mesin inferensi, dan antarmuka pengguna. Selain
antarmuka pengguna, basis pengetahuan, dan mesin inferensi, dari struktur sistem
pakar yang terdapat pada gambar diatas mengandung komponen lain, yaitu
akuisisi pengetahuan, blackboard, fasilitas penjelasan, dan perbaikan
pengetahuan. ( Turban, Efraim, 2005 )
2.6.1 Antarmuka Pengguna
Antarmuka pemakai merupakan mekanisme yang digunakan oleh pengguna
dan sistem pakar untuk berkomunikasi. Pada bagian ini terjadi dialog antara
program dan pemakai, yang memungkinkan sistem pakar menerima instruksi dan
informasi (input) dari pemakai, juga memberikan informasi (output) kepada
pemakai.
10
2.6.2 Basis Pengetahuan
Basis pengetahuan berisi pengetahuan relevan yang diperlukan untuk
memahami, merumuskan, dan memecahkan persoalan. Basis tersebut mencakup
dua elemen dasar, yaitu :
1. Fakta, misalnya situasi persoalan dan teori area persoalan.
2. Heuristik atau aturan khusus yang mengarahkan penggunaan pengetahuan
untuk memecahkan persoalan khusus dalam domain tertentu. Heuristik
menyatakan pengetahuan penilaian informasi dalam area aplikasi.
Pada basis pengetahuan terdapat 2 (dua) bentuk pendekatan basis
pengetahuan yang umum, yaitu :
1. Rule-based Reasoning (Penalaran berbasis pengetahuan)
Pada penalaran berbasis aturan, pengetahuan direpresentasikan dengan
menggunakan aturan berbentuk: IF-THEN. Bentuk ini digunakan apabila
dimiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu, dan si
pakar dapat menyelesaikan masalah tersebut secara berurutan. Disamping itu
bentuk ini juga digunakan apabila dibutuhkan penjelasan tentang jejak
(langkah-langkah) pencapaian solusi.
2. Case-Based Reasoning (Penalaran Berbasis Kasus)
Pada penalaran berbasis kasus, basis pengetahuan akan berisi solusi-solusi
yang telah dicapai sebelumnya, kemudian akan diturunkan suatu solusi untuk
keadaan yang terjadi sekarang (fakta yang ada). Bentuk ini digunakan apabila
user menginginkan untuk tahu lebih banyak lagi pada kasus-kasus yang
hampir sama (mirip). Selain itu, bentuk ini juga digunakan apabila telah
dimiliki sejumlah situasi atau kasus tertentu dalam basis pengetahuan.
2.6.3 Akuisisi Pengetahuan
Akusisi pengetahuan adalah akumulasi, transfer dan transformasi keahlian
dalam menyelesaikan masalah dari sumber pengetahuan ke dalam program
komputer. Dalam tahap ini knowledge engineer berusaha menyerap pengetahun
untuk selanjutnya ditransfer ke dalam basis pengetahuan. Pengetahuan diperoleh
11
dari pakar, dilengkapi dengan buku, basis data, laporan penelitian dan pengalaman
pemakai (Arhami, 2005).
Akuisisi pengetahuan dilakukan sepanjang proses pembangunan sistem.
Menurut Firebaugh (1989), proses akuisisi pengetahuan dibagi ke dalam enam
tahap, yaitu :
1. Tahap Identifikasi
Tahap identifikasi meliputi penentuan komponen-komponen kunci dalam
sistem yang sedang dibangun. Komponen kunci ini adalah knowledge
engineer, pakar, karakterisitik masalah, sumber daya, dan tujuan. Knowledge
engineer dan pakar bekerja bersama untuk menentukan berbagai aspek
masalah, seperti lingkup dari proyek, data input yang dimasukkan, bagian-
bagian penting dan interaksinya, bentuk dan isi dari penyelesaian, dan
kesulitan-kesulitan yang mungkin terjadi dalam pembangunan sistem. Mereka
juga harus menentukan sumber pengetahuan seperti basis data, sistem
informasi manajemen, buku teks, serta prototipe masalah dan contoh. Selain
menentukan sumber pengetahuan, pakar juga mengklarifikasi dan menentukan
tujuan-tujuan sistem dalam proses penentuan masalah.
2. Tahap Konseptualisasi
Konsep-konsep kunci dan hubungannya yang telah ditentukan pada tahap
pertama dibuat lebih jelas dalam tahap konseptualisasi.
3. Tahap Formalisasi
Tahap ini meliputi pemetaan konsep-konsep kunci, sub-masalah dan bentuk
aliran informasi yang telah ditentukan dalam tahap-tahap sebelumnya ke
dalam representasi formal yang paling sesuai dengan masalah yang ada.
4. Tahap Implementasi
Tahap ini meliputi pemetaan pengetahuan dari tahap sebelumnya yang telah
diformalisasi ke dalam skema representasi pengetahuan yang dipilih.
12
5. Tahap Pengujian
Setelah prototipe sistem yang dibangun dalam tahap sebelumnya berhasil
menangani dua atau tiga contoh, prototipe sistem tersebut harus menjalani
serangkaian pengujian dengan teliti menggunakan beragam sampel masalah.
Masalah-masalah yang ditemukan dalam pengujian ini biasanya dapat dibagi
dalam tiga kategori, yaitu kegagalan input/output, kesalahan logika dan
strategi kontrol.
6. Revisi Prototipe
Suatu unsur penting pada semua tahap dalam proses akuisisi pengetahuan
adalah kemampuan untuk kembali ke tahap-tahap sebelumnya untuk
memperbaiki sistem.
2.6.4 Mesin Inferensi
Otak sistem pakar adalah mesin inferensi, yang dikenal juga sebagai struktur
kontrol atau penerjemah aturan (dalam sistem pakar berbasis aturan). Komponen
ini sebenarnya adalah program komputer yang menyediakan metodologi untuk
mempertimbangkan informasi dalam basis pengetahuan dan blackboard, dan
merumuskan kesimpulan. Komponen ini menyediakan arahan bagaimana
menggunakan pengetahuan sistem, yakni dengan mengembangkan agenda yang
mengatur dan mengontrol langkah yang diambil untuk memecahkan persoalan
kapan pun konsultasi berlangsung.
Terdapat dua pendekatan untuk mengontrol inferensi dalam sistem pakar
berbasis aturan, yaitu :
a. Pelacakan ke depan (forward chaining)
Pelacakan ke depan adalah pendekatan yang dimotori data (data driven).
Dalam pendekatan ini pelacakan dimulai dari informasi masukan, dan selanjutnya
mencoba menggambarkan kesimpulan. Pelacakan ke depan mencari fakta yang
sesuai dengan bagian IF dari aturan IF-THEN.
13
Gambar 2 Proses Forward Chaining
b. Pelacakan ke belakang (backward chaining)
Pelacakan ke belakang adalah pendekatan yang dimotori tujuan (goal
driven) yaitu pelacakan yang dimulai dari tujuan, selanjutnya dicari aturan yang
memiliki tujuan tersebut untuk kesimpulannya. Selanjutnya proses pelacakan
menggunakan premis untuk aturan tersebut sebagai tujuan baru dan mencari
aturan lain dengan tujuan baru sebagai kesimpulannya.
Gambar 3 Proses Backward Chaining
2.6.5 Blackboard (Tempat Kerja)
Blackboard adalah area kerja memori yang disimpan sebagai database untuk
deskripsi persoalan terbaru yang ditetapkan oleh data input dan digunakan juga
untuk penekanan hipotesis dan keputusan sementara. Tiga tipe keputusan yang
dapat direkam dalam Blackboard :
a. Rencana : bagaimana mengatasi persoalan.
b. Agenda : tindakan sebelum dieksekusi.
c. Solusi : hipotesis kandidat dan arah tindakan alternatif
yang telah dihasilkan sistem.
14
2.6.6 Fasilitas Penjelasan (Justifier)
Fasilitas penjelasan untuk komponen tambahan yang akan meningkatkan
kemampuan sistem pakar. Komponen ini menggambarkan penalaran sistem
kepada pemakai.
2.6.7 Perbaikan Pengetahuan
Pakar manusia memiliki sistem perbaikan-pengetahuan, yakni mereka dapat
menganalisis pengetahuannya sendiri dan kegunaannya, belajar darinya, dan
meningkatkannya untuk konsultasi mendatang. Sama halnya, evaluasi tersebut
diperlukan dalam pembelajaran komputer sehingga program dapat menganalisis
alasan keberhasilan atau kegagalannya. Hal ini dapat mengarah kepada
peningkatan sehingga menghasilkan basis pengetahuan yang lebih akurat dan
pertimbangan yang lebih efektif. Komponen tersebut tidak tersedia dalam sistem
pakar komersil saat ini, tetapi sedang dikembangkan dalam ES eksperimental pada
beberapa universitas dan lembaga riset.
2.7 Representasi Pengetahuan
Dalam pembangunan sistem berbasis pengetahuan, pengetahuan yang telah
diekstrak dimasukkan kedalam program komputer oleh proses yang disebut
representasi pengetahuan (knowledge representation). Sistem representasi
pengetahuan merupakan gabungan dari dua elemen yakni struktur data dan
prosedur menafsirkan (interpretive procedure) untuk pemakaian pengetahuan yang
dimasukkan dalam struktur data (Firebaugh, 1989).
2.8 Representasi dalam Logika dan Skema Lainnya
Bentuk representasi pengetahuan yang paling tua adalah logika, yaitu suatu
pengkajian ilmiah tentang serangkaian penalaran, sistem kaidah dan prosedur
yang membantu proses penalaran. Bentuk umum dari suatu proses logika
diilustrasikan pada gambar 4.
15
Gambar 4 Penggunaan Logika untuk Penalaran (Turban, 1998)
Input untuk proses logika disebut premises atau fact (fakta). Fakta
digunakan dalam proses logika untuk membuat output yang merupakan
kesimpulan (conclusions) diesbut Inferences. Dengan proses, fakta yang dikenal
bernilai benar akan digunakan untuk mendapatkan fakta baru yang juga harus
benar.
2.9 Aturan Produksi
Kaidah produksi adalah bentuk representasi pengetahuan yang paling
popular untuk sistem pakar. Pengetahuan direpresentasikan dalam bentuk
pasangan kondisi-aksi : IF kondisi ini (atau premis atau anteceden) terjadi, THEN
beberapa tindakan (atau hasil atau kesimpulan atau konsekuensi) akan (atau
sebaiknya) terjadi.
Pada dasarnya penyajian pengetahuan secara kaidah produksi terdiri dari dua
hal, yaitu :
1. Anteseden, bagian yang mengekspresikan situasi atau premis (pernyataan
berawalan If).
2. Konsekuen, bagian yang menyatakan suatu tindakan, hasil atau kesimpulan
yang diperoleh jika premis bernilai benar (pernyataan berawalan THEN).
Hal ini dapat dituliskan sebagai IF anteseden THEN konsekuen- konsekuen
atau kesimpulan yang dinyatakan pada bagian THEN baru dinyatakan benar. Jika
bagian IF pada kaidah tersebut juga bernilai benar atau sesuai ketentuan tertentu.
Kaidah bisa dalam bentuk berbeda seperti contoh dibawah ini :
IF premise, THEN conclusion. IF pendapatan tinggi THEN kesempatan
pemeriksaan keuangan tinggi.
16
Conclusion, IF premise. Kesempatan pemeriksaan keuangan tinggi
pendapatan tinggi.
Ada kemungkinan beberapa premise dan beberapa conclusion didalam satu
kaidah, sehingga beberapa premise diberi istilah dengan premise clauses dan
beberapa conclusion diberi istilah conclusion clauses. Sebagai contoh berikut ini
diberikan suatu kaidah A yang terdiri dari dua premise clauses dan dua conclusion
clauses.
Kaidah A : IF umur mesin mobil baru AND kondisi mobil bagus
THEN mobil dapat nyaman dijalankan dan perjalanan aman.
Representasi kaidah memiliki karakteristik-karakteristik seperti yang di
tunjukkan pada tabel 1.
Tabel 1 Karakteristik dari Representasi Pengetahuan
Bagian Pertama Bagian Kedua
Nama Premis
Antecedent
Situasi
IF
Konklusi
Konsekuen
Aksi
THEN
Alami Kondisi, sesuai dengan
pengetahuan deklaratif
Resolusi sama dengan
pengetahuan prosedural
Ukuran Dapat memiliki banyak
IF
Biasanya hanya memiliki
satu konklusi
Pernyataan Pernyataan AND
Pernyataan OR
Semua kondisi harus
benar untuk konklusi
benar
Jika ada kondisi
pernyataan OR benar,
maka konklusinya benar
17
2.10 Basis Data
Menurut Connoly dan Begg (2002), basis data dapat diartikan sebagai
sekumpulan data atau entitas tentang suatu benda beserta deskripsinya yang
berhubungan satu sama lain secara logika. Basis data dirancang dan
diorganisasikan untuk memnuhi logika dan informasi pada suatu organisasi.
Semua data di dalam basis data saling terintegrasi sehingga jumlah duplikasi dapat
diminimalkan.
2.11 Model Data
Model data adalah kumpulan perangkat konseptual untuk menggambarkan
data, hubungan data, semantik data dan batasan data (Silberschatz, 2005).
Terdapat dua kelompok untuk mempresentasikan model data dalam perancangan
sistem basis data :
Model lojik data berdasarkan record (Record-Based Logical Model), yaitu
model Relasional (Relational Model).
Model basis data relasional sering pula disebut sebagai model relasional atau
basis data relasional. Hingga saat ini, model basis data relasional merupakan
model basis data yang paling banyak digunakan. Kemudahan dalam penerapan
dan kemampuannya dalam mengakomodasi berbagai kebutuhan pengelolaan basis
data yang ada di dunai nyata menjadi alasan mengapa model ini lebih populer
untuk diterapkan (Silberschatz, 2005). Gambar 8 menunjukkan model basis data
relasional.
NIM KODE_MK NILAI
55 DB001 A
55 PI001 A
58 DB001 B
60 PI001 B
60 DB001 A
Gambar 5. Model Basis Data Relasional
18
Model relasional menggunakan model berupa tabel berdimensi dua (yang
disebut relasi atau tabel) dengan memakai kunci tamu (foreign key) sebagai
penghubung dengan tabel lain.
Tabel 2 Struktur Relasi
Strukt
ur Relasi
Penjelasan
Relasi Tabel yang terdiri dari kolom dan baris
Atribu
t
Nama kolom pada relasi
Domai
n
Sekumpulan relasi yang normal (Normalized
Relation)
TUPL
E
Baris relasi
Deraja
t Relasi
Jumlah atribut pada relasi; unary (relasi
dengan derajat satu (satu atribut)); binary (derajat
dua); ternary (derajat tiga); n-ary (derajat > 3)
Kardi
nalitas
Merepresentasikan jumlah tuple
Beberapa sifat yang melekat dalam relasi adalah tidak ada baris yang
kembar, urutan tupel tidak penting, setiap atribut memiliki nama yang unik, letak
atribut bebas, setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua
baris.
2.12 Sistem Manajemen Basis Data (SMBD)
Pengelolaan basis data secara fisik tidak dilakukan oleh pemakai secara
langsung, tetapi ditangani oleh sebuah perangkat lunak (sistem) yang khusus atau
spesifik. Perangkat lunak ini disebut Sistem Manajemen Basis Data (SMBD) atau
sering juga disebut sebagai DBMS (Database Manajemen System). SMBD adalah
perangkat lunak yang memungkinkan para pemakai untuk mendeskripsikan,
19
membuat, memelihara, serta mengendalikan akses ke basis data (Connolly &
Begg, 2002).
2.13 Populasi Kambing
Kambing merupakan ternak ruminansia kecil yang menduduki termpat
tersendiri di kalangan bangsa-bangsa di Asia dan Afrika. Jumlah populasi
kambing di Asia ditaksir sekitar 255 juta ekor atau 49% dari total populasi dunia
(B. Sarwono, 2010). Peran ternak ruminansia kecil ini telah memberi sumbangan
yang sangat berarti bagi kesehatan dan gizi berjuta-juta penduduk di negara-
negara berkembang, terutama mereka yang hidup di bawah garis kemiskinan.
Pada tahun 1969 Indonesia memiliki sekitar 7,5 juta ekor kambing,
kemudian pada tahun 1990 meningkat menjadi 11,2 juta ekor. Populasi kambing
terus-menerus mengalami peningkatan. Pada tahun 1994 sudah mencapai sekitar
12,8 juta ekor pada tahun 2001 populasi kambing sekitar 12,5 juta ekor. Dari data
tersebut dapat disimpulkan bahwa laju populasi kambing terus meningkat rata-rata
2,2% sampai 4,3% tiap tahun.
2.14 Penyakit pada Kambing
Penyakit pada ternak kambing diantaranya dapat disebabkan oleh virus atau
bakteri (B. Sarwono, 2010). Beberapa jenis penyakit pada kambing adalah sebagai
berikut :
1. Kudis
Penyakit kudis disebabkan oleh tungau parasit Sarcoptes Scabei. Tungau ini
besarnya 0,2-0,5 mm. Biasanya menyerang ternak kambing yang tidak pernah
dimandikan, disikat atau keadaan kandang sangat kotor karena kurang terawat.
2. Mencret karena Cacing
Penyakit kambing mencret adalah cacing Haemonchus Concortus yang hidup
bersama cacing lain. Cacing berdiam di usus dan melekat pada selaput usus
dan mengisap sari makanan.
20
3. Jantung Berair
Penyakit jantung berair (Heartwater) banyak diderita kambing di Afrika dan
Karibia. Penyebabnya adalah Rickettsia Cowdia Ruminantium. Serangga
penularnya adalah caplak Hebraeum.
4. Ingusan Meloidosis
Penyebab penyakit ini adalah Pseudomouos Mollei. Penyakit ini terutama
menyerang ternak kambing yang masih muda. Penyakit ini banyak terdapat di
daerah Asia Tenggara.
5. Enterotoxemia
Penyakit ini biasanya menyerang kambing muda yang umurnya masih kurang
dari setahun. Penyakit ini sangat mematikan. Penyebabnya bakteri Clostridium
Perfringens. Ada 2 tipe, yaitu tipe C dan D. Tipe C menyerang hewan muda,
sedangkan tipe D menyerang kambing berumur 3-4 minggu sampai 1 tahun.
6. Cacar Kambing
Penyakit cacar kambing dikenal juga dengan sebutan goat pox. Penyebabnya
adalah sejenis virus cacar. Penyakit ini terdapat di Timur Tengah dan India.
Penyakit ini bisa menular pada ternak lain yang sehat melalui kontak langsung
atau lewat tetesan air.
7. Pes Semu
Pes semu pada kambing dikenal dengan sebutan Pespe des Petits Ruminants
(PPR). Penyakit ini belum ada di Indonesia, tetapi banyak ditemui di Afrika
Barat. Penyebabnya adalah virus yang belum diketahui namanya. Penyakit ini
menular melalui kontak langsung.
21
8. Diare Coccidiosis
Diare Coccidiosis adalah penyakit mencret yang disebabkan kuman Eimeria
sp., yang hidup dalam sel-sel usus. Penyakit ini sering timbul pada kambing
yang dipadatkan dalam kandang yang kotor.
9. Radang Selaput Paru
Radang penyakit paru menular adalah penyakit yang menyerang alat
pernapasan. Penyakit ini timbul karena kandang kotor, jelek dan ventilasinya
buruk. Kalau atap berembun, ruang kandang serupa itu harus segera
diperbaiki. Penyebab penyakit ini adalah kuman Mycoplasma sp.
10. Pneumonia (Radang Paru-paru)
Penyakit radang paru-paru dikenal dengan sebutan Pnumonia. Ventilasi
kandang yang buruk, lembab dan berbau bisa mengakibatkan munculnya
penyakit ini. Penyebabnya adalah bermacam-macam kuman, misalnya
Micobacterium sp.
11. Mencret Putih
Penyakit mencret putih disebabkan leh kuman Escherichia Coli. Penyakit ini
disebut juga Colibacillosis.
12. Abses
Abses berisi nanah seperti keju berwana kehijauan. Penyebabnya adalah
bakteri Corybacterium Pseudotuberculosis.
13. Malaria
Penyakit malaria bisa juga menyerang kambing. Pada manusia, penyebabnya
adalah protozoa parasit darah Plasmodium yang ditularkan lewat gigitan
nyamuk. Pada kambing disebabkan oleh protozoa parasit Babesia Motasi dan
Babesia Ovis. Penyakit ini juga dikenal dengan sebutan penyakit kencing
merah dan Babesiosis. Penyakit ini banyak tersebar di Eropa, Afrika, India,
22
Tiongkok, merika Utara dan Amerika Selatan. Di Indonesia pernah ditemukan
di Sumatera, Jawa dan Kalimantans. Penyakit ini ditularkan lewat gigitan
caplak Rhipicephalus dan Boophilus. Parasit ini menyerang sel-sel darah
merah. Akibatnya sel-sel darah banyak yang rusak dan sebagian Hemoglobin
dikeluarkan bersama urine.
14. Anthrax (Radang Limpa)
Penyakit radang limpa (Anthrax) disebabkan oleh kuman Bacillus Anthraxis.
15. Pink Eye
Penyakit kemerahan pada seluruh bola mata dan conjunctiva disebut Pink Eye.
Penyebabnya adalah kuman Moraxella sp., Rickettsia sp. Dan Mycoplasma
Conjunctivae. Penyebab lainnya adalah bakteri Aeromonas Hudrophila (50%),
Plesiomonas Shigelloides (30%) dan Antinobacillus Actinomycetemcomitans
(20%). Munculnya penyakit ini biasanya berkaitan dengan adanya lalat dalam
jumlah banyak di sekitar lokasi peternakan.
21
BAB III
METODOLOGI PENELITIAN
3.1 Kerangka Pemikiran
Pencegahan terhadap penyakit merupakan salah satu faktor utama untuk
mengurangi penyebaran penyakit pada hewan ternak kambing. Perubahan iklim
yang tidak beraturan dan cara penanggulangan yang tidak sesuai menjadi faktor
yang menyebabkan kematian pada hewan ternak kambing.
Pencegahan yang tidak sesuai dengan kondisi hewan ternak kambing terjadi
karena kurangnya informasi dan pengetahuan yang dimiliki oleh peternak
mengenai cara-cara pencegahan yang harusnya diterapkan terhadap gejala-gejala
yang ditunjukkan oleh ternak kambing. Sering peternak menerapkan cara yang
sama (tradisional), namun pada kenyataannya gejala yang ditunjukkan oleh hewan
ternak kambing berbeda. Biaya menjadi faktor keraguan peternak untuk
menggunakan jasa dokter hewan atau pelaku pengendalian penyakit hewan.
Jangkauan wilayah akan menjadi nilai tambah untuk biaya tersebut.
Pembangunan sistem ini menjadi salah satu hal yang nantinya dapat
membantu peternak untuk memperoleh informasi tentang gejala, penyakit dan
cara pengendalian penyakit yang diderita hewan ternak kambing dengan cepat dan
dapat dilakukan dimana saja secara online, karena Sistem Pakar Diagnosis
Penyakit Ternak Kambing dibangun berbasis web.
3.2 Metodologi Pengembangan Sistem
Tahap-tahap penelitian Sitem Informasi Diagnosis Penyakit pada Ternak
Kambing menggunakan Metode Siklus Hidup Pengembangan Sistem, atau System
Development Life Cycle ( SDLC ).
Sistem merupakan variasi dari metode pengembangan sistem yang telah
lama digunakan dan dikenal sebagai Siklus Hidup Pengembangan Sistem atau
(SDLC). Metode siklus hidup sistem merupakan metodologi yang kemudian
peranaannya dipengaruhi oleh adanya kebutuhan untuk mengembangkan sistem
dengan cara yang relatif cepat, diantaranya menggunakan perangkat lunak,
22
pengembangan sistem oleh pemakai akhir dan sistem informasi yang dikelola dan
dikembangkan pihak luar organisasi. (McLoed,1998). Tahap-tahap pendekatan
SDLC. Siklus ini terdiri dari : perencanaan, analisis, perencanaan, implementasi,
uji coba dan penggunaan. Secara lengkap disajikan pada gambar dibawah ini:
Gambar 6. Skema Metodologi Penelitian
3.3 Tahap Analisis
Analisis sistem adalah penelitian atas sistem yang telah ada dengan tujuan
untuk merancang sistem baru atau diperbaharui. Pada tahap analisis bertujuan
untuk mengetahui sumber permasalahan dan penyelesaiannya. Analisis ini
dilakukan untuk mengidentifikasi perancangan sistem pakar untuk diagnosis
penyakit pada ternak kambing, untuk dapat menghasilkan suatu sistem yang baik
dan bermanfaat serta dapat digunakan oleh peternak kambing.
3.3.1 Tahap Perancangan
Tahap perancangan dilakukan untuk mempermudah tahapan implementasi.
Terdapat 3 bagian pada tahap perancangan ini, yaitu :
23
1. Perancangan Database
Perancangan database menggunakan relasi antar tabel dan struktur
databasenya. Untuk penyusunan database basis pengetahuan, digunakan
MySQL yang disimpan dalam format *.sql dengan cara membuat tabel-tabel
yang terdiri dari beberapa field. Banyaknya tabel dan field disesuaikan dengan
sistem yang akan dibuat.
2. Perancangan Sistem Secara Umum
Pada perancangan sistem secara umum lebih ditekankan pada sistem secara
keseluruhan, perancangan ini menggunakan Data Flow Diagram.
3. Perancangan Sistem Secara Detail
Pada perancangan sistem secara detail ini terbagi 2, yaitu :
a. Perancangan Input
Input yang dibutuhkan dalam sistem ini meliputi data basis gejala, basis
aturan, basis penyakit, basis penyebab, basis pengedalian dan data
pengelola sistem.
b. Perancangan Output
Output sistem yang diinginkan dari penulisan ini berupa informasi
mengenai kemungkinan penyakit yang diderita ternak kambing, cara
pengedalian penyakit dan penyebab penyakit.
3.3.2 Tahap Implementasi
Tahap implementasi sistem merupakan proses pengaplikasian kedalam
bahasa pemrograman tertentu untuk menghasilkan sistem diagnosis penyakit pada
ternak kambing, dibuat dalam bentuk pengimplementasian sebuah program
aplikasi berbasis web dengan menggunakan PHP.
3.3.3 Tahap Pengujian
Pada tahap ini dilakukan proses uji coba sistem untuk mengetahui dan
menentukan seberapa baik sistem yang dibuat memenuhi kinerja kerja. Jika dalam
proses uji coba tersebut mengalami kegagalan, maka akan kembali ke tahap
24
perancangan sistem untuk kemudian dirancang kembali, namun jika tidak
mengalami kegagalan, maka akan berlanjut ke proses penggunaan.
3.3.4 Tahap Penggunaan
Pada tahap ini dilakukan proses penggunaan sistem dan pemeliharaan sistem
yang berguna dan juga bermanfaat, untuk menjaga kehandalan sistem yang telah
dibuat dan memungkinkan untuk dikembangkan lagi di waktu mendatang.
3.4 Pengumpulan Data atau Informasi
Pengumpulan data atau informasi sebagai penunjang penelitian dilakukan
dengan Studi Literatur.
Penelitian ini sepenuhnya memanfaatkan data yang telah terkumpul dari
beberapa buku, file dan internet. Data yang dimaksud penulis meliputi basis
gejala, basis penyakit, basis aturan, basis pengendalian penyakit dan basis
penyebab penyakit.
Studi Literatur, mempelajari penggunaan bahasa pemrograman yang
diperlukan (PHP) dan juga untuk pembuatan sistem database (MySQL) beserta
penggunaannya.
24
BAB IV
PERANCANGAN DAN IMPLEMENTASI
4.1 Analisis Sistem
Tujuan dari analisis sistem dalam pengembangan sistem pakar ini adalah
untuk mendapatkan berbagai kebutuhan pengguna dan sistem, yaitu perihal
masukan dan keluaran dan keluaran yang harus disediakan oleh pengguna serta
dibutuhkan oleh sistem. Proses tersebut akan menjadi masukan bagi proses
perancangan sistem secara keseluruhan.
Yang akan dibahas dalam analisis sistem yaitu : analisis masalah,
identifikasi kebutuhan dan deskripsi sistem.
4.1.1 Analisis Masalah
Masalah diagnosis penyakit ternak kambing dapat dimasukkan ke dalam
salah satu cabang ilmu artificial intelligent yaitu sistem pakar (expert system).
Pada permasalahan ini, pemecahan masalah tersebut dapat dilakukan dengan
mengembangkan sistem yang dapat berperan sebagai seorang dokter hewan (ahli).
Dengan kata lain terjadi pemindahan atau proses pengolahan yang membangun
dan mengoperasikan basis pengetahuan dari seorang pakar ke sebuah sistem
komputer.
Fakta-fakta dari seorang pakar atau dokter hewan disimpan dalam suatu
basis pengetahuan. Dengan bantuan mesin inferensi dan memori kerja, maka
proses penarikan kesimpulan dalam menentukan penyakit ternak kambing serta
memberikan saran pencegahan untuk tindakan selanjutnya dapat dilakukan.
Pada kenyataannya, sering ditemui lebih dari 1 penyakit saja yang
menyerang ternak kambing. Berdasarkan data dari lapangan, memang penyakit
sering menyerang tidak sendirian atau bisa dikatakan selalu ada dua atau tiga
penyakit, terutama karena adanya infeksi sekunder. Meskipun demikian, mesti ada
salah satu penyakit yang paling dominan, dan kemudian disimpulkan sebagai
penyebab penyakit yang timbul atau menyebabkan kematian. Dan kesimpulan
penyakit tersebut, disebut dengan hasil diagnosis.
25
Penyakit yang disebabkan oleh virus dapat menular dengan cepat sehingga
menjadi sumber pencemaran penyakit terhadap ternak kambing yang berada
disekitarnya dan beberapa penyakit yang disebabkan oleh virus juga dapat
menyebabkan kematian.
Kematian pada ternak kambing memberikan dampak kerugian ekonomiyang
besar bagi industri peternakan. Oleh karena itu diharapkan pengembangan sistem
pakar ini dapat membantu peternak kambing komersil maupun non komersil
dalam mendiagnosis penyakit kambing dengan mengetahui lebih cepat gejala-
gejala kambing yang sakit serta dapat mengetahui apa tindakan pencegahan
selanjutnya yang harus dilakukan
Dari uraian tersebut maka berdasarkan kategori bidang yang sesuai untuk
diselesaikan dengan pendekatan sistem pakar termasuk dalam jenis diagnosis,
yaitu mengamati gejala/tingkah laku yang ada dan memberikan kesimpulan.
4.1.2 Identifikasi Kebutuhan
Yang dibahas dalam identifikasi kebutuhan yaitu : analisis kebutuhan
fungsional dan analisis kebutuhan non fungsional.
4.1.2.1 Analisis Kebutuhan Fungsional
Fasilitas-fasilitas yang disediakan dalam “Sistem Pakar untuk Diagnosis
Penyakit pada Ternak Kambing”, yaitu :
1. Akuisisi Basis Pengetahuan, fasilitas ini hanya dapat dilakukan oleh engineer.
2. Diagnosis Penyakit Ternak Kambing, membantu user dalam mendiagnosis penyakit kambing dan memberikan saran pengendalian berdasarkan pada gejala-gejala yang terlihat
.
4.1.2.2 Analisis Kebutuhan non Fungsional
1. Basis Data yang digunakan, yaitu : MySQL.
2. Web Server, Apache HTTP Server.
3. Bahasa pemrograman web yang dipakai adalah PHP.
26
4. Aplikasi Web Browser, mampu menampilkan HTTP dalam grafik,
browser yang banyak digunakan IE 5+, Mozilla Firefox 3+, Opera 7+,
dan Netscape 6.
4.1.3 Deskripsi Sistem
Deskripsi sistem adalah gambaran umum tentang sistem yang akan
dikembangkan. Sistem pakar untuk mendiagnosis penyakit pada ternak kambing
ini merupakan perangkat lunak yang dapat digunakan untuk mendiagnosis
penyakit yang biasa menyerang kambing. Pada proses ini sistem akan
menampilkan gejala-gejala umum ternak kambing yang telah disimpan dalam
sistem berupa basis pengetahuan. Jawaban yang diberikan pengguna akan
diproses sehingga menghasilkan kesimpulan tentang penyakit yang menyerang
ternak kambing. Sistem juga memberikan saran bagaimana cara pengendalian
yang selanjutnya harus dilakukan.
4.2 Perancangan Sistem
Perancangan sistem terdiri dari perancangan basis pengetahuan, mesin
inferensi, perancangan proses, perancangan basis data dan perancangan
antarmuka.
27
Gambar 7. Perancangan Arsitektur Sistem Pakar Diagnosis Penyakit Kambing
4.2.1 Perancangan Basis Pengetahuan
Seperti pembuatan sistem pakar lainnya, sistem pakar untuk mendiagnosis
penyakit ternak kambing membutuhkan basis pengetahuan. Basis pengetahuan
mengandung pengetahuan untuk pemahaman dan penyelesaian masalah dan
merupakan inti dari dari sistem pakar, yaitu berupa representasi pengetahuan dari
pakar yang tersusun atas 2 (dua) elemen dasar yaitu, fakta dan aturan, dan mesin
inferensi untuk mendiagnosis penyakit-penyakit yang diderita.
Basis pengetahuan ini berisi fakta-fakta yang dibutuhkan oleh sistem,
sedangkan mesin inferensi digunakan untuk menganalisa fakta-fakta yang
dimasukkan pengguna lainnya sehingga dapat ditemukan suatu kesimpulan. Basis
pengetahuan yang digunakan dalam sistem pakar ini terdiri dari : jenis penyakit
kambing, gejala-gejala penyakit dan tindakan yang disarankan.
Data yang menjadi input bagi sistem adalah data gejala, data penyakit dan
data pengendalian yang didapat dari pakar. Data tersebut digunakan sistem untuk
menentukan jenis penyakit yang menyerang kambing serta memberikan saran
pencegahan untuk penyakit yang berhasil didiagnosis. Tabel keputusan untuk
28
gejala-gejala penyakit kambing dan tabel keputusan untuk saran pencegahan dapat
dilihat pada tabel 3 dan tabel 4.
Tabel 3. Tabel Keputusan untuk gejala-gejala penyakit kambing
K
ode
Gejal
a
Penyakit
P
001
P
002
P
003
P
004
P
005
P
006
P
007
G
001
Gatal - gatal V
G
002
Nafsu
Makan
Kurang
V V V V
G
003
Susah Buang
Kotoran
V
G
004
Lesu V V
G
005
Kejang
Gagau
V
G
006
Demam V V V V
G
007
Mengedipka
n Kelopak
Mata
Sekejap
V
G
008
Lidahnya
Terjulur
V
G
009
Jalannya
Berputar-
putar
V V
G
010
Pernapasan
Berat
V V V
GBatuk-batuk V V
29
011
G
012
Ingusan V V V
G
013
Kejang -
kejang
V
G
014
Kepala
Tertekan
V
G
015
Denyut Nadi
Cepat
V
G
016
Stres Berat
G
017
Nafsu
Makan Tidak
ada
G
018
Menggertak
Gigi
G
019
Pernapasan
Cepat
G
020
Tidak Mau
Makan
G
021
Kulitnya
Merah
Menebal
V
G
022
Berkeropen
g-keropeng
V V
G
023
Bulu Rontok V
G
024
Bulu Dekat
Anus Kotor
V
G
025
Didalam
Kotoran
Terdapat
V
30
Cacing
G
026
Kurus V
G
027
Perutnya
Besar
V
G
028
Bulu Kasar
Tidak
Mengkilat
V
G
029
Jantung dan
Paru-paru
Terdapat
Cairan
V
G
030
Kelenjar
Getah
Bening
Membengka
k
V
G
031
Persendian
Membengka
k
V
G
032
Buah Pelir
Membengka
k
V
G
033
Mata
Mungkin
Buta
V
G
034
Sekitar
Mulut
Merah &
Kasar
V
Sumber : Ternak Konsumsi B XXIII/303/90 (B. Sarwono)
31
Tabel 4. Tabel keputusan untuk pengendalian penyakit kambing
Kode
Pengendalian
Penyakit
P001 P002 P003 P004 P005 P006 P007
S001 V
S002 V
S003 V
S004 V
S005 V
S006 V
S007 V
Sumber : Ternak Konsumsi B XXIII/303/90 (B. Sarwono)
Keterangan :
P001 = Jenis penyakit kambing 1 yaitu Kudis (Scabies Goat)
P002 = Jenis penyakit kambing 2 yaitu Mencret karena Cacing
P003 = Jenis penyakit kambing 3 yaitu Jantung Berair
P004 = Jenis penyakit kambing 4 yaitu Ingusan Meloidosis
P005 = Jenis penyakit kambing 5 yaitu Enterotoxemia
P006 = Jenis penyakit kambing 6 yaitu Cacar Kambing
P007 = Jenis penyakit kambing 7 yaitu Pes Semu
Berdasarkan analisis dari tabel keputusan, maka dapat dibuat himpunan
kaidah produksi diagnosis penyakit kambing dengan menggunakan IF-THEN.
Dimana IF merupakan bagian premis atau informasi masukan sedangkan THEN
merupakan konklusi atau kesimpulan.
Berdasarkan analisis dari tabel keputusan dan tabel pengendalian maka
dapat dibuat struktur penelusuran gejala dan struktur penelusuran pencegahan
seperti pada gambar 8. dan gambar 9.
32
Gambar 8. Struktur Penelusuran Gejala
Gambar 9. Struktur Penelusuran Gejala
4.2.2 Mesin Inferensi
Mesin inferensi adalah bagian dari sistem pakar yang melakukan penalaran
dengan menggunakan isi daftar aturan berdasarkan urutan dan pola tertentu.
Selama proses konsultasi, mesin inferensi menggunakan metode berbasis aturan
yaitu proses backward chaining (pelacakan ke belakang) dan proses forward
chaining (pelacakan ke depan). Backward chaining digunakan untuk mendapatkan
kesimpulan penyakit kambing yang terinfeksi dari beberapa fakta gejala penyakit
dan forward chaining digunakan untuk mendapatkan saran dan pencegahan dari
kesimpulan penyakit kambing yang terinfeksi. Pendekatan mulai dari kesimpulan
dan hipotesis bahwa kesimpulan adalah benar.
33
Untuk contoh penerapan kaidah penyakit adalah sebagai berikut :
1. Analisa Hasil Konsultasi
Contoh pada proses konsultasi, memilih gejala diantara gejala-gejala yang
ditampilkan sebagai input :
a. Gejala yang terpilih : jalannya berputar-putar.
b. Langkah diagnosa :
a) Mencari jenis penyakit yang memiliki gejala terpilih sesuai basis
pengetahuan.
b) Mencari jumlah gejala yang terpenuhi oleh gejala terpilih pada
basis pengetahuan.
c) Mencari jumlah gejala yang harus terpenuhi pada basis
pengetahuan.
d) Melakukan penghitungan persen kemungkinan hasil diagnosa.
e) Melakukan perhitungan persentase kemungkinan hasil diagnosa
terhadap keseluruhan kemungkinan diagnosa.
c. Penyelesaian :
Mencari jenis penyakit yang memiliki gejala terpilih pada basis
pengetahuan, seperti ditunjukkan pada tabel 5.
Tabel 5. Tabel Aturan Konsultasi
Nama Penyakit Gejala
Jantung berair Kejang gagau
Demam
Mengedipkan kelopak mata sekejap
Lidahnya terjulur
Jalannya berputar-putar
Pernapasan berat
Enterotoxemia Kejang-kejang
Kepala tertekan
Jalannya berputar-putar
34
1. Diagnosa awal seperti ditunjukkan pada tabel 4.4.
Tabel 6. Tabel Diagnosa Awal
Nama
Penyakit
Jumlah gejala yang
harus terpenuhi
Jumlah gejala
terpilih
Persentase
(%)
Jantung Berair 6 1 16,66
Enterotoxemia 3 1 33.33
Total Persentase 49,99
Keterangan:
Persentase = (jumlah gejala terpilih/jumlah gejala terpenuhi) x 100%
Persentase = Besarnya persentase kemungkinan penyakit berdasarkan
gejala terpilih
2. Hasil diagnosa seperti ditunjukkan pada tabel 4.5.
Tabel 7. Tabel Hasil Diagnosa
Nama Penyakit Persentase kemungkinan dari keseluruhan (%)
Janting Berair (16,66/49,99) x 100% = 33,33
Enterotoxemia (33.33/49,99) x 100% = 66,67
Keterangan:
Persentase = (persetase/total persentase) x 100%
Persentase = Besarnya persentase kemungkinan penyakit berdasarkan
keseluruhan kemungkinan penyakit.
3. Analisa Hasil Info Pengendalian
Meneruskan proses pada analisa sebelumnya (analisa hasil konsultasi
dengan kesimpulan penyakit Exterotoxemia).
a. Penyakit yang terpilih : Enterotoxemia.
b. Mencari keterangan detail tentang penyakit yang terpilih.
Penyakit : Exterotoxemia.
35
Pengendalian : Pengobatan dengan menyuntikkan Trimethosulf dengan
dosis 3ml/50kg berat badan. Pada infeksi yang berat pengobatan dapat
diulangi satu kali lagi.
4.2.3 Perancangan Tabel untuk Basis Data
Basis data merupakan bagian dari implementasi sistem pakar yang
digunakan untuk menyimpan semua data baik basis pengetahuan maupun basis
saran.
4.2.3.1 Tabel
a. Tabel Penyakit
Tabel penyakit ini digunakan untuk menyimpan data-data penyakit yang
terdiri dari kode_penyakit dan penyakit (nama penyakit). Kode_penyakit
merupakan primary key. Perancangan dari tabel penyakit dapat dilihat pada tabel
8 berikut ini.
Tabel 8 Tabel Jenis Penyakit
No Nama Field Tipe Data Keterangan
1 Kode_penyakit VARCHAR Kode Penyakit (Primary Key)
2 Penyakit TEXT Nama Penyakit
b. Tabel Gejala
Tabel gejala digunakan untuk menyimpan data-data gejala yang terdiri dari
kode_gejala, gejala (nama gejala). Perancangan tabel gejala dapat dilihat pada
tabel 9 berikut ini.
Tabel 9 Tabel Gejala
No Nama Field Tipe Data Keterangan
1 Kode_gejala VARCHAR Kode Gejala (Primary Key)
2 Gejala TEXT Nama Gejala
36
c. Tabel Pengendalian
Tabel pengendalian digunakan untuk menyimpan data pencegahan yang
terdiri dari kode_pengendalian dan pengendalian (keterangan pengendalian).
Perancangan dari tabel pengendalian dapat dilihat pada tabel 10 berikut ini.
Tabel 10 Tabel Pengendalian
No Nama Field Tipe Data Keterangan
1 Kode_pengendalian VARCHAR Kode pengedalian penyakit (Primary Key)
2 Pengendalian TEXT Keterangan pengendalian.
d. Tabel Aturan Penyakit
Tabel aturan penyakit digunakan untuk menentukan jenis penyakit dengan
jenis gejala serta memberikan jumlah akumulatif dari gejala yang harus terpenuhi
dengan gejala yng dipilih berdasarkan jenis penyakit pada tabel aturan penyakit
ini. Perancangan tabel aturan penyakit ini ditunjukkan pada tabel 11 berikut ini.
Tabel 11 Tabel Aturan Penyakit
No Nama Field Tipe Data Keterangan
1 Id INT Auto_increment
2 Kode_penyakit VARCHAR Kode penyakit.
3 Kode_gejala VARCHAR Kode gejala.
e. Tabel Aturan Pengendalian
Tabel aturan pengendalian digunakan untuk menentukan saran pengendalian
pada masing-masing penyakit. Perancangan tabel aturan pengendalian dapat
dilihat pada gambar 12 berikut ini.
37
Tabel 12 Tabel Aturan Pengendalian
No Nama Field Tipe Data Keterangan
1 Id INT Auto_increment
2 Kode_penyakit VARCHAR Kode penyakit.
3 Kode_pengendalian VARCHAR Kode pengendalian
f. Tabel User
Tabel user digunakan untuk menyimpan data pengguna, yaitu data login
pakar dan password. Peracangan dari tabel user ini dapat dilihat pada tabel 13
berikut ini.
Tabel 13 Tabel User
No Nama Field Tipe Data Keterangan
1 Id INT Auto_increment
2 Nama VARCHAR Nama saat masuk sistem
3 sandi VARCHAR Sandi saat masuk sistem
4.2.3.2 Hubungan Antar Tabel
Hubungan antar tabel untuk sistem diagnosis penyakit kambing dapat dilihat
pada gambar 4.9 berikut ini.
38
Gambar 10 Hubungan Antar Tabel
4.2.4 Perancangan Proses
Perancangan sistem merupakan tahap awal untuk merancang semua proses
dan aliran data yang terjadi dalam sistem.
User Pakar
Gejala-gejala
Informasi penyakit, informasi gejala dan informasi pencegahanHasil konsultasi
berupa diagnosa penyakit dan saran
pengendalian
Data penyakit, data gejala, data aturan, data
pengendaliandan data user
Sistem Pakar untuk Diagnosis Penyakit
Kambing
Gambar 11 Diagram Alir Data Level 0
Diagram alir data yang ditunjukkan pada gambar 12 memberikan gambaran
bahwa sistem pakar ini berinteraksi dengan dua eksternal entitas, yaitu pakar
kesehatan kambing/engineer dan pengguna (user). Seorang pakar kesehatan
kambing/engineer dapat memasukkan data-data kepakaran ke dalam sistem serta
dapat memperoleh informasi pakar. Sedangkan pengguna dapat melakukan
konsultasi dengan sistem, yaitu memilih gejala-gejala yang ditampilkan sistem
39
dan memperoleh hasil kesimpulan berupa jenis penyakit dan saran
pengendaliannya.
Diagram alir data level 1 merupakan turunan dari diagram alir data level 0
yang menggambarkan aliran data dan detail proses-proses yang akan
diintegrasikan ke dalam sistem, seperti ditunjukkan pada gambar 13.
Gambar 12 Diagram Alir Data Level 1
Aliran data yang bersumber dari pakar kedokteran hewan berupa data-data
gejala penyakit, nama penyakit dan saran pengendalian serta aturan-aturan yang
menghubungkan data gejala dan saran pengendalian dengan data penyakit.
Diagram alir data level 2 merupakan turunan dari diagram alir data level 1
proses 1 dan proses 2 yang menggambarkan proses dan aliran data dengan lebih
detail. Seperti yang ditunjukkan pada gambar 14. dan gambar 15.
41
4.3 Struktur Navigasi
Struktur Navigasi website digunakan untuk menggambarkan secara garis
besar isi dari seluruh website, bagaimana hubungan antara isi-isi tersebut dan
untuk memudahkan dalam mengakses halaman demi halaman website. Struktur
navigasi dalam sistem pakar diagnosis penyakit ternak kambing menggunakan
navigasi campuran (composite) yang merupakan gabungan dari struktur linier, non
linier dan hierarki. Melalui struktur navigasi website ini, terlihat bagaimana isi
dan susunan dari sebuah website secara menyeluruh.
Dalam struktur navigasi sistem pakar diagnosis penyakit ternak kambing
terlihat bahwa pengguna sistem dibedakan menjadi dua bagian, pertama yaitu
guest merupakan pengguna yang akan mendiagnosa ternak kambing dan tidak
mempunyai akses login, yang kedua yaitu engineer, pakar dan administrator
merupakan pengguna yang mempunyai akses login, serta dapat memperbaharui
basis data.
INDEX
HOME DIAGNOSA INFORMASI HUBUNGI KAMI
DAFTAR GEJALA
KESIMPULAN PENYAKIT
SARAN PENGENDALIAN
SEPUTAR TERNAK
KAMBING
KELUAR
Gambar 15 Struktur Navigasi Guest
43
4.4 Perancangan Antarmuka
Antarmuka pengguna merupakan bagian dimana terjadi komunikasi antara
pengguna dengan sistem. Antarmuka yang mudah dan sederhana tentunya akan
sangat membantu pengguna dalam melakukan konsultasi dengan sistem pakar.
a. Perancangan antarmuka Halaman Utama
Perancangan antarmuka menu utama sistem pakar untuk mendiagnosis
penyakit kambing seperti yang ditunjukkan pada gambar. Yang terdiri dari tiga
halaman utama, yaitu Home, Penjelasan dan Konsultasi. Halaman ini berisi
ucapan selamat datang dan tujuan sistem pakar ini. Perancangan tampilan dapat
dilihat pada gambar 16.
Gambar 18 Perancangan Antarmuka Halaman Utama
b. Perancangan antarmuka Halaman Penjelasan
Perancangan antarmuka halaman penjelasan berisi tentang tata cara
penggunaan dan menjawab dalam proses konsultasi dan diagnosis penyakit
kambing. Perancangan tampilan dapat dilihat pada gambar 17.
44
Gambar 19 Perancangan Antarmuka Halaman Penjelasan
c. Perancangan antarmuka Halaman Konsultasi
Perancangan antarmuka halaman diagnosis merupakan sebagai tempat
memilih gejala-gejala dan sebagai halaman media antar sistem dan user untuk
saling berkonsultasi. Perancangan tampilan dapat dilihat pada gambar 18.
Gambar 20 Perancangan Antarmuka Halaman Konsultasi
45
d. Perancangan antarmuka Halaman Pengendalian
Perancangan antarmuka halaman hasil konsultasi merupakan output dari
hasil konsultasi berupa jenis penyakit yang didiagnosis dengan memberikan
akumulasi nilai persentasi dari tiap gejala yang harus di penuhi dan gejala yang
dipilih, dan juga memberikan saran pengendalian. Perancangan tampilan dapat
dilihat pada gambar 19.
Gambar 21 Perancangan Antarmuka Halaman Pengendalian
e. Perancangan Antarmuka Halaman Login Pakar
Perancangan antarmuka halaman login pakar digunakan untuk hak akses
pakar terhadap sistem. Perancangan tampilan dapat dilihat pada gambar 20.
46
Gambar 20 Perancangan Antarmuka Halaman Login
f. Perancangan Antarmuka Halaman Pakar
Perancangan antarmuka halaman pakar untuk mendiagnosis penyakit
kambing terdiri dari empat halaman utama, yaitu data penyakit, data gejala, data
pengendalian dan aturan. Halaman ini berisi ucapan selamat datang dan tujuan
sistem pakar ini. Perancangan tampilan dapat dilihat pada gambar 21.
Gambar 21 Perancangan Antarmuka Halaman Home Pakar
g. Perancangan Antarmuka Halaman Update Pengetahuan
Halaman update pengetahuan ada 3 yaitu halaman update untuk jenis
penyakit, update untuk gejala dan update untuk pengendalian. Perancangan
tampilan dapat dilihat pada gambar 22, gambar 23, gambar 24.
47
Gambar 22 Perancangan Antarmuka Halaman Update Data Penyakit
Image & Title
Home Penyakit Gejala Aturan Username,Pengendalian| | | |
Kode Gejala
Nama Gejala
MasukBatal
Kode Gejala GejalaNo
Gambar 23 Perancangan Antarmuka Halaman Update Data Gejala
48
Image & Title
Home Penyakit Gejala Aturan Username,Pengendalian| | | |
Kode Pengendalian
Pengendalian
MasukBatal
Kode Pengendalian PengendalianNo
Gambar 24 Perancangan Antarmuka Halaman Update Pengendalian
h. Perancangan Antarmuka Halaman Update Aturan
Halaman update aturan berguna untuk menambah, mengedit, menghapus
aturan baru, baik aturan untuk penyakit maupun aturan untuk pengendalian. Jika
tombol Atur Gejala Penyakit di-klik, maka halaman untuk menentukan aturan
penyakit akan terlihat sesuai dengan gambar 25 dan apabila tombol Atur
Pencegahan di-klik maka akan terlihat sesuai dengan gambar 26.
Gambar 25 Perancangan Antarmuka Halaman Update Aturan Penyakit
49
Gambar 26 Perancangan Antarmuka Halaman Update Aturan Pengendalian
4.5 Implementasi
Adapun alat dan bahan yang digunakan dalam melaksanakan analisa dan
penelitian adalah sebagai berikut :
4.5.1 Alat Penelitian
Penelitian ini menggunakan Personal Computer (PC) dengan konfigurasi :
1. Processor Intel Pentium IV 3.0 GHz
2. Memory 1 GB
3. Hard Disk 230 GB
4. Monitor resolusi 1024x768
4.5.2 Perangkat Lunak
Adapun perangkat lunak yang digunakan adalah:
1. Sistem Operasi Windows XP
2. Microsoft Office 2007
3. Apache Server/2.2.17
4. Mysqlnd 5.0.7
5. Aptana Studio 3
6. Mozilla Firefox 6.0.2
50
4.6 Pengkodean Aplikasi
Pembuatan aplikasi ini harus melewati tahap pengkodean, untuk dapat
menerapkan semua konten dinamis pada aplikasi web. Tahap pengkodean
dilakukan dengan menggunakan editor Notepad++.
Gambar 27 Tampilan Notepad++
4.7 Pembuatan Database
Dalam pembuatan aplikasi ini sangat perlu dibuatnya basis data
(database) setelah merancangnya terlebih dahulu yang tercantum pada sub
bab sebelumnya. Untuk implementasi pembuatan basis data sendiri akan
menggunakan perangkat lunak yang bernama PHPMyAdmin.
Dari gambar dibawah ini dapat dilihat hasil pembuatan basis data dengan
menggunakan PHPMyAdmin. Sebagai informasi tambahan, dengan
PHPMyAdmin ini proses pembuatan basis data dapat dilakukan dengan lebih
cepat karena memiliki antarmuka (interface) yang sangat sederhana dan
mudah dimengerti.
51
BAB V
HASIL DAN PEMBAHASAN
pada tahap ini penulis membhas tampilan sistem pakar diagnosis penyakit
ternak kambing yang telah dibuat. Setiap tampilan sistem pakar diagnosis
penyakit ternak kambing tersebut terbagi menjadi :
Dalam pembuatan sistem pakar diagnosa penyakit pada ternak kambing ini
digunakan bahasa pemrograman PHP, sedangkan databasenya menggunakan
MySQL.
5.1 Tampilan Halaman Home Guest
Halaman guest menampilkan artikel mengenai web dan pengenalan ternak
kambing. (Source Code Controller dirujuk pada Lampiran Source Code Directory
Controller file “home.php”)
Gambar 29 Tampilan Halaman Home
52
5.2 Tampilan Halaman Diagnosa
Pada halaman ini, pengguna diberikan tampilan data gejala-gejala yang ada
pada basis data sistem. .(Source Code Controller dirujuk pada Lampiran Source
Code Directory Controller file “posts.php”)
Gambar 30 Tampilan Halaman Diagnosa
Pengguna diberikan memilih sendiri gejala-gejala penyakit yang mungkin
diderita oleh ternak kambing. Setelah pengguna memilih beberap kemungkinan
gejala yang diderita ternak kambing. Lalu dengan meng-klik tombol lihat,
pengguna akan di berikan tampilan halaman lain.
53
5.3 Tampilan Halaman Kesimpulan Penyakit
Halaman kesimpulan ini merupakan halaman yang menampilkan hasil
kesimpulan dari gejala yang dipilih pengguna mengenai penyakit yang mungkin
diderita oleh ternak kambing.
Gambar 31 Tampilan Halaman Kesimpulan Diagnosa
Pada halaman ini, sistem telah membuat kesimpulan dan menampilkan
kemungkinan penyakit yang diderita ternak. (Source Code Controller dirujuk
pada Lampiran Source Code Directory Controller file “posts.php”)
54
5.4 Tampilan Halaman Saran Pengendalian
Setelah sistem membuat kesimpulan tentang penyakit yang mungkin di
derita ternak kambing, kemudian dengan mengklik icon pada kolom detail. Sistem
akan menampilakan saran pengendalian untuk penyakit yang disimpulkan oleh
sistem. (Source Code Controller dirujuk pada Lampiran Source Code Directory
Controller file “posts.php”)
Gambar 32 Tampilan Halaman Saran Pengendalian
55
5.5 Tampilan Halaman Gejala
Halaman gejala merupakan halaman yang menampilakan semua gejala yang
terdapat pada basis data, yang hanya bisa diakses oleh engineer. Pada halaman ini
engineer dapat menambah, mengedit dan menghapus data-data gejala yang ada
pada basis data. (Source Code Controller dirujuk pada Lampiran Source Code
Directory Controller file “gejala.php”)
Gambar 33 Tampilan Halaman Gejala
56
5.6 Tampilan Halaman Tambah Gejala
Halaman tambah gejala ini digunakan untuk memperbaharui basis data,
dengan menambahkan gejala-gejala baru hasil penelitian pakar. Dengan halaman
ini, basis pengetahuan akan semakin mudah untuk diperbaharui. (Source Code
Controller dirujuk pada Lampiran Source Code Directory Controller file
“gejala.php”)
Gambar 34 Tampilan Halaman Tambah Gejala
57
5.7 Tampilan Halaman Edit Gejala
Halaman edit gejala ini digunakan untuk mengedit basis data yang telah ada
sebelumnya, terdiri dari 2 kotak untuk mengedit basis data. (Source Code
Controller dirujuk pada Lampiran Source Code Directory Controller file
“gejala.php”)
Gambar 35 Tampilan Halaman Edit Gejala
58
5.8 Tampilan Halaman Penyakit
Halaman ini menampilkan semua penyakit yang terdapat pada basis data,
sama halnya dengan halaman gejala. (Source Code Controller dirujuk pada
Lampiran Source Code Directory Controller file “penyakit.php”)
Gambar 36 Tampilan Halaman Penyakit
59
5.9 Tampilan Halaman Tambah Penyakit
Tampilan halaman tambah penyakit,pada penerapannya digunakan untuk
memperbaharui basis data penyakit, keserhanaan tampilan antarmuka diharapkan
dapat memudahkan engineer untuk menambahkan pengetahuan baru ke dalam
basis data. (Source Code Controller dirujuk pada Lampiran Source Code
Directory Controller file “penyakit.php”)
Gambar 37 Tampilan Halaman Tambah Penyakit
60
5.10 Tampilan Halaman Edit Penyakit
Halaman edit penyakit ini sama halnya dengan halaman edit gejala,
digunakan sebagai media untuk memperbaiki basis data mengenai penyakit ternak
kambing. (Source Code Controller dirujuk pada Lampiran Source Code Directory
Controller file “penyakit.php”)
Gambar 38 Tampilan Halaman Edit Penyakit
61
5.11 Tampilan Halaman Pengendalian
Pada halaman pengendalian, seluruh basis data mengenai pengendalian di
tampilkan dalam beberapa halaman tabel. Diharapkan nanti tampilan antarmuka
ini dapat mempermudah engineer untuk menggunakannya. (Source Code
Controller dirujuk pada Lampiran Source Code Directory Controller file
“pengendalian.php”)
Gambar 39 Tampilan Halaman Pengendalian
62
5.12 Tampilan Halaman Tambah Pengendalian
Halaman tambah pengendalian ini nantinya akan digunakan sebagai
antarmuka engineer dengan sistem untuk memperbaharui basis data yang
berkaitan dengan pengendalian penyakit pada ternak kambing. (Source Code
Controller dirujuk pada Lampiran Source Code Directory Controller file
“pengendalian.php”)
Gambar 40 Tampilan Halaman Tambah Pengendalian
63
5.13 Tampilan Halaman Edit Pengendalian
Halaman edit pengendalian ini nantinya digunakan untuk memperbaiki basis
data mengenai saran pengendalian untuk penyakit pada ternak kambing. (Source
Code Controller dirujuk pada Lampiran Source Code Directory Controller file
“pengendalian.php”)
Gambar 41 Tampilan Halaman Edit Pengendalian
64
5.14 Tampilan Halaman Basis Aturan Penyakit
Halaman basis aturan ini berfungsi untuk menampilkan semua aturan gejala-
gejala yang mengarah pada penyakit yang dominan dan disimpulkan oleh sistem
pada proses berjalan sistem. (Source Code Controller dirujuk pada Lampiran
Source Code Directory Controller file “aturan_penyakit.php”)
Gambar 42 Tampilan Halaman Basis Aturan Penyakit
65
5.15 Tampilan Halaman Perbaharui Aturan Penyakit
Tampilan halaman ini terdiri dari halaman popup yang akan menampilkan
penyakit dan dipilih salah satunya oleh engineer. Pada halaman ini juga terdapat
tabel yang menampilkan semua gejala, dimana engineer akan memilih beberapa
gejala yang mengarah pada penyakit yang dipilih sebelumnya dan sesuai dengan
basis pengetahuan pakar. (Source Code Controller dirujuk pada Lampiran Source
Code Directory Controller file “aturan_penyakit.php”)
Gambar 43 Tampilan Halaman Perbaharui Aturan Penyakit
66
5.16 Tampilan Halaman Perbaharui Aturan Pengendalian
Sama halnya seperti tampilan halaman perbahrui aturan penyakit, halaman
perbaharui aturan pengendalian juga mengikutsertakan nama penyakit yang akan
di perbaharui saran pengendaliannya terhadap penyakit yang terkait. (Source Code
Controller dirujuk pada Lampiran Source Code Directory Controller file
“aturan_pengendalian.php”)
Gambar 44 Tampilan Halaman Perbaharui Aturan Pengendalian
67
5.17 Tampilan Halaman Informasi
Tampilan halaman ini hanya berisi informasi seputar penyakit-penyakit yang
menular dan tidak menular diantara hewan ternak kambing. Informasi yang
ditampilakan berupa teks. (Source Code Controller dirujuk pada Lampiran Source
Code Directory Controller file “info.php”)
Gambar 45 Tampilan Halaman Informasi
68
5.18 Tampilan Halaman Hubungi Kami
Pada tampilan halaman ini berisi informasi tentang nomor telepon, alamat
dan email dari Engineer/Pakar/Administrator yang terlibat secara langsung atau
tidak langsaung dengan aplikasi web ini. (Source Code Controller dirujuk pada
Lampiran Source Code Directory Controller file “contact.php”)
Gambar 46 Tampilan Halaman Hubungi Kami
69
5.19 Tampilan Halaman Login
Pada halaman ini, engineer/pkar/administrator yang memiliki akun dapat
masuk ke dalam sistem untuk mendapatkan info mengenai basis pengetahuan
yang terdapat pada basis data sistem. Proses pembaharuan basis pengetahuan juga
dapat dilakukan melalui halaman ini.
Gambar 47 Tampilan Halaman Login
5.19 Uji Coba
Tahap selanjutnya adalah uji coba sistem. Situs web di uji dengan cara
menjalankan browser, dalam hal ini browser yang mendukung adalah Mozilla
Firefox. Dengan uji coba ini dapat diketahui kekurangan atau kelemahan aplikasi
web yang dibuat, seperti link yang terputus, tampilan informasi yang kurang
proporsional, penulisan kode yang tidak benar dan sebagainya.
Dalam uji coba aplikasi web diagnosa penyakit pada ternak kambing,
dilakukan beberapa uji coba, yaitu:
1. Uji Coba Fungsional
2. Uji Coba Validasi
70
5.19.1 Uji Coba Fungsional
Uji coba fungsional dilakukan dengan cara mengklik setiap link dan melihat
halaman yang terbuka. Hasil uji coba fungsional ini dapat dilihat pada tabel 5.1.
Tabel 14 Tabel Uji Coba Fungsional
Menu Sub Menu Berfungsi
Login Berfungsi
Diagnosa Berfungsi
Saran Pengendalian Berfungsi
Gejala Berfungsi
Tambah Gejala Berfungsi
Edit Gejala Berfungsi
Penyakit Berfungsi
Tambah Penyakit Berfungsi
Edit Penyakit Berfungsi
Pengendalian Berfungsi
Tambah Pengendalian Berfungsi
Edit Pengendalian Berfungsi
Logout Berfungsi
Dari hasil pengujian fungsional yang dilakukan pada setiap link di
halaman web sistem pakar diagnosa penyakit pada ternak kambing, telah terbukti
bahwa semua link sudah dapat berfungsi dengan halaman web yang dituju di web
browser Mozilla Firefox.
71
5.19.2 Uji Coba Validasi
Uji coba validasi merupakan pemeriksaan keakuratan hasil data yang telah
dimasukkan kedalam aplikasi. Uji coba tersebut dilakukan dengan validasi sistem
pengisian data ke dalam sistem dan hasil akhirnya sesuai dengan data yang
dimasukkan.
63
BAB VI
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Dari penelitian ini dapat disimpulkan:
1. Hasil pengujian “Sistem Pakar untuk Diagnosa Penyakit pada Ternak Kambing” menunjukkan bahwa sistem pakar ini dapat melakukan penambahan data gejala, data penyakit dan data pencegahan.
2. Sistem pakar ini dapat memberikan saran pengendalian penyakit yang ditujukan kepada pengguna agar bisa mengantisipasi kambing yang belum terinfeksi penyakit (dalam keadaan sehat).
6.2 Saran
Untuk menyempurnakan sistem yang telah dibuat ini diberikan saran :
1. Dalam pengembangannya, diharapkan dalam pengumpulan data – data
gejala harus lebih lengkap agar menghasilkan informasi penyakit yang lebih
akurat.
2. Sistem ini diharapkan dapat memberikan informasi yang akurat dengan
melakukan percobaan – percobaan menggunakan banyak kombinasi data
penyakit sehingga dapat menjadi perbandingan dalam penentuan jenis
penyakit.
64
DAFTAR PUSTAKA Anonim, 2011, Pengertian Sistem Pakar, (online),
(http://id.wikipedia.org/wiki/Sistem_pakar diakses 21 September
2011)
B. Sarwono, 2010, Beternak Kambing Unggul, Penebar Swadaya, Jakarta.
Anton. S. H, 2009, Kategori Sistem Pakar (Backward & Forward
Chaining), ISSN: 1693-6930, Yogyakarta.
Turban. R, Aronson. J. E., Liang T. P., 2005, “Decision Support
Systems and Intelligent Systems (Sistem Pendukung Keputusan dan
Sistem Cerdas)”, Edisi 7, Jilid 2, CV. Andi Offset, Yogyakarta
Hanif Al Fatta, 2007, Analisis & Perancangan Sistem Informasi, Penerbit
Andi, Jogjakarta.
Suyanto, 2007, Artificial Intelligence, Penerbit Informatika, Bandung.
Muhaimin Iqbal, 2010, Kambing Online, (online),
(http://www.kambingonline.com diakses 5 Oktober 2011)
Perputakaan Universitas Pendidikan Indonesia, Teorema Bayes, (online),
(http://www.kambingonline.com diakses 21 September 2011)
Wankyu Choi, Allan Kent, Chris Lea, Ganesh Prasad, Chris Ullman,
Jon Blank, & Sean Cazzel, 2000, Beginning PHP 4, Birmingham.
Kusrini, 2006, Kuantifikasi Pertanyaan Untuk Mendapatkan Certainty
Factor Pengguna Pada Aplikasi Sistem Pakar Untuk Diagnosis
Penyakit, ISSN:1411-6286, Yogyakarta.
66
1. Lampiran Aturan/Kaidah Penyakit Ternak Kambing terhadap Gejalanya.
Himpunan kaidah untuk gejala penyakit adalah sebagai berikut :
a. Kaidah untuk penyakit Kudis (Scabies Goat)
R1 : IF Gatal-gatal
THEN Kudis
R2 : IF Nafsu Makan Kurang
THEN Kudis
R3 : IF Kulitnya Merah Menebal
THEN Kudis
R4 : IF Berkeropeng-keropeng
THEN Kudis
R5 : IF Bulu Rontok
THEN Kudis
b. Kaidah untuk penyakit Mencret karena Cacing
R1 : IF Susah Buang Kotoran
THEN Mencret karena Cacing
R2 : IF Lesu
THEN Mencret karena Cacing
R3 : IF Bulu dekat anus kotor
THEN Mencret karena Cacing
R4 : IF Didalam kotoran terdapat cacing
THEN Mencret karena Cacing
R5: IF Tidak bisa gemuk (kurus)
THEN Mencret karena Cacing
R6 : IF Perutnya besar
THEN Mencret karena Cacing
67
R7 : IF Bulu kasar tidak mengkilat
THEN Mencret karena Cacing
c. Kaidah untuk penyakit Jantung Berair
R1 : IF Kejang gagau
THEN Jantung Berair
R2 : IF Demam
THEN Jantung Berair
R3 : IF Mengedipkan kelopak mata sekejap
THEN Jantung Berair
R4 : IF Lidahnya terjulur
THEN Jantung Berair
R5 : IF Jalannya berputar-putar
THEN Jantung Berair
R6 : IF Pernapasan Berat
THEN Jantung Berair
R7 : IF Jantung dan paru-paru terdapat cairan
THEN Jantung Berair
d. Kaidah untuk penyakit Ingusan Meloidosis
R1 : IF Demam
THEN Ingusan Meloidosis
R2 : IF Nafsu makan kurang
THEN Ingusan Meloidosis
R3 : IF Pernapasan berat
THEN Ingusan Meloidosis
R4 : IF Batuk-batuk
THEN Ingusan Meloidosis
68
R5 : IF Ingusan
THEN Ingusan Meloidosis
R6 : IF Kelenjar getah bening membengkak
THEN Ingusan Meloidosis
R7 : IF Persendian membengkak
THEN Ingusan Meloidosis
R8 : IF Buah pelir membengkak
THEN Ingusan Meloidosis
e. Kaidah untuk penyakit Enterotoxemia
R1 : IF Kejang-kejang
THEN Enterotoxemia
R2 : IF Kepala tertekan
THEN Enterotoxemia
R3 : IF Jalannya berputar-putar
THEN Enterotoxemia
R4 : IF Mata mungkin buta
THEN Enterotoxemia
f. Kaidah untuk penyakit Cacar Kambing
R1 : IF Nafsu makan kurang
THEN Cacar Kambing
R2 : IF Demam
THEN Cacar Kambing
R3 : IF Ingusan
THEN Cacar Kambing
R4 : IF Pernapasan berat
THEN Cacar Kambing
69
R5 : IF Berkeropeng-keropeng
THEN Cacar Kambing
g. Kaidah untuk penyakit Pes Semu
R1 : IF Denyut Nadi Cepat
THEN Pes Semu
R2 : IF Lesu
THEN Pes Semu
R3 : IF Demam
THEN Pes Semu
R4 : IF Nafsu Makan Kurang
THEN Pes Semu
R5 : IF Batuk-batuk
THEN Pes Semu
R6 : IF Ingusan
THEN Pes Semu
R7 : IF Sekitar mulut merah & kasar
THEN Pes Semu
70
2. Lampiran Source Code Directory Root
|-----------------------------------------
| DIRECTORY : ROOT
|-----------------------------------------
a. File “index.php”
<?php
session_start();
include('config.php');
function dispatcher($routes)
{
$url = $_SERVER['REQUEST_URI'];
$url = str_replace('/'.APP_ROOT.'/', '', $url);
$params = parse_params();
$url = str_replace('?'.$_SERVER['QUERY_STRING'],'', $url);
$route_match = false;
foreach($routes as $urls => $route)
{
$mathces to $params
exits loop
if(preg_match($route['url'], $url, $matches))
{
$params = array_merge($params, $matches);
$route_match = true;
break;
}
}
if(!$route_match) { exit('No route found'); }
include(CONTROLLER_PATH.$route['controller'].'.php');
if(file_exists(VIEW_PATH.'layouts'.DS.$route['controller'].'.php'))
{
include(VIEW_PATH.'layouts'.DS.$route['controller'].'.php');
}
71
else
{
include(VIEW_PATH.'layouts'.DS.'application.php');
}
$_SESSION['flash']['notice'] = '';
$_SESSION['flash']['warning'] = '';
}
dispatcher($routes);
function parse_params()
{
$params = array();
if(!empty($_POST))
{
$params = array_merge($params, $_POST);
}
if(!empty($_GET))
{
$params = array_merge($params, $_GET);
}
return $params;
} ?>
|----------------------------------------------------------------------------------------
b. File “config.php”
<?php
define('SERVER_ROOT', $_SERVER['DOCUMENT_ROOT']);
define('DS', '/');
define('APP_ROOT', 'sistem_pakar');
define('WEBSITE', 'http://localhost/');
72
define('MODEL_PATH', SERVER_ROOT.DS.APP_ROOT.DS.'models'.DS);
define('VIEW_PATH', SERVER_ROOT.DS.APP_ROOT.DS.'views'.DS);
define('CONTROLLER_PATH', SERVER_ROOT.DS.APP_ROOT.DS.'controllers'.DS);
$routes = array(
array('url' => '/^\/?$/', 'controller' => 'home', 'view' => 'index'),
array('url' => '/^\/info$/', 'controller' => 'info', 'view' => 'index'),
array('url' => '/^\/contact$/', 'controller' => 'contact', 'view' => 'index'),
array('url' => '/^posts\/?$/', 'controller' => 'posts', 'view' => 'index'),
array('url' => '/^posts\/show$/', 'controller' => 'posts', 'view' => 'show'),
array('url' => '/^posts\/(?P<id>\w+)\/analize$/', 'controller' => 'posts', 'view' => 'analize'),
array('url' => '/^gejala\/?$/', 'controller' => 'gejala', 'view' => 'index'),
array('url' => '/^gejala\/new$/', 'controller' => 'gejala', 'view' => 'new'),
array('url' => '/^gejala\/create$/', 'controller' => 'gejala', 'view' => 'create'),
array('url' => '/^gejala\/(?P<id>\w+)\/edit$/', 'controller' => 'gejala', 'view' => 'edit'),
array('url' => '/^gejala\/(?P<id>\w+)\/update$/', 'controller' => 'gejala', 'view' => 'update'),
array('url' => '/^penyakit\/?$/', 'controller' => 'penyakit', 'view' => 'index'),
array('url' => '/^penyakit\/new$/', 'controller' => 'penyakit', 'view' => 'new'),
array('url' => '/^penyakit\/create$/', 'controller' => 'penyakit', 'view' => 'create'),
array('url' => '/^penyakit\/(?P<id>\w+)\/edit$/', 'controller' => 'penyakit', 'view' => 'edit'),
73
array('url' => '/^penyakit\/(?P<id>\w+)\/update$/', 'controller' => 'penyakit', 'view' => 'update'),
array('url' => '/^pengendalian\/?$/', 'controller' => 'pengendalian', 'view' => 'index'),
array('url' => '/^pengendalian\/new$/', 'controller' => 'pengendalian', 'view' => 'new'),
array('url' => '/^pengendalian\/create$/', 'controller' => 'pengendalian', 'view' => 'create'),
array('url' => '/^pengendalian\/(?P<id>\w+)\/edit$/', 'controller' => 'pengendalian', 'view' => 'edit'),
array('url' => '/^pengendalian\/(?P<id>\w+)\/update$/', 'controller' => 'pengendalian', 'view' => 'update'),
array('url' => '/^sessions\/new$/', 'controller' => 'sessions', 'view' => 'new'),
array('url' => '/^sessions\/create$/', 'controller' => 'sessions', 'view' => 'create'),
array('url' => '/^sessions\/delete$/', 'controller' => 'sessions', 'view' => 'delete'),
array('url' => '/^aturan_penyakit\/?$/', 'controller' => 'aturan_penyakit', 'view' => 'index'),
array('url' => '/^aturan_penyakit\/new$/', 'controller' => 'aturan_penyakit', 'view' => 'new'),
array('url' => '/^aturan_penyakit\/cek$/', 'controller' => 'aturan_penyakit', 'view' => 'cek'),
array('url' => '/^aturan_pengendalian\/?$/', 'controller' => 'aturan_pengendalian', 'view' => 'index'),
array('url' => '/^aturan_pengendalian\/new$/', 'controller' => 'aturan_pengendalian', 'view' => 'new'), array('url' => '/^aturan_pengendalian\/cek$/', 'controller' => 'aturan_pengendalian', 'view' => 'cek'));
74
include('lib/controller.php');
include('lib/model.php');
include('lib/view.php');
include('lib/dB.php');
?>
75
3. Lampiran Source Code Directory Controller
|-----------------------------------------
| DIRECTORY : CONTROLLER
|-----------------------------------------
a. File “aturan_pengendalian.php”
<?php
include (MODEL_PATH.'a_pengendalian.php');
switch($route['view'])
{
case"index":
$posts = q_rec_list();
break;
case"new":
check_authentication();
$list_pengendalian = list_chakra('mpengendalian');
$posts = list_chakra('mpenyakit');
break;
case"cek";
check_authentication();
if(empty($params['kode']) OR empty($params['pengendalian']))
{
flash_warning('Maaf, Pengendalian dan Penyakit tidak boleh
kosong!');
}
else
{
76
$tambah = tambah_aturan($params);
flash_notice('Aturan Baru telah Ditambahkan!');
}
redirect_to('aturan_pengendalian/new');
break;
} ?>
|----------------------------------------------------------------------------------------
b. File “aturan_penyakit.php”
<?php
include (MODEL_PATH.'a_penyakit.php');
switch ($route['view'])
{
case "index":
check_authentication();
$posts = q_rec_list();
break;
case"new":
check_authentication();
$list_gejala = list_chakra('mgejala');
$posts = list_chakra('mpenyakit');
break;
77
case"cek";
check_authentication();
if(empty($params['kode']) OR empty($params['gejala']))
{
flash_warning('Maaf, Gejala dan Penyakit tidak boleh kosong!');
}
else
{
$tambah = tambah_aturan($params);
flash_notice('Aturan Baru telah Ditambahkan!');
}
redirect_to('aturan_penyakit/new');
break;
} ?>
|----------------------------------------------------------------------------------------
c. File “contact.php”
<?php
switch($route['view'])
{
case"index":
return true;
78
break;
} ?>
|----------------------------------------------------------------------------------------
d. File “gejala.php”
<?php
include (MODEL_PATH.'gejala_func.php');
include (MODEL_PATH.'_func.php');
switch ($route['view'])
{
case "index":
check_authentication();
$posts = q_rec_list('mgejala');
break;
case "new":
break;
case "create":
check_authentication();
$errors = validate($post_validations, $params['post']);
if($errors)
{
79
$route['view'] = 'new';
flash_warning('Maaf, ada kesalahan saat menambahkan gejala!');
}
else
{
$insert = insert_gejala($params['post']);
if(!$insert)
{
$route['view'] = 'new';
flash_warning('Kode Gejala Sudah Ada!');
}
else
{
flash_notice('Data Gejala baru telah berhasil ditambahkan!');
redirect_to('gejala');
}
}
break;
case "edit":
check_authentication();
$post = edit_post($params['id'], 'mgejala', 'kode_gejala');
80
break;
case "update":
check_authentication();
$errors = validate($post_validations, $params['post']);
if($errors)
{
$post['kode'] = $params['kode_gejala'];
$route['view'] = 'edit';
flash_warning('Maaf, mohon periksa data anda!');
}
else
{
//print_r($params['post']);
update_gejala($params['post']);
flash_notice('Data Gejala telah berhasil diperbaharui!');
redirect_to('gejala');
}
break;} ?>
|----------------------------------------------------------------------------------------
81
e. File “home.php”
<?php
switch($route['view'])
{
case"index":
return true;
break;
case"info":
return true;
break;
} ?>
|----------------------------------------------------------------------------------------
f. File “info.php”
<?php
switch($route['view'])
{
case"index":
return true;
break;
} ?>
|----------------------------------------------------------------------------------------
g. File “pengendalian.php”
<?php
include (MODEL_PATH.'pengendalian_func.php');
include (MODEL_PATH.'_func.php');
switch ($route['view'])
{
82
case "index":
check_authentication();
$posts = q_rec_list('mpengendalian');
break;
case "new":
break;
case "create":
check_authentication();
$errors = validate($post_validations, $params['post']);
if($errors)
{
$route['view'] = 'new';
flash_warning('Please correct the below errors!');
}
else
{
$insert = insert_penyakit($params['post']);
if(!$insert)
{
$route['view'] = 'new';
flash_warning('Kode Pengendalian Sudah Ada!');
}
else
{
flash_notice('Data Pengendalian baru telah berhasil
ditambahkan!');
redirect_to('pengendalian');
}
}
83
break;
case "edit":
check_authentication();
$post = edit_post($params['id'], 'mpengendalian',
kode_pengendalian');
break;
case "update":
check_authentication();
$errors = validate($post_validations, $params['post']);
if($errors)
{
$post['kode'] = $params['kode_pengendalian'];
$route['view'] = 'edit';
flash_warning('Maaf, mohon periksa data anda!');
}
else
{
//print_r($params['post']);
update_pengendalian($params['post']);
flash_notice('Data Pengendalian telah berhasil
diperbaharui!');
redirect_to('pengendalian');
}
break;
|----------------------------------------------------------------------------------------
84
h. File “penyakit.php”
<?php
include (MODEL_PATH.'penyakit_func.php');
include (MODEL_PATH.'_func.php');
switch ($route['view'])
{
case "index":
check_authentication();
$posts = q_rec_list('mpenyakit');
break;
case "new":
break;
case "create":
check_authentication();
$errors = validate($post_validations, $params['post']);
if($errors)
{
$route['view'] = 'new';
flash_warning('Please correct the below errors!');
}
else
{
$insert = insert_penyakit($params['post']);
if(!$insert)
{
$route['view'] = 'new';
flash_warning('Kode Penyakit Sudah Ada!');
}
else
85
{
flash_notice('Data Penyakit baru telah berhasil
ditambahkan!');
redirect_to('penyakit');
}
}
break;
case "edit":
check_authentication();
$post = edit_post($params['id'], 'mpenyakit', 'kode_penyakit');
break;
case "update":
check_authentication();
$errors = validate($post_validations, $params['post']);
if($errors)
{
$post['kode'] = $params['kode_penyakit'];
$route['view'] = 'edit';
flash_warning('Maaf, mohon periksa data anda!');
}
else
{
// print_r($params['post']);
update_penyakit($params['post']);
flash_notice('Data Penyakit telah berhasil diperbaharui!');
redirect_to('penyakit');
}
break;
} ?>
|----------------------------------------------------------------------------------------
86
i. File “posts.php”
<?php
include (MODEL_PATH.'_func.php');
switch ($route['view'])
{
case "index":
$posts = q_rec_list('mgejala');
break;
case "show":
if(empty($params['gejala']))
{
flash_warning('Mohon periksa kembali pilihan anda!!');
redirect_to('posts');
}
else
{
$posts = find_penyakit($params['gejala']);
if($posts)
{
foreach($posts as $post)
{
$pengendalian[] =
find_pengendalian($post['kode_penyakit']);
}
}
}
break;
case "analize";
$posts = find_pengendalian($params);
//print_r($posts);
87
break;
} ?>
|----------------------------------------------------------------------------------------
j. File “session.php”
<?php
include (MODEL_PATH.'user.php');
include (MODEL_PATH.'_func.php');
switch($route['view'])
{
case"new":
break;
case"create":
if(login($params['user']['username'], $params['user']['password']))
{
redirect_to('gejala');
}
else
{
flash_warning('Maaf, Kombinasi username dan password tidak valid');
$route['view'] = 'new';
}
break;
case "delete":
$_SESSION['user'] = null;
flash_notice('Anda telah berhasil keluar');
//check_authentication();
redirect_to('posts');
88
break;
} ?>
|----------------------------------------------------------------------------------------
89
4. Lampiran Source Code Directory Library
|-----------------------------------------
| DIRECTORY : LIB
|-----------------------------------------
a. File “dB.php”
<?php function error_msg($error, $msg)
{
if($error) { return $msg; }
return '';
}
function element_value($error, $row, $param)
{
if($error) { return ''; }
if($row) { return $row; }
if($param) { return $param; }
return;
}
function logged_in()
{
if($_SESSION['user'])
{
return true;
}
else
{
return false;
}}
function current_user($field)
{
return $_SESSION['user'][$field];
} ?>
|----------------------------------------------------------------------------------------
90
5. Lampiran Source Code Directory Models
|-----------------------------------------
| DIRECTORY : MODELS
|-----------------------------------------
a. File “_func.php”
<?php
function q_rec_list($table)
{
$o_conn = db_conn();
$q_str_esc = "SELECT * FROM " . $table;
$q_rec = mysql_query($q_str_esc, $o_conn);
if(!$q_rec)
{
die("Maaf, kami tidak bisa menampilkan list record". mysql_error());
}
//echo $table."Congratulations". mysql_errno();
$result_record = result_to_array($q_rec);
return $result_record;
}
function result_to_array($result)
{
$result_array = array();
for($i=0; $row = mysql_fetch_array($result) ;$i++)
{
$result_array[$i] = $row;
}
return $result_array;
}
function list_fields($table)
91
{
$o_conn = db_conn();
$q_str_esc = "SELECT * FROM ". $table;
$q_rec = mysql_query($q_str_esc, $o_conn);
for ($i=0; $meta = mysql_fetch_field($q_rec); $i++)
{
$field_name[] = $meta->name;
if(!$meta)
{
die("Field table tidak dapat ditampilkan" . mysql_error());
}
}
return $field_name;
}
function find_penyakit($id)
{
$o_conn = db_conn();
$arr = array_values($id);
//echo sizeof($arr);
for($i=0; $i<sizeof($arr); $i++)
{
$arr_record = trim($arr[$i]);
$query = "select * from b_aturan_penyakit where kode_gejala =
'$arr_record'";
$f_rec = mysql_query($query);
if(!$f_rec)
{
die("Maaf, kami tidak bisa menampilkan list record".
mysql_error());
}
//print_r($query);
92
for($n=0; $row = mysql_fetch_assoc($f_rec);$n++)
{
$result_array[] = $row;
//print_r($row);
}
}
$count = count_gejala($result_array);
return $count;
}
function find_pengendalian($params)
{
$o_conn = db_conn();
$q_str_esc = sprintf("SELECT * FROM b_aturan_pengendalian,
mpengendalian, mpenyakit
WHERE
b_aturan_pengendalian.kode_penyakit = '%s'
AND
b_aturan_pengendalian.kode_penyakit = mpenyakit.kode_penyakit
AND
b_aturan_pengendalian.kode_pengendalian =
mpengendalian.kode_pengendalian
",
mysql_real_escape_string($params));
$q_rec = mysql_query($q_str_esc);
if(!$q_rec)
{
die("Maaf, kami tidak bisa menampilkan list record". mysql_error());
}
// echo $table."Congratulations". mysql_errno();
$result_record = result_to_array($q_rec);
return $result_record;
93
}
function pengendalian($params)
{
foreach ($params as $post=>$key)
{
foreach ($key as $post)
{
$meta['kode_gejala'] = $post;
}
}
$o_conn = db_conn();
$q_str_esc = sprintf("SELECT * FROM mpengendalian
WHERE
kode_pengendalian = '%s'
",
mysql_real_escape_string($meta['kode_gejala']));
$q_rec = mysql_query($q_str_esc);
if(!$q_rec)
{
die("Maaf, kami tidak bisa menampilkan list record".
mysql_error());
}
// echo $table."Congratulations". mysql_errno();
$result_record = result_to_array($q_rec);
return $result_record;
}
function count_gejala($id)
{
if(empty($id))
{
flash_warning('Mohon periksa kembali pilihan anda!!');
redirect_to('posts');
94
}
else
{
for($i=0;$i<sizeof($id);$i++)
{
$count[$id[$i]['kode_penyakit']][] = $id[$i]['kode_gejala'];
}
foreach ($count as $meta=>$key)
{
$counts[$meta] = count($key);
}
$result = calc($counts);
return $result;
//print_r($counts);
}
}
function calc($id)
{
foreach($id as $meta=>$key)
{
$query = "select count(*) from b_aturan_penyakit where
kode_penyakit = '$meta'";
$f_rec = mysql_query($query);
if(!$f_rec)
{
die("Maaf, kami tidak bisa menampilkan list record".
mysql_error());
}
for($n=0; $row = mysql_fetch_assoc($f_rec);$n++)
{
$result_array[$meta] = $row;
}
95
foreach($result_array as $a=>$uke)
{
foreach ($uke as $chakra)
{
$chakra_angin[$meta] = $chakra;
$penyakit[$meta] = number_format(($key/$chakra), 4, '.',
'');
}
}
}
$diagnosa = diagnosa_awal($penyakit);
return $diagnosa;
}
function diagnosa_awal($id)
{
$total_persen = array_sum($id);
foreach($id as $meta=>$key)
{
$diagnosa_awal[$meta] =
number_format($key/$total_persen, 2, '.', '');
}
$hasil_diagnosa = pilih_penyakit($diagnosa_awal);
return $hasil_diagnosa;}
function pilih_penyakit($id)
{
$max = max($id);
foreach($id as $meta=>$key)
{
if($key == $max)
{
$query = "select * from mpenyakit where kode_penyakit =
'$meta'";
96
$f_rec = mysql_query($query);
if(!$f_rec)
{
die("Maaf, kami tidak bisa menampilkan list record".
mysql_error());
}
for($n=0; $row = mysql_fetch_assoc($f_rec);$n++)
{
$result_array[$meta] = $row;
}
$result_array[$meta][] = $max;
}
}
return $result_array;
}
function close_conn()
{
mysql_close();
} ?>
|----------------------------------------------------------------------------------------
b. File “a_pengendalian.php”
<?php
$post_validations = array('kode' => '/^[[:alnum:][:punct:][:space:]]{1,100}$/',
'pengendalian' =>
'/^[[:alnum:][:punct:][:space:]]{1,2000}$/');
function q_rec_list()
{
$o_conn = db_conn();
$q_str_esc = "SELECT * FROM b_aturan_pengendalian, mpenyakit,
mpengendalian
97
WHERE
b_aturan_pengendalian.kode_penyakit = mpenyakit.kode_penyakit
AND
b_aturan_pengendalian.kode_pengendalian =
pengendalian.kode_pengendalian";
$q_rec = mysql_query($q_str_esc, $o_conn);
if(!$q_rec)
{
die("Maaf, kami tidak bisa menampilkan list record". mysql_error());
}
//echo $table."Congratulations". mysql_errno();
$result_record = result_to_array($q_rec);
return $result_record;
}
function result_to_array($result)
{
$result_array = array();
for($i=0; $row = mysql_fetch_array($result) ;$i++)
{
$result_array[$i] = $row;
}
return $result_array;
}
function list_chakra($table)
{
$o_conn = db_conn();
$q_str_esc = "SELECT * FROM " . $table;
$q_rec = mysql_query($q_str_esc, $o_conn);
if(!$q_rec)
{
98
die("Maaf, kami tidak bisa menampilkan list record".
mysql_error());
}
//echo $table."Congratulations". mysql_errno();
$result_record = result_to_array($q_rec);
return $result_record;
}
function tambah_aturan($params)
{
$penyakit = $params['kode'];
$pengendalian = array_values($params['pengendalian']);
$o_conn = db_conn();
$delete = sprintf("delete from b_aturan_pengendalian where kode_penyakit =
'%s'",
mysql_real_escape_string($penyakit));
$query_delete = mysql_query($delete);
if($query_delete)
{
for($i=0;$i<sizeof($pengendalian);$i++)
{
$query = sprintf("insert into b_aturan_pengendalian set
kode_penyakit = '%s',
kode_pengendalian = '%s'",
mysql_real_escape_string($penyakit),
mysql_real_escape_string($pengendalian[$i]));
$query_insert = mysql_query($query);
}
}
else
99
{
return false;
}} ?>
|----------------------------------------------------------------------------------------
c. File “a_penyakit.php”
<?php
$post_validations = array('kode' => '/^[[:alnum:][:punct:][:space:]]{1,100}$/',
'gejala' =>
'/^[[:alnum:][:punct:][:space:]]{1,2000}$/');
function q_rec_list()
{
$o_conn = db_conn();
$q_str_esc = "SELECT * FROM b_aturan_penyakit, mpenyakit, mgejala
WHERE b_aturan_penyakit.kode_penyakit = mpenyakit.kode_penyakit
AND b_aturan_penyakit.kode_gejala = mgejala.kode_gejala" ;
$q_rec = mysql_query($q_str_esc, $o_conn);
if(!$q_rec)
{
die("Maaf, kami tidak bisa menampilkan list record".
mysql_error());
}
//echo $table."Congratulations". mysql_errno();
$result_record = result_to_array($q_rec);
return $result_record;
}
function result_to_array($result)
{
$result_array = array();
for($i=0; $row = mysql_fetch_array($result) ;$i++)
100
{ $result_array[$i] = $row; }
return $result_array;
}
function list_chakra($table)
{
$o_conn = db_conn();
$q_str_esc = "SELECT * FROM " . $table;
$q_rec = mysql_query($q_str_esc, $o_conn);
if(!$q_rec)
{
die("Maaf, kami tidak bisa menampilkan list record". mysql_error());
}
//echo $table."Congratulations". mysql_errno();
$result_record = result_to_array($q_rec);
return $result_record;
}
function tambah_aturan($params)
{
$penyakit = $params['kode'];
$gejala = array_values($params['gejala']);
$o_conn = db_conn();
$delete = sprintf("delete from b_aturan_penyakit where kode_penyakit =
'%s'",
mysql_real_escape_string($penyakit));
$query_delete = mysql_query($delete);
if($query_delete)
{
for($i=0;$i<sizeof($gejala);$i++)
{
$query = sprintf("insert into b_aturan_penyakit set kode_penyakit = '%s',
101
kode_gejala = '%s'",
mysql_real_escape_string($penyakit),
mysql_real_escape_string($gejala[$i]));
$query_insert = mysql_query($query);
}
}
else
{
return false;
}
}
function list_fields($table)
{
$o_conn = db_conn();
$q_str_esc = "SELECT * FROM ". $table;
$q_rec = mysql_query($q_str_esc, $o_conn);
for ($i=0; $meta = mysql_fetch_field($q_rec); $i++)
{
$field_name[] = $meta->name;
if(!$meta)
{
die("Field table tidak dapat ditampilkan" . mysql_error());
}
}
return $field_name;
} ?>
|----------------------------------------------------------------------------------------
102
d. File “gejala_func.php”
<?php
$post_validations = array('kode' => '/^[[:alnum:][:punct:][:space:]]{1,100}$/',
'isi' => '/^[[:alnum:][:punct:][:space:]]{1,2000}$/');
function insert_gejala($params)
{
$o_conn = db_conn();
$query = sprintf("insert into mgejala set kode_gejala = '%s', gejala = '%s'
",
mysql_real_escape_string($params['kode']),
mysql_real_escape_string($params['isi']));
$result = mysql_query($query);
if (!$result)
{
return false;
}
else
{
return true;
}
}
function edit_post($id,$table,$field)
{
$connection = db_conn();
$query = sprintf("select * from `$table` where `$field` = '%s'",
mysql_real_escape_string($id));
$result = mysql_query($query);
$number_of_posts = mysql_num_rows($result);
if ($number_of_posts == 0)
{
return false;
}
103
$row = mysql_fetch_array($result);
return $row;
}
function update_gejala($params)
{
$connection = db_conn();
$query = sprintf("update mgejala
set
gejala = '%s'
where kode_gejala = '%s'",
mysql_real_escape_string($params['isi']),
mysql_real_escape_string($params['kode']));
$result = mysql_query($query);
if (!$result)
{
return false;
}
else
{
return true;
}} ?>
|----------------------------------------------------------------------------------------
e. File “pengendalian_func.php”
<?php
$post_validations = array('kode' => '/^[[:alnum:][:punct:][:space:]]{1,100}$/',
'isi' => '/^[[:alnum:][:punct:][:space:]]{1,2000}$/');
function insert_penyakit($params)
{
$o_conn = db_conn();
$query = sprintf("insert into mpengendalian
104
set
kode_pengendalian = '%s',
pengendalian = '%s'",
mysql_real_escape_string($params['kode']),
mysql_real_escape_string($params['isi']));
$result = mysql_query($query);
if (!$result)
{
return false;
}
else
{
return true;
}
}
function edit_post($id,$table,$field)
{
$connection = db_conn();
$query = sprintf("select * from `$table`
where `$field` = '%s'",
mysql_real_escape_string($id));
$result = mysql_query($query);
$number_of_posts = mysql_num_rows($result);
if ($number_of_posts == 0)
{
return false;
}
$row = mysql_fetch_array($result);
105
return $row;
}
function update_pengendalian($params)
{
$connection = db_conn();
$query = sprintf("update mpengendalian
set
pengendalian = '%s'
where kode_pengendalian = '%s'",
mysql_real_escape_string($params['isi']),
mysql_real_escape_string($params['kode']));
$result = mysql_query($query);
if (!$result)
{
return false;
}
else
{
return true;
}} ?>
|----------------------------------------------------------------------------------------
f. File “penyakit_func.php”
a$post_validations = array('kode' => '/^[[:alnum:][:punct:][:space:]]{1,100}$/',
'isi' => '/^[[:alnum:][:punct:][:space:]]{1,2000}$/');
function insert_penyakit($params)
{
$o_conn = db_conn();
$query = sprintf("insert into mpenyakit
106
set
kode_penyakit = '%s',
penyakit = '%s'",
mysql_real_escape_string($params['kode']),
mysql_real_escape_string($params['isi']));
$result = mysql_query($query);
if (!$result)
{
return false;
}
else
{
return true;
}
}
function edit_post($id,$table,$field)
{
$connection = db_conn();
$query = sprintf("select * from `$table`
where `$field` = '%s'",
mysql_real_escape_string($id)
);
$result = mysql_query($query);
$number_of_posts = mysql_num_rows($result);
if ($number_of_posts == 0)
{
return false;
}
107
$row = mysql_fetch_array($result);
return $row;
}
function update_penyakit($params)
{
$connection = db_conn();
$query = sprintf("update mpenyakit
set
penyakit = '%s'
where kode_penyakit = '%s'",
mysql_real_escape_string($params['isi']),
mysql_real_escape_string($params['kode']));
$result = mysql_query($query);
if (!$result)
{
return false;
}
else
{
return true;
}} ?>
|----------------------------------------------------------------------------------------
g. File “user.php”
<?php
function login($username, $password)
{
$o_conn = db_conn();
108
$query = sprintf("select * from muser
where username = '%s' and
password = '%s'",
mysql_real_escape_string($username),
mysql_real_escape_string($password));
$result = mysql_query($query, $o_conn);
$number_of_posts = mysql_num_rows($result);
if ($number_of_posts == 0)
{
return false;
}
$row = mysql_fetch_array($result);
$_SESSION['user'] = $row;
return true;
} ?>
|-------------------------------------------------------------------