bab 2 landasan teori - library.binus.ac.idlibrary.binus.ac.id/ecolls/ethesisdoc/bab2/2012-1-00154-if...
TRANSCRIPT
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.
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.
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.