bab iii analisa dan perancangan - … · c. sistem dapat menampilkan soal pertanyaan dan pilihan...

33
35 BAB III ANALISA DAN PERANCANGAN 3.1. Analisa Masalah Berdasarkan analisa yang dilakukan peneliti, permasalahan pokok saat seseorang ingin melakukan tes buta warna, orang tersebut harus melakukan pemeriksaan ke dokter spesialis mata secara langsung. Biaya yang dikeluarkan untuk melakukan pemeriksaan tersebut tidak bias dikatakan murah. Belum lagi jika orang tersebut tergolong orang yang sibuk, sehingga kesulitan mencari waktu untuk melakukan pemeriksaan. Permasalahan pokok selanjutnya pada para penderita buta warna. Para penderita buta warna tidak bisa melihat warna tertentu dengan jelas. Sulit bagi mereka memahami warna tertentu. Sebagai contoh orang yang mengalami buta warna hijau, saat melihat warna hijau bukanlah warna hijau yang dilihat melainkan warna lain. 3.2. Analisa Kebutuhan A. Kebutuhan Pengguna Tabel III.1 Analasis Kebutuhan Pengguna Pengguna Keterangan User a. User dapat melakukan pendeteksian warna benda dengan kamera smartphone b. User dapat melihat hasil deteksi warna berupa teks c. User dapat mendengarkan hasil deteksi warna berupa suara d. User dapat melakukan tes deteksi buta warna dengan metode ishihara e. User dapat melihat hasil tes ishihara

Upload: duongdien

Post on 08-Jul-2019

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

35

BAB III

ANALISA DAN PERANCANGAN

3.1. Analisa Masalah

Berdasarkan analisa yang dilakukan peneliti, permasalahan pokok saat

seseorang ingin melakukan tes buta warna, orang tersebut harus melakukan

pemeriksaan ke dokter spesialis mata secara langsung. Biaya yang dikeluarkan

untuk melakukan pemeriksaan tersebut tidak bias dikatakan murah. Belum lagi jika

orang tersebut tergolong orang yang sibuk, sehingga kesulitan mencari waktu untuk

melakukan pemeriksaan.

Permasalahan pokok selanjutnya pada para penderita buta warna. Para

penderita buta warna tidak bisa melihat warna tertentu dengan jelas. Sulit bagi

mereka memahami warna tertentu. Sebagai contoh orang yang mengalami buta

warna hijau, saat melihat warna hijau bukanlah warna hijau yang dilihat melainkan

warna lain.

3.2. Analisa Kebutuhan

A. Kebutuhan Pengguna

Tabel III.1 Analasis Kebutuhan Pengguna

Pengguna Keterangan

User

a. User dapat melakukan pendeteksian warna benda dengan

kamera smartphone

b. User dapat melihat hasil deteksi warna berupa teks

c. User dapat mendengarkan hasil deteksi warna berupa suara

d. User dapat melakukan tes deteksi buta warna dengan metode

ishihara

e. User dapat melihat hasil tes ishihara

Page 2: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

36

f. User dapat melihat informasi petunjuk penggunaan aplikasi

g. User dapat melihat informasi tentang aplikasi

h. User dapat melihatdata riwayat tes deteksi buta warna

i. User dapat melihat detail riwayat tes deteksi buta warna

j. User dapat menghapus data riwayat tes deteksi buta warna

k. User dapat keluar aplikasi

B. Kebutuhan Sistem

Tabel III.2 Analasis Kebutuhan Sistem

Kebutuhan Sistem Keterangan

Input

a. User dapat menginput data diri sebelum melakukan tes

buta warna

b. User dapat menginput jawaban dari soal tes ishihara

c. User dapat menyimpan hasil tes ishihara

d. User dapat mengambil gambar benda untuk mendeteksi

warna benda

Output

a. Sistem dapat menampilkan form data diri pengujian tes

buta warna

b. Sistem dapat menampilkan gambar-gambar tes ishihara

c. Sistem dapat menampilkan soal pertanyaan dan pilihan

jawaban tes ishihara

d. Sistem dapat menampilkan detail hasil tes ishihara

e. Sistem dapat menjalankan kamera smartphone saat

mendeteksi warna benda

f. Sistem dapat mengambil objek benda dengan kamera

smartphone

g. Sistem dapat menampilkan foto hasil jepretan kamera

beserta detail lokasi penyimpanan foto

h. Sistem dapat memberikan hasil warna benda dengan teks

dan suara

i. Sistem dapat menampilkan informasi petunjuk

penggunaan aplikasi

j. Sistem dapat menampilkan informasi tentang aplikasi

k. Sistem dapat menampilkan data riwayat tes ishihara

l. Sistem dapat menampilkan detail data riwayat tes

ishihara

Page 3: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

37

C. Kebutuhan Hardware

Untuk membuat aplikasi “Color and Blindness Detection” spesifikasi minimum

hardware yang dibutuhkan adalah :

a. Kebutuhan Perangkat Keras Perancangan Aplikasi

1. Laptop/PC dengan Processor minimal AMD A8 atau Intel Core i3

@2.20 GHz

2. RAM minimal 4GB

b. Kebutuhan Perangkat Keras Pengguna Aplikasi

1. Smartphone Android

2. RAM minimal 2 GB

D. Kebutuhan Software

Dalam merancang aplikasi “Color and Blindness Detection” ini, menggunakan

beberapa software penting seperti :

a. Kebutuhan Perangkat Lunak Perancangan Aplikasi

1. Android Studio (Proses coding dengan bahasa Java)

2. JDK (Java Development Kit)

3. Android Software Development Kit (SDK)

4. Sistem Operasi Windows 10

b. Kebutuhan Perangkat Lunak Pengguna Aplikasi

Perangkat lunak yang digunakan untuk menjalankan aplikasi “Color and

Blindness Detection” berbasis Android adalah Android versi minimal 5.0

Lollipop.

Page 4: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

38

3.3. Perancangan

3.3.1. Perancangan Objek

A. Use Case Diagram

Gambar III.1 Use Case Diagram User

Tabel III.3 Use Case Description Deteksi Warna

Use Case Name Melakukan deteksi warna benda

Requirements User melakukan deteksi warna benda

Goal User mendapatkan hasil deteksi berupa teks dan

suara

Pre-conditions User menjalankan aplikasi

Post-conditions User mendapatkan hasil deteksi berupa teks dan

suara

Failed end conditions User tidak bisa melakukan pengambilan gambar

dengan kamera smartphone

Primary actors User

Main flow/basic path

1. User menjalankan aplikasi

2. Pilih menu “Color Detection”

3. Sistem akan menjalankan kamera smartphone

4. Ambil gambar dan klik tanda centang

5. Klik tombol “Cek Warna”

6. User mendapatkan hasil analisa warna berupa teks

dan suara

Invariant A -

Page 5: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

39

Tabel III.4 Use Case Description Tes Ishihara

Use Case Name Melakukan tes ishihara

Requirements User melakukan deteksi buta warna dengan tes

ishihara

Goal User mendapatkan hasil analisa tes ishihara dan

dapat menyimpannya

Pre-conditions User menjalankan aplikasi

Post-conditions User mendapatkan hasil analisa tes ishihara dan

dapat menyimpannya

Failed end conditions User tidak bisa melakukan tes ishihara

Primary actors User

Main flow/basic path

1. User menjalankan aplikasi

2. Pilih menu “Blindness Detection”

3. Input data berupa nama, usia, dan jenis kelamin

4. Klik “OK”

5. Menjawab pertanyaan tes dengan membaca angka

pada plate ishihara (tes ada 25 soal)

6. Sistem menampilkan hasil

7. Klik “Info Skor”

8. Sistem akan menampilkan detail hasil tes ishihara

9. Klik “Simpan” untuk menyimpan hasil tes

10. Sistem akan menyimpan hasil tes di “Riwayat

Tes”

Invariant A -

Tabel III.5 Use Case Description Melihat Informasi Petunjuk

Penggunaan Aplikasi

Use Case Name Melihat informasi petunjuk penggunaan aplikasi

Requirements User melihat informasi petunjuk penggunaan aplikasi

Goal User dapat melihat informasi petunjuk penggunaan

aplikasi

Pre-conditions User menjalankan aplikasi

Post-conditions User dapat melihat informasi petunjuk penggunaan

aplikasi

Failed end conditions User tidak dapat melihat informasi petunjuk

penggunaan aplikasi

Primary actors User

Main flow/basic path 1. User menjalankan aplikasi

2. Pilih menu “Petunjuk”

Invariant A -

Page 6: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

40

Tabel III.6 Use Case Description Melihat Informasi Tentang Aplikasi

Use Case Name Melihat informasi tentang aplikasi

Requirements User melihat informasi tentang aplikasi

Goal User dapat melihat informasi tentang aplikasi

Pre-conditions User menjalankan aplikasi

Post-conditions User dapat melihat informasi tentang aplikasi

Failed end conditions User tidak dapat melihat informasi tentang aplikasi

Primary actors User

Main flow/basic path 1. User menjalankan aplikasi

2. Pilih menu “Tentang Aplikasi”

Invariant A -

Tabel III.7 Use Case Description Melihat Riwayat Tes Ishihara

Use Case Name Melihat riwayat tes ishihara

Requirements User melihat riwayat tes ishihara

Goal User dapat melihat riwayat tes ishihara

Pre-conditions User menjalankan aplikasi

Post-conditions User dapat melihat riwayat tes ishihara

Failed end conditions User tidak dapat melihat riwayat tes ishihara

Primary actors User

Main flow/basic path

1. User menjalankan aplikasi

2. Pilih menu “Riwayat Tes”

3. Pilih salah satu data

4. Sistem menampilkan detail hasil riwayat tes

Invariant A -

Tabel III.8 Use Case Description Menghapus Riwayat Tes Ishihara

Use Case Name Menghapus riwayat tes ishihara

Requirements User menghapus riwayat tes ishihara

Goal User dapat menghapus riwayat tes ishihara

Pre-conditions User menjalankan aplikasi

Post-conditions User dapat menghapus riwayat tes ishihara

Failed end conditions User tidak dapat menghapus riwayat tes ishihara

Primary actors User

Main flow/basic path 1. User menjalankan aplikasi

2. Pilih menu “Riwayat Tes”

Page 7: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

41

3. Pilih salah satu data

4. Sistem menampilkan detail hasil riwayat tes

5. Klik “Hapus”

Invariant A -

Tabel III.9 Use Case Description Keluar Aplikasi

Use Case Name Keluar aplikasi

Requirements User keluar aplikasi

Goal User dapat keluar aplikasi

Pre-conditions User menjalankan aplikasi

Post-conditions User dapat keluar aplikasi

Failed end conditions User tidak dapat keluar aplikasi

Primary actors User

Main flow/basic path 1. User menjalankan aplikasi

2. Pilih menu “Keluar Aplikasi”

Invariant A -

B. Sequence Diagram

Gambar III.2 Sequence Diagram User

Page 8: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

42

C. Activity Diagram

