Struktur Data Penerapan Algoritma Column by Column dan Depth-First Search dalam Permainan Babylon Tower

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