11
BAB 2
TINJAUAN PUSTAKA
2.1
Teori Umum
Berikut merupakan teori-teori dasar umum yang digunakan dalam
penulisan skripsi ini :
2.1.1
Informasi
Menurut Whitten & Bentley (2007: 27), Informasi adalah data
yang telah di proses kembali menjadi suatu bentuk yang lebih berarti
untuk seseorang atau organisasi. Informasi di bentuk dari data yang
telah di olah sehingga mempunyai arti bagi penerimanya.
2.1.2
Smartphone
Smartphone
adalah telepon seluler yang menawarkan
kemampuan konektivitas dan komputasi yang lebih canggih melebihi
fitur dasar dari sebuah telepon selular. Smartphone dianggap sebagai
komputer yang terintegrasi dalam telepon seluler yang dapat
menjalankan aplikasi pada sebuah platform tertentu seperti Java ME.
(Jeon, et.al, 2011). 
Salah satu keuntungan dari smartphone
adalah menyediakan
platform
bagi pengembang aplikasi untuk dapat mengembangkan
setiap program
yang disesuaikan dengan kebutuhan pengguna
smartphone
sehingga pengguna dapat menggunakan secara spesifik
aplikasi yang mereka gunakan. Contoh : pengguna smartphone dapat
mengirim email, browsing, mencari restoran
terdekat, bahkan
melakukan transaksi keuangan dengan mudah.
  
12
2.1.3
Android
Android
adalah kumpulan software
untuk perangkat mobile
yang mencakup sistem operasi, middleware,
dan aplikasi yang
terdapat didalamnya. Android
adalah sebuah sistem operasi open
source
untuk perangkat mobile
berbasis sistem operasi Linux
yang
dikembangkan oleh Google dan
Open Handset Alliance
(Nimodia &
Deshmukh, 2012).
Sejak diluncurkan Android
telah menarik minat dari
perusahaan, developer
dan khalayak umum sampai dengan saat ini.
Sistem operasi ini terus meningkat baik dari segi fitur atau hardware
yang didukung maupun pengembangan terhadap perangkat yang baru
seperti PC Tablet, TV dan kamera digital.
Menurut Safaat, N (2012), Arsitektur Android dibagi menjadi
beberapa bagian sebagai berikut :
1.
Applications dan widgets
Appplications dan widget adalah sebuah layer dengan keadaan
pengguna
berhubungan langsung dengan aplikasi, di mana
pengguna melakukan
download
aplikasi kemudian melakukan
instalasi dan menjalankan aplikasi tersebut. Pada layer
terdapat
inti dari aplikasi
seperti e-mail, SMS program, kalender, peta,
browser, kontak, dan sebagainya. Aplikasi tersebut dapat
dijalankan secara bersamaan, seperti dapat berkirim pesan ketika
pengguna sedang mendengarkan lagu. Semua aplikasi tersebut
ditulis dengan menggunakan bahasa pemrograman Java.
2.
Libraries
Libraries
adalah layer
tempat dimana
fitur-fitur Android
berada, biasanya para pembuat aplikasi mengakses libraries untuk
menjalankan aplikasinya. Layer
ini berjalan diatas kernel
yang
didalamnya meliputi berbagai libraries yang ditulis dalam Bahasa
C ataupun C++, didalamnya juga terdapat Libc dan SSL, serta:
a.
Libraries media untuk memutar audio dan video
b.
Libraries untuk memanajem tampilan
  
13
c.
Libraries Graphic yang mencangkup SGL dan OpenGL untuk
grafis 2D dan 3D
d.
Libraries SQLite untuk database.
e.
Libraries SSL dan Webkit terintegrasi dengan web browser
dan security
3.
Applications Frameworks
Android adalah Open development platform yang menawarkan
atau memberi kemampuan kepada pengembang untuk
membangun aplikasi yang bagus dan inovatif.  Pengembang
memiliki akses penuh kedalam API framework. Jadi, Application
Framework adalah sebuah layer yang digunakan untuk melakukan
pengembangan aplikasi yang dijalankan di dalam sistem Android.
Berikut ini adalah komponen-komponen yang termasuk di dalam
Applications Frameworks :
a.
Views
b.
Content Provider
c.
Resources Manager
d.
Notifications Manager
e.
Activity Manager
4.
Linux Kernel 
Linux kernel adalah Layer tempat dimana
inti dari
Operating
sistem
dari Android
itu berada. Yang didalamnya berisi file-file
sistem
yang mengatur processing, memory, resource, drivers dan
sistem-sistem Android
lainnya. Linux Kernel
yang digunakan
Android adalah Linux Kernel versi 2.6.
5.
Android Runtime
Android
RunTime
adalah layer
yang membuat aplikasi
Android
dapat dijalankan, dalam prosesnya menggunakan
Implementasi Linux. Dalvik Virtual Machine (DVM) merupakan
mesin yang membentuk dasar kerangka Android. Android
Runtime dibagi menjadi dua bagian yaitu:
a.
Core Libraries
Aplikasi Android
di bangun dalam Bahasa Java
dan Dalvik
sebagai virtual machine-nya, sehingga diperlukan Libraries
  
14
yang berfungsi untuk menterjemahkan Bahasa Java
atau C
yang ditangani oleh Core Libraries.
b.
Dalvik Virtual Machine
Virtual machine
berbasis register
yang berfungsi
mengoptimalkan fungsi-fungsi agar berjalan secara efisien,
yang mampu membuat linux kernel
dapat melakukan
threading dan manajemen tingkat rendah.
Menurut Safaat, N
(2012), terdapat 4
jenis komponen pada
aplikasi Android yaitu ;
1.
Activities
Activities merupakan bagian terpenting dalam sebuah aplikasi,
fungsinya menyajikan User Interface
(UI) kepada pengguna,
sehingga pengguna dapat melakukan interkasi.
2.
Service
Service tidak memiliki Graphic User Interface
(GUI),
tetapi
service
berjalan secara background. Digunakan untuk
memperbarui sumber
data dan menampilkan notification
dan 
dapat digunakan
untuk melakukan pengolahan data yang akan
diproses.
3.
Broadcast Receiver
Broadcast Receiver berfungsi menerima dan bereaksi
untuk
menyampaikan notification (pemberitahuan).
Broadcast Receiver
tidak memiliki User Interface (UI), tetapi memiliki activity untuk
merespon sebuah informasi yang mererka terima
atau mungkin
menggunakan
Notification Manager
untuk memberitahu kepada
pengguna, seperti lampu latar atau vibrating
(getaran perangkat).
Contoh pengaplikasian Broadcast Receiver adalah notification
zona waktu berubah atau ketika baterai sudah hampir habis.
4.
Content Provider
Content Provider adalah mengelola kumpulan aplikasi data
atau
database
secara spesifik sehingga bisa digunakan ke dalam
aplikasi lain. Content Provider dapat menyediakan cara untuk
  
15
mengakses data yang dibutuhkan dalam sebuah activity.
Contohnya aplikasi membutukan peta (map).
2.1.4
Sosial Media & Social Networking Service
Sosial media mengacu pada media untuk berbagi informasi
atau konten. Biasanya sosial media dihubungkan dengan aplikasi
berbasis internet
yang digunakan untuk melakukan komunikasi,
bersosialisasi dan jejaring online (Mustonen, 2009).
Social networking service
merupakan layanan yang
memungkinkan seseorang berinteraksi dengan orang lain. Interaksi ini
bisa
berbentuk mengirimkan atau melakukan posting
message
(pesan), melakukan share
foto atau video, melakukan share link
materi online, instant messaging dan sebagainya (Turban & Volonino,
2012).
Contoh dari Social networking service
seperti: Facebook,
Twitter, LinkedIn, dll.
2.1.5
Mobile Social Networking
Menurut Turban & Volonino
(2012: 203), Mobile social
networking merupakan jejaring sosial antara dua atau
lebih individu
yang
berinteraksi dan terhubung melalui
jaringan
internet
menggunakan smartphone
atau peralatan mobile
lainnya. Hampir
semua jejaring sosial terkenal menawarkan
aplikasi yang
menginjinkan pengguna
mengakses jejaring sosial mereka melalui
smartphone atau peralatan mobile lainnya.
Mobile social networking
memudahkan pengguna
untuk
mengakses jejaring sosial dimana saja tanpa harus menggunakan
komputer atau laptop. Mobile social networking
diprediksi menjadi
salah satu aplikasi mobile terpopuler.
  
16
2.1.6
Unified Modelling Language (UML)
Menurut Whitten & Bentley (2007: 371), Unified Modeling
Language
(UML) adalah sekumpulan konvensi tentang pemodelan
yang digunakan untuk menspesifikasi atau menggambarkan sistem
software dalam hal-hal tentang objek.
a.
Use Case Diagram
Menurut Whitten & Bentley (2007: 246) Use case diagram
adalah diagram yang menggambarkan interaksi antara sistem
dengan user
dan eksternal sistem. Dengan kata lain use case
diagram
menggambarkan user
yang terlibat dengan sistem dan
interaksi user dengan sistem. 
Berikut adalah elemen -
elemen dari use case diagram,
yaitu.
a.
Use Case
Menurut Whitten & Bentley (2007: 246), Use case
menjelaskan fungsi yang terdapat pada sistem dari sudut
pandang external user
dengan menggunakan cara dan istilah
yang mudah dimengerti.
Gambar 2.1 Contoh Penggunaan Use Case
(Sumber: Sistem Analysis and Design Method - Whitten & Bentley,
2007)
  
17
b.
Actor
Menurut Whitten & Bentley (2007: 247),
Actor
merupakan external user
yang berinteraksi dengan sistem
untuk bertukar informasi. Actor
tidak hanya representasi dari
manusia tetapi bisa sebuah organisasi, sistem informasi yang
lain dan perangkat external
seperti sensor parkir bahkan
konsep dari sebuah waktu.
Ada 4 tipe Actor
menurut  Whitten & Bentley (2007:
247), yaitu :
1.
Primary Business Actor
Primary business actor
merupakan actor
yang
mendapat keuntungan utama dari eksekusi dari use case
dengan menerima sesuatu yang bersifat measureable
(terukur).
Contoh : Dalam sebuah business event, karyawan
menerima cek pembayaran dari sistem pembayaran gaji
setiap bulan.
2.
Primary Sistem Actor
Primary sistem actor merupakan actor yang secara
langsung berinteraksi dengan sistem dengan memulai atau
memicu terjadinya business atau sistem event.
Contoh : Kasir yang melakukan scan
barang yang
dibeli oleh pembeli dalam sebuah sistem pembayaran
dalam sebuah took.
3.
External Server Actor
External server actor
merupakan actor
yang
merespon sebuah request dari sebuah use case.
Contoh : Sebuah biro kredit yang mengotorisasi
biaya sebuah kartu kredit.
4.
External Receiver Actor
External receiver actor
adalah stakeholders
yang
bukan merupakan actor
primer tapi menerima sesuatu 
yang bersifat measurable atau output dari sebuah use case.
  
18
Contoh : Gudang penyimpanan barang menerima
perintah pengepakan untuk
mempersiapkan pengirimian
setelah customer melakukan pemesanan.
c.
Relationship
Sebuah relationship
(hubungan) digambarkan dengan
sebuah garis antara dua simbol pada diagram use case.
Menurut Whitten & Bentley (2007: 248) ada 5 tipe
relationship :
1.
Association
Association
merupakan hubungan antara actor
dengan use case. Sebuah association
yang terdapat tanda
panah pada ujung garis yang menyentuh use case
mengindikasikan bahwa use case
tersebut dimulai atau
dipicu oleh actor
yang berada pada ujung garis lainnya.
Sedangkan association
yang tidak terdapat tanda panah
mengindikasikan interaksi antara use case dengan external
server atau receiver actor.
Gambar 2.2 Contoh Penggunaan Association pada Use
Case
(Sumber: Sistem Analysis and Design Method - Whitten & Bentley,
2007)
2.
Extend
Sebuah use case
mungkin berisi fungsi yang
kompleks yang terdiri dari beberapa step membuat logika
dari use case
tersebut susah untuk dimengerti. Untuk
menyederhanakan use case
dan menjadikannya mudah
  
19
dimengerti maka kita bisa melakukan extract
step –
step
tersebut kedalam use case tersebut.
Gambar 2.3 Contoh Penggunaan Extend pada Use Case
(Sumber: Sistem Analysis and Design Method - Whitten & Bentley,
2007)
3.
Uses atau Include
Uses atau Include
merupakan hubungan ketika dua
atau lebih use case
melakukan melakukan langkah yang
sama. Sehingga uses
atau include
mengurangi redudansi
terhadap use case tersebut.
Gambar 2.4 Contoh Penggunaan Uses atau Include
pada Use Case
(Sumber: Sistem Analysis and Design Method - Whitten &
Bentley, 2007)
  
20
4.
Depends On
Depends on
merupakan hubungan antara use case
yang menentukan suatu use case
tidak dijalankan sampai
use case lainnya telah dijalankan.
Gambar 2.5 Contoh Penggunaan Depends On pada Use
Case
(Sumber: Sistem Analysis and Design Method - Whitten &
Bentley, 2007)
5.
Inheritance
Ketika dua atau lebih actor dapat melakukan, use
case
yang sama lebih baik dibuat sebuah abstact
actor
untuk mengurangi  hubungan yang redudansi. Hubungan
antara abstract actor
dengan dua atau lebih actor
yang
diturunkan merupakan tipe dari relationship inheritance.
  
21
Gambar 2.6 Contoh Penggunaan Inheritance pada
Use Case
(Sumber: Sistem Analysis and Design Method - Whitten
&
Bentley, 2007)
b.
Use Case Narrative
Menurut Whitten & Bentley (2007, 385), setelah semua
kebutuhan bisnis telah di dapatkan, dibutuhkan informasi yang
lebih banyak untuk menjelaskan spesifikasi sistem lebih
mendalam. Use
Case
Narrative
adalah deskripsi tertulis secara
lengkap mengenai peristiwa-peristiwa bisnis dan bagaimana actor
(pengguna) akan berinteraksi dengan sistem untuk menyelesaikan
suatu tugas.
  
22
Gambar 2.7 Contoh High version of place new order use case
narrative
(Sumber: System Analysis and Design Method - Whitten &
Bentley, 2007)
  
23
Gambar 2.8 Contoh Expanded High level version of place new
order use case narrative
(Sumber: System Analysis and Design Method - Whitten & Bentley,
2007)
c.
Activity Diagram
Menurut Whitten & Bentley (2007: 390), activity diagram
merupakan sebuah diagram yang bisa digunakan untuk
menggambarkan aliran dari sebuah proses bisnis, langkah –
langkah dari sebuah use case.
Beberapa elemen yang terdapat dalam sebuah activity
diagram menurut Whitten & Bentley (2007: 391) : 
  
24
Tabel 2.1 Tabel Elemen Activity Diagram
Nama
Simbol
Deskripsi
Initial node
Simbol
merepresentasikan
awal dari sebuah
proses.
Actions atau
activity
Simbol yang
merepresentasikan step
(langkah) individual
dari sebuah activity
Flow
Simbol yang
mengindikasikan
flow(aliran) dari
action.
Decision
Simbol diamond
yang
terdiri dari 1 flow
masuk dan dua atau
lebih flow
keluar.
Aliran yang keluar
mengindikasikan
sebuah kondisi.
Merge
Simbol diamond
yang
terdiri  dua atau lebih
flow
masuk dan 1
aliran keluar. Simbol
ini menggabungkan
flow
dari activity
yang
dipisahkan oleh
kondisi sebelumnya
(decision)
Fork
Simbol bar hitam yang
terdiri dari satu flow
masuk dan dua atau
lebih flow
keluar
mengindikasikan
terjadi dua atau lebih
proses yang berjalan.
Join
Simbol bar hitam yang
terdiri dari dua atau
lebih flow
masuk dan
satu flow
keluar ini
menggambarkan
berakhirnya proses
yang dijalankan secara
bersamaan
sebelumnya.
Activity final
Simbol yang
menggambarkan akhir
Activity
  
25
dari proses.
Sumber : System Analysis and Design Method - Whitten &
Bentley, 2007
Gambar 2.9 Contoh Activity Diagram
(Sumber: Sistem Analysis and Design Method - Whitten dan
Bentley, 2007)
d.
Sequence Diagram
Menurut Whitten & Bentley (2007), Sequence diagram
adalah diagram yang menggambarkan interaksi message
antara
objek dalam waktu yang berurutan. 
Berikut merupakan elemen sequence diagram
1.
Actor
Actor mewakili user yang berinteraksi dengan sistem.
  
26
2.
Interface Class
Suatu class yang mewakili kelas dari user interface agar tidak
terjadi kebingungan terhadap jenis kelas dalam sequence
diagram. Notasi interface class adalah <<interface>> dan titik
dua (:) sebagai standar notasi yang menandakan instance dari
kelas.
3.
Controller Class
Setiap use case
memiliki satu atau lebih kelas controller,
digambarkan sama dengan notasi interface class
yaitu
<<controller>>
4.
Entity Class
Entity class
mewakili kelas yang digambarkan dengan kotak
dan titik dua (:) sebagai notasi dari instance dari kelas.
5.
Message
Garis horizontal
dengan tanda panah menandakan input
message
yang dikirim menuju kelas. Setiap message
memanggil method
(fungsi)
dari kelas yang ditunjuk oleh
tanda panah.
6.
Activation Bar
Activation bar menunjukan lamanya objek digunakan.
7.
Return Message
Setiap fungsi atau behavior
seharusnya mengembalikan
sesuatu yang menandakan fungsi sukses dijalankan atau tidak.
Return message berupa hasil apakah fungsi berhasil dijalankan
atau sebaliknya.
8. Sef-Call
Self-call
merupakan notasi dari objek yang memanggil method
(fungsi) dari objek itu sendiri.
9. Frame
Frame
menandakan area pada diagram yang melakukan
pengulangan dan seleksi.
  
27
Gambar 2.10 Contoh Sequence Diagram
(Sumber: Sistem Analysis and Design Method - Whitten &
Bentley, 2007)
e.
Class Diagram
Menurut Whitten & Bentley (2007), Class diagram adalah
diagram  yang menggambarkan kelas yang menyusun sistem
maupun hubungan antar kelas dalam sistem tersebut.
Berikut merupakan elemen –
elemen yang terdapat pada
class diagram menurut menurut Whitten & Bentley (2007) : 
a.
Class
Class merupakan sesuatu yang bisa dilihat, diraba, atau
bahkan dirasakan dan dimana user menyimpan data. Object ini
bisa merupakan orang, tempat, benda atau event.
Contoh :
Customer.
b.
Attribut
Attribut
merupakan data yang mewakili karakteristik
dari object.
Contoh : Attribut dari object customer
seperti first
name, last name, alamat rumah, nomor telepon, dan email.
c.
Behaviour
  
28
Behavior
merupakan sekumpulan hal yang bisa
dilakukan oleh object
atau yang sesuai dengan fungsi yang
bekerja pada attribute
(data) dari object. Dalam lingkungan
berorientasi objek mengarah kepada method, operation
dan
service.
d.
Visibility
Cara bagaimana atribut dan method diakses oleh kelas
lain didefinisikan dengan visibility. Berikut 3
level dari
visibility :
Tabel 2.1 Tabel Elemen Visibilty Class Diagram
Visibility
Notasi
Deskripsi
Public
+
Atribut dapat diakses kelas
lain dan method
dapat
dipanggil oleh suatu method
yang terdapat pada kelas lain.
Protected
#
Atribut dapat di akses dan
method
dapat dipanggil oleh
kelas yang telah didefinisikan
sebagai subclass
dari kelas
tersebut.
Private
-
Atribut dapat diakses dan
method
dapat dipanggil
hanya oleh suatu method
dalam kelas dimana atribut
dan method
tersebut
didefinisikan. Dengan kata
lain Atribut dan method tidak
bisa dipanggil dan diakses
oleh kelas lain.
Sumber : System Analysis and Design Method - Whitten &
Bentley, 2007
e.
Relationship
Hubungan dalam class diagram adalah hubungan yang
terjadi antara satu atau lebih object dan class.
Beberapa hubungan pada class diagram :
  
29
1.
Association & Multiplicity
Association
merupakan hubungan antar dua kelas
atau lebih. Hubungan ini diwakili oleh garis. Association
juga menerangkan hubungan antar kelas seperti
multiplicity.
Multiplicity adalah jumlah minimum dan maximum
yang muncul dari sebuah hubungan class
dengan class
lainnya.
Tabel 2.3 Tabel Elemen Assotiation & Multiplicity Class
Diagram
Notasi Multiplicity
Deskripsi
1 atau dikosongkan
Tepat 1
0..1
0 atau 1
0..* atau *
0 atau lebih
1..*
1 atau lebih
m..n
Jarak tertentu antara m dan n
Sumber : System Analysis and Design Method -
Whitten & Bentley, 2007
2.
Generalization & Specialization
Generalization & Specialization
adalah hubungan
inheritance
(pewarisan) dimana atribut dan method
dari
kelas induk (supertype
atau generalization class)
diwariskan kepada kelas anak (subclass atau specialization
class). Sehingga class
anak memiliki semua elemen dari
kelas induk.
  
30
Gambar 2.11 Contoh Generalization & Specialization
Class Diagram
(Sumber: Sistem Analysis and Design Method - Whitten &
Bentley, 2007)
3.
Aggregation & composition
Aggregation merupakan hubungan suatu class
dengan bagian dari class tersebut.  
Gambar 2.12 Contoh Aggregation Class Diagram
(Sumber: Sistem Analysis and Design Method - Whitten &
Bentley, 2007)
Composition
memiliki konsep yang sama dengan
aggregation
tetapi lebih memiliki keterkaitan yang lebih
  
31
kuat. Class
tidak aka nada apabila bagian dari kelas tidak
terbentuk.
Gambar 2.13 Contoh Composition Class Diagram
(Sumber: Sistem Analysis and Design Method - Whitten &
Bentley, 2007)
2.1.7
Kamus Data
Menurut  Connolly
dan Begg
(2010: 64),  Sistem  Katalog 
atau  Kamus  Data  merupakan  tempat  penyimpanan  informasi  yang 
mendeskripsikan  data di dalam sebuah database
Biasanya  kamus  data  menyimpan : 
1.
Nama,  tipe,  dan  ukuran  dari  data  items.
2.
Nama relationships
3.
Kendala  integritas  pada  data. 
4.
Nama  dari  pengguna  resmi  yang  mengakses  data. 
5.
Data  yang  dapat  diakses  setiap  pengguna  dan  tipe  akses 
yang  diperbolehkan.  Contoh  :  insert,  update,  delete,  atau 
read  access.
6.
Skema  eksternal,  konseptual,  dan  internal  serta 
pemetaan 
diantara  skema. 
  
32
7.
Penggunaan  statistik,  seperti  frekuensi  transaksi  dan  jumlah 
akses  yang  dibuat  untuk  objek  dalam  database. 
Beberapa  manfaat  dari  kamus  data  : 
1.
Informasi  tentang  data  dapat  dikumpulkan  dan  disimpan 
secara  terpusat. Ini  membantu  untuk  mempertahankan  kontrol 
data  sebagai  sumber  daya. 
2.
Arti  dari  data  dapat  didefinisikan,  ini  akan  membantu 
pengguna  lain  untuk  mengerti  maksud  dari  data  tersebut. 
3.
Kamus  data  dapat  mengidentifikasi  pengguna  yang  memiliki 
atau  yang mengakses  data. 
4.
Redundansi  dan  inkonsistensi  dapat  diidentifikasi  lebih  mudah 
karena  data  terpusat. 
5.
Perubahan  database  dapat  disimpan. 
6.
Dampak  dari  perubahan  dapat  ditentukan  sebelum 
diimplementasi,  karena  kamus  data  menyimpan  semua  data 
items,  semua  relationships,  dan  semua  pengguna.
7.
Keamanan  dapat  diperkuat.
8.
Integrasi sistem terjamin.
9.
Informasi audit dapat disediakan.
2.1.8
Database
Menurut Connolly
dan Begg
(2010: 65), Database
adalah
kumpulan dari data-data
logis
yang saling terhubung dan dirancang
untuk memenuhi kebutuhan informasi  suatu organisasi. Database
digunakan dalam kehidupan sehari-hari baik secara sadar maupun
tidak sadar, contoh
dari
database
yang sering kita gunakan dalam
kehidupan sehari-hari yaitu : 
1.
Pembayaran  dengan kartu kredit
2.
Pembayaran paket liburan pada agen travel
3.
Pembayaran belanja di supermarket
4.
Mencari buku diperpustakaan 
  
33
5.
Peminjaman DVD
Sebuah database tidak dimiliki oleh 1 (satu) departemen tetapi
merupakan sebuah sumber informasi yang terbagi
dan saling
terhubung. Tidak hanya data operasional yang ada di dalam database
tetapi juga
terdapat
deskripsi dari data tersebut. Oleh karena itu,
database juga disebut penggambaran koleksi pribadi dari catatan yang
terintegrasi (self-describing collection of integrated records).
Menurut Connolly
dan Begg
(2010: 68), Ada 5
komponen
utama dalam lingkungan Database  yaitu :
1.
Hardware
Sebuah DBMS dan aplikasi membutuhkan hardware untuk
dapat beroperasi. Hardware dapat berupa personal computer (PC)
ke mainframe
sampai dengan
jaringan komputer. Hardware
khusus tergantung pada kebutuhan organisasi dan DBMS yang
digunakan.
2.
Software
Software merupakan perangkat lunak yang berupa DBMS,
sistem operasi dengan aplikasi program itu sendiri, jaringan
perangkat lunak apabila DBMS digunakan melalui jaringan.
Biasanya, aplikasi program ditulis dalam bahasa pemrograman
generasi ketiga seperti C, C++, C#, Java, Visual Basic dan lain-
lain.
3.
Data 
Komponen yang paling penting dari DBMS dilihat dari
sudut pandang pengguna akhir adalah data. Data merupakan
jembatan penghubung antara komponen mesin dan komponen
manusia. Sebuah database berisi data operasional dan metadata.
4.
Procedures
Prosedur merupakan
suatu instruksi atau aturan yang
mengatur desain dan penggunaan database. Pengguna sistem dan
staff yang mengatur database
memerlukan prosedur yang
terdokumentasi untuk menjalankan sistem, seperti:
  
34
-
Cara masuk ke dalam DBMS.
-
Menggunakan fasilitas DBMS tertentu atau aplikasi program.
-
Memulai dan menghentikan DBMS.
-
Membuat back up dari database.
-
Menangani kesalahan dari hardware atau software.
-
Merubah struktur dari tabel, mengorganisir ulang database,
meningkatkan kinerja, atau mengarsipkan data ke dalam
secondary storage.
5.
People
Komponen terakhir adalah orang-orang yang terlibat
dengan sistem. Orang yang terlibat dengan sistem dapat
didefinisikan dengan 4 tipe dan memiliki tanggung jawab sendiri,
yaitu:
1. Data and Database Administrators 
Data administrators
bertanggung jawab dalam
pengelolaan sumber data, termasuk perencanaan database,
pengembangan dan pemeliharaan yang standar, kebijakan dan
prosedur, konseptual dan logikal desain database. Database
administrators
bertanggung jawab dalam realisasi fisik
database
termasuk fisik disain database
dan
pengimplementasian, keamanan dan integritas kontrol,
pemeliharaan operational system (OS) dan menjamin kinerja
aplikasi yang memuaskan bagi pengguna.
2. Database Designers
Logical database designers
yang bertanggung jawab
dalam mengidentifikasi data, hubungan antar data
dan
kendala pada data yang akan disimpan dalam database.
Physical database designers yang bertanggung jawab dalam
menentukan bagaimana logical database design
direalisasikan.
3. Application Developers
Program aplikasi yang fungsionalitas sesuai dengan
yang diinginkan end-user
harus dilakukan dan itu merupakan
tanggung jawab Application developers.
  
35
4. End Users
End-user
adalah klien database
yang telah dirancang
dan diimplementasikan dan diperbaiki untuk melayani
kebutuhan informasi mereka.
2.1.9
Database Management Sistem (DBMS)
Menurut Connolly
dan Begg
(2010: 66), Database
Management System
adalah sistem software
yang memungkinkan
pengguna untuk mendefinisikan, membuat, memelihara, dan kontrol
akses ke database.
DBMS adalah software
yang berinteraksi dengan program
aplikasi dan pengguna database.
Biasanya DBMS menyediakan
fasilitas sebagai berikut :
1.
DDL (Data Definition Language)
DDL memungkinkan pengguna untuk menentukan tipe data dan
struktur dan kendala pada data yang akan disimpan dalam
database.
2.
DML(Data Manipulation Language)
Ini memungkinkan pengguna untuk memasukkan, update,
menghapus dan mengambil data dari database biasanya meskipun
memanipulasi data bahasa (DML).
3.
Memberikan Akses Kontrol ke Database
-
Keamanan sistem: yang mencegah pengguna yang tidak
berhak mengakses database.
-
Integritas sistem: yang menjaga konsistensi data yang
tersimpan.
-
Concurrency control
sistem: yang memungkinkan berbagi
akses database.
4.
Pemulihan sistem control
Yang dimaksud adalah mengembalikan database ke keadaan yang
konsisten sebelumnya setelah perangkat keras atau kegagalan
software.
  
36
5.
User dapat mengakses katalog
User dapat melihat berisi deskripsi dari data dalam database.
2.1.10
Entity Relationship Diagram (ERD)
Menurut Whitten & Bentley (2007), ERD adalah Model
data
yang menggunakan notasi untuk, menggambarkan data dalam bentuk
entitas dan mengambarkan hubungan antar data.
Gambar 2.14 Contoh Entity Relationship Diagram
(Sumber: Sistem Analysis and Design Method - Whitten &
Bentley, 2007)
2.1.11
Metodologi Extreme Programming (XP)
Extreme Programming
adalah suatu 
metodologi dalam
rekayasa perangkat lunak yang merupakan agile procces
(proses
tangkas secara detil) berfokus pada coding
sebagai aktifitas utama
dan menekankan pada kerjasama di dalam tim. (Pressman, 2010: 73).  
Extreme programming
memiliki 5 karakteristik
dasar yang
penting yaitu:
1.
Communication, membangun komunikasi yang efektif antara
software engineer
dan stakeholders agar terjadi timbal balik
secara terus menerus dan penyampaian ide-ide penting berjalan
dengan baik.
  
37
2.
Simplicity, Extreme Programming
lebih mengutamakan
pengembangan kebutuhan yang mendesak daripada kebutuhan
masa depan. Dengan tujuan untuk mempermudah pembuatan
desain sederhana yang dapat langsung diimplementasikan ke
dalam kode.
3.
Feedback, merupakan umpan balik yang berasal dari tiga sumber,
yaitu perangkat lunak yang di implementasikan sendiri,
melibatkan customer dan anggota tim pembuatan perangkat lunak
lainnya.
4.
Courage, di dalam tim pengembang perangkat lunak di harapkan
memiliki sifat
yang disiplin, dalam segi desain, dalam merancang
aplikasi dan pada saat terjadi perubahan requirement secara tiba-
tiba.
5.
Respect, di dalam tim Extreme Programming sangat di
haruskan
menanam sikap respect (hormat) antara sesama anggota dan antar
pemangku kepentingan.
Menurut Pressman (2010: 73), Metode Xtreme programming
menggunakan pendekatan object-oriented. Terdapat 4 tahapan
aktifitas dalam Extreme Programming, diantaranya:
Gambar 2.15 Metodologi Extreme Programming (XP)
(Sumber: Software Engineering A Practitioner’s
Approach, 2009)
  
38
1.
Planning
Aktifitas dalam
planning adalah mendengarkan. Dimulai dari
pengumpulan requirements
(persyaratan)
masalah teknik dalam
tim Extreme Programming
yang bertujuan untuk mengetahui
konteks bisnis pembuatan software. Planning
berisi “Strories”
yang mengambarkan output
yang diharapkan, fitur, dan
fungsionalitas untuk software
yang dibangun. Setiap story
menetapkan prioritas nilai bisnis dari fitur atau fungsi. Pada story
ditetapkan harga dan lama pembuatan atau pembanguna, jika
terlalu besar, story
dapat dipecah menjadi beberapa story
yang
lebih kecil.
2.
Design 
Xtreme Programming
mengunakan prinsip KIS (Keep it
simple). Perancangan yang sederhana lebih mudah dimengerti dari
pada tampilan yang kompleks. Extreme Programming
menggunakan CRC (Class Responsibilty Collaboration) cards
yang merupakan mekanisme efektif untuk mengembangkan
software dalam object oriented context. Jika mengalami kesulitan
dalam hal desain, Extreme Programming akan merekomendasikan
pembuatan operasional prototype
yang disebut Spike solution.
Spike solution
berfungsi untuk mengimplementasi dan
mengevaluasi rancangan.
3.
Coding
Ini adalah tahapan yang dilakukan setelah story dikembangkan
dan rancangan pedahuluan selesai. Kemudian hal yang dilakukan
setelahnya
menyiapkan unit
tes
sebelum melakukan pengkodean,
dipakai sebagai fokus pemrogram  untuk  membuat  program agar
lulus tes uji. Dalam tahapan ini mendukung adanya refactoring.
Refactoring
yaitu teknik kontruksi untuk mengoptimalkan desain.
Refactoring
adalah suatu proses pengembangan desain dari
program yang telah ditulis. Pair  programming dilakukan untuk
real time program solving dan real time quality assurance.
  
39
4.
Testing
Penciptaan unit tes
sebelum melakukan coding
merupakan
elemen penting dalam pendekatan Extreme programming. Unit tes
yang dibuat harus dilaksanakan dengan menggunakan kerangka
kerja yang otomatis
(agar mudah dan dapat dilakukan berulang-
ulang).
2.1.12
Interaksi Manusia dan Komputer
Schneiderman
dan Plaisant 
(2010: 22)
mengungkapkan
Interaksi Manusia Komputer
(IMK)
ialah sebuah pengaplikasian
metode dari pengalaman psikologi ke dalam ilmu komputer. Interaksi
Manusia dan Komputer adalah ilmu yang mempelajari bagaimana
cara me-design
(merancang) dan evaluasi interface yang baik agar
efektif dan efisien pada saat digunakan oleh user.
2.1.13
Design Mobile Interface
Stark (2012) dalam pengembangan aplikasi pada mobile
terdapat 10 (sepuluh) prinsip desain untuk interface mobile
1. Mobile Mindset
Dengan mengacu pada perbedaan antara mobile dan desktop,
akan muncul beberapa pola pikir untuk mendesain mobile:
a.
Be Focused
Aplikasi sebaiknya berfokus pada suatu fitur karena
dengan banyak fitur, tidak membuat aplikasi tersebut menjadi
lebih baik. 
b.
Be Unique
Aplikasi yang dikembangkan harus memiliki sifat yang
unik dan memiliki kekuatan yang membedakan aplikasi
tersebut dengan aplikasi lainnya.
  
40
c.
Be Charming
Aplikasi dapat diandalkan, dan menyenangkan pada
saat digunakan, sehingga aplikasi tersebut banyak diminati dan
digunakan oleh pengguna.
d.
Be Considerate
Aplikasi  yang dikembangkan sebaiknya tidak hanya
menyenangkan pengguna saat menggunakannya, tetapi juga
dapat memenuhi keinginan sesuai dengan apa yang diharapkan
pengguna.
2.
Mobile Contexts
Terdapat 3 (tiga) pertimbangan utama pada mobile
yang perlu
dipertimbangkan untuk mengetahui aplikasi yang pengguna
harapkan:
a.
Bored : Usahakan aplikasi yang berkonteks hiburan.
b.
Busy
: Usahakan aplikasi
menyelesaikan tugas dengan
cepat.
c.
Lost
: Usahakan aplikasi yang berkonteks informasi tempat.
3.
Global Guidelines
Setiap aplikasi memiliki teknik pendekatan dan desain yang
berbeda-beda. Sifat yang merekat pada sebuah perangkat
touchscreen
berukuran saku memiliki hal yang harus diperhatikan
dalam pengembangan aplikasi, yaitu:
a.
Responsiveness
Jika pengguna melakukan sesuatu pada sebuah
aplikasi, aplikasi perlu menunjukkan jika aplikasi sedang
beroperasi atau menunjukan suatu proses yang sedang
dikerjakan.
b.
Polish
Developer
harus memperhatikan detil dari desain
sebuah aplikasi.
  
41
c.
Thumbs
Dengan touchscreen interfaces, desain interfaces harus
disesuaikan karena banyak pengguna yang menggunakan ibu
jari untuk mengetik.
d.
Targets
Dalam mendesain aplikasi yang akan menggunakan
banyak fungsi keyboard, developer
sebaiknya mendesain
penempatan tombol yang baik sehingga memudahkan
pengguna dalam pengetikan.
e.
Content
Sebaiknya pengembang menempatkan content aplikasi
pada tengah layar untuk memudahkan pengguna berinteraksi
dengan aplikasi.
f.
Control
Ketika harus menambahkan suatu kontrol pada
aplikasi, sebaiknya diletakkan pada bagian bawah layar agar
memudahkan pengguna berinteraksi dengan aplikasi.
g.
Scrolling
Sebaiknya pengembang mengurangi pemakaian
scrolling
untuk memudahkan pengguna dalam penggunaan
aplikasi.
4.
Navigation Models
Ada beberapa model navigasi umum untuk aplikasi mobile
yang dapat digunakan sesuai dengan aplikasi, seperti none, tab bar,
dan drill down.
5.
User Input
Pada pengembangan suatu aplikasi memungkinkan pengguna
dalam memberikan input seperti pengetikan. Terdapat banyak
variasi keyboard
pada smartphone, pertimbangkan untuk
menampilkan keyboard
yang akan sangat berguna. Pilihan auto
entry
yang harus diaktifkan juga harus dipertimbangkan. Jika
aplikasi perlu banyak input
seperti pengetikan, pastikan
mendukung orientasi landscape.
  
42
6.
Gestures
Touchscreen
interfaces
saat ini mendukung gesture-based
untuk interaksi pengguna. Hal - hal yang harus diingat adalah:
a.
Invisible
Gestures
tidak terlihat, tetapi pengembang aplikasi
harus mempertimbangkan bagaimana untuk mengungkapkan
keberadaan gestures tersebut kepada pengguna.
b.
Two Hands
Multi-touch
gestures
membutuhkan operasi dua
tangan. Contohnya pengguna dapat dengan mudah
memperbesar atau memperkecil tampilan aplikasi dengan dua
jari.
c.
Nice to Have
Menggunakan semacam keyboard shortcuts pada suatu
aplikasi yang dikembangkan jika diperlukan agar pengguna
lebih mudah dalam menggunakan aplikasi.
d.
No Replacemen
Teknologi Two-Hands  belum terlalu berkembang dan
pengembangan aplikasi dianjurkan tidak menghilangkan
fungsi single-finger.
7.
Orientation
a.
Potrait 
Orientasi yang paling sering digunakan untuk mengoptimalkan
desain antar muka aplikasi.
b.
Landscape
Orientasi ini digunakan untuk mendukung pengguna
yang sering mengetik yaitu dengan mengoptimalkan
penggunaan keyboard yang lebih besar.
c.
Orientasi Berubah Tiba Tiba
Pengembangan aplikasi yang akan digunakan dalam
jangka panjang perlu dipertimbangkan untuk menambahkan
suatu orientasi yang tepat di aplikasi tersebut.
  
