Top Banner
TUGAS AKHIR – KI141502 RANCANG BANGUN APLIKASI UJI KEAMANAN MAKANAN BERBASIS ANDROID AHMAD FAUZI AL WAHID NRP 5111100057 Dosen Pembimbing Daniel Oranova Siahaan, S.Kom, M.Sc, PD.Eng Abdul Munif, S.Kom, M.Sc JURUSAN TEKNIK INFORMATIKA Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya 2015
105

Aplikasi Uji Keamanan Berbasis Android

Apr 10, 2016

Download

Documents

Ahmad Fauzi

Aplikasi Uji Keamanan Berbasis Android
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Aplikasi Uji Keamanan Berbasis Android

TUGAS AKHIR – KI141502

RANCANG BANGUN APLIKASI UJI KEAMANANMAKANAN BERBASIS ANDROID

AHMAD FAUZI AL WAHIDNRP 5111100057

Dosen PembimbingDaniel Oranova Siahaan, S.Kom, M.Sc, PD.EngAbdul Munif, S.Kom, M.Sc

JURUSAN TEKNIK INFORMATIKAFakultas Teknologi InformasiInstitut Teknologi Sepuluh NopemberSurabaya 2015

Page 2: Aplikasi Uji Keamanan Berbasis Android
Page 3: Aplikasi Uji Keamanan Berbasis Android

i

2

TUGAS AKHIR – KI141502

RANCANG BANGUN APLIKASI UJI KEAMANANMAKANAN BERBASIS ANDROID

AHMAD FAUZI AL WAHIDNRP 5111100057

Dosen PembimbingDaniel Oranova Siahaan, S.Kom, M.Sc, PD.EngAbdul Munif, S.Kom, M.Sc

JURUSAN TEKNIK INFORMATIKAFakultas Teknologi InformasiInstitut Teknologi Sepuluh NopemberSurabaya 2015

Page 4: Aplikasi Uji Keamanan Berbasis Android

ii

[Halaman ini sengaja dikosongkan]

Page 5: Aplikasi Uji Keamanan Berbasis Android

iii

TUGAS AKHIR – KI141502

DESIGN AND CONSTRUCTION ANDROID BASEDAPPLICATION OF FOOD SECURITY

AHMAD FAUZI AL WAHIDNRP 5111100057

Dosen PembimbingDaniel Oranova Siahaan, S.Kom, M.Sc, PD.EngAbdul Munif, S.Kom, M.Sc

JURUSAN TEKNIK INFORMATIKAFakultas Teknologi InformasiInstitut Teknologi Sepuluh NopemberSurabaya 2015

Page 6: Aplikasi Uji Keamanan Berbasis Android

iv

[Halaman ini sengaja dikosongkan]

Page 7: Aplikasi Uji Keamanan Berbasis Android

v

LEMBAR PENGESAHAN

RANCANG BANGUNAPLIKASI UJI KEAMANANMAKANAN BERBASIS ANDROID

TUGASAKHIR

Diajukan Guna Memenuhi Salah Satu SyaratMemperoleh Gelar Sarjana Komputer

padaRumpun Mata Kuliah Manajemen InformasiProgram Studi S-1 Jurusan Teknik Informatika

Fakultas Teknologi InformasiInstitut Teknologi Sepuluh Nopember

Oleh:AHMAD FAUZI ALWAHID

NRP: 5111 100 057

Disetujui oleh Dosen Pembimbing Tugas Akhir:

Daniel Oranova S., S.Kom., M.Sc., P.D.Eng.NIP: 1974112320060411001.

................................(pembimbing 1)

Abdul Munif, S.Kom., M.Sc.NIP: 5100201301005

................................(pembimbing 2)

SURABAYADESEMBER 2015

Page 8: Aplikasi Uji Keamanan Berbasis Android

vi

[Halaman ini sengaja dikosongkan]

Page 9: Aplikasi Uji Keamanan Berbasis Android

vii

RANCANG BANGUNAPLIKASI UJI KEAMANANMAKANAN BERBASIS ANDROID

Nama Mahasiswa : AHMAD FAUZI ALWAHIDNRP : 5111100057Jurusan : Teknik Informatika FTIF-ITSDosen Pembimbing 1 : Daniel Oranova S., S.Kom.,

M.Sc.,P.D.Eng.Dosen Pembimbing 2 : Abdul Munif, S.Kom., M.Sc

Abstrak

Makanan merupakan kebutuhan pokok bagi manusia.Berbagai macam makanan dapat dijumpai di pasaran setiap hari.Namun, saat ini di pasaran masih banyak terdapat bahan-bahantambahan makanan berbahaya pada sejumlah produk pangan.Karena banyak pelaku bisnis makanan yang melakukan segalacara untuk menghasilkan makanan yang menarik dan tahan lamayang disebabkan tingginya daya saing dalam berbisnis makanan.Pelaku bisnis tersebut menambahkan bahan-bahan tambahanmakanan berbahaya pada sejumlah produk pangan. Padahalbahan-bahan tersebut mengandung risiko bahaya yangtersembunyi sehingga pelaku bisnis tersebut tidakmengetahuinya.

Untuk mengetahui kandungan zat berbahaya pada makanan,serangkaian tes uji coba dilakukan. Salah satunya denganmenggunakan Food Security Test Kit. Food Security Test Kitadalah seperangkat alat untuk menentukan kadar sejumlah zatkimia berbahaya yang terkandung dalam makanan. Padaseperangkat alat ini terdapat reagen yang dapat memberikanperubahan warna pada sampel uji. Kemudian perubahan warnatersebut akan dibandingkan dengan warna standar yangmenentukan kadar dari zat kimia yang terkandung dari sampeltersebut. Proses semacam ini dilakukan secara manual yaitu

Page 10: Aplikasi Uji Keamanan Berbasis Android

viii

hanya dengan melihat dan membandingkan warna hasil reaksisampel dengan warna standar.

Proses pengujian dengan cara semacam ini dapatmenimbulkan permasalahan dimana kondisi orang yangmelakukan yang melakukan uji coba tidak optimal. Terjadilahkesalahan dalam membandingkan warna akibat human error.Maka dari itu dibutuhkan sebuah alat bantu atau sistem yangdapat mendukung proses pengujian makanan.

Pada tugas akhir ini akan dibangun sebuah aplikasi yangmembantu uji keamanan makanan yang mendukung prosedurFood Security Test Kit. Aplikasi ini dibangun berbasis Androiddan diimplementasikan pada perangkat bergerak. Aplikasi inidapat mendeteksi kadar zat pada sampel, mencatatnya ke dalambasis data, dan kemudian menampilkannya pada halamanutama.

Selain itu aplikasi ini membutuhkan sistem yang membantupengujian untuk mendapatkan hasil yang optimal. Sistem initerdiri kotak hitam berbahan akrilik untuk tempat sampel yangakan diuji, lampu untuk memberikan cahaya dari dalam, botolplastik putih untuk meratakan pencahayaan dari lampu. Sistemini dibangun dengan tujuan untuk memberikan variabel cahayayang tetap.

Kata kunci: Aplikasi Android, Food Security Test Kit, UjiKeamanan Makanan

Page 11: Aplikasi Uji Keamanan Berbasis Android

ix

DESIGNAND CONSTRUCTIONANDROID BASEDAPPLICATION OF FOOD SECURITY

Nama Mahasiswa : AHMAD FAUZI ALWAHIDNRP : 5111100057Jurusan : Teknik Informatika FTIF-ITSDosen Pembimbing 1 : Daniel Oranova S., S.Kom.,

M.Sc.,P.D.Eng.Dosen Pembimbing 2 : Abdul Munif, S.Kom., M.Sc

Abstract

Food is basic needs for human.. Various kinds of food canbe found in market every day. However, today’s market are stillmany dangerous food additive in some food products. Becausemany person in food business are doing everything they can toproduce food that is attractive and durable due to the highcompetitiveness in the food businesses. That person in foodbusiness add dangerous food additive in some food products.Though these food additive contain a hidden dangers that otherpeople do not know.

To find out the content of dangerous substances in foods, aseries of tests performed trials. One of them using Food SecurityTest Kit. Food Security Test Kit is a set of tools that detect thelevels of a dangerous substance which contained in food. In thesetools, there is a set of reagents that can provide color changes intest sample. Then the color change will be compared with thestandard color that determines levels of substances from sample.This kind of process is done manually, simply by looking andcomparing the color from sample with standard color.

The testing process like this way can lead to problems wherethe condition of the person who doing the testing is not optimal.An error can happen in comparing the color due to human error.Therefore we need a tool or system that can support the process

Page 12: Aplikasi Uji Keamanan Berbasis Android

x

of food safety testing.In this final project will be built an application that helps

food safety testing procedures which support the Food SecurityTest Kit. This application is built based on Android andimplemented on mobile devices. This application can detectlevels of a substance in a sample, store it to the database, anddisplay it on the home page.

Moreover these applications require a system that cansupport food testing to obtain optimal results. The systemconsists a black box made of acrylic for sample container, a lampto provide light from within, a white plastic bottles to spread thelighting of the lamp. This system is built with purpose to provideconsistency of the light.

Keywords: Android Application, Food Security Test Kit, FoodSafety Test

Page 13: Aplikasi Uji Keamanan Berbasis Android

xi

DAFTAR ISI

BAB I PENDAHULUAN.............................................................11.1 Latar Belakang............................................................... 11.2 Rumusan Masalah.......................................................... 21.3 Batasan Masalah.............................................................31.4 Tujuan.............................................................................31.5 Manfaat...........................................................................31.6 Metodologi..................................................................... 31.7 Sistematika Penulisan Laporan Tugas Akhir..................5

BAB II TINJAUAN PUSTAKA...................................................72.1 Food Safety Test Kit........................................................72 2.1.5 Mercury................................................................... 82.2 Android...........................................................................82.3 Java.................................................................................92.4 Android SDK..................................................................92.5 Kakas Kerja Android Studio.......................................... 92.6 MySQL...........................................................................92.7 JSON............................................................................ 10

BAB III ANALISIS DAN PERANCANGAN SISTEM............ 113.1 Analisis Perangkat Lunak............................................. 113.2 Perancangan Perangkat Lunak..................................... 21

BAB IV IMPLEMENTASI.........................................................394.1 Implementasi Antarmuka............................................. 394.2 Implementasi Fitur....................................................... 41

BAB V PENGUJIAN DAN EVALUASI....................................525.1 Lingkungan Pelaksanaan Pengujian.............................525.2 Skenario Pengujian.......................................................525.3 Evaluasi Pengujian....................................................... 52

BAB VI KESIMPULAN DAN SARAN.................................... 536.1 Kesimpulan...................................................................536.2 Saran.............................................................................53

Page 14: Aplikasi Uji Keamanan Berbasis Android

xii

3[Halaman ini sengaja dikosongkan]

Page 15: Aplikasi Uji Keamanan Berbasis Android

xiii

DAFTAR GAMBAR4

Gambar 3.1 Desain Arsitektur Sistem.........................................13Gambar 3.2 Diagram Kasus Penggunaan................................... 14Gambar 3.3 Diagram Aktifitas Mendapatkan Hasil UjiKeamanan Makanan....................................................................16Gambar 3.4 Diagram Aktifitas Mencatat Data Hasil UjiKeamanan Makanan....................................................................18Gambar 3.5 Diagram Aktifitas Menampilkan Data Hasil UjiKeamanan Makanan....................................................................20Gambar 3.6 Diagram Kelas Mendapatkan dan Mencatat Hasil UjiKeamanan Makanan....................................................................24Gambar 3.7 Diagram Kelas Menampilkan Data Hasil UjiKeamanan Makanan....................................................................25Gambar 3.8 Diagram Sekuensial Mendapatkan Hasil UjiKeamanan Makanan....................................................................27Gambar 3.9 Diagram Sekuensial Mencatat Data Hasil UjiKeamanan Makanan....................................................................28Gambar 3.10 Diagram Sekuensial Mencatat Data Hasil UjiKeamanan Makanan....................................................................29Gambar 3.11 Diagram Alir Mendapatkan Hasil Uji KeamananMakanan......................................................................................32Gambar 3.12 Diagram Alir Mencatat Data Hasil Uji KeamananMakanan......................................................................................33Gambar 3.13 Diagram Alir Menampilkan Data Hasil UjiKeamanan Makanan....................................................................34Gambar 3.14 Conceptual Data Model Sistem............................ 35Gambar 4.1 Antarmuka Halaman Uji Makanan......................... 40Gambar 4.2 Antarmuka Halaman Tambah Uji........................... 40

5

Page 16: Aplikasi Uji Keamanan Berbasis Android

xiv

6[Halaman ini sengaja dikosongkan]

Page 17: Aplikasi Uji Keamanan Berbasis Android

xv

DAFTAR TABEL7

Tabel 3.1 Keterangan Kasus Kode Penggunaan......................... 14Tabel 3.2 Spesifikasi Kasus Penggunaan Mendapatkan Hasil UjiKeamanan Makanan....................................................................15Tabel 3.3 Spesifikasi Kasus Penggunaan Mencatat Data Hasil UjiKeamanan Makanan....................................................................16Tabel 3.4 Spesifikasi Kasus Penggunaan Mencatat Data Hasil UjiKeamanan Makanan....................................................................18Tabel 3.5 Daftar Kebutuhan Fungsional Sistem......................... 21Tabel 3.6 Deskripsi Perancangan Antarmuka Aplikasi.............. 36

Page 18: Aplikasi Uji Keamanan Berbasis Android

xvi

[Halaman ini sengaja dikosongkan]

Page 19: Aplikasi Uji Keamanan Berbasis Android

xvii

DAFTAR KODE SUMBER

Kode Sumber 4.1 Baris Kode Fitur Mendapatkan Hasil UjiKeamanan Makanan pada Kelas NewFoodTestActivity.............44Kode Sumber 4.2 Baris Kode Fitur Mendapatkan Hasil UjiKeamanan Makanan pada Kelas ColorBars................................45Kode Sumber 4.3 Baris Kode Fitur Mendapatkan Hasil UjiKeamanan Makanan pada Kelas Reagent...................................45Kode Sumber 4.4 Baris Kode Fitur Mendapatkan Hasil UjiKeamanan Makanan pada Kelas Sample.................................... 46Kode Sumber 4.5 Baris Kode Fitur Mendapatkan Hasil UjiKeamanan Makanan pada Kelas ColorComparators.................. 46Kode Sumber 4.6 Baris Kode Fitur Mencatat Data Hasil UjiKeamanan Makanan pada Kelas NewFoodTestActivity.............48Kode Sumber 4.7 Baris Kode Fitur Mencatat Data Hasil UjiKeamanan Makanan pada Kelas ClientConnect.........................49Kode Sumber 4.8 Baris Kode Fitur Menampilkan Data Hasil UjiKeamanan Makanan pada Kelas ClientConnect.........................51

Page 20: Aplikasi Uji Keamanan Berbasis Android

xviii

[Halaman ini sengaja dikosongkan]

Page 21: Aplikasi Uji Keamanan Berbasis Android

1

8BAB I9PENDAHULUAN

101.1 Latar Belakang

Makanan merupakan kebutuhan pokok bagi manusia.Makanan dibutuhkan untuk memperoleh energi yang digunakanuntuk beraktifitas sehari-hari. Berbagai macam makanan dapatdijumpai di pasaran setiap hari. Hal ini membuat pelaku bisnismakanan melakukan segala cara untuk menghasilkan makananyang menarik dan tahan lama karena daya saing yang tinggidalam berbisnis makanan. Pelaku bisnis tersebut menambahkanbahan-bahan tambahan makanan berbahaya pada sejumlahproduk pangan. Padahal bahan-bahan tersebut mengandungrisiko bahaya yang tersembunyi sehingga pelaku bisnis tersebuttidak mengetahuinya.

Saat ini di pasaran masih banyak terdapat bahan-bahantambahan makanan berbahaya pada sejumlah produk pangan.Badan POM telah melakukan pengawasan paska pemasaranmelalui sampling dan pengujian laboratorium terhadap589 sampel makanan yang beredar dengan hasil 86(14,60%) sampel tidak memenuhi syarat (TMS) mutudan keamanan. Untuk produk dalam negeri dan produk luarnegeri ditindaklanjuti oleh Badan POM, sedangkan untukproduk Industri Rumah Tangga Pangan (IRTP)ditindaklanjuti oleh Dinas Kesehatan setempat. Apabiladibandingkan dengan triwulan I tahun 2013, terjadipeningkatan sampel makanan yang TMS sebesar 64,67%dari 1.703 sampel yang diuji [1].

Untuk mengetahui kandungan zat berbahaya padamakanan, serangkaian tes uji coba dilakukan. Misalnya, untukmengetahui kandungan boraks yang ada pada makanan dapatdideteksi dengan menggunakan kertas kurkuma. Dalammelakukan uji keamanan pada makanan ini masih ada beberapakendala yang dapat mengakibatkan kesalahan. Penyebab darikesalahan ini salah satunya berasal dari personil yang melakukan

Page 22: Aplikasi Uji Keamanan Berbasis Android

2

deteksi mengalami kelelahan fisik maupun mental.Terdapat serangkaian sistem untuk melakukan uji

keamanan makanan. Sistem ini terdiri dari alat-alat untukmelakukan uji coba seperti vial atau botol kecil, alat untukpengukuran zat menggunakan kamera dan lampu, aplikasiberbasis Android, dan server. Untuk pengukuran sebenarnyacukup untuk menggunakan alat yang menggunakan kamera danlampu, tetapi perlu juga dibutuhkan aplikasi berbasis Androiduntuk mencatat hasil pengujian ke dalam basis data di server.Dengan aplikasi ini pengguna menjadi mudah untuk mencatatmaupun mengetahui laporan hasil uji cobanya sehinggakelelahan fisik maupun mental dapat terkurangi.

Pada tugas akhir ini akan mengembangkan di bagianaplikasi untuk uji keamanan pada makanan. Sistem inidikembangkan pada perangkat bergerak berbasis Android yangberfungsi untuk mencatat aktifitas serta data-data hasil deteksipada uji keamanan makanan sehingga meringankan aktifitas dandapat mempermudah pengguna karena perangkat kerangkabergerak ini fleksibel dan dapat dibawa kemana saja.

1.2 Rumusan MasalahRumusan masalah yang diangkat dalam tugas akhir

adalah sebagai berikut :1. Bagaimana membuat aplikasi uji keamanan makanan

berbasis Android?2. Bagaimana membuat aplikasi pada Android yang dapat

mendeteksi komposisi warna RGB (Red, Green, Blue) darigambar yang diambil?

3. Bagaimana menghubungkan antara sisi client padaperangkat kerangka bergerak berbasis Android denganserver?

1.3 Batasan MasalahPermasalahan yang dibahas pada Tugas Akhir ini

memiliki beberapa batasan antara lain :

Page 23: Aplikasi Uji Keamanan Berbasis Android

3

1. Aplikasi uji makanan dibuat pada perangkat bergerakdengan kebutuhan spesifikasi minimal sistem operasiAndroid 4.3 Jelly Bean, CPU 1.2 GHz, memori 1 GB, dankamera 5 MP.

2. Jenis uji yang dapat diproses oleh sistem hanya yangtermasuk dalam paramater uji pada Food Safety Test Kit,yaitu Boraks, Methyl Yellow, Rhodamin B, Formalin,Merkuri.

1.4 TujuanTujuan dari tugas akhir ini adalah membangun sebuah

aplikasi uji keamanan makanan berbasis Android.

1.5 ManfaatManfaat dari tugas akhir ini adalah sebagai berikut.

1. Mempermudah pengguna dalam melakukan uji keamananpada makanan.

2. Mengurangi tingkat kesalahan yang terjadi pada ujikeamanan pada makanan.

1.6 MetodologiLangkah-langkah yang ditempuh dalam pengerjaan

tugas akhir ini yaitu :

1. Studi LiteraturPada tahap ini dilakukan pengumpulan dan penggalian

informasi dan literatur yang diperlukan dalam prosesperancangan dan implementasi aplikasi yang akan dibangun.Literatur yang digunakan adalah sebagai berikut.

a. Food Test Safety Kitb. Pengembangan aplikasi pada perangkat kerangkabergerak berbasis Android menggunakan kakas bantuAndroid Studio dan Android SDK (SoftwareDevelopment Kit).

c. MySQLd. JSON

Page 24: Aplikasi Uji Keamanan Berbasis Android

4

2. Analisis dan Perancangan SistemPada tahap ini dilakukan analisis dan pendefinisian

kebutuhan sistem untuk mengetahui masalah yang sedangdihadapi. Selanjutnya, dirumuskan rancangan sistem yang dapatmemberi solusi pada masalah tersebut dengan beberapa tahapsebagai berikut.

a. Analisis aktor yang terlibat di dalam sistem.b. Perancangan diagram use case yang merupakan analisiskebutuhan pada aplikasi yang akan dibangun.

c. Perancangan proses aplikasi.d. Perancangan sistem komunikasi antara server denganperangkat Android.

e. Perancangan antarmuka pada aplikasi Android.

3. ImplementasiPada tahap ini dilakukan pembuatan elemen perangkat

lunak. Sistem yang dibuat berpedoman pada rancangan yangtelah dibuat pada proses perancangan dan analisis sistem.Perincian tahap ini adalah sebagai berikut.

a. Implementasi antarmuka aplikasi Android.b. Implementasi pendeteksi kadar zat berbahaya padamakanan.

c. Implementasi komunikasi antara server dengan aplikasi.

4. Pengujian dan EvaluasiPada tahap ini dilakukan uji coba terhadap perangkat

lunak menggunakan skenario yang telah dipersiapkansebelumnya. Uji coba dan evaluasi perangkat dilakukan untukmencari masalah yang mungkin timbul, mengevaluasi jalannyaprogram, dan mengadakan perbaikan jika ada kekurangan.Tahapan-tahapan dan uji coba yang akan dilakukan adalahsebagai berikut.

a. Uji coba implementasi pendeteksi kadar zat keamananpada makanan.

Page 25: Aplikasi Uji Keamanan Berbasis Android

5

b. Uji coba implementasi komunikasi server denganaplikasi.

5. Penyusunan Buku TugasAkhirPada tahap ini dilakukan pendokumentasian dan

pelaporan dari seluruh konsep, dasar teori, implementasi, prosesyang telah dilakukan, dan hasil-hasil yang telah didapatkanselama pengerjaan tugas akhir.

1.7 Sistematika Penulisan Laporan Tugas AkhirBuku tugas akhir ini bertujuan untuk mendapatkan

gambaran dari pengerjaan tugas akhir ini dan diharapkan dapatberguna untuk pembaca yang tertarik untuk melakukanpengembangan lebih lanjut. Secara garis besar, buku tugas akhirterdiri atas beberapa bagian seperti berikut ini.Bab I Pendahuluan

Bab ini berisi latar latar belakang, rumusan masalah,batasan masalah, tujuan, manfaat, metodologi yangdigunakan, dan sistematika penyusunan tugas akhir.

Bab II Tinjauan PustakaBab ini membahas beberapa teori penunjang yangberhubungan degan pokok pembahasan dan mendasaripembuatan tugas akhir ini.

Bab III Analisis dan Perancangan SistemBab ini membahas mengenai perancangan perangkat lunak.Perancangan perangkat lunak meliputi perancangan data,arsitektur, proses, dan perancangan antarmuka pada kakas.

Bab IV ImplementasiBab ini berisi implementasi dari perancangan perangkatlunak.

Bab V Pengujian dan EvaluasiBab ini membahas pengujian dari aplikasi yang dibuatdengan melihat output yang dihasilkan aplikasi, danevaluasi untuk mengetahui kemampuan aplikasi.

Bab VI Kesimpulan dan Saran

Page 26: Aplikasi Uji Keamanan Berbasis Android

6

Bab ini berisi kesimpulan dan hasil pengujian yangdilakukan serta saran-saran untuk pengembangan aplikasipada masa mendatang.

Daftar PustakaMerupakan daftar referensi yang digunakan untukmengembangkan tugas akhir.

LampiranMerupakan bab tambahan yang berisi daftar istilah pentingpada aplikasi ini.1

Page 27: Aplikasi Uji Keamanan Berbasis Android

7

11BAB II12TINJAUAN PUSTAKA

13Pada bab ini akan dibahas mengenai tinjauan pustaka

yang menjadi dasar dari pembuatan tugas akhir.

2.1 Food Safety Test KitUntuk mendeteksi zat berbahaya pada makanan,

serangkaian tes dilakukan menggunakan Food Safety Test Kit.Beberapa jenis zat berbahaya yang termasuk dalam pengujianmenggunakan Food Safety Test Kit ini antara lain :

2.1.1 Borax

Borax, juga dikenal sebagai natrium borat(Na2B4O7.10H2), dan asam borat (H3BO3), adalah, zat garamseperti bewarna yang juga dapat menjadi bubuk putih. Ini adalahbahan untuk solder, pemutih membersihkan, menjaga kayu,antiseptik kayu, dan mengendalikan kecoak. Sinonim biboratsodium, natrium perborat, natrium tetraborat. Nature bewarnaputih dan sedikit larut dalam air. Konsumsi Sering boraks olehmanusia dapat menyebabkan otak, hati, lemak, dan gagal ginjal.Dalam jumlah besar, boraks menyebabkan demam, anuria (tidakada pembentukan urin), koma, merangsang sistem saraf pusat,menyebabkan depresi, apatis, sianosis, penurunan tekanan darah,kerusakan ginjal, tidak sadarkan diri, dan bahkan kematian.

2.1.2 Methyl Yellow

Methyl Yellow adalah pewarna sintetis kuningkecoklatan. Zat ini terdapat dalam bentuk padat atau bubuk.Pewarna ini digunakan untuk tekstil noda dan cat. Ciri-cirimakanan yang mengandung kuning Metanil adalah: mencolokkuning dan cenderung berpendar, dan memiliki banyak titik-titikwarna (karena heterogenitas nya), misalnya pada kerupuk. Metil

Page 28: Aplikasi Uji Keamanan Berbasis Android

8

Kuning juga merupakan salah satu pewarna berbahaya. Hal inidilarang untuk ditambahkan ke makanan. Hal ini juga seringdigunakan sebagai indikator reaksi netralisasi asam-basa.

2.1.3 Rhodamine B

Rhodamin B adalah pewarna sintetis, yang biasanyadigunakan dalam industri tekstil dan kertas. Dibutuhkan bentukbubuk kristal keunguan merah, atau cairan merah neon terang.Ciri-ciri makanan yang mengandung rhodamin B adalah: warnamencolok merah dan cenderung fluoresensi, telah dihiasi warnakarena heterogen.

2.1.4 Formaldehida / Formalin

Trioksimetilen, metanal, metilen oksida) adalah cairanyang terbentuk dari formaldehida dicampur dengan sedikitalkohol. Solusi ini tidak bewarna, tapi menjengkelkan bau.Formalin biasanya digunakan sebagai pengawet mayat, bahanbaku untuk lem kayu lapis melamin pada furnitur. Formalin jugabiasa digunakan sebagai disinfektan, antiseptik, penghilang bau,fiksasi jaringan dan fumigan, dan sering digunakan dalamindustri tekstil.

22.1.5 MercuryPenggunaan utama dari merkuri dalam termometer,

barometer dan instrumen ilmiah lainnya. Hal ini biasanyaditemukan di turunan dari cinnabar mineral.

2.2 AndroidAndroid adalah sistem operasi berbasis Linux yang

dirancang untuk perangkat seluler layar sentuh seperti teleponpintar dan komputer tablet [2]. Sistem operasi ini dirilis secararesmi pada tahun 2007, bersamaan dengan didirikannya OpenHandset Alliance, konsorsium dari perusahaan-perusahaanperangkat keras, perangkat lunak, dan telekomunikasi yang

Page 29: Aplikasi Uji Keamanan Berbasis Android

9

bertujuan untuk memajukan standar terbuka perangkat seluler[3].

2.3 JavaJava adalah bahasa pemrograman yang dapat dijalankan

di berbagai komputer termasuk telepon genggam. Bahasa inibanyak mengadopsi sintaksis yang terdapat pada C dan C++namun dengan sintaksis model objek yang lebih sederhana sertadukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasiberbasis java umumnya dikompilasi ke dalam p-code (bytecode)dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM).Java merupakan bahasa pemrograman yang bersifatumum/non-spesifik (general purpose), dan secara khususdidesain untuk memanfaatkan dependensi implementasiseminimal mungkin. Karena fungsionalitasnya yangmemungkinkan aplikasi java mampu berjalan di beberapaplatform sistem operasi yang berbeda, java dikenal pula denganslogannya, "Tulis sekali, jalankan di mana pun". Saat ini javamerupakan bahasa pemrograman yang paling populer digunakan,dan secara luas dimanfaatkan dalam pengembangan berbagaijenis perangkat lunak aplikasi ataupun aplikasi berbasis web.

2.4 Android SDKAndroid SDK (Software Development Kit) merupakan

bagian dari pengembangan perangkat lunak Android yang didalamnya terdapat perangkat pengembangan, emulator, danlibrary yang dibutuhkan.

2.5 Kakas Kerja Android StudioAndroid Studio adalah sebuah IDE (Integrated

Development Environtment) untuk perangkat lunak berbasisAndroid [5].

2.6 MySQLMySQL adalah perangkat lunak basis data open source

Page 30: Aplikasi Uji Keamanan Berbasis Android

10

yang paling populer di dunia dengan lebih dari 100 juta kopiperangkat lunak yang telah diunduh atau didistribusikan [6].

2.7 JSONJSON (JavaScript Object Notation) adalah format

pertukaran data yang ringan, mudah dibaca dan ditulis olehmanusia, serta mudah diterjemahkan dan dibuat (generate) olehkomputer. Format ini dibuat berdasarkan bagian dari BahasaPemrograman JavaScript, Standar ECMA-262 Edisi ke-3 -Desember 1999. JSON merupakan format teks yang tidakbergantung pada bahasa pemrograman apapun karenamenggunakan gaya bahasa yang umum digunakan olehprogrammer keluarga C termasuk C, C++, C#, Java, JavaScript,Perl, Python, dan lain-lain. Oleh karena sifat-sifat tersebut,menjadikan JSON ideal sebagai bahasa pertukaran-data [7].

Page 31: Aplikasi Uji Keamanan Berbasis Android

11

14BAB III15ANALISIS DAN PERANCANGAN SISTEM

16Bab ini membahas tahap analisis permasalahan dan

perancangan dari sistem yang akan dibangun. Analisispermasalahan membahas permasalahan yang diangkat dalampengerjaan tugas akhir. Analisis kebutuhan mencantumkankebutuhan-kebutuhan yang diperlukan perangkat lunak.Selanjutnya dibahas mengenai perancangan sistem yang dibuat.

3.1 Analisis Perangkat LunakTahap analisis dibagi menjadi beberapa bagian antara

lain cakupan permasalahan, deskripsi umum sistem, kasuspenggunaan sistem, dan kebutuhan perangkat lunak.

3.1.1 Domain PermasalahanMakanan merupakan salah satu kebutuhan pokok

manusia. Gizi dan nutrisinya dibutuhkan untuk beraktifitas dalamkehidupan sehari-hari. Tetapi zat berbahaya juga bisa terdapatdalam makanan yang kita makan dan orang-orang padaumumnya tidak mengetahuinya. Maka dari itu. keamanan padamakanan menjadi hal yang mendesak untuk dibahas dan dicarisolusi permasalahannya.

Untuk mengetahui kandungan zat berbahaya padamakanan, maka serangkaian tes uji keamanan makanandilakukan. Tetapi dalam melakukan uji keamanan pada makananini sendiri, ternyata masih terdapat beberapa kendala. Salahsatunya adalah ketika seorang penguji mengalami kelelahan fisikmaupun mental akibat bekerja yang terlalu keras.

Dari permasalahan tersebut, dikembangkan sebuahaplikasi untuk uji keamanan pada makanan berbasis Android.Aplikasi ini dapat menghasilkan kadar yang ada pada ujikeamanan makanan dengan menggunakan kamera yang ada padaperangkat bergerak Android. Untuk menggunakan aplikasi ini, ujikeamanan makanan dilakukan pada sebuah sistem. Sistem ini

Page 32: Aplikasi Uji Keamanan Berbasis Android

12

terdiri dari alat-alat untuk melakukan uji seperti vial, tempat yangpekat terhadap cahaya luar, dan lampu sebagai sumber cahayadalam. Sistem ini juga harus terhubung dengan listrik untukmenyalakan lampu. Setelah melakukan pengujian, aplikasi inidapat mencatat data hasil uji ke server dan menampilkannyakembali.

Dengan adanya aplikasi tersebut, penguji menjadi lebihmudah dalam melakukan pengujian baik dalam hal mendapatkanhasil uji, maupun mencatat hasil uji tersebut. Aplikasi ini terdapatpada perangkat bergerak yang bersifat fleksibel dan tidakmembutuhkan tenaga yang banyak sehingga dapat meringankanaktifitas penguji.

3.1.2 Deskripsi UmumBerdasarkan permasalahan yang ada pada pembahasan

domain permasalahan, solusi aplikasi yang ditawarkan adalahpembuatan aplikasi dengan memanfaatkan kamera belakangperangkat bergerak Android untuk mendapatkan hasil pada ujikeamanan makanan. Aplikasi dapat mendeteksi warna RGB padavial atau tabung kecil dalam uji keamanan makanan melaluigambar yang telah diambil dengan kamera perangkat bergerakAndroid. Setelah warna dideteksi, hasil uji bisa didapatkan dandicatat pada basis data di server.

Untuk melakukan uji keamanan makanan menggunakanaplikasi ini, membutuhkan kondisi yang valid atau tidakberubah-ubah sehingga dibuatlah sebuah sistem. Sistem inisebagai wadah atau tempat untuk vial yang sudah siap untuk diujidan dilihat hasilnya. Sistem ini bersifat kedap dari cahaya luarsehingga pada sistem ini hanya terdapat satu sumber cahaya yaitumelalui lampu kecil yang berada di dalam sistem tersebut. Untukmenyalakan sumber cahaya tersebut, sistem ini harus tersambungdengan listrik. Sumber cahaya ini dibutuhkan untuk menyinarivial yang nantinya akan diambil gambarnya melalui kameraperangkat bergerak Android.

Page 33: Aplikasi Uji Keamanan Berbasis Android

13

3.1.3 Arsitektur SistemPada aplikasi yang dibuat pada tugas akhir ini,

pengguna dapat mendeteksi RGB dari vial yang akan diuji danmendapatkan hasil ujinya. Setelah itu, hasil uji dicatat ke basisdata yang ada di server. Aplikasi juga bisa menampilkan hasil ujiyang telah dilakukan sebelumnya dengan mengambil data hasiluji yang ada di server, lalu menampilkannya. Berikut gambaranarsitektur aplikasi yang akan dibuat.

Gambar 3.1 Desain Arsitektur Sistem3.1.4 Aktor

Aktor mendefinisikan entitas-entitas yang terlibat danberinteraksi langsung dengan sistem. Entitas ini bisa berupamanusia maupun sistem atau perangkat lunak yang lain. Aktoryang menjadi pengguna sistem pada sistem yang akan dibuat ditugas akhir ini adalah penguji pada uji keamanan makanan.Penguji menggunakan sistem yang dibangun pada perangkatbergerak berbasis Android yang digunakan untuk mendapatkanhasil dari uji keamanan makanan.

3.1.5 Kasus PenggunaanPada subbab ini akan dijelaskan kasus penggunaan yang

dibutuhkan pada sistem sesuai dengan analisis yang telahdilakukan. Diagram kasus penggunaan dapat dilihat padaGambar 3.2 dan kode kasus penggunaan terdapat pada Tabel 3.1.

Page 34: Aplikasi Uji Keamanan Berbasis Android

14

Gambar 3.2 Diagram Kasus Penggunaan

Sedangkan untuk kode kasus penggunaan dapat dilihatpada tabel berikut.

Tabel 3.1 Keterangan Kasus Kode PenggunaanKode KasusPenggunaan

Kasus Penggunaan

UC-001 Mendapatkan hasil uji keamanan makananUC-002 Mencatat data hasil uji keamanan makananUC-003 Menampilkan data hasil uji keamanan

makanan

3.1.5.1 Mendapatkan Hasil Uji Keamanan MakananPada kasus penggunaan ini, pengguna mendapatkan

hasil uji keamanan makanan dengan cara mengambil gambar dariuji keamanan makanan melalui kamera yang terdapat padaperangkat bergerak berbasis Android. Setelah mengambilgambar, pengguna memasukkan nama makanan dan nama reagen.Kemudian pengguna bisa mendapatkan hasil uji keamananmakanan. Spesifikasi kasus penggunaan ini dapat dilihat padaTabel 3.2 dan diagram aktifitas pada Gambar 3.3.

Page 35: Aplikasi Uji Keamanan Berbasis Android

15

Tabel 3.2 Spesifikasi Kasus Penggunaan Mendapatkan Hasil UjiKeamanan Makanan

Nama Mendapatkan Hasil Uji Keamanan MakananKode UC-001Deskripsi Untuk mendapatkan hasil uji keamanan

makanan, pengguna mengambil gambar darihasil uji keamanan makanan melalui kamerapada perangkat bergerak berbasis Android,kemudian memasukkan nama makanan dannama reagen.

Tipe FungsionalPemicu Pengguna menekan tombol “Lihat Hasil”.Aktor PengujiKondisi Awal Penguji berada pada halaman “Tambah Uji”,

telah mengambil pada gambar uji keamananmakanan, serta telah memasukkan namamakanan dan nama reagen.

Aliran :- Kejadian

Normal

1. Pengguna menekan tombol “AmbilGambar”

2. Pengguna mengambil gambar pada hasiluji keamanan makanan

3. Pengguna memasukkan nama makanandan nama reagen.

4. Pengguna menekan tombol “Lihat Hasil”.5. Sistem menerima masukan dan

menganalisisnya.- Kejadian

Alternatif-

Kondisi Akhir Sistem menampilkan hasil uji keamananmakanan yang telah dianalisis.

Page 36: Aplikasi Uji Keamanan Berbasis Android

16

Gambar 3.3 DiagramAktifitas Mendapatkan Hasil Uji KeamananMakanan

3.1.5.2 Mencatat Data Hasil Uji Keamanan MakananPada kasus penggunaan ini, sistem menerima masukan

data dari penguji. Masukan ini berupa nama makanan, namareagen, dan hasil uji yang sudah dilakukan sebelumnya. Sistemmencatat hasil uji ke basis data yang ada di server. Penjelasanspesifikasi kasus penggunaan ini dapat dilihat pada Tabel 3.3 dandiagram aktifitas pada Gambar 3.4.

Tabel 3.3 Spesifikasi Kasus Penggunaan Mencatat Data Hasil UjiKeamanan Makanan

Nama Mencatat Data Hasil Uji Keamanan Makanan

Page 37: Aplikasi Uji Keamanan Berbasis Android

17

Kode UC-002Deskripsi Sistem menerima masukan berupa nama

makanan, nama reagen, dan hasil uji keamananmakanan untuk selanjutnya dicatat di basisdata yang ada di server.

Tipe FungsionalPemicu Tombol centang (√) pada menu halaman

“Tambah Uji”.Aktor PengujiKondisi Awal Pengguna berada pada halaman “Tambah Uji”.Aliran :- Kejadian

Normal

1. Sistem mencatat ke basis data yang adaserver berdasarkan masukan.A1. Tidak semua masukan diisi

- KejadianAlternatif

A1. Tidak semua masukan diisi1. Sistem menampilkan pesan atau warning

bahwa semua masukan harus diisi.Kondisi Akhir Masukan berhasil tercatat pada basis data yang

ada di server.

Page 38: Aplikasi Uji Keamanan Berbasis Android

18

Gambar 3.4 DiagramAktifitas Mencatat Data Hasil Uji KeamananMakanan

3.1.5.3 Menampilkan Data Hasil Uji Keamanan MakananPada kasus penggunaan ini, sistem menampilkan hasil

uji keamanan makanan yang telah dilakukan.oleh penguji. Sistemmenampilkan nama makanan, nama reagen, dan hasil uji.Penjelasan spesifikasi kasus penggunaan ini ada dalam Tabel 3.4dan diagram aktifitas pada Gambar 3.5.

Tabel 3.4 Spesifikasi Kasus Penggunaan Mencatat Data Hasil UjiKeamanan Makanan

Nama Menampilkan Data Hasil Uji KeamananMakanan

Kode UC-003

Page 39: Aplikasi Uji Keamanan Berbasis Android

19

Deskripsi Sistem menampilkan data hasil uji keamananmakanan berupa nama makanan, nama reagen,dan hasil uji.

Tipe FungsionalPemicu Membuka aplikasiAktor PengujiKondisi Awal Pengguna berada pada halaman awal yaitu

halaman “Uji Makanan”.Aliran :- Kejadian

Normal

1. Sistem menampilkan data hasil ujikeamanan makanan.A1. Tidak ada data yang ditampilkan

- KejadianAlternatif

A1. Tidak ada data yang ditampilkan1. Sistem menampilkan halaman “Tambah

Uji”.Kondisi Akhir Berhasil menampilkan data hasil uji keamanan

makanan.

Page 40: Aplikasi Uji Keamanan Berbasis Android

20

Gambar 3.5 DiagramAktifitas Menampilkan Data Hasil UjiKeamanan Makanan

3.1.6 Spesifikasi Kebutuhan Perangkat LunakBagian ini berisi tenang kebutuhan perangkat lunak.

Kebutuhan perangkat lunak dalam sistem ini mencakupkebutuhan fungsional saja. Pada bab ini juga dijelaskan tentangspesifikasi terperinci pada masing-masing kebutuhan fungsional.Rincian spesifikasi dari kasus penggunaan disajikan dalambentuk tabel.

‘3.1.6.1 Kebutuhan Fungsional Sistem

Kebutuhan fungsional berisi proses-proses yangdibutuhkan sistem dan arus dijalankan. Kebutuhan fungsional

Page 41: Aplikasi Uji Keamanan Berbasis Android

21

sistem dideskripsikan dalam Tabel 3.5.

Tabel 3.5 Daftar Kebutuhan Fungsional SistemKode

Kebutuhan Kebutuhan Fungsional Deskripsi

F-001 Mendapatkan Hasil UjiKeamanan Makanan

Pengguna bisamendapatkan hasil ujikeamanan makanan.

F-002 Mencatat Data Hasil UjiKeamanan Makanan

Pengguna dapatmencatat data hasil ujikeamanan makanan

F-003 Menampilkan Data HasilUji Keamanan Makanan

Sistem menampilkandata hasil ujikeamanan makanan.

3.2 Perancangan Perangkat LunakPenjelasan tahap perancangan perangkat lunak dibagi

menjadi beberapa bagian yaitu perancangan diagram kelas,perancangan proses analisis, dan perancangan antarmuka.

3.2.1 Perancangan Diagram KelasPerancangan diagram kelas berisi kelas-kelas yang

dirancang untuk membangun sistem dan akan dijelaskan dalambeberapa bagian.

3.2.2.1 Diagram Kelas Mendapatkan dan Mencatat HasilUji Keamanan MakananDalam mendapatkan hasil uji keamanan makanan,

terdapat satu kelas antarmuka dan enam kelas kongkrit yangsemuanya memiliki relasi antar kelas.

Kelas NewFoodTestActivity merupakan kelasantarmuka yang digunakan untuk menampung masukan daripengguna berupa nama makanan, nama reagen, dan hasil uji serta

Page 42: Aplikasi Uji Keamanan Berbasis Android

22

mencatatnya ke basis data yang ada di server. Kelas ini jugamengimplementasikan AsyncResponse dan menurunkan fungsiyang dimiliki AsyncResponse. Di dalamnya terdapat fungsiuntuk mengambil letak berkas dari gambar yang telah diambil,mengambil nama reagen, mendapatkan hasil uji, mencatat dalambasis data di server, dan menerima tanggapan JSON dari server.

Kelas ColorBars merupakan kelas kongkrit yangdigunakan untuk mengambil nama uji, letak berkas gambar, dannilai uji dari semua data training yang telah diambil. Didalamnya terdapat fungsi untuk membaca file teks yang berisinama uji, letak berkas gambar, dan nilai uji dari semua datatraining.

Kelas Sample merupakan kelas kongkrit yangdigunakan untuk menempatkan sampel uji sehingga bisadianalisis selanjutnya. Di dalamnya terdapat fungsi untukmengambil letak berkas dari gambar yang telah diambil danmenempatkannya.

Kelas Reagent merupakan kelas kongkrit yangdigunakan untuk menempatkan semua gambar data training yangselanjutnya akan diambil dan digunakan untuk analisis sesuaidengan reagen dari masukan. Di dalamnya terdapat fungsimenempatkan semua gambar data training dan mengambilnya.

Kelas ColorComparators merupakan kelas kongkrityang digunakan untuk menganalisis antara sampel dengan datatraining dengan cara dibandingkan warnanya yang sesuai dengansampel.. Di dalamnya terdapat fungsi mendapatkan hasilperbandingan, mengonversi gambar data training, mengonversigambar sampel, mendapatkan warna RGB, mengonversi warnadari RGB ke LAB, pengukuran kesamaan, voting daripengukuran kesamaan, dan menghitung voting.

Kelas KNNClassifier merupakan kelas kongkrit yangdigunakan sebagai metode klasifikasi dalam analisis. Didalamnya terdapat fungsi menentukan jumlah kelas,mendapatkan prediksi, mendapatkan jarak Euclidian, mengukurjarak, voting, mendapatkan centroid, mendapatkan threshold,

Page 43: Aplikasi Uji Keamanan Berbasis Android

23

memeriksa outlier.Kelas ClientConnect merupakan kelas kongkrit yang

digunakan untuk menghubungkan antara aplikasi dengan server.Di dalamnya terdapat fungsi untuk menghubungkan antaraaplikasi dengan server yang berjalan di balik layar.

Kelas AsyncResponse merupakan interface yang berisisignature fungsi untuk menerima tanggapan JSON dari server.

Diagram kelas mendapatkan hasil uji keamananmakanan digambarkan pada Gambar 3.6.

Page 44: Aplikasi Uji Keamanan Berbasis Android

24

Gambar 3.6 Diagram Kelas Mendapatkan dan Mencatat Hasil Uji Keamanan Makanan

Page 45: Aplikasi Uji Keamanan Berbasis Android

25

3.2.2.2 Diagram Kelas Menampilkan Data Hasil UjiKeamanan MakananDalam aplikasi ini, terdapat satu kelas antarmuka dan

tiga kelas kongkrit yang semuanya memiliki relasi antar kelas.Kelas DashboardActivity merupakan kelas antarmuka

yang digunakan untuk menampilkan data hasil uji keamananmakanan dari basis data yang terdapat di server. Di dalamnyaterdapat fungsi untuk mengambil data dari server danmenampilkannya pada aplikasi.

Kelas FoodTest merupakan kelas kongkrit yangdigunakan untuk menampung data dari server sesuai atribut.

Kelas ClientConnect merupakan kelas kongkrit yangdigunakan untuk menghubungkan antara aplikasi dengan server.Di dalamnya terdapat fungsi untuk menghubungkan antaraaplikasi dengan server yang berjalan di balik layar.

Kelas AsyncResponse merupakan interface yang berisisignature fungsi untuk menerima tanggapan JSON dari server.

Diagram kelas menampilkan data hasil uji keamananmakanan digambarkan pada Gambar 3.7.

Gambar 3.7 Diagram Kelas Menampilkan Data Hasil UjiKeamanan Makanan

Page 46: Aplikasi Uji Keamanan Berbasis Android

26

3.2.2 Perancangan Diagram SekuensialBagian ini akan menjelaskan perancangan diagram

sekuensial yang akan digunakan pada pembuatan tugas akhir.

3.2.2.3 Diagram Sekuensial Mendapatkan Hasil UjiKeamanan MakananDiagram sekuensial mendapatkan hasil uji keamanan

makanan dapat dilihat pada Gambar 3.8.

3.2.2.4 Diagram Sekuensial Mencatat Data Hasil UjiKeamanan MakananDiagram sekuensial mencatat data hasil uji keamanan

makanan dapat dilihat pada Gambar 3.9.

3.2.2.5 Diagram Sekuensial Menampilkan Data Hasil UjiKeamanan MakananDiagram sekuensial menampilkan data hasil uji

keamanan makanan dapat dilihat pada Gambar 3.10.

Page 47: Aplikasi Uji Keamanan Berbasis Android

27

Gambar 3.8 Diagram Sekuensial Mendapatkan Hasil Uji Keamanan Makanan

Page 48: Aplikasi Uji Keamanan Berbasis Android

28

Gambar 3.9 Diagram Sekuensial Mencatat Data Hasil Uji Keamanan Makanan

Page 49: Aplikasi Uji Keamanan Berbasis Android

29

Gambar 3.10 Diagram Sekuensial Mencatat Data Hasil Uji Keamanan Makanan

Page 50: Aplikasi Uji Keamanan Berbasis Android

30

3.2.3 PerancanganAlgoritmaBagian ini akan menjelaskan perancangan algoritma

dalam proses yang akan digunakan pada pembuatan aplikasi.

3.2.3.1 Algoritma Mendapatkan Hasil Uji KeamananMakananProses ini dimulai setelah pengguna mengisi masukan

dan mengambil gambar uji. Pengguna menekan tombol “LihatHasil” kemudian sistem akan memproses gambar uji tersebut danmenampilkan hasilnya. Untuk mendapatkan hasil uji keamananmakanan, sistem melakukan perbandingan antara sampel yangdiambil dari gambar uji dengan data training. Perbandinganwarna ini menggunakan klasifikasi KNN dan bertujuan untukmenemukan warna yang paling mendekati dengan warna yangada pada data training. Pada data training terdapat warna-warnastandar uji beserta kadar ujinya. Setelah warna yang palingmendekati ditemukan, maka kadar uji yang sesuai dengan warnatersebut akan ditampilkan sebagai hasil uji. Diagram Alir dapatdilihat pada Gambar 3.11.

3.2.3.2 Algoritma Mencatat Data Hasil Uji KeamananMakananProses ini dimulai ketika pengguna telah mengisi

masukan nama makanan dan nama reagen serta mendapatkanhasil uji. Pengguna menekan tombol centang (√) pada menuhalaman “Tambah Uji” kemudian sistem akan memeriksa apakahsemua masukan telah diisi. Setelah itu, sistem akan mencatat datake basis data yang ada di server. Diagram Alir dapat dilihat padaGambar 3.12.

3.2.3.3 Algoritma Menampilkan Data Hasil Uji KeamananMakananProses ini dimulai ketika pengguna telah membuka

Page 51: Aplikasi Uji Keamanan Berbasis Android

31

aplikasi. Pada halaman awal aplikasi, sistem menampilkan datahasil uji keamanan makanan dari server. Jika tidak ada data yangditampilkan, maka sistem akan menuju ke halaman “TambahUji”. DiagramAlir dapat dilihat pada Gambar 3.13.

Page 52: Aplikasi Uji Keamanan Berbasis Android

32

Gambar 3.11 DiagramAlir Mendapatkan Hasil Uji KeamananMakanan

Page 53: Aplikasi Uji Keamanan Berbasis Android

33

Gambar 3.12 DiagramAlir Mencatat Data Hasil Uji KeamananMakanan

Page 54: Aplikasi Uji Keamanan Berbasis Android

34

Gambar 3.13 DiagramAlir Menampilkan Data Hasil UjiKeamanan Makanan

Page 55: Aplikasi Uji Keamanan Berbasis Android

35

3.2.4 Perancangan Manajemen DataBagian ini akan menjelaskan perancangan basis data

yang akan digunakan dalam pembuatan sistem ini.

3.2.4.1 Perancangan Basis DataDalam perancangan basis data, sistem akan

menggunakan satu entitas yang direalisasikan dalam bentuk tabel.Tabel tersebut adalah FoodTest. Tabel FoodTest berisi data hasiluji keamanan makanan. Dari perancangan ini akandiimplementasikan pada basis data MySQL.

Gambar 3.14 Conceptual Data Model Sistem

3.2.5 PerancanganAntarmukaPada bagian ini menjelaskan perancangan antarmuka

sistem yang akan dibuat.

3.2.5.1 AntarmukaAplikasi Perangkat BergerakPada aplikasi perangkat bergerak, antarmuka yang akan

ditampilkan meliputi antarmuka halaman uji makanan dantambah uji.

Page 56: Aplikasi Uji Keamanan Berbasis Android

36

Tabel 3.6 Deskripsi Perancangan Antarmuka AplikasiAntarmuka KeteranganUji Makanan Deskripsi

Pada halaman uji makanan menampilkan daftarhasil uji keamanan makanan yang telahdilakukan dalam bentuk listview. Pada sebelahkanan menu terdapat tombol untuk ke halamantambah uji.

Perancangan

Gambar 3.15 Perancangan Halaman UjiMakanan

Uji Makanan +

Makanan :Reagen :Hasil :

Makanan :Reagen :Hasil :

Page 57: Aplikasi Uji Keamanan Berbasis Android

37

Tambah Uji DeskripsiPada halaman tambah uji menampilkan tomboluntuk mengambil gambar dari kamera, dua edittext masukan untuk memasukkan nama makanandan nama reagen, satu label untuk menampilkanhasil uji, tombol untuk mendapatkan hasil uji,dan tombol di sebelah kanan menu untukmencatat ke basis data di server.

Perancangan

Gambar 3.16 Perancangan Antarmuka HalamanTambah Uji

Makanan

Reagen

Hasil

Tambah Uji √

Ambil Gambar

Lihar Hasil

Page 58: Aplikasi Uji Keamanan Berbasis Android

38

[Halaman ini sengaja dikosongkan]

Page 59: Aplikasi Uji Keamanan Berbasis Android

39

17BAB IV18IMPLEMENTASI

Pada bab ini membahas mengenai implementasi dariperancangan perangkat lunak yang didasarkan pada Bab III.

4.1 Implementasi AntarmukaPada subbab ini akan dijelaskan tentang implementasi

antarmuka sistem yang menjadi bagian terluar sekaligus bagianyang akan berinteraksi langsung dengan pengguna.

4.1.1 Antarmuka Halaman Uji MakananPada antarmuka halaman uji makanan menampilkan

daftar hasil uji keamanan makanan yang telah dilakukan dalambentuk listview. Pada sebelah kanan menu terdapat tombol untukke halaman tambah uji. Tampilan antarmuka ini dapat dilihatpada Gambar 4.1.

4.1.2 Antarmuka Halaman Tambah UjiPada antarmuka halaman tambah uji menampilkan

tombol untuk mengambil gambar dari kamera, dua edit textmasukan untuk memasukkan nama makanan dan nama reagen,satu label untuk menampilkan hasil uji, tombol untukmendapatkan hasil uji, dan tombol di sebelah kanan menu untukmencatat ke basis data di server. Tampilan antarmuka ini dapatdilihat pada Gambar 4.2.

Page 60: Aplikasi Uji Keamanan Berbasis Android

40

Gambar 4.1 Antarmuka Halaman Uji Makanan

Gambar 4.2 Antarmuka Halaman Tambah Uji

Page 61: Aplikasi Uji Keamanan Berbasis Android

41

4.2 Implementasi FiturPada subbab ini menjelaskan implementasi yang berupa

baris kode yang sesuai dengan kebutuhan fungsional.

4.2.1 Fitur Mendapatkan Hasil Uji Keamanan MakananFitur ini digunakan untuk mendapatkan hasil uji

keamanan makanan. Sistem mendapat sampel dari gambar ujiyang telah diambil melalui kamera perangkat bergerak. Sampeldigunakan untuk perbandingan warna dengan data training.Perbandingan warna ini menggunakan klasifikasi KNN. Setelahitu, sistem menampilkan hasil uji keamanan makanan.

@Overrideprotected void onCreate (final BundlesavedInstanceState) {final String [] items = new String [] {"Camera"};ArrayAdapter<String> adapter = new ArrayAdapter<> (this,android.R.layout.select_dialog_item,items);AlertDialog.Builder builder = newAlertDialog.Builder(this);builder.setTitle("Select Image");builder.setAdapter( adapter, newDialogInterface.OnClickListener() {public void onClick( DialogInterface dialog, int item ){

//pick from cameraif (item == 0) {Intent intent = new

Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, PICK_FROM_CAMERA);}

}});final AlertDialog dialog = builder.create();Button buttonImage = (Button)findViewById(R.id.btnCamera);buttonImage.setOnClickListener(newView.OnClickListener() {

Page 62: Aplikasi Uji Keamanan Berbasis Android

42

@Overridepublic void onClick(View view) {

dialog.show();}

});}

@Overrideprotected void onActivityResult(int requestCode, intresultCode, Intent data) {

super.onActivityResult(requestCode, resultCode,data);

Bitmap image = null;if (resultCode != RESULT_OK) return;switch (requestCode){

case PICK_FROM_CAMERA:Bitmap bitmap = (Bitmap)

data.getExtras().get("data");if(bitmap != null){Log.d("DaftarActivity", "Mengambil foto dari

kamera berhasil");image = ThumbnailUtils.extractThumbnail(bitmap,

400, 400);imageViewPhoto.setImageBitmap(image);

}else{Log.d("DaftarActivity", "Mengambil foto dari

kamera gagal");}break;

}

//Button for create resultpublic void createResult(View view) {

reagent = getSelectedTest();makeEmptySample();

}

//get sample with selected reagentprivate Reagent getSelectedTest(){

Reagent test = new Reagent(getApplicationContext());ArrayList<String> path = new ArrayList<String>();ArrayList<String> value = new ArrayList<String>();

Page 63: Aplikasi Uji Keamanan Berbasis Android

43

String selectedTest =editTextReagent.getText().toString();

test.setTestName(selectedTest);for(ArrayList<String> listPath :

this.colorBars.getColorBarPath()){if(listPath.get(0).contains(selectedTest)){

path.add(listPath.get(1));}

}for(ArrayList<String> listValue :

this.colorBars.getColorBarValue()){if(listValue.get(0).contains(selectedTest)){

value.add(listValue.get(1));}

}test.setColorBarsPath(path);test.setColorBarValue(value);return test;

}

//Make sample from taken picturepublic void makeEmptySample(){

testSample = new Sample(getApplicationContext());testSample.setTestName(reagent.getTestName());Log.d("Main Activity",reagent.getTestName());

String path = getPicture();testSample.setDateTime(dateTime);testSample.setSamplePath(path);Log.d("Main Activity", "path : " + path);

String resultValue = getResult();testSample.setResult_mgl(resultValue);Log.d("Main Activity", "result : " + resultValue);

setTestSample(testSample);

editTextResult.setText(testSample.getResult_mgl());}

//get result functionprivate String getResult(){

ColorComparators colorComparators;String result = null;

Page 64: Aplikasi Uji Keamanan Berbasis Android

44

colorComparators = new ColorComparators(testSample,reagent);

int resultIndex =colorComparators.getCompareResult();

if(resultIndex == -1){resultIndex = 0;

}result =

reagent.getColorBarValue().get(resultIndex);Log.d("MainActivity", "RESULT = " + result);

return result;}

Kode Sumber 4.1 Baris Kode Fitur Mendapatkan Hasil UjiKeamanan Makanan pada Kelas NewFoodTestActivity

private void getAllColorBars() {String line;String testName = null;String splitBy = ",";

try {AssetManager assetManager = context.getAssets();InputStream input =

assetManager.open("path_reagent.txt");BufferedReader bufferedReader = new

BufferedReader(new InputStreamReader(input, "UTF-8"));

while ((line = bufferedReader.readLine()) !=null) {

String[] properties = line.split(splitBy);

if(!properties[0].equals(testName)) {testName = properties[0];foodTestNames.add(properties[0]);

}this.foodTestCode.add(properties[1]);

ArrayList<String> property = newArrayList<String>();

property.add(properties[1]);

Page 65: Aplikasi Uji Keamanan Berbasis Android

45

property.add(properties[2]);this.colorBarPath.add(property);

property = new ArrayList<String>();property.add(properties[1]);property.add(properties[3]);this.colorBarValue.add(property);

}} catch (IOException e) {

e.printStackTrace();}

}Kode Sumber 4.2 Baris Kode Fitur Mendapatkan Hasil Uji

Keamanan Makanan pada Kelas ColorBars

public void setColorBarsImage() {colorBarsImage = new ArrayList<Bitmap>();try {

for (String path : this.colorBarsPath) {Log.d("Reagent", "the path : " + path);AssetManager assetManager =

context.getAssets();InputStream inputStream =

assetManager.open(path);Drawable drawable =

Drawable.createFromStream(inputStream, null);Bitmap selectedImage = ((BitmapDrawable)

drawable).getBitmap();this.colorBarsImage.add(selectedImage);

}}catch (IOException e){

e.printStackTrace();}

}Kode Sumber 4.3 Baris Kode Fitur Mendapatkan Hasil Uji

Keamanan Makanan pada Kelas Reagent

public void setSamplePath(String samplePath){this.path = samplePath;

}

public Bitmap getSample() {

Page 66: Aplikasi Uji Keamanan Berbasis Android

46

Bitmap bitmapSample = null;String sampleImagePath = this.path;

bitmapSample =BitmapFactory.decodeFile(this.getSamplePath());

Log.d("Sample", "sample path = " + sampleImagePath);Log.d("Sample", " Sample = " + this.getSamplePath());return bitmapSample;

}

public String getResult_mgl() {return result_mgl;

}Kode Sumber 4.4 Baris Kode Fitur Mendapatkan Hasil Uji

Keamanan Makanan pada Kelas Sample

public Integer getCompareResult() {colorBarConversion();sampleImageConversion();similarityMeasure();voteSimilarity();return voteCount()-1;

}Kode Sumber 4.5 Baris Kode Fitur Mendapatkan Hasil Uji

Keamanan Makanan pada Kelas ColorComparators

4.2.2 Fitur Mencatat Data Hasil Uji Keamanan MakananFitur ini digunakan untuk mencatat data hasil uji

keamanan makanan ke basis data yang ada di server.

public class NewFoodTestActivity extendsActionBarActivity implements AsyncResponse{

EditText editTextName;EditText editTextReagent;EditText editTextResult;Button buttonCreate;ImageView imageViewPhoto;

Page 67: Aplikasi Uji Keamanan Berbasis Android

47

private static String url_create_foodtest ="http://10.151.43.62/foodtest";ClientConnect clientConnect = new ClientConnect(this,url_create_foodtest);

private static final String TAG_SUCCESS = "success";

@Overrideprotected void onCreate(final BundlesavedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_new_ft);

setTitle("Tambah Uji");

editTextName = (EditText)findViewById(R.id.etName);

editTextReagent = (EditText)findViewById(R.id.etReagent);

editTextResult = (EditText)findViewById(R.id.etResult);

buttonCreate = (Button)findViewById(R.id.btnCreate);

imageViewPhoto = (ImageView)findViewById(R.id.ivPhoto);

clientConnect.delegate = this;}

