bab ii landasan teori - repository.nusamandiri.ac.id filebab ii landasan teori 2.1. ... (forward...

26
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

Upload: dinhminh

Post on 17-May-2019

222 views

Category:

Documents


0 download

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.