BAB 2 TINJAUAN PUSTAKA 2.1 Multimedia 2.1.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 multimedia tersebut tersusun menjadi struktur yang saling terhubung satu sama lain dan pengguna dapat menavigasikannya, multimedia interaktif disebut hypermedia. Drew dan Li (2004, p. 3) mendefinisikan multimedia sebagai aplikasi yang menggunakan berbagai modalitas demi berbagai manfaat, termasuk teks, gambar, animasi, video dan suara dan mengandung interaktivitas dalam bentuk tertentu.
2.1.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 9
10
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. Menurut Drew dan Li (2004, p. 61), gambar terdiri atas pixel atau pel. Pixel adalah titik fisik dalam gambar bitmap, dan merupakan elemen terkecil dengan koordinat dalam sebuah display. Pixel digunakan sebagai satuan ukuran sebuah gambar bitmap. Bitmap biasa digunakan untuk foto yang memiliki tingkat detail 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.
11
Gambar 2.1 Perbedaan bitmap dan vector Sumber: computinglesson.com 3. Suara Vaughan (2011, p. 104) menyatakan bahwa suara atau audio adalah elemen multimedia paling sensuous (mempengaruhi indera ketimbang akal). Suara berarti “ucapan” 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. Menurut Drew dan Li (2004, p. 126), suara adalah sebuah fenomena gelombang yang melibatkan molekul udara yang dikompresi dan diekspansi lewat aksi dari sebuah physical device. Contohnya speaker di dalam sebuah audio system bervibrasi dan menghasilkan tekanan longitudinal yang dipersepsikan sebagai suara. 4. Animasi Menurut Vaughan (2011, p. 140), animasi adalah sebuah teknik u n t u k membuat sebuah presentasi statis menjadi “hidup”. Animasi 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
12
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.2 Interaksi Manusia dan Komputer 2.2.1 Eight Golden Rules of Interface Design Menurut Shneiderman dan Plaisant (2010, p. 88), dalam mendesain tampilan antarmuka pengguna, ada delapan aturan yang berlaku dan penting untuk diikuti demi meningkatkan usability sistem. 1. Strive for consistency. Urutan aksi yang konsisten dibutuhkan dalam keadaan yang mirip saat penggunaan tampilan antarmuka pengguna; terminology yang identik diperlukan pada menu dan help screen. Faktor-faktor yang mempengaruhi konsistensi antara lain warna, tata leta, kapitalisasi huruf, font dan seterusnya. 2. Cater to universal usability. Perancang tampilan antarmuka pengguna harus mengerti kebutuhan dari penggunanya yang muncul dari berbagai kalangan. Perbedaan
13
antara pemula dan ahli, umur pengguna, disabilitas dan perbedaan pemahaman teknologi memperkaya spektrum kebutuhan dalam petunjuk
perancangan
tampilan
antarmuka
pengguna.
Contoh
implementasi prinsip ini adalah dengan memberikan fitur khusus, misalnya tutorial untuk pemula dan shortcut atau hotkey untuk pengguna ahli. 3. Offer informative feedback. Untuk setiap aktivitas yang akan dilakukan oleh pengguna, hendaklah rancangan tampilan antarmuka pengguna memberikan umpan balik yang informatif. Untuk aksi yang cukup sering dilakukan dan berakibat minor, umpan balik yang diberikan oleh rancangan tampilan antarmuka pengguna sebaiknya sederhana, sementara aksi yang jarang dilakukan namun berpengaruh besar harus memberikan umpan balik yang lebih substansial. 4. Design dialogs to yield closure. Serangkaian aktivitas dalam penggunaan tampilan antarmuka pengguna haruslah terorganisir dan memiliki awal, pertengahan dan akhir yang jelas. Sangat penting bagi seorang pengguna untuk diberi tahu kapan aksi yang dilakukannya akan berakhir. 5. Prevent errors. Jika pengguna melakukan kesalahan, sistem tampilan antarmuka pengguna patut memberikan instruksi yang informatif untuk mengundo atau memperbaiki kesalahannya tersebut. 6. Permit easy reversal of actions. Sebisa mungkin, untuk aktivitas yang dilakukan oleh pengguna, disediakan opsi untuk melakukan pengembalian aksi atau undo. Hal ini mendorong pengguna untuk melakukan eksperimen dengan fungsifungsi lain yang belum ia ketahui dan memberikan perasaan lega karena saat ia salah langkah, ia dapat melakukan pengembalian aksi dan memperbaiki kesalahannya tersebut. 7. Support internal focus of control.
14
Pengguna
ahli
sebuah
tampilan
antarmuka
pengguna
kerap
mengharapkan kontrol menyeluruh atas sistem. Sistem juga harus memberikan respon yang cermat. 8. Reduce short-term memory load. Manusia memiliki kapasitas yang terbatas dalam memproses ingatan jangka pendek. Perancang tampilan antarmuka pengguna pun ditantang untuk membuat penggunanya tidak perlu mengingat hal-hal yang dibutuhkan olehnya untuk mengerjakan aktivitas yang sudah ia lakukan sebelumnya.
2.3 Rekayasa Perangkat Lunak 2.3.1 Waterfall Model Waterfall model, atau biasa disebut classic life cycle menurut Sommerville (2011, p. 747) adalah process model yang melibatkan tahapan pengembangan yang diskrit: perancangan, implementasi, pengujian dan pemeliharaan. Secara principal, satu tahapan harus benar-benar selesai sebelum tahapan pengembangan selanjutnya dapat dilakukan. Menurut Sommerville (2011, p. 31), tahap-tahap dalam waterfall model yakni: 1. Analisis kebutuhan. Seluruh kebutuhan software harus bisa didapatkan dalam fase ini, termasuk kegunaan software yang diharapkan pengguna dan batasan software. Informasi ini biasanya dapat diperoleh melalui wawancara, survey atau diskusi yang dianalisis untuk mendapatkan dokumentasi kebutuhan pengguna untuk digunakan pada tahap selanjutnya. 2. Perancangan sistem dan software. Dalam tahapan ini akan disusun arsitektur sistem berdasarkan persyaratan yang telah ditetapkan. Dilakukan pula identifikasi dan abstraksi dasar sistem perangkat lunak dan hubungan-hubungannya. 3. Implementasi dan unit testing Hasil perancangan akan direalisasikan sebagai satu set program atau unit program. Setiap unit akan diuji apakah sudah memenuhi spesifikasinya. 4. Intergrasi and system testing.
15
Dalam tahapan ini, setiap unit program akan diintegrasikan satu sama lain dan diuji sebagai satu sistem yang utuh untuk memastikan sistem sudah memenuhi persyaratan yang ada. Setelah itu sistem akan dikirim ke pengguna sistem. 5. Pengoperasian dan pemeliharaan Dalam tahapan ini, sistem diinstal dan mulai digunakan. Selain itu juga memperbaiki error yang tidak ditemukan pada tahap pembuatan. Dalam tahap ini juga dilakukan pengembangan sistem seperti penambahan fitur dan fungsi baru.
Gambar 2.2 Diagram waterfall model menurut Sommervile. Sumber: Sommerville (2011, p. 31)
Kelebihan dari model ini adalah selain karena pengaplikasian menggunakan model ini mudah, ketika semua kebutuhan sistem dapat atau sudah didefinisikan secara utuh dan runtut di awal proyek, maka pengerjaan aplikasi dapat berjalan dengan baik. Kekurangan yang utama dari model ini adalah kesulitan dalam melakukan perubahan apabila proses pengembangan sudah dijalani. Fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya.
2.4 Storyboard Menurut Vaughan (2011, p. 295), storyboard adalah graphic outline yang mendeskripsikan proyek secara detil – menggunakan kata-kata dan sketsa untuk
16
setiap tampilan gambar yang ada di aplikasi, suaranya, pilihan navigasinya, warna-warnanya secara spesifik, konten teks dan atributnya, semisalnya tipe font, bentuk button, style-nya, responnya, serta infleksi suaranya. Storyboard dapat berupa kumpulan sketsa yang menggambarkan isi dari urutan tampilan dari aplikasi multimedia. Sebuah form storyboard sederhana memiliki bagian yang menampilkan tampilan antarmuka pengguna dalam layar dan bagian keterangan.
2.5 UML Menurut Whitten dan Bentley (2007, p. 371), UML (Unified Modelling Language) adalah kumpulan konvensi standar untuk mengambarkan sistem sebuah aplikasi. UML digunakan untuk memvisualisasikan, menspesifikasi, membangun dan mendokumentasi artifak dalam sebuah sistem aplikasi. Ada tiga macam UML yang dipakai dalam pengerjaan AR Residence dan laporan ini, yaitu class diagram, use case diagram dan activity diagram. 1. Use case diagram Whitten dan Bentley (2007, p. 382) mengemukakan bahwa use case diagram mengambarkan interaksi antara sistem dengan sistem eksternal atau pengguna sistem.
Gambar 2.3 Contoh class diagram.
17
Sumber: Whitten & Bentley (2007, p. 384)
Ada beberapa elemen yang perlu diperhatikan dalam sebuah use case diagram, yakni: a. Actor Menurut Whitten dan Bentley (2007, p. 247), dalam sebuah use case, actor adalah entitas yang memulai aktivitas dalam sebuah sistem yang menghasilkan nilai yang dapat diukur.
Gambar 2.4 Simbol actor. Sumber: Whitten & Bentley (2007, p. 247)
Ada empat tipe actor, yaitu: •
Primary Business Actor Actor utama yang berpengaruh secara langsung dalam pengeksekusian sebuah use case dengan cara menerima nilai yang dapat diukur. Actor ini dapat mengerjakan sebuah task atau tidak sama sekali. Contoh: Seorang karyawan menerima tagihan dari sebuah sistem bank setiap hari Jumat. Karyawan tidak memulai event, namun mendapatkan sesuatu yang mempunyai nilai.
•
Primary System Actor Actor utama yang mempunyai hubungan langsung dengan sistem dan dapat berinteraksi dengan primary business actor sebagai perantara. Contoh: Seorang customer menyewa mobil lewat website yang diurus oleh seorang admin yang menjadi perantara antara customer dan pemilik mobil.
•
External Server Actor Actor yang merespon permintaan dari use case.
18
Contoh: Biro kredit melakukan authorization saat pengisian kartu kredit. •
External Receiver Actor Bukan actor utama, namun menerima nilai terukur dari suatu use case. Contoh:
Sebuah
gudang
menerima
packing
order
untuk
mempersiapkan pengiriman barang. b. Relationship Whitten dan Bentley (2007, p. 248) mengambarkan relationship dalam sebuah use case diagram sebagai sebuah garis yang menghubungkan antara dua simbol yang jenis hubungannya tergantung dengan bagaimana garis tersebut digambar. • Association Relationship antara actor dan use case.
Gambar 2.5 Relationship association Sumber: Whitten & Bentley (2007, p. 248)
Dari gambar di atas, kita dapat melihat dua tipe garis yang menghubungkan actor dengan use case. Garis (1) yang memiliki ujung panah menunjukkan bahwa use case tersebut dapat langsung dilakukan oleh actor tersebut, sedangkan garis (2) yang tidak memiliki arah panah menunjukkan bahwa terjadi interaksi antara use case dengan external actor. • Extend Sebuah use case yang terdiri dari langkah-langkah yang dikutip dari use case yang lebih kompleks untuk menyederhanakan use case asli dan memperluas fungsionalitasnya. Relationship ini disebut extend, dan setiap gambar garis extend harus diberi label <<extend>>.
19
Gambar 2.6 Relationship extend. Sumber: Whitten & Bentley (2007, p. 249) • Uses Tidak jarang kita menemukan dua atau lebih use case yang melakukan fungsi identik. Sangat disarankan untuk mengekstrak langkah-langkah ini menjadi use case terpisah yang disebut abstract use case. Abscract use case mengurangi redundansi dan relationship antara abstract use case dengan use case yang menggunakannya disebut relationship uses. Mirip dengan extend, relationship uses juga harus dilabeli tag <<uses>> dalam garis penghubungnya.
Gambar 2.7 Relationship uses. Sumber: Whitten & Bentley (2007, p. 249) •
Depends on Hubungan yang menggambarkan ketergantungan antar use case. Jenis hubungan ini digambarkan dengan garis yang berpanah dimulai dari satu use case menunjuk ke use case tempat ia bergantung. Relationship ini disebut depends on. Menggunakan label
20
<<depends on>>.
Gambar 2.8 Relationship depends on. Sumber: Whitten & Bentley (2007, p. 250) •
Inheritance Ketika dua atau lebih actor dapat menginisiasikan use case yang sama, ada baiknya behavior ini diekstrapolasi menjadi ke aktor baru yang bersifat abstrak untuk mengurangi komunikasi yang redundan dalam sistem. Contohnya, seorang pengawas perpustakaan memegang kartu yang mengizinkannya untuk “mencari inventory perpustakaan”, “check-out buku”. Pengunjung perpustakaan dapat melakukan pencarian inventory perpustakaan, namun tidak dengan check-out buku. Dengan membuat actor abstrak yang menghubungkan pengawas dan pengunjung, misalnya dengan nama customer, yang akan diwariskan (inherit) ke pengawas dan pengunjung, kita hanya perlu memodelkan satu kali relationship yang menginisiasi fungsi “mencari inventory perpustakaan”. Hubungan ini disebut inheritance, yang digambarkan dengan garis dengan ujung panah.
21
Gambar 2.9 Relationship inheritance. Sumber: Whitten & Bentley (2007, p. 250)
2. Activity diagram Menurut Whitten dan Bentley (2007, p. 382), activity diagram menampilkan aktivitas dalam suatu sistem secara sekuensial. Dengan merujuk pada gambar di halaman selanjutnya, elemen-elemen yang menyusun sebuah activity diagram adalah sebagai berikut:
(1) Initial node – Lingkaran solid yang menunjukkan awal proses. (2) Actions – Lingkaran lonjong yang merepresentasikan tahap-tahap dalam sebuah proses. (3) Flow – Panah yang menunjukkan alur bergeraknya proses. (4) Decision – Bujursangkar dengan satu flow masuk dan dua flow keluar. Ada kondisi yang perlu dipenuhi oleh flow masuk untuk keluar lewat salah satu dari dua flow keluar tersebut. Biasanya berupa “ya” atau “tidak”. (5) Merge – Kebalikan dari decision di mana dua flow masuk ke bujursangkar dengan satu flow keluar. Menggabungkan dua flow yang terpecah oleh decision. (6) Fork – Garis hitam dengan satu flow masuk dan dua flow keluar, sehingga memungkinkan beberapa activity untuk berjalan secara bersamaan.
22
(7) Join – Kebalikan dari fork dimana dua flow masuk menghasilkan satu flow keluar. Menggabungkan hasil fork kembali menjadi satu flow. (8) Activity final – Lingkaran yang menunjukkan akhir dari sebuah proses.
Gambar 2.10 Activity diagram. Sumber: Whitten & Bentley (2007, p. 393)
23
Activity diagram pada Gambar 2.5 tidak menunjukkan siapa yang melakukan proses. Jika kita ingin membagi proses tersebut sesuai dengan pelakunya, kita dapat melakukan partisi yang disebut swimlane. Contohnya bisa dilihat pada gambar di bawah ini.
Gambar 2.11 Activity diagram dengan swimlane. Sumber: Whitten & Bentley (2007, p. 394)
24
Dari gambar di atas, kita dapat melihat bahwa proses tersebut dibagi sesuai dengan pelakunya, yakni member dan computer system. Ada dua elemen baru dalam gambar tersebut, yakni:
(9) Subactivity indicator – simbol yang menunjukkan aktivitas yang dipecah ke activity diagram lain. (10)
Connector – Huruf dalam lingkaran mempermudah dalam mengatur
kompleksitas. Flow yang masuk dalam connector akan keluar di connector lain dengan indikator huruf sama.
3. Class diagram Menurut
Whitten
dan
Bentley (2007,
p.
382),
class
diagram
mengambarkan object structure dari sebuah sistem. Class diagram menunjukkan bahwa sistem terkait tersusun dan terangkai oleh hubunganhubungan yang ada dalam class. Setiap class yang menyusun class diagram direpresentasikan dengan sebuah kotak yang terbagi atas 3 (tiga) bagian, yaitu: a. Class name Nama kelas merupakan identitas dari setiap kelas. b. Attribute Atribut kelas menunjukkan informasi yang dimiliki oleh suatu kelas. c. Operation Operasi kelas menunjukkan apa yang bisa dilakukan oleh suatu kelas.
Gambar 2.12 Contoh class. Sumber: (Whitten & Bentley, 2007, p. 406)
25
Gambar 2.13 Contoh class diagram. Sumber: Whitten & Bentley (2007, p. 406)
Ada beberapa istilah penting dalam class diagram yaitu: a. Visibility Visibility menentukan apakah atribut dari suatu class dapat diakses oleh class lainnya. Tabel 2.1 Tabel simbol visibility. Simbol
Deskripsi
-
Private Hanya bisa diakses oleh class yang mendefinisikannya.
#
Protected Dapat diakses oleh class yang mendefinisikannya dan turunan
26
dari class tersebut. +
Public Dapat diakses oleh semua class yang berhubungan dengan class terdefinisi.
b. Multiplicity Menentukan jumlah banyaknya objek sebuah class yang berelasi dengan objek lain pada class lain yang berasosiasi dengan class tersebut. Tabel 2.2 Tabel multiplicity. Simbol
Deskripsi
1
Hanya satu.
0 .. 1
Nol atau satu.
0 .. *
Nol atau lebih.
1 .. *
Satu atau lebih.
? .. ?
Spesifik.
c. Relationship Atau hubungan, seperti namanya, menunjukkan tipe hubungan antar class. Terdiri dari: •
Association Hubungan statik antara class yang digunakan untuk memberikan penjelasan tentang relasi dan multiplicity. Ada dua tipe, yaitu: -
Uni-directional Dua class berhubungan, tetapi hanya satu di antaranya yang memiliki peran
-
dalam dalam hubungan tersebut.
Bi-directional Kedua class terhubung dan masing-masing memiliki peran.
•
Aggregation Digunakan untuk mengambarkan hubungan di mana sebuah class adalah bagian dari class lain namun tidak sebaliknya. Contoh: Guru adalah bagian dari class Sekolah, tapi Sekolah bukanlah bagian dari class Guru.
27
•
Generalization/Specialization Teknik untuk mengelompokkan objek yang memiliki kesamaan dalam atributnya ke dalam sebuah supertype. Attribut dari supertype akan diwariskan ke subtype. Konsep inheritance berlaku sehingga subtype dapat memakai sifat-sifat supertype.
•
Dependency Menunjukkan apabila sebuah perubahan terjadi dengan satu class, class lain yang terhubung juga akan ikut berubah.
2.6 Android Android adalah sistem operasi yang didesain khususnya untuk smartphone dan komputer tablet yang dimiliki dan dikembangkan oleh Google. Secara sederhana, Meier (2010, p.4) menyimpulkan bahwa Android merupakan kombinasi dari tiga komponen, yaitu: 1. Sistem operasi gratis dan open-source untuk mobile device. 2. Development platform yang open-source untuk menciptakan aplikasi mobile. 3. Device, khususnya smartphone yang menjalankan Android sebagai sistem operasinya dan aplikasi yang dibuat untuknya. Menurut Meier (2010, p.3), Android menawarkan peluang baru untuk aplikasi mobile dengan menawarkan keterbukaan dalam development environment-nya. Dibangun di atas kernel Linux, akses perangkat keras dalam device Android diberikan untuk semua aplikasi lewat serangkaian library API dan interaksi aplikasi. Dalam Android, semua aplikasi memiliki derajat sama. Aplikasi third party (dari luar) dan native (bawaan) Android ditulis menggunakan API yang sama dan dieksekusi dalam run time yang sama. Fitur-fitur penting yang dimiliki Android antara lain : 1. Framework aplikasi yang mendukung penggantian komponen dan reuseable. 2. Dalvik Virtual Machine (DVM) dioptimalkan untuk perangkat mobile. 3. Integrated browser berdasarkan engine open source Webkit. 4. Grafis yang dioptimalkan dan didukung oleh perpustakaan grafis 2D, dan grafis 3Dberdasarkan spesifikasi OpenGL ES 1.0 (Opsional akselerasi hardware).
28
6. SQLite untuk penyimpanan data. 7. Media support yang didukung audio, video, gambar (MPEG4, h.264, MP3, AAC, AMR, JPG, PNG, GIF), dan GSM Telephone (tergantung hardware device). 8. Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware device). 9. Kamera, GPS, kompas, dan accelerometer (tergantung hardware device). 10. Lingkungan development yang lengkap dan kaya, termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk Eclipse IDE. Versi terbaru Android saat ini adalah Android 4.4 yang diberi codename KitKat. Versi perdananya adalah Android 1.1. Semenjak versi 1.5 yang bercodename Cupcake, setiap versi terbaru Android diberi codename makanan manis dengan huruf pertama yang berurutan. Android versi 1.6 diberi codename Donut, Android versi 2.0/2.1 Eclair, Android versi 2.2 Froyo (frozen yoghurt), Android versi 2.3 Gingerbread, Android versi 3.0 Honeycomb, Android versi 4.0 Ice Cream Sandwich dan Android versi 4.1 (Jelly Bean). Sejak tahun 2012, Android menjadi sistem operasi smartphone paling laris di dunia. Menurut data dari IDC1, Android menguasai 70,18% pangsa pasar smartphone di kuartal keempat tahun 2012.
Gambar 2.14 Diagram yang menunjukkan pangsa pasar smartphone dunia. Sumber: idc.com 2.7 Augmented Reality 2.7.1 Pengertian Augmented Reality Istilah augmented reality menurut Mullen (2011, p. 2) berarti kombinasi antara teknologi yang memungkinkan penggabungan antara objek yang
1
http://www.idc.com/getdoc.jsp?containerId=prUS23946013
29
dihasilkan oleh komputer dengan objek nyata yang ditampilkan dengan live video. Augmented reality dibedakan dengan virtual reality. Virtual reality 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.
Gambar 2.15 Contoh penerapan augmented reality dalam lingkungan supermarket. Sumber: augmentedpixels.com
30
2.7.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 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.
31
2.7.3 Jenis-jenis Augmented Reality Augmented reality dibagi menjadi dua berdasarkan metode penggunaannya. 1. Market 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.
Gambar 2.16 Augmented reality dengan marker. Sumber: arlabs.com
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.
32
Gambar 2.17 Augmented reality tanpa marker. Sumber: arlabs.com
2.7.4
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. d. Engineering Augmented reality dapat mensimulasikan perbaikan alat-alat berat atau mesin, misalnya mobil hingga pesawat.
33
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.8 Vuforia QCAR Vuforia QCAR adalah software development kit (SDK) yang digunakan untuk menciptakan aplikasi augmented reality. Vuforia QCAR menyediakan application programming interfaces (API) dengan bahasa C++, Java, ObjectiveC 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
34
keci berwarna kuning. Untuk contoh penilaian, dapat dilihat di gambar di bawah ini.
Gambar 2.18 Contoh gambar yang kurang baik untuk dijadikan target oleh Vuforia. Sumber: developer.vuforia.com
Gambar 2.18 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.19.
Gambar 2.19 Gambar bentuk sederhana yang dinilai oleh Vuforia. Sumber: developer.vuforia.com
Hasil penilaiain Vuforia ke gambar bentuk sederhana dapat dilihat pada Gambar 2.19. 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
35
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.20. Dapat dilihat bahwa gambar tersebut memiliki banyak tanda silang kuning karena jumlah feature yang banyak.
Gambar 2.20 Contoh gambar yang baik untuk dijadikan target oleh Vuforia. Sumber: developer.vuforia.com
2.9 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. Versi terbarunya adalah Unity 4.3.3 yang dirilis pada Januari 2014. 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 C++, Javascript, C#, atau Boo.
2.10 XML XML adalah singkatan dari Extensible Markup Language. XML adalah serangkaian peraturan untuk mendefinisikan tag semantik yang memecah dokumen menjadi bagian-bagian terpisah. Menurut Fawcett, Ayers, & Quin
36
(2012, p. 4), XML memiliki dua fungsi, yaitu merepresentasikan low level data, misalnya file konfigurasi dan menambahkan metadata ke dokumen, misalnya di saat kita ingin menandai dokumen dengan tulisan miring (italic) atau cetak tebal (bold). Perlu diketahui XML bukan markup language selayaknya HTML (Hypertext Markup Language). XML adalah sebuah meta-language (bahasa yang digunakan untuk menjelaskan bahasa lain) yang memungkinkan pengembang membuat sendiri tag yang menyediakan fungsi yang tidak tersedia dalam HTML.
Contoh XML: <note>
Budi Moyes Reminder Jangan lupa kerjakan skripsi!
2.11 C# C# (baca: C Sharp) adalah bahasa pemrograman yang pertama diumumkan oleh Microsoft pada tahun 2000. Menurut Deitel (2012, p. 12), C# yang memiliki akar di C, C++ dan Java mempunyai kapabilitas layaknya Java dan cocok untuk pengembangan aplikasi berskala besar, misalnya enterprise app, aplikasi web-based dan cloud-based app. C# adalah bahasa berbasis object oriented dan memiliki akses ke .NET Framework Class Library – kumpulan prebuilt class yang powerful dan memungkinkan pengerjaan aplikasi dengan lebih cepat. C# juga event driven. Pengembang dapat membuat aplikasi yang bereaksi dengan event seperti mouse click, keystroke dan lain-lain. Hal ini juga berlaku untuk event di smartphone, misalnya swipe, touch, tap dan lain-lain.