Anda di halaman 1dari 82

ANALISIS CARA KERJA SISTEM PAKAR MENGGUNAKAN METODE

FORWARD CHAINING UNTUK DIAGNOSA HAMA DAN PENYAKIT


TANAMAN PADI BERBASIS ANDROID

PENULISAN ILMIAH

Di Susun Oleh :

AYU ANTIKA

17421043

PROGRAM STUDI INFORMATIKA

FAKULTAS ILMU KOMPUTER

UNIVERSITAS BANDAR LAMPUNG

2021
ANALISIS CARA KERJA SISTEM PAKAR MENGGUNAKAN METODE
FORWARD CHAINING UNTUK DIAGNOSA HAMA DAN PENYAKIT
TANAMAN PADI BERBASIS ANDROID

PENULISAN ILMIAH

(Sebagai Salah Satu Syarat Untuk Mengambil Tugas Akhir Sarjana S-1 Pada
Program Studi Informatika Fakultas Ilmu Komputer Universitas Bandar
Lampung)

Di Susun Oleh :

AYU ANTIKA

17421043

PROGRAM STUDI INFORMATIKA

FAKULTAS ILMU KOMPUTER

UNIVERSITAS BANDAR LAMPUNG

2021
iii
iv
ABSTRAK

ANALISIS CARA KERJA SISTEM PAKAR MENGGUNAKAN METODE


FORWARD CHAINING UNTUK DIAGNOSA HAMA DAN PENYAKIT
TANAMAN PADI BERBASIS ANDROID

Oleh:

Ayu Antika

17421043

Penelitian ini bertujuan dalam membangun aplikasi sistem pakar yang bisa
membantu para petani untuk mendiagnosa hama dan penyakit tanaman padi.
Dengan sistem pakar ini, para petani bisa mendapatkan informasi mengenai jenis
hama dan penyakit pada tanaman padi serta penentuan solusi yang sesuai untuk
mengatasinya tanpa harus bertemu dengan ahlinya. Para petani atau orang
awampun bisa menyelesaikan masalahanya atau hanya sekedar ingin mencari
suatu informasi tentang pertanian yang pada dasarnya hanya dapat diperoleh dari
para ahli di bidangnya. Metode yang digunakan dalam membangun aplikasi
sistem pakar tersebut adalah metode Forward Chaining yaitu proses pelacakan
yang di mulai dari informasi masukan, kemudian mencoba menggambarkan
kesimpulan. Dari penelitian ini akan menghasilkan sebuah aplikasi berbasis
Android dalam mendiagnosa hama dan penyakit pada tanaman padi.

Kata Kunci: Sistem Pakar, Forward Chaining, Android, Penyakit Padi

v
ABSTRACT

ANALYSIS OF HOW TO WORK EXPERT SYSTEM USING FORWARD


CHAINING METHOD FOR PEST AND DIAGNOSIS OF RICE PLANTS
BASED ON ANDROID

By:

Ayu Antika

17421043

This research aims to develop an expert system application that can help
farmers diagnose rice pests and diseases. With this expert system, farmers can get
information about the types of pests and diseases in rice plants and determine the
appropriate solution to overcome them without having to meet with experts. The
farmers or ordinary people can solve the problem or just want to find some
information about agriculture which basically can only be obtained from experts
in their fields. The method used in building the expert system application is the
Forward Chaining method, which is the tracking process that starts from the input
information, then tries to draw a conclusion. From this study will produce an
Android-based application in diagnosing pests and diseases in rice plants.

Keywords: Expert System, Forward Chaining, Android, Rice Disease

vi
KATA PENGANTAR

Assalamu’alaikum Wr.Wb.

Puji dan syukur peneliti haturkan kehadirat Allah SWT yang senantiasa
memberikan berkah, rahmat, dan limpahan karunia-Nya sehingga peneliti dapat
menyelesaikan Penulisan Ilmiah ini, yang berjudul “Analisis Cara Kerja Sistem
Pakar Menggunakan Metode Forward Chaining Untuk Diagnosa Hama Dan
Penyakit Tanaman Padi Berbasis Android”.

Peneliti menyadari bahwa dalam pembuatan Penulisan Ilmiah ini tidak


terlepas dari bantuan dan bimbingan semua pihak sehingga laporan penelitian
ilmiah ini dapat diselesaikan dengan baik. Pada kesempatan ini peneliti
mengucapkan banyak terimakasih kepada Pembimbing Akademik, semua Dosen,
dan teman-teman yang telah memberikan arahan dan dukungan, serta memberikan
saran/kritik yang sangat bermanfaat dalam membantu Penulisan Ilmiah ini, oleh
karena itu peneliti mengucapkan terimakasih kepada:

1. Allah Swt, atas segala limpahan rahmat dan karunia-Nya sehingga


peneliti dapat menyelesaikan Penelitian Ilmiah ini.
2. Ibu Dra. Hj. Sri Hayati Barusman, selaku Ketua Pembina Yayasan
Administrasi Universitas Bandar Lampung.
3. Bapak Dr. Andala Rama Putra Barusman S.E., MA.Ec., selaku Direktur
Yayasan Universitas Bandar Lampung.
4. Bapak Prof. Dr. Ir. M. Yusuf Sulfrano Barusman, MBA, selaku Rektor
Universitas Bandar Lampung.
5. Bapak Ahmad Cucus, S.Kom., M.Kom., selaku Dekan Fakultas Ilmu
Komputer Universitas Bandar Lampung.
6. Bapak Marzuki, S. Kom., M. Kom., selaku Ketua Program Studi
Teknik Informatika pada Fakultas Ilmu Komputer Universitas Bandar
Lampung.
7. Bapak Taqwan Thamrin, S.T., M.Sc., selaku Ketua Program Studi
Sistem Informasi pada Fakultas Ilmu Komputer Universitas Bandar

vii
Lampung.
8. Bapak Robby Yuli Endra, S.Kom., M.Kom., Selaku Dosen
Pembimbing.

9. Seluruh Bapak dan Ibu Dosen serta karyawan Fakultas Ilmu Komputer
Universitas Bandar Lampung.

10. Orang tua dan adik tercinta dirumah yang selalu mendoakan,
mendukung dan memberi semangat.
11. Teman-teman angkatan 2017 Informatika Fakultas Ilmu Komputer
Universitas Bandar Lampung.
12. Rekan-rekan yang telah banyak membantu peneliti dalam menyusun
Penulisan Ilmiah ini.
Peneliti menyadari bahwa penelitian yang telah dilakukan ini masih jauh
dari sempurna. Oleh karena itu, peneliti sangat mengharapkan segala saran dan
kritik dari berbagai pihak demi penyempurnaan Penulisan Ilmiah ini.
Akhir kata, peneliti berharap semoga Penulisan Ilmiah ini dapat berguna
dan bermanfaat bagi para pembaca.

Wassalamu’alaikum Wr.Wb

Bandar Lampung,

Peneliti

viii
DAFTAR ISI

LEMBAR PENGESAHAN ................................... Error! Bookmark not defined.


MENGESAHKAN ................................................. Error! Bookmark not defined.
ABSTRAK ...............................................................................................................v
ABSTRACT ........................................................................................................... vi
KATA PENGANTAR .......................................................................................... vii
DAFTAR ISI .......................................................................................................... ix
DAFTAR GAMBAR ............................................................................................ xii
1. PENDAHULUAN ............................................................................................1
1.1 Latar Belakang ..........................................................................................1
1.2 Identifikasi Masalah ..................................................................................3
1.3 Rumusan Masalah .....................................................................................3
1.4 Batasan Masalah ........................................................................................3
2. LANDASAN TEORI ........................................................................................4
2.1 Tinjauan Pustaka .......................................................................................4
2.2 Tinjauan Studi ...........................................................................................7
2.2.1 Analisis...............................................................................................7
2.2.2 Cara Kerja ..........................................................................................7
2.2.3 Kecerdasan Buatan (Artificial Intelligence) .......................................8
2.2.4 Sistem Pakar (Expert System) ............................................................9
2.2.5 Pengertian Android...........................................................................12
2.2.6 Android Studio .................................................................................14
2.2.7 Bahasa Pemrograman Java ...............................................................15
2.2.8 Java Api Framework ........................................................................15
2.2.9 Postman ............................................................................................16
2.2.10 JetBrainsPhpStorm ...........................................................................17
2.2.11 NoSQLBooster .................................................................................17
2.2.12 MongoDB.........................................................................................17
2.2.13 Node.js .............................................................................................18
2.2.14 Metode Forward Chaining ..............................................................19

ix
2.2.15 Penyakit Padi....................................................................................19
3. TUJUAN DAN MANFAAT PENELITIAN ..................................................21
3.1 Tujuan Penelitian .....................................................................................21
3.2 Manfaat Penelitian ...................................................................................21
4. METODOLOGI PENELITIAN .....................................................................22
4.1 Metode Penelitian ....................................................................................22
4.2 Metode Pengumpulan data ......................................................................22
4.3 Teknik Pengumpulan Data ......................................................................22
4.4 Perancangan Sistem .................................................................................23
4.5 Analisa Kebutuhan Sistem ......................................................................23
4.5.1 Kebutuhan Fungsional .....................................................................23
4.5.2 Kebutuhan Non Fungsional..............................................................24
5. HASIL DAN PEMBAHASAN ......................................................................25
5.1 Hasil Penelitian........................................................................................25
5.1.1 Flowchart Sistem..............................................................................26
5.1.2 Perancangan Use Case Diagram......................................................26
5.1.3 Perancangan Activity Diagram ........................................................28
5.2 Pembahasan .............................................................................................29
5.2.1 Rancangan Interfaces menggunakan Android Studio ......................32
5.2.2 Membuat Halaman Login ................................................................35
5.3 Membuat Menu Utama ............................................................................37
5.4 Membuat Api di PhpStorm......................................................................38
5.4.1 Tampilan Database ...........................................................................43
5.5 Membuat API CRUD ..............................................................................46
5.6 CRUD di Android Studio ........................................................................52
5.6.1 Menampilkan Daftar Penyakit .........................................................52
5.6.2 Membuat Activity Penyakit .............................................................55
5.6.3 Membuat Halaman activity_penyakit.xml .......................................56
5.6.4 Membuat Activity Edit Penyakit dan Hapus ....................................57
5.6.5 Membuat Menu Input Penyakit........................................................59
5.6.6 Hasil Output CRUD .........................................................................60
6. RENCANA PENELITIAN SELANJUTNYA ...............................................61

x
6.1 Rencana Penelitian Selanjutnya ..............................................................61
7. KESIMPULAN DAN SARAN ......................................................................62
7.1 Kesimpulan ..............................................................................................62
7.2 Saran ........................................................................................................62
DAFTAR PUSTAKA ............................................................................................63
LAMPIRAN ...........................................................................................................65

xi
DAFTAR GAMBAR

Gambar 2.1 Bagian Kecerdasan Buatan...................................................................8


Gambar 2.2 Struktur Sistem Pakar .........................................................................11
Gambar 2.3 Komponen Utama Android ................................................................13
Gambar 2.4 Android Studio ...................................................................................15
Gambar 2.5 JetBrains PhpStorm ............................................................................17
Gambar 2.6 NoSQLBooster ...................................................................................18
Gambar 2.7 MongoDB ..........................................................................................18
Gambar 2.8 Node.js................................................................................................19
Gambar 5.1 Rule Forward Chaining .....................................................................25
Gambar 5.2 Flowchart Alur Sistem CRUD ...........................................................27
Gambar 5.3 Use Case Diagram .............................................................................27
Gambar 5.4 Activity Diagram Create ....................................................................28
Gambar 5.5 Activity Diagram Read .......................................................................28
Gambar 5.6 Activity Diagram Update ...................................................................29
Gambar 5.7 Activity Diagram Delete .....................................................................29
Gambar 5.8 Masuk ke dalam directory ..................................................................30
Gambar 5.9 Membuat projek .................................................................................31
Gambar 5.10 Hasil .................................................................................................31
Gambar 5.11 File package.json ..............................................................................31
Gambar 5.12 Welcome to Android Studio .............................................................32
Gambar 5.13 Choose your project .........................................................................32
Gambar 5.14 Configure your project .....................................................................33
Gambar 5.15 Tampilan awal ..................................................................................33
Gambar 5.16 Tampilan Tabel Registrasi ...............................................................34
Gambar 5.17 Tampilan Tabel Login ......................................................................35
Gambar 5.18 Tampilan Hasil Input Data untuk Login ..........................................36
Gambar 5.19 Tampilan Halaman Login.................................................................37
Gambar 5.20 Tampilan Menu Utama.....................................................................38
Gambar 5.21 Struktur Folder Api ..........................................................................39
Gambar 5.22 Database Sistem Pakar Padi .............................................................43

xii
Gambar 5.23 Tampilan Isi Tabel Penyakit ............................................................43
Gambar 5.24 Tampilan Tabel users .......................................................................44
Gambar 5.25 Tabel Input dan Hasil Gambar .........................................................48
Gambar 5.26 Tampilan Content Penyakit dan Daftar penyakit .............................54
Gambar 5.27 Halaman activity_penyakit.xml .......................................................56
Gambar 5.28 Tampilan Menu Edit/Hapus .............................................................58
Gambar 5.29 Tampilan Menu Input Penyakit ........................................................59
Gambar 5.30 Tampilan Output CRUD Sistem Pakar Padi ....................................60

xiii
1. PENDAHULUAN
1.1 Latar Belakang
Kemajuan teknologi saat ini berkembang sangat pesat dan sangat
berpengaruh dalam setiap kinerja kita. Dengan hadirnya teknologi saat ini telah
menjadi kebutuhan pokok bagi manusia itu sendiri agar manusia dapat melakukan
interaksi dan komunikasi dengan baik dan sesuai keinginan. Saat ini peran
komputer sangatlah luas, dulu komputer hanya digunakan sebagai alat bantu
hitung saja, tetapi sekarang komputer digunakan sebagai alat bantu untuk
menyelesaikan suatu permasalahan yang dihadapi manusia. Perkembangan
teknologi informasi saat ini telah merambah diberbagai aspek dan bidang
kehidupan, seperti pada bidang sosial, budaya, ilmu pengetahuan, pertanian,
perikanan, transportasi, perbankan dan lain-lain.

Peranan teknologi informasi terutama dalam bidang pertanian berpengaruh


besar bagi kehidupan. Dengan adanya teknologi infomasi masyarakat bisa
mengakses internet untuk kebutuhan pertanian, sebagai media untuk pemasaran
hasil produksi ataupun sebagai media untuk belajar mengenai dunia pertanian.
Pertanian merupakan sumber kehidupan bagi manusia, dimana pemanfaatan
sumber daya hayati dilakukan untuk menghasilkan bahan pangan, sumber energi,
mengelola lingkungan hidup serta bahan baku industri. Mayoritas orang Indonesia
saat ini penduduknya bermata pencaharian sebagai petani, yaitu petani padi.
Populasi manusia di Indonesia setiap tahunnya terus meningkat, sehingga
kebutuhan akan makanan semakin bertambah pula. Padi merupakan bahan baku
pangan utama atau kebutuhan paling pokok masyarakat Indonesia selain air dan
udara. Oleh karena itu, tingkat keberhasilan jumlah padi yang dipanen dan faktor
yang mempengaruhi tingkat produksi pertanian sangat penting dan harus
diperhatikan karena masyarakat menggantungkan hidupnya dari hasil panen
tersebut.

Kecerdasan Buatan atau Artificial Intellegence merupakan salah satu


bagian ilmu komputer yang menekankan pengembangan intelligence mesin
(komputer), pola pikir dan dapat bekerja seperti manusia contohnya pengenalan
suara, pemecahan masalah, pembelajaran dan perencanaan (Kusumadewi, 2003).
Penerapan dari adanya kecerdasan buatan ini adalah sistem pakar terutama dalam
bidang pertanian. Prosesnya yaitu user menyampaikan sebuah informasi ke dalam
sistem pakar, kemudian informasi tersebut nantinya akan disampaikan ke
knowledge-base lalu diolah oleh mesin inferensi, sehingga sistem dapat
memberikan jawaban berdasarkan pengetahuan yang di sampaikan sebelumnya
kepada user (Andriani, 2016). Bentuk pengimplementasian dari adanya sistem
pakar tersebut berupa diagnosa penyakit tanaman padi, melakukan sesi konsultasi
pencegahan penyakit dan penentuan solusi dari hasil diagnosa penyakit tanaman
yang ada.

Rendahnya pengetahuan petani akan hama dan penyakit yang menyerang


tanaman padinya saat musim tanam, dan proses penanganannya pun hanya
diketahui sebatas pengetahuan sesama petani saja. Karena masalah tersebut
membuat para petani di perdesaan masih sulit untuk membedakan antara jenis
hama dan penyakit yang menyerang tanaman padinya dan petani belum
mengetahui bagaimana solusi yang tepat untuk mengatasi masalah tersebut.
Serangan hama seperti wereng, tikus sawah, ulat dan berbagai penyakit tanaman
padi belum bisa dikendalikan secara tepat, dan ketergantungan penggunaan
pestisida masih sangat tinggi.

Untuk mengetahui secara tepat dan benar tentang jenis hama dan penyakit
yang menyerang padinya, petani membutuhkan bantuan seorang ahli atau pakar
pertanian untuk mengetahui masalah pertanian mereka. Banyaknya jumlah petani
saat ini tidak seimbang dengan adanya jumlah pakar atau ahli dan tentunya
permasalahan yang dihadapi petani tidak dapat diselesaikan dalam waktu yang
singkat dan bersamaan, sehingga diperlukan adanya sebuah sistem yang
mempunyai kemampuan seperti seorang pakar pertanian, yang mana dalam sistem
ini nantinya berisi pengetahuan keahlian seorang pakar atau ahli pertanian tentang
penyakit, gejala tanaman padi dan solusi untuk mengatasinya. Pada sistem pakar
ini metode yang digunakan adalah metode Forward Chaining, program aplikasi
sistem pakar ini dibuat agar bisa membantu para petani untuk mencari kesimpulan
tentang diagnosa hama dan penyakit tanaman padi serta penentuan solusi yang
sesuai untuk mengatasinya, dan digunakan sebagai acuan bagi masyarakat yang
ingin belajar bertani tanaman padi.

Berdasarkan latar belakang diatas, maka Peneliti mengadakan penelitian


dalam penyusunan Penulisan Ilmiah yang berjudul “Analisis Cara Kerja Sistem
Pakar Menggunakan Metode Forward Chaining Untuk Diagnosa Hama dan
Penyakit Tanaman Padi Berbasis Android”.

1.2 Identifikasi Masalah


Berdasarkan latar belakang di atas, maka identifikasi masalah pada
penelitian ini adalah:

1. Pengetahuan petani tentang jenis hama dan penyakit yang menyerang


tanaman padi masih cukup rendah.
2. Petani masih sulit untuk membedakan jenis hama dan jenis penyakit pada
tanaman padi.
3. Keterbatasan manusia untuk mengawasi tanaman padi selama 24 jam,
mengakibatkan keterlambatan dalam penanganan hama dan penyakit
tanaman padi.

1.3 Rumusan Masalah


Berdasarkan latar belakang yang telah dijelaskan, rumusan masalah dalam
penelitian ini adalah untuk mengetahui cara kerja sistem pakar menggunakan
metode Forward Chaining untuk diagnosa hama dan penyakit tanaman padi.

1.4 Batasan Masalah


Berdasarkan latar belakang tersebut, maka peneliti memberikan batasan
masalah agar tidak menyimpang dari permasalahan sebenarnya. Batasan masalah
pada penelitian ini yaitu hanya memberi contoh cara kerja sistem pakar
menggunakan metode Forward Chaining untuk diagnosa hama dan penyakit
tanaman padi.
2. LANDASAN TEORI

2.1 Tinjauan Pustaka


Dibawah ini uraian hasil penelitian yang berkaitan dengan sistem pakar
menggunakan metode Forward Chaining untuk diagnosa hama dan penyakit padi
berbasis Android.

a. “Aplikasi Sistem Pakar Identifikasi Penyakit Tanaman Padi dengan Metode


Forward Chaining Berbasis Android” (Matheus, 2017)

Berdasarkan permasalahan yang di jelaskan dalam jurnal tersebut yaitu


rendahnya pengetahuan petani akan hama dan penyakit yang menyerang tanaman
padi dan penanganan penyakit pada tanaman padi hanya diketahui dari sesama
petani saja. Karena masalah tersebut membuat para petani masih sulit untuk
membedakan jenis hama dan penyakit yang telah menyerang tanaman padi
mereka. Karena di Indonesia penduduknya mayoritas bermata pencaharian
sebagai petani dan padi merupakan salah satu tanaman pangan utama atau
kebutuhan pokok masyarakat Indonesia. Tingkat jumlah padi yang di panen setiap
masa tanam sangat penting untuk diperhatikan demi menunjang kelangsungan
hidup masyarakat Indonesia.

Untuk mencegah resiko gagal panen saat masa tanam maka dibutuhkan
adanya peran seorang pakar dalam bidang penyakit tanaman padi yang akan
digunakan sebagai media konsultasi dan sumber informasi. Karena jumlah petani
yang terlalu banyak dan tidak seimbang dengan adanya jumlah pakar dan
penyebarannya pun masih terbatas, menyebabkan permasalahan tersebut belum
dapat diatasi secara tepat dan maksimal.

Dalam penelitian ini telah berhasil dibangun aplikasi sistem pakar


identifikasi penyakit tanaman padi berbasis Android sebagai sarana konsultasi dan
informasi masalah penyakit tanaman padi. Sistem pakar yang telah dibangun bisa
membantu petani untuk mendiagnosa penyakit tanaman padi dan mampu
memberikan solusi pengendalian terkait penyakit layaknya seorang pakar
berdasarkan gejala yang dikeluhkan. Aplikasi sistem pakar tersebut di rancang
dengan menggunakan metode inferensi Forward Chaining serta menggunakan
diagram UML untuk menemukan kesimpulan.

Aplikasi sistem pakar tersebut di buat untuk membantu pengguna dalam


mendiagnosa penyakit tanaman padi dan memberikan solusi pengendaliannya.
Dari hasil pengujian fungsional dengan metode Equivalence Partitioning (EP),
didapatkan keberhasilan menyeluruh berdasarkan skenario pengujian yang
dilakukan.

b. “Implementasi Sistem Pakar Dalam Mengidentifikasi Penyakit Tanaman


Padi Menggunakan Metode Certainty Factor” (Sahbana, 2017)

Aplikasi ini dikembangkan berdasarkan permasalahan yang ada yaitu


