BAB II TINJAUAN PUSTAKA
Bab ini membahas tentang teori-teori penunjang yang mendasari dalam pembahasan, yaitu konsep dasar game, corona SDK, Lua, dan tentang permainan meong-meongan.
2.1
State of the Art Penelitian yang dilakukan mengenai budaya lokal Bali salah satunya
adalah "Bima Heroes" yang mengkisahkan pencarian Bima untuk medapatkan “inti pengetahuan sejati” (Tirta Prawitasari), tanpa harus tertabrak Raksasa dan Naga. Pemain wajib mengambil buah yang ada selama perjalanan yang merupakan salah satu parameter untuk dapat menyelesaikan setiap level, dimana jumlah buah yang harus diambil di setiap level memiliki jumlah minimum yang berbeda-beda (Maulana, 2013). Kisah dari permainan di atas adalah kisah tradisional di Bali namun di kemas dalam bentuk yang lebih modern dan dikembangkan agar dapat di implementasikan pada Platform Android namun tetap mampu memberikan nilai positif yang di kandung oleh kisahnya. Permainan tidak hanya bersifat hiburan namun mampu juga membawa nilai-nilai positif. Pengembangan permainan yang mampu memberi nilai positif bersifat edukasi juga sudah banyak beredar. Salah satu contoh yang berhasil dikembangankan adalah permainan (game) edukasi belajar membaca pada anak prasekolah berbasis smartphone Android (Busran & Fitriyah 2015, h. 62). Permainan ini mampu memberi nilai positif merangsang anak usia prasekolah untuk dapat lebih mudah belajar membaca. Permainan lainnya ada design of physical games for learning the lotus effect. Game berbasis untuk pembelajaran dianggap sebagai cara yang efisien untuk menginspirasi motivasi peserta didik (Tarng et al. 2012, h. 961). Game selain yang banyak di kembangkan untuk keperluan pendidikan ada juga yang di kembangkan untuk mengasak ketangkasan pemain. Contoh game yang mampu mengasah otak adalah building multiplayer 6
7
games for smartphones: experience with connect-4 game (Gupta, Khalaf & Alashqur 2013, h. 778). Game ini memiliki tantangan agar user mampu membariskan 4 buah titik dari jumlah titik yang di sediakan sebanyak 6 x 7 titik dalam bentuk persegi. Satu lagi adalah the design and implementation of an android game: foxes and chicken (Martinez & Luo 2013, h. 1129). Game ini merupakan permainan yang menggunakan strategi dalam bermain. Dapat di mainkan single player atau two player dengan 3 tingkatan kesulitan easy, intermediate dan hard. Penelitian mengenai permainan tradisional Bali masih dapat di katakan terbatas, oleh dasar itu didapatkan ide untuk mengangkat permainan tradisional Bali untuk dikembangkan ke model yang lebih modern. Ide tersebut dikembangkan dalam permainan Meong-meongan yang dikemas ke Game Meong-meong pada Platform Android.
2.2
Konsep Dasar Game Pada bagian ini akan dijelaskan mengenai konsep dasar game yang
meliputi pengertian game dan komponen-komponen game.
2.2.1
Pengertian Game Game dalam kamus bahasa Indonesia adalah permainan. Permainan adalah
jenis aktivitas bermain, yang berlaku seperti berada dalam konteks sesuai kenyataan,
dimana
pemain
mencoba
untuk
mencapai
setidaknya
satu
kewenangan, tujuan yang tidak mudah dilakukan sesuai dengan peraturan yang ada (Batuwael, Lumenta & Tulenan 2016, h. 1). Permainan adalah kegiatan kompleks yang didalamnya terdapat peraturan, cara untuk bermain dan budaya. Permainan adalah sebuah sistem dimana pemain akan terlibat dalam konflik buatan. Pemain berinteraksi dengan sistem dan konflik dalam permainan merupakan rekayasa atau buatan. Permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan menentukan permainan. Game bertujuan untuk menghibur. Game banyak disukai oleh anak-anak hingga orang dewasa. Game sebenarnya penting untuk perkembangan otak, untuk meningkatkan
8
konsentrasi dan melatih untuk memecahkan masalah dengan tepat dan cepat karena dalam game terdapat berbagai konflik atau masalah yang menuntut pengguna untuk menyelesaikannya dengan cepat dan tepat. Game juga bisa merugikan karena apabila pengguna sudah kecanduan game pengguna akan lupa waktu
dan
akan
mengganggu
kegiatan
atau
aktifitas
yang
sedang
pengguna lakukan. Game atau permainan biasanya dilakukan untuk kesenangan. Dalam membuat sebuah game terlebih dahulu pembuat Game harus membuat deskripsi yang menceritakan game yang dibuat. Selain itu dibutuhkan juga design game yang sederhana untuk mempermudah pembuatan game. Melalui desain yang telah dibuat dapat diketahui semua elemen-elemen yang dibutuhkan dalam pembuatan game, misalnya karakter pengguna, karakter musuh, animasi permainan dan sebagainya. Membuat game mebutuhkan gambar dari tiap elemen-elemen yang ada, background image dan lagu. Semua hal diatas dapat dikatakan sebagai resources game.
2.2.2
Jenis-Jenis Game Game dikelompokkan menjadi beberapa jenis. Jenis-jenis dari Game
diantaranya shooting, fighting, adventure, Strategi, Olahraga, puzzle, Edugames dan maze (Dewi, 2012). 1.
Shooting Game jenis ini sangat memerlukan kecepatan refleks, koordinasi
tantangan, dan juga timing. Inti dari game jenis ini adalah tembak, tembak dan tembak. 2.
Fighting Fighting merupakan game yang permainannya memerlukan refleks dan
koordinasi mata dan tangan dengan cepat, tetapi inti dari game ini adalah penguasaan hafalan jurus.
9
3.
Adventure Game yang lebih menekankan pada jalan cerita dan kemampuan berfikir
pemain dalam menganalisia tempat secara visual, memecahkan teka-teki maupun menyimpulkan berbagai peristiwa. 4.
Strategi Game jenis ini memerlukan koordinasi team dan strategi dalam
memainkan permainan. Kebanyakan game stategi adalah game perang. 5.
Olahraga Game ini merupakan adaptasi dari kenyataan yang ada. Membutuhkan
kelincahan dan juga strategi dalam memainkan game jenis ini. 6.
Puzzle Game puzzle adalah game yang berbentuk teka-teki. Pemain diharuskan
memecahkan teka-teki dalam game tersebut. 7.
Edugames Game jenis ini dibuat bertujuan spesifik sebagai alat untuk pendidikan.
Game jenis ini banyak digunakan seperti untuk belajar mengenal huruf, angka dan sampai belajar bahasa asing. 8.
Maze Maze adalah jenis game yang menggunakan batasan permainan berupa
labirin. Game jenis ini menjadi seru jika berhasil di kemas kedalam bentuk yang kompleks.
2.2.3
Komponen-komponen Game Game memiliki 5 komponen penting yang nantinya akan menjadi ukuran
baik atau tidaknya sebuah game. Komponen tersebut yaitu : 1.
Fitur Fitur merupakan hal yang bisa membedakan setiap game yang ada. Fitur
juga bisa menggambarkan jalan cerita game kedalam bentuk-bentuk yang dapat dilihat maupun dirasakan.
10
2.
Gameplay Gameplay membantu pengembang game untuk mengetahui cara kerja
suatu game, Fitur yang ada biasanya akan membentuk suatu gameplay dari sebuah game. 3.
Interface Interface merupakan semua tampilan yang ada dalam suatu game.
Interface yang baik adalah interface yang tidak membosankan, menarik, dan memudahkan pemain untuk memainkan game tersebut. 4.
Aturan/rules Merupakan kumpulan aturan-aturan yang harus diikuti pemain agar dapat
maksimal memainkan sebuah game. 5.
Desain Level Desain level mencakup style, background, dan jalan cerita dari sebuah
game. Level merupakan tingkatan dari pemain yang sudah berhasil memainkan sebuah game.
2.3
Meong-meongan Meong-meongan merupakan permainan tradisional masyarakat Bali yang
umum dimainkan oleh anak-anak di bali diiringi dengan nyanyian lagu meongmeong. Permainan ini menggambarkan usaha dari kucing atau dalam Bahasa Bali disebut meng untuk menangkap tikus atau bikul. Permainan ini biasanya diikuti oleh lebih dari 8 orang atau lebih dimana 1 orang memerankan tikus satu orang memerankan sebagai kucing dan yang lainnya bertugas melindungi tikus dari kucing dengan cara membentuk lingkaran kemudian tikus berada di dalam lingkaran sedangkan kucing berada di luar lingkaran. Kucing akan berusaha masuk ke dalam lingkaran dan berusaha menangkap tikus. Anak-anak yang membentuk lingkaran juga akan berusaha menghalangi kucing masuk ke dalam lingkaran. Kucing baru boleh menangkap tikus ketika lagu sudah pada kata-kata juk-juk meng juk-juk kul. Permainan tradisional Meong-meongan sangat tepat dilakukan sebagai media
belajar
melalui
bermain.
Permainan
tradisional
Meong-meongan
11
merupakan suatu permainan yang mirip dengan olah raga yakni memiliki aturan main yang memberikan kesenangan, kegembiraan, dan tantangan (Handayani, Dantes dan Lasmawan 2013, h. 3).
2.4
Lua Lua dari bahasa Portugis, lua yang berarti "bulan" merupakan bahasa
pemrograman
ringkas
yang
dinamis berbasis skrip dengan
dirancang semantik
sebagai
yang
dapat
bahasa
pemrograman
dikembangkan
atau
ditambahkan. Sebagai bahasa skrip, Lua memiliki API dalam bahasa C yang relatif lebih sederhana dibandingkan bahasa skrip lainnya. Lua diciptakan pada 1993 oleh Roberto Ierusalimschy, Luiz Henrique de Figueiredo, dan Waldemar Celes, anggota Kelompok Teknologi Komputer Grafis (Tecgraf) di Universitas Katolik Kepausan Rio de Janeiro, di Brasil. Bahasa pemprograman Lua merupakan bahasa pemprograman cepat dan ringan dalam menjalankan bahasa scripting. Bahasa pemrograman Lua adalah bahasa yang fleksibel dan juga sederhana baik dari segi spesifikasi dan implementasinya (Ierusalimschy, 2010). Lua menggabungkan sintaks prosedural sederhana dengan deskripsi data, yang di dasari oleh array asosiatif dan semantik extensible. Lua dinamis diketik, berjalan dengan menginterpretasikan bytecode untuk mesin virtual berbasis mendaftar, dan memiliki manajemen memori otomatis dengan pengumpulan sampah tambahan, sehingga ideal untuk konfigurasi, scripting, dan prototyping cepat.
2.4.1
Kelebihan Bahasa Pemrograman Lua Lua dalam penggunaan bahasanya memberikan beberapa kelebihan
fasilitas-fasilitas diantaranya extensibility, simplicity, efisiensi, dan portabilitas. Dibawah ini merupakan penjelasan mengenai masing-masing fasilitas yang dimiliki bahasa pemrograman Lua tersebut. 1.
Extensibility Extensibility Lua menarik perhatian sehingga banyak orang menganggap
Lua bukan sebagai suatu bahasa, tetapi sebagai suatu perangkat untuk membangun
12
bahasa-bahasa domain spesifik. Lua telah dirancang untuk diperluas, pada kode Lua dan kode eksternal C. Lua menerapkan banyak kemampuan dasarnya melalui fungsi-fungsi eksternal. Hal ini sangat mudah untuk menghubungkan Lua dengan bahasa-bahasa lain, seperti Fortran, Java, Smalltalk, Ada, bahkan dengan bahasa bahasa penulisan yang lain. 2.
Simplicity / Sederhana Lua adalah bahasa yang mudah dan sederhana. Lua mempunyai sedikit
konsep. Kesederhanaan ini membuat Lua mudah dipelajari dan memperbesar suatu implementasi yang sederhana. Distribusinya yang lengkap (source program, manual, biner-biner lebih untuk beberapa platform) sesuai dengan floopy disk. 3.
Efisiensi Lua mempunyai implementasi yang efisien. Benchmark yang mandiri
menunjukkan Lua sebagai bahasa tercepat dalam dunia bahasa penulisan. 4.
Portabilitas Lua dapat dijalankan di semua platform seperti: Android, NextStep, OS/2,
PlayStation II (Sony), Mac OS-9 dan OS X, BeOS, MS-DOS, IBM, EPOC, PalmOS, MCF5206ELITE Evaluation Board, RISC OS, dan semua jenis Unix dan Windows. Source program untuk masing-masing platform hampir sama. Lua tidak menggunakan kumpulan kondisi untuk menyesuaikan kodenya kepada mesin-mesin yang berbeda sebagai gantinya.
2.4.2
Kekurangan Bahasa Pemrograman Lua Bahasa pemrograman lua juga memiliki kekurangan diantaranya sebagai
berikut : 1.
Bahasa pemrograman Lua bersifat struktural dan bukan berbasis pemrograman berorientasi obyek.
2.
Lua hanya mendukung beberapa jenis struktur data atomik seperti boolean, floating string dan srting. Jenis tipe atau struktur data lainnya seperti set, array atau list direpresentasikan dalam Lua melalui sebuah tipe data yaitu table.
13
2.5
Corona SDK (Software Development Kit) Corona adalah produk dari Corona Labs, Inc., sebelumnya Ansca Mobile.
Pada awalnya diciptakan oleh Walter Luh dan Carlos Icaza, mantan karyawan Adobe. Corona dirilis pertama pada Desember 2009 (Zammetti, 2012). Corona adalah software untuk membuat aplikasi Android khususnya untuk game development. Bahasa pemrograman yang digunakan adalah bahasa lua. Bahasanya sedikit berbeda, tetapi mungkin tidak terlalu sulit bagi yang sudah terbiasa menggunakan bahasa pemrograman. Corona SDK adalah yang pertama dalam keluarga Corona Ansca untuk membuat multimedia kinerja tinggi yang kaya grafis dan game untuk android. Ansca adalah perusahaan di balik Corona, dan SDK ini memungkinkan pengembang untuk membuat aplikasi cross-platform yang cepat dan kuat yang memiliki akses ke API kerangka kerja lainnya seperti kamera, GPS dan Accelerometer. Cross Platform Development berarti Corona mendukung pengembangan aplikasi pada operating system iOS & Android, jadi dengan sekali kerja pengguna bisa menghasilkan sebuah software yang dapat berjalan di dalam dua platform (Burton, 2013).
2.5.1
Scene Templates Scene templates yang di gunakan adalah director. Scene templates director
mudah untuk digunakan sehingga sampai saat ini banyak yang tetap menggunakan scene templates director ini. Penggunan scene templates director harus pastikan semua display object yang dibuat dimasukkan ke dalam group yang sama yang di return pada akhir fungsi. Transisi director class akan meninggalkan scene sebelumnya untuk menuju scene berikutnya, setelah transisi selesai scene lama akan di-removed. Kode program 2.1 merupakan scene templates untuk director.
14
module(..., package.seeall) --============================================================--- SCENE: [NAME] --============================================================-new = function () ------------------- Groups -----------------local localGroup = display.newGroup() ------------------- Your code here ------------------- MUST return a display.newGroup() -----------------return localGroup end Kode Program 2.1 Scene Templates Director
Kode Program 2.1 Merupakan bentuk umum dari scene templates director. Scene templates director ini masih banyak yang menggunakan. Scene templates ini digunakan karena mudah untuk digunakan.
2.5.2
Physics Physics merupakan interaksi yang terjadi antara 2 object atau lebih yang
bertabrakan. Kode Program 2.2 merupakan contoh physics pada corona. local ball = display.newImage( "ball.png" ) physics.addBody( ball, { density=1.0, friction=0.3, bounce=0.2, radius=25 } ) Kode Program 2.2 Physics
Physics biasanya digunakan untuk aplikasi yang melibatkan simulasi objek yang bergerak, bertabrakan, dan berinteraksi dengan berbagai kekuatan fisik seperti gravitasi. Corona membuat mudah untuk menambahkan physics pada aplikasi yang dibuat. Corona mengambil pendekatan desain yang berbeda dengan menghilangkan banyak coding yang diperlukan. Tampilan standar termasuk
15
gambar, obyek vektor, atau sprite animasi dapat dibuatkan physics dan mereka akan secara otomatis berinteraksi dengan objek lainnya dalam simulasi.
2.5.3
Accelerometer Accelerometer adalah sensor yang digunakan untuk mengukur percepatan
suatu objek. Accelometer mengukur percepatan dynamic dan static. Pengukuran dynamic adalah pengukuran percepatan pada objek bergerak, sedangkan pengukuran static adalah pengukuran terhadap gravitasi bumi, untuk mengukur sudut
kemiringan.
Kode
Program
2.3
merupakan
contoh
penggunaan
accelerometer pada corona. local bikul = display.newImageRect("bikul.png", 422/20, 483/20) bikul.x = centerX - 190 bikul.y = centerY + 130 local function onAccelerate( event ) bikul.x = bikul.x - event.yGravity * bikul.y = bikul.y - event.xGravity * end
20 20
system.setAccelerometerInterval( 20 ) Runtime:addEventListener ("accelerometer", onAccelerate); Kode Program 2.3 Accelerometer
Sensor Accelerometer merupakan salah satu fitur yang di tanam pada smartphone android. Acceleromoter fungsi untuk menentukan derajat kemiringan dari smartphone. Pada dasarnya fungsi sensor ini untuk mengubah tampilan layar dari posisi landscape menjadi potrait ataupun sebaliknya. Salah satu contoh yang sering menggunakan sensor ini adalah aplikasi game. Accelerometer
biasa
digunakan untuk memindahkan objek dari titik satu ke titik satunya untuk menghindari musuh dalam sebuah game. Penggunaan accelerometer membuat permainan lebih menantang dan lebih menarik (Mackenzel & Medryk 2013, h. 117).
16
2.5.4
Collision Detection Collision detection adalah sebuah proses pendeteksian tabrakan antar
objek sehingga objek bisa bereaksi dan tidak hanya saling menembus. Collision detection adalah bagian penting dari pengembangan game, dimana sprite perlu bertabrakan dan tabrakan ini dapat dideteksi (rahamatherunisa & Pragadeeswaran 2012, h. 961). function onCollision(e) if(e.myName == 'Musuh') then alert(...) elseif(e.myName == 'finish') then alert(...) end end Kode Program 2.4 Collision Detection
Pada kode program 2.4 memperlihatkan penggunaan collision detection. Pada game meong-meong collision detection digunakan untuk menentukan benturan dengan musuh, makanan dan titik finish. Benturan dengan musuh berakibat kekalahan, sedangkan dengan makan untuk menambah point dan finish berarti menang.
2.6
Use Case Diagram Use case diagram adalah diagram yang menggambarkan user, use case
dan relasinya sebagai suatu urutan tindakan yang memberikan nilai terukur untuk user (Haviluddin 2011, h. 4). Use case digunakan untuk membentuk tingkah laku dalam sebuah model serta di realisasikan oleh sebuah collaboration. Umumnya use case digambarkan dengan sebuah elips dengan garis-garis yang solid, biasanya mengandung nama. Use case menggambarkan proses sistem (kebutuhan sistem dari sudut pandang user). Gambar 2.1 merupakan 3 komponen dari use case diagram.
17
Gambar 2. 1 Komponen-komponen Use Case
Gambar 2.1 merupakan 3 komponen use case diagram. Komponen tersebut meliputi actor, system boundary dan use case. Komponen tersebut dihubungkan dengan use case relationships. Jenis-jenis use case relationships adalah sebagai berikut : 1.
Association Garis yang menghubungkan antara actor dengan use case.
2.
Extend Menghubungkan antara dua atau lebih use case yang merupakan dari base use case yang biasanya untuk mengatasi kasus pengecualian.
3.
Generalization Hubungan antara use case umum dengan use case yang lebih khusus.
4.
Include Menghubungkan antara 2 atau lebh use case untuk menujukan use case tersebut merupakan bagian dasi base use case. Use case Diagram adalah gambaran fungsionalitas dari suatu sistem,
sehingga pengguna sistem paham dan dapat mengerti mengenai kegunaan sistem yang akan dibangun. Use case diagram adalah penggambaran sistem dari sudut pandang pengguna sistem tersebut, sehingga pembuatan use case lebih dititikberatkan pada fungsionalitas yang ada pada system tersebut, bukan berdasarkan alur atau urutan kejadian.
2.7
Diagram Aktivitas (Activity Diagram) Activity diagram menggambarkan aktifitas-aktifitas, objek, state, transisi
state dan event (Haviluddin 2011, h. 4). Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
18
Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Activity diagram dipakai pada business modeling untuk memperlihatkan urutan aktifitas proses bisnis. Struktur diagram ini mirip flowchart atau Data Flow Diagram pada perancangan terstruktur. Activity diagram sangat bermanfaat apabila membuat diagram ini terlebih dahulu dalam memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan. Activity diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram.