Java 2 Standard Edition J2SE, adalah inti dari bahasa Java 2 Enterprise Edition J2EE, merupakan superset dari J2SE Linux Kernel Android Runtime

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