Implementasi metode viola and jones untuk mengenali isyarat jari sebagai saraa navigasi pada aplikasi pemutar musik

(1)

BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah

Sistem pengenalan isyarat jari adalah suatu sistem yang membuat mesin dapat mengenali isyarat jari seseorang sesuai dengan gambar isyarat jari yang telah dilatih dan disimpan di dalam mesin tersebut. Untuk melakukan pengenalan isyarat jari pada sistem maka terdapat berbagai metode. Pada penelitian ini dipilihlah Suatu metode pengenalan isyarat jari yaitu dengan menggunakan Metode Viola and Jones. Metode ini digunakan karena memiliki kapabilitas untuk mendeteksi isyarat jari pada suatu citra gambar dengan tingkat keakuratan yang cukup tinggi. Oleh karena itu suatu objek akan dapat dikenali oleh sistem melalui karakteristik atau ciri–ciri yang dihasilkan oleh perhitungan algoritma Viola and Jones terhadap objek tersebut. Untuk membangun sistem pengenalan isyarat jari pada aplikasi pemutar musik yang baik agar dapat diterapkan pada sistem identifikasi seseorang, sistem tersebut harus memenuhi beberapa kriteria diantaranya keakuratan pengenalan dan kecepatan pengenalan. Berikut adapula riset sejenis yang bertujuan memanfaatkan dan menganalisis metode viola-jones terhadap pengenalan wajah. Dimana pada penelitian ini dilakukan dengan membandingkan citra uji dengan jumlah 5 sample citra wajah orang terhadap 5, 10 dan 20 sample citra wajah orang yang telah melalui proses pelatihan. Maka dari hasil pengujian pada riset tersebut didapatkanlah data untuk rata-rata keakuratan pengenalan citra pada kondisi normal, miring, dan gelap terhadap 5 citra latih sebesar 73,33% sementara untuk 10 citra latih sebesar 86,67% dan untuk 20 citra latih sebesar 80% [1].

Dengan demikian, masalah mengenai keakuratan tersebut maka diperlukan suatu analisis pada pengembangan sistem sebelumnya agar masalah keakuratan dan kecepatan terhadap pengenalannya menjadi lebih optimal. Oleh karena itu pada penelitian kali ini akan dilakukan penerapan metode untuk mendeteksi adanya obyek adalah Haar Cascade, yaitu metode deteksi objek yang membangun sebuah boosted rejection cascade, yang akan membuang data training negatif sehingga didapatkan suatu keputusan untuk menentukan data positif. Haar Cascade adalah


(2)

Vision dan Image Processing. Computer Vision mempunyai tujuan utama untuk membuat keputusan yang berguna tentang obyek fisik nyata dan pemandangan berdasarkan image yang didapat dari sensor. Secara sederhana Computer Vision ingin membangun sebuah mesin pandai yang dapat melihat. Image Processing merupakan salah satu jenis teknologi untuk menyelesaikan masalah mengenai pemrosesan gambar. Dalam Image Processing gambar yang ada diolah sedemikian rupa sehingga gambar tersebut lebih mudah untuk diproses. Oleh karena itu pada penelitian ini akan didapatkan suatu hasil penelitian berupa hasil analisa dan kesimpulan mengenai performa dari penerapan suatu algoritma pengolah citra gambar pada suatu sistem pengenalan isyarat jari untuk petunjuk navigasi play, pause, next, dan previous pada aplikasi pemutar musik.

1.2 Rumusan Masalah

Berdasarkan uraian latar belakang diatas, maka dapat diketahui bahwa dalam sistem pengenalan isyarat jari pada aplikasi pemutar musik masih terdapat kesalahan dalam mengenali citra jari tangan dimana jari tangan yang terdeteksi dikenali sebagai jari tangan orang lain sehingga menyebabkan sistem pengenalan tersebut belum benar-benar akurat, oleh karena itu dibutuhkanlah suatu pengembangan yang dapat meningkatkan keakuratan tersebut. Selain dari itu, faktor pencahayaan yang gelap pada citra gambar juga akan mempersulit sistem baik untuk pendeteksian maupun pengenalan jari tangan pada citra gambar.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah mengimplementasikan metode viola and jones untuk pengenalan isyarat jari pada aplikasi pemutar musik berbasis desktop .


(3)

Sedang kan tujuan yang akan dicapai dalam penelitian ini adalah untuk melihat apakah metode viola and jones dapat menghasilkan solusi optimal pada pengontrolan aplikasi pemutar musik ditinjau dari seberapa akurat, dan cepat isyarat jari tangan dilacak dan seberapa handal jika terjadi halangan pada tangan atau keseluruhan objek lain yang merupakan bagian dari badan pemilik jemari sendiri maupun benda atau orang lain.

1.4 Batasan Masalah

Terdapat beberapa batasan permasalahan yang dapat dirumuskan agar pembahasan masalah dapat lebih terarah dan terperinci, dengan maksud untuk mempermudah identifikasi dan pemahaman terhadap aplikasi. Adapun batasan masalah dalam implementasi metode viola jones pada aplikasi pemutar musik ini.

1. Aplikasi ini mendeteksi isyarat jari manusia secara real time.

2. Metode yang digunakan adalah Metode viola jones khususnya di algoritma Haar Cascade Classifier.

3. Sistem operasi yang digunakan adalah Microsoft Windows 8.

4. Pembuatan software menggunakan C# dengan IDE Visual Studio 2013. 5. Sistem yang dibangun berbasis Dekstop.

6. Sistem menggunakan library OpenCV

1.5 Metodologi Penelitian

Metode penelitian yang digunakan dalam penulisan tugas akhir ini adalah metode penelitian eksperimen yaitu suatu jenis dari metodologi kuantitatif dengan melakukan percobaan untuk melihat suatu hasil dan meneliti ada tidak nya hubungan sebab-akibat. Adapun tahap yang akan dilalui adalah metode pengumpulan data, analisis kebutuhan algoritma, dan metode pembangunan perangkat lunak.


(4)

meliputi kecerdasan buatan, desain, tools dan juga pemodelan dengan UML yang dapat membantu menyelesaikan implementasi algoritma pada aplikasi musik ini.

2. Metode Pembangunan Perangkat Lunak

Pembangunan perangkat lunak yang dilakukan merupakan kebutuhan untuk menguji kinerja dari algoritma viola and jones. Dalam pembuatan perangkat lunak ini menggunakan Model Agile sebagai tahap pengembangan perangkat lunaknya.

a. Planning

Tahap perencanaan yang dilakukan adalah dengan pemodelan menggunakan metode pemrograman berorientasi objek dengan Tool Unified Modeling Language (UML), dan menerapkan algoritma viola and jones pada aplikasi pemutar musik untuk pengenalan isyarat jari.

b. Design

Tahap design merupakan tahap perancangan dari pembangunan aplikasi pemutar musik yang akan dibuat untuk identifikasi dan mengatur class-class di konsep object oriented.

c. Coding

Setelah tahap perancangan system selanjutnya dilakukan konversi rancangan system kedalam kode-kode bahasa pemrograman yang digunakan yaitu Java. Setelah lolos tahap testing, maka dilakukan refactoring, yaitu meninjau kembali semua kode program, dilihat ke efektifan nya, jika ada kode program yang tidak efektif akan dilakukan penulisan kode program ulang tanpa mengubah kerja dari modul.

d. Testing

Pengujian aplikasi dilakukan untuk memastikan bahwa aplikasi yang dibuat telah sesuai dengan desainnya dan semua fungsi dapat dipergunakan dengan baik tanpa ada kesalahan.


(5)

Gambar 1.1 Model Agile[2]

1.6 Sistematika Penulisan

Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini mengemukakan latar belakang masalah, rumusan masalah, batasan masalah, metodologi penelitian, serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini akan menjelaskan tentang semua landasan teori yang berhubungan dengan sistem yang akan dibuat yaitu menyangkut computer vision, sistem pengenalan jari, pendeteksian haar, serta metode viola jones.

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini menjelaskan perancangan sistem, mulai dari tujuan perangkat lunak yang digunakan, pembuatan prototype program, proses kerja sistem, analisis algoritma pada sistem.


(6)

Bab ini berisikan kesimpulan dari hasil penelitian serta saran-saran bagi mahasiswa yang akan mengembangkan tugas akhir ini.


(7)

7

Computer Vision adalah suatu proses transformasi atau perubahan dari data yang berasal dari kamera video maupun foto/gambar kedalam sebuah hasil keputusan ataupun sebuah presentasi yang baru, dimana hasil dari kegiatan transformasi tersebut memiliki kepentingan untuk mencapai suatu tujuan. Data yang dimasukan kedalam kegiatan transformasi tersebut memungkinkan untuk memiliki beberapa informasi yang terkonstektual seperti halnya sebuah foto/gambar yang didalamnya terdapat berbagai objek. Dengan demikian akan didapatkan keputusan-keputusan yang akan diambil pada gambar, misalnya berupa “adakah telapak tangan seseorang pada gambar tersebut?” atau “siapa sajakah orang yang terdapat pada foto tersebut?”. Adapun perubahan kedalam presentasi yang baru seperti perubahan gambar menjadi grayscale atau juga pemotongan objek pada gambar.

Berbeda halnya dengan manusia yang memiliki pemikiran untuk meneliti, memahami, dan membandingkan informasi pada objek secara langsung dengan informasi dari pengalaman-pengalaman yang didapatkan selama bertahun-tahun hidup didunia. Dalam sistem penglihatan mesin (machine vision) komputer hanya mampu mendapatkan informasi berupa kumpulan angka-angka dari media input data seperti kamera atau disket. Berikut contoh sebuah gambar untuk mengilustrasikannya :


(8)

Gambar 2.1 Ilustrasi penglihatan komputer

