Anda di halaman 1dari 8

Penerapan FSM Pada Game Golden Miner Berbasis Teks menggunakan Adobe Flash

Dian Ayu1, Reda Rezika2, and Depi Juandi3


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

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

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

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 aturanaturan 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 (ifelse 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 statestate yang terkait. Jadi, pada penerapan
konsep ini pembuatan dan pengupdating
akan dilakukan menurut statenya masingmasing. 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 masingmasing[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

diletakkan di state sehingga ketika terjadi


penambahan atau pengurangan state, maka
harus dilakukan update juga terhadap statestate 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

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 datadata 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 :

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.

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

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

[2] Alfitra, Zuhria Alfitra.2011.ActionScript


3.0: Finite State Machine.
http://pzuh.blogspot.com/2011/09/actionscri
pt-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/pemrograman
-delphi/16-object-oriented-finite-state================================================================+
machine (diakses tanggal 17 Oktober 2014)
Pseudocode nya di ambil dari coding miner.as
[4] Tirtanata, Denny.2014. FSM ( Finite
================================================================+
State Machine ).
http://dentyagame.blogspot.com/2014/04/fsm
5. Kesimpulan
-finite-state-machine.html (diakses tanggal
17 Oktober 2014)
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

Anda mungkin juga menyukai