BAB II - sinta.unud.ac.id II... · mengatakan sangatlah penting untuk memilih suatu metode dalam...
-
Upload
nguyentuyen -
Category
Documents
-
view
247 -
download
6
Transcript of BAB II - sinta.unud.ac.id II... · mengatakan sangatlah penting untuk memilih suatu metode dalam...
4
BAB II
KAJIAN PUSTAKA DAN LANDASAN TEORI
2.1. State of the Art
Penelitian tentang metode pengacakan telah beberapa kali dilakukan
sebelumnya khususnya penelitian yang menggunakan algoritma Linear
Congruential Generators (LCG) dan Linear Feedback Shift Register (LFSR).
Jaka Maulana (2014) dalam penelitiannya yang berjudul “Perancangan
Flash Game pukul Penjahat dengan Menggunakan Metode Linear Congruent
Method”. Metode Linear Congruential Generators (LCG) digunakan untuk
mengacak posisi lubang tempat penjahat keluar, dimana jumlah lobang yang
digunakan adalah 9 buah. Hasil menggunakan metode LCG adalah bilangan acak
mulai dari 1, 9, 5, 7, 1, 9, 5, 7, 1. Pengacakan nomor yang dihasilkan oleh Metode
Linier Congruential dijadikan sebagai acuan urutan jalannya perpindahan objek
Movie Clip ke nomor lokasi target yang dimaksud, dengan menyamakan posisi x
dan y objek terhadap setiap nomor lokasi target yang diacak oleh Metode Linier
Congruential. Dari hasil penelitian yang telah dilakukan Jaka metode LCG
memiliki keuungulan yaitu pada kecepatan dan hanya membutuhkan sedikit
operasi bit pada proses perhitungannya.
Jeffry, Nyimas Artina, S.Kom., M.Si (2010) dari Jurusan Teknik
Informatika STMIK GI MDP dalam jurnalnya yang berjudul “Rancang Bangun
Aplikasi Game Edukasi Puzzle Pengenalan Tokoh Sejarah Berbasis Android
dengan Metode Linear Congruential Generator (LCG)”. Metode Linear
Congruential Generator (LCG) digunakan untuk mengacak gambar pada game
puzzle 3x3 (level mudah). Metode ini sangat cocok digunakan untuk mengacak
puzzle karena kecepatannya dan sangat mudah diimplementasikan.
Stephandle Candra, Rika Perdana, Memen Akbar (2011) dalam
penelitiannya yang berjudul “Aplikasi Acak Huruf dengan Matrik 3x3”
menggunakan metode Linear Congruential Generator (LCG). Metode ini
digunakan untuk mengacak posisi huruf pada matrik 3x3. Hasil yang diperoleh
5
dari penelitian ini bahwa algoritma Linear Congruential Generator (LCG) dapat
mengacak huruf dengan baik dalam aplikasi ini.
Andresta Ramadhan (2013), Program Studi Teknik Informatika ITB
dengan judul penelitiannya “Perbandingan Algoritma Linear Congruential
Generator, BlumBlumShub, dan MersenneTwister untuk Membangkitkan
Bilangan Acak Semu” mengatakan dari beberapa algoritma untuk
membangkitkan bilangan acak semu, tidak ada yang benar-benar dapat
menghasilkan bilangan acak secara sempurna dalam arti benar-benar acak dan
tanpa ada perulangan selama pembankit yang digunakan adalah komputer yang
memiliki sifat deterministik. Bilangan yang benar-benar acak hanya dapat
dihasilkan oleh perangkat keras (hardware). Berdasarkan semua algoritma yang
dimiliki LCG memiliki kelebihan yaitu dari segi kecepatan dalam menghasilkan
bilangan acak.
Dody Indra Harapan (2013) dengan judul penelitiannya “Implementasi
Vigenere Chiper dengan Random Key Metode Linear Feedback Shift Register
(LFSR) pada Teks”. Metode LFSR digunakan sebagai pembangkit kunci untuk
melakukan proses enkripsi dan deskripsi. Menurut peneliti metode LFSR dapat
menghasilkan karakter kunci yang memiliki keacakan cukup tinggi.
Yohanes Andika (2012) dalam penelitiannya yang berjudul
“Pengembangan Random number Generator dengan Video dan Suara”
mengatakan sangatlah penting untuk memilih suatu metode dalam menghasilkan
bilangan acak dalam kriptografi. Hal ini dilakukan guna untuk mempersulit
penyerang untuk menebak kunci maupun hasil enkripsi dari suatu kriptografi.
Penelitian ini membandingkan beberapa metode pengacakan seperti Intel RNG,
RSA Generator, Blum-Micali(BM) Generator, dan Linear Feedback Shift Register
(LFSR). Hasil yang diperoleh dari penelitian tersebut mengatakan bahwa LFSR
memberikan bit stream yang cukup tinggi walaupun memiliki sedikit kekurangan
yaitu adanya periode bit, yang dapat mengakibatkan suatu perulangan.
Anggun Triyogo (2013) dalam penelitiannya yang berjudul
“Pengembangan Algoritma Enkripsi Deskripsi Berbasis LFSR menggunakan
Polinomial Primitif” menyebutkan bilangan acak merupakan salah satu faktor
6
yang sangat penting dalam kriptografi. Hal ini disebabkan karena bilangan acak
menjadi dasar perhitungan dalam kriptografi, yang kemudian menentukan
kekuatan dari kriptografi itu sendiri. Tidak ada cara konvensional yang bisa benar-
benar menghasilkan deret bilangan acak secara sempurna. Umumnya cara yang
digunakan dalam membangkitkan bilangan acak adalah berdasarkan suatu
algoritma atau fungsi tertentu yang deterministik, sehingga sebenarnya bilangan
yang dibangkitkan tersebut bersifat pseudorandom, karena pembangkitan
bilangannya dapat diulang kembali. LFSR (Linear Feedback Shift Register)
adalah salah satu jenis generator yang dapat menghasilkan bit semu acak. LFSR
sering digunakan karena mampu menghasilkan bit semu acak dengan periode
maksimal yang panjang dan mudah diaplikasikan dalam berbagai hal.
Penelitian game kartu Blok Bakar berbasis mobile dengan menggunakan
metode LCG maupun metode LFSR belum pernah dilakukan. Game kartu Blok
Bakar menggunakan kombinasi antara metode LCG dan LFSR dalam
menghasilkan kartu yang teracak.
2.2. Kartu Domino
Menurut kamus besar Bahasa Indonesia kartu memiliki pengertian
sebagai kertas tebal, berbentuk persegi panjang (untuk berbagai keperluan, hampir
sama dng karcis), sedangkan Domino merupakan kartu yg bertanda bulatan-
bulatan yg menunjukkan nilai angka kartu, untuk bermain Domino.
Gambar 2.1 Kartu Domino
(sumber : http://www.mafiaol.com/2012/09/penerapanaplikasi-matematika-pada.html)
7
Domino merupakan kata yang sering mengacu pada sebuah persegi
panjang yang terbentuk dari menggabungkan dua kotak kongruen antara tepi satu
dengan tepi satunya. Budaya Tradisional Sino-Eropa satu set Domino terdiri dari
28 kartu Domino, bahasa sehari-hari yang digunakan untuk menjuluki kartu
Domino adalah tulang, kartu, ubin, tiket, batu, atau pemintal. Setiap Domino
adalah ubin persegi panjang dengan garis untuk membagi kartu menjadi dua ujung
persegi sama besar. Setiap sisi ditandai dengan sejumlah titik (pips atau nips dobs)
atau kosong. Bagian belakang domino dalam satu set biasanya didesain dengan
gambar yang sama. Satu set domino adalah perangkat generik game, mirip dengan
bermain kartu atau dadu dan dapat digunakan dalam berbagai jenis game.
2.3. Blok Bakar
Blok Bakar merupakan salah satu game kartu tradisional dari Bali yang
telah ada dari beberapa tahun yang lalu, game ini menggunkan kartu domino
sebagai alat permainannya. Game ini dapat dimainkan oleh banyak pemain
sekaligus, cara bermain game ini adalah dengan memilih salah satu kartu yang
telah dibagikan pada meja (satu kartu pertama), setelah player selesai memilih
(meletakan koin) selanjutnya akan dibagikan kartu kedua, kartu pertama dengan
kartu kedua ini nantinya akan dijumlahkan dan dibandingkan dengan kartu yang
dimiliki bandar. Ketentuan untuk menentukan kemenangan adalah jika kartu yang
dipilih player lebih besar daripada kartu bandar maka player tersebut menang, dan
mendapatkan poin atau koin sesuai dengan taruhan awalnya.
Hasil wawancara yang dilakukan pada 21 Februari 2015, Wyn Suleman
menjelaskan game Blok Bakar pada dunia nyata pertama kali dibuat karena
keisengan pada sebuah acara Ngelepas (acara 4 harian bayi baru lahir). Pemikiran
membuat game ini dikatakan diambil dari game Domino Spirit, game ini dibuat
untuk menambah jumlah pemain yang dapat ikut dalam game. Karena jika
bermain Spirit jumlah pemain yang dapat ikut dalam game berkisar Empat sampai
Tujuh orang, namun dengan game Blok Bakar yang memiliki konsep yang hampir
sama pemain yang dapat mengikuti game ini lebih banyak.
8
2.4. Bandar
Pengertian Bandar dalam kamus besar Bahasa Indonesia adalah pemain
yang menjadi lawan pemain-pemain lain sekaligus orang yang menyelenggarakan
perjudian, orang yang mengendalikan suatu aksi dengan sembunyi-bunyi, ataupun
orang yang bermodal dalam perdagangan. Bandar yang dimaksud dalam game
kartu Blok Bakar ini adalah orang yang mengatur game, dimana jika pemain
menang maka bandarlah yang nantinya memberikan poin atau koin kemenangan
ke pemain, begitu juga kebalikannya, jika pemain kalah maka koin kepeng
taruhan pemain menjadi hak milik bandar. Bandar pada permainan ini adalah
salah satu pemain yang nantinya akan digilir secara bergantian dari satu pemain
ke pemain selanjutnya.
2.5. Game
Game dalam kamus Bahasa Indonesia diartikan sebagai permainan,
sedangkan game dalam arti kata bahasa inggris berarti dasar permainan.
Permainan dalam hal ini merujuk pada pengertian kelincahan intelektual
(Intellectual Playability Game) yang juga dapat diartikan sebagai arena keputusan
dan aksi pemainnya, dalam game biasanya akan ada target-target yang ingin
dicapai pemainnya (Nugroho. 2011).
Permainan merupakan bagian dari bermain dan bermain juga bagian dari
permainan, keduanya saling berhubungan. Permainan adalah kegiatan yang
kompleks yang didalamnya terdapat peraturan, play dan budaya, sebuah
permainan adalah sebuah sistem dimana pemain terlibat dalam konflik buatan,
disini pemain berinteraksi dengan sistem dan konflik dalam permainan merupakan
rekayasa atau buatan, dalam permainan terdapat peraturan yang bertujuan untuk
membatasi perilaku pemain dan menentukan permainan. Game bertujuan untuk
menghibur, biasanya game banyak disukai oleh anak-anak hingga orang dewasa.
Game sebenarnya penting untuk perkembangan otak, untuk meningkatkan
konsentrasi dan melatih untuk memecahkan masalah dengan tepat dan cepat
karena dalam game terdapat berbagai konflik atau masalah yang menuntut player
untuk menyelesaikannya dengan cepat dan tepat. Game juga dapat merugikan
9
karena apabila player sudah kecanduan game, maka mereka akan lupa waktu dan
akan mengganggu kegiatan atau aktifitas yang sedang lakukan.
2.5.1 Game Berdasarkan Jenis Platform
Berdasarkan jenis platform game dapat dibagi menjadi beberapa
kelompok, pembagiannya adalah sebagai berikut.
2.5.1.1 PC Games
PC Games yaitu video game yang dimainkan menggunakan Personal
Computers.
2.5.1.2 Console games
Console games yaitu video games yang dimainkan menggunakan console
tertentu, seperti Playstation 2, Playstation 3, XBOX 360, dan Nintendo Wii.
2.5.1.3 Handheld games
Handheld games yaitu yang dimainkan di console khusus video game
yang dapat dibawa kemana-mana, contoh Nintendo DS dan Sony PSP.
2.5.1.4 Mobile games
Mobile games yaitu yang dapat dimainkan atau khusus untuk mobile
phone atau PDA.
2.5.2 Game Berdasarkan Genre Game
Genre game dapat dibagi menjadi beberapa kelompok, pembagian game
berdasarkan genre game adalah sebagai berikut.
2.5.2.1 Action Game
Action Game merupakan jenis game yang berkaitan dengan suatu aksi
gerakan suatu karakter. Game jenis ini membutuhkan kelincahan pemain. Salah
satu subgenre action yang popular adalah First Person Shooter (FPS). Game FPS
memerlukan kecepatan berfikir. Game ini dibuat seolah-olah pemain yang berada
dalam suasana tersebut.
2.5.2.2 Action Adventure
Action Adventure merupakan jenis game action yang karaktenya
melakukan suatu pertualangan dengan melakukan suatu aksi tertentu seperti
10
memasuki gua bawah tanah, melompati bebatuan di antara lahar, bergelayutan
dari pohon satu ke pohon lain, bergulat dengan ular sambil mencari kunci untuk
membuka pintu kuil legendaris, atau sekedar mencari telepon umum untuk
mendapatkan misi berikutnya, itulah beberapa dari banyak hal yang karakter
pemain harus lakukan dan lalui dalam game jenis ini.
2.5.2.3 Fighting (pertarungan)
Fighting (pertarungan) merupakan jenis game yang memerlukan
kecepatan refleks dan koordinasi mata dengan tangan, tetapi inti dari game ini
adalah penguasaan jurus (hafal caranya dan lancar mengeksekusinya), pengenalan
karakter dan timing sangatlah penting, combo-pun menjadi esensial untuk
mengalahkan lawan secepat mungkin. Berbeda seperti action game pada
umumnya yang umumnya hanya melawan Artificial Intellegence atau istilah
umumnya melawan komputer saja, pemain jenis fighting game ini baru teruji
kemampuan sesungguhnya dengan melawan pemain lainnya. Street Fighter,
Tekken, Mortal Kombat, Soul Calibur dan King of Fighter adalah contohnya.
2.5.2.4 Simulasi, Konstruksi dan Manajemen
Pemain dalam game ini diberi keleluasaan untuk membangun suatu
proyek tertentu dengan bahan baku yang terbatas.
2.5.2.5 Role Playing Games (RPG)
Game RPG memberi pemain pilihan untuk dapat memilih satu karakter
yang dapat dimainkan. Seiring dengan bertambahnya level game, karakter tersebut
dapat berubah, bertambah kemampuannya, bertambah senjatanya, atau bertambah
hewan peliharaannya.
2.5.2.6 Strategi
Genre strategi menitikberatkan kemampuan pemain pada kemampuan
berpikir dan organisasi. Game strategi dibedakan menjadi dua, yaitu Turn Based
Strategy dan Real Time Strategy. Real times trategy mengharuskan pemain
membuat keputusan dan secara bersamaan pihak lawan juga beraksi hingga
11
menimbulkan serangkaian kejadian dalam waktu yang sebenarnya, sedangkan
turn based strategy pemain bergantian menjalankan taktiknya, misalnya jika pihak
pemain mengambil langkah maka pihak lawan harus menunggu, begitu
sebaliknya.
2.5.2.7 Balapan
Pemain dapat memilih kendaraan, lalu melaju di arena balap. Tujuannya
yaitu mencapai garis finish tercepat.
2.5.2.8 Olahraga
Genre ini membawa olahraga ke dalam sebuah komputer atau konsol.
Game play ini umumnya dibuat semirip mungkin dengan kondisi olahraga yang
sebenarnya.
2.5.2.9 Puzzle
Genre puzzle menyajikan teka-teki, menyamakan warna bola,
perhitungan matematika, menyusun balok, atau mengenal huruf dan gambar.
2.5.2.10 Permainan Kata
Word game sering dirancang untuk menguji kemampuan dengan bahasa
atau untuk mengeksplorasi sifat-sifatnya. Word Game umumnya digunakan
sebagai sumber hiburan, tetapi telah dibuktikan untuk melayani suatu tujuan
pendidikan juga.
Berdasarkan uraian di atas dapat disimpulkan game adalah suatu hasil
dari proses multimedia berupa alat untuk bersenang-senang dan dapat digunakan
sebagai media untuk pembelajaran.
2.5.3 Pengertian Multimedia
Multimedia adalah penggunaan komputer untuk menyajikan dan
menggabungkan teks, grafik, video, animasi, dengan alat bantu (tools) dan
koneksi (link) sehingga pengguna dapat bernavigasi, berinteraksi, berkarya dan
berkomunikasi. Multimedia sering digunakan dalam dunia hiburan. Berikut ini
adalah elemen-elemen yang terdapat dalam multimedia.
12
2.5.3.1 Teks
Merupakan dasar penyapaian informasi, juga merupakan media paling
sederhana yang direpresentasikan dengan typeface (jenis huruf) yang beragam
agar harmonis dengan elemen media lainnya.
2.5.3.2 Citra diam (gambar)
Merupakan representasi spesial dari objek yang disusun sebagai matriks
nilai numerik yang merepresentasikan setiap titik/pixel serta diciptakan dengan
program image editing.
2.5.3.3 Suara atau Audio
Merupakan fenomena fisik yang dihasilkan oleh pengantar materi. Audio
memiliki 3 kategori, yaitu :
1. Ucapan (speech) merupakan suara orang berbicara
2. Musik (music) merupakan hasil pendengaran alat musik
3. Efek suara (sound effect) merupakan suara lainnya, seperti petir, gelas
pecah, tembakan, dll.
2.5.3.4 Animasi
Animasi adalah gambar begerak berbentuk dari sekumpulan objek
(gambar) yang disusun secara beraturan mengikuti alur pergerakan yang telah
ditentukan pada setiap pertambahan hitungan waktu yang terjadi. Gambar atau
objek yang dimaksud dalam definisi di atas bisa berupa gambar manusia, hewan,
maupun tulisan.
2.5.3.5 Video
Video sama seperti animasi, tetapi disimpan dalam format khusus yang
dapat menyimpan adegan dunia nyata atau rekaan dengan komputer. Video adalah
elemen yang paling kompleks dan paling memerlukan persyaratan hardware yang
tinggi.
13
2.5.4 Komponen-komponen Game
Komponen game merupakan bagian yang ada pada game. Game
memiliki lima komponen penting yaitu sebagai berikut.
2.5.4.1 Fitur
Fitur merupakan hal yang digunakan untuk membedakan setiap game
yang ada. Fitur juga dapat menggambarkan jalan cerita game kedalam bentuk-
bentuk yang dapat dilihat maupun dirasakan.
2.5.4.2 Game Play
Game play membantu pengembang game untuk mengetahui cara kerja
suatu game, dimana fitur-fitur yang ada akan membentuk suatu game play.
2.5.4.3 Interface
Interface merupakan semua tampilan yang ada dalam suatu game.
Sebuah interface yang baik adalah interface yang tidak membosankan dan
memudahkan pemain game.
2.5.4.4 Aturan/rules
Aturan merupakan kumpulan aturan-aturan dalam sebuah game. Aturan
disini berfungsi untuk membatasi game play yang ada pada game dan juga
bertujuan untuk membuat tantangan pada game.
2.5.4.5 Desain Level
Desain level mencakup style, background, dan jalan cerita dari sebuah
game. Desain yang menarik digunakan untuk menarik pemain terhadap game.
2.5.5 Game Balance
Game balance merupakan salah satu yang terpenting dari sebuah game.
Game balance pada sebuah game tidak seimbang maka kemungkinan besar ada
fitur game yang sangat jarang digunakan sehingga menjadi sia-sia. Terdapat 3
jenis game balance, yaitu sebagai berikut.
14
2.5.5.1 Player-Player balance
Kategori ini kebanyakan adalah multiplayer game karena masing-masing
player mempunyai keuntungan yang sama, kecuali keahlian masing-masing
pemain.
2.5.5.2 Player-Gameplay balance
Keberhasilan pemain dalam setiap levelnya akan mendapatkan imbalan
sesuai dengan keberhasilan yang telah dicapainya dalam kategori ini.
2.5.5.3 Gameplay-Gameplay balance
Kategori ini, setiap fitur yang terdapat dalam sebuah game harus
seimbang secara keseluruhan, contohnya apabila terdapat senjata yang lebih kuat
daripada senjata lainnya, maka senjata tersebut harus berada di level game yang
lebih tinggi dari senjata lainnya yang kurang kuat.
2.5.6 Dimensi
Dimensi menjadi bagian yang sangat penting yang harus dipahami pada
sebuah game. Berikut ini merupakan pengertian dimensi dan 2 dimensi.
2.5.6.1 Pengertian Dimensi
Dimensi dapat diartikan sebagai banyak cara untuk menentukan posisi
sebuah benda yang didasarkan terhadap acuan tertentu. Sebuah benda dikatakan
berdimensi satu bila posisinya bisa ditentukan dengan sebuah angka. Benda
berdimensi 2 memiliki posisi yang bisa ditentukan oleh 2 angka, misalnya suatu
permukaan bola dapat diukur dengan angka derajat lintang dan angka derajat
bujur.
2.5.6.2 Pengertian 2 Dimensi
Objek 2 dimensi direpresentasikan dalam sebuah bidang yang terdiri dari
sumbu x dan y, sering juga disebut bidang cartesian. Objek yang bisa dibentuk
dalam bidang ini dapat berupa titik, garis, maupun poligon. Sebuah objek titik
terbentuk dari 2 koordinat (x,y) yang spesifik, dimana koordinat x menandakan
15
suatu posisi yang terletak pada sumbu mendatar/horizontal dan koordinat y
menandakan suatu posisi yang terletak pada sumbu tegak/vertikal.
Objek titik dalam bidang 2 dimensi dapat membentuk kumpulan objek
garis yang saling terhubung, yang dapat membentuk suatu objek segi banyak
tertutup (poligon) ataupun objek segi banyak terbuka. Masing-masing titik dari
sebuah poligon disebut vertex.
2.5.7 Game Engine
Game engine merupakan sebuah software (perangkat lunak) yang
dirancang untuk dapat menciptakan atau mengembangkan game. Fungsi utama
yang disediakan oleh game engine biasanya mencakup renderer engine (mesin
render) yang berguna untuk merender 2D atau 3D grafis, physics engine untuk
membuat objek 3D berlaku layaknya sebagai benda nyata (terpengaruh gravitasi,
bertabrakan), sound (suara), script, animasi, kecerdasan buatan (AI), jaringan,
streaming, manajemen memory, threading, dan grafik animasi. Game engine
kebanyakan dirancang untuk membuat game dalam berbagai platform seperti
konsol game dan sistem desktop seperti Microsoft Windows, Linux, dan Mac OS
(Yulianto. 2012).
Game engine biasanya terdiri dari berbagai macam jenis dan ditujukan
untuk berbagai kemampuan pemrograman. Ada 3 tipe game engine yang ada saat
ini, diantaranya sebagai berikut.
2.5.7.1 Roll-your-own game engine
Banyak perusahaan game kecil seperti publisher indie biasanya
menggunakan engine-nya sendiri. Mereka menggunakan API seperti mXNA,
DirectX atau OpenGL untuk membuat game engine mereka sendiri. Sisi lainnya,
mereka kadang menggunakan library komersil atau yang open source. Terkadang
mereka juga membuat semuanya mulai dari nol. Tipe game engine biasanya lebih
disukai karena selain kemungkinan besar diberikan secara gratis, juga
memperbolehkan mereka (para developer) lebih fleksibel dalam mengintegrasikan
komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri.
Kelemahannya banyak engine yang dibuat dengan cara semacam ini malah
16
menyerang balik pengembangnya. Tower Games Studio membutuhkan satu tahun
penuh untuk menyempurnakan game engine-nya, hanya untuk ditulis ulang
semuanya dalam beberapa hari sebelum penggunaannya karena adanya bug kecil
yang sangat mengganggu.
2.5.7.2 Mostly-read game engine
Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada
developer/programmer, semuanya termasuk contoh GUI, physiscs, libraries
model, texture dan lain-lain. Banyak dari mereka yang sudah benar-benar matang,
sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game
engine semacam ini memiliki beberapa batasan, terutama jika dibandingkan
dengan game engine sebelumnya yang benar-benar terbuka lebar. Hal ini
ditujukan agar tidak terjadi banyak error yang mungkin terjadi setelah sebuah
game yang menggunakan engine ini dirilis dan masih memungkinkan game
engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game
engine seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan
sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari
awal. Hal ini dapat menyingkat menghemat waktu dan biaya dari para developer
game.
2.5.7.3 Point-and-click engine
Engine ini merupakan engine yang sangat dibatasi, tapi dibuat dengan
sangat player friendly. Player bahkan dapat mulai membuat game sendiri
menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D.
Pemanfaatkan coding yang kurang, sehingga player juga dapat merilis game
point-and-click. Kekurangannya terletak pada terbatasnya jenis interaksi yang
dapat dilakukan dan biasanya hal ini mencakup semuanya, mulai dari grafis
hingga tata suara. Game jenis ini bukan berarti game engine yang tidak berguna,
bagi developer cerdas dan memiliki kreativitas tinggi, game engine seperti ini
dapat dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine
ini memang ditujukan bagi developer yang ingin menyingkat waktu
pemrogramman dan merilis game-game mereka secepatnya.
17
2.6. Android
Android adalah sistem operasi untuk telepon seluler berbasis Linux
sebagai kernelnya. Android bisa disebut raja dari Smartphone sekarang ini.
Android begitu pesat perkembangan di era saat ini, dikarenakan Android
menyediakan platform terbuka (Open Source) bagi para pengembang untuk
menciptakan aplikasi mereka sendiri. Perusahaan search engine terbesar saat ini,
yaitu Google Inc. membeli Android Inc, pendatang baru yang membuat peranti
lunak untuk ponsel. Android Inc didirikan oleh Andy Rubin, Rich Milner, Nick
Sears dan Chris White pada tahun 2003. Agustus 2005 Google membeli Android
Inc. Pengembangan Android lebih lanjut, maka dibentuklah Open Handset
Alliance konsorsium dari 34 perusahaan hardware, software dan telekomunikasi,
termasuk Google, HTC, Intel, Motorola, Qualqomm, T-Mobile dan Nvidia.
Android juga merupakan aplikasi untuk telepon seluler (handphone)
yang bersifat open source atau dapat dikatakan gratisan karena basisnya dari
Linux, karena sifatnya open source, maka banyak orang dapat membuat dan
mengubah aplikasi tertentu dalam Android. Android sekarang ini dikembangkan
oleh OHA (Open Handset Alliance) yang terdiri dari 34 perusahaan peranti keras,
peranti lunak, dan telekomunikasi yang diantaranya adalah Google, HTC, Intel,
Motorola, Qualcomm, T-Mobile, Nvidia dan lainnya.
Memilih smartphone Android sama halnya memilih sebuah komputer,
selain tampilan yang menarik, pastinya performa dari smartphone itu menjadi
pertimbangan dalam memilih produk. Performa ini dipengaruhi oleh hardware
yang tersemat di dalam smartphone ini.
Android memiliki dua jenis distributor resmi Android di seluruh dunia,
yang pertama adalah GMS (Google Mail Service) dan yang kedua adalah OHD
(Open Handset Distributor). Perbedaan dari keduanya adalah hanya dari
dukungan dari Google saja, kalau GMS itu mendapat dukungan secara langsung,
sedangkan OHD tidak secara langsung.
2.6.1 Perkembangan Android
Perkembangan A
lebih jelasnya tabel 2.1 memperlihatkan perkembangan android.
Tabel 2 1 Perkembangan Android
Versi Android
Beta
1.0
1.1
1.5
1.6
2.0/2.1
2.2
2.3-2.3.2
2.3.3-2.3.7
3.0
3.1
3.2
4.0.1
4.0.3-4.0.4
4.1.x
Gambar 2.2 Logo Android
(sumber : www.android.com)
Perkembangan Android
Perkembangan Android begitu sudah dimulai dari tahun 2007, untuk
lebih jelasnya tabel 2.1 memperlihatkan perkembangan android.
Perkembangan Android
Versi Android Diluncurkan Nama Kode
5 November 2007
23 September 2008
9 Februari 2009
30 April 2009 Cupcake
15 September 2009 Donut
26 Oktober 2009 Éclair
20 Mei 2010 Froyo
6 Desember 2010 Gingerbread
9 Februari 2011 Gingerbread
22 Februari 2011 Honeycomb
10 Mei 2011 Honeycomb
15 Juli 2011 Honeycomb
19 Oktober 2011 Ice Cream Sandwich
16 Desember 2011 Ice Cream Sandwich
9 Juli 2012 Jelly Bean
18
ndroid begitu sudah dimulai dari tahun 2007, untuk
Nama Kode
Gingerbread
Gingerbread
Honeycomb
Honeycomb
Honeycomb
Ice Cream Sandwich
Ice Cream Sandwich
Jelly Bean
19
4.2.x 13 November 2012 Jelly Bean
4.3.x 24 Juli 2012 Jelly Bean
4.4.x 31 Oktober 2013 Kitkat
5.0 15 Oktober 2014 Lollipop
(sumber : www.gomuda.com)
Beberapa fitur utama dari Android antara lain WiFi hotspot, Multi-touch,
Multitasking, GPS, support Java, mendukung banyak jaringan (GSM/EDGE,
IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, and WiMAX) dan juga
kemampuan dasar handphone pada umumnya.
2.6.2 Smartphone
Smartphone adalah sebuah device yang memungkinkan untuk melakukan
komunikasi juga di dalamnya terdapat fungsi PDA (Personal Digital Assistant)
dan berkemampuan seperti layaknya komputer. Perkembangan awal, dikenal
adanya Handphone dan PDA. Handphone pada umumnya digunakan untuk
melakukan komunikasi seperti nelepon sedangkan PDA digunakan sebagai asisten
pribadi dan organizer. Perkembangan selanjutnya PDA mendapatkan kemampuan
lain yaitu fitur koneksi wireless sehingga mampu menerima maupun mengirim e-
mail, pada saat yang bersamaan juga Handphone mendapatkan penambahan fitur
yakni kemampuan untuk mengirim pesan. Pada akhirnya PDA menambahkan
fungsi Handphone pada device-nya, begitupun juga Handphone diberikan fitur
PDA (yang lebih banyak) di dalamnya, sehingga hasilnya adalah sebuah
Smartphone.
Smartphone memiliki ciri utama yaitu memiliki sistem operasi di
dalamnya yang memungkinkan dijalankan berbagai aplikasi, misalnya Windows
Mobile, Android, Symbian, ataupun Sistem Operasi Blackberry. Sebuah
Smartphone selalu dilengkapi berbagai aplikasi/software yang ditujukan untuk
meningkatkan produktivitas dan mendukung kegiatan sehari-hari. Misalnya Doc
To Go, untuk membuat dan mengedit dokumen word di Smartphone. Kemampuan
lain yang dimiliki oleh sebuah Smartphone adalah dapat digunakan mengakses
20
web/internet dan konten yang disajikan di browser-nya, sudah hampir mendekati
seperti layaknya mengakses web lewat komputer. Opera Mobile, SkyFire Mobile,
IE Mobile adalah contoh beberapa browser di sebuah Smartphone.
Smartphone juga memiliki ciri khas yaitu QWERTY Keyboard, untuk
mempermudah pengguna Smartphone untuk mengetik dokumen atau mengirim
pesan.
2.6.3 Arsitektur Android
Diagram berikut menunjukkan komponen utama dari sistem operasi
Android. Komponen-komponen tersebut dibagi menjadi 5 bagian, yaitu Linux
Kernel, Android Run Time, Libraries, Applications Framework dan Applications.
Gambar 2. 3 Android Framework
(sumber: www.dmxzone.com)
2.6.3.1 Linux Kernel
Tumpukan paling bawah pada arsitektur Android ini adalah kernel.
Google menggunakan kernel Linux Versi 2.6 untuk membangun sistem Android,
yang mencakup memory management, security setting, power management, dan
beberapa driver hardware. Kernel berperan sebagai abstraction layer antara
hardware dan keseluruhan software. HTC G1 sebagai contohnya, ia dilengkapi
21
dengan kamera. Kernel Android terdapat driver kamera yang memungkinkan
pengguna mengirimkan perintah kepada hardware kamera.
Android dibangun di atas kernel Linux 2.6. Secara keseluruhan Android
bukanlah linux, karena dalam Android tidak terdapat paket standar yang dimiliki
oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam
manajemen memori dan proses. Terkait perihal tersebut maka pada Android hanya
terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori,
manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar,
kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess
Communication) untuk mengatur aplikasi dan lubang keamanan.
2.6.3.2 Android RunTime
Lapisan setelah Kernel Linux adalah Android Runtime. Android Runtime
ini berisi Core Libraries dan Dalvik Virtual Machine (VM). Core Libraries
mencakup serangkaian inti library Java, artinya Android menyertakan satu set
library-library dasar yang menyediakan sebagian besar fungsi-fungsi yang ada
pada library-library dasar bahasa pemrograman Java. Dalvik adalah Java Virtual
Machine yang memberi kekuatan pada sistem Android. Dalvik VM ini di
optimalkan untuk telepon seluler. Aplikasi yang berjalan pada Android, berjalan
pada prosesnya sendiri, dengan instance dari Dalvik Virtual Machine. Dalvik
telah dibuat sehingga sebuah piranti yang memakainya dapat menjalankan multi
Virtual Machine dengan efisien. Dalvik VM dapat mengeksekusi file dengan
format Dalvik Executable(.dex) yang telah dioptimasi untuk menggunakan
minimal memoryfootprint. Virtual Machine ini register-based, dan menjalankan
class-class yang di-compile menggunakan compiler Java yang kemudian
ditransformasi menjadi format dex menggunakan dx tool yang telah disertakan.
Dalvik VM menggunakan kernel Linux untuk menjalankan fungsi-fungsi seperti
threading dan low-level memory management.
22
2.6.3.3 Libraries
Libralies terletak di level yang sama dengan Android Runtime. Android
menyertakan satu set library dalam bahasa C/C++ yang digunakan oleh berbagai
komponen yang ada pada sistem Android. Kemampuan ini dapat diakses oleh
programmer melewati Android application framework. Sebagai contoh Android
mendukung pemutaran format audio, video, dan gambar. Berikut ini beberapa
corelibrary tersebut.
1. System C library
Turun dari implementasi standar C system library (libc) milik BSD,
dioptimasi untuk piranti embedded berbasis Linux.
2. Media Libraries
Media Libraries berdasarkan Packet Video’s OpenCORE; library ini
mendukung play back dan recording dari berbadai format audio and
video populer, meliputi MPEG4, H.264, MP3, AAC, AMR, JPG, and
PNG.
3. Surface Manager, mengatur akses pada display dan lapisan composites
2D and 3D graphic dari berbagai aplikasi.
4. Lib Web Core, web browser engine modern yang mendukung Android
browser maupun embedable web view.
5. SGL, yang mendasari mesin grafis 2D.
6. 3D libraries, implementasi berdasarkan OpenGL ES 1.0 APIs. Library ini
menggunakan akselerasi hardware 3D atau disertakan, rasterizer
software 3D yang sangat optimal.
7. Free Type, penerjemah bitmap dan vector font.
8. SQLite, relational database engine yang powerful dan ringan tersedia
untuk semua aplikasi.
Library-library tersebut bukanlah aplikasi yang berjalan sendiri, namun
hanya dapat digunakan oleh program yang berada di level atasnya. Sejak Versi
Android 1.5, pengembang dapat membuat dan menggunakan pustaka sendiri
menggunakan Native Development Toolkit (NDK).
23
2.6.3.4 Applications Framework
Lapisan selanjutnya adalah application framework, yang mencakup
program untuk mengatur fungsi-fungsi dasar Smartphone. Application Framework
merupakan serangkaian tool dasar seperti alokasi resource Smartphone, aplikasi
telepon, pergantian antar proses atau program, dan pelacakan lokasi fisik telepon.
Pengembang aplikasi memiliki aplikasi penuh kepada tool-tool dasar tersebut, dan
memanfaatkannya untuk menciptakan aplikasi yang lebih kompleks.
Programmer mendapatkan akses penuh untuk memanfaatkan API yang juga
digunakan core applications. Arsitektur aplikasi didesain untuk menyederhanakan
pemakaian kembali komponen-komponen, setiap aplikasi dapat menunjukkan
kemampuannya dan aplikasi lain dapat memakai kemampuan tersebut.
Mekanisme yang sama memungkinkan pengguna mengganti komponen-
komponen yang dikehendaki. Semua aplikasi didalamnya terdapat servis dan
sistem yang meliputi :
1) Satu set views yang dapat digunakan untuk membangun aplikasi meliputi
lists, grids, textboxes, buttons, dan embeddable web browser;
2) Content Providers yang memungkinkan aplikasi untuk mengakses data
dari aplikasi lain (misalnya Contacts), atau untuk membagi data yang
dimilikinya.
3) Resource Manager, menyediakan akses ke non-code resources misalnya
localizedstrings, graphics, dan layoutfiles;
4) Notification Manager yang memungkinkan semua aplikasi untuk
menampilkan customalerts pada statusbar;
5) Activity Manager yang mengatur life cycle dari aplikasi dan menyediakan
common navigation back stack;
2.6.3.5 Applications
Lapisan teratas terdapat aplikasi itu sendiri. Lapisan inilah ditemukan
fungsi-fungsi dasar Smartphone seperti menelepon dan mengirim pesan singkat,
menjalankan web browser, mengakses daftar kontak, dan lain-lain. Lapisan ini
24
juga yang paling sering akses oleh para pengembang. Mereka mengakses fungsi-
fungsi dasar tersebut melalui user interface.
2.6.4 Android Versi 4.1 (Android Jelly Bean)
Android Jelly Bean yang diluncurkan pada acara Google I/O tahun 2012
dan membawa sejumlah keunggulan serta fitur baru. Penambahan fitur baru
diantaranya meningkatkan input keyboard, desain baru fitur pencarian, UI yang
baru dan pencarian Voice Search yang lebih cepat. Google Now juga menjadi
bagian yang diperbarui. Google Now memberikan informasi yang tepat pada
waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui
informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga. OS Android
Jelly Bean 4.1 muncul pertama kali dalam produk tablet Asus, yakni Google
Nexus 7. Android Jelly Bean memiliki Maps offline, tanpa menggunkan koneksi
internet pengguna Android Jelly Bean bisa menelusuri suatu daerah dengan syarat
mendownload daerah yang ingin ditelusuri terlebih dahulu.
Gambar 2. 4 Logo Android Jelly Bean 4.1
(Sumber: tech.firstpost.com)
2.7. Android SDK (Software Development Kit)
Android Software Development Kit (SDK) termasuk seperangkat alat
pengembangan. Ini termasuk debugger, libraries, sebuah handset emulator
berdasarkan QEMU, dokumentasi, kode contoh, dan tutorial. Platform ini dapat
berjalan di sistem operasi Linux (setiap desktop modern Linux distribusi), Mac
OS X 10.5.8 atau yang lebih baru, Windows XP atau yang lebih baru. Eclipse
menggunakan Android Development Tools (ADT) Plugin, meskipun IDE
sepenuhnya mendukung pengembangan Android dan NetBeans IDE juga
25
mendukung pengembangan Android melalui Plugin. Selain itu, developer dapat
menggunakan editor teks apapun untuk mengedit file XML Java dan, kemudian
menggunakan alat baris perintah (Java Development Kit dan Apache Ant jika
diperlukan) untuk menciptakan, membangun dan debug aplikasi Android serta
pengendalian terpasang perangkat Android (misalnya memicu reboot, meng-
install paket perangkat lunak jarak jauh).
2.8. Android Development Tools (ADT)
Android Development Tools (ADT) adalah plug-in untuk Eclipse IDE
yang dirancang untuk memberikan environment yang terintegrasi dan kuat dalam
membangun aplikasi Android.
ADT memperluas kemampuan Eclipse untuk membiarkan programmer
cepat membuat proyek baru Android, membuat aplikasi dengan user interface,
menambahkan komponen berdasaran Android Framework API, melakukan debug
aplikasi menggunakan Android SDK tools, dan bahkan mengekspor file.apk
dalam rangka mendistribusikan aplikasi yang dibuat developer.
2.9. Corona SDK (Software Development Kit)
Corona SDK (Software Development Kit) adalah sebuah aplikasi yang
digunakan untuk membuat aplikasi mobile, khususnya pada platform iOS dan
Android. Corona SDK menggunakan bahasa pemrograman Lua yang dapat kita
manfaatkan untuk menghasilkan aplikasi yang komplit dengan memanfaatkan API
(Application Programming Interface) yang dimiliki oleh Corona. Corona dibuat
oleh Ansca (http://www.anscamobile.com), sebuah perusahaan kecil di Palo Alto,
California.
Corona Labs diciptakan pada tahun 2008 sebagai usaha yang didukung
perusahaan di Palo Alto, California. Sebelum Corona, tim Labs Corona
bertanggung jawab untuk menciptakan banyak alat-alat standar yang sering
dijumpai player. (Burton. 2013)
Corona SDK berbeda dari bahasa pemrograman lainnya, di dalam
Corona SDK sendiri telah tertanam worksheet dan sistem debugging. Corona
SDK menggunakan editor texts dasar untuk menulis kode, dan editor grafis untuk
26
membuat gambar. Corona sendiri hanya bertugas menyusun dan running program.
Untuk memulainya, player akan membutuhkan API Corona dan editor teks yang
layak (Domenech. 2013). Corona merupakan suatu software engine yang cocok
untuk pengembangan aplikasi berbasis game. Corona memiliki ekstensi data
berbasis Lua. Lua merupakan ekstensi data yang cocok untuk game karena ringan
dan mudah untuk dioprasikan.
Keuntungan dalam penggunaan software engine ini dalam
pengembangan aplikasi game, salah satunya yang paling menakjubkan adalah
Cross Platform Development. Cross Platform Development berarti Corona
mendukung pengembangan aplikasi pada operation system iOS & Android, jadi
dengan sekali kerja dapat menghasilkan sebuah software yang dapat berjalan di
dalam dua platform.
Aplikasi pada dasarnya terdapat beberapa kelebihan dan juga kekurangan
yang terdapat didalam aplikasi tersebut, begitu juga dengan Corona SDK. Berikut
ini adalah kelebihan dan kekurangan pada Corona SDK :
2.9.1 Kelebihan Menggunakan Corona SDK
Corona SDK merupakan complier yang cocok digunakan oleh
programming Android pemula, hal itu dikarenakan memiliki beberapa kelebihan.
Berikut ini merupakan beberapa kelebihan dari Corona SDK:
a) Cepat dan ringan jika dibandingkan dengan framework lainnya
b) Trial program tanpa batas waktu & fitur
c) Optimasi yang bagus terhadap hardware
d) Terintegrasi dengan baik dengan sistem Android & iOS
e) Tidak perlu menulis kode pemrograman yang terlalu mendasar (Native
code)
2.9.2 Kekurangan Menggunakan Corona SDK
Semua software pada umumnya selain memiliki kelebihan juga terdapat
beberapa kekurangannya. Berikut ini merupakan beberapa kekurangan dari
Corona SDK:
a) Bahasa pemrograman bersifat struktural bukan berbasis OOP.
27
b) Bahasa API (Aplication Programing Interface) masih dalam proses
pengembangan. (Membingungkan proses belajar).
c) Proses debugging yang tidak akurat.
d) Tidak memiliki GUI untuk proses layouting (semua proses layout dengan
code)
Gambar 2. 5 Logo Corona SDK
(Sumber : www.coronalabs.com, 2013)
2.10. Lua
Lua merupakan bahasa pemrograman multi paradigma yang dirancang
sebagai scripting language dengan extendsible semantic sebagai tujuan utama.
Lua diciptakan pada 1993 oleh Roberto Ierusalimschy, Luiz Henrique de
Figueiredo, dan Waldemar Celes, anggota Kelompok Teknologi Komputer Grafis
(Tecgraf) di Universitas Katolik Kepausan Rio de Janeiro, di Brasil .
Lua merupakan turunan dari data description atau configuration
language yaitu SOL (Simple Object Language) dan DEL (Data Entry Language).
SOL dan DEL telah dikembangkan secara independen oleh Tecgraf untuk
menambahkan fleksibilitas 2 projek yang berbeda (keduanya merupakan
interactive graphical programs untuk Graphical Engineering di perusahaan
Petrobas.
Gambar 2. 6 Logo lua
(sumber: www.lua.org)
28
Lua dirancang, diimplementasikan, dan dipelihara oleh tim di PUC-Rio,
Universitas Katolik Kepausan Rio de Janeiro di Brasil. Lua dibuat dan
dikembangkan di Tecgraf, Komputer Grafis Technology Group dari PUC-Rio,
dan sekarang bertempat di Lablua. Kedua Tecgraf dan Lablua adalah laboratorium
Departemen Ilmu Komputer PUC-Rio (Burton. 2013).
Bahasa pemrograman Lua merupakan bahasa pemprograman cepat dan
ringan dalam menjalankan bahasa scripting. Lua menggabungkan sintak
prosedural sederhana dengan deskripsi data,yang di dasari oleh array asosiatif
dan semantik extensible. Lua dinamis diketik, berjalan dengan
menginterpretasikan byte code untuk mesin virtual berbasis mendaftar, dan
memiliki manajemen memori otomatis dengan pengumpulan sampah tambahan,
sehingga ideal untuk konfigurasi, scripting, dan prototyping cepat (Ierusalimschy.
2012).
2.10.1 Keunggulan Bahasa Pemrograman Lua
Lua merupakan bahasa pemprograman cepat dan ringan dalam
menjalankan bahasa scripting. Keunggulan Bahasa Pemrograman Lua adalah
sebagai berikut.
2.10.1.1 Lua bahasa pemrograman yang kuat
Lua merupakan bahasa pemrograman yang kuat, karena Lua telah
digunakan dalam banyak aplikasi industri seperti, Adobe Photoshop Lightroom,
dengan penekanan pada embedded system (misalnya, Ginga middleware untuk TV
digital di Brasil) dan permainan (misalnya, World of Warcraft dan Angry Birds).
Lua merupakan bahasa scripting terkemuka dalam bidang game. Lua mempunyai
manual referensi yang solid dan ada beberapa buku tentang itu. Beberapa Versi
Lua telah dirilis dan digunakan dalam aplikasi nyata sejak pembentukannya pada
tahun 1993. Lua ditampilkan dalam HOPL III, Ketiga ACM SIGPLAN Sejarah
Bahasa Pemrograman Konferensi, pada bulan Juni 2007.
2.10.1.2 Lua bahasa pemrograman yang cepat
Lua memiliki reputasi untuk kinerja yang cepat. Beberapa benchmark
menunjukkan Lua sebagai bahasa tercepat dalam ranah bahasa scripting.
29
2.10.1.3 Lua bahasa pemrograman yang portable
Lua didistribusikan dalam paket kecil dan membangun out-of-the-box di
semua platform yang memiliki kompiler C standar. Lua berjalan pada semua jenis
Unix dan Windows, pada perangkat mobile (Android, iOS, BREW, Symbian,
Windows Phone).
2.10.1.4 Lua bahasa pemrograman yang embeddable
Lua adalah bahasa mesin cepat dengan ukuran kecil yang dapat ditanam
dengan mudah ke dalam aplikasi. Lua mempunyai API sederhana dan
terdokumentasi, yang memungkinkan integrasi yang kuat dengan kode yang
ditulis dalam bahasa lain. Sangat mudah untuk memperpanjang Lua dengan
perpustakaan yang ditulis dalam bahasa lain,hal ini juga mudah untuk
memperpanjang program yang ditulis dalam bahasa lain dengan Lua. Lua telah
digunakan untuk memperluas program yang ditulis tidak hanya di C dan C++,
tetapi juga di Java, C#, Smalltalk, Fortran, Ada, Erlang, dan bahkan dalam bahasa
script lainnya, seperti Perl dan Ruby.
2.10.1.5 Lua bahasa pemrograman yang kuat dan sederhana
Konsep dasar dalam desain Lua adalah untuk menyediakan meta-
mekanisme untuk mengimplementasikan fitur, alih-alih memberikan sejumlah
fitur langsung dalam bahasa. Contoh, meskipun Lua bukan bahasa berorientasi
objek murni, itu tidak memberikan meta-mekanisme untuk menerapkan kelas dan
warisan. Lua meta-mekanisme membawa ekonomi konsep dan menjaga bahasa
kecil, sementara memungkinkan semantik akan diperpanjang dengan cara yang
tidak konvensional.
2.10.1.6 Lua gratis
Lua adalah perangkat lunak open-source, didistribusikan dibawah lisensi
yang sangat liberal (lisensi MIT). Ini dapat digunakan untuk tujuan apapun,
termasuk tujuan komersial, sama sekali tanpa biaya. Cukupmen-download dan
menggunakannya (Ierusalimschy. 2012).
30
2.10.2 Kekurangan Bahasa Pemrograman Lua
Kekurangan dari bahasa pemrograman Lua adalah sebagai berikut :
1. Bahasa pemrograman bersifat struktural bukan berbasis OOP.
2. Bahasa API (Aplication Programing Interface) masih dalam proses
pengembangan.
3. Tutorial masih tergolong sedikit.
2.11. Notepad++
Notepad++ adalah sebuah penyunting teks dan penyunting kode sumber
yang berjalan di sistem operasi Windows. Notepad++ menggunakan komponen
Scintilla untuk dapat menampilkan dan menyunting teks. Notepad++
didistribusikan sebagai perangkat lunak bebas.
Notepad++ juga mendukung beberapa bahasa pemrograman, didukung
dalam hal ini adalah dimengerti dan diterjemahkan menjadi teks oleh Notepad++.
Pada C++, fungsi-fungsinya akan dimasukkan kedalam daftar fungsi dan kata-
katanya akan berubah warna sesuai dengan makna kata tersebut di C++. Berikut
ini adalah bahasa pemrograman yang didukung oleh Notepad++ .
1. ActionScript, Ada, ASP, Assembler, autoIt;
2. Batch;
3. C, C++, C#, Caml, Cmake, COBOL, CSS;
4. D, Diff;
5. Flash ActionScript, Fortran;
6. Gui4CLI;
7. Haskell, HTML;
8. Berkas INI, InnoSetup;
9. Java, Javascript, JSP;
10. KiXtart;
11. LISP, Lua;
12. Makefile, Matlab, MS-DOS;
13. NSIS
14. Objective-C;
15. Pascal, Perl, PHP, Postscript, PowerShell, Properties file, Python;
16. R, Resource file, Ruby;
31
17. Shell, Scheme, Smalltalk, SQL;
18. TCL, TeX;
19. Visual Basic, VHDL, Verilog;
20. XML;
21. YAML;
2.12. SQLite
SQLite adalah sebuah database yang terkenal karena menggabungkan
antarmuka SQL dengan penggunaan memori yang sangat kecil dan kecepatan
yang baik. SQLite merupakan open source database yang stabil dan sering
digunakan pada perangkat kecil, termasuk Android. Android menyediakan
database relasional yang ringan untuk setiap aplikasi menggunakan SQLite.
Aplikasi dapat memperoleh keuntungan yaitu untuk menyimpan data secara amam
dan efisien. (Nugroho, 2011)
Sistem kerja SQLite pada Android, SQLite dijadikan satu dalam Android
runtime, sehingga setiap aplikasi Android dapat membuat basis data SQLite.
Terdapat beberapa alasan mengapa SQLite cocok untuk pengembangan aplikasi
Android, yaitu sebagai berikut.
1. Open source, hal ini membuat developer mudah dalam pengembangan
aplikasi.
2. Single-file database, membuat keamanan databse terjaga secara
langsung.
3. Tidak memakai server, sehingga kecepatan akan terjamin.
2.13. Adobe Illustrator CS6
Animasi adalah proses penciptaan objek gerak atau efek perubahan
bentuk yang terjadi selama beberapa waktu. Melihat dari penjelasan diatas
mengenai animasi, jadi animasi adalah suatu paparan visual yang berbentuk
dinamik. (Sudirman, 2008).
Animasi berperan besar dalam membuat suatu projek menjadi lebih
menarik. Corona yang merupakan software enginnering yang sangat baik untuk
membuat game, memerlukan adanya tampilan animasi ini. Pengaplikasian animasi
32
ini sendiri dalam corona memerlukan beberapa software bantuan, seperti Adobe
Illustrator CS6.
Adobe Illustrator adalah editor grafis vektor yang dikembangkan dan
dipasarkan oleh Adobe Inc. Grafik vector merupakan grafik yang tidak akan
mengalami penurunan kualitas bila dimensi gambarnya diperbesar karena tidak
bergantung dengan resolusi. Sebagai program ilustrasi vector, Adobe Illustrator
adalah perangkat lunak yang handal dalam mewujudkan kreatifitas dan imajinasi
sang designer ke dalam bentuk gambar. Terdapat banyak tools yang dimiliki
Adobe Illustrator sehingga memudahkan pengguna agar lebih mudah dalam
menghasilkan suatu gambar yang menarik.
2.14. Kecerdasan Buatan atau Artificial Intelligence(AI)
Berbagai definisi diungkapkan oleh para ahli untuk dapat memberi
gambaran mengenai kecerdasan buatan beberapa diantaranya adalah sebagai
berikut.
a. 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).
b. Kecerdasan Buatan merupakan sebuah studi tentang bagaimana membuat
komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih
baik oleh manusia (Rich and Knight.1991).
c. Kecerdasan Buatan 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 (Encyclopedia
Britannica).
2.13.1 Jenis-Jenis Kecerdasan Buatan
Dalam perkembangannya kecerdasan buatan dapat dikelompokkan
sebagai berikut.
33
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), player 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 pengajar yang dapat melatih & mengajar.
7. Soft Computing
Soft computing merupakan 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 sebagai berikut.
a. Logika Fuzzy/Fuzzy Logic (mengakomodasi ketidaktepatan).
b. Jaringan Syaraf Tiruan/Neurall Network.
c. Probabilistic Reasoning (mengakomodasi ketidakpastian).
d. Algoritma Genetika/Evolutionary Computing (optimasi).
2.15. Linear Congruential Generator (LCG)
Linear Congruential Generator atau jika diubah kedalam bahasa
Indonesia menjadi Pembangkit Bilangan Acak Kongruen-Lanjar merupakan
34
pembangkit bilangan acak yang sederhana, mudah dimengerti teorinya, dan juga
mudah untuk di implementasikan. LCG didefinisikan dalam relasi berulang
berikut:
Xn = (aXn-1 + b) mod m
Keterangan:
Xn = bilangan acak ke-n dari deretnya
Xn-1 = bilangan acak sebelumnya
a = factor pengali
b = increment
m = modulud
X0 adalah kunci pembangkit atau disebut juga umpan (seed). LCG
mempunyai periode tidak lebih besar dari m, dan pada kebanyakan kasus
periodenya kurang dari itu. LCG mempunyai periode penuh (m – 1) jika
memenuhi syarat berikut:
1. b relatif prima terhadap m.
2. a – 1 dapat dibagi dengan semua faktor prima darim
3. a – 1 adalah kelipatan 4 jika m adalah kelipatan 4
4. m > maks (a, b, X0)
5. a > 0, b > 0
Periode LCG paling besar adalah M bahkan pada kebanyakan kasus
periodenya kurang dari M. Maksudnya adalah deret bilangan acak yang
dihasilkan tidak lebih banyak dari modulonya. Perhatikan contoh berikut.
Misalkan:
a=3, b=13, m=29
Xn = (3Xn-1 + 13) mod 29
Untuk X0 = 0
X1 = (3X0 + 13) mod 29
X1 = (3*0 + 13) mod 29
X1 = 13 mod 29
X1 = 13
X2 = (3X1 + 13) mod 29
35
X2 = (3*13 + 13) mod 29
X2 = 52 mod 29
X2 = 23
X3 = (3X2 + 13) mod 29
X3 = (3*23 + 13) mod 29
X3 = 52 mod 29
X3 = 24
Begitu seterusnya sampai perulangan yang diinginkan, dimana pada
pembahasan ini dilakukan sebanyak 28 kali perulangan. Hasil untuk perulangan
dari X4 sampai X28 dapat dilihat pada Tabel 2.2
Tabel 2 2 Hasil Perhitungan Algoritma LCG
n Xn n Xn
1 13 15 3
2 23 16 22
3 24 17 21
4 27 18 18
5 7 19 9
6 5 20 11
7 28 21 17
8 10 22 6
9 14 23 2
10 26 24 19
11 4 25 12
12 25 26 20
13 1 27 15
14 16 28 0
2.16. Linear Feedback Shift Register (LFSR)
Menurut Stephen Herlambang (2011) menyatakan bahwa Linear
Feedback Shift Register(LFSR) adalah shift register yang bit masukannya
36
merupakan fungsi linear dari state sebelumnya. Satu-satunya fungsi linear pada
bit satuan xor, oleh karena itu LFSR adalah shift register yang bit masukannya
dibangkitkan exclusive-or dari bit dari keseluruhan nilai shift registrasi.
Inisial value dari LFSR dikenal dengan seed, dan karena operasi dari
register bersifat deterministik, aliran nilai yang dihasilkan register akan
sepenuhnya ditentukan state sekarang atau sebelumnya. Dengan begitu karena
register memiliki jumlah state yang terbatas pasti akan terbentuk siklus yang
berulang, akan tetapi LFSR yang memiliki fungsi umpan balik yang baik dapat
memproduksi sekuens bit yang tampak acak dan memiliki siklus yang sangat
penting. Adapun proses sebuah LFSR 4 bit dengan output pada bit ke 1, seperti
terlihat dibawah ini :
Tabel 2 3 Skema Proses LFSR
S4 S3 S2 S1 Output
XOR
Dari gambar di atas menjelaskan konsep dasar dari LFSR yang artinya
adalah "Register geser dengan umpan balik linier". Prosesnya adalah :
4. S1 sampai S4 diisi oleh bit-bit yang sudah ditentukan;
5. Tahap pertama, S1 dan S4 akan di XOR-kan;
6. S1-S4 digeser ke kanan sepanjang satu bit;
7. Bit pertama akan dijadikan output;
8. Bit hasil XOR antar S1 dan S4 (sebelum digeser) akan dimasukkan ke
S4;
Contoh metode LFSR adalah seperti contoh, misalnya terdapat urutan 4
bit 0 0 0 0 1 akan dilakukan pengacakan dengan metode LFSR dimana prosesnya
dapat dilihat sebagai berikut :
37
Gambar 2. 7 Register 4 bit LFSR
WAKTU KE S4 S3 S2 S1
0 1 1 1 1 (S4 xor S1) S4 S3 S2 1 0 1 1 1 Hasil secara keseluruhan dapat dilihat pada Tabel 2.4.
Tabel 2 4 Hasil Metode LFSR
Waktu ke S4 S3 S2 S1 Waktu ke S4 S3 S2 S1
0 1 1 1 1 11 0 0 0 1
1 0 1 1 1 12 1 0 0 0
2 1 0 1 1 13 1 1 0 0
3 0 1 0 1 14 1 1 1 0
4 1 0 1 0 15 1 1 1 1
5 1 1 0 1 16 0 1 1 1
6 0 1 1 0 17 1 0 1 1
7 0 0 1 1 18 0 1 0 1
8 1 0 0 1 19 1 0 1 0
9 0 1 0 0 20 1 1 0 1
10 0 0 1 0 21 0 1 1 0
38
2.17. Sequential/Linier Search
Pencarian (searching) merupakan suatu pekerjaan yang sering dikerjakan
dalam kehidupan sehari- hari. Ada kalanya pencarian dilakukan dengan tujuan
hanya untuk mengetahui apakah data tersebut adadalam sekumpulan data atau
tidak.
Pencarian Linier dapat dilakukan pada barisan bilangan yang terurut
secara menaik (ascending) atau menurun (descending) ataupun tidak terurut.
Pencarian Linier dilakukan dengan cara membandingkan data yang dicari (X)
dengan data dalam barisan A[1] sampai A[n] dengan dimulai dari data elemen
pertama pada barisan A. Jika perbandingan bernilai sama, maka pencarian
dihentikan dan dinyatakan sukses. Sedangkan apabila perbandingan tidak bernilai
sama maka,
1. Jika data tidak terurut (data acak), maka pencarian akan dilanjutkan ke
data selanjutnya.
2. Jika data terurut secara menaik (ascending), maka pencarian hanya akan
dilanjutkan ke data selanjutnya yang berada di sebelah kanan data yang
sedang dibandingkan apabila data yang dicari (X) lebih besar daripada
data yang sedang dibandingkan sekarang.
3. Jika data terurut secara menurun (descending), maka pencarian hanya
akan dilanjutkan ke data selanjutnya yang berada di sebelah kanan data
yang sedang dibandingkan apabila data yang dicari (X) lebih kecil
daripada data yang sedang dibandingkan sekarang.
Jika syarat-syarat di atas dipenuhi, maka pencarian data akan dilakukan
sampai data yang dicari (X) ditemukan sehingga pencarian dinyatakan sukses atau
sampai elemen terakhir dari barisan A dan tidak ada elemen A yang sama dengan
data yang dicari (X) sehingga pencarian dinyatakan gagal. Untuk lebih jelasnya
dapat dilihat pada Gambar 2.8.
39
Gambar 2. 8 Flowchart Sequential Search