BAB 2 TINJAUAN PUSTAKA Pada bab ini akan dibahas teori mengenai FSM yang meliputi defenisi FSM, kelebihan dan kekurangan FSM, teknik pemodelan FSM, implementasi FSM pada perangkat lunak, dan interaksi manusia dengan komputer yang meliputi defenisi serta prinsip utama mendesain antarmuka (interface). 2.1 Finite State Machine (FSM) Bahasa formal dapat dipandang sebagai entitas abstrak, yaitu sekumpulan string-string simbol alphabet tertentu. Namun bahasa juga dapat dipandang sebagai entitas-entitas abtrak yang dapat dikenali atau dibangkitkan melalui suatu mesin komputasi. Mesin yang dapat mengenali bahasa kelas ini adalah finite state machine. 2.1.1 Defenisi FSM Ada beberapa definisi mengenai Finite State Machine (FSM) atau sering juga disebut dengan Finite State Automata (FSA). 1. FSM didefenisikan sebagai perangkat komputasi yang memiliki input berupa string dan output yang merupakan satu dari dua nilai yang dapat di-accept dan reject (Rich : 2009). 2. 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). Universitas Sumatera Utara
21
Embed
BAB 2 TINJAUAN PUSTAKA - repository.usu.ac.idrepository.usu.ac.id/bitstream/123456789/24728/3/Chapter II.pdf · dan kekurangan FSM, ... tersebut untuk memahami algoritma kode perangkat
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
BAB 2
TINJAUAN PUSTAKA
Pada bab ini akan dibahas teori mengenai FSM yang meliputi defenisi FSM, kelebihan
dan kekurangan FSM, teknik pemodelan FSM, implementasi FSM pada perangkat
lunak, dan interaksi manusia dengan komputer yang meliputi defenisi serta prinsip
utama mendesain antarmuka (interface).
2.1 Finite State Machine (FSM)
Bahasa formal dapat dipandang sebagai entitas abstrak, yaitu sekumpulan string-string
simbol alphabet tertentu. Namun bahasa juga dapat dipandang sebagai entitas-entitas
abtrak yang dapat dikenali atau dibangkitkan melalui suatu mesin komputasi. Mesin
yang dapat mengenali bahasa kelas ini adalah finite state machine.
2.1.1 Defenisi FSM
Ada beberapa definisi mengenai Finite State Machine (FSM) atau sering juga disebut
dengan Finite State Automata (FSA).
1. FSM didefenisikan sebagai perangkat komputasi yang memiliki input berupa
string dan output yang merupakan satu dari dua nilai yang dapat di-accept dan
reject (Rich : 2009).
2. 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).
Universitas Sumatera Utara
3. 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 2.1 Contoh diagram state sederhana (Sumber: Setiawan, 2006)
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
Universitas Sumatera Utara
FSM terdiri dari dua jenis, yaitu FSM ber-output dan FSM tidak ber-output.
FSM tidak ber-output digunakan untuk pengenalan bahasa dalam komputer, dengan
input yang dimasukkan akan diperoleh apakah input tersebut dikenal oleh bahasa
komputer atau tidak. Salah satu penggunaan FSM tidak ber-output adalah program
compiler, yaitu program untuk memeriksa apakah perintah yang digunakan pengguna
benar atau salah. Sementara untuk FSM ber-output digunakan untuk merancang mesin
atau sistem (Zen, 2008). Dan FSM yang akan digunakan dalam penelitian ini adalah
FSM ber-output, dan untuk selanjutnya akan dituliskan dengan FSM saja.
Ada dua metode utama untuk memperlakukan FSM untuk menghasilkan
output. Yaitu Moore Machine dan Mearly Machine yang dinamakan berdasarkan
penemunya.
2.1.1.1 Moore Machine
Gambar 2.2 Moore State Machine (Sumber: Brownlee, 2010)
Moore Machine adalah tipe dari FSM dimana output dihasilkan dari state.
Pada gambar diatas mencontohkan dimana state mendefenisikan apa yang harus
dilakukan (Brownlee, 2010). Keluaran pada Moore Machine diasosiasikan sebagai
state (Hariyanto, 2004). Dan pada penelitian ini, penulis menggunakan Moore
Machine.
Universitas Sumatera Utara
2.1.1.2 Mearly Machine
Gambar 2.3 Mearly State Machine (Sumber: Brownlee, 2010)
Mearly Machine berbeda dengan Moore Machine dimana keluarannya
merupakan hasil dari transisi antar state (Brownlee, 2010). Keluaran pada Mearly
Machine diasosiasikan sebagai transisi (Hariyanto, 2004)
2.1.2 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
2.1.3 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
Universitas Sumatera Utara
3. Sebaiknya hanya digunakan pada sistem dimana sifat sistem bisa
didekomposisi menjadi state.
4. Kondisi untuk transisi state adalah tetap
2.1.4 Teknik Pemodelan FSM
Finite State Machine bukanlah metode yang baru. FSM sudah lama ada dan konsep
dekomposisi biasanya sudah dipahami dan sering digunakan oleh orang-orang yang
memiliki pengalaman dalam membuat program komputer atau desain program
komputer. Ada beberapa teknik pemodelan abstrak yang bisa digunakan untuk
membantu defenisi atau pemahaman dan desain dari FSM, mayoritas teknik ini
berasal dari disiplin ilmu desain atau matematika (Lee: 1998).
1. Diagram Transisi State
Juga dikenal sebagai Diagram Gelembung (Bubble Diagram). Menunjukkan
relasi antara state dengan input yang menyebabkan transisi state.
2. Diagram Pengambilan Keputusan State-Aksi.
Diagram Alir sederhana dengan tambahan gelembung yang menunjukkan
penungguan terhadap input.
3. Diagram Grafik State
Salah satu bentuk dari notasi UML yang berfungsi untuk menunjukkan sifat
individu dari objek sebagai nomor state dan transisi dari state tersebut.
4. Analisa Hirarki Perintah
Meskipun tidak seperti state, ini merupakan teknik dekomposisi perintah yang
melihat dari sudut pandang bagaimana caranya perintah dibagi jadi sub
perintah dan urut sesuai urutan kejadiannya.
Universitas Sumatera Utara
2.1.5 Implementasi FSM pada perangkat lunak
Implementasi Finite State Machine dalam perangkat lunak merupakan permasalahan
tersendiri yang sudah banyak diteliti oleh pakar-pakar insinyur perangkat lunak
(software engineer ). Desain Finite State Machine memang tampak mudah dan
sederhana karena hanya terdiri dari serangkaian lingkaran dan anak panah yang
masing-masing memiliki label. Desain FSM biasanya direpresentasikan dalam tabel
transisi state atau dengan state diagram. Namun jika tiba waktunya
mengimplementasikan FSM dalam suatu aplikasi perangkat lunak, maka ada suatu
permasalahan yang sering timbul yaitu kode program FSM menjadi rumit dan
kompleks ketika sistem yang dibangun adalah sistem yang besar atau kompleks. Bagi
pemula yang masih belajar implementasi FSM dengan sistem sederhana mungkin hal
ini tidak terlalu berpengaruh maupun terasa. Namun bagi seorang programer
profesional, maka implementasi FSM untuk sistem yang besar atau kompleks
memerlukan suatu desain struktur yang baik dan optimal (Wijaya, 2009).
Pada dasarnya implementasi FSM bisa dibagi menjadi tiga (3) cara, dimana
masingmasing cara memiliki kelebihan dan kekurangan masing-masing. Ketiga cara
tersebut adalah sebagai berikut (Wijaya, 2009):
1. Cara tradisional
2. Lookup table
3. Object Oriented
Sebagai contoh sistem yang digunakan untuk melihat perbedaan antara cara
satu dengan yang lain adalah sistem mesin minuman dalam kaleng menggunakan
koin. Desain FSM sistem tersebut tampak pada gambar.
Universitas Sumatera Utara
Gambar 2.4 FSM mesin minuman dalam kaleng menggunakan koin
(Sumber:Yacoub, 1998)
2.1.5.1 Cara Tradisional
Kelebihan dari cara tradisional adalah mudah untuk diimplementasikan. Cara ini
adalah cara klasik yang paling mudah untuk menerapkan FSM pada perangkat lunak
sekaligus merupakan cara klasik yang biasanya masih banyak digunakan pada mikro
komputer dengan sumber daya pemroses yang terbatas (limited hardware resources ).
Kekurangan dari cara tradisional adalah bahwa implementasi yang mudah tersebut
hanya berlaku jika sistem yang digunakan adalah sistem yang kecil. Seiring dengan
membesarnya sistem dan membesarnya tingkat kompleksitas maka implementasi dan
pemeliharaannya juga akan semakin rumit (Wijaya, 2009).
Tabel 2.1: Implementasi cara tradisional (Sumber: Yacoub, 1998)
switch(state){
case Broken:
//kode state Broken disini;
break;
case Unlock:
// kode state Unlock disini;
break;
default:
// kode Lock disini
break;
}
Universitas Sumatera Utara
Ciri khas dari implementasi FSM menggunakan cara tradisional adalah dengan
menggunakan perintah if then atau select case atau switch pada kode program. Salah
satu contoh implementasi cara tradisional pada kode program adalah seperti pada tabel
2.1.
Semakin banyak jumlah state yang digunakan pada sistem, maka semakin
banyak juga penulisan kode dan semakin panjang perintah switch. Karena semua state
berada dalam satu ruang lingkup perintah switch, maka jika terjadi salah ketik pada
salah satu state akan membuat state yang lain terlihat kacau juga. Semakin panjang
state yang digunakan, maka efisiensi pengetikan program juga akan menurun, karena
programer harus mencari state yang ingin dia tambahkan diantara state lain yang
banyak jumlahnya. Jika ada perogramer baru yang harus meneruskan pemrograman
sebelumnya, maka akan membutuhkan waktu yang cukup lama bagi programer baru
tersebut untuk memahami algoritma kode perangkat lunak karena berada dalam satu
file yang panjang (Wijaya,2010).
Selain itu programer harus teliti dalam memastikan bahwa tiap state memiliki
suatu kondisi tertentu untuk transisi ke state lain. Karena jika ada state yang tidak
memiliki transisi ke state lain, maka program akan looping terus pada state tersebut
(Wijaya, 2010).
2.1.5.2 Lookup table
Cara lain mengimplementasikan FSM dalam perangkat lunak adalah dengan
menggunakan lookup table. Tabel ini berisi semua transisi state yang mungkin terjadi
pada sistem. Tabel ini direpresentasikan sebagai matriks pada kode program dimana
tiap baris merepresentasikan event atau transisi state dan kolomnya merepresentasikan
state sedangkan elemennya merepresentasikan next state (Wijaya, 2010).
Kelebihan dari lookup table adalah kemudahannya untuk diimplementasikan
dan pemeliharaannya lebih fleksibel. Implementasinya menggunakan matriks
sehingga tidak begitu sulit menggunakan berbagai bahasa pemrograman untuk
Universitas Sumatera Utara
mengimplementasikannya. Pemeliharaannya juga cukup fleksibel karena tabel atau
matriks tersebut mudah untuk dibaca maksudnya dan dipahami (Wijaya, 2010).
Kelemahan dari lookup table adalah ketika diimplementasikan untuk sistem
yang besar atau kompleks maka respon sistem akan jadi lebih lambat karena ukuran
dimensi matriks yang digunakan menjadi besar sehingga memerlukan alokasi memori
yang besar dan waktu proses lebih lama untuk mencari hubungan state pada matriks.
Hal ini membuat implementasi lookup table jarang digunakan untuk sistem yang besar
dan kompleks (Wijaya, 2010).
Salah satu contoh lookup tabel yang digunakan adalah seperti tampak pada