BAB II TINJAUAN PUSTAKA
Bab tinjauan pustaka ini dipaparkan teori penunjang yang menjadi dasar dalam analisis hasil. Teori penunjang yang disertakan antara lain teori tentang game, kecerdasan buatan (Artificial Intelligence), Algoritma Basic Probability, Android, Bahasa Pemrograman Lua, Corona SDK, Adobe Illustrator, Adobe Audition, dan UML (Unified Modeling Language).
2.1.
State of the Art Banyak game yang sudah berkembang pesat saat ini seiring dengan
kemajuan teknologi. Tujuan pembuatan game pun beragam mulai dari sebagai media hiburan, media pembelajaran bahkan sampai ada game yang bersifat adiktif. Membuat sebuah game yang mengangkat budaya di Indonesia masih lemah dan jarang ditemui di Indonesia dan perlu dikembangkan lagi. Budaya bisa dikatakan sebagai identitas unik dari suatu negara, salah satunya budaya dari Indonesia dalah wayang yang sudah diakui oleh UNESCO. Untuk itu perlu dilakukannya pelestarian terhadap budaya wayang tersebut dengan cara mengadaptasi budaya ke dalam media digital. Berikut merupakan beberapa penelitian yang mengembangkan budaya wayang yang dibuat dalam bentuk media game.
Penelitian dari Kade Chandra Mahardika yang berjudul “Rancang Bangun Game Flash Petualangan Panca Pandawa Dalam Cerita Sorga Rohana Parwa” yang mengadaptasi Cerita Pewayangan Mahabharata ke dalam sebuah game berbasis Flash. Game Flash terdiri atas grafik, teks, animasi dan aplikasi, yang mengutamakan grafik berbasis vektor. Flash memiliki akses lebih cepat dan akan terlihat halus pada skala resolusi layar besar atau kecil, selain itu juga mempunyai kemampuan untuk mengimpor video, gambar dan suara dan aplikasi. Game Flash Pertualangan Panca Pandawa dapat menyediakan referensi baru bagi masyarakat yang ingin mengetahui tentang cerita Sorga Rohana Parwa dalam kisah Mahabharata. Game Flash Petualangan Panca Pandawa dibuat dengan menggunakan gambar karakter yang menarik dan alur permainan yang mudah
dinikmati oleh semua kalangan. Melalui media game ini, cerita Mahabharata tentang Sorga Wahana Parwa yaitu perjalanan Panca Pandawa menuju sorga menjadi lebih mudah untuk dipahami dan lebih menarik, mudah diterima oleh beragam kalangan masyarakat dan kemampuannya untuk survival. Penelitian dari Arief Dwinugroho yang berjudul “Aplikasi game Turn Based Strategy (TBS) War of Baratayuda” yang mengangkat Cerita Pewayangan Mahabharata ke dalam sebuah game. Aplikasi game Turn Based Strategy (TBS) War of Baratayuda merupakan sebuah game yang menceritakan penggalan kisah perang baratayuda dan memperkenalkan tokoh Bima dan Duryudana yang terkait dalam perang tersebut. Game ini diterapkan kecerdasan buatan yaitu Algoritma A* untuk pergerakan enemy dalam pencarian rute terpendek. Aplikasi ini dibangun
menggunakan
pemrograman
berorientasi
Game
Maker
objek.
8.0
dan
Berdasarkan
menggunakan
hasil
penelitian
metode dengan
menggunakan pengujian alpha dan beta, dapat disimpulkan bahwa game ini dapat dijadikan sebagai media pengenalan budaya kepada generasi muda serta dapat menambah pengetahuan dan ketertarikan akan budayanya sendiri kepada masyarakat terutama generasi muda.
2.2.
Wayang Wayang adalah salah satu kebudayaan milik Indonesia yang telah dikenal
sekurang-kurangnya sejak abad ke-10. Wayang merupakan seni pertunjukan bayangan yang berkembang di Pulau Jawa dan Bali. Wayang diartikan sebagai bayangan atau merupakan pencerminan dari sifat-sifat yang ada dari dalam jiwa manusia seperti watak angkara murka, kebajikan, serakah, dan lain sebagainya. Beberapa jenis wayang berupa wayang dua dimensi, terbuat dari kulit yang ditatah dan disungging, dipentaskan oleh dalang di depan layar kain, diterangi lampu, sehingga dapat ditonton dari depan maupun dari belakang layar, misalnya Wayang Kulit Purwa Jawa. Keistimewaan wayang sebagai bentuk kesenian adalah sifat-sifatnya yang adiluhung dan edipeni, yaitu seni yang sarat dengan falsafah serta sangat indah. Bisa juga disebut mengandung nilai etika dan estetika. Para pakar budaya
Barat menyebutkan wayang sebagai bentuk drama yang canggih di dunia. Wayang berfungsi sebagai tontonan dan juga sebagai tuntunan dalam Masyarakat Indonesia
sejak
berabad-abad
yang
lalu
sampai
sekarang.
UNESCO
memproklamirkan Wayang Indonesia sebagai Karya Agung Budaya Dunia, pada Tanggal 7 November 2003.
2.3.
Baratayuda Baratayuda adalah istilah yang dipakai di Indonesia untuk menyebut
perang saudara di Kurukshetra antara Keluarga Pandawa melawan Korawa. Perang ini merupakan klimaks dari kisah Mahabharata. Istilah Baratayuda berasal dari kata Bharatayuddha, yaitu judul sebuah naskah kakawin berbahasa Jawa Kuna yang ditulis pada Tahun 1157 oleh Mpu Sedah atas perintah Maharaja Jayabhaya, Raja Kerajaan Kadiri. Kisah Kakawin Bharatayuddha kemudian diadaptasi ke dalam Bahasa Jawa Baru dengan judul Serat Bratayuda oleh Pujangga Yasadipura I pada zaman Kasunanan Surakarta (Arief Dwinugroho 2013 h. 8). 2.2.1
Sebab Peperangan Awal perselisihan antara Pandawa dan Korawa dimulai sejak orang tua
mereka masih sama-sama muda. Pandu, ayah para Pandawa suatu hari membawa pulang tiga orang putri dari tiga negara, bernama Kunti, Gandari, dan Madrim. Salah satu dari mereka dipersembahkan kepada Dretarastra, kakaknya yang buta. Dretarastra memutuskan untuk memilih Gandari. Karena sekali lagi Dretarastra buta, ia tidak dapat melihat apapun, jadi ketika dirinya memilih ketiga putri itu yang dengan cara mengangkat satu per satu, terpilih lah Gandari yang mempunyai bobot paling berat, sehingga Dretarastra berpikir bahwa kelak Gandari akan mempunyai banyak anak, sama seperti impian Dretarastra. Gandari merasa dirinya tak lebih dari piala bergilir. Gandari pun bersumpah keturunannya kelak akan menjadi musuh bebuyutan anak-anak Pandu. Gandari dan adiknya, bernama Sangkuni, mendidik anak-anaknya yang berjumlah seratus orang untuk selalu memusuhi anak-anak Pandu. Ketika Pandu meninggal, anak-anaknya semakin menderita. nyawa mereka selalu diincar oleh
sepupu mereka, yaitu para Korawa. Kisah-kisah selanjutnya tidak jauh berbeda dengan versi Mahabharata, antara lain usaha pembunuhan Pandawa dalam istana yang terbakar, sampai perebutan Kerajaan Amarta melalui permainan dadu. Akibat kekalahan dalam perjudian tersebut, para Pandawa harus menjalani hukuman pengasingan di Hutan Kamiyaka selama 12 tahun, ditambah dengan setahun menyamar sebagai orang rakyat jelata di Kerajaan Wirata. Namun setelah masa hukuman berakhir, para Korawa menolak mengembalikan hak-hak para Pandawa. Sebenarnya Yudhistira (Saudara sulung dari Pandawa), hanya menginginkan 5 desa saja untuk dikembalikan ke Pandawa. Tidak utuh satu Amarta yang dituntut. tetapi Korawa pun tidak sudi memberikan satu jengkal tanah pun ke pandhawa. Akhirnya keputusan diambil lewat perang Baratayuda yang tidak dapat dihindari lagi.
2.3
Kecerdasan Buatan atau Artificial Intelligence Berbagai definisi diungkapkan oleh para ahli untuk dapat memberi
gambaran mengenai kecerdasan buatan diantaranya: 1.
Kecerdasan
Buatan
(Artificial
Intelligence)
merupakan
kawasan
penelitian, aplikasi dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas (H. A. Simon 1987). 2.
Kecerdasan Buatan (Artificial Intelligence) merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia (Rich and Knight 1991).
Kecerdasan Buatan (Artificial Intelligence) merupakan cabang dari ilmu komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan Metode Heuristic atau dengan berdasarkan sejumlah aturan. 2.3.1
Jenis-Jenis Kecerdasan Buatan Jenis-jenis
kecerdasan
dikelompokkan sebagai berikut:
buatan
dalam
perkembangannya
dapat
1.
Sistem Pakar (Expert System), komputer sebagai sarana untuk menyimpan pengetahuan para pakar sehingga komputer memiliki keahlian menyelesaikan permasalahan dengan meniru keahlian yang dimiliki pakar.
2.
Pengolahan Bahasa Alami (Natural Language Processing), user dapat berkomunikasi dengan komputer menggunakan bahasa sehari-hari, misal Bahasa Inggris, Bahasa Indonesia, dan sebagainya.
3.
Pengenalan Ucapan (Speech Recognition), manusia dapat berkomunikasi dengan komputer menggunakan suara.
4.
Robotika & Sistem Sensor.
5.
Computer Vision, menginterpretasikan gambar atau objek-objek tampak melalui komputer.
6.
Intelligent Computer-Aided Instruction, komputer dapat digunakan sebagai tutor yang dapat melatih & mengajar.
7.
Game Playing.
8.
Soft Computing merupakan sebuah inovasi dalam membangun sistem cerdas yaitu sistem yang memiliki keahlian seperti manusia pada domain tertentu, mampu beradaptasi dan belajar agar dapat bekerja lebih baik jika terjadi perubahan lingkungan. Soft Computing mengeksploitasi adanya toleransi terhadap ketidaktepatan, ketidakpastian, dan kebenaran parsial untuk dapat diselesaikan dan dikendalikan dengan mudah agar sesuai dengan realita (Prof. Lotfi A Zadeh 1992). Metodologi-metodologi yang digunakan dalam Soft Computing adalah
2.4
a.
Logika Fuzzy atau Fuzzy Logic
b.
Jaringan Syaraf Tiruan atau Neurall Network
c.
Probabilistic Reasoning
d.
Algoritma Genetika atau Evolutionary Computing
Basic Probability Algoritma ini akan menilai semua kemungkinan yang akan komputer
lakukan, sebelum player mengambil keputusan. Algoritma ini sebelum dibuat,
terlebih dahulu harus membuat sebuah nilai probilitas pada setiap aksi yang akan player lakukan. Komputer akan mencari nilai probilitas terbasar atau yang paling menguntungkan untuk komputer. Pengembang game menggunakan probabilitas dalam sebuah game untuk hal-hal seperti Hit Probabilities, Damage Probabilities, dan Personality seperti kecenderungan untuk menyerang, lari, dan lainnya (David M. Bourg & Glenn Seeman 2004, h.303). 2.4.1
Randomness Fungsi standar C untuk menghasilkan nomor acak adalah rand(), yang
menghasilkan integer acak dalam kisaran 0 sampai RAND_MAX. Biasanya RAND_MAX diatur ke 32727. Untuk mendapatkan integer acak antara 0 dan 99, dibuat dengan menuliskan kode rand()%100. Begitu juga untuk mendapatkan nomor acak antara 0 dan setiap bilangan bulat N-1 dibuat dengan menuliskan kode rand ()%N. Misalnya membuat pergerakan suatu objek yang bergerak ke kiri dengan probabilitas 25% atau bergerak ke kanan dengan probabilitas 25% atau
kembali
dengan probabilitas 50%. Mengingat probabilitas ini hanya perlu menghasilkan nomor acak antara 0 dan 99 dan melakukan beberapa tes untuk menentukan arah mana untuk memindahkan onjek. Tes ini dilakukan dengan menetapkan kisaran bilangan 0-24 sebagai kemungkinan rentang nilai untuk event pindah kiri. Demikian pula, ditetapkan rentang nilai 75-99 sebagai kemungkinan rentang nilai untuk event bergerak kanan. Nilai lain antara 25 dan 74 menunjukkan event cadangan. Setelah nomor acak dipilih, kemudian ditentukan event untuk mengambil langkah yang tepat. Ini adalah contoh yang sangat sederhana, dan dapat mengatakan bahwa ini bukan gerakan cerdas. Developer sering menggunakan teknik ini untuk menyajikan beberapa ketidakpastian pada game, sehingga lebih sulit untuk memprediksi ke mana objek akan bergerak ketika berhadapan.
2.4.2
Hit Probabilities Penggunaan lain yang umum dari probabilitas dalam game melibatkan
peluang pemain untuk memukul lawan dalam pertempuran. Biasanya, pengembang game mendefinisikan beberapa probabilitas dengan mengingat karakteristik tertentu dari pemain dan lawannya. Contohnya dalam sebuah RolePlaying Game dapat dikatakan bahwa seorang pemain dengan peringkat ketangkasan moderat memiliki probabilitas 60% mencolok lawannya dengan pisau dalam pertempuran jarak dekat. Apabila peringkat ketangkasan pemain tinggi, mungkin memberinya peluang lebih baik mencolok dengan pisau. Probabilitas pemain keberhasilannya adalah 90% mengingat bahwa pemain sangat terampil, sedangkan probabilitasnya sukses adalah 60% mengingat bahwa pemain cukup terampil. Semua probabilitas tersebut tergantung pada beberapa peristiwa lain, meskipun tidak mungkin secara eksplisit menyatakan kondisi atau menetapkan probabilitas untuk menyerang.
2.4.3
Character Abilities Contoh lain menggunakan probabilitas dalam game adalah untuk
menentukan kemampuan kelas karakter. Contohnya dalam Role-Playing Game di mana pemain dapat mengambil kepribadian dari wizard, fighter, rouge, atau ranger. Setiap kelas memiliki kekuatan sendiri dan kelemahan yang relatif terhadap kelas-kelas lain.
Tabel 2.1 Character class ability (David M. Bourg & Glenn Seeman 2004, h.305)
Berdasarkan Tabel 2.1, sebagai contoh jika player adalah Wizard dan komputer adalah Rouge. Player menggunakan Ability jenis Use Magic kemungkinan berhasilnya 90% ketimbang Rouge yang hanya kemungkinan berhasilnya hanya 20%. Melalui penilai tersebut komputer mencari probilitas yang paling menguntung yaitu Wield Sword yang kemungkinan berhasilnya 70%.
2.4.4
State Transition Kemampuan AI lebih lanjut dapat dilakukan dengan langkah
menggabungkan probabilitas dengan state transition dalam finite state machine yang dapat digunakan untuk mengelola berbagai keadaan AI.
Gambar 2.1 Hirarki probability game (David M. Bourg & Glenn Seeman 2004, h.305)
Gambar 2.1 mengambarkan nilai probilitas dan komputer akan membaca kondisi yang terjadi pada player, lalu komputer akan mencari kemungkinan yang ada, dan memilih kemungkinan yang paling menguntungkan untuk melakukan tindakan.
2.5
Game Game adalah kata berbahasa Inggris yang berarti permainan atau
pertandingan, atau bisa diartikan sebagai aktifitas terstruktur yang biasanya dilakukan untuk bersenang-senang. 2.5.1
Pengertian Game Menurut Anggra (Zulfadli Fahrul Rozi, c2010, h.6) game atau permainan
adalah sesuatu yang dapat dimainkan dengan aturan tertentu sehingga ada yang menang dan ada yang kalah, biasanya dalam konteks tidak serius dengan tujuan mencari kesenangan.. 2.5.2
Jenis-jenis Game Seiring dengan perkembangan industri game, jenis-jenis game semakin
bervariasi. Perbedaan jenis game terletak pada gameplay, interaksi, dan kategori. Gameplay merupakan sebuah sistem yang berjalan pada game. Sistem tersebut meliputi storyline, cara bermain, menu, area permainan, dan lain sebagainya. Jenis-jenis game tersebut yaitu: 1.
Maze game Jenis game ini merupakan game yang paling awal muncul. Contoh yang
paling dikenal di Indonesia adalah Game Pacman. Konsep dasar dari jenis ini adalah mengitari maze (lorong-lorong yang berhubungan) dan memakan beberapa item untuk menambah tenaga atau kekebalan. Tentunya dalam permainan ini ada musuh yang mengejar, tetapi dengan kekebalan yang dimiliki kita dapat mengejar balik. 2.
Board game Jenis game ini sama dengan game board tradisional seperti Monopoly.
Tidak ada variasi yang memunculkan gameplay ataupun perubahan desain dari versi tradisonal keversi elektronik. Versi elektronik benar-benar hanya
memindahkan versi tradisional kelayar komputer. Umumnya game ini lebih menekankan pada kemampuan komputer menjadi lawan tanding dari pemain. Game ini melibatkan AI (Artificial Intelegence) atau kecerdasan buatan yang handal untuk bisa menjadikan game ini menantang pemain dengan baik. 3.
Card Game Game ini hampir sama dengan board game dan tidak memberikan
perubahan yang berarti dari game versi tradisional yang sejenisnya. Variasi yang diberikan adalah kemampuan multiplayer dan tampilan yang lebih bervariasi dari versi tradisional. Contoh dari game jenis ini adalah Solitaire dan Hearts. 4.
Battle card game Jenis game ini jarang masuk ke Indonesia. Versi game ini sangat
digemari di luar negeri dimana kita bisa membeli card untuk dikoleksi dan dipertarungkan dengan pemain lain. Contoh dari game ini adalah Battle Card Digimon. 5.
Quiz game Salah satu yang umum dikenal adalah game kuis “Who wants to be a
millioner”, sebuah game dengan nama yang sama dari acara kuis televisi. Game ini sederhana dalam cara bermain yaitu hanya memilih jawaban benar dari beberapa pilihan jawaban. Biasanya pertanyaaan yang diberikan memang memiliki topik tertentu. 6.
Puzzle Game Game jenis ini memberikan tantangan kepada pemainnya dengan
menjatuhkan sesuatu dari sebelah atas ke bawah. Pemain harus menyusun sedemikian rupa dan tidak ada yang tersisa ketika susunan diatasnya sudah akan dibuat. Susunan ini dilakukan secepat dan sebaik mungkin. Semakin lama akan semakin cepat dan semakin banyak objek yang jatuh. Contoh yang terkenal adalah Tetris. 7.
Shooting game Jenis ini banyak diminati karena mudah dimainkan. Biasanya musuh
adalah berbentuk pesawat atau jenis lain. Datang dari sebelah atas dengan jumlah
yang banyak dan tugas pemain adalah menembak dan menghancurkannya secepat dan sebanyak mungkin. 8.
First Person Shooting (FPS) Jenis game ini merupakan jenis game yang paling popular. Game jenis
ini membutuhkan kemampuan refleks pemain dan timing yang tepat. Game ini memerlukan kecepatan berpikir dan seolah-olah pemain berada dalam suasana dalam game tersebut. Contoh dari game ini Call of Duty: Modern Warfare. 9.
Side scrolling game Pemain
bergerak
sepanjang
alur
permainan
kesatu
arah
dan
menyelesaikan tugasnya. Ada yang meloncat, berlari, mengendap, dan menghindari halangan seperti proyektil, jurang, dan sebagainya. Contoh dari game ini adalah Prince of Persia, Sonic the Hedgehog. 10.
Fighting game Game ini memberikan kesempatan kepada pemain untuk saling bertarung
dengan menggunakan berbagai kombinasi gerakan dalam petarungan. Ada yang mengadopsi gerakan bela diri, ada yang sama sekali tidak bisa dikategorikan alias gerakan liar. Terkadang musuh berbentuk bukan manusia melainkan makhluk yang tidak masuk akal sama sekali. Contoh dari game ini adalah Street Fighter, Tekken 2, Dragon Ball GT. 11.
Racing game Game ini memberikan permainan lomba kecepatan dari kendaraan yang
dimainkan pemain. Terkadang di dalam arena, terkadang di luar arena balap. Contoh dari game ini adalah Crash Team Racing, Need for Speed Underground, Superbike GP. 12.
Simulation Merupakan jenis game yang menggunakan simulasi seperti keadaan
sebenarnya, terkadang kita diajak untuk menciptakan suasana lingkungan yang diinginkan. Dalam memainkan tokoh karakter tersebut pemain bertanggung jawab atas inteligen serta kemampuan fisik dari tokohnya tersebut. Tokoh karakter tersebut memerlukan kebutuhan layaknya manusia seperti kegiatan belajar, bekerja, belanja, bersosialisasi, memelihara hewan, memelihara lingkungan dan
lain-lain. Lawan mainnya bisa berupa pemain lain yang memainkan karakter sebagai tetangga maupun komputer dengan kecerdasan buatan tingkat tinggi. Contoh dari game ini adalah The Sims 3. 13.
Strategy game Game ini terbagi menjadi dua yaitu Turn-Based Strategy Game dan Real-
Time Strategy Game. Perbedaannya adalah Turn-Based Strategy Game jika diilustrasikan sama dengan permainan catur, jadi terjadi pergantian antar pemain. Real-Time Strategy Game tidak perlu menunggu, jadi kecepatan pemain akan sangat memungkinkan untuk menang. 14.
Role Playing Game (RPG) RPG (role-playing game) adalah sebuah permainan yang para pemainnya
memainkan peran tokoh-tokoh khayalan dan berkolaborasi untuk merajut sebuah cerita bersama. Para pemain memilih aksi tokoh-tokoh mereka berdasarkan karakteristik tokoh tersebut, dan keberhasilan aksi mereka tergantung dari sistem peraturan permainan yang telah ditentukan. Asal tetap mengikuti peraturan permainan yang ditetapkan, para pemain bisa berimprovisasi membentuk arah dan hasil akhir dari permainan ini. Pemain memiliki peran tertentu seperti kesehatan, mata-mata, kekuatan, dan keahlian. Contoh dari game ini Crytal Legacy, NaROSE online. 15.
Adventure game Game ini merupakan game petualangan dimana dalam perjalanannya,
pemain akan menemukan banyak hal dan peralatan yang akan disimpan. Peralatan itu akan digunakan selama dalam perjalanan, baik untuk membantu dan menjadi petunjuk. Contoh dari game ini adalah Beyond Good and Evil. 16.
Sport game Game ini merupakan jenis game olahraga yang ada pada keadaan nyata.
Seperti game sepak bola, basket, bola voli, tenis dan sebagainya. 17.
Edutainment game Game ini bertujuan lebih untuk memancing minat belajar anak sambil
bermain. Contohnya adalah Game Boby Bola.
2.5.3
Komponen-komponen Game Adapun beberapa komponen-komponen dalam sebuah game adalah
sebagai berikut: 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. 2.
Gameplay Gameplay membantu pengembang game untuk mengetahui cara kerja
suatu game, di mana fitur-fitur yang ada akan membentuk suatu gameplay. 3.
Interface Interface merupakan semua tampilan yang ada dalam suatu game.
Sebuah interface yang baik adalah interface yang tidak membosankan dan memudahkan pemain game.
4.
Aturan atau rules Merupakan kumpulan aturan-aturan dalam sebuah game yang menjadi
pedoman user dalam bermain. 5.
Desain Level Desain level mencakup style, background, dan jalan cerita dari sebuah
game.
2.6
Android Android adalah sistem operasi untuk telepon seluler yang berbasis Linux.
Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel.
Gambar 2.2 Logo Android (http://developer.android.com/index.html)
Android sejak awal memiliki konsep sebagai software berbasis kode komputer yang didistribusikan secara terbuka (open source) dan gratis. Open source inilah sebenarnya kata kunci mengapa Android begitu seksi di mata para petualang gadget (Android 2013). 2.7
Bahasa Pemrograman Lua Lua ditulis pertama kali oleh Roberto Ierusalimschy, Luiz Henrique de
Figueiredo, dan Waldemar Celes yang merupakan anggota Computer Graphics Technology Group (Tecgraf) pada Universitas Pontifical Catholic, Rio de Janeiro, Brazil, pada Tahun 1993.
Gambar 2.3 Logo Lua (http://www.lua.org/images/lua-logo.gif)
Lua merupakan bahasa pemrograman dinamis yang ditujukan untuk digunakan sebagai bahasa skrip, dan cukup ringkas untuk disisipkan dalam berbagai jenis platform utama. 2.7.1
Kelebihan Bahasa Pemrograman Lua Keunggulan fasilitas-fasilitas berikut menjadikan Bahasa Pemrograman
Lua jauh berbeda dari bahasa-bahasa pemrograman lainnya yaitu:
1.
Extensibility Lua sangat menarik perhatian sehingga banyak orang menganggap Lua
bukan sebagai suatu bahasa, tetapi sebagai suatu perangkat untuk membangun bahasa-bahasa domain spesifik. Lua telah dirancang untuk diperluas atau diaplikasikan, pada kode Lua dan kode eksternal C. Sebagai suatu bukti dari konsep, Lua menerapkan banyak kemampuan dasarnya melalui fungsi-fungsi eksternal. Kemampuan tersebut sangat mudah untuk menghubungkan Lua dengan C/C++ dan bahasa-bahasa lain, seperti Fortran, Java, Smalltalk, bahkan dengan bahasa-bahasa penulisan yang lain. 2.
Simplicity Lua adalah bahasa yang mudah dan sederhana. Lua mempunyai sedikit
konsep (namun tangguh). 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-benchmark yang
mandiri menunjukkan Lua sebagai bahasa tercepat dalam dunia bahasa penulisan (interpreted).
2.7.2
Kekurangan Bahasa Pemrograman Lua Selain memiliki beberapa kelebihan, Bahasa Pemrograman Lua juga
memiliki beberapa kekurangan. Adapun kekurangan yang dimiliki Bahasa Pemrograman Lua adalah sebagai berikut: 1.
Lua tidak menyediakan fitur yang lengkap dan kompleks yang hanya berfokus pada satu paradigma pemrograman. Sebagai contoh, Lua tidak secara eksplisit mendukung inheritance yang merupakan kemampuan untuk menurunkan sifat sebuah obyek dalam konsepsi pemrograman berorientasi obyek
2.
Lua hanya mendukung beberapa jenis struktur data atomik seperti boolean, floating point, serta string. Jenis-jenis tipe atau struktur data
lainnya seperti array, set, ataupun list direpresentasikan dalam Lua melalui satu bentuk tipe data yaitu table.
2.8
Corona SDK Corona adalah Software Development Kit untuk membuat aplikasi di
berbagai platform seperti Android, iOS, Amazon Kindle dan Nook. Corona mendukung perangkat dengan processor minimal ARMv7 dan Sistem Operasi Android mulai dari Versi 2.2 (froyo) dan iOS mulai dari Versi 4.3. Corona mengunakan ekstensi khusus bernama LUA (Corona 2013). Corona SDK berbeda dari bahasa pemrograman lainnya, di dalam Corona SDK sendiri telah tertanam worksheet dan sistem debugging. Corona SDK menggunakan editor teks dasar untuk menulis kode, dan editor grafis untuk membuat gambar. Corona sendiri hanya akan bertugas menyusun dan running program. Untuk memulainya dibutuhkan API Corona dan editor teks yang layak (Silvia Domenech 2013).
Gambar 2.4 Logo corona SDK (http://coronalabs.com/products/corona-sdk/)
Menggunakan Bahasa Pemrograman Lua, Corona SDK memiliki banyak API yang dapat dimanfaatkan untuk menghasilkan aplikasi yang komplit. Corona dibuat oleh Ansca (http://www.anscamobile.com), sebuah perusahaan kecil di Palo Alto, California (B. Burton 2013). 2.8.1
Kelebihan Corona SDK Adapun kelebihan-kelebihan Corona SDK dibandingkan dengan software
lainnya dalah sebagai berikut: 1.
Mengembangkan aplikasi 10 kali lebih cepat
Corona SDK dapat mengembangkan aplikasi dengan lebih cepat. Kuncinya ada dibahasa pemrograman yang mudah untuk dipahami bahkan untuk pemula sekalipun. 2.
Go cross-platform dengan mudah Program hasil dari Corona SDK secara otomatis dapat terbaca pada
platform Android dan iOS bahkan sekarang juga sudah mendukung Kindle Fire dan Nook. 3.
Tanpa fragmentasi Corona SDK otomatis memilih asset yang tepat berdasarkan resolusi
layar dan skala konten tergantung pada ukuran layar perangkat pengguna.
2.8.2
Kekurangan Corona SDK Selain memiliki beberapa kelebihan, Corona SDK juga memiliki
beberapa kekurangan. Adapun kekurangan yang dimiliki Corona SDK adalah sebagai berikut: 1.
Diperlukan koneksi internet untuk mem-build APK Setelah projek game atau aplikasi selesai dibuat dan ingin build menjadi
APK maka user diharuskan untuk terhubung keinternet agar bisa melakukan build ke APK. 2.
Engine masih dalam pengembangan Engine dalam Corona SDK masih dalam tahap pengembangan. Misalnya
dalam tahap pembuatan game, user menggunakan Corona SDK versi lama maka source code akan error jika di-compile pada Corona SDK versi terbaru hal ini dikarenakan engine pada versi terbaru dan lama berbeda sehingga akan terjadi error. 3.
Pembacaan bug atau error kurang baik Apabila terdapat bug atau error saat compile source code projek, user
akan sedikit kesulitan untuk melihat error atau bug-nya karena tidak ditampilkan pada editor melainkan pada simulator Corona SDK.
2.9
Adobe Illustrator Adobe Illustrator adalah sebuah program perangkat lunak menggambar
diciptakan oleh Adobe Systems yang menggunakan vektor. Pertama kali diciptakan pada tahun 1986, dan dirancang untuk bekerja dengan komputer Macintosh. Adobe Illustrator adalah alat yang ampuh yang memiliki kurva belajar rendah. Orang-prang telah menemukan Adobe Illustrator untuk menjadi alternatif yang berguna untuk alat desain kompleks seperti AutoCad. Adobe Illustrator tempat penekanan pada lukisan, sesuatu yang hilang dari AutoCad ketika pertama kali diperkenalkan (http://www.adobe.com/).
2.10
Adobe Audition Adobe Audition merupakan suatu program yang digunakan untuk
merekam, mengedit suara dalam bentuk digital yang berbasis Windows. Program ini dilengkapi dengan modul-modul efek suara, seperti Delay, Echo, Pereduksi Noise/Hiss, Reverb, Pengatur Tempo, Pitch, Graphic dan Parametric Equalizer. Adobe Audition memberikan fasilitas perekaman suara sampai dengan 128 track hanya dengan satu sound card, hal ini akan memberikan kemudahan bagi seorang sound editor untuk berekspresi lebih jauh. Pengeditan suara bisa dilakukan dalam bentuk .wav dan penyimpanan bisa di-convert dalam bentuk format seperti .wma, .mp3, mp3pro, dan lain-lain. Dalam arrangement sebuah musik bisa dilakukan dengan menambahkan beberapa alat musik dan dikoneksikan dengan line in atau microphone dari soundcard. Beberapa kelebihan atau fasilitas yang disediakan Adobe Audition (http://www.adobe.com/): 1.
Multitrack Editing dan Mixing sampai 128 track
2.
Lebih dari 40 data sound effect, mastering, perangkat analisa editing suara terdapat didalamnya, semua ini termasuk Echo, Reverb, Flanging, Chorusing, Compression, Limiting, Equalization, Noise Reduction, dan lainnya.
3.
Support untuk banyak format audio
4.
Visualisasi dari gelombang suara analisa dalam bentuk angka
5.
Proses editing dilakukan dengan klik dan drag
2.11
UML (Unified Modeling Language) Pemecahan masalah utama dari object oriented biasanya dengan
penggambaran dalam bentuk model. Model abstrak (semu) merupakan gambaran rinci dari inti masalah yang ada, umumnya sama seperti refleksi dari masalah yang ada pada kenyataan. Beberapa modeling tool yang dipakai adalah bagian dari dasar UML yang merupakan kependekan dari United Modeling Language (T. Sumarta, 2004). UML terdiri atas beberapa diagram, yaitu: 1.
Diagram Use Case
2.
Diagram Class
3.
Diagram Sequence
4.
Diagram Activity
Semakin kompleks bentukan sistem yang akan dibuat, maka semakin sulit komunikasi antara orang-orang yang saling terkait dalam pembuatan dan pengembangan software yang akan dibuat. UML pada masa lalu mempunyai peranan sebagai Software Blueprint Language untuk analisis sistem, designer, dan programmer. Sedangkan pada saat ini, merupakan bagian dari Software Trade (bisnis software). UML memberikan jalur komunikasi dari sistem analis kemudian designer, lalu programmer mengenai rancangan software yang akan dikerjakan. Salah satu pemecahan masalah object oriented adalah dengan menggunakan UML. Orang-orang yang berminat dalam mempelajari UML harus mengetahui dasar-dasar mengenai object oriented solving (pemecahan masalah OO). Tahap pertama, pembentukan model, yaitu gambaran abstrak dari suatu dasar masalah. Dunia nyata atau tempat di mana masalah itu timbul bisa disebut dengan domain. Model mengandung obyek-obyek yang beraktifitas dengan saling mengirimkan messages (pesan-pesan). Obyek mempunyai sesuatu yang diketahui (atribut atau attributes) dan sesuatu yang dilakukan (behaviors atau operations). Attributes hanya berlaku dalam ruang lingkup obyek itu sendiri (state). Blueprint dari suatu obyek adalah Classes (kelas) dan byek merupakan bagian-bagian dari kelas.
2.11.1
Use Case Diagram Use case diagram menggambarkan apa saja aktifitas yang dilakukan
oleh suatu sistem dari sudut pandang pengamatan luar, yang menjadi persoalan itu “apa yang dilakukan bukan bagaimana melakukannya”. Diagram use case dekat kaitannya dengan kejadian-kejadian. Kejadian merupakan contoh apa yang terjadi ketika seseorang berinteraksi dengan sistem. Gambar 2.5. adalah gambaran suatu peristiwa untuk sebuah klinik kesehatan.
Gambar 2.5 Contoh use case diagram (T. Sumarta, B. S. 2004)
Pasien menghubungi klinik untuk membuat janji (appointment) dalam pemeriksaan tahunan. Receptionist mendapatkan waktu yang luang pada buku jadwal dan memasukkan janji tersebut ke dalam waktu luang itu. Diagram Use Case berguna dalam tiga hal: 1.
Menjelaskan fasilitas yang ada (requirements) Case baru selalu menghasilkan fasilitas baru ketika sistem dianalisa dan desain menjadi lebih jelas.
2.
Komunikasi dengan klien Penggunaan notasi dan simbol dalam diagram use case membuat pengembang lebih mudah berkomunikasi dengan klien-kliennya.
3.
Membuat tes dari kasus-kasus secara umum Kumpulan dari kejadian-kejadian untuk use case bisa dijadikan tes kasus layak untuk kejadian-kejadian tersebut.
2.11.2
Class Diagram Class diagram memberikan pandangan secara luas dari suatu sistem
dengan menunjukan kelas-kelasnya dan hubungan mereka. Diagram Class bersifat
statis, “menggambarkan hubungan apa yang terjadi bukan apa yang terjadi jika mereka berhubungan”. Diagram Class mempunyai 3 macam relationships (hubungan), sebagai berikut: 1.
Association Suatu hubungan antara bagian dari dua kelas. Terjadi association antara dua kelas jika salah satu bagian dari kelas mengetahui yang lainnya dalam melakukan suatu kegiatan. Association adalah penghubung yang menghubungkan dua kelas di dalam diagram..
2.
Aggregation Suatu association dimana salah satu kelasnya merupakan bagian dari suatu kumpulan. Aggregation memiliki titik pusat yang mencakup keseluruhan bagian. Sebagai contoh: OrderDetail merupakan kumpulan dari Order.
3.
Generalization Suatu hubungan turunan dengan mengasumsikan satu kelas merupakan suatu superClass (kelas super) dari kelas yang lain. Generalization memiliki tingkatan yang berpusat pada superClass. Contohnya dalah Payment adalah superClass dari Cash, Check, dan Credit.
Untuk tambahan bahwa association mempunyai 2 titik. Salah satu titik bisa memiliki label untuk menjelaskan association tersebut, contohnya OrderDetail adalah line item untuk setiap permintaan. Panah navigability (pengatur alur arah) dalam suatu association menggambarkan arah mana association dapat ditransfer atau disusun. OrderDetail seperti dalam contoh dapat disusun dari item-nya, namun tidak bisa sebaliknya. Panah ini juga menjelaskan siapa “memiliki” implementasi dari association, dalam kasus ini OrderDetail memiliki item. Association tanpa arah panah merupakan bidirectional (bolakbalik).
Gambar 2.6 Contoh penggunaan diagram class (T. Sumarta, B. S. 2004)
Multiplicity dari suatu titik association adalah angka kemungkinan bagian dari hubungan kelas dengan single instance (bagian) pada titik yang lain. Multiplicity berupa single number (angka tunggal) atau range number (angka batasan). 2.11.3
Sequence Diagram Sequence diagram merupakan salah satu diagram Interaction yang
menjelaskan bagaimana suatu operasi itu dilakukan, message (pesan) apa yang dikirim dan kapan pelaksanaannya.
Gambar 2.7 Contoh penggunaan diagram sequence (T. Sumarta, B. S. 2004)
Diagram ini diatur berdasarkan waktu. Obyek-obyek yang berkaitan dengan proses berjalannya operasi diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut.
2.11.4
Activity Diagram Activity diagram sering digunakan oleh flowchart. Diagram ini
berhubungan dengan diagram statechart. Diagram statechart berfokus pada obyek yang dalam suatu proses (atau proses menjadi suatu obyek), diagram activity berfokus pada aktifitas-aktifitas yang terjadi yang terkait dalam suatu proses tunggal.
Gambar 2. 8 Contoh penggunaan diagram activity (T. Sumarta, B. S. 2004)
Diagram ini dapat dikatakan sebagai penunjuk bagaimana aktifitasaktifitas tersebut bergantung satu sama lain.