petani banyak mengalami kerugian baik kualitas maupun kuantitas, yang di
disebabkan oleh hama dan penyakit tanaman padi yang terlambat untuk
didiagnosis dan sudah mencapai tahap yang parah sehingga tingkat jumlah padi
yang di panen sedikit bahkan mengalami gagal panen. Para petani menganggap
hal tersebut sudah biasa terjadi setiap masa tanam, sehingga petani mengabaikan
hal tersebut.

Untuk menekan masalah hama dan penyakit padi tersebut harus dibuat
suatu aplikasi sistem pakar yang dapat mendiagnosis penyakit tanaman padi dan
dapat digunakan oleh seseorang khususnya petani tanaman padi. Metode yang
digunakan dalam membuat sistem pakar diagnosis penyakit tanaman padi ini yaitu
menggunakan metode Certainty Factor. Pada jurnal ini Peneliti telah berhasil
membuat sebuah aplikasi Dokter Penyakit Tanaman Padi. Aplikasi ini dibuat
dengan mengimplementasikan metode Certainty Factor. Fitur-fitur dalam aplikasi
Dokter Penyakit Padi berupa diagnosis, daftar penyakit, riwayat diagnosis, tambah
data, edit data, rekap diagnosis, serta panduan untuk user dan pakar.

c. “Penerapan Metode Forward Chaining Pada Sistem Pakar Untuk Diagnosa


Hama Dan Penyakit Padi” (Aeni, 2018)

Permasalahan yang ada didalam jurnal ini yaitu masih rendahnya


pengetahuan petani akan hama dan penyakit yang terus menyerang tanaman padi
mereka saat musim tanam, dan pengendaliannya pun masih bergantung dengan
sesama petani yang awam akan jenis hama dan penyakit tanaman padi. Karena hal
tersebut petani pun sanagt sulit untuk membedakan antara jenis hama dan
penyakit yang menyerang tanaman padinya. Banyaknya jumlah petani tidak
seimbang dengan jumlah para pakar yang ada, sehingga untuk mengatasi
permasalahan petani tersebut tidak bisa dalam waktu yang singkat, sehingga
diperlukan adanya sebuah sistem yang mempunyai kemampuan seperti seorang
pakar pertanian.

Dalam penelitian ini telah berhasil dibuat aplikasi sitem pakar yang
digunakan untuk proses diagnosa hama dan penyakit tanaman padi, nantinya
aplikasi ini bisa membantu para petani untuk mengetahui informasi tentang jenis
hama dan penyakit yang telah menyerang tanaman padinya berdasarkan gejala
serta dapat memberikan solusi untuk pengendaliannya berdasarkan gejala yang
ada. Aplikasi sistem pakar yang telah dibuat dengan penerapan metode Forward
Chaining yang dilengkapi dengan fasilitas multimedia berupa suara dan gambar.

d. “Sistem Pakar Berbasis Android Untuk Diagnosa Penyakit Kulit Kucing


Dengan Metode Forward Chaining”(Nurajizah & Saputra, 2018)

Berdasarkan permasalahan didalam jurnal penelitian ini yaitu pengetahuan


dari pemilik kucing mengenai penyakit kulit kucing masih cukup rendah dan
hanya diketahui lewat pemahaman pemilik kucing. Akan tetapi penyebaran ahli
atau pakar khususnya spesialit penyakit kulit kucing yang bisa membantu
memberikan informasi penyakit saat ini sangat sedikit, hal inilah yang menjadikan
permasalahan tersebut belum bisa diatasi secara tepat dan benar, nantinya sistem
ini berisi pengetahuan keahlian seorang pakar hewan tentang penyakit, gejala pada
kucing serta solusi untuk mengatasinya.

Oleh karena itu, diperlukan suatu sistem yang mempunyai kemampuan


seperti seorang pakar hewan, dimana sistem ini nantinya bisa membantu pemilik
kucing untuk mendapatkan informasi mengenai penyakit kulit dan gejala-
gejalanya serta solusi untuk penanganannya. Sistem pakar yang telah Peneliti teliti
adalah sistem pakar berbasis Android, dengan adanya sistem pakar berbasis
Android ini diharapkan bisa membantu para pemilik kucing untuk mengetahui
penyakit kulit yang ada pada kucing mereka melalui sebuah handphone.
Pemakaian sebuah handphone didukung dengan adanya sistem operasi, fungsi
handphone tidak hanya untuk alat komunikasi saja, tetapi juga dapat menjalankan
aplikasi software lainnya berbasis Android. Aplikasi berbasis Android ini
memudahkan masyarakat terutama pemilik kucing karena pengguna dapat
menggunakannya tanpa harus membuka browser karena aplikasi ini otomatis
sudah terhubung dengan sistem pakar.

Aplikasi sistem pakar yang telah dibuat merupakan aplikasi berbasis


Android, dimana pengguna dapat dengan mudah menggunakannya serta
berkonsultasi kapan pun dan dimana pun kita berada hanya dengan membuka
aplikasi tersebut. Dengan adanya aplikasi sistem pakar ini maka masyarakat awam
dapat mengetahui berbagai macam gejala dan jenis penyakit serta solusi yang
diberikan.

2.2 Tinjauan Studi

2.2.1 Analisis
Menurut Komarudin analisis adalah suatu kegiatan berfikir untuk
mengelompokkan atau menguraikan suatu kesatuan menjadi komponen kecil,
sehingga dapat di kenali hubungan dan fungsi masing-masing komponen secara
keseluruhan (Gorys Keraf, 2008).

Dapat disimpulkan bahwa analisis merupakan sebuah kegiatan atau


mengurai, mengelompokkan serta memahami satu-persatu bagian dari suatu objek
secara detail untuk dapat mengetahui cara kerja dari bagian-bagian yang telah
diurai dan di kelompokkan (Endra et al., 2018).

2.2.2 Cara Kerja


Cara kerja adalah prosedur kerja atau cara yang ditempuh dan digunakan
untuk mengontrol sebuah pekerjaan agar berjalan dengan baik dan mempunyai
tingkat efisien yang maksimal (Muhammad & Santoso, n.d.).
2.2.3 Kecerdasan Buatan (Artificial Intelligence)
Kecerdasan Buatan atau Artificial Intellegence adalah salah satu bagian
ilmu komputer yang menekankan pengembangan intelligence mesin, pola pikir
dan dapat bekerja seperti manusia contohnya pengenalan suara, pemecahan
masalah, pembelajaran dan perencanaan (Kusumadewi, 2003).

Untuk melakukan aplikasi kecerdasan buatan ada 2 bagian utama yang


sangat dibutuhkan yaitu:

a. Basic Pengetahuan (Knowledge Base), dibutuhkan untuk memahami,


memformulasi dan memecahkan masalah.

b. Motor Inferensi (Inference Engine) sebuah program komputer yang


menyediakan suatu metodologi untuk memikirkan dan memformulasi
kesimpulan.

Gambar 2.1 Bagian Kecerdasan Buatan

2.2.3.1 Sejarah Kecerdasan Buatan

Kecerdasan buatan termasuk bidang ilmu komputer yang relatif muda. Di


mulai pada tahun 1950 ketika seorang matematikawan dari inggris yaitu Alan
Turing yang berhasil melakukan tes perilaku cerdas untuk mengetahui bisa
tidaknya sebuah mesin dikatakan cerdas. Dari hasil tes tersebut dikenal dengan
Turing Test, dimana mesin tersebut menyamar sebagai seseorang di dalam suatu
permainan yang mampu memberikan jawaban terhadap pertanyaan yang diajukan.
Kecerdasan buatan atau “Artifial Intelligence” dikenalkan oleh seorang profesor
dari Massachusetts Institute of Technology yang bernama John Mc Carthy pada
tahun 1956 pada Dartmouth Conference yang dihadiri oleh para peneliti AI.
Tujuan dari kecerdasan buatan adalah untuk menyelesaikan persoalan
menggunakan komputer dengan meniru bagaimana manusia menyelesaikan
masalah dengan cepat. (Kusumadewi, 2003).

Beberapa program AI yang mulai dibuat pada tahun 1956-1966, antara


lain:

1) Logic Theorist, diperkenalkan oleh Dartmouth Conference, program ini


dapat membuktikan teorema-teorema matematika.

2) Sad Sam, diprogram oleh Robert K. Lindsay (1960). Program ini


mampu mengetahui kalimat-kalimat sederhana yang ditulis dalam
bahasa inggris dan mampu memberikan jawaban dari fakta-fakta yang
di dengar dalam sebuah percakapan.

3) ELIZA, diprogram oleh Joseph Weizenbaum (1967). Program ini


mampu melakukan terapi terhadap pasien dengan memberikan beberapa
pertanyaan.

2.2.4 Sistem Pakar (Expert System)


Sistem pakar merupakan cabang dari Artificial Intelligence yaitu suatu
sistem informasi yang berisi dengan pengetahuan dari pakar sehingga dapat
digunakan untuk konsultasi (T.Sutojo, SSi, M.Kom., Edy Mulyanto, SSi,
M.Kom., 2011). Pengetahuan dari seorang pakar dalam sistem ini digunakan
sebagai dasar oleh Sistem Pakar untuk menjawab pertanyaan (konsultasi). Dengan
adanya sistem pakar ini, orang awam pun dapat menyelesaikan masalah yang
cukup sulit dan sebenarnya hanya dapat diselesaikan dengan bantuan para ahli.

2.2.4.1 Kelebihan dan Kelemahan Sistem Pakar

Kelebihan yang di peroleh dari sistem pakar (Andriani, 2016) yaitu :

1. Masyarakat yang bukan pakar bisa memanfaatkan keahlian dibidang


tertentu tanpa harus bertemu dengan seorang ahli.
2. Dapat menghemat waktu dalam penyelesaian masalah yang cukup
sulit.
3. Dapat dijadikan sebagai media pembelajaran yang relevan.
4. Dapat meningkatkan produktivitas kerja dengan cara meningkatkan
efisiensi pekerjaan serta solusi kerja.
5. Menyederhanakan beberapa operasi ( pengolahan berulang-ulang
secara otomatis dan tersedianya pengetahuan pakar bagi masyarakat)
Kelemahan dari sistem pakar (Andriani, 2016), adalah :
1. Produktivitas kerja manusia semakin berkurang, karena semua
pekerjaan dikerjakan secara otomatis oleh sistem yang telah dibuat.
2. Membutuhkan waktu yang cukup lama untuk mempelajari sistem
tersebut.
3. Sistem pakar sangat mahal untuk dikembangkan.
4. Sistem pakar sulit untuk dikembangkan karena ketersediaan para ahli
saat ini semakin sedikit.
5. Harus ada seorang admin yang bisa selalu update informasi dalam
bidang yang sesuai dengan sistem pakar tersebut.
6. Pengguna merasa kurang percaya terhadap sistem, mengakibatkan
minat pengguna akan sistem pakar semakin berkurang.

2.2.4.2 Struktur Sistem Pakar

Sistem pakar terdiri dari dua bagian pokok, yaitu: lingkungan


pengembangan (Development Environment) yang digunakan untuk memasukan
pengetahuan pakar ke dalam sistem pakar, sedangkan lingkungan konsultasi
(Consultation Environment) yang digunakan oleh user untuk berkonsultasi atau
memperoleh informasi. (Kusumadewi, 2003).

Struktur sistem pakar antara lain :


