11
BAB 2
TINJAUAN PUSTAKA
Pada bab ini menjelaskan beberapa teori yang menjadi landasan teori yang
digunakan dalam penyusunan skripsi dan  pengembangan aplikasi.
2.1
Interaksi Manusia dan Komputer (IMK)
Berikut penjelasan beberapa teori Interaksi Manusia dan Komputer yang
digunakan dalam pengembangan aplikasi:
2.1.1
Pengertian Interaksi Manusia dan Komputer
Menurut Shneiderman dan Plaisant (2010: 22) Human Computer
Interaction (HCI) atau Interaksi Manusia dan Komputer (IMK) adalah
disiplin ilmu yang mengimplementasikan
pengalaman secara
psikologi dengan sistem komputer interaktif untuk digunakan oleh
manusia serta studi yang mempelajari fenomena besar yang
berhubungan dengannya. 
2.1.2
Perancangan User Interface
Berdasarkan pendapat Shneiderman dan Plaisant (2010: 88-89)
terdapat 8 (delapan) aturan yang digunakan untuk merancang user
interface, yaitu:
1.
Berusaha untuk konsistensi
Konsisten di
berbagai situasi
baik dalam
istilah-istilah yang
digunakan pada setiap menu, pesan bantuan, dan dalam
penggunaan tampilan seperti jenis tulisan, warna, dan layout.
2.
Memenuhi kegunaan universal
Mengenali dan mendesain tampilan berdasarkan kebutuhan user.
Dengan menambahkan keterangan untuk novice user,
memungkinkan expert user menggunakan shortcut dapat
memperkaya tampilan layar dan meningkatkan kualitas sistem.
3.
Memberikan umpan balik yang informatif
Setiap tindakan yang dilakukan oleh pengguna harus
mendapatkan umpan balik yang memudahkan pengguna dalam
mengetahui akibat dari tindakannya. Misalnya muncul suatu
pesan kesalahan ketika salah input.
  
145
  
146
  
145
  
146
4.
Merancang dialog untuk menghasilkan suatu penutupan
Kegiatan yang dilakukan pengguna dipisahkan menjadi 3 (tiga)
bagian yaitu bagian awal, tengah, dan akhir. Pada bagian akhir
pengguna harus mendapatkan umpan balik yang informatif yang
memudahkan pengguna dalam mengetahui dampak dari
tindakan yang telah dilakukan.
5.
Memberikan penanganan kesalahan
Sistem akan memberikan suatu intruksi yang sederhana dan
mudah dimengerti kepada pengguna jika terjadi kesalahan yang
dilakukan.
6.
Mudah kembali ke tindakan sebelumnya
Sistem menyediakan fungsi yang dapat mengembalikan keadaan
ke keadaan sebelum dilakukan kesalahan.
7.
Mendukung tempat pengendalian internal
Pengguna menjadi pengendali sistem dan bukan sebaliknya. Jadi
peran pengguna dalam sistem adalah sebagai inisiator bukan
responden.
8.
Mengurangi beban ingatan jangka pendek
Sistem yang dikembangkan berbentuk sederhana dan mudah
diingat karena ingatan manusia yang terbatas. Penyederhanaan
sistem misalnya menggabungkan tampilan-tampilan sejenis dan
memberikan pelatihan dengan jangka waktu yang cukup.
Selain itu menurut Shneiderman dan Plaisant (2010: 32), 
terdapat juga 5 (Lima) faktor manusia terukur yang digunakan sebagai
pedoman dalam merancang antarmuka sistem, yaitu: 
1.
Waktu belajar
Waktu yang dibutuhkan seorang pengguna
untuk
mempelajari
menggunakan aplikasi dalam menyelesaikan tugas. 
2.
Kecepatan kinerja
Waktu yang dibutuhkan oleh pengguna
aplikasi
untuk
melakukan
suatu tugas.
Untuk mendapatkan kecepatan yang
baik dapat dilakukan dengan cara mengurangi kompleksitas
proses dalam aplikasi.
  
145
3.
Tingkat kesalahan pengguna
Seberapa banyaknya dan apa jenis kesalahan yang
terjadi dalam
menggunakan aplikasi. Serta bagaimana penanganan sistem
untuk mengurangi kesalahan pengguna.
4.
Daya ingat
Seberapa lama pengguna dapat mengingat
akan sesuatu yang
telah dipelajari dalam menggunakan aplikasi dalam jangka
waktu tertentu.
5.
Kepuasan subjektif
Seberapa besar ketertarikan pengguna aplikasi terhadap aspek –
aspek
interface
aplikasi tersebut.
Hal ini dapat diukur dengan
melakukan wawancara kepada beberapa pengguna untuk
mengetahui tingkat kepuasan subjektif.
2.2
Desain Interface Mobile 
Smartphone dan komputer desktop sangat berbeda. Smartphone memiliki
layar yang kecil, konektivitas intermittent, bandwidth
rendah dan bertenaga
baterai. Sedangkan komputer desktop memiliki layar yang besar, konektivitas
handal, bandwidth tinggi dan plugged in. Dengan banyaknya perbedaan antara
smartphone
dan desktop, desain untuk smartphone
sangat berbeda dengan
desain pada desktop
Mengacu pada pendapat dari Stark (2012) pengembangan aplikasi pada
mobile terdapat 10 (sepuluh) prinsip desain untuk interface mobile:
1.
Mobile Mindset
Dengan adanya perbedaan antara mobile
dan desktop, ada
beberapa pola pikir untuk mobile:
a.
Be focused
Aplikasi sebaiknya fokus pada suatu fitur karena dengan lebih
banyak fitur, tidak membuat aplikasi tersebut menjadi lebih
baik. 
b.
Be unique
  
146
Aplikasi yang dikembangkan memiliki suatu keunikan dan
kekuatan yang membedakan aplikasi tersebut dengan aplikasi
lainnya.
c.
Be charming
Aplikasi yang dapat diandalkan, dan menyenangkan saat
digunakan, sehingga aplikasi tersebut banyak diminati dan
digunakan.
d.
Be considerate
Aplikasi  yang dikembangkan sebaiknya tidak hanya
menyenangkan pengguna saat menggunakannya, tetapi juga
sesuai dengan keinginan pengguna.
2.
Mobile Contexts
Terdapat 3 (tiga) konteks utama pada mobile yang perlu
dipertimbangkan untuk mengetahui aplikasi yang pengguna inginkan:
a.
Bored: aplikasi yang berkonteks hiburan.
b.
Busy: aplikasi untuk menyelesaikan tugas dengan cepat.
c.
Lost: 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 aplikasi, aplikasi perlu
menunjukkan jika aplikasi sedang beroperasi.
b.
Polish
Pengembang harus memperhatikan detail desain aplikasi.
c.
Thumbs
  
145
Dengan touchscreen interfaces, desain interfaces
harus
disesuaikan karena banyak pengguna menggunakan ibu jari
untuk mengetik.
d.
Targets
Dalam mendesain
aplikasi yang akan menggunakan banyak
fungsi keyboard, pengembang 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.
Controls
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, drill
down dan drawer navigation.
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.
  
146
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 replacement
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.
8.
Communications
  
145
Aplikasi harus dapat berinteraksi dengan pengguna.
a.
Provide feedback
Memberikan umpan balik instan untuk setiap interaksi. 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 menghapus 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
Icon merupakan suatu hal yang sangat penting, karena icon
merupakan salah satu yang menjadi daya tarik bagi pengguna
dalam menggunakan aplikasi yang dikembangkan.
b.
First launch
Peluncuran pertama kali harusnya tidak menimbulkan
kebingungan bagi pengguna yang menggunakannya.
2.3
Unified Modelling Language (UML)
  
146
Menurut Whitten dan Bentley (2007: 371), Unified Modelling Language
(UML) adalah sekumpulan
aturan pemodelan yang digunakan untuk
menspesifikasi
dan menggambarkan suatu sistem software
yang berkaitan
dengan objek.
Diagram UML merupakan notasi pemodelan yang telah menjadi standar
dalam
bidang perancangan
software. Diagram UML sama halnya seperti
blueprint
pada pembangunan rumah, dimana sekumpulan blueprint
tersebut
menyediakan sudut pandang gambaran yang berbeda-beda sesuai dengan
kebutuhan pengelolahnya. Diagram UML juga menyediakan gambaran dari
masing-masing sudut pandang yang berbeda sesuai dengan tim
pengembangnya. Standarisasi diagram UML telah diatur dan dibuat oleh
Object Management Group (OMG).
Menurut Whitten dan Bently (2007: 381-382) versi diagram UML 2.0.
memiliki 13 diagram, antara lain:
1.
Use Case Diagram
Diagram yang menggambarkan interaksi antara sistem dengan sistem
eksternal dan users
2.
Activity Diagram
Diagram yang menggambarkan urutan aliran aktivitas dari use
case atau
proses bisnis.
3.
Class Diagram
Diagram yang menggambarkan objek-objek yang terdapat pada sistem
dalam bentuk struktur.
4.
Object Diagram
Diagram objek mirip dengan diagram class tetapi lebih menggambarkan
objek yang terdapat dalam class.
5.
State Machine Diagram
Diagram yang menggambarkan bagaimana suatu kejadian dapat
mengubah status objek selama waktu hidupnya. 
6.
Sequence Diagram
Diagram yang menggambarkan bagaimana suatu objek berinteraksi
melalui pesan dalam pelaksanaan use case atau operasi. 
7.
Communication Diagram
  
145
Dalam diagram UML versi 1.0. disebut diagram collaboration,
menggambarkan interaksi dari objek melalui pesan.
8.
Interaction Overview Diagram
Diagram yang mengkombinasikan fitur dari diagram activity dan diagram
diagram sequence
untuk menunjukan bagaimana objek berinteraksi pada
setiap aktivitas dari use case
9.
Timing Diagram
Diagram interaksi lainnya yang berfokus pada kendala waktu dalam
perubahan status dari single objek atau sekumpulan objek.
10.
Component Diagram
Diagram yang menggambarkan pengaturan dari kode pemrograman yang
dibagi menjadi komponen-komponen, dan bagaimana komponen tersebut
berinteraksi. 
11.
Deployment Diagram
Diagram yang menggambarkan konfigurasi dari komponen software
dengan arsitektur fisikal dari sistem hardware.
12.
Package Diagram
Diagram yang menggambarkan bagaimana class
atau diagram UML
lainnya membangun sebuah package yang terorganisir.
13.
Composite Structure Diagram: Diagram yang menguraikan struktur
internal dari class, component, atau use case
Meskipun UML memiliki begitu banyak diagram, tidak semuanya
diperlukan dan harus digunakan dalam perancangan. Apabila sistem telah
digambarkan dan dapat dipahami dengan baik menggunakan diagram yang
ditentukan, maka tujuan dari UML telah tercapai.
  
