PENGENALAN WAJAH UNTUK SISTEM KEAMANAN PINTU …
Transcript of PENGENALAN WAJAH UNTUK SISTEM KEAMANAN PINTU …
TUGAS AKHIR
PENGENALAN WAJAH UNTUK SISTEM
KEAMANAN PINTU MENGGUNAKAN
RASPBERRY PI
Diajukan untuk memenuhi salah satu syarat
Memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro Jurusan Teknik Elektro
Fakultas Sains dan Teknologi, Universitas Sanata Dharma
Disusun oleh:
Marco Oscar Mustamin
NIM: 155114065
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
i
TUGAS AKHIR
PENGENALAN WAJAH UNTUK SISTEM
KEAMANAN PINTU MENGGUNAKAN
RASPBERRY PI
Diajukan untuk memenuhi salah satu syarat
Memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro Jurusan Teknik Elektro
Fakultas Sains dan Teknologi, Universitas Sanata Dharma
Disusun oleh:
Marco Oscar Mustamin
NIM: 155114065
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
FINAL PROJECT
FACE RECOGNITION FOR DOOR SECURITY
SYSTEM USING RASPBERRY PI
In partial fulfilment of the requirements
for the degree Sarjana Teknik
Department of Electrical Engineering Faculty of Science and Technology, Sanata Dharma University
Arranged by:
Marco Oscar Mustamin
NIM: 155114065
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO:
“ Success is walking from failure to failure with no loss of enthusiasm ”
-Winston Churchill-
Skripsi ini saya persembahkan untuk :
Tuhan Yang Maha Kuasa yang selalu bersama saya
Keluarga dan Kerabat terdekat, yang selalu memberi
dukungan secara moral maupun materi
Teman-teman elektro USD angkatan 2015 yang selalu
memberikan semangat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Peran teknologi telah banyak digunakan diberbagai aspek kehidupan manusia saat ini.
Dalam teknologi informasi, biometrik biasanya merujuk kepada teknologi untuk mengukur
dan menganalisis karakteristik tubuh manusia seperti pemindai retina, pemindai iris,
pemindai sidik jari, pengenalan wajah dan pengenalan suara yang digunakan dalam proses
autentifikasi (pembuktian). Pengenalan wajah semakin diaplikasikan secara luas seperti di
handphone, keamanan dan ketertiban.
Pengenalan wajah diimplementasikan untuk keamanan pintu menggunakan algoritma
principal compenent analysis (PCA). Proses kerja pengenalan wajah diawali dengan
pengambilan pengambilan data wajah yang kemudian hasilnya diubah kedalam bentuk
grayscale dan selanjutnya di proses dengan metode PCA dengan menggunakan software
python. Hasil pemrosesan wajah yang diambil melalui webcam kemudian dibandingkan
dengan data di database dengan menggunakan jarak euclidean. Setelah itu hasil keluaran
berupa wajah siapa yang terkenali, servo akan bergerak membuka pintu dan LED merah
sebagai indikator pintu terkunci akan mati dan LED hijau sebagai indikator pintu terbuka
akan menyala.
Hasil implementasi pengenalan wajah untuk sistem keamanan pintu dengan
pengambilan data wajah testing melalui database mendapatkan keberhasilan 100%,
sedangkan untuk pengenalan wajah sistem keamanan pintu dengan pengambilan data wajah
testing secara real time belum dapat dikatakan aman karena persentase rata-rata keberhasilan
pada intensitas cahaya 138-141 lux tanpa menggunakan atribut adalah 45%, dengan
menggunakan atribut topi adalah 20% dan dengan menggunakan atribut kacamata adalah
25%, sedangkan persentase rata-rata keberhasilan pada intensitas cahaya 45-47 lux tanpa
menggunakan atribut adalah 30%, dengan menggunakan atribut topi adalah 25% dan dengan
menggunakan atribut kacamata adalah 50%.
Kata Kunci : Pengenalan Wajah, Princial Component Analysis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
The role of technology has been widely used in various aspects of human life today.
In information technology, biometrics are usually used to measure and analyze human
characteristics such as retinal scanners, iris scanners, fingerprint scanners, facial recognition
and voice recognition used in the authentication process. Facial recognition is increasingly
being applied to mobile phones, security and order. Face recognition is also applied by
several countries to facilitate population.
Face recognition is implemented for door security using the principal compenent
analysis (PCA) algorithm. The process of introducing faces begins with taking face data
which is then converted into grayscale form and then processed by the PCA method using
python software. The results of using faces taken through a webcam are then compared with
data in the database using euclidean distances. After that the output of the face is known, the
servo will be moved to open the door and the red LED as the door indicator will turn off and
the green LED as the door open indicator will be activated.
The results of the face recognition implementation for the door security system by
taking face data testing through the database got 100% success, while for face recognition
the door security system by taking face data testing in real time can not be said to be safe
because the average percentage of success at light intensity 138-141 lux without using the
attribute is 45%, using hat attribute is 20% and using glasses attribute is 25%, while the
average percentage of success rate at light intensity 45-47 lux without using the attribute is
30%, using hat attribute is 25% and using glasses attribute is 50%.
Keywords : Face Recognition ,Princial Component Analysis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
DAFTAR ISI
PENGENALAN WAJAH UNTUK SISTEM KEAMANAN PINTU MENGGUNAKAN
RASPBERRY PI ......................................................................................................................... i
FACE RECOGNITION FOR DOOR SECURITY SYSTEM USING RASPBERRY PI .... ii
HALAMAN PERSETUJUAN ................................................................................................. iii
HALAMAN PENGESAHAN .................................................................................................. iv
PERNYATAAN KEASLIAN KARYA ................................................................................... v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ....................................................... vi
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS ............................................................................................... vii
INTISARI ................................................................................................................................ viii
ABSTRACT .............................................................................................................................. ix
KATA PENGANTAR ............................................................................................................... x
DAFTAR ISI ............................................................................................................................. xi
DAFTAR GAMBAR .............................................................................................................. xiv
DAFTAR TABEL ................................................................................................................... xvi
BAB I PENDAHULUAN.......................................................................................................... 1
1.1. Latar Belakang ............................................................................................................ 1
1.2. Tujuan dan Manfaat .................................................................................................... 2
1.3. Batasan Masalah ......................................................................................................... 2
1.4. Metodologi Penelitian ................................................................................................. 2
BAB II DASAR TEORI ............................................................................................................ 5
2.1. WebCam....................................................................................................................... 5
2.2. Raspberry Pi 3............................................................................................................. 6
2.3. Python .......................................................................................................................... 7
2.4. Open CV ...................................................................................................................... 8
2.5. Motor Servo ................................................................................................................. 8
2.6. LED .............................................................................................................................. 9
2.7. GUI ............................................................................................................................ 10
2.8. Limit Switch ............................................................................................................... 12
2.9. Pengolahan Citra ....................................................................................................... 12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
2.9.1. Citra Warna ........................................................................................................ 13
2.9.2. Citra Grayscale .................................................................................................. 13
2.9.3. Resizing .............................................................................................................. 14
2.10. Principal Component Analysis (PCA) ................................................................. 14
2.11. Jarak Euclidean ..................................................................................................... 17
2.12. Haar Cascade Classifier ............................................................................................ 17
2.13. Hukum Ohm .......................................................................................................... 19
BAB III RANCANGAN PENELITIAN ................................................................................ 20
3.1. Proses Kerja Sistem .................................................................................................. 20
3.2. Perancangan Perangkat Keras .................................................................................. 21
3.2.1. Desain Pintu ....................................................................................................... 21
3.2.2. LED ......................................................................................................................... 22
3.2.3. Limit Switch ....................................................................................................... 22
3.2.4. Mikro Servo ....................................................................................................... 23
3.2.5. WebCam ............................................................................................................. 24
3.3. Perancangan Perangkat Lunak ................................................................................. 24
3.3.1. Preprocessing .................................................................................................... 25
3.3.2. Processing .......................................................................................................... 26
3.3.3. Penentuan Keluaran........................................................................................... 31
BAB IV HASIL DAN PEMBAHASAN ................................................................................ 33
4.1. Perubahan Rancangan ............................................................................................... 33
4.1.1. Desain Pintu ....................................................................................................... 33
4.1.2. Rangkaian LED ................................................................................................. 34
4.1.3. Tampilan GUI .................................................................................................... 34
4.2. Hasil Implementasi ................................................................................................... 35
4.2.1. Implemetasi Perangkat Keras ........................................................................... 35
4.2.2. Cara Kerja Sistem .............................................................................................. 37
4.2.3. Pengujian Sistem Keamanan Pintu Dengan Pengenalan Wajah Orang Yang
Ada Di Database ............................................................................................................... 38
4.2.4. Pengujian Sistem Keamanan Pintu Dengan Pengenalan Wajah Orang Yang
Tidak Dikenali. ................................................................................................................. 44
4.2.5. Pembuatan Database ......................................................................................... 45
4.2.6. Perhitungan Database ........................................................................................ 47
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
4.2.7. Perhitungan Jarak Euclidean. ........................................................................... 49
4.2.8. Mikro Servo ....................................................................................................... 50
BAB V KESIMPULAN DAN SARAN ................................................................................. 51
DAFTAR PUSTAKA .............................................................................................................. 52
LAMPIRAN ........................................................................................................................... L-1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
DAFTAR GAMBAR
Gambar 2.1. WebCam Logitech [8]. ......................................................................................... 5
Gambar 2.2. Raspberry pi 3 [11]. .............................................................................................. 6
Gambar 2.3. Raspberry Pi 3 pinout [12]. .................................................................................. 7
Gambar 2.4. Motor Servo TowerPro SG90 [15]. ..................................................................... 8
Gambar 2.5. Cara pengontrolan motor servo [16]. .................................................................. 9
Gambar 2.6. LED [17]. ............................................................................................................ 10
Gambar 2.7. Limit Switch [21]. ............................................................................................... 12
Gambar 2.8. Representasi citra RGB dan kanal penyusunnya [23]. ..................................... 13
Gambar 2.9. Contoh citra grayscale [23]. .............................................................................. 14
Gambar 2.10. Contoh hasil resizing [24]. ............................................................................... 14
Gambar 2.11. contoh matriks. ................................................................................................. 15
Gambar 2.12. Pengubahan matriks ke dalam bentuk vektor. ................................................ 15
Gambar 2.13. Gelombang Haar like features[30]. ................................................................. 18
Gambar 2.14. Contoh pencarian menggunakan Haar like features [29]. .............................. 18
Gambar 2.15. hasil deteksi wajah [29].................................................................................... 18
Gambar 3.1.Flowchart sistem secara keseluruhan. ................................................................ 20
Gambar 3.1.(Lanjutan) Flowchart sistem secara keseluruhan.............................................21
Gambar 3.2. (a) desain pintu bagian depan (b) desain pintu bagian dalam. ......................... 21
Gambar 3.3. Rangkaian LED. ................................................................................................. 22
Gambar 3.4. Rangkaian antara Limit Switch dan Raspberry pi. ........................................... 23
Gambar 3.5. (a) pulsa tinggi selama 1 ms (b) pulsa tinggi selama 1,5 ms (c) pulsa tinggi
selama 2 ms......................................................................................................... 23
Gambar 3.6. Rangkaian Mikro Servo ke Raspberry Pi.......................................................... 24
Gambar 3.7.blok diagram hubungan WebCam dan Raspberry pi. ....................................... 24
Gambar 3.8. Tampilan GUI. .................................................................................................... 25
Gambar 3.9. flowchart preprocessing. .................................................................................... 26
Gambar 3.10. flowchart processing. ..................................................................................... 276
Gambar 3.10. (Lanjutan) flowchart processing...................................................................27 Gambar 3.11. flowchart keluaran sistem. ............................................................................... 31
Gambar 4.1. Bagian Dalam Desain Pintu. .............................................................................. 33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
Gambar 4.2. Perubahan Rangkaian LED. ............................................................................... 34
Gambar 4.3. Tampilan GUI. .................................................................................................... 34
Gambar 4.4. Tampilan Pintu Bagian Depan. .......................................................................... 35
Gambar 4.5. Tampilan Pintu Bagian Belakang. .................................................................... 36
Gambar 4.6. Bagian dalam Desain Pintu. ............................................................................... 37
Gambar 4.7. Pemberian Bentuk Kotak Pada Area Wajah. .................................................... 37
Gambar 4. 8. Pendeteksian Wajah Orang Yang Tidak Dikenal. ........................................... 44
Gambar 4.9. Program Penyimpanan Gambar. ........................................................................ 45
Gambar 4.10. Pemberian Bentuk Kotak di daerah wajah. ..................................................... 46
Gambar 4.11. Beberapa data wajah 1 orang dalam bentuk grayscale. ................................. 46
Gambar 4.12. Proses Pengambilan Gambar Database. .......................................................... 47
Gambar 4.13. Program Perhitungan Database. ...................................................................... 47
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR TABEL
Tabel 2.1. Widget Dalam TKinter [19]................................................................................... 11
Tabel 2.2. Warna dan nilai penyusun warna [22]. ................................................................. 13
Tabel 4.1. Tabel Hasil Pengenalan dan Nilai Jarak Euclidean. ......................................................38
Tabel 4.2. Hasil Pengujian Real Time Tanpa Atribut Dengan Intensitas Cahaya 138-141 lux. .......39
Tabel 4.3. Hasil Pengujian Real Time Dengan Atribut Topi Dengan Intensitas Cahaya 138-141
lux. ............................................................................................................................39
Tabel 4.3. (Lanjutan) Hasil Pengujian Real Time Dengan Atribut Topi Dengan Intensitas Cahaya
138-141 lux ................................................................................................................40
Tabel 4.4. Hasil Pengujian Real Time Dengan Atribut Kacamata Demgan Intensitas Cahaya 138-141
lux. ..............................................................................................................................40
Tabel 4.4. (Lanjutan) Hasil Pengujian Real Time Dengan Atribut Kacamata Demgan Intensitas
Cahaya 138-141 lux. ...................................................................................................41
Tabel 4.5. Persentase Keberhasilan Dengan Intensitas Cahaya 138-141 lux. .................................41
Tabel 4.6. Hasil Pengujian Real Time Tanpa Atribut Dengan Intensitas Cahaya 45-47 lux. ...........41
Tabel 4.6. (Lanjutan) Hasil Pengujian Real Time Tanpa Atribut engan Intensitas Cahaya 45-47
lux. .............................................................................................................................42
Tabel 4.7. Hasil Pengujian Real Time Dengan Atribut Topi Dengan Intensitas Cahaya 45-47 lux. 42
Tabel 4.8. Hasil Pengujian Real Time Dengan Atribut Kacamata Demgan Intensitas Cahaya 45-47
lux. .............................................................................................................................43
Tabel 4.9. Persentase Keberhasilan Dengan Intensitas Cahaya 45-47 lux. .....................................43
Tabel 4.10. Hasil Perhitungan Jarak. ............................................................................................44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Pada zaman sekarang, banyak sekali hal-hal yang berkembang pada bidang teknologi
seperti perkembangan pada perindustrian yang dimana proses pembuatannya semakin cepat
dan akurat yang dibantu oleh perkembangan robot pada proses produksi, perkembangan
pada dunia otomotif yang dimana sebuah mobil dapat bergerak sendiri tanpa pengemudinya,
contohnya adalah mobil google [1], perkembangan pada sistem pengenalan yang dimana
kebanyakan smartphone sudah menggunakan teknologi pengidentifikasian iris dan
fingerprint scanner [1]
Seiring berkembangnya teknologi, ada salah satu teknologi yang banyak digunakan
pada saat ini, yaitu sistem pengenalan yang berkaitan dengan pengukuran dan analisis data
biologis (biometrik) manusia, salah satu contohnya adalah proses identifikasi sidik jari pada
E-KTP, hal ini terjadi karena seseorang pernah memiliki banyak KTP yang menimbulkan
banyak masalah seperti kesalahan data yang tersimpan pada pemerintahan [2]. Dalam
teknologi informasi, biometrik biasanya merujuk kepada teknologi untuk mengukur dan
menganalisis karakteristik tubuh manusia seperti pemindai retina, pemindai iris, pemindai
sidik jari, pemindaian wajah dan pengenalan suara [3] yang digunakan dalam proses
autentifikasi (pembuktian).
Pada tahun 2016, Indonesia mempunyai kasus kejahatan sebanyak 357.197 kasus [4].
Angka ini masih terbilang banyak untuk sebuah kasus kejahatan di sebuah negara. Dalam
menangani kasus kejahatan yang masih banyak, pemerintah sudah berupaya untuk
menanggulangi kasus kejahatan tersebut dengan berbagai cara, seperti meningkatkan patroli
polisi pada sebuah kota. Kejahatan bisa datang setiap saat, untuk itu pencegahan merupakan
cara yang tepat untuk mengantisipasi tindak kejahatan. Oleh karena itu, tugas akhir ini
bertujuan untuk membuat sebuah sistem keamanan yang menekankan pada keamanan pada
sebuah pintu rumah yang dimana sistem tersebut menggunakan pengenalan wajah sebagai
kunci untuk membuka sebuah pintu rumah.
Adapaun penelitian mengenai sistem keamanan rumah dengan judul sistem pengaman
pintu rumah menggunakan sensor sidik jari yang dibuat oleh Idris Setiawan dari Universitas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Negeri Semarang [5]. Pada penelitian ini dibuat sebuah sistem yang dimana sebuah pintu
dapat terbuka jika proses identifikasi sebuah jari berhasil. Oleh karena itu, akan
dikembangkan sebuah sistem keamanan pintu yang dimana proses identifikasinya
menggunakan pengidentifikasian wajah.
1.2. Tujuan dan Manfaat
Tujuan dari tugas akhir ini adalah membuat suatu sistem yang dapat melakukan
pendeteksian wajah sebagai salah satu indikator keamanan pada sebuah pintu.
Manfaat dari tugas akhir ini adalah memaksimalkan sistem keamanan sebuah rumah
ataupun perindustrian yang minim penjagaan.
1.3. Batasan Masalah
Supaya Tugas Akhir ini bisa mengarah pada tujuan dan untuk menghindari terlalu
kompleksnya permasalahan yang muncul, maka perlu adanya batasan-batasan masalah yang
sesuai dengan judul Tugas Akhir ini. Adapun batasan masalahnya adalah :
1. Menggunakan kamera webcam 2 buah, webcam pertama untuk pengenalan wajah
pada saat masuk dan webcam kedua untuk pengenalan wajah pada saat keluar
pintu.
2. Menggunakan Raspberry pi 3 sebagai pengolahan data dan penampil.
3. Jumlah wajah yang tersimpan di dalam database maximum 4 orang.
4. Minimal menggunakan 2 atribut seperti topi dan kacamata.
5. Sebuah mikro servo SG90 yang akan berfungsi sebagai alat untuk membuka pintu.
6. LED merah sebagai indikator pintu terkunci.
7. LED hijau sebagai indikator pintu terbuka.
8. Limit switch untuk mengaktifkan indikator pintu tertutup.
1.4. Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai, metode-metode yang digunakan dalam
menyusun tugas akhir ini adalah :
1. Studi Literatur
Pengumpulan informasi dari berbagai sumber seperti buku, jurnal dan artikel di
internet yang berhubungan dengan tugas akhir.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
WebCam 1 Servo Pintu
LED
Limit Switch
WebCam 2 Raspberry
Pi 3
GUI
Database
Pengolahan
Citra
2. Perancangan Hardware dan Software
Tahap ini bertujuan untuk merancang desain sebuah miniatur pintu dan
pembuatan model sistem di Raspberry pi 3.
Gambar 1.1. Diagram Blok Perancangan.
Berdasarkan gambar 1.1, maka WebCam 1 dan WebCam 2 berfungsi sebagai
penangkap citra wajah, kemudian citra wajah tersebut akan diolah oleh program
yang sudah dibuat di raspberry pi 3. Apabila citra wajah yang ditangkap sesuai
dengan database, maka servo yang berfungsi sebagai pengunci pada pintu akan
terbuka dan LED yang berwarna hijau akan menyala dan LED berwarna merah
akan mati. Apabila pintu ditutup dan menyentuh limit switch, maka servo akan
kembali mengunci pintu dan LED berwarna merah akan menyal dan LED
berwarna hijau akan mati.
3. Pembuatan Hardware dan Software
Tahap ini bertujuan untuk membuat miniatur dan program sesuai dengan hasil
perancangan yang sudah dibuat.
4. Proses pengambilan data
Sebelum sistem diuji, dilakukan pengambilan data berupa wajah sebagai database
untuk mencocokkan data wajah yang diambil ketika sistem ini dijalankan. Hal
yang dilakukan pada saat pengujian berupa proses pengambilan citra wajah yang
dilakukan oleh WebCam, kemudian hasil penangkapan citra wajah yang dilakukan
oleh WebCam dicocokkan dengan data wajah yang ada di database, apabila proses
pencocokan dengan data wajah yang ada di database dikategorikan cocok, maka
pintu dapat terbuka dan LED berwarna hijau akan menyala dan jika tidak maka
pintu tetap terkunci dan LED berwarna merah akan menyala.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
5. Analisis dan penyimpulan data percobaan
Analisis dan penyimpulan diperoleh dari sistem yang telah diuji dengan cara
membandingkan tiap pengujian untuk melihat tingkat keberhasilan sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB II
DASAR TEORI
2.1. WebCam
Web camera (Webcam) merupakan sebuah perangkat eksternal yang berupa kamera
digital yang dihubungkan ke sebuah laptop ataupun komputer melalui sebuah port USB [6].
WebCam biasanya terdiri dari sebuah lensa yang berfungsi untuk mengambil gambar
ataupun video, sebuah kabel data yang berfungsi sebagai penghubung WebCam ke
komputer/laptop, cover sebagai wadah lensa beserta kabel data dan sensor gambar yang
berupa CMOS atau CCD [7]. Contoh WebCam dapat dilihat pada gambar 2.1.
Gambar 2.1. WebCam Logitech [8].
Salah satu hal yang mendukung bagus atau buruknya sebuah gambar yang ditangkap
oleh webcam adalah resolusi yang dimiliki oleh webcam tersebut. Resolusi merupakan
istilah yang digunakan untuk menyatakan jumlah titik atau pixel yang digunakan untuk
menampilkan suatu gambar [9]. Pixel sendiri merupakan bagian terkecil dari gambar yang
ditampilkan oleh perangkat-perangkat seperti monitor, televisi dan proyektor [9]. Resolusi
yang semakin tinggi berarti semakin banyak pixel yang digunakan untuk menyusun suatu
gambar, sehingga gambar dapat menjadi lebih jelas dan tajam [9]. Resolusi biasa ditulis
dengan format "banyak pixel secara horizontal × banyak pixel secara vertikal" [9].
Contohnya resolusi 1920×1080 berarti digunakan pixel sebanyak 2.073.600 untuk
menampilkan gambar, dengan 1920 pixel sebaris secara horizontal dan 1080 pixel sebaris
secara vertikal [9].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2.2. Raspberry Pi 3
Raspberry pi adalah komputer mini yang dirancang dan diproduksi di Inggris dengan
tujuan awal untuk menyediakan perangkat komputasi yang murah untuk pendidikan.
Raspberry pi 3 adalah model terbaru dari raspberry pi. Raspberry pi 3 menggunakan
prosesor baru yaitu Broadcom BCM 283764 bit. Raspberry pi 3 juga merupakan model
pertama yang memiliki built-in wireless (mampu terhubung WiFi dan juga perangkat
bluetooth) [10]. Contoh raspberry pi 3 dapat dilihat pada gambar 2.2.
Gambar 2.2. Raspberry pi 3 [11].
Raspberry pi 3 mempunyai spesifikasi sebagai berikut [11]:
1. Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz.
2. 1GB LPDDR2 SDRAM.
3. 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE.
4. Gigabit Ethernet melalui USB 2.0 (throughput maksimum 300 Mbps).
5. 40-pin GPIO.
6. HDMI ukuran penuh.
7. 4 port USB 2.0.
8. Port kamera CSI untuk menghubungkan kamera Raspberry Pi.
9. Port tampilan DSI untuk menghubungkan layar sentuh Raspberry Pi.
10. Output stereo 4-tiang dan port video komposit.
11. Port Micro SD untuk memuat sistem operasi dan menyimpan data.
12. 5V / 2.5A input daya DC.
13. Dukungan Power-over-Ethernet (PoE) (memerlukan PoE HAT terpisah).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Raspberry Pi 3 terdapat 40 pin yang terbagi atas VCC, GND dan GPIO yang letaknya
dapat dilihat pada gambar 2.3.
Gambar 2.3. Raspberry Pi 3 pinout [12].
2.3. Python
Python adalah bahasa tingkat tinggi yang berarti bahwa kode python ditulis dalam
bahasa Inggris yang dapat dikenali, sehingga perintah-perintah dapat dengan mudah
dipelajari dan mudah diikuti [10]. Python merupakan bahasa pemrograman tingkat tinggi
yang ditafsirkan, berorientasi objek, dengan semantik dinamis yang dibangun dalam struktur
data, dikombinasikan dengan pengetikan dinamis dan pengikatan dinamis, membuat python
sangat menarik untuk pengembangan aplikasi cepat, serta digunakan sebagai bahasa
scripting untuk menghubungkan komponen yang ada bersama-sama. Sintaksis Python yang
sederhana dan mudah dipelajari menekankan keterbacaan dan karenanya mengurangi biaya
pemeliharaan program. Python mendukung modul dan paket, yang mendorong modularitas
program dan penggunaan kembali kode. Interpreter Python dan pustaka standar yang luas
tersedia dalam bentuk sumber atau biner tanpa biaya untuk semua platform utama, dan dapat
didistribusikan secara bebas [13].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
2.4. Open CV
OpenCV (Open Source Computer Vision) adalah sebuah library (perpustakaan) yang
digunakan untuk mengolah gambar dan video hingga kita mampu mengekstrak informasi
didalamnya [14]. OpenCV dapat berjalan di berbagai bahasa pemograman, seperti C, C++,
Java, Python, dan juga support diberbagai platform seperti Windows, Linux, Mac OS, iOS
dan Android [14].
Computer Vision sendiri merupakan sebuah cabang dari bidang ilmu pengolahan
citra. Teknologi Computer Vision sendiri sudah diterpakan diberbagai bidang kehidupan
seperti pengenalan sebuah objek, pengenalan plat nomor kendaraan di jalan dan
pengidentifikasian wajah seseorang.
2.5. Motor Servo
Motor servo adalah jenis aktuator elektromekanis yang tidak berputar secara kontinu
seperti motor DC/AC atau motor stepper. Motor servo digunakan untuk posisi dan
memegang beberapa objek. Motor jenis ini digunakan dimana rotasi kontinu tidak
diperlukan sehingga tidak digunakan untuk mengendalikan roda. Motor servo digunakan
dimana sesuatu yang dibutuhkan pindah ke posisi tertentu, kemudian berhenti dan bertahan
pada posisi tersebut. Hal yang paling umum dari penggunaan motor servo adalah digunakan
untuk posisi kemudi pesawat terbang, kapal dan lain-lain. Motor servo dapat digunakan
secara efektif karena tidak perlu bergerak 360 derajat penuh atau tidak memerlukan rotasi
terus-menerus seperti roda [10].
Motor servo TowerPro SG90 adalah sebuah servo kecil dengan output power yang
tinggi. Motor ini dapat berotasi sekitar 180 derajat dan bisa bekerja seperti servo standar
lainnya [10]. Bentuk fisik dari motor servo TowerPro SG90 dapat ditunjukkan pada gambar
2.4.
Gambar 2.4. Motor Servo TowerPro SG90 [15].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
Pada motor servo, pemberian nilai PWM akan membuat motor servo bergerak pada
posisi tertentu lalu berhenti (kontrol posisi) [16]. Cara pengontrolan motor servo dapat
ditunjukkan pada gambar 2.5.
Gambar 2.5. Cara pengontrolan motor servo [16].
Prinsip utama pada pengontrolan motor servo adalah pemberian nilai PWM pada
kontrolnya. Perubahan duty cycle akan menentukan perubahan posisi dari motor servo.
Frekuensi PWM yang digunakan pada pengontrolan motor servo selalu mempunyai
frekuensi 50 Hz sehingga pulsa yang dihasilkan setiap 20 ms. Lebar pulsa pengontrolan
menentukan posisi servo yang dikehendaki. Seperti contoh pada gambar 2.5. yaitu untuk
menggerakkan servo ke posisi 900, maka dengan cara memberikan pulsa high selama 1,5 ms
dan pulsa low selama 18,5 ms [16].
2.6. LED
Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika
yang dapat memancarkan cahaya monokromatik ketika diberikan tegangan maju [17]. LED
biasanya dipakai untuk indikator peralatan elektronik, papan iklan,pemancar infra merah
pada remote kontrol televisi, dan masih banyak lagi. Contoh LED dapat dilihat pada gambar
2.5. Pada tugas akhir ini, LED hanya berfungsi sebagai indikator kondisi pintu terkunci dan
terbuka.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Gambar 2.6. LED [17].
2.7. GUI
GUI adalah antarmuka pada sistem operasi yang menggunakan tampilan grafis, dapat
dikendalikan menggunakan beberapa macam alat input, seperti mouse, keyboard,
touchscreen dan lain-lain [18]. Pada GUI biasanya terdapat menu dan tombol yang didesain
oleh pengguna supaya pengguna lebih mudah dalam berinteraksi dengan sebuah sistem
operasi yang dijalankan. Beberapa contoh sistem operasi berbasis GUI adalah windows,
Macintosh, Ubuntu, RedHat dan Android [18].
GUI memiliki beberapa kelebihan, yaitu [18] :
1. Desain menarik dan user friendly
2. Tidak membosankan.
3. Tidak perlu mengingat baris dan perintah
Selain memiliki kelebihan, GUI juga memiliki beberapa kekurangan, yaitu [18] :
1. Kebutuhan spesifikasi hardware lebih besar.
2. Performa lebih berat.
Tkinter adalah pustaka GUI standar untuk Python. Python apabila dikombinasikan
dengan Tkinter, menyediakan cara cepat dan mudah untuk membuat aplikasi GUI. Tkinter
menyediakan antarmuka berorientasi objek yang kuat ke toolkit Tk GUI. Membuat aplikasi
GUI menggunakan Tkinter adalah hal yang mudah, yang perlu dilakukan adalah sebagai
berikut [19] :
1. Import modul Tkinter.
2. Buat jendela utama aplikasi GUI.
3. Tambahkan satu atau lebih widget yang disebutkan di atas ke aplikasi GUI.
4. Masukkan loop acara utama untuk mengambil tindakan terhadap setiap acara yang
dipicu oleh pengguna.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Tkinter menyediakan beberapa kontrol seperti tombol, label dan kotak teks yang
digunakan dalam aplikasi GUI. Kontrol tersebut biasanya disebut dengan widget. Saat ini
ada 15 tipe widget di dalam Tkinter. Macam-macam widget tersebut dapat dilihat dalam tabel
2.1.
Tabel 2.1. Widget Dalam TKinter [19].
No. Operator Diskripsi
1. Button Widget Tombol digunakan untuk menampilkan tombol
di aplikasi.
2. Canvas
Widget kanvas digunakan untuk menggambar bentuk,
seperti garis, oval, poligon, dan persegi panjang, dalam
aplikasi.
3. Checkbutton
Widget Checkbutton digunakan untuk menampilkan
sejumlah opsi sebagai kotak centang. Pengguna dapat
memilih beberapa opsi sekaligus.
4. Entry Widget Entri digunakan untuk menampilkan bidang teks
satu baris untuk menerima nilai dari pengguna.
5. Frame Widget Bingkai digunakan sebagai widget wadah untuk
mengatur widget lainnya.
6. Label
Widget Label digunakan untuk memberikan keterangan
satu baris untuk widget lainnya. Selain itu juga bisa
memuat gambar.
7. Listbox Widget Listbox digunakan untuk memberikan daftar
opsi kepada pengguna.
8. Menubutton Widget Menubutton digunakan untuk menampilkan
menu di aplikasi.
9. Menu Widget Menu digunakan untuk menyediakan berbagai
perintah kepada pengguna. Perintah-perintah ini ada di
dalam Menubutton.
10. Message Widget Pesan digunakan untuk menampilkan bidang
teks multiline untuk menerima nilai dari pengguna.
11. Radiobutton
Widget Radiobutton digunakan untuk menampilkan
sejumlah opsi sebagai tombol radio. Pengguna hanya
dapat memilih satu opsi pada satu waktu.
12. Scale Widget Skala digunakan untuk menyediakan widget
slider.
13. Scrollbar
Widget Scrollbar digunakan untuk menambahkan
kemampuan gulir ke berbagai widget, seperti kotak
daftar.
14. Text Widget Teks digunakan untuk menampilkan teks dalam
beberapa baris.
15. Toplevel Widget Toplevel digunakan untuk menyediakan wadah
jendela terpisah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
2.8. Limit Switch
Limit switch adalah jenis saklar yang dilengkapi dengan sebuah katup. Katup tersebut
berfungsi untuk menggantikan tombol. Cara kerja limit switch sebenarnya tak jauh berbeda
dibandingkan dengan saklar push on. Limit switch akan menghubungkan arus listrik pada
saat katup ditutup dalam batas tertentu dan pada saat katup tersebut tidak ditekan, maka arus
listrik juga akan ikut putus. Limit switch dapat diatur dalam dua mode yakni bisa diatur saat
katup ditekan rangkaian akan nyala (normally open), atau saat katup ditekan rangkaian akan
mati (normally close) [20].
Pada umumnya limit switch digunakan untuk berbagai macam keperluan seperti
memutus atau menghubungkan sebuah rangkaian menggunakan objek atau benda yang lain,
menghidupkan daya besar dengan sarana yang kecil, serta dapat digunakan pula sebagai
sensor posisi untuk melihat kondisi suatu objek [20]. Contoh limit switch dapat dilihat pada
gambar 2.6.
Gambar 2.7. Limit Switch [21].
2.9. Pengolahan Citra
Pengolahan citra adalah istilah umum untuk berbagai teknik yang keberadaannya
untuk memanipulasi dan memodifikasi citra dengan berbagai cara. Secara umum, istilah
pengolahan citra digital menyatakan pemrosesan gambar berdimensi dua melalui komputer
digital. Foto adalah contoh gambar berdimensi 2 yang dapat dapat diolah dengan mudah.
Pengolahan citra merupakan bagian penting yang mendasari berbagai aplikasi nyata, seperti
pengenalan pola, penginderaan jarak jauh melalui satelit atau pesawat udara dan machine
vision [22].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
2.9.1. Citra Warna
Citra warna atau citra RGB merupakan jenis citra yang menyajikan warna dalam
bentuk komponen R (merah), G (hijau) dan B (biru). Setiap komponen warna menggunakan
8 bit (nilainya berkisar antara 0-255), sehingga kemungkinan warna yang dapat disajikan
mencapai 16.581.375 warna. Tabel 2.2. menunjukkan contoh warna dan nilai R,G dan B.
Tabel 2.2. Warna dan nilai penyusun warna [22].
Warna R G B
Merah 255 0 0
Hijau 0 255 0
Biru 0 0 255
Hitam 0 0 0
Putih 255 255 255
Kuning 0 255 255
Representasi citra RGB dan masing-masing kanal warna penyusunnya dapat dilihat
pada gambar 2.8.
Gambar 2.8. Representasi citra RGB dan kanal penyusunnya [23].
2.9.2. Citra Grayscale
Citra grayscale merupakan citra yang nilai intensitas pikselnya didasarkan pada
derajat keabuan. Pada citra grayscale 8-bit, derajat warna hitam sampai dengan putih dibagi
ke dalam 256 derajat keabuan di mana warna hitam sempurna direpresentasikan dengan nilai
0 dan putih sempurna dengan nilai 255 [23]. Pada umumnya citra RGB dapat dikonversikan
ke citra grayscale dengan menggunakan persamaan (2.1) [23] :
𝐺𝑟𝑎𝑦𝑠𝑐𝑎𝑙𝑒 = 0.2989 ∗ R + 0.5870 ∗ G + 0.1140 ∗ B (2.1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
dengan grayscale adalah nilai intensitas citra grayscale, R adalah nilai intensitas piksel pada
kanal merah, G adalah nilai intensitas piksel pada kanal hijau dan B adalah nilai intensitas
piksel pada kanal biru [23]. Contoh citra grayscale dapat dilihat pada gambar 2.9.
Gambar 2.9. Contoh citra grayscale [23].
2.9.3. Resizing
Resizing merupakan proses pengubahan citra digital, hal ini diperlukan agar citra
digital memiliki ukuran yang sama. Contoh hasil resizing dapat dilihat pada gambar 2.10.
Gambar 2.10. Contoh hasil resizing [24].
2.10. Principal Component Analysis (PCA)
Principal Componen Analysis (PCA) adalah sebuah cara untuk mengidentifikasi pola
pada data dan kemudian mengekspresikan data tersebut ke bentuk yang lain untuk
menunjukkan perbedaan dan persamaan antar pola. Tujuan dari PCA adalah untuk
mereduksi dimensi yang besar dari ruang data (observed variables) menjadi dimensi yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
dengan 30 adalah kolom.
lebih kecil dari ruang fitur (independent variables), yang dibutuhkan untuk mendeskripsikan
data lebih sederhana. Ruang fitur adalah ciri yang digunakan sebagai kriteria dalam
pengklasifikasian [25].
Proses ini memiliki beberapa langkah, yaitu [26]:
a. Menangkap citra wajah dan mengubah citra wajah ke dalam bentuk citra RGB,
setelah di bentuk kedalam citra RGB, kemudian diubah ke dalam bentuk citra
grayscale.
b. Pembentukan matriks data citra wajah
Langkah kedua yang dilakukan adalah membentuk matriks berukuran sama
(MxN) dari data citra dengan mengambil data pixel setiap citranya. Citra
berukuran MxN dengan M adalah jumlah kolom sedangkan N adalah jumlah baris.
Bentuk matriks dapat dilihat pada gambar 2.11.
𝑥 = [
𝑋11 𝑋12𝑋21 …
… 𝑋140… 𝑋240… …
𝑋301 𝑋302 … … … 𝑋3040
]
Gambar 2.11. contoh matriks.
c. Mengubah dimensi citra wajah menjadi vektor berukuran M2 x 1. Bentuk vektor
dapat dilihat pada gambar 2.12.
V =
[ 𝑋11𝑋12𝑋21𝑋22𝑋31…
𝑋𝑀𝑁]
Gambar 2.12. Pengubahan matriks ke dalam bentuk vektor.
d. Mencari nilai rata-rata dari matriks yang sudah diubah kedalam bentuk vektor.
Hal ini bertujuan untuk untuk mengetahui noise yang dapat mengurangi tingkat
keakuratan didalam perhitungan PCA, yang dapat dihitung dengan menggunakan
rumus:
�̅� (𝑟𝑎𝑡𝑎 − 𝑟𝑎𝑡𝑎 𝑚𝑎𝑡𝑟𝑖𝑘𝑠) = ∑𝑉
M (2.2)
dengan 40
adalah
baris
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Keterangan :
X̅ = Rata-rata matriks yang sudah diubah kedalam bentuk vektor.
∑V = Jumlah matriks vektor.
M = Jumlah kolom matriks vektor.
e. Mengurangkan setiap matriks citra wajah dengan rata-rata
Berfungsi untuk menghilangkan noise yang dapat menganggu keakuratan pada
perhitungan PCA. Perhitungan ini dapat dimodelkan menggunakan persamaan:
ϕ = V − �̅�
Keterangan :
ϕ = Hasil pengurangan matriks citra wajah dengan rata-rata.
V = Matriks vektor.
X̅ = Rata-rata matriks yang sudah diubah ke dalam bentuk vektor.
f. Membangun matriks kovarian
Hasil perhitungan nilai rata-rata nol (zero mean) digunakan untuk mendapatkan
nilai matriks kovarian.
𝐶 =1
𝐴 − 1ϕ𝑇ϕ
Keterangan :
C = Matriks kovarian..
A = Jumlah kolom pada ϕ.
ϕT = Hasil pengurangan matriks citra wajah dengan rata-rata yang di transpose.
ϕ = Hasil pengurangan matriks citra wajah dengan rata-rata
g. Menghitung eigenvalue dan eigenvector
Dengan menggunakan rumus :
|𝐶ui− 𝜆ui| = 0
Eigenvalue (𝜆) = Det (𝜆I -C) = 0
Eigenvektor (ui) = (C – 𝜆I) ui = 0
Keterangan :
C = Matriks kovarian.
I = Matriks identitas.
(2.3)
(2.5)
(2.4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
h. Pencarian eigenface (µ) untuk proses pengenalan wajah
Dengan menggunakan rumus :
𝐸𝑖𝑔𝑒𝑛𝑓𝑎𝑐𝑒 (𝜇) = ∑ uϕ
M
i=1
Keterangan :
ϕ = Hasil pengurangan matriks citra wajah dengan rata-rata
u = Eigenvektor.
2.11. Jarak Euclidean
Metode Euclidean adalah suatu metode pencarian kedekatan nilai jarak dari 2 buah
variabel, selain mudah metode ini juga tidak memakan waktu dan proses yang cepat.
Euclidean adalah fungsi heuristik yang diperoleh berdasarkan jarak langsung bebas
hambatan seperti untuk mendapatkan nilai dari panjang garis diagonal pada segitiga [27].
Jika ingin menghitung jarak Euclidean 1 dimensi dapat dimisalkan dengan mendapatkan
titik pertama adalah 4 dan titik kedua adalah -10. Hal pertama yang harus dilakukan adalah
kurangkan -10 dengan 4. sehingga menghasilkan -14. Cari nilai absolut dari nilai -14 dengan
cara mempangkatkan -14, sehingga mendapat nilai 196, kemudian diakarkan sehingga
mendapatkan nilai 14. Sehingga jarak euclidean dari 2 titik tersebut adalah 14 [27].
Pada 2 dimensi cara yang dilakukan hampir sama, tetapi sebelum mendapatkan hasil
kedua titik harus direpresentasikan ke dalam koordinat 2 dimensi (x, y). Dua buah titik p1 =
(x1, y1) dan p2 = (x2, y2) menjadi persamaan berikut (rumus Euclidian) [27]:
𝐸𝑢𝑐𝑙𝑖𝑑𝑒𝑎𝑛 𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑑) = √(𝑋2 − 𝑋1)2 + (𝑌2 − 𝑌1)
2
2.12. Haar Cascade Classifier
Prinsip Haar-like features adalah mengenali obyek berdasarkan nilai sederhana dari
fitur tetapi bukan merupakan nilai piksel dari image obyek tersebut. Metode ini memiliki
kelebihan yaitu komputasinya sangat cepat, karena hanya bergantung pada jumlah piksel
dalam persegi bukan setiap nilai piksel dari sebuah image [28]. Metode ini menggunakan
haar-like features dimana perlu dilakukan training terlebih dahulu untuk mendapatkan suatu
keputusan dengan nama cascade classifier sebagai penentu apakah ada obyek atau tidak
dalam tiap frame yang diproses [29]. Haar Feature sendiri merupakan fitur yang didasarkan
(2.6)
(2.7)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
pada gelombang kotak. Pada 2 dimensi, gelombang kotak adalah pasangan persegi yang
bersebelahan, yaitu 1 terang dan 1 gelap [30]. Gambar gelombang dapat dilihat pada gambar
2.13.
Gambar 2.13. Gelombang Haar like features[30].
contoh pencarian dengan gelombang haar like features dapat dilihat pada gambar 2.14.
Gambar 2.14. Contoh pencarian menggunakan Haar like features [29].
Semakin banyak proses haar like feature yang dilakukan, makan akan semakin akurat
hasil yang dicapai, sehingga pemrosesan haar like feature yang banyak tersebut diorganisir
di dalam cascade classifier. Proses pertama yang dilakukan pada cascade classifier adalah
tiap subcitra akan diklasifikasi menggunakan satu fitur, jika hasil nilai fitur dari filter tidak
memenuhi kriteria yang diinginkan, maka hasil ditolak, sehingga algoritma kemudian
bergerak ke sub window selanjutnya dan menghitung nilai fitur kembali, jika didapatkan
hasil yang sesuai, maka dilanjutkan ke tahap filter selanjutnya sampai jumlah sub window
yang lolos klasifikasi pun akan berkurang [29]. Hasil dari filter proses cascade classifier
dapat dilihat pada gambar 2.15.
Gambar 2.15. hasil deteksi wajah [29].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
2.13. Hukum Ohm
Hukum ohm menyatakan besar arus yang mengalir melalui sebuah penghantar atau
konduktor akan berbanding lurus dengan tegangan dan berbanding terbalik dengan
hambatan. Secara matematis hukum ohm dapat dirumuskan :
V = I x R
Keterangan :
V = Tegangan (Volt)
I =Arus (A)
R = Hambatan (ohm)
(2.8)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
BAB III
RANCANGAN PENELITIAN
3.1. Proses Kerja Sistem
Perancangan sistem ini secara keseluruhan terdiri dari 2 buah WebCam yang dimana
WebCam berfungsi untuk menangkap wajah dan memprosesnya. Proses pengolahan data
wajah terjadi di dalam raspberry pi 3 dengan database wajah yang sudah terdaftar akan
dibandingkan dengan wajah yang ditangkap dengan WebCam. Apabila hasil perbandingan
sudah bisa dikategorikan cocok, maka servo yang berfungsi sebagai kunci pintu akan
bergerak supaya pintu bisa terbuka, LED berwarna hijau akan menyala dan LED berwarna
merah akan mati. Apabila pintu ditutup dan pintu meyentuh limit switch,maka servo akan
bergerak untuk mengunci pintu kembali dan LED berwarna merah akan menyala, sedangkan
LED berwarna hijau akan mati. Pada gambar 3.1. menunjukkan cara kerja sistem secara
keseluruhan.
Gambar 3.1.Flowchart sistem secara keseluruhan.
Ya
Mulai
Inisialisai
Deteksi Wajah
Sesuai
database?
Pintu terbuka & LED Hijau
Pintu terkunci &
LED Merah
Tidak
A
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Gambar 3.1.(Lanjutan) Flowchart sistem secara keseluruhan.
3.2. Perancangan Perangkat Keras
3.2.1. Desain Pintu
(a) (b)
Gambar 3.2. (a) desain pintu bagian depan (b) desain pintu bagian dalam.
Pada sistem ini, telah dibuat contoh desain sebuah ruangan yang memiliki pintu,
yang dimana pada gambar 3.2.(a) disebelah pintu terdapat beberapa komponen, yaitu LED
merah, LED hijau dan WebCam 1, pada gambar 3.2.(b) merupakan bentuk desain secara
keseluruhan dan pada gambar 3.2.(c) disebelah pintu terdapat beberapa komponen, yaitu
LED merah, LED hijau, WebCam 2 dan mikro servo. Desain luar memiliki ukuran 60x5x25
cm, sedangkan desain pintu memiliki ukuran 12x20 cm.
Selesai
Pintu ditutup dan
menekan limit switch
Servo bergerak mengunci
pintu
A
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
3.2.2. LED
Pada sistem ini, LED berfungsi sebagai indikator untuk mengetahui pintu terkunci atau
terbuka. LED yang dipakai berupa LED berwarna merah dan hijau. LED berwarna merah
berfungsi untuk mengetahui pintu dalam keadaan terkunci, sedangkan LED berwarna hijau
berfungsi untuk mengetahui pintu dalam keadaan terbuka. LED yang dipakai pada sistem ini
adalah LED berwarna merah yang memerlukan tegangan ±1,8 volt dan LED berwarna hijau
yang memerlukan tegangan ±2,6 volt, sedangkan arus yang dibutuhkan ±20mA. Gambar
rangkaian antara raspberry dan LED dapat dilihat pada gambar 3.3.
Gambar 3.3. Rangkaian LED.
Dengan merujuk pada rumus 2.9, maka dapat ditentukan nilai minimal resitor yang
akan dipakai untuk dihubungkan dengan LED, yaitu :
R = V / I = 3,3 V / 10 mA = 330 ohm
nilai 3,3 V merupakan keluaran dari raspberry pi , sedangkan nilai 10 mA digunakan karena
keluaran arus dari raspberry pi maksimal adalah 16 mA per pin, jadi digunakan arus dengan
nilai 10 mA sebagai nilai perhitungan untuk mendapatkan nilai resistor yang akan
digunakan.
3.2.3. Limit Switch
Pada sistem ini, limit switch berfungsi sebagai indikator untuk mengaktifkan mikro
servo supaya kembali ke posisi semula, yang dimana limit switch ini bekerja apabila pintu
dibuka dan kemudian pintu ditutup kembali, pintu tersebut berhasil menekan limit switch.
Gambar rangkaian antara raspberry pi dengan limit switch dapat dilihat pada gambar 3.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
GPIO 5 (pin 29) disambungkan dengan COM pada switch, NO pada switch dihubungkan
dengan 3,3 volt dan NC pada switch dihubungkan dengan GND.
Gambar 3.4. Rangkaian antara Limit Switch dan Raspberry pi.
3.2.4. Mikro Servo
Pada sistem ini, mikro servo digunakan sebagai pengunci pintu yang dimana mikro
servo tersebut disambungkan ke raspyberry pi, kemudian didalam raspberry pi dibuat
program untuk menggerakkan mikro servo tersebut. Mikro servo dapat digerakkan dengan
cara diberikan pulsa lewat raspberry pi, jika pulsa tinggi selama 1 milidetik, maka sudut
servo akan menjadi nol, jika pulsa tinggi selama 1,5 milidetik, maka akan berada di posisi
tengah dan jika pulsa tinggi selama 2 milidetik, maka akan berada pada 180 derajat. Contoh
posisi servo dapat dilihat pada gambar 3.5.
(a) (b) (c)
Gambar 3.5. (a) pulsa tinggi selama 1 ms (b) pulsa tinggi selama 1,5 ms (c) pulsa tinggi
selama 2 ms.
Gambar rangkaian antara mikro servo dengan raspberry pi dapat dilihat pada gambar
3.6 yang dimana pin 11 (GPIO 17) adalah pemberi nilai PWM dan sumber tegangan servo
berasal dari power supply bertegangan 5 volt.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Gambar 3.6. Rangkaian Mikro Servo ke Raspberry Pi.
Berdasarkan gambar 3.6, servo membutuhkan tegangan 6 volt dan arus sebesar 550
mA untuk menggerakkan servo, maka merujuk pada rumus 2.9, dapat dicari nilai minimal
resistor yang dibutuhkan, yaitu :
R = V / I = 6 V / 0,55 A = 10,91 ohm
3.2.5. WebCam
Pada sistem ini, WebCam digunakan untuk mengambil citra dari wajah seseorang
yang kemudian hasil dari pengambilan citra tersebut akan di proses didalam raspberry pi.
Rangkaian antara WebCam dan Raspberry pi sangat sederhana karena WebCam yang dipakai
adalah USB WebCam, sehingga WebCam dapat disambung langsung ke USB yang ada pada
Raspberry Pi. Blok diagram hubungan antara raspberry pi dan webcam dapat di lihat pada
gambar 3.7.
Gambar 3.7.blok diagram hubungan WebCam dan Raspberry pi.
3.3. Perancangan Perangkat Lunak
Pada sistem ini ,dirancang sebuah tampilan untuk mempermudah pengguna dalam
mengambil gambar. Pada GUI tersebut dirancang supaya memiliki 4 tombol, yaitu :
a. Mulai yang berfungsi untuk memulai program.
b. Selesai yang berfungsi untuk memberhentikan program.
c. Capture 1 berfungsi untuk menangkap gambar melalui WebCam 1.
d. Capture 2 berfungsi untuk menangkap gambar melalui WebCam 2.
USB Raspberry
pi WebCam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Tampilan GUI yang akan dirancang dapat dilihat pada gambar 3.8.
Gambar 3.8. Tampilan GUI.
Hal yang dilakukan pertama kali dalam GUI adalah dengan menekan tombol mulai,
maka program akan mulai bekerja dan WebCam akan aktif. Pada saat WebCam aktif, maka
posisi wajah yang akan dikenali harus ada di depan WebCam dengan jarak kurang lebih 30
cm sampai 40 cm dari WebCam. Ketika wajah sudah berada di posisi yang sesuai,
selanjutnya menekan tombol capture yang berfungsi sebagai menangkap citra wajah dan
memproses citra wajah yang di capture. Apabila proses yang diinginkan sudah sesuai, maka
dengan menekan tombol selesai program akan berhenti dieksekusi.
3.3.1. Preprocessing
Preprocessing dilakukan untuk memeriksa hasil penangkapan citra wajah yang
dilakukan oleh WebCam. Apabila citra wajah yang ditangkap terlalu jauh, maka akan
dilakukan proses cropping dan resize. Cropping dilakukan apabila wajah yang tertangkap
melalui WebCam terlalu jauh dan setelah dilakukan proses cropping,maka akan dilanjutkan
dengan proses resize, yang dimana ukuran citra hasil cropping akan diubah ukurannya
menjadi 80x80. Setelah melakukan proses cropping maupun resize, hal yang dilakukan
selanjutnya adalah untuk mengubah citra yang ditangkap oleh WebCam ke dalam bentuk
citra RGB, citra yang sudah diubah ke dalam bentuk citra RGB akan diubah kembali ke
dalam bentuk citra grayscale. Proses preprocessing dapat dilihat pada gambar 3.9.
Gambar dari
WebCam 1
Mulai Selesai
Capture
1
Gambar dari
WebCam 2
Capture
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Gambar 3.9. flowchart preprocessing.
3.3.2. Processing
Processing adalah tahapan yang akan dilakukan setelah tahap preprocessing.
Processing merupakan proses utama yang akan dijalankan sebagai penentu sistem keamanan
yang akan dipasang. Semakin teliti dalam processing, maka semakin baik juga sistem
keamanan yang dibuat. Dalam processing terdiri dari berbagai tahapan yang dimana setelah
melakukan preprocessing, maka akan dilanjutkan dengan perhitungan dengan metode PCA.
Perhitungan tersebut dilakukan terhadap citra wajah yang ditangkap oleh WebCam supaya
hasilnya bisa dicocokkan dengan hasil perhitungan yang telah dilakukan terhadap kumpulan
citra wajah yang ada di database. Tahapan processing dapat dilihat pada gambar 3.10.
Gambar 3.10. flowchart processing.
Mulai
Mempersiapkan database wajah
yang akan diuji
Mulai
Haar Cascade Classifier
Konversi ke citra RGB
Konversi citra RGB ke citra grayscale
Selesai
Menangkap citra wajah
B
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Gambar 3.10. (Lanjutan) flowchart processing. Tahapan pertama dalam flowchart tersebut adalah mulai, yang dimana program
sudah mulai berjalan ketika tombol capture pada GUI ditekan. Setelah citra wajah berhasil
ditangkap, maka proses selanjutnya mengubah data-data citra menjadi data matrik,
kemudian data matriks tersebut diubah ke dalam bentuk vektor. Setelah diubah kedalam
bentuk vektor, maka proses berlanjut ke perhitungan rata-rata vektor wajah, yang dimana
hal tersebut dapat mengurangi noise yang terdapat dalam citra wajah. Setelah mendapatkan
rata-rata, maka data wajah asli dikurangkan dengan rata-rata supaya noise yang terdapat
dalam citra wajah dapat dihilangkan. Kemudian perhitungan berlanjut sampai perhitungan
eigenface yang dimana perhitungan tersebut berguna dalam perhitungan euclidean dengan
Menghitung matriks kovarian
Mempersiapkan data wajah yang
ditangkap oleh WebCam
Menghitung rata-rata vektor wajah
Kurangi vektor wajah rata-rata
dari wajah asli
Menghitung eigenvalue dan
eigenvector dari matriks kovarian
Menghitung jarak euclidean antara vektor citra yang
ditangkap dan vektor citra dalam database.
Menemukan kelas wajah dengan jarak euclidean minimum yang
menunjukkan kemiripan dengan citra yang ditangkap.
Selesai
B
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
cara mencari selisih terkecil antara eigenface citra wajah hasil penangkapan WebCam
dengan citra wajah yang terdapat di dalam database.
3.3.2.1. Perhitungan dalam processing
Hal pertama kali yang dilakukan setelah mengambil gambar dari WebCam adalah
mengubah gambar tersebut ke dalam bentuk matriks. Bentuk matriks pada gambar dapat
dimisalkan sebagai berikut.
X1 = [2 3 41 3 76 4 9
]
X2 = [5 3 71 1 70 4 2
]
X3 = [2 3 41 3 54 4 7
]
dengan X1 adalah matriks gambar pertama, X2 adalah matriks gambar kedua dan X3 adalah
matriks gambar ketiga.
Setelah mendapatkan bentuk matriks tersebut, maka langkah selanjutnya adalah
mengubah matriks tersebut kedalam bentuk vektor
V1 =
[ 234137649]
,V2 =
[ 537117042]
,V3 =
[ 234135447]
dengan V1 adalah vektor dari matriks X1, V2 adalah vektor dari matriks X2 dan V3 adalah
vektor dari matriks ketiga.
Setelah mengubah ke dalam bentuk vektor, langkah selanjutnya adalah mencari rata-
rata tiap vektor. Hal ini bertujuan untuk untuk mengetahui noise yang dapat mengurangi
tingkat keakuratan didalam perhitungan.
𝑉1̅̅̅̅ = ∑𝑉1
𝑀=
39
9= 4,33
𝑉2̅̅̅̅ = ∑𝑉2
𝑀=
30
9= 3,33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
𝑉3̅̅̅̅ = ∑𝑉3
𝑀=
33
9= 3,67
Setelah mendapatkan rata-rata tersebut, maka kurangkan nilai vektor asli dengan rata-
rata yang sudah didapatkan. Hal ini berfungsi untuk menghilangkan noise yang dapat
menganggu keakuratan perhitungan.
ϕ1 =
[ −2,33
−1,33−0,33
−3,33−1,33
2,671,67
−0,33
4,67 ]
ϕ2 =
[
1,67
−0,333,67
−2,33−2,33
3,67−3,33
0,67
−1,33]
ϕ3 =
[ −1,67
−0,670,33
−2,67−0,67
1,330,33
0,33
3,33 ]
Setelah mengurangi nilai vektor asli dengan rata-rata, maka ketiga vektor tersebut
ditranspose sehingga didapatkan sebuah matriks baris.
ϕ1 = [−2,33 − 1,33 − 0,33 − 3,33 − 1,33 2,67 1,67 − 0,33 4,67]
ϕ2 = [1,67 − 0,33 3,67 − 2,33 − 2,33 3,67 − 3,33 0,67 − 1,33]
ϕ3 = [−1,67 − 0,67 0,33 − 2,67 − 0,67 1,33 0,33 0,33 3,33]
Setelah melakukan transpose matriks, langkah selanjutnya adalah mencari matriks
kovarian. Dengan menggunakan rumus 2.4 , maka didapatkan hasil :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
ϕ1 = 6,5
ϕ2 = 6,75
ϕ3 = 3
Setelah mendapatkan matriks kovarian, langkah selanjutnya adalah mencari nilai
eigenvalue dan eigenvektor. Dengan menggunakan rumus 2.5, maka didapatkan hasil :
eigenvalue 1 = 6,5 , eigenvektor 1 = 1
eigenvalue 2 = 6,75 , eigenvektor 2 = 1
eigenvalue 3 = 3 , eigenvektor 3 = 1
Setelah mendapatkan nilai eigenvalue dan eigenvektor, maka langkah selanjutnya
adalah mencari nilai eigenface. Dengan menggunakan rumus 2.6, maka didapatkan hasil :
ϕ1 =
[ −2,33
−1,33−0,33
−3,33−1,33
2,671,67
−0,33
4,67 ]
ϕ2 =
[
1,67
−0,333,67
−2,33−2,33
3,67−3,33
0,67
−1,33]
ϕ3 =
[ −1,67
−0,670,33
−2,67−0,67
1,330,33
0,33
3,33 ]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Setelah mendapatkan nilai eigenface, maka langkah selanjutnya adalah mencari nilai
rata-rata eigenface tersebut, sehingga didapatkan hasil :
ϕ1 = 2.9605947323337506e-16
ϕ2 = -1.4802973661668753e-16
ϕ3 = 1.4802973661668753e-16
Setelah mendapatkan nilai rata-rata eigenface, maka langkah selanjutnya adalah
dengan mencari nilai jarak euclidean. Penentuan hasil didapatkan dengan cara mencari nilai
minimum dari hasil perhitungan jarak euclidean. Dimisalkan nilai minimum yang didapat
adalah 10, 7 dan 15, maka nilai minimumnya adalah vektor 2.
3.3.3. Penentuan Keluaran
Gambar 3.11. flowchart keluaran sistem.
Diagram alir penentuan keluaran sistem dapat dilihat pada gambar 3.11. Proses
penentuan keluaran merupakan tahap akhir dari proses sistem yang akan dibuat. Tahap ini
menghasilkan 2 kondisi, yaitu:
1. kondisi pertama jika hasil pengenalan wajah berhasil, maka mikro servo akan
bergerak sehingga pintu dapat terbuka dan lampu LED hijau akan menyala.
Ya
Tidak
Selesai
Mulai
Processing citra wajah
Sesuai
database?
Pintu terbuka & LED Hijau
Pintu terkunci &
LED Merah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
2. Kondisi kedua apabila hasil pengenalan wajah tidak berhasil atau tidak sesuai
dengan database, maka mikro servo akan tetap diam sehingga pintu akan tetap
terkunci dan lampu LED merah akan menyala.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
BAB IV
HASIL DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai hasil pengamatan dari pengenalan wajah untuk
keamanan pintu menggunakan raspberry pi. Hasil pengamatan berupa pengujian
keberhasilan yang dihasilkan. Pada bab ini juga akan dibahas mengenai perubahan antara
rancangan alat dan implementasi alat.
4.1. Perubahan Rancangan
4.1.1. Desain Pintu
Pembuatan perangkat keras yang berupa desain pintu yang akan digunakan terdapat
sedikit perubahan posisi webcam 2 dan LED untuk bagian dalam karena posisi yang
digunakan sebelumnya tidak mencukupi untuk meletakkan posisi webcam 2 dan desain pintu
ini juga memiliki sedikit perubahan di bagian ukuran pintu dan bagian luar.
Pada bagian ukuran luar memiliki sedikit perubahan ukuran yang di mana ukuran
semula adalah 60×5×25 cm menjadi 58,5×5×25 cm, sedangkan untuk bagian pintu yang
dimana ukuran semula adalah 12x20 cm menjadi 11,5×20cm. Hal ini disebabkan karena
tidak tepatnya penulis dalam memotong triplek.
Perubahan posisi webcam 2 dan LED bagian dalam dapat dilihat pada gambar 4.1.
yang dimana pada gambar 3.2 , posisi webcam 2 dan LED bagian dalam terletak di sebelah
kiri pintu dan pada perubahan ini posisi webcam terletak di sebelah kanan pintu.
Gambar 4.1. Bagian Dalam Desain Pintu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
4.1.2. Rangkaian LED
Perubahan rangkaian LED ini disebabkan oleh berubahnya letak posisi webcam 2
yang mengakibatkan penambahan jumlah LED yang dimana pada perancangan hanya
memakai 1 LED berwarna merah dan 1 LED berwarna hijau dan pada implementasi alat
menjadi 2 LED berwarna merah dan 2 LED berwarna hijau. Perubahan rangkaian LED
dapat dilihat pada gambar 4.2.
Gambar 4.2. Perubahan Rangkaian LED.
4.1.3. Tampilan GUI
Pada proses pembuatan tampilan GUI mengalami sedikit perubahan yaitu pada
gambar 3.3, GUI memiliki tombol start dan stop, sedangkan pada pembuatan tampilan GUI,
GUI tidak memiliki tombol stat dan stop. Tampilan GUI yang dipakai dapat dilihat pada
gambar 4.3.
Gambar 4.3. Tampilan GUI.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
4.2. Hasil Implementasi
Bagian ini akan dibahas mengenai perangkat keras dan perangkat lunak. Perangkat
keras berupa penempatan webcam , power supply, raspberry pi dan beberapa rangkaian,
sedangkan untuk perangkat lunak berupa penjelasan mengenai program dan hasilnya.
4.2.1. Implemetasi Perangkat Keras
Hasil dari pembuatan tampilan depan perangkat keras yang berupa desain pintu
bagian depan dapat dilihat pada gambar 4.4. Pada gambar 4.4. terdapat 2 blok, 1 blok
berwarna hitam dan 1 blok berwarna merah. Blok berwarna hitam merupakan indikator LED
yang berfungsi untuk mengetahui kondisi pintu dalam keadaan terkunci atau tertutup. Jika
kondisi pintu tertutup, maka LED yang aktif adalah LED berwarna merah dan jika kondisi
pintu terbuka, maka LED yang aktif adalah LED berwarna hijau. Blok berwarna merah
merupakan webcam 1 yang berfungsi untuk menangkap dan memproses citra atau wajah
yang ingin membuka pintu dari luar.
Gambar 4.4. Tampilan Pintu Bagian Depan.
Hasil dari pembuatan tampilan belakang perangkat keras yang berupa desain pintu
bagian belakang dapat dilihat pada gambar 4.5. Pada gambar 4.5. terdapat 2 blok, 1 blok
berwarna kuning dan 1 blok berwarna orange. Blok berwarna kuning merupakan indikator
LED yang berfungsi untuk mengetahui kondisi pintu dalam keadaan terkunci atau tertutup.
Jika kondisi pintu tertutup, maka LED yang aktif adalah LED berwarna merah dan jika
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
kondisi pintu terbuka, maka LED yang aktif adalah LED berwarna hijau. Blok berwarna
orange merupakan webcam 2 yang berfungsi untuk menangkap dan memproses citra atau
wajah yang ingin membuka pintu dari dalam.
Gambar 4.5. Tampilan Pintu Bagian Belakang.
Hasil dari pembuatan bagian dalam desain pintu dapat dilihat pada gambar 4.6. Pada
gambar 4.6. terdapat beberapa blok warna, blok berwarna merah merupakan power supply 5
volt 1 ampere yang berfungsi sebagai sumber penggerak mikro servo sg90, blok berwarna
kuning merupakan rangkaian LED yang berfungsi sebagai indikator kondisi pintu dalam
keadaan terbuka atau terkunci, blok berwarna hijau merupakan webcam 1 dan webcam 2
yang berfungsi untuk menangkap dan memproses citra wajah yang ingin membuka pintu
dari dalam maupun dari luar, blok berwarna biru merupakan limit switch yang berfungsi
sebagai indikator untuk mengaktifkan mikro servo, blok berwarna pink merupakan mikro
servo yang berfungsi sebagai alat untuk mengunci dan membuka pintu, blok berwarna hitam
merupakan rangkaian pusat yang dimana pada rangkaian tersebut terdapat pin header sebagai
jalur untuk menghubungkan rangkaian LED, limit switch dan mikro servo ke raspberry pi,
dan blok terakhir yang berwarna coklat merupakan raspberry pi yang berfungsi sebagai
tempat untuk menjalankan program, mengaktifkan beberapa GPIO untuk menghidupkan
LED, limit switch dan mikro servo.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Gambar 4.6. Bagian dalam Desain Pintu.
4.2.2. Cara Kerja Sistem
Proses kerja sistem diawali dengan menjalankan tampilan GUI yang hasil tampilan
GUI dapat dilihat pada gambar 4.3, kemudian lampu LED berwarna merah akan menyala
dan lampu LED berwarna hijau akan mati. Proses selanjutnya adalah program akan
mendeteksi di bagian pemrosesan webcam apakah ada wajah yang terdeteksi atau tidak, jika
ada wajah yang terdeteksi maka proses berlanjut ke pembentukan kotak di area wajah yang
terdeteksi, hasil pemberian kotak dapat dilihat pada gambar 4.7.
Gambar 4.7. Pemberian Bentuk Kotak Pada Area Wajah.
Hal yang dilakukan selanjutnya adalah pengguna menekan tombol capture yang
berfungsi untuk memproses wajah yang sudah ada di dalam area kotak. Setelah menekan
tombol capture, maka akan didapatkan nilai eigenface dari data real, kemudian eigenface
dari data real dilakukan perhitungan jarak euclidean dengan data dari database. Setelah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
melakukan perhitungan jarak euclidean dengan database yang berbeda-beda, maka akan
dicari nilai minimal dari hasil perhitungan jarak euclidean tersebut, kemudian dari nilai
minimal tersebut dapat ditentukan wajah siapa yang dikenali. Setelah wajah dapat dikenali,
maka mikro servo yang berfungsi sebagai pengunci pintu akan bergerak untuk membuka
pintu dan lampu LED berwarna merah akan mati dan lampu LED berwarna hijau akan
menyala, apabila pintu ditutup kembali dan menyentuh limit switch, maka servo akan
bergerak untuk mengunci pintu kembali, LED berwarna merah akan menyala dan LED
berwarna hijau akan mati.
4.2.3. Pengujian Sistem Keamanan Pintu Dengan Pengenalan Wajah
Orang Yang Ada Di Database
Pada pengujian ini dilakukan 2 cara dalam menguji data testing, cara pertama data
testing diambil dari salah satu foto yang ada di database dan cara kedua data testing diambil
melalui webcam.
Dengan melakukan cara pertama yaitu mengambil data testing dari salah sattu
database, maka hasil yang didapatkan cukup akurat. Apabila penulis mengambil data testing
yang berupa wajah vinsent, maka keluaran yang didapatkan adalah vinsent, begitu juga jika
dengan wajah panji, marco dan tian, hasil yang keluar sesuai dengan yang diinginkan. Hasil
dapat dilihat pada tabel 4.1, dengan mengambil 3 data wajah dari database untuk testing.
Tabel 4.1. Tabel Hasil Pengenalan dan Nilai Jarak Euclidean.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Minimal
Hasil
Penge-
nalan Marco Tian Vinsent Panji
Marco
1 2040 3625 3631 4674 2040 Marco
2 2208 4009 4108 4978 2208 Marco
3 2344 3917 3901 4901 2344 Marco
Vinsent
1 3637 3471 1276 4420 1276 Vinsent
2 3722 3445 1544 4655 1544 Vinsent
3 3243 3274 1676 4547 1676 Vinsent
Tian
1 3352 904 3264 4154 904 Tian
2 3332 1778 3373 4511 1778 Tian
3 3323 713 3269 4072 713 Tian
Panji
1 4470 4070 4360 706 706 Panji
2 4389 3920 4249 783 783 Panji
3 4453 4010 4335 517 517 Panji
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Dengan melakukan cara kedua yaitu mengambil data testing melalui webcam,
dilakukan dengan melakukan percobaan di 2 kondisi intensitas cahaya yang berbeda.
Tingkat intensitas cahaya dapat diketahui dengan sebuah aplikasi di android yang bernama
lux meter. Hasil pengujian real time yang pertama dengan tingkat intensitas cahaya berkisar
antara 138-141 lux dapat dilihat pada tabel 4.2, tabel 4.3 dan tabel 4.4.
Tabel 4.2.Hasil Pengujian Real Time Tanpa Atribut Dengan Intensitas Cahaya 138-141
lux.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Marco
1 4028 3923 4542 4442 3923 Tian Terbuka Terkunci
2 4132 4136 4351 4756 4132 Marco Terbuka Terbuka
3 4148 4135 4452 4690 4135 Tian Terbuka Terkunci
4 4160 4258 4451 4862 4160 Marco Terbuka Terbuka
5 4169 4172 4525 4680 4169 Marco Terbuka Terbuka
Vinsent
1 3976 4425 4767 4226 3976 Marco Terbuka Terkunci
2 3527 4105 4422 3831 3527 Marco Terbuka Terkunci
3 3393 3996 4280 3589 3393 Marco Terbuka Terkunci
4 3865 4535 4867 3443 3443 Panji Terbuka Terkunci
5 4094 4795 5174 3534 3534 Panji Terbuka Terkunci
Tian
1 3540 2986 3791 4682 2986 Tian Terbuka Terbuka
2 3529 3059 3830 4500 3059 Tian Terbuka Terbuka
3 3528 3055 3809 4583 3055 Tian Terbuka Terbuka
4 3514 3093 3844 4447 3093 Tian Terbuka Terbuka
5 3482 3040 3809 4477 3040 Tian Terbuka Terbuka
Panji
1 4021 3800 4519 3944 3800 Tian Terbuka Terkunci
2 4196 3952 4694 3930 3930 Panji Terbuka Terbuka
3 4445 4028 4800 4150 4028 Tian Terbuka Terkunci
4 4422 4064 4822 4134 4064 Tian Terbuka Terkunci
5 4445 4080 4855 4127 4080 Tian Terbuka Terkunci
Tabel 4.3. Hasil Pengujian Real Time Dengan Atribut Topi Dengan Intensitas Cahaya 138-
141 lux. Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Marco
1 3735 3349 3955 3904 3349 Tian Terbuka Terkunci
2 3949 3525 4265 4304 3525 Tian Terbuka Terkunci
3 4007 3975 4470 4173 3975 Tian Terbuka Terkunci
4 4128 4096 4575 4373 4096 Tian Terbuka Terkunci
5 4113 4016 4558 4363 4016 Tian Terbuka Terkunci
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Tabel 4.4. (Lanjutan) Hasil Pengujian Real Time Dengan Atribut Topi Dengan Intensitas
Cahaya 138-141 lux
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Vinsent
1 4170 4174 4621 4277 4170 Marco Terbuka Terkunci
2 3998 3942 4458 4088 3942 Tian Terbuka Terkunci
3 4223 4081 4659 4315 4081 Tian Terbuka Terkunci
4 4068 4056 4517 4036 4036 Panji Terbuka Terkunci
5 4207 4003 4549 4261 4003 Tian Terbuka Terkunci
Tian
1 2558 2612 3029 3652 2558 Marco Terbuka Terkunci
2 3543 2760 3542 4455 2760 Tian Terbuka Terbuka
3 3515 2684 3526 4235 2684 Tian Terbuka Terbuka
4 3497 2760 3567 4286 2760 Tian Terbuka Terbuka
5 3493 2697 3519 4248 2697 Tian Terbuka Terbuka
Panji
1 3736 3497 4111 3960 3497 Tian Terbuka Terkunci
2 3964 3628 4237 4125 3628 Tian Terbuka Terkunci
3 3979 3646 4270 4131 3646 Tian Terbuka Terkunci
4 3583 3377 4012 3955 3377 Tian Terbuka Terkunci
5 3982 3557 4194 4180 3557 Tian Terbuka Terkunci
Tabel 4.5. Hasil Pengujian Real Time Dengan Atribut Kacamata Demgan Intensitas
Cahaya 138-141 lux.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Marco
1 3949 4206 4642 4347 3949 Marco Terbuka Terbuka
2 4121 4186 4645 4498 4121 Marco Terbuka Terbuka
3 4026 4151 4609 4416 4026 Marco Terbuka Terbuka
4 3405 3913 4271 3732 3405 Marco Terbuka Terbuka
5 3811 4220 4574 4143 3811 Marco Terbuka Terbuka
Vinsent
1 4342 4930 5168 4448 4342 Marco Terbuka Terkunci
2 4382 4863 5094 4508 4382 Marco Terbuka Terkunci
3 4000 4441 4680 4099 4000 Marco Terbuka Terkunci
4 3986 4423 4712 4127 3986 Marco Terbuka Terkunci
5 3945 4504 4737 4028 3945 Marco Terbuka Terkunci
Tian
1 3533 3771 4086 4240 3533 Marco Terbuka Terkunci
2 3413 3748 4047 4593 3413 Marco Terbuka Terkunci
3 3436 3775 4088 4558 3436 Marco Terbuka Terkunci
4 3378 3691 3978 4663 3378 Marco Terbuka Terkunci
5 3397 3757 4048 4590 3397 Marco Terbuka Terkunci
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Tabel 4.6. (Lanjutan) Hasil Pengujian Real Time Dengan Atribut Kacamata Demgan
Intensitas Cahaya 138-141 lux.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Panji
1 3834 3960 4580 4222 3834 Marco Terbuka Terkunci
2 4024 3856 4520 4430 3856 Tian Terbuka Terkunci
3 4163 3941 4638 4448 3941 Tian Terbuka Terkunci
4 4128 4017 4703 4339 4017 Tian Terbuka Terkunci
5 4120 4013 4708 4332 4013 Tian Terbuka Terkunci
Tabel 4.7. Persentase Keberhasilan Dengan Intensitas Cahaya 138-141 lux. Tanpa
Atribut
Atribut
Topi
Atribut
Kacamata
Marco 60% 0% 100%
Vinsent 0% 0% 0%
Panji 20% 0% 0%
Tian 100% 80% 0%
Hasil pengujian kedua dengan tingkat intensitas cahaya berkisar antara 45-47 lux dapat
dilihat pada tabel 4.6, tabel 4.7 dan tabel 4.8
Tabel 4.8. Hasil Pengujian Real Time Tanpa Atribut Dengan Intensitas Cahaya 45-47 lux.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Marco
1 3673 4042 4701 4160 3673 Marco Terbuka Terbuka
2 3713 4079 4738 4330 3713 Marco Terbuka Terbuka
3 3639 4017 4637 4309 3639 Marco Terbuka Terbuka
4 3757 4110 4772 4246 3757 Marco Terbuka Terbuka
5 3665 4011 4656 4298 3665 Marco Terbuka Terbuka
Vinsent
1 3777 3796 4398 3649 3649 Panji Terbuka Terkunci
2 3806 3655 4376 3897 3655 Tian Terbuka Terkunci
3 3908 3666 4466 3970 3666 Tian Terbuka Terkunci
4 3912 3762 4554 3839 3762 Tian Terbuka Terkunci
5 3922 3767 4571 3931 3767 Tian Terbuka Terkunci
Tian
1 3665 4384 4638 4459 3665 Marco Terbuka Terkunci
2 3807 4392 4636 4454 3807 Marco Terbuka Terkunci
3 3732 4409 4738 4518 3732 Marco Terbuka Terkunci
4 3682 4352 4569 4617 3682 Marco Terbuka Terkunci
5 3634 4367 4575 4478 3634 Marco Terbuka Terkunci
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Tabel 4.9. (Lanjutan) Hasil Pengujian Real Time Tanpa Atribut engan Intensitas Cahaya
45-47 lux.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Panji
1 4235 4408 5243 4269 4235 Marco Terbuka Terkunci
2 4208 4289 5154 4255 4208 Marco Terbuka Terkunci
3 4248 4324 5174 4224 4224 Panji Terbuka Terbuka
4 4337 4287 5179 4584 4287 Tian Terbuka Terkunci
5 4298 4382 5219 4321 4298 Marco Terbuka Terkunci
Tabel 4.10. Hasil Pengujian Real Time Dengan Atribut Topi Dengan Intensitas Cahaya 45-
47 lux.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Marco
1 2936 3320 3481 4198 2936 Marco Terbuka Terbuka
2 2883 3321 3470 4346 2883 Marco Terbuka Terbuka
3 3000 3345 3563 4195 3000 Marco Terbuka Terbuka
4 2969 3323 3467 4266 2969 Marco Terbuka Terbuka
5 2992 3317 3518 4222 2992 Marco Terbuka Terbuka
Vinsent
1 3686 3989 4380 3711 3686 Marco Terbuka Terkunci
2 3769 3970 4401 4018 3769 Marco Terbuka Terkunci
3 3838 3863 4432 4247 3838 Marco Terbuka Terkunci
4 3916 3409 4313 4328 3409 Tian Terbuka Terkunci
5 4005 3694 4652 4073 3694 Tian Terbuka Terkunci
Tian
1 3258 3352 3644 4494 3258 Marco Terbuka Terkunci
2 3149 3364 3602 4430 3149 Marco Terbuka Terkunci
3 3129 3206 3626 4376 3129 Marco Terbuka Terkunci
4 3184 3359 3747 4449 3184 Marco Terbuka Terkunci
5 3160 3246 3617 4424 3160 Marco Terbuka Terkunci
Panji
1 3373 3601 3972 3610 3373 Marco Terbuka Terkunci
2 3705 3734 4118 3988 3705 Marco Terbuka Terkunci
3 3988 3936 4261 4608 3936 Tian Terbuka Terkunci
4 3754 3710 4169 4024 3710 Tian Terbuka Terkunci
5 3500 3501 4048 3985 3500 Marco Terbuka Terkunci
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Tabel 4.11. Hasil Pengujian Real Time Dengan Atribut Kacamata Demgan Intensitas
Cahaya 45-47 lux.
Wajah
Testing
Pe-
ng-
uji-
an
Ke-
Hasil Perhitungan jarak
Nilai
Min-
imal
Hasil
Peng-
enalan
Status Pintu
Marco Tian Vins-
ent Panji Real
Seharus-
nya
Marco
1 3654 4058 4711 4542 3654 Marco Terbuka Terbuka
2 3682 4049 4643 4552 3682 Marco Terbuka Terbuka
3 3654 4011 4579 4548 3654 Marco Terbuka Terbuka
4 3678 4033 4620 4491 3678 Marco Terbuka Terbuka
5 3698 4096 4755 4520 3698 Marco Terbuka Terbuka
Vinsent
1 4445 4723 5215 4421 4421 Panji Terbuka Terkunci
2 4226 4536 5144 4041 4041 Panji Terbuka Terkunci
3 4310 4243 4925 4430 4243 Tian Terbuka Terkunci
4 4434 4551 5106 4448 4434 Marco Terbuka Terkunci
5 4297 4380 4997 4211 4211 Panji Terbuka Terkunci
Tian
1 3634 3766 4398 5024 3634 Marco Terbuka Terkunci
2 3668 3792 4322 5070 3668 Marco Terbuka Terkunci
3 3663 3720 4323 5050 3663 Marco Terbuka Terkunci
4 3690 3742 4340 5267 3690 Marco Terbuka Terkunci
5 3655 3677 4347 5186 3655 Marco Terbuka Terkunci
Panji
1 4121 4332 5027 3955 3955 Panji Terbuka Terbuka
2 4252 4343 5157 4231 4231 Panji Terbuka Terbuka
3 4225 4588 5362 4139 4139 Panji Terbuka Terbuka
4 4164 4138 4953 4123 4123 Panji Terbuka Terbuka
5 4220 4327 5142 4044 4044 Panji Terbuka Terbuka
Tabel 4.12. Persentase Keberhasilan Dengan Intensitas Cahaya 45-47 lux. Tanpa
Atribut
Atribut
Topi
Atribut
Kacamata
Marco 100% 100% 100%
Vinsent 0% 0% 0%
Panji 0% 0% 0%
Tian 20% 0% 100%
Dari pengujian dengan 2 tingkat intensitas cahaya yang berbeda, maka dapat dianalisa
bahwa cahaya mempengaruhi pendeteksian sebuah wajah karena cahaya mempengaruhi
nilai piksel gambar yang di capture. Hal lain yang mengakibatkan keberhasilan hanya dapat
dilihat dari percobaan dengan wajah marco dan tian adalah kurangnya variasi wajah yang
diambil, maksud dari variasi tersebut adalah wajah di database hanya terdapat wajah dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
posisi lurus tegak meghadap kamera, hal tersebut yang mengakibatkan kemungkinan besar
wajah hanya mengenali 2 orang.
Adapun hal lain yang mempengaruhi tingkat keberhasilan keamanan pintu adalah
sesuai atau tidaknya wajah yang ditangkap dengan proses keluaran, misalnya adalah ketika
wajah A dilakukan proses identifikasi kemudian proses keluarannya adalah A, maka hal
tersebut bisa dikatakan berhasil, namun apabila proses keluarannya adalah B atau C atau D,
maka hal tersebut bisa dikatakan tidak berhasil.
4.2.4. Pengujian Sistem Keamanan Pintu Dengan Pengenalan Wajah
Orang Yang Tidak Dikenali.
Hasil yang didapatkan pada tahap pengujian pengenalan wajah orang yang tidak
dikenali adalah orang yang tidak dikenali tersebut teridentifikasi sebagai salah satu orang
yang ada di database, hal ini terjadi karena belum ada nilai batasan antara orang yang
dikenali dan orang yang tidak dikenali. Contoh pengambilan data wajah untuk orang yang
tidak dikenali dapat dilihat pada gambar 4.8.
Gambar 4. 8. Pendeteksian Wajah Orang Yang Tidak Dikenal.
Nilai jarak yang didapat dari percobaan wajah yang tidak dikenali dapat dilihat pada
tabel 4.10.
Tabel 4.13. Hasil Perhitungan Jarak.
Database Nilai Jarak
Marco 4660
Tian 4148
Vinsent 4262
Panji 4392
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Dari hasil perhitungan jarak tersebut, dapat dilihat nilai minimal yang didapat adalah
4148,6917 yang dimana nilai minimal tersebut menunjukkan database tian, sehingga pintu
akan terbuka. Untuk pengujian dengan pengambilan data testing dari database, hal ini dapat
diantisipasi dengan cara melihat tabel 4.2, yang dimana nilai minimal yang didapatkan
paling besar adalah 2344,3190 , sehingga dapat diambil kesimpulan untuk mengantisipasi
orang yang tidak dikenal apabila nilai jarak lebih dari 2500 maka sudah dianggap tidak
dikenali, sedangkan untuk pengujian dengan pengambilan data testing dari webcam, hal ini
dapat diantisipasi dengan cara memberi nilai batasan jarak sebesar 4000, sehingga apabila
nilai jarak hasil perhitungan lebih besar dari nilai batasan, maka hasil yang ditunjukkan
adalah orang tersebut tidak dikenali.
4.2.5. Pembuatan Database
Program penyimpanan gambar wajah untuk database dapat dilihar pada gambar 4.9.
Gambar 4.9. Program Penyimpanan Gambar.
Pada gambar 4.9, terdapat potongan program database yang dimana kode cam.read
berfungsi untuk membaca apa yang tertangkap dikamera, kemudian kode cv2.flip berfungsi
sebagai membalikkan arah gerak pada kamera, hal ini karena arah gerak kamera dengan real
time berlawanan, misalnya kita bergerak ke kanan maka apa yang kita lihat di frame kamera
adalah kita bergerak kekiri. Hal selanjutnya adalah mendeteksi apakah ada wajah yang
tertangkap dikamera, jika ada wajah yang tertangkap dikamera maka wajah tersebut akan
diberi kotak seperti pada gambar 4.10.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 4.10. Pemberian Bentuk Kotak di daerah wajah.
Hal selanjutnya yang dilakukan apabila sudah memberi bentuk kotak didaerah wajah
adalah dengan menekan tombol ‘c’ pada keyboard, sehingga wajah akan tersimpan dalam
bentuk grayscale seperti pada gambar 4.11.
Gambar 4.11. Beberapa data wajah 1 orang dalam bentuk grayscale.
Program pengambilan database wajah 1 orang akan berhenti apabila jumlah database
yang diinginkan sudah tercapai, didalam program tersebut jumlah database yang diinginkan
berjumlah 21 gambar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Sebelum mengubah dalam bentuk grayscale, maka hal yang pertama kali diambil
adalah pengambilan daerah wajah yang sudah diberi kotak, setelah dilakukan pengambilan
daerah wajah yang diberi kotak, maka hal yang dilakukan selanjutnya adalah mengubah
daerah wajah yang sudah diambil tersebut kedalam bentuk grayscale. Hal ini dapat dilihat
pada gambar 4.12.
Gambar 4.12. Proses Pengambilan Gambar Database.
4.2.6. Perhitungan Database
Program perhitungan database dapat dilihat pada gambar 4.13.
Gambar 4.13. Program Perhitungan Database.
Pada program perhitungan database ini, hal yang pertama dilakukan adalah dengan
melakukan pencarian folder yang berisikan gambar grayscale seperti pada gambar 4.9,
setelah menuju folder yang terdapat kumpulan gambar grayscale, maka hal yang dilakukan
selanjutnya adalah memastikan apakah folder tersebut benar-benar memiliki file gambar
dalam format ‘png’ ataupun ‘jpg’, jika tidak ada file dalam bentuk format tersebut, maka
proses tidak akan berlangsung dan jika di dalam folder tersebut terdapat file dalam bentuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
format tersebut maka proses selanjutnya adalah mengubah gambar di dalam folder tersebut
ke dalam bentuk grayscale, hal ini berguna untuk memastikan bahwa file yang ada di dalam
folder tersebut sudah dalam bentuk grayscale. Setelah mengubah file tersebut ke dalam
bentuk grayscale, maka hal yang dilakukan selanjutnya adalah mengubah ukuran file
tersebut menjadi 80×80, setelah mengubah ukuran file tersebut maka hal yang dilakukan
adalah mengambil nilai pixel dalam gambar tersebut dan mengubahnya ke dalam bentuk
array matriks. Setelah mengubah file gambar tersebut ke dalam bentuk array matriks, hal
yang dilakukan selanjutnya adalah bentuk array matriks tersebut ke dalam bentuk vektor
kolom, kemudian array matriks yang sudah diubah ke dalam bentuk vektor kolom
dimasukkan ke dalam sebuah list sehingga terbentuk matriks baru, kemudian setiap baris
dari matriks baru tersebut dijumlahkan, sehingga membentuk sebuah matriks kolom yang
baru yang merupakan gabungan dari database setiap wajah. Setelah terbentuknya vektor
kolom baru tersebut, maka hal selanjutnya adalah mencari rata-rata dari vektor kolom
tersebut, kemudian vektor kolom tersebut dikurangi dengan rata-rata. Hal selanjutnya yang
dilakukan adalah mencari nilai kovarian, eigenvalue, eigenvektor, dan hal terakhir yang
dilakukan adalah mencari nilai eigenface.
Berikut adalah contoh penerapan proses penggabungan beberapa matriks wajah,
sehingga menjadi sebuah vektor kolom yang baru, misal diberikan 3 buah matrik :
X1 = [2 3 41 3 76 4 9
]
X2 = [5 3 71 1 70 4 2
]
X3 = [2 3 41 3 54 4 7
]
Kemudian, ketiga matriks tersebut diubah menjadi vektor kolom
V1 =
[ 234137649]
,V2 =
[ 537117042]
,V3 =
[ 234135447]
Setelah itu, vektor kolom tersebut dimasukkan ke dalam sebuah list
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
V1 =
[ 2 5 23 3 34 7 41 1 13 1 37 7 56 0 44 4 49 2 7]
Setelah didapatkan matriks baru dari penggabungan vektor kolom, maka langkah
selanjutnya adalah menjumlahkan setiap baris, sehingga menjadi sebuah vektor kolom
kembali
V1 =
[ 99153719101218]
4.2.7. Perhitungan Jarak Euclidean.
Perhitungan jarak euclidean dilakukan dengan rumus :
𝐸𝑢𝑐𝑙𝑖𝑑𝑒𝑎𝑛 = √∑(𝑋𝑖 − 𝑋𝑗)2
𝑛
𝑖=1
dimana Xi merupakan eigenface dari citra testing dan Xj merupakan eigenface dari citra
wajah database. Berikut adalah contoh penerapannya di dalam program, misal didapatkan
nilai dari eigenface testing dan eigenface dari database.
Eigenface testing = [[ 69.05640625]
[ 68.05640625]
[ 66.05640625]
...
[-13.94359375]
[-20.94359375]
[-16.94359375]]
(4.1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
eigenface database = [[46.89698661]
[42.56365327]
[37.42079613]
...
[-5.29348958]
[ 0.61127232]
[ 7.27793899]]
Proses pertama yang dilakukan adalah dengan mengurangkan tiap baris data testing dengan
database, kemudian dikuadratkan dan dimasukkan ke dalam sebuah list, kemudian
melakukan penjumlahan dari hasil-hasil perhitungan yang ada di dalam list tersebut, setelah
melakukan penjumlahan maka langkah selanjutnya adalah mengakarkan hasil penjumlahan
tersebut , sehingga didapatkan hasil matriks 1×1. Dari matriks 1×1 inilah nilainya
dibandingkan dengan hasil pencarian nilai pengurangan eigenface testing dengan eigenface
database lain.
4.2.8. Mikro Servo
Mikro servo dapat dikendalikan dengan menggunakan sinyal PWM yang
dikeluarkan oleh pin raspberry pi. Frekuensi pada motor servo yang dipakai adalah 50Hz
dengan kata lain periodanya 20ms. Untuk 90 derajat bisa didapatkan dengan memberikan
pulsa sepanjang 1,5ms, kemudian posisi 0 derajat bisa didapatkan dengan memberikan pulsa
sepanjang 0,5 ms dan untuk posisi 180 derajat bisa didapatkan dengan memberikan pulsa
sepanjang 2,5 ms. Perhitungan duty cycle dibutuhkan untuk menggerakkan mikro servo
melalui program yang dibuat. Berikut adalah perhitungan duty cycle :
1. Duty cycle untuk sudut 0 derajat :
Duty cycle = (0,5/20) * 100% = 2,5%
2. Duty cycle untuk sudut 90 derajat :
Duty cycle = (1,5/20) * 100% = 7,5%
3. Duty cycle untuk sudut 180 derajat :
Duty cycle = (2,5/20) * 100% = 12,5%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian serta pengambilan data, dapat diambil kesimpulan :
1. Pengenalan wajah dengan pengambilan data wajah testing dari database mampu
mengenali dengan baik dengan tingkat keberhasilan 100%
2. Pengenalan wajah dengan pengambilan data wajah testing secara real time belum
mampu mengenal dengan baik dengan tingkat keberhasilan yang berbeda-beda.
3. Rata-rata tingkat keamanan pintu dengan pengenalan wajah tanpa menggunakan
atribut pada intensitas cahaya 138-141 lux adalah 45% dan pada intensitas cahaya
45-47 lux adalah 30%
4. Rata-rata tingkat keamanan pintu dengan pengenalan wajah menggunakan atribut
topi pada intensitas cahaya 138-141 lux adalah 20% dan pada intensitas cahaya
45-47 lux adalah 25%
5. Rata-rata tingkat keamanan pintu dengan pengenalan wajah menggunakan atribut
kacamata pada intensitas cahaya 138-141 lux adalah 25% dan pada intensitas
cahaya 45-47 lux adalah 50%
6. Cahaya berpengaruh terhadap proses keluaran identifikasi wajah.
5.2. Saran
Saran-saran bagi pengembang selanjutnya adalah :
1. Menggunakan metode yang lebih rinci penjelasannya beserta contoh
penggunaannya.
2. Membuat variasi wajah di database.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
DAFTAR PUSTAKA
[1] Perkembangan Teknologi Dari Waktu ke Waktu yang Mengalami Banyak Kemajuan,
https://www.klikmania.net/perkembangan-teknologi-tahun-2017/, diakses 5
November 2018.
[2] 2018,Mengenal Sistem Biometrik E-KTP dan Keamanannya,
https://www.bernas.id/62873-mengenal-sistem-biometrik-e-ktp-dan-
keamanannya.html, diakses 8 November 2018.
[3] Fauzi,Moch Prima, 2017, Jenis Sistem Biometrik yang Banyak Digunakan,
https://techno.okezone.com/read/2017/04/04/207/1658328/jenis-sistem-biometrik-
yang-banyak-digunakan, diakses 5 November 2018.
[4] https://www.bps.go.id/publication/2017/12/22/197562b7ad0ced87c08fada5/statistik-
kriminal-2017.html, diakses 1 November 2018.
[5] http://lib.unnes.ac.id/23465/, diakses 7 November 2018.
[6] Azam, Moch., Pengertian Webcam Beserta Fungsi dan Cara Kerja Webcam,
https://www.nesabamedia.com/pengertian-webcam-dan-fungsi-webcam/, diakses 8
November 2018.
[7] Webcam,https://sumberbelajar.belajar.kemdikbud.go.id/sumberbelajar/tampil/Webca
m-2007/konten3.html, diakses 9 November 2018.
[8] https://www.logitech.com/en-us/product/hd-webcam-c270, diakses 8 November
2018.
[9] 2014, Pengertian Resolusi Gambar,
http://www.jendelasarjana.com/2014/05/pengertian-resolusi-gambar.html, diakses 6
Desember 2018.
[10] Mochamad Fajar Wicaksono.2018.Mudah Belajar Raspberry Pi. Informatika
Bandung, Bandung.
[11] https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/
[12] Sahoo, satya sankar, 2016, Raspberry Pi 3 Pinout Model B, RPI2, B+ 40Pin GPIO
Pinout, https://myelectronicslab.com/raspberry-pi-3-gpio-model-b-block-pinout/,
diakses 6 Desember 2018.
[13] https://www.python.org/doc/essays/blurb/, diakses 2 april 2019.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
[14] P, Anggri Yulio, 2017, Mengenal OpenCV (Open Source Computer Vision Library),
https://devtrik.com/opencv/mengenal-opencv-open-source-computer-vision-library/,
diakses 15 November 2018.
[15] http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf, diakses
15 November 2018.
[16] Budiharto, W. 2014, Robotika Modern - Teori dan Implementasi (Edisi Revisi), C.V
Andi Offset, Yogyakarta.
[17] Kho, Dickson,Pengertian LED (Light Emitting Diode) dan Cara Kerjanya,
https://teknikelektronika.com/pengertian-led-light-emitting-diode-cara-kerja/, diakses
23 November 2018.
[18] Setiawan, Agus, 2015, Pengertian GUI dan CLI,
http://www.transiskom.com/2015/07/pengertian-cli-dan-gui.html, diakses 30
November 2018.
[19] Python – GUI Programming (Tkinter),
https://www.tutorialspoint.com/python/python_gui_programming.htm, diakses 6
Februari 2019.
[20] 2017, Perbedaan Limit Switch dan Saklar Push On/Button,
http://belajarelektronika.net/perbedaan-limit-switch-dan-saklar-push-on/, diakses 6
Februari 2019.
[21] https://frc-pdr.readthedocs.io/en/latest/motors/limitswitch.html, diakses 6 Februari
2019.
[22] Kadir,abdul, Adhi Susanto, 2013, Teori dan Aplikasi Pengolahan Citra, Penerbit
Andi,Yogyakarta.
[23] Pamungkas, adi, Pengolahan Citra Digital,
https://pemrogramanmatlab.com/2017/07/26/pengolahan-citra-digital/,diakses 6
desember 2018.
[24] https://www.fiverr.com/photo_shop_man/resize-crop-and-editing-of-your-images-
professionally, diakses 6 desember 2018.
[25] Pratiwi, Dian Esti, Agus Harjoko, 2013, Implementasi Pengenalan Wajah
Menggunakan PCA (Principal Component Analysis), IJEIS, Vol. 3, no. 2, hal 175-184,
https://jurnal.ugm.ac.id/ijeis/article/view/3892/3181, diakses 6 Februari 2019.
[26] https://media.neliti.com/media/publications/133531-ID-pengenalan-citra-wajah-
sebagai-identifie.pdf, diakses 7 Februari 2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
[27] https://www.academia.edu/35522508/Teknik_Pengukuran_Teori_Pengukuran_Jarak
?auto=download, diakses 1 April 2019
[28] http://jati.stta.ac.id/2015/09/deteksi-obyek-menggunakan-haar-cascade.html, diakses
1 April 2019
[29] Santoso, H., Harjoko, A, 2013, Haar Cascade Classifier dan Algoritma Adaboost
untuk Deteksi Banyak Wajah dalam Ruang Kelas. Jurnal Teknologi IST AKPRIND,
Vol. 6, no. 2 , hal 108-115, http://jurtek.akprind.ac.id/bib/haar-cascade-classifier-dan-
algoritma-adaboost-untuk-deteksi-banyak-wajah-dalam-ruang-kelas, diakses 1 April
2019
[30] Budiharto, Widodo, 2018, Pemrograman Python untuk Ilmu Komputer dan Teknik,
Penerbit Andi, Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-1
Listing Program Pengambilan Citra Sebagai Database
import cv2
import os
face =
cv2.CascadeClassifier('/home/pi/Documents/skripsi/Skripsi/haarcascade_frontalface_defau
lt.xml')
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
print BASE_DIR
image_dir = os.path.join(BASE_DIR, "/home/pi/Documents/skripsi/Skripsi/database")
print image_dir
cam = cv2.VideoCapture(1)
jumlah0 = 0
jumlah1 = 1
jumlah2 = 1
while True:
_, frame = cam.read()
frame = cv2.flip(frame, 1)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
muka = face.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in muka:
cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 0, 255), 5)
if cv2.waitKey(1) & 0xff == ord('c'):
cv2.imwrite("/home/pi/Documents/skripsi/Skripsi/Panji/" + str(jumlah1) + '.' +
str(jumlah2) + ".jpg", gray[y:y + h, x:x + w])
print str(jumlah1)
print str(jumlah2)
if jumlah2 == 9:
jumlah1 +=1
jumlah2 = 0
jumlah2 += 1
jumlah0 += 1
cv2.imshow('Capturing', frame)
if jumlah0 > 20:
break
cv2.destroyAllWindows()
cam.release()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-2
Listing Program Perhitungan Database
import os
import numpy as np
from PIL import Image
import cv2
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
image_dir = os.path.join(BASE_DIR, "/home/pi/Documents/skripsi/Skripsi/Marco")
##print image_dir
for root,dirs,files in os.walk(image_dir):
rateifacesmarco=[]
for file in files:
if file.endswith("png") or file.endswith("jpg"):
path=os.path.join(root,file)
## print(path,i)
pil_image = Image.open(path).convert("L") #grayscale
new_img = pil_image.resize((80,80))
image_array = np.array(new_img,"uint8")
## print image_array
# ke vektor
vektor_baris = image_array.flatten()
vektor_kolom = np.c_[vektor_baris]
## print 'vektor kolom = ',vektor_kolom
rateifacesmarco.append(vektor_kolom)
z=[]
s=0.0
for i in range (6400):
for j in range (21):
s = s + rateifacesmarco[j][i]
z.append(s/21)
s=0.0
z=np.array(z)
z=z.flatten()
z= np.c_[z]
rata = np.mean(z)
vr = z - rata
#transpos
vt = vr.transpose()
#jumlah kolom
jkvr = len(vr)
#kovarian
cov = (float(1)/(float(jkvr)-float(1)))*(vt.dot(vr))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-3
#eigenvalue dan eigenvektor
eigen_values, eigen_vektors = np.linalg.eig(cov)
#eigenface
eigen_face = eigen_vektors*vr
image_dir2 = os.path.join(BASE_DIR, "/home/pi/Documents/skripsi/Skripsi/Tian")
for root,dirs,files in os.walk(image_dir2):
rateifacestian=[]
for file in files:
if file.endswith("png") or file.endswith("jpg"):
path2=os.path.join(root,file)
## print(path)
pil_image2 = Image.open(path2).convert("L") #grayscale
new_img2 = pil_image2.resize((80,80))
image_array2 = np.array(new_img2,"uint8")
## print image_array2
# ke vektor
vektor_baris2 = image_array2.flatten()
vektor_kolom2 = np.c_[vektor_baris2]
## print 'vektor kolom = ',vektor_kolom
rateifacestian.append(vektor_kolom2)
z2=[]
s2=0.0
for i in range (6400):
for j in range (21):
s2 = s2 + rateifacestian[j][i]
z2.append(s2/21)
s2=0.0
z2=np.array(z2)
z2=z2.flatten()
z2= np.c_[z2]
## print z2
rata2 = np.mean(z2)
vr2 = z2 - rata2
#transpos
vt2 = vr2.transpose()
#jumlah kolom
jkvr2 = len(vr2)
#kovarian
cov2 = (float(1)/(float(jkvr2)-float(1)))*(vt2.dot(vr2))
#eigenvalue dan eigenvektor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-4
eigen_values2, eigen_vektors2 = np.linalg.eig(cov2)
#eigenface
eigen_face2 = eigen_vektors2*vr2
image_dir3 = os.path.join(BASE_DIR, "/home/pi/Documents/skripsi/Skripsi/Vinsent")
for root,dirs,files in os.walk(image_dir3):
rateifacesvinsent=[]
for file in files:
if file.endswith("png") or file.endswith("jpg"):
path3=os.path.join(root,file)
## print(path,i)
pil_image3 = Image.open(path3).convert("L") #grayscale
new_img3 = pil_image3.resize((80,80))
image_array3 = np.array(new_img3,"uint8")
# ke vektor
vektor_baris3 = image_array3.flatten()
vektor_kolom3 = np.c_[vektor_baris3]
## print 'vektor kolom = ',vektor_kolom
rateifacesvinsent.append(vektor_kolom3)
z3=[]
s3=0.0
for i in range (6400):
for j in range (21):
s3 = s3 + rateifacesvinsent[j][i]
z3.append(s3/21)
s3=0.0
z3=np.array(z3)
z3=z3.flatten()
z3= np.c_[z3]
rata3 = np.mean(z3)
vr3 = z3 - rata3
#transpos
vt3 = vr3.transpose()
#jumlah kolom
jkvr3 = len(vr3)
#kovarian
cov3 = (float(1)/(float(jkvr3)-float(1)))*(vt3.dot(vr3))
#eigenvalue dan eigenvektor
eigen_values3, eigen_vektors3 = np.linalg.eig(cov3)
#eigenface
eigen_face3 = eigen_vektors3*vr3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-5
image_dir4 = os.path.join(BASE_DIR, "/home/pi/Documents/skripsi/Skripsi/Panji")
for root,dirs,files in os.walk(image_dir4):
rateifacespanji=[]
for file in files:
if file.endswith("png") or file.endswith("jpg"):
path4=os.path.join(root,file)
## print(path,i)
pil_image4 = Image.open(path4).convert("L") #grayscale
new_img4 = pil_image4.resize((80,80))
image_array4 = np.array(new_img4,"uint8")
# ke vektor
vektor_baris4 = image_array4.flatten()
vektor_kolom4 = np.c_[vektor_baris4]
## print 'vektor kolom = ',vektor_kolom
rateifacespanji.append(vektor_kolom4)
z4=[]
s4=0.0
for i in range (6400):
for j in range (21):
s4 = s4 + rateifacespanji[j][i]
z4.append(s4/21)
s4=0.0
z4=np.array(z4)
z4=z4.flatten()
z4= np.c_[z4]
rata4 = np.mean(z4)
vr4 = z4 - rata4
#transpos
vt4 = vr4.transpose()
#jumlah kolom
jkvr4 = len(vr4)
#kovarian
cov4 = (float(1)/(float(jkvr4)-float(1)))*(vt4.dot(vr4))
#eigenvalue dan eigenvektor
eigen_values4, eigen_vektors4 = np.linalg.eig(cov4)
#eigenface
eigen_face4 = eigen_vektors4*vr4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-6
Listing Program Pengenalan Wajah Dengan Pengambilan Testing wajah
Dari Database
import os
import numpy as np
from PIL import Image
import cv2
from hitdatabasev2 import eigen_face,eigen_face2,eigen_face3,eigen_face4
import RPi.GPIO as GPIO
import time
import sys
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(16,GPIO.OUT)
GPIO.setup(18,GPIO.OUT)
GPIO.setup(29,GPIO.IN)
q=GPIO.PWM(11,50)
q.start(7.5)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
image_dir = os.path.join(BASE_DIR,
"/home/pi/Documents/skripsi/Skripsi/fototestinghitv2")
##print image_dir
for root,dirs,files in os.walk(image_dir):
rateifaces=[]
for file in files:
if file.endswith("png") or file.endswith("jpg"):
path=os.path.join(root,file)
## print(path,i)
pil_image = Image.open(path).convert("L") #grayscale
new_img = pil_image.resize((80,80))
image_array = np.array(new_img,"uint8")
## print image_array
# ke vektor
vektor_baris = image_array.flatten()
vektor_kolom = np.c_[vektor_baris]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-7
## print 'vektor kolom = ',vektor_kolom
rata = np.mean(vektor_kolom)
vr = vektor_kolom - rata
#transpos
vt = vr.transpose()
#jumlah kolom
jkvr = len(vr)
#kovarian
cov = (float(1)/(float(jkvr)-float(1)))*(vt.dot(vr))
#eigenvalue dan eigenvektor
eigen_values, eigen_vektors = np.linalg.eig(cov)
#eigenface
eigen_facetest = eigen_vektors*vr
#jumlah
sef=sum(eigen_facetest)
hasil = []
kuadrat=[]
kuadrat2=[]
kuadrat3=[]
kuadrat4=[]
for i in range (6400):
kuadrat.append((eigen_facetest[i]-eigen_face[i])**2)
jumlah = sum(kuadrat)
akar = np.sqrt(jumlah)
hasil.append(akar)
for i in range (6400):
kuadrat2.append((eigen_facetest[i]-eigen_face2[i])**2)
jumlah2 = sum(kuadrat2)
akar2 = np.sqrt(jumlah2)
hasil.append(akar2)
for i in range (6400):
kuadrat3.append((eigen_facetest[i]-eigen_face3[i])**2)
jumlah3 = sum(kuadrat3)
akar3 = np.sqrt(jumlah3)
hasil.append(akar3)
for i in range (6400):
kuadrat4.append((eigen_facetest[i]-eigen_face4[i])**2)
jumlah4 = sum(kuadrat4)
akar4 = np.sqrt(jumlah4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-8
hasil.append(akar4)
print hasil
minimum = min(hasil)
if minimum == hasil[0]:
print 'marco'
print "terbuka"
q.ChangeDutyCycle(7.5)
GPIO.output(18, True)
GPIO.output(16, 0)
time.sleep(5)
elif minimum == hasil[1]:
print 'tian'
print "terbuka"
q.ChangeDutyCycle(7.5)
GPIO.output(18, True)
GPIO.output(16, 0)
time.sleep(5)
elif minimum == hasil[2]:
print 'vinsent'
print "terbuka"
q.ChangeDutyCycle(7.5)
GPIO.output(18, True)
GPIO.output(16, 0)
time.sleep(5)
elif minimum == hasil[3]:
print 'panji'
print "terbuka"
q.ChangeDutyCycle(7.5)
GPIO.output(18, True)
GPIO.output(16, 0)
time.sleep(5)
while 1:
if GPIO.input(29) == GPIO.HIGH:
q.ChangeDutyCycle(12.5)
print "terkunci"
GPIO.output(16, True)
GPIO.output(18,0)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-9
Listing Program GUI, Mikro Servo dan Limit Switch
import os
import numpy as np
import cv2
import Tkinter as tk
from Tkinter import*
from PIL import Image, ImageTk
import time
import sys
from hitdatabasev2 import eigen_face,eigen_face2,eigen_face3,eigen_face4
import RPi.GPIO as GPIO
import thread
#setup GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(16,GPIO.OUT)
GPIO.setup(18,GPIO.OUT)
GPIO.setup(29,GPIO.IN)
q=GPIO.PWM(11,50)
q.start(7.5)
tanda = 0
#Setup GUI
window = tk.Tk() #window utama
window.wm_title("TAMPILAN WEBCAM")
window.config(background="CYAN")
#Graphics window
imageFrame = tk.Frame(window, width=720, height=500)
imageFrame.grid(row=0, column=0, padx=10, pady=2)
#Capture video frames
cap = cv2.VideoCapture(1)
cap2= cv2.VideoCapture(0)
face =
cv2.CascadeClassifier('/home/pi/Documents/skripsi/Skripsi/haarcascade_frontalface_defau
lt.xml')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-10
def show_frame():
_, frame = cap.read()
frame = cv2.flip(frame, 1)
__, frame2 = cap2.read()
frame2 = cv2.flip(frame2, 1)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
#MENERAPKAN ALGORITMA DARI FACE KEDALAM GRAY
muka = face.detectMultiScale(gray, 1.3, 5) #1.3 DAN 5 BERFUNGSI SEBAGAI
ANGKA KEAKURATAN ALGORITMA
muka2 = face.detectMultiScale(gray2, 1.3, 5)
#MENGGAMBAR SEBUAH KOTAK DIMUKA YANG TERDETEKSI
for (x,y,w,h) in muka:
cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 0, 255), 5)
for (x,y,w,h) in muka2:
cv2.rectangle(frame2, (x,y), (x+w, y+h), (0, 0, 255), 5)
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
cv2image2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image)
img2 = Image.fromarray(cv2image2)
imgtk = ImageTk.PhotoImage(image=img)
imgtk2 = ImageTk.PhotoImage(image=img2)
display1.imgtk = imgtk #menampilkan frame untuk display 1
display1.configure(image=imgtk)
display2.imgtk2 = imgtk2 #menampilakan frame untuk display 2
display2.configure(image=imgtk2)
window.after(10, show_frame)
display1 = tk.Label(imageFrame)
display1.grid(row=0, column=0, padx=10, pady=2) #Display 1
display2 = tk.Label(imageFrame)
display2.grid(row=0, column=1) #Display 2
def masuk():
_, frame = cap.read()
frame = cv2.flip(frame, 1)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
muka = face.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in muka:
cv2.imwrite('/home/pi/Documents/skripsi/Skripsi/orang-masuk-keluar/masuk'+".jpg",
gray[y:y + h, x:x + w])
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-11
image_dir = os.path.join(BASE_DIR, "/home/pi/Documents/skripsi/Skripsi/orang-
masuk-keluar")
for root,dirs,files in os.walk(image_dir):
for file in files:
if file.endswith("masuk.png") or file.endswith("masuk.jpg"):
path=os.path.join(root,file)
## print(path)
pil_image = Image.open(path).convert("L") #grayscale
new_img = pil_image.resize((80,80))
image_array = np.array(new_img,"uint8")
# ke vektor
vektor_baris = image_array.flatten()
vektor_kolom = np.c_[vektor_baris]
#mencari rata-rata
rata = np.mean(vektor_kolom)
#pengurangan vektor kolom dengan rata-rata
vr= vektor_kolom - rata
#jumlah kolom
jkvr = len(vr)
#transpose
vt = vr.transpose()
#matriks kovarian
cov = (float(1)/(float(jkvr)-float(1)))*(vt.dot(vr))
#eigenvalue dan eigenvektor
eigen_values, eigen_vektors = np.linalg.eig(cov)
#eigenface
eigen_facetesting = eigen_vektors*vr
## print 'data real =' ,eigen_face,'\n'
hasil = []
kuadrat=[]
kuadrat2=[]
kuadrat3=[]
kuadrat4=[]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-12
for i in range (6400):
kuadrat.append((eigen_facetesting[i]-eigen_face[i])**2)
jumlah = sum(kuadrat)
akar = np.sqrt(jumlah)
hasil.append(akar)
for i in range (6400):
kuadrat2.append((eigen_facetesting[i]-eigen_face2[i])**2)
jumlah2 = sum(kuadrat2)
akar2 = np.sqrt(jumlah2)
hasil.append(akar2)
for i in range (6400):
kuadrat3.append((eigen_facetesting[i]-eigen_face3[i])**2)
jumlah3 = sum(kuadrat3)
akar3 = np.sqrt(jumlah3)
hasil.append(akar3)
for i in range (6400):
kuadrat4.append((eigen_facetesting[i]-eigen_face4[i])**2)
jumlah4 = sum(kuadrat4)
akar4 = np.sqrt(jumlah4)
hasil.append(akar4)
global tanda
print hasil
minimum = min(hasil)
print minimum
if minimum == hasil[0]:
print 'marco'
print 'terbuka'
print tanda
tanda = 1
elif minimum == hasil[1]:
print 'tian'
print 'terbuka'
print tanda
tanda = 1
elif minimum == hasil[2]:
print 'vinsent'
print 'terbuka'
print tanda
tanda = 1
elif minimum == hasil[3]:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-13
print 'panji'
print 'terbuka'
print tanda
tanda = 1
## DELETE FILE DI FOLDER
## folder = 'E:\kuliah\Skripsi\orang-masuk-keluar'
## for the_file in os.listdir(folder):
## file_path = os.path.join(folder, the_file)
## try:
## if os.path.isfile(file_path):
## os.unlink(file_path)
## #elif os.path.isdir(file_path): shutil.rmtree(file_path)
## except Exception as e:
## print(e)
def keluar():
_, frame2 = cap2.read()
frame2 = cv2.flip(frame2, 1)
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
muka2 = face.detectMultiScale(gray2, 1.3, 5)
for (x,y,w,h) in muka2:
cv2.imwrite('/home/pi/Documents/skripsi/Skripsi/orang-masuk-keluar/keluar'+".jpg",
gray2[y:y + h, x:x + w])
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
image_dir = os.path.join(BASE_DIR, "/home/pi/Documents/skripsi/Skripsi/orang-
masuk-keluar")
for root,dirs,files in os.walk(image_dir):
for file in files:
if file.endswith("keluar.png") or file.endswith("keluar.jpg"):
path=os.path.join(root,file)
## print(path)
pil_image = Image.open(path).convert("L") #grayscale
new_img = pil_image.resize((80,80))
image_array = np.array(new_img,"uint8")
# ke vektor
vektor_baris = image_array.flatten()
vektor_kolom = np.c_[vektor_baris]
#mencari rata-rata
rata = np.mean(vektor_kolom)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-14
#pengurangan vektor kolom dengan rata-rata
vr= vektor_kolom - rata
#jumlah kolom
jkvr = len(vr)
#transpose
vt = vr.transpose()
#matriks kovarian
cov = (float(1)/(float(jkvr)-float(1)))*(vt.dot(vr))
#eigenvalue dan eigenvektor
eigen_values, eigen_vektors = np.linalg.eig(cov)
#eigenface
eigen_facetesting = eigen_vektors*vr
## print 'data real =' ,eigen_face,'\n'
hasil = []
kuadrat=[]
kuadrat2=[]
kuadrat3=[]
kuadrat4=[]
for i in range (6400):
kuadrat.append((eigen_facetesting[i]-eigen_face[i])**2)
jumlah = sum(kuadrat)
akar = np.sqrt(jumlah)
hasil.append(akar)
for i in range (6400):
kuadrat2.append((eigen_facetesting[i]-eigen_face2[i])**2)
jumlah2 = sum(kuadrat2)
akar2 = np.sqrt(jumlah2)
hasil.append(akar2)
for i in range (6400):
kuadrat3.append((eigen_facetesting[i]-eigen_face3[i])**2)
jumlah3 = sum(kuadrat3)
akar3 = np.sqrt(jumlah3)
hasil.append(akar3)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-15
for i in range (6400):
kuadrat4.append((eigen_facetesting[i]-eigen_face4[i])**2)
jumlah4 = sum(kuadrat4)
akar4 = np.sqrt(jumlah4)
hasil.append(akar4)
global tanda
print hasil
minimum = min(hasil)
print minimum
if minimum == hasil[0]:
print 'marco'
print 'terbuka'
print tanda
tanda = 1
elif minimum == hasil[1]:
print 'tian'
print 'terbuka'
print tanda
tanda = 1
elif minimum == hasil[2]:
print 'vinsent'
print 'terbuka'
print tanda
tanda = 1
elif minimum == hasil[3]:
print 'panji'
print 'terbuka'
print tanda
tanda = 1
b1=Button(imageFrame,text='Capture1',command=masuk)
b1.grid(row=1, column=0)
b2=Button(imageFrame,text='Capture2',command=keluar)
b2.grid(row=1,column=1)
def servo():
while 1:
global tanda
time.sleep(0.01)
if GPIO.input(29) == GPIO.HIGH and tanda == 0:
q.ChangeDutyCycle(12.5)
## print "terkunci"
GPIO.output(16, True)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-16
GPIO.output(18,0)
elif GPIO.input(29) == GPIO.HIGH and tanda == 1:
## print "terbuka"
q.ChangeDutyCycle(7.5)
GPIO.output(18, True)
GPIO.output(16, 0)
time.sleep(5)
tanda = 0
elif GPIO.input(29) == GPIO.LOW and tanda == 1:
## print "terbuka"
q.ChangeDutyCycle(7.5)
GPIO.output(18, True)
GPIO.output(16, 0)
tanda = 0
elif GPIO.input(29) == GPIO.LOW and tanda == 0:
q.ChangeDutyCycle(7.5)
## print "terbuka"
GPIO.output(18, True)
GPIO.output(16,0)
show_frame() #Display
thread.start_new_thread(servo,())
window.mainloop() #Starts GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI