BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1 Tinjauan

advertisement
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
2.1
Tinjauan Pustaka
Pada Penelitian Minarmi dan Fahzril Hadi Saputra, Jurnal Teknologi Informasi
dan Pendidikan Volume 3, Nomor 1, 1 Maret 2011 , Sistem Informasi Perpustakaan
Berbasis Web Pada Politeknik Kesehatan Padang. Sistem informasi yang dirancang di
Perpustakaan Politeknik Kesehatan Padang dirancang menggunakan program PHP dan
MySQL sebagai databasenya. Sistem yang dirancang berupa sistem peminjaman,
pengembalian, penginputan data anggota, data sirkulasi buku dan pencarian buku.
Pada Penelitian Bima Aditya MS dan M.Julius, Jurnal Hasil Skripsi, Oktober
2013, Aplikasi RFID Untuk Sistem Refrensi Mahasiswa di Unversitas Brawijaya
Berbasis Protokol Internet. Aplikasi ini Sistem presensi menggunakan RFID sebagai
kartu pengenal mahasiswa. Dan pembaca kartu RFID adalah modul ACM 120s yang
bekerja pada frekuensi 13,65 Mhz. Data dari modul ACM 120s akan dibaca dan
diproses oleh mikrokontroler Atmega 328 yang mana sebagai pusat sistem pembaca
presensi. Mikrokontroler Atmega 328 kemudian mengirimkan data presensi ke server
melalui jaringan intranet menggunakan modul WIZ812MJ. Sistem komunikasi yang
digunakan adalah protocol TCP/IP. Kemudian data presensi yang dikirim akan
diproses, dikoreksi dan direkap di server.
2.2
Landasan Teori
2.2.1
Mikrokontroler Arduino
Arduino dikatakan sebagai sebuah platform dari physical computing yang
bersifat open source. Pertama-tama perlu dipahami bahwa kata “platform”
disini adalah sebuah pilihan kata yang tepat. Arduino tidak hanya sekedar sebuah alat
pengembangan, tetapi ia adalah kombinasi dari hardware, bahasa pemprograman dan
Integrated Development Environtment (IDE) yang canggih. IDE adalah sebuah
software yang sangat berperan untuk menulis program, meng-compile menjadi
5
6
kode biner dan meng-upload ke dalam memory microcontroller. Ada banyak projek
dan alat –alat yang dikembangkan oleh akademisi dan profesional dengan
menggunakan Arduino, selain itu juga ada banyak modul-modul pendukung (sensor,
tampilan, penggerak dan sebagainya) yang dibuat oleh pihak lain untuk bisa
disambungkan dengan Arduino. Arduino berevolusi menjadi sebuah platform karena
ia menjadi pilihan dan acuan bagi banyak praktisi.
Salah satu yang membuat arduino memikat hati banyak orang adalah karena
sifatnya open source, baik untuk hardware maupun software-nya. Komponen utama
didalam papan Arduino adalah sebuah microcontroller 8 bit dengan merk Atmega
yang
dibuat
oleh
perusahaan
Atmel Corporation. Berbagai papan Arduino
menggunakan tipe Atmega yang berbeda-beda tergantung dari spesifikasinya, sebagai
contoh Arduino Uno menggunakan Atmega328 sedangkan Arduino Mega 2560 yang
lebih canggih menggunakan Atmega2560. (Djuandi : 2011, 2)
2.2.1.1
Jenis-Jenis Papan Arduino
Saat ini bermacam-macam bentuk papan Arduino yang disesuaikan dengan
peruntukannya seperti diperlihatkan berikut ini :
a.
Arduino USB
Gambar 2.1 Arduino USB (Arduino Uno)
(Yuwono : 2015, 4)
7
Menggunakan USB sebagai antar muka pemrograman atau komunikasi
komputer. Contoh Arduino Uno, Arduino Duemilanove, Arduino Diecimia, Arduino
NG Rev.C, Arduino NG (Nouva Generazioner, Arduino Extreme dan Arduino Extream
v2, Arduino USB dan Arduino Usb v2.0.
b.
Arduino Serial
Menggunakan RS232 sebagai antar muka pemrograman atau komunikasi
komputer. Contohnya adalah Arduino serial dan arduino serial v2.0.
Gambar 2.2 Arduino Serial
(Yuwono : 2015, 4)
c.
Arduino Mega
Papan arduino dengan spesifikasi yang lebih tinggi, dilengkapi tambahan pin
digital, pin analog, port serial dan sebagainya. Contohnya Arduino mega dan arduino
mega 2560.
8
Gambar 2.3 Arduino Mega
(Yuwono : 2015, 4)
d.
Arduino FIO
Arduino Fio ditujukan untuk penggunaan nirkabel.
Gambar 2.4 Arduino Fio
(Yuwono : 2015, 4)
9
e.
Arduino Lilypad
Gambar 2.5 Arduino Lilypad
(Yuwono : 2015, 5)
Papan dengan bentuk yang melingkat. Contoh: Lilypad Arduino 00, Lilypad
Arduino 01, Lilypad Arduino 02, Lilypad Arduino 03, Lilypad Arduino 04.
f.
Arduino BT (bluetooth)
Arduino BT mengandung modul bluetooth untuk komunikasi nirkabel.
Gambar 2.6 Arduino BT
(Yuwono : 2015, 5)
g.
Arduino Mini dan Arduino Nano
Papan berbentuk kompak dan digunakan bersama breadboard. Contoh :
Arduino nano 3.0, Arduino nano 2.x , adruino mini 04, Arduino mini 03, arduino
stamp 02.
10
Gambar 2.7 Arduino Mini/nano
(Yuwono : 2015, 4)
2.2.1.2
Pengenalan Arduino Mega 2560
Arduino Mega 2560 adalah papan pengembangan mikrokontroller yang
berbasis Arduino dengan menggunakan chip ATmega2560. Board ini memiliki pin
I/O yang cukup banyak, sejumlah 54 buah digital I/O pin (15 pin diantaranya adalah
PWM), 16 pin analog input, 4 pin UART (serial port hardware). Arduino Mega 2560
dilengkapi dengan sebuah oscillator 16 Mhz, sebuah port USB, power jack DC,
ICSP header, dan tombol reset. Board ini sudah sangat lengkap, sudah memiliki
segala sesuatu yang dibuthkan untuk sebuah mikrokontroller. Dengan penggunaan
yang cukup sederhana, anda tinggal menghubungkan power dari USB ke PC anda
atau melalui adaptor AC/DC ke jack DC. (Simanjuntak : 2013, 7)
Sifat open source arduino juga banyak memberikan keuntungan tersendiri
untuk kita dalam menggunakan board ini, karena dengan sifat open source
komponen yang kita pakai tidak hanya tergantung pada satu merek, namun
memungkinkan kita bisa memakai semua komponen yang ada dipasaran. Bahasa
pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax
bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan
mendalami mikrokontroler.
11
Gambar 2.8 Board Arduino Mega 2560
(https://www.arduino.cc/en/Products/Counterfeit)
2.2.1.3
Arsitektur Arduino Mega 2560
Chip ATmega2560 pada Arduino Mega 2560 Revisi 3 memiliki memori 256
KB, dengan 8 KB dari memori tersebut telah digunakan untuk bootloader. Jumlah
SRAM 8 KB, dan EEPROM 4 KB, yang dapat di baca-tulis dengan
menggunakan EEPROM library saat melakukan pemrograman.
Pemrograman board Arduino Mega 2560 dilakukan dengan menggunakan
Arduino Software (IDE). Chip ATmega2560 yang terdapat pada Arduino Mega
2560 telah diisi program awal yang sering disebut bootloader. Bootloader tersebut
yang bertugas untuk memudahkan anda melakukan pemrograman lebih sederhana
menggunakan Arduino Software, tanpa harus menggunakan tambahan hardware
lain. Cukup hubungkan Arduino dengan kabel USB ke PC atau Mac/Linux anda,
jalankan software Arduino Software (IDE), dan anda sudah bisa mulai memrogram
chip ATmega2560. Lebih mudah lagi, di dalam Arduino Software sudah diberikan
banyak contoh program yang memanjakan anda dalam belajar mikrokontroller
Untuk pengguna mikrokontroller yang sudah lebih mahir, anda dapat tidak
12
menggunakan bootloader dan melakukan pemrograman langsung via header ICSP
(In Circuit Serial Programming) dengan menggunakan Arduino ISP
Arduino Mega 2560 Rev 3 telah dilengkapi dengan chip ATmega16U2 yang
telah diprogram sebagai konverter USB to Serial. Firmware ATmega16U2 di load
oleh DFU bootloader, dan untuk merubahnya anda dapat menggunakan
software Atmel Flip (Windows) atau DFU programmer (Mac OSX dan Linux),
atau menggunakan header ISP dengan menggunakan hardware external
programmer.
Development board Arduino Mega 2560 R3 telah dilengkapi dengan
polyfuse yang dapat direset untuk melindungi port USB komputer/laptop anda dari
korsleting atau arus berlebih. Meskipun kebanyakan komputer telah memiliki
perlindungan port tersebut didalamnya namun sikring pelindung pada Arduino
Uno memberikan lapisan perlindungan tambahan yang membuat anda bisa dengan
tenang menghubungkan Arduino ke komputer anda. Jika lebih dari 500mA ditarik
pada port USB tersebut, sirkuit proteksi akan secara otomatis memutuskan
hubungan, dan akan menyambung kembali ketika batasan aman telah kembali.
Board Arduino Mega 2560 dapat ditenagai dengan power yang diperoleh
dari koneksi kabel USB, atau via power supply eksternal. Pilihan power yang
digunakan akan dilakukan secara otomatis
External power supply dapat diperoleh dari adaptor AC-DC atau bahkan
baterai, melalui jack DC yang tersedia, atau menghubungkan langsung GND dan
pin Vin yang ada di board. Board dapat beroperasi dengan power dari external
power supply yang memiliki tegangan antara 6V hingga 20V. Namun ada
beberapa hal yang harus anda perhatikan dalam rentang tegangan ini. Jika diberi
tegangan kurang dari 7V, pin 5V tidak akan memberikan nilai murni 5V, yang
mungkin akan membuat rangkaian bekerja dengan tidak sempurna. Jika diberi
tegangan lebih dari 12V, regulator tegangan bisa over heat yang pada akhirnya
bisa merusak pcb. Dengan demikian, tegangan yang di rekomendasikan adalah 7V
hingga 12V
13
Beberapa pin power pada Arduino Mega :

GND adalah ground atau negatif.

Vin. adalah pin yang digunakan jika anda ingin memberikan power langsung
ke board Arduino dengan rentang tegangan yang disarankan 7V - 12V

Pin 5V adalah pin output dimana pada pin tersebut mengalir tegangan 5V
yang telah melalui regulator

3V3 adalah pin output dimana pada pin tersebut disediakan tegangan 3.3V
yang telah melalui regulator

IOREFadalah pin yang menyediakan referensi tegangan mikrokontroller.
Biasanya digunakan pada board shield untuk memperoleh tegangan yang
sesuai, apakah 5V atau 3.3V
Arduino Mega 2560 memiliki jumlah pin terbanyak dari semua papan
pengembangan Arduino. Mega 2560 memiliki 54 buah digital pin yang dapat
digunakan sebagai input atau output, dengan menggunakan fungsi pinMode(),
digitalWrite(), dan digital(Read). Pin-pin tersebut bekerja pada tegangan 5V, dan
setiap pin dapat menyediakan atau menerima arus sebesar 20mA, dan memiliki
tahanan pull-up sekitar 20-50k ohm (secara default dalam posisi disconnect). Nilai
maximum adalah 40mA, yang sebisa mungkin dihindari untuk menghindari
kerusakan chip mikrokontroller
Beberapa pin memiliki fungsi khusus :
 Serial, memiliki 4 serial yang masing-masing terdiri dari 2 pin. Serial 0 : pin
0 (RX) dan pin 1 (TX). Serial 1 : pin 19 (RX) dan pin 18 (TX). Serial 2 : pin
17 (RX) dan pin 16 (TX). Serial 3 : pin 15 (RX) dan pin 14 (TX). RX
digunakan untuk menerima dan TX untuk transmit data serial TTL. Pin 0
dan pin 1 adalah pin yang digunakan oleh chip USB-to-TTL ATmega16U2
14
 External Interrups, yaitu pin 2 (untuk interrupt 0), pin 3 (interrupt 1), pin 18
(interrupt 5), pin 19 (interrupt 4), pin 20 (interrupt 3), dan pin 21 (interrupt
2). Dengan demikian Arduino Mega 2560 memiliki jumlah interrupt yang
cukup melimpah : 6 buah. Gunakan fungsi attachInterrupt() untuk mengatur
interrupt tersebut.
 PWM: Pin 2 hingga 13 dan 44 hingga 46, yang menyediakan output PWM 8bit dengan menggunakan fungsi analogWrite()
 SPI : Pin 50 (MISO), 51 (MOSI), 52 (SCK), dan 53 (SS) mendukung
komunikasi SPI dengan menggunakan SPI Library
 LED : Pin 13. Pada pin 13 terhubung built-in led yang dikendalikan oleh
digital pin no 13. Set HIGH untuk menyalakan led, LOW untuk memadamkan
nya.
 TWI : Pin 20 (SDA) dan pin 21 (SCL) yang mendukung komunikasi TWI
dengan menggunakan Wire Library
Arduino Mega 2560 R3 memiliki 16 buah input analog. Masing-masing pin
analog tersebut memiliki resolusi 10 bits (jadi bisa memiliki 1024 nilai). Secara
default, pin-pin tersebut diukur dari ground ke 5V, namun bisa juga menggunakan
pin AREF dengan menggunakan fungsi analogReference(). Beberapa in lainnya
pada board ini adalah :
 AREF. Sebagai referensi tegangan untuk input analog.
 Reset. Hubungkan ke LOW untuk melakukan reset terhadap mikrokontroller.
Sama dengan penggunaan tombol reset yang tersedia.
Arduino Mega R3 memiliki beberapa fasilitas untuk berkomunikasi dengan
komputer, berkomunikasi dengan Arduino lainnya, atau dengan mikrokontroller lain
nya. Chip Atmega2560 menyediakan komunikasi serial UART TTL (5V) yang tersedia
di pin 0 (RX) dan pin 1 (TX). Chip ATmega16U2 yang terdapat pada board berfungsi
menterjemahkan bentuk komunikasi ini melalui USB dan akan tampil sebagai Virtual
15
Port di komputer. Firmware 16U2 menggunakan driver USB standar sehingga tidak
membutuhkan driver tambahan.
Pada Arduino Software (IDE) terdapat monitor serial yang memudahkan data
textual untuk dikirim menuju Arduino atau keluar dari Arduino. Led TX dan RX akan
menyala berkedip-kedip ketika ada data yang ditransmisikan melalui chip USB to
Serial via kabel USB ke komputer. Untuk menggunakan komunikasi serial dari digital
pin, gunakan SoftwareSerial library
Chip ATmega2560 juga mendukung komunikasi I2C (TWI) dan SPI. Di dalam
Arduino Software (IDE) sudah termasuk Wire Library untuk memudahkan anda
menggunakan bus I2C. Untuk menggunakan komunikasi SPI, gunakan SPI library.
2.2.1.4
Blok Diagram Arduino Mega 2560
16
Gambar 2.9 Blok Diagram ATMega 2560
(Atmel Corporation ATMega 32560 Datasheet : 2014, 5)
2.2.1.5
Konfigurasi Pin ATMega 2560
Gambar 2.10 Konfigurasi Pin ATMega 2560
(Atmel Corporation ATMega 2560 Datasheet : 2014, 7)
Beberapa pin power pada Arduino Mega :

GND adala h ground atau negatif.

Vin. adalah pin yang digunakan jika anda ingin memberikan power langsung
ke board Arduino dengan rentang tegangan yang disarankan 7V - 12V
17

Pin 5V adalah pin output dimana pada pin tersebut mengalir tegangan 5V
yang telah melalui regulator

3V3 adalah pin output dimana pada pin tersebut disediakan tegangan 3.3V
yang telah melalui regulator

IOREFadalah pin yang menyediakan referensi tegangan mikrokontroller.
Biasanya digunakan pada board shield untuk memperoleh tegangan yang
sesuai, apakah 5V atau 3.3V
Arduino Mega 2560 memiliki jumlah pin terbanyak dari semua papan
pengembangan Arduino. Mega 2560 memiliki 54 buah digital pin yang dapat
digunakan sebagai input atau output, dengan menggunakan fungsi pinMode(),
digitalWrite(), dan digital(Read). Pin-pin tersebut bekerja pada tegangan 5V, dan
setiap pin dapat menyediakan atau menerima arus sebesar 20mA, dan memiliki
tahanan pull-up sekitar 20-50k ohm (secara default dalam posisi disconnect). Nilai
maximum adalah 40mA, yang sebisa mungkin dihindari untuk menghindari
kerusakan chip mikrokontroller
Beberapa pin memiliki fungsi khusus :
 Serial, memiliki 4 serial yang masing-masing terdiri dari 2 pin. Serial 0 : pin 0
(RX) dan pin 1 (TX). Serial 1 : pin 19 (RX) dan pin 18 (TX). Serial 2 : pin 17 (RX)
dan pin 16 (TX). Serial 3 : pin 15 (RX) dan pin 14 (TX). RX digunakan untuk
menerima dan TX untuk transmit data serial TTL. Pin 0 dan pin 1 adalah pin yang
digunakan oleh chip USB-to-TTL ATmega16U2
 External Interrups, yaitu pin 2 (untuk interrupt 0), pin 3 (interrupt 1), pin 18
(interrupt 5), pin 19 (interrupt 4), pin 20 (interrupt 3), dan pin 21 (interrupt 2).
Dengan demikian Arduino Mega 2560 memiliki jumlah interrupt yang cukup
melimpah : 6 buah. Gunakan fungsi attachInterrupt() untuk mengatur interrupt
tersebut.
 PWM: Pin 2 hingga 13 dan 44 hingga 46, yang menyediakan output PWM 8-bit
dengan menggunakan fungsi analogWrite()
18
 SPI : Pin 50 (MISO), 51 (MOSI), 52 (SCK), dan 53 (SS) mendukung komunikasi
SPI dengan menggunakan SPI Library
 LED : Pin 13. Pada pin 13 terhubung built-in led yang dikendalikan oleh digital
pin no 13. Set HIGH untuk menyalakan led, LOW untuk memadamkan nya.
 TWI : Pin 20 (SDA) dan pin 21 (SCL) yang mendukung komunikasi TWI dengan
menggunakan Wire Library
Arduino Mega 2560 R3 memiliki 16 buah input analog. Masing-masing pin
analog tersebut memiliki resolusi 10 bits (jadi bisa memiliki 1024 nilai). Secara
default, pin-pin tersebut diukur dari ground ke 5V, namun bisa juga menggunakan
pin AREF dengan menggunakan fungsi analogReference(). Beberapa in lainnya pada
board ini adalah :
 AREF. Sebagai referensi tegangan untuk input analog.
 Reset. Hubungkan ke LOW untuk melakukan reset terhadap mikrokontroller.
Sama dengan penggunaan tombol reset yang tersedia.
2.2.2
Pengenalan Barcode dan Barcode Scanner
2.2.2.1
Barcode
Barcode adalah susunan garis cetak vertikal hitam putih dengan lebar
berbeda untuk menyimpan data-data spesifik seperti kode produksi, nomor
identitas, dll sehingga sistem komputer dapat mengidentifikasi dengan mudah,
informasi yang dikodekan dalam barcode. (Simanjuntak : 2013, 7)
Barcode menetapkannya pada batang-batang baris yang terdiri dari warna
hitam dan putih. Warna hitam mewakili bilangan 0 dan warna putih mewakili
bilangan 1. Warna hitam akan menyerap cahaya yang dipancarakan oleh alat
pembaca barcode, sedangkan putih akan memantulkan balik cahaya tersebut.
Masing-masing barcode memiliki ketebalan yang berbeda. Ketebalan inilah yang
diterjemahkan kedalam suatu nilai.
19
Jenis barcode sangat banyak mulai dari yang tradisional yaitu 1 dimensi
sampai dengan barcode yang multi dimensi, dalam artikel ini akan dibahas barcode
1 dimensi dan dibatasi pada jenis-jenis yang populer digunakan tetapi dapat
memberi pengertian dan gambaran yang jelas mengenai barcode.
Barcode digunakan untuk memudahkan indentifikasi berbagai hal, tentang
produknya dalam berbagai transaksi. Apabila jumlah produksi massal, akan sangat
sulit jika sistem barcode tidak dipergunakan dalam pengindentifikasian suatu
barang. Bayangkan saja jika sebuah produk yangdibeli tidak ada barcodenya, maka
untuk mengetikkan sebuah produk itu memerlukan waktu setengah menit jika
menggunakan metode barcode.
Terdapat 6 kategori barcode berdasarkan kegunaannya, yaitu:
1. Barcode untuk keperluan retail, salah satu contohnya adalah UPC (universal
price codes), biasanya digunakan untuk keperluan produk.
2. Barcode untuk keperluan packaging, biasanya digunakan untuk pengiriman
barang, dan salah satunya adalah barcode tipe ITF.
3. Barcode untuk penerbitan,misalnya barcode yang menunjukkan ISSN suatu
buku.
4. Barcode untuk keperluan farmasi, biasanya digunakan untuk identifikasi suatu
produk obat-obatan. Salah satu barcode farmasi adalah barcode jenis HIBC.
5. Barcode untuk keperluan non retail, misalkan barcode untuk pelabelan bukubuku yang ada di perpustakaan. Salah satu tipe barcode untuk keperluan non
retail ini adalah Code 39.
Dengan demikian ternyata barcode sangat banyak kegunaannya dan memang
sangat penting dalam dunia modern yang memerlukan kecepatan dan keakuratan
seperti saat ini mulai dari kebutuhan industry, farmasi, bidang kesehatan bahkan
instansi pemerintahan seperti PLN.
20
Keuntungan menggunakan barcode dalam kehidupan sehari-hari sebagai berikut:
1. Proses input data lebih cepat karenabarcode scanner dapat membaca dan
merekam data lebih cepat dibandingkan dengan melakukan proses input data
secara manual.
2. Proses input data lebih tepat karena teknologibarcode mempunyai ketepatan
yang tinggi dalam pencarian data.
3. Proses input lebih akurat mencari data karena teknologi barcode mempunyai
akurasi dan ketelitian yang sangat tinggi.
4. Mengurangi biaya, karena dapat mengindari kerugian dari kesalahan
pencatatan data, dan mengurangi pekerjaan yang dilakukan secara manual
secara berulang-ulang.
5. Peningkatan kinerja manajemen, karena dengan data yang lebih cepat, tepat dan
akurat maka pengambilan keputusan oleh manajemen akan jauh lebih baik dan
lebih tepat, yang nantinya akan sangat berpengaruh dalam menentukan
kebijakan perusahaan.
6. Kemampuan bersaing dengan perusahaan saingan/kompetitor akan lebih
terjaga.
2.2.2.2
Symbologi Barcode
Sejak dikenalkan di tahun 1959, sejalan dengan perkembanganya, hampir
semua produk saat ini telah dilabeli barcode. Saat ini barcode tampak dalam
beragam tipe, ukuran dan format. Namun bentuk yang paling umum terlihat adalah
barcode dimensi-satu dalam bentuk garis. Simbologi barcode 1D termasuk di
dalamnya jenis UPC, 128 dan 39.
21
Gambar 2.11 Symbologi Barcode
(Pandapotan Harahap: 2013, 5)
Barcode 2D sedang dalam pengembangan, barcode ini dapat menyimpan
informasi yang besar dalam kuran kecil. Termasuk didalamnya PDF417, Data
Matrix dan Maxicode. Saat ini telah ada baarcode 3D yang sering disebut barcode
Bumpy. Gambar 2 menunjukkan beberapa simbologi umum barcode. Pemetaan
antara pesan dan barcode disebut simbologi (symbology). Spesifikasi simbologi
termasuk persandian digit/karakter tunggal dari pesan sebaik dijalankan dan
dihentikan
ke dalam batang dan spasinya. Ukuran renggangnya daerah yangdiperlukan
sebelum dan sesudah barcode sebanding dengan saat komutasi pengecekan .
Simbologi linier bisa diklasifikasi menjadi 2 bagian:

Kontinu lawan diskrit: karakter-karakter dalam bentuk simbologikontinu
biasanya berbatasan dengan, 1 karater yang diakhiri dengan spasi dan
permulaan berikutnya dengan batang secara Pandha-Makalah Fisika Seharihari Hal. ke-3 dari 11 hal. bergantian. Karakter-karakter diskrit dimulai dan
22
diakhiri dengan batang; spasi antar karakter diabaikan, sepanjuang ia tidak
terlalu lebar untuk melihat code berakhir

Dua-lebar lawan banyak lebar: batang dan spasi dalam simbologi 2-lebar
merupakan lebar dan sempit; berapa lebar sebuah celah secara pasti tidak
memiliki signifikansi sepanjang kebutuhan simbologi untuk batang-batang
yang lebar diurutkan (umumnya 2 sampai 3 kali lebih lebar celah batang).
Batang dan spasi dalam kebanyakan simbologi lebar semuanya merupakan
perkalian dari sebuah acuan lebar yang disebut modul (module); kebanyakan
code menggunakan 4 lebar dari 1, 2, 3 dan 4 modul.
Beberapa simbologi menggunakan penyelaan. Karakter pertama disandikan
menggunakan batang hitam dengan lebar bervariasi. Karakter kedua kemudian
disandikan, dengan mengubah lebar spasi putih di antara batang-batang tersebut.
Lalu karakter disandikan dalam pasangan barcode pada seksi yang sama.
2.2.2.3
a.
Bentuk-bentuk Barcode
Code 39
Code 39 dapat menyandikan karakter alphanumeric yaitu angka desimal
dan huruf besar serta tambahan karakter spesial - . * $ / % +. Satu karakter dalam
Code 39 terdiri dari 9 elemen yaitu 5 bar (garis vertikal hitam) dan 4 spasi (garis
vertikal putih) yang disusun bergantian antara bar dan spasi. Sebayak 3 dari 9
elemen tersebut memiliki ketebalan lebih tebal dari yang lainnya oleh karenanya
kode ini biasa disebut juga code 3 of 9, 3 elemen yang lebih tebal tersebut terdiri
dari 2 bar dan 1 spasi. Elemen yang lebar mewakili digit biner 1 dan elemen yang
sempit mewakili digit biner 0
Gambar2.12 Lebar Keseluruhan Barcode 39
23
(Pandapotan Harahap: 2013, 5)
L : Lebar keseluruhan barcode,
N : Jumlah karakter,
R : Perbandingan garis vertikal lebar dan sempit,
X : Ketebalan garis vertikal sempit,
III : Lebar Check Character plus 1 inter charcater gap,
IV : Lebar 2 kali quiet zone (M1 (start margin) + M2 (stop margin) .
Gambar 2.13 Contoh Barcode 39
(Pandapotan Harahap: 2013, 5)
b.
Interleaved 2 of 5 (ITF)
ITF barcode hanya dapat mengkodekan angka saja dan sering digunakan
pada produk-produk yang memiliki kemasan dengan permukaan yang tidak rata
(misalnya corugated box), hal ini disebabkan struktur dan cara pengkodean ITF
yang unik. Setiap karakter pada ITF barcode disandikan dengan 5 elemen yaitu 2
elemen tebal dan 3 elemen sempit, dimana elemen tebal mewakili digit biner 1
sedangkan elemen tipis mewakili digit biner 0 dengan perbandingan ketebalan
antara elemen tebal dengan elemen tipis 2:1 s/d 3:1.
24
Gambar 2.14 Contoh Barcode ITF
(Pandapotan Harahap: 2013, 5)
Lebar dan tinggi ITF barcode mengikuti aturan sbb :
L = (C (2R + 3) + 6 + R)X
Dengan:
L : Lebar barcode (tidak termasuk quiet zone)
C : Jumlah karakter
X : Lebar elemen tersempit (minimum 0.19mm)
R : Perbandingan elemen lebar dengan sempit (2:1 s/d 3:1) Quiet zone minimum 10
kali X Tinggi barcode minimum 0.15 kali lebar barcode.
c.
Code 128
Code 128 adalah barcode dengan kerapatan tinggi, dapat mengkodekan
keseluruhan symbol ASCII (128 karakter) dalam luasan yang paling minim
dibandingkan dengan barcode jenis lain, hal ini disebabkan karena code 128
menggunakan 4 ketebalan elemen (bar atau spasi) yang berbeda (jenis yang lain
kebanyakan menggunakan 2 ketebalan elemen yang berbeda). Setiap karakter
pada code 128 dikodekan oleh 3 bar dan 3 spasi (atau 6 elemen) dengan
ketebalan masing-masing elemen 1 sampai 4 kali ketebalan minimum (module),
25
jika dihitung dengan satuan module maka tiap karakter code 128 terdiri dari 11
module kecuali untuk stop character yang terdiri dari 4 bar 3 spasi (13 module).
L = (11C + 35)X untuk alphanumeric (CODE A dan CODE B)
L = (5.5C + 35)X untuk kerapatan ganda, hanya numeric (CODE C)
dengan:
L: Lebar barcode total termasuk quiet zone
C: Jumlah karakter
X: Lebar module (elemen yang tersempit)
Gambar 2.15 Contoh barcode 128
(Pandapotan Harahap: 2013, 5)
2.2.2.4
Barcode Scanner/Reader
Pembaca/Scanner Barcode merupakan perangkat yang secara optis memindai
sebuah barcode dan menterjemahkan data yang ada dalam barcode dari pola barcode
ke dalam data yang bisa dipakai oleh komputer atau perangkat lain
Terdapat beragam bentuk scanner barcode, ukuran dan kapabilitasnya.
Scanner paling sederhana disebut “wands”. Karenabentuknya kecil, tinggal
menggerakkan saja serta konstruksi yang sederhana menjadikannua scanner
termurah dan efektif. Scanner lain menggunakan teknologi laser, CCD dan scanner
gambar.
26
Scanner laser scanners bekerja dengan laser yang dilewatkan ke barcode
yang akan discan (dipindai). Detector dalam scanner menangkap garis terang dan
gelap yang membentuk barcode. CCD scanner bekerja dengan prinsip yang sama,
tetapi tidak ada bagian yang bergerak. Sinar terang LEDs menangkap sinar laser
yang bergerak. Scanner gambar merupakan scanner palling kompleks, memiliki
detektor khusus yang menangkap gambar barcode dan kemudian menyandikan
kembali ke dalam.
Barcode reader adalah alat yang digunakan untuk membaca kode barcode.
Sistem kerja barcode hampir sama dengan inputan pada keyboard tinggal
menghubungkan barcode ke PS2 connector kemudoan komputer sudah
menganggap barcode reader tersebut adalah keyboard tanpa adanya instalasi
driver.
Perbedaan barcode reader dengan keyboard adalah barcode reader membaca
sebuah kode barcode kemudian memasukkan kode tersebut ke dalam komputer
dengan menambahkan karakter enter. Cara kerjanya yaitu dengan mengibaskan
cahaya infra merah terhadap barcode yang tertera pada produk tersebut.
Sedangkan cara penggunaannya dipegang langsung kemudian dengan
menekan tombol on-off secara manual, barcode reader juga dapat digunakan
secara otomatis (autoscan), yaitu dengan meletakkan barcode reader di atas stand
(dudukan barcode reader), kemudian barcode reader disetting ke mode auto scan.
Apabila barcode didekatkan pada barcode reader maka barcode reader akan secara
otomatis membaca.
Prinsip dasar scanner barcode ditunjukkan dalam gambar 9. Sinar laser
dibelokkan secara periodik oleh cermin poligon yang berotasi (PG). Saat sinar
yang belok ini sampai pada sebuah symbol barcode, maka sinar ini akan
dipencarkan. Intensitas pencaran bergantung atas garis gelap atau terang batang
(bar). Arah utama dari pencaran berlawanan arah dengan sinar laser.
27
Gambar 2.16 Bagian Perangkat Barcode Scanner
(Pandapotan Harahap: 2013, 5)
Sinar pencaran ini ditransfer ke detektor cahaya/photodetector (PD) melalui
cermin transparan (BSP) dan lensa (L1). Disini perubahan intensitas dikonversi
dalam bentuk sinyal listrik dan kemudian diproses oleh microprocessor. Untuk
mendapatkan kecepatan baca yang tinggi dan efisien dari sinar laser, photodetector
dan barcode yang kontras harus memenuhi kondisi tertentu
2.2.3
Modul ESP 8266
Modul ESP8266 adalah sebuah komponen chip terintegrasi yang didesain
untuk keperluan dunia masa kini yang serba tersambung. Chip ini menawarkan
solusi networking Wi-Fi yang lengkap dan menyatu, yang dapat digunakan sebagai
penyedia aplikasi atau untuk memisahkan semua fungsi networking Wi-Fi ke
pemproses aplikasi lainnya. ESP8266 memiliki kemampuan on-board prosesing
dan storage yang memungkinkan chip tersebut untuk diintegrasikan dengan
sensor-sensor atau dengan aplikasi alat tertentu melalui pin input output hanya
dengan pemrograman singkat.
28
Modul komunikasi WiFi dengan IC SoC ESP8266EX Serial-to-WiFi
Communication Module ini merupakan modul WiFi dengan harga ekonomis. Kini
Anda dapat menyambungkan rangkaian elektronika Anda ke internet secara
nirkabel karena modul elektronika ini menyediakan akses ke jaringan WiFi secara
transparan dengan mudah melalui interkoneksi serial (UART RX/TX).
Gambar 2.17 Modul ESP 8266
(http://zeflo.com/2014/esp8266-weather-display)
Keunggulan utama modul ini adalah tersedianya mikrokontroler RISC
(Tensilica 106µ Diamond Standard Core LX3) dan Flash Memory SPI 4
Mbit Winbond W2540BVNIGterpadu, dengan demikian Anda dapat langsung
menginjeksi kode program aplikasi langsung ke modul ini.
Fitur SoC ESP8266EX:

Mendukung protokol 802.11 b/g/n

WiFi Direct (P2P / Point-to-Point), Soft-AP / Access Point

TCP/IP Protocol Stackterpadu

Mendukung WEP, TKIP, AES, dan WAPI

Pengalih T/R, balun, LNA (penguat derau rendah) terpadu

Power Amplifier / penguat daya 24 dBm terpadu

Sirkuit PLL, pengatur tegangan, dan pengelola daya terpadu

Daya keluaran mencapai +19,5 dBm pada moda 802.11b

Sensor suhu internal terpadu
29

Mendukung berbagai macam antena

Kebocoran arus pada saat non-aktif kurang dari 10µA

CPU mikro 32-bit terpadu yang dapat digunakan sebagai pemroses
aplikasi lewat antarmuka iBus, dBus, AHB (untuk akses register), dan
JTAG (untuk debugging)

Antarmuka SDIO 2.0, SPI, UART

STBC, 1x1 MIMO, 2x1 MIMO

Agregasi A-MPDU dan A-MSDU dengan guard interval0,4 µs

Waktu tunda dari moda tidur hingga transmisi data kurang dari 2 ms
Berikut ini adalah diagram bagian fungsional dari Espressif ESP8266:
Gambar 2.18 Diagram Blok Modul ESP 8266
(http://zeflo.com/2014/esp8266-weather-display)
Modul WiFi ini bekerja dengan catu daya 3,3 volt. Salah satu kelebihan
modul ini adalah kekuatan transmisinya yang dapat mencapai 100 meter, dengan
begitu modul ini memerlukan koneksi arus yang cukup besar (rata-rata 80 mA,
mencapai 215 mA pada CCK 1 MBps, moda transmisi 802.11b dengan daya
pancar +19,5 dBm belum termasuk 100 mA untuk sirkuit pengatur tegangan
internal).Perhatian bagi pengguna Arduino: jangan ambil catu daya dari pin 3v3
Arduino karena pin tersebut tidak dirancang untuk memasok arus dalam jumlah
besar, harap gunakan catu daya terpisah. Anda dapat menggunakan DC Buck
Converter semacam AMS1117-3.3 untuk mengkonversi tegangan dari catu daya 5
30
Volt. Untuk berkomunikasi dengan MCU 5V, gunakan level converter 5V ⇔
3v3.Untuk komunikasi, model ini menggunakan koneksi 115200,8,N,1 (115.200
bps, 8 data-bit, no parity, 1stop bit).
Esp8266 diperintah menggunakan AT Command. perintah AT Command dapat
dilihat pada table 2.1
Perintah AT Command
Keterangan
AT
Test AT startup
AT+RST
Restart module
AT+GMR
View version info
AT+GSLP
Enter deep-sleep mode
ATE
AT commands echo or not
AT+RESTORE
Factory Reset
AT+UART
UART configuration
AT+UART_CUR UART
current configuration
AT+UART_DEF UART
default configuration, save to flash
AT+SLEEP
Sleep mode
AT+RFPOWER
Set maximum value of RF TX Power
AT+RFVDD
Set RF TX Power according to VDD33
Table 2.1 Perintah AT Command
2.2.4
TFT LCD (Thin Film Transistor Liquid Crystal Display)
Display elektronik adalah salah satu komponen elektronika yang berfungsi
sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid
Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan
teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi
memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau
31
mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi
sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik.
(Agung Purnama : 2013, 8)
LCD adalah lapisan dari campuran organik antara lapisan kaca bening
dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment
dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan
medan listrik (tegangan), molekul organik yang panjang dan silindris
menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki
polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang
diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati
molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan
terlihat menjadi gelap dan membentuk karakter data yang ditampilkan.
Gambar 2.19 TFT LCD For Arduino
(https://www.sainlabs.org/en)
Thin-film Transistor, disingkat dengan TFT, merupakan salah satu tipe layar
Liquid Crystal Display (LCD) yang datar, di mana tiap-tiap pixel dikontrol oleh
satu hingga empat transistor. Teknologi ini menyediakan resolusi terbaik dari
teknik panel data. Layar TFT sering disebut juga active-matrix LCD. Layar ini
dapat menampilkan gambar yang kaya warna tapi mahal. Dan permukaannya
32
sensitif terhadap sentuhan. Selain itu layar ini tidak cocok untuk tampilan yang
eksak seperti misalnya untuk CAD.
Gambar 2.20 Pins TFT LCD Touch For Arduino
(https://www.sainlabs.org/en)
Pin(s)
LCD_VCC
GND
LEDA+
Keterangan
+5V supply
LCD ground bus
LCD backlight supply
DB0—DB15
LCD 16‐bit parallel data interface
LCD data flow control lines
LCD_RS, LCD_WR,
LCD_RD, LCD_CS,
LCD_RST
TP_CLK, TP_CS,
TP_DIN, TP_BUSY,
TP_DOUT, TP_IRQ
Touch Panel data flow control
lines
SD_CS, MISO, CLK,
SD card slot data control lines (SPI)
MOSI
Tabel 2.2 Description Pins TFT LCD Touch For Arduino
33
2.2.5
USB Host Shield
USB Host Shield memungkinkan mengkomunikasikan perangkat USB ke
arduino. Arduino Host Shield ini berbasis IC kontroler USB MAX3421E, yang
merupakan pengendali USB perifer/host yang mengandung logika digital dan
sirkuit analog yang diperlukan untuk menerapkan full-speed USB perifer atau full/low speed host sesuai spesifikasi USB rev 2.0.
Arduino melakukan komunikasi dengan MAX3421E menggunakan SPI
(Serial Peripheral Interface) bus (melalui header ICSP).[2] Melalui pin 10,11,12,
dan 13 pada Atmega328P. USB Host Shield ini mendapatkan power supply dari
arduino, itulah sebabnya tidak ada jack power tersedia.
Gambar 2.21 Konfigurasi Board USB Shield
(https://www.circuitsathome.com
/usb-host-shield-2-0-for-
arduino)
Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi
serial synchrounous kecepatan tinggi yang dapat digunakan pada banyak
34
mikrokontroler, termasuk Arduino. Perangkat SPI berkomunikasi dengan metode
full duplex menggunakan arsitektur master-slave dengan single master. Untuk
komunikasi SPI sendiri,membutuhkan paling tidak tiga jalur, yakni MOSI, MISO,
dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antar
mikrokontroler, maupun antara mikrokontroler dengan peripheral lainnya yang
mendukung komunikasi dengan SPI.
Adapun berikut ini penjelasan untuk 3 jalur utama dari SPI adalah sebagai berikut.
a) MOSI (Master Output Serial Input)
Perangkat yang bertindak sebagai master, maka pin MOSI digunakan sebagai pin
output, tetapi jika digunakan sebagai slave, maka pin MOSI tersebut berfungsi
sebagai pin input.
b) MISO (Master Input Slave Output)
Perangkat yang bertindak sebagai master, maka pin MISO sebagai pin input, tetapi
jika digunakan sebagai slave, maka pin MISO tersebut berfungsi sebagai pin
output.
c) SCK (Serial Clock)
Berfungsi sebagai clock data. Dimana pin SCK dari master akan memberikan
clock ke pin SCK slave, guna menyelaraskan komunikasi antar kedua perangkat
tersebut. Selain tiga jalur tersebut, terdapat pula SS (Slave Select) yang digunakan
untuk memilih perangkat slave mana yang akan digunakan, tentu saja bila lebih
dari satu slave. Sebuah perangkat master dapat memberikan perintah pada
beberapa perangkat slave. Sedangkan untuk perangkat slave tidak dapat
memberikan perintah, hanya memberikan data sesuai instruksi yang diberikan oleh
perangkat master.
35
Perangkat-perangkat elektronik yang cocok dan support untuk dihubungkan
dengan usb shield sebagai berikut:

HID devices, seperti keyboards, mice, joysticks, etc.

game controllers - Sony PS3, Nintendo Wii, Xbox360

USB to serial converters - FTDI, PL-2303, ACM, serta telepon seluler
tertentu dan penerima GPS

ADK-capable Android phones dan tables

Digital cameras - Canon EOS, Powershot, Nikon DSLRs and P&S, serta
generic PTP

Mass storage devices, such as USB sticks, memory card readers, external
hard drives

2.2.6
Bluetooth dongles
Bahasa Pemograman Arduino
Arduino board merupakan perangkat yang berbasiskan mikrokontroler.
Perangkat lunak (software) merupakan komponen yang membuat sebuah
mikrokontroller dapat bekerja. Arduino board akan bekerja sesuai dengan perintah
yang ada dalam perangkat lunak yang ditanamkan padanya.
Bahasa Pemrograman Arduino adalah bahasa pemrograman utama yang
digunakan untuk membuat program untuk arduino board. Bahasa pemrograman
arduino menggunakan bahasa pemrograman C sebagai dasarnya.
Karena menggunakan bahasa pemrograman C sebagai dasarnya, bahasa
pemrograman arduino memiliki banyak sekali kemiripan, walaupun beberapa hal
telah berubah. (Simanjuntak : 2013, 11)
2.2.6.1
Struktur
Setiap program Arduino (biasa disebut sketch) mempunyai dua buah
fungsi yang harus ada.
36

void setup( ) { }
Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika
program Arduino dijalankan untuk pertama kalinya.

void loop( ) { }
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah
dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus
menerus sampai catu daya (power) dilepaskan.
2.2.6.2
Syntax
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan.

). //(komentar satu baris)
Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari
kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan
apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

/* */(komentar banyak baris)
Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa
baris sebagai komentar. Semua hal yang terletak di antara dua simbol
tersebut akan diabaikan oleh program.

{ }(kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir
(digunakan juga pada fungsi dan pengulangan).

;(titk koma)
Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma
yang hilang maka program tidak akan bisa dijalankan
37
2.2.6.3
Variabel
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi
untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang
digunakan untuk memindahkannya.

int (integer)
Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak
mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.

long (long)
Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari
memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan
2,147,483,647.

boolean (boolean)
Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar)
atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari
RAM.

float (float)
Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit)
dari
RAM
dan
mempunyai
rentang
dari
-3.4028235E+38
dan
3.4028235E+38.

char (character)
Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65).
Hanya memakai 1 byte (8 bit) dari RAM.
2.2.6.4
Operator Matematika
Operator yang digunakan untuk memanipulasi angka (bekerja seperti
matematika yang sederhana).
38

=
Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 *
2, x sekarang sama dengan 20).

%
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain
(misalnya: 12 % 10, ini akan menghasilkan angka 2).

+
Penjumlahan

Pengurangan

*
Perkalian

/
Pembagian
2.2.6.5
Operator Pembanding
Digunakan untuk membandingkan nilai logika.

==
Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12
adalah TRUE (benar))

!=
Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12
adalah FALSE (salah))

<
Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12
adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar))
39

>
Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12
adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))
2.2.6.6
Struktur Pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan
berikutnya, berikut ini adalah elemen dasar pengaturan.
1. if..else, dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Dengan struktur seperti diatas program akan menjalankan kode yang ada di
dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan
diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada
else yang akan dijalankan
2. for, dengan format seperti berikut ini:
for (int i = 0; i < #pengulangan; i++) { }
Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung
kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang
diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–
.
2.2.6.7
1.
Digital
pinMode(pin, mode)
Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin
yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa
digunakan adalah INPUT atau OUTPUT.
40
2.
digitalWrite(pin, value)
Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan
HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
3.
digitalRead(pin)
Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat
menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik
menjadi 5 volts) atau LOW (diturunkan menjadi ground).
2.2.6.8
Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk
beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk
menghadapi hal yang bukan digital.
1. analogWrite(pin, value)
Beberapa pin pada Arduino mendukung PWM (pulse width modulation)
yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan
sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog.
Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~
0V) dan 255 (100% duty cycle ~ 5V).
2. analogRead(pin)
Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran
voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk
5 volts).
41
2.2.7
Software Arduino IDE
Sehubungan dengan pembahasan untuk saat ini software arduino yang akan
digunakan adalah driver dan IDE, walaupun masih ada beberapa software lain
yang sangat berguna selama pengembangan Arduino.
IDE arduino adalah software yang sangat canggih ditulis dengan
menggunakan java. IDE Arduino terdiri dari :