146
2.3.1
Use Case Diagram
Use case diagram adalah diagram yang menggambarkan
interaksi antara sistem dengan pengguna dan menggambarkan siapa
yang akan menggunakan sistem serta bagaimana pengguna
berinteraksi dengan sistem (Whitten dan Bentley, 2007: 246-250).
Gambar 2.1 Contoh Use Case Diagram
(Sumber: System Analysis for the Global Enterprise - Whitten and
Bentley, 2007: 246)
Use case diagram
memiliki komponen dasar yaitu
use case,
actors
dan relationships. Use case
merupakan urutan prilaku terkait
langkah-langkah untuk menyelesaikan tugas bisnis tunggal.
Use
case
menggambarkan fungsi sistem dengan cara dan terminologi yang
dipahami oleh pengguna eksternal. Use case
digambarkan dengan
bentuk elipse dengan nama use case yang dituliskan di atas, di bawah
atau di dalam elipse
Actors yaitu pengguna eksternal yang berinteraksi dengan sistem
untuk mencapai tujuan dari use case. Terdapat 4 (empat) tipe actors,
yaitu:
1.
Primary business actor:
stakeholder yang paling diuntungkan
dari terlaksananya use
case
dengan menerima sesuatu yang
dapat diukur.
  
145
2.
Primary
system
actor:
stakeholder yang secara langsung
berinteraksi dengan sistem untuk memulai kegiatan bisnis atau
kegiatan sistem.  
3.
External
server
actor:
stakeholder yang merespon permintaan
dari use case
4.
External
receiver
actor:
stakeholder yang bukan merupakan
actor
utama tetapi menerima sesuatu
yang dapat bernilai
dari
use case.
Selain itu dalam
use case diagram
terdapat
relationship
yang
digambarkan dengan garis yang menghubungkan antar use case. Arti
dari relationship
bergantung pada bagaimana relationship
tersebut
digambarkan. Terdapat beberapa relationship  yang digunakan, antara
lain:
1.
Asosiasi
Asosiasi mendeskripsikan suatu hubungan antara aktor
dan use case. Asosiasi dapat digambarkan dengan suatu garis
yang menghubungkan aktor dan use case. Sebuah asosiasi yang
digambarkan dengan suatu garis dengan anak panah
menunjukkan interaksi antara use case
dengan aktor sebagai
inisiator. Sedangkan asosiasi yang digambarkan tanpa anak
panah menggambarkan interaksi antara use case dengan aktor
penerima.
Gambar 2.2 Contoh Penggunaan Association Use Case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 248)
  
146
2.
Extends
Suatu
use case dapat terdiri dari fungsi-fungsi yang
kompleks dan menyebabkan use case sulit dimengerti. Dengan
mengekstrak fungsi-fungsi yang kompleks
menjadi use case
terpisah maka akan membuat use case
tersebut lebih sederhana
dan mudah dipahami. Hasil ekstraksi dari use case
tersebut di
beri nama extention
use
case. Hubungan antara extention
use
case
dengan use
case
yang diekstraksi diberi nama extends
relationship
Gambar 2.3 Contoh Penggunaan Extends pada Use Case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 249)
3.
Uses / Includes
Pada suatu use case diagram sering ditemukan dua atau
lebih use case yang melakukan fungsi yang sama. Fungsi
tersebut digabungkan menjadi use case baru yang disebut
abstract use case, yang berfungsi untuk mengurangi redundansi
dalam suatu use case diagram.
  
145
Gambar 2.4 Contoh Penggunaan Include pada Use Case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 249)
4.
Depends On
Depends On merupakan suatu hubungan ketergantungan
antara satu use case dengan use case lainnya, dimana suatu use
case
tidak dapat berjalan jika use case lain belum dilakukan.
Dengan mengetahui ketergantungan use case
dengan use case
lainnya maka akan mempermudah pengembang untuk
mengembangkan sistem. 
Gambar 2.5 Contoh Penggunaan Depends On pada Use Case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 250)
  
146
5.
Inheritance
Inheritance digunakan untuk mempermudah
penggambaran hubungan antara dua atau lebih actor
yang
memiliki langkah yang sama dalam sistem dengan membuat
abstract actor.
Gambar 2.6 Contoh Penggunaan Inheritance pada Use Case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 250)
  
145
2.3.2
Use Case Narrative
Use Case Narrative adalah sebuah teks yang mendeskripsikan
langkah-langkah yang ada pada use case diagram dan bagaimana cara
pengguna berinteraksi dengan sistem untuk menyelesaikan
pekerjaannya pada sistem tersebut (Whitten dan Bentley, 2007: 246).
Gambar 2.7 Contoh High-Level Use Case Narrative
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007: 257)
Berikut adalah penjelasan dari gambar diatas:
1.
Author: diisi dengan nama seseorang yang menulis use case dan
bersedia untuk dihubungi untuk semua yang informasi dari use
case yang dibuat. 
2.
Date: tanggal terakhir use case tersebut dimodifikasi.
3.
Version: versi use case yang digunakan
4.
Use-case name:
nama dari sebuah use
case, harus
menggambarkan tujuan yang ingin dicapai dari use
case
tersebut. Sebaiknya nama use case menggunakan kata kerja.
5.
Use-case type:
merupakan penggambaran keinginan dari
perilaku sistem
6.
Use-case ID: identitas yang unik dari use case.
7.
Priority:
tingkat prioritas dari use
case
terdapat high, medium
atau low.
8.
Source:
mendefinisikan entitas yang memicu pembuatan use
case.
  
146
9.
Primary business actor:
stakeholder yang paling diuntungkan
dari terlaksananya use
case
dengan menerima sesuatu yang
dapat diukur.
10.
Other participating actor:
aktor lain yang terlibat dalam use
case
tersebut, aktor inisitor, aktor fasilitator, aktor sampingan
ataupun aktor penerima. 
11.
Intersted stakeholder: pemangku kepentingan yang bertanggung
jawab dalam proses pengembangan dan
pengolahan sistem
software.
12.
Description:
ringkasan singkat yang terdiri dari beberapa
kalimat yang menggambarkan tujuan dari use
case
beserta
aktivitasnya. 
  
145
High-level use case narrative bisa dikembangkan menjadi lebih
luas. Pembahasannya menjadi lebih detail pertahap. Terdapat
beberapa tambahan, antara lain: 
Gambar 2.8 Contoh Expanded High-Level Use Case Narrative
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007: 259)
1.
Precondition:
merupakan keadaan sistem sebelum
pengeksekusian use case. Biasanya mengacu pada use case
lain
yang harus dieksekusi terlebih dahulu.
2.
Trigger:
merupakan kejadian yang menjadi pemicu untuk
pengeksekusian use case.
  
146
3.
Typical course of event: merupakan urutan aktivitas antara aktor
dan sistem untuk memenuhi tujuan use case.
4.
Alternate course:
merupakan alternatif perilaku lain dari use
case
bila terdapat pengecualian atau pemilihan dari kejadian
yang ada.
5.
Conclusion:
menspesifikasikan ketika use
case
selesai
dijalankan. Dengan kata lain ketika primary business actor
menerima sesuatu yang dapat diukur. 
6.
Postcondition:
merupakan keadaan dari sistem setelah
pengeksekusian use case selesai. 
7.
Business rules:
spesifikasi
kebijakan dan prosedur dari proses
bisnis yang harus ada di sistem yang baru. 
8.
Implementation constraints and spesification: menspesifikasikan
non functional requirement
yang mempengaruhi realisasi dari
use
case tersebut, dan mungkin membantu dalam perencanaan
arsitektural dan pembatasan ruang lingkup. 
9.
Assumptions:
semua asumsi yang dibuat oleh penyusun ketika
mendokumentasikan use case
10.
Open issues:
semua pertanyaan atau permasalahan yang butuh
penyelesaian atau investigasi sebelum use case dapat diakhiri. 
2.3.3
Class Responsibilities Collaborator (CRC) Card
Whitten and Bentley (2007:
657) menyatakan CRC card
merupakan salah satu alat untuk mengidentifikasi hubungan suatu
prilaku dengan class
lainnya dan untuk mengidentifikasi kolaborasi
antara class. Berdasarkan fungsinya class dibagi menjadi tiga, yaitu:
1.
Interface Classes
Class yang berfungsi menghubungkan pengguna dengan sistem
berupa tampilan.
2.
Controller Classes
Class
yang berisi logika pengoperasian aplikasi atau aturan
bisnis.
3.
Entity Classes
  
145
Class yang berfungsi menyimpan atribut-atribut yang diperlukan
pada sistem.
2.3.4
Class Diagram
Class diagram merupakan gambaran
grafis dari struktur objek,
yang
menunjukkan
kelas
objek yang ada pada suatu sistem dan
hubungan antara
kelas-kelas
objek
tersebut
(Whitten dan Bentley,
2007: 400).
Gambar 2.9 Contoh Class Diagram
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007:406)
  
146
Setiap kelas objek dibagi menjadi 3 (tiga) bagian, yaitu:
1.
Nama kelas 
Nama kelas harus unik
atau dapat dibedakan antara kelas yang
satu dengan kelas yang lain
karena nama kelas merupakan
identitas yang dimiliki oleh setiap kelas.
2.
Atribut kelas
Atribut menunjukkan informasi yang dimiliki oleh suatu kelas
atau informasi yang berhubungan dengan suatu kelas.
3.
Operasi kelas
Operasi digunakan untuk menunjukkan fungsi yang dapat
dilakukan oleh suatu kelas.
Gambar 2.10 Struktur Kelas Objek
2.3.4.1
Visibility
Pada class diagram
terdapat visibility
yang digunakan
untuk menentukan suatu kelas dapat diakses oleh kelas lainnya
atau tidak. Dalam visibility
memiliki 3 (tiga) tingkatan, yaitu
(Whitten dan Bentley, 2007: 650):
1.
Public yang dilambangkan dengan “+”
2.
Protected yang dilambangkan dengan “#”
3.
Private – yang dilambangkan dengan “-
Tabel 2.1 Tabel Penjelasan Visibility
<< Nama kelas >>
-
Atribut kelas
+ Operasi kelas ()
  
145
Visibility
Simbol
Deskripsi
Public
+
Atribut public dan operasi
public dapat diakses oleh
semua operasi lain di semua
kelas. 
Protected
#
Atribut protected dan operasi
protected dapat diakses oleh
operasi lain dalam class yang
mendefinisikannya, atau di
subclasses dari class tersebut. 
Private
-
Atribut private dan operasi
private hanya dapat diakses
oleh semua operasi lain di
class yang mendefinisikan.
2.3.4.2
Multiplicity
Multiplicity merupakan jumlah minimum dan maksimum
kemunculan suatu objek atau class
untuk kejadian tunggal dari
objek atau class
terkait (Whitten dan Bentley, 2007:
378).
Berikut adalah gambar notasi multiplicity
dan hubungan
association antara objek atau class.
  