43
8.
Communications
Aplikasi harus dapat berinteraksi secara baik dengan
penggunanya.
a.
Provide Feedback
Memberikan umpan balik yang mudah untuk setiap
interaksi yang dilakukan. Jika pengguna telah meminta suatu
tindakan yang akan memakan waktu lama, maka aplikasi
menampilkan progress bar.
b.
Modal Alert
Modal
alert
sangat mengganggu sehingga harus
digunakan ketika ada sesuatu yang benar-benar salah.
c.
Confirmation
Ketika harus meminta pengguna untuk
mengkonfirmasi tindakan, dapat ditampilkan dialog
konfirmasi modal. Seperti: “Apakah Anda yakin ingin
menyimpan data ini?”.
9.
Launching
Ketika pengguna kembali ke aplikasi, maka aplikasi
harus kembali beroperasi tepat dimana pengguna
terakhir
mengoperasikan aplikasi.
10. First Impressions
Pada saat pengguna pertama kali menggunakan aplikasi,
terdapat 2 (dua) faktor yang menjadi kesan pertama pengguna,
yaitu:
a.
Your Icon
Dalam mengembangkan suatu aplikasi icon merupakan
suatu hal yang sangat
penting, karena icon
merupakan salah
satu daya tarik bagi pengguna dalam menggunakan aplikasi
yang dikembangkan.
b.
First Launch
Usahakan pada saat peluncuran pertama kali
seharusnya tidak menimbulkan kesan membingunkan bagi
pengguna yang mengoperasikannya.
  
44
2.1.14
Delapan Aturan Emas
 
Schneiderman
dan Plaisant 
(2010) berpendapat ada 8
(delapan) aturan yang dapat digunakan sebagai pedoman dasar dalam
merancang sebuah user interface. Delapan aturan tersebut diantaranya
:
1.
Konsistensi
Konsisten dalam tindakan sangat dibutuhkan pada situasi yang
sama, seperti konsisten dalam penggunaan warna,  fonts, layout,
pemilihan Menu dan sebagainya.
2.
Memenuhi Kebutuhan Secara Universal
Menyadari kebutuhan pengguna yang beragam, rancangan
interface
dibuat harus bisa memfasilitasi isi konten sesuai
kebutuhan pengguna.
3.
Memberikan Feedback yang Informatif
Untuk setiap tindakan yang dilakukan pengguna, diharuskan
adanya feedback sistem akibat dari aksi yang telah dilakukan.
4.
Mendesain Dialog Untuk Menentukan Hasil Akhir
Pengurutan tindakan harus diatur ke dalam kelompok dengan
awal, tengah dan akhir. Feedback yang informatif memberikan
kepuasan user atas tindakan yang telah dilakukan.
5.
Mencegah Kesalahan
Dalam rancangan sistem pengguna tidak dapat melakukan
kesalahan yang serius. Contohnya : ketika proses registrasi dalam
sebuah website, pengguna tidak diperbolehkan untuk menginput
data numerik kedalam data alphabet. Jika terjadi kesalahan,
interface
harus dapat mendeteksi dan memberi informasi
kesalahan yang terjadi.
6.
Memungkinkan Pengembalikan Tindakan
Jika terjadi sebuah error karena aksi yang dilakukan pengguna
diharuskan dapat kembali ke aksi sebelumnya. Hal ini bertujuan
agar pengguna tidak merasa cemas atas peringatan error
yang
ditampilkan oleh user interface.
  
45
7.
Mendukung Pengendalian Internal Locus
Pengguna yang berpengalaman bertanggung jawab dan
memiliki kontrol penuh terhadap sistem dan sistem merespon aksi
yang dilakukan kepada pengguna.
8.
Mengurangi Beban Memori Jangka Pendek
Sistem yang diberikan harus sederhana dan mudah
digunakan, hal ini disebabkan karena beban ingatan manusia yang
terbatas. 
2.1.15
Penelitian Sebelumnya
Penelitian tentang pembuatan aplikasi jejaring sosial mengenai
kuliner pernah dibahas dalam beberapa penelitian sebelumnya seperti
penelitian yang dilakukan oleh Li (2010)
yang berjudul Food Phone
Application (Proyek dari San Jose State University). Dalam penelitian
ini pembuatan aplikasi jejaring sosial untuk kuliner adalah tentang
aplikasi menu makanan untuk pengguna dalam mencari dan juga
mengunggah informasi makanan dengan menggunakan mobile phone.
Orang-orang terkadang ingin tahu informasi tentang makanan apa saja
yang ingin mereka makan disamping informasi tentang restoran.
Tanpa mengetahui nama restoran, aplikasi ini hanya membutuhkan
nama makanan
(hamburger,
spageti,
dll) pada food application
search. Kemudian akan ditampilkan daftar restoran beserta informasi
lengkap mengenai makanan yang ingin mereka cari.
Selain itu penelitian yang sama juga pernah dibahas oleh
Cheng
(2013) yang  berjudul “Location Based Social Mobile
Application For Food”. Dalam penelitian ini, pembuatan aplikasi
mobile
berbasis lokasi untuk makanan, dapat mempermudah
pengguna untuk mencari makanan berkualitas disekitar pengguna.
Pengguna pada sebuah komunitas bias mengunggah foto dan me-
review makanan dan juga restoran dari aplikasi mobile untuk saling
berbagi kepada pengguna lainnya.
Dari penelitian yang sudah pernah dilakukan sebelumnya,
pembuatan applikasi jejaring sosial dapat mempermudah pengguna
  
46
dalam mencari makanan, menentukan lokasi restoran, rating, review,
dan juga mendapatkan informasi tentang makanan yang ingin mereka
cari.
2.2
Teori Khusus
Berikut merupakan teori-teori khusus
yang digunakan dalam
penulisan skripsi ini :
2.2.1
Location Based Services (LBS)
Menurut Turban
& Volonino 
(2012: 205), Location Based
Service mengacu pada pengiriman suatu produk, informasi, iklan atau
sebuah layanan ke customer atau user
yang lokasinya diketahui pada
waktu tertentu.
Keuntungan dari Location Based Services
adalah
meningkatkan produktivitas waktu, karena user
dapat secara spesifik
mengetahui lokasi seseorang atau sesuatu seperti tempat dan
kendaraan tanpa harus melihat peta atau dengan melihat petunjuk
tertentu secara manual. Bagi pelaku bisnis dapat meningkatkan
penjualan, contohnya melakukan penawaran khusus atau rewards
kepada user yang terdekat dengan toko tertentu menggunakan aplikasi
Location-Based Service seperti Shopkick.
Lima konsep dari Location Based Service menurut Turban &
Volonino (2012: 205).
1.
Location : Menentukan posisi dari seseorang atau sesuatu seperti
bus, mobil, atau sebuah tempat.
2.
Navigation : Memberikan navigasi rute dari suatu lokasi ke lokasi
lainnya
3.
Tracking :
Memonitor pergerakan seseorang atau sesuatu seperti
kendaraan.
4.
Mapping : Membuat peta digital dari lokasi geografis tertentu.
  
47
5.
Timing : Menentukan waktu yang tepat pada lokasi tertentu atau
menentukan waktu yang ditempuh dari satu lokasi ke lokasi
lainnya.
2.2.2
Global Positioning Sistem (GPS)
Menurut Turban  & Volonino  (2012: 205), Global Positioning
System (GPS) adalah sistem nirkabel yang menggunakan satelit untuk
menentukan dimana lokasi peralatan GPS berada. Peralatan GPS
banyak digunakan untuk sistem navigasi pada kendaraan.
GPS didukung oleh 24 satelit serta 3 satelit digunakan sebagai
backup
yang dikelola oleh
pemerintah United States. Penerima atau
Peralatan GPS dapat menampilkan informasi lokasi yang akurat
karena terhubung langsung dengan satelit – satelit tersebut.
Untuk dapat mengetahui lokasi suatu peralatan GPS atau
tempat tertentu maka digunakan latitude dan longitude.
2.2.3
Java
Java
merupakan bahasa pemograman yang diturunkan dari
bahasa pemograman C dan C++. Java menambahkan beberapa fitur
dan perbaikan dari bahasa pemograman C dan C++. Pemograman
dengan Java
menjadi lebih mudah karena Java menyederhanakan
pemograman. Dengan kata lain Java merupakan bahasa  pemograman
yang lebih tinggi daripada C dan C++. Seperti halnya C++, Java juga
telah mendukung pemograman berorientasi objek. (Schildt: 2005).
Output dari kompilasi sebuah aplikasi java bukan merupakan
executeable
code, melainkan berupa bytecode. Bytecode
adalah
kumpulan instruksi yang didesain secara optimal yang dieksekusi
melalui java run-time
sistem
yang disebut Java Virtual Machine
(JVM). Beberapa keunggulan Java. (Schildt, 2005: 7).
  
48
1.
Simple
Bahasa pemograman Java
dirancang lebih sederhana dalam
penulisan, kompilasi dan penggunaan fitur sehingga memudahkan
pengguna untuk mempelajari dan memakai Java.
2.
Portable
Sebuah program java dapat dieksekusi ke dalam lingkungan
sistem yang berbeda asalkan terdapat sebuah java
runtime-system
didalam lingkungan sistem tersebut.
3.
Object-Oriented
Bahasa pemograman telah mendukung sepenuhnya
konsep
object oriented programming
seperti membuat suatu object,
menghubungkan object
object
tersebut, encapsulation,
polymorphism
dan inheritance
sehingga membuat objek-objek
tersebut bisa digunakan kembali.
4.
Architecture-Neutral
Java tidak dirancang untuk suatu arsitektur sistem operasi atau
mesin tertentu tetapi dapat digunakan di berbagai sistem operasi.
5.
High Performance
Output
dari suatu hasil kompilasi program java adalah
bytecode
yang telah dioptimasi secara maksimal sehingga
meningkatkan waktu dalam pengeksekusian suatu program.
2.2.4
MySQL
Menurut Welling & Thomson 
(2009: 3), MySQL adalah
System Manajement
Database Relational
(RDBMS) yang memiliki
kinerja sangat cepat, kuat dan tangguh dalam mengolah data.
Database yang memungkinkan pengguna untuk menyimpan, mencari,
mengurutkan dan mengambil data secara efisien. MySQL mengontrol
akses ke dalam data dan memastikan bahwa beberapa pengguna dapat
mengakses secara bersamaan, menyediakan akses ke dalam database
dengan cepat, dan menjamin pengguna mendapatkan hak akses ke
dalam database.
Kelebihan dari MySQL antara lain :
  
49
-
Kinerja yang tinggi
-
Biaya yang rendah
-
Mudah dalam penggunaan
-
Portabilitas
-
Ketersediaan source code 
-
Ketersediaan support product
2.2.5
JavaScript Object Notation (JSON)
JSON ialah Javascript Object Notation
mirip seperti XML.
JSON merupakan format data yang digunakan untuk pengganti XML
untuk bertukar informasi Antara klien javascript
dan server script
di
dalam PHP.
JSON adalah format data interchange
yang ringan. Sangat
mudah untuk manusia dalam membaca dan menulis dan sangat mudah
untuk mesin untuk mengurai dan menghasilkan. (Darie, et.al, 2006).  
Menurut Nurseitov, et.al (2009), JSON diperkirakan dapat
mengurai seratus kali lebih cepat di banding XML pada modern
browser. Tetapi meskipun mengklaim baik dalam kinerja, JSON
memiliki kekurangan diantaranya kurang dalam dukungan
namespace, kurang dalam validasi input dan extensibility drawbacks.
2.2.6
Hypertext Preprocessor (PHP)
PHP adalah server-side scripting language atau bahasa yang
menggunakan script dan berjalan disisi server. PHP merupakan object
oriented programming. PHP bekerja di dalam HTML dokumen. PHP
merupakan scripting language
yang simpel, natural
dalam
penggunaan database dan sangat independen. (Rochkind, 2013). 
Beberapa keungulan PHP menurut Marc Rochkind, diantaranya :
1.
Sangat Cepat
Secara luas, PHP dinilai sangat optimal dalam penggunaanya.
Terutama dengan penggunaan Apache.
  
50
2.
Banyak Digunakan
PHP dinilai sebagai scripting language
yang banyak digunakan di
berbagai perusahaan hosting
karena hampir semua
website
menggunakan PHP. Dibanding dengan java, PHP lebih
membutuhkan biaya sedikit dalam penggunaanya. 
3.
Luar Biasa
PHP dikatakan luar biasa karena memiliki library
yang lengkap
dan koleksi ekstensi yang dapat digunakan di banyak website.
Setiap layanan website
seperti Amazon, Facebook, Flickr, dll
memiliki interface PHP.
4.
Komunitas Besar
Dibanding dengan bahasa pemograman lain, PHP merupakan
bahasa pemograman yang memiliki komunitas terbesar, dimulai
dari buku, training course, forum dan share code
PHP seperti
Stackoverflow.com
Menurut data survey yang dilakukan oleh w3techs.com pada tahun
2013, Lebih dari 80% website
menggunakan PHP (81,3% pada bulan
oktober), yang kedua ASP.NET dengan 18.6%, dan posisi ketiga ada
Java dengan 2.7%.
Menurut Welling & Thomson  (2009: 4), PHP memiliki
kekuatan lain diantaranya :
1.
Performance (Kinerja)
Memiliki kinerja yang sangat cepat dan menggunakan server
tunggal yang murah.
2.
Skalabilitas
Bersifat skalabilitas horizontal
yang efektif dan murah dengan
server yang besar.
3.
Menjadi Penghubung ke Banyak Sistem
Database
yang
Berbeda
PHP memiliki koneksi ke berbagai macam sistem database. Selain
MySQL, PHP juga dapat terhubung ke PostgreSQL, Oracle, dbm,
  
