BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
Pada Bab Dua yang berisi berbagai landasan teori ini akan dibahas mengenai
definisi dan konsep dari penelusuran & pelacakan, mobile computing, Global
Positioning System (GPS), dan platform Google Android. Landasan teori ini akan
memberikan pemahaman yang lebih detail mengenai topik-topik tersebut sehingga
akan memudahkan proses analisis dan perancangan pada bab selanjutnya.
2.1 Penelusuran dan Pelacakan
Istilah pelacakan digunakan dalam konteks Tugas Akhir ini sebagai pengiriman
informasi lokasi perangkat mobile saat pengguna melakukan query terhadap
aplikasi. Sedangkan yang dimaksud dengan penelusuran adalah pengiriman
informasi lokasi perangkat mobile per setiap periode waktu tertentu.
Sistem penelusuran dan pelacakan bukanlah sebuah teknologi tunggal, melainkan
suatu bentuk konvergensi dari berbagai teknologi yang digabungkan untuk
menghasilkan sebuah sistem yang menawarkan layanan berbasis lokasi (locationbased service) [JAG02]. Adapun berbagai teknologi yang digunakan untuk
mendukung sebuah sistem penelusuran dan pelacakan antara lain:
1. Global Positioning System (GPS) adalah sebuah sistem satelit navigasi
global dengan konstelasi 27 satelit yang mengorbit bumi [CTI08]. Sebuah
GPS receiver menerima informasi dari tiga atau lebih satelit tersebut,
kemudian menghitung jarak tiap-tiap satelit, dan mendeduksi lokasi
melalui proses trilaterasi. Agar proses trilaterasi dapat dilakukan maka
GPS receiver harus berada dalam Line-of-Sight (LoS) terhadap keempat
satelit tersebut, sehingga GPS hanya ideal untuk digunakan dalam outdoor
positioning seperti dalam bidang survey, transportasi, dan militer. Lebih
lanjut tentang GPS akan dibahas pada Bab 2.3.
II-1
II-2
2. Geographic
Information
System
(GIS)
adalah
sebuah
sistem
terkomputerisasi yang digunakan untuk mengolah informasi-informasi
spatial yang terkait dengan geografis suatu wilayah [GIS08]. Untuk sebuah
sistem pelacakan dan penelusuran yang berskala besar, pengunaan GIS
amatlah penting.
3. Radio Frequency Identification (RFID) adalah sebuah microchip mini
yang dapat ditempelkan di berbagai benda sehingga memungkinkan benda
tersebut dapat dilacak.
4. Wireless Network adalah jaringan nirkabel yang memungkinkan
komunikasi via gelombang radio.
Pada umumnya, setiap sistem penelusuran dan pelacakan akan menggunakan
salah satu atau kombinasi dari berbagai teknologi tersebut. Sistem penelusuran
dan pelacakan membutuhkan sebuah tag yang diletakkan pada objek yang ingin
dipantau, dimana objek ini dapat berupa benda, hewan, ataupun manusia. Sebagai
contoh, GPS receiver pada sebuah telepon seluler atau RFID tag pada kalung
anjing.
Berdasarkan lingkup wilayah pantauannya, sistem penelusuran dan pelacakan
terbagi atas wide-area dan local-area. Sistem penelusuran dan pelacakan widearea pada umumnya menggunakan GPS receiver dikarenakan wilayah
pantauannya yang sangat luas. Penggunaan GPS juga memungkinkan pengguna
dapat meminta informasi posisi setiap saat, namun GPS memiliki keterbatasan
pada ruang tertutup dikarenakan faktor Line-of-Sight tadi. Contoh sistem
penelusuran dan pelacakan wide-area adalah intelligent transport system.
Sistem penelusuran dan pelacakan local-area diterapkan untuk wilayah yang
pantauannya kecil, umumnya menggunakan tag RFID dikarenakan ketepatan
akurasi GPS tidak mencukupi untuk wilayah yang kecil. Sistem penelusuran dan
pelacakan local-area biasanya digunakan pada rumah sakit, yang mana kursi roda
pasien dan berbagai asset-aset rumah sakit diberi tag RFID, kemudian RFID
II-3
Reader akan didistribusikan di berbagai lokasi yang strategis sepanjang rumah
sakit sehingga memungkinkan penentuan posisi hingga akurasi senti (centimeter).
2.2 Mobile Computing
Sistem komputasi mobile hadir sebagai solusi atas kebutuhan manusia untuk
melakukan kegiatan komputasi kapan saja dan di mana saja. Mobile computing
adalah suatu aktivitas melakukan proses komputasi dengan perangkat yang
memanfaatkan jaringan nirkabel (wireless) sehingga tidak terbatas oleh ruang
(lokasi). Salah satu kunci utama dalam mobile computing adalah kemampuannya
dalam mengakses informasi tanpa mempedulikan lokasi, yaitu portabilitas. Saat
ini perangkat yang mendukung komputasi mobile sudah semakin banyak
digunakan orang karena sistem ini menawarkan kegiatan komputasi kapan saja &
di mana saja.
Meski mobile computing menawarkan berbagai keunggulan, namun harus
diperhatikan bahwa sistem komputasi mobile juga memiliki berbagai keterbatasan.
Adapun keterbatasannya yang paling utama adalah masalah resources jika
dibandingkan dengan perangkat konvensional seperti PC Desktop. Dampak dari
keterbatasan ini menyebabkan penggunaan resource pada proses komputasi
mobile harus dilakukan secara se-efisien dan se-efektif mungkin.
Beberapa tantangan dalam pengembangan aplikasi mobile antara lain adalah:
1. manajemen sumber daya, yaitu pemanfaatan sumber daya harus dilakukan
sebijak mungkin, seperti minimalisasi penggunaan thread ataupun memori,
2. konsistensi konektivitas, yaitu koneksi harus reliable & sesuai dengan
standar, aplikasi perangkat mobile juga harus memiliki kemampuan untuk
berkomunikasi dengan berbagai tipe jaringan seperti GSM atau GPRS,
3. keamanan sistem, yaitu sistem harus memiliki proses otentikasi, dimana
setiap aksi harus dapat diotorisasi & diaudit,
II-4
4. policy sistem, karena platform mobile yang sangat beraneka ragam,
sehingga arsitektur & karakteristik tiap platform harus dipelajari dengan
baik.
2.3 Global Positioning System (GPS)
GPS adalah satu-satunya sistem satelit navigasi global untuk penentuan lokasi,
kecepatan, arah, dan waktu yang telah beroperasi secara penuh di dunia saat ini
[CTI08]. GPS menggunakan konstelasi 27 buah satelit yang mengorbit bumi,
dimana sebuah GPS receiver menerima informasi dari tiga atau lebih satelit
tersebut untuk menentukan posisi. GPS receiver harus berada dalam line-of-sight
(LoS) terhadap keempat satelit tersebut untuk menentukan posisi, sehingga GPS
hanya ideal untuk digunakan dalam outdoor positioning.
2.3.1
Arsitektur GPS
Arsitektur GPS terdiri atas 3 segmen, yaitu: space segment, control segment, dan
user segment. Space segment adalah berupa 27 satelit-satelit yang terus mengorbit
bumi. Sebanyak 24 satelit digunakan untuk operasional sedangkan 3 sisanya
digunakan sebagai cadangan. Dua puluh empat satelit tersebut dibagi atas
kumpulan 4 satelit yang mengorbit pada 6 jalur lintasan. Orbit lintasan ini telah
diatur sedemikian rupa sehingga setiap titik di bumi pasti tercakup dalam LoS dari
sedikitnya 6 satelit. Deskripsi space segment di GPS dapat dilihat pada Gambar
II-1. Setiap satelit GPS mengorbit pada ketinggian 20.200 kilometer dari
permukaan bumi dengan periode evolusi 12 jam [ELR02]. Sejak September 2007
kini GPS memiliki 31 satelit dimana satelit tambahan digunakan untuk
meningkatkan ketelitian GPS receiver.
Control segment berupa stasiun di bumi yang memonitor satelit-satelit GPS.
Stasiun ini mengontak setiap satelit GPS secara berkala untuk memberikan update
navigasi. Update ini berupa sinkronisasi jam atomik satelit dengan satelit lainnya
dan mengkoreksi lintasan orbit setiap satelit.
II-5
Gambar II-1 Space Segment pada GPS
User segment adalah berupa GPS receiver. Secara umum, GPS receiver terdiri
sebuah antena yang dapat menangkap frekuensi yang ditransmisikan satelit GPS,
sebuah prosesor, dan sebuah jam yang sangat stabil. GPS receiver memiliki
atribut channel yaitu jumlah satelit yang dapat dimonitornya dalam suatu waktu
(sekarang umumnya jumlah channel berkisar antara 12 -20). Kebanyakan GPS
receiver dapat meneruskan datanya ke perangkat lain melalui koneksi serial, USB
atau Bluetooth menggunakan protokol NMEA. Lebih lanjut tentang NMEA akan
dibahas pada Subbab 2.3.8.
2.3.2
Sinyal GPS
Satelit GPS mentransmisikan sinyal Right Hand Circulary Polarized L-band yang
lebih dikenal sebagai L1 pada frekuensi 1575.42 MHz. Satelit GPS juga
mentransmisikan sinyal pada frekuensi 1227.6 MHz yang disebut sebagai L2.
Selain dua sinyal utama ini, GPS juga mentransmisikan sinyal-sinyal lain,
lengkapnya dapat dilihat pada Tabel II-1 [ELR02].
Sinyal GPS merambat secara line-of-sight dengan frekuensi yang cukup tinggi
sehingga sinyal ini mampu menembus benda-benda tipis seperti awan, kaca, dan
plastik tapi tidak bisa menembus benda padat seperti bangunan atau pegunungan.
II-6
Tabel II-1 Sinyal-Sinyal pada GPS
Sinyal
Frekuensi
L1
L2
L3
L4
1575.42 MHz
1227.60 MHz
1381.05 MHz
1379.913 MHz
L5
2.3.3
Penggunaan
Untuk mengirim pesan navigasi
Untuk mengirim pesan navigasi
Untuk Nuclear Detonation Detection System
(sedang dalam riset) untuk membantu koreksi
ionospheric error
1176.45 MHz (sedang diajukan) untuk sistem safety-of-life (SoL)
masyarakat
Pesan Navigasi GPS
Setiap satelit GPS melakukan broadcast sinyal berisi pesan navigasi secara
kontinu. Secara umum, pesan navigasi ini berisi id satelit, data ephemeris, dan
data almanac [ELR02]. Data ephemeris berisi informasi orbital satelit tersebut
sehingga melalui data ini sebuah GPS receiver dapat menentukan di mana lokasi
persis satelit sepanjang hari. Data almanac yang dikirimkan secara terus menerus
berisi kondisi satelit, waktu GPS, dan model ionosfer. Jadi setiap satelit hanya
mengirimkan ephemeris-nya, namun mengirimkan almanac untuk semua satelit.
Almanac menyediakan berbagai kegunaan. Pertama adalah untuk membantu
proses pencarian satelit dengan memungkinkan GPS receiver
untuk
menghasilkan daftar satelit yang tersedia berdasarkan posisi dan waktu yang
tersimpan. Kedua adalah untuk menghubungkan waktu GPS menjadi standar
waktu internasional UTC. Terakhir alamanac memungkinkan receiver untuk
mengkoreksi ionospheric error dengan menggunakan model global ionospheric.
Pesan navigasi ditransmisikan dengan kecepatan 50 bps dalam bentuk frame yang
setiap framenya berukuran 1500 bit sehingga 1 frame akan terkirim dalam waktu
30 detik. Frame ini dibagi atas 5 subframe yang masing-masingnya berukuran
300 bit. Subframe 4 & 5 dikirim dengan siklus 25 kali masing-masing, sehingga
membutuhkan 25 frame untuk pengiriman seluruh data. Dua puluh lima versi dari
subframe ini disebut sebagai page. Setiap subframe diawali dengan telemetry
II-7
word (TLM) dan handover word (HOW). TLM dan HOW digunakan untuk
sinkronisasi.
Gambar II-2 Isi Pesan Navigasi GPS
Jadi enam detik pertama dari tiap frame berisi data yang mendeskripsikan waktu
GPS. Dua belas detik selanjutnya dari frame berisi data ephemeris yaitu orbit
satelit yang sangat tepat. Ephemeris ini diupdate setiap 2 jam sekali dengan waktu
validitas 4 jam. Sisanya berupa data almanac yang dikirim pada 12 detik terakhir
setiap frame dimana setiap frame hanya berisi 1/25 dari almanac, sehingga
mebutuhkan waktu 12.5 menit untuk menerima seluruh almanac dari satu satelit.
Gambar II-2 memperlihatkan isi pesan navigasi GPS dalam bentuk frame.
2.3.4
Cara Penentuan Lokasi pada GPS
Satelit GPS mengorbit bumi dua kali dalam sehari dengan lintasan yang sangat
presisi dan mentrasmisikan sinyal informasi secara kontinu ke bumi. GPS receiver
memanfaatkan informasi ini dengan berperan sebagai sebuah alat pengukur yang
menghitung jarak antara antenna receiver dengan berbagai satelit GPS. Kemudian
GPS receiver mendeduksi posisi melalui proses trilaterasi dengan mencari
II-8
perpotongan tiap vektor satelit-satelit tersebut. Jarak antara antena receiver dan
satelit diukur dengan membandingkan waktu yang terdapat pada sinyal dengan
waktu ketika sinyal diterima.
Sebuah GPS receiver setidaknya harus menangkap sinyal dari 3 buah satelit untuk
menghitung posisi 2 dimensi (latitude dan longitude) dan pergerakannya. Dengan
4 buah satelit atau lebih, receiver dapat menghitung posisi 3 dimensi (latitude,
longitude, dan altitude).
Gambar II-3 Trilaterasi dalam GPS
Gambar II-3 memberikan gambaran sederhana yang memodelkan proses
trilaterasi dalam GPS untuk menentukan lokasi. Lingkaran melambangkan ruang
wilayah cakupan sebuah satelit dan titik di tengahnya adalah satelit itu sendiri.
2.3.5
Akurasi GPS
GPS menyediakan posisi dengan ketepatan akurasi hingga 15 meter, yang berarti
jika GPS receiver memberikan koordinat terhadap suatu lokasi tertentu, maka
boleh diharapkan lokasi sebenarnya berada dalam radius 15 meter dari koordinat
tersebut [ELR02]. Ketepatan GPS bergantung daripada lokasi GPS receiver-nya
dan halangan terhadap sinyal satelit GPS.
II-9
Meski secara umum, GPS menawarkan tingkat ketelitian 15 meter, namun akurasi
ini dapat ditingkatkan dengan berbagai teknik, seperti Assisted GPS (A-GPS),
Differential GPS (D-GPS), atau Wide Area Augmentation System (WAAS).
Tingkat akurasi masing-masing teknik dapat dilihat pada Tabel II-2 [ELR02].
Tabel II-2 Akurasi GPS
Akurasi
Mode
GPS
GPS dengan Differential-GPS
GPS dengan WAAS
GPS dengan Assisted-GPS
15 meter
3-5 meter
1-3 meter
5 meter
Tabel II-2 Akurasi GPS ini hanya sekedar rata-rata akurasi masing-masing teknik.
Pada kenyataan di lapangan, akurasi dapat bervariasi sesuai keadaan.
2.3.6
Sumber Kesalahan pada GPS
Berikut adalah berbagai faktor yang dapat mengurangi akurasi GPS [ELR02]:
1. Ionosphere dan troposphere error, dikarenakan sinyal mengalami
hambatan ketika melewati atmosfer bumi sehingga menyebabkan delay.
2. Signal multipath, dikarenakan sinyal GPS dapat direfleksikan oleh
berbagai benda sebelum mencapai receiver sehingga waktu yang
dibutuhkan menjadi semakin lama.
3. Jam GPS receiver error, dikarenakan jam internal pada GPS receiver tidak
seakurat jam atomik pada satelit GPS.
4. Orbital atau ephemeris error, dikarenakan adanya kesalahan mengenai
lokasi satelit.
5. Jumlah satelit yang tertangkap, semakin sedikit satelit yang tertangkap
oleh GPS receiver semakin rendah akurasinya.
6. Satellite geometry error, dikarenakan
posisi satelit tidak ideal dalam
perhitungan geometri ketika satelit terlalu berdekatan.
II-10
2.3.7
Informasi yang Disediakan GPS
GPS menyediakan berbagai informasi yang amat berguna selain informasi posisi.
Adapun informasi-informasi tersebut adalah:
1. Waktu: GPS receiver menerima informasi waktu yang jam atomic
sehingga boleh dibilang sangat akurat.
2. Lokasi: GPS menyediakan 3 dimensi dari lokasi yaitu latitude (koordinatx), longitude (koordinat y), dan elevation (koordinat z).
3. Kecepatan: Jika GPS receiver sedang bergerak, maka informasi kecepatan
bisa didapatkan.
4. Arah Pergerakan: Jika GPS receiver sedang bergerak, maka informasi arah
gerakan bisa didapatkan.
2.3.8
Standar NMEA
NMEA adalah sebuah spesifikasi standar elektrikal dan data yang digunakan
untuk komunikasi antara alat-alat elektronik marinir seperti sonar, anemometer,
gyrocompass, GPS receivers dan lain-lain [NME08]. Spesifikasi proprietary ini
didefinisikan dan dikontrol oleh US National Marine Electronics Association
namun telah banyak di-reverse engineering oleh berbagai pihak sehingga tersedia
untuk umum.
Protokol standar NMEA ini digunakan oleh sebagian besar GPS receiver untuk
mentransmisikan data ke perangkat lain meskipun terdapat protokol lain seperti
SiRF (protokol keluaran SiRF Technology, Inc) ataupun MTK (protokol keluaran
MediaTek, Inc). Standar ini menggunakan koneksi 4800 bps, 8 data bits, tanpa
parity, tanpa handshaking, dan satu bit stop. NMEA menggunakan string ASCII
untuk transmisi data, dimana data ditransmisikan dalam bentuk sentence. Setiap
sentence dimulai dengan tanda dollar ($) yang dikuti dengan 5 karakter yang
menandakan tipe sentence, kemudian dikuti dengan data yang dipisahkan oleh
koma dan diakhiri dengan carriage return (CR) dan linefeed (LF).
II-11
2.3.9
Kelebihan dan Kekurangan GPS
Teknologi GPS sangat fenomenal dalam bidang penentuan posisi karena mampu
memberikan informasi mengenai posisi secara real-time & kontinu, di mana saja
& kapan saja. Selain itu ada beberapa hal yang membuat GPS sangat baik dalam
sistem pelacakan:
1. tidak bergantung waktu & cuaca,
2. meliputi wilayah yang luas,
3. tidak terpengaruh topografis,
4. memberikan ketelitian akurasi yang cukup,
5. pengunaan tidak dikenakan biaya, alias gratis.
Kekurangan GPS adalah mengharuskan GPS receiver berada dalam Line-of-Sight
dengan setidaknya 3 buah satelit GPS untuk menentukan lokasi.
2.4 Platform Google Android
Platform Android adalah sebuah software stack produksi Google untuk perangkat
mobile yang terdiri atas sistem operasi, middleware, dan key applications
[OHA07]. Aplikasi Android dapat dikembangkan melalui Android Standard
Development Kit (Android SDK) menggunakan sintaks bahasa pemrograman
Java. Aplikasi Android nantinya tidak akan berjalan langsung di atas kernel sistem
operasi namun berjalan diatas Dalvik, sebuah virtual machine yang khusus
dirancang untuk digunakan pada sistem embedded.
2.4.1
Fitur-Fitur Android
Android menyediakan berbagai fitur dan API yang memungkinkan akses ke
berbagai fitur yang dimiliki perangkat mobile. Adapun fitur-fitur yang ditawarkan
Android adalah:
1. application framework yang memudahkan konsep reuse komponen,
2. Dalvik virtual machine yaitu virtual machine yang khusus dioptimasi
untuk perangkat mobile,
II-12
3. browser yang terintegrasi,
4. grafik yang dioptimasi dengan library grafik 2D dan library grafik 3D
yang berbasis spesifikasi OpenGL ES 1.0,
5. SQLite untuk penyimpanan data secara terstruktur,
6. dukungan media untuk berbagai format audio, video, dan gambar yang
umum di pasaran (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ,
7. akses terhadap jaringan GSM, Bluetooth, EDGE, 3G, dan WiFi,
8. akses terhadapa kamera, GPS, kompas, dan accelerometer,
9. lingkungan pengembangan yang kaya yaitu disertai denngan emulator,
debugger, memori dan performansi profiling, dan plugin untuk Eclipse
Integrated Development Environment (IDE).
2.4.2
Arsitektur Android
Arsistektur sistem terdiri atas 5 layer, pemisahan layer bertujuan untuk
memberikan abstraksi sehingga memudahkan pengembangan aplikasi. Layerlayer tersebut adalah layer aplikasi, layer framework aplikasi, layer libraries,
layer runtime, dan layer kernel. Gambar II-4 memberikan gambaran umum
komponen-komponen dalam arsitektur sistem operasi Android.
Layer Applications adalah layer dimana aplikasi Android berjalan seperti email
client, SMS program, kalendar, peta, browser, dan lain-lain. Layer Application
Framework adalah layer yang berisi framework API yang dapat digunakan oleh
developer. Android tidak membedakan antara core applications dengan thirdparty applications dimana semuanya mempunyai akses ke API yang sama.
Framework Android dirancang untuk memudahkan konsep reuse dari komponen.
Layer Libraries berisi library C/C++ yang digunakan oleh berbagai komponen
dalam sistem Android, seperti:
1. System C library (libc) yang telah di-tuning untuk perangkat embedded
berbasis Linux,
2. Media Library untuk encoding berbagai format gambar, audio, dan video,
II-13
3. Surface Manager untuk mengatur tampilan,
4. LibWebCore, engine untuk web browser,
5. SGL, engine untuk grafik 2D,
6. Libraries 3D yang berbasis API OpenGL ES 1.0,
7. FreeType untuk rendering huruf bitmap dan vector,
8. Library SQLite, engine untuk database relasional yang lightweight.
Gambar II-4 Arsitektur Android [GOO08]
Layer Android Runtime berisi
berbagai core libraries yang menyediakan
sebagian besar fungsionalitas yang serupa dengan API standard pada bahasa
pemograman Java. Di layer ini juga terdapat Dalvik virtual machine (VM) dimana
setiap aplikasi Android akan berjalan sebagai proses dengan instans tersendiri di
atas VM ini. Lebih lanjut tentang Dalvik dapat dilihat pada Subbab 2.4.3.
Layer Linux Kernel berupa kernel Linux versi 2.6 sebagai core dari sistem yang
menyediakan
berbagai
layanan
seperti
keamanan,
manajemen
memori,
II-14
manajemen proses, stack jaringan, dan model driver. Layer ini juga menyediakan
abstraksi antara hardware dan software stack di atasnya.
2.4.3
Virtual Machine Dalvik
Dalvik adalah sebuah virtual machine (VM) berbasis register yang telah
dioptimasi untuk berjalan pada perangkat embedded dengan memory minim.
Dalvik juga dirancang untuk
memungkinkan beberapa instans VM berjalan
sekaligus secara efisien. Dalvik bergantung pada kernel Linux untuk menyediakan
fungsionalitas level rendah seperti isolasi proses, threading dan manajemen
memori low level [GOO08].
Dalvik boleh dianalogikan dengan Java VM dimana perbedaannya adalah Java
VM mengoperasikan Java bytecode, sedangkan Dalvik VM mengoperasikan file
berformat “.dex” (Dalvik Executable). File “.dex” ini yang berasal dari kelas-kelas
yang di-compile oleh compiler Java biasa kemudian ditransformasikan dengan Dx
Tool.
Dalvik VM ini dirancang khusus oleh para engineer Google sebagai bagian dari
platform mobile Android. Selain masalah optimasi untuk perangkat embedded,
sebenarnya salah satu alasan Dalvik dibuat adalah dikarenakan masalah lisensi
dengan Sun, dimana Java Micro Edition berlisensi GPL versi 2, sedangkan
platform Android akan dirilis dengan lisensi Apache versi 2.
2.4.4
Komponen Utama pada Aplikasi Android
Semua aplikasi Android dibangun dengan 4 komponen utama yaitu: Activity,
Intent, Service, dan Content Provider [GOO08].
2.4.4.1 Komponen Activity
Activity adalah komponen yang paling umum. Biasanya Activity adalah
sebuah screen dalam aplikasi, dimana setiap Activity akan diimplementasi
dalam kelas tersendiri yang diturunkan dari kelas base Activity. Kelas ini
II-15
akan menampilkan user interface yang terdiri atas views yang bereaksi
terhadap events.
Sebagai contoh misalnya, sebuah aplikasi text messaging memiliki 1
screen untuk menampilkan daftar kontak, 1 screen untuk menulis pesan,
dan 1 screen untuk membaca pesan. Maka masing-masing screen akan
diimplementasikan sebagai sebuah Activity dimana perpindahan screen
dilakukan dengan memulai Activity baru.
Ketika sebuah screen baru diciptakan maka screen yang lama akan
dihentikan dan dimasukkan dalam history stack. Stack ini berfungsi agar
pengguna dapat langsung berpindah ke screen sebelumnya.
2.4.4.2 Komponen Intent & Intent Receiver
Android menggunakan class Intent yang digunakan untuk berpindah dari
satu screen ke screen yang lain. Intent mendeskripsikan apa yang ingin
dilakukan oleh aplikasi dengan struktur data berupa action dan data.
Action berupa aksi yang ingin dilakukan aplikasi, misalnya seperti MAIN,
VIEW, atau EDIT, sedangkan data berupa objek yang akan dimanipulasi
oleh action. Data diekspresikan dalam bentuk URI.
Sebagai contoh
pada aplikasi text messaging, untuk menampilkan
informasi kontak, dibutuhkan Intent dengan action VIEW dan data berupa
URI yang merepresentasikan kontak tersebut.
Intent Receiver digunakan untuk bereaksi terhadap event external, seperti
ketika ada panggilan, atau ketika tengah malam. Intent Receivers tidak
memiliki GUI namun bisa menampilkan
notifikasi kepada pengguna.
Aplikasi tidak harus sedang berjalan agar Intent Receiver-nya dapat
dipanggil melainkan akan dijalankan oleh sistem operasi.
II-16
2.4.4.3 Komponen Service
Service adalah berupa proses yang hidup untuk waktu
lama tanpa
menggunakan GUI. Sebagai contoh adalah aplikasi media player yang
harus tetap memainkan musik meskipun pengguna telah berpindah ke
screen lain. Sehingga proses memutar musik tidak seharusnya berjalan
sebagai Activity melainkan sebagai Service agar dapat berjalan di
background.
2.4.4.4 Komponen Content Provider
Aplikasi Android dapat menyimpan data dalam berbagai mekanisme
seperti file atau basis data. Content Provider adalah sebuah standar yang
memungkinkan data ini dapat di-share dengan aplikasi lain.
2.4.5
Siklus Hidup Aplikasi Android
Secara umum, setiap aplikasi Android akan berjalan sebagai sebuah proses
tersendiri. Hal yang unik dalam Android adalah bahwa masa hidup (life-time) dari
sebuah proses tidak dikendalikan sepenuhnya oleh aplikasi, namun ditentukan
oleh sistem. Sistem mengendalikan proses dengan pertimbangan aplikasi yang
sedang berjalan, kepentingannya bagi pengguna, dan total memori yang tersedia
dalam sistem [GOO08].
Penggunaan komponen seperti Activity, Service, dan Intent Receiver sangat
berperan dalam menentukan masa hidup dari proses. Cara penggunaan komponen
yang salah dapat menyebabkan proses di-kill oleh sistem biarpun sedang berjalan.
Sistem juga dapat meng-kill proses jika sistem sedang kehabisan memori. Adapun
pertimbangan yang digunakan sistem untuk meng-kill proses adalah dengan
menggunakan hirarki kepentingan (importance hierarchy) yang didasari oleh
komponen yang sedang berjalan dan state komponen tersebut.
Berikut adalah hirarki kepentingan tersebut terurut menurun:
II-17
1. Proses foreground yaitu proses yang dibutuhkan untuk aktivitas yang
sedang dilakukan oleh pengguna.
2. Proses visible yaitu proses dengan komponen Activity yang tampak oleh
pengguna namun tidak sedang berjalan (pause).
3. Proses service yaitu proses dengan komponen Service.
4. Proses background, yaitu proses dengan komponen Activity dan tidak
tampak oleh pengguna (stop).
5. Proses kosong, yaitu proses yang tidak sedang aktif berupa proses yang dicache untuk meningkatkan perfomansi.
Jika terdapat lebih dari satu proses yang dapat di-kill maka sistem akan
menggunakan algoritma Least RecentlyUsed (LRU), yaitu meng-kill proses yang
paling awal digunakan.
2.4.6
Application Programming Interface (API) Android
Berikut adalah beberapa API utama yang akan digunakan dalam Tugas Akhir,
yaitu API untuk manipulasi Graphical User Interface (GUI), akses storage,
manipulasi grafik, akses location-based service, koneksi jaringan, manipulasi
peta, dan security.
2.4.6.1
Graphical User Interface (GUI)
Package android.view menyediakan berbagai kelas-kelas yang akan
digunakan untuk menangani screen, layout, dan interaksinya dengan
pengguna. Package ini terdiri atas:
1. View, sebuah area persegi pada layar yang bisa meng-handle event
click, key, dan lain-lain. View adalah kelas base untuk kebanyakan
komponen GUI.
2. View Group, sebuah container yang berisi beberapa objek View yang
menentukan posisi dan ukuran dari view.
3. Widget, sebuah elemen form seperti text box yang mampu menghandle event.
II-18
4. Drawable, sebuah elemen visual yang di-load ke elemen UI lain
sebagai gambar latar. Kelas ini tidak bisa meng-handle event.
5. Dialog, sebuah window yang memiliki tombol dan memiliki
fungsionalitas sederhana. Dialog tidak tersimpan dalam history stack.
6. Window, sebuah kelas abstrak berisi spesifikasi dari elemen UI
umum seperti look and feel.
Salah satu kelebihan Android adalah GUI aplikasi dapat dirancang melalui
notasi XML. File XML rancangan GUI akan diisi dengan entri yang tagnya adalah kelas-kelas GUI dalam Android.
2.4.6.2 Akses storage
Android menggunakan mekanisme storage yang berbeda dengan sistem
operasi konvensional dimana setiap file dalam Android bersifat private
terhadap aplikasi tersebut. Android menyediakan berbagai mekanisme
untuk menyimpan dan mengakses data dari storage, yaitu:
1. Preferences, sebuah mekanisme untuk menyimpan pasang key
dan value dalam bentuk primitif, biasanya digunakan untuk
menyimpan preferensi atau konfigurasi dari aplikasi.
2. Files, mekanisme untuk menyimpan data dalam bentuk file
pada perangkat Android.
3. Databases, yaitu API dalam package android.database.sqlite
yang berisi dukungan untuk akses ke basis data SQLite, dimana
aplikasi dapat memanfaatkan basis data SQLite yang privat.
4. Content Providers, yaitu komponen opsional agar data dapat
diakses oleh aplikasi lain.
2.4.6.3 Manipulasi grafik
Package android.graphics menyediakan manipulasi grafik low-level seperti
kanvas, point, pewarnaan, dan manipulasi bentuk pada screen.
II-19
2.4.6.4 Manipulasi peta
Package com.google.android.maps menyediakan API untuk
mengakses Google Map.
2.4.6.5 Akses location-based services
Package android.location berisi kelas-kelas untuk mengakses
berbagai layanan berbasis lokasi.
2.4.6.6 Fitur security
Package java.security menyediakan berbagai fitur security seperti
sertifikasi, enkripsi, dan lain-lain.
2.4.6.7 Akses jaringan
Package java.net menyediakan berbagai fungsionalitas terkait jaringan
seperti streaming, socket, HTTP request, dan lain-lain.
Download