Implementasi Content Based Image Retrieval Berbasis Fitur Bentuk dan Warna Menggunakan Operator Sobel dan Deteksi Warna HSV

(1)

77

DAFTAR PUSTAKA

Acharya, T., & Ray, A. K. 2005. Image Processing Principles And Applications. Canada : John Wiley & Sons Inc., Hooboken, New Jersey.

Ambler, S. W. 2005. The Elements of UML™ 2.0 Style. Cambridge University Press: Cambridge.

Barus, O. 2011. Identifikasi Tepi Citra Menggunakan Algoritma Sobel Edge Detection. Skripsi. Universitas Sumatera Utara.

Chaudari, R., & Patil, A. M. 2012. Content Based Image Retrieval Using Color And Shape Features. International Journal of Advanced Research In Electrical, Electronics, And Instrumental Engineering 1(5) : 386-392.

Gonzalez, R.C., Woods R.E., & Eddins S.L. 2004. Digital Image Processing Using Matlab. Pearson Prentice Hall, New Jersey.

Hastuti, I., Hariadi, M., & Purnama, I. K. E. 2009. Content Based Image Retrieval Berdasarkan Fitur Bentuk Menggunakan Metode Gradient Vector Flow Snake. Prosiding Seminar Nasional Informatika 2009 (SEMNASIF 2009), pp. 140-145.

Jadhav, S. H., & Ahmed, S. A. 2012. A Content Based image Retrieval System Using Homogeneity Feature Extraction From Recency-based Retrieved Image Library. IOSR Journal of Computer Engineering 7(6) : 13-24.

Karimah, F., U. 2014. Rancang Bangun Aplikasi Pencarian Citra Batik Besurek Berbasis Tekstur dengan Metode Gray Level Co-occurance Matrix dan Euclidean Distance. Skripsi. Universitas Bengkulu.

Karmilasari & Sumarna, A. 2011. Temu Kenali Citra Berbasis Konten Warna.

Prosiding Seminar Nasional Aplikasi Teknologi Informasi 2011 (SNATI 2011), pp. 112-117.

Khair, O. F. 2013. Analisis Perbandingan Pendeteksian Tepi Citra dengan Operator Sobel, Operator Prewitt, dan Operator Modifikasi Sobel. Skripsi. Universitas Sumatera Utara.

Kusumaningsih, I. 2009. Ekstraksi Ciri Warna, Bentuk dan Tekstur Untuk Temu Kembali Citra Hewan. Skripsi. Institut Pertanian Bogor.

Larasati, T., Hidayat, B., & Novianty, A. 2012. Analisis dan Simulasi Image Retrieval Berdasarkan Ciri Warna Dengan Metode Wavelet. Skripsi. Institut Teknologi Telkom Bandung.

Long, F., Zhang, H., & Feng, D. D. 2003. Fundamentals of Content Based Image Retrieval,Technological Fundamentals andApplications. NewYork: Springer-Verlag.

Purnamasari, F., Ramadijanti, N., & Setiawardhana. 2008. System Online CBIR Menggunakan Identifikasi Dominan Warna pada Foreground Objek. Skripsi. Politeknik Elektronika Negri Surabaya Institut Teknologi Sepuluh Nopember.


(2)

78

Putranto, B. Y. B., Hapsari, W., & Wijana, K. 2010. Segmentasi Warna Citra dengan Deteksi Warna HSV Untuk Mendeteksi Objek. Jurnal Informatika 6(2) : 1-14. Rakhmawati, & Puji R. 2013. Sistem Deteksi Bunga Menggunakan Nilai HSV dari

Citra Mahkota Bunga. Skripsi. Universitas STIKBANK.

Rapianti, C.L. 2011. Sistem Informasi Apotek Sehat Farma Langkat. Skripsi. Universitas Sumatera Utara.

Sebayang, A. M. S. 2014. Implementasi Kombinasi Beaufort Cipher dan Affine Cipher pada Three-Pass Protocol untuk Pengamanan Data . Skripsi. Universitas Sumatera Utara.

Setiawan, A. E. 2011. Perbandingan Content Based Image Retrieval dengan Fitur Warna Menggunakan Metode Colour Histogram dan Fitur Tekstur Menggunakan Metode Grey Level Co-Occurence Matrices. Skripsi. Universitas Sumatera Utara.

Sutoyo, T., Mulyanto, E., Suhartono, V., Nurhayati, O. D. & Wijanarto. 2009. Teori Pengolahan Citra Digital. ANDI: Yogyakarta.

Syarif, H. 2014. Content Based Image Retrieval Berbasis Color Histogram Untuk Pengklasifikasian Ikan Koi Jenis Kohaku. Skripsi. Universitas Dian Nuswantoro Semarang.

Vairalkar, M. K., Nimbhorkar, S. U. 2012. Edge Detection of Images Using Sobel Operator. International Journal of Emerging Technology and Advanced Engineering 2(1) : 291-293.

Whitthen, et al. 2004. Metode Desain & Analisis Sistem. Edisi 6. New York : McGraw-Hill.

Wijaya, E. 2012. Analisis Intensitas Metode Pendeteksian Tepi Sobel. Jurnal Komputer dan Informatika (KOMPUTA) 1(1) : 25-27.

Zarlis, M. & Handrizal. 2008. Algoritma dan Pemrograman: Teori dan praktik dalam pascal. Edisi Kedua. USU Press: Medan.


(3)

C-1

LISTING PROGRAM

1. Class sobelMatch.java

import java.awt.image.BufferedImage; import java.io.File;

import java.io.FileOutputStream; import java.io.IOException; public final class sobelMatch {

public String getValueSobel(File fileImage) throws IOException { String integralPro = "";

double Gx[][], Gy[][], alphaG[][], rgbG[][];

File fileImg = new File(fileImage.getAbsolutePath()); BufferedImage getImg = ImageIO.read(fileImg);

int height = getImg.getHeight(); int width = getImg.getWidth();

int intPro[][] = new int[width][height];

BufferedImage outImg = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);

int[][] alphaGrayValue = new int[width][height]; int[][] rgbGrayValue = new int[width][height]; for(int i=0; i<width; i++){

for(int j=0; j<height; j++){ int pixel = getImg.getRGB(i, j); int a = (pixel>>24)&0xff;

int r = (pixel>>16)&0xff; int g = (pixel>>8)&0xff; int b = pixel&0xff;

alphaGrayValue[i][j] = a;

rgbGrayValue[i][j] = (r+g+b)/3; }

}

Gx = new double[width][height]; Gy = new double[width][height]; alphaG = new double[width][height]; rgbG = new double[width][height]; for (int i=0; i<width; i++) { for (int j=0; j<height; j++) {

if (i==0 || i==width-1 || j==0 || j==height-1) Gx[i][j] = Gy[i][j] = alphaG[i][j] = rgbG[i][j] = 0;

else{

Gx[i][j] = alphaGrayValue[i+1][j-1] + 2*alphaGrayValue[i+1][j] +

alphaGrayValue[i+1][j+1]

- alphaGrayValue[i-1][j-1] - 2*alphaGrayValue[i-1][j]


(4)

C-2

Gy[i][j] = alphaGrayValue[i-1][j+1] + 2*alphaGrayValue[i][j+1] +

alphaGrayValue[i+1][j+1]

- alphaGrayValue[i-1][j-1] - 2*alphaGrayValue[i][j-1]

- alphaGrayValue[i+1][j-1]; alphaG[i][j] =

Math.abs(Gx[i][j])+Math.abs(Gy[i][j]);

Gx[i][j] = rgbGrayValue[i+1][j-1] +

2*rgbGrayValue[i+1][j] + rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] - 2*rgbGrayValue[i-1][j] - rgbGrayValue[i-1][j+1];

Gy[i][j] = rgbGrayValue[i-1][j+1] +

2*rgbGrayValue[i][j+1] + rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] - 2*rgbGrayValue[i][j-1] - rgbGrayValue[i+1][j-1];

rgbG[i][j] = Math.abs(Gx[i][j]) + Math.abs(Gy[i][j]);

}

int NewColor = ((int)alphaG[i][j]<<24) |

((int)rgbG[i][j]<<16) | ((int)rgbG[i][j]<<8) | (int)rgbG[i][j]; outImg.setRGB(i, j, NewColor);

} }

FileOutputStream outFile = new

FileOutputStream("sobel"+fileImage.getName()); ImageIO.write(outImg, "jpg", outFile); for(int i=0 ; i<width ; i++){

int temp = 0;

for(int j=0 ; j<height ; j++){ temp += intPro[i][j]; }

}

for(int i=0 ; i<height ; i++){ int temp=0;

for(int j=0 ; j<width ; j++){ temp += intPro[j][i]; }

if(i==height-1)

integralPro += Integer.toString(temp); else

integralPro += Integer.toString(temp)+" "; }

return integralPro; }


(5)

C-3

2. Class hsvMatch.java

import java.awt.image.BufferedImage; import java.io.File;

import java.io.IOException; import java.text.DecimalFormat; import java.text.NumberFormat; public class hsvMatch {

public double[] getValueHSV(File fileImg) throws IOException{ double[] result = new double[162];

NumberFormat nf =

NumberFormat.getNumberInstance(Locale.getDefault()); DecimalFormat df = (DecimalFormat) nf;

df.applyPattern("#.#####"); Arrays.fill(result, 0); double[] hBinValue = { 0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.000 00, 0.05882,0.05882,0.05882,0.05882,0.05882,0.05882,0.05882,0.05882,0.058 82, 0.11765,0.11765,0.11765,0.11765,0.11765,0.11765,0.11765,0.11765,0.117 65, 0.23529,0.23529,0.23529,0.23529,0.23529,0.23529,0.23529,0.23529,0.235 29, 0.29412,0.29412,0.29412,0.29412,0.29412,0.29412,0.29412,0.29412,0.294 12, 0.35294,0.35294,0.35294,0.35294,0.35294,0.35294,0.35294,0.35294,0.352 94, 0.41176,0.41176,0.41176,0.41176,0.41176,0.41176,0.41176,0.41176,0.411 76, 0.47059,0.47059,0.47059,0.47059,0.47059,0.47059,0.47059,0.47059,0.470 59, 0.52941,0.52941,0.52941,0.52941,0.52941,0.52941,0.52941,0.52941,0.529 41, 0.58824,0.58824,0.58824,0.58824,0.58824,0.58824,0.58824,0.58824,0.588 24, 0.64706,0.64706,0.64706,0.64706,0.64706,0.64706,0.64706,0.64706,0.647 06,


(6)

C-4 0.70588,0.70588,0.70588,0.70588,0.70588,0.70588,0.70588,0.70588,0.705 88, 0.76471,0.76471,0.76471,0.76471,0.76471,0.76471,0.76471,0.76471,0.764 71, 0.82353,0.82353,0.82353,0.82353,0.82353,0.82353,0.82353,0.82353,0.823 53, 0.88235,0.88235,0.88235,0.88235,0.88235,0.88235,0.88235,0.88235,0.882 35, 0.94118,0.94118,0.94118,0.94118,0.94118,0.94118,0.94118,0.94118,0.941 18, 1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.000 00 };

double[] sBinValue = { 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000


(7)

C-5 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00 };

double[] vBinValue = { 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,


(8)

C-6

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

};

BufferedImage getImg = ImageIO.read(fileImg); int height = getImg.getHeight();

int width = getImg.getWidth();

BufferedImage outImg = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);

int counter=0;

for(int i=0; i<width; i++){ for(int j=0; j<height; j++){

int pixel = getImg.getRGB(i, j); double a = (pixel>>24)&0xff; double r = (pixel>>16)&0xff; double g = (pixel>>8)&0xff; double b = pixel&0xff;

double r1 = Double.valueOf(df.format(r/255)); double g1 = Double.valueOf(df.format(g/255)); double b1 = Double.valueOf(df.format(b/255)); double cMax = Math.max((Math.max(r1, g1)), b1); double cMin = Math.min((Math.min(r1, g1)), b1); double delta = Double.valueOf(df.format(cMax - cMin));


(9)

C-7

vValue = cMax*100.0; if(cMax == 0){ sValue = 0; }

else{

sValue = (delta/cMax)*100; }

if(delta==0){ hValue = 0.0; }

else{

if(cMax == r1){

hValue = 60*( ((g1-b1)/delta)%6 ); }

else if(cMax == g1){

hValue = 60*( ((b1-r1)/delta)+2 ); }

else if(cMax == b1){

hValue = 60*( ((r1-g1)/delta)+4 ); }

else{

hValue = 0.0; }

}

if(hValue<0){ hValue+=360.0; }

hValue = Double.valueOf(df.format(hValue)); sValue = Double.valueOf(df.format(sValue)); vValue = Double.valueOf(df.format(vValue)); hValue = Math.round(hValue*18/360);

sValue = Math.round(sValue*3/100); vValue = Math.round(vValue*3/100);

hValue = Double.valueOf(df.format(hValue/17)); sValue = Double.valueOf(df.format(sValue/2)); vValue = Double.valueOf(df.format(vValue/2)); if(sValue>1.00000){

sValue=1.0; }

if(hValue>1.00000){

hValue = Double.valueOf(df.format(hValue - 1.00000)); } if(vValue>1.00000){ vValue=1.0; } boolean found=false;

for(int x=0 ; x<162 ; x++){ if(hValue == hBinValue[x]){ if(sValue == sBinValue[x]){


(10)

C-8 break; } } } } } } double temp=0;

