Upload
vanhuong
View
217
Download
0
Embed Size (px)
Citation preview
5
BAB II
TINJAUAN PUSTAKA
Dalam bab ini akan diuraikan mengenai teori-teori penunjang yang
digunakan dalam visualisasi kecepatan kendaraan menggunakan instant
mesangging berbasis android. Ringkasan dari hasil pembuatan yang sudah
dilakukan terkait dengan topik penelitian ini, dan perbedaan sistem yang akan
dibahas dalam penelitian ini dengan penelitian sebelumnya.
2.1 Tinjauan Mutakhir
Penelitian “Visualisasi Keceptan Kendaraan Menggunakan Instant
Mesangging Berbasis Android” disusun menggunakan acuan beberapa referensi.
Beberapa referensi yang akan digunakan sebagai acuan pengembangan penelitian
ditentukan berdasarkan topik terkait penelitian, metode yang digunakan, dan
algoritma simulasi yang diterapkan dalam penelitian tersebut. Hal ini bertujuan
untuk menentukan batasan-batasan masalah yang akan dibahas lebih lanjut dalam
penelitian ini. Dalam hal ini penulis memilih beberapa referensi sebagai acuan
penelitian serupa yang menggunakan arsitektur sistem, metode, dan alur
pengembangan yang berbeda satu sama lain. Uraian singkat referensi tersebut
adalah sebagai berikut.
1. Perancangan Penunjuk Rute Pada Kendaraan Pribadi Menggunakan Aplikasi
GIS Berbasis android Yang Terintegrasi Pada Google Maps (Tugas Akhir
Hendra Nugraha Lengkong 2015 Jurusan Teknik Elektro- FT, Universitas Sam
Ratulangi, Manado).
Dalam penelitiannya, Hendra menggunakan aplikasi penunjuk rute pada
kendaraan pribadi menggunakan Mobile GIS berbasis android yang terintegrasi
pada Google Maps. Dimana Google Maps diharapkan dapat memenuhi
kebutuhan masyrakat untuk melihat rute penunjuk arah sesuai kebutuhan
pengguna ( user ). Dan dengan menggunakan bantuan Global Positioning
System ( GPS ) yang berfungsi sebagai penunjuk lokasi. Hasil akhir dari
6
penelitian ini adalah berupa apliaksi penanda lokasi peta digital berbasis mobile
GIS pada smartphone android. Aplikasi ini memiliki beberapa fitur utama
seperti inputan data, menampilkan list data tersimpan, menampilkan rute pada
peta, dan membackup dan mengimpor data.
2. Aplikasi Real-Time Tracking Via Instant Messaging Pada Perangkat Mobile
Android ( Tugas akhir I Made Alit Adiwiguna 2013 Jurusan Teknik Elektro
Universitas Udanyana, Bali)
Dalam penelitian Alit, dijelaskan aplikasi Real-Time merupkan aplikasi yang
dibangun untuk dijalankan pada platform android versi 2.2 (Froyo) atau versi
diatasnya yang menggunakan fitur GPS untuk mengetahui posisi dan jalur yang
dilalui pengguna dan pengguna lain yang terhubung melalui aplikasi ini.
Pembuatan aplikasi ini didukung dengan perangakat kunak Eclipse IDE untuk
pemograman Java dan Android SDK. Cara kerja dari aplikasi ini dengan adanya
online server yang dikirim ke pengguna melalui internet. Pengiriman data dari
perangkat smartphone ke online server atau sebaliknya berupa koordinat latitude
dan longitude melalui protocol XMPP. Sedangkan untuk pembuatan antarmuka
dan fungsi-fungsi yang berjalan pada aplikasi digunakan bahasa Java dan UML
untuk android. Hasil uji coba membuktikan bahwa data lokasi latitude dan
longitude yang dikirimkan oleh pengirim melalui google talk, sama dengan data
yang diterima oleh penerima data tersebut.
3. Rancang Bangun Sistem Monitoring Kecepatan Kendaraan Berbasis GPS
dengan SMS sebagai Media Pengiriman Data ( Dony Hendra Lesmana
Desember 2013 Teknik Elektro Universitas Brawijaya, Malang )
Dalam jurnal Dony, menjelaskan sarana transportasi darat yang bermanfaat pada
kehidupan sehari-hari terutama pekerjaan yang menuntut mobilitas.Oleh karena
itu diperlukan suatu system monitoring kecepatan kendaraan secara real-time
untuk menekan angak kecelakaan yang diakibatkan pengendara yang berlaju
kencang. Data posisi kecepatan GPS yang terpasang pada pengendara akan
dikirim secara kontiyu ke PC server melalui fasilitas SMS.Data monitoring
kecepatan berhasil dikirim dengan interval waktu 1 menit melalui SMS dan
7
system penerima berhasil menerima data posisi serta kecepatan sehingga dapat
dijadikan refernsi perilaku pengemudi sehari-hari.
2.2 GPS
GPS merupakan sebuah system navigasi global berbasis satelit yang
dikembangkan oleh Departemen Pertahanan Amerika Serikat. Tetapi karena
system ini adalah yang pertama kali serta satu satunya di dunia yang berfungsi
secara penuh dan dapat digunakan setiap saat oleh semua orang didunia secara
gratis. Sistem ini menggunakan kelompok satelit yang diberi nama NAVSTAR (
Navigation Satelite Timming And Ranging). ( Tanoe, 2009)
2.2.1 Cara Kerja GPS
Sistem ini menggunakan satelit yang berada di orbit bumi, yang
memancarkan sinyalnya ke bumi dan ditangkap oleh sebuah alat penerima. Ada 3
bagian penting dari system ini, yaitu bagian control, bagian angkasa, dan bagian
pengguna ( Tanoe, 2009)
1. Bagian control ( Control segment )
Dilihat dari namanya, bagian ini bertugas sebagai pengontrol.Setiap
satelit dapat berada diluar orbitnya, sehingga bagian ini melacak orbit satelit,
lokasi, ketinggian, dan kecepata.Sinyal-sinyal dari satelit diterima oleh bagian
control, dikoreksi dan dikirimkan kembali ke satelit. Koreksi data lokasi yang
tepat dari satelit ini disebut dengan data ephemeris, yang nantinya akan
dikirimkan kepada alat navigasi kita.
2. Bagian Angkasa ( space segment )
Bagian ini terdiri dari kumpulan satelit-satelit yang berada di orbit
bumi, sekitar 1.200 mil diatas permukaan bumi.Kumpulan satelit satellite ini
diatur sedemikian rupa sehingga alat navigasi setiap saat dapat menerima
paling sedikit sinyal dari empat buah satelit. Sinyal satelit ini dapat melewati
awan, kaca, atau plastic, tetapi tidak dapat melewati gedung atau gunung.
Satelit mempunyai jam atom, dan memancarkan informasi “waktu/jam”. Data
ini dipancarkan dengan kode pseudo-random. Masing-masing satelit
8
memiliki kodenya sendiri-sendiri. Nomor kode ini biasanya akan ditampilkan
dialat navigasi, maka kita biasa melakukan indentifikasi sinyal satelit yang
sedang diterima alat tersebut. Data ini berguna bagi alat navigasi untuk
mengukur koordinat lokasi. Kekuatan sinyal satelit juga akan membantu alat
dalam perhitungan. Kekuatan sinyal ini lebih dipengaruhi oleh lokasi satelit.
Sebuah alat akan menerima sinyal lebih kuat dari satelit yang berada tepat
diatasnya dibandingkan dengan satelit yang berada digaris cakrawala. Ada
dua jenis gelombang yang saat ini dikenal dengan sebutan L1 pada 1575.42
MHz. Sinyal L1 ini yang akan diterima oleh navigasi. Satelit juga
mengeluarkan gelombang L2 pada frekuensi 1227.6 MHz. Gelombang L2 ini
digunakan untuk tujuan militer dan bukan untuk umum.
3. Bagian Pengguna ( user segment )
Bagian ini terdiri dari alat navigasi yang digunakan. Satelit akan
memancarkan data almanac dan ephemeris yang akan diterima oleh alat
navigasi secara teratur. Data almanac berisikan lokasi ( approximate location)
satelit yang dipancarkan terus menerus oleh satelit. Data ephemeris
dipancarkan oleh satelit, dan valid untuk sekitar 4-6 jam. Intuk menunjukkan
koordinat sebuah titik ( dua dimensi ), alat navigasi memerlukan paling
sedikit sinyal 3 buah satelit. Untuk menunjukkan data ketinggian sebuah titik
( tiga dimensi), diperlukan tambahan sinyal dari 1 buah satelit lagi.
Dari sinyal sinyal yang dipancarkan oleh kumpulan satelit tersebut,
alat navigasi akan melakukan perhitungan perhitungan dan hasil akhirnya
adalah koordinat posisi alat, akan membuat alat tersebut menghitung
koordinat posisinya dengan lebih tepat.
2.2.2 Akurasi alat navigasi GPS
Akurasi atau ketepatan perlu mendapat perhatian bagi penentuan koordinat
sebuah titik/lokasi. Koordinat posisi ini akan selalu mempunyai factor kesalahan,
yang lebih dikenal dengan tingkat akurasi. Misalnya, alat tersebut menunjukkan
sebuah titik koordinat dengan akurasi 3 meter, artinya posisi sebenarnya biasa
berada dimana saja dalam radius 3 meter dari titik koordinat ( lokasi) tersebut.
9
Makin kecil angka akurasi, maka posisi alat akan menjadi semakin tepat. Harga
alat juga akan meningkat seiring dengan kenaikan tingkat akurasi yang bias
dicapainya ( Tanoe, 2009 ).
Karena alat navigasi ini bergantung penuh pada satelit, maka sinyal satelit
menjadi sangat penting.Alat navigasi berbasis satelit ini tidak dapat bekerja
maksimal ketika ada gangguan pada sinyal satelit. Ada banyak hal yang dapat
mengurangi kekuatan sinyal satelit :
1. Kondisi geografis, seperti yang diterangkan diatas. Selama kita masih
dapat melihat langit yang cukup luas, alat ini masih dapat berfungsi.
2. Hutan. Makin lebat hutannya, maka makin berkurang sinyal yang dapat
dietrima
3. Air. Jangan berharap dapat menggunakan alat ini ketika menyelam
4. Kaca film mobil, terutama mengandung metal
5. Alat alat elektronik yang dapat mengeluarkan gelombang elektromagnetik
6. Gedung-gedung. Tidak hanya ketika didalam gedung, berada diantara 2
buah gedung tinggi juga akan menyebabkan efek seperti berada di dalam
lembah.
7. Sinyal yang memantul, missal bila berada diantara gedung- gedung tinggi,
dapat mengacaukan perhitungan alat navigasi sehingga alat navigasi dapat
menunjukkan posisi yang salah atau tidak akurat.
2.3 Layanan Berbasis Lokasi
Sistem Layanan Berbasis Lokasi atau lebih dikenal dengan Location-Based
Service (LBS), menggabungkan antara proses dari layanan mobile dengan posisi
geografis dari penggunanya. Poin pentingnya adalah ketika posisi target, dimana
sebuah target bias jadi adalah pengguna LBS. itu sendiri atau entitas lain yang
tergabung dalam suatu layanan. LBS mengarah pada aplikasi palikasi dan layanan
–layanan yang menyediakan informasi lokasi mengenai pengguna mobile untuk
menyediakan sebuah layanan atau informasi khusus kepada pengguna. Teknologi
yang digunakan untuk menemukan lokasi perangkat yang kita gunakan. Dua unsur
LBS adalah
10
a) Location Manager ( API Maps)
Menyediakan tool atau source untuk LBS, Application Program Interface (
API ). Maps menyediakan fasilitas untuk menampilkan maps atau peta
beserta feature-feature lainnya seperti tampilan satelit, street ( jalan),
maupun gabungannya.
b) Location Provider ( API Location )
Menyediakan teknologi pencarian lokasi yang digunakan oleh device atau
perangkat. API Location berhubungan dengan data GPS dan data lokasi real-
time. API Location berada pada paketandroid yaitu dalam paket android
location. Track gerakan atau perpindahan, serta kedekatan dengan lokasi
tertentu dengan mendeteksi perpindahan.
2.4. Penyedian Layanan Berbasis Android
Google maps android API
Pada layanan peta berbabis android, Google Maps android API didasari oleh
rangkaian class sederhana yang dapat d igunakan oleh programmer yang dikemas
dalam bentuk java library. API atau Application Interface merupakan suatu
dokumentasi yang terdiri dari interface, fungsi, kelas, struktur dan sebagainya
untuk membangun sebuah perangakat lunak. Dengan adanya API ini maka
memudahkan programmer untuk membongkar software untuk kemudian
dikembangkan atau diintregrasikan dengan aplikasi lainnya yang memungkinkan
programmer menggunakan system function. Proses ini dikelola melalui operating
system. Keunggulan dari API adalah memungkinkan suatu aplikasi dengan
aplikasi lainnya dapat berhubungan dan berinteraksi.Bahasa pemograman yang
digunakan oleh Google Maps yang terdiri dari HTML, Javascript dan AJAX serta
XML, memungkinkan untuk menampilkan peta Google.
Google juga menyediakan layanan Google Maps API yangmemungkinkan
para pengembang untuk mengintegrasikan Google Maps ke dalam website
masing-masing dengan menambahkan data point sendiri. Dengan menggunakan
Google Maps API, Google Maps dapat ditampilkan pada web eksternal. Agar
aplikasi google maps dapat muncul di website tertentu, diperlukan kode unik yang
11
digenerasikan oleh Google Maps untuk suatu website tertentu, agar server google
maps dapat mengenali. Pada Google Mpas API terdapat 4 jenis pilihan model peta
yang disediakan oleh google diantaranya adalah :
1. ROADMAP, untuk menampilkan peta biasa 2 dimensi
2. SATELITE, untuk menampilkan foto satellite
3. TERRAIN, untuk menunjukkan relief fisik permukaan bumi dan
menunjukkan seberapa tingginya suatu lokasi, contohnya akan
menunjukkan gunung dan sungai
4. HYBRID, akan menunjukkan foto satellite yang diatasnya tergambar
pula apa yang tampil pada ROADMAP ( jalan dan nama kota )
2.5 Sejarah Android
Perjalanan Android dimulai sejak Oktober 2003 ketika 4 orang pakar IT,
Andi Rubin, Rich Minner, Nick Sears dan Chris White mendirikan Android.Inc,
di California US. Visi Android untuk mewujudkan mobile device yang lebih peka
dan mengerti pemiliknya, kemudian menarik raksasa dunia maya Google.Google
kemudian mengakuisisi Android pada Agustus 2005. OS Android dibangun
berbasis platform Linux yang bersifat open source,senada dengan Linux, Android
juga bersifat Open Source. Dengan nama besar Google dan konsep open source
pada OS Android, tidak membutuhkan waktu lama bagi android untuk bersaing
dan menyisihkan Mobile OS lainnya seperti Symbian, Windos Mobile,Blackberry
dan iOS. Kini siapa yang tak kenal Android yang telah menjelma menjadi
penguasa Operating System bagi Smart phone.
2.5.1 Sistem operasi Android
Sistem operasi pada android memiliki 4 lapisan (layer) yang merupakan
komponen sistem android. Setiap lapisan tersebut menghimpun beberapa program
yang mendukung fungsi-fungsi spesifik dari sistem operasi. Dilihat pada gambar :
12
:
Gambar 2.1 Arsitektur system operasi android
1. Linux Kernel
Tumpukan paling bawah pada arsitektur Android ini adalah kernel. Google
menggunakan kernel Linux versi 2.6 untuk membangun sistem Android, yang
mencakup memory management, security setting, power management, dan
beberapa driver hardware. Kernel berperan sebagai abstraction layer antara
hardware dan keseluruhan software. Android dibangun di atas kernel Linux 2.6.
Namun secara keseluruhan android bukanlah linux, 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.
13
2. Android Runtime
Lapisan setelah Kernel Linux adalah 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 dengan paket pustaka yang
telah ada.
3. Libraries
Bertempat di level yang sama dengan Android Runtime adalah Libraries.
Android menyertakan satu set library-library dalam bahasa C/C++ yang
digunakan oleh berbagai komponen yang ada pada sistem Android. Kemampuan
ini dapat diakses oleh programmer melewati Android application framework.
Sebagai contoh Android mendukung pemutaran format audio, video, dan gambar.
Berikut ini beberapa core library tersebut : System C library, diturunkan dari
implementasi standard C system library (libc) milik BSD, dioptimasi untuk piranti
embedded berbasis Linux. Media Libraries, berdasarkan PacketVideo’s
OpenCORE library-library ini mendukun playback dan recording dari berbagai
format audio and video populer, meliputi MPEG4, H.264, MP3, AAC, AMR, JPG,
and PNG. Surface Manager, mengatur akses pada display dan lapisan composites
2D and 3D graphic dari berbagai aplikasi. LibWebCore, web browser engine
modern yang mensupport Android browser maupun embeddable web view. SGL,
the underlying 2D graphics engine. 3D libraries, implementasi berdasarkan
OpenGL ES 1.0 APIs; library ini menggunakan hardware 3D acceleration dan
highly optimized 3D software rasterizer FreeType, bitmap dan vector font
renderingSQLit, relational database engine yang powerful dan ringan tersedia
untuk semua aplikasi. Library-library 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).
14
4. Applications Framework
Lapisan selanjutnya adalah application framework, yang mencakup
program untuk mengatur fungsi-fungsi dasar smartphone. Application Framework
merupakan serangkaian tool dasar seperti alokasi resource smartphone, aplikasi
telepon, pergantian antar – proses atau program, dan pelacakan lokasi fisik
telepon. Para pengembang aplikasi memiliki aplikasi penuh kepada tool-tool dasar
tersebut, dan memanfaatkannya untuk menciptakan aplikasi yang lebih kompleks.
Programmer mendapatkan akses penuh untuk memanfaatkan API (Android
Protocol Interface) yang juga digunakan core applications. Arsitektur aplikasi
didesain untuk menyederhanakan pemakaian kembali komponen-komponen,
setiap aplikasi dapat menunjukkan kemampuannya dan aplikasi lain dapat
memakai kemampuan tersebut. Mekanisme yang sama memungkinkan pengguna
mengganti komponen-komponen yang dikehendaki. Di dalam semua aplikasi
terdapat servis dan sistem yang meliputi satu set Views yang dapat digunakan
untuk membangun aplikasi meliputi lists, grids, text boxes, buttons, dan
embeddable web browser. Content Providers yang memungkinkan aplikasi untuk
mengakses data dari aplikasi lain (misalnya Contacts), atau untuk membagi data
yang dimilikinya. Resource Manager, menyediakan akses ke non-code resources
misalnya localized strings, graphics, dan layout files. Notification Manager yang
memungkinkan semua aplikasi untuk menampilkan custom alerts pada the status
bar. 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 API (Application Programming
Interface) yang sama. Selain komponen sistem diatas android juga memiliki
komponen yang cukup penting yaitu Komponen Aplikasi. Fitur penting android
15
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 main pada
aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang
memungkinkan sistem untuk memanggil dan menjalankan ketika
dibutuhkan.komponen-komponen aplikasi tersebut antara lain :
a. 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
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.
Setiap activity yang berada ditumpukan paling atas, maka dia akan terlihat,
terfokus, dan menerima masukkan dari pengguna. Android akan berusaha untuk
16
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.
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 aktif
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. 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.
b. 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.
c. 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.
17
d. 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, batre
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
dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada
pengguna.
e. 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.5.2 Fitur android
Fitur yang tersedia pada platform android adalah fitur framework aplikasi.
Fitur ini mendukung penggantian komponen dan penggunaan kembali komponen
yang sudah dibuat (reusable). Seperti pada umumnya, framework memiliki
keuntungan dalam proses pengkodingan karena kita tidak perlu membuat
kodingan untuk hal-hal yang pasti dilakukan seperti kodingan menampilkan
gambar, kodingan konek database, dll.
a. Mesin Virtual Dalvik
Lingkungan dimana aplikasi android akan bekerja.
b. Integrated Browser
Berdasarkan Open Source engine WebKit.
c. Grafis
Dengan adanya fitur ini, kita bisa membuat aplikasi grafis 2D dan 3D
karena Android memiliki library OpenGL ES1,0.
18
d. SQlite
Tugas dari fitur ini adalah berperan dalam penyimpanan data.Bahasanya
mudah dimengerti dan merupakan sistem databasenya android.
e. Media Support
Fitur yang mendukung audio, video dan gambar.
f. GSM Telephony
Tidak semua android punya fitur ini karena fitur ini tergantung dari
smartphone yang dimiliki.
g. Bluetooth, EDGE, 3G, WiFi
Fitur ini tidak selalu tersedia pada android karena tergantung Hardware
atau smartphone.Dukungan Perangkat Tambahan Android dapat
memanfaatkan kamera, layar sentuh, accelerometer, magnetometers, GPS,
akselerasi 2D, dan Akselerasi 3D.
h. Multi-Touch
Kemampuan layaknya handset modern yang dapat menggunakan dua jari
atau lebih untuk berinteraksi dengan perangkat.
i. Lingkungan Development
Memiliki fitur emulator, tools, untuk debugging, profil dan kinerja memori
dan plugin untuk IDE Eclipse.
j. Market
Seperti kebanyakan handphone yang memiliki tempat penjualan aplikasi,
Market pada android merupakan katalog aplikasi yang dapat di download
dan di install pada handphone melalui internet.
2.6 Google Play Service
Google Play Services adalah satu wadah yang menjadi tempat dari semua
API untuk android versi 2.2 dan seterusnya. Pada Google Play Services ini
bertugas memberikan update tanpa harus selalu meminta kepada user untuk repot
melakukan sesuatu. Karena control Google Play Services ini ada di tangan
Google, maka mereka punya kendali untuk memberikan update berupa apa saja,
kapan saja, dan kepada siapa saja. KUnci dari fitur utamaadalah dari layanan
19
Google. Ada Google Maps, Gmail, Youtube, Google + dan yang lain. Semua ini
membutuhkan akses ke API tadi. Dengan kondisi API selalu terbuka dan
diberikan langsung ke gadget maka mudah bagi aplikasi untuk mengaksesnya
dengan semua fitur baru tak peduli Android yang ada versi 2.2, 4.0 atau 4.3.
2.7 Java
Java adalah bahasa berorientasi objek yang dapat digunakan untuk
pengembangan aplikasi mandiri, aplikasi berbasis internet, serta aplikasi untuk
perangkat perangkat cerdas yang dapat berkomunikasi lewat internet atau jaringan
komunikasi. Dalam Java ada 2 (dua) jenis program berbeda, yaitu aplikasi dan
applet. Aplikasi adalah program yang biasanya disimpan dan dieksekusi dari
komputer lokal sedangkan applet adalah program yang biasanya disimpan pada
komputer yang jauh, yang dikoneksikan pemakai lewat web browser
Java bukan turunan langsung dari bahasa manapun. OOP (object oriented
programming) adalah cara yang ampuh dalam pengorganisasian dan
pengembangan perangkat lunak (Hendra Nugraha, 2015).
Gambar 2.2 Java
2.7.1 Sejarah Java
Java secara resmi diperkenalkan oleh SUN pada dunia pada tanggal 23 Mei
1995. Sedangkan sejarah pembangunan java sendiri sudah dimulai sejak tahun
1991. Saat itu tim “ Stealth Project “mengadakan pertemuan (brainstorming)
untuk menciptakan suatu system software yang mampu berjalan pada alat-alat
elektronik (small devices). James Gosling berkonsultasi pada ide permbuatan
bahasa pemograman. Pada Juni 1991, muncullah bahasa interpreter “Oak” yang
menjadi cikal bakal dari Java. Kemudian secara resmi pada tahun 1995 Java
20
diperkenalkan bersama browser HotJava, Java pun merambah k dunia web.
Kenyataan ini mungkin agak sedikit berbeda dengan ide pembuatan java pada
awalnya. Internet ternyata membantu membuat Java terkenal seperti sekarang ini.
Memang harus diakui karena semakin berkembangnya Internet, maka focus
pemograman saat ini mengarah ke pemograman Internet itu sendiri. Saat ini Java
dibagi menjadi 3 framework atau teknologi yaitu J2SE untuk pemograman
aplikasi berbasis console dan desktop, kemudian J2EE berskala interprise seperti
aplikasi web-base (JSP dan Sevplet), komponen (EJB), web service dan lain-lain.
Kemudian framework yang terakhir adalah J2ME untuk pemograman small device
seperti handphone dan PDA
2.7.2 Fitur-fiturJava
a. Applet
Program Java yang dapat berjalan di atas browser, yang dapat membuat
halaman HTML lebih interaktif
b. Java Networking
Sekumpulan API yang menyediakan fungsi untuk aplikasi-aplikasi
jaringan, seperti penyediaan akses untuk TCP, UDP, IP Address dan URL.
Tetapi Java Networking tidak menyediakan akses untuk ICMP
dikarenakan alasan sekuriti dan pada kondisi umum hanya administrator
(root) yang bisa memanfaatkan Protokol ICMP.
c. Java Database Connectivity (JDBC)
Menyediakan sekumpulan API yang dapat digunakan untuk mengakses
database seperti Oracle,MySQL,PostgreSQL,Microsoft SQL Server.
d. Java Security
Java Security menyediakan sekumpulan API untuk mengatur security dari
aplikasi Java baik secara High Level datau Low Level, seperti
public/private key menegement dan certificates.
e. Java Swing
Menyediakan sekumpulan API untuk membangun aplikasi-aplikasi GUI
dan model GUI yang diinginkan bisa bermacam-macam.
21
f. Java RMI
Java RMI menyediakan sekumpulan API untuk membangun aplikasi-
aplikasi Java yang mirip dengan model RPC (remote Procedure Call), jadi
objek-objek Java bisa di call secara remote di Jaringan Komputer.
g. Java 2D/3D
Merupakan sekumpulan API untuk membangun grafik-grafik 2D/3D yang
menarik dan juga akses ke printer.
h. Java Server Pages (JSP)
Berkembang dari Java Servlet yang digunakan untuk menggantikan
aplikasi-aplikasi CGI.JSP yang mirip ASP dan PHP merupakan alternatif
terbaik untuk solusi aplikasi internet.
i. JNI (Java Native Interface)
Merupakan sekumpulan API yang digunakan untuk mengakses fungsi-
fungsi pada library (*.dll atau *.so) yang dibuat dengan bahasa
pemrograman yang lain seperti C, C++, dan Basic.
j. Java Sound
Menyediakan kumpulan API untuk manipulasi Sound.
k. Java IDL + CORBA
Menyediakan dukungan Java untuk implementasi CORBA (Common
Object Request Broker) yang merupakan model distributed-Object untuk
solusi aplikasi besar di dunia Networking.
l. Java Card
Java Card utamanya dipakai untuk aplikasi-aplikasi pada smart card, yang
sederhana wujudnya seperti SIM Card pada Handphone.
m. JTAPI (Java Telephony API)
Sekumpulan API untuk memanfaatkan devices-devices telephony,
sehingga cocok untuk aplikasi-aplikasi CTI (Computer Telephony
Integration) yang dibutuhkan seperti ACD (Automatic Call Distribution)
PCPBX dan lainnya.
n. Aplikasi Bahasa Java
1. Pemrograman jaringan
22
2. Pembuatan aplikasi berbasis windows
3. Program untuk membuat web
2.7.3 Eclips IDE (Integrated Development Environment)
Eclipse IDE adalah sebuah IDE (Development Environment) untuk
mengembangkan perangkat lunak dan dapat dijalankan di semua platform
(platform independent). Eclipse pada ini merupakan salah satu IDE favorit
dikarenakan gratis dan opensource, yang berarti setiap orang boleh melihat kode
pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang
membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh
pengguna dengan komponen yang dinamakan plug-in (Hendra Nugraha, 2015).
Berikut ini adalah sifat dari Eclipse:
Multi-platform: Target sistem operasi Eclipse adalah Microsoft
Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.
Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java,
akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa
pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain
sebagainya.
Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun
bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak,
seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain
sebagainya.
Eclipse pada dasarnya merupakan sebuah kernel, yang mengangkat plug-in.
Apa yang dapat digunakan di dalam Eclipse sebenarnya adalah fungsi dari plug-
inyang sudah diinstal. Ini merupakan basis dari Eclipse yang dinamakan Rich
Client Platform (RCP). Berikut ini adalah komponen yang membentuk RCP:
Core platform
OSGi
SWT (Standard Widget Toolkit)
JFace
Eclipse Workbench
23
Secara standar Eclipse selalu dilengkapi dengan JDT (Java Development
Tools), plug-in yang membuat Eclipse kompatibel untuk mengembangkan
program Java, dan PDE (Plug-in Development Environment) untuk
mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan
dalam bahasa pemrograman Java.
Konsep Eclipse adalah IDE yang terbuka (open), mudah diperluas
(extensible) untuk apa saja, dan tidak untuk sesuatu yang spesifik, Jadi, Eclipse
tidak saja untuk mengembangkan program Java, akan tetapi dapat digunakan
untuk berbagai macam keperluan, cukup dengan menginstal plug-in yang
dibutuhkan. Apabila ingin mengembangkan program C/C++ terdapat plug-
in CDT (C/C++ Development Tools). Selain itu, pengembangan secara visual
bukan hal yang tidak mungkin oleh Eclipse, plug-inUML2 tersedia untuk
membuat diagram UML. Dengan menggunakan PDE setiap orang bisa
membuat plug-in sesuai dengan keinginannya. Salah satu situs yang
menawarkanplug-in secara gratis seperti Eclipse downloads by project.
2.8 ADT Plugin for Eclipse
Android Development Tools (ADT) adalah plugin untuk IDE eclipse yang
didesign powerfull untuk pengembangan aplikasi Android.Developing Android di
eclipse sangat direkomendasikan karena banyak kemudahan sebagai tools
terintegrasi seperti custom XML editor, debuging dan banyak hal-hal lain yang
mempercepat pembuatan aplikasi ( Faren,2010).
ADT (Android Developer Tools) adalah plugin untuk Eclipse yang
menyediakan seperangkat alat yang terintegrasi dengan Eclipse IDE.Hal ini
menawarkan akses ke banyak fitur yang membantu Anda mengembangkan
aplikasi android. ADT menyediakan akses GUI untuk banyak alat-alat SDK baris
perintah serta alat desain UI untuk prototyping cepat, merancang, dan membangun
antarmuka pengguna aplikasi Anda.
ADT menyediakan kustom, bentuk berbasis XML editor berikut:
24
a. Grafis Layout Editor
Mengedit dan mendesain tata letak XML file dengan drag dan drop
antarmuka. The layout editor membuat antarmuka Anda juga, menawarkan
preview seperti yang Anda desain layout Anda. Editor ini dipanggil ketika
Anda membuka file XML dengan pandangan menyatakan (biasanya
dinyatakan dalam res / layout. Untuk informasi lebih lanjut, lihat grafis
Layout Editor.
b. Android Manifest Editor
Mengedit Android memanifestasikan dengan antarmuka grafis sederhana.
Editor ini dipanggil ketika Anda membuka file AndroidManifest.xml.
c. Menu Editor
Kelompok menu edit dan item dengan antarmuka grafis sederhana. Editor
ini dipanggil ketika Anda membuka file XML dengan <menu> menyatakan
(biasanya terletak di folder res / menu).
d. Sumber Editor
Mengedit sumber dengan antarmuka grafis sederhana. Editor ini dipanggil
ketika Anda membuka file XML dengan <sumber> tag diumumkan.
e. XML Editor Sumber Daya
Mengedit sumber XML dengan antarmuka grafis sederhana. Editor ini
dipanggil ketika Anda membuka file XML.
f. Sumber daya yang menghubungkan perangkat tambahan
Selain fitur pengeditan kode normal Eclipse, ADT memberikan tambahan
pengalaman pengembangan Android yang memungkinkan Anda untuk cepat
melompat ke deklarasi berbagai jenis sumber daya seperti string atau file tata
letak.
2.9 Protokol XMPP ( Extensible Messaging and Presence Protocol )
Messaging dan presence Extensible Protocol ( XMPP ) adalah sebuah
teknologi terbuka untuk real-time komunikasi,menggunkan Extensible Markup
Language ( XML ) sebagai format dasar untuk bertukar informasi. Pada intinya
XMPP menyediakan cara untuk mengirim potongan-potongan kecil XML dari
25
satu entitas ke yang lain dalam mendekati real time. XMPP digunakan dalam
berbagai aplikasi dan itu mungkin tepat untuk aplikasi yang digunakan. Layanan
tersebut didefinisikan dalam dua spesifikasi utama diterbitkan oleh Internet Task
Force ( IETF ) dan puluhan spesifikasi ekstensi diterbitkan oleh XMPP standar
yayasan di aplikasi perangkat lunak yang program dan scenario penyebarannya
menjadi kepentingan bersama untuk individu dan organisasi, meskipun layanan
inti memungkinkan anda untuk membangun banyak aplikasi lainnya (
Oreilly,2009)
Gambar 2.3 XMPP Protokol
Karakteristik XMPP
1. Desentralisasi Arsitektur
Implementasi protokol XMPP merupakan teknologi dengan jaringan
client-server yang terdesentralisasi. Jaringan ini mirip dengan jaringan email,
dimana paket data dapat diteruskan kepada server XMPP lain yang menjadi
tujuannya. Kita dapat saja membuat jaringan XMPP dan kemudian membuat
saluran komunikasi dengan server Instant Messaging seperti Google Talk, Yahoo
Mesengger dan chat facebook. Instant Messaging sekarang memang kebanyakan
menggunakan protokol ini untuk saling komunikasi.
26
Gambar 2.4 Desentralisasi Server
2 JabberID
Penamaan address entitas pada jaringan XMPP menggunakan layanan
DNS. Dengan memakai DNS akan sangat memudahkan untuk menghafal seluruh
entitas-entitas yang terhubung, daripada mengingat satu-persatu IP address pada
setiap entitas. Tiap entitas pasti memiliki sebuah ID yang unik yang dikenal
dengan istilah JabberID atau disingkat dengan JID. JabberID ini terbagi menjadi
tiga bagian: local part,domain dan resource.
Gambar 2.5 Jaringan XMP
3. Core Protokol
Core protokol XMPP hanya mentransmisi aliran data dalam format XML.
Terdapat tiga jenis aliran XML yang ditransmisikan, antara lain message,
presence, dan info query atau lebih dikenal dengan IQ. Jenis pertama message,
27
merupakan general paket XMPP berisi informasi yang dikirim dari satu entitas ke
entitas lainnya. Pengiriman paket ini bersifat fire and forget, artinya entitas
pengirim tidak akan mendapatkan result dari paket message yang telah dia
kirimkan. Selain itu juga message ini dikirimkan dari dan ke one-to-one entitas
atau one-to-many. Jenis yang kedua adalah presence, dikirimkan dengan tujuan
availability kehadiran entitas yang terhubung dalam jaringan.Kita dapat
mengetahui status online atau offline dari setiap entitas karena adanya aliran data
presence ini.Tidak seperti message, presence dikirimkan ke semua entitas
(broadcast) yang sudah “subscribe” ke entitas tersebut.Terakhir, jenis yang ketiga
adalah IQ, digunakan untuk mekanisme request-response antar entitas dalam
jaringan XMPP. Mirip dengan metode GET dan POST pada protokol HTTP.
Terdapat sebuah entitas yang mengirimkan request ke entitas lain, dan akan
menerima response balasan dari entitas tersebut.
Gambar 2.6 Aliran XML
4. Server XMPP
Pada jaringan XMPP, tidak semua operasi dilakukan oleh server.Tugas
server hanya terbatas pada meneruskan aliran data, mencatat status kehadiran
entitas dan mengatur roster (subscribing user/entitas). Pemprosesan setiap paket
akan dilakukan sendiri oleh masing-masing entitas. Dalam beberapa kasus bahkan
kita tidak memerlukan operasi tambahan di server.Kita hanya membutuhkan core
protokol dan server XMPP bekerja sebagaimana mestinya. Semua operasi dan
proses dilakukan oleh aplikasi client yang kita bangun. Kasusnya seperti pada
28
game sederhana “Tankar” ini. Game ini merupakan game multi player yang juga
memanfaatkan core protokol XMPP untuk bertukar data dan berkomunikasi antar
pemainnya. Semua proses sepenuhnya ada pada aplikasi client yang di jalankan
independent pada masing-masing player. Tidak ada spesifik server, karena aliran
data akan berjalan melewati server-server XMPP yang sudah ada.
5. Payload
Setiap child element dari aliran XML yang ditransmisi merupakan payload
data aplikasi. Kalau dalam ilmu komunikasi dan informasi, payload yang saya
maksudkan disini, sekumpulan data seperti data buku, event, atau informasi
apapun yang nantinya akan di proses oleh aplikasi yang kita bangun. Ketiga jenis
aliran XML yang sudah saya sebutkan diatas (message, presence, dan IQ), dapat
membawa data-data informasi untuk sistem aplikasi.
6. Extensions Protokol
Komunitas XMPP telah membuat banyak sekali extensions yang dapat kita
manfaatkan untuk build sistem aplikasi. Extensions disini bukanlah library,
module atau add-ons. Bisa dibilang extension ini merupakan kekuatan utama
protokol XMPP.
X dari singkatan XMPP merupakan “extensible”.Merupakan sifat yang
dimiliki oleh core protokol XMPP. Istilah extensible menurut saya berkenaan
dengan sifat core protokol XMPP untuk membawa data (payload) yang telah kita
definisikan untuk membangun berbagai macam sistem aplikasi yang berbeda.
Sistem aplikasi mulai dari content syndication, push notification, lightweight
middleware and web services, whiteboarding, multimedia session negotiation,
intelligent workflows, geolocation, social gaming, social networking dan bahkan
cloud computing.
Dari sifat “extensible” ini kemudian terdapat sebuah istilah extensions yang
berarti proses dan payload data yang sudah developer rancang untuk tujuan
tertentu. Setiap developer dapat merancang atau membangun extensions-nya
sendiri. Sehingga akan sangat banyak sekali extensions yang akan dapat kita
temukan. Tapi terdapat juga extensions standar yang diatur oleh XSF (XMPP
Standart Foundations). Extensions standar ini kemudian di kenal dengan istilah
29
XEP (XMPP Extension Protocol). Berikut adalah extensions standar yang paling
sering digunakan oleh para developer untuk membangun sistem aplikasi:
Multi User Chat (MUC)
Publish-subscribe
Bidirectional-streams Over Synchronous HTTP (BOSH)
7. Keamanan Protocol
XMPP support TLS (Transport Layer Security) yang juga merupakan
protokol kembaran dari SSL, digunakan untuk menangani keamanan data yang
ditransmisikan melalui jaringan XMPP. Integrasi XMPP dengan TLS ini diatur
pada sebuah extensions yaitu XEP-0290.
Gambar 2.7 Enkripsi Paket
2.10 Metode Black Box Testing
Black-box testing adalah metode pengujian perangkat lunak yang tes
fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja.
Pengetahuan khusus dari kode aplikasi / struktur internal dan pengetahuan
pemrograman pada umumnya tidak diperlukan. Uji kasus dibangun di sekitar
spesifikasi dan persyaratan, yakni, aplikasi apa yang seharusnya dilakukan.
Menggunakan deskripsi eksternal perangkat lunak, termasuk spesifikasi,
persyaratan, dan desain untuk menurunkan uji kasus. Tes ini dapat menjadi
fungsional atau non-fungsional, meskipun biasanya fungsional. Perancang uji
memilih input yang valid dan tidak valid dan menentukan output yang benar.
Tidak ada pengetahuan tentang struktur internal benda uji itu. Metode uji dapat
diterapkan pada semua tingkat pengujian perangkat lunak: unit, integrasi,
30
fungsional, sistem dan penerimaan. Ini biasanya terdiri dari kebanyakan jika tidak
semua pengujian pada tingkat yang lebih tinggi, tetapi juga bisa mendominasi unit
testing juga. Metode uji coba blackbox memfokuskan pada keperluan fungsional
dari software. Karena itu uji coba blackbox memungkinkan pengembang software
untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat
fungsional suatu program.Uji coba blackbox berusaha untuk menemukan
kesalahan dalam beberapa kategori, diantaranya :
1. Fungsi-fungsi yang salah atau hilang
2. Kesalahan interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan performa
5. kesalahan inisialisasi dan terminasi
Berbeda dengan pengujian white box, pengujian black box cenderung
diaplikasikan selama tahap akhir pengujian. Pengujian black box harus dapat
menjawab pertanyaan sebagai berikut :
a. Bagaimana validitas fungsional diuji
b. Kelas input apa yang akan membuat kasus pengujian menjadi lebih baik
c. Apakah system akan sangat sensitive terhadap harga input tertentu
d. Bagaimana batasan dari suatu data diisolasi
e. Kecepatan data apa dan volume data apa yang akan ditoleransi oleh
System
f. Apa pengaruh kombinasi tertentu dari data terhadap system operasi