implementasi operasi logika and dan operasi berbasis … · aplikasi ini akan mengolah citra wajah...
TRANSCRIPT
IMPLEMENTASI OPERASI LOGIKA AND DAN OPERASI BERBASIS
FRAME DALAM SEBUAH APLIKASI HAIR STYLING SIMULATOR SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh : Martinus Prima Yustanto
06 5314 003
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
YOGYAKARTA 2010
IMPLEMENTASI OPERASI LOGIKA AND DAN OPERASI
BERBASIS FRAME DALAM SEBUAH APLIKASI HAIR
STYLING SIMULATOR SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh :
Martinus Prima Yustanto 06 5314 003
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
YOGYAKARTA 2010
i
THE IMPLEMENTATION OF AND LOGIC OPERARTION
AND FRAME-BASED OPERATION IN AN APPLICATION
NAMED HAIRSTYLING SIMULATOR A THESIS
Presented as Partial Fulfilment of The Requirements to Obtain The Sarjana
Teknik Degree In Informatics Engineering Study Program
By : Martinus Prima Yustanto
06 5314 003
INFORMATIC ENGINEERING STUDY PROGRAM INFORMATIC ENGINEERING DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
2010
ii
ABSTRAKSI
Pemilihan model rambut dalam sebuah salon selama ini hanya dilakukan dengan cara melihat foto atau gambar yang disediakan oleh salon, kemudian pelanggan berkonsultasi dengan pegawai salon apakah model tersebut pantas atau tidak dengan wajah pelanggan. Karena pelanggan hanya dapat membayangkan tanpa dapat melakukan simulasi, maka sering terjadi kesalahan pemilihan model rambut dan menyebabkan menurunnya nilai kepuasan pelanggan terhadap salon tersebut.
Tugas akhir ini bertujuan untuk melakukan perancangan dan pembuatan aplikasi salon potong rambut. Aplikasi ini digunakan untuk membantu pelanggan salon dalam menentukan atau memilih model rambut yang sesuai dengan citra wajah. Hal ini diaplikasikan dalam sebuah Aplikasi Hair Styling Simulator, dimana pada aplikasi Hair Styling Simulator ini menggunakan dua komponen utama, yaitu camera digital dan PC (Personal Computer). Aplikasi ini akan mengolah citra wajah pelanggan yang ditangkap melalui camera digital, kemudian citra wajah pelanggan tersebut akan diproses menggunakan operasi logika and serta operasi berbasis frame untuk melakukan manipulasi data piksel antara citra rambut dan citra wajah pelanggan.
Operasi logika and dan operasi berbasis frame ini dipilih karena dapat digunakan untuk melakukan manipulasi atau perubahan data piksel antara citra rambut dan citra wajah. Simulasi pemilihan model rambut dilakukan dengan cara melakukan pergantian model rambut pada citra wajah pelanggan sesuai dengan model yang diinginkan, sehingga pelanggan dapat melakukan pemilihan model rambut terhadap citra wajah dan dapat melihat apakah model rambut yang dipilihnya sesuai dengan citra wajah. Untuk pengujian dilakukan dengan pembagian kuisioner kepada 30 responden yang terdiri dari pelanggan salon, pegawai salon, dan mahasiswa USD. Dari 30 responden tersebut dapat diketahui bahwa dari segi tampilan aplikasi 70% responden menyatakan cukup menarik dan 30% responden menyatakan sangat menarik. Dari segi pemakaian aplikasi, 50% responden menyatakan mudah, dan 50% responden menyatakan sangat mudah. Dari segi waktu pemrosesan 46,67% responden menyatakan cepat, 55,33% menyatakan sangat cepat. Dari segi hasil penggabungan rambut 3,3% responden menyatakan kurang memuaskan, 3,3% menyatakan tidak memuaskan, 80% responden menyatakan cukup memuaskan, serta 13,3% responden menyatakan sangat memuaskan. Dari segi manfaat aplikasi 63,3% responden menyatakan aplikasi bermanfaat, dan 36,6% responden menyatakan bahwa apliasi sangat bermanfaat.
v
ABSTRACT
In choosing a model of hairstyle in a salon is only conducting by seeing a photos sample or pictures that are available in that salon. The next step is that customer consults the intended hairstyle to the hairdresser whether the style is suitable or not. Since the customer could only imagine what the hairstyle look like without being able to conduct any simulation, there is always mistake in choosing the suitable hairstyle. It causes the decrease of satisfaction of the customer.
This research aimed to design and create an application that could help any salon. This application is used to help the customer in determining or choosing the hairstyle that is suitable to the shape of the customer’s face. This application is called Hair Styling Simulator. There are two main components that are going to be used in this application. They are digital camera and PC (Personal Computer). The face of the customer would be captured by digital camera, and then the image would be processed by using logic operation and frame-based operation to manipulate the pixel data between the hairstyle and the shape of customer’s face.
And logic operation and frame-based operation are chosen because they can be used to conduct manipulation or change of pixel data between hairstyle and the face shape, so that the hairstyle choice simulation can be conducted by making a change of intended hairstyle model on customer’s head. By conducting this simulation, customer can see whether the intended hairstyle is suitable for him or not.
This application has been tested to 30 respondents that consist of hairdressers and students of Sanata Dharma University. 70% of the respondents stated the appearance of this application is attractive enough, while the rest stated that the appearance is very attractive. Based on the use of this application aspect, 50% of respondents claimed that it is easy to use, and the rest claimed that it is very easy. Based on time efficiency aspect, 46.67% of the respondents said that this application process is fast, while the rest said that it is very fast. From the hairstyle matching aspect, there are 3.3% of respondents who said that it is not very satisfying, 3.3% of them said that it is not satisfying, 80% of them said that it is satisfying enough, and the rest (13.3% of respondents) said that it is very satisfying. Based on the benefit aspect of this application, 63.3% of the respondents exclaimed that this application is useful, and the rest exclaimed that it is very useful.
vi
Sebuah kegagalan akan menjadikan kita mengerti akan arti keberhasilan
vii
KATA PENGANTAR
Puji syukur kepada Tuhan Yesus Kristus, yang telah memberikan karunia,
kesempatan, waktu, dan berkat, sehingga penulis dapat menyelesaikan tugas akhir
yang berjudul “Implementasi operasi logika and dan operasi berbasis frame dalam
sebuah aplikasi hair styling simulator”, ini dengan baik.
Dalam penulisan tugas akhir ini penulis tidak lepas dari bantuan sejumlah
pihak, oleh karena itu penulis ingin mengucapkan terimakasih kepada :
1. Ayah di surga, terima kasih atas kepercayaan dan kesempatan yang
diberikan.
2. Ibu tercinta, terima kasih atas segala perjuangan yang ibu lakukan.
3. Anastasia Rita Widiarti, S.Si., M.Kom., selaku dosen pembimbing
tugas akhir, atas kesabarannya dalam membimbing penulis,
memberikan waktunya, dukungan, serta saran yang sangat membantu
penulis.
4. Keluarga besar penulis terima kasih atas segala dukungan yang sudah
diberikan.
5. Sahabat dan teman–teman yang selalu ada disaat penulis
membutuhkan bantuan dan dukungan.
x
xi
Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada
laporan tugas akhir ini. Saran dan kritik sangat penulis harapkan untuk perbaikan-
perbaikan dimasa yang akan datang. Akhir kata, penulis berharap tulisan ini
bermanfaat bagi kemajuan dan perkembangan ilmu pengetahuan serta berbagai
pengguna pada umumnya.
Yogyakarta, 2 November 2010
Penulis
HALAMAN PERSEMBAHAN
Ku persembahkanTugas Akhir ini ke pada :
Tuhan Yesus Kristusyang mengijinkan semua ini ,serta telah memberikan kehidupan
beserta seluruh warnanya.
Ayah dan Ibu tercinta, serta adikku
Ketulusan cinta kasih yang kalian berikan begitu besar tidak akan pudar sampai selama-
lamanya, so that the time can not erase.
Almamater dan junior-juniorku,
Semoga skripsi ini bias jadi salah satu referensi bagi kalian.
Dosen-dosen Univesitas Sanata Dharma
Yang telah menempaku menjadi seperti sekarang.
Teman-temanku yang slalu memberikan dukunganya.
Teman-teman kontrakanku tempat berbagi suka dan duka
We are brother...
xii
DAFTAR ISI
LEMBAR JUDUL………………………………………………… i
HALAMAN PERSETUJUAN PEMBIMBING………………... iii
HALAMAN PENGESAHAN…………………………............... iv
ABSTRAK………………………………………………………... v
ABSTRACT…………………………………………………….... vi
MOTTO………………………………………………………….. vii
PERNYATAAN KEASLIAN KARYA……………………….... viii
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS……………….. ix
KATA PENGANTAR…………………………………………… x
DAFTAR ISI……………………………………………………... xii
DAFTAR GAMBAR…………………………………………..... xvi
DAFTAR TABEL……………………………………………….. xix
BAB I : PENDAHULUAN……………………………………… 1
1.1 Latar Belakang Masalah………………………….. 1
1.2 Rumusan Masalah………………………………... 2
1.3 Tujuan…………………………………………...... 3
1.4 Batasan Masalah………………………………….. 3
1.5 Metodologi Penelitian……………………………. 3
1.6 Sistematika Penulisan…………………………….. 5
BAB II : LANDASAN TEORI…………………………………. 7
2.1 Citra………………………………………………... 7
2.2 Pemrosesan Citra………………………………….. 7
2.3 Format Citra Digital………………………………. 9
2.4 Pengertian Frame dan Background………………. 12
2.5 Pengolahan Citra.................................................. 13
2.6 Operasi Berbasis Bingkai..................................... 15
xiii
2.7 Operasi Logika.................................................... 16
2.7.1 Operasi logika and.................................... 17
2.7.2 Operasi logika Or...................................... 17
2.7.3 Operasi logika XOR.................................. 18
2.7.4 Operasi logika NOT.................................. 18
2.8 Format Citra BMP............................................... 19
2.9 Format Citra JPG................................................ 21
2.10 Kuesioner........................................................... 22
2.11 Kompleksitas waktu............................................ 23
2.11.1 Kompleksitas Waktu Asimpotik............... 24
BAB III : ANALISA DAN PERANCANGAN SISTEM……….. 30
3.1 Rancangan Umum...........………………………... 30
3.2 Analisa Kebutuhan Proses.................................... 31
3.2.1 Proses Binerisasi………………………. 32
3.2.2 Proses Penggabungan Dengan Menggunakan
Operasi logika and............................... 33
3.2.3 Proses Penggabungan Dengan Menggunakan
Operasi berbasis frame......................... 35
3.2.4 Pengujian Sistem dengan Pengamatan Visual.37
3.3 Ukuran Piksel Citra.......…………………………... 39
3.4 Perancangan Tampilan Antarmuka………………. 39
3.4.1 Halaman Utama………………………. 39
3.4.2 Halaman Kreator……………………... 42
3.4.3 Halaman Bantuan…………………….. 42
3.4.4 Halaman Buka Foto..…………………. 43
3.4.5 Halaman Model Rambut……………… 43
3.4.6 Halaman Simpan.............……………. 44
3.4.7 Form Pesan........................................ 45
3.4.8 Form Dialog....................................... 45
3.5 Kebutuhan Perangkat Lunak Keras……………… 46
xiv
3.6 Data.................................................................... 46
BAB IV : IMPLEMENTASI…………………………………… 47
4.1 Implementasi Binerisasi...................................... 47
4.2 Implementasi Operasi logika And......................... 47
4.3 Implementasi Operasi berbasis frame................... 49
4.4 Implementasi Pengujian Sistem dengan Pengamatan
Visual................................................................. 50
4.5 Implementasi Ukuran Piksel Citra....................... 53
4.6 Implementasi tampilan........................................ 54
4.6.1 Tampilan Awal dan Tampilan Utama.......... 57
4.6.2 Tampilan Buka Foto................................... 57
4.6.3 Tampilan Model Rambut............................. 58
4.6.4 Tampilan Simpan....................................... 58
4.6.5 Tampilan Kreator....................................... 59
4.6.6 Tampilan Bantuan...................................... 60
4.6.7 Tampilan Form Dialog................................ 60
BAB V: ANALISA............................………………………….. 63
5.1. Uji coba program dan Analisa Sistem.................... 63
5.1.1. Uji coba program................................ 63
5.1.2. Analisa Sistem.................................... 65
5.1.3. Analisa Waktu Asimtotik.................... 66
5.2. Analisa Kuesioner………………………………….. 68
5.3. Kekurangan dan Kelebihan Program....................... 69
5.3.1 Kelebihan Program....................................... 69
5.3.2 Kekurangan Program..................................... 70
BAB VI : PENUTUP…………………………………………...... 71
6.1 Kesimpulan………………………………………... 71
6.2 Saran……………………………………………….. 72
xv
DAFTAR PUSTAKA………………………………………… 73
LAMPIRAN
Daftar Gambar
Gambar 1.1 Model waterfall............................................................ 4
Gambar 2.1 Gambar Croping........................................................... 8
Gambar 2.2 Komposisi Citra Warna................................................ 10
Gambar 2.3 Contoh Gambar Citra Grayscale................................... 11
Gambar 2.4 Contoh Citra Warna, Grayscale, dan Biner................... 11
Gambar 2.5 Perbaikan Kualitas Citra................................................ 15
Gambar 2.6 Contoh Penggabungan Menggunakan Operasi Berbasis
Frame............................................................................... 16
Gambar 2.7 Citra Hasil Operasi Logika AND...................................... 17
Gambar 2.8 Citra Hasil Operasi Logika OR......................................... 17
Gambar 2.9 Citra Hasil Operasi Logika XOR....................................... 18
Gambar 2.10 Citra Hasil Operasi Logika NOT....................................... 18
Gambar 2.11 Format Berkas Bitmap....................................................... 19
Gambar 2.12 Format Citra BMP 24-bit................................................... 21
Gambar 3.1 Diagram Konteks............................................................... 31`
Gambar 3.2 DFD level 1........................................................................ 32
Gambar 3.3 Proses Binerisasi................................................................ 33
Gambar 3.4 Proses Penggabungan Citra Wajah dan Model Rambut
Menggunakan Operasi Logika And.................................... 34
xvi
Gambar 3.5 Algoritma Penggabungan Citra Wajah dan Model Rambut
Menggunakan Operasi Berbasis Frame............................... 35
Gambar 3.6 Halaman Utama..................................................................... 39
Gambar 3.7 Halaman Kreator.................................................................... 42
Gambar 3.8 Halaman bantuan.................................................................. 42
Gambar 3.9 Tampilan Buka Foto.............................................................. 43
Gambar 3.10 Halaman Model Rambut....................................................... 44
Gambar 3.11 Halaman Simpan................................................................... 44
Gambar 3.12 Form Pesan............................................................................ 45
Gambar 3.13 Form Dialog........................................................................... 45
Gambar 4.1 Hasil Operasi Logika AND.................................................... 48
Gambar 4.2 Hasil Penggabungan Menggunakan Operasi
Berbasis Frame....................................................................... 50
Gambar 4.3 Tampilan Utama..................................................................... 57
Gambar 4.4 Tampilan Buka Foto.............................................................. 57
Gambar 4.5 Tampilan Model Rambut....................................................... 58
Gambar 4.6 Tampilan Simpan................................................................... 58
Gambar 4.7 Tampilan Kreator................................................................... 59
Gambar 4.8 Form Dialog Inputan Jika Ukuran Sama............................... 61
Gambar 4.9 Form Dialog Inputan Jika Ukuran Tidak Sama..................... 61
Gambar 4.10 Form Dialog Penyimpanan Berhasil Dilakukan.................... 61
xvii
xviii
Gambar 4.11 Form Dialog Pernyataan Untuk Melakukan Clear............... 62
Gambar 4.12 Form Dialog Pernyataan ketika Sudah Melakukan Clear... 62
Gambar 5.1 Tampilan Operasi Berbasis Bingkai.................................... 63
Gambar 5.2 Tampilan Hasil Dengan Operasi Logika AND.................... 64
DAFTAR TABEL
Tabel 2.1 Tabel isi header berkas bitmap............................................. 19
Tabel 2.2 Tabel isi header bitmap......................................................... 20
Tabel 2.3 Tabel isi data gambar............................................................ 21
Tabel 4.1 Hasil kuesioner segi tampilan............................................... 51
Tabel 4.2 Hasil kuesioner segi pemakaian............................................ 51
Tabel 4.3 Hasil kuesioner segi waktu pemrosesan................................ 52
Tabel 4.4 Hasil kuesioner segi hasil penggabungan rambut.................. 52
Tabel 4.5 Hasil kuesioner segi manfaat.................................................. 53
Tabel 4.6 kecepatan proses berdasarkan ukuran piksel......................... 54
xix
1
Bab I.
Pendahuluan
1.1 Latar Belakang
Salon potong rambut adalah sebuah bidang usaha yang bergerak di
bidang jasa. Karena bergerak di bidang jasa maka nilai kepuasan seorang
pelanggan menjadi faktor penting dalam kemajuan usaha tersebut. Banyak
faktor yang dapat mempengaruhi nilai kepuasan pelanggan, misalnya
pelayanan, sarana dan prasarana. Salah satu bentuk layanan adalah layanan
konsultasi pemilihan model rambut, yang selama ini terjadi dengan
melakukan tanya jawab dengan bantuan gambar model rambut atau foto
model dengan potongan rambut tertentu, yang belum tentu cocok dengan
karakteristik wajah pelanggan.
Disisi lain kemajuan teknologi bidang pengolahan citra atau
gambar berkembang dengan pesat, sejalan dengan munculnya berbagai
kebutuhan baru misal perbaikan kualitas citra foto, penggabungan
berbagai foto, serta mudah dan murahnya teknologi komputer. Kemajuan
bidang-bidang tersebut ternyata dapat dimanfaatkan. Salah satunya untuk
membantu pelanggan melakukan simulasi pemilihan model rambut
menggunakan foto wajah pelanggan, sebelum pelanggan melakukan
proses pemotongan rambut. Dalam hal ini citra atau gambar diproses
dengan operasi logika dan operasi berbasis frame. Operasi logika adalah
sebuah metode pemrosesan citra yang dapat di gunakan untuk melakukan
manipulasi terhadap data piksel yang ada dalam sebuah citra digital.
2
Sehingga dapat dilakukan perubahan terhadap citra sesuai dengan
kebutuhan dan keinginan. Sedangkan operasi berbasis frame adalah
penambahan bingkai pada citra sehingga citra akan memiliki bentuk atau
model yang sesuai dengan yang diinginkan. Salah satunya adalah
melakukan simulasi pemilihan model rambut.
1.2 Rumusan Masalah
Berdasarkan latar belakang seperti yang telah disebutkan sebelumnya,
maka dapat dirumuskan permasalahan sebagai berikut :
1. Bagaimana melakukan pemrosesan citra wajah dan model rambut
dengan menggunakan operasi logika and dan operasi berbasis frame.
Sehingga dapat digunakan untuk melakukan simulasi pemilihan model
rambut berdasarkan citra wajah.
2. Bagaimana melakukan perancangan dan pembuatan sebuah aplikasi
yang dapat digunakan untuk melakukan simulasi pemilihan model rambut
dengan menggunakan input berupa citra wajah yang ditangkap
menggunakan digital camera dan dilakukan pemrosesan dengan pc
(personal computer).
3. Bagaimana melakukan pengujian terhadap penelitian dan aplikasi yang
dibuat, sehingga dapat diketahui bahwa aplikasi dapat bermanfaat
serta dapat mengimplementasikan operasi berbasis frame dan operasi
logika didalam aplikasi tersebut.
3
1.3 Tujuan
Adapun tujuan dari penelitian dan pembuatan aplikasi ini adalah
dapat mengimplementasikan operasi logika dan operasi berbasis frame,
dalam sebuah aplikasi yang dapat digunkan dengan mudah, cepat,
bermanfaat, serta menarik bagi pelanggan salon.
1.4 Batasan Masalah
Dalam perancangan dan pembuatan aplikasi ini, terdapat beberapa
pembatasan masalah, antara lain :
1. Format file yang dapat diproses adalah citra dengan format .jpg atau
.bmp.
2. Program hanya melakukan proses pengolahan citra wajah dan
penggabungannya saja.
3. Ukuran citra inputan adalah 1200 x1600 piksel, ukuran ini merupakan
ukuran yang bisa dijadikan default ukuran kamera digital.
4. Program dibuat dengan meggunakan bahasa pemrograman MatLab
untuk melakukan pemrosesan citran dan GUI MatLab untuk membuat
user interface.
1.5 Metodologi Penelitian
Metodologi penelitian dilakukan sebagai berikut:
1. Studi pustaka yang bertujuan untuk mempelajari teori citra dan proses
pengolahan citra digital dalam hal ini adalah operasi logika dan operasi
4
berbasis frame.
2. Analisis data bertujuan untuk mengetahui bagaimana data yang
digunkan dalam penelitian diperoleh.
3. Pengembangaan program aplikasi menggunakan model Waterfall
(Pressman, 1997).
Gambar 1.1: Model Waterfall
Tahapan:
System Engineering
Analisa Desain
Implementasi
Pengujiaan
- System Enginering
System Enginering adalah tahap untuk mengumpulkan dan
menentukan semua kebutuhan elemen sistem.
- Analisis
Analisis adalah tahap untuk menentukan analisis terhadap
permasalahan yang dihadapi dan menentukan kebutuhan software.
- Desain
Desain adalah proses menterjemahkan kebutuhan sistem ke dalam
sebuah gambaran program.
- Implementasi
Implementasi merupakan proses penterjemahan desain ke dalam
bentuk yang dapat dieksekusi.
5
- Pengujian
Pengujian memastikan apakah semua fungsi-fungsi program berjalan
dengan baik dan menghasilkan output yang sesuai dengan yang
dibutuhkan.
4. Menganalisa hasil yang diperoleh dari kuesioner yang diberikan
kepada responden meliputi segi tampilan, segi pemakaian, waktu
pemrosesan, hasil penggabungan dan manfaat.
1.6 Sistematika Penulisan
Sistematika penulisan laporan tugas akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN
Berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan
sistem, manfaat sistem dan metode penelitian serta sistematika penulisan
laporan.
BAB II DASAR TEORI
Bab ini berisi landasan teori yang dipakai untuk pembahasan laporan tugas
akhir.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang analisis dan perancangan sistem yang akan
diimplementasikan.
BAB IV IMPLEMENTASI SISTEM
Bab ini berisi tentang proses implementasi sesuai dengan rancangan sistem
yang dibuat.
6
BAB V ANALISIS HASIL
Bab ini berisi tentang analisis hasil implementasi sistem.
BAB VI PENUTUP
Bab ini berisi tentang kesimpulan dan saran untuk sistem.
7
BAB II
LANDASAN TEORI
2.1 Citra
Citra adalah sebuah representasi informasi yang diciptakan dalam
bentuk dua dimensi. Dimana representasi tersebut merupakan susunan
array dari bilangan real atau bilangan kompleks yang terwakilkan dalam
bilangan-bilangan bit terhingga. citra adalah gambar pada bidang dua
dimensi (munir, 2004).
Citra tersusun dari titik-titik atau kumpulan elemen-elemen gambar
yang disebut piksel (picture element). Piksel adalah element terkecil dari
sebuah citra digital. Dengan jumlah total piksel adalah M x N. Dimana M
merupakan nilai hight atau nilai tinggi citra digital dan N adalah nilai
width atau nilai lebar citra digital.
2.2 Pemrosesan citra
Pemrosesan citra atau pengolahan citra merupakan proses mengolah
piksel-piksel dalam citra digital untuk satu tujuan tertentu (Sutoyo, 2009).
Beberapa alasan pengolahan citra digital antara lain:
1. Untuk mendapatkan citra asli dari suatu citra yang sudah buruk karena
pengaruh derau. Proses pengolahan bertujuan mendapatkan citra yang
diperkirakan mendekati citra yang sesungguhnya.
2. Untuk mendapatkan citra dengan karakteristik tertentu dan cocok
secara visual yang dibutuhkan untuk tahap lebih lanjut dalam
8
pemrosesan analisis citra seperti croping. Croping dilakukan untuk
mendapatkan bagian tertentu dalam sebuah citra dengan menggunakan
ordinat piksel yang ada dalam sebuah citra, seperti pada gambar 2.1.
Gambar 2.1 Gambar croping
(sumber help matlab)
Dalam proses akuisisi, citra yang akan diolah ditransformasikan dalam suatu
representasi numerik. Pada proses selanjutnya representasi numerik itulah
yang akan diolah secara digital oleh komputer. Sehingga dapat dilakukan
manipulasi pada data-data yang berupa piksel dalam citra tersebut.
9
2.3 Format Citra Digital
Menurut intensitas warna format citra digital dapat dikategorikan
sebagai berikut :
1. Citra RGB (True Color)
Citra RGB merupakan citra yang memiliki tiga komponen
channel yaitu red, green, dan blue. Setiap channel memiliki nilai
intensitas yang berbeda, tergantung warna yang dipresentasikan.
Untuk monitor komputer, nilai rentang paling kecil = 0 dan paling
besar = 255 ini didasarkan pada cara mengungkap 8 digit bilangan
biner yang digunakan oleh mesin komputer. Dengan cara ini,
akan diperoleh warna campuran sebanyak 256 x 256 x 256
=1677726 jenis warna. Sebuah jenis warna bisa dibayangkan
sebagai sebuah fektor dalam ruang 3 dimensi yang biasanya
dipakai dalam matematika, kordinatnya dinyatakan dalam bentuk
3 bilangan, yaitu komponen-x, komponen-y, dan komponen-z.
Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk
warna, komponen – komponen tersebut digantikan oleh R(red),
G(green), dan B(blue). Jadi sebuah jenis warna dapat dituliskan
sebagai berikut: warna = RGB(30,75,255), Putih = (255,255,255),
dan hitam = (0,0,0).
10
Gambar 2.2 : komposisi citra warna
(Sumber : ittelkom.ac.id)
2. Citra Grayscale
Citra grayscale merupakan citra menggunakan fungsi
intensitas untuk menentukan warna. Fungsi intensitas yang digunakan
adalah fungsi intensitas warna keabuan ( hitam putih). Fungsi intensitas
warna yang digunakan pada citra grayscale memiliki kedalaman piksel
yang berbeda-beda. Namun dalam kebanyakan aplikasi, citra grayscale
dikuantisasi pada level 256. Dan membutuhkan 1 byte (8 bit) untuk
mempresentasikan setiap pikselnya.
11
Gambar 2.3 contoh gambar citra Grayscale
(Sumber : ittelkom.ac.id)
3. Citra Biner
Citra biner atau citra monokrom merupakan citra yang memiliki 2
kemungkinan warna pada setiap pikselnya. Citra biner hanya
dikuantisasikan pada 2 level yaitu 0 dan 1, sehingga setiap piksel pada
citra cukup dipresentasikan dengan 1 bit (0 dan 1).
Gambar 2.4 : Contoh citra warna, citra grayscale dan citra biner
(Sumber : ittelkom.ac.id)
12
Jika a1 = 0 dan a2 = 1, maka operasi ini akan mentransformasikan suatu
citra menjadi citra biner. Misal suatu citra memiliki gray level 256,
dipetakan menjadi citra biner, maka fungsi trasformasinya adalah sebagai
berikut:
Piksel – piksel yang nilai intensitasnya dibawah 128 diubah menjadi hitam
(nilai intensitas = 0), sedangkan piksel-piksel yang nilai intensitasnya diatas
128 diubah menjadi putih (nilai intensitas =1)
2.4 Pengertian Frame dan Background
Pengertian frame dan background adalah, frame adalah bingkai
yang mengelilingi sebuah citra sehingga akan memberikan tampilan citra
lain sesuai dengan yang diinginkan. Namun frame yang digunakan harus
sesuai dengan bentuk yang diinginkan sehingga dapat menghasilkan citra
yang diharapkan. Sedangkan pengertian background adalah, latar atau
dasar yang berupa citra dengan corak atau motif tertentu sehingga jika
citra masukan, frame dan background digabungkan akan menghasilkan
sebuah citra baru yang sesuai dengan yang diinginkan.
13
2.5 Pengolahan citra
Pengolahan citra digital (digital image procesing) adalah proses
manipulasi data citra digital dengan tujuan meningkatkan kualitas citra
tersebut atau menghasilkan sebuah citra luaran sesuai dengan yang
diinginkan.
Pengolahan citra pada dasarnya dilakukan dengan cara
memodifikasi setiap titik dalam citra tersebut. Secara garis besar,
modifikasi citra dikelompokkan menjadi:
1. Operasi temporal / berbasis bingkai adalah operasi
pengkombinasian dua buah citra atau lebih dengan menggunakan
operasi matematis. Operasi ini dilakukan titik per titik dengan
lokasi yang bersesuaian pada citra-citra tersebut. Operasi temporal
/ berbasis bingkai diantaranya meliputi pengurangan derau,
penggabungan citra (image blending), deteksi gerakan, dll.
2. Operasi titik adalah operasi pengolahan citra dimana setiap titik
diolah tidak berpengaruh antara satu titik dengan titik yang lain.
Setiap titik pada suatu citra mempunyai 2 karakteristik, yaitu
koordinat yang menunjukkan lokasi dari titik tersebut dalam citra
dan nilai piksel. Beberapa operasi pengolahan citra yang termasuk
dalam kelompok operasi titik adalah operasi modifikasi
kecemerlangan (brightness modification), peningkatan kontras
14
(contrast enhancement), negasi (negation), dan operasi
pengambangan (thresholding).
3. Operasi geometri adalah operasi terhadap koordinat piksel dalam
citra yang memungkinkan terjadinya perubahan bentuk, ukuran,
atau orientasi. Operasi geometri di antaranya meliputi pencerminan
(flipping), rotasi / pemutaran (rorating), penskalaan (scaling /
zooming), dan pembengkokan (warping).
4. Operasi titik bertetangga adalah operasi dimana data dari titik yang
bersebelahan (bertetangga) dengan titik yang ditinjau ikut berperan
dalam mengubah nilai. Operasi bertetangga pada dasarnya
konvolusi antara citra dengan sebuah filter atau mask. Operasi titik
bertetangga di antaranya meliputi penghalusan citra (smoothing),
eliminasi derau, pendeteksi tepi, penajaman citra (sharping).
5. Operasi morfologi adalah operasi yang didasarkan pada segmen
atau region dalam citra yang menjadi perhatian. Operasi morfologi
di antaranya meliputi operasi pencarian batas, dilasi (dilation),
erosi (erosion), penutupan (closing), pembukaan (opening),
pengisian (filling).
Operasi citra pada pengolahan citra pada umumnya diterapkan bila:
i. Perbaikan kualitas penampakan atau untuk menonjolkan
beberapa aspek informasi yang terkandung dalam citra
tersebut.
15
ii. Elemen-elemen dalam citra perlu dikelompokkan atau
dicocokkan untuk diukur.
iii. Sebagian citra perlu digabung dengan citra yang lain.
Contoh perbaikan kualitas citra :
Gambar 2.5 (a) Citra burung nuri yang gelap, (b) Citra burung yang telah
diperbaiki kontrasnya sehingga tampak lebih jelas dan tajam
Sumber (Lussiana ETP)
2.6 Operasi berbasis bingkai
Operasi berbasis bingkai adalah operasi yang melibatkan lebih dari
satu citra dan menghasilkan sebuah citra luaran yang merupakan hasil
oprasi matematis (achmad, 2005).
Operasi berbasis bingkai antara citra A dan citra B akan menghasilkan citra
C, yang persamaannya dapat dituliskan sebagai berikut:
C(x,y) = A(x,y) op B(x,y)
16
dimana op adalah operator yang menghubungkan kedua citra
tersebut. Operasi berbasis bingkai juga dapat melibatkan N buah citra A1
sampai dengan AN yang persamaannya dapat dituliskan sebagai berikut:
C(x,y) = A1(x,y) op A2(x,y) op A3(x,y) ... op AN(x,y)
Berdasarkan operator yang dipakai, operasi berbasis bingkai
meliputi operasi aritmatik dan operasi logika.
Seperti pada penggabungan citra foto dan frame berikut :
(a) (b) (c)
Gambar 2.6
Citra (a) adalah foto, citra (b) adalah frame, dan citra (c) adalah citra hasil
penggabungan citra foto dan citra frame dengan menggunakan operasi
berbasis frame
2.7 Operasi Logika
Operasi logika dapat digunakan pada dua atau lebih citra. Beberapa
operasi logika yang sering digunakan adalah (Ahmad, 2005).:
17
2.7.1 Operasi Logika AND
Persamaan yang digunakan adalah:
C(x,y) = A(x,y) AND B(x,y)
AND(A) AND (B)
BA
Gambar 2.7. Citra hasil operasi logika AND
Jika A adalah citra dengan gambar persegi panjang dan B adalah citra
dengan gambar persegi maka setelah kedua citra tersebut dioperasikan dengan
menggunakan operasi logika AND maka citra hasil operasi yang didapat adalah
citra persegi panjang yang merupakan perpotongan kedua citra tersebut.
2.7.2 Operasi Logika OR
Persamaan yang digunakan adalah:
C(x,y) = A(x,y) OR B(x,y)
B OR (A) OR (B)A
Gambar 2.8. Citra hasil operasi logika OR
Jika A adalah citra dengan gambar persegi panjang dan B adalah citra
dengan gambar persegi maka setelah kedua citra tersebut dioperasikan dengan
menggunakan operasi logika OR maka citra hasil operasi yang didapat adalah citra
poligon yang merupakan perpaduan kedua citra tersebut.
18
2.7.3 Operasi Logika XOR
Persamaan yang digunakan adalah:
C(x,y) = A(x,y) XOR B(x,y)
BA XOR (A) XOR (B)
Gambar 2.9. Citra hasil operasi logika XOR
Jika A adalah citra dengan gambar persegi panjang dan B adalah citra
dengan gambar persegi maka setelah kedua citra tersebut dioperasikan dengan
menggunakan operasi logika XOR maka citra hasil operasi yang didapat adalah
citra poligon yang berlubang dibagian tengah yang merupakan hasil perpaduan
kedua citra tersebut.
2.7.4Operasi Logika NOT
Persamaan yang digunakan adalah:
C(x,y) = NOT A(x,y)
A NOT NOT (A)
Gambar 2.10. Citra hasil operasi logika NOT
Jika A adalah citra dengan gambar persegi panjang maka setelah citra
tersebut dioperasikan dengan menggunakan operasi logika NOT maka citra hasil
operasi yang didapat adalah sebuah citra yang berlubang di bagian persegi
panjang. Hasil yang terbentuk merupakan komplemen dari citra awal.
19
2.8 Format Citra .BMP
Sistem Operasi Windows mempunyai standar untuk format berkas citra yaitu
*.BMP (bitmap) yang dapat dipanggil langsung untuk dimanipulasi dan
ditampilkan karena sistem operasi Windows memiliki perintah API (Aplication
Programming Interface).
Citra bitmap ini dipetakan ke dalam sejumlah bit tertentu dengan nilai
intensitas piksel. Jumlah bit yang dipetakan ini mempresentasikan derajat keabuan
(graylevel) yang akan mempengaruhi kedalaman warna dari citra bitmap.
Setiap berkas bitmap terdiri atas header berkas (BitmapFileHeader), header
bitmap (bitmapinfoheader), informasi palet, dan data bitmap. (Sutoyo,2009)
Header berkas Informasi palet Data bitmapHeader bitmap
14 byte 12 s/d 64 byte 0 s/d 1024 bytes N byte
Gambar 2.11 Format berkas bitmap
Header berkas akan menentukan tipe, ukuran dan layout dari file bitmap.
Stuktur header file dijelaskan pada tabel 2.1.
Tabel 2.1. Tabel isi header berkas bitmap
Byte ke- Panjang (byte) Nama Keterangan
1 – 2 2 BmpType TipeberkasBitmap:
BA = bitmap array,
CI = icon,
BM = bitmap,
CP = color pointer,
PT = pointer
20
3 – 6 4 BmpSize Ukuran berkas bitmap
7 – 8 2 XhotSpot X hotspot untuk kursor
9 – 10 2 YhotSpot Y hotspot untuk kursor
11 – 14 4 OffBits Ofset keawal data bitmap (dalam byte)
Header bitmap akan menentukan dimensi, tipe pemampatan dan format
warna untuk bitmap. Stuktur header bitmap dijelaskan pada tabel 2.2.
Tabel 2.2. Tabel isi header bitmap
Byte ke- Panjang (byte) Nama Keterangan
1 – 4 4 HdrSize Ukuran header dalam satuan byte
5 – 8 4 Width Lebar bitmap dalam satuan piksel
9 – 12 4 Height Tinggi bitmap dalam satuan piksel
13 – 14 2 Planes Jumlah plane (umumnya selalu satu)
15 – 16 2 BitCount Jumlah bit per piksel
17 – 20 4 Compression 0 = takdimampatkan,
1 = dimampatkan
21 – 24 4 ImgSize Ukuranbitmapdalambyte
25 – 28 4 HorzRes Resolusi horizontal
29 – 32 4 VertRes Resolusivertikal
33 – 36 4 ClsrUsed Jumlahwarna yang digunakan
37 – 40 4 ClrImportant Jumlahwarna yang penting
Informasi palet warna berisi struktur RGBQuad yang berisi elemen warna
yang ada pada bitmap. Setiap entry pada tabel terdiri atas tiga buah field, yaitu R
21
(red), G (green), dan B (blue). Struktur informasi palet warna dijelaskan pada
tabel 2.3.
Tabel 2.3. Tabel isi data gambar
Ofset Nama Keterangan
0 RgbBlue Nilai warna biru
1 RgbGreen Nilai warna hijau
2 RgbRed Nilai warna merah
3 RgbReserved Selalu 0
Data bitmap diletakkan sesudah informasi palet.Penyimpanan data bitmap
di dalam berkas disusun terbalik dari bawah keatas dalam bentuk matrik yang
berukuran height × width. Baris ke-0 pada matrik data bitmap menyatakan data
piksel di citra baris terbawah, sedangkan baris terakhir pada matrik menyatakan
data piksel di citra baris teratas. Stuktur informasi data bitmap dijelaskan pada
Gambar 2.12. <header bitmap>
<data bitmap>
220 56 256 255 255 255 10 120 120
0 0 25 152 25 47 25 215 255
Gambar 2.12. Format citra BMP 24-bit
2.9 Format Citra .JPG
Format .JPG adalah format yang mampu mengkompres objek
dengan kualitas sesuai dengan pilihan yang disediakan. Format file ini
22
sering digunakan untuk menyimpan gambar yang akan digunakan untuk
keperluan halaman web. Format JPG ini memiliki ukuran yang lebih kecil
jika dibandingkan dengan format lainya, hal ini terjadi karena format JPG
bertujuan untuk publikasi.
2.10 Kuesioner
Kuesioner merupakan alat pengumpulan informasi dengan
menyampaikan sejumlah pertanyaan tertulis, untuk dijawab secara tertulis
pula oleh responden (Gilbert, 2005)
2.10.1 Kuesioner Terstruktur Yang Terbuka
Tingkat struktur dalam kuesioner adalah tingkat
standarisasi yang diterapkan pada suatu kuesioner. Pada kuesioner
terstruktur yang terbuka dimana pertanyaanpertanyaan diajukan
dengan susunan kata-kata dan urutan yang sama kepada semua
responden ketika mengumpulkan data. Contoh:
Apakah anda merasa bahwa negara kita membutuhkan lebih
banyak atau lebih sedikit peraturan perundang-undangan mengenai
antipolusi?
o Membutuhkan lebih banyak
o Membutuhkan lebih sedikit
o Tidak lebih maupun kurang
o Tidak memberikan pendapat
23
Pertanyaan diatas merupakan contoh yang baik tentang pertanyaan
terstruktur yang terbuka, karena: pertama, tujuannya jelas,
pertanyaan diatas berusaha untuk menentukan sikap subjek
terhadap peraturan perundang-undangan antipolusi dengan cara
yang langsung. Kedua, pertanyaan diatas menggunakan format
yang sangat terstruktur, para responden dibatasi untuk memilih
salah satu diantara empat jawaban.
2.11 Kompleksitas Waktu
Kompleksitas waktu diperlukan dalam menganalisis algoritma, hal ini
dilakukan agar sebuah algoritma tidak hanya diukur dari kemampuan
melakukan proses tetapi juga diketahui tingkat efektifitasnya. Dalam hal ini
algoritma diukur dari jumlah waktu dan ruang (space) memori yang
dibutuhkan untuk menjalankannya.
Algoritma dikatakan efisien jika suatu algoritma mampu
meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang
suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan
jumlah data yang diproses. Dalam praktik, dapat diukur waktu yang
diperlukan oleh sebuah algoritma dengan menghitung banyaknya
operasi/instruksi yang dieksekusi. Jika mengetahui besaran waktu (dalam
satuan detik) untuk melaksanakan sebuah operasi tertentu, maka dapat
dihitung berapa waktu sesungguhnya untuk melaksanakan algoritma tersebut.
24
Dalam melakukan perhitungan perlu diperhatikan model abstrak
pengukuran waktu/ruang yang harus independen dari pertimbangan mesin
dan compiler apapun. Besaran yang dipakai untuk menerangkan model abstrak
pengukuran waktu/ruang ini adalah kompleksitas algoritma. Ada dua macam
kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas ruang.
Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang
dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan
n. Kompleksitas ruang S(n), diukur dari memori yang digunakan oleh struktur
data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.
Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat
menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma
dengan meningkatnya ukuran masukan n.
Dalam praktek, kompleksitas waktu dihitung berdasarkan jumlah
operasi abstrak yang mendasari suatu algoritma, dan memisahkan analisis dari
implementasi.
2.11.1.1 Kompleksitas Waktu Asimptotik
Kompleksitas waktu detail dari sebuah algoritma, terkadang
tidak terlalu diperlukan yang diperlukan adalah besaran dari kompleksitas
waktu yang mendekati besarnya kompleksitas waktu yang sebenarnya.
Kompleksitas waktu yang demikian disebut dengan kompleksitas waktu
asimtotik yang dinotasikan dengan notasi “O” disebut notasi “O-Besar”
(Big-O).
25
Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik
adalah sebagai berikut:
1. Jika kompleksitas waktu T(n) dari algoritma diketahui,
Contoh: (i) pada algoritma cari_maksimum
T(n) = n – 1 = O(n)
(ii) pada algoritma pencarian_beruntun
Tmin(n) = 1 = O(1)
Tmax(n) = n = O(n)
Tavg(n) = (n + 1)/2 = O(n),
(iii) pada algoritma pencarian_biner,
Tmin(n) = 1 = O(1)
Tmax(n) = 2log n = O(2log n)
(iv) pada algoritma selection_sort
……….. (2.1)
……….. (2.2)
……….. (2.3)
)(2
)1()( 2nOnnnT =−
=
(v) T(n) = (n + 2) log(n2 + 1) + 5n2 = O(n2)
Penjelasannya adalah sebagai berikut:
T(n) = (n + 2) log(n2 + 1) + 5n2
= f(n)g(n) + h(n),
Kita rinci satu per satu:
⇒ f(n) = (n + 2) = O(n)
……….. (2.4)
26
⇒ g(n) = log(n2 + 1) = O(log n), karena
log(n2 + 1) ≤ log(2n2) = log 2 + log n2
= log 2 + 2 log n ≤ 3 log n untuk n > 2
⇒ h(n) = 5n2 = O(n2)
maka
T(n) = (n + 2) log(n2 + 1) + 5n2
= O(n)O(log n) + O(n2)
=O(n log n)+O(n2)=O(max(n log n, n2)) = O(n2)
…….. (2.5)
2. Menghitung O-Besar untuk setiap instruksi di dalam algoritma
dengan panduan di bawah ini, kemudian menerapkan teorema O-
Besar.
(a) Pengisian nilai (assignment), perbandingan, operasi aritmetik,
read, write membutuhkan waktu O(1).
(b) Pengaksesan elemen larik atau memilih field tertentu dari sebuah
record membutuhkan waktu O(1).
Contoh:
read(x); O(1)
x:=x + a[k]; O(1) + O(1) + O(1) = O(1)
writeln(x); O(1)
27
Kompleksitas waktu asimptotik = O(1) + O(1) + O(1) = O(1)
Penjelasan: O(1) + O(1) + O(1) = O(max(1,1)) + O(1) ……….. (2.6)
= O(1) + O(1) = O(max(1,1)) = O(1)
(c) if C then S1 else S2; membutuhkan waktu
TC + max(TS1,TS2)
Contoh:
read(x); O(1)
if x mod 2 = 0 then O(1)
begin
x:=x+1; O(1)
writeln(x); O(1)
end
else
writeln(x); O(1)
Kompleksitas waktu asimptotik:
= O(1) + O(1) + max(O(1)+O(1), O(1))
= O(1) + max(O(1),O(1)) ……….. (2.7)
= O(1) + O(1)
= O(1)
(d) Kalang for. Kompleksitas waktu kalang for adalah jumlah
pengulangan dikali dengan kompleksitas waktu badan (body)
kalang.
Contoh:
28
for i:=1 to n do
jumlah:=jumlah + a[i]; O(1)
Kompleksitas waktu asimptotik = n . O(1)
……….. (2.8) = O(n .1)
= O(n)
Contoh: kalang bersarang
for i:=1 to n do
for j:=1 to n do
a[I,j]:=0; O(1)
Kompleksitas waktu asimptotik:
……….. (2.9) nO(n) = O(n.n) = O(n2)
(e) While C do S; dan repeat S until C; Untuk kedua buah kalang,
kompleksitas waktunya adalah jumlah pengulangan dikali
dengan kompleksitas waktu badan C dan S.
Contoh: kalang tunggal sebanyak n-1 putaran
i:=2; O(1)
while I <= n do O(1)
begin
jumlah:=jumlah + a[i]; O(1)
i:=i+1; O(1)
end;
Kompleksitas waktu asimptotiknya adalah
29
= O(1) + (n-1) { O(1) + O(1) + O(1) }
= O(1) + (n-1) O(1)
= O(1) + O(n-1) ……….. (2.10)
= O(1) + O(n)
= O(n)
Pengelompokan Algoritma Berdasarkan Notasi O-Besar
Tabel 2.4: Pengelompokan Algoritma
Berdasarkan Notasi O-Besar
Kelompok Algoritma Nama O(1) O(log n) O(n) O(n log n) O(n2) O(n3) O(2n) O(n!)
konstan logaritmik lanjar n log n kuadratik kubik eksponensial faktorial
30
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Analisa dan perancangan sistem digunakan untuk menggambarkan sistem
yang akan dibangun, dalam hal ini adalah proses-proses yang dibutuhkan dalam
penelitian, perangkat lunak yang dibutuhkan dalam pengerjaan program,
informasi perangkat keras yang digunakan untuk melakukan penelitian, serta
rancangan interface yang akan di bangun dalam sistem.
3.1 Rancangan Umum
Secara umum, program tugas akhir ini menitik beratkan pada
pemrosesan citra digital. Meskipun tujuan akhirnya adalah melakukan
pembuatan aplikasi salon potong rambut untuk melakukan simulasi
pemilihan model rambut. Aplikasi salon kecantikan ini bertujuan untuk
melakukan simulasi pemilihan model rambut dengan menggunakan citra
wajah pelanggan. Aplikasi salon ini menggunakan konsep-konsep serta
algoritma pemrosesan citra digital.
Dalam aplikasi salon ini citra yang digunakan adalah citra wajah
pelanggan dan citra model rambut. Citra wajah pelanggan diambil
menggunakan kamera digital sedangkan citra model rambut sudah
disiapkan terlebih dahulu. Citra wajah yang diambil dengan menggunakan
kamera digital akan diolah terlebih dahulu untuk mendapatkan citra wajah
yang bisa digunakan untuk proses selanjutnya. Setelah didapat hasil citra
wajah yang dibutuhkan selanjutnya dilakukan proses penggabungan citra
31
wajah dan citra model rambut sehingga dapat dilakukan simulasi
pemilihan model rambut oleh pelanggan.
Aktivitas yang dilakukan oleh sistem ditunjukan pada Gambar 3.1
Citra hasil penggabungan operasi logika and
Citra wajah
Citra model rambut dan frame
Citra hasil penggabungan Operasi berbasis frame
Sistem penggabungan citra menggunakan
operasi berbasis frame, dan Oeprasi logika and
User
Gambar 3.1 Diagram konteks
3.2 Analisa kebutuhan Proses
Dari Uraian mengenai gambaran umum sistem pada Gambar 3.1
terdapat beberapa proses yang harus dilakukan oleh sistem yaitu proses
penggabungan citra dengan menggunakan operasi logika and dan proses
penggabungan citra dengan menggunakan operasi berbasis frame. Pada
penggabungan citra menggunakan operasi logika and citra masukan
dirubah menjadi biner terlebih dahulu. Hal ini dilakukan karena operasi
logika and hanya dapat dilakukan pada citra biner.
Dari penjelasan proses pada Gambar 3.1 maka di dapat Data Flow
Diagram (DFD) level 1yang ditunjukkan pada Gambar 3.2
32
Citra wajah
Citra model ram
but
Gambar 3.2 DFD level 1
3.2.1 Proses binerisasi
Proses binerisasi adalah proses yang harus dilakukan. Hal ini
dikarenakan untuk melakukan proses penggabungan citra dengan
menggunakan operasi logika and citra masukan yang diperlukan adalah
citra biner (bernilai 0 dan 1 dalam piksel gambar). Proses binerisasi yang
dirancang dapat dilihat pada Gambar 3.3
Citra model rambut biner
Citra wajah biner
1 Binerisasi
2.penggabungan menggunakan operasi
logika and
3.penggabungan menggunakan operasi
berbasis frame
User
Citra hasil nggabngan nggukan
operasi erbasis
Citra model ram
butpe u
me na
b frame
Citra frame
Citra waja Citra
hasil penggabunganmenggunakan operasi
h
logika
33
Mulai
Citra asli
Image_biner = im2bw(originalimage)
Selesai
Gambar 3.3 Proses binerisasi
Keterangan
• Proses binerisasi dilakukan pada citra asli menggunakan perintah
yang sudah ada di dalam matlab yaitu im2bw yang digunakan
untuk melakukan proses binerisasi atau merubah piksel citra asli
menjadi 0 dan 1. Sebelum proses binerisasi proses graythresh
dilakukan lebih dahulu. Graythresh adalah perintah yang sudah ada
didalam matlab, yang dapat digunakan untuk menentukan nilai
ambang piksel citra untuk dirubah menjadi 0 dan 1.
3.2.2 Proses penggabungan menggunakan operasi logika and
Proses penggabungan citra menggunakan operasi logika and
merupakan proses utama yang dilakukan. Dalam hal ini penggabungan
34
citra wajah dan citra model rambut dilakukan dengan menggunakan
operasi logika and. Proses ini dimulai dengan melakukan operasi logika
and pada setiap piksel citra wajah dan model rambut. Sehingga didapat
sebuah citra luaran berupa citra hasil penggabungan citra wajah dan citra
model rambut.
Proses ini dapat dilihat pada Gambar 3.4. proses penggabungan
citra wajah dan model rambut menggunakan operasi logika and.
A = gambar wajah B = gambar rambut
C = im2bw (a)
D = im2bw (b)
E = c & d
Selesai
Mulai
Gambar 3.4. Proses penggabungan citra wajah dan
model rambut menggunakan operasi logika and.
35
Keterangan :
• Pada proses ini yang pertama dilakukan adalah merubah kedua
buah citra masukan (citra wajah dan citra model rambut) dari
format citra warna atau RGB menjadi citra biner.
• Setelah kedua buah citra masukan menjadi biner maka dilakukan
operasi logika and, sehingga hasil dari operasi logika tersebut
adalah citra hasil penggabungan antara citra wajah dan citra model
rambut dalam format citra biner.
3.2.3 Proses penggabungan menggunakan operasi berbasis frame
Proses penggabungan citra menggunakan operasi berbasis
frame merupakan proses utama yang dilakukan. Dimana dalam
proses penggabungan ini dilakukan berdasarkan citra frame yang
digunakan, dengan cara melakukan perubahan pada piksel citra
frame, dimana apabila piksel pada citra frame bernilai 0 atau hitam
maka piksel tersebut akan diganti dengan piksel citra wajah.
Sedangkan apabila pada piksel citra frame bernilai 1 atau putih
maka pada piksel frame tersebut akan diganti dengan nilai piksel
dari citra model rambut. Sehigga didapat hasil penggabungan citra
wajah dan model dalam format citra warna.
36
Imread(gambar_wajah) Imread(frame) Imread(rambut)
i<tinggi?
j<lebar?
Frame==255
Hasil=rambut Hasil=wajah
selesai
benar
benar
benar
Sala
Salah
i++ j++
i = 1; j=1
(tinggi, lebar = Ukuran Citra wajah)
Sala
Mulai
Gambar 3.5 Algoritma penggabungan citra wajah dan rambut
menggunakan operasi berbasis frame
Keterangan :
• Pada proses ini yang pertama dilakukan adalah melakukan
pengecekan terhadap ketiga ukuran citra masukan. Jika ketiga
37
• Setelah dilakukan pengecekan pada ukuran citra masukan, proses
selanjutnya adalah melakukan penggabungan citra wajah dan citra
model rambut berdasarkan citra frame. Hal ini dilakukan dengan
cara merubah nilai piksel dalam citra frame. Dimana citra frame
sendiri berupa citra biner. Perubahan nilai ini dilakukan dengan
cara, apabila pada piksel citra frame bernilai 0 atau hitam maka
pada ordinat piksel tersebut nilainya akan di ganti dengan nilai
piksel citra wajah pada ordinat yang sama. Sedangkan apabila pada
piksel citra frame bernilai 1 atau putih maka pada ordinat piksel
tersebut nilainya akan di ganti dengan nilai piksel citra model
rambut pada ordinat yang sama juga.
3.2.4 Pengujian sistem dengan pengamatan visual
Pengujian dengan pengamatan visual dilakukan dengan
membagi 30 kuesioner berisikan pertanyaan mengenai: segi
tampilan aplikasi, segi penggunaan aplikasi, segi waktu
pemrosesan, segi hasil pemrosesan, dan dari segi manfaat
aplikasi.Kelima pertanyaan ini digunakan untuk mengetahui
pendapat pengguna terhadap tampilan, penggunaan, waktu, hasil
dan manfaat dari aplikasi, sehingga dapat dikethui kemampuan
38
serta kelebihan dan kekurangan dari aplikasi. Kuesioner dibagikan
kepada 30 responden yang terdiri dari pelanggan salon, pegawai
salon, dan mahasiswa USD. Ketiga kalangan responden tersebut
dipilih supaya dapat mewakili semua kalangan pengguna aplikasi
ketika aplikasi diterapkan. Dari hasil 30 responden ini dilakukan
perhitungan terhadap jawaban dari kelima pertanyaan yang ada
dalam kuesioner tersebut. Rancangankuesioner yang akan
digunakan, adalah sebagai berikut :
KUISIONER IMPLEMENTASI OPERASI LOGIKA DAN OPERASI BERBASIS FRAME DALAM SEBUAH HAIR STYLING SIMULATOR
Cara pengisian : Berilah jawaban pada semua pertanyaan yang ada dengan cara memberikan tanda silang (x), pada jawaban yang anda yakini benar.
1. Dilihat dari segi tampilan apakah aplikasi ini : a. Kurang menarik d. Sangat menarik b. Tidak menarik c. Cukup menarik
2. Dilihat dari segi pemakaian atau pengoperasian :
a. Sulit d. Sangat Mudah b. Sangat sulit c. Mudah
3. Dilihat dari waktu pemrosesan yang dibutuhkan :
a. Lambat d. Sangat Cepat b. Sangat lambat c. Cepat
4. Dilihat dari hasil penggabungan wajah dan model rambut :
a. Kurang Memuaskan d. Sangat memuaskan b. Tidak Memuaskan c. Cukup memuaskan
39
5. Dilihat dari segi manfaat : a. Kurang bermanfaat d. Sangat bermanfaat b. Tidak bermanfaat c. Bermanfaat
3.3 Ukuran Piksel Citra
Dalam menggunakan aplikasi ini, citra yang digunakan memiliki
ukuran yang sudah ditentukan, yaitu berukuran 1600x1200 piksel. Ukuran
ini dipilih dikarenakan pada sejumlah camera digital merupakan ukuran
default.
3.4 Perancangan tampilan antar muka
Rancangan tampilan antar muka dalam aplikasi ini adalah sebagai
berikut :
3.4.1 Halaman utama
Gambar 3.6 Halaman utama
Bantuan kreator Keluar
Waktu proses
Model rambutBuka foto
Proses Simpan
Waktu proses
Clear
40
Pada program ini tampilan awal dan tampilan utama menjadi satu.
Hal ini diterapkan supaya tampilan akan dapat di akses dengan lebih cepat
dan lebih mudah, sehingga dapat mengurangi kesalahan dalam
menjalankan program yang dilakukan oleh user.
Pada rancangan tampilan awal diatas terdapat dua tombol fungsi
yaitu :
Tombol bantuan
Tombol bantuan berisi sebuah video cara
penggunakan aplikasi.
Tombol kreator
Tombol kreator berisi tentang informasi pembuat
aplikasi
Tombol keluar
Tombol keluar adalah tombol yang memiliki
fungsi exitatau keluar ketika program telah selesai
dijalankan.
Pada rancangan tampilan utama diatas juga terdapat beberapa
tombol yaitu :
Tombol buka foto
Tombol buka foto berfungsi untuk membuka dan
menampilkan direktori dimana foto wajah
pengguna yang akan digunakan disimpan.
Tombol model rambut
41
Tombol model rambut berfungsi untuk membuka
dan menampilkan direktori dimana foto model
rambut disimpan.
Tombol proses
Tombol proses berfungsi untuk melakukan
penggabungan antara foto wajah dan model
rambut pengguna yang sudah dipilih.
Tombol simpan
Tombol simpan berfungsi untuk melakukan
penyimpanan terhadap hasil dari penggabungan
foto wajah dan model rambut.
Tombol clear
Tombol clear berfungsi untuk mengosongkan
jendela buka wajah, model rambut, dan hasil
penggabungan setelah program slesai dijalankan.
42
3.4.2 Halaman kreator
Rancangan halaman kreator dapat dilihat pada Gambar 3.7
Dosen Pembimbing : Anastasia Rita Widiarti, S.Si. , M.Kom
Email : [email protected]
Nim : 06 5314 003
Nama : Martinus Prima Yustanto
Kreator
Gambar 3.7 halaman kreator.
Pada halaman kreator ini digunakan untuk memberikan informasi
tentang pembuat program dan kontak yang dapat dihubungi. Pada halaman
ini hanya berisi inforasi mengenai pembuat program.
3.4.3 Haman Bantuan
Gambar 3.8 halaman bantuan
Bantuan
5. Tekan tombol clear untuk memulai proses baru. 4. Simpan hasil proses jika diinginkan 3. Tekan tombol proses 2. Pilih model rambut yang diinginkan 1. Masukan foto wajah
Cara penggunaan Aplikasi :
43
Pada halaman bantuan ini akan ditampilkan informasi mengenai
penggunaan aplikasi hair styling simulator.
3.4.4 Buka Foto
Buka foto merupakan tampilan open picture dialog, yaitu
form yang digunakan untuk membuka file foto wajah dari
pengguna yang akan di proses. File citra yang akan diproses
adalah file citra dengan ukuran 1200 x 1600 piksel.
LOOK UP
File Name
File Type
Open
Cancel
Gambar 3.9 tampilan buka foto
3.4.5 Model Rambut
Model rambut merupakan tampilan open picture dialog ,
yaitu form yang digunakan untuk membuka file citra model
rambut dengan exstensi .bmp dan dengan ukuran 1200x1600
piksel.
44
LOOK UP
File Name Open
File Type Cancel
Gambar 3.10 halaman model rambut
3.4.6 Simpan
Simpan adalah tampilan untuk menampilkan letak
direktori atau folder yang akan digunakan untuk menyimpan
data hasil penggabungan citra wajah dan model rambut.
Gambar 3.10 tampilan simpan
LOOK UP
File Name
File Type
Open
Cancel
Gambar 3.11 halaman simpan
45
3.4.7 Form pesan
Form pesan ini berisi pemberitahuan kepada user tentang pesan-
pesan yang berasal dari program. Seperti proses berhasil dilakukan dan
lain sebagainya.
Pesan
Pesan.................................................
X
Ok
Gamabr 3.12 gambar pesan program
3.4.8 Form dialog
Form dialog ini berfungsi untuk memberikan pesan yang
membutuhkan konfirmasi kepada user.
X
Apakah anda akan keluar dari aplikasi ini??
Ok
Gambar 3.13 gambar form dialog
46
3.5 Kebutuhan perangkat keras dan perangkat lunak
Spesifikasi yang digunakan untuk membuat tugas akhir
ini adalah sebagai berikut:
• Processor : Intel Cor2Dua 1,8 GHz
• Memory : RAM 4 GB DDR 3
• Oprating System : Windows 7 profesional
• Software : Matlab 2009
3.6 Data
Data yang akan digunakan dalam pembuatan aplikasi ini
didapat dari gambar model rambut yang di download dari
internet atau gambar model rambut yang dibuat dengan
menggunakan aplikasi photoshop.
47
BAB IV
IMPLEMENTASI SISTEM
Program yang dibuat pada tugas akhir ini adalah program yang digunakan
untuk melakukan simulasi pemilihan model rambut dengan menggunakan operasi
berbasis bingkai dan operasi logika and. Pada bab ini akan dijelaskan mengenai
implementasi sistem. Dan akan dilakukan analisis terhadap hasil dari
implementasi sistem tesebut.
4.1 Implementasi Binerisasi
Implementasi Binerisasi: 1. Inputkan citra asli 2. Gunakan im2bw yang merupakan sintak asli matlab 3. selesai
Keterangan :
Proses binerisasi ini digunakan untuk merubah format citra masukan dari
citra RGB menjadi citra biner. Hal ini merupakan bagian dari proses
penggabungan citra menggunakan operasi logika and. Dalam melakukan
binerisasi citra masukan, proses ini menggunakan fungsi dari matlab yaitu
fungsi im2bw.
4.2 Implementasi Operasi Logika And
Implementasi Operasi Logika And
1. Inputkan citra wajah
48
2. Inputkan citra rambut
3. Binerkan citra wajah dengan im2bw
4. Binerkan citra rambut dengan im2bw
5. Lakukan proses logika andpada citra biner wajah dan citra biner
rambut
6. Selesai
Keterangan :
Implementasi operasi logika and ini dimulai dengan memasukan
citra wajah dan citra model rambut. Selanjutnya kedua citra masukan akan
dilakukan proses binerisasi menggunakan fungsi matlab yaitu im2bw.
Setalah kedua citra masukan menjadi citra biner selanjutnya dilakukan
proses penggabungan citra menggunakan operasi logika and. Hasil dari
proses ini dapat dilihat pada: Gambar 4.1 hasil operasi logika and
Gambar 4.1 hasil operasi logika and
49
4.3 Implementasi Operasi Berbasis Frame
Implementasi Operasi Berbasis Frame:
1. Inputkan citra wajah
2. Inputkan citra frame
3. Inputkan citra rambut
4. Dapatkan ukuran citra wajah
5. Jika nilai variabel i kurang dari tinggi ukuran citra wajah lakukan
langkah 6, jika tidak lakukan langkah 8.
6. Jika nilai variabel j kurang dari lebar ukuran citra wajah lakukan
langkah 7, jika tidak lakukan langkah 5.
7. Jika nilai piksel citra frame 255 lakukan langkah 7.1, jika tidak
lakukan langkah 7.2.
7.1 isi citra hasil dengan citra rambut
7.2 isikan citra hasil dengan citra wajah
8. Selesai
Keterangan :
Pada proses ini akan dilakukan penggabungan citra wajah dan
model rambut menggunakan operasi berbasis frame. Pertama yang
dilakukan proses adalah memasukan citra wajah, citra model rambut, dan
citra frame. Kemudian akan dilakukan proses penghitungan ukuran piksel
citra wajah dengan menggunakan variabel i untuk mengetahui tinggi citra
wajah. Dan varfiabel j untuk mengetahui ukuran lebar citra wajah. Setelah
didapat ukuran piksel citra maka akan dilanjutkan proses selanjutnya.
50
Dimana jika nilai piksel citra frame adalah 255 maka pada citra hasil akan
diisis dengan nilai piksel dari citra model rambut. Sedangkan jika piksel
pada citra frame bernilai 0 maka pada citra hasil akan diisi dengan nilai
piksel dari citra wajah. Sehingga dapat menghasilkan penggabungan citra
wajah dan model rambut dalam format citra warna atau RGB. Hasil dari
proses ini dapat dilihat pada Gambar 4.2 hasil penggabungan
menggunakan operasi berbasis frame.
Gambar 4.2 hasil penggabungan
menggunakan operasi berbasis frame.
4.4 Implementasi Pengujian Sistem Dengan Pengamatan Visual
Dalam implementasi pengujian dengan pengamatan visual, dilakukan
dengan cara membagikan kuesioner kepada 30 responden yang terdiri dari
pegawai salon, pelanggan salon, dan mahasiswa USD. Dari hasil pembagian
kuesioner tersebut didapatkan data sebagai berikut :
51
Tabel 4.1: Hasil Kuesioner Segi Tampilan
No. Kurang Menarik Tidak
Menarik
Cukup
Menarik
Sangat
Menarik
1. 0% 0% 70% 30%
Dari hasil 30 responden kuesioner diketahui bahwa, 70%
responden memberikan respon, dari segi tampilan menyatakan cukup
menarik. Sedangkan 30% responden menyatakan bahwa tampilan program
sangat menarik.
Pertanyaan :
Dilihat dari segi pemakaian atau pengoperasian :
Tabel 4.2 Hasil Kuesioner Segi Pemakaian/Pengoperasian
No. Sulit Sangat Sulit Mudah Sangat
Mudah
1. 0% 0% 50% 50%
Dari hasil 30 responden kuesioner diketahui bahwa, 50%
responden memberikan respon, dari segi pemakian menyatakan mudah,
sedangkan 50% responden menyatakan bahwa segi pemakian program
sangat mudah.
52
Pertanyaan :
Dilihat dari waktu pemrosesan yang dibutuhkan:
Tabel 4.3: Hasil Kuesioner Segi Waktu Pemrosesan
No. Lambat Sangat
Lambat
Cepat Sangat Cepat
1. 0% 0% 46,67% 55.33%
Dari hasil 30 responden kuesioner diketahui bahwa, 46,67%
responden memberikan respon, dari segi waktu pemrosesan menyatakan
cepat, sedangkan 53,33% responden menyatakan bahwa waktu pemrosesan
sangat cepat.
Pertanyaan :
Dilihat dari hasil penggabungan citra :
Tabel 4.4: Hasil Kuesioner Segi Hasil Penggabungan Rambut
No. Kurang
Memuaskan
Tidak
Memuaskan
Cukup
Memuaskan
Sangat
Memuaskan
1. 3.3% 3.3% 80% 13.3%
Dari hasil 30 responden kuesioner diketahui bahwa, 3,3%
responden memberikan respon, dari segi hasil penggabungan rambut
kurang memuaskan, 3,3% tidak memuaskan, 80% cukup memuaskan dan.
53
13,3% responden menyatakan bahwa hasil penggabungan citra wajah dan
model rambut sangat memuaskan
Pertanyaan :
Dilihat dari segi manfaat :
Tabel 4.5 Hasil Kuesioner Segi Manfaat
No. Kurang
Bermanfaat
Tidak
Bermanfaat
Bermanfaat Sangat
Bermanfaat
1. 0% 0% 63.3% 36.7%
Dari hasil 30 responden kuesioner diketahui bahwa, 63,3%
responden memberikan respon, dari segi manfaat menyatakan bermanfaat.
Sedangkan 36,7% responden menyatakan bahwa tampilan program sangat
bermanfaat.
4.5 Implementasi Ukuran Piksel Citra
Pada implementasi ukuran piksel citra ini ukuran citra yang
digunakan adalah 1200 x 1600 hal. Ukuran ini merupakan ukuran yang
dapat di jadikan default ukuran kamera digital. Dengan menggunakan
ukuran 1200 x 1600 piksel ini proses dapat berjalan dengan cepat. Hal ini
dapat dilihat pada Tabel 4.6 tabel kecepatan proses berdasarkan ukuran
piksel:
54
Tabel 4.6 Tabel kecepatan proses berdasarkan ukuran piksel
Ukuran piksel
Waktu yang dibutuhkan
Operasi berbasis
frame
Operasi logika and
1200 x 1600 0.712233 s 0.236697 s
2200 x 3200 3.90618 s 0.714414 s
4200 x 6200 32.5422 s 4.21352 s
4.6 Implementasi Tampilan
Tampilan awal dan tampilan utama yang diimplementasikan adalah
sebagai berikut :
4.6.1 Tampilan Awal dan Tampilan Utama
Pada Tampilan awal dan tampilan utama ini terdapat lima
buah tombol, yaitu:
1. Tombol buka foto, tombol ini berfungsi untuk
memasukan foto wajah yang akan digunakan dalam
proses penggabungan.
2. Tombol model rambut, tombol ini berfungsi untuk
memilih dan memasukan model rambut yang akan
digunakan dalam proses penggabunga.
55
3. Tombol proses, tombol ini digunakan untuk
melakukan proses penggabungan citra wajah dan
cotra model rambut.
4. Tombol simpan, tombol ini digunakan untuk
menyimpan hasil dari proses penggabungan citra
wajah dan citra model rambut.
5. Tombol clear, tombol ini berfungsi untuk
mengosongkan enam jendela pada aplikasi setelah
proses selesai dilakukan.
Pada tampilan awal dan tampilan utama aplikasi ini juga
terdapat enam buah jendela yaitu :
1. Jendela buka foto, jendela ini berfungsi untuk
menampilkan foto yang akan digunakan dalam
proses penggabungan.
2. Jendela model rambut, jendela ini berfungsi untuk
menampilkan model rambut yang sudah dipilh dan
akan digunakan proses penggabungan
3. Jendela hasil proses penggabungan menggunakan
operasi berbasis frame, jendela ini berfungsi untuk
menampilkan hasil proses penggabungan
menggaunakan operasi berbasis frame.
56
4. Jendela hasil proses menggunakan operasi logika
and, jendela ini berfungsi untuk menampilkan hasil
proses penggabungan menggunakan operasi logika
and.
5. Jendela waktu proses menggunakan operasi berbasis
frame, jendela ini berfungsi untuk menampilkan
waktu yang dibutuhkan proses penggabungan
dengan menggunakan operasi berbasis frame.
6. Jendela waktu proses menggunakan operasi logika,
jendela ini berfungsi untuk menampilkan waktu
yang dibutuhkan proses penggabungan dengan
menggunakan operasi logika and
.
Pada Tampilan awal dan tampilan utama ini terdapat tiga
buah tombol fungsi, yaitu:
1. Tombol fungsi kreator, tombol fungsi kreator ini
berfungsi untuk menampilkan profil pembuat
aplikasi
2. Tombol fungsi bantuan, tombol fungsi bantuan ini
berfungsi untuk menampilkan video cara
penggunaan aplikasi.
3. Tombol fungsi EXIT, tombol fungsi ini berfungsi
untuk keluar dari program.
57
Tampilan awal dan tampilan utama ini ditunjukan pada Gambar
4.3 tampilan utama
Gambar 4.3 tampilan utama
4.6.2 Tampilan Buka Foto
Tampilan buka foto adalah tampilan yang digunakan untuk
memasukan foto wajah yang akan digunakan untuk proses
penggabungan. Tampilan ini ditunjukan pada Gambar 4.4
tampilan buka foto
Gambar4.4 tampilan buka foto
58
4.6.3 Tampilan Model Rambut
Tampilan model rambut adalah tampilan yang digunakan
untuk memasukan model rambut yang akan digunakan untuk
proses penggabungan. Tampilan ini ditunjukan pada Gambar 4.5
tampilan model rambut.
Gambar4.5 tampilan model rambut.
4.6.4 Tampilan Simpan
Tampilan simpan adalah tampilan yang digunakan untuk
melakukan penyimpanan terhadap citra hasil proses penggabungan.
Tampilan ini dapat dilihat pada Gambar 4.6 tampilan simpan.
59
Gambar 4.6 tampilan simpan
4.6.5 Tampilan Kreator
Pada tampilan ini akan ditampilkan informasi tetang
pembuat program. Tampilan ini ditunjukan pada Gambar 4.7
tampilan kreator.
Gambar 4.7 tampilan kreator.
60
4.6.6 Tampilan Bantuan
Tampilan ini berfungsi menampilkan video cara
penggunaan aplikasi hair styling simulator.
4.6.7 Tampilan Form Dialog
Form dialog ini akan tampil jika program membutuhkan
persetujuan kepada user untuk menjalankan beberapa proses.
Selain itu tampilan ini akan keluar ketika program menyampaikan
beberapa pesan kepada pengguna mengenai hasil dari eksekusi
program atau mengenai kesalahan program yang terjadi. Berikut
adalah tampilan form dialog yang digunakan dalam program
simulasi pemilihan model rambut.
1. Peringatan ukuran piksel
Form dialog ini digunakan untuk memberikan informasi
kepada pengguna mengenai informasi ukuran piksel citra yang
akan digunakan. Jika ukuran piksel citra yang akan digunakan
sudah sesuai dengan aturan yang ada maka sistem akan
menampilkan form dialog berupa :
61
Gambar 4.8 form dialog data inputan jika ukuran sama
Tetapi jika ukuran piksel citra yang akan digunakan tidak sesuai dengan aturan yang ada maka sistem akan menampilkan form dialog berupa :
Gambar 4.9 form dialog data inputan jika ukuran tidak sama
2. Form dialog Save Form dialog ini digunakan untuk melakukan pemberitahuan kepada pengguna bahwa proses penyimpanan telah berhasil dilakukan.
Gambar 4.10 form dialog penyimpanan berhasil dilakukan
62
3 Form dialog Clear
Form dialog ini digunakan untuk meyakinkan pengguna bahwa
pengguna akan melakukan perintah clear, dan akan menghapus
seluruh data yang ada dalam jendela aplikasi.
Gambar 4.11 form dialog Pernyataan ketika melakukan clear
Dan setelah perintah clear berhasil dilakukan maka sistem
akan menampilkan form dialog berupa Clear sukses kepda
pengguna, sebagai pemberitahuan bahwa perintah clear telah
berhasil dilakukan.
Gambar 4.12 form dialog Pernyataan ketika sudah
Melakukan clear
63
BAB V
ANALISA HASIL
5.1 Uji Coba Program Dan Analisa Sistem
5.1.1 Uji Coba Program
Hasil penggabungan citra wajah dan citra model rambut
menggunakan pemrosesan citra berbasis frame, tidak mengalami
perubahan warna, karena operasi ini tidak bepengaruh terhadap jenis citra.
Pada proses penggabungan menggunakan opeasi berbasis frame ini,
digunakan tiga buah citra masukan dan menghasilkan sebuah citra luaran.
Citra yang digunakan adalah citra wajah, citra model rambut, dan citra
frame sedangkan citra luaran yang dihasilkan adalah citra hasil
penggabungan citra wajah dan model rambut menggunakan operasi
berbasis frame dalam bentuk citra warna seperti pada Gambar 5.1.
(a) (b) (c) (d)
Gambar 5.1. (a) citra wajah, (b) citra model rambut, (c) citra frame, dan
(d) citra hasil penggabungan.
64
Sementara operasi kedua yaitu, operasi penggabungan citra wajah
dan model rambut menggunakan operasi logika and. Pada operasi ini citra
wajah dan citra model rambut akan dirubah terlebih dahulu menjadi citra
biner, yang selanjutnya akan dilakukan operasi logika and untuk
melakukan penggabungannya. Pada proses penggabungan menggunakan
operasi logika and ini, digunakan dua buah citra masukan dan sebuah citra
luaran yang berupa citra biner. Citra masukan yang digunakan adalah citra
wajah dan citra model rambut. Sedangkan citra luaran yang dihasilkan
adalah citra hasil penggabungan antara citra wajah dan citra model rambut
dalam bentuk citra biner. Seperti pada Gambar 5.2.
(a) (b) (c)
Gambar 5.2.(a) citra wajah, (b) citra model rambut, (c) citra hasil
penggabungan.
65
5.1.2 Analisa Sistem
Proses penggabungan dengan menggunakan operasi berbasis frame
dan operasi logika ini dipengaruhi oleh ukuran piksel citra yang
digunakan. Dimana apabila ukuran piksel citra yang digunakan semakin
besar maka waktu yang dibutuhkan proses juga semakin lama. Selain itu
proses penggabungan dengan menggunakan operasi berbasis frame
membutuhkan waktu yang lebih lama dibandingkan dengan proses
penggabungan dengan menggunakan operasi logika and. Hal ini
disebabkan proses peubahan nilai piksel pada penggabungan dengan
menggunakan operasi berbasis frame dilakukan dengan cara melakukan
prubahan piksel-perpiksel. Sedangkan proses penggabungan dengan
menggunakan operasi logika dilakukan dengan cara melakukan operasi
logika and pada seluruh piksel citra yang akan digabung. Hal ini bisa
dilihat pada data berikut:
1. Citra dengan ukuran 1200 x 1600 piksel membutuhkan
waktu 0,712233s untuk proses penggabungan dengan
meggunakan operasi berbasis frame, sedangkan proses
penggabungan dengan menggunakan operasi logika
membutuhkan waktu 0,236697s.
2. Citra dengan ukuran 2200 x 3200 piksel membutuhkan
waktu 3,90618s untuk proses penggabungan dengan
meggunakan operasi berbasis frame, sedangkan proses
66
penggabungan dengan menggunakan operasi logika
membutuhkan waktu 0,714414s.
3. Citra dengan ukuran 4200 x 6200 piksel membutuhkan
waktu 32,5422 s untuk proses penggabungan dengan
meggunakan operasi berbasis frame, sedangkan proses
penggabungan dengan menggunakan operasi logika
membutuhkan waktu 4,21352s.
5.1.3 Kompleksitas Waktu Asimtotik
Kompleksitas waktu asimtotik digunakan untuk mengetahui apakah
operasi berbasis frame dan operasi logika and merupakan operasi yang
efektif. Untuk menentukan kompleksitas waktu asimtotik dihitung
berdasarkan operasi-operasi yang mendasari operasi berbasis frame dan
operasi logika and, langkah-langkah penyelesaian kompleksitas waktu
adalah sebagai berikut, berdasarkan tabel Pengelompokan Algoritma
Notasi O-Besar pada bab 2 maka:
fr1 = imread('temp2a.bmp');
rambut = imread('temp2.bmp');
hasil1=fr1;
[tinggi,lebar]= size(im1);
for(i=1: tinggi-
1)................................O(n-1)
67
for(j=1:lebar-
1)..............................O(n-1)
if(fr1(i,j)==255)........................O(1)
hasil1(i,j)=rambut(i,j);..........O(1)
else
hasil1(i,j)=im1(i,j);.............O(1)
end
end
end
=O(n‐1)*((O(n‐1)+(O(1)+O(1)+O(1)))
=O(n‐1)*((O(n‐1)+(O(1)))
=O(n‐1)*O(n‐1)
=O(n*n)
=O(n2) Termasuk algoritma polinomial atau termasuk algoritma mangkus
c = im2bw(a); .................O(1)
d = im2bw(b); .................O(1)
e = c&d; .................O(1)
68
O(1)+O(1)+O(1)=O(1) Termasuk algoritma polinomial atau termasuk
algoritma mangkus
Dari perhitungan di atas di dapatkan bahwa kompleksitas waktu
asimtotik operasi berbasis frame adalah O(n2). Menurut urutan spektrum
kompleksitas waktu algoritma, kompleksitas waktu operasi berbasis frame
sebesar O(n2) termasuk dalam kategori algoritma polinomial, dengan
demikian algoritma ini tergolong algoritma yang mangkus.
Sedangkan hasil perhitungan kompleksitas waktu asimotik operasi
logika and adalah O(1). Menurut urutan spektrum kompleksitas waktu
algoritma, kompleksitas operasi logika and sebesar O(1) termasuk dalam
kategori algoritma polinominal, dengan demikian algoritma ini termasuk
algoritma yang mangkus.
5.2 Analisa Kuesioner
Dari hasil 30 responden kuisioner yang terdiri dari pegawai salon,
pelanggan salon, dan mahasiswa USD diketahui bahwa :
1. Untuk pertanyaan “dilihat dari segi tampilan aplikasi?”
70% responden menyatakan bahwa aplikasi memiliki
tampilan yang cukup menarik, dan 30% responden
69
menyatakan bahwa aplikasi memiliki tampilang yang
sangat menarik.
2. Untuk pertanyaan “dilihat dari segi pemakaian atau
pengoprasian?” 50% responden menyatakan bahwa
aplikasi mudah untuk digunakan, dan 50% responden
menyatakan bahwa aplikasi sangat mudah digunakan.
3. Untuk pertanyaan “dilihat dari waktu pemrosesan yang
dibutuhkan?” 46,67% responden menyatakan bahwa
aplikasi memiliki waktu pemrosesan yang cepat, dan
53,33% responden menyatakan aplikasi memiliki waktu
pemrosesan yang sangat cepat.
4. Untuk pertanyaan “dilihat dari hasil penggabungan wajah
dan model rambut ?” 3,3% responden menyatakan bahwa
hasil penggabungan citra wajah dan model rambut kurang
memuaskan, serta 3,3% responden menyatakan bahwa
hasil penggabungan citra wajah dan model rambut 3,3%
tidak memuaskan, 80% responden menyatakan cukup
memuaskan, dan 13,3% menyatakan sangat memuaskan.
5. Untuk pertanyaan “dilihat dari segi manfaat ?” 63,3%
respoden menyatakan bahwa aplikasi bermanfaat dan
36,7% responden menyatakan bahwa aplikasi sangat
bermanfaat.
70
Berdasarkan hasil pengolahan data diatas dapat diketahui
bahwa aplikasi memiliki tampilan yang menarik, mudah untuk
digunakan, cepat dalam melakukan proses penggabungan citra,
memiliki citra hasil penggabungan yang memuaskan, dan
bermanfaat bagi pengguna.
5.3 Kelebihan dan Kekurangan Program
5.3.1 Kelebihan Sistem
• Pengguna dapat menyedian model rambut dan frame sendiri
sehingga hasil yang akan didapat dapat lebih bervariasi.
• Sistem dapat melakukan penggabungan citra dengan format yang
berbeda, serta sistem dapat melakukan proses penggabungan
terhadap beberapa format file citra seperti, .bmp, .jpg, .gif, dan
.png.
5.3.2. Kekurangan Sistem
• Ukuran piksel kedua buah citra masukan harus sama yakni
1200x1600 piksel. Jika pada citra masukan tidak berukuran
1200x1600 piksesl maka proses selanjutnya tidak bisa dijalankan.
Sehingga harus dilakukan proses persiapan citra terlebih dahulu,
untuk merubah ukuran citra masukan menjadi 1200 x 1600 piksel.
71
BAB VI
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Berdasarkan perancangan dan implementasi program yang dibuat
dan dari hasil analisa yang telah dilakukan maka dapat disimpulkan :
1. Program “hair styling simulator” telah berhasil melakukan proses
penggabungan antara citra wajah dan citra model rambut
menggunakan operasi berbasis frame dan operasi logika and.
2. Program “hair styling simulator” telah berhasil melakukan
simulasi pemilihan model rambut dengan menggunakan citra
wajah pelanggan.
3. Berdasarkan pengolahan data kuesioner dengan sistem kategorisasi
data sejenis maka dapat di ketahui bahwa program ini memiliki
tampilan yang cukup menarik, dapat digunakan dengan mudah,
cukup cepat dalam melakukan proses penggabungan citra wajah
dan model rambut, dengan hasil proses penggabungan yang cukup
memuaskan, serta dapat bermanfaat bagi pengguna.
72
3.2 Saran
Untuk kepentingan dan pengembangan lebih lanjut terhadap
program “Hair Styling Simulator” maka penulis menyarankan beberapa
saran sebagai berikut :
1. Ditambahkan fungsi yang dapat melakukan rezise terhadap citra
wajah, sehingga dapat digunakan untuk menyamakan ukuran
piksel wajah dan piksel model rambut.
2. Tampilan program lebih dipercantik, mengingat program
digunakan untuk salon potong rambut wanita.
LAMPIRAN
Lampiran Contoh Hasil Program
Foto
Wajah
Model
Rambut
Hasil
Foto
Wajah
Model
Rambut
Hasil
Foto
Wajah
Model
Rambut
Hasil
Nama :
Alamat :
Nim :
KUESIONER IMPLEMENTASI OPERASI LOGIKA AND DAN OPERASI BERBASIS FRAME DALAM SEBUAH APLIKASI SALON
Cara pengisian :
Berilah jawaban pada semua pertanyaan yang ada dengan cara memberikan tanda silang (x), pada jawaban yang anda yakini benar.
1. Dilihat dari segi tampilan apakah aplikasi ini : a. Kurang menarik d. Sangat menarik b. Tidak menarik c. Cukup menarik
2. Dilihat dari segi pemakaian atau pengoprasian :
a. Sulit d. Sangat Mudah b. Sangat sulit c. Mudah
3. Dilihat dari waktu pemrosesan yang dibutuhkan :
a. Lambat d. Sangat Cepat b. Sangat lambat c. Cepat
4. Dilihat dari hasil penggabungan rambut dan backgraound :
a. Kurang Memuaskan d. Sangat memuaskan b. Tidak Memuaskan c. Cukup memuaskan
5. Dilihat dari segi manfaat :
a. Kurang bermanfaat d. Sangat bermanfaat b. Tidak bermanfaat c. Bermanfaat
Langkah – langkah penggunaan aplikasi digital hair simulator :
1. Ambil citra wajah dengan menggunakan digital kamera.
2. Pindahkan data gambar pada memori digital kamera menggunakan kabel data atau
card reader, simpan pada direktori yang sudah ditentukan misal (data e / wajah) beri
nama sesuai keinginan anda.
3. Ubah ukuran citra wajah pada citra digital menjadi 1200 x 1600 piksesl. Perubahan ini
dapat dilakukan menggunakan aplikasi photoshop atau acdc. Simpan hasil perubahan
pada folder yang sama dan nama yang sama.
4. Jalankan aplikasi hair styling simulator.
5. Tekan tombol buka foto, pilih foto yang akan anda gunakan.
6. Tekan tombol model rambut, pilih model rambut yang ada inginkan
7. Tekan tombol proses lihat hasil penggabungan wajah anda dengan model rambut yang
telah anda pilih.
8. Unutk mengulangi tekan tombol clear ulangi langkah 5 dan selanjutnya.
Lampiran Listing Program function varargout = Digital_Hair_Simulator(varargin) % DIGITAL_HAIR_SIMULATOR M-file for Digital_Hair_Simulator.fig % DIGITAL_HAIR_SIMULATOR, by itself, creates a new DIGITAL_HAIR_SIMULATOR or raises the existing % singleton*. % % H = DIGITAL_HAIR_SIMULATOR returns the handle to a new DIGITAL_HAIR_SIMULATOR or the handle to % the existing singleton*. % % DIGITAL_HAIR_SIMULATOR('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in DIGITAL_HAIR_SIMULATOR.M with the given input arguments. % % DIGITAL_HAIR_SIMULATOR('Property','Value',...) creates a new DIGITAL_HAIR_SIMULATOR or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Digital_Hair_Simulator_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Digital_Hair_Simulator_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Digital_Hair_Simulator % Last Modified by GUIDE v2.5 27-Oct-2010 15:29:55 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Digital_Hair_Simulator_OpeningFcn, .. . 'gui_OutputFcn', @Digital_Hair_Simulator_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before Digital_Hair_Simulator is made visible. function Digital_Hair_Simulator_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Digital_Hair_Simulator (see VARARGIN) % Choose default command line output for Digital_Hair_Simulator handles.output = hObject; set(handles.modelrambut, 'enable', 'off'); set(handles.proses, 'enable', 'off'); set(handles.simpan, 'enable', 'off'); % Update handles structure guidata(hObject, handles); backgroundImage = importdata('a.jpg');%menampilkan latar berisi nama gambar axes(handles.axes5);%nama axis di gui image(backgroundImage);% backgroundImage2 = importdata('a.jpg'); axes(handles.axes6); image(backgroundImage2); backgroundImage2 = importdata('a.jpg'); axes(handles.axes7); image(backgroundImage2); backgroundImage2 = importdata('a.jpg'); axes(handles.axes8); image(backgroundImage2); backgroundImage2 = importdata('a.jpg'); axes(handles.axes9); image(backgroundImage2); backgroundImage2 = importdata('a.jpg'); axes(handles.axes15); image(backgroundImage2); backgroundImage2 = importdata('b.jpg'); axes(handles.axes12); image(backgroundImage2); backgroundImage2 = importdata('a.jpg'); axes(handles.axes13); image(backgroundImage2); backgroundImage2 = importdata('a.jpg'); axes(handles.axes14);
image(backgroundImage2); % UIWAIT makes Digital_Hair_Simulator wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Digital_Hair_Simulator_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in bukafoto. function bukafoto_Callback(hObject, eventdata, handles) % hObject handle to bukafoto (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [namafile, lokasipath] = uigetfile({'*.jpg;*.tif;*.png;*.gif;*.bmp','All Image Files';... '*.*','All Files' },'Input Image'); if ~isequal(namafile, 0) handles.datacitra=imread(fullfile(lokasipath, namafile)); guidata(hObject, handles); handles.current_datacitra=handles.datacitra; axes(handles.foto); imshow(handles.current_datacitra); ukuran=size(handles.datacitra); a=handles.current_datacitra; imwrite(a,'temp.bmp'); if ukuran(2) == 3 histg1=imhist(handles.current_datacitra(:,:,1)); histg2=imhist(handles.current_datacitra(:,:,2)); histg3=imhist(handles.current_datacitra(:,:,3)); histrgb(:,:)=[histg1 histg2 histg3]; else histgray=imhist(handles.current_datacitra(:,:,1)); end reset=255; axes(handles.rambut); imshow(reset); set(handles.modelrambut, 'enable', 'on'); set(handles.proses, 'enable', 'off'); set(handles.simpan, 'enable', 'off');
time=0; set(handles.waktu, 'String',time); set(handles.waktu2, 'String',time) reset=255; axes(handles.biner); imshow(reset); reset=255; axes(handles.hasil); imshow(reset); else return; end % --- Executes on button press in modelrambut. function modelrambut_Callback(hObject, eventdata, handles) % hObject handle to modelrambut (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [namafile, lokasipath] = uigetfile({'*.jpg;*.tif;*.png;*.gif;*.bmp','All Image Files';... '*.*','All Files' },'Input Image'); if ~isequal(namafile, 0) handles.datacitra=imread(fullfile(lokasipath, namafile)); guidata(hObject, handles); handles.current_datacitra=handles.datacitra; axes(handles.rambut); imshow(handles.current_datacitra); ukuran=size(handles.datacitra); a=handles.current_datacitra; imwrite(a,'temp2.bmp'); lokasipath2='E:\Digital Hair simulator 1.0\bahan\frame'; %untuk mendapatkan lokasi frame dengan nama yang sama dengan nama rambut handles.datacitra2=imread(fullfile(lokasipath2, namafile)); guidata(hObject, handles); handles.current_datacitra2=handles.datacitra2; a2=handles.current_datacitra2; imwrite(a,'temp2.bmp'); imwrite(a2,'temp2a.bmp'); if ukuran(2) == 3 histg1=imhist(handles.current_datacitra(:,:,1)); histg2=imhist(handles.current_datacitra(:,:,2)); histg3=imhist(handles.current_datacitra(:,:,3)); histrgb(:,:)=[histg1 histg2 histg3];
else histgray=imhist(handles.current_datacitra(:,:,1)); end reset=255; axes(handles.hasil); imshow(reset); reset=255; axes(handles.biner); imshow(reset); set(handles.proses, 'enable', 'on'); set(handles.simpan, 'enable', 'off'); time=0; set(handles.waktu, 'String',time); set(handles.waktu2, 'String',time) %=============== %=============== im1a = imread('temp.bmp');%varibel mengambil gambar wajah [tinggi1, lebar1]=size(im1a); dimensi1a=tinggi1; dimensi1b=lebar1; im1b = imread('temp2.bmp');%varibel mengambil gambar wajah [tinggi2, lebar2]=size(im1b); dimensi2a=tinggi2; dimensi2b=lebar2; if(dimensi1a == dimensi2a) && (dimensi1b==dimensi2b) warndlg('ukuran piksel sama','!! ukuran Piksel !!'); else warndlg(sprintf(' ukuran piksel tidak sama! \n silahkan tekan tombol clear dan ulangi proses pengambilan gambar','!! Warning !!')); time=0; set(handles.waktu, 'String',time); set(handles.waktu2, 'String',time); set(handles.proses, 'enable', 'off'); set(handles.simpan, 'enable', 'off'); end %=============== else return; end
% --- Executes on button press in proses. function proses_Callback(hObject, eventdata, handles) % hObject handle to proses (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) tic im1 = imread('temp.bmp');%varibel mengambil gambar wajah [tinggi, lebar]=size('im1'); fr1 = imread('temp2a.bmp');%variabel mengambil gambar frame rambut = imread('temp2.bmp'); %variabel mengambil gambar rambut hasil1=fr1; [tinggi,lebar]= size(im1); for(i=1: tinggi-1) for(j=1:lebar-1) if(fr1(i,j)==255) hasil1(i,j)=rambut(i,j); else hasil1(i,j)=im1(i,j); end end end toc waktu=toc; set(handles.waktu, 'String', waktu); datacitra=hasil1; axes(handles.hasil); imshow(datacitra); a = im1; %varibel mengambil gambar wajah b = rambut; %variabel mengambil gambar rambut %c = im2bw(a); %d = im2bw(b); %e = c&d; [gambar,time] = Logika(a,b); axes(handles.biner); imshow(gambar); set(handles.waktu2, 'String',time); imwrite(datacitra,'temp3.bmp'); %hasil penggabungan rambut wajah dan from set(handles.simpan, 'enable', 'on'); % --- Executes on button press in simpan.
function simpan_Callback(hObject, eventdata, handles) % hObject handle to simpan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename, pathname, filterindex] = uiputfile( ... {'*.jpg', 'Jpeg-Files (*.jpg)';... '*.bmp','Bitmap-Files (*.bmp)';... '*.gif','Gif-File (*.fig)';... '*.png','Web Image Files (*.png)';... '*.*', 'All Files (*.*)'},... 'Save Image'); if isequal(filename,0) || isequal(pathname,0) %disp('User selected Cancel') %return question1='Are You Sure Not Save this Image?'; reponse1=questdlg(question1,'Save?', 'Yes', 'No',2); if strcmp(reponse1,'Yes') warndlg('File Image Not Save!','!! Warning !!') return else if strcmp(reponse1,'No') [filename, pathname, filterindex] = uiputfile( ... {'*.jpg', 'Jpeg-Files (*.jpg)';... '*.bmp','Bitmap-Files (*.bmp)';... '*.gif','Gif-File (*.fig)';... '*.png','Web Image Files (*.png)';... '*.*', 'All Files (*.*)'},... 'Save Image'); orimage=imread('temp3.bmp'); delete('temp2.bmp'); delete('temp2a.bmp'); datatowrite=uint8(orimage); imwrite(datatowrite, filename,'jpg'); msgbox ('Save Succes!','Save Success'); return end end else orimage=imread('temp3.bmp'); delete('temp2.bmp'); delete('temp2a.bmp'); datatowrite=uint8(orimage); imwrite(datatowrite, filename,'jpg'); msgbox ('Save Succes!','Save Success'); return end % --- Executes on button press in clear. function clear_Callback(hObject, eventdata, handles)
% hObject handle to clear (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) question1='Are You Sure to Clear?'; reponse1=questdlg(question1,'Clear?', 'Yes', 'No',2); if strcmp(reponse1,'Yes') time=0; set(handles.waktu, 'String',time); set(handles.waktu2, 'String',time) reset=255; axes(handles.foto); imshow(reset); reset=255; axes(handles.rambut); imshow(reset); reset=255; axes(handles.biner); imshow(reset); reset=255; axes(handles.hasil); imshow(reset); delete('temp1.bmp'); delete('temp2.bmp'); delete('temp2a.bmp'); delete('temp3.bmp'); delete('temp.bmp'); set(handles.modelrambut, 'enable', 'off'); set(handles.proses, 'enable', 'off'); set(handles.simpan, 'enable', 'off'); msgbox ('Clear Succes','Clear'); else if strcmp(reponse1,'No') warndlg('Clear Cancel','Cancel'); return end end % -------------------------------------------------------------------- function Untitled_1_Callback(hObject, eventdata, handles) % hObject handle to Untitled_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function Untitled_2_Callback(hObject, eventdata, handles)
% hObject handle to Untitled_2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function Untitled_5_Callback(hObject, eventdata, handles) % hObject handle to Untitled_5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function Exit_Callback(hObject, eventdata, handles) % hObject handle to Exit (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) question1='Apakah Anda Ingin Keluar dari Sistem?'; reponse1=questdlg(question1,'Exit?', 'Ya', 'Tidak',2); if strcmp(reponse1,'Ya') delete('temp1.bmp'); delete('temp2.bmp'); delete('temp2a.bmp') ; delete('temp3.bmp'); delete('temp.bmp'); close else if strcmp(reponse1,'Tidak') msgbox ('Silahkan Memilih Rambut lagi'); return end end % -------------------------------------------------------------------- function Bantuan_Callback(hObject, eventdata, handles) HelpPath = which('prima.html'); web(HelpPath); % hObject handle to Bantuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function Kreator_Callback(hObject, eventdata, handles) % hObject handle to Kreator (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) HelpPath = which('Profile.html'); web(HelpPath); % --- Executes during object creation, after setting all properties. function axes5_CreateFcn(hObject, eventdata, handles) % hObject handle to axes5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: place code in OpeningFcn to populate axes5 function waktu_Callback(hObject, eventdata, handles) % hObject handle to waktu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of waktu as text % str2double(get(hObject,'String')) returns contents of waktu as a double % --- Executes during object creation, after setting all properties. function waktu_CreateFcn(hObject, eventdata, handles) % hObject handle to waktu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function waktu2_Callback(hObject, eventdata, handles) % hObject handle to waktu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of waktu2 as text % str2double(get(hObject,'String')) returns contents of waktu2 as a double % --- Executes during object creation, after setting all properties. function waktu2_CreateFcn(hObject, eventdata, handles) % hObject handle to waktu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function [gambar,time]=Logika(a,b)%funsgsi proses penggabungan tic c = im2bw(a); d = im2bw(b); e = c&d; toc time=toc; gambar=e; function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit4_Callback(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a double % --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit6_Callback(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end function edit7_Callback(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit7 as text % str2double(get(hObject,'String')) returns contents of edit7 as a double % --- Executes during object creation, after setting all properties. function edit7_CreateFcn(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end