Anda di halaman 1dari 8

Penerapan FSM Pada Game Golden Miner Berbasis Teks menggunakan Adobe Flash

Dian Ayu1, Reda Rezika2, and Depi Juandi3


1

Batam Polytechnics
Informatics Study Program
Parkway Street, Batam Centre, Batam 29461, Indonesia
E-mail: dian.1945@gmail.com NIM : 4311201080
2

Batam Polytechnics
Informatics Study Program
Parkway Street, Batam Centre, Batam 29461, Indonesia
E-mail: redarezika31@gmail.com NIM : 4311201066
3

Batam Polytechnics
Informatics Study Program
Parkway Street, Batam Centre, Batam 29461, Indonesia
E-mail: depijuandi10@gmail.com NIM : 4311201070

Abstrak
Seiring dengan perkembangan zaman, pekerjaan merupakan salah satu hal yang menjadi
prioritas utama dalam kehidupan. Hal ini tentunya menjadi salah satu aspek pendorong
seseorang untuk mencari tahu bagaimana cara bekerja dan mengelola hasil pekerjaanya dengan
baik. Game Golden Miner berbasis teks pada dasarnya merupakan game simulasi tentang
bagaimana seseorang mencari dan mengelola uang dengan menambang emas layaknya
kehidupan sehari-hari. Game ini menerapkan fitur Artificial Inteligence(AI) dan konsep No
Playable Character (NPC) yaitu tanpa campur tangan player. Output yang akan ditampilkan
hanya berupa teks yang menjelaskan tentang prilaku atau tindakan dari karakter seperti
menambang, istirahat, pergi ke bank, dan pergi ke bar.
Kata kunci: Pekerjaan, Game Golden Miner, Artificial Intelegence, Simulasi, Finite State
Machine.
Abstract
Along with the times, the job is one of kind that has become to a top priority in life. This is
certainly being one of the aspects of driving someone to figure out how to work through
employment outcomes and manage it well. Golden Miner a text-based games is basically a
simulation game of how a person searching and manage money with gold mining is common to
our everyday lives. This game implements the features of Artificial Inteligence (AI) and the
concept of No Playable Character (NPC) that without the intervention of the player. The Output
will be shown only in the form of text that describes the behavior or actions of characters such as
mine, break time, go to the bank, and went to the bar.
Keywords : the Job, Game Golden Miner, Artificial Intelegence, Simulasi, Finite State
Machine.

1 Pendahuluan
Menurut[1]sesuatu yang dilakukan sebagai
kegiatan pokok untuk menghasilkan nafkah
hidup dan yang mengandalkan suatu
keahlian. Indonesia merupakan negara
dengan jumlah penduduk tersebar ke -3
setelah India, mata pencarian Indonesia pun
beragam dan salah satunya adalah
bertambang. Seiring dengan bertambahnya
jumlah penduduk di Indonesia, mata
pencarian menjadi salah satu upaya dalam
melangsungkan kehidupan sehari-hari. Ada
banyak cara bagaimana seseorang dapat
mengelola waktu bekerja dengan baik.
Pekerjaan yang dilakukan dengan tidak
memperhatikan waktu dan segala upaya akan
membuat sebuah pekerjaan menjadi tidak
setabil[2]. Berkembangnya zaman dan
teknologi menjadikan seorang menyukai
sebuah pembelajaran yang di dapatnya dari
sebuah game. Game Golden Miner adalah
sebuah game berbasis teks pada dasarnya
merupakan game simulasi tentang bagaimana
seseorang mencari dan mengelola uang
dengan
menambang
emas
layaknya
kehidupan sehari-hari. Game ini menerapkan
fitur Artificial Inteligence(AI) dan konsep No
Playable Character (NPC) yaitu tanpa
campur tangan player. Output yang akan
ditampilkan hanya berupa teks yang
menjelaskan tentang prilaku atau tindakan
dari karakter seperti menambang, istirahat,
pergi ke bank, dan pergi ke bar[3]. Dengan
adanya game ini diharapkan dapat memberi
pembelajaran dari usia dini kepada seseorang
bahwa dalam bekerja ada beberapa peraturan
dan hal yang dilakukan agar pekerjaanpun
menjadi mudah[4].
Dalam perkembangan game saat ini, semakin
maju begitu pesat dengan adanya Artificial
Inteligence(AI). Kecerdasan yang di dapat
dari
Artificial
Inteligence(AI)
mengedepankan sebuah pengalaman atau
perasaan. Membuat si pemain dapat

mengetahui
bagaimana
objek
dalam
permainan berjalan dan berfikir seperti
layaknya manusia, tidak sedikitpun dengan
penerapan Artificial Inteligence(AI) pemain
kewalahan dalam menghadapi musuhnya.
Dengan begitu permainanpun menjadi
semakin menarik[5].
Contoh
penerapa
dari
Artificial
Inteligence(AI)
adalah
memecahkan
permasalahan
berdasarkan
statenya.
Pemecahanpun dapat dilakukan dengan
beberapa cara dan salah satunya dengan FSM.
Finite State Machine pada dasarnya adalah
melakukan pemecahan behaviour dari
object/agen berdasarkan statenya, selain itu
nantinya
juga
harus
didefinisikan
aturan-aturan transisi sehingga state dapat
berubah dari yang satu ke yang lain[6].
Terdapat beberapa bentuk FSM, yaitu Naive
Approach, State Transition Table, dan
Embedded Rules. Setiap bentuk dari FSM
memiliki kelebihan dan kelemahannya
masing-masing, misalnya Naive Approach
yang menggunakan conditional statement
(if-else atau switch-case) tanpa memecah
object menjadi object-object yang lebih kecil
sesuai state nya. Dalam penggunaan metode
ini diperuntunkan untuk agen yang memiliki
state sedikit, karena jika statenya komplek
akan membentuk spaghetti code dan
monolithic conditional statement. Selain itu
juga tidak scalable, tidak fleksibel, dan proses
debugging menjadi lebih rumit. Selain itu
penggunaan bentuk State Transition Table
yaitu Agen akan melakukan query dari tabel
tersebut berdasarkan input yang diterima dari
environmentnya. Kemudian ketika salah satu
kondisi terpenuhi, dia akan mengubah current
state menjadi state yang baru sesuai
kondisinya. Penerapan ini jauh lebih baik dari
pada Naive Approach. Dari kedua bentuk
tersebuh
selanjutnya
adalah
bentuk
Embedded Rules, bentuk ini jauh lebih baik

dari kedua bentuk sebelumnya[7].


Embedded Rules juga akan menawarkan
fleksibilitas dan skalabilitas yang baik,
namun dengan efek samping agak sulit untuk
di-perbaiki karena aturan-aturan transisi
diletakkan di state sehingga ketika terjadi
penambahan atau pengurangan state, maka
harus dilakukan update juga terhadap
state-state yang terkait. Jadi, pada penerapan
konsep ini pembuatan dan pengupdating
akan
dilakukan
menurut
statenya
masing-masing. Lebih terstruktur untuk game
yang agak komplek seperti Game Golde
Miner dimana karakter bob yang bekerja
menurut statenya dan akan melakukan
perubahan atau pengupdetan menurut
statenya
masing-masing[8].
Dengan
penerapan konsep FSM dengan bentuk
Embedded Rules ini diharapkan dapat
menjadi pemahaman terhadap sebuah game
untuk pembelajaran kehidupan sehari-hari.
Misalnya dalam kasus ini untuk maintenance
waktu yang baik dalam bekerja. Selain itu,
penulis dapat mengembangkan sebuah game
yang memiliki kemampuan Artificial
Inteligence(AI).

AtHome, Mining, AtBank, aturan transisi


untuk berpindah ke state lain. FSM adalah
sebuah metodologi perancangan sistem
kontrol yang menggambarkan tingkah laku
atau
prinsip
kerja
sistem
dengan
menggunakan tiga hal berikut: State
(Keadaan), Event (kejadian) dan action (aksi).
Pada satu saat dalam periode waktu yang
cukup signifikan, sistem akan berada pada
salah satu state yang aktif. Sistem dapat
beralih atau bertransisi menuju state lain jika
mendapatkan masukan atau event tertentu,
baik yang berasal dari perangkat luar atau
komponen dalam sistemnya itu sendiri.
Transisi keadaan ini umumnya juga disertai
oleh aksi yang dilakukan oleh sistem ketika
menanggapi masukan yang terjadi. Aksi yang
dilakukan tersebut dapat berupa aksi yang
sederhana atau melibatkan rangkaian proses
yang relatif kompleks (Setiawan : 2006).

2. Teori Pendukung
A. Finite State Machine(FSM)
Finite state machine adalah suatu perangkat
atau model perangkat yang memiliki
sejumlah state dan pada satu waktu dapat
berada dalam salah satu state tersebut. Dia
dapat memproses input dan menghasilkan
transisi dari state satu ke state lain atau
menghasilkan
output
berupa
aksi.
Penggunaan konsep FSM ini cukup banyak,
salah satunya pada game bergenre life
simulation yang banyak di gemari kalangan
gamers. Contohnya adalah pada Game
Golden Miner, dimana agen utama yaitu Bob
yang memiliki empat state(keadaan) seperti

Gambar 1 Contoh Diagram FSM

Diagram tersebut memperlihatkan FSM


dengan dua buah state dan dua buah input
serta empat buah aksi output yang berbeda :
seperti terlihat pada gambar, ketika sistem
mulai dihidupkan, sistem akan bertransisi
menuju state0, pada keadaan ini sistem akan
menghasilkan Action1 jika terjadi masukan
Event0, sedangkan jika terjadi Event1 maka
Action2 akan dieksekusi kemudian sistem
selanjutnya bertransisi ke keadaan State1 dan
seterusnya. Secara formal FSM dinyatakan
oleh 5 tupel atau M=(Q, , , S, F),
(Utdirartama, 2001) dimana:

Q = himpunan state/kedudukan
= himpunan symbol input/masukan/abjad
= fungsi transisi
S = state awal/ kedudukan awal (initial state),
SQ
F = himpunan state akhir, F Q
Kelebihan FSM
FSM memiliki beberapa kelebihan
(Brownlee, 2010), diantaranya :
1. Sederhana, sehingga mudah
diimplementasikan
2. Bisa diprediksi responnya
3. Komputasi ringan
4. Relatif fleksibel
5. Merupakan metode AI lama yang bisa
digunakan pada berbagai sistem
6. Mudah ditransfer dari abstrak menjadi kode
program
Kelemahan FSM
Selain memiliki banyak kelebihan, FSM juga
mempunyai beberapa kelemahan (Brownlee,
2010), diantaranya :
1. Karena sifatnya bisa diprediksi, maka
implementasi pada game kurang disukai
2. Implementasi pada sistem yang lebih besar
dan lebih sulit karena pengaturan dan
pemeliharaannya jadi kompleks
3. Sebaiknya hanya digunakan pada sistem
dimana sifat sistem bisa didekomposisi
menjadi state.
4. Kondisi untuk transisi state adalah tetap

sehingga ketika terjadi penambahan atau


pengurangan state, maka harus dilakukan
update juga terhadap state-state yang terkait.

Gambar 2 Contoh kondisi dalam Embedded Rules

3. Perancangan Game
Pada penerapan konsep Finite state machine
dalam bentuk Embedded Rules ini, game
bergenre life simulation yaitu dengan
mensimulasikan permainan pada Game
Golden Miner. Sebuah agen bernama Bob
seorang penambang (miner) yang akan
berjalan otonom sesuai dengan kondisi dalam
dirinya dan lingkungannya. Misalnya ketika
lelah dia akan tidur, ketika sudah cukup tidur
dia akan berangkat bekerja, dst. Dan di sini
nanti tidak ada aksi konkret yang
dilakukan si Bob, output berupa text sesuai
state yang sedang berjalan.
Untuk lebih jelasnya tentang state dan transisi
dari si Bob ini, berikut diagram statenya :

B. Embedded Rules
Bentuk ini adalah kebalikan dari bentuk
Classical Approach, yang berarti state
transition didefinisikan di state itu sendiri.
Dan sama dengan Classical Approach, bentuk
ini juga akan menawarkan fleksibilitas dan
skalabilitas yang baik, namun dengan efek
samping agak sulit untuk diperbaiki karena
aturan-aturan transisi diletakkan di state

Gambar 3 kondisi state dan transisi dari si Bob

Ada empat state (keadaan) : AtHome,


Mining, AtBank, dan AtBar dimana masing
masing punya aturan transisi untuk berpindah
ke state lain. Dan dari sini kita sudah

mendapat gambaran bahwa si Bob akan


mempunyai variable-variabel seperti:
thirsty level, energy, location, jumlah gold
carried, dan bank balance. Jika behaviour dari
Bob sudah cukup jelas, maka selanjutnya
adalah membangun diagram Classnya.
Strukturnya jelas sama dengan yang sudah
dibahas diatas, cuma untuk kasus ini dibuat
lebih simpel dahulu, biar lebih mudah
dimengerti. Dan bentuk implementasi yang
digunakan yaitu Embedded Rules, dimana
transmisi di definisikan dimasing-masing
state.

Gambar 4 definisi dari masing-masing state

1. State Interface
Ada tiga method di sini:
1. Enter()
Method yang akan dijalankan ketika pertama
kali masuk ke state tersebut. Biasanya
digunakan untuk inisiasi data-data atau
variabel, atau bisa juga untuk memainkan
animasi ketika masuk state itu
2. Update()
Method yang akan berjalan bersamaan
dengan terus berjalannya main game
loop/update. Digunakan untuk menjalankan
behaviour agent dan untuk melakukan
checking kondisi apakah harus berpindah
state atau tidak
3. Exit()
Method yang dipanggil ketika state tersebut
ditinggalkan. biasanya untuk cleanup
data-data dan variabel yang sudah tidak
digunakan.

Dibawah ini adalah algoritma pada State


Interface :
package
{
public interfaceIState
{
function enter():
function update():
function exit():
}
}
2. StateMachine
Sebuah konten yang dibuat kelas sendiri.
Pada kelas ini terdapat update, change state,
dan getCurrentState. Kita buat object
currentState. curState = null; adalah saat
object StateMachine ini diinstatiate oleh
object lain, set current state dengan null.
curState.update();
untuk
melakukan
updating terhadap state yang baru berjalan,
dengan cara memanggil method update()
yang ada di state object tersebut. ChangeState
merupakan method untuk melakukan
pergantian state. Jika current state tidak null,
maka jalankan dulu method exit() yang
dimiliki state tersebut. Selanjutnya jadikan
state yang diinput melalu parameter menjadi
current state dan panggil method enter().
Dibawah ini adalah algoritma pada State
Machine :
1: package
2: {
3: import states.*;
4:
5: public class StateMachine
6: {
7: private var curState:IState;
8:
9: public function StateMachine()
10: {
11: curState = null;
12: }
13:
14: public function update():void

15: {
16: curState.update();
17: }
18:
19:
public
function
changeState(state:IState):void
20: {
21: if (curState != null)
22: {
23: curState.exit();
24: curState = null;
25: }
26:
27: curState = state;
28: curState.enter();
29: }
30:
31: public function getCurrentState():IState
32: {
33: return curState;
34: }
35: }
36: }
3. BaseEntity
Disini kita akan membuat variabel nama,
currentLocation, energy, dan thirstLevel.
Serta dua constant untuk menentukan nilai
maksimum energy dan thirst level. Di public
function BaseEntity(name:String) set nama
entitas, set current location dengan
home. Set energy sesuai energy
maksimum, dan set thirst level dengan nilai
nol. Jadi ketika entitias pertama kali
diinstatiate mereka akan berada di rumah,
energy nya full, dan thirst level nya nol.
Terdapat
method
isTired()
untuk
mendapatkan informasi apakah agen sudah
lelah atau belum. Dalam metode yang
teradapat di BaseEntity ini, ia akan mengecek
keadaan Bob lalu melakukan updating
kembali untuk melakukan aktifitas berikutnya
sesuai dengan state yang sedang diperoleh leh
agen Bob.

4.Miner
Pada kelas ini, terdapat kelas stateMachnin
yang berfungsi agar si Miner ini punya
kemampuan FSM di dalamnya. Disini akan
berlangsung
pengecekan
yang
akan
membawanya kepada empat state yaitu
AtHome, Mining, AtBank, dan AtBar.
Misalnya agen akan mengecheck apakah
kantong miner sudah penuh dengan emas.
Jika ya, maka ia akan berangkat ke AtBank.
Dan selanjutnya ia akan melakukan
perubahan state melalui kondisinya.
4. Implementasi dan Pengujian
Setelah memahami tentang konsep dalam
penerapan FSM pada Game Golden Miner,
maka selanjutnya adalah tahap implementasi
dan pengujiannya. Saat kita menjalankan
program permainan ini di Flash maka akan
muncul output berupa text seperti berikut :

