BAB 2 LANDAS AN TEORI
2.1 Multimedia M enurut Vaughan (2010, p1), multimedia merupakan kombinasi antara teks, seni, suara, animasi, dan video yang disampaikan kepada pengguna melalui komputer atau peralatan manipulasi elektronik dan digital yang lain. M ultimedia dapat menimbulkan sensasi dahsyat. Semua elemen sensual multimedia (gambar dan animasi, suara, video clip, dan informasi tekstual mentah) dapat digabungkan, dengan demikian pemikiran dan aksi yang ingin disampaikan dapat ditanamkan dalam pikiran orang. M ultimedia dapat memikat seseorang dengan memberikan kontrol interaktif dari proses. Sebuah multimedia, jika mengizinkan pengguna akhir dalam mengontrol apa dan kapan elemen – elemen tersebut akan dikirimkan, maka multimedia tersebut disebut sebagai multimedia interaktif. Ketika seorang pengguna hanya dapat mengarahkan suatu elemen – elemen yang terkait, maka multimedia interaktif berubah menjadi hypermedia. M enurut Hofstetter (2001, p2) multimedia adalah penggunaan komputer untuk menggabungkan teks, grafis, suara, dan video dengan link dan perangkat yang mengizinkan pengguna untuk navigasi, interaksi, menciptakan, dan komunikasi. Jadi, dapat disimpulkan bahwa multimedia adalah kombinasi dari teks, suara, gambar, video, animasi menggunakan suatu komputer atau peralatan elektronik yang bertujuan untuk membantu pengguna dalam melakukan navigasi, berinteraksi, berkarya, dan berkomunikasi.
7
8 2.1.1 Elemen Multimedia 1. Text M enurut Vaughan (2010, p19), sejak berkembangnya internet dan world wide web, teks menjadi sangat penting. Banyak web yang menggunakan HTML, yang didesain untuk menampilkan dokumen teks sederhana dengan beberapa gambar tambahan sebagai ilustrasi. Artikel majalah, instruksi manual yang kompleks, dan beberapa konten dari buku yang dapat kita baca dengan menggunakan web browser. 2. Gambar M enurut Vaughan (2010, p70) gambar dibedakan menjadi 2 jenis yakni: a. Bitmap M erupakan matriks sederhana dari titik – titik kecil yang membentuk sebuah gambar dan kemudian ditampilkan di layar komputer atau dicetak. b. Vector Vector adalah
garis yang dijelaskan oleh lokasi kedua titik. Vector
menggunakan koordinat cartesian di mana sepasang angka menjelaskan suatu titik dalam ruang dua dimensi sebagai perpotongan dari garis horizontal dan vertikal. 3. Suara M enurut Vaughan (2010, p104) suara merupakan elemen multimedia yang paling sensual. Ini berarti ucapan dalam bahasa apapun, dari bisikan hingga teriakan. Ini dapat memberikan perasaan nikmat mendengarkan musik, aksen mengejutkan untuk special effect, atau untuk mengatur suasana dan mood.
9 M enurut Hofstetter (2001, pp22-23) ada empat tipe object suara yang dapat digunakan dalam produksi multimedia : waveform audio, MIDI sound track, compact disc (CD) audio, dan MP3 files. a. Waveform audio Setiap suara mempunyai gelombang yang mendeskripsikan frekuensi amplitudo dan harmoni dari suara. b. MIDI Musical Instrument Digital Interface merupakan peranti yang tercepat, termudah, dan paling fleksibel. MIDI merekam informasi kinerja yang dibutuhkan chip suara komputer untuk memainkan musik. c. Audio CD Audio CD dapat menampung sampai 75 menit dengan ketepatan tinggi suara yang direkam. Sampling rate sebesar 44.100 samples per detik. d.
MP3 files MP3 adalah sebuah format file audio yang menggunakan MPEG audio codec
untuk
melakukan
encode/compress
(pemampatan)
dan
decode/decompress musik yang direkam. 4. Animasi M enurut Vaughan (2010, p140), animasi adalah sebuah teknik membuat sebuah presentasi statis menjadi hidup. Animasi merupakan perubahan visual sepanjang waktu dan memberi kekuatan besar pada proyek multimedia.
10 M enurut Hofstetter (2001, p26) di dalam multimedia, animasi merupakan penggunaan komputer untuk menciptakan perpindahan pada layar. Ada empat macam animasi : frame, vector, computational, dan morph. 5. Video M enurut Vaughan (2010, p164), video digital merupakan bagian penting multimedia yang paling memikat, dan merupakan piranti powerful yang membawa pengguna lebih dekat ke dunia nyata. M enurut Hofstetter (2001, p24), video menyediakan konten yang kaya untuk aplikasi multimedia. Ada 4 tipe video ang dapat digunakan dalam pengembangan aplikasi multimedia yakni: live video feeds, videotape, videodisc, dan digital video.
2.2 Interaksi Manusia dan Komputer (IMK) M enurut Shneiderman (2005, p4), kinerja manusia dan pengalaman manusia terhadap informasi dan komputer akan tetap menjadi topik penelitian dan pengembangan dalam beberapa tahun mendatang. Ilmu interaksi manusia dan komputer bermulai dari menggabungkan metode pengumpulan data dan kerangka eksperimental intelektual dengan alat yang kuat dan banyak digunakan dalam ilmu komputer.
11 2.2.1 Delapan Aturan Emas Terdapat delapan aturan emas dalam merancang antarmuka menurut Shneiderman (2005, pp74 – 75), yaitu : 1. Berusaha untuk konsisten Konsistensi dapat diterapakan dalam berbagai komponen. M isalnya konsistensi dalam urutan aksi untuk kegiatan yang mirip atau berulang-ulang. Peristilahan yang mirip harus diterapkan ke prompt, menus dan help screens. Konsistensi juga dapat diterapkan dalam penggunaan jenis huruf, tata letak, warna dan penulisan. Terdapat pengecualian apabila aksi yang diimplementasikan bersifat “penting” dan membutuhkan perhatian user seperti delete atau warning. 2. M emenuhi kebutuhan universal User interface dirancang dengan memperhatikan kebutuhan user yang beragam. Keragaman ini dapat berupa umur dan kemahiran pemakaian sistem. Dengan mengetahui kebutuhan user, maka dapat melakukan penyesuaian terhadap sistem. M isalnya dengan memberikan shorcut bagi expert user. 3. M emberikan umpan balik yang informatif Untuk setiap tindakan user harus diterapkan sebuah umpan balik. Kegunaan agar user dapat mengetahui konsekuensi dari aksinya sendiri. Contohnya pada saat user menjalankan save document, jika komputer tidak memberi umpan balik yang jelas, maka user akan bingung apakah document telah disimpan atau belum. 4. Desain dialog yang menghasilkan keadaan akhir Urutan aksi harus disusun dalam kelompok yang terdapat bagian awal, tengah dan bagian akhir. Umpan balik yang informatif setelah akhir dari dialog dapat
12 memberi user rasa lega. Contoh pada waktu instalasi sebuah program ke dalam komputer adanya dialog awal sampai dialog akhir yang menyatakan bahwa instalasi telah sukses. 5. M encegah kesalahan / memberikan penanganan kesalahan yang sederhana M erancang sebuah sistem di mana user tidak dapat melakukan kesalahan yang terlalu serius. Contoh pada saat pengisiaan text box umur, user tidak boleh memasuki alphabet selain angka. Jika user melakukan kesalahan, interface harus mampu mendeteksi kesalahan dan memberi umpan balik mengenai kesalahan user. 6. M emungkinkan pembalikan aksi (undo) yang mudah Aksi yang telah dilakukan user harus dapat dibalik. Fitur ini memberi user rasa lega jika secara tidak sengaja melakukan kesalahan. Contoh user dapat membalikan aksi seperti delete, jika dengan tidak sengaja menghapus file yang penting. 7. M endukung pusat kendali internal M emberi perasaan kepada user bahwa dialah yang memegang kendali atas komputer dan bukanlah sebaliknya komputer yang memegang kendali. Dengan memberikan hak ke user untuk mengubah setting dan tata letak toolbar merupakan salah satu contoh. 8. M engurangi beban ingatan jangka pendek M anusia memilki ingatan yang terbatas dalam pencernaan informasi. Jadi tampilan layar kepada user harus dibuat sesederhana mungkin, untuk mengurangi beban ingatan user.
13 2.3 Software Engineering M enurut Pressman (2010, p12) dalam rangka membangun sebuah perangkat lunak yang siap memenuhi tantangan abad ke 21, ada beberapa realitas yang harus diperhatikan: •
Perangkat lunak telah menjadi bagian hampir disetiap aspek kehidupan dan konsekuensinya, jumlah orang yang tertarik pada feature dan fungsi yang disediakan oleh aplikasi tertentu meningkat drastis
•
Permintaaan kebutuhan akan teknologi informasi oleh invidu, bisnis, dan pemerintah berkembang pesat setiap tahunnya. Banyak perusahaan kini membuat kembali program komputer yang pernah dibangun sebelumnya. Perangkat lunak yang canggih kini ditanamkan ke dalam segalanya, mulai dari peralatan elektronik, perangkat medis, hingga ke dalam senjata. Kompleksitas dari sistem berbasis komputer ini menuntut perhatian terhadap interaksi dari semua elemen.
•
Individu, bisnis, dan pemerintah semakin bergantung pada perangkat lunak untuk pengambilan keputusan strategis maupun taktis serta untuk operasi dan kontrol sehari – hari. Perangkat lunak yang mengalami kegagalan dapat menyebabkan orang – orang dan perusahaan dapat mengalami ketidaknyamananan baik sepele maupun fatal. Hal ini menunjukan bahwa perangkat lunak harus memiliki kualitas yang baik.
•
Sebagai imbas dari aplikasi yang berkembang, kemungkinan bahwa pengguna pun akan berkembang. Permintaan untuk adaptasi dan perkembangan pun juga akan tumbuh. Ini menunjukan bahwa perangkat lunak harus dipelihara
14 IEEE telah merumuskan definisi yang lebih komprehensif untuk Software Engineering yaitu penerapan pendekatan
sistematis,
disiplin,
pendekatan
kuantitatif
untuk
pengembangan, operasi, dan pemeliharaan perangkat lunak. 2.3.1 Agile Development Agility telah menjadi kata kunci ketika mendeskripsikan sebuah proses software yang modern. Sebuah team yang agile merupakan sebuah team yang dapat dengan segera merespon terhadap perubahan yang terjadi. Perubahan merupakan sesuatu yang sering terjadi di dalam pengembangan piranti lunak, mulai dari perubahan ketika piranti lunak sedang dibangun, perubahan pada anggota tim, perubahan akibat teknologi baru maupun perubahan – perubahan yang dapat mempengaruhi hasil dari pengembangan piranti lunak. (Pressman, 2010, p67) M enurut Pressman (2010, pp71 - 73), dalam agile development, peran manusia / tim sangat penting dan akan berpengaruh pada pengembangan piranti lunak. Agile development berfokus pada bakat dan keterampilan pada tiap individu. Keterampilan dan bakat yang diperlukan untuk membangun sebuah tim dalam agile development meliputi : a. Competence Dalam konteks agile development, “competence” mencakup bakat bawaan, keterampilan perangkat lunak yang dibutuhkan, dan pengetahuan secara keseluruhan mengenai proses yang dipilih oleh tim.
15 b. Common focus Semua anggota tim, meskipun dapat melakukan tugas yang berbeda, mereka semua harus fokus terhadap satu tujuan, yaitu memberikan software kepada customer sesuai dengan waktu yang dijanjikan. c. Collaboration Anggota tim harus bekerja sama satu sama lain dan dengan stakeholder lainnya untuk menganalisis dan menggunakan informasi yang dikomunikasikan kepada anggota tim. d. Decision-making ability Setiap tim yang baik harus diperbolehkan memiliki kebebasan untuk mengontrol nasibnya sendiri. Hal ini menyiratkan bahwa tim diberikan otoritas untuk mengambil keputusan dalam proyek. e. Fuzzy problem-solving ability Setiap software manager harus menyadari bahwa sebuah tim agile akan terus berurusan dengan ambiguitas dan terus menerus akan diterjang oleh perubahan yang terjadi. Dalam beberapa kasus, tim harus menerima kenyataan bahwa masalah yang mereka pecahkan saat ini mungkin bukan masalah yang harus mereka pecahkan besok. f. Mutual trust and respect Tim harus memiliki rasa kepercayaan dan rasa hormat yang diperlukan untuk membentuk suatu tim yang kuat.
16 g. Self-organization Dalam konteks agile development, sebuah tim agile harus : 1) Dapat mengorganisasi dirinya sendiri dalam mengatur pekerjaan yang akan diselesaikan. 2) Dapat
mengatur
proses
yang
terbaik
untuk
mengakomodasi
lingkungannya. 3) M engatur jadwal kerja terbaik untuk mencapai waktu yang telah ditentukan. 2.3.2 Scrum Scrum adalah metode pengembangan software agile yang ditemukan oleh Jeff Sutherland dan timnya pada tahun 1990-an. Dalam beberapa tahun berikutnya pengembangan lebih lanjut dalam metode Scrum dilakukan oleh Schwaber dan Beedle. (Pressman, 2010, p82) Prinsip Scrum adalah konsisten dengan agile manifesto dan dijadikan pedoman aktivitas pengembangan dalam suatu proses yang menggabungkan aktivitas framework berikut ini : kebutuhan, analisis, desain, evolusi, dan pengiriman. Sprint adalah satuan tugas yang terjadi dalam aktivitas kerangka kerja. Pekerjaaan dilakukan dalam Sprint disesuaikan dengan masalah yang dihadapi dan didefinisikan dan sering dimodifikasi secara real time oleh tim Scrum.
17
Setiap 24 jam Scrum : pertemuan hari an selama 15 menit.
Sprint Backlog : Fitur yang ditetapkan untuk di sprint
Item backlog yang diexpand oleh tim
30 hari
Fungsionalitas baru didemonstrasikan pada akhir sprint Product Backlog : Fitur produk yang diprioritaskan dan diinginkan oleh cumstomer
Gambar 2.1 Alur Proses Scrum (Sumber : Pressman, 2010, p83)
Backlog adalah sebuah list prioritas kebutuhan atau fitur dari proyek yang dibutuhkan oleh customer. Backlog dapat diubah setiap saat. Sprint terdiri dari satuan kerja yang diperlukan untuk mencapai kebutuhan yang telah ditetapkan dalam backlog yang harus sesuai dengan waktu yang telah ditentukan (biasanya 30 hari). Scrum Meeting adalah pertemuan 15 menit yang dilakukan setiap hari oleh tim Scrum. Ada 3 pertanyaan yang biasa muncul : a. Apa saja yang telah dilakukan sejak pertemuan terakhir kali ? b. Kesulitan apa yang dihadapi ? c. Apa yang ingin dicapai pada pertemuan yang akan datang ?
18 2.4 Unified Modelling Language (UML) M enurut Bruegge dan Dutoit (2010, p30) Unified Modeling Language (UML) merupakan suatu notasi yang merupakan hasil dari penggabungan dari OMT (Object Modelling Technique) dan OOSE (Object-Oriented Software Engineering). Tujuan utama dari UM L adalah untuk menyediakan notasi standar yang dapat digunakan dalam metode object-oriented dan untuk memilih dan mengintegrasi unsur – unsur yang ada di dalam OOP. Dengan menggunakan beberapa teknik dari OOSE (use case diagram) dan OM T (class diagram) maka UM L dapat menyediakan konstruksi untuk berbagai sistem dan kegiatan didalamnya (misalnya, sistem terdistribusi, analisis, desain sistem). Pada UM L terdapat beberapa notasi UM L yang digunakan dalam konsep modeling, yaitu : a. Class Diagram b. Use case Diagram c. Sequence Diagram d. State Machine Diagram e. Activity Diagram 2.4.1 Use Case Diagram M enurut Bruegge dan Dutoit (2010, p43) use case diagram merepresentasikan fungsional sebuah sistem dari sisi dan sudut pandang user yang akan menggunakannya. Use case mendeskripsikan perilaku dari sistem sesuai dengan sudut pandang dari actor. Perilaku yang dideskripsikan oleh model use case juga menggambarkan perilaku
19 eksternal. Sebuah use case menggambarkan fungsi yang disediakan oleh sistem dalam bentuk serangkaian dari event. Actor adalah entitas eksternal yang berinteraksi dengan sistem. Contoh actor adalah user yang memiliki peran sebagai administrasi sistem, pelanggan bank. Actor memiliki nama dan deskripsi yang unik.
Gambar 2.2 Use Case Diagram (Sumber : Bruegge dan Dutoit, 2010, p44)
Actor memulai use case untuk mengakses fungsi dari sistem, use case dapat memulai use case lain dan mengumpulkan informasi dari actor. Pada gambar 2.2 mengambarkan sebuah sistem kecelakaan. Pada contoh tersebut field officer dan dispatcher adalah actor, di mana field officer menjalankan sebuah use case yaitu ReportEmergency yang telah disediakan oleh dispatcher. Dalam use case yang kompleks, beberapa pengulangan aksi dapat saja terjadi pada saat sistem mengeksekusi suatu tugas. Dengan demikian relasi include dapat digunakan apabila suatu tugas akan dikerjakan bersamaan dengan eksekusi tugas lainnya. Berbeda dengan include, exclude dapat digunakan pada suatu use case apabila saat tugas tersebut dikerjakan, maka ada kemungkinan tugas yang lain dikerjakan atau tidak sama sekali. (Bruegge dan Dutoit, 2010, p46-48)
20 2.4.2 Class Diagram Class Diagram menggambarkan sebuah struktur sistem dalam istilah class dan object. Class adalah sebuah abstraksi yang menetapkan atribut dari fungsi dari sebuah object. Sebuah class adalah koleksi dari beberapa object yang memiliki atribut dan fungsi yang sama. Object adalah sebuah entitas yang melakukan enkapsulasi atribut dan fungsi. Setiap object memiliki sebuah identitas. (Bruegge dan Dutoit, 2010, p50) Class dan Object pada UM L dibuat dalam bentuk kotak yang dibagi menjadi 3 bagian. Bagian atas menjelaskan nama, bagian tengah menjelaskan atribut, dan bagian bawah menjelaskan operasi dari sebuah class atau object. Pemberian nama class dimulai dengan huruf kapital.
Gambar 2.3 Class Diagram (Sumber : Bruegge dan Dutoit, 2010, p51)
Sebuah link menjelaskan adanya hubungan antara dua object. Associaton adalah relasi antara dua class yang dipresentasikan dengan link. Contoh, setiap object FieldOfficer terdapat link EmergencyReport yaitu laporan yang ditulis oleh FieldOfficer. Garis yang menghubungkan FieldOfficer dengan EmergencyReport adalah sebuah association.
21 2.4.3 Sequence Diagram Sequence Diagram merepresentasikan keikutsertaan object dalam sebuah interkasi sistem secara horizontal dan vertikal. (Bruegge dan Dutoit, 2010, p59)
Gambar 2.4 Sequence Diagram (Sumbe r : Bruegge dan Dutoit, 2010, p60)
Contoh sebuah jam tangan dengan dua buah tombol yang dinamakan 2Bwatch, 2BWatch diperlukan 2BwatchOwner untuk menyetel jam tangan dengan menekan kedua tombol secara bersamaan. Setelah ditekan variable hour, minute , dan second akan berkedip, menandakan user dapat mengubah variabel tersebut dengan menekan tombol 1 untuk memindah ke variabel atau tombol 2 untuk menaikan nilai variabel, dan jam tangan akan selesai disetel setelah menekan dua tombol secara bersamaan. Proses tersebut yang akan dibagi menjadi object yang akan dilalui dari message apa saja yang akan di-passing. Pada
gambar
2.4,
object
yang
akan
dilalui
adalah
2BWatchInput,
2BWatchDisplay, 2BwatchTime, dan message yang di-passing adalah pressButton1(), pressButon2(), blinkHour(), commitNewTime(),dan sebagainya. Proses dimulai dari kiri ke kanan dan dari atas ke bawah.
22 2.4.4 State Machine Diagram State machine merupakan notasi untuk menggambarkan perilaku dinamis dari sebuah object individu kedalam sebuah state dan transisi antara state. State merupakan set tertentu dari nilai untuk suatu benda. State machine diagram berfokus pada transisi antara state sebagai hasil dari kejadian eksternal pada tiap object individu. State adalah kondisi yang dipenuhi oleh atribut dari sebuah object. Contohnya, pengelolaan sebuah insiden dalam FRIEND terdapat empat state: Active, Inactive, Closed, dan Archived (lihat gambar 2.5). Sebuah insiden yang Active menunjukkan situasi yang memerlukan respon (misalnya keadaan yang sedang berlangsung seperti kebakaran dan kecelakaan lalu lintas). Sebuah insiden yang Inactive menunjukkan sebuah situasi yang telah ditangani, namun belum tertulis di dalam sebuah laporan (misalnya api telah dipadamkan, tetapi perkiraan kerusakan belum selesai). Sebuah insiden yang Closed merupakan situasi yang telah ditangani dan didokumentasikan. Sebuah insiden yang Archieved merupakan insiden yang telah ditutup dan dokumentasinya telah dipindahkan ke ruang penyimpanan.
Gambar 2.5 State Machine Diagram dalam Insiden (Sumber : Bruegge dan Dutoit, 2010, p63)
23 2.4.5 Activity Diagram Activity
Diagram
merupakan
diagram
alur
yang
digunakan
untuk
merepresentasikan alur data atau alur kontrol pada suatu sistem. (Bruegge dan Dutoit, 2010, p44) Sebuah activity diagram menggambarkan sebuah sistem dalam bentuk aktivitas. Aktivitas merupakan sebuah keadaan yang mewakili eksekusi dari suatu operasi. Penyelesaian operasi ini memicu transisi ke aktivitas lainnya. Activity diagram dapat digunakan untuk merepresentasikan alur kontrol dan alur data. (Bruegge dan Dutoit, 2010, p33-34) Sebagai contoh, gambar 2.6 merupakan activity diagram yang merepresentasikan aktivitas yang berhubungan dengan pengelolaan suatu insiden di dalam FRIEND. Persegi panjang bulat mewakili aktivitas, panah mewakili transisi antar aktivitas, dan bar tebal mewakili sebuah sinkronisasi dari alur kontrol. Pada gambar 2.5 digambarkan bahwa AllocateResources, CoordinateResources, dan DocumentIncident hanya dapat dimulai setelah aktivitas OpenIncident telah dilakukan. Demikian pula dengan ArchiveIncident yang hanya dapat dimulai ketika Allocate Resources, Coordinate Resources, dan Document Incident telah dilakukan.
Gambar 2.6 Activity Diagram (Sumbe r : Bruegge dan Dutoit, 2010, p34)
24
2.5 XML XML
adalah
sebuah
meta-language
(bahasa
yang
digunakan
untuk
mendeskripsikan bahasa lain) yang memungkinkan seorang designer membuat sendiri tag yang menyediakan fungsi yang tidak tersedia dalam HTML (Connolly, 2005, p1073). XML merupakan sebuah versi meta-language yang diturunkan dari Standard Generalized Markup Language (SGML), yang didesain khusus untuk dokumen website dan dapat mendukung perancang untuk menciptakan tag sendiri, yang memiliki kemampuan untuk mendefinisikan, mentransmisikan, memvalidasikan dan menginterpretasikan data antara aplikasi dan organisasi. Keunggulan yang dimiliki XML antara lain (Connolly, 2005, p1074) : •
Simplicity. XML menggunakan bahasa yang sederhana, mudah dimengerti oleh manusia dan mesin.
•
Open standard and platform / vendor-independent. XML menggunakan standar terbuka sehingga dapat dikembangkan sesuai dengan kebutuhan user.
•
Extensibility. XML memungkinkan user untuk mendefinisikan tag sendiri sehingga dapat dikembangkan sesuai dengan kebutuhan user.
•
Reuse. XML memungkinkan libraries dari XML tags untuk dibangun sekali dan dapat digunakan kembali oleh banyak aplikasi.
•
Separation of content and presentation. XML memisahkan antara isi dan tampilan dari suatu data sesuai dengan pengaturan yang diinginkan.
•
Improved load balancing. Data dapat ditampilkan pada browser dengan baik.
25 •
Support
for
the
integration
of
data
multiplu
source.
Kemampuan
mengintegrasikan data dari berbagai macam sumber yang berbeda adalah hal yang sulit dan memakan waktu. XML dapat menggabungkan data dari banyak sumber yang berbeda dengan cara yang mudah. •
Ability to describe data from a wide variety of applications. XM L dapat digunakan untuk mendeskripsikan data yang terdapat pada aplikasi yang berbeda.
•
More advance search engine. Dengan XML, mesin pencarian akan mampu untuk menyederhanakan berbagai macam tags.
•
New opportunities. XML memiliki banyak kelebihan yang dapat dihadirkan dalam banyak aplikasi teknologi saat ini. Struktur hirarkinya cocok untuk kebanyakan tipe dokumen.
Kekurangan – kekurangan XM L : •
Parser harus didesain untuk memahami struktur data bersarang yang berubah – ubah dan harus melakukan pengecekan tambahan untuk mendeteksi sintaks atau data yang tidak terformat atau terurut dengan benar.
•
Urutan penekanan tombol untuk mengetikkan ekspresi XML pada keyboard standar komputer seringkali kaku.
Contoh bahasa XM L :
26 1 <speed>2 0 2 <speed>2 13 2.6 Game M enurut Rollings dan Adams (2003, p34), Game merupakan sebuah bentuk hiburan partisipatif dan interaktif. M enonton televisi, membaca, dan menonton bioskop merupakan bentuk hiburan pasif. Sebuah game adalah hal yang jauh lebih rumit. Ketika seseorang memainkan game, mereka terhibur dengan berpartisipasi secara aktif. Bentuk hiburan aktif perlahanlahan mendapatkan lahan lebih dari hiburan pasif, orang-orang mulai memainkan game role-playing online daripada menonton telvisi. Orang-orang menyukai perasaan keterlibatan dan pemberdayaan yang diberikan oleh sebuah permainan.
27 Sebuah game berlangsung di dalam alam maya yang diatur oleh peraturanperaturan. Peraturan-peraturan mendefinisikan aksi-aksi atau perpindahan yang pemain ciptakan di dalam game dan juga aksi yang mungkin tidak mereka ciptakan. 2.6.1 Game Genre M enurut Rollings dan Adams (2003, p289), klasifikasi game berdasarkan gameplay dapat dibedakan sebagai berikut: 2.6.1.1 Action Game Perancangan action game bervariasi dimulai dari 2D sampai 3D. Tetapi semua game dalam kategori ini memiliki aspek yang sama yaitu merupakan twich game. Kemampuan pemain diuji berdasarkan reaction time dan hand-eye coordination di bawah tekanan. Action game biasanya dibuat sesederhana mungkin karena ada keterbatasan informasi yang bisa diterima pemain ketika memainkan permainan. 2.6.1.2 Strategy Game Strategy game merupakan game yang memerlukan analisa dan perencanaan berserta pertimbangan terhadap langkah- langkah yang akan diambil selanjutnya untuk memenangi permainan. Strategy game memiliki 2 golongan yaitu: •
Turn- based strategy adalah gameplay di mana pemain bermain secara bergantian. Tipe ini merupakan gameplay klasik dari strategy game seperti permainan catur.
•
Real time strategy adalah gameplay di mana pemain dan lawan bermain dan melakukan pertinah pada waktu atau time frame secara bersamaan. Jenis
28 gameplay ini jauh lebih kompleks dari turn – based strategy karena memerlukan pengambilan keputusan yang cepat dan beradaptasi ke situasi. 2.6.1.3 Role Playing Game Role Playing Game adalah sebuah game di mana pemain dapat membayangkan dan berempati terhadap karakter yang dikendalikan. Genre RPG selalu didukung dengan storyline yang kuat sehingga pemain ingin mengetahui apa yang akan terjadi pada karakter yang dimainkan selanjutnya. Pemain biasanya memiliki kendali atas kemampuan dan atribut yang dimiliki karakter seperti skill dan decision dalam alur permainan. Selain storyline perkembangan karakter merupakan unsur yang menentukan kualitas sebuah game RPG. 2.6.1.4 Sport Game Sport game adalah permainan olahrga yang direalisasikan ke dalam bentuk game. Sebuah sport game memiliki peraturan yang sama atau mendekati dengan permainan olahraga asli. Umunya sport game memiliki match mode di mana pemain dapat bertanding dengan komputer atau pemain lainnya. Intinya, yang menjadi pondasi dari sport game adalah sebuah pertandingan. 2.6.1.5 Vehicle Simulation Genre ini berusaha untuk menciptakan suasana seolah seseorang dapat mengendalikan sebuah kendaraan. Kendaraan tersebut dapat berupa mobil, pesawat, kapal selam atau kendaraan imajinasi. Ciri – ciri dair vehicle simulation adalah dapat
29 memberikan
gambaran bagaimana menjalankan sebuah kendaraan asli dengan
memainkan game demikian. 2.6.1.6 Construction and Management Simulation Genre ini merupakan game yang menggambarkan sebuah proses. Tujuan dari permainan bukanlah mengalahkan musuh atau orang lain, akan tetapi permainan lebih menitikberatkan pada pencapaian-pencapaian yang dilakukan. 2.6.1.7 Adventure Game Tidak seperti genre lainnya yang mudah didefinisikan. Orang – orang sering memiliki pengertian bahwa action game dan adventure game adalah sama. Action game menuntut pemain untuk bertindak dengan cepat, sedangkan adventure game tidak demikian. Adventure game memiliki sifat – sifat menelusuri, mengumpulkan object dan menyelesaikan puzzle. Walaupun seiring dengan perkembangan game, terdapat perpaduan antara action game dengan adventure game yang menghasilkan action – adventure game. 2.6.1.8 Artificial Life Artificial life merupakan game yang menggambarkan siklus hidup mahkluk hidup. Game yang populer seperti The Sims termasuk ke dalam kategori ini karena mensimulasikan siklus hidup manusia. M ahkluk hidup yang dimaksud di dalam konteks ini dapat berupa tanaman atau mahluk imajinasi yang dibuat seperti dalam game dengan judul Spore.
30 2.6.1.9 Puzzle Game Dari genre yang sudah dijelaskan di atas. Sebenarnya banyak unsur puzzle yang sudah terkandung di dalam game seperti adventure game. Puzzle game adalah genre di mana pemain hanya perlu menyelesaikan puzzle. 2.6.2 Game Design M enurut Rollings dan Adams (2003, p4), merancang game adalah proses dari: a. M embayangkan permainan. b. M enentukan cara permainan tersebut bekerja. c. M enjelaskan unsur-unsur yang membentuk permainan. d. M engirimkan informasi kepada kelompok yang akan membuat game tersebut. M enurut Rollings dan Adams (2003, pp8-13) game design dipecah menjadi 3 bagian, yaitu: core mechanics, cerita dan narasi, dan interaktivitas. 1. Core Mechanics Aturan yang mendefiniskan operasi dari dunia permainan membentuk mekanisme inti permainan, atau dasar gameplay. M ekanisme ini merupakan terjemahan dari visi perancang ke dalam sekumpulan peraturan yang konsisten yang dapat diinterprestasikan oleh komputer atau lebih tepatnya aturan - aturan yang dapat diinterpretasikan oleh orang yang menulis software yang diinterpretasikan oleh komputer.
31 2. Cerita dan Narasi Semua permainan mempunyai cerita. Kompleksitas dan kedalaman dari cerita tersebut tergantung dari permainannya. Narasi berarti bagian dari cerita yang diceritakan. Narasi tidak bersifat interaktif, merupakan bagian presentasi dari cerita. Tanpa cerita, atau beberapa cara bagi pemain untuk secara implisit membentuk ceritanya sendiri, permainan sederhana tidak akan menarik bagi user. Narasi di dalam permainan sering kali cukup linear, tidak terpengaruh oleh tindakan- tindakan pemain dan tidak berubah dari satu permainan ke permainan berikutnya. 3. Interaktivitas Interaktivitas adalah cara bagi pemain untuk melihat, mendengar, dan beraksi di dalam dunia permainan. Interaktivitas mencakup banyak topik - topik berbeda: grafis, suara, antarmuka pengguna,
segala sesuatu yang datang
bersama- sama untuk mempresentasikan pengalaman bermain. Interaktivitas telah menjadi kata kunci yang berhubungan dengan komputer dan game untuk beberapa waktu. Interaktivitas yang buruk menghancurkan banyak produk. 2.6.3 Game Concept Salah satu proses dalam game design adalah menyampaikan informasi kepada developer team yaitu orang – orang yang akan membangun game yang akan dirancang. Di sini peran game designer untuk menggunakan dokumentasi sebagai media penghubung antara ide, imajinasi, dan informasi dibutuhkan. Design document terdiri dari high concept, game treatment, game script.
32 Perancangan sebuah game selalu muncul dengan konsep kasar. Konsep kasar inilah yang akan dituangkan ke dalam dokumentasi high concept. Perancang menulis secara garis besar seperti apa game tersebut apabila sudah jadi. Tujuannya adalah memperoleh feedback dari stakeholder lainnya seperti publisher, product owner. Game treatment merupakan penjelasan yang lebih detil bila dibandingkan dengan high concept. Dokumen ini biasanya menjelaskan elemen – elemen yang berada di dalam game seperti latar belakang setiap karakter, sketsa karakter, story board game, dan setiap elemen yang dapat memberikan gambaran bagaimana game tersebut akan dimainkan nantinya. Game treatment juga harus dapat menunjukan potensial game yang dirancang dibanding game – game yang sudah beredar di pasar. Game script adalah dokumen yang paling komprehensif karena mencakup semua elemen yang ada di dalam game. Dokumen ini berisi semua jawaban terhadap rancangan game yang akan dibuat. Hal –hal yang menjadi bagian dari game script berupa storyline, karakter, user interface, dan peraturan main. Dokumentasi terhadap spesifikasi teknik perlu dicantumkan apabila merasa diperlukan. Intinya, orang – orang dapat memainkan game hanya dengan membaca game script. Proses membayangkan sebuah game dimulai dengan konsep game
yang
sederhana. Rollings dan Adams memberikan pertanyaan – pertanyaan yang menjawab semua kebutuhan dasar dalam membentuk konsep game seperti berikut: 1. Apa sifat dari gameplay? Tantangan apa saja yang akan dihadapi pemain? Dan aksi apa saja yang harus dilakukan pemain untuk mengatasi tantangan tersebut?
33 2. Apa kondisi kemenangan dalam sebuah permainan? Apa yang ingin dicapai oleh pemain? 3. Apa peran dari pemain? Apakah pemain berpura – pura menjadi seseorang atau sesuatu? Jika iya, apa? Bagaimana peran pemain membantu membentuk gameplay? 4. Apa game setting permainan? Di mana game setting mengambil tempat? 5. Apa model interaksi dari pemain? 6. Apa sudut pandang utama dalam game? Bagaimana pemain akan melihat dunia game dari layar? Apakah ada kemungkinan lebih dari dua sudut pandang? 7. Apa struktur umum dari game? Apa yang terjadi di setiap mode, fungsi apa saja yang dipenuhi setiap mode? 8. Apakah game bersifat kompetitif, kooperatif, berbasis tim, atau single player? Jika game bersifat multiplayer, apakah mereka menggunakan mesin yang sama atau berbeda mesin dan dihubungkan melalui jaringan? 9. Apakah game memiliki cerita dengan berjalannya game? Rangkumlah plot menjadi satu atau dua kalimat. 10. Apakah game merupakan salah satu jenis genre yang sudah ada? 11. Apa yang membuat orang – orang ingin memainkan game ini? Orang – orang apa saja yang tertarik untuk memainkan game ini?
34 2.6.4 Game Setting and World Game world adalah sebuah alam semesta tiruan yang diciptakan oleh pemain. (Rollings dan Adams, 2003, p55) M embayangkan game world seperti membayangkan diri sendiri sebagai pencipta dari alam semesta itu sendiri. M elakukan sebuah permainan catur, papan catur itu sendiri adalah alam semestanya. M emainkan solitaire di komputer, layar itu adalah alam semesta tiruannya dengan kartu sebagai object di dalam alam semesta tersebut. Alam semesta mememiliki 2 unsur yaitu tempat dan waktu. Ketika membayangkan sebuah game world, pemain melakukan perbatasan – perbatasan terhadap game world tersebut. Ketika memainkan catur, anak – anak catur yang diletakkan di luar dari papan bukanlah bagian dari game world. Pembatasan terhadap waktu dapat diilustrasikan dalam permainan sepak bola. Ada permulaan dan akhir. Ketika pemain selesai memainkan game, maka alam semesta yang dibayangkan tersebut akan menghilang. Game Setting adalah komponen fiksi yang terdapat dalam game world. Kesan pertama kali bahwa game setting dan game world adalah sama. Akan tetapi, kedua elemen itu sangat berbeda. Game Setting membuat pemain membayangkan object di dalam game world sebagai object lain. Permainan Tic Tac Toe tidak memiliki setting karena pemain tidak membayangkan tanda yang digambarkan sebagai tentara atau ratu. Sedangkan permainan catur memiliki setting, anak catur tersebut tidak dilihatnya hanya semata – mata sebuah keping kayu yang berdiri. Tetapi permain membayangkan bahwa anak – anak catur tersebut adalah raja, ratu, benteng, dan lain – lain.
35 Game Setting mampu membuat orang – orang tertarik untuk memainkan sebuah game. Sebuah game setting yang dibuat sesuai dengan tema permainan menambah nilai jualnya. Akan tetapi, seorang pemain terus memainkan sebuah game bukan hanya tergantung pada game setting. Dalam sebuah game, gameplay yang menggambil peran dalam menyajikan interaksi permainan yang menyenangkan. 2.6.5 Game Balancing M enurut Andrew Rollings (2003, p239) permainan yang seimbang adalah permainan dimana faktor penentu utama kesuksesannya yaitu kemampuan dari pemain tersebut. Hal ini bukan berarti faktor lainnya (contoh: keberuntungan) dihilangkan, tetapi pemain yang lebih baik seharusnya lebih sukses dibandingkan yang kurang baik kecuali pemain tersebut sedang mengalami kesialan terus menerus. Jenis Game Balancing terdiri dari 3 jenis: a. Static Balance (Statis) Keseimbangan statis adalah proses menyakinkan bahwa permainan sudah adil dan semua elemen di dalamnya agar tidak terlalu dominan sehingga tidak merusak permainan. Contoh dari keseimbangan statis: •
Perbandingan kekuatan relatif unit dalam permainan perang.
•
Jarak rata – rata loncat Mario Bross dengan jarak rata – rata antar lantai.
b. Symmetry Balance (Simetris) Keseimbangan simetris merupakan cara termudah untuk menyeimbangkan sebuah game, dimana setiap permain diberikan kondisi dan kemampuan awal yang sama.
36 Hal ini menjamin hasil dari sebuah game bergantung kepada kemampuan dari para pemain. Contoh permainan yang simetris: Suit c. Dynamic Balance (Dinamis) Keseimbangan dinamis menjangkau awal , pertengahan, dan akhir dari analisis game klasik dalam skala yang lebih baik. Berbeda dari keseimbangan statis, karena
diharuskan
untuk
mempertimbangkan
interaksi
antara
pemain.
Keseimbangan dinamis akan berubah setiap adanya pergantian waktu serta interaksi dari pemain. Keseimbangan dinamis memiliki 3 model interaksi yakni: •
M engendalikan Keseimbangan.
•
M enjaga Keseimbangan.
•
M enghancurkan Keseimbangan.
Jadi Game yang seimbang harus memiliki poin poin berikut: •
Konsisten secara internal.
•
M emastikan bahwa kemenangan ditentukan oleh kemampuan pemain, bukan faktor acak.
•
M emastikan bahwa semua pemain memiliki akses yang sama atau fungsi pilihan yang seimbang.
•
M emastikan bahwa atribut untuk setiap pemain bayar adalah orthogonal.
•
M emastikan bahwa kombinasi dan penggabungan tidak merusak keseimbangan.
•
M emberikan tantangan yang konsisten.
37 •
M emberikan pemain pengalaman bermain yang adil.
•
M enghindari stagnanisasi.
•
M enghindari hal yang sepele (Trivialities).
•
M emeberikan pilihan tingkat kesulitan.
2.6.6 Story telling and Narrative Setiap game memiliki sebuah cerita. Baik cerita itu pendek atau panjang, unsur cerita pasti ada. Beberapa game membutuhkan cerita yang menarik di mana cerita itu sendiri adalah sebuah game. Sedangkan ada beberapa game yang hanya memerlukan cerita yang singkat atau bahkan tidak dituliskan ceritanya. Permainan Tetris merupakan contoh permainan yang tidak dituliskan ceritanya (Rolling dan Andrew, 2003, p55).
2.7 Augmented Reality AR merupakan tampilan real-time baik secara langsung maupun tidak langsung dari fisik lingkungan nyata yang telah ditambahkan (augmented) dengan menambahkan informasi maya yang dihasilkan oleh komputer. AR merupakan tampilan 3D yang interaktif dengan mengkombinasikan object nyata dan maya. (Furht, 2011, p3)
38
Gambar 2.7 Halma AR (Sumber : Furht, 2011, p32)
Tujuan dari augmented reality adalah mempermudah kehidupan para user dengan membawa informasi maya, tidak hanya lingkungan sekitarnya, tetapi juga tampilan dunia nyata secara tidak langsung. AR juga menambahkan persepsi dan interaksi user terhadap dunia nyata. AR juga dapat digunakan untuk membantu user yang memiliki cacat indra dengan
menggunakan
sensor
seperti user yang mengalami kebutaan
dengan
menggunakan audio, atau user tuna rungu dengan menambahkan petunjuk visual. 2.7.1 Sejarah Augmented Reality Augmented reality pertama kali muncul pada tahun 1950-an ketika M orton Heilig, seorang cinematographer, berpendapat bahwa cinema adalah kegiatan yang memiliki kemampuan untuk menarik penonton ke dalam aktivitas pada layar dengan memanfaatkan semua indra secara efektif. Pada 1962, Heilig membangun sebuah prototype dari pemikirannya tersebut, sesuai dengan yang digambarkannya pada tahun 1955 dalam cinema yang berjudul “The Cinema of the Future”. Kemudian Ivan
39 Sutherland menciptakan head mounted display (sebuah perangkat keras yang dapat dikenakan pada kepala dan dilengkapi dengan sebuah display) pada tahun 1966. Pada tahun 1968, Sutherland merupakan orang pertama yang menciptakan sistem augmented reality dengan menggunakan sebuah head mounted display yang tembus pandang.
Gambar 2.8 Ivan Sutherland HMD (Sumbe r : Furht, 2011, p5)
Pada tahun 1975, M yron Krueger menciptakan Videoplace, ruangan yang mengizinkan user untuk berinteraksi dengan object maya untuk pertama kalinya. Kemudian, Tom Caudell dan David M izell mulai membahas keuntungan AR daripada VR, seperti membutuhkan daya yang lebih sedikit. Pada tahun yang sama, L.B Rosenberg mengembangkan salah satu sistem AR yang dinamakan Virtual Fixtures. Mobile AR game dikembangkan oleh Bruce Thomas pada tahun 2000, yang kemudian pada tahun 2005
40 Horizon Report memprediksi bahwa teknologi ini akan maju pada 4 – 5 tahun mendatang. Sekarang, dengan teknologi yang canggih, sistem AR dan aplikasi AR yang ada semakin bertambah, seiring dengan munculnya iPad 2 dan kompetitornya. (Furht, 2011, pp4-5) 2.7.2 Komponen Augmented Reality M enurut Furht (2011, pp9-12) komponen - komponen yang dibutuhkan augmented reality adalah : 1. Display Terdapat tiga tipe display yang sering digunakan dalam augmented reality yaitu: head mounted displays (HMD), handled displays, dan spatial displays. Alat ini berfungsi memproyeksikan informasi grafikal ke dalam object (yang ada di dalam dunia maya) yang digabung dengan proyeksi gambar dunia nyata.
Gambar 2.9 Handled Displays (Sumbe r : Furht, 2011, p10)
Spatial displays menggunakan proyektor untuk menampilkan gambar maya yang telah ditambahkan ke dunia nyata.
41
Gambar 2.10 Spatial Displays (Sumber : Furht, 2011, p11)
2. Input Devices Sebuah perangkat yang dibutuhkan oleh sistem AR agar dapat memproses yang diinginkan oleh user. Device tersebut dapat berupa touch screen atau pun device lainnya yang dapat digunakan untuk memberi input ke dalam sistem AR. 3. Tracking M erupakan perangkat seperti kamera digital, GPS, accelerometer, dan lainnya. Teknologi pada saat ini memungkinkan para pengguna mobile menggunakan kamera digital yang telah tertanam pada device mereka. Kamera tersebut dapat digunakan untuk merekam video clip maupun menangkap gambar. 4. Computer Perangkat elektronik yang dapat dipakai untuk mengolah data dengan perantaraan sebuah program dan mampu memperbaiki informasi dari hasil pengolahan tersebut.
42 2.8 Android Framework
Gambar 2.11 Android Framework (Sumber: http://de veloper.android.com/guide /basics/what-is-android.html)
Sistem Operasi Android memiliki komponen utama sebagai berikut: a. Aplikasi Android berisi sekumpulan aplikasi utama seperti : email client, program Short Message Service (SM S), kalender, peta, browser, daftar kontak, dan lain-lain. Semua aplikasi ditulis dengan menggunakan bahasa pemograman Java. b. Kerangka kerja aplikasi Kerangka kerja aplikasi yang ditulis
dengan
menggunakan
bahasa
pemograman Java merupakan peralatan yang digunakan oleh semua aplikasi,
43 baik aplikasi bawaan dari ponsel seperti daftar kontak, dan kontak SM S, maupun aplikasi yang ditulis oleh Google atapun pengembang Android. Android menawarkan para pengembangan kemampuan untuk membangun aplikasi yang inovatif. Pengembang bebas untuk mengambil keuntungan dari perangkat keras, akses lokasi informasi, menjalankan background services, mengatur alarm, menambahkan peringatan ke status bar, dan masih banyak lagi. Pengembang memiliki akses yang penuh ke dalam kerangka kerja API yang sama yang digunakan oleh aplikasi utama. Pada dasarnya, kerangka kerja aplikasi memiliki beberapa komponen sebagai berikut: • Activity Manager M engatur siklus dari aplikasi dan menyediakan navigasi background untuk aplikasi yang berjalan pada proses yang berbeda • Package Manager Untuk melacak aplikasi yang di – install pada perangkat. • Windows Manager M erupakan abstrakasi dari bahasa pemograman Java pada bagian atas dari level services (pada level yang lebih rendah) yang disediakan oleh Surface Manager. • Resource Manager Digunakan untuk mengakses sumber daya yang bersifat bukan code seperti string lokal, bitmap, deskripsi dari layout file dan bagian eksternal lain dari aplikasi.
44 • View System Digunakan untuk mengambil sekumpulan button, list, grid, dan text box yang digunakan di dalam antarmuka pengguna. • Notification Manager Digunakan untuk mengatur tampilan peringatan dan fungsi – fungsi lain. c. Libraries Android memiliki sekumpulan library C/C++ yang digunakan oleh berbagai komponen dalam sistem Android. Kemampuan-kemampuan ini dilihat oleh para pengembang melalui kerangka kerja aplikasi. Beberapa dari library utama dijelaskan sebagai berikut: • System C library M erupakan implementasi dari system library bahasa C standard (libc), untuk perangkat berbasis Linux • Media Libraries Berbasis packetVideo OpenCORE,
mendukung memutar ulang dan
menyimpan dari berbagai jenis audio dan video, termasuk file static image, termasuk MPEG4, H.264, MP3, AMR, JPG dan PNG • Surface Manager Bertugas mengelola akses ke dalam sub-sistem layar dan menyusun grafik 2D dan 3D ke dalam beberapa layer dari beberapa aplikasi. M engatur akses ke dalam sub-sistem tampilan dari susunan grafis layer 2D dan 3D secara mulus dari beberapa aplikasi dan menyusun permukaan gambar yang berbeda pada layar ponsel.
45 • LibWebCore Sebuah engine web browser yang mengelola browser Android beserta tampilan web. • SGL M erupakan engine grafis 2D pada Android dan bekerja sama dengan lapisan pada level yang lebih tinggi dari kerangka kerja (seperti Windows Manager
dan
Surfacei
Manaager)
untuk
mengimplementasikan
keseluruhan graphics pipeline dari Android. • 3D Libraries Sebuah implementasi berbasis OpenGL ES 1.0 API, bertugas untuk menangani akselerasi perangkat keras 3D, serta sebagai perangkat lunak rasterisasi perangkat lunak 3D yang optimal • FreeType Bertugas merender font bitmap maupun vector • SQLite Engine Database relasional yaang ringan dan powerful yang berfungsi untuk semua aplikasi d. Android Run Time Android mencakup library yang menyediakan sebagaian besar library dari bahasa pemograman Java. Tiap aplikasi Android memiliki proses tersendiri, berjalan di Dalvik Virtual Machine. Dalvik membuat sebuah perangkat Android dapat menjalankan Virtual Machine secara bersamaan secara efisien. Dalvik Virtual Machine mengeksekusi file dalam format Dalvik
46 Exectuable(.dex) yang dioptimalkan untuk pengunaan memori secara minimal. Dalvik Virtual Machine bergantung kepada kernel Linux untuk fungsionalitas dasar seperti manajamen memori threading dan manajemen memori tingkat rendah. e. Linux Kernel Android bergantung pada Linux versi 2.6 sebagai layanan sistem inti seperti keamanan, manajemen memori, manajamen proses, network stack, dan driver model. Kernel juga bertindak sebagai lapisan abstraksi antara perangkat keras dan lapisan perangkat lunak. (Sumber: http://developer.android.com/guide/basics/what-is-android.html) 11-Oktober-2011 22:23
2.9 Qualcomm Augmented Reality Qualcomm Augmented Reality
(QCAR) merupakan sebuah SDK yang
memberikan pengalaman menarik kepada para developer untuk menciptakan AR mobile. Dengan memberikan generasi baru yaitu interaktif 3D, Qualcomm Augmented Reality memberikan beberapa keuntungan seperti : a. Teknologi computer vision untuk menyelaraskan gambar yang tercetak dan object 3D. b. M endukung beberapa alat development seperti Eclipse, (Android™), Xcode. Selain itu, QCAR juga menawarkan development dan distribusi yang gratis. (Sumber:https://developer.qualcomm.com/develop/mobile-technologies/augmentedreality)
47 2.9.1 QCAR API Reference API reference berisi informasi tentang hirarki kelas dan fungsi member dari QCAR SDK. Sistem dari QCAR SDK ditampilkan seperti pada gambar 2.12, menyediakan: callback event. Contoh: sebuah image baru yang tersedia. •
High-level access ke perangkat keras. Contoh: Kamera start / stop.
•
Multiple trackables o Image Targets o Multi Targets o Frame Markers
•
Interaksi secara langsung dengan dunia nyata o Virtual button
Gambar 2.12 Sistem High-level QCAR SDK (Sumber: https://ar.qualcomm.at/qde vnet/api)
48 2.9.2 Arsitektur QCAR QCAR SDK memerlukan beberapa komponen penting agar dapat bekerja dengan baik. Komponen – komponen tersebut antara lain: a. Kamera Kamera dibutuhkan untuk memastikan bahwa setiap frame ditangkap dan diteruskan secara efisien ke tracker. Para developer hanya tinggal memberi tahu kamera kapan mereka mulai menangkap dan berhenti. b. Image Converter M engkonversi format kamera (misalnya YUV12) kedalam format yang dapat dideteksi oleh OpenGL (misalnya RGB565) dan untuk tracking (misalnya luminance). c. Tracker M engandung algoritma computer vision yang dapat mendeteksi dan melacak object dunia nyata yang ada pada video kamera. Berdasarkan gambar dari kamera, algoritma yang berbeda bertugas untuk mendeteksi trackable baru, dan mengevaluasi virtual button. Hasilnya akan disimpan dalam state object yang akan digunakan oleh video background renderer dan dapat diakses dari application code. d. Video Background Renderer M e-render gambar dari kamera yang tersimpan di dalam state object. Performa dari video background renderer sangat bergantung pada device yang digunakan.
49 e. Application Code M ennginisialisasi semua komponen di atas dan melakukan tiga tahapan penting dalam application code seperti: 1. Query state object pada target baru yang terdeteksi atau marker. 2. Update logika aplikasi setiap input baru dimasukkan. 3. Render grafis yang ditambahkan (augmented). f. Target Resources Dibuat menggunakan on-line Target Management System. Assets yang diunduh berisi sebuah
konfigurasi XM L – config.xml –
yang
memungkinkan developer untuk mengkonfigurasi beberapa fitur dalam trackable dan binary file yang berisi database trackable.
Gambar 2.13 Diagram Aliran Data QCAR SDK (Sumber: https://ar.qualcomm.at/qde vnet/de velope r_guide/QCAR%20Archite cture)
50 2.10 Game Engine M enurut André LaM othe (2003, p495) Game Engine adalah sistem yang memproses segala sesuatu yang berhubungan dengan game, dan mengendalikan modul – modul yang mengirimkan perintah ke dalam sub-sistem, sehingga game engine harus dirancang agar dapat terhubung ke tiap masing-masing sub-sistem dalam game. 2.10.1 S truktur Game Engine M enurut André LaM othe (2003, p494) tujuan utama dari game engine sendiri adalah untuk me-render 3D game itu sendiri. Artinya, game engine digunakan game engine itu sendiri harus terhubung dengan sistem physics dan artificial intelligence. M aka dari itu, sebuah game harus memiliki: a. 3D engine b. Game engine c. Sistem input dan networking d. Sistem animasi e. Collision detection dan sistem navigasi f. Physics engine g. Sistem kecerdasan buatan h. 3D model dan database
51
Gambar 2.14 Struktur Umum 3D Game Engine (Sumber: André LaMothe, 2003, p495)
2.10.2 Unity Game Engine Unity game engine merupakan sebuah game engine dan editor, yang memungkinkan pengembang membuat object,
meng-import external asset dan
menggabungkan semuanya dengan menggunakan kode secara efisien dan cepat. Prinsip dari Unity sendiri adalah agar pengembang dapat melakukan aktivitasnya dengan hanya drag and drop, bahkan menggabungkan script dan membuat beberapa variabel. Unity juga mendukung kemampuan networking dan dapat digunakan pada banyak platform. (Sumber: http://unity3d.com/unity/, 26-1-2012).
52 Scripting di dalam Unity dapat menggunakan tiga bahasa pemrograman, yaitu JavaScript, C#, atau Boo. Pengembang game dapat menggunakan ketiga bahasa pemgrograman tersebut dalam satu proyek miliknya. Beberapa konsep penting di dalam scripting yang harus pengembang mengerti adalah: a. function Update () {} M erupakan kontainer dari kode yang dieksekusi berkali – kali setiap detik (per frame). b. transform M erupakan
reference
untuk
komponen
transform
game
object,
yang
mendefinisikan posisi, rotasi, dan skala dari setiap game object. Setiap object memiliki transform. c. Rotate() M erupakan sebuah fungsi yang ada pada komponen transform. d. Angka – angka yang berada di dalam koma merepresentasikan derajat dari rotasi untuk setiap axis di dalam 3D space : X, Y, Z. e. Time.deltaTime M erupakan anggota dari kelas Time yang berjalan pada setiap detik, sehingga sebuah game object dapat berputar dengan kecepatan yang sama seberapa pun frame per detik yang dapat dihasilkan setiap detik. M isalnya: 5 * Time.deltaTime artinya 5 derajat per detik. (Sumber: http://unity3d.com/support/documentation/M anual/Scripting.html, 27-12012)