131
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)

LEMBAR PENGESAHAN - perpustakaan.fmipa.unpak.ac.idperpustakaan.fmipa.unpak.ac.id/file/Penulisan.pdfLEMBAR PENGESAHAN ... Penulis dilahirkan di Medan pada tanggal 29 Januari 1988 dari

Embed Size (px)

Citation preview

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.

40

Gambar 13 Diagram Alir Data Level 2 proses 1

Gambar 14 Diagram Alir Data Level 2 proses 2

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

42

Gambar 17 Struktur Navigasi Engineer/Pakar/Administrator

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

Gambar 28 Pembuatan Database

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.

65

Lampiran

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;

} ?>

|-------------------------------------------------------------------