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 realtime. 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.
memungkinkan
Sebaliknya, sistem
aplikasi
untuk
memiliki
memanggil
komponen dan
penting
menjalankan
yang 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 aplikasiaplikasi 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 fungsifungsi 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 pluginyang 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 plugin 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:
7.
Multi User Chat (MUC)
Publish-subscribe
Bidirectional-streams Over Synchronous HTTP (BOSH)
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