Está en la página 1de 41

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 Fungsi

Port D Port I/O 8-bit dua arah dengan resistor pull-up internal.
Port Pin Fungsi lain
(PD7..PD
0) 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 OC2 (Timer/Counter2 Output Compare Match


Output)

Masukan reset. Sebuah reset terjadi jika pin ini diberi logika
RESET
rendah melebihi periode minimum yang diperlukan.

Masukan ke inverting oscillator amplifier dan masukan ke


XTAL1
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 aspek-

aspek 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