9
BAB 2
TINJAUAN PUSTAKA
2.1
2.1.1
Pressman (2010:13)
mendefinisikan rekayasa perangkat lunak
sebagai proses
penerapan
dan penggunaan
prinsip-prinsip
perancangan yang dapat menghasilkan software
yang ekonomis dan
dapat bekerja secara efisien pada mesin-mesin yang akan dipakai.
2.1.2
Mengacu pada
pendapat
Pressman (2010:68), metode agile
adalah suatu metode yang dapat merespons perubahan dengan cepat.
Ketika terjadi perubahan requirement, developer
yang menerapkan
metode agile
dapat dengan cepat mengadaptasi requirement
baru
tersebut ke dalam proyek atau program yang sedang dikerjakannya.
Extreme Programming merupakan salah satu metode yang termasuk
dalam metode agile.
2.1.2.1 Extreme Programming (XP)
Mengacu pada pendapat Pressman (2010:72), Extreme
Programming
merupakan salah satu metode pengembangan
software
yang termasuk dalam Agile Software Development.
XP mempunyai 5 (lima) nilai yang menjadi fondasi yaitu:
a.
Komunikasi (Communication)
Komunikasi yang efektif dalam XP membutuhkan peran
antara developer
dan user
dalam menentukan fitur apa
yang dibutuhkan serta kegunaan software
tersebut. XP
menekankan adanya kolaborasi yang baik antara developer
dengan user, sehingga pihak user
dapat terlibat langsung
mengenai konsep software serta adanya umpan balik terus
menerus.
|
10
b.
Kesederhanaan (Simplicity)
Untuk mencapai kesederhanaan, XP membatasi developer
hanya merancang kebutuhan yang mendesak dibandingkan
kebutuhan mendatang, sehingga memudahkan untuk
diimplementasikan dalam pemrograman. Jika rancangan
harus diubah, dapat dilakukan refactoring. Refactoring
yang dimaksud adalah memungkinkan software engineer
mengubah struktur internal desain atau source code
suatu
rancangan tanpa
mengubah fungsi eksternal serta
perilakunya.
Refactoring
dilakukan untuk meningkatkan
efisiensi, readability, dan performa dari suatu rancangan.
c.
Umpan balik (Feedback)
Umpan balik berasal dari 3 (tiga) sumber yaitu
implementasi software
itu sendiri, user, dan anggota tim
software yang lain. Umpan balik dilihat dari implementasi
output, fungsi, dan karakteristik use case.
Akhirnya,
sebagai persyaratan baru yang berasal dari bagian
refactoring, tim memberikan
user
dengan umpan balik
yang cepat mengenai biaya.
d.
Keberanian (Courage)
Praktek yang dilakukan
dalam XP lebih menekankan
keberanian atau dengan kata yang tepat adalah disiplin.
Tim developer agile XP harus memiliki kedisiplinan dalam
merancangan kebutuhan sekarang, mengenali kebutuhan
yang akan datang yang mungkin akan berubah secara
drastis, sehingga memungkinkan untuk mengubah
rancangan dan implementasi code.
e.
Menghargai (Respect)
Setiap tim developer
mempunyai nilai yang harus
ditanamkan dan dihargai oleh sesama anggota juga antara
stakeholder dan anggota tersebut.
|
11
XP menggunakan pendekatan object-oriented
sebagai
paradigma pengembangan dan mencakup seperangkat aturan.
Dalam XP, terdapat 4 (empat) kerangka kegiatan yaitu
planning, design, coding
dan testing.
Berikut merupakan
proses XP menurut Pressman (2010:73):
1.
Planning
Tahap planning
dilakukan dengan membuat sebuah user
stories yang menjelaskan output, fitur dan fungsional dari
software yang dibuat.
2.
Design
Design pada XP dilakukan dengan mengikuti prinsip Keep
It Simple (KIS). Desain
yang lebih sederhana selalu lebih
disukai dibandingkan dengan desain yang complex. Untuk
desain yang sulit, XP akan menggunakan Spike Solution
dimana pembuatan desain dibuat langsung ke tujuan. XP
juga mendukung adanya refactoring
dimana software
system
diubah sedemikian rupa dengan cara mengubah
struktur kode dan menyederhanakan kode.
3.
Coding
Tahap XP ini diawali dengan membangun serangkaian tes
(unit test), setelah itu pengembang harus berfokus kepada
implementasi untuk melewati tes. Dalam XP juga
diperkenalkan istilah Pair Programming
dimana proses
penulisan program dilakukan secara berpasangan. Dua
orang programmer
saling bekerja
sama di satu komputer
untuk menulis program. Dengan melakukan ini akan
didapat real-time problem solving
dan real-time quality
assurance.
4.
Testing
Testing
dilakukan dengan pengujian kode pada unit
testing. Dalam XP juga terdapat acceptance test atau biasa
disebut customer test.
Pengujian
ini dilakukan oleh
customer yang berfokus kepada fitur dan fungsi dari sistem
|
![]() 12
secara keseluruhan. Acceptance test
ini berasal dari user
stories yang telah diimplementasikan.
(Sumber: Pressman, 2010:74)
2.2
Berikut
merupakan pengertian interaksi manusia dan komputer,
beserta teori mengenai delapan aturan emas, dan lima faktor terukur.
2.2.1
Mengacu pada pendapat Shneiderman dan Plaisant (2010:22),
interaksi manusia dan komputer merupakan ilmu yang berhubungan
dengan perancangan, evaluasi, dan implementasi yang mempelajari
cara komunikasi antara sistem komputer dengan user.
2.2.2
Interaksi yang erat dengan user
menyebabkan pilihan yang
tepat untuk
tugas patokan
yang merupakan dasar untuk tujuan
kegunaan dan ukuran. Untuk setiap tipe user
dan setiap tugasnya,
faktor manusia
terukur yang tepat mengarahkan sebuah perancangan
melalui proses pengujian. Mengacu pada pendapat
Shneiderman
dan
Plaisant
(2010:32), terdapat lima faktor yang dijadikan pedoman
dalam perancangan antarmuka yang user friendly:
|
13
1.
Waktu belajar
Lamanya waktu yang diperlukan user
untuk mempelajari
bagaimana menggunakan tindakan yang relevan terhadap sebuah
tugas.
2.
Kecepatan kinerja
Lamanya waktu yang dibutuhkan oleh user
untuk mengerjakan
suatu tugas.
Untuk mendapatkan
kecepatan kinerja yang baik
dapat dilakukan dengan cara mengurangi kompleksitas dalam
tugas.
3.
Tingkat kesalahan user
Berapa banyak kesalahan yang dilakukan user, seberapa dalam
kesalahan tersebut, dan bagaimana user
mengendalikan serta
memperbaiki kesalahan tersebut.
4.
Daya ingat
Berapa lama user dapat mempertahankan
ingatannya akan sesuatu
yang telah dipelajari setelah jangka waktu tertentu seperti satu
jam, satu hari, atau seminggu.
5.
Kepuasan subjektif
Berapa banyak user
tertarik
menggunakan berbagai aspek yang
ada dalam suatu interface. Hal tersebut dapat diketahui dari hasil
wawancara atau survei tertulis yang meliputi skala kepuasan dan
ruang untuk berkomentar secara bebas.
2.2.3
Mengacu pada pendapat Shneiderman dan Plaisant (2010:88-
89) terdapat delapan aturan emas yang digunakan sebagai pedoman
dalam merancang suatu user interface yang baik, yaitu:
1.
Berusaha untuk konsisten (Strive for consistency)
Bentuk konsistensi dalam perancangan user interface
meliputi
penggunaan warna, menu, layout, pemilihan jenis huruf, bahasa
yang digunakan, dan hal lainnya yang harus konsisten diterapkan
secara keseluruhan.
|
14
2.
Menyediakan fungsi yang bersifat universal (Cater to Universal
Usability)
User
yang beragam menyebabkan rancangan layar harus
mempertimbangkan berbagai perbedaan dalam usia, hambatan
fisik, dan keanekaragaman teknologi. Jadi, ada pemberian
petunjuk untuk user
awam dan shortcuts
yang universal
untuk
user.
3.
Memberikan umpan balik yang informatif (Offer information
feedback)
Untuk setiap tindakan user, sebaiknya disertakan suatu sistem
umpan balik agar tercipta suasana yang komunikatif. Pada
tindakan yang kecil dan sering dilakukan, dapat diberikan umpan
balik yang sederhana. Tetapi pada tindakan yang besar dan
merupakan hal yang penting, maka umpan balik yang diberikan
sebaiknya lebih substansial.
4.
Merancang dialog untuk menghasilkan keadaan akhir (Let the
user know when they have completed a task)
Urutan tindakan harus diorganisir ke dalam kelompok dengan
bagian awal, tengah, dan akhir. Umpan balik yang informatif akan
memberikan indikasi bahwa pekerjaan telah selesai dan cara yang
dilakukan sudah benar dan dapat dilanjutkan ke kelompok
tindakan berikutnya.
5.
Memberikan penanganan dan pencegahan kesalahan yang
sederhana (Offer simple error handling)
Sedapat mungkin sistem dirancang dapat mencegah
user
tidak
dapat melakukan kesalahan fatal. Jika user
melakukan kesalahan,
sistem dapat mendeteksi kesalahan dengan cepat dan memberikan
instruksi yang sederhana dan mudah dipahami oleh user
untuk
penanganan kesalahan.
6.
Memungkinkan
pengembalian aksi yang mudah (Permit easy
undo)
Dalam suatu waktu, user
mungkin tidak sengaja melakukan
tindakan yang tidak diinginkan dan ingin melakukan pembatalan.
Hal ini dapat mengurangi kecemasan
user
atas kesalahan yang
|
15
dilakukan sehingga dapat dibatalkan
dan
user
tidak perlu takut
untuk mengeksplorasi pilihan-pilihan lain yang belum biasa
digunakan.
7.
Mendukung pengendalian
internal (Provide a sense of user
control)
User
memiliki kendali dalam
mengontrol sistem dan sistem akan
kembali merespons
tindakan yang dilakukan user, dan bukan
sebaliknya. Sehingga
sistem dirancang dengan
user
sebagai
inisiator daripada responden.
8.
Mengurangi beban ingatan jangka pendek (Reduce short term
memory load)
Keterbatasan ingatan manusia membutuhkan tampilan yang
sederhana sehingga user tidak perlu banyak menghafal. Tampilan
dari tiap halaman dibuat sederhana dan frekuensi perpindahan
window harus dikurangi.
2.3
Mengacu pendapat dari Stark pada NetMagazine.com
(2012),
smartphone dan desktop computer sangat berbeda, baik dari segi besar layar,
bandwidth yang ditawarkan,
dan penggunaan
baterai. Banyaknya perbedaan
antara perangkat smartphone
dan desktop computer, maka perancangan
interface
untuk perangkat tidak dapat
disamakan. Berikut ini 10 (sepuluh)
prinsip-prinsip Mobile Interface Design.
1.
Mobile Mindset
Dikarenakan adanya perbedaan dalam pola perancangan aplikasi mobile
dan desktop, berikut merupakan pola pikir perancangan aplikasi mobile:
a.
Be Focused: Banyak belum tentu lebih baik, lebih baik hilangkan fitur
yang tidak berguna dalam aplikasi yang akan dibuat.
b.
Be Unique: Banyak aplikasi terdahulu ataupun aplikasi nantinya yang
sejenis dengan aplikasi yang akan dibuat. Jika aplikasi yang akan
dibuat tidak memiliki keunikan, tentunya user tidak akan memilih
aplikasi tersebut.
c.
Be Charming: Penting pada sebuah aplikasi untuk mudah digunakan,
dapat diandalkan dan menyenangkan user.
|
16
d.
Be Considerate:
Pengembangan aplikasi biasa berfokus pada
kesenangan dalam pengembangan aplikasi. Namun penting juga untuk
menempatkan diri pada posisi user.
2.
Mobile Context
Penting untuk membedakan alasan orang menggunakan sebuah aplikasi
mobile. Hal ini dapat membantu para developer
merancang aplikasi
dengan konteks yang dibutuhkan user. Ada 3 (tiga) konteks utama, yaitu:
a.
Bored: Banyak orang menggunakan aplikasi mobile
untuk mengisi
kekosongan waktu luangnya. Dalam konteks ini, aplikasi yang
dibutuhkan adalah aplikasi yang dapat
mengisi waktu luang. Contoh:
Facebook, Twitter, Angry Bird dan web browser.
b.
Busy: Terkadang aplikasi mobile
digunakan untuk menyelesaikan
tugas dengan cepat dan handal dalam lingkungan yang mikro dan
kritis. Contoh aplikasi yang digunakan: Tripod, email, kalender dan
perbankan.
c.
Lost: User
sering berada pada kondisi dimana
user tertarik untuk
menjelajahi situasi atau tempat yang tidak diketahui. Dalam konteks
ini, daya tahan baterai dan konektivitas yang terbatas tentunya
menjadi perhatian utama sehingga diperlukan offline
support
dan
penghematan penggunaan daya pada fitur yang menghabiskan baterai
seperti pencarian lokasi dan lain-lain.
Contoh aplikasi yang
digunakan: Maps, Yelp, dan Foursquare.
3.
Global Guidelines
Setiap aplikasi yang berbeda, memiliki pendekatan, rancangan dan teknik
yang berbeda, berikut merupakan pedoman global yang harus
diperhatikan dalam merancang sebuah aplikasi:
a.
Responsive: Aplikasi yang responsive
sangat diperlukan oleh user.
Jika user melakukan interaksi terhadap aplikasi, maka aplikasi harus
dapat menjawab langsung interaksi dari user.
b.
Polish: Perbaharuan
pada aplikasi seperti detail rancangan bahkan
fitur merupakan hal yang berarti, karena sebuah detail akan
diperhatikan dan dihargai oleh user.
|
17
c.
Thumbs: Ibu jari
merupakan jari yang paling interaktif dalam touch-
screen application, sehingga aplikasi harus dirancang mengutamakan
kenyamanan ibu jari dalam berinteraksi.
d.
Targets: Penting untuk menempatkan fungsi-fungsi pada aplikasi
dengan baik, seperti penempatan tombol backspace
di samping
tombol enter
untuk mengirim pesan pada aplikasi Short Message
Service
(SMS)
merupakan ide yang buruk. Selain itu, tombol perlu
didesain agar dapat ditekan oleh ujung jari dengan mudah.
e.
Content: Pengguna elemen interface
seperti tombol, tab, bar
seharusnya dikurangi sehingga aplikasi terpusat pada konten aplikasi.
f.
Control: Ketika aplikasi membutuhkan control, letakkan control pada
bagian bawah kanan layar. Contoh: control
adalah seperti next
dan
previous pada aplikasi pemutar musik.
g.
Scrolling: Sebaiknya
menghindari scrolling
dalam aplikasi, aplikasi
yang tidak memiliki scrolling
lebih terlihat solid
karena aplikasi
tersebut jelas dan tidak membingungkan user dalam mencari konten.
4.
Navigation Models
Ada beberapa model navigasi untuk rancangan interface aplikasi mobile,
yaitu:
a.
None: Aplikasi single-screen
seperti aplikasi stopwatch
sederhana
yang tidak memerlukan halaman lain. Contoh: aplikasi cuaca pada
iPhone.
b.
Tab bar: Aplikasi yang memiliki lebih dari satu bidang area aplikasi,
biasanya memiliki rancangan tab bar
pada bagian atas aplikasi.
Contoh: twitter pada iPhone.
c.
Drill down: Aplikasi yang terbentuk seperti sebuah daftar dan detail
dalam hierarki. Contoh: settings app pada iPhone.
5.
User Input
Aplikasi yang memiliki input
sebuah teks harus memperhatikan
kenyamanan user dalam mengetik pada keyboard
dari perangkat yang
ada. Aplikasi memiliki pilihan keyboard dari perangkat yang ada untuk
memudahkan user yang memiliki kendala dengan jari yang berbeda
dengan user lainnya. Jika aplikasi terdapat fitur utama dalam pengetikan,
maka harus tersedia fitur landscape dalam penggunaan aplikasi.
|
18
6.
Gestures
Salah satu aspek yang penting pada perancangan interface aplikasi adalah
gesture. Berikut merupakan gesture yang sering digunakan:
a.
Invisible: Banyak gesture
yang bisa dilakukan pada sebuah aplikasi,
seperti flich dan swipe. Perlu adanya informasi untuk mengeksekusi
gesture
sehingga user tidak mengalami kebingungan dalam
menjalankan aplikasi.
b.
Two Hands: Biasanya gesture
ini sering digunakan untuk melakukan
zoom
pada aplikasi yang memiliki fitur ini. Sering kali gesture
ini
digunakan pada
aplikasi yang berhubungan dalam bidang pemetaan
karena akan digunakan untuk melihat tempat yang jaraknya lebih
dekat.
7.
Orientation
Aplikasi berorientasi portrait
merupakan orientasi yang paling populer
untuk sebuah rancangan aplikasi, tetapi jika aplikasi membutuhkan
banyak sekali pengetikan, lebih baik aplikasi disuguhkan orientasi
landscape sehingga user dapat mengakses keyboard yang lebih besar.
8.
Communications
Dalam membuat aplikasi perlu adanya komunikasi antara aplikasi dan
user, berikut merupakan komunikasi yang dapat dilakukan :
a.
Provide feedback: Aplikasi harus menyediakan feedback instan untuk
setiap interaksi user dengan aplikasi. Jika tidak terdapat feedback dari
aplikasi, user akan menduga
bahwa aplikasi tersebut tidak berjalan
dengan baik. Feedback
yang disediakan dapat berupa teks, visual
maupun suara. Jika aplikasi sedang dalam keadaan
loading, maka
akan terdapat sebuah petunjuk bahwa aplikasi sedang loading.
b.
Modal alerts:
Modal alerts
sangat mengganggu user
dalam
berinteraksi dengan aplikasi. Sehingga sebaiknya modal alerts dibuat
untuk sebuah situasi yang penting. Jangan menggunakan modal alerts
untuk pemberian informasi.
c.
Confirmation:
Perlu adanya konfirmasi dalam aksi yang dilakukan
oleh user. Ketika user ingin melakukan penghapusan pada sebuah file,
maka muncul sebuah bar
yang menanyakan kesediaan user
untuk
menghapus file.
|
19
9.
Launching
Ketika user membuka aplikasi kembali setelah digunakan sebelumnya,
sebaiknya aplikasi
tetap
terbuka pada tampilan operasi terakhir.
Bila
dimungkinkan, tampilan saat membuka aplikasi dapat berupa gambar
yang bukan merupakan tampilan utama dari aplikasi. Hal ini dapat
menghindari frustasi yang dihadapi user ketika interface
yang terlihat
seolah-olah dapat berinteraksi tidak memberi reaksi saat digunakan
dikarenakan aplikasi tersebut sedang dalam tahap loading.
10. First Impressions
Hal terakhir yang penting dalam perancangan aplikasi untuk mobile
adalah kesan pertama. Hal
utama yang menjadi kesan pertama secara
kasat mata merupakan icon
dari sebuah aplikasi. Rancangan icon
harus
membuat aplikasi terlihat jelas tujuannya. Rancangan tidak perlu rumit
melainkan tepat dan persis untuk menunjukkan aplikasi apakah yang telah
dibuat.
2.4
2.4.1
Document oriented database
merupakan semi struktur data
yang dirancang untuk menyimpan, mengambil, dan pengolahan yang
berorientasi dokumen. Document oriented database
merupakan salah
satu bagian utama dari database
NoSQL. Konsep utama dari
document oriented database
terletak pada dokumen, dimana semua
dokumen dirangkum dan di-encode ke dalam beberapa format standar
seperti XML, YAML, JSON, dan BSON.
Salah satu database
management system
yang berorientasi dokumen adalah MongoDB
(Anonim1, 2011).
2.4.2
2.4.2.1 Pengertian MongoDB
Mengacu pendapat dari Chodorow dan Dirolf (2010:1),
MongoDB merupakan tempat penyimpanan data yang
kuat,
fleksibel, dan berskala.
Selain itu, MongoDB merupakan
document oriented database, bukan relasional. Hal ini
|
20
menggabungkan kemampuan untuk skala besar dengan banyak
fitur yang paling berguna dari database
relasional, seperti
indeks sekunder, rentang query, dan pengurutan.
2.4.2.2 Fitur-Fitur MongoDB
Mengacu pendapat dari Chodorow dan Dirolf (2010:2-
3), MongoDB mempunyai fitur-fitur sebagai berikut yang
menunjukkan MongoDB merupakan alat yang unik dan baik
untuk menyelesaikan semua masalah:
a.
Indexing
MongoDB mendukung indeks sekunder generik, yang
memungkinkan berbagai pertanyaan cepat,
dan
menyediakan unik, majemuk, dan kemampuan
pengindeksan geospasial juga.
b.
Stored JavaScript
Developer
dapat menyimpan dan menggunakan fungsi
JavaScript beserta nilai pada sisi server.
c.
Aggregation
MongoDB mendukung MapReduce
dan alat agregasi
lainnya.
d.
Fixed-size collections
Koleksi tertutup adalah tetap dalam ukuran dan berguna
untuk beberapa jenis data, seperti log.
e.
File storage
MongoDB mendukung menggunakan protokol
dengan
mudah untuk menyimpan file besar dan file metadata.
2.4.2.3 Operasi Dasar MongoDB
Mengacu pendapat dari Chodorow dan Dirolf
(2010:12), dalam MongoDB terdapat 4 (empat) operasi dasar
yaitu create, read, update, dan delete (CRUD) yang digunakan
untuk memanipulasi dan melihat data dalam shell. Shell
merupakan bagian perintah dari JavaScript yang membantu
interaksi dengan MongoDB. Shell
berguna untuk melakukan
|
21
fungsi administrasi dan alat penting untuk menggunakan
MongoDB yang diterapkan secara luas di seluruh teks.
a.
Create
Berfungsi untuk menambahkan dokumen ke
koleksi. Untuk menyimpan
suatu
posting blog
harus
membuat variabel lokal yang disebut post yang merupakan
objek JavaScript
yang mewakili dokumen. Hal ini
memiliki kata: "title", "content", dan "date".
> post = {"title" : "My Blog Post",
... "content" : "Here's my blog post.",
... "date" : new Date()}
{
"title" : "My Blog Post",
"content" : "Here's my blog post.",
"date" : "Sat Dec 12 2009 11:23:21 GMT-0500 (EST)"
}
b.
Read
Berfungsi untuk menemukan semua dokumen
dalam koleksi. Jika user
ingin melihat satu dokumen dari
koleksi, dapat menggunakan fungsi findOne yaitu:
> db.blog.findOne()
{
"_id" : ObjectId("4b23c3ca7525f35f94b60a2d"),
"title" : "My Blog Post",
"content" : "Here's my blog post.",
"date" : "Sat Dec 12 2009 11:23:21 GMT-0500 (EST)"
}
Find
dan findOne
juga dapat dijelaskan
dalam
bentuk dokumen permintaan. Hal ini akan
membatasi
dokumen yang cocok dengan query.
c.
Update
Berfungsi untuk memodifikasi dokumen yang telah
dikirim. Update
menggunakan 2 (dua) parameter atau
lebih. Parameter yang pertama adalah kriteria untuk
menemukan dokumen mana yang akan di-update, dan
parameter yang kedua adalah dokumen baru setelah di-
|
![]() 22
update. Contoh penggunaannya :
> db.blog.update({title : "My
Blog Post"}, post)
d.
Delete
Berfungsi untuk menghapus dokumen secara
permanen dari database. Remove
semua dokumen dari
koleksi dilakukan tanpa memanggil parameter. Hal ini juga
dapat menghapus dokumen tertentu dengan syarat yang
sesuai user. Contoh penggunaannya : > db.blog.remove({title :
"My Blog Post"})
2.5
Mengacu pada
pendapat
Whitten dan Bentley
(2007:371),
Unified
Modeling Language
(UML)
adalah seperangkat
ketentuan
pemodelan yang
digunakan untuk menspesifikasikan atau menjelaskan sebuah sistem software
yang berhubungan dengan objek.
2.5.1
Mengacu pada pendapat Whitten dan Bentley (2007:246), use
case diagram adalah sebuah diagram yang menggambarkan
interaksi
antara sistem
dan
eksternal sistem, dan sistem dengan user. Secara
grafis, use case diagram menjelaskan siapa yang menggunakan sistem
dan bagaimana user berinteraksi dengan sistem.
Use case diagram mempunyai notasi-notasi sebagai berikut:
a.
Use Case
Use case
diwakili secara grafis dalam bentuk elips dengan nama
use case
yang menjelaskan sistem yang ada pada diagram use
case.
Sebuah use case
merepresentasikan tujuan
tunggal dari
sistem dan menggambarkan
urutan kegiatan dan interaksi
pengguna dalam berusaha untuk mencapai tujuan. Sistem tersebut
berhubungan dengan actor
yang ada pada diagram use case
tersebut.
|
![]() 23
b.
Actor
Actor diwakili secara
grafis dalam bentuk orang yang digunakan
untuk menginisiasi sebuah sistem dengan tujuan mendapatkan
informasi dari proses interaksi yang dilakukan dengan sistem.
Actor adalah user yang berperan dalam sebuah sistem.
(Sumber: Whitten &Bentley, 2007:247)
c.
Relationships
Relationship diwakili secara grafis dalam bentuk garis antara dua
simbol pada use case diagram. Definisi dari relasi yang ada dapat
berbeda tergantung bagaimana garis yang digunakan dan jenis
simbol yang terhubung. Hubungan-hubungan tersebut meliputi
associations, extends, uses (include), depends on, dan inheritance.
1.
Associations
Hubungan antara actor
dan use case
yang menggambarkan
interaksi antara actor dan use case. Hubungan ini disebut
sebagai sebuah association. Association
dimodelkan sebagai
garis yang
solid untuk menghubungkan actor
dan use case.
Association
yang mengandung sebuah
mata panah di ujung
berhubungan dengan use case menunjukkan use case
sebagai
penerima. Sedangkan, association
tanpa panah menunjukkan
adanya interaksi antara use case
dengan
actor
dengan actor
sebagai penerima.
(Sumber: Whitten & Bentley, 2007:248)
|
![]() 24
2.
Extends
Extension use case adalah use case yang terdiri dari langkah-
langkah yang diambil dari use case yang lebih kompleks untuk
mempermudah use
case
sehingga memperluas
fungsionalitasnya
dan lebih mudah dimengerti.
Setiap relasi
extends diberi keterangan <<extends>>.
(Sumber: Whitten & Bentley, 2007:249)
3.
Uses (or Includes)
Dalam sebuah use case
diagram
akan terdapat 2
(dua)
atau
lebih use case
yang memiliki functionality yang sama, untuk
mengurangi perulangan
tersebut dapat mengkombinasikan
langkah yang sama tersebut yang disebut abstract use case.
Relasi antara abstract
use case
dan use case yang
menggunakannya
disebut dengan uses (includes) relationship
dan diberi label <<uses>> atau <<include>>.
(Sumber: Whitten & Bentley, 2007:249)
|
![]() 25
4.
Depends On
Depends on
adalah relasi antara use
case
yang menunjukkan
bahwa
suatu
use
case
tidak bisa dilakukan sampai use case
yang sebelumnya dilakukan.
Digambarkan dengan garis anak
panah, mulai dari satu use
case
dan menuju use
case
yang
tergantung padanya.
Masing
masing garis depends on
relationship diberi label <<depends on>>.
(Sumber: Whitten & Bentley, 2007:250)
5.
Inheritance
Inheritance dalam use case, merupakan suatu hubungan antara
abstract
actor
yang dibuat untuk menyederhanakan aktivitas
pada use case
yang sama ketika ditunjuk oleh dua atau
lebih
actor.
(Sumber: Whitten & Bentley, 2007:250)
|
![]() 26
d.
Use Case System
Disimbolkan dengan bentuk persegi panjang yang mendefinisikan
nama dari use case tersebut dan sistem-sistem yang bekerja pada
diagram use case tersebut.
(Sumber: Whitten & Bentley, 2007:246)
2.5.2
Mengacu pada pendapat Whitten dan Bentley (2007:246), use
case narrative
merupakan deskripsi tekstual dari kejadian dan
bagaimana user akan berinteraksi dengan sistem untuk menyelesaikan
tugas.
Berikut di bawah ini adalah beberapa elemen yang dapat
dideskripsikan pada bagian-bagian dari use case narrative:
1.
Use case name
Use case name merepresentasikan tujuan yang akan dicapai. Kata
awal dari use case name diawali dengan kata kerja.
2.
Actor
Merupakan stakeholder utama yang berinteraksi dengan sistem.
|
![]() 27
3.
Description
Ringkasan sekilas yang menjelaskan secara garis besar isi dari use
case yang dibuat dan kegiatannya.
4.
Precondition
Merupakan batasan pada sistem sebelum use case
dapat
dieksekusi. Biasanya hal ini mengacu ke use case
lain yang harus
dieksekusi sebelumnya.
5.
Flow of Events
Merupakan kejadian yang bertahap dalam mengeksekusi use case.
6.
Postcondition
Merupakan batasan pada kejadian sistem setelah use case
dieksekusi dengan baik.
2.5.3
Mengacu pada
pendapat Whitten dan Bentley (2007:390),
activity diagram
merupakan diagram yang dapat digunakan secara
grafis untuk menggambarkan aliran dari proses bisnis, langkah-
langkah dari use case, atau logika karakteristik objek.
Berikut
penjelasan notasinya :
1.
Initial node
Titik solid yang menggambarkan awal sebuah proses.
2.
Actions
Segi empat bersudut tumpul menggambarkan sebuah kegiatan atau
tugas yang perlu dilakukan.
3.
Flow
Panah menggambarkan jalur dari satu kegiatan ke kegiatan
lainnya.
|
![]() 28
4.
Decision
Diamond menggambarkan sebuah kegiatan keputusan.
5.
Merge
Diamond dengan dua atau lebih arus
masuk dan satu arus keluar.
Ini menggabungkan aliran yang sebelumnya dipisahkan oleh
keputusan. Pemrosesan berlanjut dengan salah satu aliran yang
masuk ke penggabungan.
6.
Fork
Bar hitam dengan dua atau lebih arus masuk dan satu arus keluar.
Tindakan ini untuk menggambarkan kegiatan yang dapat muncul
sebagai paralel.
7.
Join
Bar hitam dengan dua atau lebih arus masuk dan satu arus keluar,
mencatat berakhirnya proses yang telah berjalan bersamaan
sebelumnya.
Semua tindakan yang masuk ke join
harus
diselesaikan sebelum proses berlanjut.
|
![]() 29
8.
Activity final
Titik solid di dalam sebuah lingkaran berlubang menggambarkan
akhir dari sebuah proses.
9.
Subactivity indicator
Simbol yang
menunjukkan bahwa tindakan ini pecah dalam
diagram lain dengan kegiatan terpisah.
Diagram
10. Connector
Huruf di dalam lingkaran memberi alat lain untuk mengelola
kompleksitas. Arus masuk ke konektor akan melompat ke arus
keluar dari konektor dengan huruf yang cocok dalam lingkaran
tersebut.
|
![]() 30
2.5.4
Dalam merancang sistem sebagai sebuah tim
dibutuhkan
sebuah alat yang bernama Class Responsibility Collaboration
(CRC)
cards. Mengacu pada pendapat Whitten dan Bentley (2007:658), CRC
cards
memuat semua kebiasaan use
case
dan tanggung jawab yang
telah dikaitkan dengan kelas itu. CRC cards
dapat dibangun dan
disempurnakan dengan menggunakan suatu proses interaktif dimana
kartu dibagi antara sekelompok sistem analis dan
pengguna.
Nilai
terbesar dari CRC cards adalah untuk memungkinkan pengguna untuk
melepaskan diri dari model prosedural. CRC
card
memungkinkan
seluruh tim proyek untuk memberikan kontribusi untuk desain.
|
![]() 31
Semakin banyak orang yang dapat membantu merancang sistem dapat
memberikan pengaruh yang bagus terhadap ide-ide yang
digabungkan.
Class Name
:
Responsibilities
Responsibilities of a class are
listed in this section
Collaboration with other
classes are listed here
,
together with a brief
description of the purpose of
the collaboration
Collaborations
Cards
2.5.5
Mengacu pada
pendapat Whitten dan Bentley (2007:400),
class diagram
merupakan gambar grafis mengenai struktur objek
statis dari suatu sistem, dan menunjukkan kelas-kelas objek yang
menyusun sebuah sistem dan juga hubungan antara kelas objek
tersebut.
Dalam membuat class diagram diperlukan beberapa langkah yaitu :
a.
Mengidentifikasi asosiasi dan multiplicity
Sebuah asosiasi antara dua kelas objek adalah suatu objek
atau kelas yang perlu mengetahui mengenai yang lain. Hal ini
memperbolehkan satu objek atau kelas untuk referensi silang ke
objek atau kelas lain dan untuk dapat mengiriminya pesan. Setelah
asosiasi diidentifikasi, multiplicity
yang menentukan asosiasi
harus didefinisikan.
Multiplicity
merupakan jumlah kejadian
minimum dan maksimum dari suatu objek kelas yang
berhubungan dengan objek kelas lain.
(Sumber: Whitten & Bentley, 2007:406)
|
![]() 32
Berikut merupakan penjelasan mengenai jenis dari multiplicity,
yaitu:
(Sumber: Whitten & Bentley, 2007:377)
b.
Mengidentifikasi hubungan generalisasi atau spesialisasi
Hubungan generalisasi atau spesialisasi merupakan
klasifikasi hierarki yang terdiri dari supertype
kelas (abstrak atau
induk) dan subtype
kelas (anak atau konkret). Kelas supertype
adalah umum karena didalamnya terdiri dari atribut umum dan
behavior
dari hierarki. Kelas subtype
adalah khusus karena di
dalamnya terdiri dari atribut dan behavior unik dari sebuah objek
tetapi mewarisi atribut dan behavior kelas supertype.
|
![]() 33
Member Services System
(Sumber:Whitten & Bentley, 2007:404)
c.
Mengidentifikasi hubungan agregasi atau komposisi
Agregasi adalah
tipe hubungan unik di mana satu objek
adalah bagian dari objek lainnya. Hubungan ini biasanya disebut
whole/part relationship dan dapat dibaca sebagai Objek A terdiri
dari objek B dan objek B adalah bagian dari objek A.
(Sumber: Whitten & Bentley, 2007:379)
|
![]() 34
Sedangkan komposisi merupakan bentuk agregrasi yang
kuat dimana suatu objek bertanggung jawab atas objek lainnya
dan objek lainnya dapat diasosiasikan hanya pada satu objek.
(Sumber: Whitten & Bentley, 2007:379)
Dalam UML 2.0, notasi agregasi tidak digunakan lagi,
karena hubungan komposisi memiliki perbedaan peran yang pasti
dalam pemrograman, sedangkan hubungan agregasi memiliki
peran yang kurang jelas. Misalnya, hubungannya antara klub dan
anggota klub
yang dapat disederhanakan menjadi relasi asosiasi
satu atau lebih antara class object yang tidak saling bergantung.
d.
Mempersiapkan class diagram
Aturan pada langkah ini yaitu tidak membutuhkan foreign
keys
dan atribut dari primary key, karena dalam data class
diagram tidak disimpan dalam database relasional.
Mengacu pada pendapat Whitten dan Bentley (2007:650)
UML memiliki 3 (tiga) level dari visibility yaitu:
a.
Public
Dinotasikan dengan simbol +. Atribut public
dan
public
method dapat digunakan oleh semua class yang berhubungan.
b.
Protected
Dinotasikan dengan simbol #. Atribut
protected
dan
protected method
dapat digunakan
oleh class
itu sendiri dan
class turunannya.
|
![]() 35
c.
Private
Dinotasikan dengan simbol -. Atribut
private
dan
private
method hanya dapat digunakan oleh class itu sendiri.
2.5.6
Mengacu pada
pendapat Whitten dan Bentley (2007:659),
sequence diagram
merupakan diagram UML yang memodelkan
logika sebuah use
case
dengan cara menggambarkan interaksi di
antara objek
berdasarkan urutan
waktu.
Dalam sequence diagram
mempunyai notasi sebagai berikut :
a.
Actor
Actor
melakukan interaksi user interface
dengan
menunjukkan simbol actor
yang terdapat dalam
use case. Garis
vertikal putus-putus memanjang ke bawah dari aktor menunjukkan
garis kehidupan yang dimulai pada sequence diagram.
b.
Interface class
Bentuk kotak menggambarkan bentuk yang
mengindikasikan class interface code. Untuk memperjelas makna
dari simbol tersebut biasanya diberikan <<Interface>> sebagai
simbol tambahan. Terdapat juga simbol : yang berarti notasi
diagram urutan standar untuk proses yang sedang berjalan dan
simbol --- yang menandakan kehidupan proses dari sekuensial
tersebut.
|
![]() 36
c.
Controller class
Setiap use case
akan memiliki satu atau lebih controller,
yang digambarkan dengan notasi yang sama seperti interface class
yang disimbolkan dengan <<Controller>>.
d.
Entity classes
Penambahan kotak untuk setiap entitas diperlukan agar
dapat berkolaborasi dalam urutan langkah. Simbol :
mendefinisikan object instance, dengan kata lain seperti
specific
order, specific product.
e.
Messages
Garis panah horizontal berfungsi untuk menyampaikan
pesan dari setiap metode yang dikirimkan ke kelas.
f.
Activation bars
Bentuk bar
persegi panjang vertikal
berfungsi untuk
menunjukkan
alur hidup dari setiap instance object
yang
digunakan selama periode waktu tertentu.
g.
Return messages
Bentuk panah horizontal putus-putus merupakan pesan
yang dikirim balik ke suatu instance object.
|
![]() 37
h.
Self-call
Bentuk garis panah melengkung
merupakan sebuah objek
yang dapat memanggil method dari dirinya sendiri.
i.
Frame
Bentuk persegi panjang dengan judul di dalamnya yang
digunakan ketika suatu area pada diagram mengalami perulangan
(looping), seleksi (alternative) atau ketentuan (optional).
Case
(Sumber: Whitten & Bentley, 2007:659)
2.6
Menurut Connolly & Begg (2010:65), data dictionary
atau yang
dikenal sebagai metadata, merupakan pendeskripsian sifat database
yang
menyediakan data yang independence. Dalam data dictionary terdapat nama
|
![]() 38
entitas dan deskripsinya. Setiap atribut yang diidentifikasikan memberikan
fungsi yang berguna bagi pengguna.
(Sumber: Connolly & Begg, 2010:478)
Entity
Name
Attributes
Description
Data Type
& Length
Nulls
Multi-
valued
Staff
staffNo
Uniquely identifies
a member of staff
5 variable
characters
No
No
Name
fName
First name of staff
5 variable
characters
No
No
iName
Last name of staff
5 variable
characters
No
No
position
Job title of member
of staff
5 variable
characters
No
No
sex
Gender of member
of staff
5 variable
characters
Yes
No
DOB
Date of birth of
member of staff
1 character
(M or F)
Date
Yes
No
2.7
Mengacu pada pendapat Whitten dan Bentley (2007:648), OOD
merupakan pendekatan yang digunakan untuk menentukan spesifikasi
software dalam object tertentu, attribute, dan method. Sistem object oriented
disusun menjadi beberapa jenis object class, yaitu :
1.
Entity Classes, merupakan object class yang berisi informasi yang dikenal
sebagai atribut dan implementasi dari class analisisnya.
2.
Interface Classes, merupakan object class yang menyediakan sarana agar
aktor dapat berinteraksi dengan sistem. Contohnya kotak dialog dan layar.
3.
Control Classes, merupakan object class
yang berisi logika aplikasi.
Control class
mengirimkan pesan antara interface class
dan entity class
secara berurutan ketika pesan tersebut disampaikan.
|
39
4.
Persistence Classes,
merupakan object class
yang menyediakan
fungsionalitas untuk membaca dan menulis atribut dalam database.
5.
System Classes, merupakan object class
yang menangani fungsi khusus
sistem operasi.
Sistem object oriented dapat diimplementasikan hanya dengan 3 (tiga)
jenis class, yaitu entity class, interface class, dan control class.
2.8
2.8.1
Mengacu pada pendapat
Allen, Graupera & Ludrigan (2010),
smartphone
merupakan device
yang mudah dibawa, dan seringkali
lebih berguna dalam konteks geolocation. Smartphone
biasanya
memiliki QWERTY keyboard
baik berupa keyboard
fisik maupun
keyboard virtual, dan layar resolusi yang tinggi.
2.8.2
Mengacu pada pendapat Fling (2009:22)
sistem operasi pada
smartphone yang paling umum digunakan yaitu:
1.
Symbian
Sistem operasi Symbian
merupakan sistem operasi open source
yang didesain untuk perangkat mobile dengan library yang terkait,
user interface frameworks, dan implementasi referensi ke alat
umum.
2.
Windows Mobile
Sistem operasi Windows mobile
merupakan sistem operasi yang
berbasis Windows.
3.
Palm OS
Sistem operasi Palm OS
merupakan sistem operasi
yang
digunakan di Palms lower end di garis Centro dari mobile phone.
4.
Linux
Linux merupakan sistem operasi open source
yang banyak
digunakan untuk smartphone, termasuk Motorola RAZR2.
|
40
5.
Mac OS X
Versi khusus dari Mac OS X adalah sistem operasi yang
digunakan di iPhone dan iPod touch pada Apple.
6.
Android
Android berjalan sendiri sebagai sistem operasi open source, yang
dapat disesuaikan oleh operator dan manufaktur perangkat.
2.9
Mengacu pada
pendapat Sebesta (2013:545), Object Oriented
Programming
(OOP) merupakan sebuah bahasa yang memiliki 3 (tiga)
konsep yaitu: abstract data types, inheritance, dan dynamic binding. Bahasa
OOP menyediakan paradigma berupa classes, methods, objects, dan message
passing. Mengacu pada pendapat Deitel dan Deitel (2012,p532), dalam OOP
selalu dimulai dengan istilah inheritance
dimana sebuah bentuk software
yang digunakan kembali untuk membuat sebuah class
yang mempunyai
kemampuan dari class
sebelumnya, kemudian menyesuaikan dan
meningkatkan kemampuan dari class
tersebut. Software
yang digunakan
kembali lebih menghemat waktu selama program dikembangkan
dengan
mengambil keuntungan yang secara terbukti dan software
yang berkualitas
tinggi.
2.10
2.10.1
Mengacu pada
pendapat
Gargenta (2011:1), Android
merupakan open-source
platform yang komprehensif yang dirancang
untuk perangkat mobile. Comprehensive platform
disini adalah
setumpuk lengkap perangkat lunak yang dipakai pada perangkat
mobile. Android merupakan open-source
platform
pertama yang
memisahkan perangkat keras dan perangkat lunak. Android dipelopori
oleh Google dan dimiliki Open Handset Alliance.
2.10.2
Mengacu pada
pendapat
Meier (2010:6-7), terdapat
keunggulan fitur-fitur yang ada pada android, yaitu:
|
41
1.
Native Google Maps, Geocoding, dan Location-Based Services
Android menawarkan aplikasi Google Maps yang dapat digunakan
kembali dalam pengembangan aplikasi di platform Android.
2.
Background Services
Background services
memungkinkan developer
untuk membuat
sebuah aplikasi yang menggunakan service
yang berjalan tanpa
terlihat bahwa aplikasi tersebut sedang berjalan ketika aplikasi
yang lain sedang dijalankan ataupun ketika sedang dalam keadaan
stand by.
3.
SQLite Database for Data Storage and Retrieval
Android menyediakan database
relational
ringan untuk
pengembangan aplikasi menggunakan SQLite yang berguna untuk
membantu menyimpan data dengan efisien dan aman.
2.10.3
Mengacu pada pendapat
Meier (2010:29) aplikasi yang dibuat
didalam Android dapat terbagi menjadi beberapa kategori, yaitu:
1.
Foreground Activity
Sebuah aplikasi yang berguna ketika ada pada foreground dan tidak
efektif ketika tidak terlihat. Contohnya games dan map mashups.
2.
Background Service
Sebuah aplikasi dengan interaksi yang terbatas, ketika
dikonfigurasi sebagian besar masa waktunya tersembunyi.
Contohnya adalah aplikasi call screening
dan Short Message
Service (SMS) auto-responder.
3.
Intermittent Activity
Sebuah aplikasi yang dapat berjalan di foreground
dan
background, tetapi sering kali aplikasi ini akan dibentuk dan
kemudian dijalankan tersembunyi (background) dan memberitahu
pengguna di saat yang tepat. Contohnya adalah media player.
4.
Widget
Beberapa aplikasi hanya direpresentasikan sebagai home-screen
widget. Aplikasi widget biasanya digunakan untuk
menampilkan
|
![]() 42
informasi dinamis seperti tingkat baterai, ramalan cuaca, atau
tanggal dan waktu.
2.10.4
Platform
Android
pada saat ini tentunya sedang mengalami
perkembangan yang cukup signifikan yang dapat dilihat dari jumlah
versinya yang dikeluarkan. Bagian ini menyediakan data tentang
jumlah device
relatif yang menjalankan versi tertentu dari platform
Android.
(Sumber: www.developer.android.com, 2013)
Version
Codename
API
Distribusi
1.6
Donut
4
0,1%
2.1
Eclair
7
1,7%
2.2
Froyo
8
3,7%
2.3 2.3.2
Gingerbread
9
0,1%
2.3.3 2.3.7
10
38,4%
3.2
Honeycomb
13
0,1%
4.0.3 4.0.4
Ice Cream Sandwich
15
27,5%
4.1.x
Jelly Bean
16
26,1%
4.2.x
17
2,3%
Data dalam tabel diatas merepresentasikan semua perangkat
yang mengunjungi Google Play Store dalam 14 hari sebelumnya. Data
tersebut dikumpulkan selama periode 7 (tujuh)
hari yang berakhir
pada tanggal 1
Mei 2013.
Pada data tersebut, setiap versi dengan
distribusi kurang dari 0,1% tidak akan ditampilkan.
2.10.5
Mengacu pada
pendapat
Meier
(2010:42),
Android Software
Development Kit
mencakup
dari
segalanya yang dibutuhkan
untuk
memulai pengembangan, pengujian, dan debugging aplikasi Android.
Android SDK merupakan tools
API (Application
Programming
|
43
Interface) yang diperlukan
untuk
mengembangkan
aplikasi
pada
smartphone
berplatform
Android. Pengembangan yang dilakukan
menggunakan bahasa pemrograman Java. Saat ini disediakan Android
SDK sebagai alat bantu dan API untuk mempermudah pengembangan
aplikasi di Android.
Mengacu pada
pendapat Fling (2009:24), Android SDK
memungkinkan
para pengembang
membuat aplikasi untuk setiap
perangkat yang menjalankan platform
Android. Pengembang dapat
menulis aplikasi dalam bahasa C/C++ atau menggunakan mesin
virtual Java yang termasuk dalam OS yang memungkinkan
pembuatan aplikasi dengan Java, dimana lebih umum dalam
ekosistem mobile.
2.10.6
Mengacu pada
pendapat Meier (2010:42) ADT merupakan
plug-in
yang digabungkan ke dalam Eclipse Integrated Development
Environment
(IDE)
yang berfungsi memudahkan
pengembangan
aplikasi Android, dimana dapat mengakses ADT tersebut dari
perspektif DDMS, termasuk :
a.
The Android Emulator
merupakan sebuah implementasi dari
mesin virtual Android dirancang untuk berjalan pada
pengembangan komputer. Selain itu, dapat
juga
menggunakan
emulator untuk menguji dan debug aplikasi Android.
b.
Dalvik Debug Monitoring Service
(DDMS)
menggunakan
perspektif DDMS untuk memonitor dan mengontrol mesin virtual
Dalvik pada aplikasi debugging.
c.
Android Asset Packaging Tool
(AAPT)
mengkonstruksi paket
file Android yang terbagi (.apk).
d.
Android Debug Bridge
(ADB)
merupakan aplikasi client-server
yang menyediakan link ke emulator untuk dijalankan.
2.11
Mengacu pada pendapat Chamim (2010), tracking
yang
dikembangkan di dunia internasional saat ini berupa Global Positioning
|
44
System
(GPS). GPS merupakan sistem navigasi dengan menggunakan
teknologi satelit yang dapat menerima sinyal dari satelit. Alat ini dapat
menentukan dimana posisi dari suatu objek dengan koordinat yang tepat. GPS
merupakan satu-satunya sistem navigasi satelit yang berfungsi baik. Sistem
ini menggunakan 24 satelit yang mengirimkan sinyal gelombang mikro ke
Bumi. Sinyal yang diterima oleh alat penerima di permukaan
yang disebut
GPS receiver, dan digunakan untuk menentukan posisi, kecepatan, arah, dan
waktu. Mengacu pada pendapat
Wishnu (2012), GPS receiver
ini akan
mengumpulkan informasi dari satelit GPS, seperti:
a.
Waktu. GPS receiver
menerima informasi waktu dari jam atom yang
mempunyai keakurasian sangat tinggi.
b.
Lokasi. GPS memberikan informasi lokasi dalam tiga dimensi, yaitu
latitude, longitude, dan elevasi.
c.
Kecepatan. Ketika berpindah tempat, GPS dapat menunjukkan informasi
kecepatan berpindah tersebut.
d.
Arah perjalanan. GPS dapat menunjukkan arah tujuan.
e.
Simpan lokasi. Tempat-tempat yang sudah pernah atau ingin dikunjungi
bisa disimpan oleh GPS receiver.
f.
Komulasi data. GPS receiver
dapat menyimpan informasi track, seperti
total perjalanan yang sudah pernah dilakukan, kecepatan rata-rata,
kecepatan paling tinggi, kecepatan paling rendah, waktu/jam sampai
tujuan, dan sebagainya.
2.11.1 Akurasi GPS
Mengacu pada pendapat Wishnu (2012), posisi yang ditunjukkan oleh
suatu GPS mempunyai faktor kesalahan atau juga disebut tingkat akurasi.
Sebagai contoh suatu alat GPS menunjukkan titik koordinat dengan tingkat
akurasi 5
(lima)
meter, itu berarti posisi pengguna bisa berada dalam range
radius 5 (lima) meter dari titik yang ditunjukkan tersebut. Ada beberapa hal
yang mempengaruhi tingkat akurasi tersebut, antara lain:
a.
Kesalahan ephemeris
Terjadi jika satelit tidak dapat mentransmisikan posisinya di orbit
dengan tepat.
|
45
b.
Keadaan ionosphere
Ionosphere berada pada jarak sekitar 43-50 mil di atas permukaan
bumi. Satelit yang melewati ionosphere akan menjadi lambat
dikarenakan adanya plasma (gas dengan tingkat kepadatan rendah).
Walaupun GPS receiver berusaha untuk mengkoreksi atau memperbaiki
faktor keterlambatan yang terjadi tetap saja aktivitas tertentu dari plasma
bisa menyebabkan kesalahan perhitungan.
c.
Keadaan troposphere
Troposphere
adalah bagian terendah dari atmosfer sampai dengan
ketinggian sekitar 11 mil dari permukaan tanah. Variasi pada temperatur,
tekanan, dan kelembaban bisa menyebabkan perbedaan kecepatan
penerimaan gelombang radio.
d.
Kesalahan waktu
Karena penempatan jam atom pada setiap GPS receiver
tidak
berjalan sebagaimana mestinya. Kesalahan waktu dari GPS receiver yang
tidak presisi dapat menimbulkan ketidakakurasian.
e.
Kesalahan multipath
Terjadi karena sinyal satelit membentur permukaan keras (seperti
bangunan atau tebing) sebelum mencapai GPS receiver. Hal tersebut bisa
menyebabkan terjadinya delay sehingga perhitungan jarak menjadi tidak
akurat.
f.
Buruknya sinyal satelit
Keadaan langit yang terhalang akan menyebabkan GPS sulit
menerima data satelit. Sebuah sinyal satelit yang pada hari tertentu
diterima dengan sangat bagus belum tentu pada hari lain bisa diterima
dengan kualitas yang sama walaupun user berdiri pada tempat yang
sama. Hal tersebut dikarenakan posisi dari satelit yang terus bergerak
atau bisa juga disebabkan faktor penghalang lain seperti pohon, gedung
bertingkat, dan sebagainya.
Di samping itu, dalam merancang suatu alat pendeteksi posisi, dapat
memanfaatkan sinyal GSM sebagai media komunikasinya dan dengan
menggunakan mobile
phone
sebagai alat untuk mendeteksi posisi serta
mikrokontroler sebagai alat untuk membaca sinyal yang dikirimkan ataupun
diterima oleh mobile phone.
|
46
2.12
Mengacu pada
pendapat
Deitel
&
Deitel (2012:2), Java merupakan
bahasa pemrograman yang paling banyak digunakan didunia. Java merupakan
sebuah bahasa pemrograman berbasis object-oriented dan banyak perusahaan
yang menerapkan bahasa Java di dalam pembuatan aplikasinya. Java
merupakan bahasa pemrograman pilihan dalam aplikasi berbasis internet dan
perangkat lunak untuk perangkat komunikasi melalui jaringan.
2.13
Mengacu pada pendapat Deitel & Deitel (2012:2), Eclipse merupakan
Integrated Development Environment
(IDE) yang menyediakan tools
yang
mendukung proses pengembangan perangkat lunak, yang dapat mengedit dan
men-debug aplikasi untuk mendapatkan aplikasi yang diinginkan.
2.14
Menurut Conolly & Begg (2010:1043), PHP merupakan bahasa
pemrograman scripting yang digunakan secara luas yang bersifat open source
dengan didukung oleh banyak Web server termasuk Apache HTTP Server dan
Microsofts Internet Information Server. Tujuan dari bahasa pemograman ini
memudahkan
Web developer
agar menghasilkan isi halaman web
dinamis
secara cepat.
Keuntungan dari PHP adalah extensibility, dan dapat
mendukung
koneksi
database, mail, dan Extensible Markup Language
(XML).
2.15
Menurut definisi Kamus Besar Bahasa Indonesia (KBBI), transportasi
merupakan pengangkutan barang dari suatu tempat ke tempat lainnya dengan
menggunakan
berbagai jenis kendaraan sesuai dengan
kemajuan teknologi.
Dalam hal ini, alat transportasi merupakan benda yang digunakan sebagai
media dalam transportasi, atau lebih sering disebut kendaraan. Sedangkan
umum berarti secara menyeluruh, tidak menyangkut yang khusus (tertentu)
saja. Oleh karena itu, jenis-jenis transportasi umum yang masuk dalam
penelitian dan yang terdapat DKI Jakarta adalah bus kota besar, bus kota
sedang, bus kota kecil, dan bus TransJakarta.
|
47
2.16
Menurut definisi Kamus Besar Bahasa Indonesia, rute adalah jarak
atau arah dan jalan yang harus ditempuh
atau jalur angkutan yang
menghubungkan dua tempat.
2.17
Menurut Cormen, Leiserson, Rivest & Stein (2009:414-428),
algoritma greedy merupakan algoritma dengan selalu mengambil solusi lokal
yang optimal dengan harapan pilihan itu mengarah pada solusi optimal
global. Metode greedy membentuk solusi langkah perlangkah:
1.
Pada setiap langkah keputusan
yang diambil merupakan keputusan
terbaik. Keputusan yang sudah diambil tidak dapat diubah pada langkah
selanjutnya.
2.
Pendekatan yang digunakan oleh Greedy adalah membuat optimum local
pada setiap langkah dan diharapkan merupakan solusi optimum global.
Metode
greedy
didasarkan pada pemindahan edge
dan pada setiap
langkah tidak memikirkan konsekuensi ke depan. Greedy tidak selalu berhasil
memberikan solusi optimal. Tetapi pasti memberikan solusi yang mendekati
nilai optimal.
Menurut Setiadi
(2008:95-97), prinsip-prinsip metode greedy
sebagai berikut :
1.
Metode greedy mengabaikan perhitungan lengkap dalam mencari solusi.
2.
Metode greedy mencari solusi dengan cepat.
3.
Metode
greedy berguna untuk pencarian solusi yang memakan waktu
terlalu lama dengan menggunakan komputer.
Metode
greedy dapat menyelesaikan masalah knapsack problem
dimana
diberi nama sesuai dengan kantong (knapsack) yang dibawa pencuri untuk
menampung hasil curian. Pada prinsipnya masalah ini adalah masalah
optimalisasi metode dengan mencari solusi paling optimal.
a.
Fractional Knapsack problem
Masalah ini memungkinkan untuk membawa barang dalam pecahan.
b.
0-1 Knapsack problem.
Masalah ini memungkinkan barang hanya tersedia 1 unit, dengan prinsip
take it or leave it.
|
48
c.
Bounded Knapsack Problem
Setiap barang tersedia sebanyak N unit (jumlahnya terbatas).
d.
Unbounded Knapsack Problem
Setiap barang di permasalahan
ini tersedia lebih dari 1 unit dan
jumlahnya tidak terbatas.
2.18
Berbagai penelitian untuk mengembangkan aplikasi penentu rute
transportasi umum bagi masyarakat sudah dilakukan agar bisa mendapatkan
manfaat yang efektif. Salah satunya oleh Gortz dan Klose (2006) menganalisa
teknologi yang membantu penyelesaian
masalah
transportasi dengan
algoritma greedy
untuk permasalahan knapsack terdiri dari pengisian bobot
barang dengan barang yang paling menguntungkan hingga kapasitas
knapsack
itu tercapai. Penelitian ini dilakukan melalui analisa algoritma 2
(dua) pendekatan yang terjadi dalam Single-Sink Fixed-Charge
Transportation Problem (SSFCTP) yaitu 2-approximation algorithm dan 3/2-
approximation algorithms untuk meminimalkan permasalahan knapsack.
Pengaplikasian dari metode greedy
ini menerapkan
arah
forward
untuk
menyelesaikan permasalahan biaya transportasi. Hal ini menunjukkan bahwa
dua pendekatan greedy
mungkin akan memberikan solusi buruk tetapi dapat
diperoleh dengan menyesuaikan prosedur yang sesuai untuk meminimalkan
masalah knapsack.
Selain itu terdapat juga penelitian yang menganalisis efek dari
gangguan lalu lintas transportasi umum berbasis kereta api dan juga
menganalisis pendekatan untuk mengelola gangguan tersebut. Penelitian yang
dilakukan oleh DAriano, Corman, & Hansen (2008) dengan melakukan
optimisasi jalur kereta api melalui penggunaan sumber daya dan penerapan
alat pendukung keputusan yang efisien untuk mengendalikan lalu lintas
kereta api selama beroperasi. Inovasi penjadwalan yang real-time, rerouting
algoritma dan koordinasi kecepatan dikembangkan untuk mengoptimalkan
gangguan global kondisi lalu lintas kereta api dan meminimalkan penundaan
yang terjadi secara berurutan. Hasil penelitian yang berlangsung
menunjukkan efektivitas penggunaan algoritma optimasi real-time
lalu lintas
kereta api dan prosedur pengiriman lokal. Namun, dalam implementasi saat
|
49
ini pengiriman sistem pendukung dinamika kereta dihitung secara terpisah
dari penjadwalan. Akan lebih baik, jika pembahasan integrasi sistem yang
diusulkan masuk ke dalam beberapa daerah pengiriman. Untuk itu
dekomposisi
masalah besar menjadi masalah kecil yang harus diselesaikan
oleh sistem pengirim lokal untuk memastikan
koordinasi secara global dan
untuk menghitung solusi yang efektif untuk jaringan kereta api secara
keseluruhan.
Untuk memperjelas masalah dalam perhitungan waktu yang terjadi
dalam kereta api, Krasemann (2010) telah mengembangkan sebuah algoritma
greedy
yang
efektif memberikan solusi yang baik dalam waktu yang
diizinkan.
Algoritma greedy
tersebut berlangsung secara iteratif dengan
mencari
kedatanganan kereta api dan menunggunya untuk dieksekusi
berikutnya dengan
membangun pohon kejadian yang dieksekusi secara
berturut-turut yang menjadi node di pohon. Setiap node mempunyai estimasi
biaya dari setiap solusi. Algoritma
ini memiliki tiga fase. Tahap pertama
adalah tahap fase pengolahan terlebih dahulu, kemudian fase kedua adalah
pencarian secara depth-first untuk secara cepat menemukan solusi yang layak
dan baik dengan membangun cabang pertama lengkap dari pohon. Pada fase
ketiga, algoritma menggunakan perhitungan waktu yang tersisa dan diizinkan
untuk meningkatkan solusi yang ada dengan mundur kembali pada node yang
berpotensial di pohon dan cabang-cabangnya untuk menemukan solusi yang
lebih baik sehingga estimasi biaya tersebut dapat menurun. Hal yang
terpenting
untuk mengembangkan algoritma tersebut adalah memastikan
bahwa pengguna dapat menerima independen solusi layak yang cukup baik
dari jenis
permasalahan gangguan
dengan cepat
misalnya dalam waktu 30
detik.
Selanjutnya penelitian yang dilakukan oleh Jariyasunant, Mai, &
Sengupta (2010) yang dengan melalui data transit mengenai data konfigurasi
rute serta API (Application Programming Interfaces) dalam posisi bus secara
real-time dan dapat mengestimasi waktu kedatangannya. Jariyasunant, Mai,
& Sengupta (2010) mengembangkan algoritma untuk menghitung waktu
tempuh dari K-shortest paths
dalam jaringan transportasi umum dimana
hanya diketahui secara real-time. Algoritma tersebut dikembangkan dengan
menarik data real-time
dari pihak API yang disebut dengan Trans. Dalam
|
![]() 50
antarmuka berbasis web
atau smartphone, user
memasukkan geo-code
asal
dan tujuan (Origin and Destination), dan algoritma harus merespon kembali
K-shortest path
berdasarkan kondisi real-time
dari jaringan yang disebut
transit node routing. Dengan demikian, ukuran kinerja utama tersebut adalah
waktu elapsing antara input dari Origin dan
Destination dan jalannya output,
dimana yang disebut waktu komputasi. Jalur precomputation
secara
signifikan mengurangi waktu komputasi dan jumlah waktu kedatangan real-
time
yang diminta
ke server
agen transit,
terdapat
hambatan dalam
menghitung masalah ini.
Hasil penelitian menunjukkan bahwa permintaan
dari webserver dikembalikan dalam 3 (tiga) detik. Berdasarkan hasil tersebut,
pengujian tambahan diperlukan untuk menyelidiki kinerja algoritma di daerah
transportasi regional yang lebih besar yang meliputi beberapa agen transit dan
jaringan antarkota.
Selain itu, terdapat penelitian lain dilakukan oleh Bastani et al. (2011)
yang membangun 2 (dua) tahapan untuk membentuk rute transportasi umum
dari data perjalanan GPS. Cara
tersebut yaitu mengembangkan algoritma
hierarchical clustering
yang dipertimbangkan hanya untuk jarak di bawah
ambang batas untuk mengidentifikasi panjangnya perjalanan dan algoritma
scalable routing
untuk membentuk rute dari grafik yang diarahkan dalam
perjalanan. Metode tersebut mempertimbangkan data sementara,
yang
memungkinkan untuk menangani data selama jangka waktu tertentu dimana
arus lalu lintas sangat bervariasi, dan dapat dieksekusi dengan parameter yang
berbeda untuk mendapatkan rute transportasi umum dalam situasi yang
berbeda. Algoritma routing
yang dikembangkan mempunyai hasil yang
signifikan lebih baik dari yang sederhana, dan algoritma greedy yang cepat.
Dari berbagai penelitian tersebut dalam dirangkum sebagai berikut:
No
Nama
Judul
Metode
Keterangan
1
Simon Gortz
and Andreas
Klose
Analysis of Some
Greedy
Algorithm for
the Single-Sink
Fixed-Charge
Menganalisa
teknologi yang
membantu
penyelesaian
masalah
Dua pendekatan
greedy mungkin
akan memberikan
solusi buruk
tetapi dapat
|
![]() 51
No
Nama
Judul
Metode
Keterangan
Transportation
Problem (2006)
transportasi dengan
membandingkan 2
jenis pendekatan
algoritma greedy
yaitu 2-
approximation
algorithm dan 3/2-
approximation
algorithms untuk
meminimalkan
permasalahan
knapsack.
diperoleh dengan
menyesuaikan
prosedur yang
sesuai untuk
minimal masalah
knapsack.
2
A. DAriano,
F. Corman, I.
A. Hansen
Railway Traffic
by Advance
Scheduling and
Rerouting
Algorithms
(2008)
Optimisasi jalur
kereta api melalui
penggunaan sumber
daya dan penerapan
alat pendukung
keputusan yang
efisien untuk
mengendalikan lalu
lintas kereta api
selama beroperasi
atau yang disebut
ROMA (Railway
traffic Optimization
by Means of
Alternative graphs)
Implementasi
pengiriman sistem
pendukung
dinamika kereta
dihitung secara
terpisah dari
penjadwalan.
Akan lebih baik,
jika pembahasan
integrasi sistem
yang diusulkan
masuk ke dalam
beberapa daerah
pengiriman untuk
memastikan
koordinasi secara
global dan untuk
menghitung solusi
yang efektif untuk
jaringan kereta
|
![]() 52
No
Nama
Judul
Metode
Keterangan
api secara
keseluruhan.
3
Johanna
Tornquist
Krasemann
Greedy
Algorithm for
Railway Traffic
Re-schedulinh
During
Disturbances: a
Swedish Case
(2010)
Menganalisa
sebuah algoritma
greedy yang efektif
memberikan solusi
yang baik dalam
waktu yang
diizinkan yang
terjadi dalam kereta
api
Motivasi utama
untuk
mengembangkan
algoritma adalah
untuk memastikan
bahwa pengguna
dapat menerima
independen solusi
dalam waktu yang
cepat.
4
Jerald
Jariyasunant,
Eric Mai, Raja
Sengupta
Algorithm for
Finding Optimal
Paths in a
Public Transit
Network with
Real-time Data
(2010)
Menganalisa data
transit mengenai
data konfigurasi
rute serta API
(Application
Programming
Interfaces) dalam
posisi bus secara
real-time dan dapat
mengestimasi
waktu
kedatangannya dan
mengembangkan
algoritma untuk
menghitung waktu
tempuh dari K-
shortest paths
dalam jaringan
transportasi umum
dimana hanya
Kelebihan dari
metode ini adalah
dapat menghitung
waktu tempuh
dalam jaringan
transportasi
umum yang
hanya diketahui
secara real-time.
Kekurangan dari
metode ini adalah
terdapat hambatan
dalam
menghitung
waktu kedatangan
sehingga
mengurangi
waktu komputasi
dan jumlah waktu
kedatangan real-
|
![]() 53
No
Nama
Judul
Metode
Keterangan
diketahui secara
real-time
berdasarkan data
yang didapat
tersebut.
time yang diminta
ke server agen
transit.
5
Favyen
Bastani, Yan
Huang, Xing
Xie, Jason W.
Powell
A Greener
Transportation
Mode: Flexible
Routes
Discovery from
GPS Trajectory
Data (2011)
Metode
hierarchical
clustering yang
mempertimbangkan
hanya untuk jarak
di bawah ambang
batas untuk
mengidentifikasi
panjangnya
perjalanan dan
algoritma scalable
routing untuk
membentuk rute
dari grafik yang
diarahkan dalam
perjalanan.
Kelebihan dari
penelitian ini
adalah algoritma
routing yang
dikembangkan
mempunyai hasil
yang signifikan
lebih baik dari
yang sederhana,
dan algoritma
greedy yang
cepat.
|