bab ii landasan teori - repository.nusamandiri.ac.id filebab ii landasan teori 2.1. ... (forward...
TRANSCRIPT
9
BAB II
LANDASAN TEORI
2.1. Tinjauan Jurnal
Agar aplikasi yang dibuat penulis dapat dipertanggungjawabkan secara
akademis, maka penulis akan menampilkan penelitian sebelumnya yang berkaitan
dengan aplikasi yang akan dibuat penulis.
Penelitian yang berjudul “Aplikasi tes buta warna dengan metode ishihara
pada smartphone android” (Dhika, Randy, Ernawati, 2014). Pada penelitian ini,
membangun suatu aplikasi tes buta warna dengan metode Ishihara pada smartphone
android. Penentuan jenis buta warna dilakukan dengan menghitung jumlah nilai
benar yang mengimplementasikan metode Ishihara. Metode pengembangan sistem
yang digunakan untuk membangun aplikasi ini adalah model sekuensial linier dan
UML sebagai perancangan sistem. Pengujian Stratified Sampling dilakukan pada
user acak baik buta warna maupun berpenglihatan normal.
Penelitian yang berjudul “Penerapan Metode Ishihara Untuk Mendeteksi
Buta Warna Sejak Dini Berbasis Android” (Octaviano & Umbari, 2017). Pada
penelitian ini menjelaskan bahwa Penglihatan warna merupakan salah satu fungsi
penglihatan yang penting dalam kehidupan sehari-hari. Akan tetapi, tidak semua
orang dikaruniai kemampuan penglihatan warna yang normal. Salah satunya adalah
penderita defisiensi penglihatan warna atau lebih dikenal dengan istilah buta warna.
Buta warna adalah suatu keadaan dimana seseorang tidak dapat
10
membedakan warna tertentu yang bisa dibedakan oleh orang lain dengan mata
normal. Tingkat mobilitas dan kesibukan saat ini membuat rendahnya kesadaran
dan kurangnya pengetahuan masyarakat mengenai kelainan buta warna, serta
melakukan tes buta warna sejak dini. Gangguan buta warna dapat diketahui dengan
melakukan test buta warna menggunakan buku tes metode Ishihara. Penilitan ini
bertujuan untuk membuat aplikasi tes buta warna yang mengimplementasikan
Metode Ishihara dengan teknik penalaran maju (forward chaining). Jenis buta
warna yang dapat di identifikasi pada aplikasi ini yaitu: penglihatan normal, buta
warna parsial, dan buta warna total. Aplikasi ini dirancang berbasis android
menggunakan bahasa pemrograman Java dan XML serta menggunakan metode
Artificial Intellegence dilanjutkan dengan pengujian sistem dengan menggunakan
metode black-box dan white-box. Dengan adanya aplikasi ini dapat disimpulkan
bahwa aplikasi tes buta warna berbasis android dengan menggunakan metode
Ishihara dapat mempermudah masyarakat untuk melakukan tes buta warna guna
mengetahui gangguan penglihatan warna terhadap mata dengan hasil diagnosa yang
dapat diperoleh secara langsung melalui smartphone android.
Penelitian yang berjudul “Perancangan aplikasi pembaca warna untuk
penderita buta warna berbasis android” (Ellanda, Aulia, & Hariyani, 2014). Pada
penelitian ini, mengusulkan sebuah sistem untuk membantu penyandang cacat buta
warna dalam membedakan warna (dalam hal ini adalah warna dasar yaitu merah,
hijau, dan biru). Sistem ini bekerja dengan memanfaatkan teknologi smartphone
berbasis android dengan algoritma image processing. Input dari sistem ini diambil
langsung dengan meng-capture objek kemudiaan diproses oleh aplikasi. Outputnya
berupa text dan voice yang menyebutkan warna hasil deteksi dari input tersebut.
11
Penelitian yang berjudul “Rancang Bangun Aplikasi Pengenalan Warna
Objek Bagi Penyandang Buta Warna Berbasis Web” (Afkarina, Manal,
Moechammad, & Hudiono, 2017). Pada penelitian ini menjelaskan bahwa Buta
warna adalah suatu gangguan penglihatan pada warna-warna tertentu. Setidaknya
terdapat dua jenis buta warna yaitu buta warna total dan buta warna parsial.
Seseorang dapat diketahui dirinya buta warna atau tidak dilakukan dengan cara tes
buta warna yang saat ini menjadi salah satu syarat yang diminta beberapa
perusahaan saat membuka lowongan kerja, sehingga seseorang yang memiliki
kelainan dalam memandang suatu objek seperti menyandang buta warna akan
menjadi pertimbangan bagi setiap perusahaan. Mempertimbangkan kenyataan di
atas, maka dilakukan penelitian berupa rancang bangun aplikasi untuk
memudahkan penyandang buta warna dalam membaca warna objek yang ada
sekitarnya sesuai dengan buta warna yang dimiliki. Aplikasi yang berbasis web ini
dapat diakses menggunakan perangkat handphone/laptop yang terhubung ke
jaringan internet. Pada awalnya aplikasi akan memberikan tes buta warna untuk
mengetahui jenis buta warna serta berapa persen normal penglihatan warna objek
yang disandang. Setelah diketahui jenis dan tingkat buta warnanya, selanjutnya
pengguna dapat mengunggah gambar atau mengambil gambar objek secara
langsung menggunakan kamera yang ada di handphone/laptop untuk diproses
sehingga warna gambar/objek dapat lebih jelas dikenali oleh pengguna buta warna.
Pemrosesan perubahan warna objek/gambar digunakan filter CSS agar dapat
mengubah warna yang tidak dapat dilihat menjadi warna yang dapat dilihat oleh
penyandang buta warna. Hasil pengujian tes buta warna yang telah dilakukan
kepada lima pengguna yang merupakan penyandang buta warna berbeda dan
12
diulang sebanyak lima kali, dapat diketahui bahwa hasil dari tes yang dilakukan
selalu hampir sesuai dengan yang keadaan disandang pengguna. Adapun hasil
pengujian gambar objek yang diunggah telah mampu memberikan hasil penglihatan
yang berbeda pada suatu objek. Aplikasi ini telah mampu memberikan pengaruh
yang baik bagi penyandang buta warna yaitu penyandang mampu melihat suatu
objek dengan lebih detail dan banyak warna.
2.2. Konsep Dasar Program
2.2.1. Android
Menurut Supardi (2017:1), Android merupakan Sistem Operasi berbasis
Linux yang digunakan untuk telepon seluler (mobile), seperti telepon pintar
(smartphone) dan Komputer Tablet (PDA). Android mulanya didirian oleh Andy
Rubin, Rich Miner, Nick Sears, dan Chris White pada tahun 2003.
Pada tahun 2005, Andy Rubin dan Larry Page melakukan pertemuan di
kantor Google, pertemuan tersebut bukan pertemuan pertama. Mereka telah
berjumpa tiga tahun sebelumnya, ketika Andy Rubin akan merilis smartphone yang
dibuatnya. Smartphone tersebut diberi nama “Sidekick” yang memakai mesin
pencari (Search Engine) default Google. Google meminang Android pada bulan Jli
2005, diestimasi harganya sekitar USD 50 Juta.
Menurut Google Developer Traning Team dalam E-book Android
Developer Fundamental Course (2016:5), Android adalah sistem operasi dan
platform pemrograman yang dikembangkan oleh Google untuk ponsel cerdas dan
perangkat seluler lainnya (seperti tablet). Android bisa berjalan di beberapa macam
perangkat dari banyak produsen yang berbeda. Android menyertakan kit
13
development perangkat lunak untuk penulisan kode asli dan perakitan modul
perangkat lunak untuk membuat aplikasi bagi pengguna Android. Android juga
menyediakan pasar untuk mendistribusikan aplikasi. Secara keseluruhan, Android
menyatakan ekosistem untuk aplikasi seluler.
Android menyediakan antarmuka pengguna (UI) layar sentuh untuk
berinteraksi dengan aplikasi. Antarmuka pengguna Android sebagian besar
berdasarkan pada manipulasi langsung, menggunakan isyarat sentuhan seperti
menggesek, mengetuk, dan mencubit untuk memanipulasi objek di layar. Selain
keyboard, ada keyboard virtual yang bisa disesuaikan untuk masukan teks. Android
juga bisa mendukung pengontrol game dan keyboard fisik berukuran penuh yang
dihubungkan dengan Bluetooth atau USB.
Android didesain untuk menyediakan respons cepat terhadap masukan
pengguna. Selain antarmuka sentuh yang berubah- ubah, kemampuan getaran
perangkat Android bisa menyediakan umpan balik sentuhan. Perangkat keras
internal seperti akselerometer, giroskop, dan sensor kedekatan, digunakan oleh
banyak aplikasi untuk merespons tindakan pengguna tambahan. Sensor tersebut
bisa mendeteksi rotasi layar dari potret ke lanskap untuk tampilan yang lebih lebar
atau sensor bisa memungkinkan pengguna untuk menyetir kendaraan virtual dengan
memutar perangkat seolah-olah setir mobil.
Platform Android, berdasarkan pada kernel Linux, terutama didesain untuk
perangkat seluler layar sentuh seperti ponsel cerdas dan tablet. Karena perangkat
Android biasanya bertenaga baterai, Android didesain untuk mengelola proses guna
menjaga konsumsi daya tetap minimum, sehingga menyediakan penggunaan
baterai lebih lama.
14
Google menyediakan peningkatan versi bertahap utama untuk sistem
operasi Android setiap enam hingga sembilan bulan, menggunakan nama bertema
makanan. Rilis utama yang terbaru adalah Android 8.0 "Oreo".
Tabel II.1 Versi Android
Nama Kode Nomor Versi Tanggal Rilis Awal API
Level
N/A 1.0 23 Sepember 2008 1
N/A 1.1 9 Februari 2009 2
Cupcake 1.5 27 April 2009 3
Donut 1.6 15 September 2009 4
Éclair 2.0 - 2.1 26 Oktober 2009 5 - 7
Froyo 2.2 - 2.2.3 20 Mei 2010 8
Gingerbread 2.3 - 2.3.7 6 Desember 2010 9 - 10
Honeycomb 3.0 - 3.2.6 22 Februari 2011 11 -13
Ice Cream Sandwich 4.0 - 4.0.4 18 Oktober 2011 14 - 15
Jelly Bean 4.1 - 4.3.1 9 Juli 2012 16 - 18
KitKat 4.4 - 4.4.4 31 Oktober 2013 19 - 20
Lollipop 5.0 25 Juni 2014 21
Marsmallow 6.0 - 6.0.1 5 Oktober 2015 23
Nougat 7.0 - 7.1.2 22 Agustus 2016 24 - 25
Oreo 8.0 21 Maret 2017 2
Sumber : (E-book Android Developer Fundamental Course (2016:9) dan
Wikipedia)
2.2.2.Java
Menurut Hariyanto (2017:3), Java adalah Bahasa yang dapat dijalankan di
sembarang platform, di beragam lingkungan : internet, consumer electronic
roducts, dan computer applications. Java telah menjadi salah satu dari Bahasa
pemrograman yang paling popular digunakan, terutama pada aplikasi web client-
server.
Bill Joy mendeskripsikan bahwa bahasa Java adalah Bahasa pemrograman
orientasi objek yang berukuran kecil, sederhana, aman, diinterpretasi atau
dioptimasi secara dinamis, ber bytecode, netral arsitektur, mempunyai garbage-
15
collector, multithreading, mempunyai mekanisme penanganan kekecualian
(exception handling), berbasis tipe untuk penulisan program mudah diperluas
secara dinamis serta telah diperuntukkan sistem tersebar.
Bahasa Java merupakan karya Sun Microsystem Inc. Pada 1991,
sekelompok insinyur Sun Microsystem Inc., dipimpin Patrick Naughton dan James
Gosling merancang Bahasa untuk perangkat consumer seperti cable TV box. Karena
perangkat tidak mempunyai banyak memori, Bahasa harus berukuran kecil dan
menghasilkan kode yang liat. Pada November 1995, rilis resmi level beta. Dua
bulan berikutnya, Netscape menjadi perusahaan pertama yang memperoleh lisensi
Bahasa Java dari Sun Microsystem Inc.
Java telah berjalan pada segala perangkat dari laptop sampai pusat data,
konsol game sampai superkomputer ilmiah. Terdapat 930 juga download terhadap
Java Runtime Environment setiap tahun dan 3 milyar telepon mobile (handphone)
yang menjalankan Java. Versi dan rilis utama Java menurut Hariyanto (2017:2) :
• JDK 1.0 (21 Januari 1996)
• JDK 1.1 (19 Februari 1997)
• J2SE 1.2 (8 Desember 1998)
• J2SE 1.3 (8 Mei 2000)
• J2SE 1.4 (6 Februari 2002)
• J2SE 5.0 (30 September 2004)
• Java SE 6 (11 Desember 2006)
• Java SE 7 (28 Juli 2011)
• Java SE 8 (18 Maret 2014)
Java mempunyai beragam kemampuan yang ditujukan untuk dapat
mengakomodasikan seluruh ragam aplikasi secara seragam dan konsisten. Contoh
16
ragam kemampuan yang dapat disediakan Bahasa Java, antara lain (Hariyanto,
2017:6) :
1. Pemrograman berorientasi objek
2. Reflection dan Proxy
3. Interface dan inner classes
4. Event Listener Model
5. Graphical user interface dengan Swing User Interface Toolkit
6. Exception handling
7. Stream input/output dan object serialization
8. Multithreading
9. Pemrograman Jaringan
10. Objek-objek tersebar
11. Basis Data
12. Grafis
13. Internationalization
14. Native methods
15. Java Applet
16. Java Beans
17. Java Sarvlet
18. Java Server Pages
19. Enterprise Java Beans, dan sebagainya
2.2.3.OOP (Object Oriented Programming)
Pemrograman berorientasi objek atau Object-Oriented Programming
merupakan suatu pendekatan pemrograman yang menggunakan object dan class
(Wibowo, 2015). Saat ini konsep OOP sudah semakin berkembang. Hampir semua
programmer maupun pengembang aplikasi menerapkan konsep OOP. OOP
bukanlah sekedar cara penulisan sintaks program yang berbeda, namun lebih dari
itu, OOP merupakan cara pandang dalam menganalisa sistem dan permasalahan
17
pemrograman. Dalam OOP, setiap bagian dari program adalah objek. Sebuah objek
mewakili suatu bagian program yang akan diselesaikan.
Dikutip dari buku “Esensi-Esensi Bahasa Pemrograman Java” (Hariyanto,
2017:321), beberapa konsep berorientasi yang penting adalah :
1. Pengapsulan (Encapsulation)
2. Pewarisan (Inheritance)
3. Polymorphism
4. Pesan
A. Pengapsulan (Encapsulation)
Pengapsulan adalah proses pemaketan data bersama metode-metodenya.
Manfaat utama pengapsulan adalah menyembunyikan rincian-rincian implementasi
dari pemakai. Bagian internal objek mempunyai ketampakan terbatas dibanding
bagian eksternal objek. Penyusunan seperti ini menjaga bagian internal dari
pengaksesan eksternal yang tidak diinginkan.
Bagian eksternal objek sering disebut antarmuka objek karena berlaku
sebagai antarmuka objek terhadap objek lain. Karena objek lain harus
berkomunikasi dengan objek itu hanya melalui antarmuka maka bagian internal
objek dapat dilindungi dari gangguan luar. Karena program luar tidak mengakses
implementasi internal objek, implementasi internal dapat berubah tanpa
mempengaruhi bagian-bagian program yang lain.
Pengapsulan menyediakan dua manfaat utama bagi pemrograman, yaitu :
1. Penyembunyian Informasi
Penyembunyian implementasi (Implementation Hiding) mengacu perlindungan
implementasi internal objek. Objek disusun dari antarmuka public dan bagian
private yang merupakan kombinasi data dan metode internal. Manfaat utama
18
adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian
program yang lain.
2. Modularitas
Modularitas (modularity) berarti objek dapat dikelola secara independen.
Karena kode sumber bagian internal objek dikelola secara terpisah dari
antarmuka, maka kita bebas melakukan modifikasi yang tidak menyebabkan
masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah
mendistribusikan objek-objek di sistem.
B. Pewarisan (Inheritance)
Pewarisan adalah salah satu konsep penting orientasi objek dan mempunyai
dampak langsung pada cara merancang dan menulis kelas. Pewarisan adalah proses
penciptaan kelas baru dengan mewarisi karakteristik kelas yang telah ada, ditambah
karakteristik unik kelas baru itu. Untuk menciptakan kelas baru, kita hanya perlu
menspesifikasikan cara kelas baru itu berbeda dari kelas yang telah ada.
Subkelas mewarisi semua metode dan variabel dari superkelasnya. Secara
praktis berarti jika superkelas telah mendefinisikan perilaku yang diperlukan, maka
kta tidak perlu mendefinisikan ulang perilaku itu, kita cukup membuat kelas yang
merupakan subkelas dari superkelas yang dimaksud. Superkelas memberi
perilakunya ke subkelas pewarisnya secara otomatis. Superkelas itu memperoleh
perilaku superkelas-superkelas di atasnya. Dengan demikian, subkelas akan
merupakan gabungan dari seluruh fitur kelas-kelas di atasnya di hirarki pewarisan
ditambah fitur kepunyaanya sendiri.
19
C. Polymorphism
Polymorphism merupakan konsep pokok orientasi objek. Polymorphism
berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai
polymorphic bila objek-objek itu mempunyai antarmuka identic namun mempunyai
perilaku-perilaku berbeda. Polymorphism berupa satu nama tunggal (seperti
deklarasi fungsi) dan dapat menyatakan objek kelas-kelas berbeda yang terhubung
dengan superkelas yang common diantara kelas-kelas itu. Sembarang objek yang
ditandai dengan nama ini dapat menanggapi sekumpulan operasi yang sama.
Polymorphism merupakan fitur yang ada karena interaksi antara konsep
pewarisan dan dynamic binding. Polymorphism merupakan fitur pentingdan ampuh
bahasa orientasi objek. Fitur ini merupakan pembeda pemrograman orientasi objek
dari bahasa tradisional yang hanya sampai pada tipe data abstrak. Bahasa yang tidak
mendukung Polymorphism belum layak disebut bahasa orientasi objek, paling-
paling disebut bahasa berbasis objek bila mendukung pengkapsulan.
D. Pesan
Objek yang bertindak sendirian jarang digunakan. Sebagian besar objek
memerlukan objek-objek lain untuk melakukan banyak hal. Objek-objek
memerlukan mekanisme komunikasi untuk saling berinteraksi. Objek-objek
perangkat lunak saling berinteraksi dan berkomunikasi lewat pesan. Saat
berkomunikasi, objek mengirim pesan memberitahu agar objek lain melakukan
sesuatu. Sering pengiriman pesan juga disertai informasi untuk memperjelas apa
yang dikehendaki. Informasi yang dilewatkan di pesan ini adalah parameter pesan.
Pengertian “pengiriman pesan” merupakan cara lain untuk mengatakan
“panggilan metode”. Ketika objek mengirim pesan ke objek lain, sesungguhnya
20
hanya memanggil metode di objek itu. Parameter pesan adalah parameter yang
dilewatkan ke metode-metode yang dipanggil. Pada pendekatan berorientasi objek,
pesan dan metode adalah sinonim.
Karna segala sesuatu di objek hanya dapat diekspresikan lewat metode
(antarmukanya), maka pelewatan pesan mendukung semua interksi yang mungkin
dilakukan objek-objek. Antarmuka memungkinkan objek-objek saling mengirim
dan menerima pesan bahkan meski berada di lokasi lain di jaringan. Objek-objek
dalam skenario tersebar ini disebut objek-objek tersebar (distributed objects).
2.2.4.Buta Warna
(Dhika, Randy, Ernawati, 2014) Buta warna merupakan penyakit kelainan
pada mata yang ditentukan oleh gen resesif pada kromosom seks, khususnya terpaut
pada kromosom X atau kondisi ketika sel-sel retina tidak mampu merespon warna
dengan semestinya. Istilah buta warna atau colour blind sebetulnya salah pengertian
dan menyesatkan, karena seorang penderita buta warna tidak buta terhadap seluruh
warna. Akan lebih tepat bila disebut gejala defisiensi daya melihat warna tertentu
saja atau colour vision deficiency.
A. Gejala Buta Warna
Penderita buta warna mungkin hanya bisa melihat beberapa gradasi warna,
sementara sebagian besar orang yang normal dapat melihat ratusan warna. Gejala
lainnya, sebagian penderita buta warna tidak dapat membedakan antara warna
merah dan hijau, namun bisa melihat warna biru dan kuning dengan mudah.
Sebagian orang bahkan tidak menyadari bahwa mereka mengalami buta warna
sebelum menjalani tes penglihatan warna.
B. Tipe-tipe Buta Warna
21
Sebagian besar penderita buta warna akan sulit membedakan gradasi warna
merah, kuning, dan hijau seperti warna oranye dan cokelat. Tipe ini disebut dengan
buta warna merah-hijau. Tipe ini juga menjadikan penderita sulit membedakan
antara warna merah dengan warna hitam dan berbagai gradasi warna ungu. Pria
memiliki kecenderungan mengalami buta warna tipe ini lebih besar dibandingkan
dengan wanita. Tipe buta warna yang paling jarang terjadi adalah buta warna tipe
biru-kuning di mana penderita tidak bisa membedakan warna biru, hijau, dan
kuning.
Seorang penderita buta warna dari berbagai jenis kondisi di atas dapat
melihat warna-warna tersebut lebih kusam dibandingkan orang-orang yang
memiliki penglihatan normal.
C. Penyebab Buta Warna
Proses melihat warna melintasi spektrum cahaya diawali dengan
kemampuan alamiah mata dalam membedakan warna-warna dasar, seperti warna
merah, biru, dan hijau. Namun, mata seorang penderita buta warna tidak dapat
melihat atau membedakan warna sebagaimana mata normal. Hal ini terjadi karena
ada gangguan pigmen pada reseptor penglihatan warna (sel kerucut di mata). Ketika
salah satu pigmen hilang, maka mata akan memiliki masalah dalam melihat warna
tertentu.
Dalam banyak kasus, buta warna disebabkan oleh faktor genetik orang tua,
namun bisa saja terjadi akibat efek samping dari sebuah pengobatan atau gangguan
kesehatan yang telah ada sebelumnya.
Ada beberapa penyebab seseorang mengalami buta warna, di antaranya:
22
1. Faktor genetik. Kebanyakan penderita buta warna yang mengalaminya sejak
lahir disebabkan oleh faktor genetik yang berikatan dengan kromosom X.
Seorang ayah penderita buta warna tidak akan memiliki anak yang menderita
buta warna kecuali pasangannya memiliki gen buta warna. Hal ini mungkin
karena wanita lebih berperan dalam menjadi pembawa gen (carrier) yang akan
mewarisi buta warna kepada anak. Penderita buta warna akibat faktor genetik
juga jauh lebih sering terjadi pada pria dibandingkan wanita, walau terkadang
kondisi ini dapat melewati satu generasi. Anak perempuan dipastikan mengidap
buta warna jika kedua orang tua adalah pembawa gen buta warna.
2. Penyakit. Terdapat sejumlah penyakit yang bisa menyebabkan buta warna,
seperti penyakit Parkinson, penyakit Alzheimer, glaukoma, kanker darah
(leukemia), diabetes, pecandu minuman beralkohol kronis, degenerasi makula,
dan anemia sel sabit.
3. Usia. Kemampuan seseorang untuk membedakan warna perlahan-lahan akan
berkurang seiring pertambahan usia. Ini adalah hal yang alami dalam proses
penuaan dan tidak perlu dicemaskan secara berlebihan.
4. Bahan kimia. Seseorang bisa mengalami buta warna jika terpapar bahan kimia
beracun, misalnya di tempat kerja, seperti karbon disulfida dan pupuk.
5. Efek samping pengobatan tertentu. Beberapa pengobatan berpotensi
menyebabkan buta warna, seperti digoxin, phenytoin, klorokuin, dan sildenafil.
Jika gangguan disebabkan oleh pengobatan, biasanya pandangan akan kembali
normal setelah berhenti mengonsumsi obat.
23
2.2.5.Pengolah Citra
Menurut (Sari, Sulindawaty, & Sihotang, 2017), menjelaskan bahwa Citra
adalah representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra
sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto,
bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televise,
atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan
Pengolahan citra adalah proses pengolahan sinyal yang masukannya adalah
citra, keluarannya dapat berupa citra atau sekumpulan karakteristik atau parameter
yang berhubungan dengan citra (Ellanda et al., 2014). Istilah pengolahan citra
digital secara umum didefinisikan sebagai pemrosesan citra dua dimensi dengan
komputer. Dalam definisi yang lebih luas, pengolahan citra digital juga mencakup
semua data dua dimensi. Citra digital adalah barisan bilangan nyata maupun
kompleks yang diwakili oleh bit-bit tertentu.
Pengolahan citra dapat dibagi kedalam tiga kategori, yaitu sebagai berikut:
a. Kategori rendah, melibatkan operasi-operasi sederhana seperti prapengolahan
citra untuk mengurangi derau, pengaturan kontras, dan pengaturan ketajaman
citra. Pengolahan kategori rendah ini memiliki input dan output berupa citra.
b. Kategori menengah, melibatkan operasi-operasi seperti segmentasi dan
klasifikasi citra. Proses pengolahan citra menengah ini melibatkan input berupa
citra dan output berupa atribut (fitur) citra yang dipisahkan dari citra input.
c. Kategori tinggi, melibatkan proses pengenalan dan deskripsi citra.
24
2.3. Metode Alghoritma
2.3.1.Metode Ishihara
Test ishihara atau ishihara test adalah sebuah test yang digunakan untuk
menguji tingakt persepsi warna pada penderita buta warna merah hijau. Dinamakan
test ishihara karena ditemukan dan di desain oleh Dr. Shinobu Ishihara, seorang
profesor dari University of Tokyo pada tahun 1917.Test ishihara terdiri dari
beberapa buah plates yang disebut ishihara plates.
(Dhika, Randy, Ernawati, 2014), menyatakan bahwa Plate adalah warna
primer dengan dasar warna yang hampir sama atau abu-abu. Tes Ishihara secara
relatif dapat dipercaya dalam membedakan antara deficit (lemah) warna merah dan
deficit (lemah) warna hijau. Tes buta warna Ishihara terdiri dari lembaran yang di
dalamnya terdapat titik-titik dengan berbagai warna dan ukuran. Titik-titik
berwarna tersebut disusun sehingga membentuk lingkaran yang didalamnya
terdapat titik-titik dengan pola membentuk angka maupun garis berkelok. Warna
titik-titik itu dibuat sedemikian rupa sehingga orang buta warna tidak akan berhasil
melihat angka maupun garis yang ada.
Di ruangan dengan penerangan yang cukup, pasien diminta melihat plate
dan diminta untuk mengidentifikasi atau menyebutkan angka atau mengikuti jejak
garis yang terdapat pada titik-titik warna berbentuk lingkaran tidak lebih dari 10
detik. Pada orang normal, di dalam lingkaran akan tampak angka atau pola garis
tertentu. Tetapi pada orang buta warna, yang tampak dalam lingkaran tersebut akan
berbeda seperti yang dilihat oleh orang normal atau ia tidak bisa melihat angka
maupun pola garis yang ada. Hasil tes seseorang akan dibandingkan dengan kunci
25
jawaban, selanjutnya diidentifikasi dan diklasifikasikan untuk menentukan
tingkatan buta warnanya.
Tes ishihara dalam perancangan aplikasi Color and Blindness Detection ,
ada 25 plates. Saat user selesai melakukan tes ishihara, sistem akan menampilkan
hasil tes dengan metode ketentuan :
1. Jika nilai/skor <=12, maka kemungkinan mengalami buta warna total
2. Jika nilai/skor lebih dari 12 tapi kurang dari 25, maka kemungkinan mengalami
buta warna parsial
3. Jika nilai/skor 25, maka tidak mengalami buta warna
2.3.2.Metode RGB
Menurut (Ellanda et al., 2014) Setiap warna bisa disusun dari warna dasar.
Untuk cahaya, warna dasar penyusunnya adalah warna Merah, Hijau dan Biru, atau
lebih dikenal dengan istilah RGB (Red-Green-Blue). Warna adalah spektrum
tertentu yang terdapat di dalam suatu cahaya sempurna (berwarna putih). Identitas
suatu warna ditentukan panjang gelombang cahaya tersebut. Sebagai contoh warna
biru memiliki panjang gelombang 460 nanometer.setiap warna mempunyai panjang
gelombang dan frekuensi yang berbeda. Panjang gelombang warna yang masih bisa
ditangkap mata manusia berkisar antara 380-780 nanometer.
Dalam peralatan optis, warna bisa pula berarti interpretasi otak terhadap
campuran tiga warna primer cahaya: merah, hijau, biru yang digabungkan dalam
komposisi tertentu. Misalnya pencampuran 100% merah, 0% hijau, dan 100% biru
akan menghasilkan interpretasi warna magenta.
Berikut beberapa warna komposisi RGB-nya skala 8 bit yang digunakan
dalam aplikasi Color and Blindness Detection :
26
Tabel II.2 Tabel Kode Warna
Nama Contoh Kode warna RGB
Abu-abu
#808080 128 128 128
Biru
#0000FF 0 0 255
Biru dongker
#000080 0 0 128
Biru laut (Sian)
#00FFFF 0 255 255
Coklat
#964B00 150 75 0
Emas
#FFD700 255 215 0
Hijau
#00FF00 0 255 0
Hitam
#000000 0 0 0
Kuning
#FFFF00 255 255 0
Magenta
#FF00FF 255 0 255
Mawar
#FF007F 255 0 127
Merah
#FF0000 255 0 0
Merah marun
#800000 128 0 0
Merah jambu
#FFC0CB 255 192 203
27
Nama Contoh Kode warna RGB
Nila
#6F00FF 111 0 255
Oranye
#FF7F00 255 127 0
Perak
#C0C0C0 192 192 192
Putih
#FFFFFF 255 255 255
Ungu
#BF00FF 191 0 255
Violet
#8F00FF 143 0 255
Zaitun
#808000 128 128 0
2.4. Pengujian Aplikasi
2.4.1.Metode Pengujian White Box
Menurut Nidhra and Dondetti (2012) dalam (Mustaqbal, Firdaus, &
Rahmadi, 2015), menyatakan bahwa White Box Testing adalah salah satu cara
untuk menguji suatu aplikasi atau software dengan cara melihat modul untuk dapat
meneliti dan menganalisa kode dari program yang di buat ada yang salah atau tidak.
Kalau modul yang telah dan sudah di hasilkan berupa output yang tidak sesuai
dengan yang di harapkan maka akan dikompilasi ulang dan di cek kembali kode-
kode tersebut hingga sesuai dengan yang diharapkan (Nidhra and Dondetti, 2012).
Kasus yang sering menggunakan white box testing akan di uji dengan
beberapa tahapan yaitu:
28
1. Pengujian seluruh keputusan yang menggunakan logikal.
2. Pengujian keseluruh loop yang ada sesuai batasan-batasannya.
3. Pengujian pada struktur data yang sifatnya internal dan yang terjamin
validitasnya.
Menurut Nidhra and Dondetti (2012) dalam (Mustaqbal, Firdaus, &
Rahmadi, 2015), kelebihan White Box Testing antara lain:
1. Kesalahan Logika
Menggunakan sintax ‘if’ dan sintax pengulangan. Langkah selanjutnya metode
white box testing ini akan mencari dan mendeteksi segala kondisi yang di
percaya tidak sesuai dan mencari kapan suatu proses perulangan di akhiri.
2. Ketidaksesuaian Asumsi
Menampilkan dan memonitor beberapa asumsi yang diyakini tidak sesuai
dengan yang diharapkan atau yang akan diwujudkan, untuk selanjutnya akan
dianalisa kembali dan kemudian diperbaiki.
3. Kesalahan Pengetikan
Mendeteksi dan mencaribahasa-bahasa pemograman yang di anggap bersifat
case sensitif.
Kelemahan White Box Testing adalah pada perangkat lunak yang jenisnya
besar, metode white box testing ini dianggap boros karena melibatkan banyak
sumberdaya untuk melakukannya. (Nidhra and Dondetti (2012) dalam (Mustaqbal,
Firdaus, & Rahmadi, 2015)
2.4.2.Metode Pengujian Black Box
Black Box Testing berfokus pada spesifikasi fungsional dari perangkat
lunak. Tester dapat mendefinisikan kumpulan kondisi input dan melakukan
29
pengetesan pada spesifikasi fungsional program. Black Box Testing bukanlah solusi
alternatif dari White Box Testing tapi lebih merupakan pelengkap untuk menguji
hal-hal yang tidak dicakup oleh White Box Testing. (Mustaqbal et al., 2015). Black
Box Testing cenderung untuk menemukan hal-hal berikut (Mustaqbal et al., 2015)
:
1. Fungsi yang tidak benar atau tidak ada.
2. Kesalahan antarmuka (interface errors).
3. Kesalahan pada struktur data dan akses basis data.
4. Kesalahan performansi (performance errors).
5. Kesalahan inisialisasi dan terminasi.
Pengujian didesain untuk menjawab pertanyaan- pertanyaan berikut
(Mustaqbal et al., 2015) :
1. Bagaimana fungsi-fungsi diuji agar dapat dinyatakan valid?
2. Input seperti apa yang dapat menjadi bahan kasus uji yang baik?
3. Apakah sistem sensitif pada input-input tertentu?
4. Bagaimana sekumpulan data dapat diisolasi?
5. Berapa banyak rata-rata data dan jumlah data yang dapat ditangani sistem?
6. Efek apa yang dapat membuat kombinasi data ditangani spesifik pada operasi
sistem?
Saat ini terdapat banyak metoda atau teknik untuk melaksanakan Black
Box Testing, antara lain (Mustaqbal et al., 2015) :
1. Equivalence Partitioning
2. Boundary Value Analysis/Limit Testing
3. Comparison Testing
30
4. Sample Testing
5. Robustness Testing
6. Behavior Testing
7. Requirement Testing
8. Performance Testing
9. Uji Ketahanan (Endurance Testing)
10. Uji Sebab-Akibat (Cause-Effect Relationship Testing)
2.5. Peralatan Pendukung
2.5.1.UML (United Modelling Language)
Hariyanto (2017:29) mengatakan bahwa UML merupakan sarana bagus
untuk mengekspresikan model orientasi objek di beragam level abstraksi mulai
level konseptual sampai level implementasi, dan beragam pandangan : statis dan
dinamis. Pemodelan memperjelas yang perlu dan telah dilakukan pengembang.
UML dapat menjadi sarana dokumentasi seluruh tahap pengembang.
UML dimulai secara resmi pada Oktober 1994, ketika Rumbaugh
menggabungkan kekuatan dengan Booch. Mereka berdua lalu bekerja bersama di
Relational Software Cooperation. Proyek ini memfokuskan pada penyatuan metode
booch dan Rumbaugh (OMT). Pada bulan October 1995, UML merilis versi 0.8
dan pada waktu yang sama juga Jacobson bergabung dengan Relational. Cakupan
dari UML pun semakin meluas. Kemudian dibangunlah persatuan untuk UML
dengan beberapa organisasi yang akan menyumbangkan sumber dayanya untuk
bekerja, mengembangkan,dan melengkapi UML.Banyak partner yang
berkontribusi pada UML 1.0, diantaranya Digital Equipment Corporation, Hawlett-
Packard, I-Logix, IBM, ICON Computing, MCI systemhouse, Microsoft, Oracle,
Relation, Texas Insturments dan Unisys. Dari kolaborasi ini dihasilkan UML 1.0
31
yang merupakan bahasa pemodelan yang ditetapkan secara baik, expressive, kuat
dan cocok untuk lingkungan masalah yang luas. Dan pada January 1997, UML
dijadikan sebagai standar bahasa pemodelan.
Adapun jenis-jenis diagram UML antara lain :
a) Use Case Diagram Menggambarkan sejumlah external actors dan
hubungannya ke use case yang diberikan oleh sistem. Use case adalah deskripsi
fungsi yang disediakan oleh sistem dalam bentuk teks sebagai dokumentasi dari
use case symbol namun dapat juga dilakukan dalam activity diagrams. Use case
digambarkan hanya yang dilihat dari luar oleh aktor (keadaan lingkungan sistem
yang dilihat user) dan bukan bagaimana fungsi yang ada di dalam sistem.
b) Class Diagram Menggambarkan struktur statis class di dalam sistem. Class
merepresentasikan sesuatu yang ditangani oleh sistem. Class dapat
berhubungan dengan yang lain melalui berbagai cara : associated (terhubung
satu sama lain), dependent (satu class tergantung/menggunakan class yang
lain), specialed (satu class merupakan spesialisasi dari class lainnya), atau
package (grup bersama sebagai satu unit). Sebuah sistem biasanya mempunyai
beberapa class diagram.
c) State Diagram Menggambarkan semua state (kondisi) yang dimiliki oleh suatu
objek dari suatu class dan keadaan yang menyebabkan state berubah. Kejadian
dapat berupa objek lain yang mengirim pesan. State class tidak digambarkan
untuk semua class, hanya yang mempunyai sejumlah state yang terdefinisi
dengan baik dan kondisi class berubah oleh state yang berbeda.
d) Sequence Diagram Menggambarkan kolaborasi dinamis antara sejumlah
objek. Kegunaanya untuk menunjukkan rangkaian pesan yang dikirim antara
32
objek juga interaksi antara objek, sesuatu yang terjadi pada titik tertentu dalam
eksekusi sistem.
e) Collaboration Diagram Menggambarkan kolaborasi dinamis seperti sequence
diagrams. Dalam menunjukkan pertukaran pesan, collaboration diagrams
menggambarkan objek dan hubungannya (mengacu ke konteks). Jika
penekannya pada waktu atau urutan gunakan sequence diagrams, tapi jika
penekanannya pada konteks gunakan collaboration diagram.
f) Activity Diagram Menggambarkan rangkaian aliran dari aktivitas, digunakan
untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga
dapat juga digunakan untuk aktifitas lainnya seperti use case atau interaksi.
g) Component Diagram Menggambarkan struktur fisik kode dari komponen.
Komponen dapat berupa source code, komponen biner, atau executable
component. Sebuah komponen berisi informasi tentang logic class atau class
yang diimplementasikan sehingga membuat pemetaan dari logical view ke
component view.
h) Deployment Diagram Menggambarkan arsitektur fisik dari perangkat keras dan
perangkat lunak sistem, menunjukkan hubungan komputer dengan perangkat
(nodes) satu sama lain dan jenis hubungannya. Di dalam nodes, executeable
component dan objek yang dialokasikan untuk memperlihatkan unit perangkat
lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen.
2.5.2.JDK (Java Development Kit)
Menurut Abdul Kadir (2013:4) Java Development Kit (JDK) adalah
perangkat pengembangan aplikasi Java yang bisa diunduh secara gratis di
www.oracle.com/technetwork/java/javase/downloads/ Perangkat ini mutlak
33
diperlukan untuk membuat aplikasi Android, mengingat aplikasi Android itu
berbasis Java. Sebagaimana diketahui, Java adalah salah satu bahasa pemrograman
yang biasa digunakan untuk membuat aplikasi . Namun perlu diketahui, tidak
semua pustaka dalam Java digunakan di Android.
2.5.3.Android Software Development Kit (SDK)
Kadir (2013:5) mengatakan bahwa Android SDK adalah kumpulan software
yang berisi megenai pustaka, debugger (alat pencari kesalahan program), emulator
(peniru perangkat bergerak), dokumentasi, kode contoh, dan panduan. Android
SDK dapat diunduh secara gratis di http://developer.android.com/sdk/.
Keberadaan emulator membuat kita dapat membuat dan menguji aplikasi
Android, tanpa harus mempunyai perangkat keras berbasis Android. Itu berbarti
kita dapat membuat dan menguji aplikasi Android di computer kita yang tidak
berbasis Android. Bahkan, kita tidak hanya dapat menguji di Windows, tetapi juga
di platform lain Mac dan Linux.
2.5.4.Android Studio
Android Studio merupakan sebuah Integrated Development Environment
(IDE) khusus untuk membangun aplikasi yang berjalan pada platform android.
Android studio ini berbasis pada IntelliJ IDEA, sebuah IDE untuk bahasa
pemrograman Java. Bahasa pemrograman utama yang digunakan adalah Java,
sedangkan untuk membuat tampilan atau layout, digunakan bahasa XML. Android
studio juga terintegrasi dengan Android Software Development Kit (SDK) untuk
deploy ke perangkat android. (Fikri, Herumurti, & Rahman, 2016)
34
Menurut Google Developer Traning Team dalam E-book Android
Developer Fundamental Course (2016:15), Android Studio memungkinkan kita
melakukan hal berikut, tidak dalam urutan tertentu :
1. Buat layout : Tempatkan elemen UI pada layar di layout, dan tetapkan sumber
daya string serta item menu, menggunakan Extensible Markup Language
(XML).
2. Tulis kode Java : Buat referensi kode sumber untuk komponen dan pengujian,
serta gunakan alat pengujian dan debug.
3. Daftarkan aktivitas : Deklarasikan aktivitas dalam file manifes.
4. Definisikan versi : Gunakan konfigurasi pembangunan default atau buat
pembangunan khusus untuk versi aplikasi yang berbeda.