Anda di halaman 1dari 55

DETEKSI KUALITAS TIDUR PADA SMART MIRROR

DENGAN CONVOLUTIONAL NEURAL NETWORK

TUGAS AKHIR

POH STEVEN SEAN DAVIN


1400910044

PROGRAM STUDI INFORMATIKA


FAKULTAS ILMU HAYATI
UNIVERSITAS SURYA
TANGERANG
2018
LEMBAR PERNYATAAN BEBAS PLAGIAT

Saya yang bertanda tangan di bawah ini:


Nama : Poh Steven Sean Davin
Program Studi : Informatika
Judul Skripsi/TA : Deteksi Kualitas Tidur pada Smart Mirror dengan
Convolutional Neural Network
dengan ini menyatakan bahwa laporan Skripsi/TA yang telah saya tulis merupakan
hasil karya saya sendiri dan belum pernah dipublikasikan sebelumnya. Adapun
bagian-bagian tertentu dalam penulisan laporan Skripsi/TA yang saya kutip dari
hasil karya orang lain telah dituliskan dalam sumbernya secara jelas sesuai dengan
panduan penulisan dari Universitas Surya.
Sesuai dengan Permendiknas Republik Indonesia Nomor 17 Tahun 2010 tentang
Pencegahan dan Penanggulangan Plagiat di Perguruan Tinggi, apabila pernyataan
ini terbukti tidak benar maka saya bersedia menerima sanksi dan konsekuensi
pencabutan gelar Sarjana S1 saya yang telah diputuskan oleh Universitas Surya.
Demikian surat pernyataan ini saya buat untuk dipergunakan sebagaimana mestinya.

Tangerang, Juni 2018

Poh Steven Sean Davin

i
ABSTRAK
Tidur yang cukup merupakan salah faktor yang mampu meningkatkan performa seseorang.
Akan tetapi, akhir – akhir ini sangat banyak orang yang mengalami kekurangan tidur. Lebih
buruknya, banyak orang yang tidak menyadari, dan mengabaikan kekurangan tidur. Tujuan dari
penulisan tugas akhir ini adalah untuk membuat sistem deteksi kualitas tidur pengguna yang
kemudian ditampilkan pada Smart Mirror. Algoritma yang digunakan pada tugas akhir ini adalah
algoritma CNN (Convolutional Neural Network). Algoritma CNN adalah salah satu jenis Neural
Network yang mulai populer untuk melakukan pemrosesan gambar. Hasil yang didapat adalah
produk berupa sistem yang mampu mendeteksi kualitas tidur secara otomatis, yang kemudian
diimplementasikan pada Smart Mirror. Pada penelitian ini dilakukan pengujian akurasi untuk
melihat kemampuan Convolutional Neural Network dalam mendeteksi kualitas tidur seseorang.
Kata kunci: Kualitas Tidur, Convolutional Neural Network, Cermin Cerdas

ABSTRACT
Having enough sleep is one of many factors that can improve someone’s performance.
However, lately there are a lot of people that suffer from sleep deprivation. Even worse, there are a
lot of people that don’t notice or even ignore their sleep deprivation. The goal of this final project is
to create a system that could detect the user’s sleep quality, and then show the result on a Smart
Mirror. This final project used CNN (Convolutional Neural Network) algorithm. CNN algorithm is
a kind of Neural Network that is getting popular to do Image Processing. The final product of this
final project is a system that can detect the user’s sleep quality automatically, and then implemented
in the Smart Mirror. In this research, accuracy test will be done to see the performance of
Convolutional Neural Network to detect the quality of sleep from a person.
Keywords: Sleep Quality, Convolutional Neural Network, Smart Mirror

ii
DETEKSI KUALITAS TIDUR PADA SMART MIRROR
DENGAN CONVOLUTIONAL NEURAL NETWORK

Subsistem dari penelitian:


Pemanfaatan Smart Mirror untuk Meningkatkan Penampilan

Tugas Akhir

Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada
Program Studi Informatika

DISUSUN OLEH :

POH STEVEN SEAN DAVIN 1400910044


DARREN KENT JEREMY 1400910034
TAN HALIM SUPRANATA 1400910036

PROGRAM STUDI INFORMATIKA


FAKULTAS ILMU HAYATI
UNIVERSITAS SURYA
TANGERANG
2018

iii
LEMBAR PENGESAHAN

Judul Tugas Akhir : Deteksi Kualitas Tidur pada Smart Mirror dengan
Convolutional Neural Network
Nama : Poh Steven Sean Davin
NIM : 1400910044

Telah berhasil dipertahankan di hadapan Dewan Penguji dan diterima sebagai


bagian persyaratan yang diperlukan untuk memperoleh gelar Sarjana Komputer
pada Program Studi Informatika, Fakultas Ilmu Hayati, Universitas Surya.

Dewan Penguji

Pembimbing 1:

Pembimbing 2:

Penguji:

Penguji:

iv
PRAKATA
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala
karunia-Nya yang besar sehingga penulis dapat menyelesaikan tugas akhir yang
berjudul Deteksi Kualitas Tidur pada Smart Mirror dengan Convolutional Neural
Network, (Subsistem: Pemanfaatan Smart Mirror untuk Meningkatkan Penampilan).
Adapun tugas akhir ini dibuat dalam rangka memenuhi persyaratan untuk meraih
gelar Sarjana Komputer pada Program Studi Informatika, Fakultas Ilmu Hayati,
Universitas Surya.
Dalam proses pengejaan tugas akhir ini penulis mendapatkan banyak dukungan.
Oleh karena itu pengulis mengucapkan terima kasih kepada:
1. Ibu Anggy Eka Pratiwi M. Eng. Dan Ibu Meirista Wulandari, M. Eng.
selaku dosen pembimbing yang telah memberikan bimbingan, arahan serta
dukungan.
2. Darren Kent Jeremy dan Tan Halim Supranata sebagai teman satu proyek
dalam pengerjaan tugas akhir ini yang selalu memberikan dukungan dan
banyak bantuan selama proses pengerjaan tugas akhir ini.
3. Orang tua dan keluarga penulis yang selalu memberikan dukungan dan
semangat dalam proses pengerjaan tugas akhir ini.
4. Filbert Anthony Wibisono selaku penyedia berbagai sarana dan prasarana
pendukung yang membantu penyelesaian tugas akhir ini.
5. Seluruh sukarelawan yang telah bersedia untuk menjadi subjek tes sistem
ini.
Penulis berharap tugas akhir ini dapat bermanfaat bagi banyak pihak dan
juga dapat meningkatkan penampilan pembaca.

Tangerang, Juni 2018

Poh Steven Sean Davin


1400910044

v
DAFTAR ISI

LEMBAR PENGESAHAN ................................................................................... iv


PRAKATA .............................................................................................................. v
DAFTAR ISI .......................................................................................................... vi
DAFTAR GAMBAR ........................................................................................... viii
DAFTAR TABEL .................................................................................................. ix
DAFTAR LAMPIRAN ........................................................................................... x
BAB I PENDAHULUAN ....................................................................................... 1
1.1. Latar Belakang ......................................................................................... 1
1.2. Rumusan Masalah .................................................................................... 2
1.3. Tujuan Penelitian ...................................................................................... 2
1.4. Manfaat Penelitian .................................................................................... 2
1.5. Ruang Lingkup ......................................................................................... 3
BAB II TINJAUAN PUSTAKA............................................................................. 4
2.1. Tinjauan Pustaka ...................................................................................... 4
2.1.1. Penelitian Sebelumnya ...................................................................... 4
2.1.2. Perbandingan Metode yang Sudah Ada ............................................ 5
2.1.3. Research Gap .................................................................................... 6
2.2. Landasan Teori ......................................................................................... 6
2.2.1. Convolutional Neural Networks ....................................................... 7
2.2.2. Dark Under Eye Circle ...................................................................... 7
2.2.3. Image Processing .............................................................................. 7
2.2.4. Computer Vision ............................................................................... 8
2.2.5. Smart Mirror ..................................................................................... 8
2.2.6. Data Augmentation ........................................................................... 8
BAB III METODOLOGI PENELITIAN................................................................ 9
3.1. Metode Penelitian ..................................................................................... 9
3.1.1. Metode Pengumpulan Data ............................................................... 9
3.1.2. Metode Analisis Data ........................................................................ 9
3.1.3. Metode Pengembangan Sistem ....................................................... 10
3.1.4. Metode Evaluasi Sistem .................................................................. 10
3.2. Perangkat Lunak dan Perangkat Keras ................................................... 10
3.2.1. Perangkat Lunak.............................................................................. 10
3.2.2. Perangkat Keras .............................................................................. 12

vi
BAB IV ANALISIS DAN PEMBAHASAN ........................................................ 14
4.1. Perancangan Sistem ................................................................................ 14
4.1.1. Analisis Kebutuhan ......................................................................... 14
4.1.2. Desain Sistem .................................................................................. 15
4.2. Implementasi Sistem .............................................................................. 20
4.2.1. Implementasi Sistem Training Data ................................................ 20
4.2.2. Implementasi Sistem Prediksi ......................................................... 29
4.3. Pengujian Sistem .................................................................................... 33
4.4. Pembahasan Sistem ................................................................................ 38
BAB V KESIMPULAN DAN SARAN ................................................................ 40
5.1. Kesimpulan ............................................................................................. 40
5.2. Saran ....................................................................................................... 40
DAFTAR PUSTAKA ........................................................................................... 41
LAMPIRAN .......................................................................................................... 43

vii
DAFTAR GAMBAR
Gambar 1. Proses Convolutional Neural Network .................................................. 7
Gambar 2. Data Augmentation ............................................................................... 8
Gambar 3. Contoh data wajah ................................................................................. 9
Gambar 4. Contoh foto yang telah dipotong ......................................................... 10
Gambar 5. Tampilan Jupyter Notebook ................................................................ 11
Gambar 6. Tampilan Anaconda Navigator ........................................................... 12
Gambar 7. Smart Mirror ........................................................................................ 13
Gambar 8. Metode Agile ....................................................................................... 14
Gambar 9. Flowchart proses training .................................................................... 16
Gambar 10. Flowchart Convolutiona Neural Network ......................................... 17
Gambar 11. Flowchart aplikasi deteksi kualitas tidur ........................................... 18
Gambar 12. Instruksi pengguna ............................................................................ 18
Gambar 13. Hasil output ....................................................................................... 19
Gambar 14. Inisialisasi awal program ................................................................... 21
Gambar 15. Penentuan variabel ............................................................................ 22
Gambar 16. Pembuatan Network .......................................................................... 24
Gambar 17. Data Augmentation ........................................................................... 26
Gambar 18. Proses Shear ...................................................................................... 26
Gambar 19. Proses training ................................................................................... 28
Gambar 20. Hasil proses training .......................................................................... 28
Gambar 21. Code untuk menampilkan instruksi ................................................... 29
Gambar 22. Tampilan instruksi pada Smart Mirror .............................................. 29
Gambar 23. Pengambilan gambar pengguna ........................................................ 30
Gambar 24. Resize dan crop ................................................................................. 31
Gambar 25. Proses prediksi ................................................................................. 32
Gambar 26. Tampilan hasil pada Smart Mirror .................................................... 32
Gambar 27. Contoh penggunaan sistem................................................................ 33
Gambar 28. Contoh hasil foto 1 ............................................................................ 34
Gambar 29. Contoh hasil foto 2 ............................................................................ 34
Gambar 30. Contoh hasil pemotongan .................................................................. 34
Gambar 31. Data testing manual ........................................................................... 35

viii
Gambar 32. Contoh output testing ........................................................................ 35
Gambar 33. Foto pengujian pertama yang salah ................................................... 37
Gambar 34. Foto pengujian kedua yang salah ...................................................... 38

DAFTAR TABEL

Tabel 1. Tabel Research Gap .................................................................................. 5


Tabel 2. Hasil prediksi pengujian manual ............................................................. 36
Tabel 3. Hasil prediksi pengujian langsung .......................................................... 38

ix
DAFTAR LAMPIRAN

Lampiran 1. Letter of Acceptance ICITEE 2018 ................................................. 43


Lampiran 2. Data foto sukarelawan untuk pengujian .......................................... 44

x
BAB I
PENDAHULUAN

1.1. Latar Belakang


Kekurangan tidur merupakan sebuah masalah yang banyak ditemukan di
masyarakat modern. Kesibukan menjadi salah satu alasan banyaknya orang yang
mengalami kekurangan tidur. Banyak orang yang tidak sadar lagi bahwa mereka
sebenarnya kekurangan tidur karena kekurangan tidur ini sudah menjadi kebiasaan.
Selain kesibukan, stres juga menjadi alasan lainnya. Karena stres, banyak orang
yang mengalami insomnia (kesulitan tidur) dan akibatnya kualitas tidur menjadi
buruk. [1]

Kualitas tidur yang buruk dapat mempengaruhi penampilan maupun performa


seseorang. Dari segi performa, seseorang yang kurang tidur mengalami penurunan
konsentrasi, mudah lelah, emosi tidak stabil, kesulitan membuat keputusan,
kesulitan mengingat, mudah sakit, dan lain – lain. Selain performa, penampilan juga
dapat terpengaruh oleh kualitas tidur. Salah satu tanda yang paling mudah dilihat
adalah munculnya lingkaran hitam di sekitar mata saat seseorang mengalami
kekurangan tidur. Selain itu kesehatan kulit juga menurun karena terjadi perubahan
hormon, yang bisa berakibat pada munculnya jerawat. [2]

Karena masalah di atas, tugas akhir ini memiliki tujuan untuk mendeteksi
kualitas tidur seseorang. Hasil deteksi ini kemudian disajikan kepada pengguna.
Cara yang dipilih untuk menyajikan hasil deteksi kepada pengguna adalah
menggunakan Smart Mirror atau cermin cerdas.

Cermin dipilih sebagai media penyampaian informasi karena hampir semua


orang memiliki dan menggunakan cermin setiap harinya. Cermin banyak digunakan
saat berdandan, berpakaian, dan banyak kegiatan lainnya. Hasil deteksi
disampaikan kepada pengguna saat pengguna menggunakan cermin.

Untuk mendeteksi kualitas tidur pengguna, digunakan algoritma bernama CNN


(Convolutional Neural Network). Algoritma Convolutional Neural Network
merupakan algoritma yang sedang populer akhir – akhir ini karena memiliki akurasi
yang lebih tinggi dari algoritma lainnya. Convolutional Neural Network banyak

1
digunakan untuk Image Processing misalnya untuk mendeteksi umur dan jenis
kelamin, deteksi tulisan, deteksi benda, dan lain – lain. [3]

Penelitian ini mencoba menggunakan algoritma Convolutional Neural Network


untuk mendeteksi kualitas tidur seseorang. Melalui penelitian ini, diharapkan
algoritma Convolutional Neural Network dapat digunakan untuk mendeteksi
kualitas tidur dengan cukup akurat, dan menyajikan hasil deteksi pada Smart Mirror
agar dapat berguna bagi pemakainya.

1.2. Rumusan Masalah


Berdasarkan latar belakang masalah di atas, maka rumusan masalah untuk
penelitian ini adalah sebagai berikut :

1. Bagaimana membuat sebuah sistem deteksi kualitas tidur yang baik


menggunakan algoritma Convolutional Neural Network?
2. Bagaimana cara menyampaikan hasil deteksi pada Smart Mirror dengan
efektif?

1.3. Tujuan Penelitian


Adapun tujuan dari penelitian ini adalah sebagai berikut :

1. Membuat sebuah sistem deteksi kualitas tidur yang baik menggunakan


algoritma Convolutional Neural Network.
2. Membuat sistem penyampaian hasil deteksi yang efektif pada Smart Mirror
kepada pengguna.

1.4. Manfaat Penelitian


Manfaat dari penelitian ini adalah sebagai berikut :

1. Untuk Pengguna
a. Mendapatkan pemberitahuan mengenai kualitas tidurnya.
b. Mendapatkan notifikasi setiap menggunakan smart mirror sehingga user
selalu diingatkan untuk menjaga kualitas tidurnya.
2. Untuk Peneliti

2
a. Meningkatkan pengetahuan teknologi di bidang Machine Learning dan
Image Processing.
b. Menjadi tugas akhir sebagai salah satu syarat memperoleh gelar Sarjana
Komputer dari Program Studi Informatika, Universitas Surya.

1.5. Ruang Lingkup


Penelitian ini melakukan deteksi lingkaran hitam di sekitar mata seseorang
menggunakan algoritma Convolutional Neural Network. Image pengguna
didapatkan dengan menggunakan kamera yang sudah dipasang di Smart Mirror.
Sistem ini sebaiknya digunakan di ruangan dengan pencahayaan yang cukup.
Pengguna sebaiknya tidak menggunakan make up dan kacamata untuk
mendapatkan hasil yang baik. Posisi pengguna juga sudah ditentukan untuk
mendapatkan foto mata pengguna dengan tepat. Kemudian, sistem memberikan
estimasi kualitas tidur pengguna secara otomatis. Kualitas tidur pengguna hanya
terdiri dari 2 jenis yaitu cukup dan kurang tidur.

3
BAB II
TINJAUAN PUSTAKA

2.1. Tinjauan Pustaka


2.1.1. Penelitian Sebelumnya
Image Processing merupakan sebuah teknologi yang sedang berkembang cepat.
Hasil dari Image Processing dapat dimanfaatkan untuk banyak hal, salah satunya
adalah Image Classification. Salah satu algoritma yang cukup populer untuk
melakukan Image Classification adalah Convolutional Neural Network. Berikut
adalah beberapa penelitian yang pernah dilakukan mengenai Image Classification
dan Convolutional Neural Network. Selain itu, terdapat juga penelitian lain tentang
kekurangan tidur dan penelitian lain yang berusaha mendeteksi kualitas tidur
menggunakan metode deteksi gerakan mata.

Paper 1 : Driver Sleepiness Detection System Based on Eye


Movements Variables
Penulis : Lisheng Jin, Qingning Niu, Yuying Jiang, Huacai Xian,
Yanguang Qin, and Meijiao Xu
Journal Publikasi : Hindawi Publishing Corporation
Tahun Publikasi : 2013
Rangkuman
Penelitian ini meneliti tentang cara mendeteksi sopir yang ngantuk berdasarkan
pergerakan mata. Deteksi dilakukan pada sopir karena sopir yang ngantuk dapat
menyebabkan kecelakaan lalu lintas. Penelitian ini menggunakan Support Vector
Machine untuk mendeteksi pergerakan mata. Beberapa parameter yang digunakan
antara lain adalah frekuensi kedip, arah pandangan, dan lama mata tidak bergerak.
Penelitian ini berhasil mendeteksi kekurangan tidur pada sopir. [4]

Paper 2 : Effect of sleep deprivation on the human metabolome


Penulis : Sarah K. Daviesa, Joo Ern Angb, Victoria L. Revell
Journal Publikasi : PNAS
Tahun Publikasi : 2014

4
Rangkuman
Kekurangan tidur menyebabkan banyak gangguan metabolisme misalnya obesitas
dan diabetes. Penelitian ini menggunakan kromatografi cairan untuk mengamati
pengaruh kekurangan tidur terhadap perubahan ritme plasma. Subjek pada
penelitian ini adalah 12 laki – laki muda. Terdapat perubahan metabolisme yang
terjadi pada kebanyakan subjek. [5]

Paper 3 : Very Deep Convolutional Networks for Large-Scale Image


Recognition
Penulis : Karen Simonyan & Andrew Zisserman
Journal Publikasi : ICLR 2015
Tahun Publikasi : 2015
Rangkuman
Penelitian ini mencoba melakukan Image Recognition dengan menggunakan
Convolutional Layer yang sangat dalam, mencapai 16 – 19 Layer. Penelitian ini
menggunakan filter yang cukup kecil yaitu 3 x 3. Meskipun filter berukuran cukup
kecil, tetapi dengan layer yang dalam hasil yang didapat cukup memuaskan.
Percobaan yang digunakan pada penelitian ini meraih tingkat akurasi tertinggi pada
ImageNet Challenge pada tahun 2014. [6]

2.1.2. Perbandingan Metode yang Sudah Ada


Tabel 1. Tabel Research Gap

No Judul Metode Data Research Gap


1 Driver Sleepiness Support 12 Menggunakan Support
Detection System Vector partisipan Vector Machine yang
Based on Eye Machine yang memiliki proses lebih
Movements terdiri dari sederhana tetapi akurasi
Variables 4 wanita yang lebih rendah dari
dan 8 pria. Convolutional Neural
Network.

5
No Judul Metode Data Research Gap
2 Effect of sleep Kromatografi Data Memerlukan
deprivation on the cairan tubuh metabolisme peralatan
human 12 laki – laki laboratorium untuk
metabolome muda. mendeteksi perubahan
metabolisme
seseorang.
3 Very Deep Convolutional ILSVRC Memerlukan jumlah
Convolutional Neural dataset (1.2 data yang sangat besar
Networks for Networks juta gambar, untuk melakukan
Large-Scale Image 1000 klasifikasi.
Recognition kategori)

2.1.3. Research Gap


Pada beberapa penelitian di atas, dapat dilihat beberapa research gap dengan
penelitian ini. Pada paper 1, research gap yang ditemukan adalah banyaknya
jumlah data yang diperlukan pada paper 1. Paper 1 memerlukan jumlah data yang
sangat besar, sementara penelitian ini hanya memiliki jumlah data yang kecil. Pada
paper 2, research gap yang terjadi adalah perbedaan peralatan yang digunakan.
Paper 2 menggunakan peralatan yang rumit untuk mendeteksi perubahan
metabolisme pada orang yang mengalamai kekurangan tidur. Pada paper 3,
research gap yang terjadi adalah perbedaan algoritma yang digunakan. Paper 3
menggunakan Support Vector Machine, sedangkan penelitian ini menggunakan
Convolutional Neural Network.

2.2. Landasan Teori


Penelitian ini menggunakan sebuah algoritma dan beberapa teknologi. Berikut
adalah penjelasan mengenai algoritma dan beberapa teknologi yang
diimplementasikan pada sistem deteksi kualitas tidur pada Smart Mirror.

6
2.2.1. Convolutional Neural Networks
Convolutional Neural Network adalah sebuah pengembangan dari Neural
Network. Neural Network sendiri adalah pemrosesan yang saling terhubung, yang
terinspirasi dari neuron otak. Neural Network menyimpan weight yang berguna
untuk menentukan seberapa penting sebuah data. Weight didapatkan dari training.
Neural Network banyak digunakan untuk memproses data, gambar, maupun suara.
Convolutional Neural Network merupakan pengembangan dari Neural Network
yang banyak digunakan untuk melakukan pemrosesan gambar. Convolutional
Neural Network menyimpan weight dalam bentuk filter yang digeser di setiap
bagian gambar, untuk kemudian menemukan array untuk bisa diproses di Neural
Network. [7]

Gambar 1. Proses Convolutional Neural Network [8]

2.2.2. Dark Under Eye Circle


Salah satu parameter yang digunakan pada penelitian ini adalah lingkaran hitam
di bawah mata pengguna. Lingkaran hitam di bawah mata merupakan salah satu
tanda jika seseorang mengalami kekurangan tidur. Hal ini disebabkan karena
kekurangan tidur menyebabkan pembuluh darah di bawah mata melebar. Pembuluh
darah yang melebar ini dapat menyebabkan warna hitam di bawah mata. Selain
dampak kesehatan karena kurang tidur, warna hitam di bawah mata ini membuat
penampilan seseorang menjadi kurang baik, dan membuat seseorang terlihat
kelelahan. [9] [10]

2.2.3. Image Processing


Image Processing atau pengolahan citra merupakan proses pengolahan gambar
menjadi gambar yang baru. Hasil Image Processing berupa gambar dengan fitur –

7
fitur baru atau perbaikan jika dibandingkan dengan gambar aslinya. Pengolahan
citra dapat digunakan untuk peningkatan kualitas gambar, pemulihan gambar, atau
representasi gambar. [11]

2.2.4. Computer Vision


Computer Vision adalah kemampuan mesin mengambil informasi dari gambar
yang kemudian dapat digunakan untuk menyelesaikan tugasnya. Computer Vision
menjadi sangat populer akhir – akhir ini karena dengan Computer Vision, mesin
dapat menyelesaikan banyak tugas yang dulu mustahil dilakukan oleh mesin. [12]

2.2.5. Smart Mirror


Smart Mirror merupakan cermin yang didesain agar mampu berinteraksi dengan
penggunanya. Smart Mirror mampu menampilkan data – data yang berguna bagi
pengguna, dan menerima input dari pengguna. Smart Mirror banyak digunakan
untuk menampilkan informasi – informasi penting misalnya cuaca, jadwal kegiatan,
pesan, dan lain – lain. [13]

2.2.6. Data Augmentation


Data Augmentation adalah sebuah teknik peningkatan jumlah data di saat data
yang dimiliki berjumlah sedikit. Data Augmentation adalah sebuah proses
manipulasi data (misalnya gambar) untuk membuat sebuah gambar menjadi
berbagai gambar yang berbeda. Teknik – teknik yang umum digunakan antara lain
adalah membalik gambar, merotasi gambar, merubah skala gambar, melakukan
pemotongan gambar, dan menambah noise. [14]

Gambar 2. Data Augmentation [15]

8
BAB III
METODOLOGI PENELITIAN

3.1. Metode Penelitian


3.1.1. Metode Pengumpulan Data
Pada penelitian ini, pengumpulan data dilakukan dari internet. Data yang diambil
berupa foto tampak depan wajah manusia. Pengambilan foto dilakukan
menggunakan mesin pencari bing karena kemampuannya menyimpan gambar
secara cepat dan mudah. Foto yang diambil memiliki ukuran yang bebas. Terdapat
sekitar 200 foto yang digunakan untuk penelitian ini.

Gambar 3. Contoh data wajah

3.1.2. Metode Analisis Data


Pada penelitian ini, dilakukan preprocessing pada data – data yang sudah
didapatkan sebelumnya. Preprocessing yang dilakukan adalah melakukan
pemotongan bagian mata dari data foto yang sudah didapatkan. Ukuran
pemotongan adalah 100 x 100 pixel. Gambar di bawah merupakan contoh foto –
foto yang telah dipreprocessing.

9
Gambar 4. Contoh foto yang telah dipotong

3.1.3. Metode Pengembangan Sistem


Metode yang digunakan untuk pengembangan penelitian ini adalah metode agile.
Metode agile dipilih karena kemampuannya untuk beradaptasi terhadap perubahan
– perubahan yang terjadi dalam pengembangan sistem. Metode agile diawali
dengan perencanaan tentang sistem, kemudian langsung masuk ke pembuatan
sistem, dan kemudian testing. Langkah berikutnya adalah melakukan dokumentasi
jika diperlukan.

3.1.4. Metode Evaluasi Sistem


Pada penelitian ini, evaluasi dilakukan berdasarkan data yang dihasilkan oleh
sistem. Data deteksi dibandingkan dengan data asli kualitas tidur pengguna. Hasil
perbandingan kemudian digunakan untuk menghitung akurasi sistem.

3.2. Perangkat Lunak dan Perangkat Keras


3.2.1. Perangkat Lunak
1. Pengembangan Aplikasi
a. Microsoft Windows
Microsoft Windows merupakan sistem operasi yang digunakan untuk
pengembangan aplikasi ini karena kemampuannya menjalankan berbagai jenis
program.
b. Python

10
Python dipilih sebagai bahasa pemrograman untuk pengembangan sistem
ini karena fleksibilitas-nya. Bahasa python sering digunakan untuk
pengembangan sistem Machine Learning karena memiliki library yang sangat
luas untuk membantu pengguna membuat aplikasi – aplikasi Machine Learning.
c. Tensorflow
Tensorflow adalah backend library yang banyak digunakan di penelitian ini.
Tensorflow merupakan library yang memiliki banyak fungsi yang bisa
membantu pembuatan Machine Learning.
d. Keras
Keras merupakan library yang menggunakan tensorflow sebagai backend-
nya. Banyak fungsi yang ada pada tensorflow standar sulit dipahami dan
digunakan oleh pengguna. Keras dapat membantu pengguna untuk memakai
tensorflow dengan lebih mudah dengan cara menggunakan fungsi – fungsi
keras untuk memanggil fungsi – fungsi tensorflow.
e. Jupyter Notebook
Jupyter Notebook merupakan sebuah IDE (Integrated Development
Environment) yang digunakan di penelitian ini. Jupyter Notebook merupakan
sebuah IDE yang unik, karena dapat menampilkan hasil output code sesuai
dengan bagian – bagian code yang ditentukan sendiri oleh pengguna. Jupyter
Notebook bekerja pada browser untuk memberi tampilan output secara mudah.

Gambar 5. Tampilan Jupyter Notebook

f. Anaconda Navigator

11
Anaconda Navigator adalah sebuah program manajemen Environment.
Environment mampu mengurangi error yang sering terjadi pada code dengan
cara membuat sebuah lingkungan Python sendiri yang tertutup.

Gambar 6. Tampilan Anaconda Navigator

g. Adobe Photoshop
Adobe Photoshop merupakan aplikasi yang digunakan untuk melakukan
preprocessing (pemotongan) gambar yang sudah didapatkan sebelumnya.

2. Smart Mirror
a. Microsoft Windows
Microsoft Windows merupakan sistem operasi yang digunakan pada Smart
Mirror.
b. Python
Python digunakan untuk menjalankan sistem deteksi kualitas tidur pada
Smart Mirror.

3.2.2. Perangkat Keras


1. Pengembangan Aplikasi
a. Laptop ASUS Core i7, 8Gb ram, dan VGA GTX960M
Pengembangan aplikasi deteksi kualitas tidur dilakukan menggunakan
laptop ASUS yang memiliki processor core i7, dengan ram 8Gb, dan VGA
GTX960M.
2. Smart Mirror

12
a. Laptop Lenovo Core i5, 8Gb ram, dan VGA Radeon R5 M230
Smart Mirror bekerja menggunakan laptop Lenovo dengan processor Core
i5, 8Gb ram, dan VGA Radeon R5 M230 untuk menjalankan aplikasi deteksi
kualitas tidur. Laptop bisa diganti menggunakan jenis lainnya, atau bisa
menggunakan mini PC.
b. Webcam
Webcam berguna untuk mengambil gambar pengguna untuk bisa diolah dan
dideteksi kualitas tidurnya untuk kemudian ditampilkan pada Smart Mirror.
c. Monitor
Monitor berguna untuk menampilkan program pada pengguna. Monitor
diletakkan di belakang cermin satu arah untuk bisa menampilkan ilusi kepada
pengguna seolah – olah cermin menampilkan informasi. Informasi yang
ditampilkan antara lain garis posisi peletakan mata, dan hasil deteksi kualitas
tidur.

Gambar 7. Smart Mirror

13
BAB IV
ANALISIS DAN PEMBAHASAN

4.1. Perancangan Sistem


Penelitian ini menggunakan metode agile. Agile adalah sebuah metode
perancangan hingga evaluasi sistem. Metode ini membagi sistem menjadi beberapa
bagian yang lebih kecil sehingga lebih mudah dikontrol. Metode ini dimulai dari
analisa kebutuhan, desain sistem, implementasi, dan pengujian sistem. Salah satu
keunggulan dari metode ini adalah setiap tahap bisa diulang jika dibutuhkan, tetapi
tetap tidak terlalu mempengaruhi tahap – tahap lainnya. Penelitian ini memilih
metode agile karena fleksibilitasnya. Jika terjadi perubahan, maka tidak harus
mengulang seluruh proses dari awal.

Gambar 8. Metode Agile [16]

4.1.1. Analisis Kebutuhan


4.1.1.1. Sistem yang dibuat
Sistem yang dibuat pada penelitian ini adalah sistem deteksi kualitas tidur.
Sistem bekerja dengan menggunakan algoritma Convolutional Neural Network.
Sistem ini diaplikasikan pada Smart Mirror berukuran 150 x 50 cm. Sebagai
tampilan kepada pengguna, digunakan monitor berukuran 22 inci dan sebuah
webcam beresolusi 1600 x 1200 piksel.

14
4.1.1.2. Pengguna Sistem
Pengguna sistem ini adalah pengguna – pengguna Smart Mirror yang
memerlukan sistem pemberi peringatan otomatis mengenai kualitas tidurnya.
Pengguna dari sistem ini tidak menggunakan make up yang berlebihan dan
kacamata (softlens diperbolehkan). Make up sederhana misalnya eyeshadow dan
eyeliner diperbolehkan.

4.1.1.3. Prosedur Penggunaan


Pengguna yang menggunakan sistem ini harus memposisikan wajah 15 cm dari
Smart Mirror. Selain itu, pengguna harus menyejajarkan refleksi dirinya di sebuah
penanda yang telah disiapkan sebelumnya. Pengguna juga tidak boleh
menggunakan make up dan kacamata. Kemudian pengguna harus menekan tombol
“Enter” pada keyboard untuk mengaktifkan webcam yang terletak di belakang
cermin untuk mengambil gambar orang yang berada di depan cermin dan memulai
proses program. Jika dilakukan dengan benar maka Smart Mirror kemudian
menampilkan hasil deteksi kualitas tidur pengguna.

4.1.1.4. Input Data


Data input yang digunakan adalah foto pengguna bagian wajah dan penekanan
tombol dari pengguna. Foto wajah pengguna adalah data yang diproses untuk
menentukan kualitas tidur pengguna. Penekanan tombol pengguna berguna untuk
memulai program.

4.1.1.5. Output Data


Output yang ditampilkan pada pengguna adalah tampilan awal program berupa
perintah untuk meminta pengguna mencari posisi yang tepat, serta perintah untuk
menekan tombol memulai program. Tampilan akhir adalah hasil deteksi kualitas
tidur pengguna.

4.1.2. Desain Sistem


4.1.2.1. Program Training Data
Agar aplikasi deteksi kualitas tidur dapat bekerja, aplikasi ini memerlukan model
yang didapatkan melalui training. Langkah awal program ini adalah memuat
library – library pembantu training. Awalnya ditentukan parameter – parameter

15
training misalnya lokasi data, jumlah sampel, banyaknya epochs dan lain – lain.
Setelah itu dilakukan augmentasi data. Kemudian, dilakukan proses convolutional
neural network, perhitungan loss, optimisasi, dan nilai performa model. Hasil akhir
yang didapat adalah model yang bisa digunakan untuk melakukan prediksi.

Gambar 9. Flowchart proses training

4.1.2.2. Proses Convolutional Neural Network


Proses convolutional dimulai dengan melakukan randomisasi weight sebagai
filter. Kemudian setiap bagian image akan dikalikan dengan filter. Setelah
didapatkan fitur – fitur baru, akan dilakukan pooling (penggabungan beberapa
bagian fitur menjadi satu fitur). Kemudian dilakukan convolutional dan pooling
untuk kedua kali. Karena fitur – fitur yang didapat akan terdiri dari banyak channel,
perlu dilakukan perubahan menjadi satu array agar bisa diterima oleh Fully
Connected Layer. Selanjutnya harus dilakukan perhitungan loss, optimisasi, dan
perhitungan akurasi. Setelah itu dilakukan backpropagation untuk mengubah filter
menjadi lebih sesuai untuk memprediksi image secara lebih baik. Hal ini dilakukan
sampai memenuhi jumlah epochs yang ditentukan.

16
Gambar 10. Flowchart Convolutiona Neural Network

4.1.2.3. Aplikasi Deteksi Kualitas Tidur


Alur kerja sistem dapat dilihat pada Gambar x, diawali dengan meminta user
mencari jarak dan posisi yang tepat dari Smart Mirror. Kemudian, setelah pengguna
menekan tombol pengambilan foto, program secara otomatis berjalan. Foto
kemudian disimpan di storage, lalu dilakukan pemotongan foto oleh OpenCV. Hasil
pemotongan digunakan sebagai data yang siap diprediksi oleh program. Program
melakukan prediksi kualitas tidur menggunakan weight yang sudah ditrain
sebelumnya. Setelah selesai melakukan prediksi, hasil prediksi ditampilkan di
Smart Mirror. Langkah berikutnya, user bisa memilih untuk melakukan prediksi
lagi atau keluar dari aplikasi.

17
Gambar 11. Flowchart aplikasi deteksi kualitas tidur

Untuk memandu user menggunakan aplikasi, berikut adalah tampilan awal


program.

Gambar 12. Instruksi pengguna

18
Setelah pengguna memulai program, maka aplikasi mulai memproses foto
pengguna, dan setelah proses selesai, program memunculkan tampilan sederhana
pada smart mirror yang berisi status kualitas tidur pengguna.

Gambar 13. Hasil output

4.1.2.4. Smart Mirror


Untuk membuiat Smart Mirror, diperlukan beberapa komponen antara lain:
1. Kaca
Smart Mirror menggunakan kaca transparan berukuran 150cm x 50cm.
Kaca berukuran 150cm x 50cm dipilih karena dapat memantulkan tubuh
pengguna secara utuh dari ujung kepala sampai ujung kaki. Untuk
membuat kaca mampu memantulkan pengguna, digunakan selembar stiker
1 arah dengan tingkat kegelapan 90%. Stiker ini ditempel pada kaca, dan
membuat kaca menjadi cermin. Dengan stiker ini, pengguna dapat melihat
pantulannya, dan cahaya dari balik kaca tetap terpancar ke luar. Kaca
diletakkan di bingkai dengan ketinggian 35cm dari atas lantai.

19
2. Monitor
Monitor berguna untuk menampilkan berbagai informasi kepada
pengguna dari balik cermin. Monitor yang digunakan adalah Dell
E2213HB berukuran 22 inch. Monitor ini memiliki resolusi 1920 x 1080
piksel. Tetapi monitor menggunakan resolusi 1366 x 768 karena laptop
yang digunakan sebagai sumber tampilan monitor hanya mensupport
resolusi sebesar 1366 x 768. Monitor diletakkan di belakang kaca.
3. Webcam
Webcam berfungsi untuk mendapatkan foto wajah pengguna. Webcam
yang digunakan adalah Logitech Pro 9000 dengan resolusi 1600 x 1200.
Webcam diletakkan di dalam bingkai cermin dengan ketinggian 127cm
dari atas lantai. Jarak pengguna dari Webcam saat menggunakan program
adalah 15cm.

4.2. Implementasi Sistem


Sistem deteksi kualitas tidur diimplementasikan dengan menggunakan software
Integrated Development Environment (IDE) Jupyter Notebook. Bahasa
pemrograman utama yang digunakan adalah bahasa Python. Bahasa Python
digunakan di seluruh sistem ini, baik pada bagian tampilan maupun backend. Pada
sistem ini terdapat 2 bagian utama, bagian – bagian utama tersebut antara lain
adalah:
1. Sistem Training Data, merupakan bagian program yang berfungsi untuk
membuat model yang digunakan untuk melakukan prediksi.
2. Sistem prediksi, merupakan bagian program yang berguna untuk melakukan
prediksi itu sendiri, termasuk tampilan sederhana pada pengguna.

4.2.1. Implementasi Sistem Training Data


Implementasi sistem training data menggunakan bahasa pemrograman Python.
Sistem ini merupakan salah satu bagian terpenting dari keseluruhan sistem prediksi
kualitas tidur. Sistem ini memiliki tugas untuk membuat model yang kemudian
digunakan untuk melakukan prediksi.

20
4.2.1.1. Inisialisasi Awal
Untuk memulai training, sistem harus melakukan beberapa langkah. Langkah
pertama yang perlu dilakukan adalah memanggil library – library yang digunakan
pada program.

from keras.preprocessing.image import ImageDataGenerator


from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K

Gambar 14. Inisialisasi awal program

Code pertama yaitu memanggil library yang memiliki fungsi manipulasi image
yaitu ImageDataGenerator. Library ini nantinya bertugas membantu melakukan
Data Augmentation dan beberapa pemrosesan gambar lainnya.
Code berikutnya adalah memanggil fungsi Sequential. Fungsi ini berguna untuk
menentukan bentuk Neural Network yang digunakan selanjutnya.
Berikutnya adalah pemanggilan fungsi Conv2D, dan MaxPooling2D. Fungsi
Conv2D adalah fungsi yang berguna untuk membantu membuat layer convolutional
pada neural network yang dibuat. Fungsi MaxPooling2D adalah fungsi yang
digunakan untuk melakukan Max Pooling. Max Pooling adalah salah satu bagian
yang penting dalam operasi convolutional karena mampu memperkecil parameter
– parameter yang sudah didapatkan di layer convolutional. Jika tidak dilakukan
pooling, hasil convolutional akan menjadi sangat besar dan bisa berakibat pada
overfitting. Bagian 2D pada fungsi – fungsi di atas berarti dilakukan proses pada
data 2D, pada kasus ini adalah image.
Bagian berikutnya adalah pemanggilan fungsi – fungsi pembantu pada neural
network. Fungsi pertama yang bekerja adalah Activation Function. Fungsi ini
berguna untuk menentukan apakah sebuah neuron diaktivasi atau tidak. Tanpa
fungsi ini, semua neuron akan diaktifkan dan berakibat neural network tidak bisa
bekerja dengan baik.

21
Dropout adalah fungsi yang berguna untuk mengabaikan sejumlah kecil data
saat dilakukan training. Fungsi ini berguna untuk menjaga neural network dari
overfitting.
Flatten berfungsi untuk menyatukan seluruh output yang didapatkan dari proses
convolutional. Saat melakukan proses convolutional, normalnya didapatkan hasil
output berupa data yang terdiri dari banyak channel. Data – data ini tidak bisa
dilanjutkan ke neural network standar tanpa melalui proses flatten terlebih dahulu.
Flatten bertugas menyatukan seluruh data ini menjadi satu buah array yang mampu
diproses neural network.
Dense adalah fungsi yang berguna untuk membuat network yang telah dibuat
menjadi fully connected. Fully connected artinya setiap neuron dihubungkan
dengan neuron di layer setelahnya, dan seterusnya.

4.2.1.2. Penentuan Variabel


Setelah melakukan inisialisasi awal, perlu ditentukan variabel – variabel yang
nantinya digunakan oleh program pada fase training. Berikut adalah code yang
digunakan untuk menentukan nama variabel dan isi dari variabel yang digunakan.

img_width, img_height = 100, 100

train_data_dir = '/letak data training'


validation_data_dir = '/letak data validasi'
nb_train_samples = 160
nb_validation_samples = 40
epochs = 30
batch_size = 10

Gambar 15. Penentuan variabel

Img_width, dan img_height merupakan pengaturan tinggi dan lebar gambar yang
diproses oleh program. Semua image yang didapat, berapapun ukurannya kemudian
diubah menjadi ukuran yang telah ditentukan di sini. Hal ini membuat akurasi
menjadi lebih baik karena setiap image memiliki ukuran yang sama. Selain itu
gambar dengan ukuran kecil bisa mempercepat proses training. Sebenarnya untuk

22
mendapatkan hasil yang lebih baik, dapat digunakan gambar yang lebih besar, dan
convolutional layer yang lebih banyak. Tetapi hal ini memerlukan kekuatan
komputasi yang sangat besar yang tidak dimiliki di penelitian ini.
Berikutnya adalah penentuan letak data training dan validation. Bagian ini
berguna untuk memberitahu program di mana letak data disimpan. Bagian ini bebas
diubah sesuai dengan di mana letak penyimpanan data – data yang diperlukan. Data
training adalah data yang digunakan oleh program untuk mempelajari fitur – fitur
yang berguna. Karena program ini merupakan supervised learning maka
diperlukan validation data yang berguna sebagai acuan pembelajaran oleh program.
Kemudian harus ditentukan berapa jumlah data training yang diproses oleh
program. Pada penelitian ini digunakan 160 data training dan 40 data validation.
Jumlah data yang digunakan di penelitian ini cukup kecil jika dibandingkan dengan
image classifier standar. Jika ingin meningkatkan akurasi program, bisa
ditambahkan jumlah data di sini.
Tetapi jumlah data yang besar akan menambah lamanya waktu komputasi.
Selain itu jumlah training data dan validation data haruslah seimbang untuk
mencegah overfitting dan underfitting. Perbandingan yang cukup populer
digunakan adalah 4 training data dibanding 1 validation data.
Epochs merupakan jumlah dilakukannya pengulangan training. Setiap training
yang dilakukan bertugas mengubah weight yang sudah didapatkan sebelumnya.
Dilakukan sedikit demi sedikit pengubahan weight sampai ditemukan weight yang
optimal. Pada convolutional neural network, weight biasa dikenal sebagai filter.
Biasanya semakin banyak epochs yang dilakukan dapat meningkatkan akurasi
program. Tetapi akan ada satu titik di mana pelatihan tidak berfungsi lagi karena
weight sudah sangat optimal.
Batch_size berguna untuk mengumpulkan beberapa data menjadi satu untuk
mempercepat proses training. Misalnya, jika digunakan ukuran batch_size sebesar
10, maka digunakan10 data sekaligus untuk 1 kali training.

4.2.1.3. Pembuatan Network


Bagian ini berguna untuk membangun network yang digunakan. Bagian ini
banyak menggunakan fungsi – fungsi yang sudah dipanggil di awal.

23
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))


model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.1))
model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])

Gambar 16. Pembuatan Network

Model = sequential berguna untuk menentukan bentuk network yang dibuat.


Sequential sendiri sudah dijelaskan sebelumnya.
Model.add(Conv2D(32, (3, 3), input_shape=input_shape)) merupakan bagian di
mana ditentukan berapa jumlah channel output yang diinginkan dari convolutional
layer (pada kasus ini 32). Kemudian perlu ditentukan besarnya filter (pada kasus
ini 3 x 3). Sementara input_shape adalah bentuk input yang nantinya diterima oleh
layer convolutional.
Berikutnya perlu ditentukan activation function yang digunakan oleh network.
Pada bagian ini digunakan activation bernama relu. Pada dasarnya Relu
mengaktifkan weight yang tidak nol. Jadi jika hasil randomisasi weight pada
awalnya mengandung banyak nol, maka network menjadi lebih ringan dan berjalan
lebih cepat.

24
Kemudian dilakukan pooling untuk membuat data menjadi lebih kecil. Pada
penelitian ini digunakan 2-layer convolutional karena jumlah training data yang
tidak besar dan tidak terlalu rumit. Jumlah layer yang terlalu banyak bisa
memperlambat proses training.
Setelah convolutional layer selesai, maka network berlanjut ke fully connected
layer yang sebenarnya merupakan neural network standar. Fungsi flatten berguna
untuk menyatukan data seperti yang sudah dijelaskan sebelumnya. Dense
merupakan jumlah neuron, activation berguna untuk mengaktifkan neuron, dan
dropout untuk mengurangi jumlah neuron untuk mengurangi overfitting.
Bagian terakhir adalah menentukan loss function, optimizer, dan metrics. Loss
function berguna untuk menemukan besarnya loss di setiap epoch. Loss function
yang digunakan di sini adalah binary crossentropy. Pada dasarnya function ini
bekerja dengan cara membandingkan hasil prediksi dengan hasil yang diinginkan.

𝐶𝑟𝑜𝑠𝑠 𝐸𝑛𝑡𝑟𝑜𝑝𝑦: 𝐻(𝑝, 𝑞) = − ∑ 𝑝(𝑥) log 𝑞(𝑥) (4-1)


𝑧
Sumber: Deep Learning [17]

Keterangan:
p = probabilitas yang diinginkan
q = probabilitas yang sebenarnya

Optimizer yang digunakan adalah rmsprop. Rmsprop sendiri adalah sebuah


optimizer yang jarang dibahas dan dipublikasikan. Tetapi optimizer ini cukup
banyak digunakan oleh banyak orang karena cukup efektif.
Terakhir adalah metrics yang digunakan untuk mencari tahu seberapa efektif
sistem ini setiap satu epoch-nya. Tanpa metrics tidak bisa diketahui apakah sistem
menjadi semakin baik setiap epoch-nya.

4.2.1.4. Data Augmentation


Langkah berikutnya yang dilakukan adalah melakukan Data Augmentation. Hal
ini sangat berguna di penelitian ini karena jumlah data yang cukup sedikit. Dengan

25
data augmentation, data bisa ditambah menjadi beberapa kali lipat tergantung
berapa jenis augmentation yang dilakukan.

train_datagen = ImageDataGenerator(
rescale=1. / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1. / 255)

Gambar 17. Data Augmentation

Terdapat beberapa data augmentation yang dilakukan pada program. Pertama


adalah melakukan rescaling warna. Bagian ini sebenarnya bukan merupakan
augmentasi data, melainkan membagi setiap pixel di gambar dengan 255 sebagai
normalisasi nilai (agar semua pixel berada di antara rentang 0 – 1).
Proses augmentasi yang pertama adalah melakukan shearing. Shearing pada
dasarnya memanipulasi setiap baris pixel dengan cara menggeser sesuai jarak yang
sudah ditentukan.

Gambar 18. Proses Shear [18]

26
Proses augmentasi berikutnya adalah melakukan zooming. Foto – foto yang ada
dilakukan zoom sehingga sistem bisa mendeteksi fitur yang diinginkan seandainya
ukuran tidak tepat seperti data training.
Terakhir adalah melakukan horizontal flip. Hal ini merupakan augmentasi yang
terpenting pada sistem ini. Dengan melakukan augmentasi ini, foto mata kiri bisa
sekaligus menjadi training data untuk mata kanan.
Semua augmentasi ini terjadi saat dilakukan training. Program secara otomatis
menyimpan hasil – hasil augmentasi di penyimpanan sementara yang tidak terlihat
oleh pengguna selama melakukan training. Untuk data testing hanya dilakukan
normalisasi warna.

4.2.1.5. Memulai Training


Bagian program ini bertujuan untuk melakukan eksekusi program. Semua
pengaturan – pengaturan yang sudah dilakukan di atas dikerjakan di sini untuk
membuat file model yang kemudian digunakan untuk melakukan deteksi kualitas
tidur.
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
validation_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary')

model.fit_generator(
train_generator,
steps_per_epoch=nb_train_samples // batch_size,
epochs=epochs,
validation_data=validation_generator,
validation_steps=5)

27
model.save('modelgen5.h5')

Gambar 19. Proses training

Train_generator berguna untuk mempersiapkan data – data yang digunakan


untuk training. Validation_generator juga memiliki fungsi yang sama.
Setelah data dipersiapkan, maka training bisa dimulai. Fungsi yang berguna
untuk memulai training adalah model.fit_generator. Proses training diulang sesuai
dengan jumlah epochs yang sudah ditentukan sebelumnya. Setelah training selesai,
model disimpan oleh model.save dengan nama yang bebas ditentukan oleh
pengguna.

Gambar 20. Hasil proses training

28
4.2.2. Implementasi Sistem Prediksi
4.2.2.1. Tampilan Instruksi Pengguna
Untuk membuat tampilan instruksi kepada pengguna, digunakan image yang
sudah dibuat sebelumnya. Untuk menampilkan image kepada pengguna, digunakan
perintah python sederhana.

from IPython.display import Image


Image(filename='instruksi.jpg')

Gambar 21. Code untuk menampilkan instruksi

Perintah tersebut berguna untuk menampilkan gambar instruksi kepada


pengguna.

Gambar 22. Tampilan instruksi pada Smart Mirror

29
4.2.2.2. Pengambilan Gambar Pengguna
Pengambilan gambar dilakukan dengan bantuan library OpenCV. Berikut adalah
code yang digunakan untuk melakukan pengambilan gambar melalui Webcam.

import cv2
cam = cv2.VideoCapture(0)

cv2.namedWindow("test")

img_counter = 0

while True:
ret, frame = cam.read()
if not ret:
break
k = cv2.waitKey(1)

if k%256 == 27:
#Tekan Esc untuk keluar
print("Keluar dari program")
break
elif k%256 == 13:
#Tekan Enter untuk mengambil foto
img_name = "opencv_frame_{}.png".format(img_counter)
cv2.imwrite(img_name, frame)
print("{} diambil!".format(img_name))
img_counter += 1

cam.release()

cv2.destroyAllWindows()

Gambar 23. Pengambilan gambar pengguna

Terdapat beberapa fungsi yang penting di sini misalnya cv2.waitKey. Perintah


ini berguna untuk menerima input dari pengguna. Tombol yang digunakan di sini
adalah tombol “Esc” untuk keluar dari program dan tombol “Enter” untuk
mengambil foto dan melanjutkan program.

30
Setelah operasi selesai, program perlu mematikan kamera. Hal ini dilakukan
melalui perintah cam.release().

4.2.2.3. Resize dan Crop Gambar Pengguna


Setelah gambar diambil, maka gambar perlu diresize dan dicrop agar dapat
diproses oleh sistem. Berikut adalah code yang digunakan untuk melakukan resize
dan crop.

import cv2

image = cv2.imread("opencv_frame_0.png")

resized = resized_image = cv2.resize(image, (1600, 1200))


cv2.imshow("resized", resized)

cropped = image[796:1470, 762:1436]


cv2.imshow("cropped", cropped)

cv2.imwrite("test.jpg", cropped)

cv2.waitKey(0)

Gambar 24. Resize dan crop

Pada awalnya gambar diresize menjadi berukuran 1600 x 1200. Hal ini
dilakukan karena OpenCV hanya mampu menerima dan memproses gambar sebesar
1600 x 1200. Setelah diresize, dilakukan cropping pada gambar untuk memotong
bagian mata pengguna, yang kemudian digunakan untuk prediksi.

4.2.2.4. Melakukan Prediksi


Bagian ini adalah bagian akhir program yang berguna untuk melakukan prediksi
kualitas tidur pengguna.
import cv2
from keras.models import load_model
import numpy as np

31
model = load_model('nama model')

model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])

img = cv2.imread('lokasi image anda')


img = np.reshape(img,[1,100,100,3])

classes = model.predict_classes(img)

if classes[0] == 0:
print ("Kurang Tidur")
else:
print ("Normal")

Gambar 25. Proses prediksi

Pada bagian ini dilakukan load.model untuk menggunakan model yang sudah
ditrain sebelumnya. Kemudian model harus dicompile kembali menggunakan
fungsi loss, optimizer, dan metrics yang sama dengan saat training. Kemudian
gambar yang sudah diproses sebelumnya harus diambil. Lalu harus dilakukan
reshape gambar menjadi 4 dimensi sehingga sama dengan model. Dan langkah
akhir adalah melakukan prediksi, dan menampilkan hasi prediksi pada pengguna.

Gambar 26. Tampilan hasil pada Smart Mirror

32
4.3. Pengujian Sistem
Pada penelitian ini, pengujian dilakukan dengan menghitung akurasi dari
kualitas tidur pengguna sebenarnya dengan kualitas tidur pengguna yang diprediksi
oleh aplikasi. Pengujian dilakukan dengan 2 cara, yaitu dengan cara menggunakan
sistem secara langsung, dan menggunakan data yang diinput kepada sistem secara
manual.
Pengujian langsung dibantu oleh 5 relawan di Perumahan Bolsena Gading
Serpong. Pengguna meletakkan wajah dengan jarak 15cm dari Smart Mirror, dan
dengan posisi yang telah ditentukan sebelumnya.

Gambar 27. Contoh penggunaan sistem

Pertama relawan meletakkan wajahya dengan jarak 15cm dari Smart Mirror, di
posisi yang telah ditentukan. Kemudian, pengguna harus menekan tombol “enter”
untuk mendapatkan fotonya yang kemudian diproses oleh program. Hasil foto dapat
dilihat pada gambar di bawah.

33
Gambar 28. Contoh hasil foto 1

Gambar 29. Contoh hasil foto 2

Setelah didapatkan foto pengguna, program memotong bagian mata pengguna


dan melanjutkan ke proses prediksi.

Gambar 30. Contoh hasil pemotongan

34
Kemudian hasil ditampilkan pada Smart Mirror. Selain pengujian secara
langsung, juga dilakukan pengujian secara input data manual. Pengujian kedua ini
dilakukan untuk mendapatkan data akurasi secara lebih cepat dan lebih banyak.
Berikut adalah contoh data – data yang digunakan untuk pengujian kedua ini.

Gambar 31. Data testing manual

Jumlah data yang digunakan untuk pengujian kedua ini berjumlah 40 data.
Sebanyak 40 data dipilih karena dinilai cukup mewakili 160 data training. Berikut
adalah hasil pengujian kedua:

Gambar 32. Contoh output testing

35
Hasil dari pengujian ini dihitung akurasinya menggunakan rumus sederhana

𝑥
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = . 100% (4-2)
𝑦
Sumber: Accuracy assessment - A user's perspective [19]

Keterangan:
x = data benar
y = data total
Hasil pengujian dapat dilihat pada dabel di bawah. Tabel pertama adalah
pengujian dengan cara melakukan input image secara langsung.

Tabel 2. Hasil prediksi pengujian manual

Hasil Prediksi Data Sebenarnya Benar/Salah


Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar

36
Normal Normal Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Normal Kurang tidur Salah
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Kurang tidur Normal Salah
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Dari tabel pengujian pertama, terlihat terjadi 2 kesalahan dari 40 prediksi.
Akurasi pengujian pertama adalah 95%. Berikut adalah gambar – gambar yang
mengalami kesalahan prediksi.

Gambar 33. Foto pengujian pertama yang salah

Hasil pengujian dunia nyata dapat dilihat pada tabel di bawah.

37
Tabel 3. Hasil prediksi pengujian langsung

Hasil Prediksi Data Sebenarnya Benar/Salah


Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar
Normal Kurang tidur Salah
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Normal Normal Benar
Kurang tidur Normal Salah
Kurang tidur Kurang tidur Benar
Kurang tidur Kurang tidur Benar

Pada tabel percobaan kedua, terlihat bahwa terjadi 2 kesalahan dari 10 kali
percobaan. Akurasi dari pengujian kedua adalah 80%. Berikut gambar – gambar
yang mengalami kesalahan.

Gambar 34. Foto pengujian kedua yang salah

4.4. Pembahasan Sistem


Pada penelitian ini, pengujian yang dilakukan dengan input secara langsung
memiliki akurasi yang lebih tinggi dari akurasi pengujian dunia nyata. Akurasi saat
pengujian dengan input langsung adalah 95%, dan akurasi dari pengujian dunia
nyata adalah 80%

38
Akurasi yang didapatkan oleh pengujian pertama dipengaruhi oleh beberapa
faktor, antara lain: tingkat kecerahan image dan tingkat kemiripan kategori image
tersebut dengan kategori lainnya. Seperti dapat terlihat di subbab sebelumnya,
gambar pertama merupakan foto mata normal, tapi terdeteksi sebagai foto
kekurangan tidur karena pekatnya bagian bawah mata orang tersebut. Pada foto
kedua, image terlalu gelap sehingga akan menyamarkan warna hitam pada bagian
bawah mata orang tersebut. Akibatnya foto kedua ini terdeteksi sebagai mata
normal, padahal seharusnya foto tersebut termasuk mata kekurangan tidur.
Pada pengujian dunia nyata, selain faktor di atas, terdapat beberapa faktor lain
yang berpengaruh, antara lain: tingkat pencahayaan saat pengambilan foto dan
posisi pengguna. Pada contoh foto pertama terjadi kesalahan deteksi karena
pencahayaan yang terlalu terang. Hal ini berakibat pada lingkaran hitam di bawah
mata menjadi terang dan terlihat seperti mata normal. Pada gambar kedua, dapat
dilihat posisi pengguna yang tidak tepat. Posisi pengguna terlalu jauh, dan tidak
tepat di tengah – tengah kamera. Hal ini berakibat mata tidak terdeteksi dan hasil
menjadi tidak akurat.

39
BAB V
KESIMPULAN DAN SARAN

5.1. Kesimpulan
Sistem deteksi kualitas tidur yang diajukan telah cukup memenuhi tujuan
penelitian ini, yaitu membuat sistem deteksi kualitas tidur otomatis menggunakan
algoritma Convolutional Neural Network. Sistem ini juga telah menunjukkan
bahwan algoritma Convolutional Neural Network merupakan sebuah algoritma
yang sangat baik untuk digunakan pada permasalahan image classification. Dengan
jumlah data yang tidak terlalu besar, Convolutional Neural Network mampu
memberikan tingkat akurasi yang cukup bisa diterima.
Pembuatan Smart Mirror dapat menggunakan bahan kaca transparan dan stiker
satu arah. Tampilan untuk pengguna dapat dibuat dengan meletakkan monitor pada
bagian belakang kaca. Bagian monitor yang menyala terang akan mampu dilihat
dari bagian depan Smart Mirror.
Tampilan kepada pengguna bisa dibuat dengan menggunakan bahasa
pemrograman python. Dengan tampilan yang cukup sederhana, pengguna telah
mampu menggunakan sistem deteksi kualitas tidur dan membaca hasil deteksi
kualitas tidur dengan cukup baik.

5.2. Saran
Terdapat beberapa saran untuk pengembangan purwarupa sistem deteksi kualitas
tidur pada smart mirror ini, antara lain:
1. Perlunya pengembangan sistem deteksi mata otomatis sehingga pengguna
tidak perlu menyesuaikan posisinya untuk menggunakan sistem ini.
2. Meningkatkan jumlah data yang digunakan untuk training sehingga akurasi
sistem juga akan meningkat.

40
DAFTAR PUSTAKA

[1] R. T. Lin, C. K. Lin, D. C. Christiani, I. Kawachi, Y. Cheng, S. Verguet dan


S. Jong, “The impact of the introduction of new recognition criteria for
overwork-related cardiovascular and cerebrovascular diseases: a cross-
country comparison,” Scientific Reports, vol. 7, no. 1, pp. 1-11, 2017.

[2] F. Freitag dan T. Cestari, “What Causes Dark Circles Under the Eyes?,”
Journal of Cosmetic Dermatology, vol. 6, pp. 211-215, 2007.

[3] A. Krizhevsky, I. Sutskever dan G. E. Hinton, “ImageNet Classification


with Deep Convolutional Neural Networks,” Advances In Neural
Information Processing Systems, pp. 1-9, 2012.

[4] L. Jin, Q. Niu, Y. Jiang, H. Xian, Y. Qin dan M. Xu, “Driver Sleepiness
Detection System Based on Eye Movements Variables,” Hindawi
Publishing Corporation, pp. 1-7, 2013.

[5] S. K. Davies, J. Ern, V. L. Revell, B. Holmes, A. Mann, F. P. Robertson dan


N. Cui, “Effect of sleep deprivation on the human metabolome,” PNAS, vol.
111, no. 29, pp. 10761-10766, 2014.

[6] K. Simonyan dan A. Zisserman, “Very Deep Convolutional Networks for


Large-Scale Image Recognition,” ICLR 2015, pp. 1-14, 2015.

[7] S. Khan, H. Rahmani, S. Shah dan M. Bennamoun, “Convolutional Neural


Networks,” dalam A Guide to Convolutional Neural Networks for Computer
Vision, California, Morgan & Claypool Publishers, 2018, pp. 50-51.

[8] A. Deshpande, “Adeshpande,” 2016 Juli 2016. [Online]. Available:


https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-
Convolutional-Neural-Networks/. [Diakses 03 Juni 2018].

[9] B. Azizzadeh, “Dark Circles Etiology and Management Options,” dalam


Lower Lid and Midface: Multispecialty Approach, An Issue of Clinics in
Plastic Surgery, Amsterdam, Elsevier, 2014, pp. 33-35.

[10] J. Scott, “Everyday Health,” 28 Desember 2012. [Online]. Available:


https://www.everydayhealth.com/sleep/is-insomnia-causing-your-dark-
circles.aspx. [Diakses 05 Juni 2018].

[11] R. Gonzales dan R. Woods, “What is Digital Image Processing?,” dalam


Digital Image Processing, New Jersey, Prentice-Hall, 2001, pp. 1-3.

41
[12] D. Forsyth dan J. Ponce, “Finding Templates Using Classifiers,” dalam
Computer Vision: A Modern Approach, New Jersey, Prentice Hall, 2003, pp.
581-622.

[13] A. Hossain dan A. Saddik, “Smart Mirror for Ambient Home Environment,”
Intelligent Environments, pp. 589-596, 2007.

[14] J. Wang dan L. Perez, “The Effectiveness o fData Augmentation in Image


Classification using Deep Learning,” dalam ArXiv, New York, 2017.

[15] B. Raj, “medium,” 11 April 2018. [Online]. Available:


https://medium.com/nanonets/how-to-use-deep-learning-when-you-have-
limited-data-part-2-data-augmentation-c26971dc8ced. [Diakses 03 June
2018].

[16] R. Michael, “Common Places,” 10 September 2012. [Online]. Available:


https://www.commonplaces.com/blog/agile-v-waterfall-how-to-approach-
your-web-development-project/. [Diakses 06 Juni 2018].

[17] Goodfellow, Deep Learning, Massachusetts: MIT Press, 2016.

[18] Tutorialspoint Team, “Tutorials Point,” 2014. [Online]. Available:


https://www.tutorialspoint.com/javafx/shearing_transformation.htm.
[Diakses 03 Juni 2018].

[19] M. Story dan R. Congalton, “Accuracy assessment - A user's perspective,”


Photogrammetric Engineering and Remote Sensing, vol. 52, no. 3, pp. 397-
399, 1986.

42
LAMPIRAN

Lampiran 1. Letter of Acceptance

43
Lampiran 2. Data foto sukarelawan untuk pengujian

44

Anda mungkin juga menyukai