146
Gambar 2.11 Figur Object / Class Associations and Multiplicity
Notations
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 377)
Tabel 2.2 Tabel Penjelasan Multiplicity
Multiplicity
Deskripsi
0..1
Nol atau satu
1
Hanya satu
0..*  atau *
Nol atau lebih
1..*
Satu atau lebih
7...9
Memiliki nilai tertentu yang
spesifik
  
145
2.3.4.3
Generalisasi
Generalisasi merupakan suatu teknik dimana sebuah kelas
(subclass)
dapat mewarisi atribut-atribut dan operasi-operasi
dari kelas lainnya (superclass) dimana superclass bersifat lebih
umum daripada subclass (Whitten dan Bentley, 2007: 373).
 
Gambar 2.12 Contoh Generalisasi / Specialization
Relationship
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 376)
2.3.4.4
Asosiasi
Asosiasi merupakan hubungan antara satu kelas dengan
kelas yang lain. Asosiasi antara dua kelas biasanya dinotasikan
dengan sebuah garis yang menghubungkan kedua kelas tersebut
dan biasanya disertakan keterangan mengenai detail relasi antar
kelas dan multiplicity (Whitten dan Bentley, 2007: 378).
Hubungan yang digambarkan dibedakan menjadi 2 (dua)
jenis, yaitu:
1.
Uni-directional
Hubungan uni-directional
menghubungkan 2 (dua) kelas
yang saling terhubung, tetapi hanya satu yang memiliki
  
146
peran dalam hubungan tersebut. Hubungan uni-directional
dapat direpresentasikan dengan menggunakan anak panah. 
2.
Bi-directional
Hubungan bi-directional
menghubungkan 2 (dua) kelas
yang saling terhubung dan keduanya memiliki peran
dalam hubungan tersebut. Hubungan bi-directional
tidak
perlu menggunakan anak panah. 
Gambar 2.13 Contoh Hubungan Association Bi-
directional
(Sumber: System Analysis and Design Method - Whitten
and Bentley, 2007: 377)
2.3.4.5
Agregasi
Agregasi menggambarkan hubungan dimana satu class
yang lebih besar disebut “wholeclass
mengandung
satu atau
beberapa class
yang lebih kecil disebut “part”. Sebaliknya class
yang lebih kecil merupakan bagian dari class
yang lebih besar.
(Whitten dan Bentley, 2007: 378). 
Gambar 2.14 Contoh Relationship Aggregation
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 379)
  
145
Dalam UML versi 2.0 notasi hubungan agregasi sudah
tidak ada lagi, dikarenakan hubungan komposisi lebih memiliki
perbedaan yang jelas dalam penyusunan program, sedangkan
agregasi memiliki perbedaan yang tidak jelas. 
2.3.4.6
Komposisi
Komposisi merupakan bentuk lain dari agregasi, dimana
wholeclass
bertanggung jawab atas pembentukan dan
penghancuran “partclass.
Jika “wholeclass
hilang maka
partclass juga akan hilang.
Gambar 2.15 Contoh Relationship Composition
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007: 379)
2.3.5
Activity Diagram
Activity diagram adalah suatu diagram yang digunakan
untuk
menggambarkan proses bisnis, langkah-langkah dari use case atau
logika perilaku dari objek. Dalam activity diagram, lebih dari satu use
case dapat digambarkan dengan satu activity diagram, tetapi satu
activity diagram
dapat digambarkan untuk setiap use case
jika use
case tersebut memiliki logika yang kompleks (Whitten dan Bentley,
2007: 390).
  
146
Gambar 2.16 Contoh Activity Diagram
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007: 392)
Berikut adalah penjelasan notasi-notasi yang digunakan dalam activity
diagram:
1.
Initial
node:
berupa lingkaran padat yang menggambarkan
dimulainya proses.
2.
Actions:
berupa persegi panjang bulat yang menggambarkan
langkah individu. Langkah-langkah yang terurut akan membuat
aktivitas terlihat pada diagram.
3.
Flow: berupa anak panah dalam diagram yang mengindikasikan
sederet aktivitas. Kebanyakan flows
tidak memerlukan
keterangan kata kecuali sebuah keputusan.
  
145
4.
Decision: bentuk wajik dengan satu anak panah masuk dan dua
atau lebih anak panah keluar. Anak panah yang keluar
mengindikasikan kondisi.
5.
Merge:
bentuk wajik dengan dua atau lebih anak panah masuk
dan satu anak panah keluar. Menggabungkan anak panah yang
terpisah oleh keputusan.
6.
Fork: persegi panjang hitam dengan satu anak panah masuk dan
dua atau lebih anak panah keluar. Menggambarkan aktivitas
yang berjalan paralel.
7.
Join: persegi panjang hitam dengan dua atau lebih anak panah
masuk dan satu anak panah keluar. Menggambarkan
berakhirnya proses paralel.
8.
Activity final:
lingkaran padat yang dilingkari dengan garis tipis
merepresentasikan berakhirnya proses.
Pada gambar 2.16 mengilustrasikan langkah-langkah dari use
case, tetapi gambar tersebut tidak spesifik siapa yang mengerjakan
langkah tersebut. Pada gambar 2.17
akan memperlihatkan lebih jelas
karena menggunakan swimlanes
atau partitions
yang menunjukkan
aktivitas yang dilakukan oleh aktor tertentu. Suatu activity diagram
dapat memiliki tiga atau lebih swimlane
yang menunjukkan aktor
penerima.
  
146
Gambar 2.17 Contoh Activity Diagram 2
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007: 393)
9.
Subactivity
indicator:
simbol untuk mengumpulkan tindakan
yang menunjukan tindakan ini dipecah dalam activity diagram
lain. Ini dapat menghindari activity
diagram
yang terlalu
kompleks.
10.
Connector:
lingkaran dengan huruf di dalamnya yang dapat
membantu dalam mengatur tingkat kompleksitas. Anak panah
yang masuk ke dalam connector
akan melompat ke aktivitas
selanjutnya dengan lingkaran dengan huruf yang sama dengan
anak panah keluar. 
  
145
2.3.6
Sequence Diagram
Sequence diagram
adalah salah satu diagram UML yang
menggambarkan model logika dari sebuah use case
dengan
menggambarkan interaksi pesan antar objek dalam suatu urutan waktu
(Whitten dan Bentley, 2007: 659).
Gambar 2.18 Contoh Sequence Diagram
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007: 659)
Berikut adalah penjelasan beberapa elemen yang digunakan dalam
sequence diagram adalah (Whitten dan Bentley, 2007):
1.
Actor
Actor
adalah suatu elemen yang digunakan pada sequence
diagram dimana digambarkan dengan aktor simbol yang
mewakili pengguna dalam berinteraksi dengan interface.
2.
Interface Class
Segi empat yang mengindikasikan kelas kode dari user interface.
Untuk membedakan kelas interface dengan kelas lainnya maka
terdapat tulisan <<interface>>, dan notasi standart sequence
diagram yang melambangkan kelas yaitu titik dua (:).
3.
Controller Class
Setiap use
case akan memiliki satu atau lebih kelas controller,
digambarkan dengan notasi yang sama seperti interface
class,
tetapi dengan catatan <<controller>>.
  
146
4.
Entity Classes
Gambaran entitas yang diperlukan untuk berkolaborasi dalam
langkah-langkah yang terurut. Notasi yang digunakan adalah
titik dua (:).
5.
Messages
Garis horisontal yang mengindikasikan pesan masuk yang
dikirim ke kelas.
Setiap pesan disebut behavioral
atau method
dari kelas yang menunjuk. Penulisan pesan diawali dengan huruf
kecil, dan kata selanjutnya diawali dengan huruf besar. 
6.
Activation Bars
Berbentuk bar yang menunjukan masa hidup dari objek yang
ada. 
7.
Return Messages
Anak panah dengan garis putus-putus yang menunjukan pesan
pengembalian. Setiap perilaku atau operasi harus
mengembalikan sesuatu yang menyatakan perilaku atau operasi
sukses dijalankan.
8.
Self-call
Objek dapat memanggil method milik sendiri. 
9.
Frame
Bingkai kotak yang mengindikasikan satu atau lebih pesan dapat
menjadi pilihan langkah.
Seperti perulangan dan alternatif
pilihan langkah.  
2.4
Rekayasa Perangkat Lunak
Menurut Pressman (2010: 13), pengertian rekayasa perangkat lunak
adalah pengimplementasian prinsip-prinsip perancangan untuk menghasilkan
software yang ekonomis, handal dan mampu bekerja efisien pada mesin yang
sesungguhnya.
Karakteristik dari software adalah sebagai berikut (Pressman, 2010: 4): 
  
145
1.
Software dikembangkan atau direkayasa, bukan dipabrikasi.
Terdapat beberapa kesamaan antara pengembangan software
dan
perakitan hardware. Pada dasarnya kedua kegiatan tersebut berbeda,
kualitas tinggi dapat diperoleh melalui rancangan yang baik, tetapi
perakitan hardware
dapat memberikan permasalahan pada kualitas
software
2.
Software tidak akan “habis”.
Software tidak akan “habis” oleh waktu karena tidak memiliki
bentuk fisik. Tidak seperti hardware yang memiliki bentuk fisik. Tetapi
software dapat usang atau penurunan kualitas.
3.
Sebagian besar software dibangun sesuai dengan keinginan.
Sebuah komponen software
harus dirancang dan diimplementasi,
sehingga dapat digunakan kembali dalam banyak program berbeda.
2.5
Agile Software Development
Agile Software Development adalah sebuah strategi pengembangan
sistem dimana pengembang diberikan fleksibilitas untuk memilih alat yang
sesuai dan teknik yang baik untuk menyelesaikan tugas-tugasnya. Agile
Software Development
memiliki keseimbangan yang optimal antara
produktivitas dan kualitas dalam pengembangan sistem (Whitten dan Bentley,
2007: 25).
2.5.1
Extreme Programming
Extreme Programming (XP) merupakan salah satu metodologi
dalam rekayasa perangkat lunak dan merupakan  salah satu metode
dari agile software development yang berfokus pada coding sebagai
aktivitas utama dan menekankan pada kerjasama tim. XP merupakan
metodologi yang adaptif karena digunakan untuk menghadapi
berubahnya struktur internal seperti design
dan source
code
tanpa
harus mengubah kegunaan eksternal.
Pada XP antara pengguna dan
pengembang selalu melakukan komunikasi jika terjadi perubahan
pada software yang dikembangkan.
  
146
Gambar 2.19 Extreme Programming
(Sumber: Roger S. Pressman, Software Enginnering: A Practitioner’s
Approach, 2010: 74)
Mengacu pada pendapat Pressman (2010: 73), dalam
pengembangan software dengan menggunakan XP terdapat 4 (empat)
tahap yang digunakan. Empat tahap tersebut yaitu:
1.
Planning
Pada tahap ini dimulai dengan perencanaan stories biasa
juga disebut user stories
yang menggambarkan luaran, fitur dan
fungsionalitas yang diharapkan
untuk software yang akan
dibangun. Setiap story ditulis oleh pengguna dan ditempatkan
pada kartu index. Kemudian pengguna memberikan nilai untuk
story yang akan dinilai oleh pengembang dan menentukan biaya
selama waktu pengembangan software. Jika waktu
yang
diperlukan untuk story
lebih dari 3 (tiga) minggu, maka
pengguna diminta untuk membagi story
tersebut menjadi
beberapa story yang lebih kecil.
2.
Design
Pada tahap ini menggunakan prinsip Keep It Simple (KIS).
Perancangan yang sederhana  dan berfokus pada pengembangan
untuk saat ini lebih dianjurkan
dari pada pengembangan yang
kompleks
dan rancangan untuk di masa depan. XP mendukung
penggunaan Class Responsibillity Collaborator
(CRC) cards
  
145
sebagai mekanisme yang efektif
untuk berpikir tentang software
dalam konteks berorientasi objek. 
3.
Coding
Tahap ini dilakukan setelah story
dikembangkan dan
rancangan pendahuluan selesai. Kemudian dilakukan
perancangan unit test terlebih dahulu sebelum penyusunan kode
dilakukan. Unit test merupakan serangkaian test
yang
mengevaluasi setiap story. Setelah unit test
selesai dibuat,
pemikiran pengembang berfokus pada pengimplementasian
untuk melewati unit
test
berikutnya. Setelah pembuatan kode
selesai dapat langsung dilakukan pengujian. Pada tahap coding
juga dilakukan refactoring
yang merupakan suatu teknik
konstruksi dan metode untuk mengoptimalkan rancangan yaitu
dengan penyederhanaan kode untuk memudahkan orang lain
atau pengembang dalam memahami kode tersebut. Setelah tahap
pembuatan kode dilakukan selanjutnya dapat dilakukan
perancangan baik sebelum ataupun sesudah tahap tersebut, hal
ini dikarenakan adanya refactoring.
4.
Testing
Pada bagian ini dilakukan pengujian kode dengan unit test
yang telah dihasilkan pada tahap sebelumnya. Setelah itu
dilakukan acceptance test yang disebut juga customer test yang
berfungsi untuk memastikan aplikasi yang telah memenuhi
kebutuhan pengguna.
2.6
Database
Menurut
pendapat dari Connolly
& Begg
(2010: 65), database
adalah
sekumpulan data yang secara logis saling terkait yang dirancang untuk
memenuhi kebutuhan informasi suatu organisasi
yang diatur dan dikontrol
pengaksesannya oleh database management system (DBMS)
  
146
2.6.1
Data Dictionary (Kamus Data)
Data dictionary atau metadata merupakan penjelasan mengenai
data itu sendiri yang mendukung program dengan data yang
independen.
Tabel 2.3 Contoh Data Dictionary
Entity
Name
Attributes
Description
Data
Type &
Length
Nulls
Multi-
valued
Staff
staffNo
Uniquely
identify a
member of
staff
5 variabel
characters
No
No
fName
First name
of staff
15
variabel
characters
No
No
lName
Last name
of staff
15
variabel
characters
No
No
position
Job title of
member of
staff
10
variabel
characters
No
No
sex
Gender of
member
staff
1
character
(M or F)
Yes
No
DOB
Date of
birth of
member of
staff
Date
Yes
No
2.7
Teknologi Mobile
Berikut merupakan penjelasan mengenai teknologi–teknologi mobile
yang sedang berkembang:
  
145
2.7.1
Smartphone
Mengacu pada pendapat dari Ramteke dan Choudhary (2012: 1),
smartphone menyediakan
fasilitas
internet
dan akses ke
layanan data
yang beragam.
Teknologi smartphone telah pindah ke perangkat yang
sangat visual dan menarik banyak pengguna serta memberikan banyak
fasilitas
untuk berkomunikasi. Beberapa sistem operasi yang sedang
berkembang saat ini adalah Blackberry, iOS, dan Android.
2.7.2
Native Mobile Applications
Mengacu pada pendapat Upadhyay dan Tripathi (2012: 28),
Native Mobile Applications
adalah aplikasi yang diinstal pada
smartphone
dan dikembangkan dengan bahasa pemrograman khusus.
Aplikasi mobile
ini cepat, handal, dan kinerja yang maksimal tetapi
terikat pada mobile platform
yang dikembangkan. Native mobile
applications
selalu lebih responsif dan dapat mengakses lebih fitur
hardware pada device.
2.7.3
Instant Messaging (IM)
Instant Messaging (IM) adalah sebuah aplikasi berbasis Internet
Protokol
(IP) yang memberikan kemudahan berkomunikasi antar
orang menggunakan bermacam –
macam device
yang berbeda. IM
dapat bekerja dengan mobile device, seperti digital cellular phones
dan dapat mendukung suara dan video (Rittinghouse dan Ransome,
2005: 2).
2.8
Android
Mengacu pada pendapat Nimodia dan Deshmukh
(2012: 1), Android
adalah sebuah software stack untuk perangkat mobile yang mencakup sistem
operasi, middleware dan key applications. Android memiliki platform yang
bersifat open source dan sistem
operasi
untuk perangkat mobile
berbasis
pada sistem
operasi
Linux
dan dikembangkan oleh
Google dan
Open
Handset Alliance.
  
146
Sistem operasi pada android ini berbasis bahasa pemrograman Java
menggunakan Android Software Development Kit (Android SDK) dan
berjalan pada Linux Kernel, dengan middleware, library, Application
Programming Interface
(API) yang ditulis dalam bahasa C, dan software
yang berjalan pada suatu kerangka aplikasi dengan menyertakan Java-
compatible libraries berbasis pada Apache Harmony, yaitu sebuah
implementasi Java bersifat open source
dikembangkan oleh Apache
Software Foundation yang terdiri dari Java Development Kit (JDK), virtual
machine dan class library.
2.8.1
Fitur Android
Android memiliki beberapa fitur yang mendukungnya, dimana
fitur-fitur tersebut terdapat pada perangkat mobile. Fitur-fitur yang
mendukung Android yaitu (Lee, 2011: 3):
1.
Storage 
Menggunakan SQLite, mesin database SQL
embedded, untuk
menyimpan data.
2.
Connectivity
Mendukung GSM/EDGE, IDEN, CDMA,
EV-DO, UMTS,
Bluetooth, WiFi, LTE, dan WiMAX.
3.
Messaging
Mendukung SMS dan MMS.
4.
Web browser
Berbasis open-source WebKit, dengan Chrome’s V8 JavaScript
engine.
5.
Media support
Mendukung media: MP3, MIDI, WAV, JPEG, PNG, dan lain-
lain.
6.
Hardware support
Mendukung hardware: Accelerometer Sensor, Camera, Digital
Compass, Proximity Sensor, GPS.
7.
Multi-touch
Mendukung multi-touch screens.
8.
Multi-tasking
  
145
Mendukung multi-tasking applications.
9.
Flash support
Android 2.3 mendukung Flash 10.1.
10.
Tethering
Mendukung sharing koneksi internet seperti wireless hotspot.
2.8.2
Arsitektur Android
Gambar 2.20
menunjukkan komponen-komponen yang terdapat
pada sistem operasi Android yang terbagi menjadi beberapa layer.
Gambar 2.20 Arsitektur Android
2012)
1.
Applications
Dalam applications layer, Android akan dikirim dengan satu set
aplikasi
termasuk
email client, program SMS, kalender, peta,
browser, kontak, dan lain-lain. Semua aplikasi
ditulis
menggunakan bahasa pemrograman Java.
2.
Application Framework
Dengan
platform
open development,
Android
menawarkan
kemampuan
pengembang
untuk membangun
aplikasi yang
sangat kaya
dan inovatif. Pengembang bebas untuk
mengambil
  
146
keuntungan dari hardware devices, mengakses informasi  lokasi,
menjalankan
background
services, mengatur alarm,
menambahkan pemberitahuan ke status bar, dan lain-lain.
Sekumpulan services dan
sistem yang mendasari aplikasi
Android adalah:
1.
Sekumpulan
views
yang dapat digunakan untuk
membangun aplikasi, termasuk list,
grids,
text boxes,
buttons, dan embeddable web browser.
2.
Content providers
yang memungkinkan aplikasi untuk
mengambil data dari aplikasi lain atau untuk berbagi data
dari aplikasi itu sendiri.
3.
Resource manager
menyediakan akses ke non-code
resources seperti localized strings, graphics, dan layout
files.
4.
Notification manager yang memungkinkan semua aplikasi
untuk menampilkan pemberitahuan pada status bar
5.
Activity manager
yang mengatur siklus dari aplikasi dan
menyediakan common navigation backstack.
3.
Libraries
Android mencakup sekumpulan library C/C++ yang digunakan
oleh berbagai komponen dari sistem Android. Beberapa library
yang digunakan adalah:
1.
System C library digunakan untuk embedded Linux-based
devices.
2.
Media Libraries untuk memutar audio dan video.
3.
Surface Manager
untuk menyediakan pengaturan
tampilan.
4.
LibWebCore  sebuah mesin web browser modern.
5.
Scene Graph Library (SGL)
untuk kemampuan
menampilkan grafik dua dimensi.
6.
3D libraries
termasuk OpenGL untuk kemampuan
menampilkan grafik tiga dimensi.
7.
SQLite untuk dukungan dalam database.
  
145
4.
Android Runtime
Android yang mencakup sekumpulan core libraries
yang
menyediakan sebagian besar fungsi pada bahasa pemrograman
Java. Android Runtime juga termasuk Dalvik virtual machine,
yang memungkinkan setiap aplikasi Android untuk berjalan
dalam proses sendirinya. Dalvik adalah mesin virtual
khusus
dirancang khusus untuk android dan dioptimalkan untuk battery-
powered device mobile dengan memori yang terbatas dan CPU.
5.
Linux Kernel
Android bergantung pada versi
Linux
2.6 Kernel 
untuk sistem
inti
seperti keamanan, manajemen
memori, manajemen proses,
network stack, dan driver model. Kernel juga bertindak sebagai
abstraction layer antara hardware dan dari stack yang lain.
2.8.3
Komponen Aplikasi Android
Android memiliki 4 (empat) komponen pemrograman. Setiap
komponen memiliki peran yang berbeda-beda. Masing-masing
komponen memiliki siklus
hidup sendiri-sendiri yang mengatur kapan
komponen dibuat dan bagaimana komponen dihapus. Berikut ini
adalah 4 (empat) jenis komponen dalam aplikasi android:
1.
Activities
Activities
adalah suatu komponen yang menyediakan layar
dimana pengguna dapat berinteraksi untuk menjalankan fungsi
tertentu.
2.
Services
Services adalah komponen aplikasi yang berjalan di background
untuk
menjalankan proses yang memerlukan waktu cukup lama.
Services tidak memiliki tampilan.
3.
Content Providers
  
