Implementasi Content Based Image Retrieval Berbasis Fitur Bentuk dan Warna Menggunakan Operator Sobel dan Deteksi Warna HSV
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. MenuItem ‘Input 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