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.