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