BAB II TINJAUAN PUSTAKA A. Sejarah Lahirnya Deklarasi Djuanda
BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Mutakhir … II.pdf · 2.2.1.1 Sejarah RFID ... Pada dasarnya...
Transcript of BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Mutakhir … II.pdf · 2.2.1.1 Sejarah RFID ... Pada dasarnya...
6
BAB II
TINJAUAN PUSTAKA
2.1 Tinjauan Mutakhir
Penelitian ini diperuntukan untuk tugas akhir dengan judul ”Rancang
Bangun Sistem Aplikasi Keanggontaan Konsumen Berbasis RFID Untuk
Pengumpulan Poin Pada Proses Transaksi Retail”. Penelitian ini mengacu pada
beberapa sumber dan tinjauan yang sudah ada dimana masing-masing penulis
menggunakan teknologi RFID untuk beberapa permasalahan sehari-hari. Berikut
merupakan uraian singkat referensi tersebut:
1. Penelitian yang dilakukan oleh Muliarsha (2009) tentang alat absensi
elektronik dengan bantuan aplikasi RFID, dimana ID yang terdapat pada
kartu UEM4100 dibaca oleh RFID Reader yang bekerja pada level tegangan
5V DC dengan frekuensi 125 KHz dan menggunakan koneksi udara
(wireless), sehingga pada saat tag RFID didekatkan pada reader, reader akan
menmindai data ID. Jika cocok dengan data ID tag yang disimpan dalam
database maka lampu LED indikator akan menyala pada hardware, ID yang
terbaca ini akan dikeluarkan menuju mikrokontroler AT89S51 kemudian
diolah dan akan ditampilkan ke komputer dengan menggunakan bahasa
pemrograman C#, dan program akan langsung menampilkan detail data user.
Adapun format data keluaran yang digunakan dalam penelitian ini adalah
ABA Track2 10 Desimal. Absensi elektronik dengan aplikasi RFID
diharapkan dapat mempermudah karyawan dalam melakukan absensi harian
sebelum melakukan aktivitas pekerjaannya di perusahaan.
2. Penelitian yang dilakukan oleh Eviriantari (2010) tentang penggunaan kunci
elektronik yang didesain untuk membuka dan menutup pintu dengan bantuan
aplikasi SMS gateway sebagai penghubung antara ponsel yang terhubung
langsung dengan sistem dan ponsel user pengguna kunci. Selain itu kunci
elektronik ini dibantu oleh Motor Stepper sebagai penggerak dan
Mikrokontroler ATmega8535 sebagai pusat kendali dan penghubung antara
komputer dan kunci. Kunci elektronik bekerja dengan cara menerima data
7
dari ponsel pengirim yang kemudian diterima oleh ponsel sistem, diproses
lebih lanjut oleh sms gateway dan disimpan dalam database, jika format SMS
yang dikirim sesuai dengan perintah yang tersimpan maka kunci pintu dapat
terbuka atau tertutup sesuai dengan perintah yang dikirm.
3. Penelitian yang dilakukan oleh Jaya (2009) tentang pemanfaatan RFID dalam
sistem parkir. RFID digunakan sebagai penanda tiap kendaraan yang parkir.
ID Tag yang masuk ke program billing akan dicocokkan dengan database.
Apabila ID Tag cocok dengan database maka program akan dilanjutkan ke
langkah selanjutnya yaitu pengisian data parkir dan perhitungan tarif parkir.
Tetapi jika data tidak cocok dengan database, maka sistem akan memberi
informasi bahwa data yang masuk salah dan sistem akan berhenti.
Berdasarkan ketiga penelitian tersebut, maka dirancanglah penelitian
tentang penyimpanan uang kembalian dengan pemanfaatan RFID. RFID yang
digunakan pada penelitian pertama sebagai penanda tiap-tiap karyawan pada
penelitian ini akan digunakan sebagai penanda tiap-tiap anggota pada outlet ritel.
Kemudian cara kerja sistem pada penelitian ini mengacu pada penelitian kedua.
Jika pada penelitian di atas kunci yang digunakan untuk membuka pintu ialah
format SMS, maka pada penelitian ini format SMS yang merupakan kode unik,
digantikan oleh RFID tag yang juga memiliki kode unik pada setiap tag. Pintu
yang dibuka, dianalogikan sebagai pintu loker, yang di dalamnya bisa digunakan
untuk menyimpan uang. Dalam penelitian ini, loker tersebut dibuat secara virtual,
yaitu sebagai rekening yang bisa dibuka dengan password. Karena password yang
digunakan adalah ID dari tag yang dimiliki oleh anggota outlet ritel, maka
rekening itu pun hanya bisa dibuka dengan RFID tag yang dimiliki oleh pemilik
rekening yang bersangkutan. Pada penelitian ketiga, tiap-tiap kendaraan ditandai
dengan sebuah RFID tag. Pada saat membayar, akan ditampilkan data tagihan
pembayaran retribusi parkir sesuai dengan durasi parkir kendaraan yang
bersangkutan. Dalam penelitian ini RFID akan digunakan oleh konsumen untuk
menampilkan data rekening konsumen yang bersangkutan pada saat pembayaran
di kasir.
8
2.2 Tinjauan Pustaka
2.2.1 RFID
RFID merupakan singkatan dari Radio Frequency Identification. Sebuah
tag RFID memiliki identitas berupa nomor seri yang unik, ditransmisikan secara
nirkabel menggunakan gelombang radio. Tag ini dapat dibaca hingga beberapa
meter jauhnya dari perangkat reader dan tidak membutuhkan area pandangan
langsung/line of sight. (Violino, 2005)
Sebuah sistem RFID terdiri dari dua bagian, yaitu sebuah tag atau label
dan pembaca. Sebuah tag RFID di dalamnya terbagi menjadi dua bagian, yaitu
microchip yang menyimpan dan memproses informasi, dan antena untuk
menerima dan mengirimkan sinyal. Tag yang memiliki nomor seri khusus ini
bekerjasama dengan RFID reader yang memancarkan sinyal ke tag RFID. Tag
akan merespon dengan informasi yang tertulis di bank memori. Informasi ini
dikirimkan kepada reader yang kemudian akan mengirimkan hasil pembacaan
untuk diolah lewat program komputer. (EPC RFID, 2013)
2.2.1.1 Sejarah RFID
Dalam sebuah artikel yang dilansir di website www.rfidjournal.com,
secara umum dapat dikatakan bahwa sejarah perkembangan RFID bermula dari
Perang Dunia II. Pasukan Jerman, Jepang, Amerika, dan Inggris, mereka semua
menggunakan radar yang telah ditemukan pada tahun 1935 oleh Sir Robert
Alexander Watson-Watt, untuk memperingatkan kedatangan pesawat walaupun
masih bermil-mil jauhnya. Namun permasalahannya ialah tidak ada cara untuk
mengetahui apakah pesawat itu berasal dari pihak musuh atau bukan.
Di bawah Watson-Watt yang mengepalai sebuah proyek rahasia, Inggris
mengembangkan sistem aktif pertama: Identify Friend or Foe (IFF). Setiap
pesawat Inggris dipasang sebuah transmitter. Ketika transmitter ini menerima
sinyal radar, transmitter ini mem-broadcast sinyal yang dapat diidentifikasi oleh
pasukan Inggris bahwa itu adalah pesawat milik pasukan Inggris.
9
RFID bekerja dengan konsep dasar yang sama. Sebuah sinyal dikirim
kepada transponder yang kemudian merefleksikan sinyal untuk sebuah tag pasif,
atau mem-broadcast sinyal untuk sebuah tag aktif.
Pengembangan dibidang radar dan komunikasi gelombang radio berlanjut
sepanjang dekade 50-60an. Ilmuwan dan akademisi di Amerika, Eropa, dan
Jepang melakukan riset dan menunjukkan bagaimana energi gelombang radio
dapat digunakan untuk mengidentifikasi objek. Hal ini kemudian digunakan
secara komersial dalam sistem anti-pencurian. Sebuah tag 1 bit digunakan untuk
mendeteksi status pembayaran sebuah item. Bit tersebut hanya bernilai on atau off.
Jika item tersebut sudah dibayar, bit dalam tag yang terdapat pada barang tersebut
diset off. Jika bit yang masih on keluar dari area perbelanjaan, reader akan
mendeteksinya dan kemudian membunyikan alarm (Roberti, 2005).
Pada tanggal 23 Januari 1973, Mario W. Cardullo mendapatkan US Patent
untuk tag RFID aktif dengan memori rewritable. Sepuluh tahun kemudian
seorang wirausahawan asal California, Charles Walton menerima paten untuk
transponder pasif yang digunakan untuk membuka pintu tanpa kunci. Paten inilah
yang kemudian menjadi paten pertama yang menggunakan nama RFID.
(Roberti, 2005)
2.2.1.2 Jenis-jenis tag RFID
Pada dasarnya terdapat dua macam jenis tag RFID menurut sumber
tenaganya, yaitu tag aktif, dan tag pasif.
1. Tag aktif RFID
Perangkat RFID tag terbagi menjadi dua kelas besar, yaitu tag aktif dan
tag pasif. Tag aktif menggunakan sumber daya tambahan untuk
pengoperasiannya. Sumber daya tambahan ini bisa didapat dari baterai, bisa juga
dari infrastruktur listrik. Penggunaan sumber daya dari baterai menyebabkan tag
aktif RFID memiliki masa pakai yang bergantung pada energi yang tersimpan di
dalam baterai. Jika energi di dalam baterai telah habis, maka tag tersebut tidak
berfungsi sebagaimana biasanya (Want, 2006).
10
Penggunaan tag aktif biasanya dikhususkan pada aset besar, misalnya peti
kontainer, kargo, mobil, dan sebagainya. Penggunaan tag aktif pada aset besar
dikarenakan jangkauan pembacaannya relatif jauh, bisa mencapai 20 meter,
bahkan ada pula yang mencapai 100 meter. Frekuensi yang digunakan oleh tag
aktif biasanya beroperasi pada 455MHz, 2.45MHz, atau 5.8MHz (Violino, 2005).
2. Tag pasif RFID
Penggunaan baterai menyebabkan tag RFID memiliki ukuran yang besar,
biaya produksi yang relatif besar, dan masa pakainya terbatas oleh baterai itu
sendiri. Karena itu tag pasif RFID menjadi lebih diminati. Tag pasif tidak
membutuhkan sumber daya tambahan untuk pengoperasiannya. Tag pasif juga
tidak membutuhkan penanganan khusus. Selain itu, tag pasif memiliki masa
operasional yang tidak terbatas, disebabkan tidak adanya penggunaan baterai
untuk mengoperasikannya. Dengan ketiadaan baterai, tag pasif menjadi lebih kecil
ukurannya sehingga praktis digunakan.
Tag pasif hanya terdiri dari tiga bagian utama, yaitu antena, chip
semikonduktor, dan materi pembungkus/enkapsulasi. Agar dapat bekerja, RFID
reader memancarkan gelombang radio dengan daya tertentu. Daya inilah yang
kemudian digunakan oleh tag untuk beroperasi. Tag kemudian akan mengirimkan
kembali ID tag tersebut yang tersimpan di dalam chip semikonduktor. Antena
berfungsi menangkap gelombang radio, sedangkan enkapsulasi akan
mempertahankan chip dan antena dari kerusakan yang ditimbulkan oleh
lingkungan sekitar (Want, 2006).
2.2.1.3 RFID reader
RFID reader berkomunikasi dengan tag melalui gelombang radio untuk
mendapatkan identitas dari tag tersebut. Dalam lingkungan dengan banyak tag,
reader bisa saja melakukan kesalahan. Untuk itu RFID reader biasanya akan
menjalankan protokol anti-collision untuk memastikan konflik komunikasi tidak
terjadi. Protokol ini memungkinkan RFID reader untuk berkomunikasi dengan
tag secara berurutan dengan cepat (Weiss, 2007).
11
Lebih lanjut dikatakan oleh Weiss (2007) bahwa reader bertanggung
jawab untuk mengoperasikan tag pasif. Menggunakan antena, tag akan
menangkap gelombang radio yang dipancarkan oleh reader. Karena tag pasif
tidak memiliki “on-board power”, maka tag pasif hanya akan mengandalkan
energi dari gelombang radio yang dipancarkan reader untuk merespon
komunikasi dan mengirimkan identitasnya.
1. RFID Reader RDM6300
Salah satu jenis RFID reader adalah RDM6300. Bentuk fisik dan deskripsi
pin dari RDM6300 adalah seperti gambar 2.1 dan gambar 2.2 di bawah ini.
Gambar 2.1 RFID Reader RDM6300
Sumber: http://www.seeedstudio.com/depot/datasheet/RDM630-Spec.pdf
Dalam datasheet RDM6300, deskripsi pinnya adalah sebagai berikut
Gambar 2.2 Deskripsi pin RDM6300
Sumber: http://www.seeedstudio.com/depot/datasheet/RDM630-Spec..pdf
12
Penjelasan lebih lengkap mengenai pin dari RDM6300 tercantum dalam
tabel 2.1 hingga tabel 2.3.
P1:
Tabel 2.1 Tabel Pin 1
PIN 1 TX
PIN 2 RX
PIN 3
PIN 4 GND
PIN 5 +5V(DC)
P2:
Tabel 2.2 Tabel Pin 2
PIN 1 ANT1
PIN 2 ANT2
P3
Tabel 2.3 Tabel Pin 3
PIN 1 LED
PIN 2 +5V(DC)
PIN 3 GND
2.2.2 Mikrokontroler
Sejarah mikrokontroler bermula dari mikroprosesor di tahun 1969. Pada
tahun tersebut Intel memproduksi mikroprosesor Intel P4004. Mikroprosesor ini
merupakan mikroprosesor pertama di dunia, dibuat oleh Intel dengan Ted Hoff
dan Federico Faggin sebagai desainer utamanya. Intel P4004 merupakan
semikonduktor pertama yang memberikan fungsi komputer dalam kelas chip,
sementara saat itu semikonduktor dan sirkuit terpadu atau IC (Integrated Circuit)
diproduksi berdasarkan fungsi khusus. Walaupun Intel P4004 dibuat untuk
13
penggunaan pada kalkulator, namun mikroprosesor ini juga dapat ditemui dalam
banyak aplikasi yang lain.
Mikroprosesor yang telah dikembangkan tersebut kemudian dirasakan
memiliki keterbatasan. Oleh kerena itu, Intel kemudian terus mengembangkan
mikroprosesornya. Berkat pengembangan tersebut, kinerja mikroprosesor semakin
meningkat di setiap pengembangannya. Bukan hanya itu, bahkan keterbatasan dari
mikroprosesor mengantarkan pada penemuan mikrokontroler.
(Udayashankara, 2009)
Istilah mikrokontroler berbeda dengan mikroprosesor. Mikroprosesor
membutuhkan memori eksternal untuk dapat menjalankan program. Disamping
itu, mikroprosesor tidak dapat secara langsung dihubungkan dengan perangkat
input/output. Dibutuhkan peripheral chips untuk menghubungkan mikroprosesor
dengan perangkat input/output. Sedangkan mikrokontroler mengandung sebuah
mikroprosesor dan satu atau lebih dari komponen berikut:
- Memory
- Analog to Digital Converter
- Digital to Analog Converter
- Parallel I/O interface
- Serial I/O interface
- Timers and counters
Gambar 2.3 berikut menunjukkan diagram blok sebuah mikrokontroler
yang merupakan “komputer dalam sebuah chip”.
Gambar 2.3 Diagram Blok Mikrokontroler
Sumber: Udayashankara, 2009
14
Dengan demikian, mikrokontroler dapat dianggap sebagai sistem mandiri
dengan prosesor, memori dan peripheral (Heath, 2002). Dengan kata lain
mikrokontroler dapat dikatakan sebagai sebuah komputer kecil dalam sirkuit
terpadu yang biasa disebut chip, yang di dalamnya terkandung sebuah inti
prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan
perlengkapan input output. Lebih lanjut Heath menjelaskan bahwa chip tersebut,
karena merupakan sistem mandiri dengan prosesor, memori, dan peripheral,
dalam banyak kasus yang dibutuhkan untuk menggunakannya dalam embedded
system adalah hanya dengan menambahkan perangkat lunak.
Prosesor mikrokontroler biasanya didasarkan pada arsitektur 8 bit stack-
based seperti keluarga MC6800. Ada juga tersedia arsitektur versi 4 bit seperti seri
National COP yang tentu saja kekuatan pemrosesannya lebih kecil dan karena itu
biayanya juga lebih kecil.
2.2.2.1 Mikrokontroler ATmega 328P
Vendor mikrokontroler selain Intel ialah Atmel. Perusahaan ini
memperkenalkan mikrokontroler 8 bit pertama pada tahun 1993. Generasi
pertama flash microcontroller ini didasarkan pada standar industri 8051 core, dan
menggunakan suplai tegangan tinggi terpisah untuk pemrograman. Keuntungan
yang didapatkan pengguna dari flash microcontroller adalah bahwa perangkat
mikrokontroler dapat diprogram sebelum perangkaian sistem. Jika ditemukan bug
pada sistem, atau jika dibutuhkan beberapa perubahan, perangkat mikrokontroler
dapat dilepaskan dan diprogram ulang. (Svendsli, 2003)
Salah satu produk flash microcontroller dari Atmel adalah ATmega 328P.
mikrokontroler ini mempunyai arsitektur RISC (Reduce Instruction Set Computer)
yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC
(Completed Instruction Set Computer).
Dalam datasheet ATmega328P, disebutkan fitur-fitur yang dimiliki
mikrokontroler ATmega328P adalah sebagai berkut :
130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus
clock.
15
32 x 8-bit register serba guna.
Kecepatan hingga 16 MIPS pada frekuensi 16MHz.
Memiliki 512 Bytes EPROM (Electically Erasable Programmable Read Only
Memory) sebagai tempat penyimpanan data meskipun catu daya dimatikan
dan 1 KB SRAM (Static Random Access Memory).
32 KB Flash Memory dan pada arduino memiliki bootloader yang
menggunakan 2 KB dari flash memori sebagai bootloader.
Memiliki pin I/O digital sebanyak 14 pin, 6 diantaranya PWM (Pulse Width
Modulation) output.
Tegangan pada saat operasi sekitar 4.5 – 5.5 V.
2.2.2.2 Konfigurasi pin ATmega328P
Gambar 2.4 berikut menunjukkan konfigurasi pin ATmega328P.
Gambar 2.4 Konfigurasi pin ATmega328P
Sumber: Datasheet ATmega328P
16
2.2.2.3 Pin Descriptions
1. VCC
Suplai digital tegangan
2. GND
Ground.
3. Port B
Tabel 2.4 Konfigurasi Pin Port B
Port Pin Alternate Function
PB7 XTAL2 (Chip Clock Oscillator pin 2)
TOSC2 (Timer Oscillator pin 2)
PCINT7 (Pin Change Interrupt 7)
PB6 XTAL1 (Chip Clock Oscillator pin 1 or External clock input)
TOSC1 (Timer Oscillator pin 1)
PCINT6 (Pin Change Interrupt 6)
PB5 SCK (SPI Bus Master clock Input)
PCINT5 (Pin Change Interrupt 5)
PB4 MISO (SPI Bus Master Input/Slave Output)
PCINT4 (Pin Change Interrupt 4)
PB3 MOSI (SPI Bus Master Output/Slave Input)
OC2A (Timer/Counter2 Output Compare Match A Output)
PCINT3 (Pin Change Interrupt 3)
PB2 SS (SPI Bus Master Slave select)
OC1B (Timer/Counter1 Output Compare Match B Output)
PCINT2 (Pin Change Interrupt 2)
PB1 OC1A (Timer/Counter1 Output Compare Match A Output)
PCINT1 (Pin Change Interrupt 1)
PB0 ICP1 (Timer/Counter1 Input Capture Input)
CLKO (Divided System Clock Output)
PCINT0 (Pin Change Interrupt 0)
17
4. Port C
Tabel 2.5 Konfigurasi Pin Port C
Port Pin Alternate Function
PC6 RESET (Reset pin)
PCINT14 (Pin Change Interrupt 14)
PC5 ADC5 (ADC Input Channel 5)
SCL (2-wire Serial Bus Clock Line)
PCINT13 (Pin Change Interrupt 13)
PC4 ADC4 (ADC Input Channel 4)
SDA (2-wire Serial Bus Data Input/Output Line)
PCINT12 (Pin Change Interrupt 12)
PC3 ADC3 (ADC Input Channel 3)
PCINT11 (Pin Change Interrupt 11)
PC2 ADC2 (ADC Input Channel 2)
PCINT10 (Pin Change Interrupt 10)
PC1 ADC1 (ADC Input Channel 1)
PCINT9 (Pin Change Interrupt 9)
PC0 ADC0 (ADC Input Channel 0)
PCINT8 (Pin Change Interrupt 8)
18
5. Port D
Tabel 2.6 Konfigurasi Pin Port D
6. AVCC
AVCC merupakan suplai tegangan untuk A/D Converter, PC3:0, dan
ADC7:6. Pin ini harus dihubungkan secara eksternal ke VCC, walaupun ADC
tidak digunakan. Jika ADC digunakan, pin ini harus dihubungkan ke VCC melalui
low-pass filter.
Port Pin Alternate Function
PD7 AIN1 (Analog Comparator Negative Input)
PCINT23 (Pin Change Interrupt 23)
PD6 AIN0 (Analog Comparator Positive Input)
OC0A (Timer/Counter0 Output Compare Match A Output)
PCINT22 (Pin Change Interrupt 22)
PD5 T1 (Timer/Counter 1 External Counter Input)
OC0B (Timer/Counter0 Output Compare Match B Output)
PCINT21 (Pin Change Interrupt 21)
PD4 XCK (USART External Clock Input/Output)
T0 (Timer/Counter 0 External Counter Input)
PCINT20 (Pin Change Interrupt 20)
PD3 INT1 (External Interrupt 1 Input)
OC2B (Timer/Counter2 Output Compare Match B Output)
PCINT19 (Pin Change Interrupt 19)
PD2 INT0 (External Interrupt 0 Input)
PCINT18 (Pin Change Interrupt 18)
PD1 TXD (USART Output Pin)
PCINT17 (Pin Change Interrupt 17)
PD0 RXD (USART Input Pin)
PCINT16 (Pin Change Interrupt 16)
19
7. AREF
AREF merupakan pin referensi jika menggunakan A/D Converter.
2.2.3 Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open
source yang didalamnya terdapat komponen utama yaitu sebuah
chip mikrokontroler dengan jenis AVR dari perusahaan Atmel.
Arduino bersifat open source, tidak hanya software-nya yang bersifat
opensource melainkan hardware arduino pun bersifat open source. Diagram
rangkaian elektronik arduino digratiskan kepada semua orang. Semua orang bisa
bebas mengunduh gambar rangkaian arduino, membeli komponen-komponennya,
membuat PCB-nya dan merangkainya sendiri tanpa harus membayar kepada para
pembuat Arduino. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi
arduino merupakan kombinasi dari hardware, bahasa pemrograman dan
Integrated Development Environment (IDE) yang canggih. IDE adalah sebuah
software yang sangat berperan untuk menulis program, meng-compile menjadi
kode biner dan meng-upload ke dalam memori mikrokontroler.
Mikrokontroler ada pada perangkat elektronik sehari-hari. Misalnya
handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai
untuk keperluan mengendalikan robot, baik robot mainan, maupun robot industri.
Komponen utama arduino adalah mikrokontroler, maka arduino juga dapat
diprogram menggunakan komputer sesuai kebutuhan.
2.2.3.1 Instalasi Software Arduino
Langkah-langkah instalasi software arduino adalah sebagai berikut :
1. Download software arduino
Halaman ini dapat diakses dengan alamat web
“http://arduino.cc/en/Main/Software”, seperti ditunjukkan pada gambar 2.5
berikut.
20
Gambar 2.5 Halaman download software Arduino.
2. Instalasi software
File yang diunduh berupa file berekstensi .exe, kemudian lakukan proses
instalasi dengan cara klik dua kali pada file tersebut. File instalasi tersebut
ditunjukkan pada gambar 2.6 di bawah ini.
Gambar 2.6 File instalasi software.Arduino
Setelah itu akan muncul jendela seperti gambar 2.7 berikut. Setelah license
agreement dibaca dan disetujui, klik pada pilihan I Agree.
Gambar 2.7 License Agreement.
21
Jendela berikutnya yang akan muncul adalah seperti gambar 2.8 berikut.
Pilih komponen yang akan di-install pada komputer, kemudian pilih Next.
Gambar 2.8 Pilihan instalasi komponen Arduino.
Tentukan lokasi instalasi software Arduino, kemudian pilih Install. Akan
muncul jendela instalasi software Arduino. gambar 2.9 dan 2.10 merupakan
proses instalasi.
Gambar 2.9 Lokasi instalasi software Arduino.
Gambar 2.10 Jendela instalasi.
22
Sistem operasi akan meminta persetujuan untuk instalasi Arduino USB
Driver. Pilih Install seperti ditunjukkan pada gambar 2.11.
Gambar 2.11 Permintaan persetujuan instalasi Arduino USB Driver.
Jika proses instalasi sudah selesai. Akan muncul tampilan seperti gambar
2.12 di bawah ini. Pilih Close, dan software Arduino siap digunakan.
Gambar 2.12 Instalasi software Arduino sudah selesai.
3. Buka software Arduino.exe
Setelah proses instalasi selesai, software Arduino sudah dapat digunakan.
Tampilan software Arduino adalah seperti gambar 2.13 berikut.
23
Gambar 2.13 Tampilan software Arduino.
4. Pilih board yang digunakan
Pada software Arduino, harus diatur terlebih dahulu board yang akan
digunakan, karena ada cukup banyak jenis board Arduino. Gambar 2.14 berikut
menampilkan cara memilih board pada software Arduino.
Gambar 2.14 Memilih board Arduino.
24
5. Pilih serial port
Pemilihan serial port pada software Arduino perlu dilakukan agar program
yang telah di buat dapat diupload pada board Arduino. Gambar 2.15 berikut
menampilkan pemilihan serial port pada software Arduino.
Gambar 2.15 Memilih serial port.
2.2.3.2 Bahasa Pemrograman Arduino
Bahasa pemrograman Arduino menggunakan bahasa C yang sudah
dipermudah menggunakan fungsi-fungsi yang sederhana sehingga pemula pun
bisa mempelajarinya dengan cukup mudah. Software Arduino IDE
(Integrated Development Enviroment) dibutuhkan untuk membuat program
Arduino dan mengupload ke dalam board Arduino.
1. Struktur Pemrograman
Struktur dasar dari bahasa pemrograman Arduino terdiri dari dua bagian
yaitu setup() dan loop(). Setup() berfungsi untuk inisialisasi program yang
hanya dijalankan sekali di awal program, sedangkan loop() berfungsi untuk
25
menjalankan bagian program yang akan di jalankan berulang-ulang untuk
selamanya.
void setup( )
{
// Statement;
}
void loop( )
{
// Statement;
}
Fungsi setup() hanya dipanggil satu kali diawal program dijalankan.
Fungsi setup() biasaya digunakan untuk inisialisasi, menentukan mode pada pin,
memulai komunikasi serial dan fungsi-fungsi lainnya. Fungsi setup() harus di
terdapat pada program walaupun tidak ada statement yang di jalankan.
void setup()
{
pinMode (5, INPUT); // Berfungsi mengatur pin 5
// pada arduino sebagai input
}
Setelah fungsi setup() di jalankan maka secara langsung akan di
lanjutkan ke fungsi loop(). Fungsi loop() di jalankan berurutan dari statement
awal sampai akhir dan kemudian akan terus-menerus diulang.
void loop()
{
digitalWrite(3, HIGH); // menyalakan pin 3 arduino
delay(2000); // pause selama 2 detik
digitalWrit(3, LOW); //mematikan pin 3 arduino
delay(500); // pause selama 1/2 detik
}
Kurung kurawal (Curly brace, {}) berfungsi untuk mendefinisikan awal
dan akhir dari sebuah blok fungsi. Ketika suatu blok fungsi tidak berisi kurung
kurawal maka akan terjadi laporan error ketika di compile.
26
Semicolon (;) berfungsi untuk memberikan batas antara statement program
dan statement program lainnya.
2. Function
Function (fungsi) adalah blok pemrograman yang mempunyai nama dan
mempunyai statement yang akan di jalankan ketika fungsi di panggil. Void
setup() dan void loop() juga merupakan fungsi pada pemrograman Arduino.
Adapun fungsi lain dapat dibuat sesuai dengan keperluan. Adapun cara
pendeklarasian fungsi adalah sebagai berikut :
type functionName(parameters)
{
//statement;
}
Contoh:
int jumlah()
{
int a; // membuat variabel ‘a’ bertipe integer
a = analogRead(1); // baca nilai pada pin 1
return a; // return nilai a
}
Pada contoh di atas merupakan fungsi yang memiliki nilai balik int
(integer). Jika suatu fungsi tidak membutuhkan adanya nilai balik maka type
function harus void.
3. Comment
Pada pemrograman Arduino ada dua jenis comment yaitu blok comment
dan line comment. Semua statement yang terdapat pada blok comments tidak akan
di jalankan dan tidak di compile pada board Arduino sehingga tidak
mempengaruhi besar program yang di masukkan ke dalan board Arduino.
Line comment mempunyai fungsi yang sama seperti blok comment hanya
pada line comment semua statement yang berada setelah garis miring (/) tidak
akan dijalankan dan di compile pada board Arduino.
27
/*
block comment
*/
// line comment
4. Variabel
Variabel berfungsi sebagai penyimpan nilai yang digunakan pada program.
Variabel dapat dirubah nilainya sesuai dengan statement yang dijalankan.
Variabel dapat dideklarasikan dengan menentukan tipe variabel dan nilai awal
variabel.
Type variableName = 0;
Variabel yang dideklarasikan pada awal program sebelum void setup()
disebut dengan variabel global. Variabel global dapat digunakan pada semua blok
fungsi dan statement dalam program. Sedangkan variabel lokal dapat
dideklarasikan secara lokal di dalam sebuah fungsi ataupun di dalam suatu blok
pengulangan. Variabel lokal hanya dapat digunakan pada blok yang bersangkutan.
5. Tipe Data
Tipe data yang digunakan pada bahasa pemrograman Arduino dapat dilihat
pada tabel 2.7.
28
Tabel 2.7 Tipe data bahasa pemrograman Arduino. No. Tipe
Data
Penulisan Keterangan Range
1 Byte byte Tipe data yang dapat menyimpan 8-bit nilai
angka bilangan asli tanapa koma.
0-255
2 Integer int Tipe data yang dapat menyimpan 16-bit
nilai bilangan bulat tanpa koma.
-32.768 s/d
32.767
2 Long long Tipe data yang lebih besar dari integer,
dapat menyimpan 32-bit nilai bilangan bulat
tanpa koma.
-2.147.483.648
s/d 2.147.483.647
3 Float float Tipe data yang dapat menyimpan 32-bit
nilai angka bilangan desimal.
-3.4028235E+38
s/d
3.4028235E+38
4 Word word Tipe data yang dapat menyimpan 16-bit
nilai bilangan bulat tanpa koma.
0 s/d 65535
5 Short short Tipe data yang dapat menyimpan 16-bit
nilai bilangan sama seperti tipe data int.
-32.768 s/d
32.767
6 Double double Tipe data yang dapat menyimpan 32-bit
nilai angka bilangan decimal sama seperti
tipe data float.
-3.4028235E+38
s/d
3.4028235E+38
7 Array tipeData
x[]
Tipe data array merupakan kumpulan nilai
yang dapat di akses dengan indeks number
dan perlu dideklarasikan tipe datanya
terlebih dahulu. Nilai array dapat di panggil
dengan cara menuliskan nama array dan
index numbernya. Indeks pada array
dimulai dari 0.
8 Boolean boolean Tipe data yang hanya mempunyai dua nilai,
yaitu true atau false (benar atau salah).
9 Void void Tipe data yang hanya digunakan pada
deklarasi fungsi.
10 Char char Tipe data yang dapat menyimpan nilai
karakter.
11 String String Tipe data yang berfungsi untuk
memanipulasi data teks.
6. Operator Aritmatika
Operator aritmatika pada bahasa pemrograman Arduino terdiri dari
penjumlahan (+), pengurangan(-), pengkalian(*), dan pembagian(/). Pemilihan
tipe data harus diperhatikan dalam pemilihan operator aritmatika agar tidak terjadi
overflow range data.
Pada bahasa pemrograman Arduino terdapat kombinasi operator aritmatika
yang biasanya digunakan pada pengulangan. Berikut operator kombinasi pada
bahasa pemrograman Arduino :
1. x++; memiliki fungsi menaikan nilai x sebesar 1.
29
2. x--; memiliki fungsi mengurangi nilai x sebesar 1.
3. x += y; memiliki fungsi sama seperti x = x + y.
4. x -= y; memiliki fungsi sama seperti x = x – y.
5. x *= y; memiliki fungsi sama seperti x = x * y.
6. x /= y; memiliki fungsi sama seperti x = x / y.
Pada bahasa pemrograman Arduino terdapat operator perbandingan seperti
pada bahasa pemrograman yang lain. Operator perbandingan pada bahasa
pemrograman Arduino membandingkan dua variabel dan apabila terpenuhi akan
bernilai 1 atau true. Operator perbandingan ini banyak digunakan dalam operator
bersyarat. Berikut operator perbandingan pada bahasa pemrograman Arduino :
1. x == y; membandingkan nilai x sama dengan y.
2. x != y; membandingkan nilai x tidak sama dengan y.
3. x < y; membandingkan nilai x lebih kecil dari y.
4. x > y; membandingkan nilai x lebih besar dari y.
5. x <= y; membandingkan nilai x lebih kecil dari sama dengan y.
6. x >= y; membandingkan nilai x lebih besar dari sama dengan y.
Pada bahasa pemrograman Arduino terdapat 3 operator logika yaitu :
AND, OR, dan NOT. Operator logika digunakan untuk membandingkan 2
ekspresi dan mengembalikan nilai balik baik benar ataupun salah. Operator logika
biasanya digunakan pada if statement.
a. Logika AND
Logika AND bernilai benar jika kedua operator perbandingan terpenuhi.
Contoh :
If ( x > 0 && x < 3)
b. Logika OR
Logika OR bernilai benar jika salah satu operator perbandingan terpenuhi.
Contoh :
If (x < 5 || x = 0)
30
c. Logika NOT
Logika NOT bernilai benar jika ekspresi operator salah.
Contoh :
If (x != 0)
7. Konstanta
Arduino mempunyai beberapa variabel konstanta. Konstanta
diklasifikasikan berdasarkan group.
a. TRUE / FALSE
Merupakan konstanta boolean yang mendefinisikan logika TRUE/FALSE.
False mendifinisikan 0 dan True mendifinisikan 1.
Contoh :
If ( x == TRUE );
{
//statement
}
b. HIGH / LOW
Konstanta HIGH/LOW biasanya digunakan pada saat membaca dan
menulis ke pin digital. HIGH di definisikan sebagai 1 sedangkan LOW sebagai 0.
digitalWrite( 3, HIGH );
c. INPUT / OUTPUT
Konstanta INPUT/OUTPUT biasanya digunakan pada fungsi pinMode()
untuk mendifinisikam mode pin digital sebagai input ataupun sebagai output.
pinMode( 3, INPUT );
8. Flow Control
a. If
Operator if akan menjalankan statement yang ada di dalamnya jika kondisi
pada operator if sudah terpenuhi dan jika kondisi if tidak terpenuhi maka
statement yang berada di dalam if akan diabaikan.
31
Contoh :
If ( variabel == value )
{
//statement
}
b. If... else
Operator if .. else akan menjalankan statement yang ada di dalamnya
apabila kondisi pada operator if sudah terpenuhi dan jika kondisi if tidak terpenuhi
maka akan menjalankan statement yang berada di dalam operator else.
Contoh : If ( variabel == value )
{
// statement
}
Else
{
// statement
}
c. For
Operator for berfungsi untuk melakukan pengulangan statement yang
berada di dalam kurung kurawal, sampai kondisi pengulangan terpenuhi.
For ( initialization; condition; expression )
{
// statement;
}
d. While
Operator berfungsi mengulang statement yang berada di dalam kurung
kurawal terus-menerus apabila kondisi terpenuhi. Operator while akan berhenti
dijalankan apabila kondisi pengulangan bernilai salah.
While ( variabel == value ) {
// statement;
}
32
e. Do... while
Operator do…while mempunyai fungsi yang sama dengan operator while,
tetapi pada operator do…while pengecekan dilakukan diakhir, jadi pengulangan
akan tetap dijalankan walaupun kondisi awalnya tidak terpenuhi.
Do
{
// statement;
}
While ( variabel == value );
9. Digital dan Analog I/O
a. Digital I/O
Input / output digital pada board Arduino mempunyai jumlah berbeda-
beda tergantung jenis board Arduino yang digunakan.
Pada fungsi void setup() digunakan mengkonfigurasi pin sebagai input
atau output. Pin digital Arduino pada konfigurasi awal diatur sebagai input
sehingga untuk merubahnya harus menggunakan operator pinMode(pin, mode).
pinMode (pin, OUTPUT); // mengset pin sebagai output
digitalWrite(pin, HIGH); // pin ditulis HIGH
digitalRead(pin); //membaca nilai dari pin
b. Analog I/O
Input / ouput analog pada board Arduino mempunyai jumlah berbeda-
beda tergantung jenis board Arduino yang digunakan. Pada board Arduino Uno
terdapat 6 pin analog, pengalamatnya mulai A0 – A5.
Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya
dapat bekerja pada analog pin (A0 - A5). Hasil dari pembacaan berupa nilai
integer dengan range 0 sampai 1023.
analogRead(pin); // membaca nilai analog pin
analogWrite(pin, value); // menulis ke pin analog
33
10. Time
a. Delay(ms)
Delay berfungsi menghentikan program dalam waktu tertentu dengan
satuan millisecond.
delay(2000); // menunggu selama dua detik
b. Millis()
Millis berfungsi mengembalikan nilai dalam millisecond dihitung sejak
Arduino board menyala. Penapungnya harus long integer.
x = millis(); // set ‘x’ equal to millis()
11. Math
a. Min(x,y)
Min(x,y) berfungsi mengembalikan nilai yang paling kecil dengan
membandingkan kedua variabel.
b. Max(x,y)
Max(x,y) merupakan kebalikan dari min, berfungsi mengembalikan nilai
yang paling kecil dengan membandingkan kedua variabel.
12. Serial
a. Serial.begin(rate)
Statement yang berfungsi untuk mengaktifkan komunikasi serial dan
mengeset baudrate.
Contoh :
void setup()
{
Serial.begin(9600); //mengaktifkan serial port dan
//mengatur baudrate 9600 bps
}
b. Serial.prinln(x)
Berfungsi mengirimkan x ke serial port.
Contoh :
Serial.println(25); // mengirimkan 25
34
2.2.3.3 Hardware Board Arduino
Hardware pada Arduino adalah seperangkat sistem komponen yang telah
terkombinasi dengan mikrokontroler sebagai otak dari sistem dan antarmuka
(interface) yang akan menghubungkan sistem mikrokontroler dengan sistem
komputer. Komponen utama di dalam board Arduino adalah sebuah
mikrokontroler dengan merek ATmega yang dibuat oleh perusahaan Atmel
Corporation. Arduino memiliki 15 jenis board yaitu Arduino Uno, Arduino
Leonardo, Arduino Due, Arduino Esplora, Arduino Mega 2560, Arduino Mega
ADK, Arduino Ethernet, Arduino Mini, Lilypad Arduino, Lilypad Arduino USB,
Arduino Micro, Arduino Nano, Arduino Pro, Arduino Pro Mini, dan Arduino Flo.
Jenis-jenis Arduino ini dibedakan sesuai fungsi dan juga jumlah pin yang terdapat
pada board, karena terdapat jenis Arduino yang dapat melakukan fungsi khusus
seperti Arduino Mega ADK dapat berkoneksi terhadap handphone android, dan
Arduino Ethernet dapat melakukan komunikasi melalui kabel LAN. Jenis Arduino
yang umum digunakan oleh pengguna adalah Arduino Uno.
1. Arduino Uno
Arduino Uno adalah board berbasis mikrokontroler ATmega 328,
memiliki 20 pin yaitu 6 pin input analog, dan 14 pin I/O digital yang 6
diantaranya dapat digunakan sebagai output PWM, dilengkapi koneksi USB, jack
listrik, header ICSP, dan tombol reset. Arduino Uno memiliki flash memory
32KB, SRAM 2 KB dan EEPROM 1KB. Gambar 2.16 menunjukkan board
Arduino Uno.
Gambar 2.16 Board Arduino Uno.
Sumber : http://arduino.cc/en/Main/ArduinoBoardUno.
35
2.2.3.4 Keunggulan Arduino
Keunggulan dari board Arduino adalah sebagai berikut:
a. Bahasa pemrograman Arduino relatif mudah karena dilengkapi dengan
kumpulan library yang cukup lengkap.
b. Pada board Arduino terdapat boatloader yang berfungsi untuk upload program
dari komputer sehingga tidak memerlukan perangkat chip programmer.
c. Arduino memiliki sarana komunikasi USB sehingga tidak memerlukan port
serial (RS323).
d. Arduino memiliki modul siap pakai yang dapat langsung dipasang pada board
Arduino seperti : modul GPS, modul Ethernet, modul SD Card, dll.
2.2.4 Bahasa Pemrograman
Sebuah perangkat keras/hardware tidak dapat bekerja tanpa ada perintah.
Sebuah perangkat lunak/software dibutuhkan untuk memberikan sejumlah
perintah kepada hardware, sehingga hardware tersebut akan bekerja sebagaimana
fungsinya. Software dibangun dari sekumpulan perintah-perintah. Kumpulan
perintah inilah yang disebut bahasa pemrograman.
Delphi adalah sebuah bahasa pemrograman dan lingkungan
pengembangan perangkat lunak. Produk ini dikembangkan oleh Borland. Dengan
menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat
pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS
X dan Windows CE. Keunggulan bahasa pemrograman ini terletak pada
produktivitas, kualitas, pengembangan perangkat lunak, kecepatan kompilasi, pola
desain yang menarik yang menarik serta diperkuat dengan pemrogramannya yang
terstruktur.
2.2.4.1 IDE (Integrated Development Environment) Delphi
Lingkungan pengembangan terpadu atau Integrated Development
Environment (IDE) adalah bagian dari Delphi yang digunakan untuk
memungkinkan pemrograman secara visual merancang tampilan untuk para user
36
(antarmuka pemakai) dan menuliskan kode program. Gambar 2.16 di bawah ini
memperlihatkan tampilan utama IDE Delphi 7
Gambar 2. 17 Tampilan Utama IDE Delphi
1. Menu Bar
Berfungsi untuk memilih tugas-tugas tertentu , seperti memulai, membuka,
dan menyimpan project, mengompilasi project menjadi file executable (EXE), dan
lain-lain seperti ditunjukkan gambar 2.18 di bawah ini.
Gambar 2.18 Menu bar pada Delphi
37
2. Tool Bar
Tool bar merupakan sekumpulan ikon yang terkumpul dalam grup tertentu yang
terletak di bawah menu bar. Tool bar berguna untuk dapat mengakses perintah-
perintah tertentu secara lebih cepat. Gambar 2.19 berikut menunjukkan posisi
toolbar.
Gambar 2.19 Toolbar
3. Component Palette
Component Palette merupakan salah satu komponen tool bar yang berisi
kumpulan ikon yang melambangkan komponen-komponen yang terdapat pada
VCL (Visual Component Library). Pada Component Palette, akan ditemukan
beberapa page control, seperti Standard, Additional, Win32, System, Data Access
dan lain-lain. Ikon tombol pointer terdapat di setiap page control. Pada gambar
2.20 berikut merupakan posisi component palette.
38
Gambar 2.20 Compponent Palette pada Delphi
4. Form
Form Designer merupakan suatu objek yang dapat dipakai sebagai tempat
untuk merancang program aplikasi. Form berbentuk sebuah meja kerja yang dapat
diisi dengan komponen-komponen yang diambil dari Component Palette. Gambar
2.21 berikut ini merupakan jendela form designer.
Gambar 2.21 Form Designer pada Delphi
39
5. Object Inspector
Object Inspector digunakan untuk mengubah properti dan karakteristik
dari sebuah komponen. Object Inspector terdii dari dua tab, yaitu Properties dan
Events. Tab Properties digunakan untuk mengubah properti komponen. Properti
dengan tanda + menunjukkan bahwa propeti tersebut mempunyai subproperti. Tab
Events, bagian yang dapat diisi dengan kode program tertentu yang berfungsi
unuk menangani event-event (kejadian kejadian yang berupa sebuah procedure)
yang dapat direspon oleh sebuah komponen. Gambar 2.22 di bawah ini
menunjukkan object inspector.
Gambar 2.22 Object Inspector pada Delphi
6. Object Tree View
Object Tree View menampilkan diagram pohon dari komponen-komponen
yang bersifat visual maupun nonvisual yang telah terdapat dalam form, data
module, atau frame. Object Tree View juga menampilkan hubungan logika antar
komponen. Gambar 2.23 di bawah ini merupakan object tree view.
40
Gambar 2.23 Object TreeView pada Delphi
7. Code Editor
Code Editor merupaka tempat menuliskan kode program atau pernyataan-
pernyataan dalam Object Pascal. Code Editor dilengkapi dengan fasilitas highlight
yang memudahkan pemakai menemukan kesalahan. Title bar yang terletak pada
bagian atas jendela code editor menunjukkan nama file yang sedang disunting,
serta pada bagian informasi yang perlu untuk diperhatikan, yaitu: nomor
baris/kolom yang terletak pada bagian paling kiri.
Bagian ini berfungsi untuk menunjukkan posisi kursor di dalam jendela
Code Editor. Modified menunjukkan bahwa file yang sedang disunting telah
mengalami perubahan tersebut belum disimpan. Teks ini akan hilang jika telah
menyimpan perubahan. Insert/Overwrite yang terletak pada bagian paling kanan
menunjukkan bahwa modus pengetikan teks dalam jendela Code Editor. Insert
menunjukkan bahwa modus penyisipan teks dalam keadaan aktif, sedangkan
Overwrite menunjukkan bahwa modus penimpaan teks dalam keadaan aktif.
Berikut ini merupakan code editor seperti diperlihatkan pada gambar 2.24.
41
Gambar 2.24 Code Editor pada Delphi
2.2.5 Database
Dalam kamus online bahasa Inggris Oxford, disebutkan bahwa database
adalah satu set data yang terstruktur dalam penyimpanan komputer dan biasanya
diakses atau dimanipulasi dengan menggunakan perangkat lunak khusus.
Biasanya juga dibutuhkan dalam penggunaan yang berkepanjangan. Database
digunakan untuk menyimpan data sedemikian rupa sehingga tidak terjadi
penduplikatan data. Hal ini sangat berguna untuk efisiensi penyimpanan sehingga
ruang penyimpanan dapat dihemat sebisa mungkin.
Salah satu database server yang paling popular adalah MySQL. MySQL
merupakan sebuah database management system yang dikembangkan oleh
perusahaan Oracle. MySQL termasuk jenis RDBMS (Relational Database
Management System). Itulah sebabnya istilah seperti tabel, baris, dan kolom
digunakan pada MySQL. Pada MySQL, sebuah database mengandung satu atau
sejumlah tabel. Tabel terdiri atas sejumlah baris dan seiap baris mengandung satu
atau beberapa kolom.