BAB II LANDASAN TEORI 2.1
RFID (Radio Frequency Identification) RFID atau Radio Frequency Identification, adalah suatu metode yang
mana bisa digunakan untuk menyimpan atau menerima data secara jarak jauh dengan menggunakan suatu piranti yang bernama RFID tag atau transponder. Suatu RFID tag adalah sebuah benda kecil, misalnya berupa stiker adesif, dan dapat ditempelkan pada suatu barang atau produk. RFID tag berisi antena yang memungkinkan mereka untuk menerima dan merespon terhadap suatu query yang dipancarkan oleh suatu RFID transceiver. Berikut adalah contoh gambar sebuah chip RFID yang dilengkapi dengan antena:
Gambar 2.1 Chip RFID
Beberapa tipe dari tag RFID dapat bersifat aktif atau pasif. RFID tag yang pasif tidak memiliki power supply sendiri. Dengan hanya berbekal induksi listrik yang ada pada antena yang disebabkan oleh adanya frekuensi radio scanning yang masuk, sudah cukup untuk memberi kekuatan yang cukup bagi RFID tag untuk mengirimkan respon balik. Sehubungan dengan power dan biaya, maka respon dari suatu RFID yang pasif biasanya sederhanya, hanya nomor ID saja. RFID tag
4
5
yang pasif ini memiliki jarak jangkauan yang berbeda mulai dari 10 mm sampai dengan 6 meter. RFID tag yang aktif, di sisi lain harus memiliki power supply sendiri dan memiliki jarak jangkauan yang lebih jauh. Memori yang dimilikinya juga lebih besar sehingga bisa menampung berbagai macam informasi di dalamnya. Sampai tulisan ini dipublikasikan, ukuran terkecil dari RFID tag yang aktif ini ada yang sebesar koin. Jarak jangkauan dari RFID tag yang aktif ini bisa sampai sekitar 10 meter dan dengan umur baterai yang bisa mencapai beberapa tahun lamanya. RFID tag yang pasif harganya bisa lebih murah untuk diproduksi dan tidak bergantung pada baterai. RFID tag yang banyak beredar sekarang adalah RFID tag yang sifatnya pasif. Ada empat macam RFID tag yang sering digunakan bila dikategorikan berdasarkan frekuensi radio, yaitu:
low frequency tag (antara 125 ke 134 kHz)
high frequency tag (13.56 MHz)
UHF tag (868 sampai 956 MHz)
Microwave tag (2.45 GHz) UHF tag tidak bisa digunakan secara global, karena tidak ada peraturan
global yang mengatur penggunaannya.
2.1.1
Sistem RFID Suatu sistem RFID dapat terdiri dari beberapa komponen, seperti tag, tag
reader, tag programming station, circulation reader, sorting equipment dan inventory tag. Keamanan dapat dicapai dengan dua cara. Pintu security dapat melakukan query untuk menentukan status keamanan atau RFID tag-nya berisi bit security yang bisa menjadi on atau off pada saat didekatkan ke reader station. Berikut adalah contoh gambar dari sistem dasar RFID:
Gambar 2.2 Sistem Dasar RFID
6
Kegunaan dari sistem RFID ini adalah untuk mengirimkan data dari piranti portable, yang dinamakan tag, dan kemudian dibaca oleh RFID reader dan kemudian diproses oleh aplikasi komputer yang membutuhkannya. Data yang dipancarkan dan dikirimkan tadi bisa berisi beragam informasi, seperti ID, informasi lokasi atau informasi lainnya seperti harga, warna, tanggal pembelian dan lain sebagainya. Penggunaan RFID untuk maksud tracking pertama kali digunakan sekitar tahun 1980 an. RFID dengan cepat mendapat perhatian karena kemampuannya dalam men-tracking atau melacak object yang bergerak. Seiring dengan perkembangan teknologi, maka teknologi RFID sendiripun juga berkembang sehingga nantinya penggunaan RFID bisa digunakan untuk kehidupan sehari-hari. Dalam suatu sistem RFID sederhana, suatu object dilengkapi dengan tag yang kecil dan murah. Tag tersebut berisi transponder dengan suatu chip memori digital yang di dalamnya berisi sebuah kode produk yang sifatnya unik. Sebaliknya, interrogator, suatu antena yang berisi transceiver dan decoder, memancarkan sinyal yang bisa mengaktifkan RFID tag sehingga dia dapat membaca dan menulis data ke dalamnya. Ketika suatu RFID tag melewati suatu zone elektromagnetis, maka dia akan mendeteksi sinyal aktivasi yang dipancarkan oleh si reader. Reader akan men-decode data yang ada pada tag dan kemudian data tadi akan diproses oleh komputer.
2.1.2
Penggunaan RFID saat ini Low frequency RFID tag banyak digunakan untuk identifikasi pada
binatang, beer keg tracking, keylock pada mobil dan juga sistem anti pencuri. Binatang peliharaan seringkali ditempeli dengan chip yang kecil sehingga mereka bisa dikembalikan kepada pemiliknya jika hilang. Di Amerika Serikat, frekuensi RFID yang digunakan ada dua yaitu 125 kHz (standar aslinya) dan 134.5 kHz (yang merupakan standar internasional). High-frequency RFID tag sering digunakan pada perpustakaan atau toko buku, pallet tracking, akses kontrol pada gedung, pelacakan bagasi pada pesawat terbang dan apparel item tracking. Ini juga digunakan secara luas pada identifikasi lencana, mengganti keberadaan kartu magnetik sebelumnya. Lencana ini hanya perlu dipegang dalam suatu jarak tertentu dan reader-nya langsung dapat
7
mengenali siapa pemegang lencana tersebut. Kartu kredit American Express Blue saat ini sudah mengandung RFID tag dengan high-frequency. UHF RFID tag sering digunakan secara komersial pada pallet dan pelacakan container, pelacakan truk dan trailer pada pelabuhan kapal laut. Microware RFID tag seringkali digunakan dalam akses kontrol jarak jauh kendaraan bermotor. Selain itu sistem RFID juga dapat digunakan untuk solusi dari sebuah sistem ticketing, berikut adalah gambar contoh penggunaan RFID untuk Ticket Solution:
Gambar 2.3 RFID Ticket Solution
Beberapa gerbang tol, seperti FasTrak di California, sistem I-Pass di Illionis dan juga South Luzon Expressway E-Pass di Filipina sudah menggunakan RFID tag untuk electronic toll collection -nya. RFID tag tadi akan dibaca seketika ketika suatu kendaraan bermotor melewati gerbang tol dan informasi tadi akan digunakan untuk mendebet account toll-nya. Ini tentu saja akan mempercepat traffic yang ada pada gerbang tol yang sebelumnya sering macet.
2.1.3
Regulasi dan Standarisasi Sampai saat ini belum ada lembaga atau badan dunia yang mengatur
mengenai penggunaan frekuensi pada RFID. Pada dasarnya, setiap negara dapat
8
membuat peraturan sendiri mengenai hal ini. Badan-badan utama yang tugasnya memberi alokasi frekuensi untuk RFID adalah sebagai berikut:
USA: FCC (Federal Communications Commision)
Canada: DOC (Department of Communication)
Europe: ERO, CEPT dan ETSI
Japan: MPHPT (Ministry of Public Management, Home Affairs, Post and Telecommunication)
China: Ministry of Information Industry
Australia: Australian Communication Authority
New Zealand: Ministry of Economic Development Frekuensi rendah (125 – 134 kHz dan 140 – 148.5 kHz) dan frekuensi
tinggi (13.56 MHz) dari RFID tag dapat digunakan secara global tanpa lisensi. Frekuensi ultra tinggi (UHF 868 MHz – 928 MHz) tidak boleh digunakan secara global karena belum ada standar global yang mengaturnya. Di Amerika Utara, UHF dapat digunakan tanpa lisensi pada rentang 908 – 928 MHz, tetapi restriksinya ada pada transmission power-nya. Di Eropa, UHF sedang dipertimbangkan dalam rentang 865.6 – 867.6 MHz. Penggunaannya saat ini masih tanpa lisensi untuk rentang 869.40 – 869.65 MHz, tetapi restriksinya kembali pada transmission power-nya. Standar UHF di Amerika Utara tidak diterima di Perancis karena akan menimbulkan interferensi dengan frekuensi yang digunakan oleh militer. Di Cina dan Jepang juga belum ada regulasi untuk penggunaan UHF. Di Australia dan Selandia Baru, rentang 918 – 926 MHz digunakan tanpa lisensi, tetapi restriksinya juga ada pada transmission power-nya. Regulasi juga ada pada sisi kesehatan dan isu lingkungan. Sebagai contoh, di Eropa, regulasi dari Waste Electrical and Electronic Equipment menyatakan bahwa RFID tag tidak boleh dibuang. Ini artinya bahwa jika suatu kemasan kosong mau dibuang, maka RFID tag-nya harus dilepas terlebih dahulu. Berikut ini beberapa standar yang dibuat dan mengandung seputar teknologi RFID, yaitu:
ISO 10536
ISO 14443
ISO 15693
9
2.2
ISO 18000
EPCglobal
NFC Shield NFC shield adalah antarmuka Near Field Communication atau komunikasi
jarak dekat untuk Arduino yang dibangun dengan NXP PN532 integrated circuit. NFC adalah teknologi radio jarak pendek yang memungkinkan komunikasi antara perangkat yang berdekatan. NFC sendiri merupakan singkatan dari Near Field Communication, yaitu suatu teknologi yang merupakan pengembangan dari teknologi kartu Radio Frequency Identification (RFID) dan teknologi ini merupakan open platform technology yang distandardisasi di dalam ECMA-340 dan ISO / IEC 18.092. NFC digunakan secara luas seperti RFID untuk mengenali kartu/tag (NXP Mifare Cards/tags). NFC dapat digunakan sebagai alternatif sebagai travel card menggunakan read/write memory yang disediakan oleh kartu/tag. Seperti standar yang lain, teknologi NFC diatur oleh Field Communication Forum Near yang menstandardisasi komunikasi NFC untuk bagaimana perangkat ini digunakan, share data dan memungkinkan transaksi yang aman dapat terjadi. NFC beroperasi pada unlicensed ISM (Industry Scientific Medic) band dari Frekuensi 13,56 MHz. Komunikasi NFC memiliki jarak hingga 10 cm. Namun, hal ini dibatasi oleh antena dan desain daya radiasi. Kebanyakan perangkat bekerja dalam 10mm. Antenna NFC Shield dirancang untuk bekerja dalam jarak 1cm. NFC Shield menyediakan semua sirkuit yang diperlukan untuk PN532. Komunikasi antara Arduino dan NFC Shield adalah melalui SPI. Berikut adalah gambar dari NFC Shield:
Gambar 2.4 NFC Shield
10
Fitur:
2.3
Kompatibel dengan Arduino Shield
SPI interface
Built in PCB Antenna
Mendukung sumber tegangan 3.3V dan 5V
Terdapat socket untuk terhubung dengan shield yang lain
Jarak maksimum komunikasi NFC Shield ini sekitar 5 cm.
Arduino Ethernet Shield Arduino Ethernet Shield memungkinkan Arduino board untuk koneksi
dengan internet(online). Shield ini berbasis Wiznet W5100 ethernet chip. Wiznet W5100 menyediakan sebuah jaringan (Ip) yang tersusun baik dari TCP dan UDP. Gunakan Ethernet library untuk menulis sketch untuk dapat terhubung dengan internet menggunakan shield. Ethernet Shield terhubung dengan Arduino menggunakan kawat header panjang, hal ini mmemungkinkan tata letak pin tetap utuh sehingga memungkinkan shield lain dapat ditumpuk diatasnya. Berikut adalah gambar dari Arduino Ethernet Shield:
Gambar 2.5 Arduino Ethernet Shield
Untuk menggunakan shield ini dengan mamasangkannya diatas Arduino board (contohnya UNO). Untuk mengupload scetch ke Arduino Board, cukup koneksikan Arduino board dan shield ini ke komputer dengan menggunakan kabel USB. Menghubungkan shield ini ke komputer atau network hub atau
11
routing menggunakan kabel ethernet standar (CAT5 atau CAT6 dengan konektor RJ45). Hubungan ke komputer dianjurkan dengan menggunakan cross-over cable.
Seting network Shield ini harus diberi alamat MAC dan alamat IP yang tetap, menggunakan fungsi Ethernet.begin(). Alamat MAC adalah unique identifier yang secara global untuk perangkat tertentu. Ethernet Shield saat ini dilengkapi dengan stiker alamat MAC yang digunakan pada shield ini. Untuk Ethernet Shield yang sebelumnya (tidak ada stiker alamat MAC), dapat digunakan alamat MAC secara acak(random), tetapi alamat MAC tersebut tidak dapat sama untuk digunakan untuk beberapa board. Alamat IP yang valid tergantung pada konfigurasi pada jaringan. Hal ini memungkinkan untuk menggunakan DHCP untuk menetapkan IP secara dinamis untuk shield ini. Secara opsional dapat juga ditentukan network gateway dan subnetnya.
2.4
Arduino Dalam buku “Getting Started with Arduino” karya Massimo Banzi,
Arduino dituliskan sebagai sebuah platform komputasi fisik (Physical Computing) yang open source pada board input output sederhana. Yang dimaksud komputasi fisik disini adalah sebuah sistem fisik yang interaktif dengan penggunaan software dan hardware yang dapat mendeteksi dan merespons situasi dan kondisi yang ada di dunia nyata. Sedangkan situs resminya di www.Arduino.cc, Arduino didefinisikan sebagai sebuah platform elektronik yang open source, berbasis pada software dan hardware yang fleksibel dan mudah digunakan. Nama Arduino sendiri tidak hanya dipakai untuk menamai board rangkaiannya saja tetapi juga untuk menamai software pemrogramnya, serta lingkungan pemrogramannya atau IDE(Integrated Development Environment)-nya. Kelebihan Arduino dari flatform hardware mikrokontroler lainnya adalah: 1. IDE Arduino adalah multiplatform, yang dapat dijalankan di berbagai sistem operasi seperti Windows, Machintosh dan Linux.
12
2. IDE Arduino dibuat berdasarkan pada IDE Processing, yang sederhana sehingga mudah digunakan. 3. Pemrograman Arduino menggunakan kabel yang terhubung dengan port USB, bukan port serial. Fitur ini berguna karena banyak komputer yang sekarang ini tidak memiliki port serial. 4. Arduino adalah software dan hardware open source, penggunanya dapat men-download software dan gambar rangkaian Arduino tanpa harus membayar. 5. Biaya hardware cukup murah, sehingga tidak teralu menakutkan untuk membuat kesalahan. 6. Proyek Arduino dikembangkan dalam lingkungan pendidikan, sehingga bagi pemula akan lebih cepat dan mudah mempelajarinya. 7. Memiliki begitu banyak pengguna dan komunitas di internet yang dapat membantu setiap kesulitan yang dihadapi.
2.4.1
Lingkungan Pemrograman Arduino Lingkungan pemrograman ini juga disebut IDE, atau Integrated
Development Environment. Salah satu kelebihan Arduino adalah pada penggunaan IDE-nya yang mudah karena kesederhanaannya. Seperti terlihat pada tapilan IDE Arduino versi 1.0.1 berikut ini:
Gambar 2.6 IDE Arduino 1.0.1
13
Tampak ada 6 buah tombol pada toolbar, dengan fungsi masing-masing sebagai berikut: Tabel 2.1 Tombol pada Toolbar IDE Arduino No
Tombol
Nama
Fungsi Menguji apakah ada kesalahan pada program atau sketch. Apabila sketch sudah benar, maka sketch tersebut akan dikompilasi. Kompilasi adalah proses mengubah program ke dalam kode mesin. Mengirimkan kode mesin hasil kompilasi ke board Arduino.
1
Verify
2
Upload
3
New
Membuat sketch yang baru.
4
Open
Membuka sketch yang sudah ada.
5
Save
Menyimpan sketch.
6
Serial Monitor
Menampilkan data yang dikirim dan diterima melalui komunikasi serial.
2.4.1.1 Kerangka program Arduino: Kerangka program Arduino sangat sederhana, yaitu terdiri atas dua blok. Blok pertama adalah void setup(), dan blok kedua adalah void loop(). Berikut keterangan masing-masing:
Blok void setup(): berisi kode program yang hanya dijalankan sesaat setelah Arduino dihiduppkan atau di-reset. Merupakan bagian persiapan atau inisialisasi program.
Blok void loop(): berisi kode program yang akan dijalankan secara terusmenerus. Merupakan tempat untuk program utama.’
Catatan: selain kedua blok tersebut, apabila diperlukan bisa ditambahkan blok Function. Blok Function adalah bagian dari program yang dibuat terpisah untuk melaksanakan tugas khusus atau fungsi tertentu. Apbila blok Function ini menghasillkan data yang digunakan di blok lain, maka nama depan blok tersebut
14
harus diberi tipe data. Namun, apabila blok Function ini tidak manghasikan data, maka di depan nama Function tersebut diberi tulisan “void”. Sintaks Program
Baik blok void setup(),void loop() maupun blok function harus diberi tanda kurung kurawal buka “{” sebagai tanda awal program di blok itu dan kurung kurawal tutup “}” sebagai tanda akhir program.
Tanda kurung kurawal buka dan kurung kurawal tutup tersebut juga digunakan pada blok kontrol prodgram, seperti if, if-else, for-loop, whileloop dan do-while-loop.
Untuk menandai akhir sebuah baris kode program digunakan tanda titik koma “;”.
Catatan: kurangnya tanda kurung kuraawa buka, kurung kurawal tutup dan titik koma ini pada program akan menyebabkan compiler error.
Agar program lebih jelas, bisanya diberi komentar keterangan. Sebagai tanda komentar, apabila lebih dari satu baris, digunakan tanda “/*” sebagai awal adan tanda “*/” sebagai akhir komentar.
Namun apabila komentarnya hanya satu baris, maka digunakan tanda “//” sebagai pemisah komentar dari kode program.
2.4.1.2 Fungsi Input Output Digital Ada tiga instruksi yang digunakan dalam input output digital, yaitu pinMode(), digitalRead() dan digitalWrite(). Berikut penjelasannya:
Instruksi pinMode() ditempatkan di void setup(), digunakan untuk mengatur sebuah kaki I/O digital, untuk dijadikan sebagai INPUT atau OUTPUT, dengan format sebagai berikut: pinMode(3,OUTPUT); //menjadikan D3 sebagai OUTPUT
catatan: bila tidak ada pengaturan oleh pinMode(), maka kaki-kaki I/O digital Arduino secara default bekerja sebagai kaki INPUT.
Chip ATmega pada Arduino memiliki resistor interna pull-up 20kΩ di setiap kakinya, yang dapat diaktifkan secara software. Dengan mengaktifkan resistor ini pada kaki yang dijadikan INPUT, maka akan menyederhanakan rangkaian masukan, yaitu rangkaian masukan hanya
15
bisa berupa sebuah tombol yeng terhubung dengan ground. Dengan rangkaian seperti ini, ketika tombol tidak ditekan, maka sinyal yang dibaca oleh kaki INPUT tersebut adalah HIGH, sedangkan ketika tombol ditekan, maka sinyal yang dibaca adalah LOW. Berikut instruksi untuk mengaktifkannya: void Setup() {pinMode(2,INPUT); //menjadikan D2 sebagai INPUT digitalWrite(2,HIGH);} //mengaktifkan resistor pull-up
catatan: instruksi digitalWrite() di atas tidak membuat kaki D2 sebagai OUTPUT, tetapi mengaktifkan resistor internal pull-up di kaki tersebut.
Kaki I/O yang dijadikan INPUT memiliki nilai impedansi yang tinggi, sedangkan kaki I/O yang dijadikan OUTPUT memiliki impedansi yang rendah, yang dapat menghantarkan arus maksimum sebesar 40mA. Arus sebesar ini dapat menyalakan LED dengan cukup terang (jangan lupa menambahkan resistor), namun tidak cukup kuat untuk menggerakan relay dan motor(kecuali motor servo, karena motor servo sudah ada penguatnya).
Setelah kaki I/O dikonfigurasikan menjadi INPUT, maka untuk membaca sinyal digital yang masuk, digunakan instruksi digitalRead(). Berikut format penulisan instruksinya: Int tombol = digitalRead(2); //membaca sinyal masuk di D2
Instruksi di atas berarti membaca inyal masik di kaki D2 dan kemudian menyimpannya di variabel tombol dengan tipe data int.
Untuk kaki I/O yang dikonfigurasikan menjadi OUTPUT, maka untuk mengeluarkan sinyal digital, digunakan instruksi digitalWrite(). Berikut format penulisan instruksinya: digitalWrite(3); //mengeluarkan sinyal High di D3
Instruksi diatas berarti menghasilkan sinyal digital HIGH (+5v) pada kaki D3. Sebagai contoh, berikut ini program untuk membaca sinyal digital dari sebuah tombol yang dihubungkan dengan D2 dan ground, dan memadamkan sebuah LED yang terhubung dengan D3 setiap kali tombol ditekan, dan menyalakan LED setiap kali tombol dilepas:
16
void Setup() {pinMode(2,INPUT); //menjadikan D2 sebagai INPUT digitalWrite(2,HIGH); //mengaktifkan resistor pull-up pinMode(3,OUTPUT);} //mmenjadikan D3 sebagai OUTPUT void Loop() {Int tombol = digitalRead(2); //membaca sinyal masuk di D2 digitalWrite(3);} //mengeluarkan sinyal High di D3
2.4.1.3 Waktu Pada IDE Arduino Ada empat instruksi yang digunakan dalam fungsi waktu, yaitu millis(), micros(), delay(), delayMicroseconds(). Berikut penjelasannya:
Instruksi millis() digunakan untuk menghasilkan banyaknya milidetik sejak program Arduino dijalankan. Angka hasil istruksi tersebut akan overflow (kembali ke-0) setelah kira-kira 50 hari.
Instruksi micros() digunakan untuk menghasilkan banyaknya mikro-detik sejak program Arduino dijalankan. Angka hasil instruksi tersebut akan overflow (kembali ke-0) setelah kira-kira 7 menit.
Instruksi delay() digunakan untuk menghentikan program untuk sejumlah waktu tertentu yang dinyatakan dalam parameternya, dengan satuan waktu dalam milidetik.
Instruksi delayMicroseconds() digunakan untuk menghentikan program untuk sejumlah waktu tertentu yang dinyatakan dalam parameternya, dengan satuan dalam mikrodetik.
2.4.1.4 Komunikasi Serial Fungsi ini digunakan untuk berkomunikasi dengan komputer melalui port serial. Kaki Arduino yang digunakan untuk fungsi ini adalah kaki D0(Rx) dan kaki D1 (Tx). Beberapa instruksi yang digunakan adalah begin(), available(), read(), print(), println(), dan write(). Berikut penjelasannya:
Instruksi Serial.begin() digunakan untuk mengatur baudrate atau kecepatan komunikasi, umumnya nilainya adalah 9600.
Instruksi Serial.available() digunakan untuk menndapatkan jumllah karakter atau byte yang telah diterima di serial port.
17
Instruksi Serial.read() digunakan untuk membaca data yang telah diterima di serial port.
Instruksi Serial.print() digunakan untuk mencetak data ke serial port dalam bentuk teks ASCII. Untuk data angka, setiap digitnya akan menggunakan satu karakter ASCII. Untuk data teks, setiap hurufnya akan mengunakan satu karakter ASCII.
Instruksi Serial.println() sama seperti instruksi Serial.println() dengan penambahan Enter.
Instruksi Serial.write() digunakan untuk menguirimkan data dalam bentuk biner, satu byte data setiap pengiriman.
2.4.1.5 Serial Monitor Arduino dapat berinteraksi dengan komputer dengan berbagai macam software dan serial monitor yang ada di software Arduino digunakan untuk menampilkan data yang diterima dan dikirimkan ke komputer.
Gambar 2.7 Serial Monitor
Untuk membuka jendela serial monitor ada dua syarat, yaitu: 1. Arduino harus terhubung dengan komputer. 2. Menekan tombol bergambar gambar kaca pembesar yang terletak di pojok paling kanan pada toolbar.
18
Agar serial monitor bisa menampilkan data yang diterima dan dikirim dari komputer ada dua syarat, yaitu: 1. Saluran serial port yang digunakan Arduino harus benar. Pemilihan saluran ini dapat dilakukan dengan membuka menu Tools dan kemudian Serial Port. 2. Kecepatan komunikasi atau baudrate pada serial monitor harus sama dengan baudrate pada program Arduino.
2.4.2
Arduino UNO Arduino Uno adalah board Arduino berbasis ATmega328. Board ini
memiliki 14 pin digital input/output (6 diantaranya dapat digunakan sebagai output PWM), 6 input analog, 16MHz crystal oscillator, koneksi USB, sebuah power jack, sebuah header ICSP dan tombol reset. Board ini berisi semua yang dibutuhkan untuk mendukung mikrokontroler. Berikut adalah gambar dari Arduino Uno:
Gambar 2.8 Arduino Uno
Fitur: Microcontroller
ATmega328
Operating Voltage
5V
InputVoltage(recommended)
7-12V
Input Voltage (limits)
6-20V
Digital I/O Pins
14 (of which 6 provide PWM output)
19
Analog Input Pins
6
DC Current per I/O Pin
40 mA
DC Current for 3.3V Pin
50 mA
Flash Memory
32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Clock Speed
16 MHz
Input/ Output Masing-masing 14 pin digital pada Uno dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite() dan digitalRead(). Pin ini bekerja pada 5volt. Masing-masing pin menyediakan aau menerima 40mA dan memiliki resistor pull-up. Dan berikut beberapa pin yang memiliki fungsi khusus:
Serial: 0 (RX) and 1 (TX) digunakan untuk menerima (RX) dan mengirim (TX) TTL serial data. Pin tersebut terhubung dengan pin ATmega8U2 yang digunakan sebagai USB-to-TTL Serial chip.
External Interrupts: 2 and 3, pin ini dapat dikonfigurasi untuk memicu interrupt pada nilai low, rising dtai falling edge, atau berganti nilai menggunakan fungsi attachInterrupt().
PWM: 3, 5, 6, 9, 10, and 11, menyediakan 8-bit PWM output dengan fungsi analogWrite().
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), pin-pin ini mendukung kominikasi secara SPI menggunakan SPI library.
LED: 13, adalah LED yang terhubung dengan digital pin 13. Saat pin bernilai high maka LED menyala, saat pin low maka LED mati.
Uno memiliki 6 analog input (yang berlabel A0 sampai A5), masing-masing menyediakan resolusi 10bit. Dengan default pengukuran ground sampai 5volt, meskipun dapat juga untuk mengubah jangkauannya dengan menggunakan pin AREF dan fingsi analogReference().
20
TWI: A4 or SDA pin and A5 or SCL pin, mendukung komunikasi TWI menggunakan Wire library.
AREF, tegangan referensi untuk tegangan analog input. Digunakan dengan fungsi analogReference(). Reset, Dengan diberikan nilai low maka akan me-reset mikrokontroler.
2.5
Visual Studio .NET Visual Studio .NET adalah satu bentuk integrated development
environment (IDE) tercanggih yang dimiliki oleh Microsoft saat ini. IDE tersebut sanggup mwndukung dan menggabungkan banyak tipe bahasa seperti Visual Basic .NET, C#.NET C#, J#, atau bahasa .NET lainnya. Semua bahasa posisinya sama sehingga tim project dapat bekerja dalam banyak bahasa. Dengan kata lain tim project dapat menggabungkan beberapa project dengan berbagai macam bahasa tersebut dalam satu bahasa program yang digunakan, misalnya Visual Basic .NET. Hasil aplikasi dari program yang dibangun menggunakan Visual Studio .NET dapat dijalankan pada berbagai platform operating system seperti Linux, Unix, Solaris dan OS lainnya dengan menggunakan mono yang dihasilkan oleh perusahaan Symbian. Jika digambarkan dengan sebuah gambar, uraian singkat
Gambar 2.9 Bagan Visual Studio .NET
Operating System lainnya
Solaris
Unix
Mono
Linux
Windows
.NET Framework
.NET lainnya
J# .NET
C++ .NET
C# .NET
diatas adalah seperti gambar berikut: Vb .NET
21
Catatan: untuk mendapatkan informasi detail tentang mono, kita dapat mengunjungi situs mono di: www.go-mono.com
2.5.1
.NET Framwork .Net Framework adalah teknologi inti dari .NET yang mmenyediakan
library untuk digunakan oleh aplikasi menggunakan bahasa-bahasa pemrograman pada Visual Studio .NET. Komponen utama .NET Framework adalah Common Language Runtime (CLR) yang menyediakan run time environment untuk aplikasi yang dibangun menggunakan Visual Studio .NET, terlepas dari jenis bahasa pemrogramannya. Berikut adalah tampilan .NET Framework: VB .NET
C# .NET
C++ .NET
J# .NET
Bahasa .NET lainnya
Common Language Specification (CLS) Layanan Web XML
Form-form Web
Form-form Windows
ASP .NET Data ADO .NET dan XML Base Class Library (BCL) Common Language Runtime (CLR) Gambar 2.10 .NET Framework
Dengan adanya CLR tersebut, programer dapat menikmati consistent object model dalam mengakses berbagai komponen library, akibatnya penggunaan bahasa pemrograman di dalam dunia .NET adalah lebih ke arah selera, bukan lagi pada kelebihan maupun kekurangan masing-masing bahasa. Karena semua bahasa pemrograman yang mensuport .NET mengakses library yang sama di dalam .NET Framework, dengan object model yang konsisten dan runtime file yang sama. Sehingga dalam lingkungan .NET bahasa adalah sekedar skin atau theme, bukan lagi senjata bagi seorang developer.
22
2.5.2
Visual Basic .NET (VB .NET) Visual Basic .NET merupakan versi berikutnya dari Visual Basic yang
beradaptasi dengan Framework .NET serta juga beradaptasi dengan paradigma pemrograman berbasis objek. Selain itu, tercermin dari namanya, Visual Basic .NET merupakan bahasa pemrograman visual dan pada dasarnya menganut konsep pemrograman berbasis event-event yang terjadi pada aplikasi yang dihasilkan. Sebagai contoh, kita bisa melakukan pengkodean saat suatu objek, misalnya tombol, kotak teks dan sebagainya, di dalam aplikasi diklik oleh pengguna, atau saat kursor mouse bergerak di atas suatu gambar, dan sebagainya. Bahasa pemrograman Visual Basic.NET dirancang oleh Microsoft Corp. sebagai bahasa pemrograman yang berdaya-guna, aman, serta mudah digunakan. Sebagai bagian dari platform .NET, bahasa pemrograman Visual Basic.NET dirancang sedemikian rupa untuk bekerja dengan sangat baik pada platform .NET yang mampu untuk menulis perangkat lunak handal demi layanan yang cepat. Bahasa
pemrograman
Visual
Basic.NET
juga
dapat
digunakan
untuk
mengembangkan aplikasi bergerak (mobile application), serta aplikasi berskala besar (Enterprise). Visual basic.NET merupakan salah satu bahasa pemrograman visual
yang
berparadigma
pemrograman
berbasis
objek.
Pada
bahasa
pemrograman objek non-visual, pembungkusan terjadi pada data serta metode sehingga membentuk suatu kelas tertentu. Namun pada bahasa pemrograman berorientasi objek visual serta pemrograman yang mengadopsi konsep pemrograman berbasia event (event driven programing) seperti Borland Delphi, Visual Basic, Visual C++, serta C++ Builder, pendekatannya agak berbeda. Meskipun sama-sama berorientasi objek, bahasa berorientasi objek visual lebih menekankan pada event yang diterima oleh suatu aplikasi. Dapat dikatakan bahwa pemrograman berorientasi objek visual adalah pemrograman dengan kakas yang memungkinkan menu, tombol, dan objek (objek disini sama dengan konsep objek pada pemrograman berbasis objek) grafis lainnya, dipilih dari palet dan langsung dapat digambarkan di layar. Event-event, baik yang terjadi yeng terjadi akibat interaksi dengan pengguna, berasal dari interaksi yang terjadi pada aplikasi itu sendiri, serta event-event (termasuk event-event dari sistem operasi) lainnya biasanya langsung ditanggapi dengan metode yang sesuai untuk itu. Pada Visual
23
Basic .NET, misalnya event yang terjadi saat pengguna menekan suatu tombol tertentu dengan mouse (event CommandButton_OnClick) bisa dilampiri metode yang sesuai dengan event tersebut. Dalam memprogram dibutuhkan bantuan sebuah kakas IDE(Integrated Development Environment). IDE merupakan kakas yang sangat membantu pemrogram dalam menuliskan kode, mengeksekusi melakukan pelacakan kesalahan (debugging), serta hal lain yang berkaitan dengan pemrograman. Berikut adalah gambar dari IDE Visual Basic.NET:
Gambar 2.11 IDE Visual Basic .NET
2.5.3
ADO .NET
ADO. NET adalah model disconnected database. Artinya sekali data database dikirim, maka hubungan koneksinya akan terputus. Berikut adalah alasan dirancangnya ADO .NET:
Untuk mengganti kekurangan daro model open connection database (ADO klasik), dimana model open connection ini akan lebih memakan sistem resource. Hal ini menyebabkan sistem akan terus memelihara hubungan ke database walaupun tidak ada transaksi yang sedang berlangsung. Karena hal inilah maka open connection database akan mengalami kesukaran atau beban akan terlampau berat apabila user yang
24
meminta akses data berjumlah ratusan bahkan ribuan koneksi yang harus tetap dipertahankan.
ADO .NET sangat cocok dengan sistem internet atau web karena browser meminta request pada server dan setelah server selesai memproses dan mengirim hasil request, maka koneksi antara server dan user akan terputus sampai request berikutnya.
Pada ADO .NET terdapat lima objek yaitu connection, command, datareader, data adapter dan dataset. Untuk jelasnya diperlihatkan pada gambar berikut: Dataset
.NET Data Provider Data Adapter Data Reader
Data Table Collection Data Table
Command Properties
DataRow Collection
Select Command Command
Insert Command
DataColumn Collection Constrain Collection
Update Command Connection
Delete Command
DataRelation Collection
SQL atau OLEDB Datasource
Gambar 2.12 Arsitektur ADO .NET
Berikut ini penjelasan singkat dari masing-masing objek ADO .NET:
Connection, digunakan untuk menghubungkan dan mengatur transaksi terhadap database.
Command, digunakan untuk melakukan akses ke database melalui perintah SQL.
DataReader, digunakan untuk membaca record data dari database.
Dataset, digunakan untuk menyimpan, memindahkan data dari banyak tabel dan banyak sumber ke dalam memori.
DataAdapter, digunakan untuk melakukan query data dari database serta menulis perubahan yang terjadi di dataset ke dalam database.
25
System
Data OLEDB OLEDBConnection OLEDBCommand OLEDBDataAdapter OLEDBDataReader SqlClient SqlConnection SqlCommand SqlDataAdapter SqlDataReader
DataSet DataTable DataColumn DataRow DataRelation
Gambar 2.13 Arsitektur Namespace System.Data
Dari arsitektur gambar diatas, objek class dari sistem data dapat dikelompokan menjadi dua bagian yaitu kelompok pengakses data dan kelompok pengolah data. Kelompok pengakses data dibedakan lagi menjadi:
Connection, berfungsi membuat koneksi atau hubungan dengan database. Contoh: '================================================= Dim TGconnection As SqlConnection
26
Dim namaDatabase As String = "Media" Dim namasource As String = "TG" Public TGconString As String = "integrated Security=SSPI;" & _ "Persist Security Info=False;" & _ "Initial Catalog=" & namaDatabase & " ;Data Source=" & namasource TGconnection = New SqlConnection(TGconString) '=================================================
Data
Adapter,
berfungsi
untuk
melakukan
query
dengan
memanfaatkan connection. Contoh: '================================================= Dim sqlPenghubung As SqlDataAdapter sqlPenghubung = New SqlDataAdapter(TGquery, TGconnection) '=================================================
DataReader,
berfungsi
untuk
melakukan
query
dengan
memanfaatkan connection tetapi sifatnya searah, dengan kata lain hanya untuk melakukan query select.
Command, untuk mengeksekusi perintah query, contoh: '================================================= Dim sqlPerintah As SqlCommandBuilder sqlPerintah = New SqlCommandBuilder(sqlPenghubung) '=================================================
2.6
Database Database atau basis data adalah sekumpulan data yang memiliki hubungan
secara logika dan diatur dengan susunan tertentu serta disimpan dalam media penyimpanan komputer. Data itu sendiri adalah representasi dari semua fakta yang ada di dunia nyata. Database sering digunakan untuk melakukan proses terhadap data-data tersebut untuk menghasilkan informsi tertentu. Tentu saja informasi tersebut dapat didapatkan dari software pemroses database dengan cara memberikan perintah dalam bahasa tertentu yaitu SQL(Structred Query Languange). Database juga dapat diartikan sebagai sekumpulan data yang berfungsi sebagai penyedia informasi bagi user atau pengguna. Secara garis besar, suatu database dibedakan menjadi dua yaitu:
27
Front-End, yaitu aplikasi yang berhubungan langsung dengan para pemakai program. Jika kita gambarkan mirip dengan ruang makan pada restoran.
Back-End, yaitu aplikasi yang menyusun, menyimpan, dan mengamankan database. Ini mirip dengan bagian dapur yang bertugas mengolah, menyimpan dan menyiapkan masakan pada suatu restoran.
Untuk membangun sebuah database secara lengkap, pertama-tama kita harus membangun back-end yaitu membangun “urusan dapur” seperti pembuatan tabel, penentuan relasi, indeks, entity, atribut dan sebagainya. Langkah kedua yaitu membangun front-end dengan memperhitungkan beberapa hal seperti kemudahan pemakaian (user friendly), informatif dan lainnya. Dan salah satu database yang terkenal yaitu Microsoft SQL Server.
2.6.1
SQL (Struktured Query Language)
SQL adalah suatu sub bahasa untuk membuat dan memanipulasi data dalam database. Ada bermacam-macam perintah yang terdapat pada sel, midalnya Select, Insert, Delete, Update dan lainnya.
Pernyataan Select Pernyataan Select digunakan untuk mengakses dan mengambil data dari database. Sintaksnya sebagai berikut: Select [All/Distinct] dataField From nama_tabel In Nama_Basis_data Where KondisiPencarian GroupBy daftar_field Having group_kriteria OrderBy daftar_field Perlu diketahui:
Jika terdapat spasi pada nama field, gunakanlah tanda kurung siku [ ]. Misalkan nama satu field dalam database adalah kode barang, maka dalam SQL harus dituliskan [Kode Barang]. Namun jika nama suatu field
28
database adalah KodeBarang (tanpa spasi) harus dituliskan KodeBarang (tanpa tanda kurung siku).
Gunakan AS untuk mmengubah judul field.
Gunakan perintah Where untuk melakukan pencarian data atau melakukan penyaringan informasi seperti menampilkan semua barang yang berharga 1000 atau semua barang yang berjumlah lebih dari 10.
Gunakan OrderBy untuk mengelompokkan dan melakukan pencarian record. Saat melakukan pencarian data (record), kita dapat mengabaikan satu atau beberapa karakter yang tidak perlu kita ingat dengan menambahkkan karakter * atau ? untuk mengabaikan karakter apa saja yang terdapat pada lokasi tanda tanya ini.
Menggunkan Having untuk menampilkan kelompok data tertentu saja. Pernyataan
ini
digunakan
untuk
memebrikan
kriteria
setelah
pengelompokan, berbeda dengan where yang memberikan kriteria sebelum pengelompokan.
Pernyataan Insert Dengan pernnyataan Insert ini kita dapat menambahkan satu baris data ke dalam tabel database sesuai dengan nilai yang diberikan. Sintaks dari metode Insert ini sebagai berikut: Insert Into nama_tabel(nama_kolom1, nama_kolom2, nama_kolom3,.....) Values (nilai1, nilai2, nilai3, .....) Untuk dapat menjalankan perintah ini kita perlu memperhatikan hal-hal berikut:
Tipe data untuk nilai yang ditambahkan harus sama dengan tipe data yang terdapat di dalam tabel. Jika kolom1 mempunyai tipe data text maka nilai1 juga harus bertipe data text.
Lokasi tempat data dimasukan harus sama dengan lokasi kolom dalam tabel yang akan ditambahkan, jadi nilai1 dimasukan dalam kolom1 dan seterusnya.
Jika tabel kita mempunyai kolom unik, data yang sama tidak akan dapat ditambahkan.
29
Ukuran atau panjang data yang ditambahkan harus sama dengan ukuran kolom dalam tabel database. Misalnya jika lebar kolom1 bertipe data karakter yang memiliki ukuran 28, maka nilai1 harus mmempunyai ukuran maksimal 28.
Pernyataan Update Dengan pernyataan update ini kita dapat mengganti satu atau beberapa buah data yang telah ada di dalam tabel database atau untuk memperbaiki data yang terdapat dalam tabel database. Sintaks dari metode Update ini sebagai berikut: Update nama_tabel SET (nama_kolom1, nama_kolom2, nama_kolom3, .....) Values (nilai1, nilai2, nilai3, .....)
Pernyataan Delete Pernyataan Delete ini digunakan untuk menghapus atau membuang data yang ingin kita buang pada sebuah tabel database. Sintaks dari metode Delete ini sebagai berikut: Delete From nama_tabel Where kondisi Beberpa hal yang perlu diketahui saat menggunakan pernyataan Delete adalah:
Begitu perintah Delete dijalankan, sql akan langsung menghapus data tanpa memberikan konfirmasi terlebih dahulu apakah data tersebut benarbenar akan dihapus atau tidak.
Metode Delete ini tidak bisa menghapus hanya satu field atau kolom saja, melainkan yang dihapus adalah satu baris record secara keseluruhan setiap kali perintah dijalankan.
2.6.2
Perintah ini hanya menghapus record data saja bukan tabelnya.
SQL Server SQL Server adalah sebuah terobosan baru dari Microsoft dalam bidang
database. SQL Server adalah DBMS(Database Managemen System) yang dibuat oleh Microsoft untuk ikut berkecimpung dalam persaingan pengolahan data
30
menyusul pendahulunya seperti IBM dan Oracle. Untuk dapat mengatur, membuat dan mengedit database pada SQL Server maka dibutuhkan sebuah halaman SQL Server Manageman Studio. Berikut gambar contoh dari SQL Server Managemen Studio:
Gambar 2.14 SQL Server Manageman Studio
2.7
Crystal report Crystal report adalah salah satu peranti lunak yang digunakan khusus
untuk membuat laporan. Berbagai fasilitas yang dimilikinya memudahkan dan juga memperindah laporan yang kita buat. Crystal report memiliki berbagai fungsi yang sangat memudahkan dalam pembuatan laporan seperti untuk membuat pengelompokkan data laporan, melakukan proses matematis data laporan, formula dan fungsi untuk berbagai macam kebutuhan, dan lain sebagainya. Crystal report sangat cocok sekali digunakan untuk membuat laporan yang datanya bersumber dari database. Crystal report memiliki bagian-bagian seperti terlihat pada gambar berikut:
31
Gambar 2.15 Area kerja Crystal report
Maksud dari bagian-bagian pada gambar diatas adalah:
Report Header, merupakan bagian yang umumnya digunakan sebagai judul laporan karena hanya sekali saja ditampilkan di bagian awal report.
Page Header, merupakan bagian yang muncul pada bagian atas tiap halaman, bagian ini akan muncul setiap halaman dari laporan yang kita cetak.
Details, merupakan inti dari laporan yang akan ditampilkan. Bagian ini nantinya akan memuat seluruh record yang memenuhi syarat untuk ditampilkan. Tentu saja syarat tersebut muncul dari pemrogram untuk mengambil record database yang akan digunakan sebagai laporan.
Report Footer, merupakan bagian yang ditampilkan hanya sekali saja di bagian akhir suatu laporan, misalnya total atau ringkasan.
Page Footer, bagian ini mirip dengan page header, hanya perbedaannya mereka muncul di bagian bawah.
Menampilkan/memanggil report dalam visual basic: 1. Buka form yang pernah anda buat, kemudian tambahkan sebuah objek Command Button (beri nama cmdReport). 2. Tambahkan komponen objek Crystal report Control, lalu tambahkan objek tersebut ke dalam form (beri nama Report1). 3. Lalu tuliskan kode perintah berikut dalam event click objek cmdReport :
32
Private Sub cmdReport_Click() NamaLaporan = "Pelanggan.rpt" Report1.ReportFileName = App.Path & "\" & NamaLaporan ‘Menentukan nama file Crystal report Report1.WindowShowPrintSetupBtn = True ‘Menampilkan tombol PrintSetup Report1.Destination = crptToWindow ‘laporan ditampilkan ke layer/window Report1.WindowState = crptMaximized ‘laporan ditampilkan dalam modus maksimal Report1.Action = 1 End Sub
‘memanggil laporan