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 Game Maker 8.0 dan menggunakan metode pemrograman berorientasi objek. Berdasarkan hasil penelitian 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 buatan dalam perkembangannya dapat dikelompokkan sebagai berikut:
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
a. Logika Fuzzy atau Fuzzy Logic
b. Jaringan Syaraf Tiruan atau Neurall Network c. Probabilistic Reasoning
d. Algoritma Genetika atau Evolutionary Computing
2.4 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 Role-Playing 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 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 (Corona2013).
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:
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 (bolak-balik).
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 aktifitas-aktifitas tersebut bergantung satu sama lain.