private void newFoodTestFunction() {String name = editTextName.getText().toString();String reagent =

editTextReagent.getText().toString();String result =

editTextResult.getText().toString();String name_replaced = name.replaceAll(" ","_");String reagent_replaced = reagent.replaceAll("

","_");String result_replaced = result.replaceAll(" ","_");

if(!name.isEmpty() || !reagent.isEmpty()|| !result.isEmpty()){

progressDialog = newProgressDialog(NewFoodTestActivity.this);

Page 68: Aplikasi Uji Keamanan Berbasis Android

48

progressDialog.setMessage("Menambahkan....");progressDialog.setIndeterminate(false);progressDialog.setCancelable(true);progressDialog.show();

String urlParameter ="/create_foodtest.php?name_FoodTest=" + name_replaced +"&reagent_FoodTest=" + reagent_replaced +"&result_FoodTest=" + result_replaced;

clientConnect.execute(urlParameter);

}else {Toast.makeText(this, "Tolong isi tempat yang

kosong", Toast.LENGTH_SHORT).show();}

}

@Overridepublic void processFinish(String output) {

JSONObject json = new JSONObject();try{

json = new JSONObject(output);}catch (JSONException e){

e.printStackTrace();}progressDialog.dismiss();try{

int success = json.getInt(TAG_SUCCESS);if(success == 1){Intent intent = new Intent(this,

DashboardActivity.class);startActivity(intent);finish();}else {

Toast.makeText(this, "Gagal menambahkan",Toast.LENGTH_SHORT).show();

}}catch (JSONException e) {

e.printStackTrace();}

}Kode Sumber 4.6 Baris Kode Fitur Mencatat Data Hasil Uji

Keamanan Makanan pada Kelas NewFoodTestActivity

Page 69: Aplikasi Uji Keamanan Berbasis Android

49

@Overrideprotected String doInBackground(String... args) {

String resp = "";try {

String urlParameter = args[0].toString();String url_t = this.baseUrl + urlParameter;URL url = new URL(url_t);HttpURLConnection conn = (HttpURLConnection)

url.openConnection();conn.setRequestProperty("Content-Type",

"application/json");conn.setRequestProperty("Accept",

"application/json");conn.setRequestMethod("GET");int statusCode = conn.getResponseCode();InputStream is = null;if (statusCode == 200) {

is = newBufferedInputStream(conn.getInputStream());

BufferedReader br = new BufferedReader(newInputStreamReader(is));

String line = "";while ((line = br.readLine()) != null) {

resp += line;}is.close();return resp;

} else {resp = "{RESP : 'ERROR' }";return resp;

}}catch (Exception e){

return new String("Exc : " + e.getMessage());}

}

@Overrideprotected void onPostExecute(String s) {

delegate.processFinish(s);}

Kode Sumber 4.7 Baris Kode Fitur Mencatat Data Hasil UjiKeamanan Makanan pada Kelas ClientConnect

Page 70: Aplikasi Uji Keamanan Berbasis Android

50

4.2.3 Fitur Menampilkan Data Hasil Uji KeamananMakananFitur ini digunakan untuk menampilkan data hasil uji

keamanan makanan dari basis data yang ada di server. Data yangditampilkan berupa nama makanan, nama reagen, dan hasil uji.

public class DashboardActivity extendsActionBarActivity implements AsyncResponse {

private ProgressDialog progressDialog;private static String url_all_foodtest =

"http://10.151.43.62/foodtest";ClientConnect clientConnect = new

ClientConnect(this, url_all_foodtest);

private static final String TAG_SUCCESS = "success";private static final String TAG_FOODTEST =

"foodtest";private static final String TAG_ID = "id_FoodTest";private static final String TAG_NAME =

"name_FoodTest";private static final String TAG_REAGENT =

"reagent_FoodTest";private static final String TAG_RESULT =

"result_FoodTest";private static final String TAG_PHOTO =

"photo_FoodTest";JSONArray foodtestJSONArray = null;ArrayList<FoodTest> foodtestLists;@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_dashboard);setTitle("Uji Makanan");clientConnect.delegate = this;AllFoodTestFunction();

}private void AllFoodTestFunction() {

String urlParameter = "/get_all_foodtest.php";clientConnect.execute(urlParameter);

}Kode Sumber 4.8 Baris Kode Fitur Menampilkan Data Hasil Uji

Keamanan Makanan pada Kelas ClientConnect

Page 71: Aplikasi Uji Keamanan Berbasis Android

51

19BAB V20PENGUJIAN DAN EVALUASI

Pada bab ini akan dibahas pengujian dan evaluasi dariperangkat lunak dan implementasi aplikasi.

5.1 Lingkungan Pelaksanaan PengujianLingkungan pengujian merupakan perangkat-perangkat

yang dilibatkan dalam proses pengujian. Lingkungan pengujianini menggunakan perangkat bergerak berbasis Android.Spesifikasi lingkungan pengujian dijelaskan pada Tabel 5.1.

Tabel 5.1 Spesifikasi Lingkungan Pengujian PerangkatLunak

Aplikasi Perangkat BergerakJenis Perangkat Telepon Cerdas

Asus Zenfone 4 T001Prosesor Intel Atom Z2520

CPU Dual-core 1.2 GhzGPU PowerVR SGX544MP2

Memori 1 GB RAMKamera Belakang 5 MP, 2592 x 1944 pixelsSistem Operasi AndroidJenis Sistem Operasi v4.4.2 (KitKat)

5.2 Skenario PengujianBagian ini menjelaskan skenario pengujian yang

dilakukan. Pengujian dilakukan adalah pengujian fungsionalitas,pengujian performa sistem, pengujian akurasi, dan pengujiankepada pengguna.

Pengujian fungsionalitas dilakukan menggunakanmetode kotak hitam (black box). Metode ini menekankan padakesesuaian hasil keluaran sistem. Pengujian dilakukan untukmengetahui hasil dari masukan data dan keluaran data. Pada

Page 72: Aplikasi Uji Keamanan Berbasis Android

52

aplikasi ini masukan yang dibutuhkan adalah gambar ujikeamanan makanan dari kamera, nama makanan, dan namareagen. Keluaran yang diharapkan tampil pada aplikasi adalahberupa kadar hasil uji kadar dalam satuan mg/l dan data darihasil uji keamanan makanan lainnya yang telah tercatat padabasis data di server.

Pengujian performa sistem dilakukan untuk melihatperforma sistem dalam menjalankan fitur dari segifungsionalitasnya.

Pengujian akurasi dilakukan dengan melakukan ujimakanan untuk setiap jenis uji dengan sampel yang telahdiketahui nilai kandungannya.

Selain itu pengujian juga dilakukan kepada respondenyang ahli dalam bidang kimia sehingga paham mengenai prosesbisnis pada aplikasi ini.

5.2.1 Pengujian FungsionalitasPada subbab ini akan dijelaskan tentang pengujian

aplikasi dari segi fungsionalitasnya. Pengujian dilakukanberdasarkan setiap spesifikasi kebutuhan. Pengujiandidokumentasikan secara sistematis sebagai tolok ukurkeberhasilan sistem.

5.2.1.1 Pengujian Fitur Mendapatkan Hasil Uji KeamananMakananPada bagian ini menjelaskan fitur untuk mendapatkan

hasil uji keamanan makanan. Pengujian dilakukan denganskenario pengguna telah memasukkan vial atau tabung reaksipada sistem dan aplikasi telah berada pada halaman Tambah Uji.Pengujian ini dapat dilihat pada Gambar 5.2.

Tabel 5.2 Skenario Pengujian Mendapatkan Hasil UjiKeamanan Makanan

Nomor Uji P-01Tujuan Uji Memeriksa apakah sistem dapat

Page 73: Aplikasi Uji Keamanan Berbasis Android

53

mendapatkan hasil uji keamananmakanan.

Kondisi Awal Pengguna telah memasukkan vial atautabung reaksi pada sistem dan aplikasitelah berada pada halaman TambahUji.

MasukanGambar uji yang diambil dari kameraperangkat bergerak, nama makanan,dan nama reagen.

Prosedur Pengujian Pengguna mengambil gambar uji padasistem menggunakan kamera, mengisibaris nama makanan, dan nama reagen.

Hasil yangDiharapkan

Hasil uji berupa nilai kadar zatberdasarkan reagen.

Hasil yang Diperoleh Hasil uji tampil pada aplikasi berupanilai kadar zat berdasarkan reagen.

Kesimpulan Pengujian fitur mendapatkan hasil ujikeamanan makanan berhasil.

Gambar 5.1 Pengujian Mendapatkan Hasil Uji KeamananMakanan

Page 74: Aplikasi Uji Keamanan Berbasis Android

54

Gambar 5.2 Hasil Kadar Zat Telah Didapatkan

5.2.1.2 Pengujian Fitur Mencatat Data Hasil Uji KeamananMakananPada bagian ini menjelaskan fitur mencatat data hasil uji

keamanan makanan. Pengujian dilakukan harus menggunakankoneksi intranet atau jaringan LAN.

Tabel 5.3 Skenario Mencatat Data Hasil Uji KeamananMakanan

Nomor Uji P-02Tujuan Uji Memeriksa apakah sistem dapat

mencatat data hasil uji keamananmakanan dengan tepat.

Kondisi Awal Sistem sudah terhubung dengankoneksi intranet atau jaringan LAN danpengguna sudah mendapatkan hasil ujikeamanan makanan.

Page 75: Aplikasi Uji Keamanan Berbasis Android

55

Masukan Tombol centang (√) pada menu dihalaman Tambah Uji.

Prosedur Pengujian Pengguna menekan tombol centang (√)untuk dapat mencatat data hasil ujikeamanan makanan.

Hasil yangDiharapkan

Data hasil uji keamanan makananmasuk pada basis data di server dansesuai dengan masukan.

Hasil yang Diperoleh Data hasil uji keamanan makananmasuk pada basis data di server dansesuai dengan masukan.

Kesimpulan Pengujian fitur mencatat data hasil ujikeamanan makanan berhasil

Gambar 5.3 Pengujian Mencatat Data Hasil Uji KeamananMakanan

Page 76: Aplikasi Uji Keamanan Berbasis Android

56

5.2.1.3 Pengujian Fitur Menampilkan Data Hasil UjiKeamanan MakananPada bagian ini menjelaskan fitur menampilkan data

hasil uji keamanan makanan. Fitur ini dapat dijalankan ketikapengguna baru membuka aplikasi atau telah mencatat data hasiluji keamanan makanan.

Tabel 5.4 Skenario Menampilkan Data Hasil Uji KeamananMakanan

Nomor Uji P-03Tujuan Uji Memeriksa apakah sistem dapat

menampilkan data hasil uji keamananmakanan.

Kondisi Awal Aplikasi telah terpasang dan sudahterhubung dengan intranet atau jaringanLAN.

Masukan Pengguna menekan logo aplikasi.Prosedur Pengujian Pengguna membuka aplikasi dengan

menekan logo aplikasi hingga tampilhalaman Uji Makanan.

Hasil yangDiharapkan

Sistem menampilkan data uji keamananmakanan pada halaman Uji Makanan.

Hasil yang Diperoleh Data hasil uji keamanan makanantampil pada halaman Uji Makanan.

Kesimpulan Pengujian fitur menampilkan data hasiluji keamanan makanan berhasil.

Page 77: Aplikasi Uji Keamanan Berbasis Android

57

Gambar 5.4 Pengujian Menampilkan Data Hasil UjiKeamanan Makanan

5.2.2 Pengujian Performa SistemPada bagian ini membahas pengujian yang dilakukan

untuk melihat performa sistem dalam mendapatkan hasil uji darisampel. Pengujian performa diukur dengan menghitung waktuyang dibutuhkan untuk mendapatkan hasil uji dari sampel. Setiapjenis uji yang terdapat dalam sampel dilakukan pengujiansebanyak lima kali dan kemudian dicatat waktunya.

Tabel 5.5 Hasil Pengujian Performa SistemReagen Waktu Proses (detik) Rata-

rata1 2 3 4 5Boraks 28.797 33.264 30.812 28.828 28.726 30.085Formalin 26.675 26.16 24.168 24.241 25.224 25.294

Page 78: Aplikasi Uji Keamanan Berbasis Android

58

Rhodamin-B 25.69 25.903 24.708 24.314 24.403 25.004

MethanylYellow 29.276 29.452 28.636 29.107 28.65 29.024

Merkuri 33.827 32.989 33.343 33.876 33.683 33.544

Tabel 5.5 menunjukkan hasil dari pengukuran waktuyang dibutuhkan untuk melakukan pengujian performa sistemuntuk setiap jenis uji.

5.2.3 Pengujian AkurasiPengujian dilakukan untuk mengetahui keakuratan dari

aplikasi dalam menentukan hasil uji keamanan makanan.Skenario uji coba dilakukan dengan melakukan percobaanterhadap reagen yang disimpan yaitu Boraks, Rhodamin-B,Formalin, Methanyl Yellow, dan Merkuri. Percobaan dilakukandengan sampel yang telah diketahui kadar kandungannyasebanyak lima kali percobaan untuk setiap sampel, kemudiandiambil rata-rata akurasi dari setiap kelas dalam satu jenis uji.

Tabel 5.6 Hasil Pengujian Akurasi BoraksBoraks

Kelas sampel(mg/l)

Prediksi tiap percobaan (mg/l)1 2 3 4 5

0 0 0 0 0 050 50 50 50 50 50100 100 100 100 100 50150 150 150 150 150 150200 200 200 200 200 2005000 5000 5000 5000 5000 500010000 10000 10000 10000 10000 10000

Pada Tabel 5.6 menunjukkan hasil pengujian untuk zatBoraks. Terdapat tujuh kelas pada uji Boraks yang merupakanwarna standar kandungan pada reagen Boraks. Pengujian pada

Page 79: Aplikasi Uji Keamanan Berbasis Android

59

kelas 0 mg/l, 50 mg/l, 150 mg/l, 200 mg/l, 5000 mg/l, dan 10000mg/l reagen Boraks menghasilkan kandungan yang sesuaidengan nilai kelasnya. Namun pada kelas 100 mg/l uji Boraksyang sesuai terjadi pada percobaan ke 1, 2, 3, dan 4. Maka dalampengujian kali ini, kelas 0 mg/l, 50 mg/l, 150 mg/l, 200 mg/l,5000 mg/l, dan 10000 mg/l mendapatkan akurasi sebesar 100%.Sedangkan pada kelas 100 mg/l mendapatkan akurasi 80%.Rata-rata akumulasi dari setiap kelas untuk uji Boraks padapengujian ini adalah 97,143%.

Tabel 5.7 Hasil Pengujian Akurasi FormalinFormalin

Kelas sampel(mg/l)

Prediksi tiap percobaan (mg/l)1 2 3 4 5

0 0 0 0 0 02 2 2 2 2 24 4 4 4 4 46 6 6 6 6 48 8 8 6 8 810 10 10 10 8 10

Pada Tabel 5.7 menunjukkan hasil pengujian untuk zatFormalin. Terdapat enam kelas pada uji Formalin yangmerupakan warna standar kandungan pada reagen Formalin.Pengujian pada kelas 0 mg/l, 2 mg/l, dan 4 mg/l reagen Formalinmenghasilkan kandungan yang sesuai dengan nilai kelasnya.Namun pada kelas 6 mg/l, uji Formalin yang sesuai terjadi padapercobaan ke 1, 2, 3, dan 4. Pada kelas 8 mg/l uji Formalin yangsesuai terjadi pada percobaan ke 1, 2, 4, dan 5. Pada kelas 10mg/l uji Formalin sesuai terjadi pada percobaan ke 1, 2, 3, dan 5.Dalam pengujian kali ini, kelas kelas 0 mg/l, 2 mg/l, dan 4 mg/lmendapatkan akurasi 100%, kelas 6 mg/l mendapatkan akurasi80%, kelas 8 mg/l mendapatkan akurasi 80%, kelas 10 mg/lmendapatkan akurasi 80%. Rata-rata akumulasi dari setiap kelasuntuk uji Formalin pada pengujian ini adalah 90%.

Page 80: Aplikasi Uji Keamanan Berbasis Android

60

Tabel 5.8 Hasil Pengujian Akurasi Rhodamin BRhodamin-B

Kelas sampel(mg/l)

Prediksi tiap percobaan (mg/l)1 2 3 4 5

0 0 0 0 0 02 2 2 2 2 210 10 20 10 10 1020 20 20 20 20 2030 30 30 30 30 30Rhodamin40 40 30 40 30 40

Pada Tabel 5.8 menunjukkan hasil pengujian untuk zatRhodamin-B. Terdapat enam kelas pada uji Rhodamin-B yangmerupakan warna standar kandungan pada reagen Rhodamin-B.Pengujian pada kelas 0 mg/l, 2 mg/l, 20 mg/l, dan 30 mg/l reagenRhodamin-B menghasilkan nilai kandungan yang sesuai dengankelasnya. Namun pada kelas 10 mg/l, uji Rhodamin-B yangsesuai terjadi pada percobaan ke 1, 3, 4, dan 5. Pada kelas 40mg/l uji Rhodamin-B yang sesuai terjadi pada percobaan ke 1, 3,dan 5. Dalam pengujian kali ini, kelas 0 mg/l, 2 mg/l, 20 mg/l,dan 30 mg/l mendapatkan akurasi 100%, kelas 10 mg/lmendapatkan akurasi 80%, dan kelas 40 mg/l mendapatkanakurasi 60%. Rata-rata akumulasi dari setiap kelas untuk ujiRhodamin-B pada pengujian ini adalah 90%.

Tabel 5.9 Hasil Pengujian AkurasiMethanyl YellowMethanyl Yellow

Kelas sampel(mg/l)

Prediksi tiap percobaan (mg/l)1 2 3 4 5

0 0 0 0 0 050 50 50 50 50 50100 100 100 100 100 100150 150 150 150 150 150

Page 81: Aplikasi Uji Keamanan Berbasis Android

61

200 200 200 200 200 2005000 5000 5000 5000 200 500010000 10000 10000 10000 10000 10000

Pada Tabel 5.9 menunjukkan hasil pengujian untuk zatMethanyl Yellow. Terdapat tujuh kelas pada uji Methanyl Yellowyang merupakan warna standar kandungan pada reagen MethanylYellow. Pengujian pada kelas 0 mg/l, 50 mg/l, 100 mg/l, 150 mg/l,200 mg/l, dan 10000 mg/l reagen Methanyl Yellow menghasilkannilai kandungan yang sesuai dengan kelasnya. Namun pada kelas5000 mg/l, uji Methanyl Yellow yang sesuai terjadi padapercobaan ke 1, 2, 3, dan 5. Dalam pengujian kali ini, elas 0 mg/l,50 mg/l, 100 mg/l, 150 mg/l, 200 mg/l, dan 10000 mg/lmendapatkan akurasi 100%, dan kelas 5000 mg/l mendapatkanakurasi 80%. Rata-rata akumulasi dari setiap kelas untuk ujiMethanyl Yellow pada pengujian ini adalah 97,143%

Tabel 5.10 Hasil Pengujian Akurasi MerkuriMerkuri

Kelas sampel(mg/l)

Prediksi tiap percobaan (mg/l)1 2 3 4 5

0 0 0 0 0 050 50 50 50 50 50100 100 100 100 100 100150 150 150 150 150 150200 200 200 200 200 2001000 1000 200 200 1000 10002000 3000 2000 2000 2000 20003000 3000 3000 3000 2000 3000

Pada Tabel 5.10 menunjukkan hasil pengujian untuk zatMerkuri. Terdapat delapan kelas pada uji Merkuri yangmerupakan warna standar kandungan pada reagen Merkuri.Pengujian pada kelas 0 mg/l, 50 mg/l, 100 mg/l, 150 mg/l, dan200 mg/l reagen Merkuri menghasilkan nilai kandungan yang

Page 82: Aplikasi Uji Keamanan Berbasis Android

62

sesuai dengan kelasnya. Namun pada kelas 1000 mg/l, ujiMerkuri yang sesuai terjadi pada percobaan ke 1, 4, dan 5. Padakelas 2000 mg/l uji Merkuri yang sesuai terjadi pada percobaanke 2, 3, 4, dan 5. Pada kelas 3000 mg/l uji Merkuri yang sesuaiterjadi pada percobaan ke 1, 2, 3, dan 5. Dalam pengujian kali ini,kelas 0 mg/l, 50 mg/l, 100 mg/l, 150 mg/l, dan 200 mg/lmendapatkan akurasi 100%, kelas 1000 mg/l mendapatkanakurasi 60%, kelas 2000 mg/l mendapatkan akurasi 80%, dankelas 3000 mg/l mendapatkan akurasi 80%. Rata-rata akumulasidari setiap kelas untuk uji Merkuri pada pengujian ini adalah90%.

5.2.4 Pengujian Kepada PenggunaSelain pengujian yang dilakukan untuk melihat

kesesuaian masukan dengan keluaran lewat pengujian fungsional,dilakukan juga pengujian yang dilakukan kepada pengguna yangahli dalam bidang kimia untuk mengetahui kesesuaian prosesyang ada dalam sistem dengan fakta yang ada di lapangan danmemberikan umpan balik terhadap aplikasi ini.

Pengujian dilakukan dengan skenario penggunamelakukan uji keamanan makanan pada sistem dan aplikasi ini.Pengguna juga diminta untuk memprediksi hasil uji untukdibandingkan dengan prediksi sistem. Setelah itu pengguna jugamenguji fungsionalitas dari aplikasi.

Tabel 5.11 Data PenggunaNo. Nama Profesi Instansi

1 Dr. Titik Taufikurohmah,M.Si

Dosen,Praktisi

Unesa,Jurusan Kimia

2 Farah Medina Mahasiswa Unair, JurusanFarmasi

Tabel 5.12 Hasil Penggunaan Aplikasi Kepada Pengguna ke-1Jenis Uji / Reagen Prediksi Anda Prediksi SistemRhodamin-B 10 mg/l 10 mg/l

Page 83: Aplikasi Uji Keamanan Berbasis Android

63

Rhodamin-B 30 mg/l 40 mg/lRhodamin-B 2 mg/l 10 mg/lRhodamin-B 7 mg/l 10 mg/l

Tabel 5.13 Hasil Penggunaan Aplikasi Kepada Pengguna ke-2Jenis Uji / Reagen Prediksi Anda Prediksi SistemRhodamin-B 10 mg/l 10 mg/lRhodamin-B 2 mg.l 2 mg/lBorax 0 / 50 mg/l 50 mg/lBorax 100 mg/l 100 mg/l

Tabel 5.14 Hasil Pengujian Kepada Pengguna ke-1No. Kebutuhan Fungsional Terpenuhi1. Mendapatkan hasil uji keamanan makanan √2. Mencatat hasil pengujian ke dalam basis data

di server.√

3. Menampilkan data hasil uji. √

Tabel 5.15 Hasil Pengujian Kepada Pengguna ke-2No. Kebutuhan Fungsional Terpenuhi1. Mendapatkan hasil uji keamanan makanan √2. Mencatat hasil pengujian ke dalam basis data

di server.√

3. Menampilkan data hasil uji. √

5.3 Evaluasi PengujianPada subbab ini akan dijelaskan evaluasi dari pengujian

fungsionalitas, pengujian performa sistem, pengujian akurasi,dan pengujian kepada pengguna.

5.3.1 Evaluasi Pengujian FungsionalitasPengujian Fungsionalitas yang telah dilakukan

memberikan hasil yang sesuai dengan skenario yang telahdirencanakan. Evaluasi pengujian pada masing-masing

Page 84: Aplikasi Uji Keamanan Berbasis Android

64

fungsionalitas akan dijelaskan sebagai berikut.1. Pengujian mendapatkan hasil uji keamanan makanan sesuaidengan yang diharapkan. Kondisi ini diperlihatkan padapengujian P-01 yang menampilkan hasil uji makanan padaaplikasi berupa nilai kadar zat yang berdasarkan reagen.

2. Pengujian mencatat data hasil uji keamanan makanan sesuaidengan yang diharapkan. Kondisi ini diperlihatkan padapengujian P-2 yang memberikan informasi bahwa data hasiluji keamanan makanan masuk pada basis data di server dansesuai dengan masukan.

3. Pengujian menampilkan data hasil uji keamanan makanansesuai dengan yang diharapkan. Kondisi ini diperlihatkanpada pengujian P-03 yang memberikan informasi bahwa datahasil uji keamanan makanan tampil pada halaman UjiMakanan.

5.3.2 Evaluasi Pengujian Performa Sistem

Performa sistem diukur dengan menghitung waktu yangdibutuhkan untuk mendapatkan hasil uji dari sampel. Setiap jenisuji yang terdapat dalam sampel dilakukan pengujian sebanyaklima kali dan kemudian dicatat waktunya. Evaluasi dilakukandengan merekapitulasi rata-rata dari pengujian di setiap jenis uji.Disertakan pula jumlah warna standar pada setiap jenis uji untukmengetahui hubungan jumlah warna standar dengan pengujianperforma.

Tabel 5.14 Rekapitulasi Performa Sistem Setiap Jenis UjiJenis Uji Warna Standar Rata-Rata

Boraks 7 30.085Formalin 6 25.294Rhodamin-B 6 25.004Methanyl Yellow 7 29.024Merkuri 8 33.544

Page 85: Aplikasi Uji Keamanan Berbasis Android

65

Pada Tabel 5.14, kolom pertama menunjukkan jenis uji,kolom kedua menunjukkan banyaknya warna standar pada tiapjenis uji, dan kolom ketiga menunjukkan rata-rata performa tiapjenis uji. Terlihat waktu untuk jenis uji yang memiliki warnastandar lebih sedikit akan membutuhkan waktu lebih cepatsedangkan waktu untuk jenis uji yang memiliki warna standarlebih banyak akan membutuhkan waktu lebih lama. Rata-rataakumulasi performa dari semua jenis uji adalah 92,857 detik.

5.3.3 Evaluasi Pengujian Akurasi

Pengujian akurasi dilakukan untuk menghasilkan akurasipengujian dari setiap jenis uji. Evaluasi dilakukan denganmerekapitulasi setiap akurasi dari jenis uji tersebut. Tabel 5.15menunjukkan rekapitulasi dari setiap hasil uji akurasi pada tiapjenis uji.

Tabel 5.15 Rekapitulasi Akurasi Setiap Jenis UjiNo. Jenis Uji Akurasi1 Boraks 97,143%2 Formalin 90%3 Rhodamin-B 90%4 Methanyl Yellow 97,143%5 Merkuri 90%

Kolom kedua menunjukkan jenis uji dan kolom ketigamenunjukkan hasil akurasi dari pengujian yang dilakukan. Padapengujian kali ini rata-rata dari akumulasi semua jenis uji jikadisatukan maka menghasilkan akurasi sebesar 92,857%.

Page 86: Aplikasi Uji Keamanan Berbasis Android

66

[Halaman ini sengaja dikosongkan]

Page 87: Aplikasi Uji Keamanan Berbasis Android

67

BAB VIKESIMPULAN DAN SARAN

Pada bab ini akan diberikan kesimpulan yang diambilselama pengerjaan tugas akhir beserta saran-saran tentangpengembangan yang dapat dilakukan terhadap tugas akhir ini dimasa yang akan datang

6.1 Kesimpulan

Dari hasil selama proses perancangan, implemetasi, dan ujicoba perangkat lunak yang dilakukan, dapat diambil kesimpulansebagai berikut:1. Aplikasi perangkat lunak yang dibangun mendukung proses

uji makanan. Aplikasi ini berbasis Android dandiimplementasikan pada perangkat bergerak yangmempunyai spesifikasi sistem operasi Android 4.3 JellyBean, CPU 1.2 GHz, memori 1 GB, dan kamera 5 MP

2. Menggunakan sebuah alat bantu berupa berupa kotak hitamdengan bahan akrilik yang di dalamnya terdapat kontainerbewarna putih yang berbahan plastik untuk tempat tabungreaksi dan sebuah lampu LED.

3. Aplikasi dibuat dengan pemrograman Java yang dapatmendeteksi warna RGB dengan menggunakan librarygrafis dari Android bernama Color. Pada library ini terdapatfungsi yang bisa mendapatkan warna RGB, yaitu merah,hijau, dan biru secara terpisah.

4. Metode klasifikasi KNN digunakan untuk menentukankelas dari daftar warna sampel sebagai data uji dan daftarwarna standar referensi sebagai data latih.

5. Aplikasi uji makanan yang diimplementasikan padaperangkat bergerak adalah sebagai sisi client. Sedangkanserver dijalankan pada sebuah PC untuk menjalankan basisdata saja. Untuk menghubungkan sisi client dan serverdiatur pada kelas ClientConnect.

Page 88: Aplikasi Uji Keamanan Berbasis Android

68

6.2 Saran

Berikut merupakan beberapa saran mengenai pengembanganlebih lanjut aplikasi perangkat lunak uji makanan berbasisAndroid berdasarkan hasil rancangan, implementasi, dan uji cobayang telah dilakukan.1. Diharapkan kedepannya aplikasi ini bisa diimplementasikan

di semua perangkat bergerak tanpa perlu ada penyesuaianulang pada tiap perangkat bergerak yang akan dipasangaplikasi.

2. Pada aplikasi ini menggunakan metode KNN yangmembutuhkan waktu cukup lama dalam memproses gambarsampel. Diharapkan kedepannya performa aplikasi dalammendeteksi uji makanan dapat ditingkatkan baik dari sisioptimasi maupun algoritma.

3. Pada aplikasi ini memiliki memiliki kelemahan dalammembedakan kelas warna yang sangat mirip padamasing-masing jenis uji. Diharapkan kedepannya terdapatmetode yang lebih baik untuk membandingkan warnatersebut.

Page 89: Aplikasi Uji Keamanan Berbasis Android

69

DAFTAR PUSTAKA

[1] BPOM, "Laporan Kinerja Badan POM," 2014. [Online].Tersedia:http://www.pom.go.id/new/index.php/browse/lap_to_nation/23-12-2004/23-12-2014/1. [Diakses 23 Desember 2014].

[2] Alliance, "Android," 2007. [Online]. Tersedia:http://www.openhandsetalliance.com/android_overview.html. [Diakses 24 Desember 2014].

[3] Alliance, " Industry Leaders Announce Open Platform forMobile Devices," 5 November 2007. [Online]. Tersedia:http://www.openhandsetalliance.com/press_110507.html.[Diakses 24 Desember 2014].

[4] J. Gosing, B. Joy; G. Steele, G. Bracha, A. Buckley, TheJava® Language Specification (Java SE 8 edition), pp.21-25, 2015.

[5] X. Ducrohet , "Android Studio: An IDE built for Android ,"15 Mei 2013. [Online]. Tersedia:http://android-developers.blogspot.in/2013/05/android-studio-ide-built-for-android.html. [Diakses 24 Desember 2014].

[6] Oracle, "About MySQL," 2015. [Online]. Tersedia:http://www.mysql.com/about/. [Diakses 24 Desember2014].

[7] "Pengenalan JSON," [Online]. Tersedia:http://www.json.org/json-id.html. [Diakses 24 Desember2014].

Page 90: Aplikasi Uji Keamanan Berbasis Android

70

LAMPIRANA - KODE SUMBER

Lampiran berikut berisi kode sumber penting yangmerupakan fungsi kontrol dari aplikasi. Kelas yang dilampirkandiantaranya kelas KNNClassifier.

package com.example.ahmadfauzi.testconnect.data_mining;

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;

/*** Created by Ahmad Fauzi on 5/21/2015.*/public class KNNClassifier {

private ArrayList<ArrayList<Double>> dataTraining;private ArrayList<ArrayList<Double>> dataTesting;private ArrayList<ArrayList<Pair>> distances;private ArrayList<ArrayList<Double>> centroid;

private ArrayList<Integer> classResult;private ArrayList<Integer> vote;private int numberOfClass;private int numberOfDataEachClass;private int K=1;public int getNumberOFClass() {

return numberOfClass;}

public void setNumberOFClass(int numberOFClass) {this.numberOfClass = numberOFClass;this.numberOfDataEachClass =

this.dataTraining.size()/this.numberOfClass;System.out.println("n data train : "

+this.dataTraining.size()+" dataperclass :"+this.numberOfDataEachClass);

}

public KNNClassifier(ArrayList<ArrayList<Double>>dataTraining,ArrayList<ArrayList<Double>> dataTesting) {

this.dataTraining = dataTraining;this.dataTesting = dataTesting;this.classResult = new ArrayList<>();

}

Page 91: Aplikasi Uji Keamanan Berbasis Android

71

public void printArray2dPair(ArrayList<ArrayList<Pair>> array) {System.out.println("array data : ");for (ArrayList<Pair> arrayList : array) {

for (Pair double1 : arrayList) {

System.out.print(double1.distance+","+double1.toIndex+" ");}System.out.println();

}}

public ArrayList<Integer> getPrediction(){centroid = new ArrayList<ArrayList<Double>>();this.centroid = this.obtainCentroid(dataTraining);this.checkOutlier(this.dataTesting);

this.measureDistance(this.dataTraining, this.dataTesting);//printArray2dPair(this.distances);System.out.println("masuk voting");this.voting();System.out.println("selesai voting");for (Integer integer : classResult) {

System.out.println("result "+integer);}return this.classResult;

}

public Double getEuclidianDistance(ArrayList<Double>test,ArrayList<Double> train){

double distance = 0.0;double sum = 0.0;

ArrayList<Double> delta = new ArrayList<Double>();for(int i=0;i<test.size();i++) {

delta.add(test.get(i)-train.get(i));}

ArrayList<Double> deltaPow = new ArrayList<Double>();for(int i=0;i<delta.size();i++) {

deltaPow.add(Math.pow(delta.get(i), 2));}

for(int i=0;i<deltaPow.size();i++) {sum+= deltaPow.get(i);

}

distance = Math.sqrt(sum);

Page 92: Aplikasi Uji Keamanan Berbasis Android

72

return distance;}

public void measureDistance(ArrayList<ArrayList<Double>>dataTrain,ArrayList<ArrayList<Double>> dataTest) {

this.distances = new ArrayList<ArrayList<Pair> >();for (ArrayList<Double> listTest : dataTest) {

//System.out.println("size test : "+listTest.size());ArrayList<Pair> distance = new ArrayList<Pair>();for (ArrayList<Double> listTrain : dataTrain) {

double euclidDist =getEuclidianDistance(listTest,listTrain);

if(listTest.get(listTest.size()-1) == 1.0) {distance.add(new Pair(euclidDist, 0.0) );

}else {

distance.add(new Pair(euclidDist,listTrain.get(listTrain.size()-1)) );

}}

Collections.sort(distance, new Comparator<Pair>() {@Overridepublic int compare(Pair pair1, Pair pair2) {

returnpair1.getDistance().compareTo(pair2.getDistance());

}});this.distances.add(distance);

}}

public void voting() {for (ArrayList<Pair> distance : this.distances) {

ArrayList<Integer> voteClass = new ArrayList<Integer>();

for(int i=0;i<=this.numberOfClass;i++) {voteClass.add(0);

}

for(int i=0;i<this.K;i++) {//System.out.println(distance.get(i).getToIndex());double index = distance.get(i).getToIndex();//System.out.println("index"+index);voteClass.set((int) index, voteClass.get((int)

index)+1);}

Page 93: Aplikasi Uji Keamanan Berbasis Android

73

int top = 0;int topVotes= 0 ;for(int i=0;i<=this.numberOfClass;i++) {

if(i == 0) {top = i;topVotes = voteClass.get(i);

}else if(topVotes < voteClass.get(i)) {

top = i;topVotes = voteClass.get(i);

}//System.out.println("top "+top);

}this.classResult.add(top);

}}

public ArrayList<ArrayList<Double>>obtainCentroid(ArrayList<ArrayList<Double>> dataTraining){

ArrayList<ArrayList<Double>> centroid = newArrayList<ArrayList<Double>>();

for (int i=1;i<=this.numberOfClass;i++) {ArrayList<Double> dataPerClass = new ArrayList<Double>();for (int j=0;j<dataTraining.size();j++) {

double classTrain =dataTraining.get(j).get(dataTraining.get(j).size()-1);

if(classTrain == (double)i) {if(dataPerClass.isEmpty()) {

dataPerClass.addAll(dataTraining.get(j));}else {

for (intk=0;k<dataTraining.get(j).size();k++) {

//System.out.println("loading ...");double value = dataPerClass.get(k);double valueTrain =

dataTraining.get(j).get(k);dataPerClass.set(k,value+valueTrain );

}}

}}for (int j=0;j<dataPerClass.size();j++) {

double value = dataPerClass.get(j);

dataPerClass.set(j,value/this.numberOfDataEachClass);}centroid.add(dataPerClass);

Page 94: Aplikasi Uji Keamanan Berbasis Android

74

}for (ArrayList<Double> double1 : centroid) {

System.out.println("centroid : "+double1);}return centroid;

}

public Double getTresHold() {double treshold = 0.0;for (int i=0;i<centroid.size();i++) {

if(i != centroid.size()-1){

if(treshold<this.getEuclidianDistance(centroid.get(i),centroid.get(i+1))) {

treshold =this.getEuclidianDistance(centroid.get(i), centroid.get(i+1));

//System.out.println("distance centroid : "+i+""+(i+1)+" "+this.getEuclidianDistance(centroid.get(i),centroid.get(i+1)));

}}

}return treshold;

}