for(int i=0 ; i<162 ; i++){

System.out.println("Bin ke-"+(i+1)+" Nilai Kuantisasi="+result[i]); result[i]=Double.valueOf (df.format(result[i]*100/(width*height))); } return result; } }

3. Class euclideanDistance.java import java.text.DecimalFormat; import java.util.Locale;

public class euclideanDistance { NumberFormat nf =

NumberFormat.getNumberInstance(Locale.getDefault()); DecimalFormat df = (DecimalFormat) nf;

public double matchSobelValue(String val1, String val2){ double result=0, max;

double var1, var2, temp=0;

String[] perDig1 = val1.split(" "); String[] perDig2 = val2.split(" "); if(perDig1.length >= perDig2.length) max = perDig1.length;

else

max = perDig2.length; for(int i=0 ; i<max ; i++){ if(i>perDig1.length-1){ var1 = 0;

} else{

var1 = Integer.parseInt(perDig1[i]); }

if(i>perDig2.length-1){ var2 = 0;

} else{

var2 = Integer.parseInt(perDig2[i]); }


(11)

C-9

temp += Math.pow(var1-var2,2); }

return result; }

public double matchHSVValue(double[] val1, double[] val2){ df.applyPattern("#.#####");

double result, temp=0;

for(int i=0 ; i<val1.length ; i++){ temp+=Math.pow(val1[i]-val2[i], 2); }

result = Double.valueOf(df.format(Math.sqrt(temp))); return result;

} }

4. Class dbConnection.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class dbConnection {

private Connection DBConnection; public Connection connect() { try {

Class.forName("org.sqlite.JDBC");

System.out.println("Connection Success"); } catch(ClassNotFoundException cnfe) {

System.out.println("Connection Fail" + cnfe); }

try {

DBConnection =

DriverManager.getConnection("jdbc:sqlite:db_cbir.sqlite"); System.out.println("Database Connected"); } catch (SQLException se) {

System.out.println("No Database" + se); }

return DBConnection; }

}


(12)

D-1

D

AFTAR

R

IWAYAT

H

IDUP

CURRICULUM VITAE

DATAPRIBADI

Nama Lengkap : Rafika Asnur Lubis

Tempat / Tgl. Lahir : Kisaran / 27 September 1993 Jenis Kelamin : Perempuan

Agama : Islam

Kebangsaan : Indonesia

Alamat : Jalan Pembangunan USU No.12 Medan

Telepon : +6285270589027

Tinggi / Berat : 159 cm / 48 kg

Email : rafika.asnur@gmail.com

KEMAMPUAN

Bahasa : Bahasa Indonesia, Bahasa Inggris Bahasa Pemrograman : Java, PHP

Database : MySQL, SQLite

Lainnya : HTML, CSS, Photoshop, Ms. Office, Adobe Flash

PENDIDIKANFORMAL

 [ 2011 – 2015 ]

Implementasi Content Based Image Retrieval Berbasis Fitur Bentuk dan Warna Menggunakan Operator Sobel dan Deteksi Warna HSV

S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara

 [ 2008 – 2011 ]

SMA Negeri 1 Kisaran  [ 2005 – 2008 ]

SMP Negeri 1 Kisaran  [ 1999 – 2005 ]

SD Swasta Diponegoro Kisaran  [ 1997 – 1999 ]


(13)

D-2 PENDIDIKANNON-FORMAL

 [ 2006 – 2008 ]

Lembaga Bimbingan Belajar Primagama, Kisaran.  [ 2008 – 2010 ]

Lembaga Bimbingan Belajar Medica, Kisaran.  [ 2010 – 2011 ]

Lembaga Bimbingan Belajar Ganesha Operation, Kisaran.

PENGALAMANORGANISASIDANRIWAYATKEPANITIAAN

 Anggota Konsumsi PHBI Al-Luqman SMA Negeri 1 Kisaran [2009 - 2011]  Anggota Keputrian UKMI Al-Khuwarizmi Fasilkom-TI USU [2012 - 2013]  Anggota Konsumsi di PORSENI IMILKOM [2013]

 Anggota Humas di Penerimaan Mahasiswa Baru S1 Ilmu Komputer USU [2013]

PENGALAMANKERJA

 Praktek Kerja Lapangan di Bank Indonesia, Medan [2014]

PELATIHAN/TRAINING&WORKSHOP

 Peserta Workshop Membuat Desain Media Publikasi Poster, UKMI Al-Khuwarizmi Fasilkom-TI USU, Medan [2012]

 Peserta Workshop Linux Installation & Configure the Application, Kelompok Study Linux USU, Medan [2012]

 Peserta Workshop Pengenalan Android,Artechno Festival, Medan [2011]  Peserta Workshop Animation for Fun, Artechno Festival, Medan [2011]

 Peserta Workshop Animation Revolution, DreamArch Animation, Medan [2011]

SEMINAR

 Peserta Seminar Nasional Literasi Informasi (SENARAI), FASILKOM-TI USU, Medan [2014]  Peserta Seminar Mengubah Persepsi Profesional Indonesia di Global Market, HIMATIF USU,

Medan [2014]

 Peserta Seminar Nasional “Creative Animation & Gaming Industry”, HIMATIF USU, Medan [2013]

 Peserta Seminar Motivasi “We Can Speak English Now!”, SGC USU, Medan [2013]

 Peserta Seminar Nasional “Teknologi Cloud Computing dalam Menghadapi Persaingan Global”, SEMILOKA KBK, Medan [2011]


(14)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Pada bab analisis dan perancangan ini akan diuraikan mengenai analisis terhadap masalah penelitian dan perancangan terhadap sistem yang akan dibangun serta bagian-bagian yang berkaitan dengan sistem, antarmuka sistem dan penjelasan cara kerja sistem.

3.1 Analisis Sistem

Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi bagian – bagian komponen dengan tujuan mempelajari seberapa bagus bagian – bagian komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka. Analisis sistem ini juga merupakan suatu proses mengumpulkan dan menginterpretasikan kenyataan – kenyataan yang ada, mendiagnosa persoalan dan menggunakan keduanya untuk memperbaiki sistem (Sebayang, 2014).

Analisis sistem terdiri dari tiga tahapan yaitu analisis masalah, analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk mengidentifikasi penyebab masalah serta memahami kelayakan masalah. Analisis kebutuhan bertujuan untuk mengidentifikasi data dan proses apa yang dibutuhkan sistem yang akan dibuat. Tahapan analisis ini juga dilakukan untuk menjelaskan fungsi – fungsi yang ditawarkan dan mampu dikerjakan oleh sistem baik kebutuhan fungsional dan nonfungsional. Sedangkan analisis proses bertujuan untuk mengetahui alur suatu sistem dan tools yang digunakan untuk merancang sebuah sistem. Pada analisis sistem juga terdapat pseudocode yang bertujuan untuk mempermudah programmer dalam merancang sebuah sistem.


(15)

26

3.1.1 Analisis Masalah

Permasalahan yang akan dibahas dalam penelitian ini adalah pemanggilan citra kembali berdasarkan konten dengan cara membandingkan fitur citra query dengan fitur citra yang terdapat pada database. Fitur citra yang digunakan dalam penelitian ini adalah fitur bentuk dan fitur warna. Operator Sobel digunakan untuk ekstraksi fitur bentuk dan Deteksi warna HSV digunakan untuk ekstraksi fitur warna.

Gambaran masalah penelitian ini secara umum dapat dilihat pada Gambar 3.1. dengan menggunakan diagram Ishikawa (fishbone/cause and effect diagram).

Gambar 3.1. Diagram Ishikawa Masalah Penelitian

Diagram Ishikawa merupakan suatu alat visual untuk mengidentifikasi, mengeksplorasi, dan secara diagram menggambarkan semua penyebab yang berhubungan dengan suatu permasalahan. Diagram ini berbentuk tulang ikan yang kepalanya menghadap ke kanan. Diagram ini menunjukkan sebuah dampak atau akibat dari permasalahan dengan berbagai penyebabnya.

Berdasarkan Gambar 3.1, masalah utama ditunjukkan pada segi empat paling kanan (kepala ikan), yaitu pemanggilan citra kembali berdasarkan konten. Kategori masalah ditunjukkan pada segi empat lainnya yang terhubung dengan garis tulang utama (garis horizontal yang terhubung ke kepala ikan). Sebab dari masalah ditunjukkan pada garis panah yang mengarah ke tulang kategori.


(16)

27

3.1.2 Analisis Kebutuhan

Analisis kebutuhan terbagi atas dua bagian, yaitu kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan suatu sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.

3.1.2.1 Kebutuhan Fungsional

Kebutuhan fungsional yang harus dimiliki oleh sistem pemanggilan citra berdasarkan konten dengan Operator Sobel dan deteksi warna HSV, antara lain :

1. Sistem dapat membaca masukan citra digital berformat jpeg dengan ukuran maksimal 500 x 500 piksel.

2. Sistem dapat menyimpan file citra berformat jpeg dengan ukuran maksimal 500 x 500 piksel kedalam database.

3. Sistem dapat melakukan ekstraksi fitur pada citra masukan dan citra yang terdapat pada database dengan menggunakan Operator Sobel untuk ekstraksi fitur bentuk dan deteksi warna HSV untuk ekstraksi fitur warna.

4. Sistem dapat menghitung jarak kesamaan citra masukan dan citra yang terdapat pada database menggunakan metode Euclidean Distance.

5. Sistem dapat mengeluarkan citra dengan jarak kesamaan tertinggi sebagai

output.

3.1.2.2 Kebutuhan Nonfungsional

Beberapa persyaratan nonfungsional yang harus dipenuhi oleh sistem yang dirancang antara lain :

1. Performa

Sistem yang dibangun dapat menampilkan hasil dari pemanggilan citra berdasarkan konten.


(17)

28

2. Mudah digunakan dan dipelajari

Sistem yang dibangun memiliki tampilan sederhana dan user friendly.

3. Dokumentasi

Sistem yang dibangun memiliki panduan penggunaan. 4. Hemat biaya

Sistem yang dibangun tidak memerlukan perangkat tambahan dalam proses jalannya sistem.

3.1.3 Analisis Proses

Dalam sistem ini digunakan Operator Sobel dan deteksi warna HSV untuk proses ekstraksi fitur pada citra berformat jpeg. Operator Sobel digunakan untuk ekstraksi fitur bentuk sedangkan deteksi warna HSV untuk ekstraksi fitur warna. Citra query

dan citra pada database yang telah di ekstraksi akan menghasilkan vektor fitur. Setelah itu dilakukan penghitungan jarak kesamaan antara vektor fitur citra query

dengan vektor fitur citra dalam database menggunakan Euclidean Distance. Hasil yang diperoleh dari metode Euclidean Distance akan diurutkan. Citra dengan jarak kesamaan tertinggi akan di tampilkan sebagai output.

3.2 Perancangan Sistem

Perancangan sistem dilakukan untuk memberikan gambaran mengenai sistem yang akan dibangun sehingga mempermudah dalam melakukan implementasi ataupun evaluasi. Sistem dirancang dengan membuat flowchart, pseudocode, use-case diagram, activity diagram, sequence diagram, perancangan database dan perancangan antarmuka (interface).


(18)

29

Mulai

P

q1,q2, ..., qn p1, p2, ..., pn

d = pi-qi n i=1

Q

Selesai Hasil Asscending d 3.2.1 Flowchart

Flowchart atau diagram alir merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses dengan pernyataannya (Zarlis & Handrizal, 2008). Pada penelitian ini, terdapat empat flowchart, yaitu : flowchart Content Based Image Retrieval, flowchart ekstraksi fitur bentuk, flowchart ekstraksi fitur warna dan

flowchart sistem secara keseluruhan.

3.2.1.1 Flowchart Content Based Image Retrieval

Flowchart Content Based Image Retrieval secara keseluruhan dapat dilihat pada Gambar 3.2.

Gambar 3.2. Flowchart Content Based Image Retrieval

Berdasarkan Gambar 3.2. dapat dilihat tahap awal dalam sistem pemanggilan citra berdasarkan konten adalah meng-input-kan citra query (P) kemudian citra query

diekstraksi sehingga menghasilkan vektor fitur citra(p1, p2, ..., pn). Citra yang telah


(19)

30

ya tidak

citra (q1, q2, ..., qn). Fitur bentuk diekstraksi dengan Operator Sobel dan fitur warna

diekstraksi dengan deteksi warna HSV. Kemudian dilakukan Similarity Comparison, yaitu mengukur jarak kesamaan antara citra query dengan citra dalam database

menggunakan Euclidean Distance (d) . Jarak kesamaan antara citra query dengan citra dalam database akan diurutkan. Citra dengan jarak kesamaan tertinggi akan di tampilkan sebagai output.

3.2.1.2 Flowchart Ekstraksi Fitur Bentuk

Flowchart ekstraksi fitur bentuk menggunakan Operator Sobel dapat dilihat pada Gambar 3.3.

Gambar 3.3. Flowchart Ekstraksi Fitur Bentuk dengan Operator Sobel

Berdasarkan Gambar 3.3. dapat dilihat proses ekstraksi fitur bentuk menggunakan Operator Sobel. Pada tahap awal nilai RGB tiap piksel diekstraksi kemudian dilakukan konversi nilai RGB ke grayscale. Tahap selanjutnya dilakukan operasi konvolusi arah horizontal dan vertikal sehingga diperoleh matriks

Selesai

h(j)= N barisi=1 x(i,j) h(i)= N kolom j=1 x(i,j)

A

Tepi dianggap 0

rgbG[i][j] < =128

Tepi dianggap 1 Mulai

Ambil nilai r , g , b

G = (r + g + b)/3

Gx[i][j] = G[i+1][j-1] + 2*G[i+1][j] + G[i+1][j+1] - G[i-1][j-1] - 2*G[i-1][j] -

G[i-1][j+1]

Gy[i][j] = G[i-1][j+1] + 2*G [i][j+1] + G[i+1][j+1] - G[i-1][j-1] - 2*G[i][j-1] -

G[i+1][j-1]

rgbG[i][j] =|Gx[i][j]| + |Gy[i][j]|


(20)

31

tidak

ya

gradien arah horizontal dan matriks gradien arah vertikal. Nilai magnitudo akan diperoleh berdasarkan gabungan kedua gradien arah tersebut. Kemudian nilai magnitudo dibandingkan dengan nilai threshold yang ditetapkan. Jika nilai magnitudo lebih besar dari nilai threshold maka piksel tersebut dianggap sebagai tepi (bernilai 1). Tahap akhir dilakukan perhitungan integral proyeksi untuk mendeteksi batas dari daerah citra.

3.2.1.3 Flowchart Ekstraksi Fitur Warna

Flowchart ekstraksi fitur warna menggunakan deteksi warna HSV dapat dilihat pada Gambar 3.4.

Gambar 3.4. Flowchart Ekstraksi Fitur Warna dengan Deteksi Warna HSV h = hue/17

s = saturation/2 v = value/2

A

Mulai

Ambil nilai R , G , B

r = R/255 ; g = G/255 ; b = B/255

H=

0° jika ∆=0 60° ⨯ ( g-b

∆ mod6) jika Cmax=r 60° ⨯ 2+ b-r

∆ 60° ⨯ 4+ r-g ∆

jika Cmax=g jika Cmax=b

S = 0 Cmax

jika Cmax=0 jika Cmax≠0

V = Cmax

A hue = H ⨯ 18/360 saturation = S ⨯ 3/100

value = V ⨯ 3/100

int x=0; x<162 ; x++ h == hBinValue

s == sBinValue v == vBinValue

Hasil [x] + = 1

Hasil / Piksel Citra


(21)

32

Berdasarkan Gambar 3.4. dapat dilihat proses ekstraksi fitur warna menggunakan deteksi warna HSV. Pada tahap awal nilai RGB tiap piksel diekstraksi kemudian dilakukan konversi nilai RGB ke HSV. Hasil dari konversi akan diperoleh data warna H(Hue), data warna S(Saturation) dan data warna V(Value). Berdasarkan warna HSV tersebut, histogram HSV disusun sesuai dengan kuantisasi. Pengelompokan setiap elemen warna kedalam batas kuantisasi dilakukan dengan mengukur jarak minimum. Tahap selanjutnya dilakukan normalisasi sesuai dengan jumlah piksel citra untuk memperoleh vektor fitur warna.

3.2.1.4 Flowchart Sistem Secara Keseluruhan

Flowchart sistem secara keseluruhan dapat dilihat pada Gambar 3.5.


(22)

33

Berdasarkan Gambar 3.5. dapat dilihat flowchart sistem secara keseluruhan memiliki tiga parameter pilihan yang dapat dipilih pada sistem, yaitu halaman bantuan, halaman tentang dan halaman mulai pencarian. Pada halaman mulai pencarian terdapat dua parameter pilihan yang dapat dipilih sistem, yaitu halaman Operator Sobel dan halaman deteksi warna HSV.

3.2.2 Pseudocode

Pseudocode merupakan kode yang mirip dengan instruksi kode program yang sebenarnya. Pseudocode berisi langkah-langkah untuk menyelesaikan suatu permasalahan yang bentuknya sedikit berbeda dari algoritma. Pada penelitian ini, terdapat dua pseudocode, yaitu : pseudocode ekstraksi fitur bentuk dan pseudocode

ekstraksi fitur warna.

3.2.2.1 Pseudocode Ekstraksi Fitur Bentuk 1. Ekstraksi Nilai RGB

int pixel = getImg.getRGB(i, j); int r = (pixel>>16)&0xff; int g = (pixel>>8)&0xff; int b = pixel&0xff;

2. Konversi RGB ke Grayscale

rgbGrayValue[i][j] = (r+g+b)/3;

3. Konvolusi Horizontal dan Vertikal

Gx[i][j]= rgbGrayValue[i+1][j-1] + 2*rgbGrayValue[i+1][j] +rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] -2*rgbGrayValue[i-1][j] - rgbGrayValue[i-1][j+1]; Gy[i][j]= rgbGrayValue[i-1][j+1] + 2*rgbGrayValue[i][j+1]

+rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] -2*rgbGrayValue[i][j-1]-gbGrayValue[i+1][j-1]; rgbG[i][j] = Math.abs(Gx[i][j]) + Math.abs(Gy[i][j]);


(23)

34

4. Membandingkan Nilai Magnitudo dengan Nilai Threshold

if(rgbG[i][j]<=128.0){ rgbG[i][j] = 0.0; intPro[i][j] = 0; }

else{

rgbG[i][j] = 255; intPro[i][j] = 1; }

5. Hitung Integral Proyeksi

for(int i=0 ; i<width ; i++){ int temp = 0;

for(int j=0 ; j<height ; j++){

temp += intPro[i][j];

}

integralPro += Integer.toString(temp)+" "; }

for(int i=0 ; i<height ; i++){ int temp=0;

for(int j=0 ; j<width ; j++){ temp += intPro[j][i]; }

if(i==height-1)

integralPro += Integer.toString(temp); else

integralPro += Integer.toString(temp)+" "; }

3.2.2.2 Pseudocode Ekstraksi Fitur Warna 1. Ekstraksi Nilai RGB

int pixel = getImg.getRGB(i,j); double r = (pixel>>16)&0xff; double g = (pixel>>8)&0xff; double b = pixel&0xff;


(24)

35

2. Konversi RGB ke HSV

vValue = cMax*100.0; if(cMax == 0){

sValue = 0;

}

else{

sValue = (delta/cMax)*100;

}

if(delta==0){

hValue = 0.0;

}

else{ if(cMax == r1){

hValue = 60*( ((g1-b1)/delta)%6 );

}

else if(cMax == g1){

hValue = 60*( ((b1-r1)/delta)+2 );

}

else if(cMax == b1){

hValue = 60*( ((r1-g1)/delta)+4 );

}

else{

hValue = 0.0;

}

}

if(hValue<0){ hValue+=360.0; }

3. Menentukan Letak Bin

hValue = Math.round(hValue*18/360); sValue = Math.round(sValue*3/100); vValue = Math.round(vValue*3/100);


(25)

36

4. Kuantisasi

for(int x=0 ; x<162 ; x++){

if(hValue == hBinValue[x]){ if(sValue == sBinValue[x]){ if(vValue == vBinValue[x]){ result[x]+=1;

found=true; break; } } } }

5. Normalisasi

for(int i=0 ; i<162 ; i++){ result[i]=

Double.valueOf(df.format(result[i]*100/(width*height))); }