1. Basis pengetahuan dibutuhkan untuk memahami, memformulasi dan
memecahkan masalah.
2. Mesin inferensi, yaitu sebuah program komputer yang menyediakan suatu
metodologi untuk memikirkan dan memformulasi kesimpulan.
3. Blackboard, yaitu area dalam memori yang digunakan untuk merekam suatu
kejadian yang sedang berlangsung termasuk keputusan sementara.
4. Antarmuka, digunakan sebagai media komunikasi antara user dan program
yang berisi pertanyaan- jawaban, menu, formulir, dan grafik.
5. Subsistem penjelasan, digunakan untuk melacak respon dan memberikan
suatu penjelasan tentang kelakuan sistem pakar secara interaktif melalui
pertanyaan.
6. Sistem penyaring pengetahuan, digunakan untuk menganalisa performa,
belajar dari pengalaman, serta meningkatkan pengetahuannya untuk
konsultasi berikutnya.

Gambar 2.2 Struktur Sistem Pakar

2.2.4.3 Contoh Sistem Pakar

Contoh sistem pakar di dalam berbagai bidang:


1. Bidang kedokteran
Contoh: Dengan adanya sistem pakar manusia bisa mendeteksi adanya
penyakit pada dirinya berdasarkan gejala yang di rasakan serta rekomendasi
pengobatan, seperti penyakit ginjal, hati, jantung, dan THT.
2. Bidang Industri
Contoh: Dalam bidang industri aplikasi sistem pakar digunakan dalam hal
penjadwalan produksi, dimana sistem ini bisa mengatur dan mengkoordinasi
tahap-tahap pada proses produksi.
3. Bidang Psikolog
Contoh: Dalam bidang psikolog aplikasi sistem pakar digunakan untuk
mendeteksi gangguan yang terjadi pada perkembangan anak, sistem ini bisa
mendeteksi apakah dalam proses perkembangan anak terdapat gangguan
atau tidak.
4. Bidang Manajerial
Contoh: Dalam bidang manajerial aplikasi sistem pakar digunakan untuk
analisis media iklan yang tepat, analisis pasar yang tepat untuk komoditi
tertentu.
5. Bidang Ekonomi
Contoh: Aplikasi sistem pakar dalam bidang ini digunakan untuk
menentukan waktu yang tepat untuk berinvestasi berdasarkan data-data
kondisi yang sedang terjadi.
6. Bidang Pendidikan
Contoh: Aplikasi sistem pakar dalam bidang pendidikan digunakan untuk
seleksi pemberian beasiswa sehingga beasiswa dapat diberikan kepada
siswa yang tepat sasaran.
7. Bidang Hukum dan Hankam
Contoh: Aplikasi sistem pakar ini digunakan untuk menentukan hukum
yang tepat untuk suatu tindak pidana, untuk bidang pertahanan dan
keamanan sistem pakar ini diterapkan dalam sistem radar.
8. Bidang Eksplorasi Alam
Contoh: Dalam bidang eksplorasi alam Aplikasi sistem pakar digunakan
untuk mendeteksi adanya kandungan minyak bumi.
9. Bidang Pertanian
Contoh: Dalam bidang pertanian aplikasi sistem pakar ini digunakan untuk
mendiagnosa hama dan penyakit pada tanaman, dari gejala yang
ditimbulkan akan di dapatkan solusi untuk mengatasi.

2.2.5 Pengertian Android


Android merupakan salah satu jenis sistem operasi yang dirancang untuk
perangkat elektronik khususnya perangkat smartphone dan tablet berbasis Linux.
Android awalnya dikembangkan oleh Android, Inc., dengan dukungan finansial
dari Google, yang kemudian membelinya pada tahun 2005. Sistem operasi ini
dirilis secara resmi pada tahun 2007. Ponsel Android pertama mulai dijual pada
bulan Oktober 2008(Wijayanto, 2017).

Gambar 2.3 Komponen Utama Android

Gambar diatas menampilkan komponen utama sistem tingkatan Android.

1. Aplikasi : aplikasi merupakan sistem inti dalam Android, aplikasi inti ini
berupa aplikasi SMS, penelepon, kalender, penjelajahan Internet dan
kontak.
2. Java API Framework : semua fitur Android tersedia untuk developer
melalui antarmuka pemrograman aplikasi.
3. Library dan Android runtime : semua aplikasi berjalan dalam prosesnya
sendiri dan dengan instance Android Runtime sendiri, yang memungkinkan
beberapa mesin sekaligus virtual pada perangkat bermemori rendah.
4. Hardware Abstraction Layer (HAL) : Lapisan ini menyediakan antarmuka
standar yang menunjukkan kemampuan perangkat keras di perangkat ke
kerangka kerja Java API yang lebih tinggi.
5. Kernel Linux: merupakan fondasi platform Android, Hardware Abstraction
Layer mengandalkan kernel Linux untuk fungsionalitas pokok seperti
threading dan manajemen memori tingkat rendah.
2.2.5.1 Fitur Android

1) Perangkat Android memiliki bebrapa fitur perangkat keras yang di gunakan


developer untuk membangun sebuah aplikasi, yaitu Touchscreen, GPS,
Accelerometer, dan SD Card.
2) Perangkat Android juga memiliki fitur perangkat lunak yang digunakan
developer dalam proses pengembangan aplikasi, yaitu Internet, Audio dan
Video Support, Contact, Security, dan Google Apls (Endra et al., 2019).

2.2.6 Android Studio


Android Studio merupakan IDE (Integrated Development Environment)
resmi yang digunakan untuk mengembangkan aplikasi Android yang memiliki
banyak fitur yang digunakan untuk membantu kita dalam mempercepat proses
pengembangan aplikasi. Android Studio ini bersifat open source yang didasarkan
pada IntelliJ IDEA. Android Studio pertama diluncurkan pada tanggal 16 Mei
2013 pada Konferensi Google I/O oleh produk Manajer Google, Ellie Power”
(Wijayanto, 2017).

Sejak saat itu, Android Studio mengantikan Eclipse sebagai IDE resmi
untuk mengembangkan aplikasi Android. Android Studio sendiri dikembangkan
berdasarkan IntelliJ IDEA yang mirip dengan Eclipse disertai dengan ADT plugin
(Android Development Tools).

Berikut ini adalah beberapa fitur yang di sediakan dalam versi stabil saat
ini yaitu :

1. Visual Layout Editor, yaitu sebuah fitur di Android Studio yang


digunakan untuk mempermudah dalam membangun sebuah tampilan
aplikasi.
2. Inteligent Code Editor, yaitu sebuah fituryang bisa dimanfaatkan untuk
mempercepat dalam menuliskan sebuah Code .
3. Shortcut, yaitu pintasan yang ada di Android Studio yang dapat
membantu kita dalam menuliskan sebuah Code .
4. Live Template, yaitu sebuah fitur yang memudahkan kita dalam
menuliskan beberapa baris Code dengan hanya mengetikkan beberapa
huruf saja.
5. Logcat, yaitu sebuah fitur yang memudahkan kita untuk mencari dan
memperbaiki error yangada di aplikais yang sedang kita kembangkan
dengan cara yang sederhana.
6. Version Control System, yaitu kita dapat berkolaborasi dalam
mengembangkan sebuah projek menggunakan Version Control seperti
dengan cara yang sederhana dan efisien.
7. Android Emulator, yaitu sebuah fitur yang digunakan untuk menguji dan
menjalankan aplikasi yang sudah di buat.

Gambar 2.4 Android Studio

2.2.7 Bahasa Pemrograman Java


Java merupakan salah satu bahasa pemrograman yang mendukung object
oriented programming yang berbasis kelas, berorientasi objek dan berisikan JVM
(Java Virtual Machine) yang paling populer dan banyak digunakan oleh
pemrogram (pembuat program) komputer (Endra, 2016). Kelas tersebut terdiri
dari metode-metode yang melakukan pekerjaan dan mengembalikan informasi
setelah melakukan tugasnya. Java lebih simpel karena java mudah digunakan,
dibuat, di compile dan mudah dipelajari (EMS, 2015).

2.2.8 Java Api Framework


“Application Programming Interface (API) merupakan salah satu software
interface yang terdiri dari kumpulan-kumpulan instruksi yang telah disimpan
dalam bentuk library dan menjelaskan bagaimana agar suatu software dapat
berinteraksi dengan software lain”(Adi Pranata et al., 2018).

2.2.8.1 Struktur API

Resource diklasifikasi secara terpola berdasarkan path dan query string


dalam URL serta request method dalam HTTP request (Adi Pranata et al.,
2018)sebagai berikut :

1. Titik akses /resource?query=string yang digunakan untuk request


mendapatkan daftar dan menambah data anggota dari resource yang
dimaksud.
2. Titik akses /resource/id?query=string yang digunakan untuk request
mendapatkan detail, mengubah dan menghapus resource berdasarkan
nomor id resource yang dimaksud.
3. Titik akses /parent/id/resource?query=string yang digunakan untuk
request daftar dan menambah data anggota dari resource berdasarkan
id parent yang dimaksud.

Sementara klasifikasi berdasarkan request method dibagi menjadi empat


jenis sebagai berikut :

1. Request method POST yang digunakan untuk penambahan resource.


2. Request method GET yang digunakan untuk mendapatkan daftar dari
anggota resource dan detail dari anggota resource.
3. Request method PUT yang digunakan untuk mengubah resource.
4. Request method DELETE yang digunakan untuk menghapus resource.

2.2.9 Postman
Postman sering digunakan oleh para developer yang berkutat dalam
pembuatan API. Postman ini berfungsi sebagai REST CLIENT atau alat bantu
untuk melakukan uji coba REST API (Adi Pranata et al., 2018).
2.2.10 JetBrainsPhpStorm
JetBrainsPhpStorm merupakan salah satu aplikasi IDE (Integrated
Development Environment) /Code Editor dari JetBrains untuk pemrograman Web
atau membangun website dengan menggunakan bahasa PHP yang benama
PhpStorm. Software ini tergolong ringan dan cerdas IDE yang berfokus pada
produktifitas pengembang (Setiawan & Novita, 2012).

Gambar 2.5 JetBrains PhpStorm

2.2.11 NoSQLBooster
NoSQLBooster merupakan salah satu tempat penyimpanan data selain
dalam bentuk tabel (seperti yang digunakan dalam database SQL) dan konsep
penyimpanannya semistruktural dan tidak harus mempunyai relasi seperti dalam
tabel-tabel MySQL. Cara kerja dari NoSQL sendiri yaitu dengan menggunakan
model database untuk mengolah dan mengakses suatu data.

2.2.12 MongoDB
MongoDB merupakan salah satu jenis database yang menggunakan
konsep NoSQL (Not Only SQL) yang berbasis dokumen. Manfaat dari mongoDB
ini adalah dalam sistem penyimpanan tidak lagi menggunakan tabel, tetapi
menggunakan dokumen terstruktur layaknya JSON karena telah menggunakan
javascript. MongoDB menggunakan konsep key-values karena setiap dokumen
dalam MongoDB pasti memiliki key. Meskipun kita membuat sebuah dokumen
tanpa menggunakan primary key, tapi secara otomatis MongoDB tersebut
memberinya sebuah key(Ali Firdaus, Slamet Widodo, Adi Sutrisman, Sutan
Gading Fadhillah Nasution, 2019).

Gambar 2.6 NoSQLBooster

Gambar 2.7 MongoDB

