Pi Trinadi
Pi Trinadi
PENULISAN ILMIAH
APLIKASI SISTEM PAKAR PENYAKIT KUCING BERBASIS
ANDROID DENGAN MENGGUNAKAN ANDROID STUDIO
i
PERNYATAAN ORIGINALITAS DAN PUBLIKASI
NPM : 57419482
Menyatakan bahwa tulisan ini adalah merupakan hasil karya saya sendiri dan dapat
dipublikasikan sepenuhnya oleh Universitas Gunadarma. Segala kutipan dalam
bentuk apapun telah mengikuti kaidah, etika yang berlaku. Mengenai isi dan tulisan
adalah merupakan tanggung jawab Penulis, bukan Universitas Gunadarma.
Demikian pernyataan ini dibuat dengan sebenarnya dan dengan penuh kesadaran.
( Trinadi Togatorop)
ii
LEMBAR PENGESAHAN
NPM : 57419482
Tanggal Sidang : 07 Februari 2023
Tanggal Lulus : 07 Februari 2023
Menyetujui
iii
ABSTRAK
(xii + 69 + Lampiran)
iv
KATA PENGANTAR
v
8. Orang terdekat saya Setiawan yang selama ini membantu saya dalam
mengerjakan penulisan ilmiah dan juga selalu mensupport saya dalam
penulisan ini hingga dapat terselesaikan tepat pada waktunya.
9. Kakak saya Rina Ria yang udah selalu mendukung serta memberikan masukan
dalam penulisan ini sehingga pengerjaan penulisan ini selesai tepat waktu.
10. Untuk teman kelas 4IA20 Universitas Gunadarma jurusan Teknik Informatika
yang secara tidak langsung telah membantu saya termotivasi di masa – masa
pembuatan dan penulisan ini.
Oleh karena itu penulis sangat menghargai kritik maupun saran yang
berguna bagi kesempurnaan penyusunan penulisan ilmiah ini akhir kata penulis
berharap semoga penulisan ilmiah ini. Akhir kata penulis berharap semoga
penulisan ini dapat bermanfaat bagi para pembaca.
(Trinadi Togatorop)
vi
DAFTAR ISI
Halaman
ABSTRAK ...................................................................................................... iv
vii
2.1.8. Feline Chlamydiosis ............................................................................... 7
2.2. Android Studio ........................................................................................ 8
2.2.1 Fitur Android Studio..............................................................................8
2.2.2 Java Development Kit (JDK)................................................................9
2.3. Sistem Pakar...........................................................................................9
2.3.1. Tujuan Sistem Pakar............................................................................10
2.3.2. Metode Forward Chaining................................................................10
2.3.3. Metode Pohon Keputusan....................................................................11
2.4. Bahasa Pemrograman Java.....................................................................11
2.4.1. Alur program pada java......................................................................11
2.5. Android....................................................................................................14
2.6. Flowchart.................................................................................................14
2.7. Struktur Navigasi.......................................................................................16
2.8. Extensible Markup Language (XML)........................................................18
BAB III PERANCANGAN DAN IMPLEMENTASI ................................. 19
viii
3. 4.7. Pembuatan Halaman Cara Menangani Penyakit ………………………53
3.4.8. Build Apliakasi.……………………………………………………….. 56
3.5. Uji coba Aplikasi ...……………………………………………………... 56
3.5.1. Black Box Testing .……….……………………………………………56
3.5.2. Uji Coba Tampilan .…………………………………………………... 59
3.5.3 Uji Perangkat…………………………………………………………...67
BAB IV PENUTUP ........................................................................................ 69
4.1 Kesimpulan ................................................................................................ 69
4.2 Saran ........................................................................................................... 69
DAFTAR PUSTAKA ..................................................................................... 70
LAMPIRAN.....................................................................................................71
ix
DAFTAR TABEL
x
DAFTAR GAMBAR
xi
Gambar 3.24 Script Java Hasil Keputusan Konsultasi……………………..45
Gambar 3.25 Xml halaman Pilihan Jenis Kucing………………………….46
Gambar 3.26 Script Java Jenis-jenis Kucing………………………………47
Gambar 3.27 Xml Halaman Jenis Kucing…………………………………48
Gambar 3.28 Script Java Kucing Anggora………………………………...49
Gambar 3.29 Xml Halaman Cara Perawatan Kucing……………………...50
Gambar 3.30 Script Java Perawatan Kucing………………………………51
Gambar 3.31 Xml Halaman Penjelasan Penyakit…………………………52
Gambar 3.32 Script Java Penjelasan Penyakit…………………………….53
Gambar 3.33 Xml Halaman Layout Menangani Penyakit………………..54
Gambar 3.34 Script Cara Mengatasi Penyakit Kucing……………………55
Gambar 3.35 Build Aplikasi………………………………………………56
Gambar 3.36 Menu Utama………………………………………………..59
Gambar 3.37 Tampilan Awal Konsultasi…………………………………60
Gambar 3.38 Tampilan Pertanyaan……………………………………….61
Gambar 3.39 Tampilan Hasil Konsultasi…………………………………62
Gambar 3.40 Tampilan Jenis Kucing……………………………………..63
Gambar 3.41 Tampilan Kucing……………………………………………65
Gambar 3.42 Tampilan Cara Perawatan Kucing…………………………..66
Gambar 3.43 Tampilan Penjelasan Penyakit Kucing………………………67
Gambar 3.44 Tampilan Cara Menangani Penyakit…………………………68
xii
DAFTAR LAMPIRAN
Halaman
Lampiran 1. Menu Utama .............................................................................71
71
BAB 1
PENDAHULUAN
sebagai media pencarian penyakit umum pada kucing berdasarkan gejala yang
dipilih untuk informasi dalam mendiagnosa jenis penyakit yang dialami kucing
sebagai penangana ini yang dirancang dalam bentuk teks.
BAB 1. PENDAHULUAN
BAB 4. PENUTUP
LANDASAN TEORI
2.1.1. Scabies
Scabies merupakan salah satu penyakit kulit yang dapat menyebabkan
kematian pada kucing. Penyakit Scabies menimbulkan rasa gatal yang teramat
sangat, gatal yang dirasakan oleh kucing dapat memicu hilangnya nafsu
makan.
5
6
2.1.2. Foliculitis
2.1.3. Kutu
Kutu, caplak atau ektoparasit akan menghisap darah pada tubuh kucing
dengan cara merusak pembuluh darah kapiler. Bagi kucing yang sensitif, rusaknya
kapiler darah dan sekresi saliva kutu (yang mengandung neurotoksin) akan
menimbulkan reaksi alergi, sehingga hewan bersangkutan akan memperlihatkan
gejala kegatalan.
Sumber : (cacang, 2017) ( Data Olahan 2021)
2.1.5. Distemper
Distemper adalah salah satu penyakit menular yang menyerang anjing.
Penyakit tersebut disebabkan oleh virus dalam genus Morbillivirus dari famili
Paramyxoviridae dan mempunyai hubungan dekat dengan virus measles dan
rinderpest.
Sumber : (Frisk et al., 1999; Mochizuki et al., 1999; Rudd et al., 2006).
2.1.6. Ringworm
Dermatofitosis (ringworm) merupakan keratinisasi berlebih yang terdapat
pada permukaan terluar kulit (epidermis) termasuk kuku dan rambut.
Dermatofitosis disebabkan oleh infeksi fungi yang termasuk dalam genus
dermatofita di antaranya Microsporum, Trichophyton, dan Epidermophyton.
Sumber : (BSAVA’s,1998; Kahn dan Line, 2007; Chaitra dan Bala, 2014).
Menurut Hohensee (2013), Android Studio memiliki banyak fitur yang bisa
diandalkan para programmer, baik pemula maupun yang sudah profesional untuk
mengembangkan aplikasi Android. Adapun fitur-fitur tersebut adalah Studio
Android studio memiliki fitur:
• Projek berbasis pada Gradle Build
• Refactory dan pembenahan bug yang cepat
• Tools baru yang bernama “Lint” dikalim dapat memonitor kecepatan,
kegunaan, serta kompetibelitas aplikasi dengan cepat.
• Mendukung Proguard And App-signing untuk keamanan.
• Memiliki GUI aplikasi android lebih mudah
• Didukung oleh Google Cloud Platfrom untuk setiap aplikasi yang
dikembangkan.
9
1. Terjemahan
Sistem pakar berfungsi untuk mencari sebuah kesimpulan dari sekumpulan data
yang terkumpul yang nantinya akan di carikan solusi/keputusan berdasarkan
aturan yang ada.
2. Diagnosis
Sistem yang berfungsi untuk menentukan penyebab terjadinya penyakit secara
kompleks berdasarkan gejala yang dapat teramati dengan diagnosis yang sesuai.
3. Perancangan desain
Dirancang dengan sedemikian rupa agar dapat mudah untuk dipahami sesuai
dengan tujuan sistem yang diingikan.
4. Perencanaan
Serangkaian rencana yang memberikan alur atau jalannya sistem.
pangkalan data telah sesuai dengan kaidah ‘if’ maka kaidah distimulasi. Proses ini
diulang hingga didapatkan hasil”.
A. Percabangan IF :
if (kondisi){
Statement1;
Statement2;
12
....
}
B. Percabangan IF ELSE :
if (kondisi){
//eksekusi jika kondisi benar
..............;
}else{
//eksekusi jika kondisi salah
..............;
}
C. Percabangan IF Bersarang :
if (kondisi1){
//eksekusi kondisi1
..........;
}else if (kondisi2){
//eksekusi kondisi2
..........;
}else if (kondisi3){
//eksekusi kondisi3
..........;
}else{
//eksekusi jika tidak ada kondisi yang benar
..........;
}
//eksekusi perintah
break; //untuk menghentikan
case statement2:
//eksekusi perintah
break; //untuk menghentikan
case statement3:
//eksekusi perintah
break; //untuk menghentikan
case statement4:
//eksekusi perintah
break; //untuk menghentikan
case statement5:
//eksekusi perintah
break; //untuk menghentikan
default;
//eksekusi perintah
break;
}
A. Perulangan FOR :
for (nilai_awal;kondisi;modifier){
pernyataan_yang_ diulang;
}
B. Perulangan WHILE :
while (kondisi){
pernyataan;
}
14
2.5. Android
Android merupakan sebuah sistem operasi perangkat mobile berbasis linux
yang mencakup sistem operasi, middleware, dan aplikasi. Yang dapat digunakan
untuk telepon seluler (mobile) seperti telephone pintar (smartphone) dan komputer
tablet (PDA). (Supardi, 2017 & Murya, 2014).
2.6. Flowchart
Menurut Suarga (2006) Flowchart adalah untaian symbol gambar (chart)
yang menunjukkan aliran (flow) dari proses terhadap data, simbol-simbol untuk
flowchart dapat diklasifikasikan menjadi simbol untuk program dan simbol untuk
sistem (peralatan hardware.).
Flowchart digunakan untuk menolong analis dan programmer untuk
memecahkan masalah kedalam segmen-segmen yang lebih kecil, sehingga dapat
menolong dalam menganalisis alternatif-alternatif dalam pengoperasian.
Berikut ialah beberapa simbol-simbol flowchart yang dibagi ke dalam tiga
bagian yaitu Flow Direction, Processing dan Input/Output :
• Struktur Non-Linear
o Struktur ini ialah struktur yang memiliki cabang dan kedudukannya
disamakan. Karena itu, pada struktur non-linear tidak terdapat
masterpage dan slavepage.
• Struktur Hybrid
o Sesuai dengan namanya Struktur hybrid ini merupakan gabungan dari
seluruh jenis struktur yang ada sehingga dapat memberikan interaksi
yang tinggi kepada pengguna.
Language, sebuah dokumen XML adalah sebuah dokumen dengan markup. Dapat
dilihat pada tabel 2.1 ialah ciri dari beberapa XML:
Pada XML android ada beberapa perintah yang berfungsi untuk mengatur
activity yang ada pada ID tersebut, berikut perintah tersebut dapat dilihat pada tabel
2.2
Tabel 2.2 Rules XML
No Koding Kegunaan
19
20
P2 Folliculitis
P3 Kutu Pada Kucing
P4 Tungau Telinga
Tabel 3.1 Data P5 Distemper penyakit
P6 Ring Worm
P7 Feline Calicivirus
P8 Feline Chlamydiosis
Tabel 3.1 Data Penyakit
diatas merupakan kode atau variabel terkait pengelompokan nomor penyakit
beserta keterangan nya agar memudah kan penulisan program sitem pakar yang di
buat.pemilihan P sebagai variabel memiliki arti penyakit.
G27 Batuk
Dapat dilihat pada Gambar 3.3 Alur jalannya program ini menggunakan
Flowchart yaitu diagram yang menggambarkan bagaimana alur dari rancangan
pembuatan aplikasi secara garis besar dari awal sampai akhir aplikasi berjalan.
Flowchart digunakan oleh penulis sebagai salah satu alat bantu dalam menerangkan
alur atau logika program agar program dapat berjalan dengan baik sesuai dengan
hasil pemikiran yang merupakan gambaran masalah dengan komputer. Sehingga
dari gambaran hasil pemikiran tersebut tidak terjadi kesalahan.
26
penyakit, jenis kucing, cara perawatan kucing, penjelasan penyakit, cara menangani
penyakit.
Pada Gambar 3.5 menampilkan tampilan utama yang terdiri dari satu image
view dan beberapa button, yang jika menekan satu buttonnya sebagai contoh button
deteksi penyakit, jika menekan tombol tersebut maka akan menampilkan ke
halaman yang di pilih yaitu halaman deteksi penyakit, dan jika menekan tombol
jenis kucing maka tampilan akan menuju pada tampilan jenis kucing.
Pada gambar 3.8 diatas merupakan tampilan hasil dari beberapa pertanyaan
yang terjawab, halaman tersebut hanya menyediakan satu button yaitu yang
berfungsi untuk Kembali ke menu utama jika pengguna menyentuhnya.
30
Pada gambar 3.9 diatas adalah tampilan yang berisi penjelasan singkat
jenis kucing dengan cara memilih satu jenis pilihan yang ingin di tuju, juga tersedia
hyperlink yang berfungsi untuk menuju penjelasan berupa video terkait jenis
kucing. Pada halaman ini tersedia satu button yang berfungsi untuk Kembali ke
menu utama jika pengguna menyentuhnya.
3.4. Implementasi
Pada implementasi pembuatan Aplikasi Sitem pakar kali ini Penulis telah
menggunakan software (perangkat lunak) Android Studio dan Bahasa Java.
Aplikasi ini dibuat menggunakan api level 16 yang dapat dijalankan pada Android
4.1 (jelly bean) keatas.
Pada Gambar 3.16 diatas merupakan xml pada halaman utama yang
menyediakan imageview yang memiliki id cat_care yang berfungsi menampilan
logo aplikasi ini dan juga menyediakan beberapa button yang berlabel (Deteksi
Penyakit Kucing, Jenis-Jenis Kucing, Cara Perawatan Kucing, Penjelasan Penyakit,
37
Cara Mengatasi Penyakit), dan juga menyediakan liniear layout yang berfungsi
untuk meyediakan wadah pada tampilan utama.
Gambar 3.18 script di bawah ini adalah lanjutan dari script 3.17
38
Pada gambar 3.18 Script diatas masih berkaitan dengan gambar 3.19, pada
script ini semua variable akan di berikan tujuan ke activity yang telah di tentukan
sebagai contoh button berisi intent menuju class home, button2 berisi intent menuju
class mainactivity3, dan button7 berisi intent menuju class perawatan.
Pada gambar 3.19 diatas merupakan gambar dari tampilan xml awal
konsultasi yang terdapat scrollview, imageview dan button yang memiliki
variable tertentu.
40
Pada gambar 3.20 diatas merupakan gambar dari script java pada halaman
awal konsultasi yang terdapat pemanggilan dari variable yang telah di
sediakan dan akan memanggilnya menggunakna public void lalu memanggil
variable image button untuk diimplementasikan kepada halaman yang di tuju.
Pada gambar 3.21 merupakan xml yang berisi satu pertanyaan terkait gejala
penyakit kucing. Tampilan ini terdiri dari dua button yang label YA dan
TIDAK. Pada aplikasi sistem pakar ini terdapat dua puluh satu(21) halaman
serupa namum memiliki pertanyaan yang berbeda.
42
Pada gambar 3.22 dibawah merupakan java dari halaman pertanyaan konsultasi.
Pada tampilan Pertanyaan gejala pada gambar 3.22 ini berfungsi untuk
menentukan apakah kucing berpotensi mengalami penyakit tersebut, jika
gejala-gejala telah terpenuhi maka akan diyatakan jika kucing mengalami
penyakit tersebut. Untuk menentukan apakah pilihan pengguna IYA atau
TIDAK penulis menggunakan for untuk mencari nilai awal.
Dapat dilihat pada gambar 3.23 Diatas merupakan xml halaman hasil
Konsultasi. Kode Xml ini berfungsi untuk mengumpulkan beberapa gejala
yang terkait pada penyakit yang tersedia dengan cara memberikan aturan pada
setiap penyakit, beberapa gejala yang tertera pada rules-rules yang tersedia,
pada halaman ini terdapat textview yang berfungsi untuk memanggil hasil dari
konsultasi dan memiliki image button yang berfungsi untuk Kembali ke menu
utama.
Pada gambar 2.24 di bawah merupakan lanjutan dari script pada gambar 3.23
yang berfungsi untuk memberikan keputusan berdasarkan nilai yang di
dapatkan dari beberapa pertanyaan yang di ajukan.
44
Gambar 3.24 script diatas merupakan rules atau aturan yang sudah di
sediakan untuk menentukan keputusan yang telah di hasilkan berdasarkan
penyakit dan gejala penyakit yang terkait (Scabies, Folliculitis, Kutu, Tungau
Telinga, Distemper, Ringworm, Feline Calocivirus, Feline Chlamydiosis).
Dengan menggunakan percabangan if maka pengambilan keputusan akan
lebih akurat dan sesuai dengan aturan.
Pada gambar 3.25 diatas adalah kode xml jenis-jenis kucing yang berfungsi
untuk memberikan penjelasan singkat terkait jenis kucing yang tersedia. Pada
layout ini tersedia lima button yang berfungsi untuk membagi jenis-jenis kucing,
imageview dan imagebutton yang berfungsi untuk mengembalikan tampilan ke
menu utama
46
Pada Gambar 3.26 di bawah merupakan script setelah user memilih button2.
Seperti pada gambar 3.26 terdapat sama seperti gambar 3.25 script ini
bertujuan untuk memasuki halaman yang ingin di tuju dengan menggunakan
beberapa button untuk memanggil class yang telah di tentukan.
2. Halaman Kucing
Pada gambar 3.27 merupakan tampilan kode xml kucing yang dipilih dari
menu pilihan jenis kucing.
47
Pada gambar 3.27 merupakan halaman yaitu yang berisi penjelasan singkat
terkait jenis kucing tertentu, dengan terdapatnya image view, hyperlink yang
berfungsi untuk memberikan informasi melalui video youtube dan imagebutton
yang berfungsi untuk kembali ke menu utama. Terdapat lima (5) layout yang serupa
namun pada setiap layoutnya memiliki perbedaan jenis kucing (Anggora, Persia,
Scottish Fold, Calico, Sphynx) dan berbeda penjelasanya.
Dibawah ini terdapat gambar 3.30 salah satu script dari lima class jenis
kucing yang terdapat pada aplikasi ini.
48
Pada gambar 3.28 di atas merupakan script yang berisi penjelasan singkat
kepada kucing yang terkait, pada script ini terdapat dua fungsi yang bertujuan untuk
Kembali ke menu utama dan hyperlink yang menuju streaming video youtube
kepada jenis kucing yang terkait.
Pada gambar 3.29 diatas yaitu halaman panduan cara perawatan kucing
beserta gambar dan icon sebegai contoh dari alat yang di butuhkan. pembuatan
halaman ini terdiri dari tag imageview dan juga imagebutton yang berfungsi untuk
mengembalikan kepada menu utama.
50
Pada gambar 3.30 di bawah terkait hanya jika pengguna telah memilih
tombol cara perawatan kucing.
Pada gambar 3.30 script ini hanya berisi penjelasan cara perawatan kucing,
dengan menggunakan image button untuk tombol Kembali ke menu utama.
Script pada gambar 3.32 adalah script yang memiliki kegunaan hanya untuk
menjelaskan secara singkat apa penyakit tersebut. Untuk script ini menggunakan
intent untuk menuju class yang di tentukan dan memiliki dua pilihan yaitu menuju
ke halaman penjelasan berikutnya dan kembali ke menu utama.
Pada gambar 3.33 merupakan halaman yang berisi penjelasan singkat cara
mengatasi beberapa penyakit kucing yan terkait (Scabies, Folliculitis, Kutu, Tungau
Telinga, Distemper, Ringworm, Feline Calocivirus, dan Feline Chlamydiosis).
pembuatan halaman ini terdiri dari tag imageview dan juga button yang berfungsi
untuk memasuki halaman penjelasan penanganan penyakit. Pada layout ini terdapat
dua (2) layout yang sama namun memiliki perbedaan dalam penjelasan cara
mengatasi penyakit.
Gambar 3.34 script di bawah ini merupakan script yang terbawah dan akan
terpanggil jika pengguna telah memilih button9.
54
Pada gambar 3.34 script merupakan penjelasan singkat terkait cara mengatasi
penyakit kucing. Pada script ini menyediakan dua pilihan tombol yaitu ingin
kembali ke menu utama dan menuju ke halaman penjelasan cara menangani
penyakit selanjutnya. Script ini menggunakan intent untuk menuju class yang di
tentukan.
Pada gambar 3.35 adalah build dari aplikasi Penyakit umum kucing (Cat
Care) yang telah dibuat.
Untuk membuat build seperti Gambar 3.34 aplikasi diatas pastikan pengguna
memiliki activity yang di perlukan dan jika sudah pada taskbar terdapat pilihan
build, pada pilihan build teresebut pengguna dapat memilih build apk dengan begitu
aplikasi yang sudah dijadikan apk sudah dapat diinstall pada smartphone Android
untuk digunakan.
Pada Tabel 3.4 dibawah ini adalah hasil pengujian dari blackbox testing
menggunakan perangkat penguji:
Menampilkan
Button dapat melakukan
Halaman
Button TIDAK navigasin ke halaman Berhasil
Pertanyaan
pertanyaan selanjutnya
berikutnya
Menampilkan Menampilkan halaman
Halaman hasil hasil konsltasi dam
Hasil Konsultasi konsultasi dari dapat menunjukan Berhasil
beberapa keputusan yang telah di
pertanyaan tentukan sesuai aturan
Menampilkan Dapat menampilkan
Tampilan
informasi singkat halaman informasi
Penjelasan Berhasil
terkait perawatan singkat perawatan
Perawatan Kucing
kucing kucing
Menampilkan Button dapat melakukan
Button Kembali ke
halaman menu navigasi Kembali ke Berhasil
menu utama
utama Menu Utama
Hasil Yang
Deskripsi Hasil Uji Coba Status
Diharapkan
Menampilkan
Tampilan Dapat menampilkan
informasi singkat
Penjelasan halaman informasi Berhasil
terkait Penyakit
Penjelasan Penyakit singkat penyakit kucing
kucing
Menampilkan
Button Kembali ke Button dapat melakukan
halaman menu Berhasil
menu utama navigasi ke Menu Utama
utama
Menampilkan
Tampilan Dapat menampilkan
informasi singkat
Penjelasan halaman informasi
terkait cara Berhasil
Penjelasan cara singkat cara mengatasi
mengatasi Penyakit
mengatasi Penyakit penyakit kucing
kucing
Menampilkan
Button Kembali ke Button dapat melakukan
halaman menu Berhasil
menu utama navigasi ke Menu Utama
utama
Dapat dilihat pada tabel 3.4 hasil pengujian blackbox testing tidak mengalami
kegagalan pengujian.
ada button cara mengatasi penyakit yaitu berfungsi untuk menuju kepada
halaman penjelasan menanggani penyakit yang tersedia pada aplikasi.
6. Tampilan Kucing
Gambar 3.41 merupakan tampilan kucing yang terpanggil jika
pengguna memilih salah satu dari tombol jenis kucing yang tersedia.
63
• Berhasil menampilkan
• Layar 6,6" (1080 x 2400)
tampilan dengan peforma
• Android 12 UI 3.0
Realme 9 yang baik
1 • RAM8GB
Pro • tidak terdapat error
• ROM6128GB
• layout muncul sesuai
• Prosesor Snapdeagon 695
rancangan
• Layar 6,4" (1080 x 2340 • Berhasil menampilkan
pixels) tampilan dengan peforma
Samsung
• Android 9 yang baik
2 Galaxy
• RAM 4GB • tidak terdapat error
A50s
• ROM 64GB • layout muncul sesuai
• Prosesor Exynos 9611 rancangan
• Layar 6,67" (1080 x 2400)
• Berhasil menampilkan
• Android 11
tampilan dengan peforma
Xiaomi • RAM 6GB
yang baik
3 Poco X3 • ROM 64GB
• tidak terdapat error
NFC • prosesor Snapdeagon
• layout muncul sesuai
732G rancangan
• Layar 6,5" (720 x 1600
• Berhasil menampilkan
pixel)
tampilan dengan peforma
Samung • Android 12
yang baik
4 Galaxy • RAM 4 GB
• tidak terdapat error
A02s • ROM 64GB
• layout muncul sesuai
• Prosesor Snapdragon 450
rancangan
• Layar 6,4” (2400 x 1080 • Berhasil menampilkan
FHD+) tampilan dengan peforma
OPPO • Android 12 yang baik
35
Reno6 5G • RAM 8GB • tidak terdapat error
• ROM 128GB • layout muncul sesuai
• Prosesor Snapdragon 720 rancangan
4.1 Kesimpulan
Berdasarkan hasil uji coba dan pembahasan sebelumnya, maka dapat diambil
beberapa kesimpulan, bahwa aplikasi yang dirancang peneliti telah berhasil
dirancang dan dapat digunakan untuk mendiagnosis penyakit umum pada kucing
memberikan arahan seperti pertolongan pertama pada kucing yang sakit, cara
penanganan, cara merawat serta informasi lainnya terkait kucing serta memberikan
diagnosa kepada user. Dan mendapati 5 perangkat dari versi android terkecil 8.1
sampai versi tertinggi 12 aplikasi ini tidak memiliki masalah apapun dikarenakan
telah dilakukannya uji coba black box yang menyatakan semua fitur aplikasi ini
telah berfungsi dengan baik Adapun hasil build-nya yaitu berupa file .apk dengan
ukuran file 13,4 MB.
4.2 Saran
Berdasarkan hasil rancangan aplikasi ini, maka saya sadari masih terdapat
kekurangan dan perlunya pengembangan lebih luas. Maka dari itu, kedepannya
aplikasi ini dapat memperluas informasi dan penyakit pada kucing. Tujuannya agar
pengguna dapat mendapatkan informasi yang lebih luas dari berbagai macam
penyakit yang dapat dialami oleh kucing serta mengembangkan fitur-fitur pada
aplikasi ini menjadi lebih menarik dan informatif.
69
DAFTAR PUSTAKA
Handayani, V. Rose, P.N. Putri. (2019). Sistem Informasi Penjualan Gula Merah
Serbuk Berbasis Web Pada Home Industri Gula Merah Serbuk Dalban Permana.
Evolusi: Jurnal Sains dan Manajemen, 7(2).
Supardi, Y. 2017. Koleksi Program Tugas Akhir dan Skripsi dengan Android.
Jakarta : Elex Media Komputindo
70
LAMPIRAN
JAVA
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button, 2
button2,
button7,
button8,
button9;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
71
72
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openSistemPakar();
}
});
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openJenisKucing();
}
});
button7 = (Button) findViewById(R.id.button7);
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openMainActivityPerawatan();
}
});
}
});
}
});
}
public void openSistemPakar(){
Intent intent = new Intent(this, Home.class);
startActivity(intent);
73
}
public void openJenisKucing(){
Intent intent = new Intent(this, MainActivity3.class);
startActivity(intent);
}
public void openMainActivityPerawatan(){
Intent intent = new Intent(this, Perawatan.class);
startActivity(intent);
}
public void openCaraMenanganiPenyakit(){
Intent intent = new Intent(this, Caramenanganipenyakit.class);
startActivity(intent);
XML
<Imageview
74
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="297dp"
app:srcCompat="@drawable/meow_care" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="Deteksi Penyakit" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="Jenis-Jenis Kucing" />
<Button
android:id="@+id/button7"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="Cara Perawatan Kucing" />
<Button
android:id="@+id/button8"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="Penjelasan Penyakit" />
<Button
android:id="@+id/button9"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="Cara Menangani Penyakit" />
</LinearLayout>
</ScrollView>
75
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
public class Home extends AppCompatActivity {
private ImageButton Imagebutton2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
Imagebutton2 = (ImageButton) findViewById(R.id.imageButton2);
Imagebutton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openMainActivity();
}
});
}
76
Xml
android:layout_height="77dp"
android:layout_below="@id/logo"
android:layout_marginStart="11dp"
android:layout_marginTop="11dp"
android:layout_marginEnd="11dp"
android:layout_marginBottom="11dp"
android:background="@drawable/img"
android:onClick="Start"
android:text="Mulai Konsultasi" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@id/btn_yes"
android:layout_marginStart="11dp"
android:layout_marginTop="11dp"
android:layout_marginEnd="11dp"
android:layout_marginBottom="11dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
</LinearLayout>
</ScrollView>
78
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Question1 extends AppCompatActivity {
private boolean []rules = new boolean[19];
Button btn_yes;
Button btn_no;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.question1);
for(int i=0;i<18;i++){
rules[i]=false;
}
btn_yes = (Button) findViewById(R.id.btn_yes);
btn_no = (Button) findViewById(R.id.btn_no);
}
public void Ya(View view) {
79
for(int i=0;i<18;i++){
rules[i]=false;
}
rules[1]=true;
Intent intent = new Intent(Question1.this, Question1b.class);
intent.putExtra("rules",rules);
startActivity(intent);
}
public void Tidak(View view) {
for(int i=0;i<18;i++){
rules[i]=false;
}
rules[1]=false;
Intent intent = new Intent(Question1.this, Question2.class);
intent.putExtra("rules",rules);
startActivity(intent);
}
Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="@drawable/bg"
tools:context=".Question1">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="600dp"
android:id="@+id/rl_profile"
android:orientation="vertical"
android:layout_marginVertical="100dp"
android:layout_marginHorizontal="10dp"/>
<RelativeLayout
android:id="@+id/bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginHorizontal="15dp"
android:background="@drawable/img_1"
android:orientation="vertical"
android:padding="20dp">
80
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Konsultasi"
android:textColor="#FFF"
android:textSize="24sp" />
<TextView
android:id="@+id/pertanyaan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:layout_centerHorizontal="true"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:text="Apakah Kucing Kalian Mengalami Gatal-gatal ?"
android:textColor="#FFF"
android:textSize="16sp" />
<Button
android:id="@+id/btn_yes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/pertanyaan"
android:layout_margin="10dp"
android:background="@drawable/img_3"
android:onClick="Ya"
android:text="Ya" />
<Button
android:id="@+id/btn_no"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/btn_yes"
android:layout_margin="10dp"
android:background="@drawable/img_3"
android:onClick="Tidak"
android:text="Tidak" />S
</RelativeLayout>
</RelativeLayout>
81
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
82
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class Result extends AppCompatActivity {
private boolean []rules = new boolean[19];
Button btn_home;
ImageButton Imagebutton2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
Bundle extras = getIntent().getExtras();
rules = extras.getBooleanArray("rules");
}
});
TextView hasil;
if(rules[16]){
Shasil="Feline Calicivirus";
}
if(rules[17]){
Shasil="Feline Chlamydiosis";
}
if(rules[18]){
Shasil="Kucing Anda Terkena Penyakit";
}
hasil = (TextView)findViewById(R.id.hasil);
hasil.setText(Shasil);
}
public void Back(View view) {
Intent activityA = new Intent(getApplicationContext(), Question1.class);
activityA.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(activityA);
}
public void openMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="@drawable/bg"
tools:context=".Question1">
<RelativeLayout
android:id="@+id/rl_profile"
android:layout_width="380dp"
android:layout_height="626dp"
android:layout_marginHorizontal="10dp"
android:layout_marginVertical="100dp"
android:orientation="vertical" />
84
<RelativeLayout
android:id="@+id/bg"
android:layout_width="wrap_content"
android:layout_height="265dp"
android:layout_centerInParent="true"
android:layout_marginHorizontal="15dp"
android:background="@drawable/img_1"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Kucing anda Terkena Penyakit"
android:textColor="#FFF"
android:textSize="22sp" />
<TextView
android:id="@+id/hasil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/planet"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:text="Hasil"
android:textColor="#FFF"
android:textSize="20sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/planet"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_below="@id/title"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="@drawable/img_2" />
</RelativeLayout>
85
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="376dp"
android:layout_height="100dp"
android:layout_alignBottom="@id/rl_profile"
android:layout_marginStart="11dp"
android:layout_marginEnd="11dp"
android:layout_marginBottom="11dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
</RelativeLayout>
Java
86
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
public class MainActivity3 extends AppCompatActivity {
private ImageButton Imagebutton2;
Button button8;
Button button19;
Button button11;
Button button12;
Button button13;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
Imagebutton2 = (ImageButton) findViewById(R.id.imageButton2);
Imagebutton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openMainActivity();
}
});
button8 = (Button) findViewById(R.id.button8);
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openCatangora();
}
});
button19 = (Button) findViewById(R.id.button19);
button19.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openCatpersia();
}
});
openCatbritish();
}
});
}
});
button13 = (Button) findViewById(R.id.button13);
button13.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openCatsphynx();
}
});
}
public void openMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
public void openCatangora(){
Intent intent = new Intent(this, catangora.class);
startActivity(intent);
}
public void openCatpersia(){
Intent intent = new Intent(this, catpersia3.class);
startActivity(intent);
}
public void openCatbritish(){
Intent intent = new Intent(this, catbritish.class);
startActivity(intent);
}
public void openCatsphynx(){
Intent intent = new Intent(this, catsphynx.class);
startActivity(intent);
88
}
public void openCatcalico(){
Intent intent = new Intent(this, catcalico.class);
startActivity(intent);
}
}
Xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity3">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/jenis"/>
<Button
android:id="@+id/button8"
android:layout_width="match_parent"
android:layout_height="100dp"
android:text="Anggora" />
<Button
android:id="@+id/button19"
android:layout_width="match_parent"
android:layout_height="92dp"
android:text="Persia" />
<Button
android:id="@+id/button11"
android:layout_width="match_parent"
android:layout_height="92dp"
android:text="Scottish Fold" />
<Button
android:id="@+id/button12"
android:layout_width="match_parent"
89
android:layout_height="94dp"
android:text="Calico" />
<Button
android:id="@+id/button13"
android:layout_width="match_parent"
android:layout_height="98dp"
android:text="Sphynx" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="match_parent"
android:layout_height="97dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
</LinearLayout>
</ScrollView>
90
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catcalico);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
});
}
public void openMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
}
Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".catcalico"
android:background="@drawable/calico">
<TextView
android:id="@+id/Calico"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="141dp"
android:layout_marginRight="141dp"
android:layout_marginBottom="258dp"
android:text="@string/Calico"
android:textColor="@color/white"
android:textAppearance="@style/TextAppearance.AppCompat.Headline"
92
android:textSize="21dp">
</TextView>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="271dp"
android:layout_height="108dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="49dp"
android:layout_marginRight="49dp"
android:layout_marginBottom="43dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
</RelativeLayout>
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
public class Perawatan extends AppCompatActivity {
private ImageButton Imagebutton2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_perawatan);
Imagebutton2 = (ImageButton) findViewById(R.id.imageButton2);
Imagebutton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openMainActivity();
}
});
}
public void openMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
}
Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Perawatan"
android:background="@drawable/bgperawatan">
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="271dp"
android:layout_height="108dp"
android:layout_alignParentEnd="true"
94
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="51dp"
android:layout_marginRight="51dp"
android:layout_marginBottom="61dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
</RelativeLayout>
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
public class PenjelasanPenyakit extends AppCompatActivity {
95
Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
tools:context=".PenjelasanPenyakit"
android:background="@drawable/penjelaspenyakit">
<ImageButton
android:id="@+id/imageButton2"
96
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
<Button
android:id="@+id/Button3"
android:layout_width="176dp"
android:layout_height="59dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="96dp"
android:layout_marginRight="96dp"
android:layout_marginBottom="127dp"
android:text="Next Page" />
</RelativeLayout>
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
}
});
}
}
Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".PenjelasanPenyakit2"
android:background="@drawable/penjelasann">
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
</RelativeLayout>
98
Java
package Tri.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
Imagebutton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openMainActivity();
}
});
Button3 = (Button) findViewById(R.id.Button3);
Button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openmenangani();
}
});
}
public void openMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
public void openmenangani(){
Intent intent = new Intent(this, Mengatasi2.class);
startActivity(intent);
Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
tools:context=".Caramenanganipenyakit"
android:background="@drawable/tangani">
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="match_parent"
android:layout_height="88dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="-1dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
100
<Button
android:id="@+id/Button3"
android:layout_width="231dp"
android:layout_height="37dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="69dp"
android:layout_marginRight="69dp"
android:layout_marginBottom="84dp"
android:text="Next Page" />
</RelativeLayout>
Java
package nigel1.com;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
}
});
Xml
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
app:srcCompat="@drawable/ic_baseline_pets_24" />
</RelativeLayout>