bab 2 landasan teori - library.binus.ac.idlibrary.binus.ac.id/ecolls/ethesisdoc/bab2/2012-1-00267-if...
TRANSCRIPT
6
BAB 2
LANDASAN TEORI
Teori Umum
2.1 Perangkat Lunak
Menurut Roger Pressman dalam bukunya Software Engineering a
Practitioner’s Approach ( 2010, p13 ) perangkat lunak adalah teknologi yang
berlapis. Setiap pendekatan rekayasa perangkat lunak harus berakhir pada
komitmen organisasi ke kualitas. Manajemen mutu total, six sigma, dan filosofi
yang sama mengembangkan budaya proses perbaikan berkesinambungan, dan
budaya ini akhirnya mengarah pada pengembangan pendekatan yang semakin
efektif untuk rekayasa perangkat lunak. Landasan yang mendukung software
engineering adalah fokus kualitas.
Menurut Pressman ( 2010, p13 ), komponen metodologi pengembangan
perangkat lunak dapat dibagi dalam tiga unit, yaitu :
• Proses
Proses rekayasa perangkat lunak adalah lem yang memegang lapisan
teknologi bersama dan memungkinkan pengembangan rasional dan tepat
waktu dari perangkat lunak komputer. Proses mendefinisikan kerangka
kerja untuk satu set area proses kunci yang harus dibentuk untuk
pengiriman yang efektif dari teknologi rekayasa perangkat lunak. Bidang
utama membentuk dasar bagi kontrol manajemen proyek perangkat lunak
dan menetapkan konteks dimana metode teknis telah diterapkan, produk
7
kerja telah dihasilkan, milestone telah dibangun, kualitas dijamin, dan
perubahan dikelola dengan baik.
• Metode
Metode rekayasa perangkat lunak memberikan teknik bagaimana
membangun perangkat lunak. Metode mencakup array yang luas dari
tugas-tugas yang mencakup analisis kebutuhan, desain, konstruksi
program, pengujian dan dukungan, rekayasa perangkat lunak relay
metode pada serangkaian prinsip dasar yang mengatur setiap area
teknologi dan termasuk aktivitas pemodelan dan teknik deskriptif lain.
• Peralatan
Alat rekayasa perangkat lunak memberikan dukungan otomatis atau
semi-otomatis untuk proses atau metode. Ketika alat terintegrasi sehingga
informasi yang dibuat oleh satu alat yang dapat digunakan oleh yang lain,
sebuah sistem untuk mendukung pengembangan perangkat lunak, yang
disebut Computer-Aided Software Engineering didirikan. CASE
menggabungkan software, hardware, dan database software engineering
untuk membuat lingkungan rekayasa perangkat lunak untuk analog CAD
/ CAE ( Computer-Aided Design / Engineering ) untuk hardware.
Gambar 2.1 Software Engineering Layers (Pressman, 2010, p14)
8
2.1.1 Waterfall Model
Menurut Pressman ( 2010, p39 ), salah satu model pengembangan
sistem adalah dengan model waterfall. Waterfall model adalah model
yang paling populer dan sering dianggap sebagai pendekatan klasik
dalam daur hidup pengembangan sistem. Adapun tahapannya sebagai
berkut :
• Communication
Pada tahap ini akan dilakukan inisiasi proyek, seperti
menganalisis masalah yang ada dan tujuan yang akan dicapai.
Selain itu dilakukan juga requirements gathering, dimana akan
dikumpulkan requirement dari user melalui analisis kuisioner.
• Planning
Tahap ini merupakan tahap dimana akan dilakukan estimasi
mengenai kebutuhan-kebutuhan yang diperlukan untuk membuat
sebuah sistem. Selain itu, penjadwalan dalam proses pengerjaan
juga ditentukan pada tahap ini.
• Modeling
Kemudian mulai masuk pada tahap perancangan dimana
perancang menerjemahkan kebutuhan sistem kedalam representasi
untuk menilai kualitas sebelum tahap selanjutnya dikerjakan.
Tahap ini lebih difokuskan pada atribut program, seperti struktur
data, arsitektur perangkat lunak, dan detail prosedur.
9
• Construction
Tahap ini merupakan tahap dimana perancangan diterjemahkan ke
dalam bahasa yang dimengerti oleh mesin. Setelah itu dilakukan
pengetesan / pengujian terhadap sistem yang telah dibuat.
• Deployment
Setelah proses pengkodean dan pengujian selesai, dilakukan
pengiriman yang artinya implementasi kepada masyarakat luas.
Pada tahap ini juga dilakukan pemeliharaan, perbaikan, dan
pengembangan agar sistem tersebut tetap dapat berjalan
sebagaimana fungsinya.
Urutan proses lebih jelasnya dapat dilihat pada gambar 2.2.
Gambar 2.2 Waterfall Model
2.2 Database
Database adalah kumpulan data yang saling berhubungan dan didesain
sedemikian rupa untuk memenuhi kebutuhan informasi dari suatu organisasi.
Database adalah sebuah tempat penyimpanan dari data yang digunakan secara
bersamaan oleh banyak departemen dan pengguna. Database tidak lagi dimiliki
oleh satu departemen tetapi menjadi sumber daya bersama dalam perusahaan.
10
Database tidak hanya memegang data operasional organisasi tetapi juga deskripsi
dari data tersebut. Untuk alasan ini, database juga diartikan sebagai sekumpulan
data terintegrasi yang mejelaskan dirinya sendiri. (Connolly dan Begg, 2010, p14).
2.2.1 Relational Database
Relational database adalah sebuah kumpulan dari relasi yang
telah dinormalisasi dengan nama relasi yang jelas (Connolly dan Beg,
2010, p74). Relational database merupakan suatu tipe database yang
berdasarkan model relational, dimana semua data dapat dilihat oleh
pengguna, disusun dalam bentuk tabel-tabel dan semua operasi pada
database bekerja pada tabel-tabel tersebut. Relasi antar tabel pada
relational database sudah melalui tahap normalisasi dengan nama relasi
yang berbeda-beda.
Terdapat 3 jenis relasi antar-record dalam tabel (Connolly dan
Beg, 2010, p344), yaitu:
1. Relasi one-to-one adalah relasi antara satu record dengan satu record
dalam tabel lain yang saling berhubungan.
2. Relasi one-to-many adalah relasi antar satu record dengan lebih dari
satu record dalam tabel lain sehingga saling berhubungan.
3. Relasi many-to-many adalah relasi antar banyak record dengan lebih
dari satu record dalam tabel lain yang saling berhubungan.
2.2.2 Database Management System (DBMS)
DBMS (Database Management System) adalah sebuah sistem
software yang memungkinkan pengguna untuk mendefinisikan, memuat,
11
memelihara, dan mengatur akses ke dalam database (Connolly dan Beg,
2010, p16). DBMS merupakan sebuah software yang berinteraksi dengan
pengguna program aplikasi dan database.
Sebuah DBMS menyediakan beberapa fasilitas sebagai berikut :
1. Data Definition Language (DDL)
DDL adalah sebuah bahasa yang mengijinkan Database
Administrator atau pengguna untuk menggambarkan dan memberi
nama dari entitas, attribute, dan relationship yang dibutuhkan untuk
aplikasi bersama dengan semua kepercayaan yang berhubungan
dengan batasan keamanan (Connolly dan Begg, 2010, p41). Contoh
dari operasi DDL adalah create, drop, dan alter tabel.
2. Data Manipulation Language (DML)
DML adalah sebuah bahasa yang menyediakan sekumpulan operasi
yang mendukung operasi manipulasi data di dalam database.
(Connolly dan Begg, 2010, p41). Contoh dari operasi DML adalah
insert dan update.
3. Menyediakan kontrol akses ke database, sebagai contoh :
a. Security system, dimana mencegah pengguna yang tidak
mempunyai hak untuk mengakses database.
b. Integrity system, dimana menjaga konsistensi dari data.
c. Concurrency control system, dimana mengijinkan akses yang
terbagi dalam database.
d. Recovery control system, dimana mengembalikan kondisi
database sebelum kegagalan hardware atau software.
12
e. User-accessible catalog, dimana berisi deskripsi dari data dalam
database.
SQL adalah suatu bahasa yang dirancang untuk sistem operasi
pengaksesan data pada struktur relational database yang diinginkan
pengguna (Connolly dan Begg, 2010, p111). Operasi pengaksesan data
meliputi penyisipan data (insert), pengubahan data (update), pengambilan
data (select), dan penghapusan data (delete). Perintah-perintah di atas
dilakukan atas permintaan dari pengguna.
2.3 Unified Modelling Language (UML)
2.3.1 Sejarah UML
Pada tahun 1994, Grady Booch dan James Rumbaugh sepakat
menggunakan metode pengembangan berorientasi objek dengan tujuan
membuat proses standar tunggal untuk mengembangkan sistem
berorientasi objek. Ivar Jacobson bergabung pada tahun 1995, dan
mereka bertiga membuat suatu bahasa pemodelan objek standar sebagai
ganti dari pendekatan/metode berorientasi objek standar, yaitu Unified
Model Language (UML) yang dirilis pada tahun 1997.
2.3.2 Diagram UML
Menurut Whitten, dan Bentley, (2007) UML menawarkan
diagram-diagram dengan perspektif yang berbeda untuk memodelkan
suatu sistem. Berikut adalah macam-macam diagram, serta tujuannya:
13
1. Diagram Use Case
Diagram use case secara grafis menggambarkan interaksi antara
sistem, sistem eksternal dan pengguna. Mendeskripsikan siapa
yang akan menggunakan sistem dan dalam cara apa pengguna
mengharapkan interaksi dengan sistem tesebut.
Gambar 2.3 Contoh Use Case Diagram (Whitten, 2007, p246)
Nama Simbol Gambar Penjelasan
Aktor
Apapun yang mempresentasikan seseorang atau sesuatu (seperti perangkat, sistem lain) yang berinteraksi dengan sistem
Use Case
Gambaran fungsionalitas dari suatu sistem, sehingga customer atau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun
Tabel 2.1 Penjelasan Diagram Use Case
14
2. Diagram Activity
Menggambarkan aliran aktivitas. Diagram ini digunakan untuk
memodelkan aksi yang akan dilakukan saat sebuah operasi
dieksekusi dan memodelkan hasil dari aksi tersebut.
Gambar 2.4 Contoh Activity Diagram (Whitten, 2007, p392)
15
Nama Simbol Gambar Penjelasan
Initial Node
lingkaran penuh yang menggambarkan awal dari proses
Action
segiempat bersudut tumpul yang menggambarkan sebuah kegiatan atau tugas yang perlu dilakukan
Flow
tanda panah pada diagram yang menandakan sasaran yang mengawali kegiatan
Decision
bentuk wajik yang menggambarkan sebuah kegiatan keputusan
Fork
bar hitam penuh dengan 1 panah datang dan keluar dengan panah lebih dari 1 yang menggambarkan kegiatan pararel
Join
bar hitam penuh dengan lebih dari 1 panah datang dan keluar dengan 1 panah yang menggambarkan penggabungan
Activity Final
lingkaran penuh di dalam sebuah lingkaran berlubang menggambarkan akhir dari sebuah proses
Tabel 2.2 Penjelasan Diagram Activity (Whitten, 2007, p391)
16
3. Diagram kelas
Menggambarkan struktur objek sistem. Diagram ini menunjukan
kelas objek yang menyusun sistem dan hubungan antar kelas
objek tersebut.
Gambar 2.5 Contoh Class Diagram (Whitten, 2007, p406)
17
Multiplicity Notasi
Multiplicity UML
Asosiasi dengan Multiplicity Makna Asosiasi
Tepat 1 1 atau biarkan kosong
Seorang karyawan bekerja pada satu dan hanya satu departemen
Nol atau 1 0..1
Seorang karyawan memiliki satu suami/ istri atau tidak punya suami/istri
Nol atau lebih 0..* atau *
Customer dapat tidak melakukan pembayaran sampai beberapa kali
1 atau lebih 1..*
Universitas menawarkan paling sedikit 1 matakuliah sampai beberapa matakuliah
Kisaran tertentu 7..9
Tim memiliki pertandingan terjadwal sebanyak 7, 8, atau 9 pertandingan
Tabel 2.3 Multiplicity untuk Class Diagram (Whitten, 2007, p377)
18
2.4 Multimedia
Menurut Tay Vaughan (2011, p1) multimedia adalah kombinasi dari teks,
foto, seni grafis, suara, animasi, dan video yang dimanipulasi secara digital.
Multimedia yang memperbolehkan penggunanya untuk menentukan apa dan kapan
elemen multimedia disampaikan disebut sebagai multimedia interaktif. Sedangkan
multimedia interaktif yang menyediakan struktur elemen yang terhubung satu
sama lainnya dan pengguna dapat menavigasikannya disebut sebagai hypermedia.
Saat ini banyak pengguna yang menggunakan multimedia dengan beberapa
alasan, diantaranya mudah digunakan, menarik banyak perhatian, penyimpanan
yang lebih baik, antarmuka yang intuitif (mudah dimengerti), pengertian yang
lebih baik terhadap konten, dan lebih menyenangkan sehingga menjadi lebih
efektif.
2.4.1 Elemen Multimedia
Ada 5 elemen multimedia yang dijelaskan Vaughan (2011, p1) dalam
bukunya, Multimedia : Making It Work, yaitu:
1. Teks
Sebuah kata dapat memiliki banyak arti, jadi dalam pembuatan teks
sangat penting untuk memperhatikan ketepatan penggunaan kata.
Dalam multimedia, teks memainkan peranan penting dalam
penyampaian informasi kepada pengguna.
2. Suara
Suara adalah salah satu elemen multimedia yang paling bersensasi.
Penggunaan suara dalam suatu proyek multimedia akan membuat
multimedia tersebut terlihat biasa saja atau profesional.
19
3. Gambar
Elemen gambar biasanya dapat diubah ukurannya, warna atau
motif, transparansi, posisi, dan penampakannya. Cara mengatur
gambar dapat menentukan hubungan visual antara pengembang
dengan pengguna multimedia.
4. Animasi
Animasi membuat suatu objek statik menjadi hidup. Animasi
merupakan perubahan visual bedasarkan waktu dan dapat
memberikan kekuatan dalam suatu proyek multimedia.
5. Video
Video adalah elemen multimedia yang dapat menarik perhatian
dalam suatu pertunjukkan. Dari semua elemen multimedia, video
memerlukan performance paling tinggi dari komputer, baik itu
memori ataupun penyimpanannya.
2.4.2 Interaksi Manusia Komputer (IMK)
Interaksi manusia-komputer adalah suatu area penelitian dan
praktek yang muncul pada awal tahun 1980, yang pada awalnya
memfokuskan diri dalam ilmu komputer. IMK telah berkembang pesat
selama tiga dekade, dan telah menarik berbagai pakar dari ilmu lain untuk
menggabungkan konsep dan pendekatan yang beragam.
Interaksi Manusia Komputer adalah suatu pembelajaran tentang
hubungan atau interaksi antara manusia dan komputer. IMK adalah suatu
ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi
20
sistem komputer interaktif untuk digunakan manusia, serta pembelajaran
fenomena disekitarnya. IMK juga sering dianggap sebagai persimpangan
dari ilmu komputer, ilmu perilaku, ilmu desain dan bidang lainnya.
2.4.3 Delapan Aturan Emas
Dalam buku Designing the User Interface (Shneiderman, 2010,
p88-89), terdapat 8 (delapan) aturan yang dapat digunakan sebagai
petunjuk dasar yang baik untuk merancang suatu user interface. Delapan
aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu:
• Berusaha keras untuk konsisten
Aturan ini adalah salah satu yang paling sering dilanggar, tetapi
untuk mengikutinya akan sedikit sulit karena ada banyak bentuk
konsistensi. Konsistensi urutan tindakan diperlukan dalam situasi
serupa; terminologi identik harus digunakan dalam prompt, menu,
dan layar bantuan; warna yang konsisten, tampilan, kapitalisasi,
jenis huruf dan sebagainya harus diterapkan di seluruh bagian.
• Memenuhi kebutuhan menyeluruh / universal
Kenali kebutuhan pengguna yang beragam dan lakukan desain yang
fleksibel, dan memfasilitasi perubahan konten. Seorang pemula dan
seorang ahli memiliki perbedaan kemampuan dan kebutuhan.
Perbedaan usia, ketidak mampuan khusus, dan keragaman setiap
teknologi juga perlu diperhatikan. Menambahkan fitur untuk
pemula seperti penjelasan, serta fitur untuk ahli seperti shortcuts
21
juga dapat memperkaya desain antar muka dan meningkatkan
kualitas sistem yang dirasakan.
• Memberikan umpan balik yang informatif
Untuk setiap tindakan pengguna, harus ada sistem umpan balik.
Untuk tindakan yang sering dan sederhana, dapat diberikan respon
yang sederhana, tetapi untuk tindakan yang jarang dan aksi yang
besar, maka respon yang diberikan juga harus lebih substansial.
• Merancang dialog untuk menghasilkan penutupan
Urutan tindakan hendaknya diorganisasi kedalam kelompok awal,
tengah, dan akhir. Umpan balik yang informatif pada penyelesaian
dari sekelompok tindakan memberikan kepuasan, rasa lega, dan
sinyal untuk mempersiapkan kelompok tindakan berikutnya.
Sebagai contoh, situs web e-commerce memindahkan pengguna dari
pemilihan produk ke kasir, dan berakhir dengan halaman konfirmasi
yang jelas untuk melengkapi transaksi.
• Memberikan penanganan kesalahan yang sederhana.
Sebisa mungkin desain sistem sehingga pengguna tidak dapat
membuat kesalahan serius. Jika kesalahan dibuat, sistem harus
mampu mendeteksi kesalahan dan menawarkan mekanisme
sederhana, konstruktif, dan spesifik untuk pemulihan sehingga
pengguna tidak merasa bersalah dan mau untuk mengeksplorasi
lebih jauh lagi.
22
• Mengijinkan pembalikan aksi (undo) dengan mudah.
Sebisa mungkin, tindakan harus dapat dibalikkan menjadi keadaan
sebelumnya. Fitur ini akan mengurangi kecemasan pengguna karena
mereka tahu bahwa kesalahan yang dibuat dapat diperbaiki dengan
demikian mendorong eksplorasi yang lebih jauh.
• Dukungan kontrol internal
Pengguna yang berpengalaman, sangat menginginkan perasaan
bahwa mereka memegang kendali atas sistem dan bahwa sistem
merespon tindakan mereka.
• Mengurangi beban ingatan jangka pendek.
Manusia memiliki keterbatasan pengolahan informasi dalam suatu
waktu (manusia hanya dapat mengingat tujuh, plus atau minus dua
potongan informasi). Batasan ini berarti tampilan harus dibuat
sesederhana mungkin sehingga tidak membuat seorang user
bingung karena terlalu banyak info.
Teori Khusus
2.5 Mobile Platform
Menurut Tarkoma (2009), sebuah sistem operasi merupakan unit organisasi
dalam sistem komputer. Dalam hal ini sistem operasi berperan sebagai tampilan
interface antara aplikasi dan hardware. Fungsi utama dari sistem operasi adalah
administrasi penyediaan sumber daya operasi.
23
Sebuah sistem mobile adalah sistem komputer yang tidak terhubung ke suatu
tempat tertentu. Hal ini memungkinkan untuk memindahkan atau membawa
perangkat tersebut seperti telepon genggam. Meskipun ada banyak kesamaan
antara stasioner dan sistem operasi mobile, ada juga perbedaan yang jelas dalam
hal mobilitas. Contoh untuk aplikasi di mana sistem operasi normal tidak bisa
digunakan adalah ABS (Anti-lock bracking system) kontrol pada mobil. Suatu
sistem operasi seperti Windows XP tidak cukup stabil untuk menjamin dapat
menjalankan sistem ABS untuk waktu yang lama. Contoh ini menunjukkan atribut
yang penting bagi sistem perangkat mobile manapun yaitu sistem harus stabil dan
terjamin.
Platform mobile memiliki sifat antara lain :
1. Koleksi layanan pusat dan library dengan fungsi baik reaktif dan proaktif.
2. Terdistribusi antar elemen dari fasilitas yang ada :
• Multi-tier client-server
• Peer-to-peer
• Hybirds
3. Platform yang berjalan pada terminal mobile dan karakteristik dari perangkat
menentukan layanan seperti apa yang diberikan bagi pengguna akhir.
4. Skalabilitas server yang dapat dicapai melalui solusi tradisional yaitu
clusters, caching, geographical distribution, load balancing, data centers.
Contoh platform mobile yaitu WAE, Java ME, Symbian, MAEMO, Android,
Pervasive Computing Middleware, Spice dan Fuego.
24
2.6 Android
Android adalah sebuah kumpulan perangkat lunak untuk perangkat mobile
yang mencakup sistem operasi, middleware dan aplikasi utama mobile. Android
memiliki empat karakteristik sebagai berikut:
1. Terbuka
Android dibangun untuk benar-benar terbuka sehingga sebuah aplikasi dapat
memanggil salah satu fungsi inti ponsel seperti membuat panggilan, mengirim
pesan teks, menggunakan kamera, dan lain-lain. Android menggunakan sebuah
mesin virtual yang dirancang khusus untuk mengoptimalkan sumber daya
memori dan perangkat keras. Android merupakan open source, dapat secara
bebas disebarluaskan untuk memasukkan teknologi baru yang lebih maju pada
saat teknologi tersebut muncul. Platform ini akan terus berkembang untuk
membangun aplikasi mobile yang inovatif.
2. Semua aplikasi dibuat sama
Android tidak memberikan perbedaan terhadap aplikasi utama dari telepon dan
aplikasi pihak ketiga (third-party application). Semua aplikasi dapat dibangun
untuk memiliki akses yang sama terhadap kemampuan sebuah telepon dalam
menyediakan layanan dan aplikasi yang luas terhadap para pengguna.
3. Memecahkan hambatan pada aplikasi
Android memecah hambatan untuk membangun aplikasi yang baru dan
inovatif. Misalnya, pengembang dapat menggabungkan informasi yang
diperoleh dari web dengan data pada ponsel seseorang seperti kontak pengguna,
kalender, atau lokasi geografis.
25
4. Pengembang aplikasi yang cepat dan mudah
Android menyediakan akses yang sangat luas kepada semua pengguna untuk
menggunakan library dan tools yang diperlukan untuk membangun aplikasi
yang semakin baik. Android memiliki sekumpulan tools yang dapat digunakan
sehingga membantu para pengembang dalam meningkatkan produktivitas pada
saat membangun aplikasi yang dibuat.
(Sumber : http://www.android.com/about/ )
Google Inc. sepenuhnya membangun Android dan menjadikannya bersifat terbuka
(open source) sehingga para pengembang dapat menggunakan Android tanpa
mengeluarkan biaya untuk lisensi dari Google dan dapat membangun Android
tanpa adanya batasan-batasan. Android Software Development Kit (SDK)
menyediakan alat dan Application Programming Interface (API) yang diperlukan
untuk memulai pengembangan aplikasi pada platform Android menggunakan
bahasa pemrograman Java.
2.6.1 Sejarah Sistem Operasi Android
Telepon seluler menggunakan berbagai macam sistem operasi
seperti Symbian OS®, Microsoft’s Windows Mobile®, Mobile Linux®,
iPhone OS® (berdasarkan Mac OS X), Moblin® (dari intel), dan
berbagai macam sistem operasi lainnya. API yang tersedia untuk
mengembangkan aplikasi mobile terbatas, oleh karena itulah Google
mulai mengembangkan dirinya. Platform Android menjanjikan
26
keterbukaan, kemudahan untuk menjangkau, source code yang terbuka,
dan pengembangan framework yang high end.
Google membeli perusahaan Android Inc., yang merupakan
sebuah perusahaan kecil berbasis pengembangan perangkat lunak untuk
ponsel pada tahun 2005 untuk memulai pengembangan pada platform
mobile. Tokoh utama dari Android Inc. meliputi Andy Rubin, Rich Miner,
Nick Sears, dan Chris White.
Pada tanggal 5 November 2007, kelompok pemimpin industri
bersama-sama membentuk Open Handset Alliance (OHA) yang
diciptakan untuk mengembangkan standar terbuka bagi perangkat mobile.
OHA terdiri dari 34 anggota besar dan beberapa anggota yang terkemuka,
diantaranya sebagai berikut: Sprint Nextel®, T-Mobile®, Motorola®,
Samsung®, Sony Ericsson®, Toshiba®, Vodafone®, Google, Intel® dan
Texas Instruments.
Android SDK diliris pertama kali pada 12 November 2007 dan
para pengembang memiliki kesempatan untuk memberikan umpan balik
dari pengembangan SDK tersebut. Pada bulan September 2008, T-Mobile
memperkenalkan ketersedian T-Mobile G1 yang merupakan smartphone
pertama berbasiskan platform Android. Beberapa hari kemudian, Google
merilis Android SDK 1.0. Google membuat source code dari platform
Android menjadi tersedia di bawah lisensi Apache’s open source.
Google merilis perangkat mobile (disebut Android Dev Phone1)
yang dapat menjalankan aplikasi Android tanpa terikat oleh berbagai
27
jaringan provider telepon seluler pada akhir tahun 2008. Tujuan dari
perangkat ini adalah memungkinkan pengembang untuk melakukan
percobaan dengan perangkat sebenarnya yang dapat menjalankan
Android OS tanpa berbagai kontrak. Google juga merilis versi 1.1 dari
sistem operasi Android pada waktu yang tidak lama. Versi 1.1 dari
Android tidak mendukung adanya soft keyboard dan membutuhkan
perangkat yang memiliki keyboard secara fisik. Android menyelesaikan
masalah ini dengan merilis versi 1.5 pada bulan April 2009 dengan
sejumlah tambahan fitur seperti kemampuan perekaman media, widgets,
dan live folders.
Versi 1.6 dari Android OS dirilis pada bulan September 2009 dan
hanya dalam waktu satu bulan, versi Android 2.0 dirilis dan membanjiri
seluruh perangkat Android. Versi ini memiliki kemampuan advanced
search, text to speech, gestures, dan multi touch. Android 2.0
memperkenalkan kemampuan untuk menggunakan HTML karena
didukung oleh HTML 5. Semakin banyak aplikasi berbasiskan Android
setiap harinya yang terdapat pada Application Store secara online atau
dikenal sebagai Android Market.
(Sumber: Katysovas, Tomas.(2008). A First Look of Google Android, p4)
2.6.2 Fitur Sistem Operasi Android
Menurut Tomas Katysovas ( 2008, p4 ) sistem operasi Android memiliki
fitur-fitur sebagai berikut:
28
a. Kerangka kerja aplikasi (application framework)
Digunakan untuk menuliskan aplikasi di Android sehingga
memungkinkan penggunaan kembali dan penggantian komponen.
Kerangka kerja ini didukung oleh berbagai open source libraries
seperti openssl, sqlite, dan libc serta didukung oleh libraries utama
Android. Kerangka kerja sistem operasi Android didasarkan pada
UNIX file system permission yang menjamin bahwa aplikasi-
aplikasi tersebut hanya memiliki kemampuan yang diberikan oleh
pemilik ponsel pada waktu penginstalan.
b. Dalvik Virtual Machine (DVM)
Dalvik Virtual Machine (DVM) adalah sebuah mesin virtual yang
menggunakan memori yang sangat rendah dan secara khusus
dirancang untuk Android untuk dijalankan pada embedded system.
DVM bekerja dengan baik pada situasi dengan tenaga yang rendah
dan mengoptimalkan perangkat mobile. DVM juga mengatur atribut
dari Central Processing Unit (CPU) serta membuat sebuah format
file yang spesial (.dex) yang dibuat selama build time post
processing. DVM dapat menggunakan kembali salinan informasi
dari beberapa class file dan secara efektif mengurangi kebutuhan
penyimpanan oleh setengah dari Java Archieve (.jar) file tradisional.
Konversi antara class Java dan format (.dex) dilakukan dengan
memasukkan “dx-tool”.
DVM menggunakan assembly-code yang berbeda dimana DVM
menggunakan register sebagai unit utama dari penyimpanan data
29
daripada menggunakan stack. Hasil akhir dari executable-code pada
Android merupakan hasil dari DVM yang didasarkan bukan pada
Java byte-code melainkan pada file (.dex). Hal ini berarti bahwa
Java byte-code tidak dieksekusi secara langsung melainkan dimulai
dari Java class file terlebih dahulu dan kemudian
mengkonversikannya ke dalam file (.dex) yang berhubungan.
c. Browser yang terintegrasi
Didasarkan pada open source WebKit engine yang memiliki dua
layout dan pengelompokan frame. Layout menampilkan halaman
tanpa menunggu untuk melakukan pembalikan elemen eksternal
seperti Cascade Style Sheet (CSS) atau eksternal JavaScript. Fitur-
fitur inilah yang meningkatkan kecepatan dan penggunaan browsing
internet melalui ponsel.
d. Grafik yang teroptimasi
Didukung oleh library grafis 2D dan grafis 3D yang berdasarkan
spesifikasi OpenGl ES 1.0 (akselerasi perangkat keras bersifat
opsional)
e. SQLite
SQLite merupakan relational database management system yang
kecil (sekitar 500 kb) yang diintegrasikan pada sistem operasi
Android. SQLite didasarkan pada function calls dan single file,
dimana semua definisi, tabel, dan data disimpan.
f. Dukungan media untuk suara, video dan format gambar seperti
Moving Picture Experts Group 4 (MPEG4), MPEG-1 or MPEG-2
30
Audio Layer 3 (MP3), Advanced Audio Coding (AAC), Adaptive
Multi-Rate (AMR) audio codec, Joint Photographic experts Group
(JPG), Portable Network Graphics (PNG), Graphics Interchange
Format (GIF).
g. GSM Telephony (bergantung dari perangkat keras yang digunakan)
h. Bluetooth, Enhanced Data Rates for GSM Evolution (EDGE), 3rd
Generation (3G), dan WIFITM (Bergantung dari perangkat keras
yang digunakan)
i. Kamera, Global Positioning System (GPS), kompas dan
accelerometer (Bergantung dari perangkat keras yang digunakan)
j. Lingkungan pengembangan yang lengkap, seperti emulator,
peralatan untuk debugging, memori dan performance profiling,
serta plug-in untuk Eclipse IDE.
2.6.3 Arsitektur Android
Menurut Speckmann ( 2008, p11 ), software stack dibagi dalam empat
layer yang berbeda, yang meliputi lima kelompok yang berbeda:
1. The Application Layer
Platform software Android akan datang dengan satu set aplikasi
dasar seperti browser, e-mail, program SMS, peta, kalender, kontak
dan banyak lagi. Semua aplikasi tersebut ditulis dengan bahasa Java.
Selain itu aplikasi dapat dijalankan secara bersamaan, sehingga
dimungkinkan untuk mendengar musik dan membaca e-mail pada
31
saat yang sama. Layer ini paling banyak digunakan oleh user ponsel
pada umumnya.
2. The Application Framework
Sebuah aplikasi framework adalah suatu software framework yang
digunakan untuk menerapkan struktur standar aplikasi untuk sistem
operasi tertentu. Dengan bantuan manajer, penyedia konten dan
layanan lainnya programmer dapat menggunakan kembali fungsi-
fungsi yang digunakan oleh aplikasi lain yang sudah ada.
3. The Libraries
Library yang tersedia semua ditulis dengan bahasa pemrograman
C/C++. Mereka akan dipanggil melalui tampilan interface Java. Ini
termasuk Surface Manager, 2D dan 3D grafis, Media Codec seperti
MPEG-4 dan MP3, SQL Database, SQLite dan engine web browser
WebKit.
4. The Runtime
Android runtime terdiri dari dua komponen. Pertama menetapkan
inti library yang menyediakan sebagian besar fungsi yang tersedia
di inti library tersebut dari pemrograman bahasa Java. Kedua mesin
virtual Dalvik yang beroperasi seperti penerjemah antara sisi
aplikasi dan sistem operasi. Setiap aplikasi yang berjalan pada
Android ditulis dalam bahasa Java. Sebagai sistem operasi yang
tidak dapat memahami bahasa pemrograman ini secara langsung,
progam Java akan diterima dan diterjemahkan oleh mesin virtual
Dalvik. Code yang diterjemahkan kemudian dapat dieksekusi oleh
32
sistem operasi. Selain itu aplikasi tersebut dienkapsulasi dalam
Dalvik. Untuk setiap program memiliki mesin virtualnya sendiri
bahkan ketika beberapa program berjalan paralel.
Keuntungannya adalah bahwa program-program yang berbeda tidak
mempengaruhi satu sama lain, sehingga kesalahan program
misalnya dapat menyebabkan crash suatu program, tidak
menyebabkan kerusakan keseluruhan sistem.
5. The Kernel
The Linux Kernel akan digunakan oleh Android sebagai divers dari
perangkatnya dalam hal pengaturan memori, pengaturan proses,
pengaturan input/output, pengaturan file, dan jaringan. Gambar 2.6
menunjukan komponen utama dari sistem operasi dalam Android.
Gambar 2.6 Arsitektur Android
Sumber: http://developer.android.com/guide/basics/what-is-android.html
33
2.6.4 Fungsi Dalam Android
Menurut Murphy ( 2008, p3 ), fungsi-fungsi yang terdapat dalam Android
adalah:
1. Activities
Blok pemrograman dari tampilan interface user adalah “activity”.
Sebuah activity dapat digambarkan seperti sebuah tampilan chatbox
dalam desktop. Meskipun begitu sebuah activity memungkinkan
untuk tidak memilki tampilan interface user, kemungkinan besar
code tersebut akan dikemas dalam penyedia konten dan bukan pada
user.
2. Content Providers
Penyedia konten memberikan tingkat abstraksi untuk setiap data
yang disimpan dalam perangkat yang dapat diakses oleh beberapa
aplikasi. Model pegembangan Android memungkinkan suatu data
dapat tersedia untuk beberapa aplikasi. Dengan begitu ketika
melakukan maintenance perbaikan data dapat dilakukan secara
terpusat.
3. Intens
Intens adalah pesan sistem, berjalan di bagian dalam perangkat,
memberitahu aplikasi dari berbagai event, dari perubahan kondisi
hardware (misalnya, kartu SD terpasang) sampai keluarnya
masuknya data (misalnya, pesan SMS tiba).
34
4. Services
Activities, content providers, dan internet receiver merupakan
program singkat yang dapat diaktifkan dan dimatikan setiap saat.
Service didesain untuk tetap menjalankan program-program tersebut
jika diperlukan. Service dapat digunakan untuk memeriksa update
ke RSS feed, atau untuk memutar musik bahkan ketika
pengontrolan activity tidak beroperasi lagi.
5. Storage
Paket file data dapat dibuat dengan aplikasi yang telah dibangun
untuk hal-hal yang tidak mengalami perubahan, seperti icon atau
bantuan file tertentu. Tempat penyimpanan yang dibuat dari aplikasi
berfungsi sebagai database atau untuk menerima input dari user
yang diperlukan oleh aplikasi. Jika user memasukkan sejumlah file,
maka file tersebut dapat dibaca ataupun dimasukkan data lain
kedalamnya.
6. Network
Umumnya perangkat Android terkoneksi dengan internet. Hal
tersebut mendukung WebKit berbasis web browser sehingga widget
dapat ditanamkan dalam aplikasi.
7. GPS
Perangkat Android akan secara rutin melakukan akses penyedia
lokasi, seperti GPS, yang dapat memberitahu aplikasi dimana
perangkat user berada. User juga dapat menampilkan peta atau
35
sebaliknya mengambil keuntungan dari lokasi, seperti melacak
gerakan perangkat jika perangkat telah dicuri.
8. Multimedia
Perangkat Android memiliki kemampuan untuk memutar dan
merekam audio dan video. Meskipun mungkin terdapat spesifikasi
yang berbeda antar perangkat, namun perangkat tersebut dapat
diprogram untuk menyesuaikannya dengan perangkat lain dan
memanfaatkan hal tersebut dalam bidangnya.
9. Phone Services
Perangkat Android tentunya memiliki fitur ponsel, memungkinkan
software untuk memulai panggilan, mengirim dan menerima SMS,
dan hal-hal lain yang terdapat pada teknologi ponsel.
2.6.5 Keuntungan dari Dalvik Virtual Machine
Dalvik virtual machine adalah mesin penerjemah bahasa Java
sederhana, sepenuhnya dioptimalkan untuk platform Android yang
dikembangkan untuk dapat berjalan di memori low-end perangkat mobile.
Salah satu aspek yang menonjol dalam Dalvik yaitu kemampuan untuk
menjalankan aplikasi sepanjang kompilasi dengan meningkatkan
performa runtime aplikasi.
Dalvik bukan merupakan bagian dari mesin Java karena tidak bisa
membaca code Java, tetapi terdiri dari code-byte sendiri yang disebut
“Dex” sehingga file executable didapatkan menggunakan Dalvik dengan
jenis nama file “.dex”.
36
2.7 Google Maps API
2.7.1 Pengertian API
Menurut Tulach (2008, p1-14), API atau Application
Programming Interface bukan hanya satu set class dan method atau
fungsi dan signature yang sederhana. Akan tetapi API, yang bertujuan
utama untuk mengatasi “clueless” dalam membangun software yang
berukuran besar, berawal dari sesuatu yang sederhana sampai ke yang
kompleks dan merupakan perilaku komponen yang sulit dipahami. Secara
sederhana dapat dipahami dengan membayangkan kekacauan yang akan
timbul bila mengubah database atau skema XML. Perubahan ini dapat
dipermudah dengan bantuan API.
Dari beberapa sumber yang didapat, dapat disimpulkan bahwa
API adalah sekumpulan perintah, fungsi, class dan protokol yang
memungkinkan suatu software berhubungan dengan software lainnya.
Tujuan dari API adalah untuk menghilangkan “clueless” dari sistem
dengan cara membuat blok besar yang terdiri dari software di seluruh
dunia dan menggunakan kembali perintah, fungsi, class, atau protokol
yang mereka atau API miliki. Dengan cara ini, programmer tidak perlu
lagi membuang waktu untuk membuat dan menulis infrastruktur sehingga
akan menghemat waktu kerja dan lebih efisien.
2.7.2 Pengertian Google Maps API
Seperti yang tercatat oleh Svennerberg ( Beginning Google Maps
API 3, p1 ), Google Maps API yang paling populer di internet. Pencatatan
37
yang dilakukan pada bulan Mei 2010 ini menyatakan bahwa 43% mashup
(aplikasi dan situs web yang menggabungkan dua atau lebih sumber data)
menggunakan Google Maps API . Beberapa tujuan dari penggunaan
Google Maps API adalah untuk melihat lokasi, mencari alamat,
mendapatkan petunjuk mengemudi dan lain sebagainya. Hampir semua
hal yang berhubungan dengan peta dapat memanfaatkan Google Maps.
Google Maps (tanpa API) diperkenalkan pada Februari 2005 dan
merupakan revolusi bagaimana peta di dalam web, yaitu dengan
membiarkan user untuk menarik peta sehingga dapat menavigasinya.
Solusi peta ini pada saat itu masih baru dan membutuhkan server khusus.
Beberapa saat setelahnya, ada yang berhasil men-hack Google Maps
untuk digunakan di dalam webnya sendiri. Hal ini membuat Google Maps
mengambil kesimpulan bahwa mereka membutuhkan API dan pada Juni
2005, Google Maps API dirilis secara publik.