2.2.13 Node.js
Node.js merupakan aplikasi web server berbasis javascript yang perannya
sama seperti PHP, yaitu untuk memproses konten dan transaksi dinamis yang
dikirimkan oleh browser, aplikasi mobile, dan lain-lain. Node.js tidak perlu
menunggu sebuah request selesai dilakukan jika ada request lain yang ingin di
jalankan. Node.js lebih cepat dan bisa menerima lebih banyak request dari
aplikasi web server lainnya.
Gambar 2.8 Node.js

2.2.14 Metode Forward Chaining


Forward Chaining adalah metode pencarian goals atau kesimpulan
berdasarkan fakta-fakta yang telah di tentukan. Metode Forward Chaining ini
merupakan sebuah program aplikasi yang melakukan identifikasi dan sering
digunakan untuk mendiagnosa sebuah penyakit berdasarkan fakta-fakta yang telah
ditentukan, dari fakta yang ada maka akan didapatkan sebuah kesimpulan atau
solusi (T.Sutojo, SSi, M.Kom., Edy Mulyanto, SSi, M.Kom., 2011).

Dalam metode Forward Chaining, terdapat 2 cara yang dilakukan untuk


proses pelacakan, yaitu:

1. Menginputkan data-data yang sudah ada ke dalam sistem pakar dalam satu
kesempatan ketika melakukan proses konsultasi. Dengan menggunakan cara ini
bisa mempermudah saat proses terautomatisasi dan menerima data langsung
dari komputer yang telah menyimpan database dari satu set sensor.
2. Dengan cara memberikan elemen yang spesifik dari data yang telah di peroleh
selama sesi konsultasi berlangsung kepada sistem pakar, dengan melakukan
cara ini bisa mengurangi jumlah data yang diminta oleh user,sehingga data-
data yang diminta hanya data yang benar-benar dibutuhkan oleh sistem pakar
dalam mengambil keputusan atau tujuan yang tepat.

2.2.15 Penyakit Padi


Padi atau dalam bahasa latinnya Oryza Sativa L. merupakan salah satu
tanaman paling pokok dalam kehidupan manusia selama hidup di dunia dan padi
merupakan makanan utama atau makanan pokok masyarakat Indonesia. Tanaman
padi yang sudah terserang hama dan penyakit nantinya tanaman tersebut tidak
dapat melakukan aktifitas fisiologis secara sempurna dan akan menyebabkan
terganggunya proses pertumbuhan, yang nantinya berdampak pada tidak
sempurnanya hasil produksi yang di panen bahkan petani rugi baik secara kualitas
maupun kuantitas.

Secara umum penyakit tanaman padi yang sering terjadi disebabkan oleh
faktor biotik dan abiotik. Penyakit tanaman yang di lapangan biasa kita dikenali
berdasarkan tanda dan gejala penyakit yang ada, tanda penyakit yang biasanya di
sebabkan oleh mikroorganisme patogen bisa kita amati dengan mata biasa karena
mencirikan jenis penyebab penyakit tersebut. Saat di lapangan terkadang sangat
sulit untuk membedakan antara gejala serangan yang disebabkan oleh
mikroorganisme patogen atau gangguan fisiologis, misalnya pada penyakit padi
gejala kerdil, perubahan warna daun atau ketidaknormalan pertumbuhan mulai
sulit dibedakan khususnya apabila gejala tersebut telah lanjut.
3. TUJUAN DAN MANFAAT PENELITIAN

3.1 Tujuan Penelitian


Tujuan penelitian ini adalah:

1. Mengetahui cara kerja sistem pakar menggunakan metode Forward Chaining


untuk diagnosa hama dan penyakit tanaman padi.
2. Membantu petani untuk memberikan informasi mengenai jenis hama dan
penyakit pada tanaman padi serta penentuan solusi yang sesuai untuk
mengatasinya.

3.2 Manfaat Penelitian


Berdasarkan tujuan penelitian yang hendak dicapai, maka manfaat
penelitian ini adalah sebagai berikut :

1. Memudahkan petani untuk memberikan informasi mengenai jenis hama dan


penyakit pada tanaman padi serta penentuan solusi yang sesuai untuk
mengatasinya.
2. Manfaat dari hasil penelitian ini diharapkan dapat digunakan sebagai acuan
studi pustaka untuk penelitian selanjutnya.
4. METODOLOGI PENELITIAN

4.1 Metode Penelitian


Metode Penelitian merupakan cara ilmiah untuk mengumpulkan data atau
informasi dengan tujuan dan kegunaan tertentu dan kemudian melakukan
investigasi terhadap data tersebut. Terdapat 4 point penting yang dilakukan dalam
proses melakukan metode penelitian yaitu cara ilmiah, data, tujuan dan kegunaan
(Prof.Dr.Sugiono, n.d.).

4.2 Metode Pengumpulan data


Dalam rangka menunjang untuk mencapai tujuan penelitian, peneliti
menggunakan metode experimen sebagai metode pengumpulan data. Pada
dasarnya metode experimen merupakan bagian dari metode kuantitatif yang
mempunyai ciri khas tersendiri (Sugiono, 2012).

Metode penelitian experimen adalah penelitian yang memiliki variabel


treatment atau variabel perlakuan bersifat manipulatif terencana sejak awal dan
dirancang oleh peneliti, dalam artian hasil akhir memang sengaja dibuat oleh
peneliti supaya hasilnya lebih meningkat. Penyusunan perancangan treatment ini
di susun berbasis teori.

4.3 Teknik Pengumpulan Data


Dalam penelitian ini Peneliti menggunakan 2 (dua) metode pengumpulan
data sebagai teknik pengumpulan data, yaitu sebagai berikut:

1. Studi Literatur
Studi literatur merupakan salah satu proses pencarian referensi terkait studi
kasus ataupun masalah yang bisa didapat dari buku-buku, jurnal, buku
dokumentasi, karya ilmiah, tesis, dan internet untuk untuk menunjang
kelengkapan data.

2. Metode Wawancara
Selain menggunakan studi literatur dan kepustakaan, Peneliti juga sempat
melakukan wawancara dengan seorang petani padi di desa Labuhan Ratu VIII
Lampung Timur. Inti dari permasalahan yang sering dialami para petani padi
adalah pengetahuan petani tentang jenis hama dan penyakit yang menyerang
tanaman padi masih cukup rendah dan juga petani masih sulit untuk membedakan
jenis hama dan jenis penyakit pada tanaman padi. Apabila terjadi keterlambatan
dalam penanganan dapat mengakibatkan tingkat keberhasilan jumlah padi yang
dipanen berkurang.

4.4 Perancangan Sistem


Tahap perancangan merupakan dasar dari pengembangan suatu sistem
yang akan dibuat. Tahap ini menjelaskan atau menggambarkan bagaimana suatu
sistem yang akan dibuat dengan tujuan untuk memudahkan User atau pengguna
dan pengembang dalam memahami sistem yang akan dibuat nantinya. Dalam
penelitian ini perancangan sistem yang akan dibuat dengan menerapkan metode
Forward Chaining.

4.5 Analisa Kebutuhan Sistem


Analisa kebutuhan sistem merupakan suatu proses analisis yang bertujuan
untuk mendapatkan informasi terkait spesifikasi sistem yang diinginkan oleh
pengguna. Dalam penentuan kebutuhan sistem informasi dari pengguna sangat
dibutuhkan sebgaai acuan perancangan sistem. Tahapan ini diperlukan agar sistem
yang dirancang berdasarkan data-data yang telah diberikan oleh pengguna dapat
memenuhi kebutuhan sistem. Ada dua jenis kebutuhan sistem dalam
mempermudah menganalisis sistem yaitu kebutuhan fungsional dan kebutuhan
non fungsional.

4.5.1 Kebutuhan Fungsional


Kebutuhan fungsional merupakan apa yang harus bisa dilakukan oleh
software. Kebutuhan fungsional dalam sistem pakar yaitu :

1) Sistem dapat memberikan informasi mengenai jenis hama dan penyakit pada
tanaman padi serta penentuan solusi untuk mengatasinya kepada pengguna.

2) Sistem dapat menampilkan, menambah, mengedit serta dapat menghapus data


gejala dan jenis penyakit.
4.5.2 Kebutuhan Non Fungsional
Kebutuhan non fungsional merupakan karakteristik apa saja yang harus
dimiliki suatu sistem yang nantinya akan dibuat. Dalam hal ini kebutuuhan non
fungsional melibatkan analisi perangkat keras (hardware) dan analisa perangkat
lunak (software).

1. Analisa perangkat keras (hardware)

1) Processor laptop Pentium 4 atau lainnya

2) Ram minimal 4 GB atau lebih

3) Android atau smartphone

2. Analisa perangkat lunak (software)

1) Sistem Operasi Windows 7/8/10 (32- atau 64-bit)

2) Bahasa pemrograman menggunakan Java

3) Android Studio ide-191.6010548

4) NoSQLBooster sebagai penyimpanan data

5) mongoDB database NoSQL

6) JetBrains PhpStorm sebagai text editor

7) Postman sebagai Rest Client

8) Node.js sebagai platform untuk menjalankan javascript


5. HASIL DAN PEMBAHASAN

5.1 Hasil Penelitian


Setelah melakukan penelitian, Peneliti akan menjabarkan hasil dari
Analisa yang sudah dilakukan oleh Peneliti untuk analisis cara kerja sistem pakar
menggunakan metode Forward Chaining untuk diagnosa hama dan penyakit
padi. Dengan mempelajari cara kerja dari Android Studio dan PhpStorm yang
dipelajari dan dipahami melalui berbagai referensi buku panduan, jurnal, website
dan tutorial youtube. Analisa ini digunakan sebagai dasar bagi tahapan penelitian,
sehingga akan dapat diketahui hasil yang telah dibuat untuk mencapai tujuan yang
diinginkan.

Metode Forward Chaining merupakan program aplikasi yang melakukan


identifikasi dan sering digunakan untuk mendiagnosa sebuah penyakit
berdasarkan fakta-fakta yang telah ditentukan, dari fakta yang ada maka
didapatkan kesimpulan berupa nama penyakit, deskripsi penyakit, serta solusi
penanganan berdasarkan gejala. Berikut rule Forward Chaining aplikasi sistem
pakar padi:

Gambar 5.1 Rule Forward Chaining


5.1.1 Flowchart Sistem
Flowchart merupakan bagan alir atau alur kerja sistem yang dijabarkan
dengan simbol-simbol tertentu yang menggambarkan urutan proses secara
mendetail. Admin dalam sistem pakar padi ini dapat melakukan proses CRUD
yaitu Creat, Read, Update, Delete.

1. Create, Admin dapat input atau menambahkan data kode gejala


penyakit, gejala penyakit, nama penyakit, deskripsi penyakit dan solusi
untuk mengatasi penyakit.

2. Read, Admin dapat menampilkan data yaitu kode gejala penyakit,


gejala penyakit, nama penyakit, deskripsi penyakit, dan solusi untuk
mengatasi penyakit.

3. Update, Admin dapat mengubah data yang ada di dalam sistem pakar
yaitu data kode gejala penyakit, gejala penyakit, nama penyakit,
deskripsi penyakit, dan solusi untuk mengatasi penyakit.

4. Delete, Admin dapat menghapus data yang ada di dalam sistem pakar
baik data kode gejala penyakit, gejala penyakit, nama penyakit,
deskripsi penyakit, maupun solusi untuk mengatasi penyakit.

5.1.2 Perancangan Use Case Diagram


