Android OS

2.3         Sejarah Android
         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 :
  1. 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.
  1. 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.
  1. 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

Share this

Related Posts

Previous
Next Post »