Gambar III.3 Activity Diagram User Mendeteksi Warna Benda

Page 9: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

43

Gambar III.4 Activity Diagram User Melakukan Tes Ishihara

Page 10: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

44

3.3.2. Perancangan Sisitem/Aplikasi

A. Prototype

Gambar III.5 Prototype Menu Utama

Gambar III.6 Prototype Kamera

Page 11: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

45

Gambar III.7 Prototype Hasil Kamera

Gambar III.8 Prototype Hasil Deteksi Warna

Page 12: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

46

Gambar III.9 Prototype Input Data

Gambar III.10 Prototype Tes Ishihara

Page 13: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

47

Gambar III.11 Prototype Hasil Tes

Gambar III.12 Prototype Detail Hasil Tes

Page 14: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

48

Gambar III.13 Prototype Petunjuk Penggunaan Aplikasi

Gambar III.14 Prototype Tentang Aplikasi

Page 15: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

49

Gambar III.15 Prototype Data Riwayat Tes

Gambar III.16 Prototype Konfirmasi Keluar

Page 16: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

50

B. Rancangan Algoritma

Rancangan Algoritma pada aplikasi ini adalah Metode Ishihara pada fitur

deteksi buta warna dan Metode RGB pada pendeteksian warna benda. Berikut

listing program untuk Metode Isihara :

ket="Buta Warna Parsial";

int n=Integer.parseInt(nilai);

if(n<=12 ){

ket="Buta warna Total";

}else if(n>12 && n<25){

ket="Buta warna Parsial";

}else{

ket="Tidak Buta Warna";

}

Pada listing program diatas menjelaskan bahwa apabila skor nilai tes

ishihara yang terdiri dari 25 soal berhasil dijawab dengan benar semua, maka

keterangan hasilnya dalah “Tidak Buta Warna”. Jika skor nilainya kurang atau sama

dengan 12, maka keterangan hasilnya adalah “Buta Warna Total”. Serta jika skor

nilainya lebih dari 12 namun kurang dari 25 (13-24), maka keterangan hasilnya

adalah “Buta Warna Parsial”.

Untuk metode RGB dalam pendeteksian warna, diambil nilai

heksadesimal tiap nilai R, G, B dengan nilai toleransi up dan down = 20. Untuk

pengambilan titikcitra diambil nilai x dan y dari kamera sehingga menghasilkan

titik citra berada tepat di tengah. Berikut listing program untuk pengambilan titik

citra :

private void Proses(String path) {

BitmapFactory.Options opt = new BitmapFactory.Options();

opt.inPreferredConfig = Bitmap.Config.ARGB_8888;

opt.inSampleSize = 5;

Bitmap mBitmap1 = BitmapFactory.decodeFile(path, opt);//"/sdcard/pic1.jpg"

int xc=mBitmap1.getWidth()/2;

int yc=mBitmap1.getHeight()/2

Page 17: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

51

Pada listing program diatas, pada saat pengambilan gambr dengan kamera

smartphone, titi citra diambil dengan nilai x (lebar:2) dan y (tinggi :2). Untuk

gambar yang telah diambil oleh kamera dikonvert menjadi bitmap lalu disimpan

pada SDCard. Untuk proses RGB, berikut listing program algoritmanya:

String getValue(int R,int G,int B){

String warna="?="+R+":"+G+":"+B;

int down=20,up=20;

if ((R>=108 && R<=148) && (G>=108 && G<=148) && (B>=108 &&

B<=148)){warna="Abu-Abu";}

else if ((R>=0 && R<=20) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Biru";}

else if ((R>=0 && R<=20) && (G>=0 && G<=20) && (B>=108 && B<=148)) {warna="Biru

Dongker";}

else if ((R>=0 && R<=20) && (G>=225 && G<=255) && (B>=225 && B<=255))

{warna="Biru Laut";}

else if ((R>=130 && R<=180) && (G>=55 && G<=105) && (B>=0 && B<=20))

{warna="Coklat";}

else if ((R>=225 && R<=255) && (G>=195 && G<=235) && (B>=0 && B<=20))

{warna="Emas";}

else if ((R>=0 && R<=20) && (G>=225 && G<=255) && (B>=0 && B<=20))

{warna="Hijau";}

else if ((R>=0 && R<=20) && (G>=0 && G<=20) && (B>=0 && B<=20))

{warna="Hitam";}

else if ((R>=225 && R<=255) && (G>=225 && G<=255) && (B>=0 && B<=20))

{warna="Kuning";}

else if ((R>=225 && R<=255) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Magenta";}

else if ((R>=225 && R<=255) && (G>=0 && G<=20) && (B>=107 && B<=147))

{warna="Merah Mawar";}

else if ((R>=225 && R<=255) && (G>=0 && G<=20) && (B>=0 && B<=20))

{warna="Merah";}

else if ((R>=108 && R<=148) && (G>=0 && G<=20) && (B>=0 && B<=20))

{warna="Merah Marun";}

else if ((R>=225 && R<=255) && (G>=172 && G<=212) && (B>=183 && B<=223))

{warna="Merah Jambu";}

else if ((R>=91 && R<=131) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Nila";}

else if ((R>=225 && R<=255) && (G>=107 && G<=147) && (B>=0 && B<=20))

{warna="Oranye";}

else if ((R>=172 && R<=212) && (G>=172 && G<=212) && (B>=172 && B<=212))

{warna="Perak";}

else if ((R>=225 && R<=255) && (G>=225 && G<=255) && (B>=225 && B<=255))

{warna="Putih";}

else if ((R>=171 && R<=211) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Ungu";}

else if ((R>=123 && R<=163) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Violet";}

else if ((R>=108 && R<=148) && (G>=108 && G<=148) && (B>=0 && B<=20))

{warna="Zaitun";}

Page 18: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

52

else if ((R>=190 && R<=255) && (G>=0 && G<=50) && (B>=0 && B<=50))

{warna="Merah 200 49 42";}

return warna;

}

}

Pada listing diatas, dijelaskan bahwa nilai RGB masing-masing warna

dalam bentuk bilangan heksadeimal dengan nilai toleransi up dan down = 20.

C. Rancangan Software Architecture

1. Listing Program Soal-Soal Ishihara

package com.example.melati.colorandblindnessdetection;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.HashMap;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.NodeList;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.res.Resources;

import android.content.res.Resources.NotFoundException;

import android.text.Html;

import android.text.TextUtils;

import android.view.KeyEvent;

import android.view.Menu;

import android.view.View;

import android.widget.ImageView;

import android.widget.RadioButton;

import android.widget.TextView;

import android.widget.Toast;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.content.Intent;

import android.graphics.drawable.Drawable;

public class soalsoal extends Activity {

RadioButton radA, radB, radC, radD;

String sNama = "Fulan", sUsia = "xx", sJK = "Laki-laki", sCatatan = "";

int ke = 0, jumsoal = 25, jumBenar = 0;

int i;

String[] arr_idsoal;

String[] arr_pertanyaan;

String[] arr_jawabA;

String[] arr_jawabB;

String[] arr_jawabC;

Page 19: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

53

String[] arr_jawabD;

String[] arr_jawabBenar;

int[] arr_gambar;

static final String KEY_record = "soal";

public static final String KEY_pertanyaan = "pertanyaan";

public static final String KEY_jawabA = "jawabA";

public static final String KEY_jawabB = "jawabB";

public static final String KEY_jawabC = "jawabC";

public static final String KEY_jawabD = "jawabD";

public static final String KEY_jawabBenar = "jawabBenar";

public static final String KEY_gambar = "gambar";

public static final String KEY_idsoal = "idsoal";

ImageView imgGambar;

TextView txtTanya, txtTanyake;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.soalsoal);

Intent i = this.getIntent();

sNama = i.getStringExtra("nama");

sUsia = i.getStringExtra("usia");

sJK = i.getStringExtra("jk");

callData();

txtTanya = (TextView) findViewById(R.id.txtTanya);

txtTanyake = (TextView) findViewById(R.id.txtTanyaKe);

imgGambar = (ImageView) findViewById(R.id.myGambar);

radA = (RadioButton) findViewById(R.id.radA);

radA.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

cekJawaban("A");

ke = ke + 1;

if (ke >= jumsoal) {

selesai();

} else {

lihat();

}

}

});

radB = (RadioButton) findViewById(R.id.radB);

radB.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

cekJawaban("B");

ke = ke + 1;

if (ke >= jumsoal) {

selesai();

} else {

lihat();

}

Page 20: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

54

}

});

radC = (RadioButton) findViewById(R.id.radC);

radC.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

cekJawaban("C");

ke = ke + 1;

if (ke >= jumsoal) {

selesai();

} else {

lihat();

}

}

});

radD = (RadioButton) findViewById(R.id.radD);

radD.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

cekJawaban("D");

ke = ke + 1;

if (ke >= jumsoal) {

selesai();

} else {

lihat();

}

}

});

lihat();

}

void cekJawaban(String pil)

{

if (arr_jawabBenar[ke].equals(pil)) {

jumBenar = jumBenar + 1;

sCatatan = sCatatan + "Soal ke-" + (ke + 1) + " Benar\n";

//Toast.makeText(getBaseContext(), " Pilihan Anda " + pil + " :

Benar!", Toast.LENGTH_LONG).show();

} else {

sCatatan = sCatatan + "Soal ke-" + (ke + 1) + " Salah\n";

//Toast.makeText(getBaseContext(), " Pilihan Anda " + pil + " :

Salah!", Toast.LENGTH_LONG).show();

}

}

//mp3

void lihat() {

radA.setChecked(false);

radB.setChecked(false);

radC.setChecked(false);

radD.setChecked(false);

int ike = ke;

txtTanya.setText((ke + 1) + "." + arr_pertanyaan[ike]);

radA.setText(arr_jawabA[ike]);

radB.setText(arr_jawabB[ike]);

radC.setText(arr_jawabC[ike]);

Page 21: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

55

radD.setText(arr_jawabD[ike]);

txtTanyake.setText("Pertanyaan ke " + (ke + 1) + " dari " + jumsoal);

imgGambar.setImageResource(arr_gambar[ike]);

}

public void selesai() {

new AlertDialog.Builder(this)

.setTitle("Hasil Tes")

.setMessage( sNama + "\nUsia:" + sUsia + " thn\nSkor anda : "

+ jumBenar + " Point")

.setNeutralButton("INFO SKOR", new OnClickListener() {

public void onClick(DialogInterface dlg, int sumthin)

{

finish();

Intent put = new Intent(getBaseContext(),

hasil.class);

put.putExtra("nama", sNama);

put.putExtra("usia", sUsia);

put.putExtra("jk", sJK);

put.putExtra("nilai",

String.valueOf(jumBenar));

put.putExtra("catatan", sCatatan);

startActivity(put);

}

})

.show();

}

public void keluarYN() {

AlertDialog.Builder ad = new AlertDialog.Builder(soalsoal.this);

ad.setTitle("Konfirmasi");

ad.setMessage("Keluar Tes?");

ad.setPositiveButton("Ya", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

finish();

}

});

