BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00267-if...

32
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

Transcript of BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00267-if...

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.