BAB II TINJAUAN PUSTAKA
Bab ini membahas teori dasar yang mendukung perancangan dan implementasi kendali pada sistem penetas telur, meliputi pengertian sistem kendali, penjelasan deskripsi kerja, mikrokontroler (Arduino Uno Rev. 3), Motor Servo, dan Smartphone (OS Android) serta komponen pendukung lainnya dalam perancangan sistem kendali. Adapun untuk pemograman pada aplikasi android digunakan sebuah web development aplikasi yaitu AppInventor. 2.1
Pengertian Sistem Kendali Sistem
kendali
merupakan
suatu
sistem
yang
keluarannya
dikendalikan pada suatu nilai tertentu atau untuk mengubah beberapa ketentuan yang telah ditetapkan dari masukan ke sistem. Sehingga sistem kendali dapat dikatakan mampu mengendalikan sebuah perangkat (device) sesuai dengan situasi dan perubahannya. Untuk merancang sebuah sistem yang dapat merespon suatu perubahan tegangan dan mengeksekusi perintah berdasarkan situasi yang terjadi, maka diperlukan pemahaman tentang sistem kendali (control system). Sistem kendali berdasarkan kondisi nya dibagi atas dua macam yaitu sistem kendali kalang terbuka dan kalang tertutup. 5
http://digilib.mercubuana.ac.id/
6
2.1.1 Sistem Kendali Kalang Terbuka (Open Loop) Kalang terbuka atau open loop merupakan sebuah sistem yang tidak dapat mengubah dirinya sendiri terhadap perubahan situasi yang ada. Dengan kata lain, sistem kendali kalang terbuka tidak dapat digunakan sebagai perbandingan umpan balik dengan masukan. Hal ini disebabkan karena tidak adanya umpan balik (feedback) pada sebuah sistem kalang terbuka. Sistem ini masih membutuhkan manusia yang bekerja sebagai operator.
Gambar 2.1 Blok diagram pengendali kalang terbuka Pada sistem kalang terbuka masukan dikendalikan oleh manusia sebagai operator, dan perubahan kondisi lingkungan tidak akan langsung direspon oleh sistem, melainkan dikendalikan oleh manusia. Contoh dari sistem kendali kalang terbuka adalah kipas angin, putaran motor dapat dikendalikan oleh manusia. 2.1.2 Sistem Kendali Kalang Tertutup (Close Loop) Sistem kendali kalang tertutup merupakan sebuah sistem kontrol yang nilai keluarannya memiliki pengaruh langsung terhadap aksi pengendalian yang dilakukan. Dengan kata lain sistem kendali loop tertutup adalah sistem kendali berumpan balik. Pada rangkaian loop tertutup sinyal error yang merupakan selisih antara sinyal masukan dengan sinyal umpanbalik (feedback), lalu diumpankan pada komponen pengendali (controller).
[8]
Umpan balik ini dilakukan untuk memperkecil kesalahan nilai
keluaran (output) sistem semakin mendekati nilai yang diinginkan.
http://digilib.mercubuana.ac.id/
7
Gambar 2.2 Blok diagram pengendali kalang tertutup Diagram yang menyatakan hubungan antara masukan dan keluaran dari suatu sitem loop tertutup. Ketika masukan dikendalikan ke plant maka menghasilkan keluaran, bila keluaran tidak sesuai maka sensor akan mengirimkan sinyal ke masukan untuk dilakukan masukan ulang atau pengecekan. 2.2
Pengertian kendali jarak jauh Sistem kendali jarak jauh adalah suatu sistem kendali yang
menggunakan sinyal-sinyal listrik untuk mengaktifkan peralatan pada jarak jauh dengan menggunakan operasi sistem dan komunikasi serial. Kemudian di proses oleh peralatan kontrol menjadi gerakan mekanis yang akan menggerakan alat. Prinsip kerja dari peralatan kendali jarak jauh adalah adanya kondisi on dan off atau 1 dan 0 yang terjadi secara sendiri-sendirim serentak, bergantian, berurutan dan lain sebagainya. Dengan menyusun kontak-kontak yang dihasilkan oleh peralatan akan membentuk suatu sistem yang bisa disesuaikan dengan keinginan kita. Bila kondisi kerja sistem kontrolnya berlaku dengan urutan tertentu maka sistem
kontrolnya disebut kontrol
sekuensial (sequencial control). Untuk mengubah deskripsi kerja ke dalam bentuk rangkaian kontrol kita harus mengubahnya terlebih dahulu kedalam bahasa logika yang bisa
http://digilib.mercubuana.ac.id/
8
berupa tabel logika, diagram alir atau blok fungsi. Karena logika berfikir kita mengikuti urutan gerak kontak maka kondisi tersebut disebut logika kontak. Setelah diubah ke dalam bahasa logika kemudian diterapkan menjadi bahasa kendali semisal bahasa program. Kesulitan dari logika kontak adalah logika kontak tidak memiliki struktur yang jelas untuk dapat dijelaskan secara matematis. Untuk dapat membuat suatu kendali yang handal kita perlu memiliki logika kontak yang kuat agar dapat dihasilkan perancangan kontrol. Maka, perlu dilakukan banyak latihan sehingga kita terbiasa dengan perancangan kontrol. Pada akhirnya dapat mengatasi masalah-masalah yang mungkin akan timbul dalam proses perancangan seperti : Macam-macam software bahasa kendali. Interaksi antara peralatan masukan, proses, komunikasi dan keluaran. Pemilihan dan penggunaan peralatan masukan, proses , komunikasi dan keluaran. Pola perakitan, pengoperasian kendali pada aplikasi untuk bahasa kendali. 2.3
Konsep dasar perancangan kendali Perancangan kendali adalah bagaimana membuat suatu rangkaian
kendali yang menghubungkan antara masukan (input) kendali dengan keluaran (output) kendali sehingga didapatkan suatu proses kerja sesuai dengan keinginan. Secara umum bagian dari sistem kendali terdiri dari masukan, proses dan keluaran.
[2]
http://digilib.mercubuana.ac.id/
9
Namun
dalam
perancangan
kendali,
penulis
membutuhkan
komunikasi agar proses kendali dapat dikeluarkan. Pada proses perancangan, penulis memperhatikan hal-hal dasar yang melandasi perancangan kendali itu sehingga dihasilkan suatu kendali agar efisien dan mudah di aplikasikan oleh orang lain. Adapun konsep-konsep dasar dalam perancangan kendali adalah sebagai berikut : 1. Deskripsi kerja 2. Penentuan masukan, komunikasi dan keluaran. 3. Pembuatan dan penggambaran rangkaian kendali. 4. Pembuatan aplikasi sistem kendali. 5. Pengetesan rangkaian kendali. 6. Pengetesan hubungan antara aplikasi dengan rangkaian kendali. 2.4
Mikrokontroller ATmega 328 Mikrokontroler merupakan sebuah sistem mikroprosesor dimana di
dalamnya sudah terdapat Central Proccesssing Unit (CPU), Random Acess Memory (RAM), Electrically Erasable Programmable Read Only Memori (EEPROM), I/O, Timer dan peralatan internal lainnya yang sudah saling terhubung terorganisasi dengan baik oleh pabrik pembuatnya dan dikemas dalam satu chip yang siap pakai.
[6]
Umumnya mikrokontroler memiliki instruksi manipulasi bit, akses ke I/O secara langsung serta proses interupsi yang cepat dan efisien. Penggunaan mikrokontroler sudah banyak ditemui dalam berbagai peralatan elektronik, seperti
telepon
digital,
microwave
oven,
televisi,
http://digilib.mercubuana.ac.id/
dan
lain-lain.
10
Mikrokontroller juga dapat digunakan untuk berbagai aplikasi dalam industri seperti: sistem kendali, otomasi, dan lain-lain. 2.4.1 Konfigurasi Pin a. VCC merupakan pin yang digunakan sebagai masukan sumber tegangan. b. GND merupakan pin untuk Ground. c. Port B (PB0:PB7) XTAL1/ XTAL 2/TOSC1/TOSC2 merupakan port I/O dengan internal pull-up resistor. d. XTAL digunakan sebagai pin external clock. e. Port C (PC0:PC6) merupakan pin I/O dan merupakan pin masukan ADC. f. Pin
RESET
yang digunakan untuk
mengembalikan kondisi
mikrokontroller seperti semula. g. Port D (PD0:PD7) merupakan pin I/O sinyal analog. f. AVCC adalah pin masukan untuk tegangan ADC. g. AREF adalah pin masukan untuk tegangan referensi eksternal ADC.
Gambar 2.3 PDIP ATmega 328
http://digilib.mercubuana.ac.id/
11
2.4.2 Spesifikasi ATmega 328 Mikrokontroller Atmega328 memiliki fitur yang lengkap. Bagiannya terdiri dari : a. Saluran I/O sebanyak 23 buah, yaitu Port B, Port C, dan Port D. b. ADC 10 bit sebanyak 6 saluran. c. Tiga buah Timer/Counter dengan kemampuan pembanding. d. CPU yang terdiri atas 32 buah register. e. Watchdog Timer dengan osilator internal. f. SRAM sebesar 1 Kbyte. g. Memori Flash sebesar 16 Kbyte dengan kemampuan Read While Write. h. Unit interupsi internal dan eksternal. i. Port antarmuka SPI. j. 6 PWM channel. k. Tegangan kerja 1,8 V sampai 5,5 V. o
o
l. Range suhu -40 C sampai 85 C. m. Terdapat 28 pin PDIP. o
n. Konsumsi daya rendah saat 1 MHz; 1,8V; 25 C untuk ATmega 328.
Gambar 2.4 Blok diagram fungsional ATmega 328
http://digilib.mercubuana.ac.id/
12
2.5
Arduino UNO Rev. 3 Arduino Uno adalah sebuah board mikrokontroller yang berbasis
mikrokontroller ATmega328. IC (integrated circuit) ini memiliki 14 input/output digital (6 output untuk PWM), 6 analog input, resonator kristal keramik 16 MHz, Koneksi USB, soket adaptor, pin header ICSP, dan tombol reset. Hal ini dibutuhkan untuk mendukung mikrokontroller secara mudah terhubung dengan kabel power USB atau kabel power supply adaptor AC ke DC atau juga battery.
Gambar 2.5 Logo Arduino Bahasa "UNO" berasal dari bahasa Italia yang artinya SATU, ditandai dengan peluncuran pertama Arduino 1. 0, Uno pada versi 1. 0 sebagai referensi untuk Arduino yang selanjutnya, seri Uno Rev. 3 terbaru dilengkapi USB. Uno berbeda dari semua board mikrokontrol. Pada awalnya tidak menggunakan chip khusus driver FTDI USB-to-serial. Sebagai penggantinya penerapan USB-to-serial adalah ATmega16U2 versi R2 (versi sebelumnya ATmega8U2). Arduino Uno Rev. 2 dilengkapi resistor ke 8U2 ke garis ground yang lebih mudah diberikan ke mode DFU. 1. 0 pinout: ditambahkan pin SDA dan SCL di dekat pin AREF dan dua pin lainnya diletakkan dekat tombol
http://digilib.mercubuana.ac.id/
13
RESET, fungsi IOREF melindungi kelebihan tegangan pada papan rangkaian. Keunggulan perlindungan ini akan kompatibel juga dengan dua jenis board yang menggunakan jenis AVR yang beroperasi pada tegangan kerja 5V dan Arduino Due tegangan operasi 3. 3 V, Rangkaian RESET yang lebih bagus, Penerapan ATmega 16U2 pengganti 8U2.
Gambar 2. 6 Tampak atas Arduino Uno Daya Arduino uno dapat disediakan langsung ke USB atau power supply tambahan yang pilihan power secara otomatis berfungsi tanpa saklar. Kabel external (non-USB) seperti menggunakan adaptor AC ke DC atau baterai dengan penghubung plug ukuran 2,1 mm polaritas positif di tengah ke jack power pada board. Jika menggunakan baterai dapat disematkan pada pin GND dan Vin di bagian power konektor papan Arduino ini dapat disupplai tegangan kerja antara 6 sampai 20 volt. Dan catu daya di bawah tengangan standar 5V board akan tidak stabil, jika dipaksakan ke tegangan regulator 12 Volt mungkin board arduino cepat panas (overheat) dan merusak board. Sangat direkomendasikan tegangannya 7-12 volt.
http://digilib.mercubuana.ac.id/
14
2.5.1 Karakteristik Fisik Panjang PCB Arduino Uno 2,7 dan lebar maksimal 2,1 inchi dengan konektor USB dan power jack diluar hitungan. Lengkap dengan empat lubang skrup di setiap pojok untuk dipasang. Jarak antara tiap pin 7 dan 8. Memiliki memori 32 KB (dengan 0,5 KB digunakan sebagai bootloader), memori 2 KB SRAM dan 1 KB EPROM (yang dapat baca dengan libari EEPROM). 2.5.2 Konfigurasi Pin a.
VIN - Input voltase board saat anda menggunakan sumber catu daya luar (adaptor USB 5 Volt atau adaptor yang lainnya 7-12 volt), bisa menghubungkannya dengan pin VIN ini atau langsung ke jack power 5V. DC power jack (7-12V), Kabel konektor USB (5V) atau catu daya lainnya (7-12V). Menghubungkan secara langsung power supply luar (7-12V) ke pin 5V atau pin 3.3V dapat merusak rangkaian Arduino.
b.
3V3 - Pin tegangan 3.3 volt catu daya umum langsung ke board. Maksimal arus yang diperbolehkan adalah 50 mA.
c.
GND - Pin Ground.
d.
IOREF - Pin ini penyedia referensi tengangan agar mikrokontrol beroperasi dengan baik. Memilih sumber daya yang tepat atau mengaktifkan penerjemah tegangan pada output untuk bekerja dengan 5V atau 3.3V.
e.
TWI - Pin A4 atau pin SDA dan and A5 atau pin SCL. Support TWI communication menggunakan Wire library. Inilah pin sepasang lainnya di board UNO.
http://digilib.mercubuana.ac.id/
15
f.
AREF - Tegangan referensi untuk input analog. digunakan fungsi analogReference ().
g.
Reset - Menekan jalur LOW untuk mereset mikrokontroller, terdapat tambahan tombol reset untuk melindungi salah satu blok.
Gambar 2.7 Board pada Arduino 2.5.3 Input dan Output Masing-masing dari 14 pin UNO dapat digunakan sebagai input atau output, menggunakan perintah fungsi pinMode(), digitalWrite(), dan digitalRead() yang menggunakan tegangan operasi 5 volt. Tiap pin dapat menerima arus maksimal hingga 40 mA dan resistor internal pull-up antara 20-50 kΩ, beberapa pin memiliki fungsi kekhususan antara lain: a.
Serial: 0 (RX) dan 1 (TX). Sebagai penerima (RX) dan pemancar (TX) TTL serial data. Pin ini terkoneksi untuk pin korespondensi chip ATmega8U2 USB-toTTL Serial.
http://digilib.mercubuana.ac.id/
16
b.
External Interrupts: 2 dan 3. Pin ini berfungsi sebagai konfigurasi trigger saat interupsi value low, naik, dan tepi, atau nilai value yang berubah-ubah.
c.
PWM: 3, 5, 6, 9, 10, dan 11. Melayani output 8-bit PWM dengan fungsi analogWrite().
d.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin yang support komunikasi SPI menggunakan SPI library.
e.
LED: 13. Terdapat LED indikator bawaan (built-in) dihubungkan ke digital pin 13, ketika nilai value HIGH led akan ON, saat value LOW led akan OFF.
f.
Uno memiliki 6 analog input tertulis di label A0 hingga A5, masingmasingnya memberikan 10 bit resolusi (1024). Secara asal input analog tersebut terukuru dari 0 (ground) sampai 5 volt, itupun memungkinkan perubahan teratas dari jarak yang digunakan oleh pin AREF dengan fungsi analogReference().
Gambar 2.8 Konfigurasi pin dan I/O Arduino Uno
http://digilib.mercubuana.ac.id/
17
2.5.4 Komunikasi Arduino Uno memiliki fasilitas nomer untuk komunikasi dengan komputer atau hardware Arduino lainya, atau dengan mikrokontroler. Pada ATmega328 menerjemahkan serial komunikasi UART TTL (5V) pada pin 0 (RX) dan 1 (TX). Pada ATmega16U2 serial komunikasinya dengan USB dan port virtual pada software di komputer. Perangkat lunak (firmware) 16U2 menggunakan driver standart USB COM dan tidak membutuhkan driver luar lainnya. Bagaimanapun pada OS Windows file ekstensi .inf sangat diperlukan. Software Arduino bawaan telah menyertakan serial monitor yang sangat mudah membaca dan mengirim data dari dan ke Arduino. LED indikator TX dan RX akan kedip ketika data telah terkirim via koneksi USBto-serial dengan USB pada komputer (tetapi tidak pada serial com di pin 0 dan pin
1).
Software
Serial
library membolehkan
banyak
pin
serial
communication pada Uno. ATmega328 juga support I2C (TWI) dan SPI communication. Software Arduino terbenam di dalamnya Wire library untuk memudahkan penggunaan bus I2C. 2.5.5 Arduino IDE Arduino IDE (Integrated Development Enviroment) merupakan aplikasi berbasis open-source dari Arduino yang digunakan untuk penulisan kode. Dengan Arduino IDE penulisan kode menjadi mudah dan kode yang ditulis dapat diunggah ke Arduino. Software ini dapat digunakan di Windows, Mac OC X, dan Linux, Arduino IDE dibuat dalam bahasa Java dengan didasarkan pada processing, avr-gcc, dan open source software lainnya.
http://digilib.mercubuana.ac.id/
18
Bahasa pemograman Arduino didasarkan pada bahasa pemrograman C/C++ serta terhubung dengan AVR Libc sehingga dapat menggunakan fungsi-fungsi yang terdapat pada AVR Libc. AVR Libc berisi fungsi-fungsi yang digunakan untuk menggunakan AVR, seperti pada pengaturan register. Pada Arduino IDE penggunaan AVR Libc dipermudah karena secara default library pada Arduino IDE sudah mencakup AVR Libc tanpa kita ketahui AVR Libc yang digunakan. Bila dalam penulisan kode membutuhkan AVR Libc, maka penambahan AVR Libc pada header code program dapat dilakukan. Tampilan Arduino IDE dapat dilihat pada gambar di bawah ini.
Gambar 2.9 Tampilan Arduino IDE NO dapat di program dengan software Arduino Mikrokontroller ATmega328 pada Arduino Uno dapat preburned dengan bootloader yang dapat di upload kode baru tanpa menggunakan programmer perangkat lainnya. Komunikasi menggunakan protokol original STK500. Dapat pula
http://digilib.mercubuana.ac.id/
19
langsung bootloader dan program pada mikrokontroller melalui ICSP (InCircuit Serial Programming)
menggunakan Arduino ISP atau yang
semisalnya pada ATmega16U2 (atau 8U2 di rev1 dan rev2 board) dapat melihat firmware source code. Pada ATmega16U2/8U2 load-nya dengan DFU bootloader, yang dapat diaktifkan di antaranya : On Rev1 boards: menyambung jumper solder di balik board dan kemudian mereset 8U2. On Rev2 or later boards: Resistor suntikan pada 8U2/16U2 HWB ke jalur ground, hal ini dapat membuat mudah masuk ke mode DFU. Automatic (Software) Reset : Dibutuhkan tekan tombol reset sebelum upload, sebab Arduino Uno dirancang reset dulu oleh software ketika terhubung dengan komputer. Satu komponen jalur kontrol aliran (DTR) dari ATmega8U2/ 16U2 yang terhubung di reset seperti halnya ATmega328 dengan 100 nF kapasitor. Software upload kode ini dapat mengupload secara mudah tanpa kehilangan waktu lama saat di tekan start uploadnya. 2.6
Motor Servo Motor servo adalah sebuah perangkat atau aktuator putar (motor)
yang dirancang dengan sistem umpan balik tertutup di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor servo dapat di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. Motor servo merupakan perangkat yang terdiri [1]
dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer.
Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer
http://digilib.mercubuana.ac.id/
20
dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.Penggunaan sistem kendali loop tertutup pada motor servo berguna untuk mengontrol gerakan dan posisi akhir dari poros motor servo.
Gambar 2.10 Rangkaian Motor Servo Sederhananya, posisi poros output akan disensor untuk mengetahui posisi poros sesuai keinginan pengguna, bila belum sesuai kendali input akan mengirim sinyal kendali untuk membuat posisi poros tersebut tepat pada posisi yang diinginkan. Motor servo biasa digunakan dalam aplikasi-aplikasi di industri, selain itu digunakan pada peranti R/C (remote control) seperti mobil, pesawat, helikopter, dan kapal, serta sebagai aktuator robot maupun penggerak pada kamera.
Gambar 2.11 Motor Servo
http://digilib.mercubuana.ac.id/
21
Ada dua jenis motor servo, yaitu motor servo AC dan DC. Motor servo AC mampu menangani arus yang tinggi atau beban berat, digunakan pada mesin-mesin industri. Sedangkan motor servo DC digunakan pada aplikasi-aplikasi yang relatif lebih kecil.
Gambar 2. 12 Komponen pada motor servo 2.6.1 Prinsip Kerja Pengendalian gerakan batang motor servo dapat dilakukan dengan menggunakan metode Pulse Width Modulation (PWM). Teknik ini menggunakan sistem lebar pulsa untuk mengendalikan putaran motor. Sudut dari sumbu motor diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Semisal bila dengan pulsa 1, 5 mS akan memutar poros motor servo ke posisi sudut 90 derajat. Bila pulsa lebih pendek dari 1,5 mS maka akan berputar ke arah posisi 0 derajat atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 mS maka poros motor servo akan berputar ke posisi 180 derajat atau ke kanan (searah jarum jam).
[5]
http://digilib.mercubuana.ac.id/
22
Gambar 2.13 Pulse Wide Modulation (PWM) motor servo Ketika lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi tertentu dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan
torsi
yang
dimiliki.
Namun,
motor
servo
tidak
akan
mempertahankan posisinya untuk selama nya, sinyal lebar pulsa kendali harus diulang setiap 20 mS untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada posisinya. 2.7
Bluetooth Module HC-05 Merupakan module komunikasi nirkabel pada frekuensi 2.4GHz
dengan pilihan koneksi bisa sebagai slave, ataupun sebagai master. Sangat mudah digunakan dengan mikrokontroler untuk membuat aplikasi wireless. Interface yang digunakan adalah serial RXD, TXD, VCC dan GND. Built in LED sebagai indikator koneksi bluetooth. Tegangan input antara 3.6 ~ 6V, jangan menghubungkan dengan sumber daya lebih dari 7V. Arus saat unpaired sekitar 30mA, dan saat paired (terhubung) sebesar 10mA. 4 pin interface 3.3V dapat langsung dihubungkan
http://digilib.mercubuana.ac.id/
23
ke berbagai macam mikrokontroler (khusus Arduino, 8051, 8535, AVR, PIC, ARM, MSP430, etc.).
[4]
Gambar 2.14 Blutooth Module HC-05 Jarak efektif jangkauan sebesar 5 meter, meskipun dapat mencapai lebih dari 5 meter, namun kualitas koneksi makin berkurang. 2.8
Smartphone Android
2.8.1 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 yang menggunakan bahasa pemrograman Java. Android dikembangkan oleh Google bersama Open Handset Allience (OHA) yaitu aliansi perangkat selular terbuka yang terdiri dari 47 perusahaan Hardware, Software dan perusahaan telekomunikasi yang
bertujuan
untuk mengembangkan standar terbuka bagi perangkat
selular. Android dipuji sebagai terbuka dan bebas”
[4]
“platform mobile pertama yang lengkap,
, yaitu :
a. Lengkap (Complete Platform) : Para desainer dapat melakukan
http://digilib.mercubuana.ac.id/
24
pendekatan yang komprehensif ketika mereka sedang mengembangkan platform Android. Android merupakan sistem operasi yang aman dan banyak
menyediakan
tools
dalam
membangun
software
dan
memungkinkan untuk peluang pengembangan aplikasi. b. Terbuka (Open Source Platform) : Platform Android disediakan melalui lisensi open source. Pengembang dapat dengan bebas untuk mengembangkan aplikasi apapun. Android itu sendiri menggunakan Linux Kernel 2.6. c. Bebas (Free Platform) : Android adalah platform/aplikasi yang bebas untuk develope. Tidak ada lisensi atau biaya royalti untuk dikembangkan pada platform Android. Tidak ada biaya keanggotaan diperlukan. Tidak diperlukan biaya pengujian. Tidak ada kontrak yang diperlukan. Android dapat didistribusikan dan diperdagangkan dalam bentuk apapun. 2.8.2 Library 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: a. Media Library untuk memutar dan merekam berbagai macam format audio dan video. b. Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi. c. Graphic Library termasuk didalamnya SGL dan OpenGL, untuk
http://digilib.mercubuana.ac.id/
25
tampilan 2D dan 3D. d. SQLite untuk mengatur relasi database yang digunakan pada aplikasi. e. 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). 2.8.3 Aplikasi Framework Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi Android. Selain itu, juga menyediakan abstraksi generik untukdapat mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian yang terpenting dalam kerangka aplikasi Android adalah sebagai berikut [Hello Android 2nd Edition]: a. Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan “Backstack” untuk navigasi pengunaan. b. Content
Providers,
berfungsi
untuk
merangkum
data
yang
memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama. c. Resource 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 pengguna berada. e. Notification Manager, mencakup berbagai macam peringatan seperti
http://digilib.mercubuana.ac.id/
26
pesan masuk, janji, pesan keluar, draft, jadwal meeting dan lain sebagainya yang akan ditampilkan pada status bar. 2.8.4 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 aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka Application Programming Interface (API) yang sama. 2.8.5 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. 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
http://digilib.mercubuana.ac.id/
27
main() pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem memanggil dan menjalankan ketika dibutuhkan. 2.8.6 Activity 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 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]:
http://digilib.mercubuana.ac.id/
28
a. 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 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. b. 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. c. 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 sumberdaya 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. d. 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
http://digilib.mercubuana.ac.id/
29
inactive, kemudian stopped activity, dan dalam kasus luar biasa paused activity juga akan di tutup. 2.8.7 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 dalam melakukan pengolahan data yang perlu untuk diproses secara terus menerus, bahkan ketika activity tidak aktif. 2.8.8 Intens Intens merupakan sebuah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto, menampilan halaman web, dan lain sebagainya. Intens tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intens dapat eksplisit atau implisit, semisal bila suatu aplikasi ingin menampilkan nominal berupa angka ketika tampilan angka ditekan, sistem akan menentukan komponen apa yang dibutuhkan oleh Intens tersebut. 2.8.9 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 habis, informasi perubahan zona waktu, atau perubahan bahas default oleh pengguna perangkat. Sama halnya dengan service, broadcast receivers tidak menampilkan antarmuka kepada pengguna melainkan broadcast receivers
http://digilib.mercubuana.ac.id/
30
dapat menggunakan notification manager untuk memberitahukan sesuatu kepada pengguna. 2.8.10
Content Providers Contents Providers digunakan untuk mengelola dan berbagi
database. Data dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Adanya content provider memungkinkan antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga penerapan dapat mudah dilakukan. 2.8.11
Programming Enviroment Programming
Environment
merupukan
media
komunikaasi
penghubung antara programmer dengan prototype yang meliputi editing, programming, dan compiling. Proses pembentukan file executable dapat dilihat bahwa berawal dengan menuliskan listing program pada editor yang dapat ditulis dalam bentuk notepad, word pad atau langsung pada editor yang dibawa dari compiler.
Gambar 2.15 Proses pembentukan file hex pada compiler C
http://digilib.mercubuana.ac.id/
31
File include berbentuk objek(*. obj). Kemudian file objek akan digabung dengan linier dan file pustaka serta file objek lainnya sebelum kemudian menghasilkan file executabel yang biasanya ber-ekstensi (*. hex) sebelum akhirnya dapat di install ke chip. 2.9
App Inventor App Inventor adalah sebuah aplikasi builder untuk membuat
aplikasi yang berjalan di sistem operasi Android yang disediakan oleh googlelabs. App inventor ini sedikit berbeda dengan aplikasi builder lain seperti eclipse, visual basic atau android studio. Dengan app inventor penulis belum menemukan kasus, semisal developer tidak mengerti karena aplikasi tidak berjalan. Aplikasi ini menggunakan teknik visual programming berbentuk seperti susunan rangkaian-rangkaian tulisan perintah yang dapat disambung dan memiliki logika tertentu. 2.9.1 Komponen Desainer Komponen desainer berjalan pada browser yang digunakan untuk memilih komponen yang dibutuhkan dan mengatur propertinya. Pada komponen desainer sendiri terdapat 5 bagian, yaitu palette, viewer, component, media dan properties. a.
Palette : list komponen yang bisa digunakan
b.
Viewer : untuk menempatkan komponen dan mengaturnya sesuai tampilan yang diinginkan
c.
Component : Tempat list komponen yang dipakai pada sebuah proyek
d.
Media : Mengambil media audio atau gambar.
http://digilib.mercubuana.ac.id/
32
e.
Properties : Mengatur properties komponen yang digunakan, seperti width, height, name dan lain-lain.
Gambar 2.16 Tampilan komponen designer App inventor 2.9.2 Block Editor Block editor berjalan diluar browser dan digunakan untuk membuat dan mengatur behaviour dari komponen-komponen yang kita pilih dari komponen desainer menyerupai coding. Bentuknya seperti puzzle, penyusun cukup men-drang-and-drop yang berisi logika.
Gambar 2.17 Tampilan block editor
http://digilib.mercubuana.ac.id/
33
2.9.3 Emulator Emulator digunakan untuk menjalankan dan mengetest proyek yang telah dibuat. Penggunaan emulator ini memudahkan pembuat aplikasi untuk menjalankan aplikasinya secara langsung lewat komputer tanpa harus men download serta meng instal aplikasi yang telah dibuat tersebut kedalam smartphone. Namun hanya cukup melakukan scanning kode atau mengetik kode yang tertera pada app inventor.
Gambar 2. 18 Tampilan Emulator
http://digilib.mercubuana.ac.id/
34
http://digilib.mercubuana.ac.id/