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
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.
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.
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
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
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
publicprivate key menegement dan certificates.
e. Java Swing
Menyediakan sekumpulan API untuk membangun aplikasi-aplikasi GUI dan model GUI yang diinginkan bisa bermacam-macam.
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 2D3D
Merupakan sekumpulan API untuk membangun grafik-grafik 2D3D 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
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 CC++, 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
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 CC++ terdapat plug-
in CDT CC++ 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:
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
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.
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,
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 userentitas. 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