Android
merupakan sebuah system operasi untuk perangkat mobile berbasis linux yang
mencakup system operasi, middleware dan aplikasi. Android Inc., perusahaan
pendatang baru yang membuat peranti lunak ponsel. menyediakan platform
yang tangguh dan terbuka bagi para pengembang untuk
menciptakan inovasi. Kemudian untuk mengembangkan android Google memberikan
kekuatan ekstrak maka dibentuklah Open Handset Alliance.
Di
dunia ini terdapat dua jenis distributor system operasi android. Pertama yang
mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua
adalah yang benar-benar bebas distribusinya tanpa dukungan langsung Google atau
dikenal sebagai Open Handset Distribution (OHD).
Pada
masa saat ini, kebanyakan vendor-vendor smartphone sudah memproduksi smartphone
berbasis android. Vendor-vendor itu antara lain HTC, SONY, Samsung, LG, dll.
Hal ini karena android adalah system operasi yang open source sehingga bebas
didistribusikan dan dipakai oleh vendor manapun.
Pesatnya pertumbuhan Android Saat ini
android menjadi pesaing utama dari Apple pada system operasi Tablet PC. Hal ini
karena, Android adalah platform yang sangat lengkap baik system operasi,
Aplikasi dan tool pengembangan, Mareket aplikasi android serta dukungan yang
sangat tinggi dari komunitas Open Source di dunia, sehingga android terus
berkembang pesat baik dari segi teknologi maupun dari segi jumlah device yang
ada dunia[1].
2.3.1
Versi
Android
- Android 1.1
- Android 1.5 – Cupcake
- Android 1.6 – Donut
- Android 2.0/2.1 – Éclair
- Android 2.2 - Froyo
- Android 2.3 - Gingerbread
- Android 3.0 – Honeycomb
- Android 4.0 – Ice Cream Sandwich
2.4 Teknologi
Java
Java
adalah suatu teknologi di dunia software Komputer
yang merupakan suatu bahasa pemograman dan juga suatu platform. Java merupakan
bahasa pemograman berorientasi objek yang merupakan paradigma masa depan. Java
dirancang agar dapat dijalankan di semua platform. Sebagai sebuah platform,
java terdiri dari dua bagian utama yaitu Java Virtual Machine (JVM) dan Java
Application Programing Interface (Java API). Java mengkompilasi kode program
Java menjadi Java bytecode melalui compiler java.
Java Virtual Machine Merupakan aplikasi sederhana yang
ditulis dalam bahasa C untuk mengeksekusi program yang ditulis dalam bahasa
Java. Pada saat kompilasi, program tersebut diubah menjadi bytecode. Kemudian
pada saat dieksekusi, JVM membaca kode byte tersebut dan mengubahnya menjadi
bahasa mesin yang dimengerti oleh system operasi tempat program tersebut
dijalankan. Karena JVM sangat bergantung pada platformnya, bytecode ini dapat
dibuat untuk terbebas dari platform tertentu. Bytecode yang dihasilkan dalam
proses kompilasi bahasa java akan selalu sama untuk setiap system operasi atau
jenis mesinnya, tetapi JVM akan mengubah bytecode tersebut menjadi bahasa mesin
tujuannya.
2.4.1 Java
1
Produksi pertama Java, Java Development Kit (JDK) yang digunakan adalah
JDK versi 1.0.2 JDK merupakan sekumpulan program dan library java yang
digunakan untuk menjalankan dan mengembangkan program java. Pada rilis
selanjutnya, yakni Java Runtime Environment (JRE) yang dikhususkan untuk
menjalankan program Java dan Java Development Kit (JDK) yang terdiri atas paket
yang bias digunakan untuk mengkompilasi program dengan bahasa Java, sekaligus
menjalankan.
2.4.2 Java
Android
Bahasa
pemograman yang digunakan untuk membuat aplikasi pada platform Android adalah
Java, namun dengan terminology tersendiri. Berikut adalah beberapa poin yang
membedakan UI pada Java Android :
1.
Pengubahan UI (User Interface) hanya bias dilakukan
melalui thread yang “memiliki” UI tersebut.
2.
Secara default kita akan dipaksa untuk mengikuti model
pembuatan UI ala Android.
3.
Semua XML yang mengatur tiap jenis komponen UI
mempunyai struktur-struktur tersendiri tergantung dari fungsi dari jenis XML
tersebut.
4.
Semua komponen UI yang kita tulis di XML akan di
convert menjadi class yang disebut dengan View, sehingga dapat dikenali oleh
kodingan.
5.
Ketika dari satu UI berpindah ke UI lainnya, kita tidak
bias melakukan passing data melalui contructor, malainkan menggunakan apa yang
disebut dengan Bundle.
6.
View dan Bundle yang dibuat akan ditangkap oleh base
class yang bernama Activity.
2.4.3 Arsitektur
Android
Secara
garis besar Arsitektur Android dapat dijelaskan dan digambarkan sebagai berikut :
1. Application dan Widgets
Application dan Widgets adalah layer dimana kita berhubungan
dengan aplikasi saja.
2. Application Frameworks
Merupakan layer dimana para pembuat aplikasi melakukan
pengembangan/ pembuatan aplikasi yang akan dijalankan di sistem operasi
Android, kerana pada layer inilah aplikasi dapat dirancang dan dibuat.
Komponen-komponen yang termasuk didalam Application Frameworks
adalah sebagai berikut :
·
Views
·
Content Provider
·
Resource Manager
·
Notification Manager
·
Activity Manager
3. Libraries
Libraries
adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi
mengakses libraries untuk menjalankan aplikasinya.
4. Android Runtime
Layer
yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya
menggunakan Implementasi Linux. Didalam Android Runtime dibagi menjadi dua
bagian, yaitu :
- Core Libraries
Aplikasi Android
dibangun dalam bahasa java, sementara Dalvik sebagai virtual mesinnya bukan
virtual Machine Java, sehingga diperlukan sebuah libraries yang berfungsi untuk
menterjemahkan bahasa java/c yang ditangani oleh Core Libraries.
- Dalvik Virtual Machine
Virtual mesin berbasis
register yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisien,
dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan
threading dan manajemen tingkat rendah.
- Linux Kernel
Linux
kernel adalah layer dimana inti dari operating system dari android itu berada.
Berisi file-file system yang mengatur system processing, memory, resource,
drivers, dan system-sistem operasi android lainnya. Linux kernel yang digunakan
pada android adalah linux kernel release 2.6.
Gambar 2.1 Arsitektur Android [3]
2.5 Komponen Aplikasi Android
Komponen utama aplikasi android terdiri
dari empat hal :
1. Activity
Suatu
activity akan menyajikan User Interface (UI), sehingga user dapat melakukan
interaksi. Pada umumnya aplikasi memiliki banyak activity, vatergantung pada
tujuan aplikasi dan desain dari aplikasi tersebut. Satu aplikasi atau yang
bertindak sebagai User Interface (UI) saat aplikasi diperlihatkan kepada user.
Untuk pindah dari satu activity ke activity lain kita dapat melakukannya dengan
satu even, misalkan click tombol, memilih opsi atau menggunakan triggers
tertentu. Tiap Activity merupakan satu class tunggal yang merupakan
perpanjangan daripada class dasar activity.
Import android.app Activity;
// merujuk pada class activity
Import android.os.Bundle;
Public class coba extends Activity {
// class kita, turunan dari class activity
@override
Public void onCreate (Bundle
savedInstanceState) {
Super.onCreate(saveInstanceState);
setContentView(R.layout.main);
//mempersiapkan user interface
}
}
2. Service
Service tidak memiliki Graphic
User Interface (GUI), tetapi service berjalan secara background, sebagai contoh
dalam memainkan music, service mungkin memainkan musik atau mengambil data dari
jaringan , akan tetapi setiap service harus berada dalam kelas induknya.
Aplikasi ini akan memiliki dua atau lebih activity yang
misalnya memungkinkan user untuk memilih lagu sambil menulis sms. Untuk menjaga
musik agar tetap dijalankan,activity player dapat menjalankan service. Service
yang dijalankan pada thread utama dari proses aplikasi
3. Broadcast Receiver
Broadcast receiver berfungsi menerima dan bereaksi untuk
menyampaikan notifikasi. Seperti notifikasi zona berubah waktu, baterai low.
Aplikasi juga dapat menginisiasi broadcast misalnya memberikan informasi pada
aplikasi lain bahwa ada data yang telah diunduh ke perangkat dan siap untuk
digunakan.
4. Content provider
Content provider membuat kumpulan aplikasi data secara
spesifik sehingga bisa digunakan oleh aplikasi lain. Dan disimpan dalam file
system database SQLite. Content provider menyediakan cara untuk mengakses data
yang dibutuhkan oleh suatu activity[3].
2.5.1 Lifecycle aplikasi
Gambar 2.2
Skema Lifecycle Aplikasi [2]
Gambar
diatas merupakan gambaran jalannya activity sebuah proses pada aplikasi kita
(android.com). setiap user interface adalah merupakan perwujudan dari minimal
sebuah activity. Setiap activity memiliki lifecycle sendiri-sendiri.
a. onCreate (Bundle) : method ini akan dipanggil ketika sebuah activity
untuk pertama kali dipanggil. Method akan memanggil satu parameter bias null
atau informasi status terakhir yang telah disimpan oleh method onSaveInstanceState().
b. onStart() : method ini dijalankan ketika sebuah aplikasi
running dibelakang layar.
c. onStop() :
method ini dijalankan ketika aplikasi kita sudah tidak dijalankan dan memang sudah tidak dibutuhkan untuk sementara waktu.
d. onRestart() :
method ini dijalankan ketika sebuah activity di restart dari posisi semula
onStop().
e. onDestroy() :
method ini dijalankan setelah activity aplikasi kita di destroy atau ketika
handset kita kehabisan RAM, secara otomatis aplikasi akan di terminate.
f. onSaveInstanceState() : method ini memungkinkan aplikasi kita
untuk menyimpan tiap status dari activity aplikasi kita.
2.6 The Dalvik Virtual
Machine (DVM)
Salah satu elemen kunci dari Android
adalah Dalvik Virtual Machine (DVM). Android berjalan didalam Dalvik Virtual
Machine (DVM) bukan di Java Virtual Machine (JVM). Android menggunakan Virtual
Machine sendiri yang dikustomisasi dan dirancang untuk memastikan bahwa
beberapa feature-feature berjalan lebih efisien pada perangkat mobile[3].
Dalvik
Virtual Machine (DVM) adalah “registered base” sedangkan Java Virtual Machine
(JVM) adalah “stack base”. Dalvik Virtual Machine (DVM) menggunakan kernel
linux untuk menangani fungsional tingkat rendah termasuk keamanan, threading,
dan proses serta manajemen memori.
Proses
jalannya Dalvik Virtual Machine (DVM) adalah dengan mengkompilasi kode-kode
program dengan compiler java akan di optimasi oleh Dalvik, sebuah virtual mesin
yang memamng di buat khusus untuk menjalankan kode-kode program yang kita buat
dengan bahasa pemograman java yang tentunya terbentuk sebuah class. Kemudian
oleh dex tools (merupakan bagian dari
Dalvik Virtual Machine (DVM) bertugas untuk merubah Java Class yang telah di
compile oleh Java Compiler) akan merubah ke lingkungan native yang
berbentuk *.dex format merupakan file
Dalvik executeable yang teroptimasi untuk lingkungan hardware dengan komputasi
yang rendah *.dex format tersebut dijalankan secara utuh oleh Dalvik Virtual
Machine (DVM)[2].
Gambar 2.3
Eksekusi oleh Dalvik Virtual Machine (DVM) [2]
2.7
Tools
Alat yang dibutuhkan dalam membangun
sebuah aplikasi dengan android yaitu:
·
Java
Development Kit (JDK)
·
IDE
Android (Eclipse + Android Plugin For Eclipse)
·
Software
Development Kit (SDK)
pada dasarnya, hanya dengan menggunakan teks editor biasa
seperti Notepad pada windows atau teks editor lain. Namun akan lebih efisien
jika menggunakan Integrated Development Environment (IDE) eclipse dengan tujuan
:
a)
Mengurangi waktu pembelajaran jika menggunakan eclipse,
karena tidak perlu menulis semua kode.
b)
Google telah menyediakan Android Plugin untuk Eclipse,dimana memudahkan kita membuat kita untuk
membuat, melakukan compile, dan juga telah disediakan emulator Android untuk
memudahkan melakukan running test dan debug pada aplikasi yang kita bangun[2].
2.7.1 Java Development Kit (JDK)
Untuk
dapat memulai suatu aplikasi dengan android diperlukan Java Development Kit
(JDK) akan tetapi, diperlukan juga Java Runtime Environment (JRE) yang berperan
untuk menjalankan aplikasi. Java Runtime Environment (JRE) sudah terdapat
didalam paket JDK. File JDK installer yang digunakan yaitu
jdk-6u24-windows-i586.
2.7.2 IDE Android (Eclipse + Android Plugin For Eclipse)
Eclipse
adalah IDE untuk pengembangan Java, terutama disini adalah Java Android.
Eclipse bersifat free. Eclipse juga dibutuhkan karena didalam membuat aplikasi
kita memerlukan sebuah bantuan plugin eclipse yang beranam Android Development
Tools (ADT). Eclipse yang digunakan adalah eclipse-jee-galileo-win32.
Gambar 2.4 Loading Eclipse Galileo
2.7.3 Android SDK (Software Development Kit)
Android SDK merupakan wadah untuk melakukan
debug, test, dan run program aplikasi. Android SDK starter package belum
merupakan lingkungan pengembangan (development environment). Yang hanya berisi
alat-alat (tools) utama saja. Dengan android SDK starter package inilah
nantinya kita akan mengunduh alat yang lain. Pada SDK selain telah disediakan
paket-paket yang disesuaikan dengan kondisi platform tujuan aplikasi ‘hidup’
juga telah disediakan alat yakni sebuah virtual device tersebut. Virtual device
tersebut telah dikondisikan sesuai dengan target mesin yang dapat ditentukan
dengan memori internal, RAM, dan resolusi.
Gambar 2.5 Virtual Device pada platform Android 2.3
2.7.4 Struktur Project Pada
Eclipse
Gambar 2.6 Struktur Project Android
1.
Folder
Source (/src)
Didalam
folder source terdapat package yang memiliki sebuah main activity. Pada folder
/src ini biasa terdapat lebih dari satu package.
2.
Folder
Android 2.3
Merupakan
kumpulan pustaka yang akan kita gunakan dalam membangun aplikasi kita. Folder
Android 2.3 merupakan representasi daripada pustaka yang berada pada instalasi
Android SDK.
Gambar 2.7
Tree Folder Android 2.3
3.
Folder
Assets (/assets)
Secara
default folder ini kosong. Folder ini digunakan untuk menyimpan file asset raw
(raw files). Raw files tersebut dapat berupa file-file yang dibutuhkan oleh
aplikasi kita, missal file berformat .xml atau file-file SQLite, jika aplikasi
kita menggunakan SQLite dan melakukan penyimpanan database, database tersebut
dapat kita simpan pada folder Assets ini.
4.
Folder
Resources (/res)
Folder
Resource ini merupakan wadah untuk menempatkan beragam format file seperti file
string, audio, gambar.
Gambar 2.8 Subfolder Folder Resources
Penjelasannya
:
a. Drawable-hdpi
Untuk
penyimpanan gambar-gambar yang
terkompilasi yang ditujukan untuk layar beresolusi rendah, contohnya file xml
dan .bitmap yang terkompilasi untuk layar resolusi tinggi.
b. Drawable-ldpi
Untuk
penyimpanan gambar-gambar yang
terkompilasi yang ditujukan untuk layar beresolusi rendah, contohnya file xml
dan .bitmap yang terkompilasi untuk layar
resolusi rendah.
c. Drawable-mdpi
Untuk penyimpanan gambar-gambar yang terkompilasi yang ditujukan untuk
layar beresolusi rendah, contohnya
file xml dan .bitmap yang terkompilasi untuk layar resolusi sedang.
5.
Layout
Berisi
file-file xml yang mendefinisikan tampilan daripada antarmuka/ User Interface
aplikasi kita.
6.
Values
Merupakan
file xml yang berisi nilai-nilai sederhana seperti, colors, integers, strings. Pada folder ini berisi file-file yang
memiliki beragam fungsi. Beberapa nama file standard yang harus dijadikan acuan
untuk dapat disimpan pada folder values seperti :
a. styles.xm
resources yang merepsentasikan styles. Styles.xml disini
hamper sama dengan CSS (Cascading Style Sheet) pada HTML.
b. arrays.xml
file .xml yang digunakan untuk mendeklarasikan sebuah array
seperti array string atau integer.
c. colors.xml
file .xml yang digunakan untuk menyimpan nilai color. Dapat
diakses melalui class R.colors.
d. strings.xml
file .xml yang digunakan untuk menyimpan nilai strings. Dapat
diakses melalui class R.strings.
e. dimens.xml
file .xml yang digunakan untuk mendefinisikan nilai dimens/
dimensi. Dapat diakses melalui class R.dimens.
7.
Folder Gen
Folder gen ini berisi kode Java yang degenerate secara
otomatis oleh ADT (Android Development Tool) plugin for Eclipse. Secara default
kita tidak diperkenankan untuk mengubah isi daripada file java yang ada pada
folder ini.
8.
Android
Manifest
Android manifest terletak pada root directory daripada project
kita. Setiap aplikasi android pasti memiliki file manifest. Android manifest
sendiri merupakan file yang berisi segala informasi penting yang dibutuhkan
oleh aplikasi kita untuk dapat bekerja. File manifest ini juga berisi :
a.
Nama daripada paket java aplikasi kita, yang mana
merupakan identifier unik antara project satu dengan project lainnya.
b.
Komponen aplikasi, seperti activities atau background
service.
c.
Informasi minimum platform yang dapat menjalankan
aplikasi kita
d.
Deklarasi
ijin/permission daripada aplikasi kita.
Gambar 2.9 Android Manifest
a.
Manifest
a.
Version Code
Version code merupakan
representasi versi code kita yang berupa nilai integer, yang membedakan versi
aplikasi kita yang terbaru dengan yang lama.
b. Version Name
Merupakan
nilai string yang merepresentasikan release version dari aplikasi kita.
b.
Permission
Permission
diperlukan apabila aplikasi yang kita buat membutuhkan suatu permission/ijin,
misalnya aplikasi yang membutuhkan akses ke internet.
a. Default Properties
(default.properties)
File default.properties sangat dibutuhkan,
baik oleh ADT ataupun Eclipse sendiri. File ini berisi project setting seperti
tagert platform (OS Android versi apa). Tidak boleh hilang setting yang ada
pada file ini.
2.8
Definisi
Algoritma
Algoritma
merupakan suatu kumpulan perintah yang jelas, tentang langkah-langkah yang
dilaksanakan untuk menjelaskan suatu aktivitas yang terbatas. Ada juga yang
menyatakan algoritma adalah seperangkat langkah yang mendefinisikan bagaimana
suatu pekerjaan dilaksanakan untuk mendapatkan suatu hasil/keluaran yang kita
harapkan.
2.8.1
Diagram
Alur (FlowChart)
Salah
satu cara penyajian algoritma adalah dalam bentuk diagram atau bagan alur
(flowchart). Diagram alur dapat menunjukan secara jelas arus pengendalian
algoritma, yakni bagaimana rangkaian pelaksanaan kegiatan. Suatu diagram alur
member gambaran dua dimensi yang berupa simbol-simbol grafis. Masing-masing
simbol telah ditetapkan terlebih dahulu fungsi dan kegunaannya. Mereka dipakai
untuk menunjukan berbagai kegiatan operasi dan jalur pengendalian. Algoritma
harus memiliki instruksi dasar tertentu dan setiap instruksi harus memiliki
unsur pelaksana yang memproses data masukan. Instruksi dilaksanakan dari atas
ke bawah, kecuali apabila ada ketentuan lain. Instruksi dari sebuah algoritma
dapat memerintahkan komputer agar hanya melaksanakan penugasan yang mampu
dilaksanakannya saja. Berikut
ini komponen- komponen yang
memiliki fungsi dan kegunaan masing-masing :
Tabel 2.1 Komponen Diagram Alur
2.9
Definisi
SQLite
SQLite merupakan fasilitas yang dimiliki
oleh perangkat Android dalam membangun database. SQLite adalah salah satu
software yang embedded yang sangat popular, kombinasi SQL interface dan
penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat.
SQLite di android termasuk dalam android runtime, sehingga setiap versi dari
android dapat membuat database dengan SQLite.
Dalam system android memiliki beberapa
teknik untuk melakukan penyimpanan data.teknik yang umum digunakan adalah
sebagai berikut :
A. Shared Prefences
Menyimpan
data beberapa nilai (value) dalam bentuk groups key yang dikenal dengan
prefences.
B. Files
Menyimpan
data beberapa nilai (value) dalam bentuk groups key yang dikenal dengan
prefences.
C. SQLite Database
Menyimpan data dalam bentuk database.
D. Content Providers
Menyimpan
data dalam bentuk content providers services.
Dalam
penulisan ini menggunakan teknik SQLite Database. Tidak ada database yang
otomatis disediakan oleh android, jika kita menggunakan SQLite kita harus
meng-create database sendiri, mendifinisikan tabelnya, index serta datanya.
Untuk
membuat dan membuka databaseyang paling baik adalah menggunakan libraries import android.database.SQLiteOpenHelper yang
menyediakan tiga metode, yaitu:
a.
Construtor
Menyediakan representasi versi dari database dan skema database yang kita
gunakan.
b.
OnCreate()
Menyediakan SQLiteDAtabase object yang kita gunakan dalam definisi table
dan inisialisai data.
c.
OnUpgrade()
Menyediakan fasilitas konversi database dari database versi yang lama ke
database versi yang baru atau sebaliknya.sumber : cek
EmoticonEmoticon