3.2.3 Use Case Diagram

Use case adalah rangkaian atau uraian sekelompok yang saling terkait dan membentuk sebuah sistem secara teratur yang dilakukan oleh aktor. Use case digunakan untuk membentuk tingkah laku benda dalam sebuah model serta direalisasikan dengan kolaborasi (Whitten, 2004). Use case diagram merupakan representasi interaksi yang terjadi antara pengguna dengan sistem. Use case diagram pada penelitian ini dapat dilihat pada Gambar 3.6.


(26)

37

Gambar 3.6. Use Case Diagram Sistem

Penjelasan dari setiap use case yang terdapat pada diagram use case dapat dilihat pada use case narrative. Use case narrative dari use case diagram sistem pada Gambar 3.6. dapat dilihat pada Tabel 3.1. dan Tabel 3.2. berikut ini.

Tabel 3.1. Use Case Narrative Pemanggilan Citra

Nama Use Case Pemanggilan Citra

Aktor Pengguna

Deskripsi

Use case ini mendeskripsikan bagaimana proses pemanggilan citra dalam database berdasarkan citra query yang di-input-kan kepada sistem

Alur Dasar

Kegiatan Pengguna Respon Sistem

1. Mengakses sistem 1. Menampilkan halaman utama 2. Klik tombol mulai

pencarian

2. Menampilkan halaman mulai pencarian

3. Memilih metode ekstraksi fitur yang digunakan

3. Menampilkan jendela ekstraksi fitur yang telah ditentukan


(27)

38

5. Memilih citra query dan klik tombol open

5. Menampilkan citra query yang telah dipilih

6. Klik tombol telusuri citra 6. Menampilkan hasil pemanggilan citra

Alur Alternatif Tidak Ada

Kondisi Sesudah Sistem melakukan pemanggilan citra berdasarkan metode ekstraksi fitur citra yang dipilih pengguna

Tabel 3.2. Use Case Narrative Input Citra ke Database

Nama Use Case Input Citra ke Database

Aktor Pengguna

Deskripsi Use case ini mendeskripsikan bagaimana proses peng-input-an citra ke database

Alur Dasar

Kegiatan Pengguna Respon Sistem 1. Klik MenuIteminput citra

ke database

1. Menampilkan halaman input

citra

2. Klik tombol pilih citra 2. Menampilkan windows explorer

3. Memilih citra yang ingin di-input-kan dan klik tombol open

3. Menampilkan daftar citra yang di-input-kan pada sistem

4. Klik tombol input citra 4. Menampilkan respon jika citra berhasil di-input-kan

Alur Alternatif Tidak Ada


(28)

39

3.2.4 Activity Diagram

Activity diagram menggambarkan proses bisnis atau urutan aktivitas dalam sebuah sistem (Ambler, 2005). Pada penelitian ini, terdapat dua activity diagram, yaitu :

activity diagram pemanggilan citra dan activity diagram input citra ke database.

Activity diagram penelitian ini dapat dilihat pada Gambar 3.7. dan Gambar 3.8.


(29)

40


(30)

41

3.2.5 Sequence Diagram

Sequence diagram (diagram urutan) adalah suatu diagram yang memperlihatkan interaksi – interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Pada penelitian ini, terdapat dua sequence diagram, yaitu : sequence diagram pemanggilan citra dan sequence diagram input citra ke database. Sequence diagram penelitian ini dapat dilihat pada Gambar 3.9. dan Gambar 3.10.

Gambar 3.9. Sequence Diagram Pemanggilan Citra


(31)

42

3.2.6 Perancangan Database

Database atau basis data merupakan kumpulan dari data yang saling berhubungan satu dengan lainnya, yang tersimpan pada simpanan luar komputer dan digunakan perangkat lunak tertentu untuk memanipulasinya (Rapianti, 2011). Penyimpanan data yang dirancang untuk penelitian ini menggunakan SQLite Database Browser 2.0 b1. SQLite adalah Relational Database Management Server (RDBMS) alternatif yang memiliki kelebihan sebagai berikut :

1. Portable (tidak memerlukan proses instalasi). 2. Flat file (satu database satu file).

3. Mendukung transaction dan view. 4. Sangat cepat karena berupa flat file.

5. Menggunakan bahasa query yang mirip dengan RDBMS pada umumnya.

SQLitejuga bersifat serverless database, dimana SQLite tidak memerlukan server tersendiri untuk dapat menjalankan fungsinya sehingga sangat cocok digunakan sebagai database untuk aplikasi mobile device, pengembangan website berskala kecil hingga menengah, hingga pengembangan aplikasi berskala enterprise sebagai

database pada aplikasi yang bersifat prototype atau demo.

Kamus data adalah suatu daftar data elemen yang terorganisir dengan defenisi yang tetap dan sesuai dengan sistem, sehingga pengguna dan analis sistem memiliki pengertian yang sama tentang input, output dan komponen penyimpanan data. Database yang digunakan terdiri dari tabel imageSobelMatching dan tabel imageHsvmatching. Rincian tabel yang digunakan dapat dilihat pada Tabel 3.3. dan Tabel 3.4.

Tabel 3.3. Tabel imageSobelMatching

No Nama Field Tipe Keterangan

1 imagePath Text Path Citra yang Digunakan


(32)

43

Tabel 3.4. Tabel imageHsvMatching

No Nama Field Tipe Keterangan

1 imagePath Text Path Citra yang Digunakan

2 hsvValue Text Hasil Konversi Ruang Warna HSV

3.2.7 Perancangan Antarmuka

Aplikasi pemanggilan citra dirancang dengan menggunakan NetBeans IDE 8.0.2. Tahap perancangan antarmuka bertujuan untuk memudahkan proses implementasi dan diharapkan tampilan dari sistem yang dihasilkan menjadi user friendly.

3.2.7.1 Halaman Utama

Halaman utama merupakan halaman awal dari aplikasi pemanggilan citra. Perancangan halaman utama aplikasi dapat dilihat pada Gambar 3.11.

Gambar 3.11. Perancangan Antarmuka Halaman Utama

Komponen yang digunakan untuk membangun antarmuka halaman utama pada Gambar 3.11. adalah sebagai berikut :

1. Label ‘1’ berfungsi untuk menampilkan background halaman utama. 2. Label‘2’ berfungsi untuk menampilkan logo aplikasi.


(33)

44

3. Button ‘Mulai Pencarian’ berfungsi untuk menampilkan halaman mulai pencarian dimana pengguna dapat memilih metode pemanggilan citra yang diinginkan dan meng-input-kan citra query ke database.

4. Button ‘Bantuan’ berfungsi untuk menampilkan halaman bantuan. 5. Button ‘Tentang’ berfungsi untuk menampilkan halaman tentang.

3.2.7.2 Halaman Mulai Pencarian

Halaman mulai pencarian merupakan halaman untuk melakukan pemanggilan citra sesuai dengan metode yang diinginkan. Perancangan halaman mulai pencarian dapat dilihat pada Gambar 3.12.

Gambar 3.12. Perancangan Antarmuka Halaman Mulai Pencarian

Komponen yang digunakan untuk membangun antarmuka halaman mulai pencarian pada Gambar 3.12. adalah sebagai berikut :

1. MenuBar ‘File’ berfungsi sebagai pilihan menu dan terdiri dari dua menu item. 2. MenuItemInput Citra ke Database’ berfungsi untuk menampilkan halaman


(34)

45

3. MenuItem ‘Keluar’ berfungsi untuk keluar dari sistem.

4. TabbedPane ‘HSV’ berfungsi sebagai jendela untuk melakukan pemanggilan

citra berdasarkan fitur warna citra menggunakan deteksi warna HSV.

5. TabbedPane ‘Sobel’ berfungsi sebagai jendela untuk melakukan pemanggilan

citra berdasarkan fitur bentuk citra menggunakan Operator Sobel.

6. Button ‘Pilih Citra’ berfungsi untuk menampilkan windows explorer guna memilih citra query dalam pemanggilan citra.

7. Button ‘Cari Berdasarkan Warna’ berfungsi untuk melakukan pemanggilan

citra berdasarkan warna.

8. Label ‘8’ berfungsi untuk menampilkan citra query yang telah dipilih.

9. Label ‘9’ berfungsi untuk menampilkan citra hasil pemanggilan sesuai dengan

metode yang telah dipilih sebelumnya.

10.Button ‘Pilih Prev’ berfungsi untuk menampilkan citra hasil sebelumnya.

11.Button ‘Pilih Citra’ berfungsi untuk menampilkan citra hasil selanjutnya.

3.2.7.3 Halaman Input Citra ke Database

Halaman input citra ke database merupakan halaman untuk menginputkan citra ke

database. Perancangan halaman mulai input citra ke database dapat dilihat pada Gambar 3.13.


(35)

46

Komponen yang digunakan untuk membangun antarmuka halaman input

citra ke database pada Gambar 3.13. adalah sebagai berikut :

1. List berfungsi untuk menampilkan daftar citra yang akan diinputkan.

2. Button ‘Pilih Citra’ berfungsi untuk menampilkan windows explorer guna memilih citra yang akan diinputkan ke database.

3. Button Input Citra’ berfungsi untuk menyimpan citra yang telah dipilih ke database.

3.2.7.4 Halaman Bantuan

Halaman bantuan merupakan halaman untuk menampilkan panduan singkat tentang cara penggunaan aplikasi ini. Perancangan halaman bantuan dapat dilihat pada Gambar 3.14.

Gambar 3.14. Perancangan Antarmuka Halaman Bantuan

Komponen yang digunakan untuk membangun antarmuka halaman bantuan pada Gambar 3.14. adalah sebagai berikut :

1. Label ‘1’ berfungsi untuk menampilkan background halaman bantuan. 2. Label ‘2’ berfungsi untuk menampilkan logo aplikasi.

3. ScrollPane berfungsi untuk menampilkan panduan singkat penggunaan aplikasi.


(36)

47

3.2.7.5 Halaman Tentang

Halaman tentang merupakan halaman untuk menampilkan informasi singkat tentang peneliti, judul penelitian, logo universitas, program studi, dan fakultas penulis. Komponen yang digunakan untuk membangun antarmuka halaman tentang adalah

Label yang berfungsi untuk menampilkan rincian informasi singkat peneliti. Perancangan halaman bantuan dapat dilihat pada Gambar 3.15.


(37)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Pada bab implementasi dan pengujian ini akan diuraikan penjelasan mengenai implementasi dari perancangan yang telah dibuat dan pembahasan hasil pengujian terhadap implementasi.

4.1. Implementasi

Tahap implementasi merupakan tahapan lanjutan setelah tahap analisis dan tahap perancangan telah selesai. Hal yang telah dipaparkan pada bab sebelumnya akan diimplementasikan pada tahap ini menggunakan bahasa pemrograman Java dan SQLite sebagai media penyimpan data. Perangkat lunak yang digunakan untuk Java adalah NetBeans IDE versi 8.0.2. Sedangkan perangkat lunak yang digunakan untuk menyimpan data adalah SQLite Database Browser 2.0 b1.

4.1.1 Halaman Utama

Halaman utama adalah halaman awal saat aplikasi dijalankan. Halaman utama dapat dilihat pada Gambar 4.1.


(38)

49