51
FilePro, DB2, Hyperwave, Informix, Interbase, database Sybase,
dam SQlite.
4.
Built-in Library
Karena PHP dirancang untuk digunakan di dalam Website,
memiliki banyak fungsi built-in
untuk menghasilkan gambar
dengan cepat, terhubung ke layanan website, berkirim email, dan
lain-lain.
5.
Biaya Rendah
PHP merupakan software yang gratis. 
6.
Mudah di Pelajari dan di Gunakan
Sintaks dalam PHP didasarkan pada bahasa pemrograman lain
yaitu C, C++ dan
Perl. Jadi dapat lebih produktif dalam
penggunaan PHP.
7.
Portabilitas
PHP dapat digunakan di berbagai sistem operasi. 
8.
PHP (Hypertext Preprocessor
PHP bersifat berorientasi objek.
9.
Fleksibelitas
PHP memungkinkan pengguna melaksanakan tugas sederhana dan
dapat beradaptasi dengan sistem
aplikasi besar menggunakan
kerangka kerja berdasarkan pola desain seperti
Model-View-
Controller (MVC).
10. Ketersediaan Sumber Kode
Ketersedian sumber kode yang banyak
di berbagai forum
pembelajaran atau forum diskusi mengenai PHP.
11. Dukungan dan Dokumentasi
Ketersediaan dukungan dan dokumentasi  beredar secara luas.
2.2.7
Eclipse
Eclipse
adalah bahasa pemograman yang dikembangkan
dalam bahasa Java. Merupakan perangkat lunak multi-bahasa yang
dapat dijalankan di semua platform. Eclipse
sebuah Integrated
Development Environment
(IDE), dapat digunakan merancang
  
52
berbagai macam aplikasi dengan mengunakkan berbagai macam
bahasa pemograman, seperti Java, Ada, C, C++, COBOL, Python,
dan lain-lain. (Lee, 2012). 
2.2.8
Android Software Development Kit (Android SDK)
Android SDK adalah seperangkat alat pengembangan aplikasi
di dalam Android, termasuk
Android platform java library. Android
Software Development Kit merupakan aplikasi packager, debugger,
emulator, tutorial
dan contoh kode dokumentasi luas dalam
pengembangan android. (Cinar, 2012).
Menurut Burnertte (2010), Android Software Development Kit
(SDK) terbagi menjadi dua bagian yaitu Android
Software
Development Kit Starter dan Components.
Android
Software Development Kit
Starter
merupakan
aplikasi utama sedangkan Android SDK Components berisi tools yang
akan digunakan. Tools
yang terdapat pada Android
Software
Development Kit terbagi menjadi dua jenis yaitu:
1.
SDK Tools
yang berisi kumpulan lengkap development tools
untuk pengembangan aplikasi.
2.
Platform Tools
yang memiliki fungsi untuk mendukung fitur
yang baru pada platform Android tertentu.
2.2.9
Android Development Tools (ADT)
Android Development Tools
(ADT) adalah satu set Plug-in
yang diperuntukan dalam pengembangan aplikasi untuk Android di
dalam platform Eclipse. Android Development Tools
adalah
perangkat lunak gratis yang disediakan dibawah lisensi Apache open
source. (Cinar, 2012: 115).
Menurut Cinar (2012: 115), Android Development Tools
dapat memperluas kinerja eclipse diantaranya sebagai berikut.
1.
Cepat mengatur proyek pembuatan Android baru
2.
Mendesain visual antaramuka tingkat lanjut
  
53
3.
Akses dan penggunaan kerangka komponen Android
4.
Debug, rilis dan tes unit aplikasi Android
2.2.10
OpenFire
Openfire adalah sebuah software
gratis yang bersifat
open-
source
dan mempunyai fitur dari Jabber Instant Messaging Server.
Openfire memiliki banyak fitur yang dirancang untuk merampingkan
komunikasi dalam suatu perusahaan. Openfire memiliki fitur
desain
yang aman, karena protocol
jabber
yang terdapat pada Openfire
dilindungi. Jabber menggunakan Transport Layer Security
(TLS)
secara default
dan akan membuat sambungan aman jika tersedia.
Openfire dapat di konfigurasi untuk mengijinkan koneksi yang aman
saja.
Openfire dirancang
untuk melengkapi layanan service
yang
sudah ada dan sedang berjalan pada jaringan network. (Sharma, 2008:
13).
Menurut Sharma (2008: 13), Terdapat beberapa daftar fitur dari
Openfire:
1.
Standards Compliant
2.
Mudah untuk di Install
3.
Dapat Bekerja pada Multiple External Database.
Openfire
ini
dapat bekerja dengan beberapa database
termasuk MySQL,
PostgreSQL, Oracle, MS SQLServer, dan IBM DB2. Semua
database tersebut didukung oleh HSQLDB
4.
Memiliki Interface dengan OpenLDAP atau Active Directory
5.
Cross-linked yang mudah di navigasi karena berbasis web front-
end.
Terlepas dari configuration apa yang ingin di tweak, interface-nya
akan menyediakan banyak informasi dan menawarkan berbagai
pilihan untuk dipilih
6.
Mudah untuk dibuat dan diatur
ke dalam bentuk
grup
penggunanya.
Grup pengguna dapat dengan mudah mengisi
kontak pengguna baru.
7.
Costum Audit Policy, Openfire dapat mengaudit Traffic Instant
Messaging dan menyimpannya kedalam XML Files
  
54
8.
Group Chat dan Room Administration
9.
Dapat bertindak sebagai gateway untuk public network
10. Banyak pilihan dalam hal Security (keamanan)
11. Dapat di Extend dengan Plugin
12. Mempunyai Advanced Reporting Tools
13. Client Control
14. Mendistribusikan Load
15. Bisa menjalankan Online Help Desk
2.2.11
Badges (Lencana)
Badges adalah sebuah kontribusi particular
yang diberikan
kepada pengguna karena telah melakukan beberapa
aksi dari jenis
tertentu yang tersedia pada sebuah situs.
(Anderson, et.al., 2013: 1).
Pada tingkat yang paling dasar, badges berfungsi sebagai kumpulan
prestasi dari pengguna, namun pengalaman pengguna pada situs ini
juga menunjukan bahwa pengguna dimasukan kedalam jumlah non-
trivial
untuk mendapatkan badges tertentu, dengan demikian, badges
dapat bertindak sebagai insentif yang kuat.
2.2.12
SQLite
Menurut Owens
(2006), SQLite adalah sebuah open
source
dari embedded
relational
database. SQLite di desain untuk
memberikan cara yang nyaman untuk aplikasi dalam mengatur data
tanpa overhead yang sering terjadi pada dedicated relational database
management systems.
Salah satu keuntungan SQLite adalah mempunyai database
server
pada program
yang tidak memerlukan konfigurasi network
atau konfigurasi admin. Keduanya antara client
dan server
berjalan
secara bersamaan pada proses yang sama. Ini dapat mengurangi
overhead pada database.
Karakteristik SQLite:
  
55
1.
Zero Configuration
Configurasi dan administrasi database pada SQLite sangat simple.
2.
Portability
SQLite di desain khususnya untuk portabilitas. Bisa di compile di
berbagai Operating system maupun embedded platform.
3.
Compactness
SQLite di desain untuk
process yang sangat ringan dan self-
contained: 1 header
file, 1 library
dan relational, tidak
membutuhkan database server external.
4.
Simplicity
Sebagai library programming, SQLite API adalah salah satu yang
paling sederhana dan sangat mudah digunakan.
5.
Flexibility
Beberapa faktor bekerja secara bersamaan untuk membuat SQLite
menjadi sebuah database yang sangat flexible.
6.
Liberal Licensing
Semua code
SQLite adalah public
domain. Jadi tidak
membutuhkan license ataupun claim copyright.
7.
Reliability
Pendekatan dari SQLite di desain semudah mungkin ,sangat
mudah untuk di kostumisasi, dan sangat mudah di akses.
8.
Convenience
SQLite juga mempunya beberapa fitur unik yang menyediakan
derajat tertinggi dari kenyamanan pengguna.
2.2.13
Twilio
Twilio adalah sebuah service (pelayanan) yang menerapkan
system “Pay As You Go” yang berarti mereka hanya mengumpulkan
penghasilan ketika twilio
sukses
memproses komunikasi antar
customer. . (Twilio, 2012).
Twilio di design
dan di bangun untuk distributed software
system,
menggunakan praktik modern dari development
untuk
mendapatkan scale dan juga reliability.Twilio berbasiskan:
  
56
1.
Service Oriented Architecture
2.
Smale Statelestss Service
3.
Unit Of Failure is a Single Host
4.
Share Nothing Architecture
5.
Idempotent Service Interface
Twilio secara otomatis akan melakukan testing dan juga men-
deploy system perijinan untuk engineer
mereka yang bertujuan untuk
membangun code baru dan database schema untuk mengganti cluster
secara realtime tanpa gangguan production system. (Twilio, 2012).
2.2.14
Google Maps API
Menurut Svennerberg (2010: 2) Google Maps API mampu
merevolusikan peta jalan pada halaman web yang bekerja dengan cara
membebaskan pengguna untuk melakukan navigasi maps dengan cara
melakukan drag pada peta.