Implementasi Teknologi Augmented Reality Pada Permainan Rolling Ball
(2)
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
RICA YUNITA
10107875
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
(3)
(4)
(5)
i
ABSTRAK
IMPLEMENTASI TEKNOLOGI AUGMENTED REALITY
PADA PERMAINAN ROLLING BALL
Oleh
Rica Yunita 10107875
Implementasi teknologi augmented reality pada permainan yang melatih syaraf motorik halus anak dirancang untuk melatih otot syaraf motorik anak usia 4 tahun keatas. Permainan ini dibuat dengan memanfaatkan teknologi augmented reality agar permainan terlihat lebih nyata. Dalam memainkan permainan ini, permainan didesain agar pemain dapat berinteraksi langsung dengan bola virtual, matrik euler digunakan sebagai kontrol permainan. Permainan didesain agar dalam kontrol permainanya menggunakan marker atau penanda yang telah disediakan.
Permainan ini terhubung dengan kamera real-time yang dapat mengenali penanda yang telah didesain. Dalam pengenalan penanda atau marker game dibangun dengan menggunakan IN2AR kemudian dibuat obyek game dengan menggunakan papervion3D yang akan tampil diatas marker yang telah disediakan. Game terdiri dari sebuah lapangan labirin, di dalam labirin tersebut terdapat 1 buah bola sebagai player. Deteksi tabrakan antara bola dan bola serta bola dan dinding labirin menggunakan teknik collision detection pada jiglibFlash.
Permainan ini akan mendeteksi pergerakan marker sehingga bola akan bergerak mengelinding untuk menjalankan misi menyelesaikan permainan. Kontrol pergerakan menggunakan marker ini menggunakan teknik matrik euler.
Berdasarkan hasil pengujian yang telah dilakukan, implementasi teknologi
augmented reality pada permainan rolling ball dapat berjalan dengan baik. Adapun untuk menjadikan permainan ini sebagai permainan yang dapat melatih syaraf motorik halus anak perlu penelitian lebih mendalam dalam bidang ilmu psikologi anak untuk membuktikan permainan ini dapat meningkatkan tingkat kecerdasan anak atau sebaliknya.
Kata Kunci: motorik halus; Augmented reality; papervision3D; Euler; Real-time; collision detection; jiglibFlash
(6)
ii
REALITY
IN THE ROLLING BALL GAME
By
Rica Yunita 10107875
The implementation of augmented reality technology in rolling ball game designed to train muscle motor neurons children aged 4 years and above. The game is made by using augmented reality technology that games look more real. In playing this game, the game is designed so that players can interact directly with the virtual ball, euler matrix is used as a control game. The game is designed to be in control permainanya using marker or markers that have been provided.
The game is connected with real-time camera that can recognize markers that have been designed. In the introduction of the marker or markers games built using IN2AR then created using papervion3D game objects that will appear above the marker provided. Game consists of a field maze, in the maze, there was 1 balls as a player. Collision detection between the ball and the ball and the ball and the wall of the maze using collision detection techniques in jiglibFlash. This game will detect the movement of the marker so that the ball will move
mengelinding to finish the game missions. Movement control using these markers using euler matrix techniques.
Based on the results of testing that has been done, the implementation of augmented reality technology on the rolling ball game can run well. As for making this game as a game that can train children develop fine motor neurons need more in-depth research in the field of child psychology to prove this game can improve children's intelligence level or contrary.
Keyword: Fine motor: Augmented reality; Papervision3D; Euler; Real-time; collision detection; jiglibFlash
(7)
iii
Assalamualaikum, Wr.Wb
Segala puji dan syukur penulis panjatkan kepada yang Maha Kuasa Allah
SWT, karena berkat rahmat-Nya akhirnya skripsi ini dapat terselesaikan. Laporan
Skripsi dengan judul “IMPLEMENTASI TEKNOLOGI AUGMENTED REALITY PADA PERMAINAN ROLLING BALL”, yang diajukan untuk menempuh ujian akhir sarjana Program Strata I pada Jurusan Teknik Informatika
Universitas Komputer Indonesia.
Penulis menyadari bahwa segala usaha yang dilakukan dalam penulisan
ini tidak akan berhasil dengan baik tanpa bantuan dan saran dari berbagai pihak.
Maka dalam kesempatan ini perkenankanlah penulis mengucapkan terima kasih
kepada yang terhormat :
1. Kedua orang tua, bapak Ismail yang selalu mendo’akan, ibu Erinawati yang selalu sabar mendampingi walau terpisahkan oleh jarak dan seluruh
anggota keluarga penulis yang telah banyak memberikan semangat dan
dorongan moril maupun materil.
2. Galih Hermawan, S.Kom., M.T selaku pembimbing yang telah
mengarahkan dan membimbing penulis dalam menyelesaikan penulisan
skripsi ini.
3. Bapak Irfan Maliki, S.T., M.T selaku penguji satu.
(8)
iv membantu proses akademik penulis.
8. Teman – teman seperjuangan Teknik Informatika angkatan 2006-2007 khususnya kelas IF-10/2006 terima kasih atas saran, dukungan serta
kebersamaannya.
9. Teman – teman LDK UMMI UNIKOM yang telah banyak memberikan dorongan semangat dalam menyelesaikan skripsi ini, terutama saudari
Rahmi Djohan dan Rian Herdiani.
10. Teman – Teman satu kosan yang telah banyak memberikan inspirasi dalam menulis dan merampungkan skripsi ini, saudari Nina Andana Ningsih,
Cupi Legilasa F, S.H, Anah Sofiana dan Wulan.
11. Teman – Teman dakwah Hizbut Tahrir yang telah banyak membantu baik moril dan materil, khususnya saudari Fifi Mustofa dan Anissa Rizky.
12. Pihak-pihak lain yang membantu penulis untuk dapat menyelesaikan tugas
akhir ini yang tidak dapat disebutkan satu per satu.
Penulis menyadari bahwa penulisan laporan ini masih jauh dari sempurna
maka kritik dan saran dari semua pihak dibutuhkan untuk menambah wawasan
(9)
v
Akhir kata semoga Allah SWT membalas segala kebaikan yang telah
penulis terima dan harapan penulis semoga Laporan Skripsi ini dapat bermanfaat
bagi pihak yang membutuhkan.
Bandung, Agustus 2012
Penyusun
(10)
vi
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGHANTAR ... iv
DAFTAR ISI ... vi
DAFTAR TABEL ... x
DAFTAR GAMBAR ... xii
DAFTAR SIMBOL ... xv
DAFTAR LAMPIRAN ... xix
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 3
1.3Maksud dan Tujuan ... 3
1.4 Batasan Masalah ... 4
1.5Metode Penelitian ... 5
a. Analisa Kebutuhan dan Studi Literatur ... 5
b. Tahap Perancangan ... 5
c. Tahap Implementasi ... 8
d. Pengujian Dan Evaluasi ... 8
e. Dokumentasi ... 9
(11)
vii
BAB II LANDASAN TEORI ... 13
2.1 Tahap Perkembangan Motorik Anak ... 13
2.2 Permainan ... 15
2.3 Jenis-Jenis Permainan Berbasis Teknologi ... 17
2.4 Collition Detection... 20
2.5 Augmented Reality ... 22
2.6 Tracking Marker ... 25
2.7 IN2AR ... 28
2.8 Kalibrasi Kamera ... 29
2.9 Transformasi Matriks ... 30
2.9.1 Rotasi ... 31
2.9.2 Translasi ... 31
2.9.3 Skala ... 32
2.10 Matrix Euler... 33
2.11 FlashDevelop ... 34
2.11.1 ActionScript 3.0 ... 34
2.12 Papervision3D ... 37
2.13 UML (Unified Modeling Language) ... 38
2.13.1 Bagian-Bagian UML ... 38
2.14 Rasional Rose ... 43
BAB III ANALISIS DAN PERANCANGAN SISTEM... 44
3.1 Analisis Sistem ... 44
(12)
viii
3.1.4.1 Deteksi Tabrakan (Collision Detection) ... 50
3.1.4.2 Kontrol Game Menggunakan Matriks Euler ... 54
3.2 Kebutuhan Non Fungsional Game ... 56
3.2.1 Analisis Perangkat Keras ... 57
3.2.2 Analisis Perangkat Lunak ... 58
3.2.3 Analisis Pengguna ... 58
3.3Analisis Kebutuhan Fungsional ... 59
3.3.1Pemodelan Sistem ... 59
3.3.1.1 Use Case Diagram ... 59
3.3.1.2 Skenario Use Diagram ... 60
3.3.1.3 Class Diagram ... 66
3.3.1.4 Activity Diagram ... 68
3.3.1.5 Sequence Diagram ... 72
3.3.1.6 Component Diagram ... 78
3.3.1.7 State Machine Diagram ... 79
3.4 Perancangan Sistem ... 80
3.4.1 Perancangan Marker ... 81
3.4.2 Perancangan Aplikasi... 82
3.4.2.1Perancangan Antarmuka ... 82
(13)
ix
3.4.2.3 Perancangan Cara Bemain ... 83
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 89
4.1 Implementasi ... 89
4.1.1 Perangkat Lunak Pembangun ... 89
4.1.2 Implementasi Aplikasi ... 90
4.2 Pengujian ... 93
4.2.1 Pengujian Alpha ... 93
4.2.2 Kasus dan Hasil Pengujian Alpha ... 95
4.2.2.1Pengujian Tampilan Halaman Utama ... 95
4.2.2.2Pengujian Marker ... 95
4.2.2.3Pengujian Jarak ... 97
4.2.2.4Pengujian Kamera ... 98
4.2.2.5Pengujian Gerak Bola Berdasarkan Gerak Marker ... 101
4.2.2.6Pengujian Level pada Permainan ... 103
4.2.2.7Pengujian Berdasarkan Spesifikasi Komputer ... 105
4.3 Pengujian Beta... 107
BAB V KESIMPULAN ... 111
5.1 Kesimpulan ... 111
5.2 Saran ... 111
(14)
1 1.1 Latar Belakang Masalah
Kualitas suatu bangsa antara lain ditentukan oleh kualitas pendidikan suatu
negara. Generasi yang berkualitas akan mampu mengatasi permasalahan yang
terjadi di masyarakat. Pendidikan karakter merupakan tujuan pendidikan yang
mulai dirintis oleh pemerintah kita. Pemerintah menginginkan bukan hanya
menghasikan orang-orang pintar tetapi menghasilkan orang-orang yang pintar dan
memiliki karakter yang kuat. Untuk mencapai pendidikan berkarakter maka ada
beberapa aspek yang harus diperhatikan dalam perkembangan anak usia dini. Pada
masa usia dini anak mengalami masa keemasan (the golden ages) yaitu usia 1-5
tahun yang merupakan masa dimana anak mulai peka untuk menerima
rangsangan. Aspek perkembangan fisik adalah merupakan perkembangan
pengendalian gerakan jasminiah.
Perkembangan pengendalian gerak jasmaniah melalui kegiatan pusat syaraf,
urat syaraf dan otot terkoordinasi disebut sebagai keterampilan motorik.
Keterampilan motorik anak terdiri atas keterampilan motorik kasar dan
keterampilan motorik halus. Keterampilan motorik halus adalah menggerakan
sebagian anggota tubuh seperti melempar, menggelindingkan bola dan sebagainya
[2]. Gerak motorik bagi anak usia dini memerlukan pengulangan-pengulangan dan
bantuan orang lain, pengulangan itu merupakan bagian dari belajar. Setiap
(15)
2
koneksitas dan koordinasi gerak dengan indera lainya. Cara melatih motorik
haruslah dalam suasana yang menyenangkan, maka dari itu untuk melatih otot
motorik anak dapat dilakukan dengan bermain. Salah satu permainan yang dapat
melatih otot motorik halus adalah permainan menggelindingkan bola arah
tertentu.
Saat ini permainan untuk melatih otot motorik anak seperti permainan
menggelindingkan bola hanya dapat dilakukan dilingkungan nyata dan dengan
bola yang nyata. Dengan semakin pesatnya perkembangan teknologi, anak-anak
usia dini lebih tertarik bermain permainan yang berbasis teknologi seperti
playstation atau yang lebih akrab kita sebut PS. Sedangkan saat ini memainkan
permainan PS, hanya dapat menggunakan alat kontrol seperti joystick maupun
tombol kontrol lainnya.
Augmented reality adalah teknologi yang menggabungkan benda maya dua
dimensi ataupun tiga dimensi ke dalam sebuah lingkungan nyata tiga dimensi lalu
memproyeksikan benda-benda maya tersebut dalam waktu nyata. Meskipun
sudah banyak pengembangan dari AR baik dari sisi teknologi dan tracking system,
untuk Indonesia sendiri teknologi ini belum begitu terkenal kalangan masyarakat.
Di Indonesia hanya sedikit perangkat yang memungkinkan pengguna mampu
untuk berinteraksi dengan obyek virtual yang terlihat. Perkembangan teknologi
augmented reality (AR) dapat menjadi alternatif teknologi yang digunakan dalam
membuat permainan. Permainan yang berbasis AR memiliki daya tarik tersendiri
karena dalam memainkan game, pemain tidak membutuhkan tombol kontrol
(16)
dimanfaatkan dalam membangun permainan menggelindingkan bola. Karena
pemain dapat menggelindingkan bola virtual seperti menggelindingkan bola
didunia nyata, tanpa menggunakan joystick atau semacamnya. Dari penjelasan
sebelumnya maka penelitian ini difokuskan dalam pembuatan permainan berbasis
augmented reality yang dapat melatih syaraf motorik halus anak yaitu permainana
menggelindingkan bola.
1.2 Rumusan Masalah
Dari uraian latar belakang masalah didapat beberapa pokok pembahasan
yang dirangkum menjadi rumusan masalah, diantaranya sebagai berikut:
1. Bagaimana membangun aplikasi permainan menggelindingkan bola
dengan mengimplementasikan teknologi Augmented Reality.
2. Bagaimana membangun aplikasi permainan menggelindingkan bola
sehingga pemain tidak membutuhkan joystick maupun tombol kontrol
untuk memainkan permainan tersebut.
1.3 Maksud dan Tujuan
Agar permainan menggelindingkan bola ini lebih menarik maka arah
dalam menggelindingkan bola pemain harus memiliki arah. Bola harus
digelindingkan kearah bola-bola virtual lain. Permainan ini dibuat dengan
maksud pemain dapat berinteraksi langsung dalam mengenai bola-bola virtual
yang terdapat dalam game. Permainan ini juga diharapkan dapat menerapkan
beberapa tujuan dibawah ini :
(17)
4
2 Permainan ini dapat menjadi alternatif permainan untuk melatih otot motorik
anak.
1.4 Batasan Masalah
Agar pembahasan ini terfokuskan pada lingkup masalah yang diinginkan
maka ada batasan masalah yang akan dilakukan, masalah yang akan dibatasi
adalah sebagai berikut:
1. Dalam perancangan game menggunakan Papervision3D untuk membentuk
objek-objek 3D.
2. Untuk membuat permainan lebih intuitif dan lebih nyata maka digunakan
library JiglibFlash untuk melakukan deteksi tabrakan (collision detection).
3. Dalam melakukan tracking marker permainan ini menggunkan library
IN2AR
4. Dalam proses tracking marker menggunakan library IN2AR, desain
marker/penanda harus dikonversi terlebih dahulu ke file berbentuk *. proses
konversi masih perlu melibatkan IN2AR support team
5. Untuk menjalankan game berbasis augmented reality ini dibutuhkan kamera
dan marker/penanda yang telah didesain.
(18)
1.5 Metode Penelitian
Dalam pembuatan Game memecahkan bola berbasis augmented reality ini
memerlukan beberapa tahapan dengan langkah-langkah sebagai berikut:
a. Analisa kebutuhan dan studi literatur
Melakukan penelaahan mendalam serta mengumpulkan informasi-informasi
kebutuhan dalam perancangan dan implementasi game memecahkan bola
berbasis augmented reality dari literature sangat diperlukan. Adapun studi literatur
yang digunakan dalam perancangan dan implementasi game memecahkan bola
berbasis augmented reality ini adalah sebagai berikut:
1. Pengembangan teknologi augmented reality menggunakan IN2AR,
Papervision3D dan JiglibFlash.
2. Implementasi interaksi dalam game dengan menggunakan metode
matrix euler.
b. Tahap Perancangan
Tahapan dalam pembuatan game memecahkan bola berbasis augmented
reality ini akan menggunakan model waterfall. Model ini melakukan pendekatan
secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap
pengumpulan data, analisa, perancangan, pengodean, pengujian, dan perawatan.
Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu
selesainya tahap sebelumnya dan berjalan berurutan, sebagai contoh tahap desain
harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara
(19)
6
Gambar 1.1. Model Waterfall [1]. a. Rekayasa Sistem
Tahap ini merupakan kegiatan pengumpulan data sebagai pendukung
pembangunan sistem serta menentukan ke arah mana aplikasi ini akan
dibangun.
b. Analisa Sistem
Tahap ini merupakan kegiatan mengumpulkan kebutuhan secara lengkap
kemudian dianalisa dan didefinisikan kebutuhan yang harus dipenuhi oleh
aplikasi yang akan dibangun. Tahap ini harus dikerjakan secara lengkap
(20)
c. Perancangan Sistem
Tahap ini merupakan kegiatan menterjemahkan analisa kebutuhan ke
dalam bentuk rancangan sebelum penyusunan program yang berupa
perancangan antarmuka dan merancang prosedur (algoritma).
Pada tahap perancangan dilakukan analisa awal untuk mendefinisikan
kebutuhan sistem agar mengetahui masalah yang akan dihadapi. Setelah
mengetahui masalah yang akan dihadapi selanjutnya dirumuskan
rancangan system yang dapat memberikan pemecahan masalah tersebut.
Adapun langkah-langkah yang dilakukan adalah sebagai berikut:
1. Analisa aktor yang terlibat didalam sistem.
2. Perancangan use case diagram, yang merupakan analisa kebutuhan
pada aplikasi yang akan dibangun.
3. Analisa kebutuhan non-fungsional
4. Perancangan aplikasi dan gameplay
d. Pengodean Sistem
Tahap ini merupakan tahapan penterjemahan hasil perancangan kedalam
program-program yang menggunakan bahasa pemrograman yang telah
ditentukan.
e. Pengujian Sistem
Program yang telah dibuat harus diuji, proses pengujian difokuskan pada
(21)
8
f. Pemeliharaan sistem
Pemeliharaan suatu perangkat lunak diperlukan, termasuk di dalamnya
adalah pengembangan, karena perangkat lunak yang dibuat tidak
selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada
errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan
fitur-fitur yang belum ada pada perangkat lunak tersebut, seperti penyesuaian
atau perubahan karena adaptasi dengan situasi yang sebenarnya.
g. Umpan balik
Respon dari pengguna sistem yang bisa digunakan untuk mengetahui
sejauh mana aplikasi yang dibangun dapat diterima oleh penggunanya
[1].
c. Tahap Implementasi
Pada tahap ini dilakukan pembuatan perangkat lunak yang merupakan
implementasi dari rancangan yang telah dibuat sebelumnya.Perincian tahap ini
adalah sebagai berikut:
1. Implementasi marker tracking.
2. Implementasi augmented reality
3. Pembuatan gameplay
4. Pengujian
d. Pengujian Dan Evaluasi
Pada tahap ini akan dilakukan pengujian terhadap perangkat lunak
menggunakan skenario yang telah dipersiapkan sebelumnya. Ujicoba dan evaluasi
(22)
jalannya program, dan mengadakan perbaikan jika ada kekurangan.
Tahapan-tahapan dari uji coba yang akan dilakukan adalah sebagai berikut :
1. Pengujian implementasi augmented reality
2. Pengujian gameplay
e. Dokumentasi
Pada tahap ini merupakan dokumentasi dan laporan dari seluruh konsep,
dasar teori, implementasi, proses yang telah dilakukan, dan hasil-hasil yang telah
didapatkan selama pengerjaan tugas akhir. Buku tugas akhir ini bertujuan untuk
memberikan gambaran dari pengerjaan tugas akhir ini dan diharapkan dapat
berguna untuk pembaca yang tertarik untuk melakukan pengembangan lebih
lanjut.
1.6 Sistematika Penulisan
Dokumentasi dan laporan dari seluruh konsep, dasar teori, implementasi,
proses yang telah dilakukan, dan hasil-hasil yang telah didapatkan selama
pengerjaan tugas akhir dapat dilihat melalui gambaran secara umum sistematika
penulisan tugas akhir ini. Adapun sistematika penulisan tugas akhir ini adalah
sebagai berikut:
BAB I PENDAHULUAN
Pada bab ini menjelaskan tentang latar belakang permasalahan,
mencoba merumuskan inti permasalahan yang dihadapi, menentukan
maksud dan tujuan penelitian, yang kemudian diikuti dengan
pembatasan masalah, metodologi penelitian serta sistematika
(23)
10
BAB II LANDASAN TEORI
Pada bab ini akan dibahas landasan teori tahap perkembangan motorik
anak, permainan,jenis-jenis permainan berbasis teknologi, collision
detection, augmented reality, tracking marker , transformasi matriks,
matrix euler, kalibrasi kamera, FlashDevelop, Papervision3D, IN2AR,
UML (Unified Modeling Language), Rasional Rose dan hal-hal yang
berguna dalam proses analisis permasalahan serta tinjauan terhadap
penelitian-penelitian serupa yang telah pernah dilakukan sebelumnya.
BAB III ANALISA DAN PERANCANGAN SISTEM
Bab III ini terbagi menjadi dua bagian besar yaitu proses analisa dan
proses perancangan sistem, berikut adalah penjelasan dari
masing-masing proses:
a. Pada bagian analisa menguraikan dekripsi masalah, analisa
masalah, analisa kebutuhan, mengurai cara pemecahan masalah
dengan menggunakan library IN2AR, papervision3D dan
JiglibFlash, kemudian melakukan analisa terhadap library
IN2AR, papervision3D untuk membentuk objek 3D dan
JiglibFlash untuk deteksi tabrakan.
b. Kemudian pada bagian perancangan sistem dilakukan dengan
metode berorientasi objek dengan menggunakan standarisasi
UML, perancangan perangkat lunak yang terdiri dari
(24)
gameplay yang akan dibangun sesuai dengan hasil analisis
yang telah dibuat.
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisi implementasi, spesifikasi software, hardware dan
brainware, cara pengoperasian sistem yang telah dibuat serta hasil
evaluasinya.
BAB V KESIMPULAN DAN SARAN
Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan
(25)
13
LANDASAN TEORI
2.1.Tahap Perkembangan Motorik Anak
Motorik merupakan perkembangan pengendalian gerakan tubuh melalui
kegiatan yang terkoordinir antara susunan saraf, otot, otak, dan spinal cord.
Perkembangan motorik meliputi motorik kasar dan halus. Motorik kasar adalah
gerakan tubuh yang menggunakan otot-otot besar atau sebagian besar atau seluruh
anggota tubuh yang dipengaruhi oleh kematangan anak itu sendiri. Contohnya
kemampuan duduk, menendang, berlari, naik-turun tangga dan sebagainya.
Sedangkan motorik halus adalah gerakan yang menggunakan otot-otot halus
atau sebagian anggota tubuh tertentu, yang dipengaruhi oleh kesempatan untuk
belajar dan berlatih. Misalnya, kemampuan memindahkan benda dari tangan,
mencoret-coret, menyusun balok, menggunting, menulis dan sebagainya. Kedua
kemampuan tersebut sangat penting agar anak bisa berkembang dengan optimal.
Perkembangan motorik sangat dipengaruhi oleh organ otak. Otak lah yang
mensetir setiap gerakan yang dilakukan anak.Semakin matangnya perkembangan
sistem syaraf otak yang mengatur otot memungkinkan berkembangnya
kompetensi atau kemampuan motorik anak. Perkembangan motorik anak dibagi
menjadi dua:
1. Keterampilan atau gerakan kasar seperti berjalan, berlari, melompat, naik
(26)
2. Keterampilan motorik halus atau keterampilan manipulasi seperti menulis,
menggambar, memotong, melempar dan menagkap bola serta memainkan
benda-benda atau alat-alat mainan [2].
Berikut adalah tabel beberapa tahap perkembangan anak [3]:
Tabel 2.1 Tahap Perkembangan Anak Usia 1-5 Tahun No USIA ANAK MOTORIK KASAR MOTORIK HALUS
1 1-2 TAHUN
1. Merangkak
2. Berdiri dan berjalan beberapa langkah 3. Berjalan cepat
4. Cepat-cepat duduk agar tidak jatuh
5. Merangkak di tangga 6. Berdiri di kursi tanpa
pegangan 7. Menarik dan
mendorong benda-benda berat 8. Melempar bola
1. Mengambil benda kecil dengan ibu jari atau telunjuk
2. Membuka 2-3 halaman buku secara bersamaan 3. Menyusun menara dari
balok
4. Memindahkan air dari gelas ke gelas lain
5. Belajar memakai kaus kaki sendiri
6. Menyalakan TV dan bermain remote
7. Belajar mengupas pisang
2 2-3 TAHUN
1. Melompat-lompat 2. Berjalan mundur dan
jinjit
3. Menendang bola 4. Memanjat meja atau
tempat tidur
5. Naik tangga dan lompat di anak tangga terakhir 6. Berdiri dengan 1 kaki
1. Mencoret-coret dengan 1 tangan
2. Menggambar garis tak beraturan
3. Memegang pensil 4. Belajar menggunting 5. Mengancingkan baju 6. Memakai baju sendiri
3 3-4 TAHUN
1. Melompat dengan 1 kaki
2. Berjalan menyusuri papan
3. Menangkap bola besar 4. Mengendarai sepeda 5. Berdiri dengan 1 kaki
1. Menggambar manusia 2. Mencuci tangan sendiri 3. Membentuk benda dari
plastisin
4. Membuat garis lurus dan lingkaran cukup rapi
4 4-5 TAHUN 1. Menuruni tangga dengan cepat
1. Menggunting dengan cukup baik
(27)
15
2. Seimbang saat berjalan mundur
3. Melompati rintangan 4. Melempar dan
menangkap bola 5. Melambungkan bola
2. Melipat amplop 3. Membawa gelas tanpa
menumpahkan isinya 4. Memasukkan benang ke
lubang besar
2.2.Permainan
Untuk melatih otot motorik anak, pelatihan harus dilakukan dengan kondisi
yang menyenangkan, maka dari itu untuk melatih otot motorik anak dapat
dilakukan dengan bermain. Permainan adalah kegiatan terstruktur, biasanya
dilakukan untuk kesenangan dan terkadang digunakan sebagai alat pendidikan.
Permainan berbeda dari pekerjaan, yang biasanya dilakukan untuk remunerasi,
dan berbeda dari seni, yang lebih peduli dengan ekspresi ide. Perbedaan tersebut
tidak jelas, dan banyak permainan juga dianggap bekerja atau seni.
Komponen kunci dari permainan adalah tujuan, aturan, tantangan, dan
interaksi. Permainan biasanya melibatkan stimulasi mental atau fisik, dan
terkadang kedua-duanya. Banyak permainan sebagai bentuk latihan, atau
melakukan peran pendidikan, simulasional atau psikologis.
Menurut perancangan permainan computer Chris Crawford, definisi istilah
permainan menggunakan serangkaian dikotomi:
1. Ekspresi kreatis adalah seni jika dibuat untuk kecantikan sendiri, dan
hiburan jika dibuat untuk uang.
2. Hiburan adalah sebuah mainan yang jika dapat melakukan interaksi. Film
(28)
3. Jika tidak ada tujuan yang terkait dengan permainan, itu adalah mainan.
Jika memiliki tujuan, permainan adalah tantangan.
4. Jika tantangan tidak memiliki “active agent against whom you compete”
maka disebut teka-teki, jika ada itu adalah konflik.
5. Terakhir, jika para pemain hanya dapat mengalahkan lawan, tetapi tidak
menyerang mereka, mengganggu kinerja mereka, konflik sebuah
kompetisi. Namun, jika serangan diizinkan, kemudian konflik memenuhi
syarat sebagai permainan.
Permainan dapat dicirikan oleh “apa pemain dapat lakukan”. Hal ini sering disebut gameplay. Elemen kunci umum diidentifikasi dalam konteks ini adalah
alat dan aturan yang mendefinisikan konteks keseluruhan permainan dan yang
pada gilirannya menghasilkan keterampilan, strategi, dan kesempatan.
Permainan sering diklasifikasikan oleh komponen yang diperlukan untuk
memainkannya (misalnya miniature, bola, kartu, papan and pieces atau
komputer). Permainan seperti petak kumpet memanfaatkan alat apapun,
melainkan aktivitas mereka ditentukan oleh lingkungan.
Selain yang sering dikarakteristik dengan alat-alat yang digunakan,
permainan sering ditentukan oleh aturan yang digunakan. Ketika aturan yang
dikenakan variasi dan perubahan, perubahan cukup dalam aturan biasanya
menghasilkan permainan baru. Aturan umunya menentukan urutan gilirannya,
hak-hak dan tanggung jawab pemain dan tujuan masing-masing pemain.
Kondisi menang yang umum adalah menjadi yang pertama untuk
(29)
17
yang memiliki jumlah terbesar token pada akhir permainan (seperti dalam
monopoli), atau beberaa hubungan token permainan seseorang untuk orang lawan
seseorang (seperti dalam catur atau checkmate).
Ketika permainan menggunakan alat dan aturan, maka muncul kebutuhan
akan keterampilan, strategi, keberuntungan atau kombinasi dari semuanya.
2.3.Jenis-jenis Permainan Berbasis Teknologi
Tahun 1952, AS Douglas membuat game Tic tac toe yang ditampilkan
dalam sebuah tabung vakum computer. Kemudian tahun 1958, Willy
Higginbotham membuat game Tennis for Two yang berjalan di osiloskop yang
terhubung ke analog Donner computer. Tahun 1961 – 1962, game space war
dikembangkan di MIT menggunakan grafik vector di PDP-1. Sega merilis
periskop, terciptalah elektronik shooting game, game arcade yang pertama.
Tahun 1971, Nolan Bushnell mengembangkan computer space, arcade
game komersil yang pertama. Berbasis pada spacewar. Menggunakan grafik
vector, real time dan terlalu sophisticated untuk pasar. Dan gagal.
Tahun 1972, Bushnell memulai Atari. Odyssey oleh Magnavox membuat
game hockey. Home TV game yang pertama, masih analog. Terjual 100.00
dengan harga jual $100/console. Tahun 1973, Atari membuat Pong in Arcades.
Tahun 1974, Kee merilis Tank. Atari membuat game balap yang pertama. Tahun
1972-1976, William Crowther dan Don Woods membuat game adventure : The
colossal cave. Game petualangan berbasis text yang pertama, berjalan di DEC
(30)
life 2, doom. Game console, pertumbuhannya stabil, harga lebih murah. Nokia
meluncurkan N-Gages, Nintendo meluncurkan DS, Sony meluncurkan PSP [16].
Ada beberapa jenis game yang saat ini berkembang diantaranya:
1. FPS (First Person Shooter)
Adalah jenis game tembak-tembakan dengan tampilan pemain adalah
tokoh yang dimainkan. Biasanya berupa misi untuk suatu tujuan
tertentu. Ciri khas game ini adalah penggunaan senjata jarak jauh.
Contoh : Counter-Strike, Call of Duty, Ghost Recon, Point Blank,
Crossfire
2. RTS (Real Time Strategy)
Adalah genre permainan strategi, taktik, dan logika. Biasanya berupa
perang yang tiap pemainnya memiliki suatu pasukan atau negara.
Dalam RTS permainan dapat berupa sejarah, fantasi, dan fiksi ilmiah.
Contoh : Age of Empires, Warcraft, Command & Concuer, Rise of
Nations, Stronghold.
3. RPG (Role Playing Game)
Adalah game yang para pemainnya memainkan peran tokoh-tokoh
khayalan dan berkolaborasi untuk merajut sebuah cerita bersama. Ada
pula jenis lain game RPG ini, diantaranya :
a. LARP (Live Action Role Playing) adalah game RPG dimana
para pemain bisa melakukan gerakan fisik tokohnya. Biasanya
pemain menggunakan kostum dan menggunakan alat-alat yang
(31)
19
b. MMORPG (Massively Multiplayer Online Role-Playing Game)
adalah game RPG yang melibatkan ribuan pemain untuk
bermain game bersama dalam dunia maya.
Contoh : Final Fantasy, Ragnarok, Avalon, RF, World of Warcraft,
DotA, Perfect World.
4. Construction and Management Simulation Games
Adalah game yang mensimulasikan proyek membangun dan mengelola.
Pada dasarnya adalah masalah ekonomi dan konseptual. Game ini
jarang yang melibatkan konflik dan eksplorasi, dan hampir tidak pernah
meliputi tantangan fisik. Contoh : Sim City, Roller Coster Tycoon,
Caesar
5. Vehicle Simulation
Jenis permainan ini mensimulasi pengoperasian beberapa kendaraan,
kendaraan bisa berupa pesawat terbang, pesawat tempur, kereta,
kendaraan perang, maupun kendaraan konstruksi. Contoh : Train
Simulator, Truck Simulator, FlightGear, Tram, Orbiter.
6. Adventure Games
Game yang mengutamakan masalah eksplorasi dan pemecahan
teka-teki. Namun terkadang meliputi masalah konseptual, dan tantangan fisik
namun sangat jarang.Contoh : Indiana Jones, God of War, Tomb
(32)
2.4. Collision Detection
Collision detection adalah komponen penting pada game. disadari atau
tidak, komponen ini sering kali membuat game menjadi realistik, dan terkadang
membuat pemain marah jika collision detection tidak berjalan dengan
sesungguhnya. Collision detection adalah fungsi yang dapat mendeteksi tabrakan
antara 2 obyek atau lebih.
Collision detection ini juga berguna untuk menentukan posisi dari satu
obyek dengan obyek yang lain sehingga tidak ada obyek yang saling menembus.
Sehingga game yang akan dibuat memiliki kesamaan dengan realitas yang ada.
Collision detection memiliki teknik yg berbeda untuk diterapkan pada
pembuatan game 2D dan game 3D.
Teknik Collision detection pada 2D ada 2 cara yaitu :
a. Rectangles Collision detection
Teknik ini merupakan pendeteksian tabrakan menggunakan bound
berbentuk persegi, dimana setiap sprite atau obyek yang dibuat dalam game
memiliki bound masing-masing. Cara ini cukup mudah karena hanya perlu
membandingkan apakah ada intersection(irisan) pada kedua obyek pada
koordinat tertentu. Namun cara ini kurang akurat karena untuk sprite atau
obyek yang memiliki ruang kosong yang besar dengan bound. Hal ini akan
muncul saat kondisi kedua batas obyek tersebut beririsan walaupun
sebenarnya tidak terjadi tabrakan maka akan dianggap terjadi tabrakan. Cara
(33)
21
atau untuk game yang menggunakan sprite yang bentuknya mendekati
persegi.
Adapun cara lain dari hasil modifikasi teknik ini yaitu reduced
size bounding box. Dimana kotak batasnya diperkecil dengan mengurangi
beberapa pixel dari ukuran sprite atau obyek yang sebenarnya. Sehingga
dengan cara ini pada saat melakukan collision detection akan lebih akurat
karena ruang kosong antara sprite dan bound berkurang.
Kemudian cara lain dari modifikasi teknik ini adalah dengan cara
menggunakan beberapa bounding box secara bersamaan untuk satu sprite
atau obyek. Contohnya untuk sprite berbentuk manusia, pertama bounding
box digunakan untuk bagian kepala kemudian bounding box yang lainnya
digunakan untuk badan dan kaki. Cara ini lebih akurat karena banyaknya
bounding box yang digunakan dapat disesuaikan dengan bentuk gambar
pada sprite. Namun semakin banyak bounding box yang digunakan akan
semakin banyak pula waktu yang digunakan untuk collision detection [19] .
b. Circle RectangleCollision Detection
Untuk teknik ini memiliki cara yang hampir sama dengan yang
sebelumnya hanya saja disini bound atau batas yang digunakan berbentuk
lingkaran. Cara pengecekannya lebih mudah karena linggkaran memiliki
jarak yg sama ke batas luarnya. Caranya yaitu dengan menghitung jarak
kedua obyek dan membandingkannya dengan jumlah radius masing-masing
bound dari kedua obyek, jika jaraknya lebih kecil dari jumlah radius kedua
(34)
terjadi tabrakan. Cara sebelumnya yaitu rectangle collision detection lebih
akurat daripada cara ini.
Teknik Collision detection pada 3D ada 2 cara yaitu :
a. Bounding Box Collision Detection
Teknik ini menggunakan cara yang hampir sama dengan teknik
Rectangle Collision Detection pada 2D hanya batas kotaknya berbentuk
3D uang melingkupi setiap obyek. Untuk melakukan pengecekan apakah
kotak-kotak itu saling beririsan atau tidak kita cukup membandingkan nilai
maksimum dan minimum pada koordinat x,y dan z.
b. SphereCollision Detection
Untuk teknik ini bound atau batas yang digunakan berbentuk bola
yang melingkupi setiap obyek. collisions detection yang dilakukan sebagai
berikut :
Obyek A berpusat di ax,ay,az dan memiliki radius ar
Obyek B berpusat di bx,by,bz dan memiliki radius br
Irisan terjadi jika :
(ax-bx)2+(ay-by)2+(az-bz)2 < (ar+br)2
(2.1)[19].
2.5. Augmented reality (AR)
Augmented reality (AR), atau dikenal dengan realitas tertambah adalah
teknologi yang menggabungkan benda maya dua dimensi dan atau tiga dimensi
kedalam sebuah lingkuangan nyata tiga dimensi lalu memproyeksikan
(35)
23
Benda-benda nyata menampilkan informasi yang tidak dapat diterima oleh
pengguna dalam inderanya sendiri. Hal ini membuat realitas tertambah sesuai
sebagai alat untuk membantu persepsi dan interaksi penggunanya dengan dunia
nyata. Informasi yang ditampilkan oleh benda maya membantu pengguna
melaksanakan kegiatan-kegiatan dalam dunia nyata. AR dapat diaplikasikan untuk
semua indera, termasuk pendengaran, sentuhan, dan penciuman. Selain digunakan
dalam bidang-bidang seperti kesehatan, militer, industry manufaktur, realitas
tertambah juga telah diaplikasikan dalam perangkat-perangkat yang digunakan
orang banyak, seperti pada telepon genggam.
Ada dua definisi dari AR yang diterima secara umum, salah satunya
definisi dari Ronald Azuma pada tahun 1997, Azuma mendifinisikan bahwa:
1. Menggabungkan kenyataan dan virtual
2. Interaktif secara real time
3. Tergolong kedalam lingkungan 3D
Selain itu, Paul Milgram dan Fumio Kishino mendifinisikan Milgram’s
Reality-Virtual Continuum pada tahun 1994. Mereka mendeskripsikan sebuah
kontinum yang membentang dari lingkungan nyata ke lingkungan virtual murni.
Diantaranya terdapat augmented reality (lebih dekat ke lingkungan nyata) dan
augmented virtuality (lebih dekat ke lingkungan virtual). Diagram mengenai
(36)
Gambar 2.1 Diagram mengenai Milgram’s Reality-Virtuality Continuum
AR sejatinya variasi lain dari realitas virtual. Teknologi realitas virtual
membenamkan pengguna secara total pada lingkungan sintetis, ketika masuk
dalam dunia buatan itu, kita tidak dapat mengenali lingkungan nyata disekitanya.
Namun AR tidak memisahkan yang nyata dengan virtual, yang terjadi adalah
penggabungan antara keduanya pada ruang yang sama. Selain menambahkan
benda maya dalam lingkungan nyata, realitas tertambah juga berpotensi
menghilangkan banda-benda yang sudah ada. Menambah sebuah lapisan gambar
maya dimungkinkan untuk menghilangkan atau menyembunyikan lingkungan
nyata dari pandangan pengguna. Misalnya, untuk menyembunyikan sebuah meja
dalam lingkungna nyata, perlu digambarkan lapisan representasi tembok dan
lantai kosong yang diletakkan diatas gambar meja nyata, sehingga menutupi meja
nyata dari pandangan pengguna.
Kontinum ini diperluas lagi menjadi bidang dua dimensi dari virtuality dan
mediality. Titik asal R menunjukan kenyataan yang tidak dimodofikasi. Sebuah
kontinum di sumbu virtuality V mencakup realitas tertambah dangan grafis
(augmented reality), serta grafis tertambah dengan realitas (augmented virtuality).
Namun taksonomi ini juga mencakup modifikasi realitas atau kombinasi dari
(37)
25
mediality. Selanjutnya dari sumbu ini, dapat ditemukan mediated reality, mediated
virtuality, atau kombinasi dari semuanya. Lebih lanjut ke atas dan kekanan
terdapat dunia virtual yang responsive ke versi realitas yang sangat termodifikasi.
Diagram mengenai mediated reality continuum dapat dilihat pada gambar 2.2
Gambar 2.2 Mediated Reality Continuum
2.6.Tracking Marker
Dalam proses perancangan dan implementasi aplikasi permainan ini
menggunakan metode tracking marker yaitu proses deteksi keberadaan penanda
atau marker yang berbentuk matriks. Untuk perancangan marker dibuat tidak
monoton seperti biasanya yang hanya menggunakan gambar hitam persegi.
Marker yang digunakan memiliki bentuk gambar yang rumit dan penuh warna
sehingga bentuk dari marker lebih interaktif. Semakin rumit gambar yang
digunakan untuk menjadi sebuah marker maka proses tracking marker akan
berjalan lebih baik.
Salah satu dukungan dari library IN2AR adalah proses tracking marker
(38)
dirancang terlihat lebih menyenangkan. Gambar yang akan digunakan
sebagai marker perlu kita konversi terlebih dahulu menjadi file
berekstensi *.ass sebelum dapat digunakan dalam kode. Sayangnya hingga saat ini
proses konversi masih perlu melibatkan IN2AR support team.[9] Walaupun
setelah dikonversi file gambar yang berekstensi *.ass dapat diubah ke ekstensi lain
misalnya (*.islam). Contoh gambar yang dapat dijadikan sebagai marker adalah
uang 100 ribu rupiah, seperti pada gambar 2.3
Gambar 2.3 Contoh Gambar Rumit Digunakan sebagai Marker Cara kerja dari pencarian marker ini dilakukan secara per-frame pada
video secara real-time. Ketika marker ditemukan, akan dilakukan kalkulasi
world transformation matrix berdasarkan posisi dan kemiringan dari
marker. Selanjutnya hasil dari world transformation matrix posisi obyek
virtual terhadap obyek fisik marker dapat ditentukan. dibutuhkan smoothing
agar hasil marker tracking menjadi lebih halus.
Namun dalam melakukan tracking marker IN2AR memiliki beberapa
(39)
27
1. Oklusi
Ketika sebagian besar marker tertutup oleh benda, maka marker
tidak adak dapat terdeteksi, salah satu hal penyebab kegagalan
deteksi adalah hampir setengah gambar marker tertutupi oleh benda.
2. Pencahayaan
Dalam proses pendeteksian marker sangat tergantung pada
pencahayaan yang digunakan. Marker akan sulit dideteksi jika
pencahayaan yang digunakan terlalu gelap membuat gambar sulit
terlihat atau pencahayaan yang digunakan terlalu terang sehingga
gambar memantulkan cahaya yang menyilaukan. Akan tetapi jika
menggunakan marker dengan warna yang lebih rumit sangat
memudahkan dalam proses pendeteksian.
3. Jarak
Jarak yang terlalu jauh menyebabkan pola marker yang ditangkap
oleh kamera menjadi buram dan tidak jelas sehingga marker
dideteksi.
4. Perangkat Kamera
Perangkat kamera yang buruk menyebabkan gambar yang ditangkap
menjadi kurang berkualitas. Misalnya saja karena resolusi atau focus
(40)
Gambar 2.4 Penentuan Transformasi Matrix dari Marker
2.7. IN2AR
IN2AR merupakan sebuah engine selain FLARToolKit untuk Adobe Flash
Player. Dengan kemampuan natural feature recognition yang dimiliki IN2AR
dapat menggunakan gambar apapun sebagai marker. Jika pada FLARToolkit
semakin sederhana dan resolusi marker semakin kecil maka akan semakin
memudahkan dalam tracking marker, maka justru sebaliknya pada IN2AR,
semakin rumit dan detail gambar yang digunakan sebagai marker maka semakin
baik dalam proses tracking marker yang akan dilakukan.
IN2AR juga menyediakan free license yang memperbolehkan pengguna
untuk mengkomersilkan aplikasi yang dibuat menggunakan IN2AR dengan
keterbatasan hanya pada kewajiban mencantumkan logo IN2AR. Adapun
(41)
29
digunakan sebagai marker harus dikonversi terlebih dahulu menjadi file
berekstensi *.ass sebelum digunakan didalam kode. Proses konversi gambar
menjadi file berektensi *.ass hanya dapat dilakukan dengan melibatkan IN2AR
support team.
2.8.Kalibrasi Kamera
Ketika sebuah kamera menangkap obyek, sering kali gambar yang
dihasilkan tidak sesuai dengan kenyataanya. Beberapa permasalahan ketika
menangkap obyek dengan kamera adalah sebagai berikut:
1. Pusat gambar yang tidak terdapat pada bagian tengah
2. Panjang fokus kamera
3. Faktor skala yang berbeda-beda untuk baris piksel
4. Faktor skew
5. Distorsi lensa
Distorsi lensa merupakan permasalahan yang sering terjadi karena
ketidaksempurnaan lensa. Secara umum distorsi lensa dibagi menjadi dua, yaitu
pin-cushion effect dan barrel effect. Gambar 2.10 menjelaskan bagaimana sebuah
grid ditangkap oleh lensa tidak sebagaimana mestinya sehingga menghasilkan
(42)
Gambar 2.5 Kiri: pin-cushion effect; Kanan: barrel effect
Untuk meminimalisir efek tersebut dan agar mengoptimalkan proses
tracking marker, dibutuhkan proses kalibrasi kamera. Proses ini dilakukan cukup
sekali untuk satu buah perangkat keras kamera. Dengan proses kalibrasi ini,
parameter internal dari kamera dapat dikalkulasi sehingga proses kalkulasi
informasi tiga dimensi dari suatu gambar menjadi lebih tepat.
2.9. Transformasi Matriks
Dalam pemograman grafis komputer tiga dimensi, sebuah transformasi
adalah cara untuk mengambil sebuah titik pada ruang tiga dimensi dan bagaimana
cara memanipulasinya. Transformasi dapat dilakukan pada sebuah titik sederhana
sampai semua titik tanpa tampak sebuah model geometri yang sangat detail
sekalipun. Dalam pemograman grafis, semua transformasi dilakukan dengan
menggunakan matriks. Dalam permainan matriks dirender secara terus menerus
maka transformasi yang dilakukan secara turut. Transformasi
berturut-turut dapat dilakukan dengan cara mengalikan matriks-matriks transformasi sesuai
(43)
31
menggunakan homogeneous transformation,yaitu dengan mengubah matriks
transformasi menjadi ukuran 4x4[4], Seperti pada rumus 2.1. Dalam library
IN2AR sudah menyediakan fungsi-fungsi yang memudahkan dalam perhitungan
matriks. Transformasi memiliki beberapa jenis yaitu transformasi rotasi, translasi
dan skala.
[
] (2.13)
2.9.1. Rotasi
Rotasi adalah transformasi untuk memutar suatu titik pada suatu garis
sumbu ruang. Kelas matriks pada actionscript terdapat fungsi memproduksi
matriks rotasi. Parameter yang dibutuhkan untuk membuat rotasi matriks adalah
sumbu rotasi dan besarnya sumbu rotasi dalam bentuk radian. Rumus matriks
transformasi untuk melakukan rotasi sebesar radian
[
] (2.14)
Keterangan:
M : Matriks rotasi
: Sudut rotasi dalam radian 2.9.2. Translasi
Translasi adalah jenis transformasi yang digunakan untuk mengubah posisi
(44)
menggunakan matriks. Rumus 2.14 adalah matriks transformasi untuk melakukan
translasi sejauh (dx,dy,dz).
[
] (2.15)
Keterangan:
M : Matriks Translasi
dx : Translasi terhadap sumbu x
dy : Translasi terhadap sumbu y
dz : Translasi terhadap sumbu z
2.9.3. Skala
Transformasi skala alaha sebuah tipe transformasi yang digunakan untuk
mengubah ukutan suatu obyek. Rumus 2.15 adalah matriks transformasi
untuk melakukan skala sebesar (Sx,Sy,Sz).
[
] (2.16)
Keterangan :
M : Matriks Skala
Sx : Skala terhadap sumbu x
Sy : Skala terhadap sumbu y
(45)
33
2.10. Matrix Euler
Matriks rotasi untuk grafis 3D dengan representasi euler terdiri atas rotasi
terhadap sumbu x, y, dan z.
Matriks rotasi tehadap sumbu x:
[
]
(2.17)
Matriks rotasi tehadap sumbu y:
[
] (2.18)
Matriks rotasi terhadap sumbu z:
[ ] (2.19)
Matriks rotasi untuk grafis 3D dengan representasi euler terdiri dari rotasi
terhadap sumbu x,y, dan z. Perkalian matriks tidak bersifat komutatif, maka
dengan repersentasi euler terdapat 12 urutan rotasi yang dapat dihasilkan yaitu :
xyz, xzy, xyx, xzx, yxz, yzx, yxy, yzy, zyx, zyx, zxz, zyz. Untuk rotasi zyx,
didapatkan rumus sebagai berikut:
[
] [
] [
] (2.20)
(46)
[
]
(2.21)
Karena menggunakan aturan tangan kanan (Right-Hand Rule) maka adalah sudut antara , berlawanan arah dengan arah jarum jam [5]. Fungsi matriks euler ini sudah terdapat dalam library Papervision3D.
2.11. FlashDevelop
FlashDevelop merupakan sebuah editor gratis yang bisa bekerja dalam
sistem operasi Windows, maupun Mac OSX, atau pun Linux. Akan tetapi sejak
membutuhkan Microsoft .NET 2.0 runtime, FlashDevelop hanya berjalan di
Windows. FlashDevelop mendukung koding yang dilakukan oleh ActionScript
3.0.
2.11.1.ActionScript 3.0
ActionScript adalah bahasa pemrograman yang di pakai oleh software Flash
untuk mengendalikan obyek-obyek ataupun movie yang terdapat dalam Flash.
ActionScript 3.0 mempunyai beberapa tipe data primitif seperti yang diberikan
dalam table 2.2. selain itu actionscript juga mempunyai beberapa tipe data
kompleks yang dibangun dari tipe data prmitif seperti yang diberika dalam table
2.2. bahkan kita bisa membangun tipe data sendiri, dalam bahasa pemograman
obyek sering dikenal dengan nama class obyek.
Table 2.2 Tipe data primitive ActionScript 3.0
Tipe Data Pengertian Contoh
(47)
35
karakter “Assalamu’alaikum” Bisa juga ditulis dengan : Var textsaya: string
Textsaya =”Assalamu’alaikum” Boolean Hanya bernilai benar(true) atau
salah (false)
Var khilafah: boolean = true
Number Bilangan riil positif dan negative Var percepatan:number = 0.01 Int Bilangan bulat positif dan
negative
(-2.147.483.648 s.d 2.147.483.648)
Var radiusbola : int = 10
Uint Bilangan bulat positif (0 s.d 4.294.967.295)
Var warnabola : uint = 0xFF00FF
* Tipe data sembarang (biasanya digunakan untuk menampung data yang belum diketahui tipe datanya)
Var databaru : * = datasembarang
Table 2.3 Beberapa tipe data kompleks ActionScript 3.0
Tipe Data Pengertian Contoh
MovieClip Sebuah symbol movie clip Var Al-fatih : movieClip = new MovieClip()
Sprite Sebuah sprite Var kotak : sprite = new sprite () TextField Sebuah field text yang bertipe
dynamic atau field teks yang bertipe input (secara default akan bertipe dynamic)
Var Islam : textFiled = new textField ()
Islam.text = “Syari’ah dan Khilafah”
SimpleButton Sebuah symbol button (tombol) Var start.SimpleButton=New simpleButton()
Date Data dalam format tanggal Var lebaran: Date = new Date () Array Larik atau array yang dapat
memuat lebih dari satu nilai
Var arrayBilangan: array = new Array ()
ArrayBilangan = [2,3,15] Obyek Struktur dasar dari setiap entitas
ActionScript. Obyek juga merupakan suatu bentuk variable yang bisa diatur sendiri untuk menyinpan berbagai nilai sebagai alternative dari array
Var gambar:obyek: New object Gambar.nama = foto action“ Gambar.panjang = 600
(48)
ActionScript 3.0 mendefinisikan empat kata untuk menunjukan ruang lingkup variable (ataupun fungsi/method), yaitu :
1. Public : dapat diakses oleh semua bagian kede didalam keseluruhan
aplikasi / project tempat variable didefinisikan7
2. Private : hanya dapat diakses oleh method/ fungsi tempat variable
didefinisikan
3. Internal : dapt diakses oleh sembarang class yang didefinisikan
dalam package yang sama.
4. Protected : hanya dapat diakses oleh method/ fungsi tempat variable
didefinisikan dan class yang extend class tempat variable
didefinisikan.
Salah satu kelebihan Actionscript 3.0 adalah dukungannya terhadap
pemograman menggunakan class-class. Dengan penggunan class, anda dapat
menerapakan konsep pemograman berorientasi obyek dalam pengkodean
program. Sebuah class adalah cetak biru dari sebuah obyek. Class mendefinisikan
obyek secara penuh, meliputi data obyek operasi-operasinya. Untuk membuat
class perlu diperhatikan beberapa hal berikut ini:
a. Pembuatan class dalam actionscript harus diawali dengan sebuah
package. Sebuah packet adalah grup dari class (bisa hanya satu class
atau beberapa class). Bisa juga menambahkan nama forlder di
belakang kata package yang menunjukan direktori tempat anda
(49)
37
yang akan anda taruh dalam folder lib dengan menambahkan kata lib
di belakang kata package.
b. Dokumen dari class harus disimpan dengan nama yang sama dengan
class, misalnya namaClass.as. Misalnya class Bola yang anda buat
harus anda simpan dengan nama bola.as.
c. Sebaliknya class yang dibuat merujuk ke class yang sudah dimiliki
Flash, misalnya Sprite atau MovieClip gunakan tambahan kata
extends Sprite pada lanjutan nama classnya, misalnya public class
bola extends Sprite.
d. Menambahkan variable dengan ruang lingkup public, internal
ataupun yang lainnya sesuai kebutuhan. Misalnya menambahkan
variabel-variabel yang bersifat public, seperti : radius yang
menunjukan jari-jari bola, warna yang menunjukan warna bola, vx
yang menunjukan kecepatan bola searah sumbu-x, dan vy yang
menunjukan bola searah sumbu-y.
e. Menambahkan method berupa fungsi dengan ruang lingkup yang
diinginkan didalam fungsi. Salah satu fungsi yang sebaiknya ada
adalah fungsi dengan nama fungsi sama dengan nama class.
2.12. Papervision3D
Papervision3D merupakan sebuah library yang digunakan dalam
pemograman berbahasa actionscript. Papervision3D adalah sebuah open source
3D yang popular untuk flash, dengan Papervision3D memungkinkan pengguna
(50)
Papervision3D mendukung Actionscript 2 dan 3 serta dirancang untuk format
COLLADA yang juga mendukung polygonal geometri, hierarki dan tekstur obyek
peta.
2.13. UML(Unified Modeling Language)
UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan
grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan
pendokumentasian dari sebuah sistem pengembangan software berbasis OO
(Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah
sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam
bahasa program yang spesifik, skema database. UML sebagai sebuah bahasa yang
memberikan vocabulary dan tatanan penulisan kata-kata dalam „MS Word’ untuk
kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang
mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik
mempresentasikan dari sebuah sistem. Seperti halnya UML adalah sebuah bahasa
standard untuk pengembangan sebuah software yang dapat menyampaikan
bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan
apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses
implementasi pengembangan software.
2.13.1. Bagian-Bagian UML
Bagian-bagian utama dari UML adalah view, diagram, model element, dan
(51)
39
a. View
View digunakan untuk melihat sistem yang dimodelkan dari beberapa
aspek yang berbeda. View bukan melihat grafik, tapi merupakan suatu
abstraksi yang berisi sejumlah diagram. Beberapa jenis view dalam UML
antara lain: use case view, logical view, component view, concurrency
view,dan deployment view.
b. Use case view
Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan sesuai
yang diinginkan external actors. Aktor yang berinteraksi dengan sistem dapat
berupa user atau sistem lainnya. View ini digambarkan dalam use case
diagram dan kadang-kadang dengan activity diagrams. View ini digunakan
terutama untuk pelanggan, perancang (designer), pengembang (developer),
dan penguji sistem (tester).
c. Logical view
Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis
(class, object, dan relationship ) dan kolaborasi dinamis yang terjadi
ketika object mengirim pesan ke object lain dalam suatu fungsi tertentu.
View ini digambarkan dalam class diagrams untuk struktur statis dan
dalam state, sequence, collaboration, dan activity diagram untuk model
dinamisnya. View ini digunakan untuk perancang (designer) dan pengembang
(52)
d. Component view
Mendeskripsikan implementasi dan ketergantungan modul. Komponen
yang merupakan tipe lainnya dari code module diperlihatkan dengan struktur
dan ketergantungannya juga alokasi sumber daya komponen dan informasi
administratif lainnya. View ini digambarkan dalam component view dan
digunakan untuk pengembang (developer).
e. Concurrency view
Membagi sistem ke dalam proses dan prosesor.View ini digambarkan
dalam diagram dinamis (state, sequence, collaboration, dan activity diagrams)
dan diagram implementasi (component dan deployment diagrams) serta
digunakan untuk pengembang (developer), pengintegrasi (integrator), dan
penguji (tester).
f. Deployment view
Mendeskripsikan fisik dari sistem seperti komputer dan perangkat (nodes)
dan bagaimana hubungannya dengan lainnya. View ini digambarkan
dalam deployment diagrams dan digunakan untuk pengembang (developer),
pengintegrasi (integrator), dan penguji (tester).
g. Diagram
Diagram berbentuk grafik yang menunjukkan simbol elemen model yang
disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah
diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan
(53)
41
1. Use Case Diagram
Use case adalah abstraksi dari interaksi antara sistem dan aktor. Use
case bekerja dengan cara mendeskripsikan tipe interaksi antara user
sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana
sebuah sistem dipakai. Use case merupakan konstruksi untuk
mendeskripsikan bagaimana sistem akan terlihat di mata user. Sedangkan
use case diagram memfasilitasi komunikasi diantara analis dan pengguna
serta antara analis dan client.
2. Class Diagram
Class adalah dekripsi kelompok obyek-obyek dengan property, perilaku
(operasi) dan relasi yang sama. Sehingga dengan adanya class diagram
dapat memberikan pandangan global atas sebuah sistem. Hal tersebut
tercermin dari class-class yang ada dan relasinya satu dengan yang
lainnya. Sebuah sistem biasanya mempunyai beberapa class
diagram. Class diagram sangat membantu dalam visualisasi struktur kelas
dari suatu sistem.
3. Component Diagram
Component Diagram merupakan bagian fisik dari sebuah sistem, karena
menetap di komputer tidak berada di benak para analis. Komponent
merupakan implementasi software dari sebuah atau lebih class.
Komponent dapat berupa source code, komponent biner, atau executable
component. Sebuah komponent berisi informasi tentang logic class atau
(54)
view ke component view.Sehingga component diagram merepresentasikan
dunia real yaitu component software yang mengandung component,
interface dan relationship.
4. Deployment Diagram
Menggambarkan tata letak sebuah sistem secara fisik, menampakkan
bagian-bagian software yang berjalan pada bagian-bagian hardware,
menunjukkan hubungan komputer dengan perangkat (nodes) satu sama
lain dan jenis hubungannya. Di dalam nodes, executeable
component dan object yang dialokasikan untuk memperlihatkan unit
perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan
komponen.
5. State Diagram
Menggambarkan semua state (kondisi) yang dimiliki oleh
suatu object dari suatu class dan keadaan yang
menyebabkan state berubah. Kejadian dapat berupa object lain yang
mengirim pesan. State class tidak digambarkan untuk semua class, hanya
yang mempunyai sejumlah state yang terdefinisi dengan baik dan
kondisi class berubah oleh state yang berbeda.
6. Sequence Diagram
Sequence Diagram digunakan untuk menggambarkan perilaku pada
sebuah skenario. Kegunaannya untuk menunjukkan rangkaian pesan yang
dikirim antara object juga interaksi antara object, sesuatu yang terjadi pada
(55)
43
7. Collaboration Diagram
Menggambarkan kolaborasi dinamis seperti sequence diagrams.Dalam
menunjukkan pertukaran pesan, collaboration
diagrams menggambarkan object dan hubungannya (mengacu ke konteks).
Jika penekannya pada waktu atau urutan gunakan sequence diagrams, tapi
jika penekanannya pada konteks gunakan collaboration diagram.
8. Activity Diagram
Menggambarkan rangkaian aliran dari aktifitas, digunakan untuk
mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga
dapat juga digunakan untuk aktifitas lainnya seperti use case atau
interaksi.
2.14. Rasional Rose
Salah satu tool pendesainan yang mendukung UML, yaitu rational rose.
Rational rose merupakan salah satu software yang paling banyak digunakan untuk
melakukan design software melalui pendekatan UML (Unified Modelling
Language). Rational rose merupakan software yang menyediakan banyak
fungsi-fungsi seperti: design proses generate code, reverse engineering, serta banyak
fungsi-fungsi yang lain. Rational rose merupakan tool yang sangat mudah karena
(56)
(57)
45
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem
informasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk
mengidentifikasi dan mengevaluasi permasalahan-permasalahan,
kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang
diharapkan sehingga dapat diusulkan perbaikan-perbaikannya. Sistem yang dibuat
merupakan permainan berbasis augmented reality yaitu permainan
menggelindingkan bola. Permainan yang dibuat seolah-olah pengguna dapat
berinteraksi langsung dengan obyek-obyek 3 dimensi yang dibuat.
Permainan ini dibuat dengan mengambil latar dilingkungan nyata yang
kemudian gabungkan dengan obyek-obyek 3D melalui kamera. Orientasi dan
posisi marker akan dideteksi lewat frame-frame yang ditangkap oleh kamera.
Setelah marker terdeteksi oleh kamera, maka akan didapatkan matriks
transformasi yang dapat digunakan untuk transformasi seluruh obyek yang ada
dalam permainan.
3.1.1 Analisis Arsitektur Sistem
Pada arsitektur permainan yang akan dibangun terdiri dari beberapa
komponen, yaitu ; pemain adalah user yang menggunakan aplikasi permainan
(58)
marker dapat tertangkap olah kamera. Kemudian dari gambar yang didapat dari
kamera sistem komputer melakukan tracking marker untuk mengidentifikasi
marker yang digunakan oleh pemain. Komputer melakukan render obyek-obyek
3D yang digunakan dalam permainan. Pemain dapat melihat hasil manipulasi
system melalui layar komputer/ monitor. Gambaran arsitektur sistem dapat dilihat
pada gambar 3.1.
Gambar 3.1 Arsitektur Aplikasi
3.1.2 Deskripsi Masalah
Deskripsi masalah adalah suatu gambaran masalah yang diangkat dalam
(59)
47
permainan yang dapat melatih syaraf motorik halus anak. salah satu permainan
yang dapat melatih syaraf motorik halus anak usia 4 tahun keatas adalah
permainan menggelindingkan bola, maka permainan yang akan
diimplementasikan kedalam teknologi augmented reality adalah permainan
menggelindingkan bola. Seperti hal yang sama saat melakukan permainan
menggelindingkan bola didunia nyata, permainan menggelindingkan bola ini
didesain agar pemain dapat melatih keterampilannya dalam menggelindingkan
bola kearah yang ditentukan.
Keterampilan menggelindingkan bola ini hanya dapat dicapai jika kontrol
permainan ini tidak menggunakan kontrol keyboard atau joystick dalam
memainkannya. Untuk memainkan permainan ini, pemain dapat mengontrol
permainan melalui marker yang telah disediakan. Cara mengontrol permainan
menggunakan marker yang telah disediakan adalah dengan cara mencondongkan
marker kearah depan, belakang, kiri dan kanan. Agar kontrol menggunakan
marker ini dapat tercapai, maka dalam pemogramannya dibutuhkan matriks euler
sebagai representasi matriks rotasi 3D.
Matriks euler adalah representasi matriks rotasi grafik 3D yang terdiri dari
sumbu x, y, dan z. Untuk proses kontrol game dengan marker dibutuhkan sumbu
yang sama dengan sumbu tracking marker, maka terjadi tumpukan sumbu.
Dengan matrixeuler hal tersebut dapat dilakukan dalam proses kontrol permainan
dengan menggunakan marker.
Konsep permainan yang dibangun adalah terdapat sebuah obyek labirin
(60)
didalam labirin virtual tersebut terdapat bola virtual yang dapat bergerak secara
menggelinding ke segala arah. Agar tujuan dari menggelindingkan bola ini
memiliki arah, maka bola virtual ini memiliki untuk misi menabrak bola virtual
lain. Jika bola virtual bertabrakan dengan bola virtual yang bergerak, maka bola
virtual tersebut akan menghilang. Untuk membuat permainan lebih intuitif maka
permainan ini juga harus menerapkan konsep deteksi tabrakan. Deteksi tabrakan
yang dirancang adalah deteksi tabrakan antara bola dengan dinding labirin dan
deteksi tabrakan antara bola dengan bola.
3.1.3 Analisis Masalah
Permainan ini akan memanfatkan papervision3d dalam membentuk
obyek-obyek 3D. Papervision3d memiliki fungsi membentuk beberapa obyek primitif
seperti cube (persegi), sphere (bola) dan sebagainya. Untuk mendesain obyek
kotak-kotak virtual yang membentuk labirin permainan ini memanfaatkan fungsi
cube dari library papervision3d. Sedangkan untuk obyek virtual bola akan
memanfaatkan fungsi sphere pada papervision3d. Agar permainan ini lebih
intuitif maka permainan ini harus menerapkan konsep deteksi tabrakan antara
sphere dan cube juga sphere dan sphere. Deteksi ini dimaksudkan agar dalam
menggelindingkan bola, bola akan terbatasi didalam labirin yang telah didesain
dengan menggunakan fungsi cube dari papervision3d. Deteksi tabrakan ini dapat
dilakukan dengan memanfaatkan library JiglibFlash.
Dewasa ini library untuk pengembangan AR sudah sangat berkembang
dengan beberapa jenis bahasa pemograman. Beberapa library saat ini yang sedang
(61)
49
Tabel 3.1 Perbandingan library untuk AR
Parameter AR Library/ Toolkit
AR Toolkit Flartoolkit D’Fusion Studio
IN2AR 1 Lesensi Gratis Gratis Gratis Gratis 2 Bahasa
pemograma n
C++ ActionScript ActionScript
3 Dukungan marker yang digunakan Berbingkai hitam Berbingkai hitam Hampir semua Jenis gambar Hampir semua Jenis gambar 4 Authoring /
non authoring
Non authoring
Non authoring Authoring Non authoring
5 Format model 3D yang dapat ditampilkan
wrl *.dae, *.obj, *.3ds
Seenetta *.dae, *.obj, *.3ds
6 Dukungan platform
Multiplatform Multiplatform Multi platform Multiplatfor m
7 Distribusi kepada pengguna Harus install ARtoolkit di komputer pengguna
.swf Menggunakan Dfusion@Home DesktopPlayer
*.swf
3.1.4 Analisis Pemecahan Masalah
Masing-masing library AR diatas memiliki kelebihan dan kekurangan
tersendiri, adapun kelebihan IN2AR dibandingkan dengan library yang lain
adalah:
1. Library IN2AR menyediakan lesensi berbayar (2212,50 EURO per
proyek), juga menyediakan lisensi gratis. Perbedaan dari kedua
lisensi ini adalah jika aplikasi dibuat dengan lisensi gratis maka
(62)
2. Pengembang sangat aktif dalam menjawab pertanyaan seputar teknis
IN2AR dalam forum resmi IN2AR.
3. IN2AR dapat menggunakan hampir semua desain gambar sebagai
marker. Berbeda dengan Flartoolkit dan ARToolkit yang hanya
dapat menggunakan desain gambar bingkai hitam sebagai marker.
4. Aplikasi yang dibuat dengan menggunakan IN2AR akan berekstensi
*.swf, sehingga dapat ditampilkan di halaman web. Pengguna dapat
menggunakan aplikasi yang dibangun tanpa harus menginstal
aplikasi ini terlebih dahulu.
5. Library IN2AR menggunakan ActionScript3 yang dapat
dikomparasikan dengan library obyek 3D, seperti papervision3d dan
jiglibflash yang menggunakan bahasa ActionScript3.
Adapun beberapa kekurangan yang dimiliki oleh library IN2AR adalah
sebagai berikut:
1. Pengguna library IN2AR menggunakan ActionScript3 oleh sebab itu
untuk dapat menggunakan library ini pengguna dituntut untuk dapat
memahami bahasa pemograman ActionScript3. Aktivitas di forum
IN2AR akan sangat membantu jika pengguna mengalami kesulitan.
2. Desain gambar yang akan dijadikan sebagai marker dikonversi
terlebih dahulu ke ekstensi *.ASS, untuk library yang menggunakan
lisensi gratis desain gambar harus dikirimkan terlebih dahulu ke
(63)
51
Teknik yang digunakan dalam proses pelacakan atau tracking marker yang
dilakukan oleh library IN2AR adalah teknik berbasis model yang dapat dibagi
menjadi 2 kategori yaitu:
1. Pelacakan rekursif (Rekursif Tracking), yaitu sebelum obyek
ditampilkan dilakukan perhitungan perkiraan terlebih dahulu.
2. Pelacakan dengan pendeteksian (Tracking by detection), yaitu
klasifikasi dilakukan perhitungan pelacakan tanpa perkiraan terlebih
dahulu, yang memungkinkan otomatis inisialisasi dan pemulihan
dari kegagalan.
Skema teknik pelacakan berbasis model dapat dilihat pada gambar 3.2.
Gambar 3.2 Model Bases Online Monucular Markerless AR Taxonomy
3.1.4.1 Deteksi Tabrakan (Collision Detection)
Collision Detection adalah fungsi yang dapat mendeteksi tabrakan antara 2
obyek atau lebih. Collision detection juga berguna untuk menentukan posisi dari Model based Recursive tracking Edge based Point sampling Optical flow based Texture based Template matching Interest point based
Tracking by detection Edge based View based Texture based Keypoint based
(64)
satu objek dengan objek yang lain sehingga tidak ada objek yang saling
menembus. Sehingga game yang akan dibuat memiliki kesamaan dengan realita
yang ada. Deteksi tabrakan adalah salah satu fungsi yang telah dimiliki oleh
JiglibFlash. Perancangan permainan ini menggunakan obyek sphere yang sebagai
bola yang bergerak dan bola serta cube sebagai tembok labirin. Teknik collision
detection pada permainan antara sphere dan cube menggunakan teknik deteksi
Sphere-Plane collision detection, dan tabrakan antara sphere dan sphere
menggunakan deteksi Sphere collision detection. Teknik yang digunakan dalam
obyek yang berbentuk bola atau sphere. Collision detection yang dilakukan adalah
sebagai berikut:
1. Sphere-Plane Collision Detection
Pada deteksi Sphere-Plane Collision Detection ini menghitung nilai radius
atau titik tengah dari obyek simetri sphere dan cube. Nilai radius atau titik
tengah dari obyek simetri sphere dan cube nanti yang digunakan dalam
menghitung perpotongan obyek. Jika jarak dari pusat sphere ke sebuah
obyek kurang dari atau sama dengan jari-jari bola, maka tabrakan telah
terjadi.
; (3.1)
Maka (3.2) Keterangan :
C = titik pusat obyek sphere
P0 = setiap titik pada cube
(65)
53
persamaan plane/cube dengan vector normal N= (A,B,C) melalui titik (x,y,z)
adalah
atau , maka
nilai dengan demikian besar unit normal vector dengan notasi n adalah:
√ (3.3)
Adapun simulasi tabrakan antara cube dan sphere dapat dilihat pada gambar
3.3:
Gambar 3.3 Perhitungan Deteksi Tabrakan Antara Sphere Dan Cube
Posisi kotak untuk sumbu x,y,z adalah (4,0,0) dan posisi bola pada sumbu
x,y,z yaitu (-0.5,0,0). Radius dari bola = geometry sphere (0.8), ukuran
kotak = geometry cube (1.5, 1.5, 1.5), titik = (-0.5+(1.5/2)) = 0.25,
N=(0.25,0,0)
Persamaan Plane/cube
0.25 + D = 0,
Maka D = -0.12.
Unit vektor n adalah (persamaan 3.3):
(-0.5,0,0) (x,y,z)
(4,0,0) (x,y,z)
X Y Z
(66)
√
√
Jarak (persamaan 3.2) d = 4 – 0.25 = 3.75.
Radius dari bola = 0.8, maka d > r, dari hasil contoh posisi kotak dan bola
diatas didapatkan bahwa bola belum bertabrakan dengan kotak.
2. Sphere-sphere Collision Detection
Deteksi kedua yang dilakukan dalam permainan ini adalah deteksi tabrakan
antara Sphere (bola) jika bersentuhan dengan obyek sphere (bola bergerak).
Dalam hal ini deteksi yang dilakukan adalah menentukan posisi dari sphere
(bola). Kemudian dilakukan penentuan posisi x,y,z dari sphere (bola).
Penentuan posisi x,y,z dari sphere (bola) untuk membuat kondisi jika sphere
(bola) bersentuhan dengan sphere (bola bergerak), maka posisi x dari sphere
(bola) akan berubah. Perubahan posisi dari sphere (bola), mengakibatkan
pemanggilan kondisi untuk menghapus obyek sphere (bola). Dalam
perhitungan deteksi tabrakan menggunakan rumus :
D = (C2-C1) (3.4)
√ (3.4)
Akan terjadi tabrakan jika
d < (r1 + r2)
Simulasi tabrakan antara sphere (bola bergerak), sphere (bola). Bola dengan
r1 = geometry sphere (radius 1) berada pada posisi x,y,z (3,0,0), dan posisi
bola berada pada sumbu x,y,z (6,0,0) dengan (radius 1). Ilustrasi gambar
(67)
55
Gambar 3.4 Perhitungan Deteksi Tabrakan Antara Sphere dan Sphere
Perhitungan jarak (d) dari kedua obyek:
√
;
Sehingga nilai d adalah:
√ maka 9 > 0.2 atau d > (r1+r2), ini yang disebut belum
terjadinya tabrakan.
3.1.4.2 Kontrol Game Menggunakan MatriksEuler
Untuk menggerakan bola sesuai dengan gerakan marker, perlu diketahui
nilai transformasi marker terlebih dahulu. Setelah didapat nilai transformasi
3dimensi berbentuk matriks 4x4 kemudian diubah ke matriks euler. Metode ini
sudah ada dalam library papervision3d. gambar matriks euler dalam vektor dapat
dilihat pada gambar 3.5 A dan gambar matriks euler dalam rotasi dalam ruang
3D dapat dilihat pada gambar 3.5 B
(3,0,0) (6,0,0)
Bola Bola
X Y Z
(68)
Gambar A
Gambar B
Gambar 3.5 A (Vektor diruang 3D), B (Arah Rotasi Diruang 3D)[11]. Matriks rotasi untuk grafis 3D dengan representasi euler terdiri atas rotasi
terhadap sumbu x, y, dan z. Karena perkalian matriks bersifat komulati, maka
representasi euler memiliki 12 urutan rotasi yang dihasilkan, yaitu xyz, xzy, xyx,
xzx, yxz, yzx, yxy, yzy, zxy, zxy, zyx, zxz, zyz.
Matriks rotasi tehadap sumbu x:
[
]
(3.5)
Matriks rotasi tehadap sumbu y:
[
] (3.6)
Matriks rotasi terhadap sumbu z:
(69)
57
Pada fungsi rendering akan didapatkan matriks transformasi dari posisi
marker. Kemudian fungsi tersebut melakukan fungsi moveball dengan parameter
matriks gerak marker. Fungsi moveball dibuat dengan matriks 3x4 untuk
menampung matriks transformasi marker. Kemungkinan posisi bola akan
ditentukan oleh rotasi objek berdasarkan perkalian matriks diatas.
3.2 Kebutuhan Non Fungsional Game
Analisis kebutuhan non fungsional merupakan analisis yang dibutuhkan
untuk menentukan spesifikasi kebutuhan system. Spesifikasi ini juga melipiti
elemen ataupun komponen-komponen apa saja yang dibutuhkan system yang akan
dibangun sampai system tersebut diimplementasikan. Analisis kebutuhan ini juga
menentukan spesifikasi masukan yang dibutuhkan system. Pada analisis
kebutuhan system non-fungsional ini dijelaskan mengenai analisis perangkat keras
(hardware), perangkat lunak (software) dan pengguna (user) .
Games memecahkan bola merupakan permainan berbasis Augmented
reality. Games memecahkan bola berbasis Augmented reality dapat dijadikan
alternatif permainan baru untuk melatih gerak otot motorik halus anak maupun
dikalangan pencinta permainan. Karena games memecahkan bola adalah produk
berbasis AR yang menggunakan marker sebagai pola pelacakan atau tracking
marker, maka dibutuhkan computer dan perangkat lunak sebagai pengolah citra
dan marker. Berikut ini adalah perangkat lunak yang dibutuhkan oleh games
(1)
(2)
PENGUJIAN GERAK BOLA
(3)
PENGUJIAN GERAK BOLA
(4)
KESIMPULAN
1.
Permainan dapat ditampilkan secara virtual (
augmented
reality
)
2.
Tracking marker
dan gerak bola udah berhasil dijalankan.
3.
Seluruh level permainan sudah dapat dijalankan.
4.
Posisi kamera dan pencahayaan mempengaruhi kinerja
aplikasi.
5.
Game
Memecahkan Balon Berbasis
Augmented Reality
merupakan permainan yang dimainkan oleh satu orang
dengan tujuan untuk melatih otot motorik halus anak.
6.
Collition Detection
yang dihasilkan oleh permainan
dipengaruhi oleh cahaya, resolusi kamera dan posisi marker.
7.
Matrix Euler
yang diterapkan sebagai kontrol permainan
(5)
SARAN
1. Aplikasi yang dibuat lebih optimal jika kamera yang digunakan
menggunakan resolusi 5 migapixel.
2. RAM computer yang digunakan sebaiknya berkapasistas minimal 3
GB.
3. Aplikasi dijalankan ditempat dengan factor pencahayaan normal. 4. Aplikasi minimal dijalankan dengan Flash Player 10.
5. Game Memecahkan Balon Berbasis Augmented Reality dapat
dikembangan menjadi game berbasis android.
6. Game Memecahkan Balon Berbasis Augmented Reality juga dapat
dikembangkan dengan menanamnya kedalam Handphone, dengan layar Handphone sebagai monitor dan kamera pada Handphone
(6)