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

84
9 BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Komunikasi Cara manusia berkomunikasi satu sama lain yang kita temui saat ini, di mana manusia memiliki bermacam cara untuk terhubung satu sama lain; karena ketersediaan alat-alat komunikasi yang memungkinkan mereka untuk mempunyai berbagai alternatif menurut kebutuhan maupun keinginan yang paling sesuai dengan situasi dan kondisi yang ada, bukanlah melalui proses satu atau dua tahun atau bahkan sepuluh tahun saja, tetapi cara manusia mengatasi kebutuhan dalam berkomunikasi tersebut telah melalui masa evolusi yang begitu panjang.(Anonim 5, 2012) Perkembangan teknologi kian hari kian berkembang, hal ini terbukti dengan banyak bermunculannya perangkat-perangkat kerja maupun sehari-hari yang disebut perangkat berteknologi tinggi. Perkembangan teknologi ini pun tidak disia-siakan oleh para produsen perangkat telekomunikasi mobile phone, yang menambahkan teknologi-teknologi terbaru dalam perangkat buatan mereka. Perkembangan teknologi informasi menurut Bungin telah mengalami evolusi, yaitu dimulai dari era komputerisasi, era teknologi informasi, era sistem informasi hingga era globalisasi informasi.

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

9

BAB 2

LANDASAN TEORI

2.1 Teori Umum

2.1.1 Komunikasi

Cara manusia berkomunikasi satu sama lain yang kita temui saat ini, di

mana manusia memiliki bermacam cara untuk terhubung satu sama lain; karena

ketersediaan alat-alat komunikasi yang memungkinkan mereka untuk

mempunyai berbagai alternatif menurut kebutuhan maupun keinginan yang

paling sesuai dengan situasi dan kondisi yang ada, bukanlah melalui proses satu

atau dua tahun atau bahkan sepuluh tahun saja, tetapi cara manusia mengatasi

kebutuhan dalam berkomunikasi tersebut telah melalui masa evolusi yang begitu

panjang.(Anonim 5, 2012)

Perkembangan teknologi kian hari kian berkembang, hal ini terbukti

dengan banyak bermunculannya perangkat-perangkat kerja maupun sehari-hari

yang disebut perangkat berteknologi tinggi. Perkembangan teknologi ini pun

tidak disia-siakan oleh para produsen perangkat telekomunikasi mobile phone,

yang menambahkan teknologi-teknologi terbaru dalam perangkat buatan mereka.

Perkembangan teknologi informasi menurut Bungin telah mengalami evolusi,

yaitu dimulai dari era komputerisasi, era teknologi informasi, era sistem

informasi hingga era globalisasi informasi.

10

2.1.2 Internet

Internet, yang merupakan jaringan komputer terbesar di dunia, menurut

Turban et al. (2005: 478), adalah sebuah jaringan yang terdiri dari berbagai

jaringan-jaringan yang terkoneksi satu sama lain. Internet adalah kumpulan dari

200.000 atau lebih komputer pribadi yang dimiliki oleh pemerintah, universitas,

organisasi nirlaba, dan perusahaan. Jaringan-jaringan interkoneksi ini saling

bertukar informasi dengan menggunakan standar dan protokol yang terbuka dan

umum. Jaringan-jaringan ini terkoneksi menggunakan jaringan komunikasi

elektronik yang sangat besar di antara bisnis-bisnis, konsumen, departemen

pemerintah, sekolah, dan organisasi lain di seluruh dunia.

2.1.3 Interaksi Manusia dan Komputer (IMK)

Menurut Shneiderman (2010: 88-89), disebutkan bahwa ada

delapan aturan emas utama yang digunakan dalam merancang antarmuka,

yaitu:

1. Mencoba untuk konsisten

Konsistensi merupakan aturan yang sering dilanggar karena banyak

bagian yang memerlukan konsistensi, antara lain urutan aksi, istilah

yang digunakan, warna, layout kapitalisasi, huruf dan lain-lainnya.

Tampilan yang konsisten akan membantu user untuk merasa tetap

berada dalam aplikasi yang sama walaupun telah berpindah halaman.

11

2. Memenuhi kebutuhan universal

Memenuhi kebutuhan universal maksudnya adalah untuk memahami

kebutuhan user yang berbeda-beda dan membuat desain yang fleksibel

yang mendukung perubahan dalam konten. Perbedaan Novice-Expert,

jarak umur, kecacatan fisik, serta keberagaman penguasaan teknologi

merupakan syarat yang harus menjadi pertimbangan dalam desain.

3. Memberikan umpan balik yang informatif

Umpan balik dari sistem harus ada pada setiap aksi user. Untuk umpan

balik dengan aksi kecil haruslah dibuat sederhana apabila sering

dilakukan. Sedangkan untuk aksi besar dan jarang dilakukan, respon

hendaknya dibuat lebih tegas dan jelas agar user dapat mengerti dengan

jelas.

4. Dialog untuk keadaan akhir

Untuk aksi hendaknya disusun menjadi kategori awal, tengah, dan

akhir. Untuk memberikan kepuasan pencapaian, jeda waktu, dan

sebagai tanda untuk mempersiapkan diri memasuki kategori aksi

selanjutnya. Dengan alasan tersebut dibuatlah umpan balik yang

informatif pada penyelesaian salah satu kategori aksi untuk user yang

sudah melakukan aksi dengan benar, sehingga user dapat melanjutkan

ke tahap selanjutnya.

12

5. Pencegahan kesalahan

Sedapat mungkin sistem didesain agar user tidak dapat membuat

kesalahan yang lebih serius. Contohnya tidak memperbolehkan

karakter alfabet pada kotak entry nomor. Jika user membuat kesalahan,

interface harus mendeteksi kesalahan dan memberikan instruksi yang

mudah dimengerti dan jelas untuk memperbaikinya.

6. Pembalikan aksi yang sederhana

Dalam suatu aplikasi, pada setiap aksi harus terdapat pembalikan aksi.

Fitur ini dapat memperkecil kesalahan, karena user tahu bahwa aksi

bisa dibatalkan. Pembalikan bisa saja atas satu aksi seperti saat

memasukkan data, atau serangkaian aksi seperti memasukkan nama

dan alamat di kotak pengisian.

7. Mendukung pusat kendali internal

User yang sudah terbiasa dengan suatu aplikasi, biasanya ingin

memiliki kendali atas antarmuka dan tanggapan pada aksinya. Aksi

antarmuka yang tidak seperti biasanya, rangkaian pemasukan data yang

membosankan, tidak bisa atau sulit mendapatkan informasi yang

diperlukan, dan tidak bisa menghasilkan aksi yang diinginkan dapat

menimbulkan keresahan dan ketidakpuasan pada user.

8. Mengurangi beban ingatan jangka pendek

Dikarenakan keterbatasan manusia dalam memproses informasi dalam

jangka pendek, dibutuhkan tampilan yang ringan, penggabungan

13

halaman-halaman, pengurangan frekuensi window-motion, pemberian

waktu latihan yang cukup untuk kode-kode, hafalan, dan rangkaian

aksi. Oleh karena itu, dalam setiap perancangan aplikasi dibutuhkan

alur aplikasi yang mudah diingat oleh user.

2.1.4 Smartphone

Smartpone merupakan sebuah high-end mobile phone yang

memiliki beberapa fungsi seperti personal digital assistant, alat telepon,

multimedia, dan menjalankan aplikasi mobile computer yang telah memiliki

kompleksitas yang lebih tinggi daripada mobile phone biasa. Smartphone

menyediakan sebuat host yang akan memudahkan user ketika ingin

melakukan update software dan data plan yang sudah disediakan untuk

beberapa pengguna tertentu. Secara lebih luas hal ini disebut sebagai

ekosistem dari system development sebuah smartphone (M. Wargo, John,

2010).

2.1.5 Aplikasi Mobile

Menurut Romdoni (2010), aplikasi merupakan program yang

digunakan untuk melakukan sesuatu pada system computer. Mobile dapat

diartikan sebagai perpindahan dengan kemudahan berpindah-pindah dari

suatu tempat ke tempat lain tanpa pemutusan atau terputusnya komunikasi.

Sistem aplikasi mobile adalah aplikasi yang dapat digunakan

dengan mudah oleh pengguna saat berpindah-pindah tempat dari suatu

tempat ke tempat lain tanpa pemutusan atau terputusnya komunikasi.

14

Sedangkan akses informasi dari aplikasi mobile biasanya hanya

berupa teks sederhana, jika berupa gambar sekalipun, gambar dengan

ukuran yang tidak terlalu besar. Perangkat mobile yang digunakan masa kini

seperti smartphone, tablet PC, PDA, dll. Beberapa karakteristik perangkat

mobile:

1. Ukuran yang kecil

Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan

perangkat yang terkecil untuk kenyamanan dan mobilitas mereka.

2. Memory yang terbatas

Perangkat mobile juga memiliki memory yang kecil, yaitu primary

(RAM) dan secondary (disk).

3. Daya proses yang terbatas

Daya proses perangkat mobile lebih terbatas dibandingkan desktop.

4. Mengkonsumsi daya yang rendah

Perangkat mobile menghabiskan sedikit daya dibandingkan dengan

mesin desktop.

5. Kuat dan dapat diandalkan

Karena perangkat mobile selalu dibawa ke mana saja, perangkat mobile

harus cukup kuat untuk menghadapi benturan-benturan, gerakan, dan

sesekali tetesan-tetesan air.

6. Konektivitas yang terbatas

Perangkat mobile memiliki bandwidth rendah, beberapa dari perangkat

mobile bahkan tidak memiliki layanan data.

15

2.1.6 Storyboard

Menurut Vaughan (2011: 259), storyboard adalah suatu ringkasan grafis

yang berguna untuk menjelaskan proyek multimedia secara detail dengan

penggunaan kata-kata dan gambaran kasar mengenai tiap-tiap tampilan

gambar, suara, pilihan navigasi, isi teks, atribut proyek, font, bentuk tombol,

umpan balik dan lain-lain. Pembuatan storyboard proyek berguna untuk

mempermudah pembuatan proyek tersebut.

2.1.7 Object Oriented Database

Menurut Satzinger et al. (2010: 503-511), object database management

system (ODBMS) merupakan suatu database management system yang

menyimpan data sebagai objek atau class instance.

Langkah-langkah untuk merancang suatu skema database dari class

diagram :

1. Menentukan kelas mana yang membutuhkan penyimpanan ke

database

2. Menentukan kelas yang memiliki arti kuat yang tidak akan

dihancurkan ketika program atau proses yang membuatnya

berhenti melakukan eksekusi

3. Membuat relationship di antara kelas-kelas yang memiliki arti

kuat

4. Memilih tipe data yang sesuai dan pembatasan nilai (jika perlu)

untuk setiap field

16

Untuk suatu sistem yang baru, skema relasional dapat dirancang

berdasarkan class diagram yang juga merupakan proses perancangan

ERD.

Gambar 2.1 Korespondensi Antara Konsep Object Oriented, Entity- Relationship

Dan Relational Database

(Sumber :Satzinger et al, 2010:511)

2.1.8 Basis Data

Menurut Connolly (2010: 65), basis data adalah sebuah kumpulan

data yang saling berhubungan satu dengan yang lain secara logikal, dan

suatu deskprisi data yang dirancang untuk memenuhi kebutuhan informasi

dalam suatu organisasi. Keuntungan basis data yaitu:

a. Data yang sama dapat digunakan oleh banyak aplikasi dan

sistem.

b. Data disimpan dalam format yang fleksibel, karena basis

data didefinisikan secara terpisah dari sistem informasi dan

program-program aplikasi yang akan menggunakan data.

c. Teknologi basis data menyediakan skalabilitas superior,

dalam arti basis data dan sistem yang menggunakannya

17

dapat ditingkatkan atau dikembangkan untuk memenuhi

kebutuhan-kebutuhan perubahan pada sebuah organisasi.

d. Kemajuan independensi data yang sangat mengurangi

redudansi data telah meningkatkan fleksibilitas.

2.1.9 Object Oriented Analysis and Design

Menurut Mathiassen, et al (2000: 35), definisi dari Object

Oriented Analysis and Design adalah suatu metode yang digunakan untuk

menganalisis dan merancang suatu sistem dengan menggunakan pendekatan

berorientasi objek.

Object Oriented Analysis Design (OOAD) merupakan teknologi

desain yang berbasiskan object dan class, cara berpikir untuk

mengorganisasi software sebagai kumpulan object yang saling berhubungan

baik dalam struktur data maupun perilaku sistem. OOAD juga dapat

diartikan sebagai abstraksi dari dunia nyata yang berbasis object dan

interaksinya dengan object yang lainnya.

Pada esensinya Object Oriented Analysis Design, selalu

berhubungan dengan object dan class. Object memiliki arti sebagai suatu

entitas yang memilki identitas, status dan perilaku dan dapat melakukan

suatu operasi. Dengan menggunakan objek maka sistem dapat mengatur apa

saja yang dapat dilakukan terhadap entitas tersebut. Object adalah sesuatu

hal atau konsep, dapat berupa hal yang nyata, berupa konsep, atau sebuah

abstraksi dari konsep yang diinterpretasikan di dalam software. Sebuah

18

object memiliki state (attributes) dan behavior (method). Setiap object

memiliki karakteristik masing-masing yang dapat dibedakan dengan object

lainnya. Sedangkan class adalah sekumpulan object yang memiliki

kesamaan structure, behavior, dan attribute. Class juga menangani

pembuatan dan penghancuran sebuah object.

2.1.10 Unified Modeling Languange (UML)

Menurut Whitten et al.(2007: 408) ada suatu konvensi pemodelan yang

digunakan untuk menentukan atau menggambarkan sebuah sistem piranti

lunak yang terkait dengan objek.

UML terdiri dari beberapa tipe diagram antara lain :

a. Use Case Diagram

Menurut Whitten et al. (2007: 271), use case diagram adalah

diagram yang menggambarkan interaksi antara sistem, eksternal sistem,

dan pengguna. Diagram ini menjelaskan siapa saja yang akan

menggunakan sistem tersebut dan bagaimana cara pengguna berinteraksi

dengan sistem.

19

Gambar 2.2 Contoh Use Case Diagram

(Sumber : Whitten et al, 2007: 246)

a. Use Case

Pemodelan use case mengidentifikasi dan menggambarkan fungsi-fungsi

sistem dengan menggunakan alat yang disebut use case. Use case

menggambarkan fungsi-fungsi sistem dari sudut pandang pengguna

eksternal dan dalam sebuah cara dan terminologi yang mereka pahami.

Use case disajikan secara grafis dengan elips horizontal dengan nama use

case muncul di atas bawah, bawah, atau di dalam elips tersebut. Sebuah

use case merepresentasikan satu tujuan tunggal dari sistem dan

menggambarkan satu rangkaian kegiatan dan interaksi pengguna untuk

mencapai tujuan.

20

Gambar 2.3 Use Case (Sumber Whitten et.al, 2007: 246)

b. Aktor

Use case diawali atau dipicu oleh pengguna eksternal yang dinamakan

actor/pelaku. Actor menginisialisasi kegiatan sistem, yakni sebuah use

case, dengan maksud menyelesaikan beberapa proses bisnis yang

menghasilkan sesuatu yang dapat diukur. Seorang actor ditampilkan

secara grafis menyerupai manusia dengan nama peran yang dimainkan

oleh actor tersebut pada bagian bawah.

Ada tiga macam tipe aktor yang digunakan dalam perancangan sistem

ini:

1. Primary business actor (Pelaku bisnis utama), stakeholder yang

terutama mendapatkan keuntungan dari pelaksanaan use case dengan

menerima nilai yang terukur atau terobservasi.

2. Primary system actor (Pelaku sistem utama), stakeholder yang secara

langsung berhadapan dengan sistem untuk menginisialisasi atau

memicu kegiatan atau sistem. Pelaku sistem utama dapat berinteraksi

dengan para pelaku bisnis utama untuk menggunakan sistem aktual.

Use case symbol

21

3. External receiving actor (Pelaku penerima eksternal), stakeholder

yang bukan pelaku utama, tetapi menerima nilai yang terukur atau

output dari use case.

Gambar 2.4 Aktor (Sumber Whitten et.al, 2007: 247)

c. Hubungan (Relationship)

Pada diagram use case, hubungan digambarkan sebagai sebuah

garis antara dua simbol. Pemaknaan hubungan berbeda-beda tergantung

bagaimana garis tersebut digambar dan tipe simbol apa yang digunakan

untuk menghubungkan garis tersebut. Berikut ini merupakan hubungan

yang ada pada sebuah diagram use case:

1. Gabungan (Association)

Association adalah hubungan antara pelaku/aktor dengan use case

dimana terjadi interaksi di antara mereka. Association digambarkan

sebagai satu garis lurus yang menghubungkan pelaku dan use case.

Association dapat berbentuk dua arah atau satu arah.

22

Gambar 2.5 Association (Sumber Whitten et.al, 2007: 248)

2. Use Case Narrative

Menurut Whitten, Bentley (2007, hal 256), sangatlah baik untuk

mendokumentasikan narratives secara high-level agar cepat

mendapatkan pengertian dari suatu event dari sistem. Gambar 2.6

mewakilkan apa saja yang terdapat dalam use-case narrative untuk

Member Services System’s Place New Order use case.

23

Gambar 2.6 Versi Pengembangan dari Place New Order Use-Case Narratives

(Sumber Whitten, 2007: 259-260)

Berikut penjelasan dari Gambar 2.6 :

1. Use-case name : nama use-case yang merepresentasikan tujuan dari use-case.

2. Primary business actor : stakeholder yang mendapatkan keuntungan dari

pengeksekusian use-case.

3. Precondition : keadaan dari sistem sebelum use-case dapat dijalankan.

24

4. Typical course of events : urutan normal dari aktivitas yang dijalankan dari

pelaku dan sistem untuk menyelesaikan use-case serta terdapat interaksi antara

keduanya.

5. Alternate courses : jalan alternatif dari kegiatan use-case di luar aktivitas

biasanya.

6. Postcondition : keadaan sistem setelah use-case selesai dijalankan.

b. Class Diagram

Menurut Whitten et al. (2007: 441), class diagram menggambarkan

struktur objek yang terdapat pada sebuah sistem. Diagram ini menunjukkan objek –

objek yang terdapat pada suatu sistem serta relasi antar objek-objek tersebut.

25

Gambar 2.7 Class Diagram

(Sumber Whitten et.al, 2007: 442)

26

Class diagram menggambarkan struktur dan deskripsi class,

package, dan objek beserta hubungan satu sama lain seperti pewarisan,

asosiasi, dan lain-lain.

Class memiliki tiga area pokok yaitu:

1. Nama (stereotype), merupakan nama dari sebuah class.

2. Atribut, merupakan properti dari sebuah class. Atribut

melambangkan batas nilai yang mungkin ada pada objek dari

class.

3. Method, merupakan sesuatu yang dapat dilakukan oleh sebuah

class, atau yang dapat dilakukan oleh class lain terhadap sebuah

class.

Atribut dan method memiliki salah satu sifat berikut:

a. Private, tidak dapat dipanggil dari luar class yang bersangkutan

dan ditampilkan dalam bentuk (-) dalam Class Diagram.

b. Protected, hanya dapat dipanggil oleh class yang bersangkutan

dan anak-anak yang mewarisinya. Sifat protected ditampilkan

dalam bentuk (#) dalam Class Diagram.

c. Public, dapat dipanggil oleh siapa saja dan ditampilkan dalam

bentuk (+) dalam Class Diagram.

d. Package, hanya dapat dipanggil oleh instance sebuah class pada

paket yang sama dan ditampilkan dalam bentuk (~) dalam Class

Diagram.

27

Berikut merupakan notasi dari class diagram:

a. Class

Class adalah blok-blok pembangun pada pemrograman

berorientasi objek. Sebuah class digambarkan pada sebuah kotak

yang terbagi atas tiga bagian, yaitu: nama class, definisi atribut

dan definisi fungsi.

b. Association

Sebuah asosiasi merupakan sebuah hubungan paling umum antara

dua class. Garis ini dapat melambangkan tipe-tipe hubungan dan

juga hukum-hukum multiplicity pada sebuah hubungan seperti one

to one, one to many, many to many.

Gambar 2.8 Relasi Association Pada Class Diagram

(Sumber Whitten et al, 2007:661)

28

c. Composition

Jika sebuah class tidak dapat berdiri sendiri dan merupakan

bagian dari class yang lain, maka class tersebut memiliki relasi

“composition” terhadap class tempat class tersebut bergantung.

Sebuah hubungan “composition” digambarkan sebagai garis

dengan ujung berbentuk jajaran genjang berisi atau solid.

Gambar 2.9 Relasi Composition Pada Class Diagram

(Sumber Whitten et al, 2007: 379)

d. Aggregation

Agregasi mengindikasikan keseluruhan bagian relationship dan

biasanya disebut sebagai relasi “mempunyai sebuah” atau “bagian

dari”. Sebuah agregasi dilambangkan sebagai sebuah garis dengan

sebuah jajaran genjang tidak berisi atau tidak solid.

29

Gambar 2.10 Relasi Composition Pada Class Diagram

(Sumber Whitten et al, 2007: 379)

e. Generalization

Sebuah relasi generalisasi sepadan dengan sebuah relasi

inheritance pada konsep pemrograman berorientasi objek.

Generalisasi dilambangkan dengan sebuah panah dengan kepala

panah yang tidak solid yang mengarah ke kelas induk.

Gambar 2.11 Relasi Generalization Pada Class Diagram

(Sumber Whitten et al, 2007:661)

30

Class diagram digunakan untuk menggambarkan objek dan hubungan di

antaranya. Pada diagram akan terdapat hubungan sebagai berikut, yaitu hubungan

multiplicity, hubungan generalisasi/spesialisasi, dan hubungan agregasi dan

komposisi. Berikut langkah yang dilakukan dalam membuat class diagram :

1. Mengidentifikasi hubungan (asosiasi) dan multiplicity : pada langkah ini,

dilakukan identifikasi hubungan yang ada di antara objek dan kelompok

serta ditambahkan multiplicity untuk memperjelas hubungan antar objek

tersebut.

2. Mengidentifikasi hubungan generalisasi/spesialisasi : setelah

mengidentifikasi hubungan (asosiasi) dan multiplicity, harus ditentukan

hubungan generalisasi/spesialisasi-nya.

Hubungan generalisasi/spesialisasi adalah sebuah hubungan yang terdiri

dari supertype class (abstrak atau induk) dan subtype class (anak atau

konkret). Supertype class biasanya umum karena di dalamnya terdiri dari

atribut umum dan behavior. Subtype class biasanya khusus, di dalamnya

berisi atribut dan behavior unik dari sebuah objek tetapi dia mewarisi

atribut dan behavior dari supertype class.

3. Mengidentifikasi hubungan agregasi dan komposisi: pada langkah ini

ditentukan apakah ada hubungan agregasi atau komposisi dasar. Agregasi

adalah hubungan unik dimana satu objek adalah bagian dari objek lain.

Misalnya ada dua objek A dan B, objek B terdapat di dalam A, tetapi jika

objek A hilang, objek B tetap ada. Hubungan ini tidak mengimplikasikan

pewarisan, dalam hal ini objek B tidak mewarisi behavior atau atribut

objek A. Contohnya seperti objek ruang kelas yang di dalamnya terdapat

31

objek meja dan kursi, tetapi meja dan kursi tetap ada bila tidak ada ruang

kelas. Sedangkan hubungan komposisi sebaliknya, objek B akan hilang

bila objek A hilang, misalnya pada objek kampus terdapat objek mata

kuliah, mata kuliah akan hilang apabila kampus tersebut tidak ada.

4. Menyiapkan class diagram : model ini merefleksikan hubungan

objek/kelas dan multiplicity yang diidentifikasi pada langkah 1, hubungan

generalisasi/spesialisasi yang ditemukan pada langkah 2, dan hubungan

agregasi dan komposisi yang ditemukan pada langkah 3.

32

Gambar 2.12 Objek Asosiasi Kelas dan Multiplicity

(Sumber Whitten et.al, 2007: 377)

33

c. Activity Diagram

Menurut Whitten et al. (2007: 443), activity diagram digunakan

untuk menggambarkan jalannya suatu aktivitas dari sebuah proses atau

sebuah use case secara berurutan. Tidak hanya itu, diagram ini juga

digunakan untuk menggambarkan tindakan (action) yang akan dijalankan

ketika suatu proses sedang berjalan beserta hasil dari proses yang

dijalankan tersebut.

Gambar 2.13 Contoh Activity Diagram

(Sumber Whitten et.al, 2007: 444)

34

Berikut adalah simbol-simbol yang digunakan pada activity diagram :

a) Initial Node

Berbentuk lingkaran penuh yang melambangkan awal proses.

Gambar 2. 14 Notasi Initial Pada Activity Diagram

(Sumber Whitten, 2007: 392)

b) Actions

Berbentuk rounded-rectangle yang melambangkan langkah-

langkah individual dari proses.

Gambar 2. 15 Notasi Action Pada Activity Diagram

(Sumber Whitten, 2007: 392)

c) Flow

Berbentuk tanda panah yang menujukkan perkembangan dari

action. Flow juga tidak perlu ditambahkan kata-kata pada

35

tanda panahnya untuk menjelaskan alurnya kecuali flow

tersebut berasal dari decision.

Gambar 2. 16 Notasi Flow Pada Activity Diagram

(Sumber Whitten, 2007: 392)

d) Decision

Berbentuk diamond dengan satu flow masuk dan dua/lebih

flow keluar. Flow yang keluar dari decision menunjukkan

suatu kondisi tertentu.

Gambar 2. 17 Notasi Decision Pada Activity Diagram

(Sumber Whitten, 2007: 392)

e) Merge

Berbentuk diamond dengan dua/lebih flow masuk dan satu

flow keluar. Merge bertujuan untuk menggabungkan flow

yang terpisah oleh decision

36

Gambar 2.18 Notasi Merge Pada Activity Diagram

(Sumber Whitten, 2007: 392)

f) Fork

Berbentuk batangan hitam dengan satu flow masuk dan

dua/lebih flow keluar. Action yang ada secara paralel dibawah

fork menandakan action tersebut bisa terjadi pada saat yang

bersamaan.

Gambar 2.19 Notasi Fork Pada Activity Diagram

(Sumber Whitten, 2007: 392)

g) Join

Berbentuk batangan hitam dengan dua/lebih flow masuk dan

satu flow keluar. Semua action yang masuk ke dalam join

harus selesai terlebih dahulu sebelum memulai action

berikutnya.

37

Gambar 2.20 Notasi Join Pada Activity Diagram

(Sumber Whitten, 2007: 392)

h) Activity Final

Berbentuk lingkaran penuh yang berada dalam lingkaran lagi

di bagian luar yang melambangkan akhir proses.

Gambar 2. 21 Notasi Final Pada Activity Diagram

(Sumber Whitten, 2007: 392)

38

d. Sequence Diagram

Menurut Whitten et. al (2007: 442), sequence diagram merupakan

sebuah gambaran yang menjelaskan bagaimana objek berinteraksi satu

sama lain melalui pesan dalam eksekusi dari sebuah use case atau sebuah

operasi. Diagram ini menggambarkan bagaimana pesan dikirim dan

diterima antar objek dan urutannya.

Gambar 2.22 Contoh Sequence Diagram

(Sumber Whitten et.al, 2007: 659)

Gambar 2.22 mengilustrasikan contoh sequence diagram beserta

beberapa catatan, yaitu:

1. Actor : actor berinteraksi dengan user interface ditunjukan

dengan simbol actor.

2. Interface class : kotak yang menunjukan kode class dari

user interface. Tanda titik dua (:) merupakan notasi

39

standar sequence diagram untuk menunjukan “instance”

dari class. Untuk menghindari kebingungan tentang jenis

class apakah ini, maka diberikan catatan berupa

<<interface>>

3. Controller class : setiap use-case akan memiliki satu atau

lebih controller class yang digambarkan dengan notasi

yang sama sesuai dengan interface class dan dicatat

dengan <<controller>>

4. Entity class : tambahkan kotak untuk setiap entitas yang

perlu berkolaborasi di setiap rangkaian langkah. Tanda

titik dua (:) menandakan sebuah object instance.

5. Messages : tanda panah mendatar menunjukan pesan yang

dikirim ke class. Setiap pesan memanggil behavior dari

class yang ditunjuk. Ketentuan penulisan dari pesan

dimulai dengan huruf pertama menggunakan lowercase

dan kata selanjutnya dimulai dengan uppercase serta tanpa

menggunakan spasi.

6. Activation bars : bar yang ditetapkan atas lifeline

menunjukan periode waktu dimana setiap object instance

ada, dan mengindikasikan lifetime objek pada RAM.

7. Return message : tanda panah mendatar dan putus-putus,

setiap behavior harus mengembalikan sesuatu, paling tidak

pesan true/false yang menunjukan apakah behavior

tersebut berhasil.

40

8. Self-call : sebuah objek yang dapat memanggil method-

nya sendiri.

9. Frame : berupa kotak yang dapat digunakan untuk

menyertakan satu atau lebih pesan untuk membagi

sequence.

2.1.11 Entity Relationship Diagram (ERD)

Menurut Whitten et al. (2007: 270-271), entity relationship diagram

adalah suatu model data yang menggunakan beberapa notasi untuk

menggambarkan data di dalam konteks entitas dan hubungan yang

dideskripsikan oleh data tersebut.

Penggambaran ERD menggunakan beberapa simbol, yakni:

a. Entity

Entity merupakan sesuatu yang dibutuhkan dalam bisnis untuk

menyimpan data. Entity bisa berupa orang, tempat, benda, konsep

ataupun event yang ingin direpresentasikan dalam suatu database.

Simbol dari entity ini digambarkan dengan persegi panjang.

b. Attribute

Attribute merupakan properti yang dimiliki oleh tiap-tiap entity.

Attribute berfungsi untuk menjelaskan berbagai karakteristik yang

dimiliki entity tersebut.

41

Beberapa jenis key yang terdapat pada ERD adalah:

1. Superkey

Superkey merupakan satu atau lebih atribut (kumpulan atribut) dari suatu

tabel yang dapat digunakan untuk mengidentifikasi entity atau record

dari tabel tersebut secara unik.

2. Candidate Key

Candidate key merupakan calon yang akan dijadikan sebagai primary

key dari suatu entity.

3. Primary Key

Primary key merupakan candidate key yang akan paling sering

digunakan untuk mengidentifikasi suatu entity secara unik.

4. Alternate Key

Alternate key merupakan candidate key yang tidak terpilih menjadi

primary key.

5. Foreign Key

Jika sebuah primary key terhubung dengan tabel lain, maka keberadaan

primary key pada entity tersebut disebut sebagai foreign key.

c. Relationship

Relationship merupakan hubungan antar entity yang memiliki suatu arti

tertentu. Relationship ditentukan berdasarkan fungsinya.

42

2.1.12 Agile Software Development Method : SCRUM

2.1.12.1 Pengertian SCRUM

SCRUM merupakan salah satu pendekatan Project Management yang

membantu dalam Software Development. SCRUM merupakan tipe pendekatan

Agile Software Development Method di mana tim developer memiliki pertemuan

yang rutin dan intens untuk mengevaluasi dan melakukan testing pada fitur-fitur

yang diselesaikan setiap harinya.

SCRUM memiliki pendekatan yang berbeda dengan Project Management

tradisional. Project Management tradisional memiliki Ruang Lingkup yang fix

dan Sumber Daya serta Jadwal yang diperkirakan untuk Ruang Lingkup tersebut.

Pada pendekatan SCRUM yang pasti adalah Sumber Daya dan Jadwal,

sedangkan Ruang Lingkup (visi dan nilai yang ingin dicapai) diperkirakan dari

Sumber Daya dan Jadwal yang dimiliki. Ini membuat SCRUM memiliki

keunggulan untuk mengatur kompleksitas, ambiguitas dan kecepatan perubahan

lingkungan dalam software development secara efektif. Pendekatan SCRUM

dapat dianalogikan seperti sebuah tim rugby yang setiap anggotanya berjuang

bersama-sama untuk menguasai bola dan mencapai tujuan yang sama, sedangkan

pendekatan tradisional dapat dianalogikan seperti pertandingan estafet dimana

setiap peserta menyelesaikan bagiannya dalam proses yang berurutan.

43

Gambar 2.23 Perbandingan Pendeketan SCRUM dan Pendekatan Tradisional

(Sumber Waltmunson, 2011: 2)

2.1.12.2 Nilai Penggunaan SCRUM

SCRUM memberikan keluaran proyek secara bertahap, nilai-nilai dari

fitur utama diberikan secara bertahap dimulai dari fitur paling penting terlebih

dahulu. Pendekatan SCRUM membuat proyek semakin dipahami nilai-nilai dan

artinya oleh setiap anggota tim sehingga ketika proyek harus diakhiri atau

dihentikan sekalipun setiap anggota tim memetik manfaat dan nilai yang banyak

dari proyek tersebut.

Keunggulan SCRUM yang lain terletak pada aktivitas kerja dan

pencarian kebutuhan yang sangat jelas dan spesifik, mengurangi pembahasan

yang berlarut-larut dan tidak perlu dalam analisis seperti pendekatan tradisional.

FIXED

ESTIMATED

Scope(RuangLingkup)

Scope(Ruang Lingkup)

Resource Schedule

Resource Schedule

Traditional

Approach SCRUM

Approach

44

Setiap anggota tim bertanggung jawab terhadap bagiannya dalam peningkatan

pengerjaan proyek yang mendorong rasa memiliki serta akuntabilitas dalam

proyek.

SCRUM sangat unggul dalam proyek yang menghadapi kompleksitas,

ambiguitas dan kecepatan perubahan lingkungan yang sangat besar seperti

proyek aplikasi untuk End-User yang sangat ditentukan trend dan kebutuhan

yang terus berubah. Pendekatan SCRUM menekankan peninjauan terus menerus

untuk proyek yang sedang dilakukan dan dapat menyesuaikan diri dengan

perubahan secara cepat.

2.1.12.3 Penggunaan SCRUM Dalam Project Management

Dalam pendekatan SCRUM ada 3 hal penting yang harus diingat yaitu SCRUM

roles (peran), tools (peralatan), dan processes (proses).

Scrum Roles terdiri dari:

1. Scrum Master, peran dari Scrum Master adalah membantu SCRUM Team

memberikan performa terbaik dan mengatasi masalah yang dihadapi dalam

proyek. Scrum Master tidak memberi tugas / mengarahkan tugas untuk

dikerjakan SCRUM Team melainkan fokus pada SCRUM Team dan

tantangan yang dihadapi oleh SCRUM Team.

2. Scrum Team merupakan tim yang bergerak secara mandiri dan menentukan

sendiri tugas-tugas yang akan diselesaikan dalam sprint , yaitu siklus kerja

regular dan rutin berkisar antara 1-4 minggu yang diberikan.

45

3. Product Owner adalah stakeholders atau pihak yang berkepentingan dengan

proyek ini dan menentukan tujuan dari proyek.

Jika dianalogikan Product Owner dapat diibaratkan sebagai pihak yang

menentukan tujuan dalam peta, Scrum Team adalah mobil yang membawa

proyek sampai ke tujuan dan Scrum Master adalah pihak yang memastikan mobil

berjalan dengan baik dengan cara menyediakan bahan bakar, peta, ban cadangan,

peralatan untuk memperbaiki, dan lain-lain.

Scrum Tools terdiri dari:

1. Shippable Product adalah produk atau fitur yang telah diselesaikan dan siap

memasuki tahap akhir yaitu deployment.

2. Product Backlog adalah daftar fitur-fitur dan produk yang akan diselesaikan

untuk keseluruhan proyek dan diatur berdasarkan skala prioritas.

3. Sprint Backlog adalah fitur-fitur yang akan diselesaikan terlebih dahulu

dalam sebuah siklus kerja 1-4 minggu yang disebut sprint.

46

1.

2.

3.

Product Backlog Sprint Backlog Shippable Product

Gambar 2.24 Basic Scrum Process (Sumber Waltmunson, 2011: 4 )

a. Basic SCRUM process

Setiap fitur-fitur / produk yang akan diselesaikan dalam proyek

terdapat dalam Product Backlog dan secara rutin akan dilakukan pengaturan

ulang skala prioritas dari fitur yang akan diselesaikan dan juga

penghilangan/penambahan fitur dalam product backlog. Fitur yang berada

pada prioritas teratas product backlog akan dimasukkan dalam Sprint

Backlog. Fungsi Sprint Backlog adalah mengeksekusi pembuatan fitur dalam

Project Management, fitur yang telah diambil dari product backlog akan

dipecah-pecah menjadi to-do list spesifik yang akan dieksekusi selama Sprint

Process. Inti dari pendekatan SCRUM ada dalam Sprint Process, sebuah

siklus kerja singkat selama 1-4 minggu dengan siklus kecil harian seperti

yang ditunjukkan dalam gambar. Dalam siklus harian ada pertemuan rutin

SPRINT

1-4 Weeks

47

yang dilakukan setiap anggota Scrum Team untuk koordinasi, membahas

progress dan hambatan yang dihadapi oleh setiap tim dalam Sprint Process.

Pada akhir setiap Sprint Process akan dilakukan dua pertemuan yaitu

Sprint Review dan Sprint Retrospective. Seperti artinya, dalam sprint review

tim akan mendemonstrasikan shippable products kepada product owner dan

melihat apakah produk ini telah memenuhi harapan product owner serta

mengatur ulang isi product backlog dan prioritas pengerjaannya. Sedangkan

Sprint Retrospective merupakan waktu Scrum Master dan Scrum Team untuk

menganalisa sprint process yang dilakukan dan menemukan cara yang lebih

efektif dan efisien dalam meningkatkan siklus sprint berikutnya.

b. SCRUM : Perencanaan dan Eksekusi Bertahap

Konsep utama dari SCRUM berkaitan dengan pendekatannya

terhadap perencanaan dan eksekusi. Ada pendekatan yang melakukan analisis

keseluruhan sebelum melakukan eksekusi terhadap proyek, ada juga

pendekatan yang melakukan analisis sembari mengeksekusi proyek.

Manakah yang lebih baik? Keduanya memiliki keunggulannya sendiri.

Seringkali dalam proyek masa kini hambatan-hambatan, masalah ataupun

kebutuhan tidak bisa dipahami secara menyeluruh hanya melalui analisis

awal. Ada beberapa kebutuhan yang justru ditemukan ketika proyek sedang

berjalan dan dibutuhkan sumber daya lebih untuk menyelesaikan kebutuhan

tersebut. Di sinilah SCRUM melakukan pendekatan yang mengelaborasi

suatu proyek secara bertahap. Dibandingkan melakukan analisis besar di

awal kemudian mengeksekusi proyek, pada pendekatan SCRUM dilakukan

48

elaborasi dan analisis proyek secara bertahap pada siklus-siklus kerja pendek

yang disebut Sprint Process. Scrum Team terus diingatkan akan tujuan awal

pembuatan proyek dan dituntut untuk aktif memikirkan cara mencapai tujuan

tersebut dalam setiap siklus-siklus kerja pendek yang dilakukan.

Pada pendekatan SCRUM perubahan tidak dilihat sebagai ancaman

melainkan kesempatan untuk menemukan informasi yang dibutuhkan dalam

perencanaan dan eksekusi selanjutnya. Fleksibilitas terhadap proyek seperti

inilah yang dibutuhkan dalam pembuatan aplikasi yang berpusat pada user

yang seleranya mudah berubah-ubah.

c. SCRUM : Hasil yang sesuai dengan ekspektasi

Pendekatan SCRUM memiliki sebuah proses unik yang dinamakan

User Stories untuk memastikan hasil dari suatu proyek sesuai dengan

harapan dari user yang bermacam-macam. Format user stories itu sendiri

sebagai berikut :

Sebagai <role/peran> saya ingin aplikasi yang <goal> agar <value/nilai>

Contohnya: Sebagai mahasiswa saya ingin aplikasi chat yang membantu saya

mengatur pertemuan dengan teman-teman agar dapat bersosialisasi dengan

mudah dan murah.

User stories yang bermacam-macam ini membuat tim dapat melihat

harapan dari setiap user dan memastikan hasil produk yang memenuhi

harapan dan nilai yang diinginkan tersebut. Akan tetapi, ketika menghadapi

konflik kepentingan antar user maka hasil akhir produk akan disesuaikan

49

dengan pedoman pengerjaan proyek yang telah disepakati di awal, standar

pengerjaan proyek serta prioritas pemenuhannya.

d. SCRUM : Hasil Keluaran yang bertahap

Masalah yang sering terjadi pada pengerjaan proyek adalah hasil yang

tidak sesuai dengan ekspektasi pemiliknya. Hasil sebuah proyek tidak dapat

diketahui sampai semua proses perancangan dan pembuatannya selesai,

akibatnya ketika proyek selesai banyak bagian yang ternyata telah melenceng

dari harapan awal pemiliknya, untuk memperbaikinya tentu memerlukan

waktu dan sumber daya yang tidak sedikit. Dalam Scrum process hasil

keluaran yang berguna akan dihasilkan pada setiap siklus sprint yang

berlangsung dalam waktu 1-4 minggu. Hasil keluaran ini akan digunakan

oleh pemilik produk dan disesuaikan kembali untuk keluaran selanjutnya.

Contoh: Jika yang ingin dihasilkan adalah sebuah proyek untuk menghitung

gaji seluruh karyawan perusahaan di semua cabang, keluaran dari sprint awal

adalah sebuah aplikasi yang bisa menghitung gaji karyawan dalam satu

cabang terlebih dahulu.

Melalui hasil keluaran yang bertahap ini, pemilik produk dapat

melihat apakah produk yang dihasilkan telah sesuai dengan harapan dan nilai

yang disampaikan pada tahap analisa awal. Jika proyek tersebut diputuskan

untuk dihentikan sekalipun telah dihasilkan sebuah produk yang memiliki

nilai dan fungsi sehingga sumber daya yang dikeluarkan tidak menjadi sia-

sia. Keunggulan lainnya adalah ketika dihasilkan sebuah produk yang

berfungsi dan bisa memenuhi nilai-nilai yang diharapkan, itu akan menjadi

50

pertimbangan bagi pemilik produk untuk melanjutkan pengembangan proyek

tersebut sampai tahap finalnya.

e. SCRUM : Efisiensi dan Produktivitas

Kekuatan utama pendekatan SCRUM ada pada akuntabilitas, spesifik

dan transparannya proyek. Pertemuan yang rutin setelah Sprint Process

harian membuat setiap anggota tim termotivasi dan meningkatkan moral serta

produktifitas tim. Spesifiknya setiap tugas yang akan diselesaikan serta

koordinasi dan identifikasi masalah secara harian membantu setiap individu

dan tim mengatur proses kerja mereka.

Pada pertemuan harian yang berlangsung dalam waktu 15 menit cukup

ditanyakan 3 buah pertanyaan pada Scrum Team :

1.Apa yang kamu lakukan kemarin ?

2.Apa yang akan kamu lakukan hari ini ?

3.Apakah ada halangan dalam menyelesaikan tugas yang kamu janjikan ?

Daripada menunggu berminggu-minggu atau berbulan-bulan sebelum

menyelesaikan masalah dan menghadapi penundaan. Scrum Team bergerak

cepat dalam menyelesaikan tugas dan masalah yang dihadapi serta

menggunakan akuntabilitas melalui pertemuan harian sebagai motivasi

pendorong.

Peran Scrum Master bagi tim adalah untuk menyelesaikan setiap

masalah dan hambatan yang dihadapi tim. Sembari Scrum Team

51

mengerjakan bagian-bagian penting dari proyek, Scrum Master dapat

mencari sumber-sumber pendukung seperti literatur, source code untuk

menyelesaikan masalah yang dihadapi tim, memberi dukungan moral, atau

bahkan membawakan kopi bagi anggota tim. Tugas utama dari Scrum Master

adalah memastikan kemudahan bagi Scrum Team dalam menyelesaikan

setiap tugas yang mereka hadapi.

Sprint retrospective juga merupakan kekuatan yang meningkatkan

efisiensi dan produktifitas proyek. Pada akhir setiap Sprint Process tim akan

bertemu dan membahas apa yang telah baik dalam sprint kali ini, apa yang

dapat ditingkatkan dan perubahan seperti apa yang dapat dilakukan dalam

siklus sprint berikutnya. Hal ini membuat tim dapat belajar dari setiap proses

untuk meningkatkan kualitas siklus berikutnya.

Dapat disimpulkan bahwa SCRUM merupakan pendekatan yang

sesuai untuk sebuah proyek yang kompleks dan dinamis. Proses-proses serta

peran dalam SCRUM meningkatkan efisiensi kerja dari tim serta hasil

keluaran yang berguna secara bertahap. Pendekatan SCRUM membuat

proses analisis dan eksekusi dalam proyek sebagai hal yang menyenangkan

dan sederhana tanpa kehilangan elemen kunci dari manajemen proyek seperti

perencanaan, metodologi, manajemen resiko, komunikasi internal dan

eksternal, manajemen waktu dan manajemen output.

f. Bagaimana memulai SCRUM Project?

52

Sebelum memulai sebuah SCRUM project dibutuhkan fase

perencanaan awal. Pada fase ini SCRUM Team harus membuat arsitektur

proyek dan chief architect yang bertanggung jawab sebagai arsitek utama

proyek.

Selama proyek berjalan arsitektur yang dibuat dapat berubah, namun

SCRUM Team memerlukan sebuah rencana awal, sebuah arsitektur dan

seorang chief architect untuk memulai proyek. Peran chief architect adalah

terus mengingatkan visi dari proyek yang sedang berlangsung berdasarkan

arsitektur yang telah disepakati di awal dan memastikan konsistensi visi

tersebut dalam setiap fase pengembangan. Peran chief architect adalah

memberi saran dan mengontrol developer dan berkomunikasi secara intensif

dengan developer. (Rising, 2000)

Faktor penting dalam mengimplementasikan SCRUM dengan sukses :

1. Karakter personal dari Product Owner, SCRUM Master dan Team

Member berpengaruh terhadap reaksi dan keputusan yang diambil saat

kemampuan tim tidak memenuhi kebutuhan proyek.

2. Karakteristik dari User Stories (requirement) yang dituangkan dalam

siklus Sprint dan kemudian diimplementasikan sebagai produk untuk

stakeholder.

3. Proyek membutuhkan kompetensi dari tim, bisa jadi tim tidak

memiliki semua skill yang dibutuhkan untuk menyelesaikan proyek.

4. Otonomi tim, tim memiliki kebebasan dan independen dalam membuat

keputusan yang berkaitan dengan proyek seperti tools atau teknologi

53

yang digunakan, membuat goal, menangani perubahan user

requirement dan memilih personel dalam tim.

5. Keberagaman dalam tim, keberagaman dalam tim berupa skill, area

keahlian, pengalaman kerja, dan fungsi dari anggotanya.

6. Respon tim terhadap penambahan atau ekstensi dari requirement,

seberapa jauh tim melayani perubahan requirement dalam lingkup

sistem, input data, ouput data, aturan atau proses bisnis, struktur data,

dan user interface.

7. Efisiensi tim, waktu, biaya, personel dan sumber daya yang

dibutuhkan oleh tim untuk memenuhi perubahan requirement yang

diberikan.

8. Performa dari software development, selesai tepat waktu, sesuai

anggaran, dan memenuhi fungsionalitas yang diinginkan adalah

dimensi yang penting untuk mengevaluasi performa dari software

development. (Lee, 2012)

2.1.13 PHP

Menurut Welling dan Thomson (2009: 2-3), PHP adalah bahasa server-

side scripting yang didesain secara spesifik untuk web. Di dalam halaman

HTML, kode PHP dapat di-embed yang nantinya akan dieksekusi setiap waktu

halaman web tersebut dikunjungi. Kode PHP diterjemahkan di web server dan

mengolah HTML atau output lain yang telah pengunjung masukkan sebagai

input. PHP adalah bahasa Open Source, yang berarti source code-nya dapat

diakses, digunakan, diubah, dan didistribusi kembali tanpa perlu membayar. PHP

54

awalnya singkatan dari Personal Home Page tetapi diubah menjadi PHP

Hypertext Preprocessor.

2.1.14 MySQL

Menurut Welling dan Thomson (2009: 4), MySQL (dilafalkan My-Ess-

Que-Ell) adalah relational database management system (RDBMS) yang sangat

cepat dan bagus. Database memungkinkan data disimpan, dicari, disortir, dan

diambil secara efisien. MySQL server mengatur akses ke data untuk memastikan

banyak pengguna dapat bekerja dengan data tersebut secara bersamaan, untuk

menyediakan akses data yang cepat, dan memastikan hanya orang yang memiliki

ijin yang bisa mengaksesnya. Karena itu, MySQL adalah RDBMS yang dapat

dijalankan bersama dengan server yang bisa digunakan banyak pengguna dan

banyak proses secara bersamaan.

2.2 Teori Khusus

2.2.1 JAVA

Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek,

dikembangkan pertama kali pada tahun 1991 di Sun Microsystems oleh James Gosling

Patrick Naughton, Chris Warth, Ed Frank, dan Mike Sheridan. Pada awalnya bahasa ini

diberi nama “Oak”. Namun pada perkembangan selanjutnya di tahun 1995, bahasa ini

berubah nama menjadi “Java”. Anonim 6 (2012).

Java, seperti bahasa pemrograman lainnya, juga sangat dipengaruhi oleh

peningkatan fitur pada bahasa yang sudah lebih dulu ada dan perubahan lingkungan

55

komputasi. Java didesain dengan menggunakan warisan fitur dan karakteristik C dan

C++ yang sudah diperbaiki. Dari segi sintaks, Java mengadaptasinya dari bahasa

pemrograman C++, sehingga banyak kalangan programmer yang menyebut Java adalah

C++ versi internet. Namun hal ini tidak semata-mata membuat Java dibuat sebagai

pengganti C++ karena pada dasarnya ada beberapa fitur C++ yang tidak ada pada Java.

Tujuan awal dikembangkannya Java adalah untuk menciptakan suatu bahasa

pemrograman yang dapat berjalan pada berbagai macam platform. Pada waktu itu,

kebanyakan CPU yang ada di pasaran memiliki keterbatasan dalam menjalankan

compiler untuk mengkompilasi suatu bahasa pemrograman tertentu. Memang, ada

beberapa vendor independen yang sudah mampu untuk membuat compiler sendiri untuk

mengkompilasi bahasa pemrograman pada platform yang berbeda, tapi hal ini sangatlah

tidak efisien dalam hal waktu dan biaya. Sehingga muncul keterbatasan yang sangat

menghambat dalam mengintegrasikan satu sistem dengan sistem lainnya yang berbeda

platform. Inilah yang menjadi tantangan sekaligus menjadi tujuan bagi pengembangan

Java.

Selain itu, Java dikembangkan untuk mendukung pemrograman pada perangkat

kecil, Java memiliki karakteristik berukuran kecil, efisien, dan portable untuk berbagai

hardware. Perkembangannya pernah terhenti karena tidak ada yang tertarik dan tidak

memiliki pasar seperti yang diramalkan. Ketika teknologi internet berkembang, Java

diarahkan untuk menjadi bahasa pemograman internet karena fitur – fitur Java seperti

Architecture Neural, real time, reliable dan secure sangat sesuai untuk pengembangan

internet.

56

2.2.2 Global Positioning System (GPS)

GPS, yang merupakan singkatan dari Global Positioning System, adalah suatu

sistem radio navigasi dan penentuan posisi yang berbasiskan satelit yang dapat

digunakan oleh banyak orang sekaligus dalam segala cuaca, serta didesain untuk

memberikan posisi dan kecepatan tiga dimensi yang teliti, dan juga informasi mengenai

waktu, secara kontinu di seluruh dunia (Abidin, 2006).

GPS menggunakan microwave untuk mengirimkan sinyalnya seperti cahaya dan

gelombang radio, setiap sinyal punya frekuensi yang unik dan panjang frekuensi yang

berbeda. Tidak semua GPS diciptakan sama kemampuannya, akurasi kesalahan dari

GPS bisa mencapai sekitar 100 meter secara horizontal dan 300 meter secara vertikal.

Cara kerja GPS adalah memproduksi kode-kode biner yang terdiri atas 0 dan 1.

Dengan menggunakan perbedaan waktu antar kode yang digenerasi oleh satelit dengan

jam pengguna, GPS bisa mencocokkan kode dan menghitung selisih waktu. Dengan

selisih waktu yang ada dan nilai dari kecepatan cahaya yang diketahui, maka jarak

antara satelit dan penerima bisa diketahui (kecepatan cahaya dikalikan dengan waktu).

Selisih penerima bisa diketahui dengan memakai perpotongan antara jarak dari

satelit-satelit yang memantau. Sekitar 3 satelit diperlukan untuk menentukan posisi 2

dimensi dan 4 atau lebih buruk posisi 3 dimensi

GPS pertama kali dikembangkan oleh Departemen Pertahanan Amerika Serikat

dengan nama NAVSTAR GPS (Navigation Satellite Timing and Ranging Global

57

Positioning System). Awalnya, sistem ini dikembangkan demi kepentingan militer untuk

melakukan survei dan pemetaan. Kini, GPS telah menjadi sistem yang go-public.

GPS mempunyai tiga segmen yaitu :

1. Satelit

Satelit memiliki tiga tugas utama, yakni menerima dan menyimpan data yang

ditransmisikan oleh stasiun-stasiun pengontrol, menyimpan dan menjaga informasi

waktu dengan ketelitian tinggi (ditentukan dengan jam atomik pada satelit), serta

memancarkan sinyal dan informasi secara kontinu kepada pesawat penerima yang

dimiliki pengguna. Satelit GPS mengorbit bumi pada kedudukan yang tetap. Satelit

pertamanya diluncurkan pada tahun 1978 yang mengorbit pada ketinggian 20.200 km.

Hingga tahun 1994, keseluruhan satelitnya berjumlah 24 buah dimana 21 buah

merupakan satelit aktif dan sisanya merupakan satelit cadangan. Kini terdapat lebih dari

30 satelit GPS yang mengorbit di atas bumi.

2. Pengontrol (Controller)

Pengontrol bertugas untuk mengendalikan satelit-satelit yang ada. Dari bumi,

segmen pengontrol ini dapat mengecek kondisi satelit, menentukan dan memprediksi

orbit maupun waktu, melakukan sinkronisasi waktu antar satelit serta mengirimkan data

ke satelit.

3. Penerima / Pengguna (Receiver)

Pengguna menerima data yang dikirimkan oleh satelit. Data yang diterima ini

akan diproses untuk menentukan posisi (tiga dimensi, koordinat di bumi ditambah

dengan ketinggian), arah, jarak dan waktu yang diperlukan oleh pengguna.

58

GPS tracking merupakan teknologi AVL (Automated Vehicle Locator) yang

memungkinkan pengguna untuk melacak posisi suatu kendaraan secara real time. GPS

tracking memanfaatkan teknologi GSM dan GPS untuk menentukan titik koordinat

sebuah objek, lalu menerjemahkannya dalam bentuk peta digital. GPS tracking kini

banyak digunakan sebagai penunjuk jalan bagi kendaraan.

2.2.3 Tracking

Tracking merupakan bagian dari Location Based System yang meningkat

penggunaannya beberapa waktu ini. Dahulu Location Based System hanya digunakan

oleh perusahaan besar yang bergerak di bidang pengiriman ataupun mobil-mobil kelas

atas yang menyediakan sistem untuk menunjukkan jalan dengan Location Based System.

Komersialisasi Location Based System baru dapat dilakukan beberapa tahun ini

dengan perkembangan handset/teknologi yang semakin canggih, murah dan memiliki

fitur Location Based Service bawaan. Location Based Service menjadi umum digunakan

untuk berbagai bidang seperti layanan darurat, tracking aset, navigasi, dan lain-lain.

Pada awal tahun 2000an Location Based System masih mengandalkan cell-location

untuk menentukan posisi, namun dengan perkembangan teknologi dan penanaman chip

GPS pada smartphone terbaru terjadi peningkatan akurasi dan kapabilitas dalam

tracking serta navigasi. Bukan itu saja, dengan mengunduh aplikasi tambahan Location

Based System dapat digunakan untuk menunjukkan lokasi restoran, perpustakaan dan

fasilitas umum terdekat. Menurut Strategy Analytics (2003), LBS dapat bernilai kira-kira

8 juta dolar pada tahun 2008

59

Inti dari Location Based Service adalah menangkap sinyal dan menentukan

lokasi dengan cara mengukur sinyal yang ditangkap. Ada beberapa metode dalam

menentukan lokasi yaitu cell-location, advanced network-based, dan satelite-based

