49
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 ran can gan yang h ar us menghasilkan suat u kesesuaian antara user, mesin yang digunakan dan layanan yang dibut uhkan den gan 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 ber bagai ak si yang relevan dengan pekerjaannya.

BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

 

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.

Page 2: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 3: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 4: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 5: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 6: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 7: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 8: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 9: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 10: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 11: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 12: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 13: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 14: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 15: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 16: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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).

Page 17: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 18: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 19: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 20: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 21: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 22: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 23: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 24: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 25: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 26: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 27: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 28: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 29: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 30: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 31: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 32: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 33: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 34: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 35: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 36: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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).

Page 37: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 38: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 39: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 40: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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).

Page 41: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 42: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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).

Page 43: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 44: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 45: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 46: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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

Page 47: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.

Page 48: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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)

Page 49: BAB 2 LANDASAN TEORIlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00251... · 2012. 6. 13. · 10 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3

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.