Perancangan Sistem Class dbConnection.java

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. Universitas Sumatera Utara 29 Mulai P q 1 ,q 2 , ..., q n p 1 , p 2 , ..., p n d = p i -q i 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 p 1 , p 2 , ..., p n . Citra yang telah di- input -kan dalam database Q juga diekstraksi sehingga menghasilkan vektor fitur Universitas Sumatera Utara 30 ya tidak citra q 1 , q 2 , ..., q n . 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 hj= xi,j N baris i=1 hi= xi,j N kolom j=1 A Tepi dianggap 0 rgbG[i][j] =128 Tepi dianggap 1 Mulai Ambil nilai r , g , b G = r + g + b3 Gx[i][j] = G[i+1][j-1] + 2G[i+1][j] + G[i+1][j+1] - G[i-1][j-1] - 2G[i-1][j] - G[i-1][j+1] Gy[i][j] = G[i-1][j+1] + 2G [i][j+1] + G[i+1][j+1] - G[i-1][j-1] - 2G[i][j-1] - G[i+1][j-1] rgbG[i][j] =|Gx[i][j]| + |Gy[i][j]| A Universitas Sumatera Utara 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 = hue17 s = saturation2 v = value2 A Mulai Ambil nilai R , G , B r = R255 ; g = G255 ; b = B255 H= ° jika ∆=0 60° ⨯ g-b ∆ mod6 jika C max =r 60° ⨯ 2+ b-r ∆ 60° ⨯ 4+ r-g ∆ jika C max =g jika C max =b S = ∆ C max jika C max =0 jika C max ≠0 V = C max A hue = H ⨯ 18360 saturation = S ⨯ 3100 value = V ⨯ 3100 int x=0; x162 ; x++ h == hBinValue s == sBinValue v == vBinValue Hasil [x] + = 1 Hasil Piksel Citra Selesai Universitas Sumatera Utara 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 HHue, data warna SSaturation dan data warna VValue. 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. Gambar 3.5. Flowchart Sistem Secara Keseluruhan Universitas Sumatera Utara 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.getRGBi, j; int r = pixel160xff; int g = pixel80xff; int b = pixel0xff; 2. Konversi RGB ke Grayscale rgbGrayValue[i][j] = r+g+b3; 3. Konvolusi Horizontal dan Vertikal Gx[i][j]= rgbGrayValue[i+1][j-1] + 2rgbGrayValue[i+1][j] +rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] -2rgbGrayValue[i-1][j] - rgbGrayValue[i-1][j+1]; Gy[i][j]= rgbGrayValue[i-1][j+1] + 2rgbGrayValue[i][j+1] +rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] -2rgbGrayValue[i][j-1]-gbGrayValue[i+1][j-1]; rgbG[i][j] = Math.absGx[i][j] + Math.absGy[i][j]; Universitas Sumatera Utara 34 4. Membandingkan Nilai Magnitudo dengan Nilai Threshold ifrgbG[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 forint i=0 ; iwidth ; i++{ int temp = 0; forint j=0 ; jheight ; j++{ temp += intPro[i][j]; } integralPro += Integer.toStringtemp+ ; } forint i=0 ; iheight ; i++{ int temp=0; forint j=0 ; jwidth ; j++{ temp += intPro[j][i]; } ifi==height-1 integralPro += Integer.toStringtemp; else integralPro += Integer.toStringtemp+ ; } 3.2.2.2 Pseudocode Ekstraksi Fitur Warna 1. Ekstraksi Nilai RGB int pixel = getImg.getRGBi,j; double r = pixel160xff; double g = pixel80xff; double b = pixel0xff; Universitas Sumatera Utara 35 2. Konversi RGB ke HSV vValue = cMax100.0; ifcMax == 0{ sValue = 0; } else{ sValue = deltacMax100; } ifdelta==0{ hValue = 0.0; } else{ ifcMax == r1{ hValue = 60 g1-b1delta6 ; } else ifcMax == g1{ hValue = 60 b1-r1delta+2 ; } else ifcMax == b1{ hValue = 60 r1-g1delta+4 ; } else{ hValue = 0.0; } } ifhValue0{ hValue+=360.0; } 3. Menentukan Letak Bin hValue = Math.roundhValue18360; sValue = Math.roundsValue3100; vValue = Math.roundvValue3100; Universitas Sumatera Utara 36 4. Kuantisasi forint x=0 ; x162 ; x++{ ifhValue == hBinValue[x]{ ifsValue == sBinValue[x]{ ifvValue == vBinValue[x]{ result[x]+=1; found=true; break; } } } } 5. Normalisasi forint i=0 ; i162 ; i++{ result[i]= Double.valueOfdf.formatresult[i]100widthheight; } 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. Universitas Sumatera Utara 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 4. Klik tombol pilih citra 4. Menampilkan windows explorer Universitas Sumatera Utara 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 MenuItem input 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 Kondisi Sesudah Sistem menyimpan citra dan fitur citra ke database Universitas Sumatera Utara 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. Gambar 3.7. Activity Diagram Pemanggilan Citra Universitas Sumatera Utara 40 Gambar 3.8. Activity Diagram Input Citra ke Database Universitas Sumatera Utara 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 Gambar 3.10. Sequence Diagram Input Citra ke Database Universitas Sumatera Utara 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. SQLite juga bersifat server less 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 2 imageIntPro Text Hasil Integral Proyeksi Operator Sobel Universitas Sumatera Utara 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. Universitas Sumatera Utara 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 input citra ke database. Universitas Sumatera Utara 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. Gambar 3.13. Perancangan Antarmuka Halaman Input Citra ke Database Universitas Sumatera Utara 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. Universitas Sumatera Utara 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. Gambar 3.15. Perancangan Antarmuka Halaman Tentang Universitas Sumatera Utara 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