Use case Diagram yang digunakan pada penelitan ini menunjukan
interaksi antara pengguna dengan sistem. Use case diagram dalam sistem pakar
yaitu admin bisa melakukan input penyakit, lihat penyakit, ubah penyakit, dan
hapus penyakit. Berikut ini Use case diagram yang menggambarkan interaksi
pengguna sistem yang dibangun:
Gambar 5.2 Flowchart Alur Sistem CRUD

Gambar 5.3 Use Case Diagram


5.1.3 Perancangan Activity Diagram
Activity diagram menggambarkan berbagai flow(aliran) aktifitas dalam
sistem yang sedang dirancang. Activity diagram juga dapat menggambarkan
awalan suatu aktifitas, percabangan sampai pada tahapan akhir suatu sistem.
Beberapa Activity Diagram untuk CRUD dalam sistem ini yaitu:

1. Create Penyakit

Gambar 5.4 Activity Diagram Create

2. Read Penyakit

Gambar 5.5 Activity Diagram Read


3. Update Penyakit

Gambar 5.6 Activity Diagram Update

4. Delete Penyakit

Gambar 5.7 Activity Diagram Delete

5.2 Pembahasan
Pada dasarrnya cara kerja Sistem Pakar itu pengguna bisa menyelesaikan
masalah tentang hama dan penyakit tanaman padi serta solusi penangan yang
sesuai dengan gejalanya. Dengan menggunakan sebuah Aplikasi Berbasis Android
yaitu Aplikasi Sistem Pakar, para petani atau orang awampun bisa melakukan
konsultasi masalah hama dan penyakit yang menyerang tanaman padinya. Petani
bisa melakukan konsultasi penyakit dengan memilih gejala penyakit yang
menyerang tanaman padinya, lalu petani akan mendapatkan keterangan atau
deskripsi tentang penyakit yang menyerang padinya yang di sertai gambar dan
disertai solusi untuk penanganan penyakit tersebut.
Dalam pembahasan ini Peneliti akan membahas mengenai hasil analisis cara
kerja sistem yang telah di uji coba. Uji coba ini dilakukan untuk mengetahui
apakah sistem dapat berjalan dengan baik dan sesuai kebutuhan.

Langkah awal dalam pembuatan aplikasi sitem pakar penyakit padi berbasis
Android ini yaitu membuat file package.json. Sebelum membuat file package.json
terlebih dahulu membuat folder projek dan memlih tempat untuk penyimpanan
projek yang dibuat “D/percobaanPI”. Lalu membuka Command Prompt,
selanjutnya masuk ke dalam directory “percobaanPi”.

Gambar 5.8 Masuk ke dalam directory

Setelah masuk ke dalam directory atau folder “percobaanPI” melalui


Command Prompt, selanjutnya membuat projeknya dengan menggunakan
perintah “npm init” selanjutnya di enter. Langkah-langkahnya seperti gambar di
bawah:
Gambar 5.9 Membuat projek

Penjelasan dari pembuatan projek diatas yaitu:

1. Package name, yaitu pembuatan nama package.


2. Description, yaitu untuk deskripsi dari projek yang akan dibuat.
3. Entry point, yaitu pembuatan class yang pertama kali akan dipanggil.
4. Author, bisa di ketikkan nama.

Gambar 5.10 Hasil

Setelah berhasil membuat projek baru, selanjutnya buka folder


“percobaanPI” untuk melihat file package.json.

Gambar 5.11 File package.json

Setelah itu buka folder “percobaanPi” melalui IDE PhpStorm. Lalu akan
muncul tampilan awal di dalam file package.json.
{
"name": "percobaanpi",
"version": "1.0.0",
"description": "Ini Percobaan PI",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Ayu",
"license": "ISC"
}

5.2.1 Rancangan Interfaces menggunakan Android Studio


Langkah pertama yang dilakukan adalah dengan membuka Android Studio
dan pilih Start a new Android Studio project.

Gambar 5.12 Welcome to Android Studio

Pada Choose your project pilih Empty Activity sebagai activity yang akan
digunakan, setelah itu klik next.

Gambar 5.13 Choose your project


Selanjutnya adalah masuk ke halaman Configure your project , memberi
name, package name, save location pada activity yang akan digunakan. Lalu klik
finish.

Gambar 5.14 Configure your project

Setelah itu Android Studio akan membuka IDE yang merupakan tampilan
awal pada projek penulis. Selanjutnya pada masing-masing activity akan
dimasukkan kodingan menggunakan bahasa pemrograman java.

Gambar 5.15 Tampilan awal


Sebelum melakukan login, Admin melakukan registrasi terlebih dahulu
melalui postman, Postman ini berfungsi sebagai REST CLIENT atau alat bantu
untuk melakukan uji coba REST API.

Gambar 5.16 Tampilan Tabel Registrasi

Tampilan registrasi di atas merupakan hasil implementasi dari source code


yang berada di dalam file “Api_Sispar/model/Penyakit.js” yang digunakan untuk
menampilkan tabel registrasi di dalam postman.

const mongoose = require('mongoose');

const userSchema = mongoose.Schema({

kodeGejala: {
type: String
},
gejala: {
type: String
},
namaPenyakit: {
type: String
},
deskripsi: {
type: String
},
solusi: {
type: String
},
gambar: {
type: String
}
})

module.exports = mongoose.model('penyakit', userSchema)


Source code dibawah ini terletak di dalam file “Api_Sispar/routes/User.js”
yang digunakan untuk Admin melakukan registrasi sebelum melakukan login.
Proses registrasi nantinya di input melalui postman.

const router = require('express').Router()


const userController = require('../controller/User.js')

router.post('/registrasi', (req, res)=> {

userController.registrasi(req.body)
.then((result) => res.json(result))
.catch((err) => res.json(err))
})
module.exports = router

5.2.2 Membuat Halaman Login


Source code dibawah ini merupakan perintah untuk melakukan proses
login berdasarkan data yang telah di input dalam menu registrasi di dalam
postman, dan nantinya data yang telah di input akan tersimpan di dalam
NoSQLBooster.

const router = require('express').Router()


const userController = require('../controller/User.js')
router.post('/login', (req, res) => {
userController.login(req.body)
.then((result) => res.json(result))
.catch((err) => res.json(err))
})
module.exports = router

Gambar 5.17 Tampilan Tabel Login


Source code di bawah berada di dalam file “SistemPakarPadi/Gradle
Scripts/build.gradle” yang digunakan untuk menginstal library. Lalu source code
dependencis digunakan untuk mendownload librarynya.

dependencies {
classpath 'com.Android.tools.build:gradle:3.5.3'
}}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }}

Gambar 5.18 Tampilan Hasil Input Data untuk Login

Tampilan dati tabel diatas berisi data yang nantinya akan di gunakan oleh
Admin untuk melakukan proses login.

Source code di bawah ini di gunakan untuk edit text dan untuk
memperbagus tampilan halaman login.

Implementation'com.github.HITGIF:TextFieldBoxes:1.4.5'
implementation "Androidx.cardview:cardview:1.0.0"

Tampilan halaman login dibawah merupakan hasil implementasi dari


source code yang berada di dalam file
“SistemPakarPadi/res/layout/activity_login.xml” dan bisa menyimpan image,
serta textview yang digunakan untuk design tampilan login.
Gambar 5.19 Tampilan Halaman Login

5.3 Membuat Menu Utama


Tampilan menu utama diatas merupakan hasil implementasi Source Code
yang telah di buat di Android Studio yang berada di file
“app/res/layout/activity_main.xml” dan bisa menyimpan image, serta textview
yang digunakan untuk design tampilan menu utama.
Gambar 5.20 Tampilan Menu Utama

5.4 Membuat Api di PhpStorm


Pertama membuat folder di dalam Localdisk C, folder pertama data lalu di
dalam folder data membuat 1 folder dengan nama db(sudah menginstal
mongoDB). Setelah membuat folder, lalu membuat project dan membuat folder
dengan nama Api_Sispar di dalam Localdisk D.

Source Code dibawah ini merupakan library yang akan digunakan untuk
membuat Api dengan cara menginstal terlebih dahulu di PhpStorm.

"dependencies": {
"bcrypt": "^5.0.0",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"mongodb": "^3.5.9",
"mongoose": "^5.9.21",
"multer": "^1.4.2",
"nodemon": "^2.0.4"
Gambar 5.21 Struktur Folder Api

Source Code di bawah ini berada dalam “Api_Sispar/config/DbConfig.js”


digunakan untuk koneksi ke database(mongoDB):

exports.mongoURL=
'mongodb://127.0.0.1:27017/sistempakarpadi'

Sampel singkat Sour Code dibawah berada di dalam file


“Api_Sispar/config/response.js” digunakan untuk menampilkan respon-respon
seperti ”Berhasil Menginput Penyakit”.

module.exports = {

commonError:{
error: true,
msg : 'Terjadi Kesalahan Pada Server'
},
commonErrorMsg: (msg) => {
return {
error: true,
msg : msg
}
},
commonSuccess: {
error: false,
msg: 'Berhasil Memuat Permintaan'
},
}

Source Code di bawah ini berada di dalam


“Api_Sispar/model/Penyakit.js” digunakan untuk membuat model struktur
database.

const mongoose = require('mongoose');


const userSchema = mongoose.Schema({
kodeGejala: {
type: String },
gejala: {
type: String },
namaPenyakit: {
type: String },
deskripsi: {
type: String },
solusi: {
type: String}
}) module.exports = mongoose.model('penyakit', userSchema)

Source Code dalam “Api_Sispar/controller/Penyakit.js” di bawah


digunakan sebagai pengolah data yang nantinya akan di tampilkan di bagian
routes.

const penyakit = require('../model/Penyakit.js')


const response = require('../config/response')
const bcrypt =require(‘bcrypt’)
exports.inputDataPenyakit = (data, gambar) =>
new Promise(async (resolve, reject)=>{
const penyakitBaru = new penyakit({
kodeGejala: data.kodeGejala,
gejala: data.gejala,
namaPenyakit: data.namaPenyakit,
deskripsi: data.deskripsi,
solusi: data.solusi,
gambar: gambar
})
await penyakit.findOne({kodeGejala:data.kodeGejala})
.then(penyakit => {
if (penyakit){
reject(response.commonErrorMsg('Kode
gejala sudah digunakan'))
} else {
penyakitBaru.save()
.then(r=>{
resolve(response.commonSuccesMsg('Berhasil menginput
penyakit'))
}).catch(err => {
reject(response.commonErrorMsg('Mohon
Maaf Input Penyakit Gagal'))
})
}
}).catch(err => {
reject(response.commonErrorMsg('Mohon Maaf
Terjadi Kesalahan Pada Server Kami'))
})
})
exports.lihatDataPenyakit = () =>
new Promise(async (resolve, reject) => {
await penyakit.find({})
.then(result => {
resolve(response.commonResult(result))
})
.catch(() =>
reject(response.commonErrorMsg('Mohon Maaf Terjadi Kesalahan
Pada Server Kami')))})
Source Code dalam “Api_Sispar/routes/Penyakit.js” di bawah digunakan
sebagai pengolah data yang nantinya akan di tampilkan di bagian routes.

const router = require('express').Router()


const penyakit = require('../controller/Penyakit.js')
router.post("/input", upload, (req, res) => {
penyakit.inputDataPenyakit(req.body, req.file.filename)
.then((result) => res.json(result))
.catch((err) => res.json(err))
}) module.exports = router

Source Code di bawah ini berada di dalam file “Api_Sispar/app.js”


digunakan untuk melihat apakah mongoDB nya connect atau tidak.

const express = require('express')


const bodyParser = require('body-parser')
const app = express()
const mongoose = require('mongoose')
const port = process.env.PORT || 5500
const dbConfig = require('./config/DbConfig')
const cors = require('cors')
const path = require('path')
mongoose.connect(dbConfig.mongoURL, {
useNewUrlParser: true
}).then(() => console.log('connect mongodb'))
.catch(err => console.log(err))
app.use(cors())
app.use(bodyParser.json({
extend: true,
limit: '50mb'
}))
app.use(bodyParser.urlencoded({
extend: true,
limit: '50mb'
}))
app.use('/penyakit', require('./routes/Penyakit'))

app.listen(port, function () {
console.log('Server berjalan di port '+ port)
})

5.4.1 Tampilan Database

Gambar 5.22 Database Sistem Pakar Padi

Tampilan database diatas merupakan hasil dari implementasi source code yang
telah di buat di PhpStorm yang berada di dalam file “/config/DbConfig.js”.

Dalam database tersebut, terdapat 2 tabel yaitu tabel penyakit yang berisi
atribut-atribut sebagai berikut:

Tampilan Isi Tabel

Gambar 5.23 Tampilan Isi Tabel Penyakit


Dari tampilan database diatas terdapat satu tabel users yang sebelumnya
telah di input melaui postman yaitu dengan registrasi sebagai admin terlebih
dahulu, lalu melakukan login. Data tersebut yang nantinya akan di gunakan admin
untuk login aplikasi.

Gambar 5.24 Tampilan Tabel users

Source code diatas merupakan hasil implementasi dari source code yang
berada di “app/java/com.ayuantika.sistempakarpadi/LoginActivity” yang
digunakan untuk melakukan proses login yang nantinya untuk masuk ke dalam
halaman utama dan melakukan proses CRUD.

public class LoginActivity extends AppCompatActivity {


Button btnlogin;
EditText edtUsername, edtPassword;
private RequestQueue mRequestQueue;
ProgressDialog pDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
btnlogin = (Button)findViewById(R.id.btnlogin);
edtUsername = (EditText) findViewById(R.id.edtUsername);
edtPassword = (EditText) findViewById(R.id.edtPassword);
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strUsername = edtUsername.getText().toString();
String strPassword = edtPassword.getText().toString();
if (strUsername.isEmpty()){
Toast.makeText(getApplicationContext(), "Username Tidak boleh
Kosong", Toast.LENGTH_LONG).show();
}else if (strPassword.isEmpty()){
Toast.makeText(getApplicationContext(), "Password Tidak boleh
Kosong", Toast.LENGTH_LONG).show();
}else { login(strUsername, strPassword);
}}
});
getSupportActionBar().hide();
mRequestQueue = Volley.newRequestQueue(this);

pDialog = new ProgressDialog(this);


pDialog.setCancelable(false);}
public void login(String userName, String password ){
HashMap<String, String> params = new HashMap<String,
String>();
params.put("userName", userName);
params.put("password", password);
pDialog.setMessage("Mohon Tunggu ...");
showDialog();
JsonObjectRequest req = new JsonObjectRequest(BaseURL.login, new
JSONObject(params),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
hideDialog();
try { String strMsg = response.getString("msg");
boolean status = response.getBoolean("error");
if (status == false) {
Toast.makeText(getApplicationContext(), strMsg,
Toast.LENGTH_LONG).show();
Intent i = new Intent(LoginActivity.this, MainActivity.class);
startActivity(i);
finish();
} else {
Toast.makeText(getApplicationContext(), strMsg,
Toast.LENGTH_LONG).show();}
5.5 Membuat API CRUD

Source Code dalam “Api_Sispar/routes/Penyakit.js” digunakan untuk


menyimpan gambar di dalam localdirectory gambar yang ada di dalam
“Api_Sispar/gambar”.

const mongoose = require('mongoose');


const userSchema = mongoose.Schema({
kodeGejala: {
type: String
},
gejala: {
type: String
},
namaPenyakit: {
type: String
},
deskripsi: {
type: String
},
solusi: {
type: String
},
gambar: {
type: String
}
})
module.exports = mongoose.model('penyakit', userSchema)

Source Code di bawah ini berada di dalam file


“Api_Sispar/model/Penyakit.js” digunakan untuk membuat model struktur
database.
const multer = require('multer')
const fs = require ('fs')
const router = require('express').Router()
const penyakit = require('../controller/Penyakit.js')
var storage = multer.diskStorage({
filename: function (req, file, cb) {
let ext = file.originalname.substring(
file.originalname.lastIndexOf("."),
file.originalname.length
)
cb(null, Date.now() + ext);
},
destination: function (req, file, cb) {
cb(null, './gambar')
}})
var upload = multer({storage: storage}).single("gambar")
router.post("/input", upload, (req, res) => {
penyakit.inputDataPenyakit(req.body, req.file.filename)
console.log(req.file)
module.exports = router
Gambar 5.25 Tabel Input dan Hasil Gambar

Source Code dalam “Api_Sispar/controller/Penyakit.js” digunakan untuk


memasukan data ke dalam database.

const penyakit = require('../model/Penyakit.js')


const response = require('../config/response')
exports.inputDataPenyakit = (data, gambar) =>
new Promise(async (resolve, reject)=>{
const penyakitBaru = new penyakit({
kodeGejala: data.kodeGejala,
gejala: data.gejala,
namaPenyakit: data.namaPenyakit,
deskripsi: data.deskripsi,
solusi: data.solusi,
gambar: gambar
})
await penyakit.findOne({kodeGejala: data.kodeGejala})
.then(penyakit => {
if (penyakit){
reject(response.commonErrorMsg('Kode gejala
sudah digunakan'))
} else {
penyakitBaru.save()
.then(r=>{

resolve(response.commonSuccesMsg('Berhasil menginput
penyakit'))
}).catch(err => {
reject(response.commonErrorMsg('Mohon Maaf
Input Penyakit Gagal'))
})
}
}).catch(err => {
reject(response.commonErrorMsg('Mohon Maaf Terjadi
Kesalahan Pada Server Kami'))
})
})

Source Code dalam “Api_Sispar/controller/Penyakit.js” digunakan untuk


melihat data di dalam database.

const penyakit = require('../model/Penyakit.js')


const response = require('../config/response')
exports.inputDataPenyakit = (data, gambar) =>
new Promise(async (resolve, reject)=>{
const penyakitBaru = new penyakit({
kodeGejala: data.kodeGejala,
gejala: data.gejala,
namaPenyakit: data.namaPenyakit,
deskripsi: data.deskripsi,
solusi: data.solusi,
gambar: gambar
})
exports.lihatDataPenyakit = () =>
new Promise(async (resolve, reject) => {
await penyakit.find({})
.then(result => {
resolve(response.commonResult(result))
})
.catch(() =>
reject(response.commonErrorMsg('Mohon Maaf Terjadi Kesalahan
Pada Server Kami')))
})
exports.lihatDetailDataPenyakit = (kodeGejala) =>
new Promise(async (resolve, reject) => {
await penyakit.findOne({kodeGejala: kodeGejala})
.then(result => {
resolve(response.commonResult(result))
})
.catch(() =>
reject(response.commonErrorMsg('Mohon Maaf Terjadi Kesalahan
Pada Server Kami')))
})

Source Code dalam “Api_Sispar/controller/Penyakit.js” digunakan untuk


update data di dalam database.

const penyakit = require('../model/Penyakit.js')


const response = require('../config/response')
exports.updatePenyakit = (id, data, gambar) =>
new Promise(async (resolve, reject)=>{
await penyakit.updateOne(
{_id : ObjectId(id)},
{
$set: {
kodeGejala: data.kodeGejala,
gejala: data.gejala,
namaPenyakit: data.namaPenyakit,
deskripsi: data.deskripsi,
solusi: data.solusi,
gambar: gambar
}}
).then(penyakit => {
resolve(response.commonSuccesMsg('Berhasil
mengubah penyakit'))
}).catch(err => {
reject(response.commonErrorMsg('Mohon Maaf
Terjadi Kesalahan Pada Server Kami'))
})})
Source Code dalam “Api_Sispar/controller/Penyakit.js” digunakan untuk
hapus data di dalam database.

const penyakit = require('../model/Penyakit.js')


const response = require('../config/response')
exports.hapuspenyakit = (_id) =>
new Promise(async (resolve, reject)=>{
await penyakit.remove({_id: ObjectId(_id)})
.then(() =>{
resolve(response.commonSuccesMsg('Berhasil
menghapus penyakit'))
}).catch(() => {
reject(response.commonErrorMsg('Mohon Maaf
Terjadi Kesalahan Pada Server Kami'))
})
})

Source Code dalam “Api_Sispar/routes/Penyakit.js” digunakan untuk


CRUD dalam postman.

router.get("/datapenyakit", (req, res)=>{


penyakit.lihatDataPenyakit()
.then((result) => res.json(result))
.catch((err) => res.json(err))
})
router.get("/datapenyakit/:id", (req, res)=>{
penyakit.lihatDetailDataPenyakit(req.params.id)
.then((result) => res.json(result))
.catch((err) => res.json(err))
})
router.delete("/hapus/:id", (req, res)=>{
penyakit.hapuspenyakit(req.params.id)
.then((result) => res.json(result))
.catch((err) => res.json(err))
})
router.put("/ubah/:id", upload, (req, res)=> {
let fileName;
if (req.body.gambar) {
fileName = req.body.gambar;
} else {
fileName = req.file.filename;
}
penyakit.updatePenyakit(req.params.id, req.body,
fileName)
.then((result) => res.json(result))
.catch((err) => res.json(err))
})

5.6 CRUD di Android Studio

5.6.1 Menampilkan Daftar Penyakit

package com.ayuantika.sistempakarpadi.model;
public class ModelPenyakit {
String _id, kodeGejala, gejala, namaPenyakit, deskripsi,
solusi, gambar;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}

package com.ayuantika.sistempakarpadi.adapter;

public class AdapterPenyakit extends BaseAdapter{


private Activity activity;
private LayoutInflater inflater;
private List<ModelPenyakit> item;
public AdapterPenyakit(Activity activity, List<ModelPenyakit>
item) {
this.activity = activity;
this.item = item;
}
@Override
public int getCount() {
return item.size();
}
@Override
public Object getItem(int position) {
return item.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup
parent) {
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView =
inflater.inflate(R.layout.content_penyakit, null);
TextView Nama = (TextView)
convertView.findViewById(R.id.txtNama);
TextView Kode = (TextView)
convertView.findViewById(R.id.txtKode);
TextView Gejala = (TextView)
convertView.findViewById(R.id.txtGejala);
TextView Deskripsi = (TextView)
convertView.findViewById(R.id.txtDeskripsi);
TextView Solusi = (TextView)
convertView.findViewById(R.id.txtSolusi);
ImageView Gambar = (ImageView)
convertView.findViewById(R.id.gambar);

Nama.setText(item.get(position).getNamaPenyakit());
Kode.setText(item.get(position).getKodeGejala());
Gejala.setText(item.get(position).getGejala());
Deskripsi.setText("" + item.get(position).getDeskripsi());
Solusi.setText(item.get(position).getSolusi());
Picasso.get().load(BaseURL.baseURL + "gambar/" +
item.get(position).getGambar())
.resize(40, 40)
.centerCrop()
.into(Gambar);
return convertView; }}

Source Code diatas merupakan source code singkat yang terdapat di dalam
file app/java/com.ayuantika.sistempakarpadi/model/ModelPenyakit dan
app/java/com.ayuantika/sistempakarpadi/adapter/AdapterPenyakit untuk
menampilkan daftar penyakit yang telah di input di postman.

Gambar 5.26 Tampilan Content Penyakit dan Daftar penyakit

Tampilan conten penyakit diatas merupakan hasil dari implementasi


Source Code di “app/res/layout/content_activity” digunakan untuk menampilkan
daftar penyakit.
Source Code dibawah ini merupakan libray yang harus di instal dalam
Gradle Scripts/build.gradle.

implementation 'com.github.HITGIF:TextFieldBoxes:1.4.5'
implementation "Androidx.cardview:cardview:1.0.0"
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.Android.volley:volley:1.1.0'
implementation 'com.Android.support:design:29.0.0'
implementation 'com.karumi:dexter:5.0.0'

5.6.2 Membuat Activity Penyakit

Source Code dibawah ini merupakan source code Activity Penyakit.

package com.ayuantika.sistempakarpadi;
public class ActivityPenyakit extends AppCompatActivity {
ProgressDialog pDialog;
AdapterPenyakit adapter;
ListView list;
ArrayList<ModelPenyakit> newsList = new
ArrayList<ModelPenyakit>();
private RequestQueue mRequestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_penyakit);
// getSupportActionBar().setTitle("Data Penyakit");
mRequestQueue = Volley.newRequestQueue(this);
pDialog = new ProgressDialog(this);
pDialog.setCancelable(false);
list = (ListView) findViewById(R.id.array_list);
newsList.clear();
adapter = new AdapterPenyakit(ActivityPenyakit.this,
newsList);
list.setAdapter(adapter);
getAllBuku();}

5.6.3 Membuat Halaman activity_penyakit.xml

Gambar 5.27 Halaman activity_penyakit.xml

Sour Code di bawah ini merupakan source code berada di dalam


SistemPakarPadi/layout/activity_penyakit.xml.

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
tools:context=".ActivityPenyakit">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="50dp"
Android:gravity="center"
Android:background="@color/biru">

<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textStyle="bold"
Android:layout_gravity="center"
Android:gravity="center"
Android:textSize="20dp"
Android:textColor="#FFFFFF"
Android:text="Data Penyakit"/>
</LinearLayout>
</LinearLayout>

Source code dibawah ini merupakan hasil dari implementasi Source Code
di “app/java/com.ayuantika.sistempakar/server/BaseURL”.

package com.ayuantika.sistempakarpadi.server;
public class BaseURL {
public static String baseURL =
"http://192.168.43.222:5500/";
public static String datapenyakit = baseURL +
"penyakit/datapenyakit";
public static String editDataPenyakit = baseURL +
"penyakit/ubah/";
public static String hapusPenyakit = baseURL +
"penyakit/hapus/";
public static String inputPenyakit = baseURL +
"penyakit/input";}

5.6.4 Membuat Activity Edit Penyakit dan Hapus


Source code di bawah ini berada di dalam file
SistemPakarPadi/server/EditPenyakitDanHapusPenyakitActivity. Dimana souce
code tersebut digunakan untuk edit data, ambil gambar dan hapus data jika
terdapat kesalahan saat menginput data.

package com.ayuantika.sistempakarpadi;

import Androidx.appcompat.app.AppCompatActivity;
import com.ayuantika.sistempakarpadi.server.VolleyMultipart;
import com.ayuantika.sistempakarpadi.server.BaseURL;

public class EditPenyakitDanHapusPenyakitActivity extends


AppCompatActivity {

EditText edtKodeGejala, edtGejala, edtNamaPenyakit,


edtDeskripsi, edtSolusi;
ImageView imgGambarGejala;
Button btnTakeImg, editData, btnUploadGambar, hapusData;

String strKodeGejala, strGejala, strNamaPenyakit,


strDeskripsi, strSolusi, strGambar, _id;
private RequestQueue mRequestQueue;
Bitmap bitmap;
private final int CameraR_PP = 1;
String mCurrentPhotoPath;
ProgressDialog pDialog;

Gambar 5.28 Tampilan Menu Edit/Hapus


5.6.5 Membuat Menu Input Penyakit
Source code di atas terdapat di file SistemPakarPadi/server/InputPenyakit.
Source code Input Pneyakit tersebut digunakan untuk menginput penyakit berupa
kode gejala, gejala, nama penyakit, deskripsi, serta solusi. Kemudian ambil
gambar serta menyimpan data.

package com.ayuantika.sistempakarpadi;
public class InputPenyakit extends AppCompatActivity {

EditText edtKodeGejala, edtGejala, edtNamaPenyakit,


edtDeskripsi, edtSolusi;
ImageView imgGambarGejala;
Button btnTakeImg, simpanData;
private RequestQueue mRequestQueue;
Bitmap bitmap;
private final int CameraR_PP = 1;
String mCurrentPhotoPath;
ProgressDialog pDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_input_penyakit);

Gambar 5.29 Tampilan Menu Input Penyakit


5.6.6 Hasil Output CRUD
Fungsi Admin yaitu dia untuk mengentri data, memasukkan data, input
data, lihat seluruh data lalu bisa edit dan hapus data.

Gambar 5.30 Tampilan Output CRUD Sistem Pakar Padi


6. RENCANA PENELITIAN SELANJUTNYA

6.1 Rencana Penelitian Selanjutnya


Pada Penulisan ilmiah ini, Peneliti menganalisis cara kerja sistem pakar
menggunakan metode Forward Chaining untuk diagnosa hama dan penyakit padi
berbasis Android. Pada penelitian berikutnya Peneliti berencana untuk:

1. Peneliti berencana untuk menampilkan halaman registrasi user, Output


bisa menampilkan multimedia(suara dan gambar), menambahkan menu
dalam sistem, menjadikan sistem agar mudah digunakan oleh pengguna.
2. Pada penelitian selanjutnya Peneliti berencana dalam pembuatan Aplikasi
Sistem Pakar untuk Diagnosa Tanaman Padi menggunakan metode
Certainty Faktor (faktor kepastian).
7. KESIMPULAN DAN SARAN

7.1 Kesimpulan
Berdasarkan hasil penelitian yang dilakukan, maka dapat disimpulkan
beberapa hal sebagai berikut:

1. Peneliti telah melakukan analisis cara kerja sistem pakar menggunakan


metode Forward Chaining untuk diagnosa hama dan penyakit tanaman
padi berbasis Android.
2. Sistem pakar yang telah di analisis berbasis Android sehingga para
pengguna dapat berkonsultasi kapan pun dan dimanapun hanya
dengan membuka aplikasi yang telah di download.
3. Sistem dapat membantu pengguna dalam mendiagnosa hama dan
penyakit tanaman padi serta memberikan solusi untuk pengendaliannya
layaknya seorang pakar.

7.2 Saran
Berdasarkan hasil dari penelitian yang telah dilakukan, saran untuk
penelitian selanjutnya yaitu:

1. Untuk pengembangan aplikasi selanjutnya, diharapkan dapat


mengaktifkan menu bantuan dan menu exit, ditambahkan lebih banyak
gejala, jenis penyakit serta solusi untuk pengendaliannya
2. Untuk memperoleh hasil yang maksimal, maka program aplikasi ini
nantinya bisa dilengkapi dengan fasilitas multimedia (suara).
DAFTAR PUSTAKA

Adi Pranata, B., Hijriani, A., & Junaidi, A. (2018). Perancangan Application
Programming Interface (Api) Berbasis Web Menggunakan Gaya Arsitektur
Representational State Transfer (Rest) Untuk Pengembangan Sistem
Informasi Administrasi Pasien Klinik Perawatan Kulit. Jurnal Komputasi,
6(1), 33–42. https://doi.org/10.23960/komputasi.v6i1.1554
Aeni, K. (2018). Penerapan Metode Forward Chaining Pada Sistem Pakar Untuk
Diagnosa Hama Dan Penyakit Padi. Intensif, 2(1), 79.
https://doi.org/10.29407/intensif.v2i1.11841
Ali Firdaus, Slamet Widodo, Adi Sutrisman, Sutan Gading Fadhillah Nasution, R.
M. (2019). Pendahuluan 1.1. 5(2), 81–87.
Andriani, A. (2016). Pemrograman sistem pakar Pemrograman sistem pakar. in
mediakom (cetakan pe, p. 14) (Cetakaan P). PT BUKU SERU.
EMS, T. (2015). Pemrograman Java dari Nol. PT Elex Media Komputindo.
https://doi.org/715052063
Endra, R. Y. (2016). Belajar mudah Algoritma Pemograman Java. Bandar
Lampung. Nida Dwi Karya publishing.
https://www.researchgate.net/profile/Robby_Endra/publication/347555214_
Belajar_Mudah_Algoritma_Pemograman_Java/links/5fe1b1f845851553a0df
5b69/Belajar-Mudah-Algoritma-Pemograman-Java.pdf
Endra, R. Y., Aprilita, D. S., Informatika, P. S., Komputer, F. I., & Lampung, U.
B. (2018). E-REPORT BERBASIS WEB MENGGUNAKAN METODE
MODEL VIEW CONTROLLER UNTUK MENGETAHUI PENINGKATAN.
15–22.
Endra, R. Y., Cucus, A., Affandi, F. N., & Hermawan, D. (2019).
IMPLEMENTASI SISTEM KONTROL BERBASIS WEB PADA SMART
ROOM DENGAN MENGGUNAKAN KONSEP INTERNET OF THINGS.
Explore – Jurnal Sistem Informasi Dan Telematika (Telekomunikasi,
Multimedia & Informatika), 10(2), 98–106.
https://doi.org/http://dx.doi.org/10.36448/jsit.v10i2.1316
Gorys Keraf. (2008). Tinjauan Pustaka - Analisis. April 2016, 1–2.
Kusumadewi, S. (2003). Artificial Intelligenci(Teknik dan Aplikasinya) (Edisi
Pert).
Matheus, J. L. A. (2017). Aplikasi Sistem Pakar Identifikasi Penyakit Tanaman
Padi Dengan Metode Forward Chaining Berbasis Android. Fakultas
Matematika Dan Ilmu Pengetahuan Alam Universitas Lampung, 81.
Muhammad, C. I., & Santoso, M. B. (n.d.). Organisasi Pelayanan Sosial Rumah
Cemara Kota Bandung.
Nurajizah, S., & Saputra, M. (2018). Sistem Pakar Berbasis Android Untuk
Diagnosa Penyakit Kulit Kucing Dengan Metode Forward Chaining. None,
14(1), 7–14. https://doi.org/https://doi.org/10.33480/pilar.v14i1.81
Prof.Dr.Sugiono. (n.d.). Metode penelitian kuantitatif, kualitatif dan R&D.
Sahbana, A. (2017). Implementasi sistem pakar dalam mengidentifikasi penyakit
tanaman padi menggunakan metode.
Setiawan, B. A., & Novita, D. (2012). Sistem Pendukung Keputusan Penentuan
Haji Bagi Karyawan Pada PT. Pertamina RU III Plaju. x, 1–13.
T.Sutojo, SSi, M.Kom., Edy Mulyanto, SSi, M.Kom., D. V. S. (2011).
Kecerdasan Buatan.
Wijayanto, Y. Y. & A. (2017). Android Studio. In Android Studio :The Official
IDE for Android (Issue Android Studio and SDK Tools). PT Elex Media
Komputindo. https://doi.org/718050286
LAMPIRAN

Anda mungkin juga menyukai