Pada Gambar 4.1. terdapat 3 button, yaitu : mulai pencarian, bantuan dan tentang. Button mulai pencarian akan dilanjutkan ke halaman mulai pencarian dimana pengguna dapat memilih metode pemanggilan citra yang diinginkan dan meng-

input-kan citra query ke database. Button bantuan akan dilanjutkan ke halaman bantuan dan

button tentang akan dilanjutkan ke halaman tentang.

4.1.2 Halaman Mulai Pencarian

Halaman mulai pencarian merupakan halaman dimana pengguna dapat memilih metode pemanggilan citra yang diinginkan. Halaman mulai pencarian dapat dilihat pada Gambar 4.2.

Gambar 4.2. Halaman Mulai Pencarian

Pada Gambar 4.2. terdapat 2 tabbedPane, yaitu : HSV dimana pengguna dapat melakukan pemanggilan citra berdasarkan fitur warna citra menggunakan deteksi warna HSV dan Sobel dimana pengguna dapat melakukan pemanggilan citra berdasarkan fitur bentuk menggunakan Operator Sobel. Pada halaman ini juga terdapat menuBar File yang berisi menuItem Input Citra ke Database’ untuk


(39)

50

4.1.3 Halaman Input Citra ke Database

Halaman ini merupakan halaman dimana pengguna dapat meng-input-kan citra ke dalam database. Halaman input citra ke database dapat dilihat pada Gambar 4.3.

Gambar 4.3. Halaman Input Citra ke Database

4.1.4 Halaman Bantuan

Halaman bantuan berfungsi untuk menampilkan panduan singkat tentang cara penggunaan aplikasi ini. Halaman bantuan dapat dilihat pada Gambar 4.4.


(40)

51

4.1.5 Halaman Tentang

Halaman tentang berfungsi untuk menampilkan informasi singkat tentang peneliti, judul penelitian, logo universitas, program studi, dan fakultas penulis. Halaman tentang dapat dilihat pada Gambar 4.5.

Gambar 4.5. Halaman Tentang

4.1.6 Proses Pemanggilan Citra Berdasarkan Fitur Bentuk

Proses pemanggilan citra berdasarkan fitur bentuk dengan contoh file citra PlumFlower5.jpg berdimensi 500 x 500 piksel adalah sebagai berikut.


(41)

52

Citra PlumFlower5.jpg terdiri dari 250.000 piksel dimana tiap piksel memiliki 3 komponen warna yaitu merah(R), hijau(G) dan biru(B). Setiap komponen warna memiliki jangkauan nilai antara 0 sampai 255. Tabel piksel dari citra PlumFlower5.jpg dapat dilihat pada Tabel 4.1. berikut ini.

Tabel 4.1. Piksel Citra PlumFlower5.jpg

0 1 2 3 4 ... ... 499

0 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20 15 . . 6 13 6 1 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20 15 . . 6 13 6 2 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20 15 . . 6 13 6 3 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20 15 . . 6 13 6 4 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20 15 . . 6 13 6 ... . . . ... . . . 499 R G B 10 17 9 10 17 9 10 17 9 10 17 9 10 17 9 . . 201 212 234

Citra RGB dikonversi menjadi citra grayscale dengan persamaan 2.1. Hasil

grayscale citra PlumFlower5.jpg dapat dilihat pada Gambar 4.7. dan tabel piksel citra

grayscale dapat dilihat pada Tabel 4.2.


(42)

53

Tabel 4.2. Piksel Hasil Grayscale Citra PlumFlower5.jpg

0 1 2 3 4 ... ... 499

0 16 15 15 15 15 . . 8

1 16 15 15 15 15 . . 8

2 16 15 15 15 15 . . 8

3 16 15 15 15 15 . . 8

4 16 15 15 15 15 . . 8

... . . .

... . . .

499 12 12 12 12 12

. . 216

Kemudian dilakukan deteksi tepi pada citra hasil grayscale menggunakan Operator Sobel dengan cara melakukan operasi konvolusi arah horizontal dan vertikal. Hasil konvolusi dihitung dengan persamaan 2.1 sehingga menghasilkan nilai magnitudo. Matriks nilai magnitudo dapat dilihat pada Tabel 4.3.

Tabel 4.3. Matriks Nilai Magnitudo

0 ... 345 346 347 348 349 350 ... 499

0 0 . 0 0 0 0 0 0 . 0

... . . .

176 0 . 66 0 0 56 34 0 . 0

177 0 . 69 46 42 0 0 83 . 0

178 0 . 0 0 50 0 53 0 . 0

179 0 . 0 0 28 0 22 28 . 0

180 0 . 59 42 0 0 0 69 . 0

... . . .


(43)

54

Jika nilai magnitudo lebih besar dari nilai threshold maka piksel bernilai 1. Pada sistem ini threshold bernilai 128, jika nilai magnitudo bernilai lebih dari 128 maka piksel dianggap tepi. Citra PlumFlower5.jpg hasil deteksi tepi menggunakan Operator Sobel dapat dilihat pada Gambar 4.8.

Gambar 4.8. Citra PlumFlower5.jpg dengan Operator Sobel

Tahap selanjutnya adalah integral proyeksi yaitu integral baris dan kolom dari piksel. Integral proyeksi dihitung dengan persamaan 2.2. dan persamaan 2.3. Seluruh nilai fitur hasil integral proyeksi disusun dalam bentuk vektor. Kemudian dilakukan perhitungan jarak dengan Euclidean Distance.

P = { 0, 0, 0, 0, 8, 10, 13, 15, 16, 17, ... , 36, 33, 30, 33, 36, 40, 32, 30, 0} Q = {0, 0, 0, 0, 0, 6, 13, 8, 8, 10, ... , 0, 0, 0, 0, 0, 0, 0, 0, 0}

d = ni=1 Pi- Qi 2 = 457,31827

Jarak vektor fitur bentuk citra PlumFlower5.jpg (P) dengan citra RoseFlower7.jpg (Q) adalah 457,31827. Hasil perhitungan euclidean distance antara citra query dengan citra database diurutkan dari yang terkecil hingga terbesar. Vektor fitur citra dengan nilai euclidean distance terkecil adalah citra yang paling mirip.


(44)

55

4.1.7 Proses Pemanggilan Citra Berdasarkan Fitur Warna

Proses pemanggilan citra berdasarkan fitur warna dengan contoh file citra PlumFlower5.jpg berdimensi 500 x 500 piksel adalah sebagai berikut.

Gambar 4.9. Citra PlumFlower5.jpg

Citra PlumFlower5.jpg terdiri dari 250.000 piksel dimana tiap piksel memiliki 3 komponen warna yaitu merah(R), hijau(G) dan biru(B). Setiap komponen warna memiliki jangkauan nilai antara 0 sampai 255. Tabel piksel dari citra PlumFlower5.jpg dapat dilihat pada Tabel 4.4. dan Tabel 4.5 berikut ini.

Tabel 4.4. Piksel Citra PlumFlower5.jpg (1)

0 1 2 3 4 ... ... 499

0 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20

15 . .

6 13 6 1 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20

15 . .

6 13 6 2 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20

15 . .

6 13 6 3 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20

15 . .

6 13


(45)

56

Tabel 4.5. Piksel Citra PlumFlower5.jpg (2)

Citra RGB dikonversi menjadi citra HSV dengan persamaan 2.9 sampai 2.11. Tabel hasil konversi citra HSV dapat dilihat pada Tabel 4.6. Selanjutnya dilakukan perhitungan kuantisasi masing-masing komponen warna. Pada penelitian ini, komponen hue dikuantisasi menjadi 18 bagian, saturation dikuantisasi menjadi 3 bagian dan value dikuantisasi menjadi 3 bagian.

Tabel 4.6. Piksel HSV Citra PlumFlower5.jpg

0 1 2 3 4 ... ... 499

0 H S V 147 43 8 147 45 8 147 45 8 147 45 8 147 45 8 . . 120 54 5 1 H S V 147 43 8 147 45 8 147 45 8 147 45 8 147 45 8 . . 120 54 5 2 H S V 147 43 8 147 45 8 147 45 8 147 45 8 147 45 8 . . 120 54 5 3 H S V 147 43 8 147 45 8 147 45 8 147 45 8 147 45 8 . . 120 54 5 4 H S V 147 43 8 147 45 8 147 45 8 147 45 8 147 45 8 . . 120 54 5 ... . . . ... . . . 499 H S V 113 47 8 113 47 8 113 47 8 113 47 8 113 47 8 . . 220 14 92 4 R G B 12 21 16 11 20 15 11 20 15 11 20 15 11 20

15 . .

6 13 6 ... . . . ... . . . 499 R G B 10 17 9 10 17 9 10 17 9 10 17 9 10 17 9 . . 201 212 234


(46)

57

Piksel (0, 0) = (H x 18 / 360 , S x 3/ 100, V x 3 / 100) = (147 x 18 / 360 , 43 x 3/ 100, 8 x 3 / 100) = (7, 1, 0)

Fitur warna disusun dengan menggunakan sebuah histogram. Dengan demikian vektor fitur warna dinyatakan menggunakan histogram HSV-162 bin, yaitu vektor fitur warna yang terdiri dari 162 elemen. Kuantisasi ruang warna dari histogram HSV-162 bin diperlihatkan pada Tabel 4.7. sampai dengan Tabel 4.9. Nilai Hterdiri dari 0, 1/17, 2/17, 3/17, 4/17, ... 17/17. Nilai S terdiri dari 0, 1/2, 2/2. Nilai V terdiri dari 0, 1/2, 2/2. Kuantisasi ruang warna disusun dengan cara mengkombinasikan nilai dari H, S dan V.

Pada piksel (0,0) nilai H termasuk kedalam bagian 7/17, nilai S termasuk kedalam bagian 1/2, dan nilai V termasuk kedalam bagian 0. Berdasarkan Tabel Kuantisasi Ruang Warna dari Histogram HSV-162 bin, piksel (0,0) termasuk kategori bin 67.

Tabel 4.7. Kuantisasi Ruang Warna dari Histogram HSV-162 Bin (1)

Bin H S V Bin H S V Bin H S V

1 0 0 0 13 0.05882 0.5 0 25 0.11765 1 0

2 0 0 0.5 14 0.05882 0.5 0.5 26 0.11765 1 0.5

3 0 0 1 15 0.05882 0.5 1 27 0.11765 1 1

4 0 0.5 0 16 0.05882 1 0 28 0.17647 0 0

5 0 0.5 0.5 17 0.05882 1 0.5 29 0.17647 0 0.5

6 0 0.5 1 18 0.05882 1 1 30 0.17647 0 1

7 0 1 0 19 0.11765 0 0 31 0.17647 0.5 0

8 0 1 0.5 20 0.11765 0 0.5 32 0.17647 0.5 0.5

9 0 1 1 21 0.11765 0 1 33 0.17647 0.5 1

10 0.05882 0 0 22 0.11765 0.5 0 34 0.17647 1 0

11 0.05882 0 0.5 23 0.11765 0.5 0.5 35 0.17647 1 0.5


(47)

58

Tabel 4.8. Kuantisasi Ruang Warna dari Histogram HSV-162 Bin (2)

Bin H S V Bin H S V Bin H S V

37 0.23529 0 0 67 0.41176 0.5 0 97 0.58824 1 0

38 0.23529 0 0.5 68 0.41176 0.5 0.5 98 0.58824 1 0.5

