BAB 2 TINJAUAN PUSTAKA
2.1 Teori Umum Berikut ini adalah teori-teori umum yang dipakai dalam pengembangan aplikasi ini. 2.1.1
Rekayasa Piranti Lunak Menurut Pressman (2010:13), rekayasa piranti lunak adalah suatu proses pembentukan dan penggunaan prinsip-prinsip rekayasa untuk mendapatkan sebuah software yang secara ekonomis dapat diandalkan dan dapat diimplementasikan secara efisien pada sebuah mesin. 2.1.1.1 Kategori Software Menurut Pressman (2010:7), terdapat tujuh macam kategori software, yaitu: a. System software Merupakan
software
yang
memiliki
fungsi
untuk
menyediakan layanan bagi software lainnya. Contoh: compilers, editors, dan file management. b. Application software Merupakan software yang berfungsi untuk menyelesaikan masalah bisnis yang spesifik. Contoh: point-of-sales transaction processing. c. Engineering/scientific software Merupakan software yang membantu para ilmuwan untuk menyelesaikan masalah pada bidang sains. Contoh: astronomy application dan volcanology application.
9
10 d. Embedded software Merupakan
software
yang
ditanamkan
pada
suatu
perangkat sehingga dapat digunakan secara langsung oleh enduser. Contoh: software pada microwave. e. Product-line software Software yang didesain dengan menyediakan kemampuan spesifik untuk digunakan oleh banyak customer yang berbeda. Contoh: inventory control products. f. Web-application Merupakan jenis software yang terdapat pada sebuah web dan memiliki fungsi tertentu, misalnya sebagai link, fungsi perhitungan, bahkan berhubungan dengan database sebuah perusahaan. Contoh: aplikasi e-commerce. g. Artificial intelligence software Merupakan software yang didesain untuk menyelesaikan masalah yang kompleks yang tidak dapat diselesaikan dengan analisa sederhana. Contoh: pattern recognition, robotics, dan expert systems. 2.1.1.2 Agile Development Agile development merupakan suatu cara yang digunakan untuk mengembangkan software dimana software developer diberikan kebebasan untuk memilih metode yang tepat sehingga menghasilkan software yang berkualitas (Pressman, 2010:67). 2.1.1.2.1 Extreme Programming (XP) Metode XP diperkenalkan oleh Kent Beck pada tahun 1999. XP merupakan jenis Agile Process Model yang paling banyak dipakai saat ini. XP mengijinkan customer ambil bagian dalam proses pengembangan software sehingga hasilnya sesuai dengan keinginan
11 customer. Selain itu, XP menawarkan berbagai teknik terbaik yang membuat software developer sigap terhadap perubahan requirement yang datang dengan tiba-tiba (Pressman, 2010:72).
Gambar 2. 1 Tahapan pada XP (Sumber: Pressman, Software Engineering: a practitioners approach, 2010)
Terdapat 4 (empat) tahapan pada XP, yaitu: a. Planning Pada tahap ini disusun sebuah stories yang menggambarkan fitur dan fungsi dari software yang akan dikembangkan. Customer menyusun tingkatan stories tersebut berdasarkan prioritas dan pihak software developer diperlukan
untuk
memperkirakan mengembangkan
waktu
yang
software-nya.
Misalkan terdapat story yang memerlukan waktu lebih dari tiga minggu untuk diselesaikan, maka pihak customer diminta untuk menyederhanakan stories tersebut. Selain itu, stories baru dapat muncul kapan saja (Pressman, 2010:73).
12
b. Design Proses desain pada XP mengikuti prinsip Keep It Simple
(KIS).
Desain
harus
sederhana
karena
mengikuti stories yang telah dibuat pada tahapan sebelumnya. Tahap desain dapat terjadi sebelum dan sesudah pengkodean program. Hal ini dapat terjadi karena adanya proses refactoring yang terjadi pada tahapan berikutnya (Pressman, 2010:75).
c. Coding Setelah dua tahap sebelumnya selesai, software developer
sebaiknya
tidak
langsung
melakukan
pengkodean, namun melakukan pengujian pada setiap unit yang terdapat pada stories. Kemudian software developer sebaiknya fokus pada apa yang akan dibuat untuk melewati tes tersebut. Setelah itu, tahap pengkodean segera dimulai dan dites agar segera mendapatkan umpan balik. Pada tahap ini juga terdapat proses refactoring yang sangat berguna dalam pengembangan
software.
Refactoring
sendiri
merupakan proses penyederhanaan algoritma maupun struktur program tanpa mengubah hasil akhirnya. Misalkan dengan menggunakan perulangan yang meningkatkan
performa
dari
software
tersebut
(Pressman, 2010:76).
d. Testing Pada tahap ini, dilakukan suatu customer tests atau acceptance tests untuk menguji program yang telah selesai. Beberapa acceptance tests dipilih
13 berdasarkan
sasaran
pengguna
dari
customer
(Pressman, 2010:76). 2.1.2 Teori Mobile Pembuatan aplikasi mobile tidak sama dengan pembuatan web atau aplikasi pada desktop computer sehingga merupakan suatu kebutuhan bagi developer untuk memahami perbedaannya. Di bawah ini terdapat beberapa hal mengenai teori mobile. 2.1.2.1 Mobile Operating Systems Ketika sebuah telepon genggam dapat menjalankan sebuah sistem operasi (Operating System), telepon genggam itu dapat disebut smartphone (Fling, 2009:22). Operating System biasanya memiliki core services atau toolkit yang memungkinkan setiap aplikasinya dapat saling terhubung dan melakukan share data. Telepon genggam yang tidak memiliki Operating System biasanya membatasi aplikasinya untuk berkomunikasi ataupun yang lainnya. Meskipun tidak semua telepon genggam memiliki Operating Systems, di bawah ini terdapat beberapa Operating Systems (OS) yang cukup umum digunakan: a. Symbian Symbian OS ini merupakan jenis open source OS yang dirancang untuk telepon genggam dengan associated libraries, user interface frameworks, dan common tools. b. Windows Mobile Windows Mobile ini adalah jenis mobile OS yang berjalan pada platform Windows Mobile. c. Palm OS Palm OS adalah jenis Operating system yang digunakan dalam Palm’s lower-end Centro line. d. Linux
14 Linux merupakan jenis OS yang open source. e. Mac OS X Sebuah versi khusus dari Mac OS X merupakan jenis Operating System yang digunakan pada iPhone dan iPod touch dari Apple. f. Android Android menjalankan jenis OS open source sendiri, Android ini dapat disesuaikan dengan operators dan device manufactures. 2.1.2.2 Sepuluh Prinsip dari Mobile Interface Design Meskipun sering dikatakan sebagai computing devices, smartphone dan desktop computer sangat berbeda dari berbagai hal: layar yang besar berbanding dengan layar kecil, bandwidth yang rendah dan tinggi, dan sebagainya. Dengan berbagai perbedaan yang ada antara mobile dan desktop computing devices, tidak aneh jika membuat desain pada mobile sangat berbeda jika dibandingkan dengan desain bagi desktop. Dalam membuat desain interface pada mobile terdapat 10 prinsip (Stark, 2012), yaitu: 1. Mobile Mindset Karena perbedaan yang ada diantara mobile dan desktop, maka sangat penting bagi developer untuk memiliki mobile mindset sebelum memulai segalanya. a. Be focused: Berlebihan itu tidak baik, b. Be unique: Ketahuilah hal apa yang membuat aplikasi yang dikembangkan berbeda dengan yang lainnya dan perkuat hal tersebut. c. Be charming: Mobile devices digunakan secara personal. Aplikasi
yang
user
friendly,
dapat
menyenangkan akan menarik hati pengguna.
diandalkan
dan
15 d. Be considerate: Developer aplikasi terlalu sering berfokus pada apa yang menyenangkan untuk dikembangkan, model pemikiran mereka terhadap aplikasi, atau tujuan bisnis personal mereka. Hal-hal ini merupakan hal yang baik untuk memulai, namun developer harus menempatkan diri dalam sisi pengguna agar dapat menciptakan suatu aplikasi yang baik. 2. Mobile Contexts Untuk mulai menempatkan diri dalam sisi pengguna, ada tiga konteks mobile utama yang perlu diperhatikan: a. Bored: Ada banyak pengguna yang menggunakan smartphone mereka ketika berada pada sofa rumah mereka. Dalam konteks ini, pengalaman yang menyenangkan dan terbenam dalam aplikasi akan mengarahkan pengguna pada waktu penggunaan aplikasi yang lebih lama. Contoh: Facebook, Twitter, Angry Birds. b. Busy: Pengguna sering sekali berada dalam keadaan yang sangat sibuk dan sangat penting, sehingga membuat mereka hanya dapat bekerja dengan satu tangan ditengah kesibukan tersebut. Dalam keadaan tersebut, kebanyakan pengguna akan berharap dapat melakukan task kecil dengan simple. Misalnya pengguna sedang berada di airport dan berada dalam kondisi mengejar keberangkatan. Contoh: Email, Calendar, Banking. c. Lost: Pengguna sedang berada dalam lokasi yang tidak familiar, tersesat namun tertarik dengan sesuatu yang tidak diketahuinya dalam area tersebut. Dalam konteks ini, dengan keterbatasan konektivitas, dan daya tahan battery merupakan hal yang harus menjadi pertimbangan besar, sehingga developer harus menyediakan beberapa aplikasi offline support, hemat battery atau mendukung geolocation. Contoh: Maps, Foursquare.
16 3. Global Guidelines Aplikasi yang berbeda pasti diikuti dengan pendekatan, desain dan teknik yang berbeda pula. Karena smartphone merupakan pocket-sized touch screen device ada beberapa global guidelines yang harus diperhatikan: a. Responsiveness: Kemampuan aplikasi dalam menanggapi perilaku pengguna merupakan hal yang sangat penting untuk diperhatikan. Jika pengguna melakukan sesuatu dalam aplikasi, misalnya menekan button update database sehingga proses update berjalan, aplikasi harus menunjukkan bahwa operasi
ini
memang
sedang
benar-benar
dijalankan.
Responsiveness tidak sama dengan speed. Tidak apa-apa jika operasi membutuhkan waktu, pastikan saja bahwa pengguna dapat mengetahui bahwa operasi sedang berjalan. b. Polish: Karena kebersamaan yang cukup intens antara pengguna dan smartphone, memperhatikan detil-detil kecil dalam aplikasi adalah baik. Sebut saja mesin dalam sebuah mobil. Mesin tersebut mungkin saja memiliki body style yang baik, tapi jika ada bunyi bising disaat perjalanan, hal ini akan mengurangi tingkat kepuasan pengguna terhadap mobil yang digunakannya. c. Thumbs: Jempol sangat berpengaruh dalam penggunaan interface touchscreen. Karena itu, dalam menyusun interface, perlu
untuk
mempertimbangkan
keberadaan
jempol.
Walaupun pengguna memiliki banyak jari, kecenderungan pengetikan adalah dengan menggunakan jempol. d. Targets: Perhatikan penempatan target yang ada. Misalnya penempatan back button bersebelahan dengan prev button adalah salah satu contoh yang tidak baik. e. Content:
Revolusi
dari
touch
interfaces
adalah
memungkinkan pengguna untuk dapat berinteraksi langsung
17 dengan
content
yang
ada
dalam
aplikasi.
Dengan
menghilangkan penggunaan mouse atau trackpad akan memudahkan pengguna dalam pengoperasiannya. Manfaatkan interface yang ada dengan baik, dengan meminimalkan chrome interface (buttons, tab bars, checkboxes, sliders, etc) sedapat mungkin dan tempatkan content tepat di depan, atau dipusat interface. f. Controls: Bila melakukan penambahan controls, cobalah untuk menempatkannya di bagian bawah screen, sehingga dapat dilakukan pemantauan content yang ada dengan baik. g. Scrolling: Hindari scrolling. Memang layar scrolling terkadang diperlukan, tetapi
ada baiknya jika dihindari.
Memiliki layar non-scroll akan lebih memudahkan pengguna. 4. Navigation Models Ada banyak model navigasi baru untuk aplikasi mobile. Namun jika developer lebih tertarik untuk menggunakan navigasi yang telah umum dipakai, pastikan untuk memilih salah satu navigasi yang membuat aplikasi semakin baik. Contoh: Tab bar, Drill down. 5. User Input Mengetik terkadang tetap tidak disukai oleh pengguna walaupun pengguna menggunakan device yang terbaik, jadi developer harus dapat membuat pengguna menggunakan aplikasi dengan lebih mudah. 6. Gestures Salah satu aspek yang iconic dari touch interface adalah support gesture-based user interaction. Dengan adanya hal ini, ada beberapa hal yang perlu diperhatikan sebagai berikut: a. Invisible: Gestures tidak terlihat, sehingga harus dipikirkan sebuah cara agar pengguna sadar akan adanya gestures.
18 b. Two hands: Multi-touch gestures membutuhkan kedua tangan pengguna agar dapat digunakan dengan baik. c. Nice to have: Dalam beberapa kondisi, gestures merupakan hal baik untuk dimiliki. d. No
replacement: Belum
ada kosakata umum
untuk
gestures.Sehingga terlalu cepat pada beberapa aplikasi dalam meniadakan visible controls. 7. Orientation Orientasi yang paling sering digunakan adalah portrait, sehingga utamakan orientasi dalam bentuk portrait pada aplikasi. Jika aplikasi yang dikerjakan adalah aplikasi yang mengharuskan pengguna melakukan banyak pengetikkan, aplikasi yang dibuat harus mendukung orientasi landscape sehingga pengguna dapat mengakses keyboard yang lebih besar. 8. Communications Untuk
memperlancar
komunikasi
pengguna
dengan
aplikasi, ada beberapa hal yang harus diperhatikan: a. Menyediakan umpan balik: Penyediaan umpan balik instan untuk setiap interaksi. Jika tidak disediakan, pengguna dapat berpikir bahwa aplikasi tidak berjalan dengan baik. Umpan balik yang diberikan dapat berupa vibrate phone, atau secara visual dengan highliting tap button. b. Konfirmasi: Jika developer harus menanyakan konfirmasi dari pengguna pada setiap action, akan lebih baik jika ditampilkan modal confirmation dialog. 9. Launching Launch screen sebaiknya tidak menampilkan hal-hal yang bersifat interaktif, seperti buttons, links, icons, content. 10. First Impression Ada 2 (dua) bagian dalam First Impressions, yaitu:
19 a. Your icon: Icon dari aplikasi yang dikembangkan harus bersaing untuk mendapatkan perhatian dari lautan icon aplikasi lainnya. Oleh karena itu, pikirkanlah icon lebih ke sudut pandang bisnis daripada sebuah karya seni belaka. Sederhananya, tunjukkan melalui icon apa yang dapat dilakukan oleh aplikasi. Gunakan gambaran yang jelas dan minimalkan penggunaan teks. Sebuah icon yang baik menawarkan aplikasi yang baik pula. Jadi memberikan alokasi waktu yang baik dan uang untuk membuat icon dengan benar, pantas untuk dilakukan. b. First launch: Peluncuran pertama merupakan saat yang penting. Jika pengguna baru merasa bingung ketika mencoba aplikasi yang ada, pengguna tersebut tidak akan ragu untuk menyingkirkan aplikasi yang ada. Jika dalam aplikasi
terdapat
beragam
fungsi
yang
kompleks,
sebaiknya disediakan suatu “tips dan trik”, atau mungkin dapat diberikan orientasi lain dari fungsi tersebut. Namun, dengan adanya hal ini tidak berarti pengganti atau alasan untuk membuat desain aplikasi yang kurang baik.
20 2.1.2.3 Android Architecture
Gambar 2. 2 Arsitektur Sistem Android (Sumber: Burnett, Hello, Android: Introducing Google’s Mobile Development Platform, 2012)
2.1.3 Interaksi Manusia dan Komputer Ada beberapa hal yang harus diketahui developer lebih dalam tentang interaksi antara manusia dan komputer. 2.1.3.1 Pengertian Interaksi Manusia dan Komputer Interaksi manusia dan komputer adalah gabungan dari metode yang diterapkan dari pengalaman psikologi dengan menggunakan development tool dari ilmu komputer(Shneiderman, 2010:22).
21 2.1.3.2 Delapan Aturan Emas (Eight Golden Rules) Dalam mendesain user interface yang baik, Ben Shneiderman dan Catherine Plaisant (2010:88) memberikan delapan aturan yang dapat dijadikan pedoman: 1. Konsistensi Dalam situasi apapun urutan tindakannya harus konsisten. Selain itu warna, font, dan tata letak juga harus konsisten. 2. Memenuhi kebutuhan-kebutuhan umum Mengenali kebutuhan pengguna yang mempunyai beragam desain, mulai dari yang pemula sampai yang sudah ahli. Contohnya
seperti
meningkatkan
pengguna
kecepatan
yang
interaksi,
sudah sehingga
ahli
untuk
diperlukan
singkatan ataupun tombol fungsi. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan dari pengguna harus ada umpan balik,
untuk tindakan yang sering dan tindakan yang tidak
penting harus ada umpan balik yang sederhana, dan untuk setiap tindakan yang penting harus ada umpan balik yang substansial. 4. Mendesain dialog untuk menghasilkan suatu penutupan Urutan tindakan harus diorganisir pada suatu kelompok dengan bagian awal, tengah, dan akhir serta memberikan umpan balik yang informatif pada setiap tindakan yang dilakukan oleh pengguna. 5. Mencegah terjadinya kesalahan Sistem sebaiknya didesain sebagaimana mungkin untuk menghindari kesalahan fatal yang dilakukan pengguna. Jika terjadi kesalahan, sistem dapat memberikan penanganan yang sederhana dan sistem dapat dengan sederhana mendeteksi kesalahan. 6. Mudah kembali ke tindakan sebelumnya
22 Sistem dapat kembali ke tindakan sebelumnya. Misalnya pengguna dapat membatalkan tindakan yang sudah dilakukannya sehingga pengguna tidak perlu takut untuk mengeksplorasi pilihan-pilihan yang tersedia. 7. Mendukung tempat pengendali internal (internal locus of control) Sistem harus dapat mendukung penggunanya dalam hal mengontrol sistem itu sendiri sehingga pengguna dapat merasakan bahwa mereka yang mengontrol sistem itu. Tidak merasa bahwa mereka yang dikontrol oleh sistem itu, contohnya sistem itu sendiri harus dapat merespon dengan cepat permintaan pengguna. 8. Mengurangi ingatan jangka pendek Keterbatasan tampilan
yang
ingatan
pada
sederhana,
manusia
penyatuan
membutuhkan
banyak
tampilan,
pengurangan frekuensi window motion, dan memberikan cukup waktu untuk pelatihan. 2.1.3.3
Lima Faktor Manusia Terukur Menurut
Shneiderman
dan
Plaisant
(2010:32),
untuk
merancang sebuah sistem yang membuat pengguna lebih nyaman harus memperhatikan 5 (lima) faktor berikut ini: 1. Time to learn Berapa lama waktu yang dibutuhkan oleh seorang pengguna dalam belajar menggunakan aksi-aksi yang ada pada sistem dan relevan untuk mengatur suatu pekerjaan. 2. Speed of perfomance Berapa lama waktu yang dibutuhkan untuk melaksanakan atau menyelesaikan suatu tugas. 3. Rate of errors by users
23 Berapa banyak dan apa saja jenis-jenis kesalahan yang dilakukan
oleh
pengguna
dalam
melaksanakan
atau
menyelesaikan suatu tugas. 4. Retention over time Bagaimana pengguna dapat mempertahankan kemampuan pengetahuannya setelah beberapa jam kemudian, beberapa hari kemudian, ataupun beberapa minggu kemudian. 5. Subjective satisfaction Berapa banyak tingkat kepuasan pengguna, tertarik dengan aspek-aspek antarmuka yang terdapat dalam sistem yang sudah dikembangkan. 2.1.4 Unified Modelling Language (UML) Menurut Whitten dan Bentley (2007:65), Unified Modeling Language (UML) adalah suatu kumpulan beberapa konsep atau aturan pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem software yang berkaitan dengan object. UML
dapat
digunakan
untuk
menggambarkan,
menentukan,
membangun dan mendokumentasikan sesuatu dari suatu sistem perangkat lunak. Ibaratnya, seperti seorang arsitek yang mendesain suatu bangunan untuk melakukan konstruksi bangunan, arsitek perangkat lunak juga dapat membuat diagram UML untuk membantu developer perangkat lunak dalam membangun perangkat lunak.
2.1.4.1 Class Diagram Class Diagram yaitu gambaran tentang object-object atau struktur yang menyusun sebuah sistem dan penggambaran hubungan antar kelas-kelas yang ada (Whitten, 2007:648). Sebuah class diagram tersusun atas tiga bagian, yaitu: 1.
Nama Kelas
24 Digunakan untuk membedakan antara kelas yang satu dengan kelas lainnya. 2.
Atribut Kelas Digunakan untuk menyimpan suatu state.
3.
Operasi Kelas Menyimpan operasi-operasi yang digunakan.
Gambar 2. 3 Class dan Strukturnya
2.1.4.1.1 Visibility Visibility berkaitan dengan cara akses sebuah object. Terdapat 3 (tiga) jenis visibility, yaitu: 1. Private (-) Tidak dapat diakses oleh kelas yang tidak bersangkutan. 2. Protected (#) Hanya
dapat
diakses
oleh
kelas
yang
bersangkutan dan subkelas atau turunannya. 3. Public (+) Dapat diakses oleh kelas manapun.
2.1.4.1.2 Association Penggambaran hubungan yang terjadi antar kelas, baik
hubungan
saling
ketergantungan
atau
ketidakbergantungan. Ketika terjadi suatu perubahan
25 dalam sebuah kelas, melalui association, dapat dilihat apakah perubahan tersebut berpengaruh pada kelas yang lain atau tidak. Ada dua jenis penggambaran hubungan didalam asosiasi: a. Uni-directional Dua kelas saling berhubungan, namun hanya salah satu kelas yang berperan pada hubungan tersebut, kelas yang lainnya hanya sebagai penyedia saja. b. Bidirectional Berbeda
dengan
uni-directional,
dalam
bidirectional, kedua kelas yang saling berhubungan, sama-sama memiliki peran tersendiri.
2.1.4.1.3 Multiplicity Multiplicity menggambarkan banyaknya kejadian minimum dan maksimum dari satu object untuk satu kejadian dari object yang berhubungan.
Tabel 2. 1 Tabel deskripsi Multiplicity Multiplicity
Makna
1
Tepat satu
0..1
Nol atau satu
0..*
Nol atau lebih
1..*
Satu atau lebih
7..9
Angka spesifik
26 2.1.4.1.4 Aggregation Aggregation dipakai untuk menggambarkan suatu kelas yang merupakan bagian dari kelas lain. Bila suatu kelas merupakan bagian dari kelas lain, belum tentu keadaan dapat berlaku sebaliknya. Selain agregasi, terdapat komposisi, komposisi menunjukan ketergantungan antar kelas yang lebih erat. Misalnya: kelas A, tidak dapat dijalankan jika tidak ada kelas B.
2.1.4.1.5 Generalisasi Generalisasi
dipakai
untuk
menggambarkan
hubungan yang terjadi antara supertype (superclass) dan subtype (subclass). Superclass adalah bentuk umum dari subclass, sedangkan subclass adalah bentuk spesifik dari superclass. Superclass disebut juga kelas abstract atau parent dan subclass disebut sebagai child atau concrete. Jika terjadi generalisasi, dapat disimpulkan bahwa di dalam class diagram terdapat inheritance.
Gambar 2. 4 Contoh Generalisasi
27 2.1.4.2 Use Case Diagram
Diagram Use case bertujuan untuk memberikan gambaran secara umum mengenai keseluruhan fungsionalitas suatu sistem dalam bentuk aktor, aktivitas, dan ketergantungannya. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem yang ada(Whitten, 2007:246). Blok-blok diagram yang digunakan antara lain: 1. Use case Menggambarkan suatu urutan tindakan untuk aktor. Digambarkan dalam bentuk elips.
Gambar 2. 5 Simbol Use Case 2. Aktor Aktor disini adalah orang, organisasi, atau sistem eksternal yang berperan dalam satu atau lebih interaksi pada sistem. Ada 4 (empat) macam aktor: a. Primary Business Actor Aktor yang menerima keuntungan dari pelaksanaan use case dengan menerima suatu nilai yang terukur dan terobservasi. Ada kemungkinan bahwa Primary Business Actor tidak menginisiasi suatu kejadian bisnis. Misalnya seorang karyawan menerima gaji dari perusahaan tanpa ikut terlibat dalam proses keuangan yang ada. b. Primary System Actor Aktor yang langsung berhadapan dengan sistem untuk menginisiasi atau memicu suatu kegiatan pada sistem. c. External Server Actor Aktor yang melayani kebutuhan pengguna use case.
28
d. External Receiving Actor Aktor yang bukan merupakan pelaku utama, tapi menerima nilai yang terukur dari use case.
Gambar 2. 6 Simbol Aktor
3. Boundary Digunakan untuk menggambarkan ruang lingkup sistem. Semua yang ada didalam kotak, mewakili fungsi yang ada di dalam ruang lingkup sistem.
Gambar 2. 7 Simbol Boundary
29
Gambar 2. 8 Contoh Use case Diagram (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
2.1.4.2.1 Association Merepresentasikan tentang hubungan antara aktor dan sebuah use case. Jika digambarkan dalam bentuk anak panah yang berasal dari aktor, maka aktor tersebut merupakan penggerak terjadinya use case tersebut. Sedangkan bila tanpa anak panah, hanya menandakan adanya interaksi antara use case dengan penerima.
Gambar 2. 9 Contoh Asosiasi pada Use case (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
30
2.1.4.2.2 Extends Digunakan untuk membuat use case menjadi lebih sederhana
dan
lebih
mudah
dipahami.
Dengan
menggunakan extends, maka akan dihasilkan sebuah use case baru yang dinamakan extension use case.
Gambar 2. 10 Extends pada Use case (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
2.1.4.2.3 Includes (Uses) Includes digunakan ketika di dalam use case diagram terdapat dua langkah atau lebih yang mirip. Saat includes digunakan, maka akan terbentuk sebuah use case baru yang disebut abstract use case. Abstract use case ini, berfungsi untuk mengurangi redundansi.
31
Gambar 2. 11 Includes pada Use case (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
2.1.4.2.4 Depends On Depends On digunakan ketika suatu use case tidak dapat melakukan eksekusi karena sebuah proses use case tertentu belum dilaksanakan.
Gambar 2. 12 Depends On pada Use case (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
32 2.1.4.2.5 Inheritance Adanya sebuah aktor abstrak yang berfungsi untuk menggambarkan hubungan antara dua atau lebih aktor. Dengan adanya aktor abstrak, diharapkan rancangan diagram akan menjadi semakin sederhana.
Gambar 2. 13 Inheritance pada Use case (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
2.1.4.3 Sequence Diagram Representasi dari perilaku (behavior) dalam UML, disebut sequence diagram. Sequence menggambarkan interaksi antar object di dalam dan di sekitar sistem. Dalam Sequence diagram dapat terlihat penyebab-penyebab transisi dari object ke object. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Masing-masing object yang ada, termasuk aktor, memiliki lifeline vertikal sendiri.
33 Message digambarkan dalam bentuk garis berpanah dari satu object ke object lainnya. Activation bar menunjukkan lamanya eksekusi sebuah
proses, biasanya diawali dengan diterimanya
sebuah message (Whitten, 2007:394).
Gambar 2. 14 Contoh Sequence Diagram (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
Komponen-komponen yang terdapat pada sequence Diagram, seperti yang digambarkan pada gambar 2.14 adalah: 1.
Aktor Digunakan untuk mewakili user yang berinteraksi dengan interface.
34 2.
Object Gambar yang dipakai untuk mewakili kelas-kelas yang berasal dari class diagram.
3.
Lifeline Mengindikasikan keberadaan sebuah object/aktor dalam suatu basis waktu.
4.
Activation Kotak segi empat yang digambar pada sebuah lifeline. Mengindikasikan sebuah object yang akan melakukan sebuah aksi.
5.
Message(Input) Mengindikasikan komunikasi antara object-object yang ada.
6.
Message (Output) Jawaban atas pesan awal yang dikirimkan oleh suatu object.
2.1.4.4 Use Case Narrative Use Case Narrative adalah deskripsi tekstual tentang kejadian bisnis dan bagaimana seorang aktor berinteraksi dengan system yang ada untuk menyelesaikan tugas (Whitten, 2007:385).
2.1.4.5 Activity Diagram Digunakan untuk menggambarkan alur dari sebuah proses bisnis, proses-proses dalam use case, dan object (Whitten, 2007:390).
35
Gambar 2. 15 Contoh Activity Diagram (Sumber: Whitten & Bentley, System Analysis and Design Methods, 2007)
Elemen yang digunakan pada suatu activity diagram, seperti yang digambarkan pada gambar 2.15 adalah:: 1. Initial state Menandakan dimulainya sebuah proses. 2. Action Digunakan untuk menunjukkan sebuah aktivitas.
36 3. Flow Menunjukkan jalur antar aktivitas, dari sebuah aktivitas ke aktivitas lainnya. 4. Decision Menunjukkan keadaan kondisional ketika harus memilih aliran aktivitas.. 5. Merge Menunjukkan keadaan kondisional yang menggabungkan alur aktivitas yang telah terpisahkan ketika bertemu dengan decision. 6. Fork Adanya 2 (dua) atau lebih actions yang berlangsung secara bersamaan. 7. Join Proses paralel yang ada sudah berakhir. 8. Final state Menandakan bahwa proses telah selesai dilaksanakan.
2.1.5 Database Menurut Connoly dan Begg (2010:65), database adalah sekumpulan data yang saling terhubung secara logikal yang didesain dalam rangka memenuhi kebutuhan informasi pada suatu organisasi. Sebuah database memiliki penjelasan terstruktur dari jenis fakta yang tersimpan didalamnya. Tujuan utama dari pengelolaan database adalah agar pengguna dapat memperoleh data yang dicari dengan mudah dan cepat. Pemanfaatan suatu database dapat dilakukan untuk memenuhi sejumlah tujuan seperti berikut ini: 1. Kecepatan dan kemudahan 2. Efisiensi ruang penyimpanan 3. Keakuratan 4. Ketersediaan
37 5. Kelengkapan 6. Keamanan 7. Kebersamaan pemakaian 2.1.6 Web Service Web Services adalah sebuah aplikasi yang mendistribusikan komponen yang memungkinkan untuk dapat digunakan dan dijalankan pada perangkatperangkat yang berbeda (Kalin, 2009:1). Web services dapat dibagikan menjadi dua kelompok, yaitu: a. Simple Object Access Protocol (SOAP) sistem dimana service client memberikan permintaan ke server melalui SOAP libraries lalu SOAP libraries pada server akan memberikan suatu respons.
Gambar 2. 16 Arsitektur SOAP berbasis web (Sumber: Martin Kalin, Java Web Service: Up and Running, 2009) Arsitektur dari pesan SOAP ini adalah pengiriman satu arah dari pengirim ke penerima, oleh karena itu pola pertukaran pesan (Message Exchange pattern) untuk SOAP adalah salah satu arah. Meskipun pesan SOAP ditujukan kepada penerima utama, pesan SOAP dapat dikirim melalui perantara dan perantara tersebut dapat memeriksa dan memanipulasi pesan SOAP sebelum masuk kepada penerima utama.
Gambar 2. 17 Pesan SOAP Sender, Intermediary, Receiver
38 (Sumber: Martin Kalin, Java Web Service: Up and Running, 2009)
b. Representational State Transfer (REST) berbeda dengan SOAP, SOAP adalah protocol pesan sedangkan REST sistem teks, grafis, audio, dan media lainnya yang disimpan diseluruh jaringan yang ada dan saling terhubung melalui hyperlink . Sistem REST menggunakan sistem Create, Read, Update, Delete (CRUD). Namun istilah yang digunakan dalam
REST
bukanlah CRUD, yang digunakan adalah Get, Post, Put dan Delete. Dimana Get untuk Create, Post untuk Read, Put untuk Update, dan Delete.
Gambar 2.17 RESTful System
Gambar 2. 18 Sistem REST (Sumber: Martin Kalin, Java Web Service: Up and Running, 2009)
Sistem REST digunakan ketika client ada melakukan permintaan kepada server dan server akan merespons permintaan dari client. Contohnya jika client melakukan login pada mobile maka client akan menekan tombol login otomatis data dikirim kepada server dalam bentuk file xml lalu server akan melakukan pengecekan terhadap database yang tersimpan, jika sudah selesai maka server akan merespons dan mengirim data xml yang diminta oleh client. Fungsi REST disini adalah mengubah data yang
39 berbentuk objek hingga menjadi xml agar dapat dikirim ke server. Pada saat server merespon kembali maka file xml yang diterima oleh mobile akan diubah lagi menjadi objek (Martin Kalin, 2009:121). 2.2 Teori Khusus Berikut ini adalah teori-teori khusus yang digunakan dalam pengembangan aplikasi. 2.2.1 Augmented Reality Menurut Suryawinata (2010:759), Augmented Reality (AR) adalah kombinasi antara dunia maya (virtual) dan dunia nyata (real) yang dibuat oleh komputer. Objek virtual dapat berupa teks, animasi, model 3D atau video yang digabungkan dengan lingkungan sebenarnya sehingga pengguna dapat merasakan objek virtual berada dilingkungannya. AR adalah cara baru dan menyenangkan dimana manusia berinteraksi dengan komputer, karena dapat membawa objek virtual ke lingkungan pengguna, memberikan pengalaman visualisasi yang alami dan menyenangkan. Sistem ini berbeda dengan Virtual Reality (VR), yang sepenuhnya merupakan virtual environment. Dengan bantuan teknologi augmented reality, lingkungan nyata di sekitar kita akan dapat berinteraksi dalam bentuk digital (virtual). Informasi tentang objek dan lingkungan di sekitar kita akan dapat ditambahkan kedalam sistem augmented reality yang kemudian informasi tersebut ditampilkan diatas layer dunia nyata secara real-time seolah-olah informasi tersebut adalah nyata. Augmented Reality (AR) 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.
40 2.2.2 Eclipse Eclipse merupakan sebuah aplikasi open source dan bersifat multi bahasa pemrograman yang memiliki Integrated Development Environment (IDE) dan fitur extensible plug-in. Tidak hanya bahasa pemrograman Java saja yang dapat digunakan pada Eclipse. Dengan penambahan beberapa plugins, Eclipse dapat menerjemahkan berbagai bahasa pemrograman lainnya, seperti Ada, C/C++, Android, dan sebagainya. Sifatnya yang bersifat open source membuat Eclipse banyak digunakan oleh developer software (Anonim2, 2012). 2.2.3 Android Development Tools Android Development Tools (ADT) merupakan sebuah plugin untuk Eclipse IDE yang berfungsi untuk menciptakan suatu environment yang cocok untuk membangun aplikasi Android. ADT juga menawakan solusi yang cepat untuk membangun sebuah software Android dengan hadirnya berbagai macam fitur. Selain itu, ADT juga meningkatkan kemampuan Eclipse agar dapat dengan cepat membuat Android projects, membuat desain interface, menambah packages
berdasarkan Android Framework API,
debug aplikasi dengan menggunakan Android SDK tools, hingga mengeksport aplikasi ke dalam ekstensi .apk (Android Package) dalam menyebarkan aplikasi yang telah selesai (Anonim3, 2012). Terdapat beberapa fitur penting dari Eclipse dan ADT, yaitu: a. Adanya integrasi antara creation, building, packaging, installation, dan debugging pada Android project. b. Adanya integrasi dengan SDK Tools. c. Terdapat Java Programming Language Editor yang berisi syntax checking dan auto-completion. d. Terdapat XML editors. e. Terdapat graphical layout editor yang memudahkan dalam mendesain User Interface.
41 f. Adanya dokumen yang terintegrasi pada Android Framework APIs. Pengaksesan dokumentasi dapat dilakukan dengan hovering over classes, methods, dan variables. 2.2.4 Android SDK Android SDK berisi berbagai tools yang dapat membantu developer Android dalam mengembangkan suatu aplikasi. Android SDK terbagi ke dalam dua kategori, yaitu: 1. SDK Tools Tools ini digunakan untuk mengembangkan aplikasi tanpa memperhatikan platform Android mana yang menjadi sasaran dalam pengembangan software. 2. Platform Tools Tools ini digunakan untuk mengembangkan aplikasi dengan platform tertentu dan telah mendukung fitur terbaru dari platform tersebut. Beberapa tools yang sering digunakan pada Android SDK: a.
Dalvik Debug Monitor Server (DDMS) Berguna untuk mengontrol Dalvik Virtual Machine selama proses debugging.
b.
Android Emulator Sebuah emulator yang dapat digunakan untuk mendesain, debug, dan melakukan test pada aplikasi yang akan dibuat pada Android run-time environment.
c.
Hierarchy Viewer Berguna untuk mengoptimalisasikan tampilan dari aplikasi Android yang dikembangkan.
d.
Layoutopt Berguna untuk membantu menganalisa layout aplikasi secara keseluruhan agar dapat dioptimasi sehingga meningkatkan efisiensi kode yang sedang berjalan.
42 e.
MkSDcard Berguna untuk membantu pembuatan sebuah disk image seperti SD card yang digunakan pada Android Emulator.
f.
Monkey Fitur yang berjalan pada emulator untuk mengenali touch yang diterima. Monkey juga dapat digunakan untuk stress-test terhadap aplikasi yang sedang dibuat.
g.
Monkeyrunner Berfungsi sebagai penyedia API untuk mengontrol Android dan menulis kode program yang berasal dari luar kode Android.
h.
ProGuard Berfungsi untuk mengoptimalkan kode dengan menghapus kode yang tidak digunakan dan mengganti nama class, fields, maupun methods dengan nama yang lebih jelas.
i.
SQLite3 Berguna untuk mengakses SQLite data files yang digunakan pada aplikasi Android.
j.
Traceview Menyediakan tampilan grafis dari log yang disimpan oleh aplikasi.
k.
Zipalign Mengoptimalkan file .apk dengan memastikan bahwa file sebelum dan sesudah dikompresi berukuran sama.
2.2.5 Java Java dikenal sebagai bahasa pemrograman untuk aplikasi internet. Bahasa pemrograman didesain untuk memudahkan orang-orang untuk menuliskan dan memahaminya adalah yang dimaksud dengan bahasa tingkat tinggi (High-Level Languages). Bahasa yang digunakan komputer adalah bahasa mesin. Bahasa mesin atau bahasa yang hampir sama dengan bahasa
43 mesin disebut dengan bahasa tingkat rendah (Low-Level Languages), sehingga program yang dituliskan ke dalam bahasa tingkat tinggi harus diterjemahkan terlebih dahulu ke dalam bahasa mesin sebelum dijalankan. Program yang digunakan untuk menerjemahkan bahasa tersebut disebut dengan compiler dan proses penerjemahannya disebut dengan compiling (Walter Savitch, 2012:2) Sementara ada beberapa versi java yang diterjemahkan ke dalam bahasa byte-code. Bahasa ini adalah bahasa mesin untuk komputer tertentu yang dapat berjalan pada Java Virtual Machine (JVM). Byte-Code adalah program java yang diterjemahkan oleh compiler ke dalam bahasa byte-code, sehingga memudahkan untuk menerjemahkan ke dalam bahasa mesin komputer tertentu. Setiap komputer dapat memiliki perangkat lunak untuk mengimplementasikannya ke dalam JVM. Salah satu keunggulan java adalah bahasa program yang berbasis Object Oriented Programming (OOP). OOP adalah metodologi pemrograman yang
terdiri dari objek yang saling
berinteraksi satu sama lain melalui tindakan (Walter Savitch, 2012:9). 2.2.6 Metaio Metaio merupakan suatu perusahaan swasta yang mengembangkan software untuk augmented reality. Didirikan pada tahun 2003, oleh Thomas Alt –yang sekarang menjadi CEO (Chief Executive Officer) perusahaan tersebut- serta Peter Meier –yang sekarang menjadi CTO(Chief Technology Officer)- dengan kantor pusatnya yang berada Munich, Jerman (Anonim4, 2013). Berikut adalah produk-produk yang telah dikeluarkan oleh Metaio: 1. Metaio Creator Suatu tools untuk membuat suatu aplikasi augmented reality sederhana tanpa perlu dasar pemrograman. 2. Metaio SDK SDK (Software Development Kit) dengan support untuk iOS, Android , Unity dan Windows, platform Metaio SDK mendukung
44 para pengembang untuk membuat aplikasi yang dapat digunakan di hampir seluruh jenis smartphone dan tablet. 3. Metaio Cloud Suatu media yang disediakan oleh Metaio untuk mengatur aplikasi augmented reality dan kontennya dalam satu tempat. 4. Metaio Engineer Suatu tools yang menyediakan solusi untuk tugas teknis dari visualisasi fasilitas masa depan dalam lingkungan produksi saat ini. 5. AR Engine Suatu perangkat keras pertama yang dibuat untuk mendukung performa Augmented Reality. 6. Junaio Suatu mobile browser augmented reality yang berdasarkan pada teknologi web terkenal seperti XML, JS, dan HTML5.
Target gambar pada metaio untuk menampilkan objek virtual terdiri atas: 1. Image Target, tipe target berupa gambar 2D yang terbagi lagi menjadi beberapa jenis antara lain: a. Barcode, bentuk gambar paling sederhana yang terdiri atas banyak garis hitam dengan ketebalan yang bermacam-macam serta jarak yang bermacam-macam pula antara garis yang satu dengan yang lain.
Gambar 2. 19 Contoh Barcode
45 b. QR Code, bentuk gambar lanjutan yang memiliki banyak bentuk persegi, ataupun persegi panjang di dalam gambar tersebut.
Gambar 2. 20 Contoh QR Code
c. Picture Marker, bentuk gambar yang paling kompleks karena menggabungkan berbagai macam bentuk geometri yang dinamis dengan
pencampuran
warna
yang
lebih
beragam
jika
dibandingkan dengan 2 bentuk gambar sebelumnya.
Gambar 2. 21 Contoh Picture Marker
d. Markerless Picture, bentuk gambar yang merupakan bentuk lanjut dari Picture Marker, dimana pinggiran pembatasnya lebih dinamis jika dibandingkan dengan Picture Marker.
46
Gambar 2. 22 Contoh Markerless Picture
2. Environtment Target, tipe target berupa lingkungan pada dunia nyata
yang
bersifat
real
time,
biasanya
dipakai
dengan
menggabungkan teknologi GPS (Global Positioning System). 2.2.7 Konsep Pemasaran Pemasaran adalah suatu proses dimana perusahaan menciptakan suatu nilai dan membangun hubungan yang kuat dengan pelanggan untuk memperoleh nilai dari pelanggan sebagai imbalannya. Pemasaran harus dipahami tidak dalam arti lama “membuat penjualan”, tetapi dalam arti baru “memuaskan kebutuhan pelanggan”. Jika si “pemasar” memahami kebutuhan konsumen, mengembangkan produk yang memberikan nilai, harga, distribusi, dan mempromosikan secara efektif kepada pelanggan, maka produk ini dapat dengan mudah untuk dijual. Didefinisikan secara luas, pemasaran adalah suatu proses sosial dan manajerial dimana masingmasing individu dan organisasi memperoleh apa yang mereka butuhkan dan inginkan melalui penciptaan dan pertukaran nilai dengan orang lain (Kotler & Armstrong, 2010:29). 2.2.8 Katalog Menurut Kamus Besar Bahasa Indonesia Online (2013), katalog adalah carik kartu, daftar, atau buku yang memuat nama benda atau informasi
47 tertentu yang ingin disampaikan, disusun secara berurutan, teratur dan alfabetis. Definisi katalog dapat berbeda-beda sesuai dengan bidangnya. Untuk bidang bisnis (promosi), katalog dapat diartikan sebagai daftar barangbarang yang akan dijual lengkap dengan harga dan gambaran produk, biasanya dibuat dalam bentuk buku atau dalam bentuk media lainnya seperti CD-ROM atau video. Dalam bidang seni, katalog dapat diartikan sebagai buku panduan dalam pameran yang berisi penjelasan mengenai benda (objek) yang dipamerkan. Dalam bidang pendidikan, katalog dapat diartikan sebagai daftar dari semua mata kuliah yang ditawarkan oleh perguruan tinggi atau universitas, lengkap dengan informasi tentang fakultas yang ada dan informasi tentang kampus (Anonim6, 2013). 2.3 State of The Art 2.3.1 Marker Based Augmented Reality Using Android OS Patkar, Singh dan Birje (2013) mendeskripsikan di dalam jurnal International Journal of Advanced Research in Computer Science and Software Engineering seputar masalah penyediaan sistem yang akan membantu pengguna untuk menempatkan objek 2D serta objek 3D yang bersangkutan ke dunia nyata melalui penggunaan marker. Sistem yang diusulkan juga memungkinkan pengguna untuk memutuskan, dimana posisi penempatan objek ke dalam dunia nyata. Setelah itu akan ditampilkan sesuai dengan perspektif dunia nyata.Hal ini merupakan hal yang sangat menantang dalam hal objek virtual 3D.
48
Gambar 2. 23 Usulan Sistem Augmented Reality pada Sistem Operasi Android
Usulan sistem itu sendiri terbagi menjadi 5 modul utama: 1. Kamera Berfungsi sebagai input yang berjalan secara live kepada Image Capturing Module untuk diproses. 2. Image Capturing Module Berfungsi untuk menganalisa setiap inputan yang masuk dari kamera. Setiap informasi warna yang ada di tiap input-an dijadikan informasi untuk diolah oleh Image Processing Module. 3. Image Processing Module
49 Infomasi warna yang masuk dipakai untuk mengidentifikasi Augmented Reality Marker yang diperlukan untuk menentukan posisi penempatan objek 3D yang akan menjadi input bagi Tracking Module. 4. Marker Tracking Module Modul ini yang merupakan inti dari suatu sistem augmented reality.Modul ini menghitung posisi dari objek 3D secara real time yang nantinya dipakai sebagai input dari Rendering Module. 5.Rendering Module Modul ini mengabungkan antara marker dengan objek 3D yang sebelumnya telah diolah oleh modul ini.
Keunggulan utama yang diusulkan oleh sistem ini adalah berorientasi pada pengguna dan bukan berorientasi pada produk atau layanan, sehingga memungkinkan pengguna untuk menambah produk sesuai keinginan mereka. 2.3.2 Augmented Reality 2.0 Schmalstleg, Langlotz, dan Billinghurst (2011) mendeskripsikan pada jurnal Springer-Verlag tentang konsep dari augmented reality 2.0, yang merupakan kombinasi dari augmented reality dengan web 2.0, dimana fokus dari augmented reality-nya sendiri lebih ditekankan pada sisi mobile. Disini juga diberikan suatu perbedaan karakteristik yang jelas antara Augmented Reality (AR) 2.0 dengan Web 2.0 pada tabel 2.1.
50 Tabel 2. 2 Perbandingan karakter Web 2.0 dengan AR 2.0 Web 2.0 Characteristics
AR 2.0 Characteristics
Large number of users and web sites Large scale in number of users as well as (already true for Web 1.0)
working volume
No clearly visible separation between No clearly visible separation between accessing local data and remote data
visualizing local data or remote data
Application running in a browser behave Applications locally running on the device like local applications, encouraging the can transparently download modules or user to interact with them
new features from remote servers
A huge amount of non technical people Users can create or update the AR content retrieve data and contribute or modify it as at specific locations well Information from different sources can be Mashups which access data from sources combined and create a new value-added like tradiitional web services and combine application, in so-called Mashups
them with AR content to display them in three dimensional space
Disini juga dijelaskan bahwa jika suatu aplikasi augmented realtiy ingin dikembangkan dengan melakukan pendekatan AR 2.0, maka ada beberapa poin penting yang diperlukan yaitu: 1. Sebuah platform yang menggabungkan tampilan, pelacakan dan pengolahan augmented reality. 2. Mobilitas untuk mewujudkan augmented dalam ruang global 3. Backend untuk distribusi konten dan aplikasi augmented reality. 4. Adanya alat authoring yang memudahkan pengguna untuk membuat konten augmented reality. 5. Solusi pelacakan augmented reality skala besar yang bekerja secara real time.
51 2.3.3 Augmented Reality Technology, System and Application Carmigniani et al. (2010) mendeskripsikan di dalam jurnal Springer Science +Business Media
tentang 3 topik penting seputar augmented
reality. Topik yang pertama adalah tentang teknologi yang dipakai dalam pembuatan sebuah augmented reality. Berikut adalah contoh beberapa teknologinya: 1. Computer Vision. Metode yang dipakai dalam computer vision ini terbagi menjadi 2 tahapan yaitu: pelacakan dan perekonstruksian. Pertama, marker yang terdeteksi oleh kamera akan dilacak dengan menggunakan teknik feature based dan model based. Teknik feature based digunakan untuk menemukan hubungan antara gambar 2D dengan koordinat 3D world frame-nya sedangkan model based menggunakan contoh dari objek yang dilacak berdasarkan fitur yang ada. Setelah koneksi dibuat antara gambar 2D dengan koordinat 3D world frame-nya, maka
dimungkinkan
untuk
menemukan
posisi
kamera
dengan
memproyeksikan koordinat 3D dari fitur yang ada kedalam gambar 2D yang diamati lalu meminimalkan jaraknya dengan gambar 2D tersebut. 2. AR Devices, yang terbagi atas display, input devices, tracking, dan computer 3. AR Interfaces, yang merupakan salah satu aspek yang paling penting dari Augmented Reality untuk menciptakan cara yang sesuai untuk interaksi yang intuitif antara pengguna dengan konten virtual aplikasi. Berdasarkan hal tersebut, AR Interfaces terbagi menjadi 4 macam, yaitu: tangible AR interfaces, collaborative AR interfaces, hybrid AR interfaces, dan multimodal AR interfaces 4. AR System Penggolongan AR System didasarkan pada adanya kemungkinan bagi pengguna untuk gerakan yang tidak dibatasi dalam satu ruangan dan dengan demikian memungkinkan pengguna untuk bergerak melalui
52 penggunaan sistem wireless. Dengan dasar tersebut, maka AR System terbagi menjadi 5 kategori yaitu: fixed indoor systems, fixed outdoor systems, mobile indoor systems, mobile outdoor systems, dan mobile indoor and outdoor systems.
Topik selanjutnya adalah tentang sistem augmented reality yang berjalan secara mobile. Sistem mobile AR melibatkan penggunaan antarmuka ponsel bagi pengguna sehinggga dapat dipakai untuk berinteraksi dengan informasi digital yang tumpang tindih pada permukaan benda-benda fisik dengan cara yang alami dan dapat diterima oleh masyarakat. Sistem AR secara mobile dikatakan sukses jika memungkinkan pengguna untuk fokus pada aplikasi atau sistem bukan pada perangkat komputasi dan menyediakan pengguna dengan informasi pribadi yang bisa dibagi jika perlu. Hal ini menunjukkan perlunya keringanan pengaksesan, perangkat yang dapat dipakai ataupun perangkat yang menarik secara desain, privasi serta kuat dalam teknologi pelacakan. Topik terakhir adalah mengenai aplikasi dari sistem augmented reality itu sendiri. Disini aplikasinya telah diterpkan di berbagai sektor antara lain: 1. Advertising and Commercial 2. Entertainment and Education 3. Medical Application 4. Navigational and Informational