2.1. state of the art - sinta.unud.ac.id ii.pdfbarat menyebutkan wayang sebagai bentuk drama yang...
TRANSCRIPT
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 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 (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.