public void checkOutlier(ArrayList<ArrayList<Double>> dataTest){

boolean isOutlier = true;double treshold = this.getTresHold();for (ArrayList<Double> list : dataTest) {

//System.out.println("treshold : "+treshold);for (ArrayList<Double> listCentroid : this.centroid) {

double distance = this.getEuclidianDistance(list,listCentroid);

//System.out.println("dist : "+distance);if(distance < (double) treshold) {

isOutlier = false;break;

}}if(isOutlier == true) {

list.add(1.0);}else {

list.add(0.0);}//System.out.println("outlier :

"+list.get(list.size()-1));

Page 95: Aplikasi Uji Keamanan Berbasis Android

75

}}

}

Kode SumberA.1 Kelas KNNClassifier

Page 96: Aplikasi Uji Keamanan Berbasis Android

76

LAMPIRAN B - PANDUAN PENGGUNA

Berikut adalah panduan untuk pengguna dalam melakukanuji sampel :

1. Siapkan sampel pada tabung reaksi dengan takaran minimal 5ml.

Gambar B.1. Sampel dalam Tabung Reaksi

2. Bersihkan bagian luar tabung reaksi dengan tisu bersih untukmengoptimalkan gambar sampel yang diambil.

3. Masukkan sampel ke dalam perangkat kotak hitam.

Page 97: Aplikasi Uji Keamanan Berbasis Android

77

Gambar B.2. Masukkan sampel

4. Pasang penutup yang disediakan supaya cahaya tidak masuk

Gambar B.3 Pasang penutup

Page 98: Aplikasi Uji Keamanan Berbasis Android

78

5. Buka aplikasi Uji Makanan

Gambar B.4 Ilustrasi membuka aplikasi

6. Tekan tombol plus (+) untuk menambah uji.

Gambar B.5 Tombol untuk menambah uji

Page 99: Aplikasi Uji Keamanan Berbasis Android

79

7. Tekan tombol Ambil Gambar untuk mengambil gambarsampel pada tabung reaksi.

Gambar B.6 Tombol untuk mengambil gambar

8. Sesuaikan kamera dengan lubang pada kotak hitam tempatuntuk mengambil gambar sampel.

Gambar B.7 Lubang untuk mengambil gambar sampel

Page 100: Aplikasi Uji Keamanan Berbasis Android

80

9. Isi nama makanan, pilih reagen, dan tekan tombol Lihat Hasil.

Gambar B.8 Isi kolom nama makanan, pilih reagen, dantombol untuk mendeteksi kadar

10. Aplikasi akan mendeteksi kadar uji dari sampel.

Gambar B.9 Kadar zat yang terdeteksi

Page 101: Aplikasi Uji Keamanan Berbasis Android

81

11. Tekan menu centang (√) untuk mencatat di basis data.

Gambar B.10 Tombol untuk mencatat ke basis data

12. Hasil yang tercatat dalam basis data akan ditampilkan dihalaman utama

Gambar B.11 Halaman utama aplikasi

Page 102: Aplikasi Uji Keamanan Berbasis Android

82

LAMPIRAN C - KUESIONER PENGGUNA

Bagian ini melampirkan kuesioner kebutuhan aplikasikepada pengguna yang ahli dalam bidang kimia untukmengetahui kesesuaian proses yang ada dalam sistem denganfakta yang ada di lapangan dan memberikan umpan balikterhadap aplikasi ini. Berikut adalah kuesioner yang diajukan.

Survei PenggunaAlat Bantu Uji Keamanan MakananPhotoM-X01

NamaProfesiInstansiE-mail

Terima kasih telah bersedia mengikuti survei untuk pengujianalat bantu uji keamanan makanan PhotoM-X01, kami memintakesediaan anda untuk mengisi lembar survei berikut tentangpengalaman anda menggunakan sistem kami.

1. Apakah anda pernah melakukan Uji Kemanan Makanan ?Ya Tidak

2. Dalam menggunakan sistem kami, jenis pengujian apa sajayang anda lakukan? berapa nilai kandungan menurut andadan berapa nilai yang dihasilkan sistem sesuai dengan warnastandar yang diberikan? Isi sesuai tabel berikut.

Page 103: Aplikasi Uji Keamanan Berbasis Android

83

Jenis Uji/Reagen Prediksi Anda Prediksi Sistem

3. Mohon isi tabel daftar fungsionalitas dari sistem berikut danisi dengan Ya/Tidak di kolom terpenuhi.

No Kebutuhan Fungsional Terpenuhi1 Mendapatkan hasil uji keamanan makanan

2 Memilih reagen lain3 Menyimpan hasil pengujian ke dalam basis

data di server.4 Menampilkan data hasil uji

Lembar Feedback Alat Bantu uji Keamanan Makanan“PhotoM-X01”

NamaProfesiInstitusiE-Mail

Terima kasih telah bersedia mengikuti survei untuk pengujianalat bantu uji keamanan makanan PhotoM-X01, kami memintakesediaan anda untuk mengisi lembar feedback berikut tentangpengalaman anda menggunakan sistem kami

Page 104: Aplikasi Uji Keamanan Berbasis Android

84

Pertanyaan

1. Apakah antarmuka sistem dalam aplikasi ini mudah untukdimengerti dan membantu anda menggunakan sistem ini?Jika tidak, tolong sebutkan di bagian menu apa andamengalami kesulitan.

2. Apakah dalam menggunakan hal ini anda memiliki keluhandalam performa aplikasi ( kecepatan proses , keakuratan,dll) ? jika ya, tolong sebutkan di bagian menu apa andamemilii keluhan.

Page 105: Aplikasi Uji Keamanan Berbasis Android

85

3. Apakah proses bisnis yang berlaku dalam uji makanan telahsesuai dengan proses bisnis yang disediakan sistem? jikaterdapat perbedaan, tolong sebutkan di bagian mana prosesyang berbeda.

4. Tolong tuliskan saran ataupun kritik anda setelahmenggunakan sistem yang kami buat.