Elektrik Solenoid Barcode DASAR TEORI

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