ad.setNegativeButton("Tidak", new OnClickListener() {

public void onClick(DialogInterface arg0, int arg1) {

}

});

ad.show();

}

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

keluarYN();

return true;

}

return super.onKeyDown(keyCode, event);

}

Page 22: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

56

void callData() {

i = 25;

arr_idsoal = new String[i];

arr_pertanyaan = new String[i];

arr_jawabA = new String[i];

arr_jawabB = new String[i];

arr_jawabC = new String[i];

arr_jawabD = new String[i];

arr_jawabBenar = new String[i];

arr_gambar = new int[i];

// soal-soal

arr_idsoal[0] = "S01";

arr_pertanyaan[0] = "Angka berapa yang Anda lihat?";

arr_jawabA[0] = "2";

arr_jawabB[0] = "6";

arr_jawabC[0] = "26";

arr_jawabD[0] = "Tidak Ada";

arr_jawabBenar[0] = "C";

arr_gambar[0] = R.drawable.sa;

arr_idsoal[1] = "S02";

arr_pertanyaan[1] = "Angka berapa yang Anda lihat";

arr_jawabA[1] = "2";

arr_jawabB[1] = "42";

arr_jawabC[1] = "4";

arr_jawabD[1] = "Tidak Ada";

arr_jawabBenar[1] = "B";

arr_gambar[1] = R.drawable.sb;

arr_idsoal[2] = "S03";

arr_pertanyaan[2] = "Angka berapa yang Anda lihat?";

arr_jawabA[2] = "7";

arr_jawabB[2] = "47";

arr_jawabC[2] = "5";

arr_jawabD[2] = "Tidak Ada";

arr_jawabBenar[2] = "D";

arr_gambar[2] = R.drawable.sc;

arr_idsoal[3] = "S04";

arr_pertanyaan[3] = "Angka berapa yang Anda lihat";

arr_jawabA[3] = "5";

arr_jawabB[3] = "2";

arr_jawabC[3] = "7";

arr_jawabD[3] = "Tidak Ada";

arr_jawabBenar[3] = "D";

arr_gambar[3] = R.drawable.sd;

arr_idsoal[4] = "S05";

arr_pertanyaan[4] = "Angka berapa yang Anda lihat";

arr_jawabA[4] = "4";

arr_jawabB[4] = "7";

arr_jawabC[4] = "1";

arr_jawabD[4] = "Tidak Ada";

arr_jawabBenar[4] = "B";

arr_gambar[4] = R.drawable.se;

Page 23: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

57

arr_idsoal[5] = "S06";

arr_pertanyaan[5] = "Angka berapa yang Anda lihat";

arr_jawabA[5] = "2";

arr_jawabB[5] = "5";

arr_jawabC[5] = "8";

arr_jawabD[5] = "Tidak Ada";

arr_jawabBenar[5] = "B";

arr_gambar[5] = R.drawable.sf;

arr_idsoal[6] = "S07";

arr_pertanyaan[6] = "Angka berapa yang Anda lihat";

arr_jawabA[6] = "85";

arr_jawabB[6] = "42";

arr_jawabC[6] = "45";

arr_jawabD[6] = "Tidak Ada";

arr_jawabBenar[6] = "C";

arr_gambar[6] = R.drawable.sg;

arr_idsoal[7] = "S08";

arr_pertanyaan[7] = "Angka berapa yang Anda lihat";

arr_jawabA[7] = "79";

arr_jawabB[7] = "97";

arr_jawabC[7] = "87";

arr_jawabD[7] = "Tidak Ada";

arr_jawabBenar[7] = "B";

arr_gambar[7] = R.drawable.sh;

arr_idsoal[8] = "S09";

arr_pertanyaan[8] = "Angka berapa yang Anda lihat";

arr_jawabA[8] = "2";

arr_jawabB[8] = "6";

arr_jawabC[8] = "8";

arr_jawabD[8] = "Tidak Ada";

arr_jawabBenar[8] = "A";

arr_gambar[8] = R.drawable.si;

arr_idsoal[9] = "S10";

arr_pertanyaan[9] = "Angka berapa yang Anda lihat";

arr_jawabA[9] = "21";

arr_jawabB[9] = "24";

arr_jawabC[9] = "74";

arr_jawabD[9] = "Tidak Ada";

arr_jawabBenar[9] = "C";

arr_gambar[9] = R.drawable.sj;

arr_idsoal[10] = "S11";

arr_pertanyaan[10] = "Angka berapa yang Anda lihat";

arr_jawabA[10] = "15";

arr_jawabB[10] = "17";

arr_jawabC[10] = "16";

arr_jawabD[10] = "Tidak Ada";

arr_jawabBenar[10] = "A";

arr_gambar[10] = R.drawable.sk;

arr_idsoal[11] = "S12";

arr_pertanyaan[11] = "Angka berapa yang Anda lihat";

arr_jawabA[11] = "8";

arr_jawabB[11] = "5";

Page 24: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

58

arr_jawabC[11] = "3";

arr_jawabD[11] = "Tidak Ada";

arr_jawabBenar[11] = "C";

arr_gambar[11] = R.drawable.sl;

arr_idsoal[12] = "S13";

arr_pertanyaan[12] = "Angka berapa yang Anda lihat";

arr_jawabA[12] = "5";

arr_jawabB[12] = "2";

arr_jawabC[12] = "7";

arr_jawabD[12] = "Tidak Ada";

arr_jawabBenar[12] = "A";

arr_gambar[12] = R.drawable.sm;

arr_idsoal[13] = "S14";

arr_pertanyaan[13] = "Angka berapa yang Anda lihat";

arr_jawabA[13] = "35";

arr_jawabB[13] = "57";

arr_jawabC[13] = "55";

arr_jawabD[13] = "Tidak Ada";

arr_jawabBenar[13] = "B";

arr_gambar[13] = R.drawable.sn;

arr_idsoal[14] = "S15";

arr_pertanyaan[14] = "Angka berapa yang Anda lihat";

arr_jawabA[14] = "29";

arr_jawabB[14] = "79";

arr_jawabC[14] = "70";

arr_jawabD[14] = "Tidak Ada";

arr_jawabBenar[14] = "A";

arr_gambar[14] = R.drawable.so;

arr_idsoal[15] = "S16";

arr_pertanyaan[15] = "Angka berapa yang Anda lihat";

arr_jawabA[15] = "6";

arr_jawabB[15] = "8";

arr_jawabC[15] = "2";

arr_jawabD[15] = "Tidak Ada";

arr_jawabBenar[15] = "A";

arr_gambar[15] = R.drawable.sp;

arr_idsoal[16] = "S17";

arr_pertanyaan[16] = "Angka berapa yang Anda lihat";

arr_jawabA[16] = "9";

arr_jawabB[16] = "3";

arr_jawabC[16] = "8";

arr_jawabD[16] = "Tidak Ada";

arr_jawabBenar[16] = "C";

arr_gambar[16] = R.drawable.sq;

arr_idsoal[17] = "S18";

arr_pertanyaan[17] = "Angka berapa yang Anda lihat";

arr_jawabA[17] = "15";

arr_jawabB[17] = "12";

arr_jawabC[17] = "18";

arr_jawabD[17] = "Tidak Ada";

arr_jawabBenar[17] = "B";

arr_gambar[17] = R.drawable.sr;

Page 25: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

59

arr_idsoal[18] = "S19";

arr_pertanyaan[18] = "Angka berapa yang Anda lihat";

arr_jawabA[18] = "98";

arr_jawabB[18] = "46";

arr_jawabC[18] = "42";

arr_jawabD[18] = "Tidak Ada";

arr_jawabBenar[18] = "C";

arr_gambar[18] = R.drawable.st;

arr_idsoal[19] = "S20";

arr_pertanyaan[19] = "Angka berapa yang Anda lihat";

arr_jawabA[19] = "5";

arr_jawabB[19] = "2";

arr_jawabC[19] = "8";

arr_jawabD[19] = "Tidak Ada";

arr_jawabBenar[19] = "D";

arr_gambar[19] = R.drawable.su;

arr_idsoal[20] = "S21";

arr_pertanyaan[20] = "Angka berapa yang Anda lihat";

arr_jawabA[20] = "28";

arr_jawabB[20] = "15";

arr_jawabC[20] = "73";

arr_jawabD[20] = "Tidak Ada";

arr_jawabBenar[20] = "C";

arr_gambar[20] = R.drawable.sv;

arr_idsoal[21] = "S22";

arr_pertanyaan[21] = "Angka berapa yang Anda lihat";

arr_jawabA[21] = "29";

arr_jawabB[21] = "16";

arr_jawabC[21] = "18";

arr_jawabD[21] = "Tidak Ada";

arr_jawabBenar[21] = "B";

arr_gambar[21] = R.drawable.sw;

arr_idsoal[22] = "S23";

arr_pertanyaan[22] = "Angka berapa yang Anda lihat";

arr_jawabA[22] = "7";

arr_jawabB[22] = "9";

arr_jawabC[22] = "2";

arr_jawabD[22] = "Tidak Ada";

arr_jawabBenar[22] = "A";

arr_gambar[22] = R.drawable.sx;

arr_idsoal[23] = "S24";

arr_pertanyaan[23] = "Angka berapa yang Anda lihat";

arr_jawabA[23] = "6";

arr_jawabB[23] = "3";

arr_jawabC[23] = "8";

arr_jawabD[23] = "Tidak Ada";

arr_jawabBenar[23] = "A";

arr_gambar[23] = R.drawable.sy;

arr_idsoal[24] = "S25";

arr_pertanyaan[24] = "Angka berapa yang Anda lihat";

arr_jawabA[24] = "29";

Page 26: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

60

arr_jawabB[24] = "70";

arr_jawabC[24] = "28";

arr_jawabD[24] = "Tidak Ada";

arr_jawabBenar[24] = "A";

arr_gambar[24] = R.drawable.sz;

}

}

2. Listing Program Hasil Tes Ishihara

package com.example.melati.colorandblindnessdetection;

import java.util.Calendar;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.os.Bundle;

import android.text.Html;

import android.text.TextUtils;

import android.view.KeyEvent;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

public class hasil extends Activity {

String nama,jk,nilai,catatan,usia,ket;

myDbHelper helper=null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.hasil);

helper=new myDbHelper(this);

Intent i = this.getIntent();

nama=i.getStringExtra("nama");

jk=i.getStringExtra("jk");

nilai=i.getStringExtra("nilai");

catatan=i.getStringExtra("catatan");

usia=i.getStringExtra("usia");

ket=i.getStringExtra("ket");

//settek ni di snii ngmbil dari yng hasil.xml

TextView txtNama=(TextView)findViewById(R.id.hnama);

TextView txtUsia=(TextView)findViewById(R.id.husia);

TextView txtNilai=(TextView)findViewById(R.id.hNilai);

TextView txtKet=(TextView)findViewById(R.id.hketerangan);

TextView txtInfo=(TextView)findViewById(R.id.hcatatan);

txtNama.setText(nama);

txtNilai.setText(nilai);

txtKet.setText(ket);

txtUsia.setText(usia);

txtInfo.setText(catatan);

Page 27: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

61

ket="Buta Warna Parsial";

int n=Integer.parseInt(nilai);

if(n<=12 ){

ket="Buta warna Total";

}else if(n>12 && n<25){

ket="Buta warna Parsial";

}else{

ket="Tidak Buta Warna";

}

Button btnSimpan= (Button) findViewById(R.id.hSimpan);

btnSimpan.setOnClickListener(new View.OnClickListener() {

public void onClick(View arg0) {

helper.insertDb(nama, usia, jk,nilai,ket);

Intent i=new Intent(hasil.this,MenuUtama.class);

finish();

startActivity(i);

}

});

Button btnKembali= (Button) findViewById(R.id.hKembali);

btnKembali.setOnClickListener(new View.OnClickListener() {

public void onClick(View arg0) {

finish();

}

});

}

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

finish();

return true;

}

return super.onKeyDown(keyCode, event);

}

}

3. Listing Program Camera Color Detection

package com.example.melati.colorandblindnessdetection;

import android.app.Activity;

import android.app.ProgressDialog;

import android.content.ContentValues;

import android.content.Intent;

import android.database.Cursor;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Color;

import android.media.MediaPlayer;

import android.net.Uri;

import android.os.AsyncTask;

import android.os.Bundle;

import android.provider.MediaStore;

Page 28: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

62

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

import java.io.IOException;

public class Camera extends Activity {

final static int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1;

public static String Path="";

Uri imageUri = null;

static TextView imageDetails = null;

public static ImageView showImg = null;

Camera CameraActivity = null;

Button btnCek;

TextView txthasil;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.getcamera);

CameraActivity = this;

imageDetails = (TextView) findViewById(R.id.imageDetails);

showImg = (ImageView) findViewById(R.id.showImg);

txthasil= (TextView) findViewById(R.id.txthasil);

btnCek= (Button) findViewById(R.id.btnCek);

btnCek.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Log.v("Baca","Path="+Path);

Proses(Path);

} });

String fileName = "Camera_Example.jpg";

ContentValues values = new ContentValues();

values.put(MediaStore.Images.Media.TITLE, fileName);

values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");

imageUri = getContentResolver().insert(

MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data)

{

if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {

if (resultCode == RESULT_OK) {

String imageId = convertImageUriToFiles(imageUri,CameraActivity);

Page 29: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

63

new LoadImagesFromSDCard().execute(""+imageId);

} else if (resultCode == RESULT_CANCELED) {

Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show();

}

}

}

private void Proses(String path) {

BitmapFactory.Options opt = new BitmapFactory.Options();

opt.inPreferredConfig = Bitmap.Config.ARGB_8888;

opt.inSampleSize = 5;

Bitmap mBitmap1 = BitmapFactory.decodeFile(path, opt);//"/sdcard/pic1.jpg"

int xc=mBitmap1.getWidth()/2;

int yc=mBitmap1.getHeight()/2;

int pixel = mBitmap1.getPixel(xc,yc);

int redValue = Color.red(pixel);

int blueValue = Color.blue(pixel);

int greenValue = Color.green(pixel);

String v=getValue(redValue,greenValue,blueValue);

playSuara(v);

txthasil.setText(v);

}

public static String convertImageUriToFiles (Uri imageUri, Activity activity) {

Cursor cursor = null;

int imageID = 0;

try {

String [] proj={

MediaStore.Images.Media.DATA,

MediaStore.Images.Media._ID,

MediaStore.Images.Thumbnails._ID,

MediaStore.Images.ImageColumns.ORIENTATION

};

cursor = activity.managedQuery(

imageUri, // Get data for specific image URI

proj, // Which columns to return

null, // WHERE clause; which rows to return (all rows)

null, // WHERE clause selection arguments (none)

null // Order-by clause (ascending by name)

);

int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);

int columnIndexThumb =

cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);

int file_ColumnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

//int orientation_ColumnIndex =

cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.ORIENTATION);

Page 30: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

64

int size = cursor.getCount();

if (size == 0) {

imageDetails.setText("No Image");

}

else

{

int thumbID = 0;

if (cursor.moveToFirst()) {

imageID = cursor.getInt(columnIndex);

thumbID = cursor.getInt(columnIndexThumb);

Path = cursor.getString(file_ColumnIndex);

String CapturedImageDetails = " Captured Image Details : \n\n"

+" ImageID :"+imageID+"\n"

+" ThumbID :"+thumbID+"\n"

+" Path :"+Path+"\n";

imageDetails.setText(CapturedImageDetails);

}

}

} finally {

if (cursor != null) {

cursor.close();

}

}

return ""+imageID;

}

public class LoadImagesFromSDCard extends AsyncTask<String, Void, Void> {

private ProgressDialog Dialog = new ProgressDialog(Camera.this);

Bitmap mBitmap;

protected void onPreExecute() {

Dialog.setMessage("Loading image from Sdcard..");

Dialog.show();

}

protected Void doInBackground(String... urls) {

Bitmap bitmap = null;

Bitmap newBitmap = null;

Uri uri = null;

try {

uri = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, ""

+ urls[0]);

bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));

if (bitmap != null) {

newBitmap = Bitmap.createScaledBitmap(bitmap, 170, 170, true);

bitmap.recycle();

if (newBitmap != null) {

mBitmap = newBitmap;

}

}

} catch (IOException e) {

cancel(true);

}

return null;

}

Page 31: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

65

protected void onPostExecute(Void unused) {

Dialog.dismiss();

if(mBitmap != null) {

showImg.setImageBitmap(mBitmap);

}//NOT NULL

}}

void playSuara(String warna) {

int suara = R.raw.umum;

if (warna.equalsIgnoreCase("Merah")) {

suara = R.raw.merah;

} else if (warna.equalsIgnoreCase("Abu-Abu")) {

suara = R.raw.abuabu;

} else if (warna.equalsIgnoreCase("Biru")) {

suara = R.raw.biru;

} else if (warna.equalsIgnoreCase("Biru Dongker")) {

suara = R.raw.birudongker;

} else if (warna.equalsIgnoreCase("Biru Laut")) {

suara = R.raw.birulaut;

} else if (warna.equalsIgnoreCase("Coklat")) {

suara = R.raw.coklat;

} else if (warna.equalsIgnoreCase("Emas")) {

suara = R.raw.emas;

} else if (warna.equalsIgnoreCase("Hijau")) {

suara = R.raw.hijau;

} else if (warna.equalsIgnoreCase("Hitam")) {

suara = R.raw.hitam;

} else if (warna.equalsIgnoreCase("Kuning")) {

suara = R.raw.kuning;

} else if (warna.equalsIgnoreCase("Magenta")) {

suara = R.raw.magenta;

} else if (warna.equalsIgnoreCase("Merah Jambu")) {

suara = R.raw.merahjambu;

} else if (warna.equalsIgnoreCase("Merah Marun")) {

suara = R.raw.merahmarun;

} else if (warna.equalsIgnoreCase("Merah Mawar")) {

suara = R.raw.merahmawar;

} else if (warna.equalsIgnoreCase("Ungu")) {

suara = R.raw.ngu;

} else if (warna.equalsIgnoreCase("Nila")) {

suara = R.raw.nila;

} else if (warna.equalsIgnoreCase("Oranye")) {

suara = R.raw.oranye;

} else if (warna.equalsIgnoreCase("Perak")) {

suara = R.raw.perak;

} else if (warna.equalsIgnoreCase("Putih")) {

suara = R.raw.putih;

} else if (warna.equalsIgnoreCase("Violet")) {

suara = R.raw.violet;

} else if (warna.equalsIgnoreCase("Zaitun")) {

suara = R.raw.zaitun;

}

MediaPlayer mp = MediaPlayer.create(this, suara);

if (!mp.isPlaying()) {

mp.start();

Page 32: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

66

mp.setLooping(true);

Toast.makeText(this, "Cek Warna " + warna, Toast.LENGTH_LONG).show();

}

}

String getValue(int R,int G,int B){

String warna="?="+R+":"+G+":"+B;

int down=20,up=20;

if ((R>=108 && R<=148) && (G>=108 && G<=148) && (B>=108 &&

B<=148)){warna="Abu-Abu";}

else if ((R>=0 && R<=20) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Biru";}

else if ((R>=0 && R<=20) && (G>=0 && G<=20) && (B>=108 && B<=148))

{warna="Biru Dongker";}

else if ((R>=0 && R<=20) && (G>=225 && G<=255) && (B>=225 && B<=255))

{warna="Biru Laut";}

else if ((R>=130 && R<=180) && (G>=55 && G<=105) && (B>=0 && B<=20))

{warna="Coklat";}

else if ((R>=225 && R<=255) && (G>=195 && G<=235) && (B>=0 && B<=20))

{warna="Emas";}

else if ((R>=0 && R<=20) && (G>=225 && G<=255) && (B>=0 && B<=20))

{warna="Hijau";}

else if ((R>=0 && R<=20) && (G>=0 && G<=20) && (B>=0 && B<=20))

{warna="Hitam";}

else if ((R>=225 && R<=255) && (G>=225 && G<=255) && (B>=0 && B<=20))

{warna="Kuning";}

else if ((R>=225 && R<=255) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Magenta";}

else if ((R>=225 && R<=255) && (G>=0 && G<=20) && (B>=107 && B<=147))

{warna="Merah Mawar";}

else if ((R>=225 && R<=255) && (G>=0 && G<=20) && (B>=0 && B<=20))

{warna="Merah";}

else if ((R>=108 && R<=148) && (G>=0 && G<=20) && (B>=0 && B<=20))

{warna="Merah Marun";}

else if ((R>=225 && R<=255) && (G>=172 && G<=212) && (B>=183 && B<=223))

{warna="Merah Jambu";}

else if ((R>=91 && R<=131) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Nila";}

else if ((R>=225 && R<=255) && (G>=107 && G<=147) && (B>=0 && B<=20))

{warna="Oranye";}

else if ((R>=172 && R<=212) && (G>=172 && G<=212) && (B>=172 && B<=212))

{warna="Perak";}

else if ((R>=225 && R<=255) && (G>=225 && G<=255) && (B>=225 && B<=255))

{warna="Putih";}

else if ((R>=171 && R<=211) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Ungu";}

else if ((R>=123 && R<=163) && (G>=0 && G<=20) && (B>=225 && B<=255))

{warna="Violet";}

else if ((R>=108 && R<=148) && (G>=108 && G<=148) && (B>=0 && B<=20))

{warna="Zaitun";}

else if ((R>=190 && R<=255) && (G>=0 && G<=50) && (B>=0 && B<=50))

{warna="Merah 200 49 42";}

return warna;

}

}

Page 33: BAB III ANALISA DAN PERANCANGAN - … · c. Sistem dapat menampilkan soal pertanyaan dan pilihan jawaban tes ... Sistem dapat menampilkan informasi tentang ... Kebutuhan Perangkat

67

D. Deployment Diagram

Gambar III.17 Deployment Diagram