penerapan fsm pada game golden miner berbasis teks menggunakan adobe flash

8
 Penerapan FSM Pada Game Golden Miner Berbasis Teks menggunakan Adobe Flash  Dian A yu 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 : 43112 01080 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 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, Ga me G olde n Mi ner  ,  Ar t i fi cial I ntele ge nc e , Si m ula si, F ini t e St a t e  Ma ch ine . 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 searc hing 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) t hat 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 J o b , G a m e G o lde n Mi ne r, A r tif i ci a l I nte le ge nce , S i m ula si , F i ni te Sta te  Mac hine .

Upload: ayyi-purple

Post on 06-Oct-2015

37 views

Category:

Documents


3 download

DESCRIPTION

FSM pada game

TRANSCRIPT

  • Penerapan FSM Pada Game Golden Miner Berbasis Teks menggunakan Adobe Flash

    Dian Ayu1, 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

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

    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

    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

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

    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 :

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

    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

    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/pemrograman-

    delphi/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)