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
Bagi sebagian besar programmer istilah “database” pada umumnya mengacu ke
model database relasional Relational Database Management System, atau RDBMS. Dalam model ini, data tersimpan di dalam suatu tabel yang terdiri dari baris dan kolom. Data
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
UNIXLinux, 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
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].
Gambar 2.3 contoh kode Python untuk pembuatan database SQLite PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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].
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.
Gambar 2.6 hasil tulisan bahwa tabel dalam database sudah terbuat PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4.3. Operasi Penambahan Data Insert Operation
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].
Gambar 2.9 Contoh kode Python untuk memilih suatu data dalam tabel PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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].
Gambar 2.11 Contoh kode python untuk memperbarui data yang sudah ada PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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].
Gambar 2.13 contoh kode python untuk menghapus data PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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. Barcode yang akan digunakan yaitu tipe Code 39.
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. 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
lebih tebal = “3”, dan yang paling tebal = “4”. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3. Setiap digit angka terbentuk dari urutan empat angka. 0 = 3211, 1 = 2221, 2 = 2122,
3 = 1411, 4 = 1132, 5 = 1231, 6 = 1114, 7 = 1312, 8 = 1213, 9 = 3112 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 InputOuput 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