Editor program, sebuah window yang memungkinkan pengguna menulis
dan mengedit program dalam bahasa Processing.

Compiler, sebuah modul yang mengubah kode program (bahasa processing
menjadi kode biner. Bagaimanapun sebuah microcontroller tidak akan bisa
memahami bahasa processing. Yang bisa dipahami oleh microcontroller
adalah kode biner. Itulah sebabnya compiler diperlukan dalam hal ini.

Uploader, sebuah modul yang memuat kode biner dari computer ke dalam
memory dalam papan arduino.
Gambar 2.26 Tampilan Arduino IDE
(Agung : 2014, 13)
42
Pada gambar 2.26 anda dapat melihat toolbar IDE yang memberian akses
instan ke fungsi-fungsi yang penting :

Dengan tombol Verify, anda dapat mengkompilasi program yang saat ini
di editor.

Tombol New menciptakan program baru dengan mengosongkan isi
dari jendela editor saat ini. Sebelum hal itu terjadi, IDE memberikan anda
kesempatan untuk menyimpan semua perubahan belum disimpan.

Dengan Open anda dapat membuka program yang ada dari sistem file.

Tombol Save menyimpan program saat ini.

Ketika anda mengklik tombol Upload, IDE mengkompilasi saat ini
program dan upload ke papan Arduino yang telah anda pilih di IDE menu
Tools > Serial port.

Arduino dapat berkomunikasi dengan komputer melalui koneksi serial.
Mengklik tombol serial monitor membuka jendela serial monutor yang
memungkinkan anda dapat melihat anda yang dikirimkan oleh arduino dan
juga untuk mengirim data kembali.

Tombol stop menghentikan serial monitor
Gambar 2.27 Toolbar Arduino IDE
(Agung : 2014, 14)
43
Meskipun menggunakan IDE sangat mudah, anda mungkin mengalami
masalah. Dalam kasus tersebut, kita lihat menu Help. Menu Help menunjukkan
banyak sumber daya yang berguna di website arduino yang mneyediakan solusi
cepat tidak hanya untuk semua masalah khas tetapi juga untuk referensi materi dan
tutorial.
Untuk dapat memahami fitur-fitur IDE yang paling penting, kita akan
membuat program-program sederhana yang membuat dioda pemancar cahaya
(LED) berkedip. LED merupakan sumber cahaya murah dan efisien, dan arduino
sudah dilengkapi dengan beberapa LED. Satu LED yang berkedip menunjukkan
apakah Arduino saat ini memiliki daya dan dua LED lainnya berkeip saat data
ditransmisikan atau diterima melalui koneksi serial. Dalam proyek kecil pertama
anda akan membuat LED arduino yang berkedip
2.2.7.1
Tipe-Tipe data dalam Arduino
Setiap bagoan dari data yang anda simpan dalam program arduino
memiliki tipe datanya masing-masing. Tergantung pada kebutuhan anda, anda
dapat memilih dari tipe-tipe data berikut ini :
1. Tipe data boolean mengambil satu byte memori dan dapat bernilai benar
atau salah.
2. Tipe data char mengambil satu byte nomor memori dan menyimpan dari
-128 sampai 127. Angka-angka ini biasanya mewakili karakter yang
dikodekan dalam ASCII.
3. Tipe data int (integer) membutuhkan dua byte memori. Anda dapat
menggunakannya untuk menyimpan angka dari -32.768 ke 32.767.
unsigned int juga menghabiskan dua byte memori tetapi menyimpan
angka dari 0 sampai 65.535.
4. Untuk angka yang lebih besar, dinakan tipe data long. Mengkonsumsi
empat byte memori dan menyimpan nilai dari -214783648 ke
44
2147483647. Unsigned long juga perlu empat byte tetapi menyimpan
rentang nilai dari 0 sampai 4.294.967.295.
5. Tipe data float dan double adalah tipe data yang sama. Anda dapat
menggunakan jenis tipe ini untuk menyimpan angka floating-point.
Keduanya menggunakan empat byte memori dan mampu menyimpan
nilai-nilai dari -3.4028235E+38 untuk 3.4028235E+38.
6. Tipe data void hanya untuk deklarasi fungsi. Ini menunjukkan bahwa
fungsi tersebut tidak mengembalikan nilai.
7. Array menyimpan nilai yang memiliki tipe data yang sama.
8. Sebuah string adalah sebuah array nilai char. Arduino IDE mendukung
penciptaan string dengan beberapa sintaksis gula semua ini deklarasi
membuat string dengan isi yang sama.
2.2.7.2
Komplikasi dan Program Uploading
Sebelum anda mengkompilasi dan meng-upload program ke arduino,
anda harus mengkonfigurasi dua hal dalam IDE : jenis Arduino anda menggunakan
dan port serial arduino anda terhubung ke. Mengidentifikasi jenis arduino mudah,
karena dicetak di papan tulis, jenis populer adalah Uno, Duemilnove, Diecimila,
Nano, Mega Mini, NG, BT, Lilypad, Pro atau pro mini. Dalam beberapa kasus
anda juga harus memeriksa apa mikrokontroler arduino anda mengguankan paling
memiliki Atmega 168 atau sebuah Atmega 328. Anda dapat menemukan jenis
mikrokontroler dicetak pada mikrokontroler itu sendiri.
Ketika anda telah mengidentifikasi dengan tepat jenis arduino anda. Memilih
dari menu tools> board. Sekarang anda harus memilih port serial arduino anda
terhubung untuk dari >menu serial port tools. Pada sistem windows, Device
Manager, dan mencari USB Serial Port dibawah ports (COM dan LPT) entri menu.
Biasanya port bernama COM1, COM2, atau sesuatu yang serupa. Setelah
anda telah memilih port serial kanan, klik tombol verify dan anda akan melihat
output berukut di daerah pesan IDE (yang arduino IDE menyebut program
45
sketsa) : Binary ukuran sketsa : 1010 bytes (dari 32256 byte maksimum) ini berarti
IDE berhasil telah menyusun kode sumber ke dalam 1.010 byte kode mesin yang
kita dapat meng-upload ke Arduino.
Jika anda melihat pesan kesalahan sebagai gantinya, periksa apakah anda
telah mengetik di program yang benar. Tergantung pada papan arduino yang anda
gunakan maksumum byte mungkin berbeda. Misalnya pada arduino Duemilanove
biasanya 14336 byte. Dalam kasus kesalahan, periksalah apakah anda memilih
jenis arduino benar dan port serial yang benar dalam menu tools.
Selama proses upload, TX dan RX LED akan berkedip selama beberapa
detik. Ini adalah normal itu terjadi setiap kali Arduino dan komputer anda
berkomunikasi melalui port serial. Ketika arduino mengirimkan informasi ternyata
pada TX LED. Ketika mendapat beberapa bit, ternyata pada RX LED. Karena
komunikasi ini cukup cepat, LED mulai berkedip dan anda tidak dapat
mengidentifikasi transmisi byte tunggal. (Agung : 2014, 20)
2.2.8
Basis Data (Database)
Database atau Basis Data adalah sekumpulan data yang saling terhubung
satu dengan yang lainnya atau sekumpulan table yang saling terhubung satu
dengan yang lainnya.dan fungsi dari database adalah menyimpan suatu data
pada table-tabel dan dikumpulkan menjadi satu dengan database. Database juga
bisa di umpamakan sebagai sebuah rumah dengan beberapa kamar-kamar dan
sebuah property seperti almari meja belajar tempat tidur itu bisa di sebut dengan
data querynya
2.2.8.1
Komponen Database
Komponen yang terdapat pada suatu database antara lain :
1) Tabel
Sebuah komponen yang digunakan untuk menyimpan suatu data yang
telah di akses dan dimasukkan kedalamnya.
46
2) .Record
Isi atau data dari table tersebut yang telah dikelola. Record dapat
mempunyai beberapa macam data. Dan data berfariasi tersebut di simpan
kedalam table dan itulah yang disebut record.
3) Field
Pemberian identitas suatu data dimana data tersebut akan di letakkan.
Sesuai dengan pengelompokan datanya.
2.2.8.2
Strukture Database
Strukture database adalah suatu pengaturan field-field pada suatu table pada
database. Beberapa struktur database sbb:
1) Nama Field digunakan sebagai suatu pemberian identitas atau member
keterangan pada field.
2)
Type Data pemberian suatu tipe pada field sesuai dengan identitas yang
telah diberikan.
3) Ukuran Data pemberian suatu panjang atau banyak data yang telah di
inputkan
4) Keterangan memberikan suatu keterangan atau deskripsi pada sebuah field.
2.2.8.3
Relasi Tabel Database
Relasi adalah hubungan antara tabel yang mempresentasikan hubungan
antar objek di dunia nyata. Relasi merupakan hubungan yang terjadi pada
suatu tabel dengan lainnya yang mempresentasikan hubungan antar objek di
dunia nyata dan berfungsi untuk mengatur mengatur operasi suatu database.
Hubungan yang dapat dibentuk dapat mencakup 3 macam hubungan,
yaitu :
1)
One-To-One (1-1)
Mempunyai pengertian "Setiap baris data pada tabel pertama
dihubungkan hanya ke satu baris data pada tabel ke dua". Contohnya :
47
relasi antara tabel mahasiswa dan tabel orang tua. Satu baris mahasiswa
hanya berhubungan dengan satu baris orang tua begitu juga sebaliknya.
2)
One-To-Many (1-N)
Mempunyai pengertian "Setiap baris data dari tabel pertama
dapat dihubungkan ke satu baris atau lebih data pada tabel ke dua".
Contohnya : relasi perwalian antara tabel dosen dan tabel mahasiswa.
Satu baris dosen atau satu dosen bisa berhubungan dengan satu baris
atau lebih mahasiswa.
3)
Many-To-Many (N-M)
Mempunyai pengertian "Satu baris atau lebih data pada tabel
pertama bisa dihubugkan ke satu atau lebih baris data pada tabel ke dua".
Artinya ada banyak baris di tabel satu dan tabel dua yang saling
berhubungan satu sama lain. Contohnya : relasi antar tabel mahasiswa
dan tabel mata kuliah. Satu baris mahasiswa bisa berhubungan dengan
banyak baris mata kuliah begitu juga sebaliknya.
2.2.8.4
MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
(database management system) atau DBMS yang multithread, multi-user,dengan
sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia
sebagai
perangkat
lunak
gratis
dibawah
lisensi GNU
General
Public
License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasuskasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
2.2.9
Web Program
Pemrograman web diambil dari 2 suku kata yaitu pemrograman dan web
. Pemrograman yang dalam bahasa inggris adalah programming dan diartikan
48
proses , cara , perbuatan program (secara bahasa indonesia). Definisi Web:
jaringan komputer yang terdiri dari kumpulan situs internet yang menawarkan teks
dan grafik dan suara dan sumber daya animasi melalui protocol transfer hypertext.
2.2.9.1
PHP (PHP: Hypertext Preprocessor)
PHP adalah bahasa pemrograman script server-side yang didesain untuk
pengembangan web. Selain itu, PHP juga bisa digunakan sebagai bahasa
pemrograman umum (wikipedia). PHP di kembangkan pada tahun 1995
oleh Rasmus Lerdorf, dan sekarang dikelola oleh The PHP Group. Situs resmi
PHP beralamat di http://www.php.net.
PHP disebut bahasa pemrograman server side karena PHP diproses pada
komputer server. Hal ini berbeda dibandingkan dengan bahasa pemrograman
client-side seperti JavaScript yang diproses pada web browser (client).
PHP dapat digunakan dengan gratis (free) dan bersifat Open Source. PHP
dirilis dalam lisensi PHP License, sedikit berbeda dengan lisensi GNU General
Public License (GPL) yang biasa digunakan untuk proyek Open Source.
Salah satu bagian dari php adalah sintaksis dasar yang sering digunakan
dalam bahasa pemograman php yaitu:
1) Pembatas
PHP hanya mengeksekusi kode yang ditulis dalam pembatas
sebagaimana ditentukan oleh dasar sintaks PHP. Apapun di luar pembatas
tidak diproses oleh PHP (meskipun teks PHP ini masih mengendalikan
struktur yang dijelaskan dalam kode PHP. Pembatas yang paling umum
adalah "<?php" untuk membuka dan "?>" Untuk menutup kode
PHP.Tujuan dari pembatas ini adalah untuk memisahkan kode PHP dari
kode diluar PHP, seperti HTML,Javascript.
2) Variable
49
Variabel diawali dengan simbol dolar $ . Pada versi php PHP 5
diperkenalkan jenis isyarat yang memungkinkan fungsi untuk memaksa
mereka menjadi parameter objek dari class tertentu, array, atau fungsi.
Namun, jenis petunjuk tidak dapat digunakan dengan jenis skalar
seperti angka atau string .
Contoh variabel dapat ditulis sebagai
$nama_varabel.
Penulisan fungsi, penamaan kelas, nama variabel adalah peka akan
huruf besar (Kapital) dan huruf kecil . Kedua kutip ganda "" dari string
memberikan kemampuan untuk interpolasi nilai variabel ke dalam string
PHP. PHP menerjemahkan baris sebagai spasi, dan pernyataan harus
diakhiri dengan titik koma ;
3)
Komentar
PHP memiliki 3 jenis sintaks sebagai komentar pada kode yaitu tanda
blok / * * / , komentar 2 baris // Serta tanda pagar # digunakan untuk
komentar satu baris. Komentar bertujuan untuk meninggalkan catatan pada
kode PHP dan tidak akan diterjemahkan ke program.
4)
Fungsi
Ratusan fungsi yang disediakan oleh PHP serta ribuan lainnya yang
tersedia melalui berbagai ekstensi tambahan. fungsi-fungsi ini
didokumentasikan dalam dokumentasi PHP. Namun, dalam berbagai tingkat
pengembangan, kini memiliki berbagai konvensi penamaan
Download