• Tidak ada hasil yang ditemukan

Sistem keamanan akses ruang dengan masukan barcode berbasis Raspberry Pi.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem keamanan akses ruang dengan masukan barcode berbasis Raspberry Pi."

Copied!
81
0
0

Teks penuh

(1)

INTISARI

Penelitian ini mengembangkan teknologi mikrokontroler dan babcode yang digunakan untuk secubity system yaitu membuat sistem keamanan akses suatu ruangan yang dapat diaplikasikan pada suatu ruangan yang membutuhkan keamanan khusus. Dengan memanfaatkan teknologi babcode dan sistem penyimpanan database, diharapkan penelitian ini akan menghasilkan suatu alat pbototype berupa akses pintu atau gerbang dan diuji menggunakan kartu mahasiswa sebagai kuncinya.

Pbototype sistem keamanan akses ruang dengan masukan babcode berbasis baspbebby pi menggunakan 1 buah webcam dengan resolusi video VGA sebagai alat pemindai babcode, 2 buah LED berwarna hijau sebagai penanda sistem, 2 buah solenoid doob lock sebagai pengunci gerbang, dan 1 buzzeb sebagai penanda kesalahan sistem.

Berdasarkan pengujian, penelitian ini menghasilkan pbototype sistem keamanan akses ruang dengan masukan babcode dapat mencatat data dalam bentuk satuan waktu. Sistem database yang sudah dirancang dan dibuat sudah dapat menyimpan, menambah, mengubah dan menghapus data yang dimasukkan oleh operator. GUI dapat ditampilkan pada monitor agar operator dapat mengoperasikan secara mudah dengan fitur – fitur yang ada. Webcam dapat membaca babcode dan menunjukkan nomor babcode beserta jenis babcode. Kerja dari output yaitu solenoid doob lock dan LED sebagai simulasi dari pengunci pintu ruangan dan penanda bahwa sistem sudah bekerja sesuai dengan perancangan.

Kata Kunci : Sistem Keamanan Akses Ruang, Raspbebby Pi, Babcode, Database.

(2)

ABSTRACT

This research develop microcontroler and barcode technology that use for security system which is to makes security room access system that can be applied to some rooms that need to be secure. Using barcode technology and database system, this research can be expected to produce a prototype access door device and student card as the key.

Prototype security room access with barcode based on raspberry pi made with one webcam with VGA video resolution device for barcode scanner, 2 green LED to detect system, two solenoid door lock as gate lock and one buzzer to detect error system.

Based on testing, this research produced security room access with barcode based on raspberry pi as the key pass that came out in a unit of time. The database system that has been included before. GUI can be displayed on the monitor so it will perform easily with existing features. The webcam can read the barcode and shows the barcode number, in addition it can show the types of barcode. Solenoid door lock and LED performs as an output. It works as a simulation of the room door lock and a marker which the system could perform in according with the design that has been created.

(3)

TUGAS AKHIR

SISTEM KEAMANAN AKSES RUANG DENGAN MASUKAN

BARCODE BERBASIS RASPBERRY PI

Diajukan untuk memenuhi salah satu syarat Memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro Jurusan Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Disusun oleh :

BONIFASIUS KRISTIAWAN

NIM : 145114056

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(4)

ii

FINAL PROJECT

SECURITY ROOM ACCESS SYSTEM WITH BARCODE BASED ON

RASPBERRY PI

In a partial fulfilment of the requirements For the degree of Sarjana Teknik Department of Electrical Engineering

Faculty of Science and Technology, Sanata Dharma University

BONIFASIUS KRISTIAWAN

NIM : 145114056

DEPARMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

(5)

iii

LEMBAR PERSETUJUAN

TUGAS AKHIR

SISTEM KEAMANAN AKSES RUANG DENGAN MASUKAN

BARCODE BERBASIS RASPBERRY PI

Oleh :

BONIFASIUS KRISTIAWAN NIM : 145114056

telah disetujui oleh :

Pembimbing

(6)

iv

LEMBAR PENGESAHAN

TUGAS AKHIR

SISTEM KEAMANAN AKSES RUANG DENGAN MASUKAN

BARCODE BERBASIS RASPBERRY PI

disusun oleh :

BONIFASIUS KRISTIAWAN

NIM : 145114056

Telah dipertahankan di depan tim penguji pada tanggal .. Januari 2017 dan dinyatakan memenuhi syarat

Susunan Tim Penguji

Nama Lengkap Tanda Tangan

Ketua : Martanto, S.T.,M.T.

Sekretaris : Djoko Untoro Suwarno, S.Si.,M.T.

Anggota : Ir. Th. Prima Ari Setiyani, M.T.

Yogyakarta,

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Dekan,

(7)

v

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

MOTTO :

NOTHING TO LOSE …

HARD WORK BEATS TALENT WHEN TALENT DOESN’T

WORK HARD…

Skripsi ini kupersembahkan

untuk…..

Yesus Kristus

ST. Mikael Pelindungku

PAPA, MAMA ,ADEK

(8)

vi

LEMBAR PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.

Yogyakarta, 30 Juni 2016

(9)

vii

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA

ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Bonifasius Kristiawan

Nomor Mahasiswa : 145114056

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

SISTEM KEAMANAN AKSES RUANG DENGAN MASUKAN

BARCODE BERBASIS RASPBERRY PI

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, 30 Juni 2016

(10)

viii

INTISARI

Penelitian ini mengembangkan teknologi mikrokontroler dan barcode yang digunakan untuk security system yaitu membuat sistem keamanan akses suatu ruangan yang dapat diaplikasikan pada suatu ruangan yang membutuhkan keamanan khusus. Dengan memanfaatkan teknologi barcode dan sistem penyimpanan database, diharapkan penelitian ini akan menghasilkan suatu alat prototype berupa akses pintu atau gerbang dan diuji menggunakan kartu mahasiswa sebagai kuncinya.

Prototype sistem keamanan akses ruang dengan masukan barcode berbasis raspberry pi menggunakan 1 buah webcam dengan resolusi video VGA sebagai alat

pemindai barcode, 2 buah LED berwarna hijau sebagai penanda sistem, 2 buah solenoid

door lock sebagai pengunci gerbang, dan 1 buzzer sebagai penanda kesalahan sistem.

Berdasarkan pengujian, penelitian ini menghasilkan prototype sistem keamanan akses ruang dengan masukan barcode dapat mencatat data dalam bentuk satuan waktu. Sistem database yang sudah dirancang dan dibuat sudah dapat menyimpan, menambah, mengubah dan menghapus data yang dimasukkan oleh operator. GUI dapat ditampilkan pada monitor agar operator dapat mengoperasikan secara mudah dengan fitur – fitur yang ada. Webcam dapat membaca barcode dan menunjukkan nomor barcode beserta jenis barcode. Kerja dari output yaitu solenoid door lock dan LED sebagai simulasi dari pengunci pintu ruangan dan penanda bahwa sistem sudah bekerja sesuai dengan perancangan.

(11)

ix

ABSTRACT

This research develop microcontroler and barcode technology that use for security system which is to makes security room access system that can be applied to some rooms that need to be secure. Using barcode technology and database system, this research can be expected to produce a prototype access door device and student card as the key.

Prototype security room access with barcode based on raspberry pi made with one webcam with VGA video resolution device for barcode scanner, 2 green LED to detect system, two solenoid door lock as gate lock and one buzzer to detect error system.

Based on testing, this research produced security room access with barcode based on raspberry pi as the key pass that came out in a unit of time. The database system that has been included before. GUI can be displayed on the monitor so it will perform easily with existing features. The webcam can read the barcode and shows the barcode number, in addition it can show the types of barcode. Solenoid door lock and LED performs as an output. It works as a simulation of the room door lock and a marker which the system could perform in according with the design that has been created.

(12)

x

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala rahmat-Nya. Berkat Kasih dan KaruniaNya selama menjalani proses pembuatan tugas akhir ini,

penulis dapat menyelesaikan tugas akhir dengan judul “Sistem Keamanan Akses Ruang Dengan Masukan Barcode Bersbasis Raspberry Pi”.

Tugas akhir ini disusun untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik (S.T) bagi mahasiswa program S-1 Jurusan Teknik Elektro Universitas Sanata Dharma Yogyakarta. Selama proses penyusunan proposal ini, penulis banyak mendapat bantuan dan dukungan dari berbagai pihak, untuk itu penulis mengucapkan terimakasih kepada:

1. Bapak Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elektro Universitas Sanata Dharma Yogyakarta.

2. Bapak Djoko Untoro Suwarno, S.Si., M.T. selaku Dosen Pembimbing tugas akhir yang telah banyak meluangkan waktu untuk memberikan bimbingan.

3. Bapak Martanto, M.T., dan Ibu Ir. Th. Prima Ari Setiyani, M.T. yang telah memberikan saran dan kritik dalam menyelesaikan penulisan tugas akhir.

4. Seluruh dosen Teknik Elektro yang telah memberikan ilmu yang bermanfaat kepada penulis selama kuliah.

5. Papa, Mama, Adek yang telah memberikan perhatian dan dukungan yang lebih dari cukup.

6. Keluargaku tercinta Yangti dan Yangkung yang selalu mendoakan dan terus memberikan semangat dalam mengerjakan.

7. Seluruh teman-teman prodi Teknik Elektro angkatan 2014 atas kerjasama dan kebersamaannya selama menjalani studi.

8. Teman - teman kost ADZIN dan kost 127 yang selalu menjadi penggembira dan penyemangat.

(13)

xi

Dalam penyusunan tugas akhir ini, penulis menyadari masih banyak kekurangan, karena itu penulis mengharapkan kritik dan saran yang membangun demi kesempurnaan tugas akhir ini.

Yogyakarta, 30 Juni 2016 Penulis,

(14)

xii

DAFTAR ISI

HALAMAN JUDUL (Bahasa Indonesia) ... i

HALAMAN JUDUL (Bahasa Inggris)... ii

LEMBAR PERSETUJUAN ... iii

LEMBAR PENGESAHAN ... iv

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ... v

LEMBAR PERNYATAAN KEASLIAN KARYA ... vi

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii

INTISARI ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xiv

DAFTAR TABEL ...xiviii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Tujuan dan Manfaat ... 2

1.3 Batasan Masalah ... 3

(15)

xiii

BAB II DASAR TEORI ... 5

2.1 Raspberry Pi ... 5

2.2 Bahasa Pemrograman Pyhton ... 7

2.2.1 Modul Tkinter ... 8

2.2.2 Modul MySQLdb ... 8

2.2.3 Modul RPi.GPIO ... 8

2.2.4 Modul Pexpect ... 8

2.3 Elektrik Solenoid ... 8

2.4 Sistem Database ... 8

2.4.1 Membuat Database MySQL ... 9

2.4.2 Operasi Pembuatan Tabel ... 10

2.4.3 Operasi Penambahan Data ... 11

2.4.4 Operasi Pemilihan Data ... 11

2.4.5 Operasi Memperbarui Data ... 12

2.4.6 Operasi Menghapus Data ... 13

2.5 Barcode ... 14

BAB III RANCANGAN PENELITIAN ... 16

3.1 Perancangan Sistem ... 16

(16)

xiv

3.3 Perancangan Software... 18

3.3.1 Diagram Alir Pintu Masuk ... 18

3.3.2 Diagram Alir Pintu Keluar ... 20

3.4 Perancangan Hardware ... 24

BAB IV HASIL DAN PEMBAHASAN ... 25

4.1 Pengujian Keseluruhan Sistem ... 31

4.2 Hasil Perancangan Perangkat Lunak (GUI) ... 25

4.2.1 Proses Pengunduhan Library Python ... 33

4.2.2 Halaman Utama Program (GUI) ... 33

1 Menu Utama ... 34

2 Tombol "INPUT" ... 35

3 Menu Detail ... 35

4.3 Hasil Perancangan Database ... 36

4.4 Hasil Pengujian Pembacaan Barcode Dengan Webcam ... 39

4.4.1 Pengujian Dengan Webcam Genius FaceCam 320 ... 41

4.4.2 Pengujian Dengan Webcam Logitech C170 ... 42

4.5 Hasil Pengujian Hardware ... 43

BAB V KESIMPULAN DAN SARAN ... 44

5.1 Kesimpulan ... 44

(17)

xv

DAFTAR PUSTAKA ... 45

(18)

xvi

DAFTAR GAMBAR

Gambar 1.1 Diagram blok sistem ... 3

Gambar 2.1 Konfigurasi pin pada port GPIO ... 6

Gambar 2.2 Contoh Door Lock solenoid... 8

Gambar 2.3 contoh kode Python untuk pembuatan database SQLite ... 9

Gambar 2.4 hasil tulisan bahwa database berhasil dibuat ... 10

Gambar 2.5 contoh kode python untuk membuat tabel dalam database ... 10

Gambar 2.6 hasil tulisan bahwa tabel dalam database sudah terbuat ... 10

Gambar 2.7 Contoh kode python untuk menambahkan data kedalam tabel ... 11

Gambar 2.8 hasil tulisan bahwa tabel berhasil dibuat ... 11

Gambar 2.9 Contoh kode Python untuk memilih suatu data dalam tabel ... 11

Gambar 2.10 Hasil pemilihan data yang sudah dibuat ... 11

Gambar 2.11 Contoh kode python untuk memperbarui data yang sudah ada ... 12

Gambar 2.12 Menunjukkan hasil kode python untuk memperbarui data... 13

Gambar 2.13 contoh kode python untuk menghapus data... 13

Gambar 2.14 hasil eksekusi program penghapusan data ... 14

Gambar 2.15 Contoh CODE 39 ... 15

Gambar 3.1 Diagram blok sistem ... 17

Gambar 3.2 Diagram alir pada saat akan masuk ruangan ... 20

Gambar 3.3 Diagram alir pada saat akan keluar ruangan ... 21

Gambar 3.4 Tampilan rencana antar muka (GUI) pada software Python ... 22

Gambar 4.1 Pengunduhan file - file library untuk Python ... 25

(19)

xvii

Gambar 4.3 Rangkaian PCB untuk simulasi hardware ... 27

Gambar 4.4 langkah mengaktifkan webcam untuk pintu masuk ... 27

Gambar 4.5 proses pemindaian barcode dengan NIM 145114003 saat pintu masuk 28 Gambar 4.6 hasil pemindaian muncul pada python shell ... 28

Gambar 4.7 NIM 145114003 muncul pada entry box untuk pencatatan database .... 28

Gambar 4.8 muncul peringatan "SELAMAT DATANG" pada layar monitor ... 28

Gambar 4.9 NIM 145114003 sudah tercatat waktu masuk pada database bagian paling bawah ... 28

Gambar 4.10 simulasi hardware pada pintu masuk pengunci pintu dan led aktif .... 29

Gambar 4.11 langkah mengaktifkan webcam pada pintu keluar... 29

Gambar 4.12 proses pemindaian barcode dengan NIM 145114003 saat pintu keluar ... 29

Gambar 4.13 hasil pemindaian muncul pada python shell ... 29

Gambar 4.14 NIM 145114003 muncul pada entry box untuk pencatatan database . 30 Gambar 4.15 muncul peringatan "SELAMAT JALAN" pada layar monitor ... 30

Gambar 4.16 NIM 145114003 sudah tercatat waktu keluar pada database bagian paling bawah ... 31

Gambar 4.17 simulasi hardware untuk pintu keluar pengunci pintu dan led aktif ... 31

Gambar 4.18 Pengunduhan file – file library untuk Python ... 32

Gambar 4.19 Listing program untuk import package pada Python 2.7 ... 33

Gambar 4.20 Hasil GUI (Graphical User Interface) ... 34

Gambar 4.21 listing program untuk menubar ... 34

Gambar 4.22 Menu Bar Utama pada GUI ... 34

Gambar 4.23 listing program untuk menu "INPUT" ... 35

(20)

xviii

Gambar 4.25 listing program untuk menu detail ... 35

Gambar 4.26 Menu Detail untuk menampilkan detail identitas member ... 36

Gambar 4.27 Tabel identitas pada database roomaccess ... 37

Gambar 4.28 Form pengisian identitas ada tabel identitas ... 37

Gambar 4.29 Isi tabel History pada database roomaccess ... 38

Gambar 4.30 Editor untuk pengujian penambahan data waktu pada tabel History .. 39

Gambar 4.31 EER-Diagram Perancangan Database ... 39

Gambar 4.32 Kode Python yang digunakan untuk pembacaan barcode ... 40

Gambar 4.33 Pengujian jarak terdekat pada webcam Genius FaceCam 320 ... 41

Gambar 4.34 pembacaan barcode oleh webcam tertampil pada LCD monitor... 41

Gambar 4.35 Hasil pembacaan barcode tertampil pada Pyton Shell ... 41

Gambar 4.36 Pengujian pembacaan barcode pada jarak terdekat ... 42

Gambar 4.37 Pengujian pembacaan barcode pada jarak terjauh ... 42

Gambar 4.38 Hasil dari pembacaam webcam Logitech C170 ... 43

(21)

xix

DAFTAR TABEL

(22)

1

BAB I

PENDAHULUAN

1.1.

Latar Belakang

Perkembangan teknologi pada masa kini sangat pesat khususnya di bidang komputerisasi dan elektronika. Teknologi yang dikembangkan salah satunya bertujuan untuk membantu memberikan keamanan, baik keamanan diri maupun keamanan terhadap barang

– barang berharga contohnya laptop, dokumen – dokumen perusahaan dan lain sebagainya. Agar suatu barang berharga terhindar dari tindak kriminalitas khususnya pencurian, barang

– barang berharga tadi biasanya disimpan dalam suatu ruangan khusus agar tidak diambil oleh orang – orang yang tidak berhak. Keamanan suatu ruang menjadi faktor penting dalam pengamanan suatu barang.

Berdasar pada ide pembuatan sistem keamanan ruang, maka pada penelitian kali ini akan dibuat prototipe sistem keamanan akses ruang menggunakan barcode. Pada penelitian sistem keamanan akses ruang menggunakan salah satu mikrokontroler yang sedang berkembang yaitu Raspberry Pi. Raspberry pi adalah salah satu mikrokontroler berbasis SBC (System Board Chip). Raspberry Pi atau yang sering disingkat dengan nama Raspi, adalah komputer papan tunggal (Single Board Circuit/SBC) yang berukuran sebesar kartu kredit. Bisa dikatakan Raspi adalah PC(Personal Computer) karena fungsinya dapat menggantikan komputer desktop jaman sekarang dan ukurannya yang kecil sehingga praktis dibawa ke mana saja.

Pada penelitian yang dilakukan oleh Bambang ( Bambang Tri Atmojo, 2013)

berjudul “Model Sistem Kendali Pintu Otomatis Menggunakan Barcode Berbasis PC Pada

Gerbang Laboratorium Teknik Elektro Unila” menjelaskan bahwa sistem dibuat untuk menjaga keterriban dan kenyamanan laboratorium. Pada penelitian tersebut dibuat pemodelan pintu otomatis menggunakan barcode. Selain itu model tersebut akan mempunyai data dokumentasi kehadiran secara digital agar lebih mudah dalam proses monitoring data mahasiswa yang melakukan kegiatan diluar jam kerja.

Pada penelitian yang dilakukan oleh Hendi (Hendi Handian Rachmat, 2014) berjudul

“Pemanfaatan Sistem RFID Sebagai Pembatas Akses Ruangan” dijelaskan bahwa sistem

(23)

pada sistem akses ruangan. Keberadaan sistem tersebut ditujukan untuk menjaga keamanan dan privasi ruangan dari seseorang yang tidak memiliki otoritas untuk memasuki ruangan tersebut.

Pada penelitian yang dilakukan oleh Mulki (Mulki Syahputra Muharram, 2015) yang

berjudul “Implementasi Kunci Pintu Otomatis Dengan RFID Berbasis Raspberry Pi Sebagai

Sub Sustem Dari Kunci Otomatis Pada Ruang Dosen Universitas Telkom” dijelaskan bahwa

pengamanan ruangan menggunakan suatu perangkat yaitu RFID (Radio Frequency

Identification) sebagai kunci pembuka pintu. RFID menjadi pemicu fungsi – fungsi yang

terkait yaitu fungsi solenoid (buka/tutup kunci), fungsi buzzer (alarm), dan fungsi sensor magnetik (deteksi pergerakan pintu). Terdapat juga pencatatan RFID tag pada log sistem.

Sistem ini akan digunakan untuk mengamankan suatu ruangan dari tindak kriminal khususnya pencurian. Dengan menggunakan barcode sebagai syarat untuk membuka pintu ruangan. Raspberry Pi sendiri berfungsi sebagai otak dari pemrosesan sistem keamanan yang terdiri dari GUI (Graphical User Interface) atau tampilan pada layar LCD, GPIO (General

Purpose Input Output) sebagai pengendali kunci pintu dan sensor pintu, dan SQLite3

sebagai manajemen database. Seseorang yang akan memasuki ruangan tersebut harus memiliki kartu yang terdapat barcode.

Raspberry Pi dan akan digunakan monitor LCD sebagai output nya yaitu berupa

tampilan menggunakan program Python.

1.2.

Tujuan dan Manfaat

Tujuan penelitian ini yaitu menghasilkan sebuah sistem keamanan akses ruang yang dapat diaplikasikan di lingkungan kampus. Sistem keamanan akses ruang ini diharapkan mampu meningkatkan keamanan akses ruang di lingkungan kampus.

Manfaat dari penelitian ini : a. Manfaat bagi masyarakat

Masyarakat kampus dapat mengaplikasikan sistem keamanan akses ruang ini di lingkungan kampus yang memiliki ruangan yang membutuhkan keamanan yang khusus. b. Manfaat bagi ilmu pengetahuan

(24)

1.3.

Batasan Masalah

Perancangan sistem keamanan akses ruang dengan masukan barcode berbasis

Raspberry Pi ini mencakup batasan – batasan masalah sebagai berikut :

a. Alat ini akan berupa prototipe. b. Menggunakan Raspberry Pi 3.

c. Masukan data berupa scan dari barcode scanner yang ada di kartu mahasiswa. d. Terbatas hanya 20 data atau identitas (Kartu mahasiswa).

e. Menggunakan elektrik solenoid sebagai pengunci pintu. f. Menggunakan bahasa pemrograman Python.

g. Terdapat catatan waktu masuk dan keluar ruangan. h. Perangkat lunak dapat ditampilkan pada monitor.

1.4.

Metodologi Penelitian

a. Studi Pustaka

Studi pustaka dilakukan dengan pengumpulan informasi dari berbagai literatur. Literatur tersebut antara lain berupa buku, jurnal, datasheet. Selain itu, informasi dikumpulkan dari berbagai artikel dari internet. Informasi yang dikumpulkan mencakup informasi mengenai datasheet Raspberry Pi, bahasa pemrograman Python, dan datasheet

barcode scanner.

b. Perancangan dan Pembuatan Alat

(25)

Perancangan dan pembuatan alat dimulai dari pembuatan hardware. Hardware yang dibuat berupa rangkaian elektronik pada port GPIO. Perancangan selanjutnya yaitu perancangan program pengolahan data pada Raspberry Pi yaitu pembuatan antar muka. Diagram blok sistem bisa dilihat pada gambar 1.1

c. Pengujian alat dan Pengambilan data

Pengambilan data alat dimulai dari pengujian sistem apakah sudah sesuai dengan tujuan seperti pencatatan identitas apakah sudah sesuai atau belum, fungsi dari tiap komponen apakah sudah sesuai tugasnya masing – masing atau belum.

d. Pembuatan Analisa dan Kesimpulan

(26)

5

BAB II

DASAR TEORI

2.1.

Raspberry Pi

Pada penelitian ini akan digunakan salah satu mikrokontroler yaitu Raspberry Pi. Jenis Raspberry pi yang akan digunakan yaitu Raspi versi 3, dikarenakan versi ini sudah dilengkapi dengan fitur wifi dan bluetooth serta memiliki kapasistas ram yang lebih besar dari yang sebelumnya yaitu sebesar 1 gigabyte. Raspberry Pi merupakan komputer dalam satu singleboard.. Chip mengintegrasikan sebuah prosesor (CPU), graphics processing unit (GPU), dan memori pada suatu unit tunggal [1]. Bagian – bagian Raspberry pi adalah sebagai berikut :

1. Prosesor

Prosesor berupa chip 32 bit, 1.2 GHz System on a Chip (SOC) dengan merk Broadcom BCM2837. Menggunakan empat inti merk ARM Cortex-A53 dengan kecepatan 1,2 GHz. Raspberry Pi model 3 mempunyai RAM sebesar 1 GB[1].

2. Slot Secure Digital Card (SD Card)

Raspberry Pi menggunakan SD Card sebagai media penyimpanan seluruh data (hard drive).

3. Port USB

Raspberry Pi Model 3 mempunyai 4 port USB sedangkan Raspberry Pi Model A hanya

mempunyai sebuah Port USB.

4. Port Ethernet, Wifi, dan Bluetooth

Raspberry Pi model 3 mempunyai port ethernet dengan standar RJ45 dan antena berkecepatan 2.4 GHz 802.11n untuk penangkap sinyal wifi. Raspberry model 3 juga terdapat bluetooth untuk transfer data dan koneksi dengan sebuah hardware yang menggunakan koneksi tersebut.

5. Konektor HDMI (High-Definition Multimedia Interface)

Port HDMI digunakan sebagai penyedia keluaran video dan audio digital. Sinyal HDMI

(27)

6. Output Audio Analog

Port audio analog digunakan sebagai penyedia keluaran audio analog untuk speaker

dengan jack standar 3,5 mm mini analog audio jack. 7. Keluaran Composite Video

Jack standar tipe RCA menyediakan keluaran untuk sinyal video NTSC dan PAL [2].

8. Port GPIO

Selain itu terdapat port General Purpose Input/Output (GPIO) digunakan untuk berhubungan dengan suatu hardware eksternal. Raspberry Pi mempunyai 26 pin GPIO. Gambar 2.1. menunjukkan konfigurasi pin pada port GPIO.

(28)

Basis Operating System (OS) pada Raspberry Pi yaitu Linux. Prosesor Broadcom [1][2]mempunyai device driver dan kode yang tidak terdapat dalam standar Linux

distribution. Ukuran RAM (Read Access Memory) pada Raspberry Pi berbeda dengan

ukuran RAM komputer desktop. Linux distribution khusus untuk Raspberry pi dikembangkan dalam mengatasi ketidaksesuaian Raspberry Pi dengan standar Linux. Linux

distribution yang dibuat di antaranya Raspbian (direkomendasikan secara resmi), Adafruit Raspberry PI Educational Linux, Arch Linux, Xbian, Qton Pi.

Raspi ini nantinya berfungsi untuk menyimpan database yang berisikan identitas dari pemilik kartu ruangan. Untuk mempermudah pengecekan data yang masuk maupun keluar, akan dibuat sebuat antar muka (interface) yaitu dengan menggunakan perangkat lunak (software) dengan python.

2.2.

Bahasa Pemrograman Python

Python ditemukan oleh Guido van Rossum. Bahasa Python merupakan bahasa pemrograman yang dikategorikan highlevel language . Berbeda dengan lowlevel language,

highlevel language tidak dapat langsung dijalankan oleh mesin, perlu diproses terlebih

dahulu agar dapat dijalankan oleh mesin. Pada sisi interface, digunakan modul Tkinter yang merupakan interface standar yang biasa digunakan pada pemrograman Python [2].

Program atau script Python dapat langsung dieksekusi, tidak perlu proses

compiling ke kode mesin. Dalam Python, pemrograman tidak perlu menegaskan sebuah

variabel berupa number, list, atau string [2]. Python merupakan open source software. Bahasa pemrograman python masih dikembangkan dan diperbaiki[2].

2.2.1.

Modul Tkinter

Tkinter merupakan modul Python untuk pembuatan tampilan atau biasa disebut

Graphical User Interface. Modul mempunyai widget atau komponen yang dapat diatur

dengan kode – kode tertentu untuk menghasilkan tampilan yang dapat dikendalikan dari layar monitor LCD.

2.2.2.

Modul MySQLdb

(29)

2.2.3.

Modul RPi.GPIO

GPIO merupakan modul untuk membaca dan mengendalikan port GPIO pada

Raspberry Pi [2].

2.2.4.

Modul Pexpect

Pexpect merupakan modul Python untuk mengendalikan suatu aplikasi secara otomatis.

2.3.

Elektrik Solenoid

Elektrik solenoid ini adalah salah satu solenoid pengunci otomatis yang difungsikan khusus sebagai solenoid untuk pengunci pintu yang biasa disebut Door Lock Solenoid. Alat ini membutuhkan tegangan supply 12v. Prinsip kerja dari elektrik solenoid adalah elektromagnet dimana arus listrik yang berasal dari sumber DC maupun AC menimbulkan medan magnet sehingga dapat menggerakan batang besi yang ada pada solenoid. Sistem kerja solenoid ini adalah NC (Normally Close). Katup solenoid akan tertarik jika ada tegangan dan sebaliknya katup solenoid akan memanjang jika tida ada tegangan. Contoh gambar bisa dilihat pada gambar 2.2.

Solenoid yang akan digunakan adalah Door Solenoid 12v, dengan material metal. Solenoid ini mempunyai panjang langkah sepanjang 10mm dan gaya sebesar 50gr. Ukuran totalnya 6,6 x 4 x 2,7 cm dengan panjang kabel 24 cm dan berat kotornya 147gr. Solenoid ini membutuhkan suplai daya 650 mA pada tegangan 12V dan 500 mA pada 9V.

Gambar 2.2 Contoh Door Lock solenoid

2.4.

Sistem Database

(30)

tersebut kemudian dapat dimanipulasi dan diatur menggunakan statement – statement yang ditulis dalam bahasa SQL (Structured Query Language). Python telah menyediakan MySQL sebagai RDBMS standar yang dapat digunakan untuk pemrograman database. Artinya, kita tidak perlu melakukan instalasi software atau driver tambahan untuk bekerja dengan modul MySQL sudah disediakan di dalam pustaka standar Python. Meskipun demikian Python juga memiliki dukungan penuh terhadap RDBMS lain seperti, MySQL, Oracle, PostgreSQL, DB2 dan lain sebagainya.

MySQL merupakan sebuah sistem manajemen basisdata relasional yang dirancang untuk mengelola data pada sebuah aplikasi dengan cara yang nyaman dan tanpa biaya yang mahal [11]. Kelebihan dari MySQL adalah mudah digunakan, efisien dan dapat diandalkan [12].

Selain MySQL, Python juga menyertakan dukungan terhadap jenis database manager (DBM) di dalam pustaka standar. DBM sering digunakan di lingkungan UNIX/Linux, yang merupakan jenis database dengan data berupa pasangan kunci – nilai, (key – value pair). DBM sangat mirip dengan struktur data dictionary di dalam Python.

Perbedaannya ada pada DBM datanya di simpan ke dalam disk sedangkan dictionary datanya hanya disimpan di dalam memori komputer.

2.4.1.

Membuat Database MySQL

[image:30.595.80.530.238.703.2]

Pembuatan database MySQL dapat dilakukan dengan mudah menggunakan kode Python. Caranya dengan menyertakan nama pada saat kita membuat objek koneksi. Jika nama yang kita sertakan ke dalam parameter connect() belum ada di direktori kerja, maka secara otomatis file baru yang merupakan file database MySQL akan terbuat. Jika file sudah ada sebelumnya, maka database tersebut akan dibuka. Berikut adalah contoh gambar pembuatan database MySQL dengan metode kode python sqlite yang diberi nama test.db [7].

(31)

Jika database SQLite sudah terbuat maka akan muncul tulisan “Opened database successfully”, yang berarti database berhasil dibuat dan disimpan dalam direktori kerja. Berikut ini adalah contoh gambar jika database berhasil dibuat.

Gambar 2.4 hasil tulisan bahwa database berhasil dibuat

2.4.2.

Operasi Pembuatan Tabel (Create a Table)

Selanjutnya akan dibuat tabel pada database SQLite yang sudah terbuat tadi. Berikut adalah contoh kode Pythonnya yang ditunjukkan pada gambar 2.5 [7].

[image:31.595.83.522.268.684.2]

Gambar 2.5 contoh kode python untuk membuat tabel dalam database

Jika sudah terbuat maka akan muncul tulisan “Table created successfully” seperti ditunjukkan pada gambar 2.6.

(32)

2.4.3.

Operasi Penambahan Data (Insert Operation)

[image:32.595.85.525.151.545.2]

Berikut ini adalah kode python yang berfungsi untuk menambahkan suatu data di dalam tabel yang sudah kita buat, bisa dilihat pada gambar 2.7 [7].

Gambar 2.7 Contoh kode python untuk menambahkan data kedalam tabel

Jika tabel sudah terbuat, maka akan muncul tulisan “Records created successfully” yang bisa dilihat pada gambar 2.8.

Gambar 2.8 hasil tulisan bahwa tabel berhasil dibuat

2.4.4.

Operasi Pemilihan Data (Select Operation)

Jika diinginkan memilih dan memunculkan suatu data yang ada di dalam tabel, bisa digunakan perintah cursor = conn.execute(). Bisa dilihat pada gambar 2.9 [7].

(33)
[image:33.595.85.523.138.706.2]

Jika kita sudah memilih salah satu data yang ada pada tabel, maka akan muncul data yang kita inginkan yaitu nomor ID, Name, Address, dan Salary. Bisa dilihat pada gambar 2.10.

Gambar 2.10 Hasil pemilihan data yang sudah dibuat

2.4.5.

Operasi Memperbarui Data (Update Operation)

Berikut adalah cara untuk mengganti data yang sudah ada dengan data yang baru. Misalnya kita menginginkan data ID nomor 1 dengan salary 25000 yang sebelumnya 20000. Bisa dilihat pada gambar 2.11 [7].

(34)
[image:34.595.83.522.140.721.2]

Jika pembaruan data sudah terbuat, maka akan muncul data yang ada pada database beserta pembaruannya yaitu Salary nomor ID 1 yang sebelumnya 20000 menjadi 25000. Bisa dilihat pada gambar 2.12.

Gambar 2.12 menunjukkan hasil kode python untuk memperbarui data

2.4.6.

Operasi Menghapus Data (Delete Operation)

Berikut adalah cara untuk menghapus data yang ada pada tabel database SQL, misalnya saja menghapus data dengan nomor ID 2. Bisa dilihat pada gambar 2.13 [7].

(35)
[image:35.595.82.515.139.592.2]

Ketika program diatas dieksekusi, maka akan muncul data yang tersisa pada tabel database SQL. Bisa dilihat pada gambar 2.14.

Gambar 2.14 hasil eksekusi program penghapusan data

2.5.

Barcode

Barcode atau kode batang adalah suatu kumpulan data optik berbentuk sebuah blok

persegi paralel bar . Kode batang ini mengumpulkan suatu data dalam bentuk garis lebar dan spasi garis paralel atau simbologi linear atau 1D (1 dimensi) [8]. Kode batang juga memiliki bentuk persegi, titik, heksagon da nbentuk geometri lainnya yang disebut juga kode matriks atau 2D (2 dimensi).

Barcode atau kode batang ini berisikan data atau suatu informasi penting

contohnya seperti informasi tentang harga, informasi tentang identitas suatu barang atau orang, dan lain sebagainya sesuai kebutuhan dan jenis kode batangnya. Dengan merubah sebuah data menjadi suatu kode batang agar dapat dibaca oleh sistem komputer dengan mudah.

Pada pembuatan barcode akan digunakan software yaitu Inkscape yang dimana nantinya merubah angka menjadi gambar barcode. Fungsi dari inkscape sendiri adalah untuk membuat barcode atau kode batang yang nantinya menjadi inputan bagi raspi.