39 0.23529 0 1 69 0.41176 0.5 1 99 0.58824 1 1

40 0.23529 0.5 0 70 0.41176 1 0 100 0.64706 0 0

41 0.23529 0.5 0.5 71 0.41176 1 0.5 101 0.64706 0 0.5

42 0.23529 0.5 1 72 0.41176 1 1 102 0.64706 0 1

43 0.23529 1 0 73 0.47059 0 0 103 0.64706 0.5 0

44 0.23529 1 0.5 74 0.47059 0 0.5 104 0.64706 0.5 0.5

45 0.23529 1 1 75 0.47059 0 1 105 0.64706 0.5 1

46 0.29412 0 0 76 0.47059 0.5 0 106 0.64706 1 0

47 0.29412 0 0.5 77 0.47059 0.5 0.5 107 0.64706 1 0.5

48 0.29412 0 1 78 0.47059 0.5 1 108 0.64706 1 1

49 0.29412 0.5 0 79 0.47059 1 0 109 0.70588 0 0

50 0.29412 0.5 0.5 80 0.47059 1 0.5 110 0.70588 0 0.5

51 0.29412 0.5 1 81 0.47059 1 1 111 0.70588 0 1

52 0.29412 1 0 82 0.52941 0 0 112 0.70588 0.5 0

53 0.29412 1 0.5 83 0.52941 0 0.5 113 0.70588 0.5 0.5

54 0.29412 1 1 84 0.52941 0 1 114 0.70588 0.5 1

55 0.35294 0 0 85 0.52941 0.5 0 115 0.70588 1 0

56 0.35294 0 0.5 86 0.52941 0.5 0.5 116 0.70588 1 0.5

57 0.35294 0 1 87 0.52941 0.5 1 117 0.70588 1 1

58 0.35294 0.5 0 88 0.52941 1 0 118 0.76471 0 0

59 0.35294 0.5 0.5 89 0.52941 1 0.5 119 0.76471 0 0.5

60 0.35294 0.5 1 90 0.52941 1 1 120 0.76471 0 1

61 0.35294 1 0 91 0.58824 0 0 121 0.76471 0.5 0

62 0.35294 1 0.5 92 0.58824 0 0.5 122 0.76471 0.5 0.5

63 0.35294 1 1 93 0.58824 0 1 123 0.76471 0.5 1

64 0.41176 0 0 94 0.58824 0.5 0 124 0.76471 1 0

65 0.41176 0 0.5 95 0.58824 0.5 0.5 125 0.76471 1 0.5


(48)

59

Tabel 4.9. Kuantisasi Ruang Warna dari Histogram HSV-162 Bin (3)

Histogram warna disusun berdasarkan ruang warna HSV sesuai dengan kuantisasi pada Tabel 4.7. sampai Tabel 4.9. Pengelompokan tiap elemen warna pada batas kuantisasi dilakukan dengan mengukur jarak minimum. Hasil kuantisasi yang telah dinormalisasi dari tiap bin akan membentuk histogram HSV-162 seperti pada Tabel 4.10. sampai Tabel 4.12.

Tabel 4.10. Histogram HSV-162 Bin (1)

Bin Jumlah Bin Jumlah Bin Jumlah

1 4127 9 0 17 3

2 35 10 4 18 11

3 107 11 14 19 40

4 156 12 49 20 38

5 362 13 528 21 491

6 0 14 414 22 539

7 11 15 4 23 104

8 0 16 40 24 463

Bin H S V Bin H S V Bin H S V

127 0.23529 0 0 139 0.88235 0.5 0 151 0.94118 1 0

128 0.82353 0 0.5 140 0.88235 0.5 0.5 152 0.94118 1 0.5

129 0.82353 0 1 141 0.88235 0.5 1 153 0.94118 1 1

130 0.82353 0.5 0 142 0.88235 1 0 154 1 0 0

131 0.82353 0.5 0.5 143 0.88235 1 0.5 155 1 0 0.5

132 0.82353 0.5 1 144 0.88235 1 1 156 1 0 1

133 0.82353 1 0 145 0.94118 0 0 157 1 0.5 0

134 0.82353 1 0.5 146 0.94118 0 0.5 158 1 0.5 0.5

135 0.82353 1 1 147 0.94118 0 1 159 1 0.5 1

136 0.88235 0 0 148 0.94118 0.5 0 160 1 1 0

137 0.88235 0 0.5 149 0.94118 0.5 0.5 161 1 1 0.5


(49)

60

Tabel 4.11. Histogram HSV-162 Bin (2)

Bin Jumlah Bin Jumlah Bin Jumlah

25 85 56 144 87 1

26 28 57 531 88 1321

27 3263 58 39380 89 1

28 618 59 109 90 0

29 109 60 0 91 31

30 3547 61 53872 92 150

31 2147 62 14 93 1395

32 373 63 0 94 826

33 7935 64 191 95 401

34 329 65 164 96 41

35 0 66 757 97 1233

36 7611 67 6265 98 92

37 179 68 187 99 0

38 1781 69 34 100 76

39 1651 70 5275 101 454

40 3833 71 0 102 23478

41 1504 72 0 103 495

42 56 73 1781 104 1096

43 1670 74 108 105 14169

44 119 75 687 106 544

45 0 76 6593 107 186

46 392 77 92 108 0

47 163 78 59 109 346

48 639 79 13166 110 119

49 5728 80 1 111 13185

50 948 81 0 112 117

51 8 82 3 113 131

52 5241 83 56 114 1509

53 279 84 298 115 61

54 0 85 1052 116 3


(50)

61

Tabel 4.12. Histogram HSV-162 Bin (3)

Hasil kuantisasi dari tiap bin di normalisasi dengan cara membagi nilai probabilitas (total kemunculan) dengan jumlah piksel dalam citra. Semua nilai fitur hasil normalisasi disusun dalam bentuk vektor. Kemudian dilakukan perhitungan jarak dengan Euclidean Distance.

P = {1.6508, 0.014, 0.0428, 0.0624, 0.1448, ... , 0.0} Q = {0.0456, 0.0084, 0.1396, 0.0212, 0.0204, ... , 0.1824} d = ni=1 Pi-Qi 2 = 29.59526

Jarak vektor fitur warna citra PlumFlower5.jpg (P) dengan citra PlumFlower4.jpg (Q) adalah 29.59526. Hasil perhitungan euclidean distance antara citra query dengan citra database diurutkan dari yang terkecil hingga terbesar. Vektor fitur citra dengan nilai euclidean distance terkecil adalah citra yang paling mirip.

Bin Jumlah Bin Jumlah Bin Jumlah

118 133 133 0 148 11

119 203 134 0 149 57

120 182 135 0 150 0

121 95 136 1 151 0

122 24 137 43 152 0

123 0 138 6 153 0

124 7 139 0 154 247

125 0 140 11 155 23

126 0 141 0 156 30

127 25 142 0 157 230

128 23 143 0 158 4

129 31 144 0 159 0

130 18 145 22 160 0

131 0 146 46 161 0


(51)

62

4.2. Pengujian

Pengujian dilakukan terhadap sistem untuk mengukur keberhasilan sistem dalam melakukan pemanggilan citra berdasarkan ekstraksi fitur bentuk atau ekstraksi fitur warna citra. Pengujian dilakukan oleh pengguna sistem dengan 2 citra query dimana citra query merupakan salah satu citra dari database.

4.2.1 Pengujian Ekstraksi Fitur Bentuk

Tiap pengguna memilih citra query dan melakukan pengujian terhadap sistem pemanggilan citra. Identifikasi pengujian pemanggilan citra berdasarkan fitur bentuk dapat dilihat pada Tabel 4.13. dan Tabel 4.14.

Tabel 4.13. Pengujian Pemanggilan Citra Berdasarkan Fitur Bentuk(1)

No Identifikasi Rincian

1

Pengguna 01

Nama File AnthFlower7.jpg GloThiFlower7.jpg

Citra Query

2

Pengguna 02

Nama File HibFlower.jpg AnthFlower.jpg

Citra Query

3

Pengguna 03

Nama File PlumFlower1.jpg PasFlower.jpg


(52)

63

Tabel 4.14. Pengujian Pemanggilan Citra Berdasarkan Fitur Bentuk (2)

4

Pengguna 04

Nama File HibFlower7.jpg MoonFlower7.jpg

Citra Query

5

Pengguna 05

Nama File SunFlower9.jpg DaisyFlower8.jpg

Citra Query

6

Pengguna 06

Nama File AnthFlower6.jpg GloThiFlower7.jpg Citra Query

7

Pengguna 07

Nama File PasFlower.jpg MoonFlower7.jpg

Citra Query

8

Pengguna 08

Nama File MoonFlower.jpg DaisyFlower.jpg

Citra Query

9

Pengguna 09

Nama File SunFlower.jpg GloThiFlower.jpg

Citra Query

10

Pengguna 10

Nama File GaNivFlower4.jpg MoonFlower7.jpg


(53)

64

Jumlah pengguna yang melakukan pengujian sistem pemanggilan citra berdasarkan fitur bentuk adalah 10 orang. Pengguna tersebut mengisi lembar angket pengujian sistem yang diberikan peneliti sesuai dengan penilaian pribadi pengguna. Hasil pengujian sistem pemanggilan citra berdasarkan fitur bentuk dapat dilihat pada Tabel 4.15 dan Tabel 4.16.

Tabel 4.15. Rincian Hasil Pemanggilan Citra Berdasarkan Fitur Bentuk (1)

No. Pengguna File Citra Query

Penilaian Citra Oleh Pengguna Jumlah

Relevan

Jumlah Relevan Marginal

Jumlah Tidak Relevan

1 01

AnthFlower7.jpg 1 1 18

GloThiFlower7.jpg 1 7 12

Total 2 8 30

2 02

HibFlower.jpg 1 6 13

AnthFlower.jpg 1 6 13

Total 2 12 26

3 03

PlumFlower1.jpg 1 2 17

PasFlower1.jpg 1 5 14

Total 2 7 31

4 04

HibFlower7.jpg 1 6 13

MoonFlower7.jpg 1 4 15

Total 2 10 28

5 05

SunFlower9.jpg 1 14 5

DaisyFlower8.jpg 1 4 15

Total 2 18 20

6 06

AnthFlower6.jpg 1 1 18

GloThiFlower7.jpg 1 7 12

Total 2 8 30

7 07

PasFlower.jpg 1 8 11

MoonFlower7.jpg 1 5 14


(54)

65

Tabel 4.16. Rincian Hasil Pemanggilan Citra Berdasarkan Fitur Bentuk (2)

8 08

MoonFlower.jpg 1 7 12

DaisyFlower.jpg 1 9 10

Total 2 16 22

9 09

SunFlower.jpg 1 7 12

GloThiFlower.jpg 1 8 11

Total 2 15 23

10 10

GaNivFlower4.jpg 1 2 17

MoonFlower.jpg 1 4 15

Total 2 6 32

Berdasarkan pengujian pada Tabel 4.15. dan Tabel 4.16. maka dapat dihitung nilai precision hasil pemanggilan citra. Berikut perhitungan nilai precision dengan contoh pengujian pengguna 01.

� � = Jumlah citra relevan yang ditemukembalikan

Jumlah seluruh citra yang ditemukembalikan = 10

40= 0,25

Nilai precision hasil pemanggilan citra berdasarkan fitur bentuk yang dilakukan tiap pengguna dapat dilihat pada Tabel 4.17.

Tabel 4.17. Nilai Precision Hasil Pemanggilan Citra

No. Pengguna

Total Citra yang ditemukan

Total Citra Relevan

Precision

Persentase

Precision

(%)

1 01 40 10 0,25 25

2 02 40 14 0,35 35

3 03 40 9 0,225 22,5

4 04 40 12 0,3 30

5 05 40 20 0,5 50

6 06 40 10 0,25 25

7 07 40 15 0,375 37,5

8 08 40 18 0,45 45

9 09 40 17 0,425 42,5


(55)

66

Berdasarkan pengujian pada Tabel 4.15. dan Tabel 4.16. dapat dihitung nilai

recall hasil pemanggilan citra. Berikut perhitungan nilai recall dengan contoh pengujian pengguna 01.

��= Jumlah citra relevan yang ditemukembalikan

Jumlah citra relevan dalam = 10

20 = 0,5

Nilai recall hasil pemanggilan citra berdasarkan fitur bentuk yang dilakukan tiap pengguna dapat dilihat pada Tabel 4.18.

Tabel 4.18. Nilai Recall Hasil Pemanggilan Citra

No. Pengguna

Total Citra Relevan

Database

Total Citra Relevan

Recall

Persentase

Recall

(%)

1 01 20 10 0,5 50

2 02 20 14 0,7 70

3 03 20 9 0,45 45

4 04 20 12 0,6 60

5 05 20 20 1 100

6 06 20 10 0,5 50

7 07 20 15 0,75 75

8 08 20 18 0,9 90

9 09 20 17 0,85 85

10 10 20 8 0,4 40


(56)

67

Rincian penggunaan waktu pada saat pemanggilan citra dapat dilihat pada Tabel 4.19. berikut ini.

Tabel 4.19. Waktu Pemanggilan Citra Berdasarkan Ekstraksi Fitur Bentuk

No. Pengguna File Citra Query

Waktu Pemanggilan Citra

(detik)

1 01 AnthFlower7.jpg 1,767

GloThiFlower7.jpg 1,981

2 02 HibFlower.jpg 1,622

AnthFlower.jpg 1,684

3 03 PlumFlower1.jpg 0,172

PasFlower1.jpg 0,203

4 04 HibFlower7.jpg 0,421

MoonFlower7.jpg 0,203

5 05 SunFlower9.jpg 2,090

DaisyFlower8.jpg 1,653

6 06 AnthFlower6.jpg 1,576

GloThiFlower7.jpg 1,872

7 07 PasFlower.jpg 2,872

MoonFlower7.jpg 2,572

8 08 MoonFlower.jpg 0,546

DaisyFlower.jpg 0,687

9 09 SunFlower.jpg 0,515

GloThiFlower.jpg 0,412

10 10 GaNivFlower4.jpg 0,608

MoonFlower.jpg 0,312


(57)

68

4.2.2 Pengujian Ekstraksi Fitur Warna

Tiap pengguna memilih citra query dan melakukan pengujian terhadap sistem pemanggilan citra. Identifikasi pengujian pemanggilan citra berdasarkan fitur warna dapat dilihat pada Tabel 4.20. sampai dengan Tabel 4.21.

Tabel 4.20. Pengujian Pemanggilan Citra Berdasarkan Fitur Warna(1)

No Identifikasi Rincian

1

Pengguna 01

Nama File DaisyFlower7.jpg HibFlower7.jpg

Citra Query

2

Pengguna 02

Nama File MoonFlower.jpg RoseFlower.jpg

Citra Query

3

Pengguna 03

Nama File MoonFlower.jpg RoseFlower.jpg

Citra Query

4

Pengguna 04

Nama File RoseFlower7.jpg GaNivFlower7.jpg

Citra Query

5

Pengguna 05

Nama File AnthFlower8.jpg GloThiFlower8.jpg Citra Query

6

Pengguna 06

Nama File DaisyFlower9.jpg GaNivFlower7.jpg Citra Query


(58)

69

Tabel 4.21. Pengujian Pemanggilan Citra Berdasarkan Fitur Warna(2)

Jumlah pengguna yang melakukan pengujian sistem pemanggilan citra berdasarkan fitur warna adalah 10 orang. Pengguna tersebut mengisi lembar angket pengujian sistem yang diberikan peneliti sesuai dengan penilaian pribadi pengguna. Hasil pengujian sistem pemanggilan citra berdasarkan fitur warna dapat dilihat pada Tabel 4.22. dan Tabel 4.23.

Berdasarkan pengujian pada Tabel 4.22. dan Tabel 4.23. maka dapat dihitung nilai precision hasil pemanggilan citra. Berikut perhitungan nilai precision dengan contoh pengujian pengguna 01.

� � = Jumlah citra relevan yang ditemukembalikan

Jumlah seluruh citra yang ditemukembalikan=

6

40= 0,15

7

Pengguna 07

Nama File SunFlower.jpg HibFlower5.jpg

Citra Query

8

Pengguna 08

Nama File AnthFlower.jpg HibFlower.jpg

Citra Query

9

Pengguna 09

Nama File RoseFlower.jpg SunFlower.jpg

Citra Query

10

Pengguna 10

Nama File PasFlower5.jpg DaisyFlower8.jpg


(59)

70

Nilai precision hasil pemanggilan citra berdasarkan fitur bentuk yang dilakukan tiap pengguna dapat dilihat pada Tabel 4.24.

Tabel 4.22. RincianHasil Pemanggilan Citra Berdasarkan Fitur Warna (1)

No. Pengguna File Citra Query

Penilaian Citra Oleh Pengguna Jumlah Relevan Jumlah Relevan Marginal Jumlah Tidak Relevan

1 01

DaisyFlower7.jpg 1 1 18

HibFlower7.jpg 1 3 16

Total 2 4 34

2 02

MoonFlower.jpg 1 5 14

RoseFlower.jpg 1 3 16

Total 2 8 30

3 03

MoonFlower.jpg 1 5 14

RoseFlower.jpg 1 3 16

Total 2 8 30

4 04

RoseFlower7.jpg 1 3 16

GaNivFlower7.jpg 1 5 14

Total 2 8 30

5 05

AnthFlower8.jpg 1 4 15

GloThiFlower8.jpg 1 8 11

Total 2 12 26

6 06

DaisyFlower9.jpg 1 1 18

GaNivFlower7.jpg 1 5 14

Total 2 6 32

7 07

SunFlower.jpg 1 6 13

HibFlower5.jpg 1 3 16

Total 2 9 29

8 08

AnthFlower.jpg 1 4 15

HibFlower.jpg 1 5 14


(60)

71

Tabel 4.23. RincianHasil Pemanggilan Citra Berdasarkan Fitur Warna (2)

Tabel 4.24. Nilai Precision Hasil Pemanggilan Citra

No. Pengguna

Total Citra yang ditemukan

Total Citra Relevan

Precision

Persentase

Precision

(%)

1 01 40 6 0,15 15

2 02 40 10 0,25 25

3 03 40 10 0,25 25

4 04 40 10 0,25 25

5 05 40 14 0,35 35

6 06 40 8 0,2 20

7 07 40 11 0,275 27,5

8 08 40 11 0,275 27,5

9 09 40 9 0,225 22,5

10 10 40 19 0,475 47,5

Rata- rata 0,27 27

Berdasarkan pengujian pada Tabel 4.22. dan Tabel 4.23 dapat dihitung nilai

recall hasil pemanggilan citra. Berikut perhitungan nilai recall dengan contoh pengujian pengguna 01.

��= Jumlah citra relevan yang ditemukembalikan

Jumlah citra relevan dalam = 6

20 = 0,3

9 09

RoseFlower.jpg 1 4 15

SunFlower.jpg 1 3 16

Total 2 7 31

10 10

PasFlower5.jpg 1 9 10

DaisyFlower8.jpg 1 8 11


(61)

72

Nilai recall hasil pemanggilan citra berdasarkan fitur bentuk yang dilakukan tiap pengguna dapat dilihat pada Tabel 4.25.

Tabel 4.25. Nilai Recall Hasil Pemanggilan Citra

No. Pengguna

Total Citra Relevan

Database

Total Citra Relevan

Recall

Persentase

Recall

(%)

1 01 20 6 0,3 30

2 02 20 10 0,5 50

3 03 20 10 0,5 50

4 04 20 10 0,5 50

5 05 20 14 0,7 70

6 06 20 8 0,4 40

7 07 20 11 0,55 55

8 08 20 11 0,55 55

9 09 20 9 0,45 45

10 10 20 19 0,95 95

Rata- rata 0,54 54

Rincian penggunaan waktu pada saat pemanggilan citra dapat dilihat pada Tabel 4.26. dan Tabel 4.27. berikut ini.

Tabel 4.26. Waktu Pemanggilan Citra Berdasarkan Ekstraksi Fitur Warna (1)

No. Pengguna File Citra Query

Waktu Pemanggilan Citra

(detik)

1 01 DaisyFlower7.jpg 1,685

HibFlower7.jpg 1,622

2 02 MoonFlower.jpg 1,561

RoseFlower.jpg 1,747

3 03 MoonFlower.jpg 2,340


(62)

73

Tabel 4.27. Waktu Pemanggilan Citra Berdasarkan Ekstraksi Fitur Warna (2)

4.2.3 Analisis Hasil Pengujian

Hasil pengujian sistem pemanggilan citra berdasarkan ekstraksi fitur bentuk dengan Operator Sobel dan ekstraksi fitur warna dengan deteksi warna HSV dapat dilihat pada Tabel 4.28. dan 4.29. berikut ini.

Tabel 4.28. Rata-rata Nilai Precision, Recall dan Waktu Pemanggilan Citra(1)

Pengguna Precision (%) Recall (%) Waktu (detik)

OS HSV OS HSV OS HSV

01 25 15 50 30 1,874 1,6535

02 35 25 70 50 1,653 1,654

03 22,5 25 45 50 0,1875 2,1525

04 30 25 60 50 0,312 3,018

4 04 RoseFlower7.jpg 2,511

GaNivFlower7.jpg 3,525

5 05 AnthFlower8.jpg 6,147

GloThiFlower8.jpg 5,835

6 06 DaisyFlower9.jpg 6,505

GaNivFlower7.jpg 4,274

7 07 SunFlower.jpg 8,442

HibFlower5.jpg 7,051

8 08 AnthFlower.jpg 5,788

HibFlower.jpg 5,569

9 09 RoseFlower.jpg 3,260

SunFlower.jpg 2,168

10 10 PasFlower5.jpg 1,794

DaisyFlower8.jpg 1,747


(63)

74

Tabel 4.29. Rata-rata Nilai Precision, Recall dan Waktu Pemanggilan Citra(2)

Pengguna

Precision (%) Recall (%) Waktu (detik)

OS HSV OS HSV OS HSV

05 50 35 100 70 0,8715 5,991

06 25 20 50 40 1,724 5,3895

07 37,5 27,5 75 55 2,722 7,7365

08 45 27,5 90 55 0,6165 5,6785

09 42,5 22,5 85 45 0,4635 2,714

10 20 47,5 40 95 0,46 1,7705

Rata-rata 33,25 27 66,5 54 1,1884 3,7758

Berdasarkan Tabel 4.28. dan Tabel 4.29. hasil pemanggilan citra meggunakan fitur bentuk dengan metode Operator Sobel memiliki nilai precision dan recall yang lebih baik jika dibandingkan dengan nilai precision dan recall hasil pemanggilan citra menggunakan fitur warna dengan metode deteksi warna HSV. Nilai rata-rata precision

dari citra hasil temu kembali menggunakan fitur bentuk adalah 33,25% sedangkan nilai rata-rata precision dari citra hasil temu kembali menggunakan fitur warna adalah 27% dan nilai rata-rata recall dari citra hasil temu kembali menggunakan fitur bentuk adalah 66,5% sedangkan nilai rata-rata recall dari citra hasil temu kembali menggunakan fitur tekstur adalah 54%. Rata-rata penggunaan waktu pemanggilan citra berdasarkan estraksi fitur bentuk selama 1,1884 detik sedangkan rata-rata penggunaan waktu pemanggilan citra berdasarkan ekstraksi fitur warna selama 3,7758 detik.


(64)

BAB 5

KESIMPULAN DAN SARAN

Pada bab kesimpulan dan saran ini akan diuraikan mengenai kesimpulan dari keseluruhan uraian bab-bab sebelumnya serta saran yang diharapkan dapat bermanfaat untuk penelitian selanjutnya.

5.1 Kesimpulan

Berdasarkan analisis, perancangan dan pengujian dari penelitian pemanggilan citra berdasarkan fitur bentuk dan warna menggunakan Operator Sobel dan deteksi warna HSV, maka diperoleh beberapa kesimpulan sebagai berikut :

1. Metode Operator Sobel untuk ekstraksi fitur bentuk dan deteksi warna HSV untuk ekstraksi fitur warna dapat diimplementasikan dalam perancangan aplikasi yang mampu melakukan pemanggilan citra kembali berdasarkan konten.

2. Ekstraksi fitur bentuk dengan menggunakan Operator Sobel dapat menemukan 33,25% citra yang relevan sedangkan ekstraksi fitur warna dengan menggunakan deteksi warna HSV dapat menemukan 27% citra yang relevan.

3. Ekstraksi fitur bentuk dengan menggunakan Operator Sobel berhasil menemukan 66,5% citra dari keseluruhan citra dalam database sedangkan ekstraksi fitur warna dengan menggunakan deteksi warna HSV berhasil menemukan 54% citra dari keseluruhan citra dalam database.


(65)

76

5.2 Saran

Berikut adalah hal-hal yang menjadi saran dari penelitian ini untuk penelitian selanjutnya yang terkait.

1. Penelitian selanjutnya dapat dilakukan kombinasi antara fitur bentuk dengan tekstur atau kombinasi antara ketiga fitur, yaitu fitur bentuk, warna dan tekstur.

2. Metode Operator Sobel menghasilkan garis tepi yang banyak pada sebagian citra, sehingga output pemanggilan citra berdasarkan ekstraksi fitur bentuk belum optimal. Untuk penelitian selanjutnya diharapkan menggunakan metode deteksi tepi lainnya, seperti Metode Kirsch, Robinson atau Canny. 3. Deteksi warna HSV yang digunakan dalam penelitian ini melakukan

pendeteksian terhadap warna dominan pada citra. Background citra berpengaruh pada proses pemanggilan citra sehingga output pemanggilan citra berdasarkan ekstraksi fitur warna belum optimal. Untuk penelitian selanjutnya diharapkan menggunakan segmentasi untuk memisahkan objek dari background.

4. Similarity Comparison yang digunakan dalam penelitian ini hanya

Euclidean Distance, untuk penelitian selanjutnya diharapkan menggunakan metode pengukuran jarak kesamaan vektor fitur citra lainnya seperti Cosine Similarity.

5. Penelitian ini hanya menggunakan data citra digital berformat JPG, untuk penelitian selanjutnya diharapkan dapat menggunakan format file citra lainnya seperti BMP atau PNG.


(1)

3.2 Perancangan Sistem 28

3.2.1 Flowchart 29

3.2.1.1 Flowchart Content Based Image Retrieval 29 3.2.1.2 Flowchart Ekstraksi Fitur Bentuk 30 3.2.1.3 Flowchart Ekstraksi Fitur Warna 31 3.2.1.4 Flowchart Sistem Secara Keseluruhan 32

3.2.2 Pseudocode 33

3.2.2.1 Pseudocode Ekstraksi Fitur Bentuk 33 3.2.2.2 Pseudocode Ekstraksi Fitur Warna 34

3.2.3 Use Case Diagram 36

3.2.4 Activity Diagram 39

3.2.5 Sequence Diagram 41

3.2.6 Perancangan Database 42

3.2.7 Perancangan Antarmuka 43

3.2.7.1 Halaman Utama 43

3.2.7.2 Halaman Mulai Pencarian 44

3.2.7.3 Halaman Input Citra ke Database 45

3.2.7.4 Halaman Bantuan 46

3.2.7.5 Halaman Tentang 47

Bab 4 Implementasi dan Pengujian

4.1 Implementasi 48

4.1.1 Halaman Utama 48

4.1.2 Halaman Mulai Pencarian 49

4.1.3 Halaman Input Citra ke Database 50

4.1.4 Halaman Bantuan 50

4.1.5 Halaman Tentang 51

4.1.6 Proses Pemanggilan Citra Berdasarkan Fitur Bentuk 51 4.1.7 Proses Pemanggilan Citra Berdasarkan Fitur Warna 55

4.2 Pengujian 62

4.2.1 Pengujian Ekstraksi Fitur Bentuk 62

4.2.2 Pengujian Ekstraksi Fitur Warna 68

4.2.3 Analisis Hasil Pengujian 73

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 75

5.2 Saran 76


(2)

DAFTAR TABEL

Halaman

Tabel 2.1 Contoh Tabel Warna HSV 19

Tabel 3.1. Use Case Narrative Pemanggilan Citra 37 Tabel 3.2. Use Case Narrative Input Citra ke Database 38

Tabel 3.3. Tabel imageSobelMatching 42

Tabel 3.4. Tabel imageHsvMatching 43

Tabel 4.1. Piksel Citra PlumFlower5.jpg 52

Tabel 4.2. Piksel Hasil Grayscale Citra PlumFlower5.jpg 53

Tabel 4.3. Matriks Nilai Magnitudo 53

Tabel 4.4. Piksel Citra PlumFlower5.jpg (1) 55

Tabel 4.5. Piksel Citra PlumFlower5.jpg (2) 56

Tabel 4.6. Piksel HSV Citra PlumFlower5.jpg 56

Tabel 4.7. Kuantisasi Ruang Warna dari Histogram HSV-162 Bin(1) 57 Tabel 4.8. Kuantisasi Ruang Warna dari Histogram HSV-162 Bin(2) 58 Tabel 4.9. Kuantisasi Ruang Warna dari Histogram HSV-162 Bin(3) 59

Tabel 4.10. Histogram HSV-162 Bin(1) 59

Tabel 4.11. Histogram HSV-162 Bin(2) 60

Tabel 4.12. Histogram HSV-162 Bin(3) 61

Tabel 4.13. Pengujian Pemanggilan Citra Berdasarkan Fitur Bentuk(1) 62 Tabel 4.14. Pengujian Pemanggilan Citra Berdasarkan Fitur Bentuk(2) 63 Tabel 4.15. Rincian Hasil Pemanggilan Citra Berdasarkan Fitur Bentuk(1) 64 Tabel 4.16. Rincian Hasil Pemanggilan Citra Berdasarkan Fitur Bentuk(2) 65 Tabel 4.17. Nilai Precision Hasil Pemanggilan Citra 65 Tabel 4.18. Nilai Recall Hasil Pemanggilan Citra 66 Tabel 4.19. Waktu Pemanggilan Citra Berdasarkan Ekstraksi Fitur Bentuk 67 Tabel 4.20. Pengujian Pemanggilan Citra Berdasarkan Fitur Warna(1) 68 Tabel 4.21. Pengujian Pemanggilan Citra Berdasarkan Fitur Warna(2) 69 Tabel 4.22. Rincian Hasil Pemanggilan Citra Berdasarkan Fitur Warna(1) 70


(3)

Tabel 4.23. Rincian Hasil Pemanggilan Citra Berdasarkan Fitur Warna(2) 71 Tabel 4.24. Nilai Precision Hasil Pemanggilan Citra 71 Tabel 4.25. Nilai Recall Hasil Pemanggilan Citra 72 Tabel 4.26. Waktu Pemanggilan Citra Berdasarkan Eksraksi Fitur Warna(1) 72 Tabel 4.27. Waktu Pemanggilan Citra Berdasarkan Eksraksi Fitur Warna(2) 73 Tabel 4.28. Rata-rata Nilai Precision, Recall dan Waktu Pemanggilan Citra(1) 73 Tabel 4.29. Rata-rata Nilai Precision, Recall dan Waktu Pemanggilan Citra(2) 74


(4)

DAFTAR GAMBAR

Halaman Gambar 2.1. Diagram Sistem Content Based Image Retrieval 8

Gambar 2.2. Citra Bunga 16

Gambar 2.3. Citra Bunga Hasil Deteksi Operator Sobel 17 Gambar 2.4. Diagram Deteksi Tepi Menggunakan Operator Sobel 17

Gambar 2.5. Model Warna HSV 18

Gambar 2.6. Sistem Koordinat Citra Digital 20

Gambar 3.1. Diagram Ishikawa Masalah Penelitian 26

Gambar 3.2. Flowchart Content Based Image Retrieval 29 Gambar 3.3. Flowchart Ekstraksi Fitur Bentuk dengan Operator Sobel 30 Gambar 3.4. Flowchart Ekstraksi Fitur Bentuk dengan Deteksi Warna HSV 31

Gambar 3.5. Flowchart Sitem Secara Keseluruhan 32

Gambar 3.6. Use Case Diagram Sistem 37

Gambar 3.7. Activity Diagram Pemanggilan Citra 39

Gambar 3.8. Activity Diagram Input Citra ke Database 40

Gambar 3.9. Sequence Diagram Pemanggilan Citra 41

Gambar 3.10. Sequence Diagram Input Citra ke Database 41 Gambar 3.11. Perancangan Antarmuka Halaman Utama 43 Gambar 3.12. Perancangan Antarmuka Halaman Mulai Pencarian 44 Gambar 3.13. Perancangan Antarmuka Halaman Input Citra ke Database 45 Gambar 3.14. Perancangan Antarmuka Halaman Bantuan 46 Gambar 3.15. Perancangan Antarmuka Halaman Tentang 47

Gambar 4.1. Halaman Awal 48

Gambar 4.2. Halaman Mulai Pencarian 49

Gambar 4.3. Halaman Input Citra ke Database 50

Gambar 4.4. Halaman Bantuan 50

Gambar 4.5. Halaman Tentang 51


(5)

Gambar 4.6. Citra PlumFlower5.jpg 51 Gambar 4.7. Hasil Grayscale Citra PlumFlower5.jpg 52 Gambar 4.8. Citra PlumFlower5.jpg dengan Operator Sobel 54


(6)

DAFTAR LAMPIRAN

Halaman

Lampiran 1 Urutan Peraturan Pengisian Angket A-1

Lampiran 2 Angket B-1

Lampiran 3 Listing Program C-1

Lampiran 4 Daftar Riwayat Hidup (Curriculum Vitae) D-1