BAB 2 TINJAUAN PUSTAKA
2.1
Teori Umum Dibawah ini terdapat terdapat teori umum yang digunakan untuk pembuatan
aplikasi ini. 2.1.1 Rekayasa Piranti Lunak Rekayasa piranti lunak adalah tahapan atau metode yang digunakan untuk merancang software secara ekonomis dan dapat diimplementasikan ke dalam sebuah mesin (Pressman, 2010). 2.1.1.1 Kategori Software Menurut Pressman (2010), terdapat tujuh kategori dalam rekayasa piranti lunak, yaitu : a. System Software Merupakan software yang berfungsi untuk memberikan pelayanan bagi software lainnya. Contoh: compilers, editors, dan file management. b. Application Sofware Merupakan software yang menyelesaikan masalah bisnis yang spesifik. Contoh: point-of-sale transaction processing, real-time manufacturing process control. c. Engineering/Scientific Software Merupakan software yang membantu ilmuwan untuk membantu masalah dalam bidang sains. Contoh: astronomy application dan volcanology application. d. Embedded Software Merupakan software yang digunakan pada suatu perangkat sehingga dapat langsung digunakan oleh pengguna. Contoh: keypad control untuk oven microwave. e. Product-Line Software Merupakan software yang dibuat spesifik untuk banyak jenis pengguna. Contoh: inventory control product.
9
10
f. Web Applications Merupakan software yang terdapat pada web dan berfungsi untuk berkolaborasi dengan database perusahaan dan aplikasi bisnis. Contoh: e-commerce. g. Artificial Inteligence Software Merupakan software yang berfungsi untuk menyelesaikan masalah yang kompleks. Contoh: robotics, artificial neural network.
2.1.1.2 Agile Development Agile development merupakan sebuah metode pembuatan software yang memudahkan developer untuk membuat software yang baik (Pressman, 2010).
Experimental Programming Model (XP Model) Extreme Programming (XP) digunakan di setiap proses agile process. XP ditemukan oleh Kent Beck pada akhir tahun 1980. XP memberikan teknik terbaik untuk mengatasi perubahan requirement yang sangat cepat dan tiba-tiba (Pressman, 2010).
Gambar 2.1 Tahapan Extreme Programming Model (Sumber: Roger S.Pressman, Software Engineering: a Practitioners Approach, 2010)
11
a.
Planning Planning activities atau yang biasa disebut planning game, 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 (Pressman, 2010).
b.
Design Proses desain pada XP menerapkan prinsip Keep It Simple (KIS). Desain yang sederhana biasanya lebih disukai dibandingakan dengan desain yang kompleks dan desain tersebut harus mengikuti stories yang telah dibuat sebelumnya (Pressman, 2010).
c.
Coding Pada tahap ini, terdapat proses refactoring. Refactoring merupakan proses mengubah sistem perangkat lunak dimana struktur code berubah dan menjadi sederhana namun hasil akhir yang dihasilkan sama. Setelah penulis menyelesaikan tahap planning dan design sebaiknya penulis melakukan pengetesan pada setiap unit yang terdapat pada stories terlebih dahulu sebelum memulai pengkodean. Kemudian penulis dapat fokus kembali di dalam pengkodean (Pressman, 2010).
d.
Testing Pada tahap ini acceptance tests atau customer tests melakukan pengujian terhadap program yang telah selesai (Pressman, 2010).
2.1.2 Teori 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.1.2.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.
12
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 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.
13
8.
WebOS WebOS adalah sistem operasi mobile untuk beberapa perangkat ponsel, smartphone dan komputer tablet. WebOS berbais linux karnel yang awalnya dikembangkan oleh Palm.
9.
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.
10. MXI (Motion eXperience Interface) MXI (Motion eXperience Interface) adalah sebuah sistem operasi mobile yang universal. MXI OS dapat dijalankan untuk aplikasi mobile seperti windows, linux, palm dan java.
2.1.2.2 10 (sepuluh) Prinsip dari Mobile Interface Design Saat ini mobile berkembang sangat pesat, dan terjangkau di setiap aspek masyarakat. Analisis memperkirakan bahwa pada tahun 2015 mobile phone akan mengambil alih komputer sebagai sarana utama dalam mengakses internet (Stark, 2012). Meskipun sering dikatakan sebagai computing device, smartphone dan desktop computer sangat berbeda, layar kecil dibandingkan dengan layar besar dan bandwidth kecil dibandingkan dengan bandwidth besar dan sebagainya. Dengan perbedaan tersebut, desain untuk mobile dan desain untuk komputer jelas berbeda. Berikut terdapat 10 (sepuluh) prinsip interface pada mobile, yaitu: 1.
Mobile Mindset Karena perbedaan antara mobile dan desktop, sangat penting bagi para developer untuk memiliki mobile mindset sebelum memulai segalanya. a. Be focused: Berlebihan itu tidak baik. b. Be
unique:
Mengetahui
apa
yang
membuat
aplikasi
yang
dikembangkan berbeda. c. Be charming: Mobile device digunakan secara personal, aplikasi yang ramah, dapat diandalkan dan menyenangkan akan menarik hati user.
14
d. Be considerate: Developer aplikasi terlalu fokus kepada apa yang membuat mereka senang untuk dikembangkan, tetapi developer harus menempatkan diri dalam sisi user agar tercipta aplikasi yang baik. 2.
Mobile Contexts Untuk memulai menempatkan diri ke dalam sisi pengguna terdapat tiga konteks mobile yang perlu dipertimbangkan, yaitu : a. Lost: user yang sedang melakukan transit atau berada di lingkungan yang tidak diketahuinya namun tertarik dengan sesuatu yang tidak diketahui di area tersebut. Dalam konteks ini koneksi internet dan ketahanan battery menjadi masalah besar, sehingga developer harus menawarkan aplikasi offline support yang dapat menghemat battery. Contoh: Maps, foursquare. b. Bored: ada banyak user
yang menggunakan smartphone mereka
ketika bersantai di rumah. Dalam konteks ini pengalaman yang menyenangkan dalam aplikasi akan mengarahkan pengguna pada waktu penggunaan aplikasi yang lebih lama. Contoh: Facebook, Twitter, dan angry birds. c.
Busy: user sering berada dalam keadaan sibuk dan sangat penting, sehingga mereka terkadang menggunakan satu tangan dalam kondisi sibuk tersebut. User berharap dapat melakukan task kecil dam simple. Contoh: email, kalender, dan banking.
3.
Global Guidelines Aplikasi yang berbeda pasti diikuti dengan pendekatan, desain, dan teknik yang berbeda. Karena smartphone termasuk pocket-size touchscreen ada beberapa global guidelines yang harus diperhatikan. a. Responsiveness Apabila pengguna melakukan sesuatu maka aplikasi harus melakukan interaksi langsung. Responsiveness dan kecepetan tidaklah sama, tidak masalah apabila operasi memerlukan waktu pastikan saja user dapat mengetahui operasi sedang berjalan.
15
b. Polish Polish sangatlah berharga, karena kebersamaan yang intens antara user dengan smartphones sehingga developer harus memperhatikan detail yang sangat kecil dalam aplikasi itu sangatlah baik. c. Thumbs Dengan munculnya interface touchscreen, ibu jari sangat berpengaruh dalam merancang interface touchscreen karena itu developer harus memperhatikan keberadaan ibu jari dalam interface touchscreen. Walaupun terkadang user menggunakan dua tangan tetapi tetap menggunakan kedua ibu jarinya untuk mengetik. d. Targets Perhatikan penempatan target yang baik dalam user interface smartphones. Contohnya adalah menempatkan tombol backspace berdekatan langsung dengan tombol send di aplikasi SMS (short message service) adalah ide yang buruk. e.
Content Revolusi dari touch interface adalah memungkinkan user untuk berinteraksi langsung dengan content. Dengan menghilangkan penggunaan mouse dan trackpad dapat memudahkan user untuk mengoperasikannya.
f.
Control Bila developer ingin menambahkan control, tempatkanlah dibawah layar atau dibawah content. Sehingga user dapat melihat apa yang terjadi dengan content ketika user mengoperasikanya.
g.
Scrolling Hindari scrolling, memiliki layar non-scrolling akan mempermudah pengguna walaupun terkadang layar scrolling diperlukan.
4.
Navigation Models Ada banyak model navigasi untuk aplikasi mobile, tetapi jika developer ingin menggunakan salah satu model yang umum pastikan untuk memilih salah satu navigasi yang membuat aplikasi menjadi semakin lebih baik. Contoh: tab bar dan drill down.
16
5.
User Input Mengetik
terkadang
menyulitkan
bagi
user
walaupun
mereka
menggunakan device yang terbaik, sehingga developer harus membuat user nyaman dalam menggunakannya. Contoh: jika di dalam aplikasi yang developer buat terdapat banyak ketikan, maka buatlah layar agar dapat di landscape sehingga memudahkan user dalam mengetik. 6.
Gestures Salah satu aspek yang iconic dalam touch interface adalah gesture-based user interaction. Tetapi ada beberapa hal yang perlu diperhatikan: a.
Invisible Gestures tidak terlihat, sehingga developer harus membuat user menyadari akan adanya gestures.
b. Twohands Multi-touch gestures memerlukan operasi kedua tangan dari user. c. Nice to have Dalam beberapa kondisi gestures merupakan hal yang baik untuk dimiliki. d. No replacement Belum terdapat kosakata umum untuk gestures. Sehingga terlalu cepat untuk sebagian aplikasi untuk melewati visible control. 7.
Orientation Potrait adalah orientation yang paling banyak digunakan saat ini, Jika di dalam aplikasi user perlu untuk banyak mengetik maka ubah orientation menjadi landscape sehingga membuat user dapat mengakses keyboard yang lebih besar.
8.
Communication Untuk memperlancar komunikasi yang terjadi antara pengguna dan aplikasi. Ada beberapa hal yang harus diperhatikan : a.
Provide feedback Sebuah aplikasi yang baik hendaklah memberikan umpan balik untuk setiap interaksi. Jika tidak diberikan umpan balik maka user mengira bahwa aplikasi berhenti berjalan.
17
b.
Model alerts Model alerts merupakan sesuatu yang menggangu bagi user, sehingga developer harus menggunakannya jika terjadi sesuatu yang fatal.
c. Confirmations Jika developer ingin menanyakan konfirmasi dari user dalam setiap action, maka dapat ditampilkan dalam model confirmation dialog. 9.
Launching Apabila user ingin masuk kembali ke dalam aplikasi yang sebelumnya sudah digunakan maka developer harus membuat melanjutkan operasi tepat dimana user meninggalkan aplikasi tersebut.
10. First impressions Ada dua hal yang harus diperhatikan dalam first impressions, yaitu: a. Your icon Icon dari aplikasi yang dibuat harus dapat bersaing dengan tautan icon lainnya. Pikirkanlah icon bukan hanya dari segi seni saja tetapi dari segi bisnis juga. Icon yang baik mencerminkan aplikasi yang baik, jangan terlalu banyak menggunakan kata-kata dalam icon tetapi gunakan gambar. b. First launch First launch merupakan suatu hal yang sangat penting. Apabila aplikasi yang dibuat dapat diterima oleh user maka user akan menyukainya. Jika di dalam aplikasi yang dibuat cukup kompleks maka sertakan “tips dan trick”.
2.1.3 Interaksi Manusia dan Komputer (IMK) Interaksi manusia dan komputer atau yang biasa dikenal dengan Human Computer Interaction.
2.1.3.1 Pengertian Interaksi Manusia dan Komputer Interaksi manusia dan komputer merupakan ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi yang mempelajari cara komunikasi antara komputer dan pengguna (Shneiderman, 2010).
18
2.1.3.2 Delapan Aturan Emas (Eight Golden Rules) Menurut Shneiderman (2010) terdapat 8 aturan emas (eight golden rules) yang digunakan untuk merancang suatu user interface, yaitu : 1. Konsistensi Konsisten terhadap tindakan, perintah, dan istilah yang biasa digunakan, seperti : jenis tulisan, tampilan, dan istilah yang digunakan pada prompt. 2. Menyediakan Usability Universal Meningkatkan kecepatan interaksi bagi pengguna yang sudah ahli atau belum, sehingga diperlukan singkatan, tombol fungsi, dan perintah tersembunyi. 3. Memberikan umpan balik yang informatif Memberikan sistem umpan balik pada saat pengguna melakukan operasi pada sistem. Umpan balik sebaiknya dibagi berdasarkan tingkat kepentingan dari suatu operasi. Jika operasi yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Dan ketika operasi yang sangat penting, maka umpan balik sebaiknya lebih substansial. Misalnya memberikan suara ketika terjadi kesalahan. 4. Merancang dialog untuk menghasilkan suatu penutupan Urutan tindakan sebaiknya teroganisir dalam suatu kelompok dengan adanya bagian awal, tengah, dan akhir. Umpan balik yang digunakan sebaiknya informatif sehingga dapat memudahkan pengguna untuk ke tindakan selanjutnya. 5. Memberikan penanganan kesalahan yang sama Sebaiknnya sistem dirancang untuk tidak melakukan kesalahan yang fatal. Apabila terjadi kesalahan yang fatal maka sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang mudah dipahami untuk menangani masalah tersebut. 6. Mudah kembali ke tindakan sebelumnya Dapat memudahkan pengguna apabila terjadi kesalahan dalam operasi karena kesalahan tersebut dapat dibatalkan. Misalnya : tombol back, forward pada web browser.
19
7. Mendukung tempat pengendali internal Menjadikan pengguna sebagai pengontrol sistem bukan sebaliknya, sehingga pengguna dapat dengan leluasa menggunakan sistem. Sehingga pengguna menjadi inisiator daripada responden. 8. Mengurangi beban ingatan jangka pendek Pengguna tidak perlu mengingat banyak perintah yang berada di dalam satu sistem. Tampilan sistem sebaiknya tampilan yang sederhana dan tindakan yang beruurutan sehingga memudahkan pengguna dalam menggunakannya
2.1.3.3 Lima Faktor Manusia Terukur Ben Shneiderman (2010) menjelaskan mengenai lima faktor manusia (Measureable Human Factor) dalam Interaksi Manusia dan Komputer (IMK) : 1.
Waktu Belajar (Time to Learn) Seberapa lama pengguna dapat mempelajari dan mengerti cara melakukan perintah yang berada di aplikasi tersebut.
2.
Kecepatan Kinerja (Speed of performance) Seberapa lama waktu yang dibutuhkan untuk menjalankan perintahperintah yang sesuai.
3.
Tingkat Kesalahan (Rate of Errors by Users) Seberapa banyak kesalahan yang dilakukan oleh penggguna dalam menjalankan perintah-perintah yang ada di dalam aplikasi dan berapa lama.
4.
Daya Ingat (Retention Over Time) Seberapa baik pengguna dalam mengingat pengetahuan mereka dalam pemakaian atau penggunaan aplikasi dalam jangka waktu tertentu.
5.
Kepuasaan Subjektif (Subjective Satisfaction). Seberapa besar kepuasaan pengguna dalam menggunakan aspek – aspek yang berada di aplikasi.
20
2.1.4 Unified Modeling Language (UML) Unified Modeling Language (UML) adalah satu kumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem software yang terkait dengan objek (Whitten dan Bentley, 2007).
2.1.4.1 Class Diagram Class diagram adalah menggambarkan struktur objek sistem yang menunjukan kelas objek dari sistem tersebut bahwa sistem ini terdiri dari hubungan antara kelas-kelas objek (Whitten dan Bentley, 2007). Sebuah class diagram disusun oleh tiga bagian, yaitu: 1. Nama Kelas Merupakan nama dari suatu class yang digunakan sebagai pembeda dari suatu objek. 2. Atribut Kelas Merupakan atribut atau data yang berada pada class tersebut. 3. Operasi Kelas Merupakan fungsi atau operasi yang dimiliki pada class tersebut.
<
> -Atribut +Operasi Gambar 2.2 Struktur dari Class Diagram
2.1.4.1.1
Visibility
Visibility digunakan untuk menentukan bagaimana suatu class lain menggunakan atribut atau operasi dari suatu class. 1. Private Dinyatakan dengan simbol “-”, dapat diakses dan tidak dapat diapanggil dari luar class yang bersangkutan.
21
2. Public Dinyatakan dengan simbol “+”, method public dapat diakses dan dapat dipanggil oleh class siapa saja. 3. Protected Dinyatakan dengan simbol “#”, dapat diakses dan dapat dipanggil oleh class yang bersangkutan dan subclass dari kelas tersebut.
2.1.4.1.2
Associations
Associations berfungsi untuk mendeskripsikan bagaimana 2 buah konsep berhubungan.
Gambar 2.3 Contoh Associations (Sumber : Whitten dan Bentley, 2007: 379) Terdapat 2 (dua) jenis penggambaran hubungan dalam asosiasi : a. Uni-directional Dua kelas yang saling berhubungan namun hanya salah satu kelas saja yang berperan dalam hubungan tersebut, kelas yang lainnya sebagai penyedia saja. b. Bidirectional Bidirectional berbeda dengan uni-directional, dalam bidirectional kedua kelas yang saling berhubungan sama-sama memiliki peran.
2.1.4.1.3
Specialization atau Generalization
Specialization atau Generalization adalah sebuah teknik dimana atribut dan behaviour yang umum pada beberapa tipe kelas objek, dikelompokan ke dalam kelasnya sendiri yang disebut supertype (Whitten dan Bentley, 2007).
22
Gambar 2.4 Contoh Specialization atau Generalization (Sumber : Whitten dan Bentley, 2007: 376)
2.1.4.1.4
Composition
Composition adalah bentuk khusus dari aggregation yang menggambarkan hubungan asosiasi antara entitas, dimana terdapat hubungan yang kuat dan kebetulan dalam seluruh atau sebagian siklus.
Gambar 2.5 Contoh Composition (Sumber : Whitten dan Bentley, 2007: 379)
2.1.4.1.5
Aggregation
Aggregation adalah gambaran yang diwakili oleh kata ‘memiliki’ atau ‘bagian dari’ suatu hubungan antara tipe entitas, dimana gambaran tersebut dapat merupakan bagian atau keseluruhan dari yang lain.
23
Gambar 2.6 Contoh Aggreagtion (Sumber : Whitten dan Bentley, 2007: 379)
2.1.4.1.6
Multiplicity
Multiplicity adalah jumlah atau tangga dari kejadian yang mungkin terjadi pada suatu entitas yang terhubung ke satu kejadian dari entitas lain yang berhubungan melalui suatu relationship. Contoh dari multiplicity beserta penjelasannya:
Tabel 2.1 Notasi Multiplicity dan Penjelasannya Multiplicity
UML Multiplicity
Association Meaning
Notation Exactly 1
1 or leave blank
Seorang karyawan yang bekerja untuk satu dan hanya satu departemen
Zero or 1
0..1
Seorang karyawan memiliki salah satu atau tidak memiliki pasangan
Zero or more
0..* or *
Sebuah pelanggan dapat tidak melakukan pembayaran atau
24
dapat melakukan banyak pembayaran 1 or more
1..*
Sebuah Universitas menawarkan setidaknya 1 atau banyak mata kuliah
Specific range
7..9
Sebuah tim dapat memiliki 7, 8, atau 9 jadwal pertandingan
2.1.4.2 Use Case Diagram Use case diagram adalah suatu pola atau gambaran yang menunjukan kelakuan atau kebiasan sistem berinteraksi dengan eksternal sistem dan juga user. Use case diagram menggambarkan siapa saja yang akan menggunakan sistem dan dengan cara apa saja yang pengguna harapkan untuk berinteraksi dengan sistem (Whitten dan Bentley, 2007). Berikut merupakan contoh gambar dari use case diagram:
Gambar 2.7 Contoh Use Case Diagram (Sumber : Whitten dan Bentley, 2007: 246)
25
1.
Use Case Mempresentasikan gambaran fungsional dari sistem yang setiap langkahnya berurutan (skenario). Use case digambarkan dalam bentuk elips dan nama dari use case ditulis di atas, bawah maupun di dalam elips (Whitten dan Bentley, 2007).
Gambar 2.8 Contoh Use Case
2. Actor Mempresentasikan sesuatu (perangkat, sistem lain) yang berinteraksi dengan sistem untuk pertukaran informasi (Whitten dan Bentley, 2007).
Gambar 2.9 Contoh Aktor Terdapat empat jenis aktor, yaitu : a. Primary Business Actor Aktor yang mendapatkan keuntungan dari pelaksanaan use case dengan menerima sebuah nilai yang terukur dan terobservasi. Primary business actor memungkinkan untuk tidak terlibat dalam suatu kejadian. Contohnya seorang karyawan mendapatkan gaji dari sebuah perusahaan tanpa terlibat dalam proses keuangan yang ada.
26
b. Primary System Actor Aktor
yang
berhadapan
langsung
dengan
sistem
untuk
menginisialisasi kegiatan atau sistem. c. External Server Actor Aktor yang melayani kebutuhan pengguna use case. d. External Receiver Actor Aktor yang bukan pelaku utama, tapi menerima nilai yang terukur dari use case.
3. System Boundary Berfungsi untuk menunjukan ruang lingkup sistem. Semua yang ada di dalam kotak, mewakili fungsi yang ada di dalam sistem.
Gambar 2.10 Contoh Boundary
2.1.4.2.1
Associations
Sebuah hubungan antara aktor dan use case yang terjadi ketika sebuah use case menggambarkan hubungan diantara mereka. Hubungan associations yang digambarkan dengan anak panah yang berasal dari aktor, maka akor tersebut penggerak terjadinya use case tersebut. Sedangkan apabila tidak ada anak panah menandakan adanya interaksi antara use case dengan penerima.
27
Gambar 2.11 Contoh Associations (Sumber: Whitten dan Bentley, 2007: 248)
2.1.4.2.2
Extends
Extends digunakan untuk membuat use case menjadi lebih sederhana dan lebih mudah untuk dipahami.
Gambar 2.12 Contoh Extends (Sumber: Whitten dan Bentley, 2007: 249)
2.1.4.2.3
Includes
Includes digunakan untuk menggunakan kembali behaviour yang dimodelkan oleh use case lain.
Gambar 2.13 Contoh Includes
28
2.1.4.2.4
Depends On
Depends On digunakan ketika sebuah use case tidak dapat melakukan eksekusi karena sebuah proses uses case tertentu dilaksanakan.
Gambar 2.14 Contoh Depends On (Sumber : Whitten dan Bentley, 2007: 250)
2.1.4.2.5
Inheritance
Inheritance bertujuan untuk mengurangi komunikasi yang redundan di dalam sistem.
Gambar 2.15 Contoh Inheritance (Sumber : Whitten dan Bentley, 2007: 250)
29
2.1.4.3 Use Case Narrative Use case narrative adalah deskripsi tertulis mengenai peristiwa-peristiwa bisnis dan bagaimana pengguna
akan berinteraksi dengan sistem untuk
menyelesaikan suatu tugas (Whitten dan Bentley, 2007).
Gambar 2.16 Contoh Use Case Narrative (Sumber : Whitten dan Bentley, 2007: 390)
2.1.4.4 Sequence Diagram Sequence diagram adalah grafis yang menggambarkan bagaimana objek berinteraksi satu sama lain melalui pesan dalam pelaksanaan use case atau pengoperasian (Whitten dan Bentley, 2007).
30
Gambar 2.17 Contoh Sequence Diagram Berikut komponen dari sequence diagram: 1.
Actor Actor yang berinteraksi dengan interface.
Gambar 2.18 Contoh Actor 2.
Lifeline Lifeline bertujuan untuk menunjukan kehidupan dari sebuah sequence.
Gambar 2.19 Contoh Lifeline
31
3.
Activation Bar yang berada di atas lifelines yang menunjukan periode waktu dimana sistem aktif dalam interaks i.
Gambar 2.20 Contoh Activation Bar
4.
Message Message menunjukan pesan yang masuk dikirim ke dalam class.
Gambar 2.21 Contoh Message 5.
Message (Return) Return message menunjukan setiap kegiatan yang kembali, pesan benar atau salah yang menunjukan apakah perilaku itu berhasil.
Gambar 2.22 Contoh Return Message
6.
Self-Call Sebuah objek yang dapat memanggil method nya sendiri.
Gambar 2.23 Contoh Self-Call
32
7.
Object Gambar yang mewakili kelas-kelas yang berasal pada class diagram.
Gambar 2.24 Contoh Object
2.1.4.5 Activity Diagram Activity diagram adalah
diagram yang menggambarkan kegiatan yang
sekuensial dari use case atau proses bisnis, dan juga dapat digunakan untuk model logika sistem (Whitten dan Bentley, 2007).
Gambar 2.25 Contoh Activity Diagram
33
Berikut ini merupakan notasi-notasi yang digunakan dalam activity diagram : 1.
Initial State Menampilkan awal dari proses.
Gambar 2.26 Contoh dari Initial State 2.
Action Menjelaskan individual steps.
Gambar 2.27 Contoh dari Action
3.
Flow Menjelaskan progress dari sebuah action.
Gambar 2.28 Contoh dari Flow 4.
Decision atau Merge Decision berbentuk diamond dengan satu arus masuk dan dua atau lebih arus keluar. Arus yang keluar ditandai untuk mengindikasikan kondisi. Merge berbentuk diamond dengan dua atau lebih arus masuk dan satu arus yang keluar. Ini menggabungkan arus yang sebelumnya dipisahkan oleh decisions. Proses berlanjut dengan adanya salah satu arus yang masuk ke dalam merge.
Gambar 2.29 Contoh dari Decision dan Merge 5.
Fork atau Join Fork merupakan balok hitam dengan satu arus yang masuk dan dua atau lebih yang keluar. Tindakan pada arus paralel dapat terjadi dalam urutan apapun ataupun bersamaan.
34
Join merupakan balok hitam dengan dua atau lebih arus yang masuk dan satu arus yang keluar, Semua aksi yang masuk harus selesai sebelum proses lainnya dilanjutkan.
Gambar 2.30 Contoh dari Fork dan Join 6.
Final State Menjelaskan akhir dari proses.
Gambar 2.31 Contoh dari Final State
2.1.5 Augmented Reality Secara umum augmented reality adalah penggabungan antara objek virtual dengan dunia nyata.
2.1.5.1 Pengertian Augmented Reality Menurut Ben Butchart, Augmented Reality for Smartphone (2011: 2) mengasumsikan bahwa augmented reality memungkinkan perspektif diperkaya dengan melapiskan objek virtual pada dunia nyata dengan cara sebagaimananya sehingga memperlihatkan bahwa objek virtual adalah bagian dari lingkungan nyata. Oleh karena itu augmented reality dinyatakan sebagai jembatan antara dunia nyata dan dunia virtual, seperti yang diilustrasikan oleh Paul Milgram yang dikenal dengan Reality-Virtuality (RV) Continuum Diagram.
Gambar 2.32 Diagram RV
35
Peter Shearer, Managing Director AR&CO (2012) mendefinisikan augmented reality adalah penggabungan benda-benda yang ada di dunia maya (virtual) ke dalam dunia nyata dalam bentuk dua dimensi ataupun tiga dimensi. Penggabungan ini kemudian dimaksimalkan dengan kemampuan berinteraksi secara langsung dengan objek tersebut.
2.1.5.2 Komponen Augmented Reality Secara umum untuk membuat suatu augmented reality dibutuhkan minimal komponen berikut : 1. Input Device Input device digunakan sebagai sensor untuk menerima input dalam dunia nyata. Input device yang biasa digunakan misalnya seperti kamera, dan juga webcam yang sekarang ini banyak digunakan untuk teknologi augmented reality. 2. Output Device Output device digunakan untuk menampilkan hasil dari augmented reality yang telah dibuat. Output device yang biasa digunakan adalah monitor dan head mounted display. Head mounted display biasanya digunakan di kepala, mirip kacamata. Head mounted Display biasanya sudah terintegrasi dengan kamera di bagian atasnya. 3. Tracker Tracker adalah pelacak agar benda maya tambahan yang dihasilkan berjalan sesuai dengan real time atau interaktif walaupun benda nyata yang jadi induk dipindah-pindahkan. Biasanya tracker berupa QR code atau marker yang menjadi penanda. 4. Komputer Setelah komponen yang berada di atas, komputer merupakan komponen yang sangat penting dalam pembuatan augmented reality, karena pada komputer kita dapat membuat program augmented reality dapat berjalan dengan baik tanpa adanya kesalahan atau error sedikitpun. Komputer disini berupa PC (Personal Computer) atau embedded system yang dipasang pada alat.
36
2.2
Teori khusus Dibawah ini merupakan teori khusus yang digunakan untuk pembuatan
aplikasi.
2.2.1 ADT (Android Development Tools) Android Develpment Tools (ADT) adalah plugin untuk eclipse IDE yang dirancang untuk memberikan developer kekuatan dan integritas untuk membangun aplikasi android. Dengan menggunakan ADT (Android Develpment Tools), developer dapat membuat Graphic User Interface (GUI) aplikasi, membuat penambahan package android (.apk) yang dapat digunakan untuk mendistrubiskan aplikasi android. Terdapat beberapa fitur penting dari eclipse dan ADT, yaitu : 1. Adanya integrasi antara creation, building, packaging, inistallation, dan debugging pada project android. ADT mengintegrasikan banyak tugas pengembangan alur kerja menuju eclipse, sehingga memudahkan pengguna untuk dapat mengembangkan dan menguji aplikasinya. 2. Terintegrasi dengan SDK (Software Development Kit) Tools. Banyak SDK tools yang terintegrasi dengan menu eclipse, perspektif atau sebagian proses yang berjalan di ADT. 3. Terdapat java programming languange dan XML Editors. Yang berisi syntax checking dan auto-completion. 4. Dokumentasi yang terintegrasi untuk kerangka android API.
2.2.2 Android SDK (Software Development Kit) Android SDK (Software Development Kit) 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 (Software Development Kit), yaitu : a. SDK Tools Merupakan sebuah tools untuk debugging dan testing, ditambah dengan proses lain yang diperlukan untuk mengembagkan sebuah aplikasi.
37
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 Layoupt
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. 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 Images 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. 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.
39
2.2.3 Java Java
merupakan
salah
satu
bahasa
pemrograman
komputer
yang
memungkinkan programmer untuk memberikan instruksi pada komputer. Menurut (Walter Savitch, 2012), bahasa pemrograman di design untuk mempermudah user untuk memahaminya dan menggunakannya. Itu yang disebut dengan high-level languages, java merupakan high-level language dan banyak bahasa pemrograman lain yang termasuk high-level language, yaitu: Visual Basic, C++, C#, COBOL, Phyton, dan Ruby. Bahasa yang digunakan komputer adalah bahasa mesin, bahasa yang hampir sama dengan bahasa mesin disebut dengan lowlevel languages.
2.2.4 Unity Unity adalah sebuah aplikasi yang berintegrasi dengan banyak tools dan rapid workflows yang digunakan untuk membuat konten tiga dimensi yang interaktif dan bersifat multi-platform. Dengan unity developer juga dapat membuat game yang dapat dimainkan pada perangkat komputer, android, web games (memerlukan plugin unity web player), iphone, PS3 dan X-Box. Selain itu developer juga dapat membuat object, import asset yang telah disediakan dari luar dan menggabungkan semuanya secara cepat dan efisien dengan unity (Sumber: http://unity3d.com/).
2.2.5 Kode Batang 2.2.5.1 Kode batang Sebuah kumpulan dari garis yang mempunyai tebal berbeda (batang) serta spasi yang mempunyai jarak yang berbeda pula. Kode batang ini sering terdapat di harga buku, produk dan lain-lain. Kode batang biasa disebut juga dengan kode 1 dimensi. 2.2.5.2 QR (Quick Response) Code QR (Quick Response) code adalah satu kode matriks atau kode batang dua dimensi yang dibuat untuk mempermudah alat pemindai untuk menyampaikan respon dengan cepat dan menerima data dengan cepat. QR code dapat digunakan untuk menyimpan data (Uniform Resource Language) URL web, pesan, gambar dan auto call. (Sumber: http:// searchengineland.com)
40
Gambar 2.33 Contoh dari QR Code (Sumber: http://searchengineland.com-what is a qr code)
2.3
State of The Art Di bawah ini menjelaskan teknologi augmented reality yang ditulis dalam
bentuk jurnal ilmiah dan dibuat dari hasil peneletian sebelumnya.
2.3.1. Augmented Reality pada Platform Android Dalam international journal of scientific and engineering research yang ditulis oleh G.Rajasree, K.Varsha, E,Susmitha, J.Praveena, G.Harika pada tahun 2013 menyatakan bahwa terdapat 2 requirement dalam membuat design augmented reality di android, yaitu android SDK dan augmented reality toolkit. Android SDK menyediakan API libraries dan developer tools yang diperlukan untuk membangun, uji coba, dan men-debug sebuah aplikasi untuk system android. Sedangkan augmented reality toolkit merupakan pondasi untuk membuat kerangka augmented reality. Arsitektur dasar dari augmented reality berbasis OpenGl (untuk menerjemahkan), dan GLUT (untuk membuatnya), juga di dalam augmented reality toolkit ini terdapat 3 modul yang berbeda, yaitu modul augmented reality, modul video, dan modul Gsub.
41
Gambar 2.34 Tampilan Hubungan Komponen Di Dalam Augmented Reality
Penggunaan sebuah marker dengan garis yang simple, serta warna hitam dan putih yang biasanya mudah untuk dideteksi oleh kamera untuk mengenali marker dari augmented reality. Adapun requirement yang dibutuhkan yaitu android tersebut sudah mendukung OpenGL ES versi 1.0. Untuk menggunakan teknologi augmented reality pada android dibutuhkan tiga perangkat untuk mendukung augmented reality, yaitu: kamera yang digunakan untuk mengambil gambar pada lingkungan nyata dan layar touch screen digunakan untuk melihat hasil augmented reality. Aplikasi augmented reality di platform android menawarkan sebuah objek orientasi, Java API, dan menyembunyikan perintah library yang asli. Itu digunakan Java API untuk mengakses kamera dan menerima alur video tersebut. Lalu gambar tersebut diubah oleh augmented reality toolkit library. Setiap aplikasi android terdiri dari satu atau lebih aktivitas yang terjadi dalam satu waktu yang sama. Untuk membuat aplikasi augmented reality, kita harus memaparkan sebuah kelas abstrak. Kelas ini menangani semua hubungan yang ada di augmented rality, seperti membuka kamera, membaca sebuah marker, dan menampilkan alur video yang akan ditampilkan di layar handphone.
2.3.2. Sistem Medis yang Interaktif dengan Augmented Reality Dalam international journal on new computer architectures and their applications yang ditulis khawla Ben Abderrahim, Mohammad Kalled, M.S.Bouhlel pada tahun 2013 menyatakan bahwa banyak aplikasi yang menggunakan teknologi augmented reality khususnya bidang kedokteran, dengan teknologi augmented
42
reality dokter dapat terbantu dengan hasil diagnosa pasien dalam bentuk 3D. Hal itu memungkin pasien agar lebih jelas dan mengerti mengenai hasil diagnosa medis tersebut. Beberapa contoh aplikasi augmented reality pada bidang kedokteran yaitu veinviewer dan casper. Aplikasi veinviewer komputer mendeteksi melalui inframerah pada pembuluh darah pasien dan melakukan proyeksi gambar di tangan untuk membantu dokter sedangkan aplikasi casper adalah sebuah sistem yang dirancang untuk membantu ahli bedah melakukan tusukan dari cairan patologis yang terletak dekat dengan jantung tanpa membuat intervensi berat. Teknologi augmented reality dirancang untuk menggabungkan benda nyata dan virtual dalam sebuah scene. Untuk melakukan hal ini terdapat dua metode yaitu dengan menggunakan marker atau tidak menggunakan marker. Metode menggunakan marker yaitu menempatkan marker pada lingkungan nyata yang dapat menghitung koordinat 3D dari tiga titik tertentu yang dikenali oleh sistem. Marker sederhana yaitu pola dengan bingkai hitam yang dikelilingi oleh background putih, sedangkan metode tanpa menggunakan marker menggunakan benda nyata seperti tangan dan wajah tetapi sistem ini harus mengidentifikasi terlebih dahulu komponennya dan melakukan pelacakan untuk mencapai pembesaran tersebut. Tujuan penggunaan augmented reality di bidang medis yaitu untuk membantu dalam membuat keputusan yang baik berdasarkan kondisi dari adegan nyata yang ditangani oleh dokter.
2.3.3. Meningkatkan Belajar Mengajar pada Grafik Komputer Melalui Marker Augmented Reality Dalam international journal of computer applications and information technology yang ditulis Malinka Ivanova dan Georgi Ivanov pada tahun 2011 menyatakan teknologi augmented reality merupakan teknologi yang menjanjikan di bidang pendidikan terutama grafik komputer, tetapi penting untuk memastikan apakah teknologi augmented reality dapat mendukung pembelajaran grafik komputer dengan cara yang efektif. Marker augmented reality dapat secara efektif dikombinasikan dengan metode pembelajaran tradisional untuk membantu siswa memahami konsep-konsep yang kompleks dan pembuatan model 3D. Untuk memunculkan efek augmented reality, terdapat 2 cara penggunaan marker. Yang pertama marker yang didesain agar dikombinasikan dengan menggunakan web kamera dan komputer. Selain itu teknik lain untuk memunculkan efek augmented
43
reality dapat digunakan tanpa marker. Dimana teknik ini kita telah menentukan objek spesial yang ada di dunia nyata sebagai marker. Terdapat dua metode interaktif yang dirancang dalam grafik komputer, metode pertama disebut dengan “project based learning” merupakan faktor penting bagi generic (pemecahan masalah, komunikasi, berfikir kreatif dan pengambilan keputusan) dan kemampuan teknis tertentu yang diperoleh siswa saat mempelajari grafik komputer dan yang kedua disebut “learning by AR representation” yaitu mengkombinasikan metode pembelajaran tradisional (buku pelajaran dengan gambar 2D) dengan teknologi augmented reality yang interaktif untuk memahami hardware grafik komputer dengan perspektif yang berbeda. Keefektifitasan penggunaan augemented reality memberikan dampak pada para pelajar yang setuju sebesar 85% bahwa augmented reality membuat proses belajar dan mengajar menjadi lebih interaktif dan menarik. Banyak dari pelajar merasa terkesan dengan kemudahan dan kemampuan augmented reality dalam antar muka pembelajaran.
44