BAB 2 TEORI PENUNJANG Pada bab ini akan dijelaskan teori-teori penunjang yang digunakan dalam pembuatan tugas akhir ini. Dalam hal ini meliputi motor DC sebagai actuator, Mikrokontroler ATMega8535 sebagai pusat kendalian, driver motor L298N sebagai output, sinyal Bluetooth sebagai input dari pengendali mikrokontroler yang diteruskan menuju actuator, telepon seluler Android sebagai media pengirim sinyal bluetooth dan bahasa pemrograman sebagai media komunikasi penghubung antara programmer dengan prototype. 2.1.
Motor DC Motor listrik DC merupakan piranti elektromekanik yang mengkonversi
pulsa-pulsa listrik menjadi gerakan mekanik. Energi mekanik ini digunakan untuk menggerakkan benda lain, misalnya memutar impeller pompa, fan atau blower, menggerakkan kompresor, mengangkat bahan, dll. Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor DC disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan tegangan bolak-balik. Prinsip kerja dari arus searah adalah membalik
7
phasa tegangan dari gelombang yang mempunyai nilai positif dengan menggunakan kumutator, dengan demikian arus yang berbalik arah dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub magnet permanen.
Gambar 2.1 Motor DC sederhana Catu tegangan DC dari baterai menuju ke lilitan melalui sikat yang menyentuh kumutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan pada gambar di atas disebut angker dinamo. Angker dinamo adalah sebutan untuk komponen yang berputar di antara medan magnet. Mekanisme kerja untuk seluruh jenis motor seara umum: 1. Arus listrik dalam medan magnet akan memberikan gaya.
8
2. Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran / loop, maka kedua sisi loop, yaitu pada sudut kanan medan magnet , akan mendapatkan gaya pada arah yang berlawanan. 3. Pasangan gaya menghsilkan tenaga putar / torque untuk memutar kumparan. 4. Motor-motor memiliki beberapa loop pada dinamonya untuk memberikan tenaga putaran yang lebih seragam dan medan magnetnya dihasilkan oleh susunan elektromagnetik yang disebut kumparan medan. 2.2.
Mikrokontroler ATMega8535 Mikrokontroler AVR (Alf and Vegard’s Risc Prosessor) merupakan salah
satu perkembangan produk mikroelektronika dari vendor Atmel. AVR merupakan teknologi yang memiliki kemampuan baik dengan biaya ekonomis yang cukup minimal. Mikrokontroler AVR ini menggunakan arsitektur RISC (Reduced Instruction Set Computer) yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit. Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16 bit dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock. Diagram blok arsitektur ATMega8535 ditunjukkan oleh Gambar 2.2. Terdapat sebuah inti prosesor (processor core) yaitu Central Processing Unit, di mana terjadi proses pengumpanan instruksi (fetching) dan komputasi data.
9
Seluruh register umum sebanyak 32 buah terhubung langsung dengan unit ALU (Arithmatic and Logic Unit). Media penyimpan program berupa Flash Memory, sedangkan penyimpan data berupa SRAM (Static Ramdom Access Memory) dan EEPROM (Electrical Erasable Programmable Read Only Memory). Untuk komunikasi data tersedia fasilitas SPI (Serial Peripheral Interface), USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter), serta TWI (Two-wire Serial Interface). Di samping itu terdapat fitur tambahan, antara lain AC (Analog Comparator), 8 kanal 10-bit ADC (Analog to Digital Converter), 3 buah Timer/Counter, WDT (Watchdog Timer), manajemen penghematan daya (Sleep Mode), serta osilator internal 8 MHz. Seluruh fitur terhubung ke bus 8 bit. Unit interupsi menyediakan sumber interupsi hingga 21 macam. Sebuah stack pointer selebar 16 bit dapat digunakan untuk menyimpan data sementara saat interupsi. Mikrokontroler ATMega8535 dapat dipasang pada frekuensi kerja hingga 16 MHz (maksimal 8 MHz untuk versi ATmega8535 L). Sumber frekuensi bisa dari luar berupa cristall osilator, atau menggunakan internal osilator. 2.2.1. Arsitektur ATMega8353 ATMega8535 memiliki bagian sebagai berikut: 1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D.
10
2. ADC 10 bit sebanyak 8 saluran. 3. Tiga buah Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register.
11
Gambar 2.2 Arsitektur ATMega8535 (2006, p. 3) 5. Watchdog Timer dengan Osilator Internal.
12
6. SRAM sebanyak 512 byte. 7. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 8. Unit Interupsi internal dan eksternal. 9. Port antarmuka SPI. 10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 11. Antarmuka komparator analog. 12. Port USART untuk komunikasi serial.
2.2.2. Fitur ATMega8353 Kapabilitas detail dari ATMega8535 adalah sebagai berikut: 1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz. 2. Kapabilitas memori Flash 8 KB, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC Internal dengan fidelitas 10 bit sebanyak 8 saluran. 4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik.
2.2.3. Konfigurasi 13
Konfigurasi pin ATMega8535 dapat dilihat pada Gambar 2.3. Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMega8535 sebagai berikut: Tabel 2.1 Deskripsi Pin Nama
Fungsi
VCC
Catu daya
GND
Ground
Port A
Port I/O 8-bit dua arah dengan resistor pull-up internal.
(PA7..PA0 )
Juga berfungsi sebagai masukan analog ke ADC (ADC0 s.d. ADC7)
Port B
Port I/O 8-bit dua arah dengan resistor pull-up internal.
(PB7..PB0 )
Fungsi khusus masing-masing pin : Port Pin
Fungsi lain
PB0
T0 (Timer/Counter0 External Counter Input)
PB1
T1 (Timer/Counter1 External Counter Input)
PB2
AIN0 (Analog Comparator Positive Input)
PB3
AIN1 (Analog Comparator Negative Input)
PB4
SS (SPI Slave Select Input)
PB5
MOSI (SPI Bus Master Output/Slave Input)
PB6
MISO (SPI Bus Master Input/Slave Output)
PB7
SCK (SPI Bus Serial Clock)
Port C
Port I/O 8-bit dua arah dengan resistor pull-up internal.
(PC7..PC0
Dua pin yaitu PC6 dan PC7 berfungsi sebagai oscillator luar 14
)
untuk Timer/Counter2.
Sambungan Tabel 2.1 Deskripsi Pin Nama Port D (PD7..PD 0)
Fungsi Port I/O 8-bit dua arah dengan resistor pull-up internal. Port Pin Fungsi lain PD0
RXD (UART Input Line)
PD1
TXD (UART Output Line)
PD2
INT0 (External Interrupt 0 Input)
PD3
INT1 (External Interrupt 1 Input)
PD4
OC1B (Timer/Counter1 Output CompareB Match Output)
PD5
OC1A (Timer/Counter1 Output CompareA Match Output)
PD6
ICP (Timer/Counter1 Input Capture Pin)
PD7 Output)
OC2 (Timer/Counter2 Output Compare Match
RESET
Masukan reset. Sebuah reset terjadi jika pin ini diberi logika rendah melebihi periode minimum yang diperlukan.
XTAL1
Masukan ke inverting oscillator amplifier dan masukan ke rangkaian clock internal.
XTAL2
Keluaran dari inverting oscillator amplifier.
AVCC
Catu daya untuk port A dan ADC.
AREF
Referensi masukan analog untuk ADC. 15
AGND
Ground analog.
Gambar 2.3 Pin Mikrokontroler ATMega8535(2006, p. 2) 2.2.4. Peta Memori AVR ATMega memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 buah bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM Internal. Register keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.
........
........
16
........
........
........
Gambar 2.4 Konfigurasi Memori Data AVR ATMega8535 Memori program yang terletak dalam flash PEROM tersusun dalam word atau 2 byte karena setiap instruksi memiliki lebar 16-bit atau 32 bit. AVR ATMega8535 memiliki 4 Kbyte x 16-bit Flash PEROM dengan alamat mulai dari $000 sampai $FFF. AVR tersebut memiliki 12-bit Program Counter (PC) sehingga mampu mengalamati isi Flash. Gambar 2.5 merupakan konfigurasi memori program dari AVR ATMega8535. Applicaton Flash Secton $FFF
Gambar 2.5 Memori Program AVR ATMega8535 Boot Flash Secton
$000
Selain itu, AVR ATMega8535 juga memiliki memori data berupa EEPROM 8-bit sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF.
17
2.2.5. Status Register (SREG) Status Register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi.
Gambar 2.6 Status Register ATMega8535 1.
Bit 7-I: Global Interrupt Enable Bit harus diset untuk mengaktifkan interupsi. Setelah itu, anda dapat mengaktifkan interupsi mana yang akan anda gunakan dengan cara meng-enable bit kontrol register yang bersangkutan secara individu. Bit akan di-clear apabila terjadi suatu interupsi yang dipicu oleh Hardware, dan bit tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh instruksi RETI.
2.
Bit 6-T: Bit Copy Storage
3.
Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan instruksi BLD.
4.
Bit 5-H: Half Carry Flag
5.
Bit 4-S: Sign Bit
18
6.
Bit-S merupakan hasil operasi EOR antara flag-N (Negatif) dan flag V (Komplemen dua overflow).
7.
Bit 3-V: Two’s Complement Overflow Flag
8.
Bit ini berguna untuk mendukung operasi aritmatika.
9.
Bit 2-N: Negative Flag
10. Apabila operasi menghasilkan bilangan negatif, maka flag-N akan diset. 11. Bit I-Z: Zero Flag 12. Bit akan diset bila hasil operasi yang diperoleh adalah nol. 13. Bit 0-C: Carry Flag. 14. Apabila suatu operasi menghasilkan carry, maka bit akan diset. 2.2.6. I/O Port Port I/O mikrokontroler ATMega8535 dapat difungsikan sebagai input ataupun output dengan keluaran high atau low. Untuk mengatur fungsi Port I/O sebagai input ataupun output. Perlu dilakukan setting pada DDR dan Port. Tabel 2.2 merupakan tabel pengaturan Port I/O: Tabel 2.2 Konfigurasi Setting untuk Port I/O
Dari Tabel 2.2, men-setting input/output adalah: 1.
Input; DDR bit 0 dan Portbit 1
19
2.
Output High; DDR bit 1 dan Portbit 1
3.
Output Low; DDR bit 1 dan Portbit 0
Logika Port I/O dapat diubah-ubah dalam program secara byte atau hanya bit tertentu. Mengubah sebuah keluaran bit I/O dapat dilakukan menggunakan perintah cbi (clear bit I/O) untuk menghasilkan outputlow atau perintah sbi (set bit I/O) untuk menghasilkan output high. Pengubahan secara byte dilakukan dengan perintah in atau out yang menggunakan register Bantu. Port I/O sebagai output hanya memberikan arus sourching sebesar 20 mA. 2.3.
IC L298N IC L298N adalah sebuah IC yang digunakan sebagai driver motor. Tugas
akhir ini menggunakan IC ini untuk driver motor DC. IC ini memiliki tegangan suplai maksimal 50 Volt dan arus 200 mA. IC ini termasuk jenis TTL, dimana dalam IC ini terdapat transistor yaitu transistor Darlington. Transistor Darlington merupakan dua buah transistor yang dipakai dengan konfigurasi khusus untuk mendapatkan penguatan gain, sehingga dapat menghasilkan penguatan arus yang besar. IC L298N merupakan IC yang mempunyai 15 buah pin. Terdapat empat buah pin sebagai pin input, dimana nantinya akan dihubungkan dengan output dari mikrokontroler. Kemudian, empat buah pin output yang akan dihubungkan dengan motor DC. Dan dua buah pin sebagai catu daya. Besar catu daya tersebut adalah 7 Volt DC.
20
(a)
(b)
Gambar 2.7 (a)Tata Letak Pin dan (b)Rangkaian Dalam L298n Driver motor L298n ini berfungsi membangkitkan energi elektromagnetik yang ditimbulkan oleh lilitan motor DC pada saat terdapat arus yang mengalir pada lilitan tersebut. 2.4.
Bluetooth
2.4.1. Sejarah Bluetooth Awal mula bluetooth adalah sebagai teknologi komunikasi wireless (tanpa kabel) yang beroperasi dalam pita frekuensi 2,4 Ghz unlicensed ISM (Industrial Scientific and Medical) dengan menggunakan sebuah frequency hopping traceiver yang mampu menyediakan layanan komunikasi data dan suara secara real time antara host-host bluetooth dengan jarak jangkau layanan yang terbatas (sekitar 10 meter). Bluetooth berupa card yang menggunakan frekusensi radio standar IEEE 802.11 dengan jarak layanan terbatas dan kemampuan data transfer lebih rendah dari card untuk Wireless Local Area Network (WLAN). Pembentukan Bluetooth 21
dipromotori oleh 5 perusahaan besar Ericsson, IBM, Intel, Nokia dan Toshiba membentuk sebuah special Interest Group (SIG) 45 yang meluncurkan proyek ini.
Pada bulan Juli 1999 dokumen spesifikasi bleutooth versi 1.0 mulai diluncurkan. Pada bulan Desember 1999 dimulai lagi pembuatan dokumen spesifikasi Bluetooth versi 2.0 dengan tambahan 4 promotor baru yaitu 3Com, Lucent Technologies, Microsoft dan Motorolla. Saat ini lebih dari 1800 perusahaan diberbagai bidang bergabung dalam sebuah konsorsium sebagi adopter teknologi bluetooth. Walaupun standar bluetooth SIG saat ini dimiliki oleh group promotor tetapi diharapkan akan menjadi standar IEEE (802.15). 2.4.2. Jaringan Piconet Komunikasi antar peralatan Bluetooth akan menghasilkan sebuah jaringan bluetooth yang dinamakan dengan piconet. Sebuah piconet paling sederhana terdiri atas dua buah peralatan bluetooh dimana salah satu modul yang menginisiasi koneksi disebut sebagai master sedangkan peralatan lain yang menerima tawaran inisiasi tadi dinamakan sebagai slave. Jika hanya dua peralatan yang berkomunikasi ,maka koneksinya dikatakan sebagai point to point. Satu master dapat memiliki lebih dari satu koneksi secara simultan dengan beberapa slave pada saat bersamaan. Koneksi ini dinamakan dengan koneksi point to multipoint. Kedua tipe koneksi tersebut masih merupakan bagian dari piconet. Piconet-piconet dapat saling berkomunikasi untuk membentuk sebuah jaringan baru yang dinamakan Scatternet . Syarat dari sebuah Scatternet adalah
22
satu peralatan yang hanya dapat menjadi master dalam satu piconet saja pada suatu saat.
Gambar 2.8 Piconet dan Scatternet Bluetooth dibuat tak hanya untuk peralatan ponsel saja, akan tetapi dapat juga tersedia diberbagai peralatan elektronik modern seperti printer , laptop, PDA , dan sebagainya. Peralatan Bluetooth beroperasi pada frekuensi radio 2,4 GHz atau tepatnya adalah 2.400 - 2.483 MHz. Sistem radio Bluetooth tersebut memanfaatkan teknik modulasi yang dinamakan dengan frequensi hopping untuk menyelesaikan proses penyebaran spektrum atau Spreading Spectrum yang terdiri atas 79 selang atau hop dengan selang diantaranya adalah 1 mHz. Proses penyebaran spectrum ini perlu dilakukan karena sinyal harus dikirimkan melalui satu lebar pita frekuensi yang jauh lebih lebar daripada bandwith yang diperlukan oleh sinyal informasi tersebut. Dalam proses ini, transmitter atau pengirim akan menyebarkan energi yang umumnya akan terkonsentrasi di pita frekuensi yang dikenal sebagai narrowband untuk melewati
23
sejumlah kanal pita frekuensi pada spectrum elektromagnetik yang lebih lebar. Keuntungannya selain meningkatkan privasi, juga akan menurunkan tingkat interferensi dari narrowband serta meningkatkan kapasitas sinyal. Frekuensi Hopping tersebut adalah salah satu diantara dua teknik modulasi yang dikenal dalam proses transmisi sinyal dengan menggunakan teknik penyebaran spectrum tadi. Dalam proses ini setiap paket akan dikirimkan pada frekuensi yang berbeda-beda. Kecapatan perpindahan dari paket ini dinamakan hop rate. Hop Rate ini biasanya mencapai kecepatan tinggi sekitar 1600 hop per detik, bertujuan untuk mencegah interferensi serta untuk mendapatkan paket yang pendek , teknik ini merupakan perulangan proses perpindahan atau switching dari frekuensi-frekuensi selama transmisi radio. Proses ini sering dilakukan untuk meminimalisir tingkat keekfektifan dari “electronic warfare” yang terjadi karena pencegatan yang tidak legal atau karena adanya jamming dalam sistem telekomunikasi. Proses ini sering dinamakan dengan Frequensi-hopping code division multiple access atau FH-CDMA. 2.4.3. Jarak Maksimal Fasilitas Bluetooth Umumnya peralatan-peralatan Bluetooth dapat saling berkomunikasi dalam jarak yang sedang antara 1 hingga 100 m. Jarak maksimal ini dapat dihasilkan tergantung dari daya output yang digunakan dalam modul Bluetooth. Modul Bluetooth disini biasanya berupa satu IC chip komunikasi khusus yang telah mengimplementasikan protocol Bluetooth. Setidaknya terdapat tiga kelas Bluetooth berdasarkan daya output dari jarak jangkauannya yaitu :
24
1.
Daya kelas 1 yang beroperasi pada daya antara 100mW (20dBm) hingga 1mW (0dBm) dan didesain untuk peralatan Bluetooth dengan jangkauan hingga 100 meter.
2.
Daya kelas 2 beroperasi antara 2,5W (4dBm) dan 0,25mW (-6dBm) dan didesain untuk jarak jangkauan hingga sekitar 10m.
3.
Daya kelas 3 memiliki daya maksimal hingga 1mW (0dBm) dan bekerja untuk peralatan dengan jarak sekitar 1 meter saja.
2.4.4. Arsitektur Bluetooth Spesifikasi Bluetooth dibuat untuk mengenali alat Bluetooth dari produsen yang berbeda untuk bekerja sama antara alat satu dengan alat yang lainnya, maka dari itu perlu dibuat sistem gelombang radio yang disesuaikan. Karena adanya berbagai macam produsen Bluetooth yang bervariasi maka tidak hanya penyesuaian sistem gelombang radio saja tetapi diperlukan juga protocol stack yang sama, ditujukan supaya alat yang satu dapat mengenali alat yang lainnya, tentu saja dengan merk dan produsen yang berbeda.
25
Gambar 2.9 Protocol Stack dari Bluetooth Stack dari Bluetooth terdiri dari beberapa layer, seperti tampak pada gambar 2.9. Layer HCI biasanya memisahkan antara perangkat keras dan perangkat lunak dan diimplementasikan sebagian pada hardware dan software. Layer-layer dibawah layer HCI biasanya diimplementasikan pada hardware, dan layer-layer yang terdapat di atas. Layer HCI biasanya diimplementasikan pada software.
26
Tabel 2.3 Layer dan Keterangan dari Stack Bluetooth
27
Pengembang aplikasi Bluetooth tidak perlu untuk mengerti semua secara mendetail tentang layer-layer pada stack Bluetooth. Tetapi bagaimanapun juga sistem cara kerja gelombang Bluetooth harus dimengerti, karena hal tersebut penting. Radio Bluetooth adalah layer terendah dalam komunikasi layer pada Bluetooth, dan gelombang Bluetooth bekerja pada frekwensi 2,4 GHz sama seperti
28
yang digunakan pada gelombang radio. Setiap alat Bluetooth memiliki alamat yang sudah ditentukan secara unik, sistem pengalamatan pada perangkat Bluetooth menggunakan 48 bit yang ekuivalen dengan alamat hardware yang lainnya. Alamat Bluetooth tidak hanya untuk mengidentifikasikan alat tersebut saja, tetapi juga untuk mensinkronisasikan (synchronizing) frekuensi yang ada diantara dua alat dan menciptakan kunci (password) pada prosedur keamaan Bluetooth. 2.4.5. Kelebihan dan Kekurangan Bluetooth 1.
Kelebihan 1) Bluetooth dapat menembus dinding, kotak, dan berbagai rintangan lain walaupun jarak transmisinya hanya sekitar 30 kaki atau 10 meter. 2) Bluetooth tidak memerlukan kabel ataupun kawat. 3) Bluetooth dapat mensinkronisasi basis data dari telepon genggam ke komputer. 4) Dapat digunakan sebagai perantara modem.
2.
Kekurangan 1) Sistem ini menggunakan frekuensi yang sama dengan gelombang LAN standar. 2) Apabila dalam suatu ruangan terlalu banyak koneksi bleutooth yang digunakan, akan menyulitkan pengguna untuk menemukan penerima yang diharapkan.
29
3) Banyak mekanisme keamanan bleutooth yang harus diperhatikan untuk mencegah kegagalan pengiriman atau penerimaan informasi. 4) Di Indonesia, sudah banyak beredar virus-virus yang disebarkan melalui bluetooth dari handpone. 2.4.6. Module Bluetooth Robotech RBT-001 Easy Bluetooth adalah modul serial Bluetooth Robotech RBT-001 yang dirancang dengan adaptor khusus untuk digunakan dengan Parallax AppMod. Modul ini memiliki dua bagian, yang RBT-001 modul dan SIP dengan regulator tegangan PCB. Dengan regulator yang on-board, modul dapat dihubungkan ke tegangan yang lebih tinggi dari 3,3 VDC, tanpa khawatir akan merusak unit, sedangkan RX dan TX dapat memanfaatkan komunikasi serial pada level CMOS dan TTL.
Gambar 2.10 Modul Easy Bluetooth
30
Fitur-fitur pada Bluetooth Robotech RBT-001, antara lain: 1. Kompatibel untuk Bluetooth 1.x & 2.0 2. Mampu menjangkau hingga jarak 30 meter 3. Mempunyai 10 pin SIP yang dapat dipasang pada breadboar, perfbord, ataupun papan AppMod Header. 4. Mempunyai regulator sendiri untuk mengamankan penggunaan pada tegangan yang tidak konstan. 5. Kompatibel untuk CMOS dan TTL.
31
2.4.7. Konfigurasi Pin Tabel 2.4 Konfigurasi Pin Modul Easy Bluetooth Pin
Nama
Fungsi
1
Vdd
Sumber
2
RX
Penerima
3
TX
Pengirim
4
NC
Tidak terhubung
5
NC
Tidak terhubung
6
NC
Tidak terhubung
7
NC
Tidak terhubung
8
NC
Tidak terhubung
9
NC
Tidak terhubung
10
Vss
Pentanahan
32
Gambar 2.11 Konfigurasi Pin pada Modul Easy Bluetooth
33
2.5.
ANDROID
2.5.1. Pengertian Android Android adalah kumpulan perangkat lunak yang ditujukan bagi perangkat bergerak mencakup sistem operasi, middleware, dan aplikasi kunci. Android Standart Development Kid (SDK) menyediakan perlengkapan dan Application Programming Interface (API) yang diperlukan untuk mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. [developer. Android.com] Android dikembangkan oleh Google bersama Open Handset Allience (OHA) yaitu aliansi perangkat selular terbuka yang terdiri dari 47 perusahaan Hardware, Software dan perusahaan telekomunikasi ditujukan untuk mengembangkan standar terbuka bagi perangkat selular. 2.5.2. Anatomi Android Dalam paket sistem operasi Android tediri dari beberapa unsur seperti tampak pada gambar . Secara sederhana arsitektur Android merupakan sebuah kernel Linux dan sekumpulan pustaka C / C++ dalam suatu framework yang menyediakan dan mengatur alur proses aplikasi. [Google IO, Android Anatomy and Physiology]
34
Gambar 2.12 Detail Anatomi Android 1.
Linux Kernel Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan
Android bukanlah liniux, karena dalam Android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karenanya pada Android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.
35
2.
Libraries Android menggunakan beberapa paket pustaka yang terdapat pada C/C++
dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya: 1) Media Library untuk memutar dan merekam berbagai macam format audio dan video. 2) Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi. 3) Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D. 4) SQLite untuk mengatur relasi database yang digunakan pada aplikasi. 5) SSl dan WebKit untuk browser dan keamanan internet. Pustaka-pustaka tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android 1.5, pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan Native Development Toolkit (NDK). 3.
Android Runtime Pada Android tertanam paket pustaka inti yang menyediakan sebagian
besar fungsi Android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang membuat aplikasi Android menjadi lebih tangguh
36
dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya: 1) Pustaka Inti, Android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti Android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus Android. 2) Mesin Virtual Dalvik, Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan format ini Dalvik akan mengoptimalkan efisiensi penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas. [Nicolas Gramlich, Andbook, anddev.org] A.
Application Framework Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk
mengembangkan aplikasi Android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi Android adalah sebagai berikut [Hello Android 2nd Edition]:
37
a. Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan. b. Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama. c. Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout. d. Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat Android berada. e. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar. B.
Application Layer Puncak dari diagram arsitektur Android adalah lapisan aplikasi dan widget.
Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi. Lapisan aplikasi Android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada Android semua aplikasi, baik aplikasi inti (native) maupun
38
aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming Interface) yang sama. 2.5.3. Komponen Aplikasi Fitur penting Android adalah bahwa satu aplikasi dapat menggunakan elemen dari aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur scroller dan aplikasi lain telah mengembangkan fitur scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Maka pengembang tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup menggunakan scroller yang telah ada [developer.Android.com]. Agar fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek Java untuk bagian itu. Oleh karenanya Android berbeda dari sistem-sistem lain, Android tidak memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan. 1.
Activities Activity merupakan bagian yang paling penting dalam sebuah aplikasi,
karena Activity menyajikan tampilan visual program yang sedang digunakan oleh pengguna. Setiap Activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan antarmuka pengguna yang terdiri dari Views dan respon terhadap
39
Event. Setiap aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity yang pertama kali tampil ketika aplikasi dijalankan. Perpindahan antara activity dengan activity lainnya diatur melalui sistem, dengan memanfaatkan activity stack. Keadaan suatu activity ditentukan oleh posisinya dalam tumpukan acitivity, LIFO (Last In First Out) dari semua aplikasi yang sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya digunakan maka akan dipindahkan ketumpukan paling atas. Jika pengguna ingin menggunakan activity sebelumnya, cukup menekan tombol Back, atau menutup activity yang sedang digunakan, maka activity yang berada diatas akan aktif kembali. Memory Manager Android menggunakan tumpukkan ini untuk menentukan prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri suatu aplikasi dan mengambil sumber daya dari aplikasi tersebut. Ketika activity diambil dan disimpan dalam tumpukkan activity terdapat 4 kemungkinan kondisi transisi yang akan terjadi [Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009]: 1) Active, setiap activity yang berada ditumpukan paling atas, maka dia akan terlihat, terfokus, dan menerima masukkan dari pengguna. Android akan berusaha untuk membuat activity aplikasi ini untuk untuk tetap hidup dengan segala cara, bahkan akan menghentikan activity yang berada dibawah tumpukkannya jika diperlukan. Ketika activity sedang aktif, maka yang lainnya akan dihentikan sementara.
40
2) Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus pada kondisi inilah disebut paused. Keadaan ini terjadi jika activity transparan dan tidak fullscreen pada layar. Ketika activity dalam keadaan paused, dia terlihat active namun tidak dapat menerima masukkan dari pengguna. Dalam kasus ekstrim, Android akan menghentikan activity dalam keadaan paused ini, untuk menunjang sumber daya bagi activity yang sedang aktif. 3) Stopped, ketika sebuah activity tidak terlihat, maka itulah yang disebut stopped. Activity akan tetap berada dalam memori dengan semua keadaan dan informasi yang ada. Namun akan menjadi kandidat utama untuk dieksekusi oleh sistem ketika membutuhkan sumber daya lebih. Oleh karenanya ketika suatu activity dalam kondisi stopped maka perlu disimpan data dan kondisi antarmuka saat itu. Karena ketika activity telah keluar atau ditutup, maka dia akan menjadi inactive. 4) Inactive, kondisi ketika activity telah dihentikan dan sebelum dijalankan. Inactive activity telah ditiadakan dari tumpukan activity sehingga perlu restart ulang agar dapat tampil dan digunakan kembali. Kondisi transisi ini sepenuhnya ditangani oleh manajer memori Android. Android akan memulai menutup aplikasi yang mengandung activity inactive, kemudian stopped activity, dan dalam kasus luar biasa paused activity juga akan di tutup.
41
2.
Services Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di
background untuk waktu yang tidak terbatas. Komponen service diproses tidak terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika Activity tidak aktif atau tidak tampak. 3.
Intents Intens merupakan sebuah mekanisme untuk menggambarkan tindakan
tertentu, seperti memilih foto, menampilkan halaman web, dan lain sebagainya. Intents tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intents dapat eksplisit atau implisit, contohnya jika suatu aplikasi ingin menampilkan URL, sistem akan menentukan komponen apa yang dibutuhkan oleh Intents tersebut. 4.
Broadcast Receivers Broadcast Receivers merupakan komponen yang sebenarnya tidak
melakukan apa-apa kecuali menerima dan bereaksi menyampaikan pemberitahuan. Sebagian besar Broadcast berasal dari sistem misalnya, Baterai sudah hampir habis, informasi zona waktu telah berubah, atau pengguna telah merubah bahasa default pada perangkat. Sama halnya dengan service, Broadcast Receivers tidak menampilkan antarmuka pengguna. Namun, Broadcast Receivers 42
dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada pengguna. 5.
Content Providers Content Providers digunakan untuk mengelola dan berbagi database. Data
dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Dengan adanya Content Provider memungkinkan antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam penerapannya. 2.6.
Programming Environment Programming Environment merupakan media komunikasi penghubung
antara programmer dengan prototype. Programming Environment meliputi editing, Programming, dan Compiling seperti yang diperlihatkan pada skematik dibawah
Gambar 2.13 Proses Pembentukan File Hex Pada Compiler C 43
Proses pembentukan file executable dapat dilihat pada skematik diatas. Proses ini berawal dengan menuliskan listing program pada editor yang dapat ditulis dalam bentuk notepad, word pad, atau langsung pada editor bawaan compiler. File include dan file program kemudian di-compile dan akan menghasilkan file berbentuk objek (*. obj).kemudian file objek akan disatukan oleh linker beserta file pustaka dan file objek lainnya sebelum kemudian menghasilkan file executabel yang biasanya ber-ekstensi (*.hex) sebelum akhirnya dapat di install ke chip(Kadir 1995, p.10) Salah satu contoh compiler adalah CodeVision AVR.CodeVision AVR merupakan salah satu software compiler berbasis bahasa C yang telah mengintegrasikan standar ANSI pada sistemnya. Selain itu, CodeVisionAVR juga menyediakan Code Generator atau CodeWizardAVR, yaitu sebuah tool untuk membentuk sebuah kerangka program dengan menggunakan library-library tertentu sehingga memudahkan dalam penginisialisasian register-register yang terdapat pada mikrokontroler AVR yang sedang diprogram (Bejo 2008, p.128). 2.7.
Bahasa Pemrograman Java Java adalah bahasa pemrograman berorientasi objek yang dikembangkan
oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis
44
sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel. 2.7.1. Platform Independent Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut. JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan seperti di Gambar 2.14. Dengan 45
cara ini, sebuah program Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana.
Gambar 2.14 Proses Pengeksekusian Program Java Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE). Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi men-download JRE karena browser yang Java-enabled telah memiliki JVM sendiri. 2.7.2. Library Selain kompiler dan interpreter, bahasa Java sendiri memiliki library yang cukup besar yang dapat mempermudah Anda dalam membuat sebuah aplikasi dengan cepat. Library ini sudah mencakup untuk grafik, desain user interface, kriptografi, jaringan, suara, database, dan lain-lain.
46
2.7.3. Orientasi Objek Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek. Sedikit perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi konsep orientasi objek dari C++ namun dengan menghilangkan aspekaspek kerumitan dalam bahasa C++ tanpa mengurangi kekuatannya. Hal ini mempermudah programer pemula untuk mempelajari Java namun mengurangi keleluasaan programer berpengalaman dalam mengutak-atik sebuah program. Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library Java sendiri membuat seorang programer membutuhkan waktu yang tidak singkat untuk dapat menguasai penggunaan library-library tersebut.
47