(36)

Inkscape adalah perangkat lunak editor gambar vektro yang bersifat perangkat lunak bebas dibawah lisensi GNU GPL. Fungsi utama Inkscape adlah menjadi perangkat grafik mutakhir yang memenuhi standar XML, SVG, dan CSS [6].

Inkscape dirintis pada 2003 sebagai sebuah fork dari proyek Sodipodi. Sodipodi sendiri, yang dikembangkan sejak 1999, didasarkan pada Gill (Gnome Illustration Application), buah karya dari Raph Levien [6].

Seperti program menggambar lainnya, Inkscape menawarkan pembuatan bentuk dasar (seperti elips, persegi panjang, bintang, poligon, dan spiral) serta kemampuan untuk mengubah dan memanipulasi bentuk – bentuk dasar oleh rotasi, peregangan, dan skewing.

Inkscape juga memungkinkan pengguna untuk memanipulasi objek secara tepat dengan menyesuaikan titik simpul dan kurva. Seniman canggih menemukan fungsi – fungsi ini sangat diperlukan dalam menggambar software untuk bebas menciptakan apa yang mereka bayangkan.

[image:36.595.82.528.246.569.2]

Pada penelitian kali ini akan digunakan kode batang bertipe Code 39 yang dimana barcode tersebut tertera pada kartu masuk ruangan. Ada banyak jenis dari kode batang tersebut, misalnya saja EAN-13, Code 39, EAN-8, UPC-E. Bisa dilihat pada gambar 2.15

Gambar 2.15 Contoh CODE 39

Tipe barcode atau kode batang yang banyak di Indonesia adalah EAN-13, yaitu kode batang dengan 13 digit. Dimana 3 kode awalnya merupakan kode negara Indonesia yaitu 899. Kemudian empat angka berikutnya menunjukkan kode perusahaan. Selanjutnya lima angka berturut – turut merupakan kode produk dan angka terakhir berupa validasi atau cek digit [8].

Berikut adalah cara membaca barcode atau kode batang :

1. Barcode terdiri dari garis hitam dam putih. Ruang putih di antara garis garis hitam adalah bagian dari kode.

2. Ada perbedaan ketebalan garis. Garis paling tipis = “1”, yang sedang = “2”, yang

(37)
(38)

16

BAB III

RANCANGAN PENELITIAN

3.1.

Perancangan Sistem

Sistem ini terdiri dari 3 subsistem yaitu Database, Mikrokontroler, dan Software seperti yang ditunjukkan pada gambar 3.1. Subsistem database akan diolah dalam Raspberry

Pi. Subsistem database akan berisi tentang informasi – informasi pemilik kartu mahasiswa

seperti nama, nomor induk mahasiswa (NIM), dan pencacatan waktu masuk dan keluar ruangan yang berasal dari masukan barcode yang terdapat pada kartu. Sistem database akan menggunakan MySQL. Database tersebut akan dibagi menjadi dua yaitu database pemilik kartu dan database pencatatan waktu atau data logger dalam jangka waktu 1 hari.

Subsistem mikrokontroler sendiri yaitu Raspberry Pi itu sendiri yang berfungsi sebagai prosesor. Raspberry Pi akan menerima inputan dari barcode scnanner melalui port USB yang ada pada Raspberry Pi dan mengolah database yang nantinya akan mengeluarkan sinyal pada port GPIO (General Purpose Input/Ouput) Raspberry Pi untuk gerakan buka dan tutup solenoid pada pintu. Elektrik solenoid dihubungkan pada port GPIO Raspberry

Pi. Barcode scanner dihubungkan melalui usb port pada Raspberry Pi yang berfungsi

sebagai inputan data. Keyboard dan mouse dihubungkan melalui USB port pada Raspberry

Pi sebagai alat untuk pembuatan program pada raspberry. Monitor LCD dihubungkan

melalui port HDMI untuk tampilan GUI (Graphical User Interface).

Subsistem software atau perangkat lunak akan menggunakan program Python 2.7. Pada Software, yang berhak untuk mengubah data data dalam database adalah operator. Operator berfungsi sebagai pembuat program, pembuat database identitas dan monitoring

database seperti siapa saja yang telah masuk dan keluar ruangan beserta waktunya. Software

(39)
[image:39.595.82.523.123.552.2]

Gambar 3.1 Diagram blok sistem

3.2.

Perancangan Database

Perancangan database menggunakan software Python 2.7 yang sudah ada dalam OS Raspbian. Software Python nantinya akan mengunduh paket – paket aplikasi untuk membuat database. Database yang akan digunakan pada Python yaitu SQLite3 yang tentunya sudah kompatibel dengan Python 2.7.

Database dibagi menjadi dua yaitu database identitas yang berisikan nama, dan

nomor induk mahasiswa serta database history atau pencatatan waktu pengguna ruangan baik waktu masuk maupun waktu keluar dengan jangka watu harian. Tabel 3.1 adalah perancangan database untuk identitas dan Tabel 3.2 perancangan database untuk History.

Tabel 3.1 Perancangan database identitas ID Tipe Data

Nama Text

NIM Text

(40)

Tabel 3.2 Perancangan database History

ID Tipe Data

NIM (Nomor Induk Mahasiswa)

Text

Nama Text

Waktu Masuk Datetime Waktu Keluar Datetime

3.3.

Perancangan Software

Perangkat lunak yang ada pada sistem Raspberry Pi mengggunakan bahasa Python 2 yang nantinya akan dibuat antar muka untuk memudahkan operator dalam merancang dan memantau apakah sistem sudah berjalan dengan benar atau belum. Operator mempunyai hak akses penuh untu dapat menambahkan dan menghapus database sistem. Rancangan tampilan atau GUI bisa dilihat pada gambar 3.4.

Pada sisi database digunakan MySQL, dimana akan terdapat database identitas pemilik kartu, dan database pencatatan waktu masuk. Pada database identitas akan dibuat tabel yang berisikan nama, nomor induk mahasiswa. Database tersebut berfungsi untuk pencocokan data dengan masukan dari barcode apakah benar pemilik kartu tercatat pada

database. Jika benar, maka raspberry akan mengeluarkan sinyal untuk membuka solenoid

agar pintu bisa terbuka. Jika masukan barcode tidak tercatat pada database maka muncul peringatan pada monitor dan solenoid tidak menerima inputan yang menyebabkan pintu tidak terbuka.

3.3.1.

Diagram Alir Pintu Masuk

Program dimulai dari input barcode yang berasal dari barcode scanner yang terdapat pada kartu mahasiswa. Lalu dari barcode tersebut dicocokan dengan database yang ada pada database sistem, jika tidak ada maka buzzer akan berbunyi dan muncul peringatan pada GUI, jika ada maka akan muncul nama, NIM, dan tercatat waktu masuknya. Lalu

Raspberry Pi mengirimkan sinyal ke port GPIO 19 untuk mengaktifkan solenoid agar pintu

(41)

3.3.2.

Diagram Alir Pintu Keluar

Hampir sama dengan proses pintu masuk, seseorang yang akan keluar dari ruangan harus dipindai terlebih dahulu barcode nya agar dapat membuka kunci pintu. Masukan

barcode yang ada pada kartu mahasiswa akan dicocokan dengan database yang ada pada

(42)
[image:42.595.84.508.142.630.2]
(43)
[image:43.595.84.509.115.627.2]
(44)
[image:44.595.82.527.140.633.2]

Gambar 3.4 Tampilan rencana antar muka (GUI) pada software Python

3.4.

Perancangan Hardware

Pada perancangan hardware, akan dibuat miniatur pintu akses ruangan yang dimana terdapat barcode scanner dan monitor LCD pada sisi dalam pintu. Sedangkan pada sisi dalam terdapat raspberry sebagai otak dari pemrosesan database, adaptor sebagai suplai daya dan juga UPS sebagai antisipasi jika terjadi listrik padam.

Untuk buzzer dihubungkan pada port GPIO nomor 13 untuk keluaran. Pada port GPIO nomor 19 dan 26 digunakan untuk keluaran menuju relay yang nantinya berfungsi untuk pengaktifan solenoid.

Keyboard dan Mouse dipasang pada Raspberry Pi melalui USB Port. Untuk

melihat tampilan dipasang juga LCD monitor yang dihubungkan dengan kabel HDMI yang ada pada Raspberry Pi.

(45)
(46)

25

BAB IV

HASIL DAN PEMBAHASAN

Bab ini menjelaskan tentang pengamatan implementasi sistem keamanan ruangan berbasis raspberry pi 3 dengan barcode sebagai inputan. Suatu program dapat diakatan bekerja dengan baik apabila disertai dengan pembuktian terhadap hasil kerja sesuai dengan yang dikenhendaki. Hasil implementasi dan pembahasan dibagi menjadi dua topik yaitu perancangan pada perangkat lunak, hasil perancangan database yang terdiri dari informasi pengguna hingga perekaman data inputan yang ada pada database (history).

Hasil dari pengujian berfungsi untuk mengetahui sejauh mana keberhasilan suatu perancangan serta dapat mengetahui kelebihan dan kekurangan sistem yang telah dibuat, sehingga hasil pengujian tersebut dapat digunakan sebagai acuan dalam penyempurnaan kinerja dan dapat digunakan untuk pengembangan selanjutnya.

4.1.

Pengujian Keseluruhan Sistem

Hasil perancangan prototype dari sistem keamanan ruangan dengan masukan

barcode berbasis raspberry pi dilihat pada gambar 4.1. Terdapat monitor LCD, webcam,

[image:46.595.80.529.207.721.2]

rangkaian hardware untuk simulasi, dan juga raspberry pi itu sendiri.

(47)
[image:47.595.81.516.187.473.2]

Pada input sistem terdapat webcam yang bisa diletakkan pada monitor LCD yang berfungsi untuk menerima masukan data berupa barcode yang bersasal dari kartu mahasiswa. Terdapat juga keyboard dan mouse yang berfungsi untuk pengontrolan program pada sistem operasi raspbian Pixel . Gambar peletakan webcam bisa dilihat pada gambar 4.2.

Gambar 4.2 peletakan webcam pada monitor LCD

Pada pengolah sistem, terdapat Raspberry Pi yang berfungsi sebagai pemroses data – data yang ada dalam database baik itu untuk pencatatan, penambahan dan pengurangan data. Data tersebut antara lain data identitas, data waktu masuk dan waktu keluar, dan juga data perintah untuk mengeluarkan output raspberry pi yang sudah dibuat melalui perangkat lunak python 2.7.

(48)
[image:48.595.82.525.136.720.2]

oleh solenoid door lock yaitu sebesar 12v. Gambar hasil rangkaian bisa dilihat pada gambar 4.3 dibawah ini.

Gambar 4.3 Rangkaian PCB untuk simulasi hardware

Mekanisme kerja dari prototype adalah Pada awalnya operator harus mengaktifkan webcam melalui menu Utama dan memilih tombol Aktifkan Webcam, setelah itu akan muncul jendela webcam yang artinya webcam siap untuk digunakan. Proses pemindaian dilakukan dengan cara mendekatkan kartu mahasiswa yang terdapat barcode ke arah webcam dengan jarak sekitar 5 – 10 cm. Setelah webcam berhasil membaca barcode maka akan muncul pada python shell yaitu value atau nilai yang terdapat pada barcode, lalu webcam bisa dimatikan dengan cara menekan tombol X atau close pada jendela webcam. Setelah itu maka nilai barcode tadi akan muncul pada entry box lalu tekan tombol INPUT untuk mencatat waktu masuk. Lalu muncul peringatan berupa “SELAMAT DATANG” yang menandakan bahwa data berhasil ditambahkan. Gambar proses ditunjukkan pada gambar 4.4, 4.5, 4.6, 4.7, 4.8, 4.9 dan 4.10 dibawah ini.

(49)
[image:49.595.87.505.75.705.2]

Gambar 4.5 proses pemindaian barcode dengan NIM 145114003 saat pintu masuk

Gambar 4.6 hasil pemindaian muncul pada python shell

Gambar 4.7 NIM 145114003 muncul pada entry box untuk pencatatan database

(50)
[image:50.595.84.513.83.565.2]

Gambar 4.9 NIM 145114053 sudah tercatat waktu masuk pada database bagian paling bawah

Gambar 4.10 simulasi hardware pada pintu masuk pengunci pintu dan led aktif

(51)
[image:51.595.86.510.144.621.2]

untuk mencatat waktu keluar. Gambar proses ditunjukkan pada gambar 4.11, 4.12, 4.13, 4.14, 4.15, 4.16 dan 4.17 dibawah ini.

Gambar 4.11 langkah mengaktifkan webcam pada pintu keluar

Gambar 4.12 proses pemindaian barcode dengan NIM 145114003 saat pintu keluar

Gambar 4.13 hasil pemindaian muncul pada python shell

Gambar 4.14 NIM 145114003 muncul pada entry box untuk pencatatan database

(52)
[image:52.595.84.518.86.587.2]

Gambar 4.16 NIM 145114003 sudah tercatat waktu keluar pada database bagian paling bawah

Gambar 4.17 simulasi hardware untuk pintu keluar pengunci pintu dan led aktif

Pada saat kondisi tertentu perangkat lunak akan muncul suatu bug seperti jika ada nim yang belum terdaftar pada database, sistem akan menganggap nim tersebut ada akan tetapi database tidak akan mencatat nim yang tidak terdaftar kedalam tabel history. Hal ini disebabkan oleh miss komputasi pada bagian pengondisian database yang menyebabkan

tidak munculnya peringatan “TIDAK ADA NAMA DALAM DATABASE” sehingga perlu

(53)

4.2.

Hasil Perancangan Perangkat Lunak (GUI)

Pada hasil perancangan perangkat lunak akan dijelaskan tentang penggunaan

software Python 2.7 dan software MySQL. Perangkat lunak dapat berisikan informasi untuk

melihat daftar pengguna akses ruangan dan dapat melihat riwayat (history) siapa saja yang telah menggunakan suatu ruangan berdasarkan pada pencatatan nomor induk mahasiswa, pencatatan waktu masuk dan waktu keluar.

4.2.1

Proses Pengunduhan Library Python

Sebelum dapat digunakan fungsi –fungsi yang dibutuhkan pada Python, maka harus mengunduh file – file library dari internet. File –file library yang dibutuhkan yaitu library database MySql, library Zbar untuk pembacaan barcode, library OpenCv untuk pencitraan

pada webcam. Pengunduhan file –file library melalui Terminal yang ada di Raspberry

[image:53.595.80.525.252.545.2]

dengan menggunakan perintah sudo apt-get install. Contoh pengunduhan bisa dilihat pada gambar 4.18.

Gambar 4.18 Pengunduhan file – file library untuk Python

Install update berfungsi untuk memperbarui sistem pada raspberry pi yang dapat

meningkatkan kegunaan dan kinerja sistem sedangkan upgrade berfungsi untuk menginstall versi terbaru paket – paket yang sudah terinstall pada sistem. Install pip-opencv2 berfungsi untuk menginstall paket – paket pada sistem yang berfungsi untuk pengolahan citra pada

raspberry pi, misalnya untuk pendeteksian gerakan melalui kamera. Install zbarcam untuk

menginstall paket pada sistem yang berfungsi untuk pengolahan citra dengan masukan

barcode yang menggunakan webcam atau Raspicam. Install python-mysql untuk menginstall

(54)

Dengan menggunakan perintah khusus yang sudah ditentukan seperti sudo apt-get

install update oleh Raspbian OS kita dapat mengunduh file – file library yang dibutuhkan.

Sebaiknya dilakukan update library Raspbian OS agar tetap up to date dengan sistem terbaru yang telah dikembangkan oleh developer Linux karena basis utama dari Raspbian

OS adalah software Linux.

[image:54.595.82.514.215.538.2]

Pada gambar 4.19 dituliskan program untuk mengimport suatu fungsi –fungsi pada program agar dapat digunakan fitur fitur library pada Python 2.7. Listing program bisa dilihat pada gambar 4.19. Berikut adalah program (coding) dari graphical user interface (GUI) dengan menggunakan program Python 2.7.

Gambar 4.19 Listing program untuk import package pada Python 2.7

4.2.2

Halaman Utama Program (GUI)

Pada perangkat lunak atau GUI (Graphical User Interface), dapat terlihat siapa saja yang telah terdaftar dan memiliki hak akses ruangan dalam database. Terdapat informasi detail daftar identitas pengguna ruangan diantaranya adalah nama pengguna, nomor induk mahasiswa (NIM), prodi (program studi), dan jabatan pengguna ruangan.

(55)

ditambahkan progam studi dan jabatan. Tertampil juga daftar nama - nama pengguna yang telah terdaftar dalam database.

Gambar 4.20 Hasil GUI (Graphical User Interface)

Terdapat beberapa fitur yang dapat digunakan pada GUI. Pengoperasian fitur program dijelaskan sebagai berikut :

1. Menu Utama

Pada menu Utama terdapat 2 tombol yaitu tombol Aktifkan Webcam dan EXIT seperti yang ditunjukkan pada gambar 4.22. Tombol Aktifkan Webcam berfungsi untuk mengaktifkan tampilan webcam untuk mendeteksi barcode. Sedangkan Tombol EXIT digunakan untuk keluar dari program GUI. Sedangkan listing

program untuk membuat fitur tersebut ada pada gambar 4.21.

[image:55.595.87.527.117.752.2]

Gambar 4.21 listing program untuk menubar

(56)

2. Tombol “INPUT”

[image:56.595.86.523.198.741.2]

Pada halaman utama GUI terdapat tombol INPUT yang berfungsi sebagai tombol untuk mencatat NIM yang berasal dari barcode yang ada di kartu mahasiswa, mencatat waktu masuk serta waktu keluar seperti yang ditunjukkan pada gambar 4.24. Sedangkan listing program untuk membuat fitur tersebut ada pada gambar 4.23.

Gambar 4.23 listing program untuk menu “INPUT”

Gambar 4.24 Tombol INPUT untuk pencatatan pada database

