Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
memungkinkan pemakai untuk menjalankan program Java, hanya menjalankan, tidak untuk membuat kode baru lagi. JRE berisi JVM dan
library Java yang digunakan. Eko, 2006
2.2.2 Java 2
Sun Microsystems telah mendefinisikan tiga buah edisi dari Java 2,
yaitu sebagai berikut :
a. Java 2 Standard Edition J2SE, adalah inti dari bahasa
pemrograman Java. JDK merupakan salah satu tool dari J2SE untuk mengkompilasi dan menjalankan program Java. Di dalamnya terdapat
tool untuk mengkompilasi program Java dan JRE. J2SE ini digunakan
pada perangkat keras seperti komputer desktop.
b. Java 2 Enterprise Edition J2EE, merupakan superset dari J2SE
yang memperbolehkan kita untuk mengembangkan aplikasi-aplikasi berskala besar enterprise karena dijalankan pada jaringan komputer.
c. Java 2 Micro Edition J2ME, merupakan subset dari J2SE yang
digunakan untuk menangani pemrograman di dalam perangkat- perangkat kecil, yang tidak memungkinkan untuk mendukung
implementasi J2SE secara penuh. Paket J2ME digunakan pada perangkat yang memiliki memory kecil seperti ponsel, pager atau
PDA. Masing-masing kategori di atas mengimplementasikan Java Virtual
Machine JVM yang berbeda-beda sesuai dengan kemampuan yang dimiliki oleh platform yang menjadi tempat aplikasi
tersebut diimplementasikan. Eko, 2006
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
2.2.3 Konsep
Java Sebagai Object Oriented Program
Java merupakan bahasa pemrograman berorientasi objek. Pada bagian ini
akan dibahas konsep – konsep penting dalam pemrograman berorientasi objek.
A. Objek
Pada dasarnya semua benda yang ada di dunia nyata dapat dianggap sebagai sebuah objek. Ada dua karakteristik utama sebuah objek, yaitu :
1. Setiap objek memiliki atribut sebagai status yang disebut state. 2. Setiap objek memiliki tingkah laku yang disebut behavior.
Contoh : motor 3. Motor memiliki atribut state : roda, jeruji dan warna.
4. Motor memiliki tingkah laku behavior : kecepatan dan perpindahan gigi.
B. Class
Class merupakan prototype yang mendefinisikan variabel–variabel
dan method-method secara umum. Class tidak sama dengan objek, objek pada sisi lain merupakan instansiasi dari suatu kelas. Contoh suatu class
sederhana : Public class ContohKelas {
body class }
C. Enkapsulasi Pembungkusan
Enkapsulasi merupakan bungkusan pelindung program dan data yang sedang diolah. Pembungkusan ini mendefinisikan program dan data yang
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
sedang diolah agar tidak diakses sembarangan oleh program lain. Manfaat dari enkapsulasi antara lain:
1. Kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain.
2. Dapat menentukan hak akses sebuah variabel atau method dari objek, dengan demikian bisa menyembunyikan informasi yang
tidak perlu diketahui objek lain.
D. Inheritance Pewarisan
Inheritance merupakan pewarisan atribut dan method pada sebuah
class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap
subclass akan mewarisi state variabel dan behavior method dari
superclass -nya. Subclass dapat menambahkan state dan behavior baru
secara spesifik dan dapat pula memodifikasi state dan behavior yang diturunkan oleh superclass-nya.
Manfaat dari inheritance adalah sebagai berikut: 1. Subclass menyediakan state atau behaviour secara spesifik
yang membedakannya
dengan superclass
, hal
ini memungkinkan untuk menggunakan ulang source code dari
superclass yang telah ada.
2. Dapat mendefinisikan superclass khusus yang bersifat generik, yang
disebut abstract
class ,
yang berfungsi
untuk mendefinisikan class dengan behaviour dan state secara umum.
Ada beberapa istilah dalam inheritance yang perlu diperhatikan, diantaranya sebagai berikut:
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
a. Extends : keyword ini ditambahkan pada definisi class yang menjadi subclass.
b. Superclass : digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass.
c. Subclass : class anak atau turunan secara hirarki dari superclass
. d. Superclass: keyword ini digunakan untuk memanggil
konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.
e. Method Overriding
: mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter
yang diperlukan dalam subclass. f. Method Overloading : mendefinisikan method yang memiliki
nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama.
E. Polimorfisme
Polimorfisme merupakan kemampuan dari suatu variabel referensi
objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus
dipenuhi agar polimorfisme dapat diterapkan adalah : a. Method yang dipanggil harus melalui variable dari basis class yaitu
superclass b. Method yang dipanggil juga harus menjadi method dari basis class.
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
c. Signature method harus sama baik pada superclass maupun subclass
. d. Method access attribute pada subclass tidak boleh lebih terbatas
dari basis class. Eko, 2006
2.3 Android
2.3.1 Sejarah Android
Pada tahun 2005 Google mengakuisisi Android Inc yang pada saat itu dimotori oleh Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Yang
kemudian pada tahun itu juga memulai membangun platform Android secara intensif.
Kemudian pada tanggal 12 November 2007 Google bersama Open Handset Alliance OHA
yaitu konsorsium perangkat mobile terbuka, merilis Google Android SDK, setelah mengumumkannya seminggu sebelumnya. Dan
sambutanya sangat luar biasa, hampir semua media berita tentang IT dan Programming
memberitakan tentang dirilisnya Android SDK Software Development Kit
.
Gambar 2.1 Android Timeline
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
Google bersama dengan OHA merilis paket software SDK yang lengkap unttuk mengembangkan aplikasi pada perangkat mobile yaitu : Sistem operasi,
Middleware dan aplikasi utama untuk perangkat mobile. Sebagai Programmer
dan Developer bisa melakukan segalanya, mulai dari membuat aplikasi pengiriman SMS hanya dengan dua baris kode, hingga mengganti event pada
Home Screen perangkat Android. Selain itu, bahkan dengan mudah bisa membuat
dan mengkustomisasi Sistem Operasinya, atau mengganti semua aplikasi default dari Google.p
Gambar 2.2 Logo Android Semua aplikasi yang dibuat untuk Android akan memiliki akses yang
setara dalam mengakses seluruh kemampuan handset, tanpa membedakan apakah itu merupakan aplikasi inti atau aplikasi pihak ketiga. Dalam kata lain dengan
platform Android ini, Programmer dan Developer secara penuh akan bisa
mengkustomisasi perangkat androidnya. Android built in pada Linux Kernel Open Linux Kernel, dengan sebuah
mesin virtual yang telah didesain dan untuk mengoptimalkan penggunan sumber daya memori dan hardware pada lingkungan perangkat mobile. Dalvik adalah
nama dari Android Virtual Machine, yang merupakan interpreter virtual mesin yang akan mengeksekusi file kedalam format Dalvik Executeable.dex. sebuah
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
format yang telah dirancang untuk ruang penyimpanan yang efisien dan eksekusi memori yang terpetakan.
Dalvik Virtual Machine Dalvik VM berbasis register, dan dapat
mengeksekusi kelas yang telah terkompilasi pada compiler bahasa Java, kemudian di transformasikan ke dalam native format dengan menggunakan tool
“dx” yang telah terintegrasi. Mungkin telah mengenal JavaVM Java Virtual Machines
, yang saat ini bisa ditemukan pada setiap komputer desktop. Berbeda dengan DalvikVM, JavaVM berbasis stack. DalvikVM memiliki keunggulan
dengan menggunakan Registered Based, ini karena pada prosesor perangkat genggam telah dioptimasi untuk eksekusi berbasis register.
Android saat ini tidak hanya berjalan pada handphone, beberapa vendor menanamkan Android pada Tablet, Internet Tablet, E-Book Reader, Laptop, dan
gadget lainnya. Dengan begitu akan sangat berharga sekali mempelajari platform
ini, dengan arsitekturnya yang terbuka, maka platform ini Android adalah platform mobile
masa depan. Sumber dari : Safaat , Nazaruddin, 2011
2.3.2 Pengenalan Sistem Operasi Android
Android merupakan sebuah system operasi terbuka yang diperuntukan untuk perangkat bergerak Mobile device. Dikembangkan oleh Open Handset
Alliance yang terdiri dari pengembang software, hardware dan provider seperti
Google , HTC, Intel, Motorola, Qualcomm, T-Mobile, dan NVIDIA yang
bertujuan membuat sebuah standar terbuka untuk perangkat bergerak mobile device
. Pada Juli 2005 android telah diakuisisi oleh google dan pada 5 November 2007 barulah secara resmi Android di rilis oleh Google. Dalam
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
pengembangan aplikasi android menyediakan Android SDK yang menyediakan tools
dan API untuk para pengembang aplikasi dengan platform android. Android menggunakan java sebagai bahasa pemogramannya.
Di bawah ini adalah Features yang terdapat pada android: a. Application Framework yang memungkinkan penggunaan
dan penghapusan komponen yang tersedia b. Dalvik Virtual Machine, yaitu mesin virtual yang
dioptimalkan untuk perangkat mobile. c. Integrated browser based on the open source WebKit engine
d. Graphic Library, yang mendukung grafik 2D dan 3D berdasarkan OpenGLLibrary.
e. SQLite untuk penyimpanan struktur data f. Media Supported, yang mendukung beberapa media seperti:
audio, video , dan berbagai format gambar MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF .
g. Hardware Independent
, mendukung GSM, Bluetooth, EDGE, 3G, Wifi,
kamera, Global Positioning SystemGPS, kompas, dan accelerometer.
h. Rich development environment mencakup perangkat emulator
, tools untuk debug, memory dan permormance profiling
serta plugin untuk Eclipse IDE. Safaat , Nazaruddin, 2011
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
2.3.2.1 Arsitektur Sistem Operasi Android
Ada 4 dasar yang harus dipahami dalam membangun aplikasi berbasis android:
a. Activity, adalah tampilan grafis yang terlihat ketika menjalankan sebuah aplikasi, aplikasi dapat memiliki lebih dari
satu Activity. b. Intent, adalah serangkaian value yang menunjukan apa yang
harus dilakukan ketika terjadi perpindahan layar. c. Service, adalah layanan yang bekerja di Backend.
d. Content provider, memungkinkan sebuah aplikasi untuk dapat menyimpan dan menerima data dari database.
Google mengibaratkan Android sebagai sebuah tumpukan
software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi.
Berikut ini susunan dari lapisan – lapisan tersebut jika di lihat dari lapisan dasar hingga lapisan teratas :
a. 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 sebaagai abstraction layer
antara hardware dan keseluruhan software. Sebaga contoh, HTC GI dilengkapi dengan kamera. Kernel Android terdapat driver
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
kamera yang memungkinkan pengguna mengirimkan perintah kepada hardware kamera.
b. Android Runtime
Lapisan setelah Kernel Linux adalah Android Runtime. Android Runtime ini berisi Core Libraries dan Dalvik Viirtual
Machine .
Core Libraries mencakup serangkaian inti library Java,
artinya Android menyertakan satu set library-library dasar yang menyediakan sebagian besar fungsi-fungsi yang ada pada library-
library dasar bahasa pemrograman Java. Dalvik
adalah Java Virtual Machine yang member kekuatan pada sistem Android. Dalvik VM ini di optimalkan untuk telepon
seluler. Setiap aplikasi yang berjalan pada Android berjalan pada processnya sendiri, dengan instance dari Dalvik Virtual Machine.
Dalvik telah dibuat sehingga sebuah piranti yang memakainya
dapat menjalankan multi Virtual Machine dengan efisien. Dalvik VM dapat mengeksekusi file dengan format Dalvik Executable
.dex yang telah dioptimasi untuk menggunakan minimal memory footprint
. Virtual Machine ini register-based, dan menjalankan class
-class yang decompile menggunakan compiler Java yang kemudian ditransformasi menjadi format .dex menggunakan dx
tool yang telah disertakan. Dalvik Virtual Machine VM
menggunakan kernel Linux untuk menjalankan fungsi-fungsi seperti threading dan low-level memory management.
Hak Cipta © 2007 UPN Veteran Jatim Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
c. Libraries