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

(1)

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 and

Applications

. 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)

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, e

t 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)

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)

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)

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)

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 00,


(7)

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)

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)

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]){ if(vValue == vBinValue[x]){


(10)

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)

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

AFTAR

R

IWAYAT

H

IDUP

C

URRICULUM

V

ITAE

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)

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”,


(1)

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));


(2)

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;


(3)

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]); }


(4)

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; }

}


(5)

D

AFTAR

R

IWAYAT

H

IDUP

C

URRICULUM

V

ITAE

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 ]


(6)

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”,