A. Definisi FSM
Ada beberapa definisi mengenai Finite State Machine (FSM) atau sering juga disebut dengan Finite State Automata (FSA).
- FSM didefinisikan
sebagai perangkat komputasi yang memiliki input berupa string dan output yang
merupakan satu dari dua nilai yang dapat di-accept dan reject (Rich : 2009).
- Finite Automata adalah
model matematika sistem dengan masukan dan keluaran diskrit. Sistem dapat
berada di salah satu dari sejumlah berhingga konfigurasi internal disebut state
(Hariyanto : 2004).
- 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).
B. Kelebihan FSM
FSM memiliki beberapa kelebihan
(Brownlee, 2010), diantaranya :
- Sederhana, sehingga
mudah diimplementasikan
- Bisa diprediksi
responnya
- Komputasi ringan
- Relatif fleksibel
- Merupakan metode AI lama
yang bisa digunakan pada berbagai sistem
- Mudah ditransfer dari abstrak menjadi kode
program
C. Kelemahan FSM
Selain memiliki banyak
kelebihan, FSM juga mempunyai beberapa kelemahan (Brownlee, 2010), diantaranya
:
- Karena sifatnya bisa
diprediksi, maka implementasi pada game kurang disukai
- Implementasi pada sistem
yang lebih besar lebih sulit karena pengaturan dan pemeliharaannya jadi
kompleks
- Sebaiknya hanya
digunakan pada sistem dimana sifat sistem bisa didekomposisi menjadi state
- Kondisi untuk transisi
state adalah tetap
D. Contoh FSM pada Game
Contoh Gambar FSM
Berikut adalah Pseudocode Game:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FSMGameku : MonoBehaviour {
public enum {MenuUtama,start,player,berlari,item level,
musuh,nyawa player,level,skor, waktu,GameOver,reward,GameSelesa
public TurnStates state;
public bool gameInProgress = true;
void Start () {
state = FSMgameku.Mulai.Init;
StartCoroutine ("TurnFSM");
}
private IEnumerator TurnFSM (){
while(gameInProgress){
switch(state){
case 0:
if(permainan dimulai())
{Diam :;}
}
break;
{
case 1:
if( Masuk Level ())
{Pernyataan:}
}
break;
{
case 2:
if( mencari jalan())
{berlari:}
}
break;
{
case 3:
if( mencari benda())
{item:}
if( menghindar musuh())
{Bertahan;}
}
break;
{
case 4:
if( mencari Benda ())
{Item:}
if(serang musuh())
{Musuh;}
}
break;
{
case 5:
if( Terkena musuh ())
{Nyawa Player:}
}
break;
{
case 6:
if( Masuk Level ())
{Pernyataan:}
}
break;
{
case 7:
if(nyawa masih tersedia ())
{Diam:}
if(nyawa masih habis ())
{GameOver:}
}
break;
{
case 8:
if(Memulai permainan ())
{Masuk level:}
}
break;
{
case 9:
if( berhasil menjawab())
{Mendapatkan Reward:}
}
break;
case 10:
if( Reward())
{Game Selesai:}
}
break;
}
}
Penjelasan dari Pseudocode Game di atas:
Dalam game yang saya buat sesuai gambaran diatas berbentuk FSM, pertama kali ke menu utama untuk memilih level dengan mengklik tombol level. Pada opsi ini bebas untuk memilih level mengklik tombol Level yang tersedia maka akan diarahkan ke tampilan game survival. Player akan berlari menghindari musuh untuk mendapatkan item yang akan mengarahkan ke level selanjutnya. Disini player mempunyai 3 nyawa yang akan membuat bertahan hidup, jika nyawa habis maka akan terjadi game over dan kembali ke menu utama. Setiap level akan terkunci jika tidak dimainkan secara berurutan. Setiap level mempunyai jumlah waktu dan skor yang berbeda. Jika dalam menjawab soal sampai kehabisan waktu maka akan langsung game over dan kemudian bisa mengulang menjawab pertanyaan kembali pada level tersebut. Setiap penyelesain level akan mendapatkan reward berupa bintang sebanyak 3 jika menyelesaikan tiap level dengan sempurna dan sebaliknya. Saat semua level sudah selesai dimainkan maka game dianggap tamat.
E. Sumber Referensi
http://kingkyshared.blogspot.com/2015/01/penjelasan-fsm.html
http://dikabram.blogspot.com/2018/05/finite-state-machine-fsm-dan-pseudocode.html
Komentar
Posting Komentar