BAB 2 TINJAUAN PUSTAKA
2.1
Rekayasa Perangkat Lunak Menurut Pressman (2010, p. 13), rekayasa perangkat lunak adalah proses pembentukan dan penggunaan prinsip-prinsip perancangan dalam rangka untuk menghasilkan software yang dapat diandalkan dan dapat bekerja dengan efisien di setiap mesin.
2.1.1 Metode Agile Menurut Pressman (2010, p. 68), metode agile adalah metode yang dapat memberikan tanggapan terhadap suatu perubahan dengan cepat. Metode agile dapat mengadaptasi kebutuhan user yang baru dengan cepat ketika terjadi perubahan. Extreme Programming merupakan salah satu metode yang termasuk bagian dari metode agile. Extreme Programming Menurut Pressman (2010, p. 72), Extreme Programming (XP) adalah salah satu metode pengembangan software yang termasuk dalam metode agile. XP memiliki 5 (lima) nilai yaitu: a. Communication Untuk mencapai komunikasi yang efektif, XP menekankan pada
kerjasama
Pembentukan
yang
erat
komunikasi
antara ini
developer
juga
dan
dibangun
user. dengan
mengkomunikasikan konsep-konsep yang penting dan juga pemberian feedback secara terus menerus. b. Simplicity Untuk mencapai nilai kesederhanaan, XP membatasi developer untuk hanya merancang kebutuhan yang mendesak daripada
kebutuhan
mendatang.
Tujuannya
adalah
untuk
membuat sebuah rancangan sederhana yang dapat dengan mudah diimplementasikan ke dalam kode. Jika rancangan harus diperbaiki, maka dapat dilakukan refactoring di lain waktu. Refactoring yang dimaksud adalah tahap yang memungkinkan 9
10 developer untuk mengubah struktur source code suatu rancangan tanpa mengubah fungsi eksternalnya. c. Feedback Feedback berasal dari 3 (tiga) sumber yaitu software yang diimplementasikan itu sendiri, user, dan anggota tim developer lainnya. XP memanfaatkan tes unit sebagai taktik pengujian utama. Feedback diukur dari implementasi output, fungsi, dan karakteristik dari use case. Pada akhirnya, sebagai persyaratan baru yang berasal dari bagian perencanaan berulang, tim akan menyediakan feedback yang cepat untuk user mengenai biaya dan dampak terhadap jadwal yang akan ditimbulkan. d. Courage XP menekankan pada keberanian untuk mencoba ide-ide baru dan kedisplinan. Developer yang memakai XP harus memiliki kedisplinan dalam perancangan kebutuhan saat ini dan bukan untuk lain waktu. e. Respect Dengan mengikuti nilai-nilai yang ada, tim agile harus menanamkan rasa menghargai sesama anggota yang ada. Ketika mereka berhasil mengirimkan hasil dari rancangan software, maka developer harus mengembangkan rasa hormat untuk proses XP itu sendiri.
XP menggunakan pendekatan berorientasi objek yang mencakup 4 (empat) tahapan yaitu planning, design, coding, dan testing. Berikut merupakan proses dari XP menurut Pressman (2010, p.72) : 1. Planning Planning activities, dimulai dengan team mengumpulkan segala sesuatu kebutuhan yang diperlukan dalam pengembangan aplikasi.
Setelah
mengumpulkan
kebutuhan,
team
mulai
melakukan penyusunan user stories untuk menggambarkan output apa yang diperlukan, fitur, dan kegunaan.
11 2. Design Proses desain pada XP menerapkan prinsip Keep It Simple (KIS).
Desain
yang
sederhana
biasanya
lebih
disukai
dibandingkan dengan desain yang kompleks dan desain tersebut harus mengikuti stories yang telah dibuat sebelumnya. 3. Coding Dengan konsep pair programming, XP melakukan proses penyusunan kode yang dilakukan secara berpasangan. Dalam praktiknya, setiap orang memegang peranan yang berbeda sesuai dengan porsi yang telah ditentukan. 4. Testing Pada tahap ini acceptence tests dimana melakukan pengujian fungsionalitas dan fitur didalamnya terhadap program yang telah selesai. Diikuti dengan pembuatan dokumentasi.
Gambar 2.1 Proses Extreme Programming (Sumber: Pressman 2010, p. 74)
2.2
Interaksi Manusia dan Komputer Menurut Shneiderman dan Plaisant (2010, p. 5), Interaksi Manusia dan Komputer (IMK) adalah ilmu yang berkaitan dengan perancangan, evaluasi, dan implementasi sistem komputer untuk digunakan oleh user.
12 2.2.1 Lima Faktor Manusia Terukur Menurut Shneiderman dan Plaisant (2010, p. 32), terdapat lima faktor manusia terukur yang bisa dijadikan sebagai evaluasi atas kebutuhan user dalam merancang suatu user interface, yaitu: 1.
Waktu Belajar Lamanya waktu untuk mempelajari atau menguasai suatu aplikasi yang diperlukan oleh user.
2. Kecepatan Kinerja Lamanya waktu yang user butuhkan untuk mengerjakan suatu tugas. Hal ini dapat dicapai dengan cara mengurangi kompleksitas dalam tugas tersebut. 3. Tingkat Kesalahan User Jumlah kesalahan yang dilakukan oleh user, seberapa besar kesalahan yang dilakukan, dan bagaimana user bisa memperbaiki kesalahan tersebut. 4. Daya Ingat Berapa lama user dapat mengingat suatu aplikasi yang telah dipelajari dalam jangka waktu tertentu seperti satu jam, satu hari, atau satu minggu. 5. Kepuasan Subjektif Jumlah user yang tertarik menggunakan fungsi-fungsi yang terdapat pada suatu interface. Hal ini diketahui dari hasil survei tertulis maupun wawancara terhadap skala kepuasan dan memberikan masukan untuk aplikasi.
2.2.2 Delapan Aturan Emas Menurut Shneiderman dan Plaisant (2010, p.88-89), terdapat 8 aturan emas yang dijadikan pedoman dalam perancangan aplikasi. Evaluasi suatu perancangan suatu user interface dapat dilakukan menggunakan 8 aturan emas ini, yaitu: 1.
Berusaha untuk konsisten (Strive for consistency) Bentuk konsitensi dapat dilakukan dengan pemilihan jenis huruf, penggunaan warna, menu, layout, bahasa yang digunakan,
13 dan hal lainnya yang harus konsisten dan diterapkan secara keseluruhan. 2. Menyediakan fungsi yang universal (Cater to universal usability) User yang beragam menyebabkan rancangan layar harus memiliki banyak pertimbangan seperti hambatan fisik, perbedaan usia, dan keanekaragaman teknologi. Hal ini menyebabkan harus ada pemberian petunjuk untuk user awam dan shortcut universal yang memudahkan user dapat menjelajahi sistem secara cepat. 3. Memberikan feedback yang informatif (Offer information feedback) Dalam setiap hal yang dilakukan oleh user, harus mempunyai
feedback
agar
tercipta
suasana
yang
yang
komunikatif antara user dan user interface. Feedback yang diberikan tergantung terhadap seberapa besar tindakan yang dilakukan. 4. Merancang dialog yang menghasilkan keadaan akhir (Let the user know when they have completed a task) Semua tindakan yang dilakukan user harus terorganisir dalam kelompok dimana terdapat bagian awal, tengah, dan akhir. 5. Memberikan penanganan atau pencegahan kesalahan yang sederhana (Offer simple error handling) Suatu sistem harus dirancang agar dapat mencegah user untuk tidak melakukan kesalahan yang fatal. Apabila terjadi kesalahan dari user, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme sederhana yang mudah dipahami oleh user untuk penanganan kesalahan. 6. Memungkinkan pengembalian aksi dengan mudah (Permit easy undo) Hal ini dapat mengurangi kecemasan user ketika melakukan suatu kesalahan, karena user akan diberi peringatan terlebih dahulu sebelum melakukan suatu tindakan sehingga dapat dibatalkan untuk mencegah hal-hal yang tidak diinginkan.
14 7. Mendukung pusat kendali internal (Provide a sense of user control) User dapat memiliki kendali untuk mengontrol sistem dan sistem harus memberikan respon terhadap segala tindakan yang dilakukan oleh user, bukan sebaliknya. Sehingga user menjadi lebih inisiatif dalam menggunakan sistem tersebut. 8. Mengurangi beban ingatan jangka pendek (Reduce short term memory load) Setiap
user
memiliki
keterbatasan
ingatan
yang
membutuhkan tampilan sederhana sehingga user tidak melupakan tampilan tersebut dengan mudah. Tampilan harus dibuat sederhana agar mudah dipahami oleh user.
2.3
Unified Modeling Language Menurut Whitten dan Bentley (2007, p. 371), Unified Modeling Language (UML) adalah seperangkat ketentuan untuk permodelan yang digunakan untuk menspesifikasikan atau mendeskripsikan software yang memiliki hubungan dengan objek.
2.3.1 Use Case Diagram Menurut Whitten dan Bentley (2007, p.
246), use case diagram
adalah suatu alat yang digunakan dalam permodelan use case untuk mengidentifikasi dan mendeskripsikan fungsi sistem. Use case diagram menggambarkan interaksi antara sistem tersebut dengan sistem eksternal dan user. Dengan kata lain, use case diagram menggambarkan siapa yang akan menggunakan sistem yang dirancang dan dengan cara apa user mengharapkan untuk dapat berinteraksi dengan sistem tersebut. Menurut Whitten dan Bentley (2007, p. 246), use case diagram memiliki notasi-notasi sebagai berikut: 1.
Use Case Secara grafis, use case diwakili dalam bentuk elips dengan nama use case yang terletak pada atas, bawah atau di dalam elips itu sendiri. Sebuah use case merepresentasikan sebuah tujuan dari sistem dan
15 mendeskripsikan urutan kegiatan dan interaksi user dalam mencapai tujuan.
Gambar 2.2 Notasi Use Case
2.
Actor Secara grafis, Actor diwakili dalam bentuk stick figure yang merepresen
tasikan
apapun
yang memiliki kebutuhan
untuk
berinteraksi dengan sistem atau bertukar informasi. Actor tidak harus mewakili manusia, namun bisa mewakili sebuah organisasi, sistem informasi lainnya, perangkat eksternal, ataupun konsep dari waktu.
Gambar 2.3 Notasi Actor
3.
Relationships Secara grafis, relationship diwakili dalam bentuk sebuah garis antara dua simbol pada use case diagram. Pengertian dari relationships dapat berbeda tergantung bagaimana garis tersebut digambarkan dan apa jenis simbol yang terhubung dengan mereka. Terdapat berbagai jenis hubungan yang meliputi associations, extends, uses (include), depends on, dan inheritance.
4.
Associations Associations adalah sebuah hubungan antara sebuah actor dan sebuah use case setiap kali use case menggambarkan interaksi antara mereka actor dan use case. Association yang mengandung panah pada akhir use case menunjukkan use case tersebut ditiru oleh actor pada akhir garis lainnya. Association yang tidak mengandung panah
16 menunjukkan sebuah interaksi antara use case dan server eksternal atau actor penerima.
Gambar 2.4 Contoh Notasi Associations pada Use Case
5.
Extends Extends adalah use case yang mengandung fungsi kompleks yang terdiri dari beberapa langkah untuk menyederhanakan use case agar lebih mudah dimengerti. Relasi extends direpresentasikan dengan sebuah garis berpanah (baik garis padat maupun putus-putus) mulai dari use case yang diperluas dan menuju ke use case hasil perluasannya. Setiap garis pada relasi extends harus bertuliskan “<<extends>>”.
Gambar 2.5 Contoh Notasi Extends pada Use Case
6.
Uses (Includes) Secara umum, akan ditemukan dua atau lebih use case yang memiliki fungsi yang sama. Cara terbaik untuk menghindari pengulangan yang dapat terjadi adalah dengan menggabungkan menjadi satu use case yang disebut abstract use case. Relasi antara abstract use case dan use case harus bertuliskan “<<uses>>” atau “<
>”.
17
Gambar 2.6 Contoh Notasi Uses pada Use Case
7.
Depends On Depends on adalah sebuah relasi yang menunjukkan bahwa suatu use case memiliki ketergantungan terhadap use case lainnya. Digambarkan dengan garis berpanah, mulai dari suatu use case ke use case yang memiliki ketergantungan terhadap use case tersebut. Setiap garis depends on harus bertuliskan “<<depends on>>”.
Gambar 2.7 Contoh Notasi Depends On pada Use Case
8.
Inheritance Inheritance adalah relasi dimana terdapat dua actor atau lebih yang memiliki sifat yang hampir sama, dan dilakukan pengurangan use case dengan membuat actor baru yang disebut abstract actor. Abstract actor akan memiliki sifat dari actor yang mewariskan sifatnya ke abstract actor.
Gambar 2.8 Contoh Notasi Inheritance pada Use Case
18
2.3.2
Use Case Narrative Menurut Whitten dan Bentley (2007, p. 246), use case narrative adalah sebuah deskripsi tekstual dari kejadian bisnis dan bagaimana user akan berinteraksi dengan sistem untuk menyelesaikan sebuah tugas. Use case narrative memiliki beberapa bagian yaitu: 1. Use case name Use case name harus merepresentasikan tujuan yang ingin dicapai dari use case tersebut. 2. Actor Menyatakan stakeholder utama yang melakukan interaksi dengan sistem dan berperan penting dalam melaksanakan use case. 3. Description Merupakan ringkasan yang menggambarkan secara sekilas tujuan dari use case dan aktivitasnya. 4. Precondition Merupakan suatu kondisi tertentu yang harus dicapai sebelum menjalankan suatu use case. 5. Flow of events Merupakan kejadian yang dilakukan oleh actor dalam menjalankan use case. 6. Postcondition Merupakan kejadian pada sistem setelah use case dijalankan dengan baik.
2.3.3 Activity Diagram Menurut Whitten dan Bentley (2007, p. 390), activity diagram adalah diagram yang dapat digunakan untuk menggambarkan alur proses bisnis secara grafis, langkah-langkah dari use case, ataupun logika dari sifat objek. Activity diagram memiliki beberapa notasi, yaitu:
19 1. Initial node Initial node digambarkan dengan titik padat yang merupakan awal dari sebuah proses.
Gambar 2.9 Notasi Initial Node pada Activity Diagram
2. Actions Actions digambarkan dengan segi empat dengan sudut tumpul yang merupakan urutan aktivitas yang akan dilakukan.
Gambar 2.10 Notasi Actions pada Activity Diagram
3. Flow Flow digambarkan dengan sebuah panah yang menunjukkan jalur dari satu aktivas ke aktivitas lainnya.
Gambar 2.11 Notasi Flow pada Activity Diagram
4. Decision Decision digambarkan dengan bentuk belah ketupat yang memiliki satu arus yang masuk dan dua atau lebih arus yang keluar. Arus keluar ditandai untuk menunjukkan suatu kondisi.
Gambar 2.12 Notasi Decision pada Activity Diagram
20 5. Merge Merge digambarkan dengan bentuk belah ketupat dengan dua atau lebih arus masuk dan satu arus keluar. Merge menggabungkan dua atau lebih arus yang sebelumnya dipisahkan dengan keputusan.
Gambar 2.13 Notasi Merge pada Activity Diagram
6. Fork Fork digambarkan dengan bar berwarna hitam dengan satu arus masuk dan dua atau lebih arus keluar. Tindakan pada arus paralel di bawah fork dapat terjadi dengan urutan apapun atau secara bersamaaan.
Gambar 2.14 Notasi Fork pada Activity Diagram
7. Join Join digambarkan dengan bar berwarna hitam dengan dua atau lebih arus masuk dan satu arus keluar, mencatat berakhirnya proses yang telah berjalan bersamaan sebelumnya. Semua tindakan yang masuk ke join, harus diselesaikan sebelum proses dilanjutkan.
Gambar 2.15 Notasi Join pada Activity Diagram
21
8. Activity final Activity final digambarkan dengan titik padat yang terdapat di dalam sebuah lingkaran. Activity final menandakan bahwa proses telah berakhir.
Gambar 2.16 Notasi Activity Final pada Activity Diagram
9. Subactivity indicator Subactivity indicator menunjukkan bahwa tindakan ini terpecah dalam diagram aktivitas lain yang terpisah.
Gambar 2.17 Notasi Subactivity Indicator pada Activity Diagram
10. Connector Connector digambarkan dengan huruf di dalam sebuah lingkaran untuk mengelola kompleksitas. Arus masuk ke connector menuju ke arus keluar dari connector dengan huruf yang cocok.
Gambar 2.18 Notasi Connector pada Activity Diagram
2.3.4 Class Diagram Menurut Whitten dan Bentley (2007, p. 400), class diagram adalah gambaran grafis pada struktur objek sistem statis dan menunjukkan kelaskelas objek yang tersusun dengan hubungan antara kelas-kelas objek tersebut.
22 Class diagram digunakan untuk menggambarkan objek dan hubungan mereka secara grafis. Untuk membuat class diagram, diperlukan beberapa langkah yaitu: a. Mengidentifikasi asosiasi dan multiplicity Pada tahap ini, harus mengidentifikasi asosiasi yang ada diantara kelas-kelas objek. Sebuah asosiasi antara dua kelas objek adalah suatu objek atau kelas yang perlu untuk mengetahui mengenai yang lainnya. Setelah asosiasi selesai diidentifikasi, multiplicity yang menentukan asosiasi harus didefinisikan. Multiplicity adalah angka yang mengindikasikan jumlah kejadian minimum dan maksimum dari suatu objek atau kelas. b. Mengidentifikasi hubungan generalisasi atau spesialisasi Setelah selesai mengidentifikasi asosiasi dan multiplicity, akan dilakukan pengecekan apakah hubungan generalisasi atau spesialisasi ada atau tidak. Hubungan generalisasi atau spesialisasi merupakan klasifikasi hierarki yang mengandung kelas supertype (abstract atau parent) dan kelas subtype (concrete atau child). Kelas supertype adalah kelas umum yang mengandung atribut umum dan sifat dari hierarki. Sedangkan kelas subtype adalah kelas khusus yang mengandung atribut dan sifat yang unik dari sebuah objek tetapi mewarisi atribut dan sifat dari kelas supertype. c. Mengidentifikasi hubungan agregasi atau komposisi Pada tahap ini, harus ditentukan apakah terdapat hubungan agregasi atau komposisi. Hubungan agregasi adalah tipe hubungan yang unik dimana satu objek merupakan bagian dari objek lainnya. Sedangkan hubungan komposisi adalah bentuk dari agregasi yang kuat dimana suatu objek memiliki tanggung jawab atas objek lainnya dan objek tersebut dapat diasosiasikan hanya dengan satu objek saja. d. Mempersiapkan class diagram Terdapat
aturan
pada
langkah
ini
yaitu
tidak
membutuhkan foreign key maupun atribut dari primary key
23 karena tidak disimpan ke dalam database relasional. Menurut Whitten dan Bentley (2007, p. 650), UML memiliki tiga tingkatan yang didefinisikan berdasarkan tingkatan dari akses sebuah objek eksternal yaitu: 1.
Public Dinotasikan dengan simbol “+” dan dapat digunakan oleh semua class yang memiliki hubungan.
2.
Protected Dinotasikan dengan simbol “#” dan dapat digunakan oleh class itu sendiri dan class turunannya.
3.
Private Dinotasikan dengan simbol “-” dan hanya bisa digunakan oleh class itu sendiri.
2.4
Mobile Pembuatan aplikasi mobile berbeda dengan pembuatan aplikasi web atau aplikasi personal computer lainnya sehingga developer harus mengetahui perbedaan pembuatan aplikasi tersebut. Berikut merupakan hal-hal yang mencakup teori mobile.
2.4.1 Mobile Operating Systems Sistem operasi yang terdapat di dalam telepon genggam adalah sebuah program yang menggerakan suatu perangkat keras seperti ponsel, smartphone, PDA (Personal Digital Assistant), komputer tablet, perangkat informasi dan lain sebagainya. Berikut terdapat jenis operating systems (OS) : 1. Mac OS X Mac OS X adalah sistem operasi mobile milik Apple yang dikembangkan dan hanya diaplikasikan untuk perangkat Apple Inc seperti iphone, ipad dan apple. TV. IOS memiliki lebih dari 500.000 (lima ratus ribu) aplikasi di app store. 2. Android Android OS adalah sebuah sistem operasi mobile yang diperuntukan bagi smartphone dan komputer tablet. Android OS yang berbasis linux kernel dikembangkan oleh Open Handset Alliance
24 dibawah
Google.
Banyak
developer
di
seluruh
dunia
yang
mengembangkan aplikasi-aplikasi android dan meng-uploadnya di android market. 3. Symbian Symbian OS adalah sebuah operating system yang digunakan untuk operasi standar ponsel dengan perangkat smartphone. Symbian OS menetapkan persyaratan bahwa sistem operasi ini hanya dapat digunakan oleh ponsel dengan fitur 2.5G dan 3G. 4. Blackberry Blackberry
menggunakan
blackberry
OS
sebagai
sistem
operasinya. Blackberry dikembangkan oleh Reseach in Motion (RIM). 5. Windows mobile Windows mobile merupakan sistem operasi mobile yang dikembangkan oleh Microsoft. 6. Meego Meego adalah sebuah sistem operasi mobile yang berbasis linux dan sebuah proyek open source atau gratis. Meega OS merupakan OS yang terhitung baru dan diperkenalkan pada Mobile World Congress tahun 2010 dan yang memperkenalkan adalah Intel dan Nokia. 7. Bada Bada OS adalah sistem operasi mobile untuk perangkat smartphone dan komputer tablet. Bada OS dikembangkan oleh salah satu vendor terbesar di dunia, samsung electronic. 7. WebOS WebOS adalah sistem operasi mobile untuk beberapa perangkat ponsel, smartphone dan komputer tablet. WebOS berbais linux karnel yang awalnya dikembangkan oleh Palm. 8. Palm Palm OS diperkenalkan pada tahun 1996 yang awalnya dikembangkan untuk perangkat ponsel PDA (Personal Digital Assistant). Kemudian dikembangkan dengan kemudahan touchscreen yang berbasis graphical user interface.
25 9. MXI (Motion eXperience Interface) MXI adalah sebuah sistem operasi mobile yang universal. MXI OS dapat dijalankan untuk aplikasi mobile seperti windows, linux, palm dan java.
2.4.2 Android Gargenta (2011, p. 1) menyatakan bahwa Android adalah open-source platform yang komprehensif yang dirancang untuk perangkat mobile. Maksud dari pernyataan pada kalimat sebelumnya adalah perangkat lunak lengkap yang dipakai pada perangkat mobile. Android juga merupakan open-source platform pertama yang dapat memisahkan perangkat keras dan perangkat lunak. Android dipelopori oleh Google dan didukung oleh Open Handset Alliance. Versi – versi Android yang ada diantaranya adalah :
Tabel 2.1 Versi Android (Sumber: www.android.com, 2014)
2.5
Versi
Nama
1.6
Donut
2.0
Eclair
2.2
Froyo
2.3
Gingerbread
3.0
Honeycomb
4.0
Ice Cream Sandwich
4.1
Jelly Bean
4.4
KitKat
5.0
Lollipop
Multimedia
2.5.1 Pengertian Multimedia Menurut Vaughan (2011, p. 1), multimedia adalah kombinasi dari teks, gambar, suara, animasi, dan video yang disampaikan melalui komputer atau alat elektronik lainnya. Multimedia disebut multimedia interaktif ketika pengguna diberikan kendali atas elemen-elemen tersebut. Jika elemen-elemen
26 multimedia tersebut tersusun menjadi struktur yang saling terhubung satu sama lain dan pengguna dapat menavigasikannya, multimedia interaktif disebut hypermedia..
2.5.2 Elemen-Elemen Multimedia 1. Teks Teks adalah elemen multimedia yang paling sederhana. Teks merujuk pada kata, kalimat atau paragraf yang dapat dibaca dan digunakan untuk mengkomunikasikan ide atau pikiran seseorang. Menurut Vaughan (2011, p. 19), sejak meledaknya popularitas internet, peran teks semakin penting. Selain menyusun konten sebuah buku, teks juga digunakan dalam web. Web yang native language-nya adalah HTML (Hypertext Markup Language) dapat menampilkan dokumen berupa teks sederhana dengan berbagai gambar sebagai ilustrasi. 2. Gambar Menurut Kamus Besar Bahasa Indonesia, gambar berarti tiruan barang (orang, binatang, tumbuhan, dan sebagainya) yang dibuat dengan coretan pensil dan sebagainya pada kertas dan sebagainya. Gambar dapat digunakan untuk merepresentasikan pesan yang tidak tersampaikan oleh teks. Secara digital, gambar dibagi menjadi dua, yakni bitmap dan vector.
a. Bitmap Bitmap tersusun dari dua kata, yakni bit dan map. Vaughan (2011, p. 71) mengungkapkan bahwa bit adalah elemen terkecil dalam konteks digital yang memiliki dua nilai (binary), salah atau benar, hitam atau putih, 0 atau 1, sementara map adalah matriks dua dimensional dari bit-bit ini. Dengan menggabungkan kedua definisi tersebut, bitmap bisa diartikan sebagai matriks sederhana dari sekumpulan bit yang membentuk sebuah gambar dan ditampilkan dalam layar komputer atau dalam bentuk cetakan. Bitmap juga sering disebut raster. Pixel digunakan sebagai satuan ukuran sebuah gambar bitmap. Bitmap biasa digunakan untuk foto yang memiliki tingkat detail
27 yang tinggi dan bersifat realistik karena basisnya yang merupakan array dari satuan terkecil dari display device, yaitu pixel. b. Vektor Menurut Vaughan (2011, p. 80), gambar vektor tersusun dari kumpulan operasi matematika dan algoritma. Vektor menggunakan bentuk geometris primitif yang disusun berdasarkan sistem koordinat kartesius (tiap titik dalam bidang dihubungkan berdasarkan dua bilangan yang biasa disebut koordinat x dan koordinat y). Vektor biasa digunakan untuk desain logo atau press printing karena sifatnya yang berbasis pada operasi matematika dan algoritma menyebabkan bentuknya tetap crisp meskipun sudah di-scaling ukurannya.
Gambar 2.19 Perbedaan bitmap dan vector
3. Suara Vaughan (2011, p. 104) menyatakan bahwa suara atau audio adalah elemen multimedia paling mempengaruhi indera ketimbang akal. Suara dalam bahasa apapun, dari bisikan hingga teriakan yang dapat didengar manusia. Ketika sesuatu bervibrasi di udara, akan terjadi gelombang tekanan. Gelombang ini akan menyebar layaknya percikan yang dihasilkan oleh kerikil yang dilemparkan ke sebuah kolam, dan ketika gelombang tersebut sampai ke telinga kita, kita akan merasakan perubahan tekanan atau vibrasi tersebut. 4. Animasi Menurut Vaughan (2011, p. 140), animasi adalah sebuah teknik untuk membuat sebuah presentasi statis menjadi “hidup”. Animasi
28 berasal dari kata Latin, animatio yang berarti “memberikan hidup”. Kamus Besar Bahasa Indonesia mendefinisikan animasi sebagai rangkaian lukisan atau gambar yg digerakkan secara mekanik elektronis sehingga tampak di layar menjadi bergerak Vaughan (2011, p. 141) mengungkapkan bahwa animasi timbulk karena fenomena biologis yang dinamakan persistence of vision dan fenomena psikologis yang disebut phi. Saat manusia melihat sebuah objek, objek tersebut akan dipetakan oleh retina mata sesaat setelah penglihatan. Kebutuhan pikiran manusia untuk menyelesaikan persepsi dari penglihatan tersebut dalam satuan waktu tertentu, mengakibatkan mungkinnya serangkaian gambar yang berganti dengan sangat cepat seakan menyatu dan membentuk ilusi berupa gerakan dari rangkaian gambar tersebut. 5. Video Video adalah teknologi yang mampu menangkap, merekam, memproses, menyimpan, mentransmisi dan merekonstruksi secara elektronis serangkaian gambar yang membentuk sebuah adegan dengan gerakan. Menurut Vaughan (2011, p. 164), video adalah elemen yang dapat mendramatisir sebuah proyek multimedia. Sebuah klip video yang menampilkan seorang presiden tengah berpidato tentu akan lebih menarik perhatian ketimbang membaca teks pidato itu sendiri secara langsung. Suatu video yang dibuat secara baik dapat menciptakan suatu keadaan yang memberikan pesan dan memperkuat isi cerita sehingga pengguna cenderung mempercayai apa yang dilihat.
2.6
Augmented Reality Secara umum augmented reality adalah penggabungan antara objek virtual dengan dunia nyata.
2.6.1 Pengertian Augmented Reality Istilah augmented reality menurut Mullen (2011, p. 1) berarti kombinasi antara teknologi yang memungkinkan penggabungan antara objek yang dihasilkan oleh komputer dengan objek nyata yang ditampilkan dengan live video. Augmented reality dibedakan dengan virtual reality. Virtual reality
29 melibatkan penciptaan lingkungan tiga dimensi yang imersif, sementara augmented reality menciptakan objek “tertambah” komposit di dunia nyata. Madden (2011, p. 4) mengatakan bahwa augmented reality sebagai teknologi yang mampu: •
Mengkombinasikan dunia nyata dengan objek yang dihasilkan komputer.
•
Memungkinkan interaksi dengan objek secara real-time.
•
Men-track aktivitas objek secara real-time.
•
Mengenal gambar atau objek.
•
Menampilkan informasi secara real-time.
Dengan bantuan teknologi augmented reality lingkungan nyata disekitar kita akan dapat berinteraksi dalam bentuk digital (virtual). Informasi informasi tentang objek 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 nyata. Augmented reality dapat mempermudah kehidupan penggunanya dengan membawa informasi virtual. Fuhrt (2011, p. 14) mengatakan bahwa aspek paling penting dalam teknologi ini adalah menciptakan teknik yang baik untuk interaksi yang intuitif antara penggunanya dengan aplikasi augmented reality.
2.6.2 Sejarah Augmented Reality Istilah augmented reality diciptakan oleh Tom Caudell, seorang peneliti di perusahaan pesawat terbang Boeing pada tahun 1990 (Fuhrt, 2011, p. 3). Selama awal dan pertengahan tahun 90an, Caudell dan rekan-rekannya mengembangkan head-mounted display untuk membantu pekerja memasang kabel dalam
pesawat terbang
menggunakan
diagram
digital
yang
diproyeksikan ke layar head-mounted display tersebut yang menunjukkan dimana kabel harus dipasang. Dengan diimplementasikannya teknologi seperti ini, pekerjaan pun menjadi lebih mudah dilakukan. Sepanjang dekade 90an, augmented reality tetap berkembang di sektor industri dan militer. Perangkat yang dibutuhkan untuk menampilkan
30 augmented reality cenderung mahal dan berukuran besar, sehingga tidak banyak khalayak umum yang memiliki kesempatan untuk mencoba teknologi ini. Pada akhir tahun 90an, Hirokazu Kato menciptakan ARToolKit, sebuah library yang dapat mempermudah pengerjaan augmented reality, namun kebutuhan perangkat keras yang besar dan mahal masih menutup kesempatan bagi augmented reality untuk dipakai oleh masyarakat banyak. Hal ini akan tetap berlangsung apabila teknologi ponsel pintar atau smartphone tidak berkembang seperti saat ini. Smartphone Android dan iPhone beserta tablet computer yang memiliki kamera dan daya proses layaknya komputer membuka banyak kemungkinan yang menarik untuk pengaplikasian augmented reality. Pada tahun 2008, Wikitude AR Travel Guide, memperkenalkan Android G1 Telephone yang berteknologi augmented reality, tahun 2009, Saqoosha memperkenalkan FLARToolkit yang merupakan perkembangan dari ArToolkit. FLARToolkit memungkinkan kita memasang teknologi AR di sebuah website, karena output yang dihasilkan FLARToolkit berbentuk Flash. Di tahun yang sama, Wikitude Drive meluncurkan sistem navigasi berteknologi AR di Platform Android. Tahun 2010, Acrossair menggunakan teknologi augmented reality pada iPhone 3GS.
2.6.3 Perkembangan Augmented Reality Pada Museum Penelitian mengenai teknologi Augmented Reality pada museum pernah dilakukan untuk memandu pengunjung. Metode dan perangkat yang digunakan adalah markerless tracking, hybrid tracking, serta menggunakan sebuah PC Ultra Mobile (Miyashita, 2008). System Augmented Reality tersebut dapat di terima di dalam lingkungan museum dengan baik dan pengunjung menyukai dengan penggunaan Augmented Reality dalam museum. Museum merupakan tempat yang menarik untuk memperkenalkan teknologi Augmented Reality kepada masyarakat umum. Interaksi pengunjung dan perangkat gadget yang digunakaan bermanfaat untuk mengetahui apakah aplikasi augmented reality ini berguna. Augmented Reality dikantakan berguna dan bermanfaat ketika teknologi tersebut dapat mengurangi realitas
31 yang terlalu kompleks untuk di tampilkan (Tillon, 2011). Selain itu juga studi lain membuktikan kunjungan ke museum menyatakan bahwa kebergunaan dan kesenangan adalah faktor penting saat menggunakan aplikasi Augmented Reality (Haugstvedt, 2012). Untuk dapat memproyeksikan objek kedalam teknologi Augmented Reality diperlukan suatu pelacakan. Augmented Reality dapat diklasifikaskan menjadi dua berdasarkan ada atau tidaknya penggunaan marker yaitu marker dan markerless (Geroimenko, 2012). marker dapat berupa sebuah objek nyata atau buat dengan pola unik(barcode). Marker yang digunakan dalam teknologi Augmented Reality dibutuhkan kalkulasi posisi, orientasi, dan sekala dari objek Augmented Reality. Sedangkan dalam merkerless, marker yang digunakan adalah objek di dunia nyata sebagai marker dengan kata lain tidak menggunakan marker yang dibuat sendiri.
2.6.4 Jenis-jenis Augmented Reality Augmented
reality
dibagi
menjadi
dua
berdasarkan
metode
penggunaannya. 1.
Marker Augmented Reality Metode yang memanfaatkan marker, misalnya ilustrasi monokrom (hitam putih) berbentuk persegi dan bentuk lainnya dengan batas hitam tebal dan latar putih. Dengan menghadapkan kamera ke posisi yang tepat, device akan melakukan proses render objek, menyatukan objek virtual tersebut dengan dunia nyata. Dalam pembuatan sebuah marker yang menggunakan tampilan asli dari sebuah objek yang ingin dilihat disebut Natural Fiture Tracking (NFT), contohnya seperti foto, lukisan, wajah dan lain – lain. Dimana marker ini sangat fleksibel dan banyak digunakan oleh para pengembang AR. Marker yang baik adalah marker yang mudah di kenali dan bersifat reliable dalam kondisi apapun (Siltanen, 2012). Misalnya dalam kondisi cahaya yang buruk, posisi kamera tidak menentu dan perubahan jarak marker dengan kamera, marker yang baik akan tetap terbaca oleh system. Karena itu, marker yang baik memiliki tekstur yang rumit.
32
Gambar 2.20 Augmented reality dengan marker. 2. Markerless Augmented Reality Metode yang tidak membutuhkan marker, sesuai namanya. Penggunaan metode ini biasa dilakukan dengan memanfaatkan deteksi koordinat objek, misalnya wajah untuk dijadikan trigger untuk menampilkan informasi tentang pemilik wajah tersebut.
2.6.5 Aplikasi Augmented Reality Augmented reality sudah cukup banyak diaplikasikan ke dalam kehidupan sehari-hari, kegiatan perindustrian, hingga militer (Andriyadi, 2011, p. 10). a.
Kedokteran Teknologi pencitraan sangat dibutuhkan di dunia kedokteran, misalnya simulasi operasi atau simulasi pembuatan vaksin dan lain sebagainya.
b. Hiburan Augmented reality juga dipakai dalam dunia hiburan, misalnya dalam industri perfilman atau game. Teknologi ini juga belakangan ini diterapkan pada koran atau majalah, dimana pembaca dapat mengscan marker yang ada di majalah untuk menampilkan konten yang dimuat di dalamnya. c. Militer Contoh penerapan augmented reality dalam dunia militer misalnya simulasi perang dimana tentara dapat berpartisipasi di dalamnya sebagai latihan.
33 d. Engineering Augmented reality dapat mensimulasikan perbaikan alat-alat berat atau mesin, misalnya mobil hingga pesawat. e. Robotik Dalam bidang robotika, seorang operator robot menggunakan pencitraan visual lewat augmented reality untuk mengendalikan robot itu. f. Consumer Design Augmented reality telah digunakan dalam mempromosikan produk. Sebagai contoh, seorang pengembang menggunakan brosur virtual untuk memberikan informasi yang lengkap secara 3D, sehingga pelanggan dapat mengetahui secara jelas produk yang ditawarkan.
2.7
Unity Menurut Goldstone (2009, p.1), Unity adalah game authoring tools untuk Mac dan PC. Unity yang berbasis 3D menggunakan Direct3D (Windows), OpenGL (Windows, Mac, Linux), OpenGL ES (Android) sebagai graphic engine. Meskipun Unity digunakan secara luas untuk menciptakan game, Unity juga mempunyai kapabilitas untuk menciptakan aplikasi di luar ranah entertainment dengan memanfaatkan kemampuan Unity untuk melakukan render grafik 3D atau 2D dengan cepat menggunakan GPU atau engine physics-nya, misalnya aplikasi arsitektural, aplikasi instruksi interaktif atau aplikasi presentasi produk. Unity memiliki built-in scripting engine bernama Mono. Scripting di dalam Unity 3D dapat menggunakan beberapa pilihan bahasa pemrograman, yaitu Javascript, dan C#.
2.8
Vuforia Vuforia QCAR adalah software development kit (SDK) yang digunakan untuk menciptakan aplikasi augmented reality. Vuforia QCAR menyediakan application programming interfaces (API) dengan bahasa C++,
34 Java, Objective-C dan mendukung pengembangan aplikasi untuk platform iOS dan Android. Vuforia QCAR menggunakan teknologi Computer Vision untuk mengenali dan men-track target dan objek tiga dimensi, memungkinkan pengguna untuk memposisikan objek virtual bersama dengan gambar dunia nyata yang ditampilkan lewat layar kamera mobile device secara real-time. Objek virtual tersebut men-track posisi gambar dunia nyata tersebut sehingga objek dan lingkungannya dapat berkorespondensi dengan perspektif pengguna aplikasi, membuat objek virtual tersebut nampak selayaknya bagian dari dunia nyata. Setelah melakukan registrasi di website vuforia, pengembang aplikasi kemudian dapat mengunggah gambar inputan untuk dijadikan target yang ingin di-track. Tidak semua gambar dapat dipakai menjadi target. Akan dilakukan penilaian terlebih dahulu oleh web developer vuforia. Nilai skor target mendefinisikan seberapa baik suatu gambar dapat dideteksi dan dilacak menggunakan SDK Vuforia. Direpresentasikan dengan bintang, nilai skor sebuah gambar yang akan dijadikan target berkisar dari 0 hingga 5. Semakin banyak bintang, semakin kuat kemampuan deteksi dan pelacakan yang didapat. Atribut yang menjadi kriteria penilaian Vuforia disebut feature. Feature adalah sudut-sudut tajam yang ada di dalam gambar yang diunggah. Image analyzer Vuforia akan menampilkan hasil deteksi feature dengan tanda silang keci berwarna kuning. Untuk contoh penilaian, dapat dilihat di gambar di bawah ini.
Gambar 2.21 Contoh gambar yang kurang baik untuk dijadikan sebagai Marker Sumber: developer.vuforia.com
35 Gambar 2.21 merupakan contoh gambar yang kurang baik untuk dijadikan target. Jumlah tanda silang kuning yang menandakan feature sedikit diakibatkan dua faktor, yakni kurangnya atau buruknya distribusi feature dalam gambar atau kontras gambar yang kurang baik. Gambar yang baik untuk dijadikan target oleh Vuforia adalah gambar yang memiliki sudut tajam yang detail. Untuk lebih jelasnya, perhatikan Gambar 2.22.
Gambar 2.22 Gambar bentuk sederhana yang dinilai oleh Vuforia. Sumber: developer.vuforia.com
Hasil penilaiain Vuforia ke gambar bentuk sederhana dapat dilihat pada Gambar 2.22. Di posisi paling kiri terdapat bentuk persegi yang memiliki empat tanda silang kuning di setiap sudutnya. Di tengah, terdapat lingkaran yang sama sekali tidak memiliki tanda silang kuning. Sementara itu, di kanan, terdapat bentuk persegi dan setengah lingkaran yang memiliki dua tanda silang kuning pada sudut bagian perseginya. Dari ketiga gambar tersebut, dapat disimpulkan bahwa bentuk lingkaran tidak cocok untuk dijadikan target karena tidak memiliki sudut tajam atau feature. Untuk contoh gambar dengan penilaian baik oleh Vuforia dapat dilihat di Gambar 2.23. Dapat dilihat bahwa gambar tersebut memiliki banyak tanda silang kuning karena jumlah feature yang banyak.
Gambar 2.23 Contoh gambar yang baik untuk dijadikan target.
36 2.9
Android SDK (Software Development Kit) Android SDK menyediakan (Application Programming Interface) API libraries dan developer tools yang diperlukan untuk membangun, menguji dan debug untuk aplikasi android. Terdapat beberapa jenis paket yang tersedia untuk android SDK, yaitu : a. SDK Tools Merupakan sebuah tools untuk debugging dan testing, ditambah dengan proses lain yang diperlukan untuk mengembagkan sebuah aplikasi. b. SDK Platform Tools Merupakan tools yang mendukung fitur terbaru dari platform android dan biasanya diperbaharui ketika platform baru telah tersedia. Beberapa tools yang sering digunakan pada android SDK, yaitu : 1. Dalvik Debug Monitor Server (DDMS) Berguna untuk mengontrol Dalvik Virtual Machine pada proses debugging. 2. Android Emulator Memungkinkan untuk mengembangkan dan menguji aplikasi android tanpa menggunakan perangkat fisik. 3. Hierarchy Viewer dan Layout Berguna untuk mengoptimalkan interface dari aplikasi yang dibuat. 4. MkSDcard Berguna untuk membantu membuat sebuah disk image seperti SDcard yang digunakan pada android emulator. 5. Monkey Program yang berjalan di emulator untuk mengenali sentuhan atau klik yang diterima. 6. Monkeyrunner Berguna
untuk
menyediakan
API
(Application
Programming Interface) untuk menulis kode program yang berasal dari luar kode android.
37 7. ProGuard Berguna untuk mengoptimalkan kode pengguna dengan menghapus kode yang tidak terpakai dan mengubah nama kelas, fields dan method dengan nama yang jelas. 8. Traceview Menyediakan tampilan grafis dari log yang disimpan oleh aplikasi. c. Documentation Merupakan dokumentasi offline yang terbaru untuk android platform APIs. d. SDK Platform Terdapat satu platform SDK yang tersedia untuk setiap versi dari android, yaitu android.jar yang sepenuhnya compatible dengan library 38 android. Dalam membuat aplikasi android, developer harus menentukan platform SDK yang digunakan. e. System Image Setiap versi dari platform menawarkan satu atau lebih system images yang berbeda (contoh untuk ARM dan x86). Emulator android membutuhkan system image untuk beroperasi. Developer harus selalu menguji aplikasinya pada versi terbaru dari android dan menggunakan emulator dengan system images terbaru untuk mendapatkan hasil yang terbaik. f. Sources for Android SDK Sebuah salinan kode dari platform android yang berfungsi untuk membantu developer dalam membuat aplikasi. g. Samples for SDK Sebuah koleksi dari beberapa contoh aplikasi yang menunjukan berbagai platform API. Ini merupakan sumber daya yang besar untuk menelusuri code dari aplikasi android. h. Google APIs Sebuah SDK add-on yang menyediakan platform yang dapat digunakan
untuk
mengembangkan
sebuah
aplikasi
khusus
menggunakan google API dan gambar sistem untuk emulator sehingga dapat menguji aplikasi yang dibuat.
38 i. Android Support Menyediakan static libraries yang termasuk dalam sumber-sumber aplikasi developer untuk menggunakan API yang tidak tersedia dalam platform yang biasa. j. Google Play Billing Menyediakan static libraries dan sample yang memungkinkan user untuk berintegrasi dengan layanan berbayar pada aplikasi yang dibuat dengan google play. k. Google Play Licensing Menyediakan static libraries dan sample yang memungkinkan user melakukan verifikasi lisensi untuk aplikasi yang telah dibuat ketika dilakukan distribusi dengan google play.