3. Menu Detail

Menu ini akan menampilkan detail identitas member pengguna ruangan. Terdapat detail nomor induk mahasiswa, nama, program studi, jabatan seperti yang ditunjukkan pada gambar 4.26. Sedangkan listing program untuk membuat fitur tersebut ada pada gambar 4.25.

(57)
[image:57.595.80.526.69.636.2]

Gambar 4.26 Menu Detail untuk menampilkan detail identitas member

4.3.

Hasil Perancangan Database

Pada hasil perancangan database sudah dibuat data – data yang berisikan informasi – informasi yang berhubungan dengan penggunaan akses ruangan dan diberi nama database ”roomaccess”. Dalam database ini terdapat dua buah tabel, yaitu tabel identitas dan tabel

history.

Agar GUI bisa terkoneksi dengan database, diperlukan connector dengan cara mengunduh library MySql connector pada terminal Raspi, menggunakan perintah sudo

apt-get install server terlebih dahulu, lalu gunakan perintah sudo apt-apt-get install mysql-connector-python.

Tabel identitas berisikan identitas dari semua daftar pengguna ruangan yang terdiri dari nama, nomor induk mahasiswa (NIM), program studi (prodi), dan jabatan (mahasiswa atau dosen). Pada tabel identitas terdapat 4 kolom terdiri dari ididentitas, nama, program studi (prodi), dan jabatan. Pada kolom ididentitas yaitu nomor induk mahasiswa (NIM) dengan tipe data varchar(15). Kolom ididentitas dijadikan sebagai Primary Key karena nantinya digunakan untuk pencatatan pada tabel History. Kolom kedua terdapat nama dengan tipe data tinytext, kolom ketiga terdapat program studi (prodi) dengan tipe data

varchar(45), dan kolom keempat yaitu jabatan dengan tipe data tinytext. Isi dari

(58)
[image:58.595.84.523.88.668.2]

Gambar 4.27 Tabel identitas pada database roomaccess

Pengujian database pada tabel identitas yaitu dengan menambah jumlah member dengan cara mengisi informasi – informasi yang sesuai pada setiap kolom dan untuk eksekusinya tinggal menekan tombol GO pada editor database yaitu PHPMyAdmin. Form pengisian identitas bisa dilihat pada gambar 4.28 dibawah ini.

Gambar 4.28 Form pengisian identitas ada tabel identitas

(59)

data int(11) berisikan nomor urutan pencatatan pengguna ruangan. Pada kolom waktu_masuk yang bertipe data datetime berisikan pencatatan waktu masuk penggunaan ruangan. Pada kolom waktu_keluar yang bertipe data datetime berisikan pencatatan waktu keluar ruangan. Pada kolom member yang bertipe data varchar(45) berisikan nomor induk mahasiswa (NIM) yang akan dicatat pada tabel history, kolom ini mengacu pada tabel ididentitas. Kolom member dijadikan sebagai primary key pada tabel History. Apabila nomor induk mahasiswa tidak ada pada tabel ididentitas maka tidak akan tercatat pada tabel

history. Isi tabel history bisa dilihat pada gambar 4.29.

Untuk pengujian pada tabel history, digunakan perintah – perintah query pada editor database yaitu INSERT INTO `history`(`idhistory`, `waktu_masuk`, `waktu_keluar`, `member`) VALUES ([value-1],[value-2],[value-3],[value-4]). Untuk pengujian kolom waktu masuk pada tabel history digunakan query SQL INSERT INTO, begitu juga untuk waktu keluar dengan query INSERT INTO `history`(`idhistory`, `waktu_masuk`, `waktu_keluar`, `member`) VALUES ([value-1],[value-2],[value-3],[value-4]) dan untuk mengeksekusi query tersebut tinggal menekan tombol GO pada editor seperti pada gambar 4.30.

(60)
[image:60.595.83.516.226.591.2]

Gambar 4.30 Editor untuk pengujian penambahan data waktu pada tabel History

Hasil pembuatan database ditampilkan dengan EER-Diagram seperti pada gambar 4.31 yang menunjukkan hubungan atau relasi setiap tabel dan data – data apa saja yang akan disimpan dalam sistem database yang sudah dibuat.

Gambar 4.31 EER-Diagram Perancangan Database

Agar GUI Python bisa berinteraksi dengan database diperlukan koneksi database ke GUI. Dengan menggunakan connector, maka python dengan GUI dapat berinteraksi untuk melakukan fungsinya yaitu membaca isi database dan mencatat waktu pada tabel

history.

4.4.

Hasil Pengujian Pembacaan Barcode Dengan Webcam

(61)

dilakukan pengujian pada webcam untuk mengetahui kemampuan webcam mana yang lebih akurat dan lebih cepat pembacaannya. Webcam pertama dengan merk webcam GENIUS FaceCam 320 yang beresolusi VGA 640 x 480 pixel (video) dengan manual focus dan

webcam kedua dengan merk Logitech C170 yang beresolusi VGA 640 x 480 pixel (video)

dengan fixed focus. Agar dapat barcode pada kartu mahasiswa terbaca oleh webcam diperlukan library Zbarcam. Kode python juga disertakan agar dapat diolah dalam satu program utama. Hasil pengamatan pembacaan barcode pada kartu mahasiswa dan kode

Python ditunjukkan pada gambar 4.33, gambar 4.34 dan gambar 4.35 berurutan.

Sebuah kode python dibutuhkan untuk mengaktifkan webcam. Dengan memanggil

library Zbarcam dan pada alamat /dev/video0, maka webcam akan aktif dan siap digunakan.

[image:61.595.88.527.256.589.2]

Jika barcode terbaca pada webcam, maka perintah print ‘Got Barcode :’, code akan muncul pada python shell sesuai dengan jenis barcode yang tertera pada kartu mahasiswa. Kode python bisa dilihat pada gambar 4.32.

Gambar 4.32 Kode Python yang digunakan untuk pembacaan barcode

4.4.1.

Pengujian Pembacaan Barcode Dengan Webcam Genius FaceCam

320

(62)
[image:62.595.86.509.91.702.2]

Gambar 4.33 Pengujian jarak terdekat pada webcam Genius FaceCam 320

Gambar 4.34 pembacaan barcode oleh webcam tertampil pada LCD monitor

(63)

4.4.2.

Pengujian Pembacaan Barcode Dengan Webcam Logitech C170

Pada percobaan kedua menggunakan webcam Logitech C170. Hasil pemindaian

barcode dapat didapatkan akan tetapi sedikit lebih lama dikarenakan lensa tidak dapat diatur

[image:63.595.84.512.212.610.2]

atau fixed focus. Webcam Logitech C170 dapat mendeteksi barcode dengan jarak 10 – 15,5 cm. Gambar pengujian bisa dilihat pada gambar 4.36, 4.37 dan gambar 4.38 dibawah ini.

Gambar 4.36 Pengujian pembacaan barcode pada jarak terdekat

Gambar 4.37 Pengujian pembacaan barcode pada jarak terjauh

Pengujian kedua menggunakan kartu dengan nomor barcode 145114053. Hasil dari pembacaan pada webcam Logitech C170 tertampil pada python shell dengan bertuliskan

(64)

Gambar 4.38 Hasil dari pembacaam webcam Logitech C170

Dari hasil kedua pengujian tersebut dapat disimpulkan bahwa kedua webcam mempunyai kemampuan pembacaan yang berbeda walaupun dengan resolusi yang sama yaitu 640 x 480 atau kualitas VGA. Hanya saja yang membedakan kedua webcam tersebut adalah kemampuan untuk mendapatkan titik fokus yang tepat. Pada webcam Genius

FaceCam 320 titik fokusnya dapat diatur secara manual sehingga kecepatan dalam

menangkap dan membaca barcode lebih cepat dibandingkan dengan webcam Logitech C170 yang mempunyai titik fokus yang fixed focus atau fokus tetap.

Hasil pembacaan barcode pada webcam akan tertampil di GUI pada bagian entry

“INPUT”, yang nantinya entry tersebut menjadi trigger untuk pencatatan waktu masuk dan

waktu keluar pada database.

4.5

Hasil Pengujian Hardware

Untuk mengetahui proses kerja apakah sudah sesuai dengan perancangan pada penelitian kali ini, dibuat juga proses keluaran dari sistem ini. Seperti yang sudah dibahas pada bab III, keluaran dari sistem ini adalah pada pin – pin GPIO pada raspberry pi. Keluaran pada raspberry pi yaitu solenoid door lock yang berfungsi untuk membuka pintu gerbang,

light-emitting diode (LED) berwarna hijau yang berfungsi untuk menunjukkan pengguna

bisa mengakses ruangan dan pintu gerbang terbuka. Masing – masing LED nantinya bisa diletakkan pada pintu masuk dan pintu keluar. Keluaran yang terakhir adalah buzzer yang berfungsi untuk memberi tanda bahwa ada kesalahan pada input pada webcam yaitu data tidak ada dalam database.

Pada program utama, dibutuhkan paket – paket library python agar raspberry pi dapat mengeluarkan sinyal keluaran pada aktuator. Paket –paket library python tersebut diantara lain adalah port GPIO dengan cara menambahkan kode python yaitu import

Rpi.GPIO as gpio. Fungsi import tersebut berfungsi untuk menginisialisasi pin – pin pada

(65)

pin yang digunakan yaitu pin 5, 6, 13, 19 dan 26 dengan menyeting port GPIO dengan kode gpio.setmode(gpio.BCM) yang berarti port ini menggunakan inisialisasi dari Broadcom

SOC. Pin 5 dan 6 digunakan untuk keluaran LED, pin 19 dan 26 digunakan untuk keluaran

solenoid dan pin 13 digunakan untuk keluaran buzzer.

Dari skematik tersebut sudah dibuat sebuah PCB yang nantinya terdapat LED,

buzzer dan solenoid door lock.

Kode python juga diperlukan untuk pengujian hardware. Kode python ini berfungsi untuk menghidupkan LED, solenoid door lock, dan buzzer.

[image:65.595.87.523.247.729.2]

Pada subprogram pintu masuk, berisikan kode untuk memberikan sinyal keluaran pada port GPIO Raspberry Pi pin 5, 6, 19, dan 23 yang nantinya sinyal tersebut akan mengaktifkan LED dan solenoid lock door. Begitu juga dengan subprogram pintu keluar. Subprogram buzzer berfungsi untuk memberikan sinyal keluaran pada port GPIO pin 13 yang nantinya buzzer akan berbunyi ketika subprogram tersebut dipanggil. Kode python bisa dilihat pada gambar 4.39.

(66)

44

BAB IV

KESIMPULAN DAN SARAN

5.1.

Kesimpulan

Setelah melakukan perancangan, pembuatan, dan pengujian sistem keamanan

Raspberry Pi dengan masukan barcode kesimpulan sebagai berikut :

1. GUI pada monitor dapat tertampil dan tombol – tombol fitur dapat bekerja sesuai dengan fungsinya.

2. Database dapat mencatat waktu masuk dan keluar.

3. Webcam dapat membaca barcode dan dapat menunjukkan nomor dari barcode

beserta jenis barcodenya pada jarak 13 – 19 cm.

4. Masih terdapat bug pada program yaitu pada pengondisian jika tidak ada nama dalam database.

5. Database dapat menyimpan data identitas lebih dari 20 data.

6. Simulasi hardware dapat bekerja untuk menunjukkan bahwa sistem sudah bekerja sesuai dengan perancangan.

5.2.

Saran

Berdasarkan hasil implementasi yang diperoleh, untuk pengembangan lebih lanjut terdapat beberapa saran agar alat ini dapat bekerja lebih baik, yaitu :

1. Penggantian webcam dengan spesifikasi yang lebih baik seperti tingkat resolusi gambar HD (High Definition) dan autofocus sehingga pendeteksian barcode dapat lebih cepat pembacaannya.

2. Pembuatan hardware agar sistem dapat di implementasikan pada ruangan yang sebenarnya.

3. Penggantian tampilan pada GUI agar tampilan lebih baik dan user-friendly. 4. Pembenahan bug pada program pengondisian jika tidak ada nama dalam

[image:66.595.84.529.221.688.2]
(67)

43

DAFTAR PUSTAKA

[1] Schmidt, M., 2012, Raspberry Pi: A Quick-Start Guide, The Pramatic Programmers,

United States of America.

[2] Richardson, M., Wallace S., 2012, Getting Started with Raspberry Pi, O’Reilly Media,

United States of America.

[3] McManus, Sean., Mike Cook, 2013, Raspberry Pi For Dummies, Wiley Brand, United

States of America.

[4] Bresert, E., 2013, SciPy and NumPy, 2nded, O’Reilly Media, United States of America.

[5] ----, ----, Motor Servo,

http://elektronika-dasar.web.id/teori-elektronika/motor-servo/ ,

diakses pada tanggal 2 Mei 2016

[6] Facemyer, Joshua, Inkscape E-Book, Free Software Foundation, Inc., United States of

America.

[7] Raharjo, Budi, 2015, Mudah Belajar Python Untuk Aplikasi Desktop dan Web, Penerbit Informatika, Indonesia.

[8] ----, ----, Bar Coding for Books E-Book

http://www.barcodefaq.com/ , diakses pada tanggal 13 Juni 2016.

[9] Downey, Allen, 2012, Think Python, Green Tea Press, United States of America.

[10] Lundh, Fredrik, 1999, An Introduction to Tkinter, ----, United States of America.

[11] http://www.tutorialspoint.com/sqlite/sqlite_python.htm diakses pada tanggal 12 Juni 2016.

[12] Owens, M., 2006, The Definitve Guide To SQLite, Apress, United States of America.

[13] ----, ----, Raspberry Pi Forum

(68)

[14] ----, ----, Python Coding Forum

(69)
(70)

LISTING PROGRAM PYTHON 2.7

from Tkinter import *

from tkMessageBox import * import tkMessageBox as mb import MySQLdb import sys import ttk import time import zbar import os

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False)

GPIO.setup(16, GPIO.OUT) #LED Masuk GPIO.setup(20, GPIO.OUT) #LED Keluar GPIO.setup(13, GPIO.OUT) #Buzzer

GPIO.setup(19, GPIO.OUT) #Solenoid Masuk GPIO.setup(26, GPIO.OUT) #Solenoid Keluar

judul_kolom = ("WAKTU MASUK", "WAKTU KELUAR", "NIM")

class Data(Frame):

def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent

(71)

self.koneksi() self.isiidentitas(self.sql) self.isiTabel() self.detail() self.listboxData.bind('<ButtonRelease>', self.klik) self.closecam() def initUI(self):

self.update() # memanggil def update dan menjalankanya self.teksJam = StringVar()

self.datJam_menu = time.strftime("SECURITY ROOM ACCESS BASED ON RASPI WITH BARCODE - BONIFASIUS KRISTIAWAN", time.localtime())

# atur ukuran window

# menempatkan window di tengah layar PC/Laptop lebar = 850

tinggi = 500

# ************************* penggunaan fungsi winfo_screenwidth() ************************ #

setTengahX = (self.parent.winfo_screenwidth() - lebar) // 2

# ************************* penggunaan fungsi winfo_screenheight() setTengahY = (self.parent.winfo_screenheight() - tinggi) // 2

self.parent.geometry("%ix%i+%i+%i" % (lebar, tinggi, setTengahX, setTengahY))

# ****************************************************************

(72)

self.main = mainFrame

self.parent.title(self.datJam_menu)

# *********************** tampilan menubar ********************* # self.menubar = Menu(self.parent)

self.parent.config(menu=self.menubar)

self.menu = Menu(self.menubar)

self.menu.add_command(label="Aktifkan Webcam 1", command=self.runscan) self.menu.add_command(label="EXIT", command=quit)

self.menubar.add_cascade(label="Utama", menu=self.menu)

self.fr_inti = Frame(mainFrame, bg='black') self.fr_inti.pack(expand=YES)

# ************************* Fitur Entry ********************** #

fr_c = Frame(self.fr_inti, bg='black') fr_c.pack(expand = YES)

self.button1 = Button(fr_c, text='INPUT :', bg

Gambar

Gambar 2.3 contoh kode Python untuk pembuatan database SQLite
Gambar 2.5 contoh kode python untuk membuat tabel dalam database
Gambar 2.7 Contoh kode python untuk menambahkan data kedalam tabel
gambar 2.10.
+7

Referensi

Dokumen terkait

Tujuan penelitian ini adalah (1) untuk mendeskripsikan nilai pendidikan karakter yang berkaitan dengan ketuhanan, (2) untuk mendeskripsikan nilai pendidikan karakter yang

peruraian amoksisilin dan turunannya, N- benzoilamoksisilin mengikuti kinetika reaksi orde pertama. Tabel 6 menunjukkan bahwa pada tiap tiap suhu pengujian, nilai k dari

Berdasarkan hasil analisis sampel sedimen tersuspensi dan analisis model arus di dapat pada kondisi arus menuju pasang nilai konsentarsi yang tertinggi terdapat di

Hasil dari penelitian ini menemukan bahwa profitabilitas, likuiditas, ukuran dewan komisaris dan struktur kepemilikan asing berpengaruh positif terhadap

Rendah- nya produksi susu sapi perah ini disebabkan oleh: (1) tipe sapi perah sebagian besar adalah tipe B, hal ini dapat dilihat dengan perkem- bangan ambing yang kurang sempurna

Hasil percobaan ini menunjukkan terjadinya perbedaan yang nyata pada bobot embrio ayam yang berasal dari telur tertunas yang diinokulasi ekstrak benalu teh dengan dosis bertingkat

Bunganya lebar dan saling terpisah, sepal (helai kelopak bunganya) berwarna hijau terang yang mana ukuran sisi atasnya kurang lebih 18 x 6 mm, ujungnya melingkar ke belakang,

Namun secara umum dapat dijelaskan bahwa Ordo Siluriformes merupakan kelompok ikan yang memiliki bentuk tubuh kombinasi, berkumis atau bersungut, memiliki sirip