Gambar 5 output dari hasil Game Golden Miner

Output ini menghasilkan perilaku dari agen


Bob sesui dengan statenya. Untuk lebih lanjut
dapat dilihat dari diagram di bawah ini :

Selanjutnya adalah Pseudo code algoritma


FSM pada salah satu state agen Bob.
========================================
Pseudocode algoritma FSM pada salah satu
state agen Bob
|
========================================
goldCarried : integer
goldAtBank : integer
constant maxGoldCarried : integer = 3
constant wealthy : integer = 30
Diagram ini menjelaskan dari state awal yaitu
AtHome saat agen Bob tidak melakukan
apa-apa program akan mengecek jika
energinya lebih dari 20 maka ia akan
langsung menambang (mining) tetapi jika saat
ia menambang (mining) energinya berkurang
menjadi kurang dari 1 maka ia akan kembali
ke state AtHome diaman ia akan mengisi
energinya sampai full. Saat ia di posisis
Mining ia akan melakukan beberapa perilaku
yaitu transmisi dari jika gold dari hasil
tambangnya melampaui dan sama dengan 4
maka ia akan ke state AtBank. Saat di state
AtBank akan mengecek jika gold yang agen
Bob miliki ternyata kurang dari 32 maka agen
Bob akan kembali menambang (Mining).
Selanjutnya, jika agen Bob pada saat
menambang (Mining) level kehausannya
melebihi 10 maka ia akan ke state AtBar,
begitupun sebaliknya jika level ke hausannya
telah terpenuhi hingga kurang dari 1 maka ia
akan kembali ke state Mining.

function isPocketFull()
temp : Boolean
if goldCarried >= maxGoldCarried than
temp = true
else
temp = false
endif
function isWealthy()
temp : Boolean
if goldAtBank >= wealthy than
temp = true
else
temp = false
endif
function increaseGolCarried()
goldCarried++
function depositGold()
goldAtBank += goldCarried
goldCarried = 0

========================================
Pseudocode nya di ambil dari coding miner.as
========================================
5. Kesimpulan
Setiap game memiliki kemapuan kecerdasan
buatan atau Artificial Inteligence(AI). Untuk
memecahkan sebuah permasalahan dalam
Artificial Inteligence(AI) dapat digunakannya
konsep FSM dalam bentuk Embedded Rule.
Kelebihan dari bentuk ini adalah cocok untuk
program yang kompleks dengan memecahkan

masalah berdasarkan statenya masing-masing.


Terlihat dari game life simulation agen Bob
ini, seorang penambang yang akan bekerja
dan melakukan aktifitas sesuai keadaan dan
mendapat transmisi untuk melakukan
perubahan statenya. Dan untuk pengupdating
data dilakukan di state masing-masing untuk
mempermudah pencarian kesalahan dari agen
Bob tersebut.
Daftar Pustaka
[2] Alfitra, Zuhria Alfitra.2011.ActionScript
3.0: Finite State Machine.
http://pzuh.blogspot.com/2011/09/actionscrip
t-30-finite-state-machine.html (diakses
tanggal 17 Oktober 2014)
[1] Ardiyo.2012.Definisi Profesi menurut
para ahli.
http://for7delapan.wordpress.com/2012/06/2
2/definisi-profesi-menurut-para-ahli/
(diakses tanggal 17 Oktober 2014)
[3] P.Juhara, Zamrony.2010.Finite State
Machine Berorientasi Objek.
http://v3.juhara.com/id/artikel/pemrogramandelphi/16-object-oriented-finite-state-machin
e (diakses tanggal 17 Oktober 2014)
[4] Tirtanata, Denny.2014. FSM ( Finite State
Machine ).
http://dentyagame.blogspot.com/2014/04/fsm
-finite-state-machine.html (diakses tanggal
17 Oktober 2014)

Anda mungkin juga menyukai