9
BAB 2
LANDASAN TEORI
2.1 Teori-Teori Dasar / Umum
2.1.1 Interaksi Manusia dan Komputer
2.1.1.1 Pengertian Interaksi Manusia dan Komputer
Berdasarkan Karray, Alemzadeh, Saleh, dan Arab yan g
mengutip pernyataan Te'eni (2008), interaksi manusia dan
komputer atau disebut juga Human Computer Interaction (HCI)
adalah sebuah rancangan yang harus menghasilkan suat u
kesesuaian antara user, mesin yang digunakan dan layanan yang
dibut uhkan dengan t ujuan unt uk mencapai kinerja yang
ditentukan baik dalam segi kualitas dan optimalitas layanan.
2.1.1.2 Lima Faktor Manusia Terukur
Sesuai pendapat yang dikemukakan Shneiderman dan
Plaisant (2010), dalam merancang sistem yang user friendly
sebelumnya harus memperhatikan lima faktor berikut :
1. Waktu belajar
Waktu yang dibutuhkan oleh seorang user dalam belajar
menggunakan berbagai aksi yang relevan dengan
pekerjaannya.
10
2. Kecepatan kinerja
Waktu yang dibutuhkan unt uk menyelesaikan pekerjaan.
3. Tingkat kesalahan user
Berapa banyak dan apa saja kesalahan yang dilakukan oleh
user.
4. Daya ingat
Kemampuan user dalam mempertahankan pengetahuannya
dalam jangka wakt u tertentu.
5. Kepuasan subjektif
Seberapa besar ketertarikan user terhadap aspek-aspek yang
ada dalam interface.
2.1.1.3 Delapan Aturan Emas
Menurut Shneiderman dan Plaisant (2010) terdapat delapan
aturan yang dapat digunakan sebagai pet unjuk dasar unt uk
merancang user interface yang baik dan user friendly :
1. Berusaha untuk konsisten
Konsisten dalam berbagai keadaan, baik dalam
penggunaan tampilan seperti warna, menu, dan jenis tulisan
hingga urutan tindakan.
11
2. Melayani semua user
Mengetahui adanya kebut uhan yang berbeda bagi setiap
user. Pada user pemula mungkin dibut uhkan adanya suatu
fitur penjelasan dan pada user yang ahli dibutuhkan adanya
fitur shortcut untuk mempercepat pekerjaannya.
3. Memberikan umpan balik yang informatif
Untuk setiap tindakan yang dilakukan user, harus ada
suatu umpan balik untuk memberikan informasi kepada user
mengenai akibat dari tindakannya.
4. Merancang dialog untuk menghasilkan keadaan akhir
Urutan dari tindakan harus dikelompokkan menjadi
bagian awal, pertengahan dan akhir. Pada bagian akhir ada
suatu umpan balik informatif yang memberikan kepuasan dan
keyakinan pada user karena telah berhasil menyelesaikan
tindakannya.
5. Memberikan pencegahan dan penanganan kesalahan
yang sederhana
Rancangan sistem tidak mengijinkan user melakukan
kesalahan yang serius dan jika terjadi kesalahan, maka
interface harus memberikan instruksi yang sederhana,
konstruktif dan spesifik unt uk pemulihan kembali.
12
6. Mengijinkan pengembalian aksi
Fitur ini membebaskan user dari kecemasan dengan
memberikan user kemampuan untuk mengembalikan keadaan
seperti sebelum dilakukan kesalahan.
7. Pengendalian internal
User menjadi pengendali sistem sedangkan sistem akan
merespons tindakan yang dilakukan user, dan bukan
sebaliknya. Jadi peran user dalam sistem adalah sebagai
inisiator bukan responden.
8. Mengurangi beban ingatan jangka pendek
Memberikan user suatu sistem yang sederhana dan
mudah diingat. Hal ini disebabkan adanya keterbatasan
ingatan manusia. Sistem dapat disederhanakan dengan
beberapa cara, misalnya melalui penggunaan tampilan yang
sederhana, penggabungan beberapa tampilan yang bisa
disat ukan, dan pemberian pelatihan yang cukup untuk kode,
mnemonik serta urutan tindakan.
13
2.1.2 Unified Modelling Language (UML)
Menurut Whitten dan Bentley (2007), Unified Modelling Language
(UML) adalah suat u kumpulan aturan atau ketentuan pemodelan yang
digunakan untuk menentukan dan menggam barkan sebuah sistem software
yang berhubungan dengan objek.
UML telah menjadi standar dalam bahasa pemodelan di bidang
perancangan software. Standarisasi UML diatur dan dibuat oleh Object
Management Group (OMG).
Untuk menjalankan fungsinya dalam menentukan dan
menggambarkan rancangan software, UML versi 2.0 menggunakan
diagram-diagram sebagai berikut :
1. Use Case
2. Activity
3. Class
4. Object
5. State Machine
6. Sequence
7. Communication
8. Interaction Overview
9. Timing
10. Component
11. Deployment
12. Package
13. Composite Structure
Meskipun UML memiliki begit u banyak diagram, tidak semuanya
diperlukan dan harus digunakan dalam perancangan. Apabila sistem telah
digambarkan dan dapat dipahami dengan baik menggunakan diagram yang
ditentukan, maka tujuan dari UML telah tercapai.
14
2.1.2.1 Class Diagram
Class diagram merupakan gam baran mengenai objek-objek
bernama kelas yang menyusun suat u sistem dan juga hubungan
antara kelas-kelas tersebut (Whitten et al., 2007).
Gambar 2.1 Contoh Class Diagram
15
Setiap kelas digam barkan dengan sebuah kotak yang terbagi
atas 3 (tiga) bagian, yait u :
1. Nama kelas.
2. Atribut kelas.
3. Operasi kelas.
Gambar 2.2 Struktur kelas
Visibility
Dalam class diagram terdapat istilah visibility yang
fungsinya unt uk menentukan apakah atribut atau operasi dari suat u
kelas dapat digunakan oleh kelas lainnya.
16
Tabel 2.1 Tabel Penjelasan Visibility
Visibility Simbol Deskripsi
Private - Hanya dapat digunakan oleh kelas yang
mendefinisikan
Protected # Dapat digunakan oleh kelas yang
mendefinisikan dan t urunannya
Public + Dapat digunakan oleh semua kelas yang
berhubungan
Multiplicity
Multiplicity adalah istilah untuk menentukan banyaknya
kelas yang berhubungan dengan kelas yang dimaksud.
Tabel 2.2 Tabel Penjelasan Multiplicity
Multiplicity Deskripsi
0..1 Nol atau satu
1 Tepat satu
0..* Nol atau lebih
1..* Satu atau lebih
17
Generalisasi
Generalisasi digunakan untuk menggam barkan hubungan
antara superclass dan subclass dimana superclass adalah bentuk
umum dari subclass, dan subclass adalah bent uk spesifik dari
superclass. Artinya subclass memiliki semua properti yan g
dimiliki oleh superclass. Generalisasi menunjukkan adanya
inheritance dalam class diagram.
Gambar 2.3 Contoh Generalisasi
Asosiasi
Asosiasi digunakan unt uk menggambarkan adanya
hubungan antara sebuah kelas dengan kelas yang lain. Asosiasi
berfungsi untuk memberikan keterangan mengenai relasi antar
kelas dan multiplicity.
18
Hubungan yang digambarkan dibedakan menjadi 2 (dua)
jenis, yait u :
1. Uni-directional
Dalam hubungan uni-directional, 2 (dua) kelas saling
terhubung, tetapi hanya salah satu yang memiliki peran dalam
hubungan tersebut. Pada uni-directional ditambahkan sim bol
panah yang disebut dengan navigability.
Gambar 2.4 Contoh Uni-directional
2. Bi-directional
Dalam hubungan bi-directional, 2 (dua) kelas saling
terhubung dan keduanya memiliki peran dalam hubungan
tersebut.
Gambar 2.5 Contoh Bi-directional
19
Agregasi
Agregasi digunakan untuk menggam barkan hubungan
dimana sat u kelas merupakan bagian dari kelas lain. Agregasi
bersifat asimetris, dimana kelas A adalah bagian dari kelas B,
tetapi kelas B bukan merupakan bagian dari kelas A. Agregasi
tidak menggambarkan inheritance.
Gambar 2.6 Contoh Agregasi
Selain itu agregasi memiliki bentuk lain yang disebut
komposisi. Komposisi merupakan hubungan yang lebih erat
dibandingkan agregasi, dimana kelas A yang merupakan bagian
dari kelas B tidak akan ada jika kelas B tidak dibuat.
Gambar 2.7 Contoh Komposisi
20
2.1.2.2 Use Case Diagram
Use case adalah diagram yang menggambarkan interaksi
antara sistem dan user, mengenai siapa yang menggunakan sistem
dan bagaimana user berinteraksi dengan sistem (Whitten et al.,
2007).
Use case memiliki 2 (dua) elemen penting, yaitu skenario
dan aktor. Skenario adalah suatu urutan langkah-langkah yan g
menjelaskan interaksi antara user dengan sistem. Aktor adalah
user yang berperan dalam sebuah sistem.
Gambar 2.8 Contoh Use Case Diagram
21
Hubungan yang digunakan dalam use case diagram
(Whitten et al., 2007) :
1. Asosiasi
Asosiasi menggam barkan adanya interaksi antara
sebuah use case dengan aktor. Sebuah asosiasi digambarkan
dengan simbol garis dengan atau tanpa anak panah. Asosiasi
dengan anak panah yang berasal dari aktor menunjuk ke use
case menandakan bahwa aktor sebagai inisiator use case
tersebut. Asosiasi tanpa anak panah menandakan interaksi
antara use case dengan aktor penerima.
Gambar 2.9
Contoh Asosiasi Pada Use Case Diagram
2. Extends
Extends digunakan ketika fungsi dari sebuah use case
terdiri dari beberapa tahap sehingga sulit dimengerti. Dengan
menggunakan extends, use case tersebut menghasilkan use
case baru yang mewakili fungsi tertentu dari use case awal.
Use case hasil dari extends disebut dengan extension use case
22
yang menunjuk ke use case yang menggunakan extends.
Extension use case hanya dapat digunakan oleh use case yang
menggunakan extends.
Gambar 2.10
Contoh Extends Pada Use Case Diagram
3. Includes / Uses
Includes digunakan ketika terdapat 2 (dua) atau lebih
use cases yang melakukan langkah yang sama. Langkah
tersebut akan menjadi sebuah entitas baru yang disebut use
case abstrak, yang berfungsi untuk mengurangi redundansi
dalam use case diagram.
23
Gambar 2.11
Contoh Includes Pada Use Case Diagram
4. Depends On
Depends On digunakan ketika terdapat hubungan antar
use case dimana suatu use case tidak dapat dilakukan apabila
use case tertentu belum dilakukan.
Gambar 2.12
Contoh Depends On Pada Use Case Diagram
24
5. Inheritance
Inheritance digunakan untuk menggambarkan
hubungan antara dua atau lebih aktor dalam sistem dengan
sebuah aktor abstrak. Aktor abstrak ini memiliki langkah yang
dimiliki aktor lain. Aktor abstrak dibuat untuk
menyederhanakan rancangan diagram.
Gambar 2.13
Contoh Inheritance Pada Use Case Diagram
2.1.2.3 Use Case Narrative
Use case narrative adalah sebuah deskripsi berupa teks
mengenai suatu langkah dan menggambarkan bagaimana user
berinteraksi dengan sistem untuk menyelesaikan pekerjaannya
(Whitten et al., 2007).
25
2.1.2.4 Sequence Diagram
Sequence diagram menggam barkan model logika dari
sebuah use case dengan menggambarkan pesan yang dikirimkan
antar objek dalam suatu urutan waktu (Whitten et al., 2007).
Gambar 2.14 Contoh Sequence Diagram
Elemen-elemen yang digunakan dalam sequence diagram :
1. Aktor
Simbol yang digunakan untuk mewakili user
dalam berinteraksi dengan objek kelas interface. Aktor
bisa direpresentasikan dengan simbol seperti objek.
26
Gambar 2.15 Aktor
2. Objek
Digam barkan dengan simbol persegi panjan g
yang mewakili kelas-kelas pada class diagram.
Gambar 2.16 Objek
3. Aktivasi
Simbol persegi panjang pada garis put us-put us
(lifeline) yang menggambarkan lamanya waktu dari
objek saat digunakan.
27
Gambar 2.17 Objek, Aktivasi, dan Lifeline
4. Pesan
Pesan digunakan untuk menyampaikan method
dari setiap objek.
Gambar 2.18 Pesan
5. Self-call
Sebuah objek dapat mengirimkan pesan ke objek
itu sendiri.
28
Gambar 2.19 Self-call
6. Pesan kembali (return)
Jawaban atas pesan yang disampaikan oleh suat u
objek. Memiliki simbol seperti pesan tapi dengan garis
putus-putus.
Gambar 2.20 Pesan Kembali (Return)
7. Frame
Digunakan untuk menandakan area pada diagram
yang mengalami perulangan (looping), mengalami
seleksi (alternative), atau memiliki sebuah ketentuan
(optional).
Gambar 2.21 Frame perulangan
29
2.1.2.4 Activity Diagram
Activity diagram digunakan untuk memberikan gambaran
mengenai alur dari sebuah proses bisnis, langkah dalam sebuah
use case, dan logika dari sebuah perilaku objek. (Whitten et al.,
2007).
Gambar 2.22 Contoh Activity Diagram
30
Elemen-elemen yang digunakan dalam activity diagram :
Tabel 2.3 Tabel Elemen Activity Diagram
Initial node
Simbol yang merepresentasikan
dim ulainya proses.
Action
Simbol yang merepresentasikan
suatu aktivitas. Keseluruhan aktivitas
dari diagram mengikuti urutan
actions.
Flow
Simbol yang merepresentasikan jalur
dari satu aktivitas ke aktivitas
lainnya.
Decision / Merge
Simbol yang merepresentasikan
keadaan kondisional, yait u decision
dan merge.
1. Decision
Mengindikasikan kondisi unt uk
memilih salah satu alur aktivitas.
31
2. Merge
Mengindikasikan bergabungnya
alur aktivitas yang dipisahkan
oleh decision sebelumnya.
Fork / Join
Simbol yang merepresentasikan
keadaan paralel, yaitu fork dan join.
1. Fork
Mengindikasikan adanya 2 (dua)
atau lebih actions yan g
berlangsung bersamaan.
2. Join
Mengindikasikan berakhirnya
proses paralel.
Activity Final
Simbol yang merepresentasikan
berakhirnya proses.
32
2.1.3 Rekayasa Perangkat Lunak
Definisi rekayasa perangkat lunak menurut Pressman (2005) adalah
penerapan prinsip-prinsip perancangan yang jelas unt uk menghasilkan
software yang ekonomis, handal, dan mampu bekerja dengan efisien pada
mesin yang sesungguhnya.
Tahap-tahap um um dalam kerangka proses perancangan software
menurut Pressman (2005) :
1. Communication
Tahap ini meliputi komunikasi dan kolaborasi dengan konsumen
untuk mengumpulkan data mengenai kebutuhan software.
2. Planning
Berdasarkan data yang dikumpulkan, mulai merencanakan segala
sesuatu yang dibutuhkan untuk merancang software, seperti kebutuhan
teknis, hasil akhir produk dan jadwal pengerjaan.
3. Modelling
Aktivitas ini meliputi pem bangunan model yang bert ujuan untuk
memahami kebut uhan software dan rancangan yang dibutuhkan unt uk
mewujudkannya.
4. Construction
Tahap dimana software mulai dikem bangkan. Tahap ini meliputi
proses coding dan testing untuk menemukan kesalahan pada kode.
33
5. Deployment
Software mulai disebarkan secara luas kepada konsumen yan g
akan mengevaluasi dan memberikan umpan balik mengenai software
tersebut.
2.1.3.1 Agile Software Development
Agile Software Development merupakan strategi
pengembangan sistem software dimana pengem bang diberikan
fleksibilitas untuk memilih metode dan teknik yang dianggap
paling baik untuk menyelesaikan suatu kebut uhan. Agile Software
Development memiliki keseimbangan yang paling baik antara
produktivitas dan kualitas dalam hal pengem bangan sistem
software (Whitten et al., 2007).
2.1.3.2 Extreme Programming (XP)
XP merupakan salah sat u jenis metode pengembangan
software yang termasuk dalam Agile Software Development.
Metode XP mengutamakan kepentingan dari user dalam setiap
tahap pengembangannya dan menekankan pada kerjasama tim.
Dalam XP, user ikut serta dalam menentukan kebutuhan software
dan pihak pengembang merancang software sesuai keinginan user
tersebut. Setiap perubahan yang terjadi pada software akan
diberitahukan kepada user untuk mendapatkan feedback.
34
Komunikasi antara setiap pihak dalam proses pengem bangan
sangat penting dalam XP.
unit test co nt inuo us int egrat ion
accept ance t est ing
p air p rogramming
Release
user st o ries values accept ance t est cr iteria it erat ion plan
simp le desig n CRC cards
sp ike so lut ions prot ot yp es
r efact oring
sof tw are incrementproject velocit y computed
Gambar 2.23 Extreme Programming
(Sumber : Roger S. Pressman, Soft ware Engineering: A
Practitioner's Approach, 2005)
Berikut adalah tahap-tahap yang digunakan dalam XP
menurut Pressman (2005) :
1. Planning
Tahap ini dimulai dengan penyusunan stories yang
menggambarkan fit ur dan fungsi yang dibutuhkan oleh
software yang dikem bangkan. Setiap story tersebut diberi
35
nilai dan diurutkan berdasarkan prioritasnya oleh user.
Kemudian pengembang akan menentukan wakt u yang
diperlukan untuk setiap story tersebut. Jika ada story yang
membutuhkan wakt u lebih dari tiga minggu dalam
pengembangan, maka user akan diminta untuk membagi story
tersebut menjadi beberapa story yang lebih sederhana.
Kebutuhan baru yang diperlukan dapat ditambahkan sebagai
story baru setiap saat.
2. Design
Desain dalam XP menggunakan prinsip Keep It Simple,
Stupid! (KISS). Desain tersebut akan memberikan pedoman
bagaimana implementasi dari setiap story yang ada. XP juga
mendukung refactoring yang merupakan teknik konstruksi
sekaligus teknik desain. Refactoring merupakan proses
mengubah suat u software system dimana hasil dari kode tidak
berubah nam un struktur kode itu sendiri berubah dan semakin
disederhanakan. Dalam XP, desain dapat dilakukan sebelum
dan sesudah tahap coding dilakukan karena adanya
refactoring yang dilakukan setelah tahap coding dilaksanakan.
36
3. Coding
Tahap ini diawali dengan merancang serangkaian tes
(unit test) yang akan mengevaluasi setiap story. Setelah tes
tersebut dibuat, pengembang memikirkan cara untuk
mengimplementasikannya. Setelah it u baru dilakukan coding
dengan tujuan melewati unit test tersebut.
4. Testing
Pada tahap ini dilakukan pengujian kode dengan unit
test yang telah tersedia. Selain it u juga ada acceptance test
yang berasal dari user dan terfokus pada fungsionalitas sistem
secara keseluruhan.
Kelebihan XP dibandingkan metode lain seperti Waterfall
atau Scrum menurut Pressman (2005) adalah :
1. Dalam Waterfall, jika suatu tahap telah selesai dan terjadi
suatu perubahan maka tidak bisa kembali pada tahap tersebut.
Perubahan hanya bisa dilakukan dengan memulai proses
kembali dari awal. Sedangkan dalam XP telah dirancang
untuk mengakomodasi perubahan tanpa harus mengulang
keseluruhan proses.
2. Dalam Scrum terdapat proses perulangan yang disebut sprint
yang tidak mengijinkan adanya perubahan selama proses
37
sprint tersebut berlangsung. Sedangkan dalam XP, terdapat
proses perulangan yang mengijinkan perubahan selama
perubahan tersebut tidak mengganggu terhadap proses yang
berjalan.
2.1.4 Teknologi Mobile
2.1.4.1 Mobile Phone
Mobile phone atau sering disebut juga sebagai cell phone
adalah suat u device telekomunikasi elektronik portable yan g
memiliki fungsi yang sama seperti pesawat telepon dan dapat
bergerak pada suat u area yang luas. Mobile phone menggunakan
jaringan komunikasi wireless melalui gelom bang radio atau
transmisi satelit. Menurut Chronis, Madan, dan Pentland (2009),
saat ini mobile phone telah menjadi suatu bagian yang umum
dalam kehidupan modern dan dapat ditemukan dimanapun.
Pada awalnya mobile phone berbent uk besar dan terpasan g
secara permanen pada kendaraan. Kemampuan yang disediakan
pun masih terbatas. Seiring dengan perkem bangannya,
kemampuan sebuah mobile phone kini bukan hanya unt uk
menelepon saja melainkan juga unt uk melakukan fungsi lain
seperti Short Message Service (SMS), Multimedia Message
Service (MMS), dan fasilitas internet. Semakin berkembangnya
teknologi mobile phone, maka m uncul istilah smartphone.
38
2.1.4.2 Smartphone
Mengacu pada pendapat Schmidt, Peters, Lamour, Scheel,
Camtepe, dan Albayrak (2009), istilah smartphone digunakan
untuk mendeskripsikan suatu mobile device yang menggabungkan
sebagian besar fungsi yang dimiliki oleh sebuah mobile phone,
Personal Digital Assistant (PDA), dan Personal Computer (PC).
Smartphone juga menyediakan berbagai fit ur yang lebih
canggih daripada mobile phone seperti teknologi touchscreen ,
portable media player, Global Positioning System (GPS),
QWERTY keyboard dan Wireless Fidelity (Wi-Fi). Setiap
smartphone memiliki sistem operasi seperti halnya pada komputer.
Beberapa jenis sistem operasi pada smartphone adalah iPhone OS
(iOS), Android, dan Symbian.
2.1.4.3 Aplikasi Mobile
Aplikasi mobile adalah aplikasi yang berjalan pada mobile
device seperti smartphone. Fungsinya cukup luas, mulai dari
layanan dasar dalam telekomunikasi dan mengirim pesan hingga
layanan tambahan seperti permainan dan video.
Sebagian besar aplikasi mobile yang memberikan layanan
dasar seperti SMS/MMS, browser, dan music player telah
terinstalasi pada device saat pembelian. Unt uk aplikasi tambahan
39
atau tertentu diperoleh dengan proses mengunduh pada sit us
aplikasi tersebut atau melalui toko aplikasi online.
Menurut Mobile Marketing Association pada September
2008, aplikasi mobile dibagi menjadi 6 (enam) jenis :
1. Communications : e-mail client, news client, internet browser.
2. Games : tetris, solitaire, poker.
3. Multimedia : video player, audio player, presentation viewer.
4. Productivity : kalkulator, kalender, word processor.
5. Travel : translator, GPS, peta.
6. Utilities : screen saver, profile manager, task manager.
2.1.5 Android
Menurut Rubin (2007), Android merupakan platform pertama yang
benar-benar terbuka dan lengkap unt uk mobile device. Android juga
memungkinkan pengembangan semua software yang dibutuhkan untuk
menjalankan sebuah mobile phone tanpa adanya keterbatasan kepemilikan
yang dapat mengham bat inovasi mobile phone tersebut.
Android adalah sebuah software stack bersifat open source yang
mencakup sistem operasi, middleware, dan key applications beserta
sekumpulan Application Programming Interface (API) untuk merancan g
sebuah aplikasi mobile (Meier, 2009). Sebagai sebuah sistem, Androi d
adalah sistem operasi unt uk mobile device seperti smartphone dan tablet
40
PC, yang dikembangkan oleh Open Handset Alliance dan dipimpin oleh
Google.
Sistem operasi berbasis bahasa pemograman Java ini berjalan pada
Linux Kernel, dengan middleware, library dan API yang dit ulis dalam
bahasa C, dan software yang berjalan pada suat u kerangka aplikasi dengan
menyertakan Java-compatible libraries berbasis pada Apache Harmony,
yaitu sebuah implementasi Java bersifat open source dikembangkan oleh
Apache Soft ware Foundation yang terdiri dari Java Development Kit (JDK),
virtual machine dan class library.
Android memiliki komunitas pengem bang yang besar dalam
membuat aplikasi sehingga meningkatkan fungsionalitas dari device yang
menggunakannya. Aplikasi yang berjalan di Android ditulis dalam bahasa
pemrograman Java menggunakan Android Software Development Kit
(Android SDK). Aplikasi tersebut dapat diunduh dari situs third-party atau
toko online seperti Android Market.
Android Market adalah sebuah website yang dikem bangkan oleh
Google unt uk mengunduh aplikasi khusus unt uk sistem operasi Android.
Google menggunakan kata "Market" karena Android Market tidak hanya
digunakan oleh user, tetapi para developer juga dapat berpartisipasi dengan
mengunggah aplikasi yang telah dirancang ke Android Market. Pada setiap
device berbasis sistem operasi Android, terdapat aplikasi "Market" yang
merupakan shortcut menuju ke website Android Market unt uk
memudahkan user mencari dan mengunduh aplikasi Android.
41
2.1.6 Arsitektur Android
Gambar berikut merupakan komponen-komponen utama dari sistem
operasi Android yang terbagi menjadi beberapa layer.
Gambar 2.24 Arsitektur Android
(Sumber : http://developer.android.com/guide/basics/what-is-android.html,
2011)
2.1.6.1 Applications
Dalam application layer terdapat beberapa aplikasi awal
yang berasal dari setiap pabrikan seperti e-mail client, program
SMS, browser, dan lain-lain. Sem ua aplikasi, baik aplikasi
original maupun third-party dibuat di application layer dengan
menggunakan bahasa API libraries yang sama.
42
2.1.6.2 Application Framework
Application framework menyediakan sem ua kelas yang
digunakan untuk membuat aplikasi Android dan juga sebuah
gam baran um um unt uk akses hardware serta manajemen user
interface dan application resources. Sebagai sebuah platform
yang bersifat open-development, Android menawarkan para
pengembang kemampuan untuk membuat aplikasi yang kaya dan
inovatif. Para pengem bang bebas menggunakan berbagai fitur dari
hardware devices, mengakses informasi lokasi, menjalankan
background services, mengatur alarm, menambah tanda notifikasi
ke status bar, dan lain-lain.
Berikut adalah sekumpulan services dan sistem yang
mendasari sem ua aplikasi Android (Anonim1, 2011) :
1. Sekumpulan dari views yang dapat dikembangkan untuk
membuat sebuah aplikasi, termasuk lists, grids, text boxes,
buttons, dan embeddable web browser.
2. Content providers yang berfungsi untuk mengakses data dari
aplikasi lain atau untuk memberikan data dari aplikasi itu
sendiri.
3. Resource manager yang menyediakan akses pada non-code
resources seperti localized strings, graphics, dan layout files.
43
4. Notification manager yang memungkinkan sem ua aplikasi
untuk menampilkan tanda notifikasi tersendiri pada status
bar.
5. Activity manager untuk mengatur siklus dari aplikasi dan
menyediakan sebuah common navigation backstack.
2.1.6.3 Libraries
Menurut Meier (2009), pada layer ini Android menyertakan
sekumpulan core library C/C++ seperti libc dan Secure Sockets
Layer (SSL) yang digunakan oleh berbagai komponen pada
sistem Android. Beberapa library lainnya adalah :
1. Media library untuk memutar media audio dan video.
2. Surface manager unt uk menyediakan pengat uran tampilan.
3. Graphics library termasuk Scene Graph Library (SGL) dan
Open Graphics Library (OpenGL) untuk kemampuan
menampilkan grafik dua dan tiga dimensi.
4. SQLite untuk dukungan dalam database.
5. SSL dan WebKit unt uk web browser yang terintegrasi dan
keamanan internet.
44
2.1.6.4 Android Runtime
Android Runtime adalah engine yang berfungsi dalam
menjalankan berbagai aplikasi. Termasuk didalamnya adalah core
libraries, dan Dalvik Virt ual Machine (VM).
Berdasarkan definisi oleh Meier (2009), Core libraries
menyediakan berbagai fungsionalitas yang ada pada Java
libraries pada umumnya sekaligus fungsionalitas dari libraries
khusus Android. Dalvik VM adalah sebuah virtual machine
berbasis register yang telah teroptimasi unt uk memastikan agar
device dapat menjalankan berbagai aplikasi secara efisien. Dalvik
VM bergant ung pada Linux Kernel untuk menjalankan fungsi
threading dan manajemen low-level memory.
2.1.6.5 Linux Kernel
Berbagai core system services seperti keamanan, manajemen
memori, manajemen proses, network, dan driver model ditangani
oleh Linux 2.6 Kernel. Kernel tersebut juga berfungsi sebagai
abstraction layer antara hardware dengan stack yang lain (Meier,
2009).
45
2.1.7 Dasar Aplikasi Android
Semua aplikasi Android dikembangkan menggunakan bahasa
pemrograman Java. Kode Java akan dikompilasi bersama dengan data dan
resource files yang dibut uhkan oleh aplikasi. Semuanya kemudian akan
digabungkan oleh Android Asset Packaging Tool (AAPT) menjadi sebuah
Android package yang menggunakan format .apk. File berekstensi .apk ini
akan menjadi penampung unt uk menyimpan aplikasi dan digunakan dalam
proses instalasi ke mobile device dari user (Meier, 2009).
2.1.8 Komponen Aplikasi Android
Komponen aplikasi Android adalah bagian penting dari sebuah
aplikasi Android. Terdapat empat jenis komponen aplikasi dimana setiap
jenis mempunyai tujuan dan siklus berbeda yang mendefinisikan
bagaimana suatu komponen dibuat dan dihilangkan (Anonim2, 2011).
2.1.8.1 Activities
Sebuah activity mewakili satu tampilan untuk user interface.
Sebagai contoh, sebuah aplikasi e-mail memiliki activity unt uk
menunjukkan daftar dari e-mail baru, membuat e-mail dan
membaca e-mail. Walaupun setiap activity bekerja dalam wakt u
yang sama untuk membent uk suat u aplikasi e-mail yang ut uh,
masing-masing activity bersifat independen dari yang lainnya.
Aplikasi lain juga dapat menggunakan sebuah activity dari
aplikasi e-mail tersebut jika memang diberi hak akses. Sebagai
46
contoh, aplikasi kamera dapat menggunakan activity pada aplikasi
email unt uk membuat email, dengan tujuan unt uk mengirim
gam bar.
2.1.8.2 Services
Service adalah komponen yang berjalan di background
untuk melakukan suatu operasi dalam waktu yang lama. Suat u
service tidak memiliki user interface. Contohnya adalah aplikasi
media player yang memiliki service untuk tetap memainkan lagu
meskipun user sedang menjalankan aplikasi yang lain.
2.1.8.3 Content Providers
Content provider bert ugas mengatur sekumpulan
pengiriman data dari suat u aplikasi. User dapat menyimpan data
di sistem file, SQLite database atau lokasi penyimpanan lain yang
dapat diakses oleh aplikasi. Melalui content provider, aplikasi lain
dapat melakukan query atau memodifikasi data. Sebagai contoh,
Android menyediakan sebuah aplikasi yang mengat ur kontak
informasi user. Dengan demikian, aplikasi yang telah mendapat
ijin dapat melakukan query dari content provider untuk membaca
dan menulis informasi mengenai kontak tersebut.
47
Content provider juga berfungsi dalam membaca dan
menulis data yang bersifat private. Contohnya, aplikasi seperti
notepad mengunakan content provider untuk menyimpan catatan.
2.1.8.4 Broadcast Receivers
Broadcast receiver adalah suatu komponen yang merespons
terhadap broadcast yang terjadi pada sistem secara keseluruhan.
Sebagian besar broadcast berasal dari sistem. Contohnya adalah
suatu broadcast yang menginformasikan bahwa tampilan telah
dimatikan, keadaan low-battery atau sebuah gambar telah diambil.
Aplikasi juga dapat melakukan broadcast, misalnya dengan
membiarkan aplikasi lain mengetahui bahwa ada data yang telah
selesai diunduh ke device dan sudah dapat digunakan. Walaupun
broadcast receiver tidak memiliki user interface, namun tetap ada
status bar sebagai notifikasi yang dapat muncul untuk memberi
tahu user ketika telah terjadi broadcast event. Secara umum,
broadcast receiver hanyalah suatu "entry point" ke komponen lain
dan ditujukan untuk melakukan pekerjaan yang kecil. Sebagai
contoh, broadcast receiver dapat membuat suatu service bekerja
ketika terjadi event tertentu.
48
2.1.9 Wireless Fidelity (Wi-Fi)
Wi-Fi adalah teknologi Wireless Local Area Network (WLAN) yang
menggunakan standar Institute of Electrical and Electronics Engineer
(IEEE) 802.11. Istilah Wi-Fi sendiri merupakan merek dagang dari Wi-Fi
Alliance yang kem udian dijadikan nama produk (Anonim3, 2011).
Untuk dapat menggunakan Wi-Fi, suatu device harus memiliki
Wireless Network Interface Controller (WNIC) untuk menerima dan
mengirim sinyal wireless. Beberapa devices seperti notebook dan
smartphone biasanya telah memiliki WNIC tersebut didalamnya,
sedangkan untuk device lain seperti komputer desktop biasanya terpasang
secara terpisah. Device yang menggunakan Wi-Fi dapat mengakses internet
selama dalam jangkauan jaringan dan tidak ada gangguan pada sinyal
wireless. Area jangkauan jaringan wireless ini disebut dengan istilah Access
Point atau Hotspot.
2.1.10 Socket Programming
Socket Programming merupakan pemrograman dengan
menggunakan Socket API yang biasa terdapat pada setiap sistem operasi
yang memungkinkan sebuah aplikasi untuk mengendalikan dan
menggunakan socket jaringan. Protokol yang digunakan biasanya adalah
UDP dan T CP (Tanenbaum, 2010).
49
2.1.10.1 User Datagram Protocol (UDP)
UDP adalah protokol connectionless yang memungkinkan
aplikasi untuk mengirim paket data tanpa perlu melakukan setup
koneksi. (Tanenbaum, 2010).
UDP mengirimkan segmen yang terdiri dari header
berukuran 8 byte dan diikuti dengan pesan yang dikirimkan
(payload). Header tersebut terdiri dari source port dan destination
port. Source port digunakan unt uk mengirimkan respon kembali
kepada pengirim, sementara destination port merupakan t ujuan
dari pengirim. Beberapa kelemahan pada protokol UDP bila
dibandingkan dengan protokol TCP antara lain tidak adanya error
correction, flow control, dan pengiriman kembali paket data yang
gagal (retransmission).
Contoh penggunaan protokol UDP adalah Domain Name
System (DNS). DNS merupakan program yang digunakan untuk
mencari alamat IP dari suatu host name. Ketika user mengetik
sebuah host name, misalnya www.cs.berkeley.edu maka DNS akan
mengirimkan sebuah paket UDP berisi host name tersebut kepada
DNS server. Server kemudian akan mengirim reply berupa paket
UDP berisi alamat IP dari host name tersebut. Semua ini terjadi
tanpa harus melakukan setup sebelumnya, dan tidak memerlukan
proses release setelahnya.
50
2.1.10.2 Transmission Control Protocol (TCP)
TCP adalah protokol connection-oriented yang artinya
komunikasi bersifat reliable (dapat diandalkan) karena data yan g
dikirimkan pasti diterima oleh penerima setelah sebelumnya
diyakinkan bahwa koneksi telah ada dan tersedia (Tanenbaum,
2010).
TCP dirancang untuk mengatasi kelemahan pada UDP,
seperti masalah error correction, flow control, dan retransmission.
TCP akan memastikan bahwa paket diterima dengan sukses dan
dalam urutan yang benar. Apabila ada paket yang gagal diterima,
maka TCP akan melakukan retransmission unt uk mencoba
menerima lagi paket tersebut. Ketika paket telah diterima dengan
sukses, maka ada kemungkinan bahwa paket tersebut diterima
dalam urutan yang tidak teratur. Dalam keadaan demikian, T CP
akan menyusun kem bali paket tersebut sesuai urutan yan g
seharusnya.
2.2 Teori-Teori Khusus yang Berhubungan dengan Topik Bahasan
2.2.1 Java
Java merupakan bahasa pemrograman yang dikembangkan oleh
James Gosling di Sun Microsystems yang sekarang merupakan bagian dari
Oracle Corporation (Schildt, 2011).
51
Aplikasi Java biasanya dikompilasi menjadi bytecode ( file kelas) yang
dapat berjalan di Java Virtual Machine (JVM) manapun walaupun berbeda
dalam hal arsitektur komputer. JVM inilah yang membuat Java menjadi
platform-independent. JVM bisa berbeda tergantung pada platform yang
digunakan. Misalnya JVM pada Microsoft Windows akan berbeda dengan
JVM pada Mac Os dan Linux. Setiap komputer dan peralatan elektronik
dapat menjalankan program Java selama device tersebut memiliki JVM.
Berdasarkan TIOBE Programming Community Index pada Desember 2011,
Java merupakan bahasa pemrograman paling populer mengalahkan C dan
C++.
Beberapa kelebihan yang ditawarkan bahasa pemrograman Java :
1. Sederhana
Java dirancang untuk mudah digunakan dan mudah dalam
proses penulisan, kompilasi, debug dan pembelajaran
dibandingkan bahasa pemrograman lain.
2. Object Oriented Programming (OOP)
Java bersifat object oriented karena pemrograman di Java
mengutamakan dalam pembuatan objek, manipulasi objek dan
membuat objek bekerja bersama. Hal ini mempermudah
pemrograman karena user dapat membuat program modular dan
menggunakan kembali kode yang ada.
52
3. Platform-independent
Kelebihan utama Java adalah dapat dijalankan di beberapa
platform atau sistem operasi. Hal ini sesuai dengan prinsip Java
yaitu "Write once, run anywhere". Dengan kelebihan ini,
programmer cukup menulis sebuah program Java dan dikompilasi
lalu hasilnya bisa dijalankan di beberapa platform tanpa harus
melakukan perubahan.
2.2.1.1 Java 2 Standard Edition (J2SE)
Merupakan edisi standar dari platform Java yang dirancan g
untuk meningkatkan keamanan serta kemudahan dan merancang
aplikasi berperforma tinggi untuk desktop dengan jangkauan yang
luas meliputi sistem operasi seperti Mac OS, Linux, Microsoft
Windows, dan Sun Solaris (Schildt, 2011).
2.2.1.2 JavaOSC
JavaOSC adalah sebuah library untuk menggunakan
protokol Open Sound Control (OSC) di Java. JavaOSC sendiri
bukanlah sebuah program, tetapi lebih kepada library yang
dirancang untuk mengem bangkan program yang memerlukan
komunikasi melalui OSC. OSC adalah sebuah protokol unt uk
saling berkomunikasi antara komputer, sound synthesizer, dan
device multimedia lain yang telah dioptimasi unt uk kebutuhan
53
teknologi jaringan modern. Kelebihan OSC meliputi inter-
operabilitas, ketelitian, fleksibilitas dan peningkatan kinerja dalam
organisasi dan dokumentasi.
OSC terdiri atas beberapa kelas yang dibutuhkan unt uk
komunikasi antar devices. Beberapa kelas yang disediakan oleh
JavaOSC (Anonim4, 2006) :
1. OSCBundle : Sebuah bundle yang mempresentasikan
sekumpulan paket OSC dan memiliki timetag yang dapat
digunakan oleh penjadwal untuk mengeksekusi bundle tidak
secara langsung tapi dapat dilakukan nanti. Bundle harus
digunakan jika ingin mengirimkan beberapa pesan unt uk
dieksekusi sekaligus atau jika ingin mengatur agar satu atau
dua pesan dieksekusi nanti.
2. OSCListener : Interface yang digunakan unt uk mendengar
pesan OSC yang akan datang.
3. OSCMessage : Kelas ini dibut uhkan untuk membuat sebuah
pesan OSC sederhana (non-bundle). Sebuah pesan OSC
memiliki address penerima dan beberapa argumen.
4. OSCPacket : Merupakan abstract superclass untuk berbagai
jenis pesan OSC.
5. OSCPort : Merupakan abstract superclass untuk OSCPortIn
dan OSCPortOut.
54
6. OSCPortIn : Kelas yang digunakan untuk mendengar pesan
OSC.
7. OSCPortOut : Kelas yang mengirim pesan OSC ke address
dan port spesifik.
2.2.2 Eclipse
Eclipse adalah suat u kumpulan open source yang membangun sebuah
platform untuk merancang dan mengem bangkan software yang bersifat
terbuka dan multi-bahasa. Eclipse terdiri dari Integrated Development
Environment (IDE) dan sistem extensible plug-in. Walaupun sebagian besar
dit ulis dalam bahasa Java, perancangan aplikasi dapat menggunakan bahasa
lain dengan penam bahan plug-in seperti Ada, C, C++, PHP, dan sebagainya.
Eclipse bersifat terbuka karena mengijinkan ekstensi tambahan dari
pihak third-party dan merupakan sebuah IDE karena menyediakan tools
untuk mengat ur workspace; dapat membangun, menjalankan dan debug
aplikasi; dan melakukan penyesuaian terhadap pemrograman. Eclipse
disebut sebuah platform karena dirancang unt uk diperluas tanpa batas
dengan penam bahan berbagai tools (Anonim5, 2011).
2.2.3 Android Software Development Kit (SDK)
Steele dan To (2010) mendefinisikan Android SDK sebagai
kumpulan dari platform, tools, sample code dan dokumentasi yan g
dibut uhkan unt uk mengembangkan aplikasi Android. SDK ini merupakan
55
add-on Java Development Kit (JDK) dan memiliki plug-in terintegrasi
untuk Eclipse IDE.
Tools pada Android SDK dibagi menjadi 2 (dua) jenis :
1. SDK tools yang tidak bergant ung pada platform dan dibutuhkan
pada semua platform Android.
2. Platform tools yang telah disesuaikan untuk mendukung fit ur
terbaru dari platform Android tertentu.
Beberapa tools yang disediakan oleh Android SDK (Meier, 2009) :
1. Android Emulator
Sebuah implementasi dari Android virtual machine yang
dirancang untuk berjalan di komputer. Tool ini dapat digunakan
untuk melakukan pengujian dan debug aplikasi Android.
2. Dalvik Debug Monitoring Service (DDMS)
Untuk penggunaan perspektif DDMS dalam memantau dan
mengontrol Dalvik VM pada tahap debugging.
3. Android Asset Packaging Tool (AAPT)
Untuk membangun Android package file (file berekstensi .apk).
4. Android Debug Bridge (ADB)
Sebuah aplikasi client-server yang menyediakan link ke emulator
sehingga dapat menyalin file, instalasi file .apk, dan menjalankan
shell commands.
56
5. SQLite3
Database tool yang dapat digunakan unt uk mengakses SQLite
database file yang dibuat dan digunakan oleh Android.
6. Traceview
Tool analisis grafik untuk melihat jejak log dari aplikasi Android.
7. MkSDCard
Membuat SDCard disk image yang dapat digunakan oleh
emulator untuk melakukan simulasi media penyimpanan eksternal.
8. dx
Merubah .class bytecode (Java) menjadi .dex bytecode (Android).
2.2.4 Android Development Tools (ADT)
ADT adalah sebuah plug-in untuk Eclipse IDE yang dirancang unt uk
memberikan lingkungan terintegrasi dalam membangun aplikasi Android.
ADT memperluas kemampuan dari Eclipse seperti pengat uran Android
project yang cepat, membuat user interface aplikasi, menambah komponen
berdasarkan Android framework API, debug aplikasi menggunakan
Android SDK tools hingga mengekspor file .apk untuk mendistribusi
aplikasi.
Merancang aplikasi menggunakan Eclipse dengan ADT sangat
direkomendasikan dan merupakan cara tercepat. Dengan adanya project
setting, tools integration, custom Extensible Markup Language (XML)
57
editor dan kemampuan unt uk debug, ADT memberikan peningkatan yang
signifikan dalam perancangan aplikasi Android.
Fitur yang ditawarkan dengan penggunaan Eclipse dan ADT
(Anonim6, 2011) :
1. Perancangan dan pengembangan proyek Android yang terintegrasi dan
mudah mulai dari proses perancangan, packaging, instalasi dan
debugging.
2. Integrasi SDK Tools.
3. Java editor yang menyediakan fit ur IDE umum seperti syntax checking
dan auto-completion.
4. XML editor unt uk mengedit file XML khusus Android dalam user
interface berbasis form.
5. Graphical layout editor unt uk merancang user interface dengan sistem
antarmuka drag-and-drop.
6. Dokumentasi untuk Android framework API yang terintegrasi. User
dapat mengakses dokumentasi hanya dengan hovering pada classes,
methods dan variables.