positioning.

Tabel 2.1 Perbandingan Teknologi Tracking

(Sumber Barnes, Stuart J 2003: 3)

Berikut tabel perbandingan dari setiap teknologi dan keterbatasannya. Untuk

penelitian ini akan menggunakan teknologi GPS (Global Positioning System) yang

merupakan bagian dari Satellite Based System. Teknologi ini dipilih karena memiliki

akurasi yang paling baik dalam menentukan lokasi dari antara 3 teknologi yang ada,

60

yaitu dengan akurasi mencapai 10-20m di luar ruangan dan lebih kurang 50m di dalam

ruangan. Selain itu, teknologi GPS dipilih karena platform yang digunakan untuk

penelitian ini adalah Android yang setiap handsetnya telah memiliki perangkat GPS

bawaan sehingga menghilangkan keterbatasan Satelit Based System yang membutuhkan

handset baru yang mahal.

Salah satu penggunaan utama dari LBS adalah dalam hal navigasi dan tracking.

Navigasi dan tracking dapat digunakan ketika berkendara secara pribadi untuk sampai di

tempat yang belum dikenal sebelumnya. Penggunaan lain dari navigasi dan tracking

adalah pada perusahaan pengiriman dan pengangkutan, teknologi tracking membantu

perusahaan untuk mengetahui perkembangan pengiriman secara real-time yang berguna

untuk memotong waktu yang sia-sia saat produksi, transaksi dan pengiriman. Bahkan

teknologi tracking saat ini dapat digunakan untuk menemukan ponsel yang hilang,

asalkan ponsel tersebut telah memiliki dan mengaktifkan aplikasi tracking.

2.2.3.1 Privasi dan Standard

Isu utama yang dihadapi dalam membuat aplikasi tracking adalah privasi dan

standar teknologi. Saat ini teknologi yang digunakan oleh penyedia layanan ini begitu

bermacam-macam dan menghalangi terbentuknya sebuah pasar untuk layanan yang

lebih luas dan dapat digunakan pada bermacam-macam platform. Contoh: Sistem

Tracking pada platform Android akan berbeda dengan platform iOS, Blackberry OS,

Windows Phone maupun webOS.

61

Isu privasi akan bermacam-macam tergantung dari regulasi pada negara

penggunanya. Kita ambil contoh Amerika Serikat yang memiliki FLIP (Fair Location

Information Practice) yang isinya menyatakan bahwa perusahaan harus:

1. Memberi pengguna informasi tentang pengumpulan data oleh perusahaan.

2. Memberi pengguna pilihan berkaitan dengan penggunaan informasi yang

dihasilkan.

3. Memberi pengguna akses pada data tersebut sehingga pengguna dapat

memastikan bahwa data tersebut benar adanya.

4. Menjaga data pengguna dengan aman.

5. Patuh terhadap audit dan pelaksanaan peraturan FLIP.

Dengan regulasi seperti ini, penggunaan Location Based System pada pasar

mobile user yang lebih luas akan mengalami hambatan. Mengatasi masalah privasi

pada negara dengan regulasi yang ketat akan menghambat penetrasi Location Based

System pada pasar mobile user. Ada fakta menarik yang diungkapkan dalam studi

berkaitan dengan kesediaan user untuk mengungkapkan data personalnya dan

bagaimana perusahaan memperlakukan data tersebut. (Anonim 6, 2012)

Mengungkapkan bahwa pengumpulan data serta pengungkapannya oleh pelaku

bisnis kepada pihak ketiga dan kaitannya dalam mempengaruhi persepsi user. User

akan merasa manfaat yang didapatkan dari layanan ini tidak seimbang dengan

privasi yang mereka bagikan. Kemudian didapatkan juga kesimpulan dari penelitian

ini bahwa kontrol terhadap data serta personalisasi terhadap layanan akan

meningkatkan persepsi user bahwa manfaat yang mereka dapatkan lebih besar

daripada privasi yang mereka bagikan.

62

2.2.4 Mobile Phone

Mobile phone adalah sebuah alat elektronik yang digunakan untuk

telekomunikasi selular melalui jaringan BTS khusus (cell-sites). Mobile phone berbeda

dengan telepon nirkabel yang hanya memberikan layanan telepon dalam rentang

terbatas, misalnya dalam sebuah rumah atau kantor melalui telepon tetap dan stasiun

induk yang dimiliki oleh pelanggan dan juga dari telepon dan radio telepon.

Sebagian besar mobile phone saat ini terhubung ke jaringan selular yang terdiri

dari switching point dan BTS (cell sites) yang dimiliki oleh operator jaringan mobile.

Selain fungsi standar, ponsel saat ini mendukung berbagai layanan tambahan dan

aksesoris, seperti SMS untuk pesan teks, email, packet switching untuk akses ke

internet, game, bluetooth, inframerah, kamera dengan perekam video, MMS untuk

mengirim dan menerima foto dari video, MP3 Player, radio, dan GPS. (Anonim 8: 2010)

2.2.5 Android

2.2.5.1 Pengertian Android

Menurut Haseman (2008), Android adalah sistem operasi untuk telepon

seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para

pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh

bermacam piranti bergerak. Awalnya, Google Inc. membeli Android.Inc. Pada

saat perilisan perdana Android, pada tanggal 5 November 2007, Android

bersama Open Handset Alliance menyatakan mendukung pengembangan standar

terbuka pada perangkat seluler. Di lain pihak, Google merilis kode-kode Android

63

di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka

perangkat seluler.

Untuk bergerak cepat dalam persaingan perangkat generasi berikut,

Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile

terbaik (killer apps – aplikasi unggulan). Kompetisi diadakan dalam dua tahap

yang tiap tahapnya dipilih 50 aplikasi terbaik.

Dengan semakin berkembangnya dan semakin bertambahnya jumlah

handset Android, semakin banyak pihak ketiga yang berminat untuk

menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal

yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan

WeatherBug. Situs internet juga menganggap penting untuk menciptakan

aplikasi mobile dalam sistem operasi Android, contohnya oleh MySpace dan

Facebook. (Haseman, 2008: 1)

Smartphone dengan Android OS pertama kali diluncurkan pada tahun

2008. Hingga tahun 2012, Android OS mengalami berbagai perkembangan.

Berikut ini adalah perkembangan Android OS:

1. Android 1.0

Smartphone pertamanya diproduksi oleh perusahaan HTC dan dirilis pada 22

Oktober 2008.

2. Android 1.1

Pada 9 Maret 2009, Android 1.1 dirilis hanya untuk T-Mobile G1. OS versi ini

telah mengalami beberapa perbaikan seperti perbaikan bugs dari versi

64

sebelumnya. Penambahan berbagai fitur seperti voice search (pencarian suara),

show and hide dial pad serta menampilkan detail saat pengguna melakukan

pencarian bisnis menggunakan maps.

3. Android 1.5 (Cupcake)

Dua bulan setelah peluncuran Android 1.1, Google kembali mengeluarkan

smartphone dengan OS versi terbarunya yang lebih dikenal dengan sebutan

cupcake. Smartphone dengan versi ini memiliki kemampuan merekam dan

menonton video dengan modus kamera, mengunduh video langsung ke youtube,

mampu mengakuisisi lokasi GPS dengan lebih cepat, photo gallery yang

terintegrasi, start-up kamera lebih cepat dan berbagai fitur lainnya.

4. Android 1.6 (Donut)

September 2009, smartphone dengan versi yang lebih dikenal dengan sebutan

donut ini dirilis. Smartphone ini dilengkapi dengan virtual on-screen keyboard,

stereo bluetooth, home screen widgets and folders, dan berbagai fitur lainnya

yang diperbarui.

5. Android 2.0 (Eclair)

Pada tanggal 3 Desember 2009, smartphone versi eclair dirilis. Versi ini

melakukan penambahan fitur baru dan pembaruan pada fitur-fitur sebelumnya

seperti kamera, google maps, keyboard, bluetooth dan widget. OS ini mengalami

dua kali perbaikan yang diperbarui dengan versi Android 2.0.1 dan Android 2.1.

6. Android 2.2 (Frozen Yoghurt)

Versi yang lebih dikenal dengan sebutan froyo dirilis pada 20 Mei 2010. Banyak

penambahan dan pembaharuan fitur yang dilakukan, beberapa diantaranya

multiple keyboard language, contact sharing dengan menggunakan bluetooth,

65

optimasi performa, kemampuan WiFi hotspot dan memori. Perbaikan OS

dilakukan beberapa kali melalui versi Android 2.2.1, Android 2.2.2, dan Android

2.2.3.

7. Android 2.3 (Gingerbread)

Versi ini dirilis pada 6 Desember 2010. Versi ini melakukan perbaikan power

management, pembaharuan keyboard yang memungkinkan pengguna dapat

meng-input teks dengan lebih cepat, perbaikan user interface yang mengarah

pada simplicity and speed, dan perbaikan lainnya. Perbaikan OS ini dilakukan

sebanyak lima kali, yakni Android 2.3.3, Android 2.3.4, Android 2.3.5, Android

2.3.6,dan Android 2.3.7.

8. Android 3.0 (Honeycomb)

Versi ini dirilis di Indonesia pada bulan Mei 2011. Versi ini dirancang khusus

untuk tablet. User interface tentu saja sangat berbeda dari OS versi sebelumnya

karena didesain untuk mendukung ukuran layar yang lebih besar. Versi ini

mendukung video chat dan mampu mengenkripsi data pengguna secara

keseluruhan. OS ini diperbaiki melalui versi Android 3.1, Android 3.2, Android

3.2.1 dan Android 3.2.2.

9. Android 4.0 (Ice-cream Sandwich)

Versi ini diperkenalkan pada 19 Oktober 2011. OS ini membawa fitur-fitur dari

versi Honeycomb untuk smartphone dan penambahan fitur lainnya. OS ini juga

dilengkapi dengan face recognition untuk membuka kunci pada smartphone.

10. Android 4.1 (Jelly Bean)

66

Versi ini dirilis tahun 2012. OS versi Jelly Bean ini juga diperuntukkan baik

untuk phone maupun tablet yang memungkinkan untuk digunakan sebagai sistem

operasi komputer atau personal computer.

Perangkat dengan platform Google Android mengalami peningkatan

pengguna dari tahun 2008 sampai tahun 2013 saat ini. Pie chart dan tabel berikut

menggambarkan sebaran penggunaan OS pada seluruh perangkat Android yang

diaktivasi sampai saat ini:

Gambar 2.25 Gambar Diagram Pie

