Perangkat Lunak Jilbab Virtual Dengan Augmented Reality Berbasis Web Di Toko Sakinah Kerudung

(1)

(2)

PERANGKAT LUNAK JILBAB VIRTUAL

DENGAN AUGMENTED REALITY BERBASIS WEB

DI TOKO SAKINAH KERUDUNG

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

RIANI AZZAHRA

10108654

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG


(3)

(4)

(5)

i

DENGAN AUGMENTED REALITY BERBASIS WEB

DI TOKO SAKINAH KERUDUNG

Oleh

RIANI AZZAHRA 10108654

Toko Sakinah Kerudung merupakan salah satu toko jilbab di Bandung yang belum merasakan manfaat maksimal penjualan via online. Hal tersebut disebabkan kepercayaan konsumen yang kurang pada toko online Sakinah Kerudung. Masalah lainnya yaitu ketidakpercayaan konsumen pada kecocokan barang yang akan dipilih. Oleh karena itu penelitian ini memanfaatkan teknologi

augmented reality untuk menarik minat pengunjung web Sakinah Kerudung. Penerapan augmented reality di toko Sakinah Kerudung yaitu berupa jilbab virtual berbasis web.

Pembangunan perangkat lunak ini menggunakan paradigma waterfall dan pemrograman berorientasi objek dengan UML diagram. Perangkat lunak jilbab virtual ini menggunakan metode Haar Cascade Classifier yang diimplementasikan di library Marilena dan bahasa pemrograman ActionScript3. Sebelum membangun jilbab virtual diperlukan analisis sistem terlebih dahulu. Setelah melalui tahap peracangan dan implementasi sistem, pembangunan perangkat lunak jilbab virtual melalui tahap pengujian.

Hasil dari pengujian white box ialah algoritma yang digunakan telah valid dan menghasilkan nilai yang konsisten yaitu tujuh. Berdasarkan performance testing ialah jilbab virtual ini menghasilkan jarak rata-rata wajah tepat menggunakan jilbab virtual yaitu 70 centimeter. Sedangkan menurut para responden kuesioner jilbab virtual ini berhasil menarik minat dan membantu memilih jilbab.


(6)

ii

ABSTRACT

SOFTWARE VIRTUAL HIJAB

WITH AUGMENTED REALITY WEB BASED

IN SAKINAH KERUDUNG SHOP

BY

RIANI AZZAHRA 10108654

Sakinah Kerudung is one of the hijab shop in Bandung which is feeling maximum benefit from sales via online yet. It is caused by consumers’s trust which are less on online shop. Another problem is consumers’s distrust on the suitability of items to be selected. Therefore, this research takes of augmented reality technology to interest visitors of Sakinah Kerudung online shop. Implementation of augmented reality in Sakinah Kerudung is a virtual hijab web based.

Development of this software uses waterfall paradigm and object oriented programming with UML diagrams. This software uses a Haar Cascade Classifier methods which is implemented in the Marilena library and programming language of actionscript3. Before build a virtual hijab is required system analysis. After virtual hijab through the phase of system design and implementation, development of virtual hijab through the testing phase.

Results of white box testing from the algorithm are valid and have a consistent value is seven. Based of performance testing is the virtual hijab produces an average distance of the right face use virtual hijab which is 70 centimeter. Meanwhile, according to the questionnaire respondents are virtual hijab successfully attracts the interest and help choose the hijab.


(7)

Assalamua’alaikum

Segala puji dan s memberikan rahmat skripsi yang berjudul Berbasis Web Di Tok Dalam kesempa mengucapkan terima 1. Bapak Dr. Ir. Ed

Komputer Indone 2. Bapak Prof. Dr. Ir

Ilmu Komputer Un 3. Ibu Mira Kania Sa

Universitas Kompu 4. Bapak Adam Muk

memberikan doron laporan tugas akhir 5. Ibu Nelly Indriani

Finandhita, S.Kom

iii

m Wr. Wb.

n syukur penulis panjatkan kehadirat ALLAH S at dan karunia-Nya sehingga penulis dapat ul “Perangkat Lunak Jilbab Virtual Dengan Aug

oko Sakinah Kerudung”.

patan ini, dengan segala kerendahan hati a kasih yang sebesar-besarnya kepada : Eddy Soeryanto Soegoto, M.Sc, selaku Rek onesia (UNIKOM).

Denny Kurniadie, M.Sc. selaku Dekan Faku Universitas Komputer Indonesia (UNIKOM). Sabariah, S.T., M.T. selaku Ketua Jurusan Tek

puter Indonesia (UNIKOM).

ukharil Bachtiar, S.Kom. selaku Dosen Pembim rongan dan arahan kepada penulis selama pro

hir ini.

ni W, S.Si., M.T. selaku dosen penguji satu om selaku dosen penguji tiga.

H SWT yang telah at menyelesaikan

Augmented Reality

ati penulis ingin

ektor Universitas

kultas Teknik dan

eknik Informatika

imbing yang telah roses penyusunan


(8)

iv

6. Seluruh dosen Teknik Informatika yang telah memberikan banyak ilmu yang berharga untuk penulis.

7. Almarhumah mama, papa, ibu, adik, dan keluarga tercinta lainnya, tanpa kalian penulis tidak akan seperti saat ini.

8. Mas Muhammad Miqdad beserta keluarga selaku pemilik toko Sakinah Kerudung.

9. Ochie, eka dan a oki yang tidak pernah bosan memberikan dukungan moril dalam mengerjakan skripsi ini.

10. Alis, Amiq, Arif, Birda, Ceppy, Dika, Fathan, Ghe, Feby, Tanti, Tafta, Yandi, dan seluruh kawan-kawan IF 14 angkatan 2008 yang tidak bisa saya sebutkan satu persatu, terimakasih telah memberikan segala bentuk bantuan untuk menyelesaikan skripsi ini.

11.Arif Rachman, Ilham, Puji, Sandi, Prima, dan teman-teman seperjuangan lainnya yang penulis tidak bisa sebutkan satu persatu.Semoga bantuan serta dukungan diberikan mendapat balasan yang baik oleh Allah SWT.

Penulis menyadari bahwa hasil penelitian ini masih banyak kekurangan dan masih jauh dari kesempurnaan. Oleh karena itu saran dan kritik yang sifatnya membangun akan penulis terima dengan senang hati. Akhir kata penulis berharap skripsi ini dapat berguna bagi yang membutuhkannya.

Wassalamu’alaikum Wr.Wb.

Bandung, Agustus 2012

Penulis


(9)

v

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... xiv

DAFTAR TABEL ... xvii

DAFTAR SIMBOL ... xix

DAFTAR LAMPIRAN ... xxiii

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 3

1.3 Maksud dan Tujuan Penelitian ... 3

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 4

1.5.1 Metode Pengumpulan Data ... 5

1.5.2 Metode Pembangunan Perangkat Lunak ... 5

1.6 Sistematika Penulisan ... 7

BAB 2 TINJAUAN PUSTAKA ... 9

2.1 Tinjauan Perusahaan ... 9

2.1.1 Sejarah Toko Sakinah Kerudung ... 9


(10)

vi

2.1.3 Misi ... 10

2.1.4 Struktur Organisasi ... 10

2.1.5 Deskripsi Tugas ... 11

2.2 Landasan Teori ... 12

2.2.1 Konsep PBO (Pemrograman Berorientasi Objek) ... 12

2.2.1.1 Kelas (Class) ... 13

2.2.1.2 Objek (object) ... 13

2.2.1.3 Metode (Method) ... 14

2.2.1.4 Atribut (Attribute) ... 14

2.2.1.5 Enkapsulasi (Encapsulation) ... 14

2.2.1.6 Pewarisan (Inheritance) ... 14

2.2.1.7 Antarmuka (interface) ... 15

2.2.1.8 Reusability ... 15

2.2.1.9 Generalisasi dan Spesialisasi ... 15

2.2.1.10 Polimorfisme (Polymorfism) ... 15

2.2.1.11 Package ... 15

2.2.2 Konsep UML (Unified Modeling Language) ... 16

2.2.2.1 Diagram UML ... 17

2.2.2.2 Class Diagram ... 17

2.2.2.3 Package Diagram... 19

2.2.2.4 Deployment Diagram ... 20

2.2.2.5 Use Case Diagram ... 20


(11)

vii

2.2.2.7 Sequence Diagram ... 22

2.2.3 Pengolahan Citra ... 23

2.2.3.1 Modifikasi Kecemerlangan (Brightness Modification) ... 24

2.2.3.2 Peningkatan Kontras (Contast Enhancement) ... 24

2.2.3.3 Negasi ... 24

2.2.3.4 Pengabuan (grayscale) ... 24

2.2.3.5 Pengambangan (Thresholding) ... 24

2.2.3.6 Pencerminan (Flipping) ... 24

2.2.3.7 Rotasi (Rotating) ... 24

2.2.3.8 Pemotongan (Cropping) ... 25

2.2.3.9 Pengskalaan (Scaling) ... 25

2.2.3.10 Deteksi Tepi (Edge Detection) ... 25

2.2.4 Metode Haar Cascade Classifier ... 25

2.2.4.1 Training Data Pada Haar ... 25

2.2.4.2 Sistem Kerja Algoritma Haar Cascade Classifier ... 26

2.2.4.3 Haar Feature ... 27

2.2.4.4 Integral Image ... 28

2.2.4.5 Cascade Classifier ... 29

2.2.5 Virtual Reality ... 30

2.2.5.1 Pengertian Virtual Reality ... 30

2.2.5.2 Sejarah Virtual Reality ... 31

2.2.6 Augmented Reality ... 32


(12)

viii

2.2.6.1.1 Teknik Marker Tracking ... 33

2.2.6.1.2 Teknik Markerless Tracking ... 33

2.2.6.1.3 Teknik GPS Tracking ... 34

2.2.6.1.4 Teknik Face Tracking ... 34

2.2.6.2 Sejarah Augmented Reality ... 34

2.2.7 ActionScript ... 35

2.2.7.1 Sejarah Perkembangan ActionScript ... 36

2.2.7.2 Dasar-dasar Pemrograman ActionScript3 ... 37

2.2.7.2.1 Penggunaan Perintah Trace ... 37

2.2.7.2.2 Pendeklarasian Variabel ... 37

2.2.7.2.3 Tipe‐tipe Data ... 38

2.2.8 Adobe Flash Professional ... 40

2.2.9 Library Marilena ... 42

2.2.10 StarUML ... 42

2.2.10.1 Model, View, dan Diagram... 43

2.2.10.2 Project dan Unit ... 43

2.2.10.2.1 Project ... 43

2.2.10.2.2 File Project ... 43

2.2.10.2.3 Modul ... 43

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 45

3.1 Analisis Sistem ... 45

3.1.1 Analisis Masalah ... 45


(13)

ix

3.1.2.1 Prosedur Pilih Barang ... 46

3.1.3 Analisis Algoritma ... 48

3.1.3.1 Inisialisasi Face Detector, kamera, dan Objek Visual ... 50

3.1.3.2 PreProcessing Image ... 51

3.1.3.2.1 Tahap Scaling ... 51

3.1.3.2.2 Tahap Grayscale ... 52

3.1.3.3 Pendeteksian Metode Haar Cascade Classifier ... 53

3.1.3.3.1 Proses Menentukan Fitur Wajah ... 54

3.1.3.3.2 Proses Menghitung Integral Image ... 56

3.1.3.3.3 Proses Membuat Cascade Classifier ... 57

3.1.3.4 Proses Menampilkan ke Stage ... 61

3.1.4 Analisis Spesifikasi Kebutuhan Perangkat Lunak ... 62

3.1.4.1 Analisis Spesifikasi Kebutuhan Fungsional ... 62

3.1.4.2 Analisis Spesifikasi Kebutuhan Non-Fungsional ... 63

3.1.5 Analisis Kebutuhan Non Fungsional ... 63

3.1.5.1 Analisis Perangkat Keras ... 64

3.1.5.2 Analisis Kebutuhan Perangkat Lunak ... 65

3.1.5.3 Analisis Pengguna ... 66

3.1.6 Analisis Data ... 66

3.1.7 Analisis Kebutuhan Fungsional ... 67

3.1.7.1 Use Case Diagram ... 67

3.1.7.1.1 Skenario Use CaseCapture Image ... 68


(14)

x

3.1.7.1.3 Skenario Use case Menampilkan Hasil AR ... 69

3.1.7.1.4 Skenario Use Case Mengambil Foto ... 70

3.1.7.1.5 Skenario Use Case Memesan Jilbab ... 71

3.1.7.1.6 Skenario Use Case Menambah Model Jilbab ... 71

3.1.7.1.7 Skenario Use Case Menghapus Data Jilbab ... 72

3.1.7.2 Sequence Diagram ... 73

3.1.7.2.1 Sequence Capture Image ... 73

3.1.7.2.2 Sequence Memilih Model Jilbab ... 74

3.1.7.2.3 Sequence Menampilkan Hasil AR ... 75

3.1.7.2.4 Sequence Mengambil Foto ... 75

3.1.7.2.5 Sequence Memesan Jilbab ... 76

3.1.7.2.6 Sequence Menambah Data ... 76

3.1.7.2.7 Sequence Menghapus Data ... 77

3.1.7.3 Activity Diagram ... 78

3.1.7.3.1 Activity Diagram Capture Image ... 78

3.1.7.3.2 Activity Diagram Memilih Model Jilbab ... 79

3.1.7.3.3 Activity Diagram Menampilkan Hasil AR ... 80

3.1.7.3.4 Activity Diagram Mengambil Foto ... 81

3.1.7.3.5 Activity Diagram Memesan Jilbab ... 81

3.1.7.3.6 Activity Diagram Menambah Model Jilbab ... 82

3.1.7.3.7 Activity Diagram Menghapus Model Jilbab ... 82

3.1.7.4 Class Diagram ... 83


(15)

xi

3.1.7.6 Deployment Diagram ... 85

3.2 Perancangan Sistem ... 86

3.2.1 Perancangan Arsitektur Perangkat Lunak ... 87

3.2.2 Perancangan Struktur Menu ... 87

3.2.2.1 Struktur Menu User ... 87

3.2.2.2 Struktur Menu Admin ... 88

3.2.3 Perancangan Antarmuka Perangkat Lunak ... 89

3.2.3.1 Perancangan Antarmuka User ... 89

3.2.3.2 Perancangan Antarmuka Admin ... 89

3.2.3.2.1 Perancangan Antarmuka Menambah Model Jilbab ... 90

3.2.3.2.2 Perancangan Antarmuka Menghapus Model Jilbab ... 90

3.2.4 Perancangan Pesan ... 91

3.2.5 Perancangan Prosedural ... 91

3.2.5.1 Prosedural Penggunaan Jilbab Virtual ... 92

3.2.5.2 Prosedural Menambah Model Jilbab ... 92

3.2.5.3 Prosedural Menghapus Model Jilbab ... 93

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 95

4.1 Implementasi Sistem ... 95

4.1.1 Implementasi File ... 95

4.1.2 Implemantasi Antarmuka ... 96

4.2 Pengujian Sistem ... 97

4.2.1 Rencana Pengujian ... 97


(16)

xii

4.2.2.1 Pengujian White Box ... 98

4.2.2.1.1 Region ... 101

4.2.2.1.2 Cyclometic Complexity ... 101

4.2.2.1.3 Independent Path ... 101

4.2.2.1.4 Graph Matriks ... 102

4.2.2.1.5 Predicate Node ... 102

4.2.2.2 Pengujian Black Box ... 103

4.2.2.2.1 Pengujian Form Menambah Data ... 103

4.2.2.2.2 Pengujian Form Hapus Data ... 104

4.2.2.2.3 Pengujian Form User ... 104

4.2.2.2.4 Pengujian Posisi Jilbab ... 105

4.2.3 Pengujian Beta ... 105

4. 2.3.1 Wawancara Admin ... 105

4.2.3.2 Kuesioner Untuk User ... 106

4.2.4 Kesimpulan Pengujian ... 107

4.2.4.1 Kesimpulan Pengujian WhiteBox ... 107

4.2.4.2 Kesimpulan Pengujian BlackBox ... 107

4.2.4.3 Kesimpulan Pengujian Beta ... 108

4.2.4.3.1 Lingkungan admin ... 108

4.2.4.3.2 Lingkungan Masyarakat Umum ... 108

BAB 5 KESIMPULAN DAN SARAN ... 113

5.1 Kesimpulan ... 113


(17)

xiii


(18)

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Di era persaingan global seperti saat ini, semakin ketatnya persaingan dalam dunia bisnis menjadikan banyak perusahaan berlomba-lomba dalam menciptakan strategi penjualan yang inovatif. Pengadaptasian teknologi ke dalam strategi pemasaran telah menjadi salah satu solusi yang menarik bagi para pelaku bisnis. Sekarang ini untuk memperluas pemasaran banyak perusahaan yang memasarkan barangnya dan menerima pemesanan melalui web. Sama halnya dengan yang dilakukan toko Sakinah Kerudung sebagai toko kerudung yang sedang mengembangkan bisnisnya ke berbagai daerah di Indonesia, toko ini juga memasarkan dan melakukan transaksi secara online. Toko Sakinah Kerudung menjual berbagai jenis kerudung, ciput, dan aksesoris kerudung.

Di Indonesia belanja online masih menjadi sesuatu yang jarang dilakukan. Hal tersebut disebabkan kepercayaan konsumen yang masih kurang bila melakukan pembelian secara online terutama pada beberapa jenis barang seperti kerudung, pakaian, dan aksesoris, dikarenakan sulitnya menetukan pilihan yang dirasa benar-benar cocok. Oleh karena itu wajar saja belum ada kepercayaan penuh dari konsumen terutama pada kerudung yang fungsinya selain untuk menutup aurat bagi wanita kerudung juga merupakan penunjang penampilan. Kesulitan tersebut biasanya terdapat pada ketidakpercayaan konsumen pada barang yang akan dipilih apakah cocok secara warna kulit, perpaduan dengan


(19)

busana yang akan digunakan, bahkan sampai ke bentuk wajah. Tidak seperti membeli baju, membeli kerudung tentu lebih sulit walaupun dilakukan transaksi secara langsung karena jarang sekali disediakan fitting room. Meskipun ada fitting room tentu menjadi kesulitan untuk wanita mencoba kerudung tersebut karena terlalu repot. Ternyata masalah kepercayaan konsumen dalam penjualan online di atas juga dirasakan oleh toko Sakinah Kerudung. Melihat laporan penjualan Toko Sakinah ini, pemilik toko belum merasakan pemanfaatan maksimal penjualan melalui web dibandingkan dengan penjualan di enam cabangnya.

Pemanfaatan maksimal teknologi web harus dilakukan untuk menarik daya beli konsumen. Sekarang ini telah banyak pemanfaatan teknologi Augmented Reality berbasis web yaitu dalam bentuk creative advertisement. Perpaduan

augmented reality dengan teknologi web akan lebih menambah daya tarik pembeli karena kemudahan dalam mengakses via web. Seperti yang sekarang ini banyak digunakan oleh beberapa toko online yaitu kacamata virtual, fitting room dress

virtual, dan beberapa aksesoris virtual lainnya. Berdasarkan pengalaman yang dirasakan konsumen ketika mereka bisa terlibat dalam suatu interaksi seperti augmented reality ini dinilai banyak pelaku marketing dapat mendorong timbulnya hubungan emosional yang lebih mendalam antara konsumen dan

brand, sehingga keinginan membeli lebih besar [1].

Maka berdasarkan latar belakang tersebut, dapat disimpulkan bahwa perlu dibangun perangkat lunak yang memanfaatkan teknologi web dan teknologi


(20)

3

dibangunlah perangkat lunak jilbab virtual dengan augmented reality berbasis web di toko Sakinah Kerudung.

1.2 Perumusan Masalah

Berdasarkan latar belakang yang telah dikemukakan maka rumusan masalah adalah bagaimana membangun perangkat lunak jilbab virtual dengan augmented reality berbasis web di toko Sakinah Kerudung.

