3.3. Struktur Data
Aplikasi permainan Babylon Tower yang dibangun mampu merepresentasikan setiap elemen object yang terdapat dalam Babylon Tower disertai dengan fungsi-fungsi
dasarnya. Selain itu, aplikasi yang dibangun juga mampu mendeteksi input berupa sentuhan pada layar smartphone dari user serta menentukan gerakan yang dihasilkan
dari input tersebut. Untuk merepresentasikan setiap object yang terdapat dalam permainan
Babylon Tower secara jelas, maka perlu dibuat class untuk setiap jenis object yang ada. Secara umum, jenis object yang digunakan dapat dikelompokkan menjadi dua
kelompok besar yaitu disc dan ball. Selain itu, perlu juga dibuat sebuah class untuk menampung informasi tentang posisi bola yang terdapat di dalam Babylon Tower,
yaitu inner gap. Pada akhirnya, diperlukan sebuah class yang berfungsi untuk menampung sekaligus mengatur setiap object yang terdapat dalam sebuah Babylon
Tower.
3.3.1. Ball
Ball merupakan elemen terkecil dalam sebuah Babylon Tower sekaligus elemen yang dapat menempati posisi yang sangat beragam. Pada class Ball, terdapat beberapa
variabel yang dapat dilihat pada tabel 3.1.
Tabel 3.1. Daftar variabel pada class Ball Nama
variabel Tipe data
Kegunaan gameObject
GameObject Menyimpan model 3D dan posisi bola
color int
Menyimpan sebuah bilangan yang menyatakan warna bola
brightness
int Menyimpan sebuah bilangan yang
menyatakan tingkat kecerahan dari warna bola
Nilai brightness berkisar dari 0 sampai 5, dimana 0 menyatakan warna yang paling pucat dan 5 menyatakan warna yang paling cerah.
Universitas Sumatera Utara
Selain itu, pada class Ball juga terdapat sebuah variabel static dengan tipe data array dari string yang menyimpan nama-nama warna bola. Daftar index array beserta
warna bolanya dapat dilihat pada tabel 3.2.
Tabel 3.2. Nama-nama warna bola dalam array Index
Color Name
Red
1
Brown
2 Black
3 Yellow
4 Blue
5 Green
Method-method yang terdapat dalam class Ball berfungsi untuk mengakses data yang tersimpan dalam setiap variabel yang terdapat dalam class Ball oleh class
yang lain.
3.3.2. Disc
Disc menempati posisi baris yang tidak berubah dalam sebuah Babylon Tower, yang artinya setiap disc tidak dapat berpindah posisi dari baris atas ke baris bawah maupun
sebaliknya. Setiap disc menyimpan daftar enam buah object ball yang sedang berada pada disc tersebut. Pada class Disc, terdapat beberapa variabel yang dapat dilihat pada
tabel 3.3. Nilai disc berkisar dari 0 sampai 5, dimana 0 menyatakan disc berada pada posisi paling atas dan 5 menyatakan disc berada pada posisi paling bawah.
Posisi setiap ball dalam sebuah disc dapat berubah ketika disc tersebut diputar, sehingga perlu disediakan method dalam class Disc yang berfungsi untuk
memindahkan posisi setiap ball yang terdapat dalam disc apabila disc tersebut diputar. Selain method tersebut, terdapat pula method-method yang berfungsi untuk mengakses
data yang tersimpan dalam setiap variabel dalam class Disc oleh class yang lain.
Universitas Sumatera Utara
Tabel 3.3. Daftar variabel pada class Disc Nama
variabel Tipe data
Kegunaan gameObject
GameObject Menyimpan model 3D dan posisi disc
balls Ball[]
Menyimpan semua object ball yang terdapat pada disc
row int
Menyimpan sebuah bilangan yang menyatakan posisi baris yang ditempati
oleh disc. Baris terbawah diwakili dengan nilai 0 hingga baris teratas
diwakili dengan nilai 5
3.3.3. Inner Gap
Inner Gap berfungsi untuk menyimpan informasi tentang ball yang sedang berada di dalam Babylon Tower. Dalam class Inner Gap, terdapat variabel yang berfungsi untuk
menyimpan object ball yang sedang berada di dalam Babylon Tower. Selain itu, terdapat pula variabel yang berfungsi untuk menyimpan bilangan yang menyatakan
posisi kolom dari bola yang berada di dalam Babylon Tower. Pada class Inner Gap juga terdapat method yang berfungsi untuk
memindahkan posisi bola ketika disc yang berada pada posisi paling bawah diputar. Selain itu, terdapat pula method-method yang berfungsi untuk mengakses serta
menyalin data yang tersimpan dalam setiap variabel dalam class Inner Gap oleh class yang lain.
3.3.4. Babylon Tower
Babylon Tower berfungsi untuk menyimpan dan mengatur setiap elemen yang terdapat di dalam Babylon Tower tersebut. Oleh karena itu, pada class Babylon Tower
diperlukan variabel yang berfungsi untuk menyimpan setiap disc yang terdapat dalam Babylon Tower serta variabel untuk menyimpan bola yang sedang berada di dalam
Babylon Tower. Pada keadaan awal, variabel-variabel yang terdapat dalam class Babylon Tower dapat dilihat pada tabel 3.4.
Universitas Sumatera Utara
Tabel 3.4. Daftar variabel pada class Babylon Tower Nama
variabel Tipe data
Kegunaan discs
Disc[] Menyimpan semua object disc yang
terdapat pada Babylon Tower
innerGaps InnerGap[]
Menyimpan semua object ball yang ditekan ke dalam Babylon Tower
Pada class Babylon Tower terdapat method yang berfungsi untuk memutar disc, menekan masuk bola ke dalam disc yang berada pada posisi paling bawah,
mengeluarkan kembali bola yang telah ditekan ke dalam Babylon Tower, menggeser bola-bola pada kolom yang sama, serta mengacak posisi bola ketika Babylon Tower
pertama kali di-generate. Method-method yang terdapat dalam class Babylon Tower dapat dilihat pada tabel 3.5.
Tabel 3.5. Daftar method pada class Babylon Tower Nama
method Kegunaan
Rotate
Memutar salah satu disc yang dipilih serta setiap bola yang berada di dalamnya
Push Menekan masuk bola yang dapat ditekan masuk ke dalam disc
Pop Mengeluarkan kembali bola yang telah ditekan masuk sebelumnya
Slide
Menggeser posisi bola-bola pada kolom yang sama yang memiliki celah untuk digeser
Randomize Mengacak posisi bola pada Babylon Tower
Selain method-method tersebut, pada class Babylon Tower juga terdapat method-method yang berfungsi untuk mengakses serta menyalin data yang tersimpan
dalam setiap variabel dalam class Babylon Tower oleh class yang lain.
Universitas Sumatera Utara
3.4. Game Mechanic