(Sumber Developer Android: http://developer.android.com)

67

Tabel 2.2 Hasil Jumlah Perangkat Android Mengakses Google Play

(Sumber Developer Android: http://developer.android.com)

Tabel ini menunjukkan persen total perangkat aktif yang kompatibel

dengan versi tertentu dari Android. Misalnya, jika mengembangkan aplikasi

untuk versi dari bagian paling atas dari tabel, maka aplikasi akan kompatibel

100% dari perangkat aktif, karena semua API Android yang lebih maju akan

kompatibel atau jika mengembangkan aplikasi untuk versi yang lebih rendah

pada tabel, maka kompatibilitas dengan persentase perangkat ditunjukkan pada

sumbu y, yaitu garis untuk versi yang memenuhi y-axis di sebelah kanan.

68

Gambar 2.26 Android devices that accessed Google Play

(Sumber Developer Android: http://developer.android.com)

69

2.2.5.2 Arsitektur Android

Dari gambar di bawah, kita dapat melihat bahwa ada 4 lapisan yang

mewakili konsep desain Android yang terdiri dari Linux Kernel dan koleksi C /

C++ Library yang menyediakan jasa untuk pengelolaan aplikasi runtime, rincian

lebih lanjut dari setiap lapisan akan dijelaskan mulai dari lapisan terendah.

Gambar 2.27 Framework Android

(Sumber Anonim 9: 2012)

a. Linux Kernel

Android menggunakan Linux versi 2.6 untuk sistem inti (core system)

seperti keamanan (security), manajemen memori (memory

management), manajemen proses (process management), network

stack dan driver model. Kernel juga bertindak sebagai lapisan

abstraksi (abstraction layer) antara perangkat keras dan perangkat

lunak.

70

b. Library

Pada layer library, Android memasukkan satu set Library C++/C

yang digunakan oleh berbagai komponen sistem Android. Library ini

ditampilkan untuk para pengembang melalui kerangka aplikasi.

Beberapa Library inti meliputi:

a. Sistem C Library

Implementasi BSD (Berkeley Software Distribution)

berasal dari sistem C library standar (libc). Dikonfigurasi

untuk perangkat berbasis Linux.

b. Media Library

Berdasarkan Packet Videos Open CORE library

mendukung pemutaran dan perekaman format audio

populer dan format video, serta file gambar statis,

termasuk MPEG4. R264. MP3. AAC. AMR. JPG. dan

PNG.

c. Surface Manager

Manajer Permukaan (surface manager) mengelola akses

ke subsistem dengan menampilkan komposisi lapisan 2D

dan lapisan grafis 3D dari beberapa aplikasi.

d. LidWebCore

Sebuah mesin web browser modern yang unggul, dalam

Android browser dan tampilan web embeddable.

71

e. 3D Library

Implementasi berdasarkan OpenGL ES 1.0 API; Library

menggunakan akselerasi 3D hardware (jika tersedia) atau

yang disertakan. Sangat optimal untuk rasterisasi software

3D.

f. SQLite

Sebuah database yang unggul dan dapat dihubungkan

dengan semua aplikasi Android.

2.2.5.3 Keuntungan Android

Di bawah ini adalah keuntungan yang dimiliki oleh Android:

a. Platform Android adalah Open Source, mengakibatkan para pengembang

tertarik untuk mengembangkan aplikasi pada Android untuk

mengembangkan aplikasi baru dengan kualitas yang tinggi, kreatif dan

inovatif.

b. Karena Platform Android adalah open source terdapat jumlah

pertumbuhan aplikasi yang sangat cepat untuk memenuhi kebutuhan

konsumen.

c. Bukan Cloud Computing seperti push mail Blackberry yang

menggunakan aliran data terpusat. Android dapat menemukan dan

mengakses data dari mana saja. Ini mengakibatkan aliran data di Android

lebih cepat.

72

d. Mendukung Multi-tasking dan Multiple Application dapat berjalan secara

bersamaan. Membuatnya lebih mudah, cepat dan fleksibel untuk

digunakan.

e. Platform Android tidak ditambatkan pada satu perusahaan saja. Jadi siapa

saja yang ingin memproduksi ponsel Android sendiri dapat memulai

pengembangannya secara bebas.

2.2.5.4 Android User Interface

Elemen user interface pada Android yang berfungsi sebagai tampilan

user interface di mana terjadi interaksi antara pengguna dengan sistem Android.

Berikut ini adalah beberapa elemen-elemen yang ada pada user interface

Android:

1. Tabs

Tab yang berada pada action bar memudahkan eksplorasi aplikasi dan

pergantian view ataupun aspek-aspek fungsional yang berbeda dalam

aplikasi. Selain itu tabs juga berguna untuk melihat data set-data set yang

dikategorikan.

Fixed tabs akan menampilkan semua item tab secara bersamaan. Untuk

melakukan navigasi menuju view yang berbeda dapat dilakukan dengan

menyentuh tab atau melakukan swipe ke kanan atau kiri. Fixed tabs

ditampilkan dengan lebar yang sama berdasarkan lebar dari tab label yang

paling lebar. Jika ruang untuk menampilkan seluruh tab kurang, tab label

73

tersebut akan berubah menjadi scrollable tab. Karena alasan tersebut, fixed

tabs paling cocok digunakan untuk menampilkan 1-3 tabs.

Gambar 2.28 Contoh Tabs Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

2. Lists

Lists menampilkan beberapa baris data dalam susunan vertikal. List dapat

digunakan untuk data selection (memilih data) maupun drilldown

navigation (menampilkan detail sebuah data).

Gambar 2.29 Contoh Lists Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

74

3. Grid Lists

Grid lists merupakan alternatif dari standard list view. Grid lists paling

cocok digunakan untuk menampilkan data set yang direpresentasikan

dengan gambar. Berbeda dengan standard list view, grid lists dapat di-scroll

secara vertikal maupun horisontal. Akan tetapi hindari membuat grid lists

yang dapat di-scroll secara 2 dimensi, pastikan grid lists konsisten dalam

fungsi scroll-nya (vertikal atau horisontal).

a. Vertical scrolling

Grid list item yang di-scroll secara vertikal diurutkan seperti arah membaca

tradisional : kiri-kanan dan atas-bawah. Saat menampilkan list, potong

sedikit bagian item di baris paling bawah untuk menyampaikan kepada user

bahwa user dapat melakukan scroll ke bawah untuk menampilkan item

tambahan. Pastikan fungsi ini disesuaikan ketika user melakukan rotasi

layar.

Gambar 2.30 Contoh Vertical Scrolling Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

75

b. Horizontal scrolling

Pada horizontal scrolling list, sumbu vertikal dari grid item bersifat tetap.

Dibandingkan dengan grid list yang di-scroll secara vertikal, pengurutan

item sedikit berubah yaitu dari atas-bawah kemudian baru kiri-kanan.

Teknik yang digunakan masih sama yaitu dengan memotong sedikit item

yang berada pada kolom paling kanan untuk menyatakan arah scrolling.

Sebagai catatan, jangan menggunakan scrolling tabs untuk berpindah antar

view bersamaan dengan horizontal scrolling grid lists karena akan

mengakibatkan konflik horizontal gesture antara view dan navigasi konten.

Jika ingin menampilkan scrolling tabs untuk navigasi view bersamaan

dengan grid list, gunakan vertical grid scrolling untuk navigasi konten list.

Gambar 2.31 Contoh Horizontal Scrolling Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

76

4. Scrolling

Scrolling membuat user dapat melakukan navigasi terhadap konten secara luas

menggunakan gesture swipe. Kecepatan scrolling sesuai dengan kecepatan

gesture. Sebagai tambahan untuk scrolling tradisional, sebuah list alphabet dapat

ditambahkan sebagai index scrolling: sebuah jalan untuk melakukan navigasi

dengan cepat menuju item yang dimulai dengan huruf tertentu. Dengan

menggunakan index scrolling, sebuah indikator akan tampil meskipun user tidak

melakukan scrolling. Menyentuh ataupun menarik indicator tersebut akan

mengakibatkan huruf yang disentuh tersebut tampil.

Gambar 2.32 Contoh Scrolling Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

5. Spinners

Spinners menyediakan jalan tercepat untuk memilih sebuah nilai dari

set/kumpulan nilai. Dalam kondisi default, spinner akan menampilkan nilai yang

saat itu sedang ditunjuk. Menyentuh spinner akan menampilkan sebuah

dropdown menu berisi nilai-nilai lain yang tersedia dalam set, melalui tampilan

ini user dapat memilih sebuah nilai baru.

77

a. Spinners in forms

Spinners berguna untuk pemilihan data dalam form. Spinners dapat

diandalkan dan terintegrasi dengan baik bersama komponen-komponen

lainnya. Gunakan spinners dalam form untuk input data sederhana dan

dalam kombinasi dengan input field lainnya. Sebagai contoh, sebuah text

field dapat digunakan untuk memasukkan alamat email dalam kontak

sedangkan spinner yang berkaitan dapat digunakan untuk memilih

apakah alamat email tersebut merupakan alamat email pribadi/pekerjaan.

Gambar 2.33 Contoh Spinners in forms Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

b. Spinners in action bars

Spinners digunakan di action bar untuk perpindahan antar view. Sebagai

contoh, Gmail menggunakan spinner untuk mengizinkan perpindahan

antar akun atau label yang sering digunakan. Spinner berguna ketika

mengubah view merupakan bagian penting dalam aplikasi, namun tidak

78

terlalu sering terjadi. Jika pergantian antar view sering terjadi gunakan

tabs.

Gambar 2.34 Contoh Spinners in action bars Pada User Interface Android

(Sumber Android Developer : http//developer.android.com)

6. Buttons

Button terdiri dari teks atau gambar yang secara jelas menggambarkan aksi yang

akan terjadi ketika user menyentuhnya. Android mendukung dua tipe button

yang berbeda: basic button dan borderless button. Keduanya dapat diisi oleh

label teks maupun gambar.

Basic button adalah button tradisional dengan border dan background. Android

mendukung dua style untuk basic button: default dan small. Default button

memiliki ukuran font yang lebih besar dan dioptimalkan untuk tampilan di luar

form. Small button ditujukan untuk tampil bersama dengan konten lain dalam

form karena itu small button memiliki ukuran font serta tinggi minimum yang

79

lebih kecil. Gunakan small button dalam form ketika button yang ada harus

sesuai dengan elemen UI lainnya

.

Gambar 2.35 Contoh Basic Button Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

Borderless button menyerupai basic button kecuali bahwa borderless button

tidak memiliki border maupun background. Borderless button dapat digunakan

dengan icon dan teks. Borderless button secara visual lebih ringan daripada basic

button dan terintegrasi dengan baik bersama konten lainnya.

Gambar 2.36 Contoh Borderless Button Pada User Interface Android

(Sumber Android Developer : http//developer.android.com)

7. Text Field

Text field mengizinkan user untuk mengetikkan teks ke dalam aplikasi. Text field

dapat berupa satu baris atau beberapa baris. Menyentuh text field akan

menempatkan kursor di dalamnya dan secara otomatis menampilkan keyboard.

80

Sebagai tambahan, ketika mengetik text field mengizinkan berbagai macam aksi

seperti text selection (cut, copy, paste) dan juga auto complete.

Gambar 2.37 Contoh Text Field Pada User Interface Android

(Sumber Android Developer : http//developer.android.com)

8. Switches

Switches mengizinkan user untuk memilih opsi. Ada 3 jenis switches : checkbox,

radio button dan on/off switches.

Checkbox mengizinkan user untuk memilih beberapa opsi dari sebuah set

(kumpulan data). Hindari menggunakan single checkbox untuk fungsi on/off,

sebaiknya gunakan on/off switch.

Gambar 2.38 Contoh Checkboxes Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

Radio button mengizinkan user untuk memilih satu opsi dari sebuah set

(kumpulan data). Gunakan radio button untuk pilihan eksklusif di mana user

perlu melihat semua opsi yang tersedia bersebelahan. Jika tidak,

pertimbangkan spinner yang menggunakan lebih sedikit ruang.

81

Gambar 2.39 Contoh Radio Buttons Pada User Interface Android (Sumber Developer Android : http//developer.android.com)

On/off switches digunakan untuk mengalihkan kondisi dari sebuah opsi

setting tunggal (true/false, on/off).

Gambar 2.40 Contoh on/off switches Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

9. Dialog

Dialog mendorong user untuk menentukan keputusan atau memberi informasi

tambahan yang diperlukan oleh aplikasi untuk melanjutkan tugasnya. Permintaan

konfirmasi tersebut dapat berupa perintah sederhana seperti cancel/ok sampai

layout yang lebih kompleks yang meminta user untuk mengatur setting atau

mengetikkan teks.

82

Gambar 2.41 Contoh Dialog Pada User Interface Android (Sumber Android Developer : http//developer.android.com)

2.2.5.5 Android Location Strategies

Pada pengembangan aplikasi Android, informasi lokasi pengguna dapat

diketahui dengan menggunakan Global Positioning System (GPS) dan Android's

Network Location Provider. Android's Network Location Provider menentukan

lokasi pengguna dengan menggunakan jaringan Wi-Fi ataupun melalui menara

Base Transceiver Station (BTS) yang terdekat dengan user. Hasil paling akurat

untuk mendapatkan lokasi pengguna adalah GPS tetapi GPS hanya bekerja pada

daerah outdoor.

Pada mobile devices, dalam pembacaan lokasi pengguna bisa terdapat

kesalahan dan ketidakakuratan. Kesalahan dan ketidakakuratan pada lokasi

pengguna disebabkan oleh :

83

1. Multitude of location sources

GPS, menara BTS dan Wi-Fi dapat menjadi sumber untuk mengetahui

informasi lokasi pengguna tetapi masing-masing mempunyai kelebihan dan

kekurangan dalam hal akurasi, kecepatan, jangkauan dan daya tahan baterai.

2. User movement

Perubahan lokasi pengguna akan memerlukan evaluasi ulang terhadap

lokasi pengguna yang didapatkan sebelumnya.

3. Varying accuracy

Estimasi lokasi pengguna yang didapat dari setiap sumber lokasi berbeda-

beda dan tidak konsisten. Lokasi yang didapat sepuluh detik yang lalu dari satu

sumber lokasi bisa saja lebih akurat daripada lokasi baru yang didapatkan

sekarang dari sumber lokasi berbeda.

Pada aplikasi Android dibutuhkan dua user permissions untuk

mendapatkan update lokasi pengguna dari GPS_PROVIDER atau

NETWORK_PROVIDER. User permissions yang dibutuhkan yaitu :

1. ACCESS_FINE_LOCATION : digunakan untuk meminta user

permissions untuk mengakses GPS_PROVIDER dan NETWORK_PROVIDER.

2. ACCESS_COARSE_LOCATION : digunakan untuk meminta

user permissions untuk mengakses hanya NETWORK_PROVIDER.

Berikut ini adalah flow procedures Android untuk mendapatkan lokasi

pengguna :

1. Jalankan aplikasi.

2. Mulai mencari update lokasi dari provider.

84

3. Menjaga estimasi lokasi terbaik yang didapat.

4. Berhenti mencari update lokasi.

5. Lokasi terbaik yang didapat siap digunakan di aplikasi.

Gambar 2.42 Timeline Untuk Mendapatkan Lokasi Pengguna

(Sumber Android Developer : http//developer.android.com)

2.2.6 Messenger

2.2.6.1 Konsep Messenger

Dalam perkembangan teknologi pada saat ini sering terjadi

berbagai macam penemuan-penemuan terbaru dari developer guna

mempermudah aktivitas dan kegiatan yang dilakukan oleh manusia. Salah

satunya messenger yang merupakan alat komunikasi antara komputer satu

dengan komputer lain dengan cara mengirim pesan (message) kepada

komputer yang dituju dengan melalui media internet. Dengan demikian

dapat disimpulkan messenger adalah media komunikasi yang

mengandalkan internet sebagai media pengiriman pesan (message).

Anonim 10 (2012).

Messenger termasuk berbagai spektrum dari email, pesan yang

berupa text yang terdapat pada handphone yang bisa disebut SMS (Short

85

Message Service), instant messaging, sampai dengan Voice-Over-IP

(VoIP) merupakan teknologi yang sangat diminati pada saat ini karena

kemampuannya yang mampu mengirim pesan secara cepat dan dapat

diterima secara langsung setelah beberapa detik dikirim oleh pengirim.

Namun dalam proses pengiriman pesannya sebenarnya tidak dilakukan

dengan mudah karena melibatkan client dan server. Client yang ingin

mengirim pesan harus melakukan identifikasi terlebih dahulu agar client

dapat dikenali oleh server.

Pada saat client ingin mengirim pesan maka client harus

memberikan alamat tujuan pengiriman pesan tersebut kepada messaging

server sehingga ketika pesan tersebut akan diterima oleh messaging

server dilakukan pengecekan alamat yang dituju dan kemudian dilakukan

pengiriman pesan ke alamat tersebut. Messaging server merupakan suatu

program middleware yang menangani pesan yang akan dikirim

menggunakan program yang lain dengan menggunakan suatu aplikasi

Messaging. Dalam pengiriman pesan messaging server memiliki dua

model yaitu point-to-point model dan publish/subscribe model. Pada

point-to-point model pengiriman pesan dilakukan secara langsung melalui

instant messaging sedangkan publish/subscribe model digunakan pada

email.

86

2.2.6.2 Fitur-fitur Messenger

Pengiriman multimedia Instant Messenger ini memiliki beberapa fitur, di

antaranya:

1. Instant Messages

Sebuah teknologi internet yang mengizinkan para pengguna

dalam jaringan internet untuk mengirimkan pesan-pesan

singkat secara langsung pada saat yang bersamaan (real time)

menggunakan teks kepada pengguna lainnya yang sedang

terhubung ke jaringan yang sama.

Konsep yang digunakan oleh teknologi ini muncul pada awal-

awal pengembangan sistem operasi UNIX dan jaringan

Internet; para pengguna yang sudah login dapat mengirimkan

perintah berupa <code>talk</code>, write dan finger untuk

melihat siapa saja yang sudah login dan akhirnya

mengirimkan pesan singkat kepada mereka.

Istilah pesan instan (instant messaging) saat ini pada

umumnya mengacu kepada sebuah teknologi yang

dipopulerkan oleh America Online (AOL), yang kemudian

diikuti oleh Yahoo! (Yahoo! Messenger), Google, dan

Microsoft (Windows Live Messenger) dan perusahaan-

perusahaan lainnya.

2. Chat

87

Menciptakan private message dengan beberapa orang dan

broadcast message ke semua orang yang sedang online dalam

jaringan tersebut.

3. Emoticon

Menampilkan emotion icon berupa gambar bergerak atau

animasi.

2.2.7 SQLite

Menurut Winarno (2012: 185), SQLite merupakan database open source yang di-

embed ke Android. SQLite mendukung fitur database RDBMS standar, seperti sintaks

SQL, transaksi, dan prepared statement. Walaupun demikian, SQLite hanya

membutuhkan sedikit memory saat runtime, yaitu sekitar 250 Kbyte.

SQLite mendukung tipe data berikut:

a. Text yang identik dengan string di Java.

b. Integer yang identik dengan long di Java.

c. Real yang identik dengan double di Java.

Setiap tipe data lain harus dikonversi ke salah satu tipe field ini untuk dimasukkan

ke database. SQLite sendiri tidak memvalidasi apakah tipe yang ditulis ke kolom sesuai

dengan tipe yang didefinisikan dan bisa juga menuliskan integer ke kolom string. SQLite

tersedia di tiap peranti Android. Menggunakan database SQLite di Android tidak

memerlukan layar SQL tambahan untuk bekerja dengan database, database sudah siap

untuk langsung digunakan oleh aplikasi.

88

Beberapa fitur yang ada pada SQLite, antara lain:

1. Serverless, artinya SQLite tidak memerlukan proses pada server melainkan

hanya sebuah file yang diakses oleh library SQLite.

2. Zero Configuration, artinya ketika membuat sebuah database seperti

membuat file biasa.

3. Cross-platform, artinya semua database berada dalam sebuah file cross-

platform dan tidak memerlukan administrasi.

4. Self-contained, artinya terdapat library yang mengandung keseluruhan

database dan langsung terintegrasi pada aplikasi program.

5. Transactional, artinya SQLite memperbolehkan aksi penyimpanan melalui

beberapa proses thread.

6. Full Featured, artinya SQLite mendukung sebagian besar standar SQL92

(SQL2).

7. Highly reliable, artinya tim pengembang SQLite telah mengembangkannya

dengan proses yang serius dan testing yang ketat.

Arsitektur SQLite dibandingkan dengan RDBMS lainnya, berikut ini contoh

perbedaannya:

89

Gambar 2.43 Arsitektur DBMS lain yang memerlukan client library

(Sumber Winarno, 2012:187)

Gambar 2.44 Arsitektur SQLite

(Sumber Winarno, 2012:187)

2.2.8 Google Cloud Messaging For Android

Google cloud messaging adalah layanan yang digunakan untuk mengirim data

dari server ke Android-powered device. Data tersebut dapat berupa pesan ringan yang

memberitahu app ada data baru yang akan diambil dari server (misalnya, film yang

90

diupload oleh seseorang), atau bisa juga pesan yang berisi sampai dengan 4 Kbyte data

payload (sehingga aplikasi seperti instant messaging dapat mengkonsumsi pesan secara

langsung). Layanan GCM menangani semua aspek antrian pesan dan pengiriman ke

aplikasi Android target yang berjalan pada perangkat target. GCM benar-benar bebas

digunakan tanpa batasan kuota, sebesar apapun kebutuhan pesan yang kita inginkan.

(Anonim 11: 2012)

Gambar 2.45 Google Cloud Messaging

(Anonim 11: 2012)

Berikut penjelasan dari gambar 2.45 sebagai berikut:

9. Pertama, mobile phone mengirim GCM id ke sever GCM untuk diregistrasi.

10. Setelah registrasi GCM id sukses, server mengirimkan registration_id ke

perangkat Android.

11. Setelah menerima registration_id, device akan mengirim registration_id ke

server.

91

12. Server akan menyimpan registration_id dalam database untuk penggunaan

selanjutnya

a. Setiap kali push notification, server mengirim pesan ke GCM Server

bersama dengan registration_id perangkat (yang disimpan

sebelumnya dalam database).

b. Server GCM akan mengirim pesan ke perangkat mobile dengan

menggunakan registration_id sebagai pengenal.

2.2.9 JSON (JavaScript Object Notation)

Menurut Vijay Joshi (2010:103) JSON merupakan fungsi teks bahasa

pemrograman yang independen dan merupakan bentuk data asli dari JavaScript. Hal ini

yang membuat lebih ringan dan lebih cepat daripada XML karena JSON memerlukan

lebih sedikit markup dibandingkan dengan XML. Dikarenakan JSON adalah bentuk data

asli dari JavaScript, maka dapat digunakan pada sisi klien dalam aplikasi AJAX yang

lebih mudah daripada XML. Sebuah objek JSON dimulai dengan { dan diakhiri dengan

}.

Menurut Vijay Joshi (2010:103), hanya jenis berikut yang diperbolehkan

dalam JSON:

1. Objek

Sebuah objek adalah kumpulan pasangan kata keys value yang ditutup

dengan { dan }. Dan dipisahkan dengan koma. Keys dan value sendiri

dipisahkan menggunakan titik dua (:). Objek dinilai sebagai array asosiatif

92

atau hash table. Keys merupakan string sederhana dan values dapat berupa

array, string, angka, Boolean, atau null.

2. Array

Seperti bahasa lain, array adalah pasangan-pasangan data yang dapat diakses

dengan index. Untuk mewakili array, nilai-nilai dipisahkan dengan koma

dan diapit [ dan ].

3. String

Sebuah string harus diapit tanda kutip ganda.

4. Jenis terakhir adalah sebuah angka.