Finite State Machine (FSM)


Finite State Mechine (FSM)


* Pengertian FSM

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




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



* Contoh Flowchart 4 State





* Contoh Pseudocode 4 State

Public PlayerBheavior {
Enum PlayerState {
Idle,
Jump,
Run,
Attack
}
}
PlayerState actualPlayerState = PlayerState.Idle;
Void Update() {
Switch (actualPlayerState) {
case PlayerState.Idle:
//Do what you want in the idle state
break;
case PlayerState.Jump:
//Do what you want in the Jump state
break;
case PlayerState.Run:
//Do what you want in the Run state
break;
case PlayerState.Attack:
//Do what you want in the Attack state
break;  
}
}
 
 

* Contoh Flowchart 10 State

 

* Contoh Pseudocode 10 State

int card,pin, deposit, account, ie, wdcard, wd, amount;
true = 1 ;
false = 0 ;
if card = 1 {
  if pin = 1 {
   if deposit = 1 {
    if account = 1 {
     insert = 1 }
    else wdcard;
    }
   } 
  if pin = 0 {
   if wd = 1 {
    if account = 1 {
     if ammount = 0 {
       result ammount }
     else wdcard;
    }
   }
  }








Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment