Page 1
TUGAS AKHIR
Halaman Sampul (Bahasa Indonesia)
KUNCI PINTU PINTAR BERBASIS RFID
DAN BIOMETRIK DENGAN SISTEM
PENGAMANAN KAMERA
Diajukan untuk memenuhi salah syarat
Memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh :
BENEDICTUS SURYA ARTHA MARHAENDRA
NIM: 145114049
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 2
ii
ii
FINAL PROJECT
Halaman Sampul (Bahasa Inggris)
BIOMETRIC AND RFID BASED SMART LOCK
WITH CAMERA AS SECURITY SYSTEM
In a partial fulfilment of the requirements
for the degree of Sarjana Teknik
In Department of Electrical Engineering
Faculty of Science and Technology
Sanata Dharma University
BENEDICTUS SURYA ARTHA MARHAENDRA
NIM: 145114049
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 3
iii
iii
LEMBAR PERSETUJUAN
TUGAS AKHIR
KUNCI PINTU PINTAR BERBASIS RFID DAN BIOMETRIK
DENGAN SISTEM PENGAMANAN KAMERA
(BIOMETRIC AND RFID BASED SMART LOCK WITH
CAMERA AS SECURITY SYSTEM)
disusun oleh:
BENEDICTUS SURYA ARTHA MARHAENDRA
NIM: 145114049
Telah disetujui oleh:
Pembimbing:
Ir. Tjendro M.Kom. Tanggal _______________
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 4
iv
iv
LEMBAR PENGESAHAN
TUGAS AKHIR
KUNCI PINTU PINTAR BERBASIS RFID DAN BIOMETRIK
DENGAN SISTEM PENGAMANAN KAMERA
(BIOMETRIC AND RFID BASED SMART LOCK WITH
CAMERA AS SECURITY SYSTEM)
disusun oleh:
BENEDICTUS SURYA ARTHA MARHAENDRA
NIM: 145114049
Telah dipertahankan didepan tim penguji
pada tanggal …………..
dan dinyatakan memenuhi syarat
Susunan tim penguji:
Nama Lengkap Tanda Tangan
Ketua : Djoko Untoro Suwarno, S.Si.,M.T. …………………….
Sekretaris : Ir. Tjendro, M.Kom …………………….
Anggota : Petrus Setyo Prabowo, S.T.,M.T. …………………….
Yogyakarta, …………………….
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
Sudi Mungkasi, S.Si., M.Math. Sc, Ph.D
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 5
v
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang berjudul “KUNCI
PINTU PINTAR BERBASIS RFID DAN BIOMETRIK DENGAN
SISTEM PENGAMANAN KAMERA” tidak memuat karya atau bagian karya
orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana
layaknya karya ilmiah.
Yogyakarta, 5 Oktober 2018
Benedictus Surya Artha Marhaendra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 6
vi
vi
LEMBAR PERSEMBAHAN DAN MOTTO HIDUP
“Success is not final, failure is not fatal;
it is the courage to continue that counts.”
Winston Churchill
Skripsi ini kupersembahkan kepada:
Tuhan Yang Maha Esa
Bapak, Ibu tercinta dan keluarga terkasih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 7
vii
vii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI
KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : BENEDICTUS SURYA ARTHA MARHAENDRA
Nomor Mahasiswa : 145114049
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
KUNCI PINTU PINTAR BERBASIS RFID DAN BIOMETRIK
DENGAN SISTEM PENGAMANAN KAMERA
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas,
dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa
perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap
mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Yogyakarta, 16 Oktober 2018
(Benedictus Surya Artha Marhaendra)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 8
viii
viii
INTISARI
Keamanan rumah mulai bergeser dengan menggunakan teknologi. Penelitian ini akan
membuat sistem untuk mengganti kunci pintu mekanik dengan RFID dan sidik jari, serta
memberikan sistem keamanan dengan menggunakan kamera.
Kunci pintu akan digantikan dengan kartu RFID dan sidik jari yang bekerja secara
bersama. Kartu RFID dan sidik jari akan dibaca oleh Arduino Mega dan kemudian
dikirimkan ke komputer untuk dapat dicocokkan dengan database. Komputer akan
menentukan pintu dibukakan atau tidak, komputer juga akan merekam aktivitas dibelakang
pintu. Bahasa pemrograman yang digunakan pada komputer adalah Python. Data-data yang
terkait pengaktifasian sistem akan dikirimkan ke webserver untuk dapat diakses dimana saja.
Penelitian ini akan melihat seberapa kesuksesan sistem dalam menangani situasi.
Penelitian ini menghasilkan sebuah sistem kunci pintu dan keamanan yang memiliki
keberhasilan 100%. Sistem dapat menggunakan database dengan baik dan mengakses
webserver, namun tidak dapat menampilkan video secara langsung.
Kata Kunci: RFID, sidik jari, kunci pintu, keamanan, Python
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 9
ix
ix
ABSTRACT
Home security is starting to shift using technology. This research will create a system
to replace mechanical door locks with RFID and fingerprints, and provide a security system
using a camera.
The door lock will be replaced with an RFID card and fingerprint that works together.
RFID cards and fingerprints will be read by Arduino Mega and then sent to the computer to
be matched with the database. The computer will determine whether the door is opened or
not, the computer will also record the activity behind the door. The programming language
used on computers is Python. Data related to system activation will be sent to the web server
to be accessed anywhere. This research will see how successful the system is in handling the
situation.
This research resulted in a door lock and security system that had 100% success. The
system can use the database properly and access the web server, but cannot display the video
directly.
Keywords: RFID, fingerprint, door lock, security, Python
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 10
x
x
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Kuasa atas segala berkat dan rahmat-Nya,
sehingga tugas akhir ini dapat diselesaikan dengan baik. Berbagai pihak telah memberikan
doa, dukungan, semangat dan bantuan sehingga tugas akhir dapat tersusun sesuai dengan
ketentuan yang ada. Oleh karena itu, penulis mengucapkan terima kasih sebesar-besarnya
kepada:
1. Bapak dan Ibu penulis, Bapak Ignatius Sumaryanto dan Ibu Antonita Suharyati, yang
telah memberikan dukungan sepenuhnya dalam bentuk doa, moral dan material
2. Bapak Petrus Setyo Prabowo, S.T., M.T. selaku Kepala Prodi Teknik Elektro
Universitas Sanata Dharma
3. Bapak Ir. Tjendro, M.Kom. yang telah membimbing dengan sabar, pengertian dan
ketulusan hati dalam memberikan saran, kritik, serta motivasi
4. Teman-teman seperjuangan, khususnya kepada Vincentius, Celvien Kurniawan, dan
Emanuel Febriano yang didalam proses penulisan memberikan bantuan, candaan,
dan rasa kebersamaan dalam menhadapi tantanggan
5. Bapak/Ibu dosen yang telah mengajarkan banyak hal selama penulis menempuh
pendidikan di Program Studi Teknik Elektro, Fakultas Sains dan Teknologi
Universitas Sanata Dharma.
6. Serta semua pihak yang tidak dapat disebutkan satu-persatu atas dukungan dan
memperlancar penulisan Tugas Akhir ini
Penulisan tugas akhir ini tentunya jauh dari sempurna, sehingga penulis menerima berbagai
keritik dan saran dengan harapan mampu menjadikan penulis menjadi lebih baik lagi.
Semoga tugas akhir ini dapat diterima dengan baik oleh semua pihak dan dapat digunakan
guna meningkatkan kesejahteraan masyarakat.
Yogyakarta, 16 Oktober 2018
Penulis.
(Benedictus Surya Artha Marhaendra)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 11
xi
xi
DAFTAR ISI
Halaman Sampul (Bahasa Indonesia) ..................................................................................... i
Halaman Sampul (Bahasa Inggris) ........................................................................................ ii
LEMBAR PERSETUJUAN ................................................................................................. iii
HALAMAN PENGESAHAN .............................................................................................. iv
PERNYATAAN KEASLIAN KARYA ................................................................................ v
LEMBAR PERSEMBAHAN DAN MOTTO HIDUP ......................................................... vi
LEMBAR 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
DAFTAR PERSAMAAN ................................................................................................. xvii
DAFTAR LAMPIRAN .................................................................................................... xviii
BAB I. PENDAHULUAN .................................................................................................... 1
1.1. Latar Belakang ............................................................................................................ 1
1.2. Tujuan dan Manfaat .................................................................................................... 2
1.3. Batasan Masalah ......................................................................................................... 2
1.4. Metodologi Penelitian ................................................................................................ 3
BAB II. DASAR TEORI ....................................................................................................... 4
2.1. Sistem Keamanan Terintegerasi ................................................................................. 4
2.2. Radio-Frequency Identification .................................................................................. 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 12
xii
2.3. Biometri ...................................................................................................................... 6
2.4. Piranti keras ................................................................................................................ 6
2.4.1. Komputer ............................................................................................................. 6
2.4.2. Kamera................................................................................................................. 7
2.4.3. Modul MF-RC522 ............................................................................................... 7
2.4.4. Pembaca Sidik Jari .............................................................................................. 8
2.4.5. Mikrokontroller Arduino Mega ........................................................................... 9
2.4.6. Kunci Elektrik ................................................................................................... 11
2.4.7. Limit Switch ...................................................................................................... 12
2.4.8. LED ................................................................................................................... 13
2.4.9. Buzzer ................................................................................................................ 13
2.5. Piranti Lunak ............................................................................................................ 14
2.5.1. Python ................................................................................................................ 14
2.5.2. Database ............................................................................................................ 16
2.5.3. Kivy ................................................................................................................... 16
2.5.4. Arduino IDE ...................................................................................................... 16
BAB III. RANCANGAN PENELITIAN ............................................................................ 17
3.1. Proses Kerja Sistem .................................................................................................. 17
3.2. Perancangan Perangkat Keras .................................................................................. 18
3.2.1. Letak Pemasangan Sistem ................................................................................. 18
3.2.2. Sistem Kunci Pintu ............................................................................................ 19
3.2.3. Sistem Kamera ................................................................................................... 23
3.3. Perangkat Lunak ....................................................................................................... 23
3.3.1. Proses Kunci Pintu ............................................................................................ 24
3.3.2. Proses Kamera ................................................................................................... 26
3.3.3. Proses Pengiriman Data ..................................................................................... 26
3.3.4. Database ............................................................................................................ 27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 13
xiii
3.4. Antarmuka ................................................................................................................ 28
BAB IV. HASIL DAN PEMBAHASAN ............................................................................ 30
4.1. Perubahan Perancangan ............................................................................................ 30
4.1.1. Perubahan Driver Kunci .................................................................................... 30
4.1.2. Perubahan Alur Database .................................................................................. 30
4.1.3. Perubahan Bahasa Pemrograman untuk Antarmuka ......................................... 31
4.1.4. Penambahan Protokol Komunikasi ................................................................... 31
4.2. Implementasi ............................................................................................................. 32
4.3. Hasil Pengujian Subsistem ....................................................................................... 35
4.3.1. Pengujian RFID Reader ..................................................................................... 35
4.3.2. Pengujian Sensor Sidik Jari ............................................................................... 37
4.3.3. Pengujian Kunci Solenoid ................................................................................. 38
4.3.4. Pengujian Algorithma Sistem Kunci Pintu ........................................................ 39
4.3.5. Pengujian Sistem Kamera .................................................................................. 41
4.3.6. Proses Pengiriman Data ..................................................................................... 42
4.4. Pembahasan Perangkat Lunak .................................................................................. 43
4.4.1. Program Database .............................................................................................. 43
4.4.2. User Interface .................................................................................................... 45
BAB V. KESIMPULAN DAN SARAN ............................................................................. 47
5.1. Kesimpulan ............................................................................................................... 47
5.2. Saran ……………………………………………………………………………….47
Daftar Pustaka ..................................................................................................................... 48
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 14
xiv
xiv
DAFTAR GAMBAR
Gambar 1.1. Blok diagram rancangan ................................................................................... 3
Gambar 2.1. Cara kerja RFID [7] .......................................................................................... 5
Gambar 2.2. Modul MF-RC522 (tengah) dan tag RFID berbentuk kartu (kiri) dan
gantungan kunci (kanan) ....................................................................................................... 8
Gambar 2.3. Diagram pin dari modul MF-RC522 ................................................................ 8
Gambar 2.4. Biovo C3 fingerprint sensor ............................................................................. 8
Gambar 2.5. Diagram konfigurasi pin pada Biovo C3 .......................................................... 9
Gambar 2.6. Arduino Mega 2560 ........................................................................................ 10
Gambar 2.7. Contoh kunci elektrik ..................................................................................... 11
Gambar 2.8. Rangkaian dasar kunci elektrik solenoid ........................................................ 11
Gambar 2.9. Rangkaian driver ............................................................................................ 12
Gambar 2.10. Rangkaian switch .......................................................................................... 12
Gambar 2.11. LED .............................................................................................................. 13
Gambar 2.12. Rangkaian LED ............................................................................................ 13
Gambar 2.13. Buzzer piezoelectric...................................................................................... 14
Gambar 2.14. Rangkaian buzzer .......................................................................................... 14
Gambar 3.1. Diagram blok utama ....................................................................................... 17
Gambar 3.2. Tata letak kamera dan sistem kunci ................................................................ 18
Gambar 3.3. Hubungan komputer dengan Arduino Mega .................................................. 19
Gambar 3.4. Hubungan pin Arduino Mega dengan modul MF-RC522 .............................. 19
Gambar 3.5. Hubungan pin Arduino Mega dengan modul Biovo C3 ................................. 20
Gambar 3.6. Kunci pada rangkaian driver ........................................................................... 21
Gambar 3.7. Hubungan limit switch dengan arduino .......................................................... 21
Gambar 3.8. Rangkaian LED merah dan hijau .................................................................... 22
Gambar 3.9. Rangkaian buzzer............................................................................................ 22
Gambar 3.10. Sambungan kamera dengan komputer .......................................................... 23
Gambar 3.11. Alur keseluruhan sistem ............................................................................... 23
Gambar 3.12. Alur program untuk kunci pintu ................................................................... 25
Gambar 3.13. Alur proses kamera ....................................................................................... 26
Gambar 3.14. Alur proses pengiriman data ......................................................................... 27
Gambar 3.15. Alur program penambahan entry pada database .......................................... 27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 15
xv
Gambar 3.16. Antarmuka untuk login page ........................................................................ 29
Gambar 3.17. Menu utama .................................................................................................. 29
Gambar 3.18. Menu utama dengan peringatan .................................................................... 29
Gambar 4. 1. IRF 520 Mosfet driver module ...................................................................... 30
Gambar 4. 2. Alur pemasukkan entry database ................................................................... 31
Gambar 4. 3. Tampilan depan kotak hitam ......................................................................... 33
Gambar 4. 4. Bagian dalam dari kotak hitam ...................................................................... 33
Gambar 4. 5. Tampilan kotak hitam relatif terhadap daun pintu ......................................... 34
Gambar 4. 6. Tampilan bagian dalam pengunci solenoid ................................................... 34
Gambar 4. 7. Tampilan pengunci solenoid relatif pada bagian belakang daun pintu.......... 35
Gambar 4. 8. Blok program pembaca RFID pada Arduino ................................................. 36
Gambar 4. 9. Blok program pencocokan UID dengan database pada Python .................... 36
Gambar 4. 10. Blok program untuk membaca sidik jari dan mendapatkan ID sidik jari .... 37
Gambar 4. 11. Blok program untuk mencocokan ID sidik jari dengan database ................ 37
Gambar 4. 12. Gambar jari Nuel (dua kiri) dan Artha (dua kanan) .................................... 38
Gambar 4. 13. Salah satu video yang merekam saat gerendel tersangkut ........................... 39
Gambar 4. 14. Algorithma rutin .......................................................................................... 41
Gambar 4. 15. Program untuk merekam menggunakan kamera ......................................... 42
Gambar 4. 16. Pengirim log ................................................................................................ 43
Gambar 4. 17. Pengirim video ............................................................................................. 43
Gambar 4. 18. Fungsi-fungsi pada program database ......................................................... 44
Gambar 4. 19. Listing program untuk menambah pengguna baru ...................................... 45
Gambar 4. 20. Tampilan user interface pada browser ........................................................ 45
Gambar 4. 21. Laman “Logs” .............................................................................................. 46
Gambar 4. 22. Laman “Videos” .......................................................................................... 46
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 16
xvi
xvi
DAFTAR TABEL
Tabel 2.1. Spesifikasi C3 [12] ............................................................................................... 9
Tabel 2.2. Konfigurasi pin C3 ............................................................................................... 9
Tabel 2.3. Tabel spesifikasi Arduino Mega 2560 ................................................................ 10
Tabel 4. 1 Tabel header dan data yang diterima program main() Python ........................... 32
Tabel 4. 2 Tabel header dan data yang diterima program Arduino .................................... 32
Tabel 4. 3. Tabel keberhasilan membaca kartu RFID ......................................................... 36
Tabel 4. 4 Tabel tingkat keberhasilan men-scan sidik jari .................................................. 38
Tabel 4. 5. Kegagalan identifikasi RFID ............................................................................. 39
Tabel 4. 6. Kegagalan pengidentifikasian sidik jari ............................................................ 39
Tabel 4. 7. Tabel ketidakcocokan RFID dengan sidik jari .................................................. 40
Tabel 4. 8. Tabel tingkat keberhasilan algorithma rutin untuk membuka pintu .................. 40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 17
xvii
xvii
DAFTAR PERSAMAAN
Persamaan 2.1 ………………………………………………………………………… 12
Persamaan 2.2 ………………………………………………………………………… 12
Persamaan 2.3 ………………………………………………………………………… 13
Persamaan 2.4 ………………………………………………………………………… 13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 18
xviii
xviii
DAFTAR LAMPIRAN
Cara penggunaan ……………………………………………………………………. L1
Gambar Rangkaian Keseluruhan………………..…………………………………… L2
Listing Program Utama………………………………………………………………. L3
Listing Program Sistem Kamera ……………………………………………………. L6
Listing Program Database …………………………………………………………… L7
Listing Program Fail Checker ……………………………………………………….. L8
Listing Program FTPuploader ……………………………………………………….. L10
Listing Program Log …………………………………………………………………. L11
Listing Program Log Database ………………………………………………………. L12
Listing Program penambahan Entry ………………………………………………… L13
Listing Program Arduino …………………………………………………………….. L15
Listing Program User Interface ………………………………………………………. L22
Data Percobaan ………………………………………………………………………. L24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 19
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Rumah memang dibangun untuk memberikan tempat berteduh dikala hujan atau
panas, berkumpul dengan keluarga, dan tumbuh dengan keluarga. Tidak ubahnya, seorang
pemilik rumah ingin memberikan kenyaman bagi keluarganya, dan juga keluarga ingin
memiliki rumah yang bukan hanya nyaman, namun juga aman. Penduduk Indonesia
terutama mereka yang tinggal di kota besar, merasa tidak nyaman dengan keamanan tempat
tinggal mereka. Pagar dibangun lebih tinggi dari atap, dilengkapi dengan kawat berduri,
gerbang dengan teralis besi, dan bagi yang mampu memasang CCTV dan membayar
pegawai keamanan (satpam) untuk mejaga rumah selama 24 jam sehari [1]. Kebanyakan
rumah di Indonesia juga masih menggunakan kunci pintu mekanik, yang dapat dengan
mudah di-copy oleh tukang kunci.
Di negara maju sudah banyak bermunculan penyedia sistem keamanan yang dapat
dipasang sendiri, dan dapat diakses dengan devais mobile pada umumnya, menjamin
keamanan dan kemudahan penggunanya [2] [3]. Dengan mengabungkan keinginan dari
keluarga dan sistem IoT, keamanan yang terpadu mulai tumbuh menjadi salah satu kemajuan
teknologi sekarang. Namun, penyedia keamanan yang sangat terpadu belum hadir di
Indonesia.
Penelitian mengenai keamanan sudah pernah diulas di kalangan Universitas Sanata
Dharma yang dilakukan oleh Kristiawan Putranto dengan judul "Sistem Monitoring
Keamanan dengan Menggunakan WebCam dengan Antarmuka SmartPhone Android” [4].
Penelitian yang menggunakan RFID dan Biometrik sudah pernah diulas pada penelitian dari
Nana Natalianto dengan judul “Sistem Presensi Perkuliahan Menggunakan RFID” [5].
Sistem kunci pintu pintar berbasis RFID dan biometrik dengan sistem keamanan
kamera akan memberikan keamanan kepada pemilik rumah dengan sistem yang
menggabungkan dan mengotomasi antara kunci pintu dengan sistem keamanan. Kunci pintu
dengan RFID dan biometri akan memberikan validasi untuk membukakan kunci elektrik
yang terpasang pada pintu. Jika keamanan terancam, sistem dapat mengirimkan log dari
sistem dan mengirimkan video dari kamera di dalam rumah, mengenai kondisi di dalam
rumah dan merekam orang yang masuk rumah sehingga diketahui oleh pemilik rumah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 20
2
1.2. Tujuan dan Manfaat
Tujuan dari penelitian ini adalah untuk membuat sistem yang dapat menilai keabsahan
orang untuk mengakses kunci pintu rumah, dan dapat memberikan peringatan dan informasi
ketika sistem keamanan terganggu.
Manfaat utama dari penilitian ini adalah untuk memberikan solusi untuk sistem
keamanan pada pemilik rumah yang ingin memiliki teknologi keamanan yang terpadu.
Memberikan kemudahan dan kenyamanan dalam membuka pintu, tidak lagi perlu membawa
kunci yang berat dan dapat hilang, RFID card lebih mudah diselipkan di dompet atau
kantong, dan sidik jari tidak akan pernah terlupakan, hal ini memberikan rasa aman
tambahan bagi pemilik rumah.
1.3. Batasan Masalah
Alat ini merupakan sebuah sistem keamanan menggunakan RFID card dan pembaca
sidik jari sebagai kunci, dan kamera sebagai pemantau kondisi didalam rumah beserta
merekam orang saja yang masuk. Batasan masalah secara menyeluruh pada penelitian ini
adalah sebagai berikut:
1. Menggunakan kamera di dalam
2. Fasilitas untuk 4 user
3. Menggunakan RFID tag dan reader
4. Menggunakan biometrik fingerprint
5. Mikrokontroler Ardunio
6. Kunci elektronik
7. Komputer untuk pengolah video
8. Data yang diolah dan dikirim adalah log history dan video
9. Komunikasi Wifi
10. Memanfaatkan website
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 21
3
1.4. Metodologi Penelitian
Dalam tugas akhir ini akan digunakan metode-metode penulisan sebagai berikut:
1. Studi literatur, metode yang digunakan untuk mengumpulkan tulisan, jurnal yang
telah ada mengenai hal-hal yang berkaitan dengan tugas akhir ini.
2. Perancangan, adalah metode untuk merancang sistem yang akan dipakai, baik
merancang perangkat lunak dan/atau perangkat keras yang akan dipakai dan dibuat.
Gambar 1.1. Blok diagram rancangan
3. Pengambilan data, mengambil data dengan mencoba sistem berkali kali dengan
kondisi yang berbeda. Pengambilan data meliputi, data pada kondisi normal, data
pada kondisi sistem terancam dalam beberapa kali pengambilan
4. Pengolahan data, mengolah data yang telah diambil dan menentukan tingkat
keberhasilan sistem. Data akan diolah menjadi presentase dimana sistem keamanan
memberikan hasil positif secara tepat, biometrik dapat membaca sidik jari, RFID
dapat membaca tag yang ada, komunikasi komputer dengan kontroller, dan komputer
dengan internet.
5. Analisa data dan kesimpulan, adalah menyimpulkan hasil dari data yang telah diolah.
Analisa kesimpulan meliputi seberapa sistem secara keseluruhan dapat bejalan sesuai
keinginan atau tidak.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 22
4
BAB II
DASAR TEORI
Sebagai pijakan dari penelitian ini, dasar teori akan digunakan dalam merancang
sistem lebih lanjut. Beberapa yang akan dibahas adalah apa sistem keamanan terintegrasi,
dasar Radio-Frequenciey Identification, biometri, beserta beberapa penjelasan singkat
mengenai perangkat keras dan perangkat lunak yang akan digunakan.
2.1. Sistem Keamanan Terintegerasi
Memiliki banyak pengamanan seperti kamera CCTV, kunci elektronik, sensor
inframerah, sensor gerak, sensor asap, dan mungkin ditambah dengan pegawai keamanan,
akan memberikan pemilik rumah rasa aman yang diinginkannya. Terutama mencegah
terhadap hal-hal yang tidak diinginkan. Namun, ada kerepotan untuk menangani semua
pengamanan diatas, seperti harus menghidupkan dan mematikan keamanannya satu per satu,
jika ingin memasukki rumah, rekaman CCTV harus diawasi dan dilihat oleh pegawai
keamanan (satpam) dan dapat mengelembungkan biaya perawatan/penggunaan. Beberapa
pengaman seperti sensor gerak dan sensor inframerah, dan kunci elektronik, sudah menjadi
satu kesatuan tersendiri, menjadikannya sistem yang terintegerasi satu dengan yang lainnya
memudahkan pengoprasian dan penanganannya.
Menggabungkan banyak peralatan keamanan, dan menjadikannya satu kesatuan yang
bekerja secara bersama, saling bekomunikasi satu sama lain adalah inti dari sistem keamanan
terintegerasi. Membuat sebuah sistem yang utuh dengan menggabungkan peralatan-
peralatan elektronis tanpa memberikan kemampuan memberikan keputusan yang utuh
adalah sama dengan mobil tanpa pengemudi. Sistem yang baik tidak hanya banyak yang
berintegerasi dengannya namun juga memiliki kemampuan ‘berpikir’ yang memadahi,
kemampuan ini berbanding lurus dengan banyaknya peralatan elektronis yang terintegerasi.
Maka dari itu, pembuatan program keamanan yang memadahi sama pentingnya dengan
hanya merancang peralatan elektronis yang ada.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 23
5
2.2. Radio-Frequency Identification
Radio-Frequency Identification (RFID) menggunakan gelombang radio untuk
membaca informasi yang disimpan pada tag. Tag ini dapat dibaca sampai pada jarak
beberapa meter, dan tidak harus pada jarak pandang pembaca [6]. RFID dapat memberikan
integritas yang cukup tinggi walau bekerja dalam kondisi yang ekstream [5].
Gambar 2.1. Cara kerja RFID [7]
Sistem RFID terbuat dari dua bagian, tag atau penanda dan reader atau pembaca.
RFID tag terdiri dari dua komponen, antena dan microchip. Antena sebagai penerima dan
pengirim sinyal, dan microchip sebagai pengolah informasi dan penyimpan kode unik. Tag
dapat bekerja secara aktif dengan menggunakan sumber tenaga sendiri atau, yang banyak
dipakai, pasif tanpa sumber daya sendiri dan harus menyadap daya dari reader-nya. Tag
pasif menggunakan prinsip induksi untuk mendapatkan daya dari reader-nya. Ketika ada
medan magnet yang melewati gulungan kabel tembaga (antena), arus akan muncul pada
antena. Arus ini yang kemudian akan memberi daya pada microchip, dan kemudian
microchip akan memberikan informasi untuk dipancarkan oleh antena ke reader. Konstruksi
ini memungkinkan tag menjadi sangat kecil efisien dan ringan daripada tag aktif yang perlu
menggunakan baterai. Kontruksi tag pasif dapat diselipkan pada selembar kartu [8].
RFID reader atau interogator, memberikan perintah kepada tag untuk mengirimkan
kode unik kembali kepada reader. Untuk tag pasif, antena pada reader juga memberikan
medan magnet yang cukup agar dapat mengaktifkan tag. Gambar 2.1 menunjukkan
gambaran kerja RFID reader dengan tag.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 24
6
2.3. Biometri
Ilmu biometri merupakan pengenalan diri dengan menggunakan ciri biologis manusia.
Sidik jari dan retina mata merupakan contoh dari biometri. Seperti arti kata biometric yang
berasal dari kata bio yang berarti hidup dan metric yang bererti mengukur, biometric
mengukur ciri biologis seorang sebagai identitas orang tersebut [9].
Biometri memiliki kelebihannya sendiri pada perkembangan teknologi masa kini.
Dengan tuntutan untuk memberikan pengenal atau kunci supaya dapat mengakses rumah,
email, dan tidak dibatasi untuk ATM, tuntutan untuk dapat membuat kunci atau password
yang bisa diingat, unik dan panjang, menjadikan pengguna teknologi sekarang kuwalahan
untuk membuat password yang berbeda untuk hal tertentu dan menghafalkannya. Disinilah
biometri datang memudahkan semuanya. Tubuh manusia pada dasarnya adalah unik dan
setiap orang berbeda dari yang lain, termasuk kembar identik. Genetik yang menyebabkan
perbedaan diatas, genetik pula yang membuat pola dan ciri yang digunakan biometri sebagai
identitas orang tersebut.
Kemungkinan untuk dua atau lebih orang memiliki satu atau lebih ciri biometri yang
sama persis adalah sangat kecil secara astronimi. Menggantikan kunci atau acces code
dengan sidik jari atau retina, memberikan kemudahan untuk tidak membawa-bawa kunci
atau menghafalkan tujuh belas digit alphanumerical password, dan tidak dapat dengan
mudah ditiru.
2.4. Piranti keras
Piranti keras (Hardware) adalah bentuk fisik dari sistem itu sendiri. Piranti keras disini
diartikan peralatan elektronis yang akan digunakan dalam sistem kunci pintu pintar berbasis
RFID dan biometri dengan pengamanan kamera. Selain penggunaan RFID reader dan tag,
pembaca biometri sidik jari, dan kamera, piranti keras yang lain akan meliputi
mikrokontroler dan sebuah komputer sebagai pendukung, pelengkap dan otak dari sistem
tersebut. Dalam subbab ini akan dibahas piranti keras yang kiranya akan digunakan.
2.4.1. Komputer
Sejak munculnya precursor komputer modern pada era perang dunia kedua, komputer
telah mengalami evolusi selama tujuh abad terakhir dan menjadi bagian integral dalam hidup
manusia. Komputer yang sekarang lebih pintar dari penciptanya akan menjadi bagian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 25
7
integral dalam sistem kemanan dalam tulisan ini. Komputer akan bertanggung jawab atas
pengolahan video dari kamera, pengambilan keputusan melalui alghorithma keamanan yang
ada, dan komunikasi dengan internet.
2.4.2. Kamera
Pengertian kamera secara tradisional adalah sebuah alat yang bekerja dengan
mengontrol banyaknya cahaya yang akan mengenai permukaan yang sensitif terhadap
cahaya, baik film atau sensor cahaya. Kamera digunakan untuk mengambil gambar dan
menyimpannya dalam bentuk film, atau data digital [10]. Dalam perkembangannya, kamera
tidak hanya mengabadikan gambar statis, namun juga gambar bergerak, atau video. Iterasi
berikut dari kamera yang digunakan untuk merekam video, contohnya seperti, StreetCam
untuk memantau jalan, TraficCam untuk memantau kepadatan jalan, WeatherCam untuk
mantau cuaca dan WebCam yang biasanya digunakan untuk pangilan dengan video melalui
internet [4].
WebCam adalah pilihan yang tepat untuk penelitian dengan kemampuan yang
memadahi, variasi yang banyak sebab kegunaannya yang sekarang sudah menjamur, dan
ditawarkan dengan harga yang pantas. Keunggulan lainnya yaitu WebCam tidak perlu
menggunakan perangkat perantara, seperti kaset penyimpanan, atau perlu menggunakan
adapter AC ke DC sendiri, dengan banyaknya model yang ada, ada model dengan kapabilitas
plug and play dan dapat dihubungkan langsung dengan komputer melalui port USB.
2.4.3. Modul MF-RC522
Modul MF-RC522 adalah modul RFID reader untuk Arduino. Dibuat khusus untuk
berkomunikasi menggunakan protokol ISO/IEC 14443 A/MIFARE, karena protokol ini
hanya dapat menangani pembacaan dan penulisan untuk tag-tag RFID buatan MIFARE,
modul ini kurang cocok untuk penggunaan kartu buatan produsen lain. Namun dalam
penggunaan pada sistem ini sudah akan cukup hanya dengan menggunakan kartu dari
MIFARE.
MF-RC522 seperti terlihat pada gambar 2.2, memiliki tiga interface yang dapat
digunakan untuk berkomunikasi dengan mikrokontrollernya. Ketiganya adalah SPI, serial
UART dan I2C bus. Reader berkomunikasi dengan tag pada frekuensi 13,56 MHz . Diagram
pin dari modul MF-RC522 terlihat pada gambar 2.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 26
8
Gambar 2.2. Modul MF-RC522 (tengah) dan tag RFID berbentuk kartu (kiri) dan
gantungan kunci (kanan)
Gambar 2.3. Diagram pin dari modul MF-RC522
2.4.4. Pembaca Sidik Jari
Biovo C3 dikembangkan oleh Chengdu Science and Technology Co., Ltd. Sebagai
modul pembaca sidik jari pada perangkat elektronik. Bentuk fisik dari C3 seperti pada
gambar 2.4 dibawah. Adapun spesifikasi dari pembaca sidik jari ini seperti yang tertera pada
tabel 2.1.
Gambar 2.4. Biovo C3 fingerprint sensor
Proses kerja pembaca sidik jari ini terbagi menjadi dua, proses pencatatan sidik jari
dan pencarian sidik jari. Proses pencatatan membutuhkan sidik jari dibaca dua kali untuk
selanjutnya diproses dan kemudian di simpan ke dalam modul. Proses pencarian hanya
membutuhkan sekali baca dan kemudian modul akan mencocokkan sidik jari dengan sidik
jari yang ada pada template yang sudah dicatat pada modul. Modul akan memberikan hasil
pencarian, baik ada kecocokan atau tidak ada kecocokan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 27
9
Tabel 2.1. Spesifikasi C3 [12]
File Signature 256 bytes
File Template 512 bytes
Tegangan masukan 5 V DC
Arus masukan:
Arus kerja 120 mA
Batas arus 130 mA
Waktu citra sidik jari <0,5 detik
Ukuran jendela pembaca 81,5mm x 14,6mm
Rasio kesalahan penerimaan <0,001%
Rasio kesalahan penolakan <1%
Resolusi 500dpi
Baud rate 9600xN bps ;dengan N = 1 ~ 6
Modul sidik jari C3 memiliki enam kabel yang terhubung, setiap kabel tersebut
terhubung pada pin dengan deskripsi konfigurasi yang tertera pada tabel tabel 2.2, dengan
urutan nomor pin dilihat dari kiri ke kanan sesuai pada diagram pada gambar 2.5.
Tabel 2.2. Konfigurasi pin C3
Nomor
pin
Deskripsi Catatan
1 Power suplai pendeteksi jari 3,6 ~ 5V
2 Signal pendeteksi jari Output standar adalah aktif tinggi
3 Suplai tegangan positif 5 V
4 Pengirim Tx
5 Penerima Rx
6 Power suplai negatif Ground
Gambar 2.5. Diagram konfigurasi pin pada Biovo C3
2.4.5. Mikrokontroller Arduino Mega
Arduino adalah platform elektronik yang mudah digunakan baik dari segi perangkat
keras dan perangkat lunak. Arduino dikembangkan di Ivrea Interaction Design Institute
sebagai alat yang cepat dalam membuat prototipe, dan ditujukan untuk pelajar tanpa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 28
10
latarbelakang elektronik dan pemrograman. Arduino memiliki banyak varian, salah satunya
adalah Arduino Mega [13].
Arduino Mega 2560 menggunakan mikrokontroller berbasis ATmega2560. Memiliki
54 pin digital untuk input/output dimana 15 diantaranya dapat digunakan sebagai output
PWM, 16 input analog, 4 UART (port serial perangkat), dilengkapi dengan osilator kristal
dengan frekuensi 16MHz, sebuah koneksi menggunakan USB, jack untuk power, sebuah
ISCP header, dan sebuah tombol reset. Sistem minimun untuk menopang mikrokontroller
sudah lengkap, hanya perlu menghubungkannya ke komputer dengan USB atau,
menggunakan sumber tenaga dari baterai atau adapter AC ke DC. [14]
Gambar 2.6. Arduino Mega 2560
Mikrokontroller Arduino Mega 2560 terlihat seperti gambar 2.6 diatas, memiliki
spesifikasi seperti pada yang tertera pada tabel 2.3.
Tabel 2.3. Tabel spesifikasi Arduino Mega 2560
Mikrokontroler ATmega 2560
Tegangan kerja 5 V
Tegangan masukan (optimal) 7-12 V
Tegangan masukan (batasan) 6-20 V
Jumlah pin digital 54 (15 diantaranya dapat menyediakan output PWM)
Jumlah pin masukan analog 16
Arus DC setiap pin 20 mA
Arus DC untuk pin 3,3V 50 mA
Memori flash 256 KB (3 KB digunakan oleh bootloader)
SRAM 8 KB
EEPROM 4 KB
Kecepatan clock 16 MHz
Arduino Mega lebih dipilih dari pada variasi terdekatnya Uno karena jumlah pin digital
dari Mega yang jauh lebih banyak, sebab pin-pin ini yang akan banyak digunakan untuk
menghubungkan peralatan elektronis lain. Pin-pin pada Arduino Mega 2560 juga dapat
menyediakan output serial, PWM, SPI dan TWI.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 29
11
2.4.6. Kunci Elektrik
Kunci elektrik seperti pada gambar 2.7 adalah sistem kunci yang memanfaatkan gaya
listrik sebagai tenaga penggerak, menggantikan tenaga mekanik pada sistem kunci
konvesional. Gaya listrik yang dimaksud adalah gaya Lorentz yang terjadi pada solenoid.
gambar 2.8 menunjukkan komponen dasar solenoid pada kunci elektrik, terdiri gulungan
kawat, inti besi, dan pegas sebagai penahan. Gaya mekanik yang terjadi digunakan untuk
menarik inti besi kedalam, dan menekan pegas yang ada dibawahnya.
Gambar 2.7. Contoh kunci elektrik
Gambar 2.8. Rangkaian dasar kunci elektrik solenoid
Dipasaran, rata-rata dijual kunci elektrik dengan tegangan masukan 12V, namun juga
ada yang versi 6V dan 24V. Karena tengangan masukan lebih tinggi dari tengangan operasi
dari mikrokontroler pada umumnya, diperlukan penggunaan driver.
Untuk mendapatkan tegangan yang dibutuhkan dan masih dapat dikontrol oleh
mikrokontroller, diperlukan driver yang memiliki sumber tegangan sendiri dan mendapat
masukan dari mikrokontroller. Gambar 2.9. merupakan rangkaian driver sederhana dengan
flyback diode.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 30
12
Gambar 2.9. Rangkaian driver
Jika dari mikrokontroller memiliki nilai voltase sebesar V, nilai dari R (resistor)
ditentukan dengan persamaan:
R = 𝑉−𝑉𝑏𝑒
𝐼𝑏 ……………………………………………………………… 2.1
Nilai dari Ib ditentukan dengan persamaan:
Ib = 𝐼𝑐
𝛽 ……………………………………………………………… 2.2
Dengan: β = HFE dari transistor
Ib = arus pada base
Ic = arus pada collector
2.4.7. Limit Switch
Limit switch adalah saklar yang tertutup untuk melindungi dari benturan, cairan, dan
lain lain. Limit switch digunakan sebagai pembatas atau checkpoint agar alat tidak melewati
batas penggunaanya. Misalnya pada pintu geser, limit switch digunakan pada sisi lain dari
daun pintu supaya jika pintu sudah tertutup, akan mengaktifkan limit switch dan meng-
nonaktifkan motor penggeser daun pintu.
Limit Switch tidak jauh beda dengan switch biasa seperti yang terlihat pada gambar
2.10. Sebuah limit switch terdapat pin Normaly Open yang dalam keadaan sirkuit terbuka,
dan pin Normaly Closed yang pada keadann sirkuit tertutup.
Gambar 2.10. Rangkaian switch
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 31
13
Untuk menghitung nilai resistansi dari rangkaian switch pada gambar 2.10, digunakan
persamaan dibawah:
R = 𝑉𝑐𝑐
𝐼 ………………………………………………………………………… 2.3
2.4.8. LED
LED merupakan singkatan dari Light Emiting Diode. LED merupakan komponen
elektronik yang dapat meancarkan cahaya ketika diberikan tegangan. Seperti namanya, LED
merupakan keluarga dari dioda, warna yang ditimbulkan berdasarkan bahan semikonduktor
yang digunakan [15]. Gambar 2.11 merupakan bentuk dari LED.
Gambar 2.11. LED
Pada pemasangannya, LED tidak dipasang langsung dengan sumber, sebab akan
mengakibatkan kelebihan arus dan LED dapat rusak, diperlukan adanya resistor yang
dipasang sesuai dengan gambar 2.12. Nilai dari resistor yang akan dipasang ditentukan
dengan persamaan:
R = 𝑉𝑠−𝑉𝑓
𝐼 …………………………………………………………… 2.4
Dengan: R = nilai resistansi dalam Ohm
Vs = tegangan sumber dalam Volt
Vf = tengangan kerja LED dalam Volt
I = arus maksimum LED dalam Ampere
Gambar 2.12. Rangkaian LED
2.4.9. Buzzer
Buzzer adalah komponen elektronik yang mengubah listrik menjadi suara. Jenis
buzzer yang banyak di pasaran adalah buzzer piezoelectric, hal ini dikarenakan buzzer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 32
14
piezoelectric mudah untuk dihubungkan dengan komponen elektronik lain, terutama
dihubungkan dengan Arduino [16]. Gambar 2.13 adalah buzzer piezoelectric. Pada
pemasangannya, buzzer menggunakan resistor dan dipasang seperti gambar 2.14.
Gambar 2.13. Buzzer piezoelectric
Gambar 2.14. Rangkaian buzzer
2.5. Piranti Lunak
Otak dari sistem keamanan yang akan dibuat sama pentingnya dengan peralatan
elektronis yang akan diintegerasikan dalam sistem. Program tersebut akan di buat/ketik
menggunakan dan tidak dibatasi oleh piranti lunak yang tertera seperti dibawah. Piranti
lunak yang akan dibahas pada subbab ini akan dapat berupa bahasa pemrograman seperti
Python dan HTML5 atau Intergerated Developer Enviropment (IDE) seperti Arduino IDE.
Python akan digunakan dalam program utama untul algorithma dan pengambilan
keputusan. Arduino Software akan digunakan untuk interaksi pada mikrokontroller Arduino
Mega dan modul-modulnya. Sedangkan HTML5 digunakan murni untuk menampilkan user
interface.
2.5.1. Python
Python adalah bahasa pemrograman yang dikembangkan oleh Guido van Rossum,
programer kelahiran Belanda, pada tahun 1990 di CWI, Amsterdam, sebagai kelanjutan dari
bahasa pemrogramman ABC. Nama Python dipilih oleh Guido karena kecintaannya pada
acara televisi Monty Python’s Flying Circus.[17] Sekarang, Python dikembangkan oleh
sekelompok programmer yang berkoordinasi dengan Guido dan Python Software
Foundation. Versi Python yang biasa digunakan ada dua, versi 2 (2.7) dan versi 3 (3.7).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 33
15
Python adalah bahasa pemrograman berbasis obyek (Object-Orianted Programming).
Pemrogramman berbasis obyek adalah pemrogramman yang mengutamakan penanganan
obyek yang akan dimanipulasi. Contoh obyek yang dimaksud adalah, manusia yang
memiliki nama dan tanggal lahir, sampai gedung dengan nama dan tanggal dibangun.
Bahasa pemrograman Python dapat ditulis dengan banyak aplikasi, termasuk text
editor biasa. Salah satu aplikasi yang memberikan kemudahan dan autentic adalah IDLE.
IDLE dikhususkan untuk menulis Python, sehingga membantu untuk mengecek kesalahan
dalam pengetikan, termasuk memberikan kode warna pada syntax-syntax tertentu.
Dalam pembuatan sistem ini, digunakan modul-modul seperti:
1. Modul “Numpy”
Merupakan modul dasar untuk melakukan perhitungan aritmatik lanjutan dan
penggunaan array.
2. Modul “Serial”
Merupakan modul untuk dapat mengakses port serial dari komputer
3. Modul “Time”
Untuk dapat mengakses waktu pada BIOS
4. Modul “OpenCV”
OpenCV merupakan modul untuk pengolahan citra. Modul ini digunakan
terutama untuk proses perekaman pada kamera. OpenCV memiliki dependensi
dengan modul Numpy.
5. Modul “sqlite3”
Modul ini digunakan untuk pembuatan dan pengolahan database.
6. Modul “ftplib”
File Transfer Protocol digunakan untuk dapat mengakses webserver secara
langsung dan meng-upload file.
7. Modul “datetime”
Modul untuk dapat mengambil tanggal, dan waktu dari system operasi
8. Modul “os”
Modul untuk dapat mengakses dan mengubah folder dan/atau file pada system
operasi Windows
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 34
16
2.5.2. Database
Database digunakan untuk menyimpan data-data yang akan digunakan, seperti nama,
nomor unik RFID, dan signature sidik jari. Selain dapat dibaca, database dapat diisi, dan
diganti dan dihapus. Database dapat dibentuk dengan berbagai program yang dapat
menyimpan, dan memberikan nilai terhadap suatu variabel. Fungsi class dalam python dapat
berfungsi sebagai wadah untuk menyimpan database, namun memiliki kelemahan karena
database hanya dapat dibuka melalui program utamanya. Infleksibilitas ini menyeimbangi
keuntungannya, yaitu, database tidak mudah untuk dibuka dan diganti dengan program lain,
maka memberikan tingkat integritas yang tinggi untuk database yang digunakan permanen.
2.5.3. Kivy
Kivy adalah open souce library untuk python yang digunakan untuk mengembangkan
aplikasi user interface yang inovatif seperti aplikasi pada smartphone Android. Kivy dapat
digunakan pada sistem operasi Linux, Windows™, OS X™, iOS™. Sebuah kode pada Kivy
dapat digunakan dalam mayoritas platform yang ada, atau biasa disebut multi platform [18]
2.5.4. Arduino IDE
Arduino IDE digunakan untuk menulis program yang kemudian akan di upload ke
Arduino. IDE ini tidak terpisahkan untuk penggunaan arduino, karena merupakan satu
kesatuan dalam menggunakan Arduino board. IDE ini dapat digunakan untuk seluruh jenis
board Arduino dan memiliki versi untuk digunakan pada tiga sistem operasi besar, yaitu
Windows™, Mac OS™ dan Linux. Kemampuan dari program ini juga terdapat pada
fleksibilitasnya dalam penggunaan port serial.
Selain kemampuan meng-upload program ke Arduino, juga dapat membaca program
dari Arduino dan memiliki virtual monitor serial yang dapat digunakan untuk
melihat/memantau keluaran dari program pada Arduino.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 35
17
BAB III
RANCANGAN PENELITIAN
Pada bab III akan dibahas rancangan sistem yang akan dibuat secara terperinci. Bab
III akan dibagi dalam tiga bagian utama, yaitu: proses kerja sistem secara menyeluruh,
perancangan perangkat keras dan korelasinya dengan yang lain, dan perancangan perangkat
lunak dan otoritas perangkat kontroler dan komputer.
3.1. Proses Kerja Sistem
Sistem kamera akan berada pada komputer, karena membutuhkan komputasi yang
cepat dan fleksibilitasnya terhadap koneksi ke internet. Identifikasi pada kunci ada dua, yaitu
RFID reader dengan RFID tag dan pembaca sidik jari. Jika RFID reader atau pembaca sidik
jari mendapat masukan, kemudian data sidik jari dan nomor unik RFID akan dikirim ke
komputer untuk dicocokan dengan database yang ada. Jika komputer mengidentifikasi kedua
data masukan valid, komputer akan memberikan perintah ke mikrokontroller untuk
membukakan kunci elektrik dan mencatat log tentang kapan kunci dibuka dan oleh siapa.
Kamera dalam akan merekam beberapa saat untuk memastikan keamanan terjamin.
Gambar 3.1. Diagram blok utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 36
18
Jika pintu dibuka secara paksa (didobrak), limit switch akan memberikan masukan dan
dikirimkan ke komputer. Sehingga kamera dalam akan terus merekam ke arah pintu untuk
mengetahui siapa yang membuka pintu secara paksa.
Diagram secara lengkap dapat dilihat pada gambar 3.1. yang menunjukkan sistem
utama pada rangkaian sistem yang akan dibuat dan relasinya pada setiap perangkat yang ada.
Komputer juga dapat mengirim data lewat internet dan dapat diterima oleh perangkat
internet yang digunakan oleh pengguna. Data yang dikirimkan adalah log yang ada, dan
video dari kamera.
3.2. Perancangan Perangkat Keras
Perancangan perangkat keras adalah cetak biru pemasangan perangkat-perangkat
elektronis pada sistem. Pada subbab ini akan digambarkan perbagian dimana sebuah sensor,
aktuator, kamera, akan terpasang.
3.2.1. Letak Pemasangan Sistem
Kamera diletakkan untuk mencakupi possible point of entry seperti pintu dan jendela.
Diletakkan demikian untuk mencakupi kemungkinan titik masuk dan keluar, kamera akan
memberikan informasi yang lebih banyak. RFID dan biometri akan terpasang di tembok
disamping pintu untuk memberikan sistem yang mudah digunakan dan tidak merusak pintu.
Penggunaan kotak berisi sistem yang ditempel pada dinding lebih mudah dalam modulasi
dan konstruksi.
Gambar 3.2. Tata letak kamera dan sistem kunci
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 37
19
3.2.2. Sistem Kunci Pintu
Arduino akan terhubung dengan komputer pada USB port komputer. Arduino akan
menerima daya dari komputer. gambar 3.3. dibawah menunjukkan sambungan kabel antara
arduino dengan port USB pada komputer.
Gambar 3.3. Hubungan komputer dengan Arduino Mega
Arduino mega menggunakan port tipe B dan komputer menggunakan port standar,
tipe A, dengan kabel male to male. Perbedaan dari tipe A dan tipe B terletak hanya pada
bentuk kepala male dan female, namun masih memiliki wiring yang sama.
Sistem kunci pintu akan meliputi hubungan limit swtich, RFID, biometri dan kunci
elektrik ke Arduino Mega. Karena banyaknya rangkaian yang ada, akan dipisah menjadi
perbagian secara mendetail. Rangkaian lengkap akan dilampirkan pada bagian lampiran.
3.2.2.1. RFID Reader
Konfigurasi pin pada gambar 3.4. untuk pin RQ tidak dihubungkan, karena kebutuhan
interface yang digunakan adalah SPI, maka hanya digunakan pin SDA, SCK, MOSI, MISO
dan Reset. Untuk power akan mengambil dari arduino.
Gambar 3.4. Hubungan pin Arduino Mega dengan modul MF-RC522
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 38
20
Secara default, kemampuan dari Arduino Mega pada komunikasi SPI terdapat pada
pin D50 s.d. D53. Pin reset dihubungkan pada pin arduino yang tidak dipakai yaitu pin D5.
Sebagai catatan tambahan, SPI SS sama dengan pin SDA pada MF-RC522.
3.2.2.2. Pembaca Sidik Jari
Hubungan pin pada gambar 3.5 disesuaikan pada library yang ada pada arduino.
Penggunaan library dari Adafruit hanya membutuhkan Tx dan Rx dari C3, sehingga pin 1
dan 2 tidak dikoneksikan ke Arduino. Power untuk C3 akan mengambil dari arduino.
Gambar 3.5. Hubungan pin Arduino Mega dengan modul Biovo C3
3.2.2.3. Kunci Elektrik dan Driver
Kunci elektrik tidak dapat dihubungkan secara langsung dengan Arduino Mega, sebab
kebutuhan tegangan yang melebihi kapabilitas tegangan dari pin Arduino. Maka dari itu,
digunakan driver dengan sumber sendiri, yang pada kasus ini sumber 12 volt DC, untuk
menjalankan kunci. Terlihat pada gambar 3.6, driver terdiri dari dua buah transistor yang
dirangkai darlington, sebuah resistor, dan sebuah dioda yang dipasang untuk mencegah free
wheeling. Pemilihan nilai resistor berdasarkan arus minimum (Ib) untuk dapat mencapai
saturasi, tanpa membebani transistor lebih lanjut. Ib dihitung dengan persamaan 2.2 dan
persamaan 2.1, dengan arus pada kunci 500mA dan β minimum pada transistor 2N2222
adalah 30 [20] maka:
Ib1 = 𝐼𝑐1
𝛽 =
500
30 = 16,667 mA
Ib2 = 𝐼𝑏1
𝛽 =
16,667
30 = 0,556 mA
R2 = 𝑉𝐷12− 𝑉𝑏𝑒1− 𝑉𝑏𝑒2
𝐼𝑏2 =
5− 2,6 − 0,7
0,556 = 3,057 kΩ
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 39
21
Nilai 3,057 kΩ tidak ada di pasaran, maka untuk tetap mendapatkan nilai saturasi,
dipilih nilai pasaran paling dekat dengan nilai yang lebih kecil, yaitu 3 kΩ.
Gambar 3.6. Kunci pada rangkaian driver
3.2.2.4. Limit Switch
Pada pemasangannya, limit switch hanya menggunakan dua pin, pin NC dan pin COM.
Pin NC digunakan karena masukan yang akan digunakan adalah masukan inverting, yang
berarti, jika limit switch mendapat tekanan, akan memberikan masukan rendah pada
Arduino. Pin NC dihubungkan pada pin arduino D11 dan COM sendiri akan dihubungkan
ke sumber Vs seperti terlihat pada gambar 3.7. Nilai dari resistor ditentukan dengan
persamaan 2.3. dengan diketahui Vs adalah 5v, dan arus keluaran pin arduino (Is) adalah
20mA seperti pada tabel 2.3., maka:
R1 = 𝑉𝑠
𝐼𝑠 =
5
20 = 250 Ω
Karena nilai tersebut tidak ada di pasaran, diambil nilai pasaran yang paling dekat
diatasnya, yaitu 270 Ω.
Gambar 3.7. Hubungan limit switch dengan arduino
3.2.2.5. LED
LED digunakan sebagai indikator apakah sistem siap atau tidak. LED warna hijau akan
menyala jika sistem berjalan dengan baik, dan warna merah akan menyala jika ada pengguna
yang gagal melakukan identifikasi RFID maupun biometri, dan/atau pintu dijebol.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 40
22
Pada pemasangannya LED tidak dapat dihubungkan langsung dengan Arduino, dan
membutuhkan resistor dengan nilai yang dapat dihitung dengan persamaan 2.4. Untuk LED
berwarna merah, diketahui Vf adalah 1,65 volt dengan I adalah 20mA [21], maka persaaman
2.4. akan menjadi seperti demikian:
R3 = 5−1,65
0,02 = 167,5 Ω
Karena nilai 167,5Ω tidak ada di pasaran, maka diambil nilai yang paling dekat
diatasnya, yaitu 180Ω. Untuk LED berwarna hijau dengan nilai Vf adalah 3,2 volt dengan If
adalah 20mA [22] maka persamaan 2.4. menjadi:
R4 = 5−3,2
0,02 = 90 Ω
Karena nilai 90Ω tidak ada di pasaran, maka diambil nilai yang paling dekat diatasnya,
yaitu 100Ω. Kedua LED dipasang seperti gambar 3.8. dengan masukan dari pin Arduino
mega D13 dan D14 untuk warna merah dan hijau secara berurutan.
Gambar 3.8. Rangkaian LED merah dan hijau
3.2.2.6. Buzzer
Buzzer digunakan sebagai indikator apakah identifikasi RFID dan biometri berhasil
atau tidak. Jika buzzer berbunyi sebentar, maka pengidentifikasian berhasil. Jika buzzer
berbunyi dengan waktu yang agak panjang, berarti kunci dibukakan. Pemasangannya
menggunakan resistor 1kΩ [23] yang dipasang seperti gambar 3.9. dibawah.
Gambar 3.9. Rangkaian buzzer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 41
23
3.2.3. Sistem Kamera
Kamera secala langsung tersambung dengan komputer pada port USB, seperti terlihat
pada gambar 3.10. Kamera berada pada status idle, menunggu perintah untuk merekam.
Sesuai dengan nama port nya, kamera akan diakses dan diambil datanya secara serial pada
didalam program.
Gambar 3.10. Sambungan kamera dengan komputer
3.3. Perangkat Lunak
Perangkat lunak yang akan digunakan terbagi ke dalam tiga bagian besar: proses kunci,
proses kamera dan proses komunikasi, ketiganya berada pada komputer dan mikrokontroler
dengan sebagian dari program berada pada website. Gambar 3.11. menunjukkan alur dari
program, mulai dari awal sampai akhir. Karena setiap proses bukan hanya program dalam
satu alat, melainkan program yang bertindak secara serentak dari seluruh sistem.
Gambar 3.11. Alur keseluruhan sistem
Sistem akan dimulai dengan memastikan bahwa pintu masih tertutup pada saat akan
memulai identifikasi, jika masih tertutup, dengan indikasi masukan dari limit switch, akan
dilanjutkan dengan proses kunci, jika tidak, proses kunci akan dilewati. Jika proses kunci
diberlakukan, disini pengunci pintu akan dapat diakses untuk pengguna, dan jika identitas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 42
24
pengguna, yang berupa tag RFID dan sidik jari, cocok dengan data yang ada pada database
maka pengunci akan dibukakan. Pada proses kamera, kamera akan mengambil rekaman
video. Lama dari rekaman bergantung pada apakah proses kunci dilewati atau tidak, ketika
proses pintu sudah selesai dan pintu dibukakan, kamera hanya akan merekam selama 10
detik. Ketika proses pintu dilewati maka sistem akan menyatakan tidak aman dan kamera
akan merekam selama beberapa menit. Proses komunikasi adalah proses terakhir yang akan
terpicu apapun yang terjadi, yang akan dikirimkan ke internet adalah log history dan
rekaman dari kamera. Pada subbab selanjutnya akan dijelaskan secara spesifik bagaimana
proses-proses seperti diatas bekerja.
3.3.1. Proses Kunci Pintu
Pada sistem ini mengendalikan kunci elektrik berdasarkan masukan perintah dari
komputer. Banyak dari bagian sistem ini akan berada pada kontroler kunci pintu
dibandingakan dengan yang ada pada komputer. Jika proses kunci dijalankan, akan
dilanjutkan dengan menginisialisasi RFID dan biometri agar dapat memberikan masukan
pada mikrokontroler. Masukan pada keduanya akan diidentifikasi dan dicocokkan pada
database yang ada untuk dapat memberikan validitas untuk membuka pintu. Pada gambar
3.12. dapat dilihat diagram alur dari proses kunci pintu secara menyeluruh.
Ketika ada RFID tag yang terbaca, program akan membandingkan nomor unik (UID)
dengan database yang ada. Jika ada kecocokan, status sah akan muncul dan buzzer akan
berbunyi sebentar. Seperti halnya RFID, ketika modul biometrik membaca adanya sidik jari,
program akan mencocokan pada database yang ada. Jika ada kecocokan, status sah akan
muncul dan buzzer akan berbunyi sebentar. Urutan untuk pengidentifikasian tidak
diperdulikan, yang berarti dapat menggunakan RFID lalu biometrik, atau sebaliknya,
biometrik lalu RFID. Program akan mengecek apakah kedua identifikasi sudah masuk, jika
belum, maka akan ditunggu agar keduanya masuk, jika sudah, log akan dicatat dan pintu
akan dibukakan dengan tanda bunyi buzzer yang lebih panjang dari dua bunyi sebelumnya.
Akan tetapi, jika terjadi kegagalan dalam pencocokan, baik UID maupun sidik jari,
sebanyak lebih dari dua kali, program akan mendeaktifasi RFID reader dan pembaca sidik
jari selama 5 menit. Selama itu, LED merah akan menyala menggantikan LED hijau. Setelah
5 menit selesai, proses kunci dapat diulang dari awal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 43
25
Gambar 3.12. Alur program untuk kunci pintu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 44
26
3.3.2. Proses Kamera
Gambar 3.13. Alur proses kamera
Gambar 3.13 menunjukkan alur proses kamera. Pengambilan keputusan untuk
menentukan keamanan terancam atau tidak bergantung pada apakah proses kunci dijalankan
atau tidak. Jika proses kunci dijalankan, maka kamera hanya akan merekam selama 10 detik.
Jika proses kunci tidak dijalankan berarti pintu terbuka secara paksa, maka proses kunci
tidak akan terjadi sehingga keamanan dinyatakan terkompromi. Selanjutnya proses kamera
akan mencatat pada log waktu dan apa yang terjadi, dan kemudian kamera akan mulai
merekan selama beberapa menit. Lama dari kamera merekam kurang lebih lima menit, atau
sampai terjadi malfungsi, untuk mengatasi kehilangan data rekaman ketika terjadi malfungsi,
rekaman pada saat ini akan dipenggal setiap tigapuluh detik untuk kemudian dikirim ke
internet.
3.3.3. Proses Pengiriman Data
Komunikasi yang diterangkan pada sistem ini adalah sistem komunikasi dimana
komputer akan berkomunikasi dengan laman web di cloud server. Seperti terlihat pada
gambar 3.15., proses pengiriman data terbagi dalam dua bagian, berdasar pada proses
validasi sebelumnya. Pertama, sistem ini akan mengirimkan status kamera dan pintu dan log
yang ada ke website. Kedua, sistem ini akan mengirimkan video dari kamera dalam jika
keamanan terancam beserta apa yang dikirimkan pada bagian yang pertama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 45
27
Gambar 3.14. Alur proses pengiriman data
3.3.4. Database
Gambar 3.15. Alur program penambahan entry pada database
Database merupakan program tambahan pada program utama yang berada pada kode
python, karena hanya dibutuhkan data untuk empat pengguna. Database akan berbentuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 46
28
fungsi class pada python dan akan ditulis secara hardcode, yang berarti tertanam semi-
permanen pada program. Karena sifat dari database yang dirancang untuk semi-permanen,
program ini hanya akan dipanggil jika akan digunakan untuk menambah entry databse baru,
sehingga alur program pada gambar 3.15 terlepas dari program utama.
Pembuatan data yang baru akan membutuhkan otorisasi dari super user, secara default,
super user sudah tertulis secara hardcode pada program. Posisi ini tidak akan dapat dihapus,
untuk memastikan database tetap ada. Seletah mendapat otorisasi dari super user, maka
dapat membuat entry database yang baru. Dengan memasukkan nama, kemudian men-scan
kartu RFID yang belum tercatat pada database, dan men-scan jempol tangan kanan dan kiri.
Pengguna baru kemudian memberikan password untuk dapat masuk ke laman web yang
dapat dilihat.
Format dari data pada database akan diubah kedalam hexadecimal dan string dengan
rincian setiap data sebagai berikut:
1. Data untuk kode unik (UID) RFID memiliki panjang 4 bytes dengan check sebesar
satu byte
2. Fungsi sidik jari akan mengembalikan data sebesar satu byte
3. Nama berbentuk string dengan panjang maksimal 100 karakter
4. Password berbentuk alphanumerical string dengan panjang 20 karakter
3.4. Antarmuka
Antarmuka untuk pengguna dibuat dengan interaksi yang mudah dan simpel. Gambar
3.16. adalah login page untuk dapat masuk ke menu utama. Username dan password
digunakan untuk masuk ke laman utama seperti gambar 3.17. Variasi pada menu utama akan
muncul pops up window ketika keamanan terkompromi. Penghitung berapa lama sejak
terakhir keamanan terkompromi juga akan ke reset menjadi nol, seperti terlihat pada gambar
3.18.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 47
29
Gambar 3.16. Antarmuka untuk login page
Gambar 3.17. Menu utama
Gambar 3.18. Menu utama dengan peringatan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 48
30
BAB IV
HASIL DAN PEMBAHASAN
Pada bab keempat akan dibahas mengenai hasil dari penelitian yang berupa perangkat
keras, perangkat lunak dan data-data yang diambil. Pembahasan akan dilanjukan penjelasan
dan hasil setiap sistem. Bab ini akan berisi pula mengenai beberapa perubahan dari
perancangan yang diimplementasikan.
4.1. Perubahan Perancangan
Dalam pengimplementasiannya terdapat beberapa perubahan dari rancangan, baik dari
segi perangkat keras, maupun perangkat lunak.
4.1.1. Perubahan Driver Kunci
Perancangan driver pada bab tiga menggunakan rangkaian Darlington dengan dua
transistor 2N2222 seperti tertera pada gambar 3.6. Rangkaian tersebut tidak dapat
mengaktifkan kunci solenoid karena kurangnya arus yang dilewatkan. Modul driver
MOSFET IRF520 seperti gambar 4.1 digunakan sebagai pengganti, karena keuntungan dari
MOSFET adalah dapat digunakan sebagai saklar dengan mengaktifasi gate menggunakan
voltase. Berbeda dari Darlington, driver ini tidak meningkatkan (amplify) arus dari masukan
gate melainkan melewatkan arus dari masukan drain ke source.
Gambar 4. 1. IRF 520 Mosfet driver module
4.1.2. Perubahan Alur Database
Database pribadi yang disimpan secara lokal tidak membutuhkan autentifikasi berupa
login. Program yang dimiliki pengguna dapat mengakses database secara langsung tanpa
harus menghubungi server. Setelah inisialisasi program dapat langsung menambah entry
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 49
31
pada database. Ketidakpastian dapat terjadi, seperti jika jempol kanan melepuh, atau jempol
kiri tergores pisau sehingga perlu diperban sehingga keduanya tidak dapat di-scan. Guna
mengatasi jari yang tidak dapat di-scan, dan memberikan pilihan lebih bagi pengguna dalam
memindai jari, pada database sidik jari yang disimpan ditambah dari dua menjadi enam sidik
jari dengan tambahan jari telunjuk dan jari tengah tangan kanan dan kiri. Gambar 4.2
menunjukkan alur penambahan entry pada database.
Gambar 4. 2. Alur pemasukkan entry database
4.1.3. Perubahan Bahasa Pemrograman untuk Antarmuka
Perubahan dikarenakan webserver yang digunakan tidak dapat menggunakan Kivy
sebagai perantara untuk pembuatan User Interface pada browser. Webserver yang digunakan
adalah “www.000webhost.com”, dan hanya dapat menggunakan bahasa pemrograman
HTML5, PHP dan CSS. Pada pengimplementasiannya Kivy, yang awalnya akan digunakan
untuk pembuatan user interface akan digantikan dengan bahasa pemrograman HTML5.
4.1.4. Penambahan Protokol Komunikasi
Penggunaan komunikasi serial pada Arduino dengan komputer membutuhkan
penambahan protokol komunikasi untuk membedakan data apa saja yang dikirim dan/atau
diterima. Tabel 4.2 dan tabel 4.3 memberikan catatan lengkap mengenai header dari data
yang dikirim dan diterima. Semua header memiliki panjang data satu byte dalam bentuk
hexadecimal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 50
32
Tabel 4. 1. Tabel header dan data yang diterima program main() Python
Header Panjang data Keterangan
AA 1 byte Konfirmasi status pintu
BB 4 bytes Data UID dari RFID
CC 2 bytes Nomor ID dari data sidik jari (1 byte) beserta nilai
confidence dari template (1 byte)
C0 Null Konfirmasi tidak adanya sidik jari pada template
C1 2 bytes Sidik jari terbaca namun tidak jelas
FF Null Konfirmasi selesainya aksi dari Arduino
Tabel 4. 2. Tabel header dan data yang diterima program Arduino
Header Panjang Data Keterangan
BB Null Perintah untuk membukakan pintu
BC Null Perintak untuk membunyikan buzzer sekali pendek
CB Null Perintah untuk membunyikan buzzer pendek, lalu agak
panjang
DD Null Perintah untuk tidak dapat membaca RFID dan sijik jari,
LED merah dinyalakan
C1 1 byte Perintah untuk dapat men-scan sidik jari baru
C2 1 byte Perintah untuk menghapus sidikjari dari template
4.2. Implementasi
Bentuk fisik dari perancangan terlihat pada gambar 4.3 sampai dengan gambar 4.7
Gambar 4.3 menunjukkan tampilan luar dari kotak yang berisi sistem arduino, yang dapat
terlihat adalah LED merah dan hijau, dan area untuk menempatkan sidik jari. Didalam kotak
hitam terdapat Arduino, RFID reader dan buzzer, seperti ditunjukkan pada gambar 4.4.
Kabel yang menjulur dari kotak menghubungkan sistem pada Arduino ke komputer dan
pengunci pintu solenoid dibelakang pintu. Posisi dari kotak hitam relatif terhadap pintu
terlihat pada gambar 4.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 51
33
Gambar 4. 3. Tampilan depan kotak hitam
Gambar 4. 4. Bagian dalam dari kotak hitam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 52
34
Gambar 4. 5. Tampilan kotak hitam relatif terhadap daun pintu
Gambar 4.6 menunjukkan sisi samping dari selubung yang menutupi pengunci
solenoid dan driver-nya. Limit switch terpasang pada sisi bawah selubung sebagai indikator
pintu tertutup atau tidak. Pada Gambar 4.7 menunjukkan pengunci solenoid relatif terhadap
pintu bagian belakang.
Gambar 4. 6. Tampilan bagian dalam pengunci solenoid
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 53
35
Gambar 4. 7. Tampilan pengunci solenoid relatif pada bagian belakang daun pintu
Pengujian sistem dilakukan secara menyeluruh dengan pengambilan data sebanyak
sepuluh kali setiap pengguna. Parameter yang dilihat untuk dalam pengujian yang
berlangsung adalah sebagai berikut, UID pada RFID dan ID dari sidik jari akan terbaca,
keduanya harus cocok dengan data yang ada pada database, kamera merekam dan data
terkirim ke webserver. Penambahan entry baru pada database dapat tersimpan dan dapat
dipanggil dan diakses oleh subsistem lain. Menurut data yang didapatkan dan dicantumkan
pada lampiran L24, sistem sudah bekerja dengan tingkat keberhasilan sebesar 100%.
4.3. Hasil Pengujian Subsistem
Pengujian alat dilakukan setiap subsistem supaya dapat lebih mengetahui kerja sistem
menyeluruh, serta keberhasilan dan kegagalan yang ada.
4.3.1. Pengujian RFID Reader
Pengujian sensor MFRC522 dilakukan untuk dapat memastikan bahwa sensor dapat
membaca kartu RFID yang tersedia. Pengujian kartu RFID dilakukan dengan cara
menempelkan langsung kartu pada dinding sebelah kanan dari kotak hitam. Blok program
Arduino pada gambar 4.8 akan membaca kartu dan dikirim ke komputer untuk dicocokan
pada database oleh program Python pada gambar 4.9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 54
36
Gambar 4. 8. Blok program pembaca RFID pada Arduino
Gambar 4. 9. Blok program pencocokan UID dengan database pada Python
Ada empat kartu yang digunakan dan setiap kartu diuji sebanyak sepuluh kali, tabel
4.3 menunjukkan tingkat keberhasilan dari empat kartu dengan nama pada kartu yang
berbeda, dan UID yang berbeda pula. Keempat kartu dapat dibaca dengan tingkat
keberhasilan 100% dan dengan UID yang pasti sama setiap kali dibaca.
Tabel 4. 3. Tabel keberhasilan membaca kartu RFID
UID Nama Pengujian ke-
1 2 3 4 5 6 7 8 9 10
50034311 Artha
803482A2 Akita
D0B86FA3 Celvien
20106C0E Nuel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 55
37
4.3.2. Pengujian Sensor Sidik Jari
Pengujian sensor sidik jari menggunakan data dari empat orang dan dengan
menggunakan enam jari, jempol, telunjuk dan jari tengah tangan kanan dan kiri. Blok
program Arduino pada gambar 4.10 akan membaca sidik jari, kemudian mengirimkan akan
mencari kecocokan sidik jari dari template yang ada pada memori sensor, jika ada
kecocokan, program ini akan mengirimkan ID dari sidik jari ke komputer untuk kemudian
dicocokan dengan database oleh program pada Python pada gambar 4.11.
Gambar 4. 10. Blok program untuk membaca sidik jari dan mendapatkan ID sidik jari
Gambar 4. 11. Blok program untuk mencocokan ID sidik jari dengan database
Pengujian dilakukan dengan cara memindai setiap jari sebanyak sepuluh kali. Tabel
4.4 memberikan persentase keenam jari dari keempat orang. Tingkat keberhasilan untuk
dapat mengenali jari dan mencocokan ID dengan database memiliki rata-rata total sebesar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 56
38
81%. Beberapa faktor yang mempengaruhi rata-rata tingkat keberhasilan, adalah tekstur
sidik jari dan kondisi dari jari saat di-scan. Gambar 4.12 membandingkan tekstur sidik jari
dari pengguna Nuel dan Artha. Tekstur dari pengguna Nuel lebih pudar dari pengguna Artha.
Hal tersebut dapat berpengaruh dalam pembacaan sidik jari.
Gambar 4. 12. Gambar jari Nuel (dua kiri) dan Artha (dua kanan)
Tabel 4. 4. Tabel tingkat keberhasilan men-scan sidik jari
Pengguna Jari
Jempol Kanan
Telunjuk Kanan
Jari Tengah Kanan
Jempol Kiri
Telunjuk Kiri
Jari tengah Kiri
Rata-Rata
Artha 100% 80% 90% 90% 60% 100% 87%
Akita 90% 50% 100% 80% 100% 80% 83%
Celvien 70% 80% 100% 100% 70% 100% 87%
Nuel 60% 40% 50% 60% 90% 100% 67%
Rata-Rata 81%
4.3.3. Pengujian Kunci Solenoid
Beberapa kali gerendel pengunci solenoid tidak dapat tertarik sempurna kedalam,
sehingga gerendel masih menghalangi pintu untuk terbuka. Gambar 4.13 diambil dari salah
satu video yang merekam saat gerendel tidak terbuka. Sebanyak tiga puluh empat kali
perintah tercatat untuk membukakan pintu, dan dengan proses perekaman yang merekam
dibelakang pintu. Pintu dapat terbuka sebanyak tiga puluh kali tanpa dihalangi pengunci
solenoid, sebanyak empat kali pintu gagal terbuka karena gerendel masih menyangkut diluar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 57
39
Gambar 4. 13. Salah satu video yang merekam saat gerendel tersangkut
4.3.4. Pengujian Algorithma Sistem Kunci Pintu
Algorithma sistem kunci pintu memberikan beberapa fitur untuk memberikan hasil
yang tinggi. Salah satunya adalah kesempatan untuk memindai kartu atau sidik jari sebanyak
tiga kali. Fitur ini sebagai pengaman agar sistem tidak dimasuki orang yang tidak terdaftar
pada database. Tabel 4.5 menunjukkan kegagalan identifikasi karena RFID tidak terdaftar
pada database
Tabel 4. 5. Kegagalan identifikasi RFID
Waktu Pesan
2018-09-21-15-30-11 RFID tidak cocok dengan database
2018-09-21-15-30-20 RFID tidak cocok dengan database
2018-09-21-15-30-25 RFID tidak cocok dengan database
2018-09-21-15-30-25 Identifikasi gagal
Fitur untuk mencek kesalahan tidak fool’s proof, yang berearti masih dapat terjadi
kesalahan, pada tabel 4.6 menunjukkan kegagalan pembacaan sidik jari sebanyak tiga kali
oleh pengguna Artha, walaupun dapat dikenali pada pembacaan ketiga, pembacaan keempat
masih terbaca sebagai “Unknown”.
Tabel 4. 6. Kegagalan pengidentifikasian sidik jari
Waktu Pesan
2018-10-02-10-50-38 Unknown finger
2018-10-02-10-50-40 Unknown finger
2018-10-02-10-50-44 Sidik jari dimiliki milik Artha
2018-10-02-10-50-45 Unknown finger
2018-10-02-10-50-45 Identifikasi gagal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 58
40
Pada bagian ‘RoutineFlag’ di gambar 4.14, data yang dikembalikan dari fungsi
database akan dicocokkan satu sama lain, jika data dimiliki oleh orang yang sama, maka
perintah akan dikirim ke Arduino untuk membukakan pintu dan function untuk menulis log
dan merekam akan dipanggil dan dijalankan. Jika RFID dan sidik jari tidak cocok, maka
perintah menyalakan buzzer akan dikirim ke Arduino. Tabel 4.7 menunjukkan ketidak-
cocokan dari kedua data menyebabkan kegagalan untuk membuka pintu. Jika kedua data
dimiliki oleh orang yang sama, perintah pintu untuk dibukakan akan dikirimkan. Menurut
tabel 4.8, algorithma memiliki tingkat keberhasilan 100%.
Tabel 4. 7. Tabel ketidakcocokan RFID dengan sidik jari
Waktu Pesan
2018-09-24-14-54-46 RFID dimiliki oleh Nuel
2018-09-24-14-54-56 Sidik jari dikenali milik Artha
2018-09-24-14-54-56 RFID dan sidik jari tidak cocok
2018-09-27-15-04-06 RFID dimiliki oleh Akita
2018-09-27-15-04-09 Sidik jari dimiliki milik Artha
2018-09-27-15-04-09 RFID dan sidik jari tidak cocok
2018-09-27-15-04-14 RFID dimiliki oleh Nuel
2018-09-27-15-04-18 Unknown finger
2018-09-27-15-04-20 Sidik jari dimiliki milik Artha
2018-09-27-15-04-20 RFID dan sidik jari tidak cocok
2018-09-27-15-04-25 RFID dimiliki oleh Celvien
2018-09-27-15-04-29 Sidik jari dimiliki milik Artha
2018-09-27-15-04-29 RFID dan sidik jari tidak cocok
Tabel 4. 8. Tabel tingkat keberhasilan algorithma rutin untuk membuka pintu
Nama pemilik Banyak Percobaan
Gagal Berhasil Persentase
Keberhasilan RFID Sidik Jari
Celvien Celvien 10 0 10 100%
Artha Artha 10 0 10 100%
Akita Akita 10 0 10 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 59
41
Gambar 4. 14. Algorithma rutin
4.3.5. Pengujian Sistem Kamera
Perekaman dengan kamera menggunakan program yang ditulis dengan bahasa
pemrograman Python dengan library openCV. Proses perekaman menggunakan webcam,
dengan codec harus ditentukan untuk menentukan exstensi dari video. Pada gambar 4.15,
baris ke 16, codec ditentukan menggunakan “MJPG”. Pada baris ke-17, ditentukan frame
rate sebesar 20fps dan resolusi 640 pixel kali 480 pixel. Perlu diketahui bahwa program ini
membuat video dengan merekam gambar per-frame dan disimpan dalam satu bentuk file,
sehingga menjadikan gambar bergerak. Selama perakaman, akan ada window yang terbuka
untuk melihat seperti video yang direkam, dan batas waktu perekaman ditentukan oleh
variable yang diberikan oleh program yang memanggil program ini. Setelah batas waktu
habis, program ini akan melepas webcam, menyimpan video, dan menghentikan window
yang dibukanya, lalu dilanjutkan dengan proses pengiriman data untuk mengirim video ke
web server.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 60
42
Gambar 4. 15. Program untuk merekam menggunakan kamera
Pengujian program untuk merekam dilakukan dengan cara menjalankan program pada
gambar 4.15 sebanyak 50 kali. Pada pengujian ini, kamera dapat merekam dan menyimpan
lima puluh file video tanpa ada satupun yang corrupted.
4.3.6. Proses Pengiriman Data
Pengiriman data menggunakan File Transfer Protocol, dengan library ‘ftplib’ dari
Python. Ada dua file yang diunggah tiap pemanggilan program, log history, dan video.
Gambar 4.16 adalah listing untuk mengunggah “Logs.txt” yang berisi log history. File akan
dibaca terlebih dahulu, sesi komunikasi akan dibukakan untuk mengirim file yang terbaca.
Setelah selesai pengiriman, file dan sesi akan ditutup. Gambar 4.17 adalah listing untuk
mengunggah video dengan nama video merupakan masukan dari program kamera. Cara
kerja program hampir sama dengan pengiriman file log. Perbedaannya pada penggunaan
buffer karena size dari video relatif lebih besar daripada file text(.txt).
Pengujian proses pengiriman data secara tersendiri dilakukan dengan mengirimkan
data yang berupa video sampai webserver menutup paksa hubungan dengan Request Time
Out(RTO). Besar video setiap file-nya adalah 2.224 KB, diambil karena file video ini adalah
file terbesar dari sistem kamera. Pengujian ini ditujukan untuk mengetahui seberapa data
yang tidak berhasil dikirim dalam satu sesi. Proses pengiriman data dapat mengirim dua
puluh tiga video dan hanya satu video yang terkorupsi, video yang terkorupsi yaitu video
terakhir saat RTO terjadi. Total besar file yang dapat dikirim adalah 49.560 KB.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 61
43
Gambar 4. 16. Pengirim log
Gambar 4. 17. Pengirim video
4.4. Pembahasan Perangkat Lunak
Ada dua perangkat lunak yang membantu sistem yang lain. Program database
merupakan program yang dipanggil untuk memasukkan entry baru. Program user interface
terletak pada webserver untuk menampilkan log dari sistem dan video yang ada.
4.4.1. Program Database
Program database menggunakan library ‘sqlite3’ dari python, supaya python dapat
mengartikan bahasa pemrograman yang biasa digunakan untuk database, yaitu MySQL.
Function dari database dapat dipanggil untuk membantu program utama dan program yang
lain. Gambar 4.18 menunjukkan listing untuk fungsi menambah entry baru, menambahkan
database untuk jari, menghapus entry dari database, ketiganya dapat mengubah database
secara langsung ketika dipanggil dan diberi variable yang sesuai. Tiga fungsi lainnya adalah
untuk menemukan pengguna berdasar UID, menemukan pengguna berdasakan ID sidik jari,
dan menemukan ID pengguna berdasarkan nama. Ketiga fungsi ini hanya dapat melihat
database tanpa mengubahnya, dan akan memberikan hasil kepada program yang
memanggilnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 62
44
Gambar 4. 18. Fungsi-fungsi pada program database
Pembuatan template sidik jari dilakukan dengan program pada Arduino. Pada program
ini akan dipanggil oleh program Python tersendiri, beda dari program keamanan utama.
Setelah dipanggil, program akan dimulai dengan prompt “Ready!”, kemudian, jika ada jari
yang terdeteksi, akam membuat model template dengan fitur-fitur pada sidik jari. Program
akan meminta untuk men-scan jari yang guna memastikan bahwa model yang dibuat sudah
benar. Selanjutnya model akan disimpan menggunakan ID yang telah diberikan oleh
program Python. Listing program berada pada lampiran L15 bagian “Biometric Scanner”.
Menambahkan pengguna baru memiliki prinsip alur yang berbeda dengan program
keamanan utama. Sebab utama adalah karena alur program penambahan pengguna baru
hanya dilakukan secara linear, seperti terlihat pada alur gambar 3.15, gambar 4.19 adalah
implementasinya ke dalam Python script. Program diawali dengan memasukkan nama
pengguna, lalu men-scan kartu yang baru. Kartu yang di-scan akan dipastikan kartu yang
baru dengan mencocokkannya pada seluruh entry yang terdapat pada database. Jika sudah
dipastikan kartu yang baru, enam jari akan di-scan menggunakan program pembuatan
template sidik jari pada Arduino, dengan ID disuplai dari program ini. Perbedaan lain dari
program keamanan utama, program ini juga mendengarkan data berbentuk string tanpa
menggunakan header untuk protocol komunikasi antara Arduino dengan komputer yang
telah ada. Dengan mendengarkan string dan langsung menampilkannya pada command line
Python yang akan muncul, pengguna dapat dipandu secara langsung dalam pembuatan
template. Setelah penambahan pengguna selesai dan ucapan “Selamat Datang” muncul pada
layar command line, program akan menulis log dan mengirimkannya ke webserver.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 63
45
Gambar 4. 19. Listing program untuk menambah pengguna baru
4.4.2. User Interface
Tampilan pada browser seperti pada gambar 4.20 memiliki tiga menu utama. Laman
“Home” adalah laman awal dan pertama dari web, laman “Logs” berisi tabel log yang telah
dikirim ke webserver, laman Videos berisi list dari video yang telah dikirim ke webserver.
Gambar 4. 20. Tampilan user interface pada browser
Ditengah laman “Home” terdapat counter untuk menunjukkan kapan terakhir
keamanaan pernah terkompromi. Counter ini ditangani oleh webserver menurut data dari log
yang dikirim.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 64
46
Gambar 4. 21. Laman “Logs”
Pada laman “Logs” terdapat tabel yang berisi log history tentang apa saja yang terjadi
pada sistem, tabel tersebut dapat dilihat pada gambar 4.21. Pada laman “Videos” terdapat
daftar untuk semua video yang terekam dan terkirim ke webserver. Pada laman ini video
dapat diunduh dengan mengklik nama video yang bersangkutan. Gambar 4.22 menunjukkan
laman “Videos” pada tampilan web. Laman ini hanya berisi list dari video-video yang ada.
Ekstensi dari video adalah “.avi”, dan browser tidak dapat menampilkan video dengan
format “.avi” sehingga video tidak dapat dilihat pada browser, namun video tersebut dapat
diunduh. Nama dari video adalah kapan video tersebut direkam, untuk mencari video pada
tabel log masih harus dilakukan secara manual, karena tabel laman log diisi dari file “txt”.
Berbeda dengan laman video yang list-nya diisi dari file-file video pada storage server.
Gambar 4. 22. Laman “Videos”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 65
47
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian pada bab empat, pada penelitian ini dapat ditarik kesimpulan
sebagai berikut:
1. RFID reader dapat membaca kartu dengan keberhasilan 100%.
2. Sensor sidik jari dapat membaca dengan persentase keberhasilan 81%
3. Algorithma dapat membedakan dan mencocokkan data pengguna dengan tingkat
keberhasilan 100%
4. Sistem secara keseluruhan dapat membukakan pintu dengan dengan tingkat
keberhasilan 100%
5. Kamera dapat merekam dan data dapat terkirim ke webserver dengan baik, namun
gagal dalam menampilkan video secara langsung
5.2. Saran
Penelitian ini masih mengalami kekurangan, untuk penelitian-penelitian kedepan
disarankan:
1. Untuk memberikan subsistem agar dapat menutup pintu.
2. Memberikan link pada tabel di laman log untuk mempermudah pencarian video.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 66
48
Daftar Pustaka
[1] ----, 2015, Berbagai Inisiatif Warga Menjaga Keamanan Lingkungan,
https://megapolitan.kompas.com/read/2015/08/04/15070061/Berbagai.Inisiatif.Warg
a.Menjaga.Keamanan.Lingkungan, diakses 11 November 2017
[2] ----, ----, Front point security, https://www.frontpointsecurity.com, diakses 10
Desember 2017
[3] ----, ----, ADT Pulse security, https://www.adtpulse.com, diakses 10 Desember 2017
[4] Putranto, K., 2013, Sistem Monitoring Keamanan dengan Menggunakan WebCam
dengan Antarmuka SmartPhone Android, Tugas Akhir, Jurusan Teknik Elektro, FST,
Universitas Sanata Dharma, Yogyakarta.
[5] Natalianto, N., 2017, Sistem Presensi Perkuliahan Menggunakan RFID, Tugas Akhir,
Jurusan Teknik Elektro, FST, Universitas Sanata Dharma, Yogyakarta.
[6] ----, ----, What is RFID?, https://www.epc-rfid.info/rfid, diakses 24 Februari 2018
[7] ----, 2017, https://retailgyan.com/wp-content/uploads/2017/09/RFID-Working-
Principlepng, diakses 24 Februari 2018
[8] ----, 2017, How RFID Works?, https://retailgyan.com/how-does-rfid-work/, diakses 24
Februari 2018
[9] Putra, D., 2009, Sistem Biometrika: Konsep Dasar, Teknik Analisis Citra, dan
Tahapan Membangun Aplikasi Sistem Biometrika, Andi Offset, Yogyakarta.
[10] Masoner, L., 2017, The Basic Elements of Camera, https://www.thespruce.com/what-
is-a-camera-2688050, diakses 9 Maret 2018
[11] ----, 2016, MFRC522 Datasheet, NXP Semiconductors
[12] ----, ----, C3 Fingerprint Module Technical Documentation, Chengdu Science and
Technology Co. Ltd.
[13] ----, ----, https://www.arduino.cc/en/Guide/Introduction#, diakses 22 Februari 2018
[14] ----, ----, https://store.arduino.cc/usa/arduino-mega-2560-rev3, diakses 22 Februari
2018
[15] Kho, D., ----, http://teknikelektronika.com/pengertian-led-light-emitting-diode-cara-
kerja/, diakses 05 Maret 2018
[16] Kho, D., ----, http://teknikelektronika.com/pengertian-piezoelectric-buzzer-cara-
kerja-buzzer/, diakses 05 Maret 2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 67
L49
[17] Jubilee Enterprise, 2016, Trik Cepat Menguasai Pemrograman Python, PT Gramedia,
Jakarta
[18] ----, ----, Kivy Web Page, https://kivy.org/#home, diakses 7 Maret 2018
[19] ----,----, https://www.makerlab-electronics.com/product/irf520-mosfet-driver-
module/, diakses 3 Oktober 2018
[20] ----, 1997, 2N2222; 2N2222A: NPN Switching Transistors, Philips Semiconductors.
[21] ----, ----, NTE 3019 Light Emitting Diode (LED) Red Diffused 5mm, NTE Electronics
Inc.
[22] ----, 2014, Cree® 5mm Blue Green Round LED C503B-BCS/BCN/GCS/GCN, Cree
Inc.
[23] ----, 2002, Piezoelectric Sound Components, Murata Manufacturing Co., Ltd
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 68
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 69
L1
Cara Penggunaan Alat
Persiapan alat:
1. Hubungkan adapter ke sumber listrik AC.
2. Hubungkan kabel biru (kabel USB) ke komputer yang akan digunakan.
3. Unduh program dari tautan berikut:
https://artha-surya.000webhostapp.com/download.html
4. Jalankan “SecurA.py”, kemudian menu utama akan muncul
Menambahkan pengguna baru kedalam databse:
1. Pada menu utama pilih “New User”, command line python akan muncul di belakang.
2. Pada command line akan diminta nama, dan akan diberikan petunjuk secara
berurutan.
3. Ikuti petunjuk pada command line sampai selesai.
4. Ucapan “Selamat Datang” akan muncul jika penambahan user selesai dan berhasil,
kemudian pada command line ketik ‘quit()’ lalu tekan enter, akan kembali ke menu
utama.
Menjalankan sistem keamaanan cukup mudah dan jelas.
1. Pada menu utama pilih “RUN”, program akan berjalan sendiri sampai ada pengguna
yang masuk.
2. Untuk mematikan program secara prematur (jika perlu) pada command line tekan
“Ctrl+C”, akan ada konfirmasi untuk mematikan program
3. Ketik “Y” lalu tekan “Enter” untuk mematikan program secara prematur, ketik “N”
untuk melanjutkan program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 70
L2
Rangkaian Keseluruhan
Gambar L1. Rangkaian keseluruhan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 71
L3
Listing Program Utama import serial
import datetime
import threading
import time
import database
import camRecorder
import log as historyLog
import failChecker
try:
arduinoSerialComm = serial.Serial('COM3',9600)
except Exception as e:
print ("Failed to connect")
print e
rfbio=[None,None]
doorClosed = True
securityFlag = True
def sender(msg):
arduinoSerialComm.write(msg)
def logger(fileName, cassusBelli, attachment, failSafe):
lastID = database.add_new_log_entry(fileName, cassusBelli, attachment, failSafe)
time.sleep(1)
historyLog.Log(lastID, fileName, cassusBelli, attachment, failSafe)
time.sleep(1)
return fileName
def dataRecorder(timeStamp, text):
historyLog.dataRecorder(timeStamp, text)
def fingerRecorder(timeStamp, owner, finger, he):
jari = ["Jempol kanan", "Telunjuk kanan", "Jari tengah kanan", "Jempol kiri", "Telunjuk kiri", "Jari Tengah Kiri"]
num = int(finger)
dec = int(he , 16)
perc = (dec*100/255)
historyLog.fingers(timeStamp, owner, jari[num], perc)
def camera(fileName, duration):
camRecorder.recorder(fileName, duration)
def failSafeProtocol(fileName):
text = "Break-in indicated"
logger(fileName, text, '1', '1')
sender("DD")
thread1 = threading.Thread(target=camera, name="Fail-Safe Protocol", args=[fileName,300])
thread1.start()
def dataRecorder(timeStamp, text):
historyLog.dataRecorder(timeStamp, text)
def main():
global doorClosed, securityFlag,rfbio
while securityFlag:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 72
L4
# Check if there is a data in waiting
if (arduinoSerialComm.inWaiting() > 0):
# Read incoming data
inData = arduinoSerialComm.readline()
if (inData != None and inData[:2] == "AA"):
if (inData[2:3] == '1'):
doorClosed = True # Door is open while security sistem is on
print ("Fail Safe Protocol Initiated")
fileName = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
# Fail safe protocol flag
failSafeProtocol(fileName)
break;
else:
doorClosed = False # Door is closed
# RFID
elif (inData != None and inData[:2] == "BB"):
uid = inData[2:10].upper()
# Check rfid in database
usrUni = database.get_user_by_uid(uid)
if (usrUni != None):
# Convert unicode into ASCII
usr = usrUni[0].encode('ascii','ignore')
if (usr !=None and usr != rfbio[0]):
print("Cocok")
print(usr) # Print name of the user
rfbio[0] = usr
if (rfbio[1] == None):
sender("BC")
elif (usr != None and usr == rfbio[0]):
print("Kartu RFID sudah di scan")
else:
print("Tidak cocok")
sender(failChecker.failCheckerUID())
# Fingerprint
elif (inData != None and inData[:2] == "CC"):
biometric = inData[2:4]
# Check fingerprint in database
usr = database.get_user_by_bio(biometric)
if (usr !=None and usr[0] != rfbio[1]):
print("Cocok")
print(usr[0]) # Print name of the user
rfbio[1]= usr[0]
if (rfbio[0] == None):
sender("BC")
elif (usr != None and usr[0] == rfbio[1]):
print ("Sidik jari sudah di-scan")
else:
print("Tidak cocok")
sender(failChecker.failCheckerBio())
elif (inData != None and inData[:2] == "C0"):
print("Sidik jari tidak diketahui")
sender("CB")
elif (inData != None and inData[:2] == "C1"):
print("Inconclusive")
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 73
L5
sender("CB")
# Routine Flag
if (len(rfbio)>=2 and rfbio[0]==rfbio[1] and (rfbio[0]!=None and rfbio[1]!=None)):
print ("Succes. Opening door...")
print ("Welcome Home %s" %(rfbio[0]))
failChecker.failReset()
sender("BB")
# Write logs
text = "Pintu dibuka oleh %s" %rfbio[0]
fileName = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
logger(fileName, text, '1', '0')
dataRecorder(fileName, text)
# Recorder
thread2 = threading.Thread(target=camera, name="Normal Protocol", args=[fileName,10])
thread2.start()
rfbio = [None,None]
print ("Killing the security")
securityFlag = False
break
elif(len(rfbio)==2 and rfbio[0]!=rfbio[1] and (rfbio[0]!=None and rfbio[1]!=None)):
text = "RFID dan sidik jari tidak cocok"
fileName = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
print(text)
logger(fileName, text, '0', '0')
sender(failChecker.failed2Pair())
rfbio = [None,None]
try:
main()
except KeyboardInterrupt as terminate:
print ("Sisyem akan dimatikan!")
YN = raw_input("lanjut? (Y/N) \n")
if YN == 'Y':
fileName = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
logger(fileName, "Sistem berhasil dimatikan", '0', '0')
raise KeyboardInterrupt
arduinoSerialComm.close()
elif YN == 'N':
main()
if __name__ == '__main__':
main()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 74
L6
Listing Program Sistem Kamera import cv2
import os
import time
import FTPuploader
def recorder(FILE_NAME, duration):
FILE_DIRECTORY = os.path.join(os.path.expanduser('~'),'Documents/SecurA/videos')
#check if path directory is exist, if not create directory
if not os.path.exists(FILE_DIRECTORY):
os.makedirs(FILE_DIRECTORY)
FILE_OUTPUT = os.path.join(FILE_DIRECTORY, "%s.avi" %FILE_NAME)
# Capturing video from webcam:
cap = cv2.VideoCapture(0)
# define codec and crate video writer object
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter(FILE_OUTPUT, fourcc, 20.0,(640,480))
T_start = time.time()
while(cap.isOpened()):
# Capture frame-by-frame
ret, frame = cap.read()
if ret == True:
# handle the mirrorring
frame = cv2.flip(frame,1)
# write the frame
out.write(frame)
# Display the resulting frame
cv2.imshow('frame',frame)
# break conditions
if (time.time() - T_start >= duration):
# break after the duration is out
break
else:
break
# When everything done, release the capture
cap.release()
out.release()
cv2.destroyAllWindows()
time.sleep(1)
# Upload the video
FTPuploader.vidFTP(FILE_NAME)
FTPuploader.fileFTP()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 75
L7
Listing Program Database
import sqlite3
import os
import time
import datetime
from log import Log as add_first_log_entry
FILE_DIRECTORY = os.path.join(os.path.expanduser('~'),
'Documents/SecurA/database')
#check if path directory is exist, if not create directory
if not os.path.exists(FILE_DIRECTORY):
os.makedirs(FILE_DIRECTORY)
FILE_NAME = os.path.join(FILE_DIRECTORY, 'database.db')
# Initialize connection
conn = sqlite3.connect(FILE_NAME)
# create a cursor
c = conn.cursor()
def add_new(name, uid):
with conn:
c.execute("INSERT INTO databases (name, uid) VALUES (?,?)", (name, uid))
def add_new_biometrics(fingerIndex, name, uid):
with conn:
time.sleep(1)
userID = c.execute("SELECT ID FROM databases WHERE name = :name AND uid = :uid",
'name' : name, 'uid' : uid).fetchone()[0]
c.execute("INSERT INTO fingerdatabase (fingerIndex, userID) VALUES(?,?)", (fingerIndex, userID))
def erase(name,uid):
with conn:
userID = c.execute("SELECT ID FROM databases WHERE name = :name AND uid = :uid",
'name' : name, 'uid' : uid).fetchone()[0]
c.execute("DELETE from fingerdatabase WHERE userID = :userID",'userID' : userID)
c.execute("DELETE from databases WHERE name = :name AND uid = :uid",'name' : name, 'uid' : uid)
print ("Entry has been deleted")
def get_user_by_uid(uid):
return c.execute("SELECT name FROM databases WHERE uid=:uid", 'uid':uid).fetchone()
def get_user_by_bio(bio):
return c.execute("""SELECT p.name FROM databases p LEFT JOIN fingerdatabase n
ON p.ID = n.userID WHERE n.fingerIndex =:bio""",
'bio':bio).fetchone()
def get_ID_by_name(name):
return c.execute("SELECT ID FROM databases WHERE name=:name",'name':name).fetchone()
def add_new_log_entry(timeStamp, cassusBelli, attachment, failSafe):
with conn:
time.sleep(1)
c.execute("INSERT INTO logdatabase (timeStamp, cassusBelli, attachment, failSafe) VALUES (?,?,?,?)",
(timeStamp, cassusBelli, attachment, failSafe))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 76
L8
return c.execute("SELECT ID FROM logdatabase WHERE timeStamp=:timeStamp",
'timeStamp':timeStamp).fetchone()[0]
# check if tables already exist, if not create a database table
tb_exists = "SELECT name FROM sqlite_master WHERE type='table' AND name='databases'"
tb_bio_exists = "SELECT name FROM sqlite_master WHERE type='table' AND name='fingerdatabase'"
if not c.execute(tb_exists).fetchone():
c.execute("""CREATE TABLE databases (
ID INTEGER PRIMARY KEY,
name text,
uid text)""")
if not c.execute(tb_bio_exists).fetchone():
c.execute("""CREATE TABLE fingerdatabase (
ID INTEGER PRIMARY KEY,
fingerIndex text,
userID INTEGER,
FOREIGN KEY(userID) REFERENCES databases(ID)
)""")
tb_log_exists = "SELECT * FROM sqlite_master WHERE type='table' AND name='logdatabase'"
if not c.execute(tb_log_exists).fetchone():
c.execute("""CREATE TABLE logdatabase (
ID INTEGER PRIMARY KEY,
timeStamp text,
cassusBelli text,
attachment text,
failSafe text) """)
time.sleep(1)
timeStamp = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
firstEntryID = add_new_log_entry(timeStamp, 'Creating Database', '0', '1')
add_first_log_entry(firstEntryID, timeStamp, 'Creating Database', '0', '1')
conn.commit()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 77
L9
Listing Program Fail Checker
import datetime
import log
import database
import time
failCounterUID = 1
failCounterBio = 1
failedToPair = 1
def failCheckerUID():
global failCounterUID
if not failCounterUID >=3:
failCounterUID = failCounterUID + 1
return ("CB")
else:
failCounterUID = 1
writeFailLog()
return ("DD")
def failCheckerBio():
global failCounterBio
if not failCounterBio >=3:
failCounterBio = failCounterBio + 1
return ("CB")
else:
failCounterBio = 1
writeFailLog()
return ("DD")
def failed2Pair():
global failedToPair
if not failedToPair >=3:
failedToPair = failedToPair + 1
return("CB")
else:
failedToPair = 1
writeFailLog()
return("DD")
def failReset():
global failCounterUID,failCounterBio,failedToPair
failCounterUID = 1
failCounterBio = 1
failedToPair = 1
def writeFailLog():
fileName = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
lastID = database.add_new_log_entry(fileName, 'Identifikasi gagal', '0', '0')
time.sleep(1)
log.Log(lastID, fileName, 'Identifikasi gagal', '0', '0')
time.sleep(1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 78
L10
Listing Program FTPuploader
from ftplib import FTP
import os
host = 'files.000webhost.com'
user = 'artha-surya'
passwd = '14051996'
cwd_logs = 'public_html/secura/logs'
cwd_vids = 'public_html/secura/videos'
FILE_DIRECTORY = os.path.join(os.path.expanduser('~'),'Documents/SecurA/logs')
VID_DIRECTORY = os.path.join(os.path.expanduser('~'),'Documents/SecurA/videos')
FILE_NAME = os.path.join(FILE_DIRECTORY, "Logs.txt")
def fileFTP():
try:
myfile = open(FILE_NAME,'r') # read file to be sent
session = FTP(host,user,passwd) # Start a session
session.cwd(cwd_logs)
session.storbinary('STOR Logs.txt', myfile)
myfile.close()
session.quit()
except Exception as e:
print e
session.quit()
def vidFTP(vidName):
try:
VID_NAME = os.path.join(VID_DIRECTORY, "%s.avi" %vidName)
myVid = open(VID_NAME, 'rb') # read file to be sent (use buffer)
session = FTP(host,user,passwd) # Start a session
session.cwd(cwd_vids)
session.storbinary("STOR %s.avi" %(vidName), myVid )
session.quit()
except Exception as e:
print e
session.quit()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 79
L11
Listing Program Log
import datetime
import os
FILE_DIRECTORY = os.path.join(os.path.expanduser('~'),'Documents/SecurA/logs')
#check if path directory is exist, if not create directory
if not os.path.exists(FILE_DIRECTORY):
os.makedirs(FILE_DIRECTORY)
def Log(entryNo, entry, casusBelli, attachment, failSafe):
FILE_OUTPUT = os.path.join(FILE_DIRECTORY, "Logs.txt")
file = open(FILE_OUTPUT, "a+")
file.write("[%s] [%s] [%s] [%s] [%s]\r\n"
%(entryNo, entry, casusBelli, attachment, failSafe))
file.close()
def dataRecorder(timeStamp, text):
FILE_OUTPUT = os.path.join(FILE_DIRECTORY, "dataDump.txt")
file = open(FILE_OUTPUT, "a+")
file.write("[%s] [%s]\r\n"%(timeStamp, text))
file.close()
def fingers(timeStamp, owner, finger, perc):
FILE_OUTPUT = os.path.join(FILE_DIRECTORY, "fingersDump.txt")
file = open(FILE_OUTPUT, "a+")
file.write("[%s] [%s] [%s] [%s]\r\n"%(timeStamp, owner, finger, perc))
file.close()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 80
L12
Listing Program Log Database
import MySQLdb
from MySQLdb import OperationalError
# Open database connection
conn = MySQLdb.connect("localhost","benart","secura","secura" )
# Prepare a cursor object using cursor() method
cursor = conn.cursor()
# Create table as per requirement
sql = """CREATE TABLE logs (
ID integer AUTO_INCREMENT PRIMARY KEY,
time text,
cassusBelli text)"""
# Check if table already exist, if not create a database table
tb_exists = "SELECT * FROM information_schema.tables WHERE table_schema ='secura' AND table_name ='logs';"
cursor.execute(tb_exists)
if not(cursor.fetchone() >= 1):
cursor.execute(sql)
# Add new entry regarding log that will be display
def add_new(name,cassusBelli):
try:
conn = MySQLdb.connect("localhost","benart","secura","secura" )
cursor = conn.cursor()
sql = "INSERT INTO logs (name, cassusBelli) VALUES (%s, %s)"
cursor.execute(sql,(name,cassusBelli))
conn.commit()
lastID = cursor.lastrowid
return lastID
conn.close()
except OperationalError as e:
print e
conn.commit()
# disconnect from server
conn.close()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 81
L13
Propram Penambahan Entry
import serial
import database
import time
from log import Log as user_added
import os
import datetime
import FTPuploader
name = None
try:
arduinoSerialComm = serial.Serial('COM3',9600)
except Exception as e:
print(e)
os._exit(0)
def reciever():
while True:
if (arduinoSerialComm.inWaiting() > 0):
inData = arduinoSerialComm.readline()
if (inData[:2] == "BB"):
uid = inData[2:10].upper()
return uid
break
def sender(msg):
while True:
try:
arduinoSerialComm.write(msg)
break
except Exception as e:
print(e)
print ("Retrying")
sender(msg)
def biometricReciever(msg, name, nuid):
while True:
inData = arduinoSerialComm.readline()
if (inData[:2] == "C3"):
# An error has occured
print ("Reestablish connection")
sender(msg)
elif (inData[:2] == "C2"):
index = inData[2:4]
return index
break
else:
pass
if (inData[:2] == "CC" or inData[:2] == "AA" or inData[:2] == "C3" or inData[:2] == "ID"):
pass
else:
print inData
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 82
L14
def uidReciever():
while True:
try:
if (arduinoSerialComm.inWaiting() > 0):
inData = arduinoSerialComm.readline()
if (inData != None and inData[:2] == "BB"):
nuid = inData[2:]
return nuid
break
except Exception as e:
print(e)
print("UID failed to be recieve")
break
def main(*arg, **kwargs):
global name
if not ('name' in kwargs):
name = raw_input("Nama Pengguna : ")
print ("Scan kartu RFID baru")
uid = reciever()
time.sleep(1)
if (database.get_user_by_uid(uid) != None):
print ("Kartu RFID sudah terdaftar");
main(name=name)
return
database.add_new(name,uid)
userNo = database.get_ID_by_name(name)
time.sleep(1)
# Enroll 6 fingerprint
jari = ["Jempol kanan", "Telunjuk kanan", "Jari tengah kanan", "Jempol kiri", "Telunjuk kiri", "Jari Tengah Kiri"]
for i in range(len(jari)):
print ("Scan %s" %(jari[i]))
msg = "C1%s%s " % (userNo[0], i)
sender(msg) # Send enroll command
index = biometricReciever(msg, name, uid)
database.add_new_biometrics(index,name,uid)
# Wait for a second to make sure the database is written
time.sleep(1)
print("Selamat Datang %s" %(name))
timeStamp = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
EntryID = database.add_new_log_entry(timeStamp, 'Data pengguna %s ditambahkan kedalam database' %(name), '0',
'1' )
user_added(EntryID, timeStamp, 'Data pengguna %s ditambahkan kedalam database' %(name) , '0', '1' )
FTPuploader.fileFTP()
def delete():
print ("Scan user's card to be deleted")
uid = reciever()
name1 = get_user_by_uid(uid)
name2 = raw_input("Enter user's name to be deleted: ")
if (name1 == name2) :
database.erase(name,uid)
else:
print ("UID bukan milik pengguna %s", name2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 83
L15
Listing Program Arduino
#include <SPI.h>
#include <MFRC522.h>
#include <Adafruit_Fingerprint.h>
#define SS_PIN 53
#define RST_PIN 22
#define limitPin 26
#define doorLock 30 // output for lock
#define redLED 34 // output for red LED
#define greenLED 38 // output for green LED
#define buzzerPin 42 // output for buzzer
#define mySerial Serial1 // Serial comm for fingerprint reader
String inCommand = ""; // incoming Command
MFRC522 rfid(SS_PIN, RST_PIN); // Create MFRC522 instance
MFRC522::MIFARE_Key key; // An array containing nuid key
byte nuidPICC[4];
// Initializing fingerprint serial (not to confuse with serial communication)
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
uint8_t id; // Global for fingerprint ID
void setup()
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
for (byte i = 0; i < 6; i++)
key.keyByte[i] = 0xFF; // Default rfid key value, (must be initialized)
// set the data rate for the sensor serial port (Again, not to confuse with serial communication)
finger.begin(57600);
pinMode(limitPin, INPUT);
pinMode(doorLock, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(buzzerPin, OUTPUT);
digitalWrite(greenLED, HIGH);
//// MAIN ////
void loop()
if (digitalRead(limitPin) == LOW)
Serial.println("AA1"); // The door is Open
// if we get valid byte, do something:
if (Serial.available() > 0)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 84
L16
inCommand = Serial.readString(); // read the incoming command:
if (inCommand == "BB")
Serial.println("FF");
openSazame();
else if (inCommand == "BC")
verified();
Serial.println("FF");
else if (inCommand == "CB")
Serial.println("FF");
notVerified();
else if (inCommand == "DD")
Serial.println("FF");
failSafe();
else if (inCommand.substring(0,2) == "C1")
delay(100);
getFingerprintEnroll(inCommand.substring(2,4).toInt());
else if (inCommand.substring(0,2) == "C2")
delay(100);
deleteFingerprint(inCommand.substring(2,4).toInt());
else
Serial.println("Command Not Recognized");
delay(10);
// Run RFID detector program
readRFID();
delay(10);
// Run bimetric scanner program
getFingerprintIDez();
delay(10);
//// END OF MAIN ////
// RFID PROGRAM GOES HERE!!!
void readRFID()
// Look for new cards
if ( ! rfid.PICC_IsNewCardPresent())
return;
// Verify if the NUID has been readed
if ( ! rfid.PICC_ReadCardSerial())
return;
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
// Check is the PICC of Classic MIFARE type
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 85
L17
if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
Serial.println(F("B0"));
return;
// Send nuid to PC
String item = printHex(rfid.uid.uidByte, rfid.uid.size);
Serial.println("BB"+item);
// Halt PICC
rfid.PICC_HaltA();
// Stop encryption on PCD
rfid.PCD_StopCrypto1();
// BIOMETRIC SCANNER PROGRAM GOES HERE!!!
// Easy and fast mode
int getFingerprintIDez()
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK)
return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK)
return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK)
Serial.println("C0");
return -1;
// found a match, but return -1 if confidence level is too low.
if (finger.confidence <= 50)
Serial.println("C1");
return -1;
Serial.println("CC" + String(finger.fingerID) + String(finger.confidence,HEX));
return finger.fingerID;
// Open door
void openSazame()
digitalWrite(buzzerPin, HIGH);
analogWrite(doorLock, 255);
// delay the opening for some time
for (int i = 0; i < 120; i++)
delay(1000);
if (i=1)
digitalWrite(buzzerPin, LOW); //turn off buzzer after 1 sec
analogWrite(doorLock, 0);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 86
L18
void verified()
digitalWrite(buzzerPin, HIGH);
delay(300);
digitalWrite(buzzerPin, LOW);
void notVerified()
digitalWrite(buzzerPin, HIGH);
delay(300);
digitalWrite(buzzerPin, LOW);
delay(300);
digitalWrite(buzzerPin, HIGH);
delay(800);
digitalWrite(buzzerPin, LOW);
void failSafe()
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
for (int i = 0; i < 30; i++)
delay(1000);
if (digitalRead(limitPin) == LOW)
Serial.println("AA1"); // The door is Open
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
String printHex(byte *buffer, byte bufferSize)
String item;
int i=0;
while (i < bufferSize)
item += String (buffer[i] < 0x10 ? "0" : "");
item += String(buffer[i], HEX);
i ++;
return item;
// FINGERPRINT ENROLL
uint8_t getFingerprintEnroll(int id)
delay(100);
Serial.println("Ready!");
delay(100);
int p = -1;
while (p != FINGERPRINT_OK)
p = finger.getImage();
switch (p)
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 87
L19
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
delay(100);
// OK success!
p = finger.image2Tz(1);
switch (p)
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
delay(100);
Serial.println("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER)
p = finger.getImage();
delay(100);
Serial.print("ID "); Serial.println(id);
p = -1;
delay(100);
Serial.println("Place same finger again");
while (p != FINGERPRINT_OK)
p = finger.getImage();
switch (p)
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
break;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 88
L20
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
delay(100);
// OK success!
p = finger.image2Tz(2);
switch (p)
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("An Error has occured");
delay(100);
Serial.println("Try Again");
delay(100);
Serial.println("C3");
return p;
delay(100);
// OK converted!
Serial.print("Creating model for #"); Serial.println(id);
delay(100);
p = finger.createModel();
if (p == FINGERPRINT_OK)
Serial.println("Prints matched!");
else
Serial.println("An Error has occured");
delay(100);
Serial.println("Try Again");
delay(100);
Serial.println("C3");
return p;
delay(100);
Serial.print("ID "); Serial.println(id);
Serial.write(p);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 89
L21
p = finger.storeModel(id);
if (p == FINGERPRINT_OK)
Serial.println("Stored!");
delay(100);
Serial.println("C2" + String(id));
else
Serial.println("An Error has occured");
delay(100);
Serial.println("Try Again");
delay(100);
Serial.println("C3");
return p;
// DELETE FINGERPRINT ID
uint8_t deleteFingerprint(uint8_t id)
uint8_t p = -1;
p = finger.deleteModel(id);
if (p == FINGERPRINT_OK)
Serial.println("Deleted!");
else if (p == FINGERPRINT_PACKETRECIEVEERR)
Serial.println("Communication error");
return p;
else if (p == FINGERPRINT_BADLOCATION)
Serial.println("Could not delete in that location");
return p;
else if (p == FINGERPRINT_FLASHERR)
Serial.println("Error writing to flash");
return p;
else
Serial.print("Unknown error: 0x"); Serial.println(p, HEX);
return p;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 90
L22
Listing Program User Interface
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
<!-- link to main stylesheet -->
<link rel="stylesheet" href="css/main.css">
<style>
/* Style the tab */
.tab
overflow: hidden;
border: none;
background-color: none;
/* Style abs */
.tab a
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
font-size: 19px;
font-weight: bold;
color: #000000;
/* Style the buttons inside the tab */
.tab button
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
font-size: 17px;
font-weight: bold;
/* Change background color of buttons on hover */
.tab button:hover
background-color: #ddd;
/* Change background color of a on hover */
.tab a:hover
background-color: #ddd;
/* Style the tab content */
.tabcontent
display: none;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 91
L23
padding: 6px 12px;
border: none;
border-top: none;
.active
display: block;
</style>
</head>
<body>
<div class="tab">
<a href="/secura/index.html">Home</button>
<a href="/secura/logs/logs.php">Logs</button>
<a href="/secura/videos/videos.html">Videos</a>
</div>
<p>Selamat Datang</p>
<p>Hari sejak keamanan terakhir kali terkompromi:</p>
<iframe width="560" height="315" src="/secura/dates/date.php" frameborder="0"></iframe>
<footer>
<ul>
<li><a href="mailto:[email protected] ">email</a></li>
<li><a href="https://github.com/benartm">github.com/benartm</a></li>
</ul>
</footer>
</body>
</html>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 92
L24
Data Percobaan
No Time Stamp RFID Nama
Pemilik RFID
Time Stamp Sidik Jari Nama Pemilik
Sidik Jari Jari
Pintu dibukakan pada
Video Lokal
Video Web
1 2018-09-21-12-16-39 Celvien 2018-09-21-12-16-44 Celvien Jempol kanan 2018-09-21-12-16-44
2 2018-09-21-12-19-27 Celvien 2018-09-21-12-19-32 Celvien Jempol kiri 2018-09-21-12-19-32
3 2018-09-21-12-28-36 Celvien 2018-09-21-12-28-19 Celvien Jempol kiri 2018-09-21-12-28-36
4 2018-09-21-12-29-28 Celvien 2018-09-21-12-29-32 Celvien Jempol kanan 2018-09-21-12-29-32
5 2018-09-21-12-30-20 Celvien 2018-09-21-12-30-25 Celvien Telunjuk kanan 2018-09-21-12-30-25
6 2018-09-21-12-32-42 Celvien 2018-09-21-12-32-47 Celvien Jempol kanan 2018-09-21-12-32-47
7 2018-09-21-12-34-20 Celvien 2018-09-21-12-34-17 Celvien Telunjuk kanan 2018-09-21-12-34-20
8 2018-09-21-13-00-14 Celvien 2018-09-21-13-00-17 Celvien Jempol kanan 2018-09-21-13-00-17
9 2018-09-21-13-01-59 Celvien 2018-09-21-13-02-03 Celvien Jempol kanan 2018-09-21-13-02-03
10 2018-09-21-13-03-53 Celvien 2018-09-21-13-03-57 Celvien Jari tengah kanan 2018-09-21-13-03-57
11 2018-09-21-15-58-16 Artha 2018-09-21-15-58-19 Artha Jari tengah kanan 2018-09-21-15-58-19
12 2018-09-21-15-59-08 Artha 2018-09-21-15-59-04 Artha Jari tengah kanan 2018-09-21-15-59-08
13 2018-09-21-15-59-50 Artha 2018-09-21-15-59-47 Artha Jari tengah kanan 2018-09-21-15-59-50
14 2018-09-21-16-00-27 Artha 2018-09-21-16-00-24 Artha Jari tengah kanan 2018-09-21-16-00-27
15 2018-09-21-16-03-33 Artha 2018-09-21-16-03-37 Artha Jari tengah kanan 2018-09-21-16-03-37
16 2018-09-21-16-22-02 Artha 2018-09-21-16-21-52 Artha Jari tengah kanan 2018-09-21-16-22-02
17 2018-09-21-16-22-33 Artha 2018-09-21-16-22-36 Artha Jari tengah kanan 2018-09-21-16-22-36
18 2018-09-21-16-23-16 Artha 2018-09-21-16-23-23 Artha Jari tengah kanan 2018-09-21-16-23-23
19 2018-09-21-16-23-53 Artha 2018-09-21-16-23-57 Artha Jari tengah kanan 2018-09-21-16-23-57
20 2018-09-21-16-24-28 Artha 2018-09-21-16-24-33 Artha Jari tengah kanan 2018-09-21-16-24-33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 93
L25
No Time Stamp RFID Nama
Pemilik RFID
Time Stamp Sidik Jari Nama Pemilik
Sidik Jari Jari
Pintu dibukakan pada
Video Local
Video Web
21 2018-09-24-14-32-17 Akita 2018-09-24-14-32-13 Akita Jempol kanan 2018-09-24-14-32-17
22 2018-09-24-14-33-13 Akita 2018-09-24-14-33-13 Akita Telunjuk kanan 2018-09-24-14-33-13
23 2018-09-24-14-34-26 Akita 2018-09-24-14-34-22 Akita Telunjuk kanan 2018-09-24-14-34-26
24 2018-09-24-14-35-08 Akita 2018-09-24-14-35-07 Akita Telunjuk kanan 2018-09-24-14-35-08
25 2018-09-24-14-37-02 Akita 2018-09-24-14-37-00 Akita Jempol kanan 2018-09-24-14-37-02
26 2018-09-24-14-38-20 Akita 2018-09-24-14-38-18 Akita Telunjuk kanan 2018-09-24-14-38-20
27 2018-09-24-14-38-56 Akita 2018-09-24-14-38-54 Akita Telunjuk kanan 2018-09-24-14-38-56
28 2018-09-24-14-39-48 Akita 2018-09-24-14-39-46 Akita Jempol kanan 2018-09-24-14-39-48
29 2018-09-24-15-10-02 Akita 2018-09-24-15-10-00 Akita Jempol kanan 2018-09-24-15-10-02
30 2018-09-24-15-12-43 Akita 2018-09-24-15-12-40 Akita Jempol kanan 2018-09-24-15-12-43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI