BAB 2 TINJAUAN PUSTAKA - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2013-1-00642-IF...
Transcript of BAB 2 TINJAUAN PUSTAKA - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2013-1-00642-IF...
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 “whole” class 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
“whole” class bertanggung jawab atas pembentukan dan
penghancuran “part” class. Jika “whole” class hilang maka
“part” class 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
(Sumber: http://developer.android.com/about/versions/index.html,
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 3rd 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 (H1 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.