146
Content Providers
bertugas untuk
mengelola sekumpulan data
aplikasi yang terbagi (shared). Datanya dapat disimpan dalam
file
sistem, database SQLite atau lokasi penyimpanan lainnya.
Dengan adanya Content Providers ini,
aplikasi lain dapat
mengakses data yang diperlukan tanpa perlu mengetahui
bagaimana data tersebut disimpan. Content
provider
juga dapat
digunakan untuk menulis dan membaca data pribadi yang tidak
dibagikan (tidak shared).
4.
Broadcast Receivers
Broadcast receivers adalah suatu komponen aplikasi yang
menanggapi broadcast. Contoh broadcast
yang dikirim oleh
sistem operasi Android adalah pemberitahuan ada aplikasi baru
yang terinstal atau ter-update, layar mati, ada SMS atau telepon
masuk, dan lain-lain. Broadcast receiver juga tidak memiliki
tampilan, tetapi dapat menjalankan suatu activity atau
menampilkan pemberitahuan.
2.8.4
Versi Android
Sejak pertama kali muncul sampai sekarang, Android telah
memiliki sejumlah pembaharuan. Pembaharuan ini dilakukan untuk
memperbaiki bug
dan menambah fitur-fitur yang baru. Versi-versi
yang ada pada android yaitu:
1.
Android Beta
Pada tanggal 5 November 2007, Google merilis Android
pertama kali yang diberi nama Android Beta, tetapi versi ini
tidak digunakan secara komersil pada alat tertentu. 
2.
Android versi 1.0
Pada tanggal 21 November 2008, Goggle merilis kembali
Android versi 1.0. Android versi ini dilengkapi dengan fitur
Gmail Google Talk, Instant Messaging, Media Player, dan lain-
lain.
3.
Android versi 1.1
  
145
Pada tanggal 9 Maret 2009, Google merilis Android versi
1.1. Android ini dilengkapi dengan pembaruan estetis pada
aplikasi, jam alarm, voice search, pengiriman pesan dengan
Gmail, dan pemberitahuan e-mail.
4.
Android versi 1.5 (Cupcake)
Pada pertengahan Mei 2009, Google kembali merilis
telepon seluler dengan menggunakan Android dan SDK
(Software Development Kit). Terdapat beberapa pembaruan
termasuk juga penambahan beberapa fitur dalam seluler versi
ini, yaitu kemampuan merekam dan menonton video dengan
kamera, mengunggah video ke youtube
dan gambar ke Picasa
langsung dari telepon, dukungan Bluetooth A2DP, kemampuan
terhubung secara otomatis ke headset
Bluetooth, animasi layar,
dan keyboard pada layar yang dapat disesuaikan sistem.
5.
Android versi 1.6 (Donut)
Donut
(versi 1.6) dirilis pada
September 2009 dengan
menampilkan proses pencarian yang lebih baik dibanding
sebelumnya, penggunaan baterai indikator dan kontrol applet
VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna
untuk memilih foto yang akan dihapus; kamera, camcorder dan
galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN,
Gestures, dan Text-to-speech engine; kemampuan dial kontak;
teknologi text to change speech
(tidak tersedia pada semua
ponsel; pengadaan resolusi VWGA.
6.
Android versi 2.0/2.1 (Eclair)
Pada 3 Desember 2009 kembali diluncurkan ponsel
Android dengan versi 2.0/2.1 (Eclair), perubahan yang
dilakukan adalah pengoptimalan hardware, peningkatan Google
Maps 3.1.2, perubahan UI dengan browser baru dan dukungan
HTML5, daftar kontak yang baru, dukungan flash untuk kamera
3,2 MP, digital Zoom, dan Bluetooth 2.1.
  
146
7.
Android versi 2.2 (Froyo: Frozen Yoghurt)
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan.
Perubahan-perubahan umumnya terhadap versi-versi
sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan
kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8
JavaScript engine
yang dipakai Google Chrome
yang
mempercepat kemampuan rendering pada browser, pemasangan
aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel,
dan kemampuan pembaruan secara otomatis dalam aplikasi
Android Market.
8.
Android versi 2.3 (Gingerbread)
Pada 6 Desember 2010, Android versi 2.3 (Gingerbread)
diluncurkan. Perubahan-perubahan umum yang didapat dari
Android versi ini antara lain peningkatan kemampuan
permainan (gaming), peningkatan fungsi copy paste, desain
ulang layar antar muka (User Interface), dukungan format video
VP8 dan WebM, efek audio
baru (reverb, equalization,
headphone virtualization,
dan bass boost), dukungan
kemampuan Near Field Communication (NFC), dan dukungan
jumlah kamera yang lebih dari satu.
9.
Android versi 3.0/3.1 (Honeycomb)
Android Honeycomb
dirancang khusus untuk tablet.
Android versi ini mendukung ukuran layar yang lebih besar.
User Interface
pada Honeycomb
juga berbeda karena sudah
didesain untuk tablet. Honeycomb
juga mendukung multi-
processor dan juga akselerasi perangkat keras (hardware) untuk
grafis. Tablet
pertama yang dibuat dengan menjalankan
Honeycomb
adalah Motorola Xoom. Perangkat tablet
dengan
platform Android 3.0 telah banyak hadir di Indonesia. Perangkat
yang pertama muncul bernama Eee Pad Transformer
produksi
dari Asus yang masuk pasar Indonesia pada Mei 2011.
10.
Android versi 4.0 (ICS: Ice Cream Sandwich)
  
145
Diumumkan pada tanggal 19 Oktober 2011, membawa
fitur Ice Cream Sandwich
untuk smartphone dan menambahkan
fitur baru termasuk membuka kunci dengan pengenalan wajah,
jaringan data pemantauan penggunaan dan kontrol, terpadu
kontak jaringan sosial, perangkat tambahan fotografi, mencari e-
mail secara offline, dan berbagi informasi dengan menggunakan
NFC. Ponsel pertama yang menggunakan sistem operasi ini
adalah Samsung Galaxy Nexus.
11.
Android versi 4.1 (Jelly Bean)
Android Jelly Bean
yang diluncurkan pada acara Google
I/O lalu membawa sejumlah keunggulan dan fitur baru.
Penambahan baru diantaranya meningkatkan input keyboard,
desain baru fitur pencarian, user interface
yang baru dan
pencarian melalui voice search yang lebih cepat.
12.
Android versi 4.4 (KitKat)
Android KitKat merupakan sistem operasi android terbaru,
Google resmi telah meluncurkan sistem operasi ini pada tanggal
31 Oktober 2013. Sistem operasi ini memiliki keunggulan yaitu
dapat berjalan dengan nyaman pada perangkat yang memiliki
RAM sebesar 512MB, sementara rata-rata smartphone
telah
memiliki RAM diatas 2GB. Selain itu versi terbaru dari sistem
operasi Android ini memiliki desain tampilan
yang berbeda dari
sebelumnya. 
2.8.5
Android Software Development Kit (SDK)
Android SDK berisi debugger, libraries, emulator,
dokumentasi, sample code, dan tutorial. SDK ini merupakan add-on
Java Development Kit (JDK) dan memiliki plug-in terintegrasi untuk
Eclipse IDE (Lee, 2011: 10). Beberapa fitur yang terdapat pada
Android SDK (Meier, 2010: 6):
1.
Tidak ada proses perizinan , distribusi, atau pengembangan
biaya atau persetujuan proses rilis. 
  
146
2.
Wi-Fi akses hardware.
3.
GSM, EDGE, dan 3G untuk telepon atau mengirim data,
memungkinkan untuk membuat atau menerima panggilan atau
pesan SMS, atau mengirim dan mengambil data di jaringan
mobile.
4.
Komprehensif API untuk layanan berbasis lokasi seperti GPS.
5.
Pengaturan
multimedia hardware, termasuk pemutaran dan
merekam dengan kamera dan microphone.
6.
API untuk menggunakan sensor hardware, termasuk
accelerometer dan kompas.
7.
Libraries menggunakan Bluetooth untuk mengirim data peer-to-
peer.
8.
IPC message passing.
9.
Shared data stores
10.
Latar belakang dari aplikasi dan proses.
11.
Home-screen Widgets, Live Folders, dan Live Wallpaper.
12.
Kemampuan untuk mengintegrasikan hasil pencarian aplikasi ke
dalam pencarian sistem.
13.
Terintegrasi open-source HTML5 WebKit-based browser.
14.
Mendukung untuk aplikasi yang mengintegrasikan map controls 
sebagai bagian dari user interface.
15.
Mobile-optimized hardware-accelerated graphic, termasuk
library path-based
grafik 2D dan mendukung untuk grafik 3D
menggunakan OpenGL ES 2.0.
16.
Media libraries
untuk bermain dan merekam berbagai audio
atau video atau format gambar.
17.
Lokalisasi melalui dynamic resource framework.
18.
Suatu framework aplikasi yang mendorong penggunaan kembali
komponen aplikasi dan penggantian aplikasi asli.
2.8.6
Android Development Tools (ADT)
ADT adalah plug-in
untuk Eclipse yang memudahkan dalam
pengembangan Android dengan menghubungkan developer tools,
  
145
termasuk emulator
dan .class-to-.dex converter, langsung di dalam
IDE (Meier, 2010: 20). 
Dengan menggunakan ADT sebagai plug-in untuk Eclipse dapat
melakukan (Meier, 2010: 20):
1.
Android Project Wizard
menyederhanakan dalam pembuatan
proyek baru dan termasuk template aplikasi dasar
2.
Forms-based manifest, layout, dan resource editors
untuk
membantu membuat, mengubah, dan validasi sumber XML.
3.
Membangun secara langsung Android
Projects, konversi untuk
Android executables
(.dex), pengemasan untuk
package files
(.apk), dan instalasi package pada Dalvik virtual machine.
4.
Android Virtual Device manager, dapat membuat dan mengatur
virtual devices hosting emulator
yang menjalankan keluaran
tertentu dalam sistem operasi Android dan mengatur memory
constraint.
5.
Emulator Android, termasuk untuk mengendalikan tampilan
emulator dan pengaturan koneksi jaringan, dan kemampuan
untuk menyimulasikan telepon masuk dan pesan SMS.
6.
Dalvik Debug Monitoring Service (DDMS), yang termasuk port
forwarding, stack, heap, dan thread viewing, detil proses, dan
fasilitas screen-capture.
7.
Akses ke perangkat atau file
sistem emulator, memungkinkan
untuk menavigasi folder tree dan transfer files.
8.
Runtime debugging, dapat mengatur breakpoints dan view call
stacks.
9.
Semua Android atau Dalvik log dan console outputs.
2.9
Social Media
2.9.1
Pengertian
Dalam jurnalnya Exploring Social Responsibilty Through Social
Media
menurut Sourav Gupta adalah sebuah media untuk melakukan
interaksi sosial yang menggunakan teknik komunikasi yang terukur
dan “highly accessible” atau mudah diakses. Social media
  
146
menggunakan teknologi berbasis web dan mobile
untuk mengubah
komunikasi ke dalam dialog interaktif (2011). 
Menurut
Andreas Kaplan dan Michael Haenlain (2010: 20),
mendefinisikan bahwa social media
sebagai “sebuah kelompok
aplikasi berbasis internet yang terbangun di atas dasar ideologi dan
teknologi Web 2.0 dan yang memungkinkan pembuatan dan
pertukaran user-generated content”.
Menurut Carolyn Elefant menyebutkan
bahwa sebagai bagian
dari generasi baru aplikasi Web 2.0, social media
menggambarkan
sebuah teknologi yang memfasilitasi informasi interaktif dan sebuah
konten yang dapat dibuat dan dikolaborasi oleh seorang pengguna satu
sama lain dan memungkinkan pengguna untuk berinteraksi tanpa
dibatasi oleh ruang dan waktu (2011).
2.9.2
Ciri-ciri Dasar Social Media
Menurut Gamble (2002), dalam sebuah buku yang berjudul
Communication Works, 7th
Edition
disebutkan bahwa
social
media
mempunyai 4 ciri-ciri dasar sebagai berikut: 
1.
Pesan yang disampaikan tidak hanya untuk satu orang saja
namun bisa ke berbagai orang.
2.
Pesan yang disampaikan bebas tanpa melalui Gatekeeper.
3.
Pesan yang disampaikan cenderung lebih cepat dibandingkan
media lain.
4.
Waktu interaksi ditentukan oleh penerima pesan.
2.9.3
Jenis-jenis Social Media
Kaplan dan Haenlain kemudian mengklasifikasikan berbagai
jenis social media menjadi 6 (enam) jenis, yaitu:
a.
Proyek kolaborasi
Dimana user
dapat mengubah, menambah, dan menghapus
konten-konten yang ada pada website
tersebut. Contohnya
Wikipedia. 
b.
Blog dan microblog
  
145
Memungkinkan user dapat menyampaikan pendapat, pemikiran,
gagasan, mengkritik dan memberi saran. Contohnya melalui
Twitter, Plurk, yahoo Koprol.
c.
Konten
Untuk saling berbagi konten-konten media, seperti video, ebook,
gambar, dokumen. Contohnya Youtube,
Flick, 4shared,
Slideshare.
d.
Situs jejaring sosial
Memungkinkan pengguna saling terhubung satu sama lain
dengan cara saling terhubung dengan informasi pribadi .
Contohnya Facebook, Friendster, Fufei. 
e.
Virtual Game World
Game virtual yang mereplikasikan lingkungan ke dalam bentuk
3D, sehingga user
dapat saling berinteraksi seperti di dunia
nyata. Misalnya game
online
seperti Point Blank, Digimon,
Lineage.
f.
Virtual Social World
Hampir sama dengan virtual
game
world, bedanya aplikasi ini
lebih bebas dan mengarah ke kehidupan social. Contohnya
Second Life, The Sims.
2.9.4
Fungsi Social Media
Menurut H.Keitzmann, Hermkens, McCarthy, & S.Silvestre
(2011: 243) dalam artikelnya berjudul:
Social media? Get serious!
Understanding the functional building blocks of social media”, Ada
tujuh macam fungsi dari social media:
1.
Identity
Menggambarkan
sejauh mana
pengguna
mengungkapkan
identitas
mereka
dalam pengaturan
media sosial. Hal ini
mencakup informasi seperti nama, usia, jenis kelamin, profesi,
lokasi, dan juga
informasi  yang mendeskripsikan
pengguna
dengan cara tertentu.
  
146
2.
Conversations
Menggambarkan sejauh mana pengguna
berkomunikasi dengan
pengguna lain
dalam pengaturan
media sosial. Banyak
situs
media sosial
yang
dirancang terutama
untuk memfasilitasi
percakapan antara individu-individu dan kelompok.
3.
Sharing
Menggambarkan sejauh mana pengguna melakukan pertukaran,
pendistribusian, dan menerima
konten. Istilah
sharing” sering
menyiratkan
bahwa
pertukaran konten
antar pengguna
sangat
penting.
4.
Presence
Menggambarkan sejauh mana
pengguna dapat
mengetahui
apakah
pengguna
lainnya
dapat diakses/online. Ini termasuk
mengetahui
di mana  lokasi pengguna yang lain di dunia maya
atau dunia nyata.
5.
Relationship
Menggambarkan sejauh mana
pengguna
dapat
berhubungan
dengan pengguna lain.
6.
Reputation
Menggambarkan sejauh mana pengguna dapat
mengidentifikasi
orang lain, termasuk diri mereka sendiri.
7.
Groups
Menggambarkan sejauh mana
pengguna dapat
membentuk
communities dan subcommunities.
2.10
Java Script Object Notation (JSON)
JSON
merupakan suatu format teks yang tidak bergantung pada bahasa
pemrograman apapun karena menggunakan bahasa yang umum dan dapat
digunakan oleh programmer yang menggunakan C, C++, C#, Java, JavaScript,
Perl, Python dan lain–lain.
Beberapa bentuk yang digunakan di dalam JSON
adalah:
1.
Object 
  
145
Object adalah sepasang nama atau nilai yang tidak terurutkan. Object
dimulai dengan kurung kurawal buka ( { ) dan diakhiri dengan kurung
kurawal tutup ( } ). Pada setiap nama diikuti dengan titik dua (: ) dan
setiap pasangan nama atau nilai dipisahkan oleh koma ( , ).
2.
Array
Array adalah kumpulan nilai yang terurutkan dan memiliki
komponen–komponen yang mempunyai tipe data sama. Array dimulai
dengan kurung kotak buka ( [ ) dan diakhiri dengan kurung kotak
tutup ( ] ). Pada setiap nilai dipisahkan oleh koma ( , ).
3.
Value
Value dapat berupa string, angka, object, array, true, false, atau null.
Struktur–struktur tersebut dapat disusun dengan bertingkat.
4.
String
String
adalah kumpulan dari nol atau lebih karakter Unicode, yang
dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan
dapat digunakan backslash escapes ( \ ) untuk membentuk karakter
khusus. Sebuah karakter mewakili karakter tunggal pada string. String
sangat mirip dengan string C atau Java.
5.
Number 
Number
sangat mirip dengan number
di C atau Java, kecuali format
oktal dan heksadesimal  tidak digunakan.
2.11
MongoDB
Menurut Plugge, Membrey, dan Hawkins (2010: 3), Mongo (berasal dari
kata humongous) merupakan bentuk database baru yang tidak memiliki konsep
tabel, skema, SQL, atau kolom. Secara singkat, MongoDB berbeda dengan
RDBMS (Relational Database Management System) yang biasanya dipakai
sebagai database. Pada umumnya database
(MySQL, PostgressSQL,
ORACLE, SQLite, MS SQL SERVER, dan lain-lain) didesain untuk dapat
digunakan untuk menampung semua tipe data. Untuk membuat sebuah data
kompleks yang berukuran kecil, diperlukan 5 (lima) tabel dan pada akhirnya
menarik dan mengelompokkan mereka lagi.
  
146
Sedangkan MongoDB merupakan database
yang didesain untuk tugas
pada dokumen dibanding pada kolom, bekerja dengan cepat, massively
scalable, dan mudah digunakan. Untuk mencapai kelebihan-kelebihan tersebut,
maka MongoDB tidak cocok digunakan pada situasi tertentu, misalnya
kurangnya transaction support
dimana berarti tidak akan digunakan pada
aplikasi akuntansi. MongoDB menyediakan database
berorientasi dokumen
yang kaya dapat mengoptimalkan kecepatan dan skalabilitas data.
MongoDB dan JSON memiliki kesamaan yaitu menyimpan semua data
pada satu dokumen, tidak seperti RDBMS yang sangat terstrukturisasi dengan
menggunakan beberapa tabel untuk menyimpan data secara individual. JSON
sangat efektif bagi database yang tidak memiliki skema karena dokumen dapat
diperbaharui secara individual atau diubah secara independen. Selain itu, JSON
juga menyediakan fitur yang sangat membantu yaitu mampu mengelompokkan
data yang sama pada satu tempat. Sebenarnya MongoDB tidak menggunakan
JSON, melainkan BSON (Binary JSON). Penggunaaan BSON tidak mengubah
bagaimana cara menjalankan data, tetapi BSON mempercepat pemrosesan dan
pencarian data. Kelebihan BSON dibanding JSON salah satunya yaitu
kemampuan untuk menambahkan tipe-tipe untuk menangani data binari.
Alasan untuk menggunakan BSON yaitu MongoDB didesain untuk cepat,
bukan untuk efisiensi dalam penggunaan space (tetapi tidak boros space juga).
Secara singkat, BSON lebih mudah untuk traverse (contoh: look through) dan
pengindeksan secara cepat. Walaupun BSON menggunakan sedikit lebih
banyak disk space dibanding JSON, tetapi hal tersebut tidak dipermasalahkan
karena harga disk
tidak terlalu mahal dan MongoDB dapat scale across
machines.
Alasan kedua mengapa harus memakai BSON yaitu begitu mudah dan
cepat dalam mengkonversi BSON ke dalam format data murni dari bahasa
pemrograman. Apabila menggunakan JSON, maka diperlukan konversi tingkat
tinggi (high-level conversion) untuk mengkonversi ke dalam beberapa bahasa
pemrograman yang disediakan oleh MongoDB (contohnya C, C++, C#,
Phyton, Ruby, PHP) dan berbeda satu sama yang lain. Dengan menggunakan
format binari, struktur data murni dapat dibuat dengan cepat untuk setiap
bahasa pemrograman. 
  
145
Kelebihan MongoDB yang lain yaitu memiliki database yang lebih dari
satu. Apabila satu database mengalami kegagalan atau kerusakan, maka masih
ada database
duplikat yang lain yang bisa dikembalikan. MongoDB juga
menyediakan fitur identifier yang berbeda-beda pada dokumen. Identifier
ini
disebut dengan _id. MongoDB akan generate
sebuah nilai unik pada setiap
data atau bisa juga membuat nilai yang unik secara manual. Tetapi membuat
nilai unik secara manual menjadi tidak efektif apabila saat ada perubahan dari
10 digit menjadi 13 digit. Maka dari itu, MongoDB sangat membantu dalam
membuat identifier yang unik.
Di dalam MongoDB juga terdapat collections yang dikenal sebagai tables
di RDBMS. Tetapi collections
berbeda dengan tables. Perbedaannya terletak
pada isinya. Misalnya terdapat sebuah collection
yang bernama DVD. Dalam
collection tersebut tidak hanya berisi tentang DVD saja, tetapi dapat juga berisi
tentang CD, tapes, dan lain-lain. Dengan kata lain, tidak ada batasan dalam
memasukan data ke dalam collection
tersebut. Sedangkan di RDBMS, tabel
hanya boleh dimasukkan data yang sudah didefinisikan. Di dalam MongoDB,
collection sangat sederhana, yaitu pengelompokkan data yang mirip. Misalnya
DVD, CD, tape collections memiliki kesamaan yaitu memiliki nama penyanyi,
album, dan isi album. Semuanya tergantung pada dokumen apa sajakah yang
akan disimpan pada collection
yang sama tersebut. Database
di dalam
MongoDB dapat disebut dengan collections of collections, yaitu kumpulan dari
beberapa collections.  
Di dalam MongoDB terdapat master database
dan slave database
dimana master database merupakan database utama dari semua data dan slave
database
merupakan replika dari master database. Fungsi dari slave database
yaitu untuk memungkinkan akses database kapan dan dimana saja tanpa perlu
mengkhawatirkan adanya kegagalan dalam master database
karena slave
database
dapat menggantikannya. Salah satu kekuatan/keuntungan dari
MongoDB yaitu konsep replikasi pasangan, mirip dengn master-slave setup,
tetapi perbedaannya yaitu pada 2 buah server akan secara otomatis menentukan
yang mana yang akan menjadi master
dan yang mana akan menjadi slave.
Apabila ada satu server
mengalami kegagalan, maka kedua server akan secara
otomatis memperbaiki server yang gagal untuk normal kembali.
  
146
Fitur yang lain yaitu sharding
yang dapat dibedakan menjadi manual
sharding
dan auto sharding. Cara kerja manual sharding adalah membuat 2
buah master database dan sebagian data akan disimpan pada salah satu master
database dan sebagiannya lagi akan disimpan di master database
yang lain.
Manual sharding mewajibkan pengguna
untuk mengetahui data apa saja yang
tersimpan pada kedua master database tersebut. Apabila menggunakan cara
tersebut, maka sudah kehilangan fitur yang disediakan oleh MongoDB, yaitu
simplicity.
Berbeda dengan manual sharding, pada auto sharding MongoDB akan
mengatur semua data yang tersimpan pada database termasuk pembagian dan
pengombinasian. MongoDB menyakinkan data tersimpan sesuai tempatnya dan
queries dijalankan dan digabung seefisiennya.
2.11.1  Desain Database MongoDB
Seperti yang sudah disebutkan sebelumnya bahwa MongoDB
merupakan database
yang tidak memiliki relasi dan skema, yang
berarti tidak terikat pada kolom atau tipe data database tertentu seperti
pada RDBMS yang sudah sering ditemukan. Keuntungan yang paling
besar dari implementasi tersebut yaitu data yang sangat fleksibel
karena data tidak terikat pada struktur tertentu. Dengan kata lain,
sebuah collection dapat terdiri beberapa atau ribuan dokumen dengan
struktur yang berbeda-beda. 
Berikut merupakan contoh bentuk dokumen dari database non-relasi:
"Type": "CD",
"Artist": "Nirvana",
"Title": "Nevermind",
"Genre": "Grunge",
"Releasedate": "1991.09.24",
"Tracklist": [
{
"Track": "1",
"Title": "Smells Like Teen Spirit",
"Length": "5:02"},
{
"Track": "2",
"Title": "In Bloom",
"Length": "4:15"}]
  
145
Di dalam MongoDB, collection
dapat diberi index
secara
manual yang berfungsi agar meningkatkan kecepatan pada saat
pencarian data karena query
tidak perlu untuk menjelajahi seluruh
database. Setelah disimpan, dapat menggunakan line
berikut untuk
mencari data yang diinginkan:
db.systems.indexes.find()
2.11.2  Navigasi Database
Pada database
SQL diperlukan pembentukan database
terlebih
dahulu sebelum dilakukan input data-data. Berbeda dengan database
di MongoDB, ketika data dimasukkan, database akan secara otomatis
terbentuk. MongoDB juga bersifat case sensitive.
Tabel 2.4
menjelaskan beberapa sintaks dasar yang digunakan dalam
MongoDB:
Tabel 2.4 Sintaks Dasar MongoDB
No
Fungsi
Sintaks
1
Untuk membuat database baru
atau mengubah database yang
akan dipakai.
>use nama_database
2
Untuk menampilkan seluruh
database yang sudah ada/dibuat.
>show dbs
Untuk menampilkan collections
yang ada di dalam database
>show collections
3
Untuk insert, data disimpan
dalam format BSON (Binary
JSON). 
Ada beberapa cara untuk
memasukkan data ke dalam
collections, salah satunya yaitu
dengan mendefinisikan data
terlebih dahulu kemudian
disimpan ke dalam collections
>document =({
"Type":"Book",
"Title":"Definitive Guide
to MongoDB,the",
"ISBN":"987-1-4302-
3051-9",
"Publisher":"Apress",
"Author":
["Membrey,Peter",
  
146
atau dengan mengetik dokumen
ketika menggunakan fungsi
insert.
"Plugge,Eelco","Hawkins,
Tim" ]} )
db.media.insert(document)
Cara yang lain yaitu secara
langsung memasukkan data
secara langsung tanpa
mendefinisikan data terlebih
dahulu.
>db.media.insert({
"Type":"CD",
"Artist":"Nirvana",
"Title": "Nevermind"
})
2.12
. Global Positioning System (GPS)
Mengacu pada pendapat Meduri dan Brahmanandam (2012: 445), Global
Positioning System
(GPS) adalah satelit berbasis sistem navigasi
radio untuk
memberikan informasi posisi yang akurat dengan waktu
yang tepat. Biasanya,
akurasi GPS dibatasi oleh beberapa faktor seperti
lingkungan, penerima, dan
kesalahan berbasis satelit. 
2.13
Java
Berdasarkan pendapat Schildt (2005), Java adalah bahasa pemrograman
yang mendukung Object Oriented Programming
(OOP). Aplikasi Java
biasanya dapat dikompilasi menjadi bytecode (file kelas) yang dapat berjalan di
Java Virtual Machine (JVM) manapun walaupun berbeda dalam arsitektur
komputer.
Bahasa pemrograman Java memiliki beberapa kelebihan dibandingkan
beberapa bahasa pemrograman lain. Beberapa kelebihan dari Java adalah:
1.
Multiplatform
Java dapat dijalankan dibeberapa platform atau sistem operasi komputer,
yang tidak terikat pada arsitektur tertentu. Sesuai dengan prinsip write
once, run anywhere.
2.
Object Oriented Programming (OOP)
Bahasa Java merupakan bahasa pemrograman yang mendukung
pemodelan berorientasi objek karena pada Java mengutamakan dalam
pembuatan objek, manipulasi objek, dan membuat objek bekerja sama.
  
145
3.
Library yang lengkap
Java memiliki library
yang lengkap dan mempermudah dalam
penggunaan oleh para pembangun untuk membangun aplikasinya.
4.
Berdasar C++
Memiliki sintaks seperti bahasa pemrograman C++.
2.14
Eclipse
Eclipse adalah sebuah software yang bersifat terbuka dan multi-bahasa.
Eclipse meliputi Integrated Development Environment
(IDE) dan sistem
extensible plug-in. Dapat digunakan untuk mengembangkan berbagai jenis
aplikasi, dengan menggunakan bahasa seperti Java, Ada, C, C++, COBOL,
Python dan lain-lain (Lee, 2011: 7).
Eclipse mengijinkan ekstensi tambahan dari pihak third-party
dan
merupakan suatu IDE karena menyediakan tools
untuk mengatur workspace;
dapat membangun, menjalankan dan debug
aplikasi; dan juga melakukan
penyesuaian terhadap pemrograman.
Menurut Steinberg et. al. (2008), Eclipse adalah sebuah open source
software
yang berguna untuk menyediakan tool platform yang sangat
terintegrasi. Dalam penggunaannya Eclipse terdiri dari core project
dimana
yang berisi generic framework untuk tool integration
dan sebuah Java
development environment. Proyek pada Eclipse terimplementasikan pada Java
dan dapat dijalankan pada beberapa sistem operasi meliputi Windows, Mac
OSX dan Linux.
Sifat-sifat dari Eclipse:
a.
Multi-platform
Target sistem operasi Eclipse adalah Microsoft Windows, Linux,
Solaris, AIX, HP-UX, dan Mac OS X.
b.
Multi-language 
Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi
Eclipse mendukung pengembangan aplikasi berbasis bahasa
pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP,
dan lain sebagainya.
  
146
c.
Multi-role
Selain  sebagai IDE untuk pengembangan  aplikasi,  Eclipse pun bisa
digunakan
untuk  aktivitas
dalam
siklus  pengembangan  perangkat
lunak,  seperti dokumentasi, test perangkat
lunak, pengembangan web,
dan lain sebagainya.
Eclipse
pada
saat
ini
merupakan
salah
satu
IDE
favorit
dikarenakan
gratis
dan
open source,
yang berarti
setiap
orang boleh
melihat
kode
pemrograman
perangkat
lunak ini. Selain itu, kelebihan dari Eclipse yang
membuatnya populer adalah kemampuannya
untuk
dapat
dikembangkan
oleh
pengguna dengan
komponen
yang dinamakan plug-in.
2.15
Image Processing
Menurut Gonzalez dan Woods (2007: 23) dalam bukunya Digital Image
Processing 3
rd
Edition
sebuah gambar (image) dapat didefinisikan berupa
fungsi dua dimensi, f (x, y), dimana x dan y
merupakan koordinat spasial dan f
merupakan fungsi intensitas gambar dari titik tersebut. Ketika nilai x, y, f
terdefinisi maka disebut gambar digital (digital image). Pengolahan citra digital
(digital image processing) merupakan pengolahan gambar digital
menggunakan komputer digital. 
Kusumanto dan Tompunu (2011: 1) mendefinisikan pengolahan citra
digital adalah sebuah disiplin ilmu yang mempelajari tentang teknik-teknik
mengolah citra. Citra yang dimaksud adalah gambar diam (foto) maupun
gambar bergerak. Sedangkan digital mempunyai maksud bahwa pengolahan
citra/gambar dilakukan menggunakan komputer. Kusumanto dan Tompunu
mengklasifikasikan citra digital menjadi 3 jenis yaitu color image
atau RGB
(Red, Green, Blue), black and white dan binary image.
Gonzalez dan Woods (2007: 47) mendefinisikan langkah-langkah yang
mendasar pada pengolahan citra digital, yaitu:
1.
Image acquisition: proses mendapatkan sebuah gambar. Proses ini akan
menjadi lebih mudah apabila gambar yang didapat sudah berupa gambar
digital.
2.
Image enhancement: proses memperbaiki gambar agar hasilnya dapat
digunakan untuk aplikasi yang lebih spesifik. Image enhancement dibagi
menjadi dua metode yaitu:
  
145
a.
Spatial domain method, metode yang mengacu pada pendekatan
manipulasi secara langsung dari pixel pada gambar.
b.
Frequency domain method, metode yang mengacu pada
modifikasi fourier transform.
3.
Image
restoration: proses memperbaiki tampilan dari sebuah gambar.
Berbeda dengan image
enhancement, image
restoration
lebih objektif
karena berdasar pada model perhitungan matematika/ peluang dari
gambar. 
4.
Color image processing: proses, konsep dasar pewarnaan gambar dalam
area digital.
5.
Wavelets and multiresolution processing: merupakan proses dasar dari
merepresentasikan gambar dalam beberapa derajat resolusi. 
6.
Compression: berhubungan dengan teknik mengurangi jumlah memori
yang dibutuhkan untuk menyimpan sebuah gambar ataupun bandwidth
yang dibutuhkan untuk mengirim data gambar. 
7.
Morphological
processing: berhubungan dengan teknik untuk
mengekstrak komponen
gambar yang berguna untuk representasi dan
deskripsi dari sebuah bentuk. 
8.
Segmentation: proses membagi-bagi gambar menjadi bagian atau objek.
9.
Representation and description: 
10.
Recognition: proses mengidentifikasi label dari sebuah objek berdasarkan
deskriptor yang didapat.  
2.16
Histogram Processing
2.16.1 
Pengertian Histogram
Histogram merupakan representasi grafis dari distribusi intensitas
gambar, serta pertimbangan jumlah piksel dari setiap nilai intensitas gambar.
Metode seperti Histogram Comparison (Anonim2, 2013) adalah satu
contohnya.
2.16.2
Histogram Comparison
Metode Histogram Comparison memiliki 4
(empat) metriks
yang berbeda untuk menghitung persamaan dari dua gambar. Untuk
  
146
membandingkan dua histogram (H
1
dan H2
),  maka harus dilakukan
pemilihan
salah satu metrik perhitungan (d (H1
, H2)). Metriks Chi-
Square merupakan salah satu contoh dari metode tersebut.
Metrik ini mengukur kesamaan dari dua gambar dengan
parameter numerik histogram kedua gambar yang bersangkutan.  Jika
d adalah nilai perbandingan dari histogram, h1 dan h2 adalah dua
gambar yang bersangkutan, I  adalah saluran warna yang ada maka
perbandingan parameter numeric kedua histogram dengan
menggunakan Chi-Square adalah:
Gambar 2.21 Rumus Histogram
2.17
Augmented Reality
2.17.1 
Pengertian Augmented Reality
Menurut Perey (2011), Visi kami di masa depan adalah bahwa
setiap materi yang dicetak, dimulai dari poster, paket yang dikirim,
halaman dari koran, majalah atau buku, dapat memberikan nilai bila
dikombinasikan dengan kamera, algoritma
dapat mendeteksi isi
halaman dan platform
yang mengambil data digital yang
berhubungan. Kombinasi dari sistem AR (Augmented Reality) dengan
media cetak akan memberikan nilai lebih dibandingkan dengan
sesuatu yang hanya dicetak saja atau konten digital saja.
Menurut Suryawinata (2010), Augmented Reality
(AR) adalah
kombinasi antara dunia maya (virtual) dan dunia nyata (real) yang
dibuat oleh komputer. Obyek virtual
dapat berupa teks, animasi,
model 3D atau video yang digabungkan dengan lingkungan
sebenarnya
sehingga pengguna merasakan obyek virtual
berada
dilingkungannya. AR adalah cara baru dan menyenangkan dimana
manusia berinteraksi dengan komputer, karena dapat membawa obyek
virtual ke lingkungan pengguna, memberikan pengalaman visualisasi
  
145
yang alami dan
menyenangkan. Sistem ini berbeda dengan Virtual
Reality (VR), yang sepenuhnya merupakan virtual environment.
Dengan bantuan teknologi augmented reality
lingkungan nyata
disekitar kita akan dapat berinteraksi dalam bentuk digital (virtual).
Informasi informasi tentang obyek dan lingkungan disekitar kita dapat
ditambahkan kedalam sistem augmented reality
yang kemudian
informasi tersebut ditampilkan diatas layer
dunia nyata secara real-
time seolah-olah informasi tersebut adalah nyata.
Augmented Reality
merupakan salah satu cabang di bidang
teknologi  yang belum terlalu lama, namun memiliki perkembangan
yang sangat cepat. Perkembangan augmented reality pada industri
mobile phone juga mempunyai perkembangan yang paling cepat.
2.17.2 
Augmented Reality Location Based Tracking
Augmented Reality
ini berbasiskan metode tracking pada
informasi geo-location
yang diterima dari sensor lokasi (longitude,
latitude, altitude, compass bearing, accelerometer
untuk membaca
pitch dan roll) yang ada pada perangkat. Istilah ini digunakan untuk
membuat perbedaan antara sistem yang hanya bergantung pada sensor
lokasi dengan sistem yang dapat melacak objek menggunakan teknik
optik (image recognition). Location based tracking biasanya kurang
akurat dibandingkan dengan metode optik dan hanya bekerja dengan
baik pada lingkungan terbuka. (Butchart, 2011). 
2.17.3
Six Degrees of Freedom
Mengacu pada kemampuan dari sistem tracking untuk menjaga
keselarasan dari obyek dunia nyata dalam ruang tiga dimensi. Pada
aplikasi Augmented Reality
untuk smartphones, six degrees of
freedom
adalah mungkin. Sensor lokasi memungkinkan untuk
memberikan data kedepan/belakang dan kanan/kiri, atas/bawah (GPS)
dan yaw (kompas) dan accelerometer
dapat menunjukkan pitch dan
roll dari sebuah perangkat. Mirip seperti teknik image recognition
  
146
yang dapat menghitung sudut dari orientasi yang diketahui. (Butchart,
2011).
2.18
Penelitian Sebelumnya
Beberapa penelitian mengenai deteksi lokasi
yang pernah dilakukan
sebelumnya antara lain, jurnal yang berjudul Penggunaan Microcontroller
Sebagai Pendeteksi Posisi dengan Menggunakan Sinyal GSM membahas
pengembangan aplikasi pendeteksi posisi menggunakan IC mikrokontroller
untuk mengirimkan perintah menggunakan sinyal GSM yang ada pada mobile
phone
yang kemudian dibaca oleh penerima. Setelah dibaca dilakukan
pengiriman perintah. Perintah yang dikirim disini berupa lokasi dimana
penerima berada. Kode yang dikirimkan berupa lokasi dimana dia berada yang
ditunjukan dengan keberadaan BTS terdekat.
Pada penelitian lain Fajaruddin
dan Tarmuji (2013) menghasilkan aplikasi pencarian lokasi berbasis mobile
web dengan memanfaatkan GPS dan geolocation
Selain itu terdapat penelitian lain di bidang image
processing
untuk
pengenalan wajah menggunakan perbandingan histogram
yang dilakukan oleh
Endah Sudarmilah pada tahun 2009. Adapun kelebihan dari penggunaan
metode histogram
untuk pengenalan wajah antara lain pengenalan wajah
dengan menggunakan perbandingan histogram
memiliki algoritma yang
sederhana dan komputasi yang mudah sehingga proses pengenalan lebih cepat
dilakukan dan pengenalan wajah sudah disesuaikan dengan histogram warna
kulit. Namun juga terdapat kelemahan pada penelitian ini yaitu sistem ini
sangat tergantung pada pencahayaan terutama pada proses pengenalan wajah
karena menggunakan algortima histogram yang murni menggunakan nilai
intensitas cahaya. 
Dengan membaca dan mempelajari
dari beberapa
penelitian terdahulu
dapat membantu pengembangan aplikasi terkait, sehingga tujuan
dikembangkannya aplikasi ini dapat tercapai. Secara garis besar gambaran
penelitian terdahulu terkait aplikasi pendeteksi lokasi dan metode pengenalan
objek dapat dilihat pada Tabel 2.3:
  
145
Tabel 2.5 Penelitian Sebelumnya
No
Nama
Judul
Metode
Keterangan
1
Anna Nur
Nazilah
Chamim
Penggunaan
Microcontroller
Sebagai
Pendeteksi
Posisi Dengan
Menggunakan
Sinyal GSM 
(2010)
Pemanfaatan
sinyal GSM
sebagai media
komunikasi dan
microcontroller
sebagai alat untuk
membaca sinyal
yang dikirim
maupun diterima
oleh mobile
phone.
Kelemahan: Pendeteksi
lokasi pada aplikasi ini
masih menggunakan kode
BTS, belum merupakan
koordinat penerima.
2
Nur
Fajaruddin,
Ali Tarmuji
Pembangunan
Sistem Pencari
Lokasi dengan
Geolocation
Berdasarkan
GPS Berbasis
Mobile Web
(2013)
Memanfaatkan
fitur GPS dan
mobile browser
yang mendukung
geolocation pada
smartphone.
Penelitian ini menghasilkan
sebuah sistem pencarian
lokasi hotel berbasis mobile
web di Yogyakarta dengan
memanfaatkan geolocation
pada smartphone. Selain itu
aplikasi ini juga dapat
menampilkan rute jalan,
penunjuk arah jalan,
informasi singkat, informasi
kamar, foto dan fasilitas
umum disekitar lokasi hotel.
3
Endah
Sudarmilah
Pengenalan
Wajah dengan
Perbandingan
Histogram
Metode
pengenalan wajah
yang digunakan
pada penelitian
Pada penelitian ini
digunakan algoritma
perbandingan histogram
yang ditulis dengan
  
146
(2009)
tersebut adalah
perbandingan
histogram citra
wajah.
menggunakan library
OpenCV. 
  
145
No
Nama
Judul
Metode
Keterangan
4
Pudy Prima,
Ir.Windy
Gambetta
Penerapan
Augmented
Reality Berbasis
Lokasi dalam
Mobile Virtual
Tour (2012)
Pengembangan
aplikasi mobile
virtual guide
memanfaatkan
pendekatan
augmented reality
berbasis lokasi
yang merupakan
penggabungan
antara teknologi
location-based
service dan
augmented
reality.
Aplikasi ini memungkinkan
user generated content,
yaitu pengguna dapat
memasukan data untuk
memberikan informasi,
namun tidak ada jaminan
mengenai kebenaran
informasi yang diberikan,
karena sistem tidak
memeiliki mekanisme
khusus untuk melakukan
validasi.
5
Ashok
Saini, Mohit
Bansal,
Deepak
Sethi
Comparison of
Original Image
Enhancement
Using Multiple
Histogram
Techniques
(2013)
Menggunakan
teknik CLAHE
(Contrast Limited
Adaptive
Histogram
Equalization),
DSIHE (Dualistic
Sub Image
Histogram
Equalization) dan
DHE (Dynamic
Histogram
Equalization)
untuk
membandingkan
sebuah gambar.
Dari ketiga metode yang
digunakan DHE merupakan
teknik yang menghasilkan
gambar dengan kontras
terbaik.