Dari gambar berikut terlihat bahwa kaca samping pada gambar mobil hanyalah berupa kumpulan angka-angka jika dilihat oleh computer. Tentunya angka-angka ini masih memiliki banyak noise atau gangguan sehingga informasi yang terkandung sangatlah sedikit. Hal ini disebabkan dari penglihatan komputer yang terbatas hanya 2 dimensi (2D) namun objek yang diproses ialah objek 3 dimensi (3D) dunia nyata, sehingga informasi yang didapat mengalami banyak sekali gangguan dan kendala dari berbagai fenomena di kehidupan nyata (cuaca, cahaya, bayangan, refleksi cahaya, dan gerakan). Dengan demikian hal tersebut menjadi permasalahan yang terus-menerus diteliti untuk ditemukan cara atau tehnik penyelesaiannya [2].

2.2 Sistem Pendeteksian Isyarat jari

Pendeteksian isyarat jari adalah proses yang bertujuan untuk melakukan seleksi area telapak tangan dari sebuah citra gambar yang dimasukan kedalam sistem. Proses ini bekerja dengan cara mendeteksi citra gambar yang telah dimasukan, apakah terdapat obek telapak tangan pada citra gambar tersebut atau tidak. Apabila objek telapak tangan telah ditemukan maka, citra telapak tangan tersebut akan ditandai oleh sistem dan akan dilakukan tahapan-tahapan selanjutnya misalnya pengekstraksian telapak tangan tersebut dari citra gambar sebelumnya. Selain itu, jika masukan pada sistem adalah bearbentuk video maka proses yang akan dilakukan adalah proses hand tracking. Secara umum, proses


(9)

hand tracking dan proses pendeteksian isyarat jari mempunyai fungsi yang sama. Pada dasarnya, meskipun sistem pengenalan isyarat jari didasari dengan metode-metode yang berbeda, sistem pengenalan siyarat jari memiliki tahapan-tahapan yang hampir sama, berikut tahapan-tahapan yang pada umumnya terdapat pada sistem pengenalan isyarat jari :

1. Grayscaling citra gambar

2. Pendeteksian jari tangan atau tracking jari 3. Pengenalan/pencocokan jari tangan

2.2.1 Grayscaling

Grayscaling pada citra merupakan tahap pengkonversian citra gambar warna yang terdiri dari tiga parameter warna yaitu merah, hijau, dan biru (RGB). Jika citra gambar RGB diproses kedalam sistem pengenalan wajah, maka akan lebih sulit untuk diproses karena mengingat citra gambar RGB memiliki tiga parameter warna, oleh karena itu diperlukan suatu penyempitan parameter kedalam warna abu sehingga menjadi lebih mudah dalam hal penyamaan parameter yang akan digunakan pada implementasi sistem pengenalan isyarat jari. Untuk mengkonversikan citra yang memiliki warna RGB kedalam derajat keabuan dapat menggunakan persamaan (2.1) atau (2.2)

���� = � + � + � / (2.1) atau

���� = . ∗ � + . ∗ � + . ∗ � (2.2) Maka hasil dari proses grayscaling citra dapat dilihat pada gambar 2.2.


(10)

Nilai ambang batas pada setiap filter diatur setiap saat proses filter terjadi, sehingga nilai dari ambang batas bersifat dinamis. Filter pada setiap tingkat telah dilatih untuk mengklasifikasi citra yang telah melalui tahap sebelumnya. Saat proses pengklasifikasian, jika salah satu filter gagal terlewati maka citra dapat dikatakan sebagai daerah yang bukan wajah. Jika citra belum cukup untuk dikatakan sebagai strong classifier maka proses diulang sampai bobot terpenuhi dengan menaikkan nilai dari ambang batas. Ketika citra dapat melewati setiap filter yang ada di dalam rantai, maka dapat dikatakan daerah tersebut merupakan telapak tangan

2.2.2 Pendeteksian Isyarat Jari

Pendeteksian isyarat jari adalah proses yang bertujuan untuk melakukan seleksi area isyarat jari dari sebuah citra gambar yang dimasukan kedalam sistem. Proses ini bekerja dengan cara mendeteksi citra gambar yang telah dimasukan, apakah terdapat obek isyarat jari pada citra gambar tersebut atau tidak. Apabila objek isyarat jari telah ditemukan maka, citra isyarat jari tersebut akan ditandai oleh sistem dan akan dilakukan tahapan-tahapan selanjutnya misalnya pengekstraksian isyarat jari tersebut dari citra gambar sebelumnya. Selain itu, jika masukan pada sistem adalah berbentuk video maka proses yang akan dilakukan adalah proses hand tracking. Secara umum, proses hand tracking dan proses pendeteksian isyarat jari mempunyai fungsi yang sama. Berikut gambar 2.2 setelah dilakukannya proses pendeteksian telapak tangan.


(11)

Gambar 2.3 Pendeteksian telapak tangan.

2.2.3 Pengenalan Isyarat Jari

Proses ini bertujuan untuk membandingkan citra isyarat jari yang dideteksi oleh sistem dengan citra isyarat jari yang terdapat didalam database. Dari proses perbandingan isyarat jari tersebut akan menghasilkan nilai jarak terdekat yang menandakan nilai isyarat jari citra yang terdeteksi hampir menyamai dengan nilai citra wajah pada database. Nilai jarak ini akan menjadi nilai masukan untuk nilai kemiripan citra. Nilai kemiripan citra merupakan nilai tingkat kemiripan citra yang dibandingkan, semakin besar nilainya menandakan bahwa orang yang sedang diamati adalah orang yang sama dengan orang yang citra isyarat jari telah disimpan dalam database. Setelah itu dilakukan proses pencocokan, yaitu kondisi dimana hasil dari perbandingan isyarat jari memberikan keputusan terhadap citra isyarat jari yang terdeteksi apakah cocok dengan citra isyarat jari yang telah dipilih dari database, sehingga hasil dari pencocokan adalah benar-benar hasil yang paling tepat dan akurat.


(12)

2.3 Metode Viola Jones

Metode Viola Jones adalah metode yang memiliki kapabilitas untuk mendeteksi wajah pada suatu citra gambar dengan tingkat keakuratan yang cukup tinggi. Pada standarnya pengolahan citra pada gambar akan dilakukan dengan merubah skala ukuran gambar kedalam ukuran yang ditentukan dan melakukan pendeteksian dengan skala tetap pada gambar tersebut. Dengan hal tersebut simpulkan bahwa waktu untuk pendeteksian akan lebih cepat dibandingkan dengan melakukan pendeteksian terhadap citra gambar yang berukuran berbeda-beda.

Berbeda halnya dengan Metode Viola Jones yang terus merubah ukuran skala pendeteksian dibandingkan harus merubah ukuran dari skala gambar dan menjalankan banyak pendeteksian terhadap gambar dengan ukuran skala pendektesian yang berbeda tiap waktunya. Hal ini diperkirakan akan membutuhkan lebih banyak waktu, tapi Metode Viola Jones memiliki fitur pendeteksian yang mengkonstruksi gambar kedalam gambar integral dan beberapa fitur persegi yang simple yang disebut Haar wavelets. Sehingga hasil kalkulasi dalam skala pendeteksian akan sama berapapun ukuran dari gambar yang diproses [12].

Setelah melalu proses grayscale lalu gambar dihitung cintra integralnya dari pendeteksian ini yaitu dengan cara mengubah contoh gambar yang berdimensi 5x5 kedalam gambar integral. Yaitu dengan cara menjumlahkan tiap pixel dengan seluruh pixel yang terdapat di daerah sebelah kiri dan atas pixel tersebut, seperti yang terdapat pada contoh berikut :


(13)

1 1 1 1 1 1 2 3 4 5

1 1 1 1 1 2 4 6 8 10

1 1 1 1 1 3 6 9 12 15

1 1 1 1 1 4 8 12 16 20

1 1 1 1 1 5 10 15 20 25

Input Image Integral Image

Gambar 2.4 Input integral image

Dengan demikian, selanjutnya perhitungan dapat dilakukan dengan cara menjumlahkan 4 nilai pixel kedalam pixel yang telah dipilih. Berikut ilustrasi pada gambar :

Gambar 2.5 Ilustrasi posisi pixel pada gambar

Dimana D adalah nilai pixel kanan bawah, A adalah nilai pixel kiri atas, B adalah pixel atas dari pixel D dan C adalah nilai pixel kiri dari pixel D. Dengan rumusan seperti berkut : D = D + A - (B + C). Dengan integral image ini maka perhitungan Haar akan menjadi lebih cepat. Berikut adalah perbandingan perhitungan haar pada gambar tanpa integral dengan gambar integral, dimana total pixel hitam dikurangi dengan total pixel putih :


(14)

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Input Image

Gambar 2.6 Input Image

Sehingga nilai fitur Haar adalah sebagai berikut :

Nilai fiatur Haar = |(total pixel hitam)-(total pixel putih)|

=|(1+1+1+1+1+1+1+1)-(1+1+1+1+1+1+1+1)| = |8-8|

= 0

Gambar integral

1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 Integral Image

Gambar 2.7 Integral Image

Sehingga nilai fitur Haar adalah sebagai berikut :

Nilai fiatur Haar = |(total pixel hitam)-(total pixel putih)| =|(15+1-(3+5))-(25+3-(5+15))|

= |8-8| = 0


(15)

Kemudian hasil nilai tersebut akan menghasilkan fitur sub-window yang memiliki dua atau lebih kombinasi kotak hitam dan putih yang akan digunakan untuk tahap pendetaksian selanjutnya. Berikut contoh gambar untuk tipe-tipe dari kombinasi kotak :

Gambar 2.8 Tipe-tipe kombinasi kotak

Selanjutnya, setelah nilai fitur didapatkan Viola-Jones menggunakan metode AdaBoost machine-learning untuk mengetahui suatu fitur apakah merepresentasikan ada tidaknya wajah dalam suatu citra masukan. Metode ini menggabungkan banyak classifier lemah menjadi satu classifier kuat. Classifier adalah informasi ciri yang menandakan adanya suatu objek pada suatu citra misalnya ciri pada wajah. Sedangkan classifier lemah adalah suatu jawaban benar namun memiliki tingkat kebenaran yang kurang akurat, maka jika digabungkan classifier lemah tersebut akan menghasilkan suatu classifier kuat. Berikut adalah gambar dari metode AdaBoost yang digunakan untuk mendeteksi isyarat jari:


(16)

Gambar 2.9 Algoritma Adaboost

Gambar berikut menjelaskan penolakan ciri menggunakan Viola Jones Classifier, dimana ciri yang memiliki kemungkinan kecil sebagai isyarat jari akan ditolak terus menerus hingga Classifier akan menyisakan ciri isyarat jari yang asli pada citra gambar.

Tingkatan proses penyeleksian fitur diurutkan berdasarkan bobot terberat sampai teringan, sehingga dapat secepat mungkin untuk mengklasifikasikan bahwa tidak terdeteksi isyarat jari dalam citra masukan, pengurutan proses penyeleksian fitur ini disebut cascade classifier.


(17)

Gambar 2.10 Fitur tingkat pertama pada Metode Viola Jones

2.4 Model Isyarat Jari

Sistem ini menggunakan webcam yang mengambil citra pola jari tangan. Pola tersebut didapat dari bentuk gerakan jari telunjuk atau jempol. Jari tersebut

nantinya menunjuk ke suatu arah atas.

Gambar 2.11 Model Isyarat jari untuk perintah Play

Gambar 2.12 Model Isyarat jariuntuk perintah Previous


(18)

Gambar 2.14 Model Isyarat jariuntuk perintah Pause

Gambar 2.15 Model Isyarat jariuntuk perintah Stop

Arah yang ditunjukkan oleh bentuk pola jari ini akan menjadi dasar masukan untuk perintah pada aplikasi pemutar musik tanpa mengendalikan langsung dengan bantuan mouse. Pada dasarnya perintah aplikasi pemutar musik ada 5, yaitu perintah play, pause, next, previous dan stop. Hal ini agar pengguna tidak perlu menghafal bentuk isyarat jari. Pemrosesan citra pola jari dilakukan menggunakan bahasa C# dengan library OpenCV.

2.5 Pemrograman Berorientasi Objek

Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan terhadapnya[12]. Metodologi berorientasi objek merupakan suatu cara bagaimana sistem perangkat lunak dibangun melalui pendekatan objek secara sistematis. Metode berorientas objek didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas. Metode berorientasi objek meliputi rangkaian aktivitas analisis berorientasi objek,


(19)

perancangan berorientasi objek, pemrograman berorientasi objek, dan pengujian berorientasi objek.

Pada saat ini, metode berorientasi objek banyak dipilih karena metodologi lama banyak menimbulkan masalah seperti adanya kesulitan pada saat mentransformasi hasil dari satu tahap pengembangan ke tahap berikutnya, misalnya pada metode pendekatan terstruktur, jenis aplikasi yang dikembangkan saat ini berbeda dengan masa lalu. Aplikasi yang dikembangkan pada saat ini beragam dengan platform yang berbeda-beda, sehingga menimbulkan tuntutan kebutuhan metodologi pengembangan yang dapat mengakomodasi ke semua jenis aplikasi tersebut.

Keuntungan menggunakan metodologi berorientasi objek adalah sebagai berikut : 1. Meningkatkan produktivitas

Karena kelas dan objek yang ditemukan dalam suatu masalah masih dapat dipakai ulang untuk masalah lainnya yang melibatkan objek tersebut (reusable).

2. Kecepatan pengembangan

Karena sistem yang dibangun dengan baik dan benar pada saat analisis dan perancangan akan menyebabkan berkurangnya kesalahan pada saat pengkodean.

3. Kemudahan pemeliharaan

Karena dengan model objek, pola-pola yang cenderung tetap dan stabil dapat dipisahkan dan pola-pola yang mungkin sering berubah-ubah.

4. Adanya konsistensi

Karena sifat pewarisan dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengkodean.

5. Meningkatkan kualitas perangkat lunak

Karena pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya konsistensi pada saat pengembangannya, perangkat lunak yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.


(20)

2.5.1 Konsep Dasar Berorientasi Objek

Pendekatan berorientasi objek merupakan suatu teknik atau cara pendekatan dalam melihat permasalahan dan sistem (sistem perangkat lunak, sistem informasi, atau sistem lainnya)[12]. Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata.

Ada banyak cara untuk mengabstraksikan dan memodelkan objek-objek tersebut, mulai dan abstraksi objek, kelas, hubungan antar kelas sampai abstraksi sistem. Saat mengabstraksikan dan memodelkan objek, data dan proses-proses yang dipunyai oleh objek akan dienkapsulasi (dibungkus) menjadi suatu kesatuan. Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek dapat diterapkan pada tahap analisis, perancangan, pemrograman, dan pengujian perangkat lunak. Ada berbagai teknik yang dapat digunakan pada masing-masing tahap tersebut, dengan aturan dan alat bantu pemodelan tertentu.

Sistem berorientasi objek merupakan sebuah sistem yang dibangun dengan berdasarkan metode berorientasi objek adalah sebuah sistem yang komponennya dibungkus (dienkapsulasi) menjadi kelompok data dan fungsi. Setiap komponen dalam sistem tersebut dapat mewarisi atribut dan sifat dan komponen lainnya, dan dapat berinteraksi satu sama lain.

Berikut ini adalah beberapa konsep dasar yang harus dipahami tentang metodologi berorientasi objek:

1. Kelas (Class)

Kelas adalah sekumpulan objek-objek dengan karakteristik yang sama. Kelas merupakan definisi statis dan himpunan objek yang sama yang mungkin lahir atau diciptakan dan kelas tersebut. Sebuah kelas akan mempunyai sifat (atribut), kelakuan (metode/operasi), hubungan (relationship)dan arti. Suatu kelas dapat diturunkan dan kelas yang lain, dimana atribut dan kelas semula dapat diwariskan ke kelas yang baru. Secara teknis kelas adalah sebuah struktur dalam pembuatan perangkat lunak. Kelas merupakan bentuk struktur pada kode program yang menggunakan metodologi berorientasi objek.


(21)

2. Objek (object)

Objek adalah abstraksi dari sesuatu yang mewakili dunia nyata benda, manusia, satu organisasi, tempat, kejadian, struktur, status, atau hal-hal lain yang bersifat abstrak. Objek merupakan suatu entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada status objeknya. Objek mempunyai siklus hidup yaitu diciptakan, dimanipulasi, dan dihancurkan.

Secara teknis, sebuah kelas saat program dieksekusi maka akan dibuat sebuah objek. Objek dilihat darisegi teknis adalah elemen pada saat runtime yang akan diciptakan, dimanipulasi, dan dihancurkan saat eksekusi sehinga sebuah objek hanya ada saat sebuah program dieksekusi. Jika masih dalam bentuk kode, disebut sebagai kelas jadi pada saat runtime (saat sebuah program dieksekusi), yang kita punya adalah objek, di dalam teks program yang kita lihat hanyalah kelas.

3. Metode (method)

Operasi atau metode pada sebuah kelas hampir sama dengan fungsi atau prosedur pada metodologi struktural. Sebuah kelas boleh memiliki lebih dari satu metode atau operasi. Metode atau operasi yang berfungsi untuk memanipulasi objek itu sendiri. Operasi atau metode merupakan fungsi atau transformasi yang dapat dilakukan terhadap objek atau dilakukan oleh objek.

Metode atau operasi dapat berasal dari event, aktifitas atau aksi keadaan, fungsi, atau kelakuan dunia nyata. Contoh metode atau operasi misalnya Read, Write, Move, Copy, dan sebagainya.

4. Atribut (attribute)

Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas. Atribut dapat berupa nilai atau elemen-elemen data yang dimiliki oleh objek dalam kelas objek. Atribut dipunyai secara individual oleh sebuah objek, misalnya berat, jenis, nama, dan sebagainya.


(22)

5. Abstraksi (abstraction)

Prinsip untuk merepresentasikan dunia nyata yang kompleks menjadi satu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan permasalahan.

6. Enkapsulasi (encapsulation)

Pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara kerja-nya.

7. Pewarisan (inheritance)

Mekanisme yang memungkinkan satu objek mewarisi sebagian atau seluruh definisi dan objek lain sebagai bagian dan dirinya.

8. Antarmuka (interface)

Antarmuka sangat mirip dengan kelas, tapi tanpa atribut kelas dan memiliki metode yang dideklarasikan tanpa isi. Deklarasi metode pada sebuah interface dapat diimplementasikan oleh kelas lain.

9. Reusability

Pemanfaatan kembali objek yang sudah didefinisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut.

10.Generalisasi dan Spesialisasi

Menunjukkan hubungan antara kelas dan objek yang umum dengan kelas dan objek yang khusus. Misalnya kelas yang lebih umum (generalisasi) adalah kendaraan darat dan kelas khususnya (spesialisasi) adalah mobil, motor, dan kereta.

11.Komunikasi Antar objek

Komunikasi antar objek dilakukan lewat pesan (message) yang dikirim dari satu objek ke objek lainnya.

12.Polimorfisme (polymorphism)

Kemampuan suatu objek digunakan di banyak tujuan yang berbeda dengan nama yang sehingga menghemat baris program.


(23)

Package adalah sebuah kontainer atau kemasan yang dapat digunakan untuk mengelompokkan kelas-kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam package yang berbeda.

2.5.2 Pengenalan UML

Pada perkembangan teknologi perangkat lunak, diperlukan adanya bahasa yang digunakan untuk memodelkan perangkat lunak yang akan dibuat dan perlu adanya standarisasi agar orang di berbagai negara dapat mengerti pemodelan perangkat lunak. Seperti yang kita ketahui bahwa menyatukan banyak kepala untuk menceritakan sebuah ide dengan tujuan untuk memahami, merupakan hal yang tidak mudah, oleh karena itu diperlukan sebuah bahasa pemodelan perangkat lunak yang dapat dimengerti oleh banyak orang.

Banyak orang yang telah membuat bahasa pemodelan pembangunan perangkat lunak sesuai dengan teknologi pemrograman yang berkembang pada saat itu, misalnya yang sempat berkembang dan digunakan banyak pihak adalah Data Flow Diagram (DFD) untuk memodelkan perangkat lunak yang menggunakan pemrograman prosedural atau struktural, kemudian juga ada State Transition Diagram (STD) yang digunakan untuk memodelkan sistem real time (waktu nyata).

Pada perkembangan teknik pemrograman berorientasi objek, munculah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung.

UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataannya UML paling banyak digunakan pada metodologi berorientasi objek.


(24)

Seperti yang kita ketahui di dunia sistem informasi yang tidak dapat dibakukan, semua tergantung kebutuhan, lingkungan dan konteksnya. Begitu juga dengan perkembangan penggunaan UML bergantung pada level abstraksi penggunaannya. Jadi, belum tentu pandangan yang berbeda dalam penggunaan UML adalah suatu yang salah, tapi perlu ditelaah dimanakah UML digunakan dan hal apa yang ingin digambarkan. Secara analogi jika dengan bahasa yang digunakan sehari-hari, belum tentu penyampaian bahasa dengan puisi adalahhal yang salah. Sistem informasi bukanlah ilmu pasti, maka jika ada banyak perbedaan dan interpretasi di dalam bidang sistem informasi merupakan hal yang sangat wajar.

2.5.3 Diagram UML

Pada UML 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam 3 kategori. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar ini :

Gambar 2.16 Diagram UML

UML 2.3 Diagram Structure Diagrams Class Diagram Object Diagram Component Diagram Composite Structure Diagram Package Diagram Deployment Diagram Behavior Diagrams Use Case Diagram Activity Diagram State Machine Diagram Intraction Diagrams Sequence Diagram Communication Diagram Timing Diagram Interaction Overview Diagram


(25)

Berikut ini penjelasan singkat dari pembagian kategori tersebut :

1. Structure diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.

2. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.

3. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antarsubsistem pada suatu sistem.

2.5.4 Use Case Diagram

Use Case atau diagram Use Case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use Casemendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, Use Case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu.

Syarat penamaan pada Use Case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada Use Caseyaitu pendefinisian apa yang disebut aktor dan Use Case.

2.5.4.1 Aktor

Aktor adalah sesuatu (entitas) yang berhubungan dengan sistem dan berpartisipasi dalam use case. Aktor menggambarkan orang, sistem atau entitas eksternal yang secara khusus membangkitkan sistem dengan input atau masukan kejadian-kejadian, atau menerima sesuatu dari sistem. Aktor dilukiskan dengan peran yang mereka mainkan dalam use case, seperti Staff, Kurir dan lain-lain. Dalam use case diagram terdapat satu aktor pemulai atau initiator actor yang membangkitkan rangsangan awal terhadap sistem, dan mungkin sejumlah aktor


(26)

lain yang berpartisipasi atau participating actor. Akan sangat berguna untuk mengetahui siapa aktor pemulai tersebut.

<nama actor>

Gambar 2.17 Aktor

2.5.4.2 Use Case

Use case yang dibuat berdasarkan keperluan aktor merupakan gambaran dari “apa” yang dikerjakan oleh sistem, bukan “bagaimana” sistem mengerjakannya. Use case diberi nama yang menyatakan apa hal yang dicapai dari interaksinya dengan aktor.

<nama use case>

Gambar 2.18 Use case

2.5.4.3 Relationship

Relasi (relationship) digambarkan sebagai bentuk garis antara dua simbol dalam use case diagram. Relasi antara actor dan use case disebut juga dengan asosiasi (association). Asosiasi ini digunakan untuk menggambarkan bagaimana hubungan antara keduanya.

Relasi-relasi yang terjadi pada use case diagram bisa antara actor dengan use case atau use case dengan use case.


(27)

<nama actor>

<nama use case>

Gambar 2.19 Relationship

2.5.4.4 Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.

Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut ini :

1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan

2. Urutan atau pengelompokan tampilan dari sistem/user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan

sebuah pengujian yang perlu didefinisikan kasus ujinya

2.5.4.5 Sequence Diagram

Diagram sequence menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan diagram sequence maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Banyaknya diagram sequence yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada


(28)

diagram sequence sehingga semakin banyak use case yang didefinisikan maka diagram sequence yang harus dibuat juga semakin banyak.

Penomoran pesan berdasarkan urutan interaksi pesan. Penggambaran letak pesan harus berurutan, pesan yang lebih atas dari lainnya adalah pesan yang berjalan terlebih dahulu.

2.5.4.6 Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.

Kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsi-fungsi sesuai dengan kebutuhan sistem. Susunan struktur kelas yang baik pada diagram kelas ebaiknya memiliki jenis-jenis kelas berikut :

1) Kelas Main

Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan. 2) Kelas yang menangani tampilan sistem

Kelas yang mendefinisikan dan mengatur tampilan ke pemakai. 3) Kelas yang diambil dari pendefinisian usecase

Kelas yang menangani fungsi-fungsi yang harus ada diambil dari pendefinisian use case.

4) Kelas yang diambil dari pendefinisian data

Kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data.

Jenis-jenis kelas diatas juga dapat digabungkan satu sama lain sesuai dengan pertimbangan yang dianggap baik asalkan fungsi-fungsi yang sebaiknya ada pada struktur kelas tetap ada. Susunan kelas juga dapat ditambahkan kelas utilitas seperti koneksi ke basis data, membaca file teks, dan lain sebagainya sesuai kebutuhan.


(29)

Dalam mendefinisikan metode yang ada di dalam kelas perlu memperhatikan apa yang disebut dengan cohesion dan coupling. Cohesion adalah ukuran seberapa dekat keterkaitan instruksi di dalam sebuah metode terkait satu sama lain sedangkan coupling adalah ukuran seberapa dekat keterkaitan instruksi antara metode yang satu dengan metode yang lain dalam sebuah kelas. Sebagai aturan secara umum maka sebuah metode yang dibuat harus memiliki kadar choesion yang kuat dan kadar coupling yang lemah.

2.6 Open CV

OpenCV adalah sebuah library open source untuk visi komputer yang bisa didapatkan dari http://SourceForge.net/projects/opencvlibrary. Library ini ditulis dengan bahasa C dan C++, serta dapat dijalankan dengan Linux, Windows, dan Mac OS X. OpenCV dirancang untuk efisiensi komputasional dan dengan fokus yang kuat pada aplikasi real-time.

Salah satu tujuan OpenCV adalah untuk menyediakan infrastruktur visi komputer yang mudah digunakan yang membantu orang-orang dalam membangun aplikasiaplikasi visi yang sophisticated dengan cepat. Library pada OpenCV berisi lebih dari 500 fungsi yang menjangkau berbagai area dalam permasalahan visi, meliputi inspeksi produk pabrik, pencitraan medis, keamanan, antarmuka pengguna, kalibrasi kamera, visi stereo, dan robotika. Karena visi komputer dan pembelajaran mesin seringkali berkaitan, OpenCV juga memiliki Machine Learning Library (MLL). Sublibrary ini berfokus pada pengenalan pola statistik dan clustering. MLL sangat berguna untuk tugas-tugas visi yang berada dalam misi inti OpenCV, tetapi MLL cukup umum digunakan untuk permasalahan pembelajaran mesin.

Lisensi open source pada OpenCV telah distrukturisasi sehingga pengguna dapat membangun produk komersial menggunakan seluruh bagian pada OpenCV. Tidak ada kewajiban untuk meng-open source produk tersebut atau untuk memberikan peningkatan ke domain publik. Sebagian karena peraturan lisensi liberal ini, maka terdapat komunitas pengguna dalam jumlah yang sangat besar, termasuk di dalamnya orang-orang dari perusahaan besar (seperti IBM, Microsoft,


(30)

Intel, SONY, Siemens, dan Google) serta pusat-pusat penelitian (seperti Stanford, MIT, CMU, Cambridge, dan INRIA).

Sejak peluncuran pertamanya pada Januari 1999, OpenCV telah digunakan pada banyak aplikasi, produk, dan usaha-usaha penelitian. Aplikasi-aplikasi ini meliputi penggabungan citra pada peta web dan satelit, image scan alignment, pengurangan noise pada citra medis, sistem keamanan dan pendeteksian gangguan, sistem pengawasan otomatis dan keamanan, sistem inspeksi pabrik, kalibrasi kamera, aplikasi militer, serta kendaraan udara tak berawak, kendaraan darat, dan kendaraan bawah air. OpenCV juga telah digunakan untuk pengenalan suara dan musik, dimana teknik pengenalan visi diaplikasikan pada citra spektogram suara.

OpenCV adalah singkatan dari Open Computer Vision, yaitu library open source yang dikhususkan untuk melakukan pengolahan citra. Tujuannya adalah agar komputermempunyai kemampuan yang mirip dengan cara pengolahan visual pada manusia. Library ini dibuat untuk bahasa C/C++ sebagai optimasi aplikasi real-time. OpenCVmemiliki API (Application Programming Interface) untuk pengolahan tingkat tinggimaupun tingkat rendah. Pada OpenCV juga terdapat fungsi-fungsi siap pakai untuk meload,menyimpan, serta mengakuisisi gambar dan video.

Library OpenCVmemiliki fitur-fitur sebagai berikut:

1. Manipulasi data gambar (mengalokasi memori, melepaskan memori, menduplikasi gambar, mengatur serta mengkonversi gambar)

2. Image/Video I/O (bisa menggunakan kamera yang sudah didukung oleh library ini)

3. Manipulasi matriks dan vektor, serta terdapat juga routines aljabar linear (products, solvers, eigenvalues, SVD)

4. Pengolahan citra dasar (penapisan, pendeteksian tepi, sampling dan interpolasi, konversi warna, operasi morfologi, histogram, piramida citra)

5. Analisis structural 6. Kalibrasi kamera


(31)

7. Pendeteksian gerakan 8. Pengenalan objek

9. GUI dasar (menampilkan gambar/video, mengontrol mouse/keyboard, scrollbar)

10. Image labelling (garis, kerucut, poligon, penggambaran teks)

Libraries OpenCV menyediakan banyak algoritma visi komputer dasar, dengankeuntungan bahwa fungsi-fungsi tersebut telah diuji dengan baik dan digunakan oleh para peneliti di seluruh dunia. Libraries OpenCV juga menyediakan sebuah modul untuk pendeteksian objek yang menggunakan metode Viola Jones.

2.7 Microsoft Visual 2010

Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.

Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas .NET Framework). Selain itu, Visual Studio juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di atas .NET Compact Framework).


(32)

27 3.1 Analisis Masalah

Analisis masalah merupakan langkah awal dari suatu analisis sistem. Langkah ini diperlukan untuk mengetahui permasalahan apa saja yang terjadi di dalam sistem yang sedang berjalan. Setelah melakukan penelitian maka terdapat beberapa permasalahan yang timbul dalam implementasi metode viola and jones untuk petunjuk navigasi pada perintah play, pause, next, previous dan stop, yakni masih terdapat kesalahan dalam mengenali isyarat jari yang disebabkan oleh terdapatnya citra uji yang memiliki resolusi rendah sehingga gambar terlihat kurang halus serta faktor pencahayaan yang gelap pada citra gambar sehingga akan mempersulit sistem baik untuk pendeteksian maupun pengenalan isyarat jari pada citra gambar.

Dari permasalahan tersebut, maka perlu diterapkan suatu algoritma pendukung yang dapat menormalisasikan citra gambar yang diproses oleh sistem sehingga dapat memperkecil tingkat kesulitan yang terjadi pada sistem. Maka sebagai solusi untuk hal tersebut, algoritma haar-cascade akan dicoba untuk diterapkan pada sistem. Sehingga akan didapatkan hasil berupa seberapa besarkah dampak dari penerapan algoritma ini dalam menangani kesulitan yang terjadi pada sistem


(33)

3.1.1 Analisis Sistem

Pada bagian ini menjelaskan tentang metode yang akan diterapkan pada sistem. Terutama penjelasan untuk bagian-bagian pada algoritma pengolahan citra yang akan diterapkan pada sistem. Dalam sistem pengenalan Isyarat jari terdapat beberapa tahapan. Adapun tahapan sistem tersebut dapat dilihat pada gambar 3.1

Gambar Atau Video

Hasil pengenalan isyarat jari

Gambar 3.1 Proses utama sistem

1. Penangkapan/capture pada citra masukan

Merupakan langkah pengambilan data citra pada media masukan kedalam sistem 2. Grayscaling citra

Merupakan proses perubahan warna pada citra kedalam derajat keabuan 3. Pendeteksian Ciri jari menggunakan metode viola jones

Merupakan proses pendeteksian keberadaan jari. Pada tahap ini citra gambar akan diolah menggunakan metode pada algoritma viola-jones.

4. Pemisahan citra

Merupakan proses pemotongan/pemisahan objek pada citra 5. Pengenalan isyarat jari

Merupakan proses pengenalan/pencocokan dari isyarat jari yang telah disimpan didalam sistem dengan isyarat jari yang diujikaN

Capture

Grayscaling Pendeteksian ciri telapak tangan

Pemisahan citra

Pengenalan isyarat jari


(34)

3.1.1.1Penangkapan/capture Pada Citra Masukan

Penangkapan citra masukan yang dilakukan oleh sistem terhadap tipe citra yang dimasukan yaitu dapat berupa file gambar dengan menggunakan menu input atau juga dapat diambil secara langsung melalui kamera webcam. Untuk lebih jelasnya dapat dilihat pada gambar berikut :

Mengaktifkan tipe masukan pada sistem

Masukan data gambar / foto

Pengambilan gambar melalui webcam

Penangkapan citra masukan

Tampilkan citra gambar masukan hasil

proses penangkapan Citra

Citra masukan


(35)

3.1.1.2 Grayscaling Citra

Proses pengubahan nilai warna RGB pada setiap pixel citra gambar kedalam derajat keabuan. Untuk lebih jelasnya dapat dilihat pada alur diagram berikut :

Menginisialisasi nilai tiap pixel pada citra

Mengubah nilai rgb pada tiap pixel kedalam derajat

keabuan

Citra abu tersusun oleh nilai derajat kebuan

pada tiap pixel Citra

Citra abu

Gambar 3.3 Alur proses grayscaling citra

3.1.1.2 Pendeteksian Ciri jari menggunakan Metode Viola Jones

Proses pengolahan pada citra dengan metode yang telah ditentukan sebelum dilakukan proses selanjutnya terhadap citra. Untuk lebih lengkapnya dapat dilihat pada gambar alur berikut :


(36)

Citra abu

Citra Baru

Gambar 3.4 Alur proses pre-processing citra dengan Metode Viola Jones

3.1.1.3Pendeteksian Isyarat Jari

Proses untuk melakukan pencarian objek isyarat jari pada citra gambar kemudian objek isyarat jari pada gambar akan diberi tanda. Untuk alurnya dapat dilihat pada gambar 3.5.

Citra gambar

Perintah isyarat jari (play, pause, previou, next dan stop) Gambar 3.5 Alur proses pendeteksian isyarat jari

Hitung nilai fitur haar dengan adaboostt

Seleksi fitur haar dengan adaboost

Melakukan deteksi isyarat jari pada gambar

Melakukan penandaan pada daerah objek isyarat jari yg terdeteksi

Menampilkan hasil dari pendeteksian isyarat jari


(37)

3.1.2 Analisis Masukan

Data masukan yang digunakan berupa citra gambar. Citra gambar yang dimasukan bisa berupa file gambar/foto atau juga citra gambar dapat diambil melalui kamera pada komputer yaitu kamera webcam. Maka setelah citra gambar dimasukan pada sistem maka akan dilakukan proses dari tahapan-tahapan yang telah diketahui sebelumnya. Contoh citra gambar yang dapat digunakan dapat dilihat pada gambar berikut :

Gambar 3.6 citra masukan

Tahap ini dilakukan untuk mengubah citra warna menjadi citra greyscale, hal ini digunakan untuk menyederhanakan model citra. Citra warna terdiri dari 3 layer matrik yaitu R-layer, G-layer, B-layer. Sebagai contoh, misalkan citra berukuran 8x8 pixel dengan nilai-nilai R, G, dan B sebagai berikut:

Gambar 3.7 Matrik (R, G dan B)

Jadi dalam proses ini akan mengubah 3 layer matrik citra berwarna menjadi 1 layer matrik grayscale dan akan menghasilkan citra grayscale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan. Pada


(38)

dasarnya proses grayscaling dilakukan dengan meratakan nilai pixel dari 3 nilai R, G, dan B dengan menggunakan persamaan berikut:

Grayscale = 0.299*R + 0.587*G + 0.114*B ...(3-1)

Contoh untuk menentukan nilai grayscale diilustrasikan dengan nilai-nilai R, G, dan B pada gambar 3.3, untuk konversi warna menjadi grayscale digunakan persamaan 3-1. Misalkan untuk pixel di koordinat (0,0) perhitungannya sebagai berikut:

Grayscale = (0,299*84) + (0,587*78) + (0,114*44) = 25,12 + 45,79 + 5,02

= 75,93

Didapatkan hasil perhitungan untuk koordinat (0,0) = 75,93. Setelah perhitungan tersebut dilakukan untuk semua koordinat, maka dari hasil perhitungan grayscale dilakukan rounding (pembulatan) nilai ke paling dekat. Jadi hasil pembulatan dari koordinat untuk (0,0) = 76. Sehingga didapatkan citra grayscale sebagai berikut:

(i,j) 0 1 2 3 4 5 6 7

0 76 74 93 97 108 120 140 163 1 73 72 82 68 105 118 136 155 2 75 69 67 96 114 132 141 162 3 78 78 92 106 119 136 146 165 4 80 84 101 116 129 140 149 171 5 93 89 107 123 140 149 171 177 6 92 96 114 134 146 156 170 180 7 106 114 124 144 161 170 181 194

Gambar 3.8 Matriks Grayscale

Citra yang berwarna akan digantikan dengan citra grayscale sesuai dengan nilai yang sudah didapatkan melalui perhitungan di atas. Berikut adalah citra grayscale yang dihasilkan.


(39)

(40)

3.1.14 Analisis Metode Viola Jones Pada pengenalan isyarat jari Berikut adalah Alur Algoritma Viola and Jones :

Gambar 3.10 Metode Viola Jones

3.1.2.1.1 Scan Per Sub window

Kemudian setelah proses penormalisasian gambar menggunakan grayscale selesai dilakukan maka tahapan selanjutnya adalah proses pendeteksian objek wajah yang terkandung pada citra gambar masukan dengan


(41)

menggunakan library Haarcascade Frontal hand, yaitu suatu library berupa file templet berekstensi xml. Library ini mengadopsi metode Viola-Jones yang memiliki fungsi untuk mendeteksi objek berupa isyarat jari dengan posisi tegak lurus kedepan. File templet ini memiliki karakteristik sebagai berikut :

1. Menggunakan sub-window citra dengan dimensi 20x20

2. Memiliki 47 tahapan (stage 0 sampai stage 46) cascade classifier 3. Memiliki 2133 weak classifier (tree)

Berikut ini adalah potongan yang diambil dari sebagian kode file templet play.xml :

<?xml version="1.0"?> <opencv_storage>

<output type_id="opencv-haar-classifier"> <size>

24 24</size> <stages> <_> <trees> <_> <_> <feature> <rects> <_>

6 8 9 15 -1.</_> <_>

9 13 3 5 9.</_></rects> <tilted>0</tilted></feature>

<threshold>-0.0847022831439972</threshold> <left_val>1.</left_val>


(42)

<stage_threshold>1.</stage_threshold> <parent>-1</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

10 6 3 14 -1.</_> <_>

10 13 3 7 2.</_></rects> <tilted>0</tilted></feature> <threshold>-0.0366368703544140</threshold> <left_val>0.9285715222358704</left_val> <right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.9285715222358704</stage_threshold> <parent>0</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

11 20 12 2 -1.</_> <_>

14 20 6 2 2.</_></rects> <tilted>0</tilted></feature>


(43)

<threshold>-9.4083501026034355e-003</threshold> <left_val>1.</left_val> <right_val>-0.9047629833221436</right_val></_></_> <_> <_> <feature> <rects> <_>

11 19 12 3 -1.</_> <_>

14 19 6 3 2.</_></rects> <tilted>0</tilted></feature> <threshold>-5.6348210200667381e-003</threshold> <left_val>0.8808284997940064</left_val> <right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>-0.0239344798028469</stage_threshold> <parent>1</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

0 11 21 3 -1.</_> <_>

7 12 7 1 9.</_></rects> <tilted>0</tilted></feature>

<threshold>-0.0456034094095230</threshold> <left_val>0.9164927005767822</left_val>


(44)

<right_val>-0.7304499149322510</right_val></_></_> <_> <_> <feature> <rects> <_>

0 1 8 1 -1.</_> <_>

2 1 4 1 2.</_></rects> <tilted>0</tilted></feature> <threshold>7.1512709837406874e-004</threshold> <left_val>0.7968924045562744</left_val> <right_val>-0.9208245277404785</right_val></_></_></trees> <stage_threshold>-4.3318271636962891e-003</stage_threshold> <parent>2</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

10 14 8 2 -1.</_> <_>

10 14 8 1 2.</_></rects> <tilted>1</tilted></feature>

<threshold>-2.0649400539696217e-003</threshold> <left_val>-0.8975331783294678</left_val>

<right_val>0.8553348183631897</right_val></_></_> <_>


(45)

<_> <feature> <rects> <_>

14 19 3 2 -1.</_> <_>

14 19 3 1 2.</_></rects> <tilted>1</tilted></feature> <threshold>-7.1654270868748426e-004</threshold> <left_val>-1.</left_val> <right_val>0.7942516803741455</right_val></_></_></trees> <stage_threshold>-0.1032814979553223</stage_threshold> <parent>3</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

19 17 1 4 -1.</_> <_>

18 18 1 2 2.</_></rects> <tilted>1</tilted></feature> <threshold>-4.7855640877969563e-004</threshold> <left_val>-1.</left_val> <right_val>0.7419356107711792</right_val></_></_></trees> <stage_threshold>0.7419356107711792</stage_threshold> <parent>4</parent> <next>-1</next></_>


(46)

<_> <trees> <_> <_> <feature> <rects> <_>

14 14 9 9 -1.</_> <_>

17 14 3 9 3.</_></rects> <tilted>0</tilted></feature> <threshold>-0.0270329192280769</threshold> <left_val>0.7419356107711792</left_val> <right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.7419356107711792</stage_threshold> <parent>5</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

14 16 2 1 -1.</_> <_>

15 16 1 1 2.</_></rects> <tilted>0</tilted></feature>

<threshold>2.2036230802768841e-005</threshold> <left_val>-1.</left_val>


(47)

<stage_threshold>0.8620691895484924</stage_threshold> <parent>6</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

7 14 3 6 -1.</_> <_>

8 16 1 2 9.</_></rects> <tilted>0</tilted></feature> <threshold>-2.3395009338855743e-003</threshold> <left_val>0.7419356107711792</left_val> <right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.7419356107711792</stage_threshold> <parent>7</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

14 1 3 4 -1.</_> <_>

14 2 3 2 2.</_></rects> <tilted>0</tilted></feature>


(48)

<threshold>-1.2086000060662627e-003</threshold> <left_val>0.8479086756706238</left_val> <right_val>-0.8050550818443298</right_val></_></_> <_> <_> <feature> <rects> <_>

9 7 8 1 -1.</_> <_>

9 7 4 1 2.</_></rects> <tilted>1</tilted></feature> <threshold>0.0135317100211978</threshold> <left_val>-0.8523197770118713</left_val> <right_val>0.8387230038642883</right_val></_></_></trees> <stage_threshold>-4.4111008755862713e-003</stage_threshold> <parent>8</parent> <next>-1</next></_> <_> <trees> <_> <_> <feature> <rects> <_>

5 9 2 4 -1.</_> <_>

5 9 2 2 2.</_></rects> <tilted>1</tilted></feature>

<threshold>8.4033068269491196e-003</threshold> <left_val>0.6363639235496521</left_val>


(49)

<right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.6363639235496521</stage_threshold>

<parent>9</parent> <next>-1</next></_> <_>

<trees> <_> <_> <feature> <rects> <_>

11 19 6 4 -1.</_> <_>

13 19 2 4 3.</_></rects> <tilted>0</tilted></feature>

<threshold>-1.0043339570984244e-003</threshold> <left_val>-1.</left_val>

<right_val>0.8000001907348633</right_val></_></_></trees> <stage_threshold>0.8000001907348633</stage_threshold>

<parent>10</parent>

<next>-1</next></_></stages></output> </opencv_storage>


(50)

Pada awal kode, tertera <size> yang mendefinisikan ukuran sub-window yang digunakan yaitu 20x20. Hal ini menunjukan bahwa setiap citra masukan akan dibentuk menjadi sub-window berukuran 20x20 sebelum masuk ke tahapan deteksi isyarat jari. Gambar 3.20 akan menjelaskan pembentukan sub-window 20x20.

Gambar 3.12 Pembentukan sub-window

Setelah sub-window terbentuk tahap selanjutnya adalah tahap klasifikasi yang melalui tingkatan-tingkatan (stage) cascade classifier dan tree sebagai weak classifier. Didalam tree terdapat satu node yaitu root node, yang isinya berbeda-beda disetiap tree. Didalam node ini, terdapat fitur Haar (rects), nilai ambang (treshold) proses deteksi isyarat jari, nilai batas minimum (left_val) dan nilai batas maksimum (right_val) yang harus dipenuhi agar sub-window lolos ke tahap selanjutnya. Untuk dapat melewati suatu tahapan sub-window harus berhasil melewati setiap tree didalam suatu tahapan. Perhitungan nilai fitur dilakukan juga pada tree. Sebagai contoh, berikut ini adalah perhitungan fitur haar (rects) pada suatu tree.

<rects> <_>


(51)

<_>

13 19 2 4 3.</_></rects>

Angka pada kolom pertama dan kedua menunjukan posisi piksel yang akan diklasifikasikan (x,y) pada sub-window. Kolom ketiga dan keempat menunjukan lebar dan tinggi fitur. Sedangkan, angka pada kolom terakhir adalah konstanta yang akan dikalikan ke setiap fitur persegi tersebut, dimana angka ini berfungsi untuk menentukan piksel hitam dan piksel putih suatu fitur, dengan ketentuan jika nilai suatu piksel dalam suatu piksel < 0, maka piksel tersebut masuk ke daerah piksel hitam, jika tidak piksel tersebut masuk ke daerah putih.

Gambar 3.13 Contoh fitur Haar

Gambar tersebut menjelaskan gambaran fitur dalam sub-window pada kasus fitur Haar (rects) diatas. Sesuai dengan gambar tersebut, pixel hitam adalah piksel dengan nilai fitur = -1, sedangkan piksel putih adalah piksel dengan nilai fitur = (-1+2) = 1. Setelah daerah piksel hitam dan piksel putih ditentukan, langkah selanjutnya adalah menghitung nilai fitur Haar keseluruhan caranya dengan mengurangi jumlah nilai fitur pada piksel area hitam dengan jumlah nilai


(52)

fitur pada piksel area putih. Hasilnya akan dibandingkan dengan nilai yang tertera pada treshold pendeteksian wajah, jika nilainya dibawah treshold proses pendeteksian isyarat jari maka fitur dianggap tidak ada, jika diatas treshold pendeteksian isyarat jari fitur akan dilanjutkan ke left_val dan right_val. Apabila, fitur tersebut memiliki nilai diantara left_val dan right_val, maka sub-window dinyatakan berhasil melewati tree tersebut.

Untuk dapat melanjutkan ke tingkat classifier selanjutnya, seluruh sub-window harus dapat melewati seluruh tree dalam suatu tingkat, jika tidak maka secara otomatis, sub-window akan dieleminasi dan dianggap bukan wajah. Jika, berhasil melalui keseluruhan tingkat classifier maka sub-window dianggap sebagai isyarat jari.

Setelah isyarat jari terdeteksi, maka citra isyarat jari tersebut akan dipisahkan dari keselruhan citra gambar. Setelah itu citra isyarat jari akan diubah ukurannya sesuai dengan ukuran citra isyarat jari yang tersimpan pada sistem kemudian kedua citra isyarat jari tersebut akan dicocokan menggunakan metode Metode viola Jones.

3.1.1.2.2 Seleksi Fitur haar dengan AdaBoost

Metode machine learning yang disebut AdaBoost digunakan dalam memilih fitur Haar yang spesifik. Hal ini dilakukan dengan cara mengevaluasi setiap fitur terhadap data latih dengan menggunakan nilai dari fitur tersebut. Algoritma Adaboost adalah algoritma yang berusaha membangun strong classifier dengan mengkombinasikan sejumlah simple atau weak classifier secara linier. Stage classifier dibangun dengan menggunakan algoritma adaptive-boost (AdaBoost). Di dalam stage classifier terdapat proses pengklasifikasian fitur objek menggunakan algoritma AdaBoost. Algoritma AdaBoost digunakan untuk meningkatkan performa pengklasifikasian fitur.

Algoritma tersebut mengkombinasikan performance banyak weak classifier untuk menghasilkan strong classifier. Weak classifier dalam hal ini adalah nilai dari haar-like feature. Alur proses pendeteksian pada Haar cascade


(53)

classifier dapat dilihat pada Gambar 3.33.

Gambar 3.14 Alur proses Haar cascade classifier

Algoritma AdaBoost yang dipakai untuk pengklasifikasian adalah sebagai berikut:

Bobot awal , = , , = (3.4)

Dengan m = jumlah gambar negatif dengan yi = 0 untuk gambar negatif

Dengan l = jumlah gambar positif dengan yi = 1 untuk gambar positif.

Contoh : l = 5, m= 10

, = × = 0.05, , = ×� = 0.1 (3.5)

Untuk t = 1, 2, 3…T, dimana t adalah iterasi ke t untuk gambar positif. Untuk j = 1, 2, 3…J, dimana j adalah iterasi ke j untuk gambar positif. ht (x) merupakan nilai fitur gambar positif.

hj (x) merupakan nilai fitur gambar positif.

Untuk mendapatkan nilai error rate setiap weak classifier. Maka untuk setiap fitur dilakukan proses sebagai berikut:

Untuk gambar positif : = (∑� �, )| − | (3.6) Untuk gambar negatif : = (∑� , )| − | (3.7)


(54)

Diberikan citra positif (8x8) piksel yang memiliki nilai-nilai sebagai berikut:

Gambar 3.15 Contoh citra Positif 1-5

1. Citra positif ke-1

21 20 19 18 18 18 21 22 20 18 21 21 24 25 26 27 23 23 24 25 27 28 29 27 23 22 26 27 28 29 30 28 23 23 26 27 29 30 31 30 23 24 25 25 27 31 32 29 23 24 24 26 28 29 30 28 23 25 24 26 28 28 30 31 Gambar 3.16 Citra positif 1

Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |

hh(x) = | (26+21-23-18)-(31+18-26-22) |

= 5

Maka nilai error rate yang didapatkan adalah sebagai berikut : ht= (0,1) | 5 - 1| = 0,4|


(55)

2. Citra positif ke-2

95 88 84 76 76 81 91 103 90 80 70 67 63 85 26 27 71 76 24 59 27 28 29 27 89 70 58 60 28 78 60 70 92 80 75 70 61 55 51 50 93 80 79 78 74 71 71 75 96 93 94 86 81 83 82 88 100 103 95 88 92 92 91 94 Gambar 3.17 Citra positif 2

Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |

hh(x) = (88+95-100-76)-(94+76-88-103)

= 28

Maka nilai error rate yang didapatkan adalah sebagai berikut : ht=(0,1) | 28 - 1| =2,7


(56)

3. Citra positif ke-3

69 88 84 45 76 81 91 32 90 80 70 67 63 85 26 27 71 76 24 59 27 28 29 27 89 70 58 60 28 78 60 70 92 80 75 70 61 55 51 50 93 80 79 78 74 71 71 75 96 93 94 86 81 83 82 88 98 103 95 105 92 92 91 56

Gambar 3.18 Citra Positif 3

Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |

hh(x)= (105+69-98-45)-(56+45-105-32) = 67

Maka nilai error rate yang didapatkan adalah sebagai berikut : ht=(0,1)|67-1|=6,6

4. Citra positif ke-4

72 88 84 57 76 81 91 58 90 80 70 67 63 85 26 27 71 76 24 59 27 28 29 27 89 70 58 60 28 78 60 70 92 80 75 70 61 55 51 50 93 80 79 78 74 71 71 75 96 93 94 86 81 83 82 88 58 103 95 35 92 92 91 35


(57)

Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |

hh(x)= | (35+72-58-57)-(35+57-35-58) ||

= 7

Maka nilai error rate yang didapatkan adalah sebagai berikut : ht =(0,1) | 7- 1| = 0,6

5. Citra positif ke-5

20 20 19 24 18 18 21 25 20 18 21 21 24 25 26 27 23 23 24 25 27 28 29 27 23 22 26 27 28 29 30 28 23 23 26 27 29 30 31 30 23 24 25 25 27 31 32 29 23 24 24 26 28 29 30 28 18 25 24 20 28 28 30 23

Gambar 3.20 Citra Positif 5

Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |

hh(x)= (20+20-18-24)-(23+24-20-25)= 4

Maka ht=(0,1) | 4 - 1| =0,3

Jadi:

Error rate masing-masing citra adalah 0,4; 2,7; 6,6; dan 0,3. Sehingga untuk memudahkan pemilihan fitur yang terbaik digunakan klasifikasi data training menggunakan error rate terkecil yang telah didapatkan yaitu 0,3 dimana

�� = − ∈�∈� = − ,, = 0, 428 Update bobot : ��+ , = ��, .�


(58)

Maka bobot setelah iterasi 1 : � , = 0,1 x 0, 428 = 0, 0428

∈�= , + , | − | = ,

�� = − ,, = 0, 7494

Maka bobot setelah iterasi 2 : � , = 0,0428 x 0,7494 = 0, 032

∈�= , + , + , | − | = ,

�� = − ,, = 1, 1026

Maka bobot setelah iterasi 3 : � , = 0,032 x 1,1026 = 0, 035

∈�= , + , + , + , | − | = ,

�� = − ,, = 1,67

Maka bobot setelah iterasi 4 : � , = 0,035 x 1,67 = 0,058

∈�= , + , + , + , + , | − | = ,

�� = − ,, = 4,076

Maka bobot setelah iterasi 5 : � , = 0,058 x 4,076 = 0,236

∈�= , + , + , + , + , + , | − | = ,

�� = − ,, = -2,957

Maka bobot setelah iterasi 6 : � , = 0,236 x (-2,957) = -0,697

Diberikan citra Negatif (8x8) piksel yang memiliki nilai-nilai sebagai berikut: H(x) = { ∑�=( ≥ ∑ ∝� (3.8)

Otherwise Dimana :

∝ = �

� ∝ = � �� (3.9)

Jika posisi H(x) = Ketentuan 0 maka citra tersebut merupakn bukan objek H(x) = Strong Classifier atau kelasifikasi yang menyatakan objek atau bukan αj = Tingkat pembelajaran gambar positif. αt = Tingkat pembelajaran gambar negatif.

βj=Nilai bobot setelah error rate pada gambar negatif βt= Nilai bobot setelah error rate pada gambar positif


(59)

Ht = weak atau basic classifiers (awal dari klasifikasi) gambar positif.

Sehingga Diberikan citra negatif (8x8) piksel yang memiliki nilai-nilai sebagai berikut:

Gambar 3.21 Contoh citra Negatif 1-2

1. Citra negatif ke-1

119 117 116 115 114 112 110 100 118 117 116 115 113 111 109 104 116 114 112 111 103 110 116 120 114 116 117 124 111 113 119 113 102 103 104 105 134 104 114 114 150 144 111 102 123 103 117 116 160 133 122 109 142 102 112 115

104 104 102 101 99 95 96 93


(60)

Dengan nilai fitur :

hj(x)= (120 + 77 – 162 -25)-(100 + 25 - 120- 52)= 52

Maka ∈j=(0,05) | 57 – 0 | =2,8 �� = −∈∈ maka �� = − ,, = -1,54 Perbaharui bobot : ��+ , = ��,. �

Maka bobot setelah iterasi 1 : � , = 0,05× − , = − ,

jika bobot setelah iterasi ke n jumlahnya < 0 maka iterasi berhenti. βj yang digunakan untuk mencari H(x) mengunakan pada citra negatif yang nilai βj<0

Untuk salah bernilai = 0 Maka: H(x)= log

, × ≥ log , = -25,99 ≥ 0,184

Karena -25,99 ≥ , itu bernilai salah jadi citra bukan merupakan objek 2. Citra negatif ke-2

119 117 116 115 114 112 110 100 118 117 116 115 113 111 109 104 116 114 112 111 103 110 116 120 114 116 117 124 111 113 119 113 102 103 104 105 134 104 114 114 150 144 111 102 123 103 117 116 160 133 122 109 142 102 112 115 104 104 102 101 99 95 96 93


(61)

Gambar 3.23 Citra Negatif 2

Dengan nilai fitur :

hj (x) = (101+119-104-115)-(93+115-101-100) = 6

Maka ∈j=(0,05) | 6 – 0 | =0,3 � = −∈∈ maka � = ,

− , = 0,428 Perbaharui bobot : ��+ , = ��,. �

Maka bobot setelah iterasi 1 : � , = 0,05× , = ,

t= (0,05 + 0,021) | 6 – 0 | =0,426 ; � = ,

− , = 0,742 Maka bobot setelah iterasi 2 : � , = 0,021× , = ,

t= (0,05 + 0,021+0,0155) | 6 – 0 | =0,519 ; � = ,

− , = 1,079 Maka bobot setelah iterasi 3 : � , = 0,0155× , = ,

t= (0,05 + 0,021 + 0,0155 + 0,0167) | 6 – 0 | =0,619 ; � = ,

− , = 1,624 Maka bobot setelah iterasi 4 : � , = 0,0167× , = ,

t= (0,05 + 0,021 + 0,0155 + 0,0167 + 0,0271) | 6 – 0 | =0,7818 ; � = ,

− , = 3,582

Maka bobot setelah iterasi 5 : � , = 0,058× , = ,

t= (0,05 + 0,021 + 0,0155 + 0,0167 + 0,0271+ 0,0970) | 6 – 0 | =1,364 ; � =

,

− , = -3,747

Maka bobot setelah iterasi 6 : � , = 0,0971× − , = − , Maka :


(62)

H(x)=(�og

, + �og , + �og , + �og , + �og , × ≥

�og , + �og , + �og , + �og , + �og ,

= 0,368 + 0,129 – 0,033 – 0,210 – 0,554 ≥ (0,368 + 0,125 – 0,042 – 0,223 – 0,610) = -0,3 ≥ -0,191

Maka citra tersebut bukan berupa gambar positif.

Jadi semakain banyak interasi yang bisa dilakukan oleh sebuah gambar positif dan negatif maka semakain besak kemungkinan untuk objek ditemukan. Dari analisa diatas dapat diambil kesimpulan, bahwa tiga faktor yang mempegaruhi kecepatan dan tingkat akurasi dalam pendeteksian, faktor - faktor tersebut antara lain:

1. jumlah dari tahapan classifier.

2. Jumlah semakin banyak gambar positif dimasukan semakin akurat pendeteksianya.

3. Jumlah dari data latih yang dimasukkan

3.2 Analisis Kebutuhan Non-Fungsional

Adapun kebutuhan non-fungsional untuk menjalankan aplikasi ini meliputi kebutuhan perangkat keras, kebutuhan perangkat lunak dan pengguna sistem yang akan memakai aplikasi. Analisis kebutuhan non-fungsional bertujuan agar aplikasi yang dibangun dapat digunakan sesuai dengan kebutuhan pengguna aplikasi dalam mencari informasi yang dibutuhkan.

3.2.1 Analisis Kebutuhan Perangkat keras

Spesifikasi kebutuhan perangkat keras komputer yang dibutuhkan untuk membangun aplikasi dapat dilihat pada tabel 3.3


(63)

Tabel 3.1 Spesifikasi Kebutuhan Perangkat Keras Komputer No Perangkat Keras Spesifikasi

1 Processor Kecepatan minimun 2.2 GHz

2 VGA 500 MB

3 Memori RAM 2 GB DDR3

4 Keyboard Standart Port USB

5 Mouse Optical Mouse USB

6 Monitor LED

7 Webcam Standart Port USB

8 Harddisk 320

3.2.2 Analisis Kebutuhan Perangkat Lunak

Spesifikasi perangkat lunak komputer yang dibutuhkan untuk membangun aplikasi dapat dilihat pada tabel 3.4

Tabel 3.2 Spesifikasi Kebutuhan Perangkat Lunak Komputer No Perangkat Lunak Spesifikasi

1 Sistem Operasi Microsoft Windows 7 atau 8 32bit 2 Program a. Mirosoft Visual Studio 2010

b. Microsoft Visio 2010 c. Library OpenCV

3.3 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional bertujuan untuk menganalisis proses yang akan diterapkan dalam sistem dan menjelaskan kebutuhan yang diprlukan agar aplikasi dapat berjalan dengan baik. Pemodelan yang akan digunakan akan dibuat mengunakan Microsoft Visio 2010.


(64)

3.3.1 Use case

Use case diagram merupakan pemodelan yang menunjukan interaksi antara sistem dan lingkungannya. Use case diagram memberikan gambaran yang cukup sederhana dari interaksi-interaksi yang terlibat. Berikut adalah perancangan proses-proses pada sistem pengenalan isyarat jari pada aplikasi pemutar musik yang digambarkan dengan use case diagram :

Gambar 3.24 Gambar Use Case

Use case terdiri dari tiga bagian yaitu definisi actor, definisi use case, dan skenario use case.

3.3.1.1Identifikasi Actor

Actor yaitu pihak yang mengakses use case dengan berperan sebagai pengguna yang akan menggunakan sistem.

Tabel 3.3 Aktor Use Case

No Aktor Deskripsi

A-01 User Merupakan aktor dari aplikasi yang dibangun atau pengguna aplikasi.


(65)

3.3.1.2 Identifikasi Use Case

Berikut tabel Identifikasi Use Case yang terdapat pada aplikasi: Tabel 3.4 Use Case Aktor

Use Case Aplikasi User

No Use Case Deskripsi

UC-01 Start Camera Fungsional untuk mengaktifkan kamera

UC-02 Open File Fungsional untuk memungkinkan pengguna memilih lagu yang sudah tersimpan di file directory

3.3.2 Skenario Use Case

Skenario use case mendeskripsikan urutan langkah-langkah dalam proses bisnis, baik dilakukan aktor terhadap sistem maupun yang dilakukan oleh sistem terhadap aktor.

3.3.2.1Skenario Use start camera

Skenario use case start camera gambar dapat dilihat pada tabel 3.5. Tabel 3.5 Skenario Use Case Start Camera Identifikasi

Nama Use Case User Start Camera

Aktor User

Tujuan Digunakan untuk menyiapkan

kamera webcam

Keadaan Awal Sistem menampilkan tampilan utama Skenario Utama

Aksi Aktor Reaksi Sistem

1. Menampilkan Menu Utama 2. Pilih button start pada


(66)

aplikasi

3. Menyimpan gambar

3.3.2.2Skenario Use Case Open file musik

Skenario use case open file musik gambar dapat dilihat pada tabel 3.6. Tabel 3.6 Skenario Use Case open file musik Identifikasi

Nama Use Case User Open File musik

Aktor User

Tujuan Proses untuk memilih lagu di

directori

Keadaan Awal Sistem menampilkan directori file Skenario Utama

Aksi Aktor Reaksi Sistem

1. Menampilkan directori file

3.3.3 Activity Diagram

Activity diagram digunakan untuk menggambarkan alur rangkaian proses yang terjadi di dalam sistem aplikasi serta menjelaskan bagaimana sebuah use case terjadi atau dipicu dari use case yang lain.


(67)

(68)

(69)

3.3.4 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan disekitar sistem (termasuk pengguna, display, dan sebagainya) berupa informasi yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Berikut sequence diagram pada sistem :


(70)

Gambar 3.28 Sequence Diagram Alir Open file musik

3.3.5 Class Diagram

Class Diagram menggambarkan struktur dan hubungan antar objek- objek yang ada pada sistem. Struktur itu meliputi atribut-atribut dan metode-metode yang ada pada masing-masing class. Hubungannya dari masing-masing class yang ada tersebut digambarkan seperti pada gambar dibawah.


(1)

iii

KATA PENGANTAR

Assalamualaikum Warahmatullahi Wabarakatuh.

Alhamdulillahi Robbil ’Alamin, puji dan syukur penulis panjatkan

kehadirat Allah Subhanahu wa Ta'alaatas berkat rahmat serta kasih-Nya sehingga penulis dapat menyelesaikan skripsi inidengan judul “Implementasi Metode Viola and Jones Untuk Petunjuk Navigasi Pada Perintah Play, Pause, Next, Previous,

dan Stop. Penulisan skripsi ini bertujuan untuk memenuhi sebagian syarat memperoleh gelar sarjana pendidikan bagi mahasiswa program S1 pada program studi Teknik Informatika Universitas Komputer Indonesia, Bandung. Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh sebab itu penulis mengharapkan kritik dan saran yang bersifat membangun dari semua pihak demi kesempurnaan skripsi ini. Selesainya skripsi ini tidak terlepas dari bantuan berbagai pihak, sehinggapada kesempatan ini penulis dengan segala kerendahan hati dan penuh rasa hormat mengucapkan terima kasih yang sebesar-besarnya kepada semua pihakyang telah memberikan bantuan moril maupun materil secara langsung maupun tidak langsung kepada penulis dalam penyusunan skripsi ini hingga selesai, terutama kepada yang saya hormati :

1. Yang tercinta Ibunda (Used Fahmi) dan Ayahanda (Raflis) yang telah memberikan dorongan, mencurahkan segenap perhatian, kasih sayang dan

do’a serta pengorbanannya untuk keberhasilan penulis dan bantuannya

baik dari segi moril maupun materil.

2. Bapak Ir. Eddy Suryanto Soegoto, M.Sc., selaku Rektor UNIKOM.

3. Bapak Irawan Afrianto, S.T., M.T., selaku Ketua Program Studi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, UNIKOM.

4. Ibu Utami Dewi, S.Kom., M.Kom., selaku dosen wali IF11/2010 yang telah memberikan saran, arahan dan bimbingan kepada penulis.

5. Bapak Galih Hermawan, S.Kom., M.T., selaku dosen pembimbing dan penguji dua yang telah memberikan saran, arahan, dorongan dan bimbingan kepada penulis dalam menyelesaikan skripsi ini.


(2)

iv

6. Bapak Eko Budi Setiawan, S.Kom., M.T., selaku dosen penguji satu yang telah memberikan saran, arahan dan bimbingan kepada penulis dalam menyelesaikan skripsi ini.

7. Ibu Ednawati Rainarli, S.Si., M.Si., selaku dosen penguji tiga. Terima kasih karena telah banyak meluangkan waktu untuk memberikan bimbingan dan saran kepada penulis dalam menyelesaikan skripsi ini. 8. Seluruh Dosen pengajar dan staf UNIKOM yang telah membekali ilmu. 9. Abang, Teteh, dan Adek (Rudy Indrawan, Ade Eti, dan Romy Purnama

Irawan) yang telah memberikan doa dan dorongan kepada penulis. 10.Teman–teman seperjuangan di Program Studi Teknik Informatika.

11.Teman Dekat, yg terkasih Fadli Ramadhan, terima kasih sudah menjadi partner suka dan duka.

12.Saudara–saudara penulis di kelas IF-11 khususnya Kusmian Ariantoko, Heri Yulianto, Yandi Mardea Sulaeman, Putra Citra Nusantara, Ryan Hamzah Fadhilah, Prasetyo Aditya Putra, Radi Ginanjar, Barlan Gusbuanayang telah banyak membantu dalam proses penyusunan skripsi ini dan memberikan motivasi serta dorongan kepada penulis.

13.Terima kasih juga kepada semua pihak yang telah membantu dalam penyelesaian skripsi ini yang tidak dapat disebutkan satu per satu.

Akhir kata penulis mengucapkan terimakasih kepada semua pihak yang telah membantu dan penulis berharap semoga skripsi ini dapat bermanfaat bagi kita semua dan menjadi bahan masukan bagi dunia pendidikan.

Bandung, Febuari 2015


(3)

(4)

RIWAYAT HIDUP

Nama : Riny Afrilia Safitri TTL : Bandung, 04 April 1992

Alamat : Jl. Akasia II No. C 22 RT 003 RW 018

Komplek dimensi, Kec. Margaasih, Kab. Bandung No. Handphone : 022-6672374

Email : [email protected]

RIWAYAT PEDIDIKAN

1998-2004 : SDN Sudirman 5 2004-2007 : SMPN 9 Cimahi 2007-2010 : SMKN 11 Bandung


(5)

(6)