penerapan fsm pada game golden miner berbasis teks menggunakan adobe flash

19
Penerapan FSM Pada Game Golden Miner Berbasis Teks menggunakan Adobe Flash Dian Ayu 1 , Reda Rezika 2 , and Depi Juandi 3 1 Batam Polytechnics Informatics Study Program Parkway Street, Batam Centre, Batam 29461, Indonesia E-mail: [email protected] NIM : 4311201080 2 Batam Polytechnics Informatics Study Program Parkway Street, Batam Centre, Batam 29461, Indonesia E-mail: [email protected] NIM : 4311201066 3 Batam Polytechnics Informatics Study Program Parkway Street, Batam Centre, Batam 29461, Indonesia E-mail: [email protected] NIM : 4311201070

Upload: ayyi-purple

Post on 25-Jan-2016

16 views

Category:

Documents


4 download

DESCRIPTION

Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

TRANSCRIPT

Page 1: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

Penerapan FSM Pada Game Golden Miner Berbasis Teks menggunakan Adobe Flash

Dian Ayu1, Reda Rezika2, and Depi Juandi3

1 Batam PolytechnicsInformatics Study Program

Parkway Street, Batam Centre, Batam 29461, IndonesiaE-mail: [email protected] NIM : 4311201080

2 Batam PolytechnicsInformatics Study Program

Parkway Street, Batam Centre, Batam 29461, IndonesiaE-mail: [email protected] NIM : 4311201066

3 Batam PolytechnicsInformatics Study Program

Parkway Street, Batam Centre, Batam 29461, IndonesiaE-mail: [email protected] NIM : 4311201070

Page 2: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

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.

AbstractAlong 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 PendahuluanMenurut[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

Page 3: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

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

2. Teori Pendukung

A. Finite State Machine(FSM)

Page 4: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

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

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), S Q 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 

Page 5: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

3. Sebaiknya hanya digunakan pada sistem dimana sifat sistem bisa didekomposisi menjadi state. 4. Kondisi untuk transisi state adalah tetap 

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

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 InterfaceAda tiga method di sini:1. Enter()

Page 6: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

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 itu2. 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 tidak3. 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. StateMachineSebuah 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: }

Page 7: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

3. BaseEntityDisini 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.MinerPada 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 PengujianSetelah 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 :

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

Page 8: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

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.

Selanjutnya adalah Pseudo code algoritma FSM pada salah satu state agen Bob.

================================================================+Pseudocode algoritma FSM pada salah satu state agen Bob |================================================================+goldCarried : integergoldAtBank : integerconstant maxGoldCarried : integer = 3constant wealthy : integer = 30

function isPocketFull()temp : Boolean

if goldCarried >= maxGoldCarried thantemp = true

elsetemp = false

endif

function isWealthy()

temp : Booleanif goldAtBank >= wealthy than

temp = trueelse

temp = falseendif

function increaseGolCarried()goldCarried++

function depositGold()goldAtBank += goldCarriedgoldCarried = 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

Page 9: Penerapan FSM Pada Game Golden Miner Berbasis Teks Menggunakan Adobe Flash

[2] Alfitra, Zuhria Alfitra.2011.ActionScript 3.0: Finite State Machine. http://pzuh.blogspot.com/2011/09/actionscript-30-finite-state-machine.html (diakses tanggal 17 Oktober 2014)

[1] Ardiyo.2012.Definisi Profesi menurut para ahli. http://for7delapan.wordpress.com/2012/06/22/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)

[4] Tirtanata, Denny.2014. FSM ( Finite State Machine ). http://dentyagame.blogspot.com/2014/04/fsm-finite-state-machine.html (diakses tanggal 17 Oktober 2014)