Perancangan Aplikasi Sistem Pakar untuk Mendiagnosa
Penyakit Ayam pada
Android
Platform
Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Oleh:
Henoch Juli Christanto NIM: 672011610
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana
Perancangan Aplikasi Sistem Pakar untuk Mendiagnosa Penyakit
Ayam pada
Android
Platform
1
Henoch Juli Christanto, 2Hindriyanto D. Purnomo,3 Yos Richard Beeh
Fakultas Teknologi Informasi Program Studi Teknik Informatika Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
1
672011610@student.uksw.edu, 2hindriyanto_fti@yahoo.com, 3yos.fti.uksw@gmail.com
Abstract
In world of breeding, not all of the breeders have breeding education background. It becomes problem when the livestock getting sick. They need other people to overcome the disease. Absolutely, it takes a long time. Fowl, especially chickens are potentially attacked by diseases that need initial handling. Expert system as a computer technology can resolve the problem such as the thought of the adopted expert. Therefore, the writer makes an expert system application that can be used to diagnose chicken disease on Android platform. Inference process in this system used Central Inference method. A knowledge base that used is rule based reasoning. The result of the research is an expert system application base on Android that can be used to help in diagnose and treat chickens disease.
Keywords : Metamorphosis, Augmented Reality, Game, Learning, Android.
Abstrak
Dalam dunia peternakan seringkali yang menjadi peternak adalah orang-orang yang tidak memiliki latar belakang pendidikan di dalam peternakan sehingga apabila terjadi kendala seperti penyakit mereka membutuhkan orang lain untuk mengatasinya dan itu membutuhkan waktu yang cukup lama. Unggas terkhususnya ayam merupakan salah satu hewan ternak yang rawan terserang penyakit dan beberapa penyakit membutuhkan penanganan sedini mungkin. Sistem pakar sebagai suatu teknologi komputer yang dapat menyelesaikan masalah sesuai dengan pemikiran seorang pakar yang diadopsinya. Oleh karena itu, dibuatlah aplikasi sistem pakar untuk mendiagnosa penyakit ayam pada Andoid platform. Proses inferensi pada sistem ini menggunakan metode Central Inference. Basis pengetahuan yang digunakan adalah Rule Based Reasoning. Hasil dari penelitian ini menghasilkan sebuah aplikasi sistem pakar berbasis Android yang dapat memberikan kemudahan dalam mendiagnosa dan mengobati penyakit ayam.
Kata kunci : Sistem Pakar, Kecerdasan Buatan, Central Inference, Penyakit Ayam
1
Mahasiswa Fakultas Teknologi Informasi Program Studi Teknik Informatika, Universitas Kristen Satya Wacana
2
Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana
3
1 1. Pendahuluan
Dalam bidang peternakan, ayam adalah binatang unggas yang rawan terhadap penyakit dengan jenis gejala yang beraneka ragam. Seringkali, para peternak sulit untuk menentukan secara pasti penyakit apa yang sedang menyerang karena penyakit pada ayam terdiri dari berbagai gejala yang hampir sama. Kondisi ini sangatlah berbahaya jika tidak ditangani dengan cepat dan tepat karena penyakit pada unggas khususnya ayam dapat dengan mudah ditularkan pada individu yang lain [1].
Berdasarkan wawancara yang telah didapatkan dari PT. Japfa Comfeed Indonesia yang menangani dalam penyedia pakan dan obat ternak oleh Maria Yuni Asih S.Pt. selaku management information system, beberapa para peternak sulit dalam menentukan penyakit dan penanganan yang dilakukan pada penyakit tersebut. Mereka melakukan diagnosa dengan cara mengirimkan kondisi menggunakan BlackBerry Messanger pada perangkat Android mereka kepada mantri hewan yang ada. Hal ini membutuhkan waktu yang lama dalam mendiagnosa karena mantri hewan hanya dapat mengira-ngira kondisi ayam sesungguhnya dan membutuhkan waktu untuk merespon peternak yang jumlahnya banyak.
Berdasarkan latar belakang masalah tersebut diambil beberapa masalah utama yang melatar belakangi penelitian ini yaitu bagaimana membangun aplikasi sistem pakar yang dapat membantu peternak ayam dalam mendiagnosa penyakit ayam. Untuk mengatasi masalah tersebut maka akan dirancang aplikasi sistem pakar untuk mendiagnosa penyakit ayam pada Android platform.
2. Tinjauan Pustaka
Pada penelitian berjudul A Rule-Based Inference Engine which is Optimal and VLSI Implementable menghasilkan metode Central Inference Engine Algorithm yang merupakan pengembangan dari pendekatan Forward Chaining [2]. Penelitian yang dilakukan mengembangkan hasil penelitian tersebut dan menerapkan Central Inference Engine Algorithm pada perangkat Android.
2
Kecerdasan buatan atau Artificial Intelligence merupakan salah satu bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia. Salah satu bidang kecerdasan buatan adalah sistem pakar (Expert System), dimana program komputer dapat menirukan penalaran seorang pakar dengan keahlian pada suatu bidang tertentu termasuk dalam mendiagnosa suatu penyakit [3].
Sistem Pakar (Expert System) adalah aplikasi berbasis komputer yang menggunakan pengetahuan, fakta, dan teknik penalaran untuk menyelesaikan masalah sebagaimana yang dipikirkan olah pakar. Pakar yang dimaksud adalah orang yang mempunyai keahlian khusus dalam suatu bidang tertentu yang dapat menyelesaikan masalah yang tidak dapat diselesaikan oleh orang awam. Beberapa aktivitas penyelesaian masalah antara lain : pembuatan keputusan (decicion making), pemaduan pengetahuan (knowledge fusing), pembuatan desain (designing), perencanaan (planning), prakiraan (forecasting), pengaturan (regulating), pengendalian (controlling), diagnosis (diagnosing), perumusan (prescribing), penjelasan (explaining), pemberian nasihat (advising), dan pelatihan (tutoring) [4].
Dalam sistem pakar untuk mendiagnosa penyakit ayam (diagnosing) dibutuhkan dua hal penting yaitu basis pengetahuan dan mesin inferensi. Basis pengetahuan merupakan sekumpulan pengetahuan atau fakta-fakta yang dibutuhkan sistem, sedangkan mesin inferensi digunakan untuk mengambil kesimpulan berdasarkan fakta atau pengetahuan seperti pada gambar 1.
Gambar 1. Sistem yang menggunakan AI [4]
Android adalah sebuah kumpulan lengkap mobile phone software. Android mencakup semua kebutuhan manufaktur atau operator untuk membangun sebuah mobile phone. Android telah dibuat tersedia sebagai open source melalui lisensi Apache v2. Android memanfaatkan konten web dan Internet untuk menyediakan layanan canggih seperti mobile mashups [5].
3. Metode Penelitian
3
Gambar 2. TahapanPenelitian [6]
Tahapan penelitian pada Gambar 2 dapat dijelaskan sebagai berikut : Tahap pertama merupakan tahapan analisis kebutuhan dan pengumpulan data. Analisis kebutuhan dilakukan untuk mengetahui informasi apa saja yang dibutuhkan oleh seorang pakar untuk mendiagnosa penyakit ayam. Informasi didapat dengan cara melakukan wawancara, studi pustaka dan studi literatur dari jurnal-jurnal penelitian tentang penyakit ayam.
Tahapan kedua dari penelitian ini adalah merancang sistem aplikasi. Metode pembuatan aplikasi sistem pakar diselesaikan melalui tahapan sesuai dengan tahap-tahap pengembangan sistem pakar yaitu : (1) Tahap Penilaian Keadaan, (2) Tahap Koleksi Pengetahuan, (3) Tahap Perancangan, (4) Tahap Tes, (5) Tahap Dokumentasi, (6) Tahap Pemeliharaan.
Gambar 3. Tahapan-Tahapan Pengembangan Sistem Pakar [4]
Perancangan Sistem meliputi Perancangan Flow Diagram dan Perancangan Arsitektur Analisis Kebutuhan dan Pengumpulan Data
Perancangan Aplikasi / Program
Implementasi dan Pengujian Sistem, serta Analisis Hasil Pengujian
4
Tahapan pengembangan sistem pada Gambar 7, dapat dijelaskan sebagai berikut. Tahap pertama: tahap penilaian keadaan, yaitu mengkaji situasi, memutuskan dengan pasti tentang masalah yang akan dikomputerisasi dan apakah sistem pakar dapat lebih membantu atau tidak.
Tahapan kedua: tahap koleksi pengetahuan, yaitu melakukan analisis kebutuhan dan pengumpulan data penyakit dan gejala-gejala penyakit dari beberapa buku dan wawancara terhadap pakar dalam mendiagnosa penyakit ayam.
Tahapan ketiga: tahap perancangan sistem (System and Software Design) yang meliputi perancangan aturan dari basis pengetahuan yang telah didapatkan, merancang alur kerja sistem, merancang antarmuka untuk menghubungkan interaksi user dengan system, proses inferensi, perancangan UML meliputi use case diagram, activity diagram, class diagram dan sequence diagram.
User
Gambar 4.Use Case Diagram Peternak
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, yang ditekankan adalah “apa” yang diperbuat sistem dan bukan “bagaiamana”. Sebuah use case mempresentasikan sebuah interaksi actor dengan sistem. Use case merupakan sebuah pekerjaan tertentu. Sebuah actor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melaksanakan pekerjaan-pekerjaan tertentu. Dalam use case diagram ini hanya terdapat 1 actor yang memerlukan sistem untuk mendiagnosa penyakit. Dalam sistem ini tidak diperlukan admin dikarenakan proses memperbaharui database
dilakukan dengan memperbaharui file XML yang ada di dalam aplikasi.
5
Title
User System Database
P
h
a
se
BEGIN
Memilih Menu
Menampilkan Menu Diagnosa
Load Data dari File XML
Menampilkan Pertanyaan Input Jawaban
Mengolah Jawaban
Menampilkan Kesimpulan
END
Gambar 5.Activity Diagram Diagnosa Penyakit
Gambar 6.Sequence Diagram Proses Diagnosa
Sequence diagram digunakan untuk menunjukkan aliran fungsional dalam
6
Gambar 7. Class Diagram Aplikasi Sistem Pakar
Class diagram sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari desain dan pengembangan berorientasi objek.
Class menggambarkan keadaan (atribut) suatu sistem sekaligus menampilkan suatu operasi (fungsi/metode) untuk memanipulasi keadaan tersebut. Gambar 6 menjelaskan hubungan antar class dan bagaimana relasi antar komponen tersebut.
7
Gambar 8. Flowchart Proses Mesin Inferensi
Proses perhitungan bobot kesimpulan ditunjukkan pada gambar 8 dalam bentuk persentase. Perhitungan dilakukan dengan mengambil gejala yang sama pada aturan ke-N yang bernilai benar kemudian dibagi dengan jumlah gejala yang ada pada aturan ke-N dan dikalikan dengan 100 % maka akan ditemukan bobot dalam bentuk persen pada suatu aturan. Aturan-aturan yang memiliki gejala yang sama dengan gejala pengguna akan dihitung bobotnya menggunakan proses tersebut untuk kemudian diseleksi. Aturan dengan persentase bobot tertinggi akan diambil sebagai kesimpulan.
Gambar 9. Perhitungan bobot penyakit
8
Tahapan keempat: pengujian sistem serta analisis hasil pengujian (Integration and System Testing), yaitu melakukan pengujian sistem, serta menganalisis hasil pengujian sistem untuk melihat apakah aplikasi yang telah dibuat sudah dapat mendiagnosa penyakit dengan benar atau tidak ada eror.
Tahap kelima: Dokumentasi, yaitu melakukan dokumentasi sistem berupa penulisan laporan penelitian dan artikel ilmiah.
Tahap keenam: Operasi dan Pemeliharaan (Operation and Maintanance), yaitu memperbaiki kesalahan-kesalahan yang ditemukan pada tahap pengujian sistem yang telah dilakukan sebelumnya dan memperbaiki aturan baru dalam mendiagnosa penyakit.
Tahap ketiga dari tahapan penelitan ini adalah merancang aplikasi dengan merancang antarmuka yang akan digunakan dalam mengimplementasikan sistem yang telah dirancang. Setelah tahap ketiga selesai dibuat, tahap keempat dari penelitian ini yakni tahapan pengimplementasian sistem yang sudah dibuat, pengujian sistem serta analisis hasil pengujian. Tahap kelima adalah penulisan laporan hasil penelitian yang dilakukan.
4. Hasil dan Implementasi
Perancangan sistem akan diimplementasikan dalam bentuk pengkodean (coding) untuk membangun aplikasi sistem pakar dalam mendiagnosa penyakit ayam pada platform Android dengan menggunakan bahasa pemrograman java sebagai user interface.
9
Halaman menu utama aplikasi dibuat dari satu file XML (Extendsible Markup Language) dan satu file Class Activity, dimana file XML untuk mendefinisikan komponen-komponen yang digunakan dalam membuat halaman dari aplikasi, sedangkan class activity berfungsi menampung komponen-komponen dari file XML sehingga tampilan XML dapat digunakan.
Pada file XML terdapat id yang sesuai dengan komponen-komponen yang telah disediakan. Pada class activity akan mengimplementasikan komponen yang tersedia pada file XML sesuai dengan id yang telah disediakan. Di dalam class activity juga terdapat method yang berguna sebagai pemilihan setiap event untuk setiap tombol. Setiap tombol akan memberikan statement dimana akan memanggil
activity baru sesuai dengan id yang disediakan. Pemanggilan activity ini menggunakan intent tetapi untuk tombol keluar menggunakan fungsi finish.
Gambar 11. Tampilan Antarmuka Halaman Menu Diagnosa
10
Gambar 12. Halaman Antarmuka Hasil Diagnosa Penyakit.
Gambar 12 merupakan tampilan antarmuka hasil dari proses diagnosa. Tampilan ini akan menampilkan hasil dari diagnosa yang sudah dilakukan. Hasil diagnosa akan diambil 3 penyakit dengan kemungkinan terbesar beserta persentase nya. Untuk penyakit dengan kemungkinan teratas akan ditampilkan juga gambar dari ayam yang mengalami penyakit tersebut sehingga user dapat melihat contoh kondisi ayam yang mengalami penyakit tersebut. Kemudian apabila layar di sentuh maka halaman akan berganti ke halaman informasi penyakit. Halaman informasi penyakit berisi tentang informasi penyakit ayam yang sesuai dengan hasil diagnosa dengan persentase tertinggi beserta pengobatan penyakit tersebut yang dapat pula diakses dari menu informasi penyakit.
Halaman Daftar Informasi Penyakit merupakan halaman yang berisi tentang penyakit-penyakit yang terdapat pada sistem pakar ini. Jenis-jenis penyakit tersebut ditampilkan dalam List View dengan mengatur Adapter dari sebuah class Activity
yang berisi daftar gambar dan daftar judul yang akan ditampilkan di dalam list view.
Gambar 13 merupakan tampilan halaman informasi penyakit.
11
Gambar 13. Tampilan Antarmuka Halaman Daftar Informasi Penyakit.
12
Pada Sistem pakar ini menggunakan File XML sebagai database dari penyakit. File data penyakit dapat dilihat pada Kode Program 1.
Kode Program 1.File XML yang berisi data penyakit
1. <Daftar>
2. <Penyakit>
3. <Kode>P002</Kode>
4. <Nama>Penyakit Flu Ayam </Nama>
5. <latin>Avian Influenza</latin>
6. <penanganan>Pengobatan dengan cara pemberian vaksin.Ada tiga
jenis vaksin Avian Influenza, (1) Konvensional, killed, oil emulsion. (2)
Rekombinan – vektor vaksin. (3) Reverse Genetics (killed, oil
emulsion)</penanganan>
7. <DaftarGejala>
8. <Gejala>G003</Gejala>
9. <Gejala>G005</Gejala>
10. <Gejala>G007</Gejala>
11. <Gejala>G013</Gejala>
12. <Gejala>G037</Gejala>
13. <Gejala>G044</Gejala>
14. </DaftarGejala>
15. </Penyakit>
16.</Daftar>
File XML tersebut akan digunakan pada sistem dalam mencapai suatu kesimpulan. Aturan-aturan direpresentasikan menggunakan teknik representasi pengetahuan rule based reasoning dengan bentuk pola IF-THEN. Bentuk format penulisan file aturan dapat dilihat pada Psedocode 2.
Pseudocode 2. Representasi Rule Based Reasoning
IF Gejala_1
Berdasarkan isi file XML pada kode program 1 dan representasi aturan pada
Psedocode 2 maka akan menghasilkan aturan Psedocode 3.
Pseudocode 3. Representasi Aturan dari file XML
13
Proses diagnosa dengan menampilkan daftar pertanyaan diikuti dengan proses inferensi dari Psedocode 1 dengan acuan Psedocode 3 yang didapatkan dari membaca file XML yang berisi data penyakit dan gejala-gejalanya. Untuk membaca file XML dengan menggunakan XmlPullParser. Proses membaca dengan melihat setiap tag yang ada seperti start document, start tag,dan end tag. Apabila tag yang ada adalah start tag maka akan dilihat atribut pada tag XML tersebut kemudian dapat diambil nilainya. Untuk proses membaca file XML dapat dilihat pada Kode Program 2.
Kode Program 2. Kode Program Mengambil Data XML
1. while (eventType != XmlPullParser.END_DOCUMENT) {
2. String name = null;
3. switch (eventType) {
4. case XmlPullParser.START_DOCUMENT:
5. list = new ArrayList<Penyakit>();
6. break;
7. case XmlPullParser.START_TAG:
8. name = parser.getName();
9. if (name.equalsIgnoreCase("penyakit")) {
10.dta = new Penyakit();
11.} else if (dta != null) {
12.if (name.equalsIgnoreCase("kode")) {
13.dta.kdPenyakit = parser.nextText();
14.} else if (name.equalsIgnoreCase("nama")) {
15.dta.Nama = parser.nextText();
16.} else if (name.equalsIgnoreCase("latin")) {
17.dta.latin = parser.nextText();
18.} else if (name.equalsIgnoreCase("penanganan")) {
19.dta.penanganan = parser.nextText();
20.} else if (name.equalsIgnoreCase("daftargejala")) {
21.list2 = new ArrayList<String>();
22.} else if (name.equalsIgnoreCase("gejala")) {
23.list2.add(parser.nextText());
24.}
25.}
26.break;
27.case XmlPullParser.END_TAG:
28.name = parser.getName();
29.if (name.equalsIgnoreCase("penyakit") && dta != null) {
30.list.add(dta);
31.}else if (name.equalsIgnoreCase("daftargejala") && dta != null) {
32.dta.ls = list2;
33.}
34.}
35.eventType = parser.next();
14
Kode Program 3. Kode program menampilkan pertanyaan.
1. public void siapSoal() {
2. if(iNow<ls.size())
3. if (!akhir)
4. if (cekGejala(ls.get(iNow))) {
5. if(jNow<ls.get(iNow).ls.size()){
6. int cek = cekJawab(ls.get(iNow).ls.get(jNow));
7. if (cek == -1) {
Kode Program 3 merupakan implementasi dari flowchart proses inferensi
yang telah digambarkan pada Gambar 8. Perulangan yang dilakukan pada kode program 2 tidak menggunakan for-statement melainkan secara manual
dikarenakan ada bagian dimana harus menunggu jawaban pengguna dan ketika pengguna menjawab dengan menekan tombol maka akan memanggil method yang baru.
15
Pengujian aplikasi dilakukan untuk melihat sudah sejauh mana aplikasi dapat berjalan dan sejauh mana kesalahan yang mungkin terjadi pada aplikasi. Pengujian aplikasi ini menggunakan blackbox testing, yaitu pengujian fungsional tanpa melihat alur eksekusi program, namun cukup dengan memperhatikan apakah setiap fungsi sudah berjalan dengan baik sesuai harapan. Hal-hal yang diuji dan hasil pengujian blackbox testing dapat dilihat pada Tabel 2.
Tabel 1 Tabel Pengujian BlackBox Fungsi yang diuji Output yang
diharapkan
Berdasarkan hasil pengujian blackbox pada Tabel 1, maka dapat disimpulkan bahwa aplikasi sudah berjalan sesuai dengan yang dirancang dan dapat dilanjutkan ke betatesting untuk mengetahui tingkat kepuasan pengguna terhadap aplikasi yang dibangun.
16
tentang penyakit tersebut. Melalui aplikasi ini, para peternak dapat mendiagnosa sendiri yang tentunya akan mempercepat penanganan pada ayam yang terserang suatu penyakit dibandingkan dengan harus menunggu mantri untuk melakukan proses diagnosa.
5. Simpulan
Berdasarkan hasil penelitian yang telah dilakukan maka dapat ditarik beberapa kesimpulan yaitu sistem pakar yang diterapkan dengan menyesuaikan kebutuhan para peternak pada umumnya dalam mendiagnosa penyakit, sehingga aplikasi harus didukung oleh informasi lebih terhadap hasil diagnosa. Mesin Inferensi yang digunakan menerapkan central inference algorithm karena proses inferensi yang tidak memerlukan untuk menganalisa setiap gejala sehingga proses inferensi jauh lebih cepat. Selain itu, aplikasi sistem pakar untuk mediagnosa penyakit ayam ini mampu untuk membantu para peternak dalam mendiagnosa penyakit ayam yang menyerang ayam mereka. Aplikasi sistem pakar penyakit ayam ini juga dapat memberikan informasi pengobatan terhadap penyakit menyerang ayam peternak sehingga penanganan dapat secara dini dilakukan.
Pengembangan yang dapat dilakukan selanjutnya pada penelitian ini adalah dengan mengembangkan mesin inferensi dalam mencari kesimpulan dan memperbaiki program jika ditemukan bug.
6. Pustaka
[1] Zuber Ahmad. 2012. Penyakit pada Ayam. Jakarta : Pultry Farm.
[2] Grifin N.L,-. A Rule-Based Inference Engine which is Optimal and VLSI ImplementableDepartment of Computer Science. 40506. Lexington, Kentucky: University of Kentucky
[3] Suyatno, 2014. Artificial Intelegence. Bandung: Penerbit Informatika
[4] Sri Kusumadewi, 2013. Artificial Intelegence (Teknik dan Aplikasinya). ISBN: 979-3289-19-8. Yogyakarta: Graha Ilmu
[5] Openhandsetalliance. 2007. What is Android™ and how is it different?.
http://www.openhandsetalliance.com/android_faq.html. Tanggal akses 22 Juni 2014