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. 11
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:
3.
a.
Bored: aplikasi yang berkonteks hiburan.
b.
Busy: aplikasi untuk menyelesaikan tugas dengan cepat.
c.
Lost: aplikasi yang berkonteks informasi tempat.
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. << Nama kelas >> -
Atribut kelas
+ Operasi 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
145
Visibility
Simbol
Deskripsi Atribut public dan operasi
Public
+
public dapat diakses oleh semua operasi lain di semua kelas. Atribut protected dan operasi protected dapat diakses oleh
Protected
#
operasi lain dalam class yang mendefinisikannya, atau di subclasses dari class tersebut. Atribut private dan operasi
Private
-
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 Bidirectional (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
keterangan kata kecuali sebuah keputusan.
tidak
memerlukan
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 <
>, 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 <>.
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
Attributes Description
Name
Data
Nulls
Type &
Multivalued
Length Staff
staffNo
Uniquely
5 variabel
identify a
characters
No
No
No
No
No
No
No
No
Yes
No
Yes
No
member of staff fName
First name of staff
15 variabel characters
lName
Last name of staff
15 variabel characters
position
Job title of
10
member of
variabel
staff sex
DOB
Gender of
characters 1
member
character
staff
(M or F)
Date of
Date
birth of member of staff
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 Javacompatible 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 lainlain.
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 batterypowered 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 lainlain.
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 multiprocessor 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 email 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-topeer.
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.
2.9
Semua Android atau Dalvik log dan console outputs.
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 dengan cara tertentu.
yang mendeskripsikan pengguna
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
Untuk membuat database baru 1
atau mengubah database yang
>use nama_database
akan dipakai. Untuk menampilkan seluruh 2
>show dbs
database yang sudah ada/dibuat. Untuk menampilkan collections
>show collections
yang ada di dalam database
3
Untuk insert, data disimpan
>document =({
dalam format BSON (Binary
"Type":"Book",
JSON).
"Title":"Definitive Guide
Ada beberapa cara untuk
to MongoDB,the",
memasukkan data ke dalam
"ISBN":"987-1-4302-
collections, salah satunya yaitu
3051-9",
dengan mendefinisikan data
"Publisher":"Apress",
terlebih dahulu kemudian
"Author":
disimpan ke dalam collections
["Membrey,Peter",
146
atau dengan mengetik dokumen
"Plugge,Eelco","Hawkins,
ketika menggunakan fungsi
Tim" ]} )
insert.
db.media.insert(document)
Cara yang lain yaitu secara
>db.media.insert({
langsung memasukkan data
"Type":"CD",
secara langsung tanpa
"Artist":"Nirvana",
mendefinisikan data terlebih
"Title": "Nevermind"
dahulu.
})
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 ChiSquare 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 realtime 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 1 Anna Nur
Judul Penggunaan
Metode Pemanfaatan
Keterangan Kelemahan: Pendeteksi
Nazilah
Microcontroller
sinyal GSM
lokasi pada aplikasi ini
Chamim
Sebagai
sebagai media
masih menggunakan kode
Pendeteksi
komunikasi dan
BTS, belum merupakan
Posisi Dengan
microcontroller
koordinat penerima.
Menggunakan
sebagai alat untuk
Sinyal GSM
membaca sinyal
(2010)
yang dikirim maupun diterima oleh mobile phone.
2
Nur
Pembangunan
Memanfaatkan
Penelitian ini menghasilkan
Fajaruddin,
Sistem Pencari
fitur GPS dan
sebuah sistem pencarian
Ali Tarmuji
Lokasi dengan
mobile browser
lokasi hotel berbasis mobile
Geolocation
yang mendukung
web di Yogyakarta dengan
Berdasarkan
geolocation pada
memanfaatkan geolocation
GPS Berbasis
smartphone.
pada smartphone. Selain itu
Mobile Web
aplikasi ini juga dapat
(2013)
menampilkan rute jalan, penunjuk arah jalan, informasi singkat, informasi kamar, foto dan fasilitas umum disekitar lokasi hotel.
3
Endah
Pengenalan
Metode
Pada penelitian ini
Sudarmilah
Wajah dengan
pengenalan wajah
digunakan algoritma
Perbandingan
yang digunakan
perbandingan histogram
Histogram
pada penelitian
yang ditulis dengan
146
(2009)
tersebut adalah
menggunakan library
perbandingan
OpenCV.
histogram citra wajah.
145
No
Nama
Judul
Metode
Keterangan
4
Pudy Prima,
Penerapan
Pengembangan
Aplikasi ini memungkinkan
Ir.Windy
Augmented
aplikasi mobile
user generated content,
Gambetta
Reality Berbasis
virtual guide
yaitu pengguna dapat
Lokasi dalam
memanfaatkan
memasukan data untuk
Mobile Virtual
pendekatan
memberikan informasi,
Tour (2012)
augmented reality
namun tidak ada jaminan
berbasis lokasi
mengenai kebenaran
yang merupakan
informasi yang diberikan,
penggabungan
karena sistem tidak
antara teknologi
memeiliki mekanisme
location-based
khusus untuk melakukan
service dan
validasi.
augmented reality. 5
Ashok
Comparison of
Menggunakan
Dari ketiga metode yang
Saini, Mohit
Original Image
teknik CLAHE
digunakan DHE merupakan
Bansal,
Enhancement
(Contrast Limited
teknik yang menghasilkan
Deepak
Using Multiple
Adaptive
gambar dengan kontras
Sethi
Histogram
Histogram
terbaik.
Techniques
Equalization),
(2013)
DSIHE (Dualistic Sub Image Histogram Equalization) dan DHE (Dynamic Histogram Equalization) untuk membandingkan sebuah gambar.