1.3 Maksud dan Tujuan Penelitian

Berdasarkan masalah yang ada maka maksud dari penulisan skripsi ini adalah untuk membangun perangkat lunak jilbab virtual dengan augmented reality

berbasis web di toko Sakinah Kerudung.

Adapun tujuan yang ingin dicapai dari penulisan skripsi ini adalah sebagai berikut:

1. Untuk membangun perangkat lunak yang memaksimalkan teknologi web sehingga dapat membantu meningkatkan penjualan di website Sakinah Kerudung.

2. Untuk membantu meningkatkan kepercayaan konsumen pada website Toko Sakinah Kerudung.

3. Untuk membantu meningkatkan kepercayaan konsumen terhadap kerudung yang akan dibeli di website Sakinah Kerudung, apakah cocok atau tidak.

1.4 Batasan Masalah

Batasan masalah atau ruang lingkup kajian dalam penelitian ini adalah sebagai berikut:


(21)

1. Item jilbab hanyalah dibatasi pada produk yang bestseller dan produk terbaru.

2. Teknik augmented reality yang digunakan ialah face tracking. 3. Menggunakan ActionScript 3 sebagai bahasa pemprograman.

4. Input berupa wajah satu orang secara realtime menggunakan webcam. 5. Perangkat lunak hanya dapat mendeteksi wajah dalam posisi lurus

menghadap kamera.

6. Output berupa tampilan wajah yang telah menggunakan jilbab virtual secara realtime dan yang telah difoto menggunakan kamera webcam. 7. Fitur tambahan yang tersedia ialah capture foto dan pesan barang.

8. Pendekatan analisis pembangunan perangkat lunak menggunakann pendekatan analisis berorientasi objek.

1.5 Metodologi Penelitian

Metodologi penelitian merupakan suatu proses yang digunakan untuk memecahkan suatu masalah yang logis, dimana memerlukan data untuk mendukung terlaksananya suatu penelitian. Metodologi penelitian yang akan digunakan dalam menyusun tugas akhir ini menggunakan metodologi analisis deskriptif, yaitu metode yang menggambarkan fakta-fakta dan informasi dalam situasi atau kejadian secara sistematis, faktual dan akurat. Metodologi ini memiliki dua tahapan, yaitu tahap pengumpulan data dan tahap pengembangan perangkat lunak.


(22)

5

1.5.1Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

a. Observasi

Observasi yang dilakukan yaitu mengamati secara langsung proses jual beli di Toko Sakinah untuk memperoleh gambaran yang jelas mengenai permasalahan yang diteliti.

b. Studi Pustaka

Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

c. Wawancara

Wawancara yang dilakukan berupa dialog secara langsung dengan pemilik Toko Sakinah.

1.5.2Metode Pembangunan Perangkat Lunak

Metode pembangunan perangkat lunak menggunakan model waterfall, karena menghasilkan sistem yang terstruktur dengan baik di tiap prosesnya yang mengacu pada model Waterfall (Gambar 1.1) dimana tahap demi tahap proses yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Tahapan yang meliputi beberapa proses tersebut yaitu :


(23)

Gambar 1. 1 Metode Waterfall [2]

a) Requirements definition

Requirements definition merupakan tahap mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.

b) System and software design

System and software design merupakan tahap desain yang dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.

c) Implementation and unit testing

Implementation and unit testing merupakan tahap desain program yang diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit. d) Integration and system testing

Intergration and system testing merupakan tahap penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).


(24)

7

Operation and maintenace merupakan tahap mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.

1.6 Sistematika Penulisan

BAB 1 PENDAHULUAN

Bab ini menguraikan tentang latar belakang permasalahan, perumusan inti permasalahan yang dihadapi, menentukan maksud dan tujuan penelitian, yang kemudian diikuti dengan pembatasan masalah, metodologi penelitian serta sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Bab ini terbagi menjadi dua bagian, yaitu tinjauan umum Toko Sakinah dan landasan teori. Tinjauan umum toko berisi tentang sejarah singkat Toko Sakinah, struktur organisasi, dan deskripsi tugas, sedangkan landasan teori berisi teori-teori pendukung dalam membangun perangkat lunak jilbab virtual dengan augmented reality berbasis web.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi tentang analisis dari keseluruhan sistem, yang mencakup analisis masalah, analisis algoritma, spesifikasi kebutuhan perangkat lunak yang terdiri dari kebutuhan fungsional dan non fungsional, analisis kebutuhan non fungsional yang terdiri dari analisis perangkat keras, analisis perangkat lunak, dan analisis kebutuhan pengguna. Terdapat juga analisis data dan analisis kebutuhan fungsional.


(25)

Bab ini juga berisi tentang perancangan untuk sistem yang meliputi perancangan arsitektural perangkat lunak, perancangan struktur menu, perancangan antarmuka perangkat lunak, dan perancangan prosedural.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi implementasi file dan implementasi antarmuka. Sedangkan untuk pengujian terdapat pengujian alfa dan pengujian beta. Pengujian alfa terdiri dari pengujian white box dan black box. Setelah itu diambil kesimpulan berdasarkan semua pengujian tersebut.

BAB 5 KESIMPULAN DAN SARAN

Bab ini menyimpulkan bahwa tujuan dari penulisan skripsi ini telah terpenuhi atau belum, serta memberikan beberapa saran atau masukan terhadap pengembangan penelitian lebih lanjut.


(26)

9

BAB 2

TINJAUAN PUSTAKA

2.1 Tinjauan Perusahaan

2.1.1Sejarah Toko Sakinah Kerudung

Toko Sakinah Kerudung ini didirikan pada tahun 2007 oleh pasangan suami istri yaitu Bapak Muchammad Mudrik dan Ibu Dian Lestari. Toko ini bergerak dalam bisnis busana muslim dan kerudung. Usaha yang dijalani pasangan suami istri ini berawal dari memiliki konveksi kerudung rumahan pada tahun 2001. Mereka menjual kerudung hasil produksi ke beberapa pedagang eceran, maupun di titip ke toko-toko. Namun yang namanya bisnis pasti ada saatnya di puncak kesuksesan dan ada kalanya di bawah ambang kebangkrutan. Sempat mengalami kebangkrutan karena barang-barang yang tidak dibayar oleh para reseller. Sehingga pada tahun 2004-2005 , sempat berhenti berproduksi dan membangun kembali usahanya dengan melakukan semuanya dari awal.

Usaha busana muslim dan kerudung ini akhirnya bangkit kembali di tahun 2007 dengan mendirikan Toko Sakinah dan menjual sendiri hasil produksinya. Diawali dengan mengontrak sebuah toko kecil yang berukuran kira-kira 16 meter persegi, yang berlokasi di jalan raya Jatinangor nomor 131 (dekat UNPAD Jatinangor) Sumedang, sehingga usaha keluarga ini makin berkembang. Tidak hanya menjual busana muslim dan kerudung tetapi juga aneka aksesoris kerudung, walaupun lebih terkonsentrasi pada penjualan kerudung. Dengan mengikuti terus perkembangan model kerudung masa kini, toko ini semakin maju hingga mampu


(27)

menambah lima cabang di berbagai daerah di Bandung. Toko Sakinah Kerudung pada saat ini sudah memiliki enam cabang toko yang di antaranya bertempat di jalan raya Jatinangor nomor 131 (dekat UNPAD Jatinangor) Sumedang, jalan raya Sukamiskin nomor 134 Bandung, jalan Soekarno Hatta nomor 690A Riung Bandung, jalan Gegerkalong Girang nomor 41 Bandung, jalan Ahmad Nasution nomor 83A (dekat UIN Cibiru) Bandung, dan jalan Ahmad Yani nomor 674 Cicadas. Selain itu Toko Sakinah Kerudung juga mengembangkan usahanya melalui web yang telah mendukung transaksi secara online di alamat website www.sakinahkerudung.com.

2.1.2Visi

Visi dari toko ini ialah menjadi agen pembaharuan di dalam masyarakat dan menyediakan produk – produk unggulan yang inovatif dan berorientasi pada pasar.

2.1.3Misi

Toko ini memiliki misi memasyarakatkan kerudung di kalangan masyarakat indonesia dan memfasilitasi para wanita muslim untuk tetap tampil muslimah dan modis.

2.1.4Struktur Organisasi

Struktur organisasi merupakan susunan yang terdiri dari fungsi-fungsi dan hubungan yang menggambarkan keseluruhan kegiatan untuk mencapai suatu sasaran. Secara fisik struktur organisasi dapat digambarkan dalam bentuk bagan yang memperlihatkan hubungan unit-unit organisasi dan garis-garis wewenang yang ada.


(28)

11

Beberapa keuntungan yang dapat diperoleh dari penggunaan bagan organisasi adalah dapat memperlihatkan karakteristik utama dari suatu perusahaan tersebut, tentang gambaran pekerjaan dan hubungan-hubungan yang ada di dalam perusahaan serta digunakan untuk merumuskan rencan kerja yang ideal sebagai pedoman untuk dapat mengetahui siapa bawahan dan atasannya. Struktur keorganisasian pada Toko Sakinah Kerudung dapat dilihat pada bagan struktur berikut ini :

Gambar 2. 1 Struktur Organisasi

2.1.5Deskripsi Tugas

Deskripsi tugas digunakan untuk mengetahui tugas, wewenang, tanggung jawab dari masing-masing bagian. Deskripsi tugas yang ada di Toko Sakinah Kerudung adalah sebagai berikut :

1. Pemilik Toko

a. Sebagai pengambil keputusan.

b. Sebagai koordinator semua kegiatan yang telah dilaksanakan. c. Mengevaluasi semua kegiatan yang telah dilaksanakan.

d. Menerapkan dan mengesahkan kebijakan yang menyangkut eksistensi toko.

2. Penjaga toko

a. Melayani pembeli secara langsung.

Pemilik

toko

Penjaga


(29)

b. Menghitung hasil penjualan dan bertanggung jawab atas uang yang masuk.

c. Melaporkan hasil penjualan secara harian, mingguan, bulanan, dan periodik

d. Melaporkan ke bagian auditor jika stok barang di cabang kurang atau habis.

3. Auditor

a. Mengecek stok barang di tiap cabang. b. Mengirim stok barak ke tiap cabang.

c. Mengecek laporan penjualan dari tiap cabang. d. Menjadi admin penjualan di web toko.

2.2 Landasan Teori

2.2.1Konsep PBO (Pemrograman Berorientasi Objek)

Object Oriented Programming (OOP) atau Pemrograman Berorientasi Objek (PBO) adalah konsep pemrograman yang difokuskan pada penciptaan kelas yang merupakan abstraksi/blueprint/prototype dari suatu objek [3]. Sedangkan sistem berorientasi objek merupakan sebuat sistem yang dibangun berdasarkan metode berorientasi objek. Setiap komponen dalam sistem tersebut dapat mewarisi atribut dan sifat dari komponen lainnya, serta dapat berinteraksi satu sama lain.

Untuk membangun sebuah sistem berorientasi objek harus digunakan juga Pemprograman berorientasi objek (PBO) dapat menggunakan bahasa


(30)

13

pemrograman berorientasi objek seperti Java, C#, C++, Smalltalk, Eiffel dan PHP. Ada banyak cara untuk mengabstraksikan dan memodelkan objek – objek tersebut, mulai dari abstraksi objek, kelas, hubungan antar kelas sampai abstraksi sistem. Pada saat mengabstraksikan dan memodelkan objek, data, dan proses – proses yang dipunyai oleh objek akan dienkapsulasi (dibungkus) menjadi satu kesatuan.

Dalam rekayasa perangkat lunak sendiri, 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. Berikut adalah komponen – komponen yang terdapat pada sistem berorientasi objek :

2.2.1.1 Kelas (Class)

Kelas adalah pemodelan dari objek yang berisi informasi (aturan) tentang sifat karakteristik (data) dan tingkah laku (method) yang dimiliki oleh objek tersebut [3]. Kelas merupakan definisi statis dan himpunan objek yang sama yang mungkin lahir atau diciptakan dari kelas tersebut. Sebuah kelas akan mempunyai sifat (atribut), kelakuan (metode), hubungan (relationship) dan arti. Suatu kelas dapat diturunkan dan kelas yang lain, dimana atribut dan kelas semula dapat diwariskan ke kelas yang baru.

2.2.1.2 Objek (object)

Objek merupakan instans (perwujudan) dari suatu kelas. Maksudnya, objek merupakan peruwujudan dalam bentuk benda, baik berupa benda nyata, maupun


(31)

konsep, sesuai dengan deskripsi yang telah didefinisikan oleh kelas [3]. 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.

2.2.1.3 Metode (Method)

Metode adalah prosedur atau fungsi yang dimiliki oleh sebuah objek. Sebuah kelas boleh memiliki lebih dari satu metode yang berfungsi untuk memanipulasi objek itu sendiri. Metode juga merupakan cara objek untuk berkomunikasi antar objek.

2.2.1.4 Atribut (Attribute)

Atribut adalah sifat karakteristik atau kondisi yang dimiliki oleh suatu objek [3]. Atribut dapat berupa nilai atau elemen – elemen data yang dimiliki oleh objek dalam kelas objek. Contoh manusia memiliki atribut status, berat badan, dan tinggi badan. Di dalam sebuah kelas atribut disebut variabel.

2.2.1.5 Enkapsulasi (Encapsulation)

Enkapsulasi ialah lapisan pelindung yang mencegah kode dan data yang secara acak diakses oleh kode lain yang didefinisikan di luar kelas [4]. Oleh karena itu dibutuhkan acces modifier dalam penggunaannya, yaitu public, private, dan protected.

2.2.1.6 Pewarisan (Inheritance)

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


(32)

15

2.2.1.7 Antarmuka (interface)

Antarmuka atau interface 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.

Sebuah kelas dapat mengimplementasikan lebih dari satu antarmuka dimana kelas ini akan mendeklarasikan metode pada antarmuka yang dibutuhkan oleh kelas itu sekaligus mendefinisikan isinya pada kode program kelas itu. Metode pada antarmuka yang diimplementasikan pada suatu kelas harus sama persis dengan yang ada pada antarmuka.

2.2.1.8 Reusability

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

2.2.1.9 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. 2.2.1.10 Polimorfisme (Polymorfism)

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

2.2.1.11 Package

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.


(33)

2.2.2Konsep UML (Unified Modeling Language)

Sebelum melangkah pada proses coding hal yang dilakukan yaitu memodelkan. Permodelan dalam dunia pembangunan perangkat lunak digunakan dalam proses merancang perangkat lunak sebelum melakukan pengkodean (coding) tujuannya untuk mempermudah langkah berikutnya dari pembangunan perangkat lunak sehingga lebih terencana dan semua kebutuhan pengguna dapat terpenuhi dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability,

robustness, security, dan sebagainya.

Unified Modelling Language (UML) adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek [5]. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering).

Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang metodologinya banyak digunakan mempelopori usaha untuk penyatuan metodologi perancangan berorientasi objek. Pada tahun 1995 dirilis draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG). Tahun 1997 UML versi 1.1 muncul, dan hingga saat ini telah ada versi 2.4.1 yang terdiri dari 4 macam spesifikasi, yaitu Diagram Interchange Sfesification, UML Infratructure,


(34)

17

UML Super Structure dan Object Constraint Language (OCL). Seluruh spesifikasi tersebut dapat diakses di http://www.omg.org .

2.2.2.1 Diagram UML

Pada UML versi 2.4 terdapat 2 kategori diagram sebagai berikut:

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

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

2.2.2.2 Class Diagram

Class Diagram mendeskripsikan jenis-jenis objek dalam sistem dan berbagai macam hubungan statis yang terdapat diantara mereka [5]. Class Diagram bersifat statis di dalam class diagram digambarkan relasi dari masing - masing kelas tetapi tidak menggambarkan apa yang terjadi ketika kelas tersebut berelasi. Sebuah Kelas memiliki struktur sebagai gambar berikut:

Gambar 2. 2 Class Diagram[6] 1. Nama Kelas/Stereotype

2. Atribut, yaitu variabel-variabel yang dimiliki suatu kelas. 3. Metode, yaitu fungsi-fungsi yang dimiliki oleh suatu kelas.


(35)

Class Diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Class Diagram mempunyai 3 macam hubungan, sebagai berikut :

1. Association

Assosiation merupakan sebuah garis solid antara dua kelas ditarik dari kelas sumber ke kelas target [5]. Dalam notasi UML kita mengenal asosiasi 2 arah (bidirectional) dan 1 arah (undirectional).

Gambar 2. 3 Relasi Association[6] 2. Aggregation

Aggregation adalah association dimana salah satu kelasnya merupakan bagian dari suatu kumpulan. Aggregation memiliki titik pusat yang mencakup keseluruhan bagian.

Gambar 2. 4 Relasi Aggregation [6] 3. Composition

Composition ialah aggregation dengan ikatan yang lebih kuat. Di dalam

composite aggregation, siklus hidup part class sangat bergantung pada whole class sehingga bila objek instance dari whole class dihapus maka objek


(36)

19

Gambar 2. 5 Relasi Composition[6] 4. Depedency

Depedency ialah hubungan antar class di mana sebuah class memiliki ketergantungan pada class lainnya tetapi tidak sebaliknya.

Gambar 2. 6 Relasi Depedency[6] 5. Generalization

Generalization diperlukan untuk memperlihatkan hubungan pewarisan (inheritance) antar unsur dalam diagram kelas. Pewarisan memungkinkan suatu kelas mewarisi semua atribut, operasi ,relasi, dari kelas yang berada dalam hirarki pewarisannya.

Gambar 2. 7 Relasi Generalization[6] 2.2.2.3 Package Diagram

Untuk mengatur pengorganisasian diagram Class yang kompleks, dapat dilakukan pengelompokan kelas-kelas berupa package (paket). Package adalah


(37)

sebuah bentuk pengelompokkan yang memungkinkan anda untuk mengambil setiap bentuk di UML dan mengelompokkan elemen-elemennya dalam tingkatan unit yang lebih tinggi [5].

2.2.2.4 Deployment Diagram

Deployment diagram menunjukkan susunan fisik sebuah sistem, menunjukkan bagian perangkat lunak mana yang berjlaan pada perangkat keras mana [5]. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini, berikut ini contoh deployment diagram:

Gambar 2. 8 Contoh Deployment Diagram[6] 2.2.2.5 Use Case Diagram

Use case diagram merupakan teknik untuk merekam persyaratan fungsional sebuah sistem [5]. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibangun. use case digunakan untuk mengetahui fungsi apa saja yang ada didalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.

Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu aktor dan use case.

1. Aktor merupakan orang, proses atau sistem lain yang berinteraksi dengan sistem yang akan dibangun.


(38)

21

2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antarunit atau aktor.

2.2.2.6 Activity Diagram

Activity diagram adalah teknik untuk menggambarkan logika, procedural, proses bisnis, dan jalur kerja [5]. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana sebagian besar

state adalah action dan sebagian besar transisi di-trigger oleh selesainya state

sebelumnya (internal processing). Oleh karena itu, activity diagram tidak menggambarkan behaviour internal sebuah sistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas.

Seperti halnya state, standar UML menggunakan segi empat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal.


(39)

Gambar 2. 9 Contoh Activity Diagram[7]

Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. Berikut ini adalah contoh activity diagram dengan swimlane :

Gambar 2. 10 Object Swimelan [7]

2.2.2.7 Sequence Diagram

Sequence diagram secara khusus menjabarkan behavior sebuah skenario tunggal [5]. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah kejadian untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.


(40)

23

Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message

digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.

Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan simbol khusus untuk objek boundary, controller dan persistent entity. Contoh sequence diagram:

Gambar 2. 11 Contoh Sequence Diagram[7] 2.2.3Pengolahan Citra

Data atau informasi tidak hanya disajikan dalam bentuk teks, tapi juga dapat berupa gambar, audio (bunyi, suara, musik) dan video. Keempat macam data atau informasi ini sering disebut multimedia. Citra istilah lain untuk gambar sebagai satu komponen multimedia memegang peranan penting sehingga bentuk informasi visual. Citra mempunyai karakteristik yang tidak dimiliki oleh data teks, yaitu citra kaya dengan informasi.


(41)

Pengolahan citra adalah pemrosesan citra menjadi citra yang lain dengan kualitas yang lebih baik, yaitu pemrosesan pada usaha untuk memanipulasi [8]. Citra yang telah menjadi gambar lain menggunakan algoritma atau teknik tertentu. Beberapa jenis operasi pengolahan citra adalah sebagai berikut :

2.2.3.1 Modifikasi Kecemerlangan (Brightness Modification)

Mengubah nilai keabuan/warna dari gelap menuju terang atau sebaliknya mengubah citra yang terlalu cemerlang/pucat menjadi gelap.

2.2.3.2 Peningkatan Kontras (Contast Enhancement)

Dengan peningkatan kontras maka titik yang cenderung gelap menjadi lebih gelap dan yang cenderung terang menjadi lebih cemerlang.

2.2.3.3 Negasi

Operasi untuk mendapatkan citra negatif (negative image) 2.2.3.4 Pengabuan (grayscale)

Merupakan proses konversi citra dengan warna sebenarnya (true color) menjadi citra keabuan (grayscale).

2.2.3.5 Pengambangan (Thresholding)

Operasi pengambangan digunakan untuk mengubah citra dengan format skala keabuan, yang mempunyai kemungkinan nilai lebih dari dua ke citra biner yang memiliki dua buah nilai (yaitu 0 dan 1).

2.2.3.6 Pencerminan (Flipping)

Pencerminan merupakan proses menggambar citra ke bentuk kebalikannya seperti ketika sedang bercermin.

2.2.3.7 Rotasi (Rotating)


(42)

25

2.2.3.8 Pemotongan (Cropping)

Memotong satu bagian dari citra sesuai kebutuhan. 2.2.3.9 Pengskalaan (Scaling)

Mengubah ukuran citra menjadi lebih besar atau lebih kecil. 2.2.3.10 Deteksi Tepi (Edge Detection)

Deteksi tepi pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra.

2.2.4Metode Haar Cascade Classifier

Proses deteksi adanya citra wajah dalam sebuah gambar dapat menggunakan sebuah metode yang dipublikasikan oleh Paul Viola dan Michael Jones tahun 2001. Umumnya disebut metode Haar Cascade Classifier. Metode ini merupakan metode yang menggunakan statistik model (classifier). Pendekatan untuk mendeteksi wajah dalam gambar menggabungkan empat konsep utama :

1. Training data

2. Fitur segi empat sederhana yang disebut fitur Haar. 3. Integral image untuk pendeteksian fitur secara cepat.

4. Pengklasifikasi bertingkat (Cascade classifier) untuk menghubungkan banyak fitur secara efisien.

2.2.4.1Training Data Pada Haar

Metode ini memerlukan 2 tipe gambar objek dalam proses training yang dilakukan, yaitu :


(43)

1. Positive samples

Berisi gambar obyek yang ingin dideteksi, apabila ingin mendeteksi mata maka

positive samples ini berisi gambar mata, begitu juga objek lain yang ingin dikenali.

2. Negative samples

Berisi gambar objek selain objek yang ingin dikenali, umumnya berupa gambar

background (tembok, pemandangan, lantai, dan gambar lainnya). Resolusi untuk sampel negatif disarankan untuk memiliki resolusi yang sama dengan resolusi kamera.

Training dari Haar menggunakan dua tipe sampel diatas. Informasi dari hasil

training ini lalu dikonversi menjadi sebuah parameter model statistik. 2.2.4.2Sistem Kerja Algoritma Haar Cascade Classifier

Algoritma Haar menggunakan metode statistikal dalam melakukan pengenalan wajah. Metode ini menggunakan simple haar-like features dan juga a cascade of boosted tree classifier. Classifier ini menggunakan gambar berukuran tetap. Cara kerja dari algoritma haar dalam mendeteksi wajah adalah menggunakan teknik sliding window pada keseluruhan gambar dan mencari apakah terdapat bagian dari gambar yang berbentuk seperti wajah atau tidak. Haar juga memiliki kemampuan untuk melakukan scaling sehingga dapat mendeteksi adanya mata yang berukuran lebih besar ataupun lebih kecil dari gambar pada

classifier. Tiap fitur dari haar-like fitur didefinisikan pada bentuk dari fitur, diantaranya koordinat dari fitur dan juga ukuran dari fitur tersebut.


(44)

27

2.2.4.3Haar Feature

Haar Feature adalah fitur yang digunakan oleh Viola dan Jones didasarkan pada Wavelet Haar. Wavelet Haar adalah gelombang tunggal bujur sangkar (satu interval tinggi dan satu interval rendah) . Untuk dua dimensi, satu terang dan satu gelap. Selanjutnya kombinasi-kombinasi kotak yang digunakan untuk pendeteksian objek visual yang lebih baik. Ada tiga tipe kotak (rectangular) fitur pada umunya yaitu:

1. Tipe two-rectangle feature (horisontal/vertikal) 2. Tipe three-rectangle feature

3. Tipe four-rectangle feature

Gambar 2. 12 Haar Feature[9]

Adanya fitur Haar ditentukan dengan cara mengurangi rata-rata piksel pada daerah gelap dari rata-rata piksel pada daerah terang. Jika nilai perbedaannya itu diatas nilai ambang atau threshold, maka dapat dikatakan bahwa fitur tersebut ada.


(45)

Nilai dari Haar-like feature adalah perbedaan antara jumlah nilai-nilai piksel gray level dalam daerah kotak hitam dan daerah kotak putih. Kotak Haar-like feature dapat dihitung secara cepat menggunakan integral image.

2.2.4.4Integral Image

Integral Image digunakan untuk menentukan ada atau tidak fitur Haar pada sebuah gambar dan pada skala yang berbeda secara efisien. Pada umumnya, pengintegrasian tersebut berarti menambahkan unit-unit kecil secara bersamaan. Dalam hal ini unit-unit kecil tersebut adalah nilai-nilai piksel. Nilai integral untuk masing-masing piksel adalah jumlah dari semua piksel-piksel dari atas sampai bawah. Dimulai dari kiri atas sampai kanan bawah, keseluruhan gambar itu dapat dijumlahkan dengan beberapa operasi bilangan bulat per piksel. Berikut contoh gambar yang dapat dijadikan perhitungan integral image :

Gambar 2. 14 Contoh Bagian Haar Feature

Di bawah ini ada contoh perhitungan integral image. Nilai integral image

dari kolom kesatu baris kesatu tetap, sedangkan integral image kolom kedua baris kesatu merupakan jumlah nilai piksel wajah di sebelah kirinya. Kolom kesatu baris kedua memperoleh nilai integral image dari jumlah nilai piksel kolom kesatu baris kesatu. Berikut ini perhitungan lengkapnya :

1 2 3 2 3 4 4 5 1

1 1+2 1+2+3

1+2 1+2+2+3 1+2+3+2+3+4

1+2+4 1+2+2+3+4+5 1+2+3+2+3+4+4+5+1

1 3 6 3 8 15 7 17 25


(46)

29

2.2.4.5Cascade Classifier

Cascade classifier adalah sebuah rantai stage classifier, dimana setiap stage classifier digunakan untuk mendeteksi apakah didalam image sub window

terdapat objek yang diinginkan (object of interest).

Stage classifier dibangun dengan menggunakan algoritma adaptive-boost

(AdaBoost). Algoritma tersebut mengkombinasikan performance banyak weak classifier untuk menghasilkan strong classifier. Weak classifier dalam hal ini adalah nilai dari haar-like feature. Jenis AdaBoost yang digunakan adalah Gentle AdaBoost.

Gambar 2. 15 Proses Cascade Classifier

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 didalam rantai, maka dapat dikatakan daerah tersebut merupakan wajah.


(47)

Proses Cascade Classifier dapat diilustrasikan pada contoh gambar 2.20 sebagai berikut :

Gambar 2. 16 Contoh Ilustrasi Cascade Classifier 2.2.5Virtual Reality

2.2.5.1Pengertian Virtual Reality

Virtual reality (VR) atau realitas maya adalah Suatu lingkungan yang dibangkitkan oleh komputer, bersifat tiga dimensional dan interaktif. Lingkungan-lingkungan ini bisa merupakan model-model dunia nyata ataupun imajiner [10]. Lingkungan virtual reality pada saat ini umumnya menyajikan pengalaman visual, yang ditampilkan pada sebuah layar komputer atau melalui sebuah penampil stereokopik, akan tetapi ada beberapa simulasi mengikutsertakan tambahan informasi hasil pengindraan, seperti suara melalui speaker atau headphone.

Bila diteliti lebih jauh, sebenarnya cara kerja virtual reality itu seperti berikut :

a. Pemakai melihat suatu dunia semu, yang sebenarnya berupa gambar-gambar yang bersifat dinamis.

b. Melalui perangkat headphone atau speaker, pemakai dapat mendengar suara yang realistis.


(48)

31

c. Melalui headset, glove, dan walker, semua gerakan pemakai dipantau oleh sistem dan sistem diberikan reaksi yang sesuai sehingga pemakai seolah merasakan sedang berada pada situasi yang nyata, baik secara fisik maupun psikologis.

2.2.5.2Sejarah Virtual Reality

Morton Heilig menulis pada tahun 1950 tentang "Teater Pengalaman" yang dapat meliputi semua indera dengan suatu cara efektif, sehingga menarik penonton ke dalam kegiatan di layar. Kemudian Ia membangun suatu prototipe dari visinya yang dinamakan Sensorama pada 1962, bersama dengan lima film pendek untuk dipertunjukkan didalamnya dengan melibatkan berbagai indera (penglihatan, pendengaran, penciuman, dan sentuhan).

Pada tahun 1968, Ivan Shuterland dengan bantuan dari siswanya bernama Bob Sproull menciptakan apa yang secara luas dianggap sebagai pendahulu dari virtual reality dan sistem. Alat itu primitif, baik dalam kaitan dengan alat penghubung pemakai dan realisme, dan HMD untuk dikenakan oleh pemakai sangatlah berat sehingga harus digantungkan

Teknologi virtual reality yang lebih awal adalah Peta Bioskop Aspen, yang diciptakan oleh MIT pada tahun 1977. Programnya adalah suatu simulasi kasar tentang kota Aspen di Colorado. Di sana para pemakai bisa mengembara dalam salah satu dari tiga musim yaitu musim panas, musim dingin, dan musim semi.

Hingga pada saat ini virtual reality terus berkembang dalam kehidupan sehari-hari. Contoh aplikasi di bidang virtual reality saat ini yaitu manufaktur :


(49)

pengujian rancangan, prototipe semu (autocad, 3dmax), analisis ergonomik, simulasi semu dalam perakitan, produksi dan pemeliharaan. Bidang kedua yaitu arsitektur : perancangan gedung. Bidang ketiga yaitu militer : pelatihan (pilot, astronot, pengemudi), Simulasi Peperangan(Cry Engine 3). Bidang ketiga yaitu kedokteran : pelatihan pembedahan, terapi fisik. Bidang keempat yaitu penelitian / pendidikan : studi tentang topan, konfigurasi galaksi, pengujian matematika kompleks. Bidang kelima yaitu dalam hiburan : museum virtual, permainan balap, simulasi pertempuran udara, taman virtual, simulasi ski, dan lain sebagainya.

Gambar 2. 17 Contoh Penerapan Virtual Reality[11] 2.2.6Augmented Reality

Menurut Professor Ronald T. Azuma, “Augmented Reality (AR) is refers to a situation in which the goal is to supplement a user’s perception of the real-world through the addition of virtual objects” [12]. Paul Milgram dan Fumio Kishino pada tahun 1994, mendefinisikan Milgram’s Reality-Virtuality Continum. Mereka menggambarkan sebuah kontinum yang membentang dari lingkungan nyata untuk lingkungan virtual murni. Mereka menyimpulkan bahwa AR lebih dekat ke lingkungan nyata dan virtual reality lebih dekat ke lingkungan virtual.


(50)

33

2.2.6.1Macam-macam Teknik Augmented Reality

Augmented Reality memiliki berbagai jenis teknik yang semakin berkembang sampai saat ini. Berikut daftar teknik-teknik di Augmented Reality : 2.2.6.1.1 Teknik Marker Tracking

Teknik ini menggunakan marker untuk mendeteksi posisi tampilnya objek.

Marker merupakan istilah yang dekat dengan dunia augmented reality. Markers are the black and white squares which enable an application to track and detect the orientation and adjust the position of the 3D object accordingly [13].

Marker yang dapat dideteksi oleh teknik marker tracking ini hanya yang berwarna hitam putih seperti gambar di bawah ini :

Gambar 2. 18 Contoh Marker[13]

SDK atau Engine yang dapat digunakan untuk teknik ini ialah : a. ARToolkit

b. FLARToolkit c. SLARToolkit

2.2.6.1.2 Teknik Markerless Tracking

Teknik ini masih menggunakan marker sebagai alat untuk mendeteksi. Namun marker yang digunakan dapat berbentuk apa saja tidak harus berwarna hitam putih, misalnya foto atau bahkan benda. SDK atau Engine yang dapat digunakan untuk teknik ini ialah:


(51)

b. Layar

c. D’Fusion Studio d. IN2AR

2.2.6.1.3 Teknik GPS Tracking

Teknik GPS Tracking memanfaatkan lokasi longitude dan latitude sebagai alat untuk mendeteksi. Biasanya teknik ini digunakan di perangkat lunak untuk

smartphone. SDK atau Engine yang dapat digunakan untuk teknik ini ialah : a. Layar

b. Junaio c. Mixare

d. KHARMA

2.2.6.1.4 Teknik Face Tracking

Teknik ini menggunakan wajah manusia untuk dideteksi dan pemanfaatannya bisa untuk face tracking maupun face recognition. SDK atau Engine yang dapat digunakan untuk teknik ini ialah:

a. Beyond Reality Face b. Viewdle

c. SHORE

2.2.6.2Sejarah Augmented Reality

Sejarah tentang Augmented Reality (AR) berasal dari virtual reality

terlebih dahulu hingga Jaron Lanier pada tahun 1992 mengembangkan AR untuk melakukan perbaikan pada pesawat boeing, dan pada tahun yang sama, LB Rosenberg mengembangkan salah satu fungsi sistem AR, yang disebut Virtual


(52)

35

Fixtures, yang digunakan di Angkatan Udara AS Armstrong Labs, dan menunjukan manfaatnya pada manusia, dan pada tahun 1992 juga, Steven Feiner, Blair Maclntyre dan dorée Seligmann, memperkenalkan untuk pertama kalinya Major Paper untuk perkembangan Prototype AR. Pada tahun 1999, Hirokazu Kato, mengembangkan ArToolkit di HITLab dan didemonstrasikan di SIGGRAPH, pada tahun 2000, Bruce. H. Thomas, mengembangkan ARQuake, sebuah mobile games AR yang ditunjukan di international symposium on wearable komputers. Pada tahun 2008, witiude AR Travel Guide, memperkenalkan Android G1 telephone yang berteknologi AR, tahun 2009, Saqoosha memperkenalkan FLARToolkit yang merupakan perkembangan dari ArToolkit. FLARToolkit memungkinkan kita memasang teknologi AR di sebuah website, karena output yang dihasikan FLARToolkit berbentuk Flash. Ditahun yang sama, wikitude Drive meluncurkan sistem navigasi berteknologi AR di platform android. Tahun 2010 Acrossair menggunakan teknologi AR pada I-Phone 3GS.

2.2.7ActionScript

Adobe ActionScript merupakan bahasa pemrograman yang bekerja di dalam

platform Adobe Flash. ActionScript adalah menunjukkan koleksi set dari action, function, event, dan event handler yang memungkinkan dikembangkan oleh para

developer untuk membuat flash movie yang lebih komplek dan lebih interaktif.

ActionScript merupakan bahasa pemrograman berorientasi objek didasarkan pada ECMAScript‐standar yang sama yang menjadi dasar JavaScript dan ditujukan untuk berjalan di atas sebuah runtime environment (seperti Flash Player, Adobe


(53)

AIR, atau Flash Lite). Mirip seperti prinsipnya Java, Flash pada dasarnya berjalan diatas sebuah AVM (ActionScript Virtual Machine).

2.2.7.1Sejarah Perkembangan ActionScript

ActionScript sendiri telah memiliki beberapa versi dari satu sampai kini ada versi tiga. ActionScript2 yaitu versi ActionScript yang telah digunakan dalam Flash Player 8 dan sebelumnya, tetap didukung dalam Flash Player 9 dan Flash Player 10. Hingga akhirnya pada tahun 2006 Adobe merilis ActionScript versi 3.0, yang merupakan bahasa pemprograman yang bisa didapatkan di Flash CS3 ke atas beda halnya dengan flash 8 dan sebelumnya, yang hanya mendukung ActionScript2. Di dalam Flex framework, antarmuka pengguna dibuat menggunakan file MXML, sedangkan ActionScript3 digunakan hanya untuk menciptakan file akhir SWF. Oleh karena itu ActionScript 3.0 memiliki beberapa keuntungan dibandingkan versi pendahulunya diantaranya yaitu :

a) Memiliki lebih banyak laporan detail error yang ada. Hal tersebut dikarenakan ActionScript 3.0 mewajibkan penulisan tipe data dari variabel,

argument, fungsi, dan yang lainnya. Berbeda dengan ActionScript2 yang menjadikan hal tersebut sebagai pilihan. Perubahan tersebut tentu dapat mempermudah error checking.

b) Perubahan sintak yang terjadi ActionScript3.0 seperti pada nama properti yang di awali underscores pada ActionScript2.0 dan tidak perlu lagi digunakan pada ActionScript 3.0.


(54)

37

c) Tampilan Arsitektur yang baru. Banyak metode sebelumnya untuk menambahkan sesuatu secara dinamis, sekarang memiliki proses yang lebih sederhana dan juga lebih mudah.

2.2.7.2Dasar-dasar Pemrograman ActionScript3 2.2.7.2.1 Penggunaan Perintah Trace

Perintah Trace digunakan untuk menampilkan informasi pada panel Output. Panel Output hanya digunakan untuk menguji jalannya program saja, bukan sebagai tampilan utama program. Yang menjadi tampilan utama program adalah

Stage, misalnya:

public function Main():void { if (stage) init();

else addEventListener(Event.ADDED_TO_STAGE, init); trace (2 + 5) // akan menampilkan bilangan 7

}

2.2.7.2.2 Pendeklarasian Variabel

Sebuah variabel (misalnya variabel x dalam pelajaran matematika yang menyajikan sebuah bilangan yang bisa diberi dengan suatu nilai) adalah sebuah penampung informasi yang bisa diambil atau pun diganti.

Variabel yang akan digunakan dalam ActionScript harus dideklarasikan terlebih dahulu. Beberapa tipe data/tipe variabel yang sering digunakan antara lain: TextField, Number, String, Array, Sprite, Shape, dan MovieClip. Perintah deklarasi variabel mempunyai bentuk umum:

var namaVariabel:TipeVariabel;

atau cara kedua berikut juga memberikan hasil yang sama: var namaVariabel:TipeVariabel = new TipeVariabel(); Namun nama variabel harus memenuhi aturan‐aturan berikut:


(55)

a. Hanya terdiri dari huruf, angka, karkater garis bawah, dan simbol $. b. Tidak diawali dengan angka.

c. Tidak sama dengan kata khusus yang sudah dipakai oleh ActionScript

(reserved word), seperti var, Sprite, dan lain‐lain. d. Harus unik

Untuk penulisan dalam penamaan variabel, dapat menggunakan mode KataKapital (CamelCase) yang merupakan proses penulisan beberapa kata tanpa tanda spasi namun dengan mengkapitalisasi (menulis dengan huruf besar) setiap kata pembentuknya, misalnya textSaya, radiusBola, dan tinggiAwalStage. Untuk tipe data kompleks (movie Clip, button, textField) yang ada dalam stage yang dibuat dengan Adobe Flash CS3 Profesional, anda dapat mendeklarasikannya dengan menuliskannya pada nama instan (instance name) pada bagian properti objeknya. Flash CS3 akan membuat variabel dengan nama sama dengan nama instan tersebut.

2.2.7.2.3 Tipe‐‐‐‐tipe Data

ActionScript 3.0 mempunyai beberapa tipe data primitif seperti yang diberikan dalam Tabel 2.1. Selain itu ActionScript juga mempunyai beberapa tipe data kompleks yang dibangun dari tipe data primitif seperti yang diberikan dalam Tabel 2.2. Bahkan kita bisa membangun tipe data sendiri, dalam bahasa pemrograman objek sering dikenal dengan nama class objek.


(56)

39

Tabel 2. 1 Tipe Data Primitif

Tipe Data Pengertian Contoh

String Sebuah karakter atau

sederet karakter

var textSaya:String =”Hello World”

Boolean Hanya bernilai benar

(true) atau salah (false)

var sudahSelesai:Boolean = true

Number Bilangan riil positif dan negative

var percepatan:Number = 0.01

Int Bilangan bulat positif dan

negatif

( ‐2.147.483.648 s.d. 2.147.483.647)

var radiusBola:int = 10

Uint Bilangan bulat positif

(0 s.d. 4.294.967.295)

var warnaBola: uint = 0xFF00FF

* Tipe data sembarang

(biasanya digunakan untuk menampung data yang belum diketahui tipenya)

var dataBaru: * = dataSembarang

Tabel 2. 2 Tipe Data Kompleks

Tipe Data Pengertian Contoh

MovieClip Sebuah simbol movie clip var tokohSaya:MovieClip = new MovieClip()

Sprite Sebuah Sprite var kotak: Sprite = new

Sprite() TextField Sebuah field teks yang

bertipe dynamic atau field teks yang bertipe input (secara default akan bertipe dynamic)

var tulisan:TextField =new TextField()

tulisan.text=”Tulisan Dinamis”

SimpleButton Sebuah simbol button (tombol)

var

start:SimpleButton=new SimpleButton()

Date Data dalam format

tanggal

var ultah:Date= new Date()

Array Larik atau array yang

dapat memuat lebih dari satu nilai

var arrayBilangan: Array = new Array()


(57)

Tipe Data Pengertian Contoh Objek Struktur dasar dari setiap

entitas ActionScript. Objek juga merupakan suatu bentuk variabel yang bisa diatur sendiri untuk menyimpan berbagai nilai sebagai alternatif dari Array

var gambar:Objek: new Object

gambar.nama =”foto action”

gambar.panjang=600

2.2.8Adobe Flash Professional

Adobe Flash (dahulu bernama Macromedia Flash) adalah salah satu perangkat lunak komputer yang merupakan produk unggulan Adobe Systems. Adobe Flash digunakan untuk membuat gambar vektor maupun animasi gambar tersebut. Berkas yang dihasilkan dari perangkat lunak ini mempunyai file extension .swf dan dapat diputar di penjelajah web yang telah dipasangi Adobe Flash Player. Flash menggunakan bahasa pemrograman bernama ActionScript

yang muncul pertama kalinya pada Flash 5. Sebelum tahun 2005, Flash dirilis oleh Macromedia. Flash 1.0 diluncurkan pada tahun 1996 setelah Macromedia membeli program animasi vektor bernama FutureSplash. Versi terakhir yang diluncurkan di pasaran dengan menggunakan nama 'Macromedia' adalah adalah Macromedia Flash 8. Pada tanggal 3 Desember 2005 Adobe Systems mengakuisisi Macromedia dan seluruh produknya, sehingga nama Macromedia Flash berubah menjadi Adobe Flash.

Adobe Flash merupakan sebuah program yang didesain khusus oleh Adobe dan program aplikasi standar authoring tool professional yang digunakan untuk membuat animasi dan bitmap yang sangat menarik untuk keperluan pembangunan situs web yang interaktif dan dinamis. Flash didesain dengan kemampuan untuk


(58)

41

membuat animasi 2 dimensi yang handal dan ringan sehingga flash banyak digunakan untuk membangun dan memberikan efek animasi pada website, CD Interaktif dan yang lainnya. Selain itu aplikasi ini juga dapat digunakan untuk membuat animasi logo, movie, game, pembuatan navigasi pada situs web, tombol animasi, banner, menu interaktif, interaktif form isian, e-card, screen saver dan pembuatan aplikasi-aplikasi web lainnya. Dalam Flash, terdapat teknik-teknik membuat animasi, fasilitas action script, filter, custom easing dan dapat memasukkan video lengkap dengan fasilitas playback FLV. Keunggulan yang dimiliki oleh Flash ini adalah ia mampu diberikan sedikit code pemograman baik yang berjalan sendiri untuk mengatur animasi yang ada didalamnya atau digunakan untuk berkomunikasi dengan program lain seperti HTML, PHP, dan Database dengan pendekatan XML, dapat dikolaborasikan dengan web, karena mempunyai keunggulan antara lain kecil dalam ukuran file outputnya.

Movie Flash memiliki ukuran file yang kecil dan dapat ditampilkan dengan ukuran layar yang dapat disesuaikan dengan keingginan. Aplikasi Flash merupakan sebuah standar aplikasi industri perancangan animasi web dengan peningkatan pengaturan dan perluasan kemampuan integrasi yang lebih baik. Banyak fiture-fiture baru dalam Flash yang dapat meningkatkan kreativitas dalam pembuatan isi media yang kaya dengan memanfaatkan kemampuan aplikasi tersebut secara maksimal. Fitur-fitur baru ini membantu kita lebih memusatkan perhatian pada desain yang dibuat secara cepat, bukannya memusatkan pada cara kerja dan penggunaan aplikasi tersebut. Flash juga dapat digunakan untuk mengembangkan secara cepat aplikasi-aplikasi web yang kaya dengan pembuatan


(59)

script tingkat lanjut. Di dalam aplikasinya juga tersedia sebuah alat untuk men-debug script. Dengan menggunakan Code hint untuk mempermudah dan mempercepat pembuatan dan pengembangan isi ActionScript secara otomatis.

2.2.9Library Marilena

Library Marilena merupakan library yang mendukung deteksi wajah di flash dengan menggunakan ActionScript. Marilena merupakan library yang telah berjalan baik untuk mendeteksi wajah atau benda lain yang berdasarkan algoritma

haar feature. Hanya saja kekurangan dari haar feature yang digunakan ialah tidak dapat mendeteksi wajah pada posisi miring atau selain posisi tegak lurus. Sebenarnya Marilena pada dasarnya berasal dari library OpenCV yang digunakan pada bahasa C, yang di konversi ke ActionScript. Seorang pria berkebangsaan Jepang bernama Ohtsuka Masakazu yang telah menciptakan Marilena. Baru-baru ini seorang pria bernama Mario Klingemann dari Quasimondo.com telah membuat beberapa perubahan untuk mengoptimasikan Marilena versi aslinya. Untuk mengunduh Marilena dapat menggunakan svn dengan memasukkan alamat http://www.libspark.org/svn/as3/Marilena/trunk/.

2.2.10 StarUML

StarUML adalah software permodelan yang mendukung UML (UnifiedModeling Language) [14]. Berdasarkan pada UML version 1.4 telah mendukung notasi UML 2.0 dan juga mendukung pendekatan MDA (Model Driven Architecture) dengan dukungan konsep UML. StarUML dapat


(60)

43

memaksimalkan pruduktivitas dan kualitas dari suatu software project. Berikut ialah konsep dasar dari StarUml.

2.2.10.1 Model, View, dan Diagram

StarUML membuat perbedaan konseptual yang lebih jelas antara models,

views, dan diagrams. Models adalah elemen yang memuat informasi untuk model perangkat lunak [15]. View adalah suatu ekpresi visual dari informasi di dalam model [15]. Diagram adalah suatu koleksi dari elemen yang memberikan pemikiran user didalam mendesain secara spesifik [15].

2.2.10.2 Project dan Unit 2.2.10.2.1 Project

Project adalah unit manajemen dasar didalam StarUML [15]. Suatu project

dapat mengatur satu atau lebih model perangkat lunak. Project merupakan top-level package yang selalu ada didalam beberapa model perangkat lunak. Secara umum, satu project disimpan dalam satu file.

2.2.10.2.2 File Project

File project disimpan kedalam format XML dengan extension “.UML” . Semua model,view, dan diagram yang dibuat dengan StarUML disimpan dalam satu file project.

2.2.10.2.3 Modul

Modul adalah suatu package yang menyediakan fungsi – fungsi baru dan fitur sebagai perluasan dari StarUML [15]. Modul dapat dibuat sebagai kombinasi dari beberapa elemen –elemen perpanjangan dan juga membuat beberapa jenis elemen – elemen didalam suatu modul.


(61)

(62)

45

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem merupakan proses penguraian konsep ke dalam bagian-bagian yang lebih sederhana, sehingga struktur logisnya menjadi jelas. Tahap analisis sistem adalah tahapan dasar sebelum perancangan untuk memperbaiki sistem yang lama. Dari hasil analisis tersebut dapat dirancang atau diperbaiki menjadi sebuah sistem yang lebih efektif dan efisien. Pada tahap analisis sistem ini dibagi menjadi beberapa bagian, yaitu sebagai berikut :

1. Analisis Masalah.

2. Analisis Sistem yang Sedang Berjalan 3. Analisis Algoritma.

4. Analisis Spesifikasi Kebutuhan Perangkat Lunak 5. Analisis Kebutuhan Non Fungsional

6. Analisis Data

7. Analisis Kebutuhan Fungsional 3.1.1Analisis Masalah

Analisis masalah pada subbab ini adalah penjabaran masalah apa saja yang ada di website Toko Sakinah Kerudung sebelum dibangunnya perangkat lunak jilbab virtual ini. Oleh karena itu analisis masalah yang terdapat di web Toko Sakinah Kerudung meliputi hal-hal sebagai berikut :


(63)

1. Belum adanya pemanfaatan maksimal web toko Sakinah Kerudung. Hal tersebut terbukti dengan belum maksimalnya penjualan melalui web dibandingkan penjualan secara langsung.

2. Belum adanya fasilitas yang membantu meningkatkan kepercayaan konsumen terhadap toko Sakinah Kerudung, seperti adanya fitting room virtual.

3. Masih kurangnya kepercayaan konsumen terhadap kerudung yang ada di website toko Sakinah Kerudung. Karena keraguan apakah kerudung yang dipilih cocok menurut kriteria konsumen tersebut.

3.1.2Analisis Sistem Yang Sedang Berjalan

Analisis sistem yang sedang berjalan di toko online Sakinah Kerudung terdiri dari prosedur dan flowchart. Adanya analisis sistem sangat penting karena fungsi dari sistem itu sendiri yaitu untuk mengetahui bagaimana sebuah sistem itu berjalan agar sistem yang dibuat menghasilkan keluaran yang diinginkan dan dapat mencapai tujuan yang direncanakan. Prosedur sistem yang sedang berjalan yang terlibat pada sistem yang akan dibangun ialah prosedur pilih barang.

3.1.2.1Prosedur Pilih Barang

Di toko online Sakinah Kerudung untuk melakukan proses pilih barang dijelaskan dalam prosedur sebagai berikut:

1. Konsumen dapat melakukan pemilihan barang sesuai jenis-jenis kerudung yang ada di menu.


(64)

47

2. Ketika konsumen memilih kerudung yang ada maka sistem yang telah ada akan menampilkan detail barang yang berisi harga, ketersediaan, tanggal,

rating, pilihan warna, diskon, dan field jumlah.

3. Sebelum memasukkan ke keranjang belanja konsumen harus mengisi warna dan jumlah yang ingin dipesan.

4. Jika konsumen memilih untuk memesan barang maka data yang telah disi akan masuk ke keranjang belanja. Dan jika tidak jadi memesan maka konsumen dapat kembali memilih barang lain.

5. Setelah ada data yang terinput ke keranjang belanja, konsumen dapat melihat isi dari keranjang belanja miliknya.

6. Konsumen dapat mengupdate data jumlah pesanan yang jadi dipesan. 7. Jika tidak melakukan update konsumen dapat langsung melakukan

checkout keranjang belanja yang berarti akan mengakhiri proses pemesanan.

8. Jika tidak checkout berarti konsumen dapat melanjutkan memilih barang. Untuk Gambar flowchart dari prosedur pemesanan barang dapat dilihat pada gambar di bawah ini :


(65)

Gambar 3. 1 FlowChart Pemesanan Barang 3.1.3Analisis Algoritma

Secara umum, augmented reality (AR) adalah penggabungan antara objek virtual dengan objek nyata. Jadi perangkat lunak jilbab virtual yang dirancang dengan teknologi AR ini, seolah-olah menggabungkan objek virtual dengan objek nyata. Dalam kasus ini objek nyatanya berupa pola wajah dan objek virtualnya berupa model jilbab.

Di sistem ini webcam berperan penting sebagai media visi bagi perangkat lunak untuk mendapatkan video masukan. Kamera mengambil frame-frame video untuk dapat diterima oleh komputer. Komputer memproses citra digital yang


(66)

49

diakuisisi oleh webcam, frame demi frame. Komputer akan mendeteksi pola yang mirip dengan wajah dari setiap frame video tersebut, yang kemudian lokasi wajah dapat ditentukan. Dengan informasi tersebut, objek virtual digabungkan dengan video dari webcam dan merendernya sesuai dengan informasi posisi yang diperoleh dari face detector tersebut. Proses tersebut berlangsung secara real-time sehingga model virtual yang tampil di media display akan mengikuti pergerakan wajah. Gambaran umum sistem ini dapat dilihat dalam flowchart gambar 3.1. Berikut ini juga akan dijelaskan proses-proses yang terlibat di sistem :


(67)

3.1.3.1Inisialisasi Face Detector, kamera, dan Objek Visual

Di dalam sistem perangkat lunak jilbab virtual ini tahap awal yang harus ditentukan ialah face detector yang akan digunakan, sumber masukan videonya, dan objek visual apa saja yang akan di load. Semua hal tersebut tergambar di proses inisialisasi. Inisialisasi ialah proses penentuan awal semua hal yang diperlukan untuk menjalankan proses selanjutnya yaitu face detector, objek visual, dan kamera.

Pada bagian inisialisasi ini, objek visual juga diinisialisasi terlebih dahulu karena loading objek visual memerlukan waktu yang cukup lama. Objek visual yang akan ditampilkan di load terlebih dahulu. Agar perangkat lunak dapat menampilkan objek visual tertentu tanpa mengubah atau membangun ulang aplikasi, diperlukan sebuah konfigurasi untuk menentukan objek visual yang akan di load. Contoh konfigurasi yang diperlukan dalam perangkat lunak jilbab virtual itu berisi informasi direktori model jilbab yang digunakan, nama file gambarnya, dan skala yang cocok sehingga penampilan objek bisa lebih proporsional. Barulah setelah itu objek dapat di load.

Kamera dan Face detector juga merupakan bagian penting pada perangkat lunak ini. Face detector akan mengatur hal-hal yang berkaitan dengan pendeteksian. Dalam sistem ini yang berperan sebagai face detector ialah library

Marilena. Sedangkan kamera mulai menginisialisai dari video masukan dari kamera sampai pemprosesan image. Pada perangkat lunak ini hal - hal yang perlu di atur dari face detector ini ialah skala yang ingin digunakan dan koordinat posisi


(68)

51

untuk objek visual. Dan untuk kamera akan diatur frame per rate, lebar, dan tinggi stage.

3.1.3.2PreProcessing Image

Pada tahap preprocessing image dilakukan proses scaling dan grayscale

untuk menjadi masukan unruk proses selanjutnya dalam metode Haar Cascade. 3.1.3.2.1 Tahap Scaling

Scaling merupakan proses mengubah ukuran gambar digital menjadi lebih besar ataupun lebih kecil. Untuk sistem akan memanfaatkan package display object yang merupakan package class miliki flash. Scaling dapat dilakukan dengan memanipulasi ukuran tampilan objek dalam dua cara , menggunakan salah satu properti ( width dan height ) atau properti method skala yaitu scalex dan scaley. Properti skala mewakili ukuran relatif dari tampilan objek dibandingkan dengan ukuran aslinya.

Pada awalnya harus ditentukan dahulu faktor skala untuk membuat layar menampilkan dan memproses image dari kamera sesuai dengan ukuran yang diinginkan. Tahap Scaling ini membutuhkan skala yang tepat karena tahap scaling dilakukan di beberapa proses dan semua nilai skala harus konsisten. Skala yang dirasa tepat dan umum digunakan ialah empat karena menyesuaikan dengan panjang dan lebar layar yang umum digunakan yaitu 500x450, akan tetapi bisa bersifat dinamis dengan mengubah nilai dari variabel faktor skala. Jika faktor skala terlalu besar tidak hanya mempengaruhi terhadap tampilan tetapi juga proses akan menjadi lebih lama. Jika faktor skala terlalu kecil maka penampilan stage di flash akan tidak jelas.


(69)

Gambar 3. 3 Hasil Scaling 3.1.3.2.2 Tahap Grayscale

Grayscale merupakan proses untuk mengubah warna gambar menjadi keabu-abuan. Gambar digital yang sudah melalui proses scaling akan menjadi masukan dalam proses ini. Proses grayscale dilakukan dengan mengubah nilai RGB setiap piksel gambar menjadi 1 nilai yang sama. Dalam perangkat lunak jilbab virtual ini proses pengubahan citra RGB menjadi citra grayscale menggunakan sebuah

class yang dimiliki flash yaitu ColorMatrixFilter.

Dalam proses ini menerapkan sebuah efek grayscale dengan mengubah semua warna ke setiap ukuran kecerahan yang sama. Acuan atau definisi dari pencahayaan adalah ukuran kecerahan, sehingga dapat mengkonversi warna untuk disetiap multiplying setara dengan warna merah , hijau , dan biru disetiap konstanta, dengan nilai masing-masing yaitu 0.3086 , 0.694 , dan 0.0820. Sehingga faktor pencahayaan akan sangat berpengaruh untuk memproses image. Nilai-nilai matrik tersebut telah menjadi nilai pasti yang tidak dapat diubah. Berikut ini ialah matrik filter yang digunakan di flash untuk membuat efek

grayscale :

rc, gc, bc, 0, 0, rc, gc, bc, 0, 0, rc, gc, bc, 0, 0, 0, 0 , 0 , 1, 0


(1)

PENGUJIAN WHITE BOX

1. Region

2. Cyclometic Complexity

V(G) = E –N +2

3.

Independent Path

4. Graph Matriks

V(G) = Jumlah graph matriks + 1

5. Predicate Node


(2)

PENGUJIAN BLACK BOX

No Jarak Wajah Bulat Wajah Oval Wajah Tirus

1. 50 cm 0 kali pas 0 kali pas 0 kali pas

2. 60 cm 5 kali pas 0 kali pas 0 kali pas

3. 70 cm 5 kali pas 5 kali pas 0 kali pas

4. 80 cm 0 kali pas 5 kali pas 5 kali pas


(3)

KESIMPULAN PENGUJIAN

1 Kesimpulan Pengujian

White Box

2 Kesimpulan Pengujian

Black Box

3 Kesimpulan Pengujian Beta

3 Kesimpulan Pengujian Beta


(4)

KESIMPULAN

1. Perangkat lunak jilbab virtual ini mampu menarik perhatian pembeli

sehingga terbukti mampu memaksimalkan teknologi web untuk meningkatkan penjualan. 2. Perangkat lunak jilbab virtual ini membantu user untuk memilih kerudung yang cocok. 3. Perangkat lunak jilbab virtual ini membuat user merasa terfasilitasi


(5)

SARAN

Disarankan untuk menggunakan library deteksi yang lebih efektif dan akurat sehingga tidak hanya dapat mendeteksi posisi wajah tegak lurus kamera.


(6)