BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Aplikasi game bekel merupakan adaptasi dari permainan tradisional bekel yang dirancang sesuai dengan aturan dasar permainannya dengan sedikit penyesuian agar
dapat berjalan pada perangkat mobile. Pada bab ini penulis akan menjabarkan konsep permainan bekel yang akan dirancang dan penerapannya di Android sebagai persiapan
awal sebelum implementasi system.
3.1. Arsitektur Umum
Perancangan aplikasi game bekel terdiri dari 4 variabel yang mendasari jalannya aplikasi. Ada pun fungsinya meliputi user interface sebagai antarmuka pada layar
device, object data model sebagai pegeksekusi gerak bola dan pengacakan posisi biji yang ditampilkan pada halaman Arena Permainan pada user interface, game logic
sebagai penentu arah permainan, dan database yang menyimpan data skor jika permainan berakhir. Ada pun arsitektur umum permainan dapat dilihat pada Gambar
3.1.
Universitas Sumatera Utara
Gambar 3.1. Arsitektur umum aplikasi game bekel
3.2. Analisis
Object Data Model Bola dan Biji
Pada bab sebelumnya telah dijelaskan dasar gerak gerak jatuh bebas dan fungsi
random dengan menggunaakan class java.util.Random. Gerak jatuh bebas akan
diterapkan sebagai metode gerak pada objek bola. Awalnya bola akan diberi jarak tempuh hingga mencapai ketinggian tertentu. Ketika bola mencapai batas ketinggian
yang telah ditentukan maka metode gerak jatuh bebas berperan dalam mengatur lintasan bola hingga mencapai posisi awal.
Sedangkan fungsi random akan diterapkan sebagai pengacak posisi biji sehingga biji yang muncul dalam posisi acak pada setiap permainan. Posisi biji
sengaja dibuat acak untuk menghidari pemain menghapal posisi biji yang tersebar dipapan permainan.
3.2.1. Deskripsi Logika Gerak Objek Bola Menggunakan Gerak Jatuh Bebas
Penerapan logika gerak obejk bola menggunakan gerak jatuh bebas dalam permainan bekel adalah sebagai berikut :
1. Sebuah objek x dengan posisi awal y.
2. Jika x digerakkan, cek apakah x didrag atau ditouch.
Universitas Sumatera Utara
3. Jika x didrag maka y diberi ketinggian h = n
1
. 4.
Jika x ditouch maka y diberi ketinggian h = n
2
. 5.
Jika x sudah mencapai ketinggian h = n maka x akan diberi percepatan
gravitasi g. 6.
x berhenti jika mencapai posisi awal y. x adalah objek bola, y adalah posisi awal bola yang menjadi posisi kembali
bola setelah digerakkan, h adalah ketinggian yang diberikan pada bola dan g adalah percepatan gravitasi. Dalam aplikasi ini h memilki dua nilai yaitu n
1
dan n
2
. Pada perancangan aplikasi game ini, layar yang digunakan adalah orientasi
landscape. Layar landscape umumnya memiliki titik awal koordinatx,y pada sudut kiri atas pada layar. Untuk lebih jelasnya dapat dilihat pada Gambar 3.2.
Gambar 3.2. Titik awal koordinat pada layar landscape
Hal ini tentu mempengaruhi implementasi system yang telah dirancang sebelumnya. Untuk menggerakkan objek bola, ketinggianh bernilai negative agar
objek dapat bergerak ke atas. Sedangkan percepatan gravitasig bernilai positif agar objek dapat bergerak turun kembali ke posisi awaly.
Dalam deskripsi logika gerak bola pada aplikasi game bekel, nilai h dibuat dengan 2 opsi. Pertama, jika bola digerakkan dengan cara didrag maka bola akan naik
dengan ketinggianh = n
1
. Opsi dengan cara didrag memiliki nilai ketinggian maksimum atau lebih tinggi dari pada nilai ketinggian opsi kedua. Opsi ini dapat
menjadi pilihan jika pemain membutuhkan waktu lebih lama ketika melakukan pengambilan biji. Kedua, jika bola digerakkan dengan cara ditouch maka bola akan
naik dengan ketinggianh = n
2
. Opsi dengan cara ditouch memiliki nilai ketinggian
Universitas Sumatera Utara
minimum atau lebih rendah dari pada opsi pertama. Opsi ini dapat menjadi pilihan jika pemain merasa dapat megambil biji dengan cepat tanpa perlu menunggu lama untuk
pengambilan biji selanjutnya. Tampilan gerak bola pada aplikasi dapat dilihat pada Gambar 3.3 sebagai berikut.
a b
Gambar 3.3. a Tampilan gerak jatuh bebas pada opsi satu; b Tampilan gerak
jatuh bebas pada opsi satu;
Dari hasil penjabaran metode diatas maka pseudocode baru yang didapat adalah :
begin
Set
x
sebagai objek. Deklarasi
ballPos
pada posisi-awal. Deklarasi
hhighball
sebagai ketinggian. Deklarasi
ggravityBall
sebagai gravitasi
. ifx = clicked{
ifx = drag { ifballReturn == false {
ifhighBall = 0 ballReturn = true;
else { ballPos -= highBall;
highBall--; }
} else ifballReturn == true {
ifballPos = 0 { ballReturn = false;
ballClicked = false; ballPos = 0;
highBall = 25; gravityBall = 1;
Universitas Sumatera Utara
} else {
ballPos += gravityBall; gravityBall++;
} }
showBallg, world; }
ifx = touch { ifballReturn == false {
ifhighBall = 15 ballReturn = true;
else { ballPos -= highBall;
highBall--; }
} else ifballReturn == true {
ifballPos = 0 { ballReturn = false;
ballClicked = false; ballPos = 0;
highBall = 25; gravityBall = 1;
} else {
ballPos += gravityBall; gravityBall++;
} }
showBallg, world; }
end
3.2.2. Deskripsi Fungsi Random
Pada game bekel letak biji diacak sebagai variasi permainan. Pengacakan letak biji menggunakan fungsi random dengan tujuan setiap biji yang muncul tidak monoton
dengan posisi yang sama pada tiap levelnya. Fungsi random yang digunakan juga dengan ketentuan biji yang diacak akan muncul dalam koordinat yang telah dibatasi
panjang dan lebarnya. Hal ini mencegah agar biji yang diacak tidak muncul diluar resolusi papan permainan yang berukuran 450x350 pixel.
Ada pun pseudocode dari fungsi random pada biji adalah sebagai berikut :
begin
Tentukan koordinat batas pengacakkan. Deklarasi
batasX
sebagai
batas-koordinatX.
Universitas Sumatera Utara
Deklarasi
batasY
sebagai
batas-koordinatY. whilebiji.israndom
do
batasX = biji_randommaxX-minX+ minX batasY = biji_randommaxY-minY+ minY
end
3.3. Game Logic