Professional Documents
Culture Documents
Pada akhir pertemuan ini diharapkan mahasiswa dapat memahami konsep Finite
State Machine (FSM) dan Finite State Automata (FSA) sebagai suatu konsep
abstrak matematis yang menggambarkan perilaku suatu mesin logika yang
menggambarkan cara kerja dari suatu mesin fisik, suatu program, algoritma,
atau konsepsi pemecahan masalah. Di dalam konteks teori bahasa, mesin FSA
dapat diterapkan untuk mengenali suatu string yang berasal dari bahasa
regular yang dibangkitkan dari suatu tata bahasa (grammar) regular. Dengan
demikian ada hubungan timbal balik antara bahasa regular dengan FSA, yaitu
jika dimiliki bahasa regular pasti dapat dikonstruksi suatu mesin FSA, dan
sebaliknya jika dimiliki suatu FSA pasti dapat diturunkan suatu bahasa
yang akan dikenali oleh mesin tersebut.
Contoh 1:
FSM dengan output, yaitu Mesin Jaja (Vending Machine)
Misalkan dimiliki sebuah Mesin Jaja yang dapat mengeluarkan dua macam
output yaitu Jus Jeruk dan Jus Apel. Mesin ini memiliki kedudukan sebanyak
7 state (misalkan dicatat sebagai S 0, S1, S2, ... , S6). Mesin ini dapat
menerima masukan uang pecahan yang dapat berupa 5-an, 10-an, dan 25-an.
Mesin ini selain dapat menerima masukan uang pecahan juga disediakan dua
tombol kuning (K) dan tombol merah (M). Jika mesin dalam kedudukan S 6,
maka jika ditekan K akan keluar Jus Jeruk dan jika ditekan M akan keluar
Jus Apel. Tabel transisi kedudukan dari mesin dapat disajikan seperti
tabel berikut:
KETERANGAN:
n = tidak ada keluaran
K = tombol kuning ditekan
M = tombol merah ditekan
JJ/JA = mesin mengeluarkan Jus Jeruk/Jus Apel
1
Penggunaan Tabel 1 sebagai fungsi transisi dari Mesin Jaja dapat dipahami
dalam beberapa contoh, misalnya:
Jika pada state S6 menerima masukan K maka akan pindah ke state S 0 dan
menghasilkan OUTPUT JJ = yaitu keluar Jus Jeruk
Jika pada state S6 menerima masukan M maka akan pindah ke state S 0 dan
menghasilkan OUTPUT JA = yaitu keluar Jus Apel
Mesin Jaja tersebut hanya bisa menerima uang receh maksimum 30. Isi mesin
adalah 30 ditunjukkan dengan keadaan S 6. Pada kondisi S6 ini mesin berharap
menerima masukan tekan tombol K atau M, bukan menerima masukan uang lagi.
Ini nampak jika dalam state tertentu dimasukkan uang receh sehingga nilai
uang dalam mesin diatas 30 maka akan dikeluarkan kembaliannya, misalnya:
Jika pada state S6 menerima masukan 5-an maka akan tetap pada state S 6
dan menghasilkan OUTPUT (kembalian) 5-an.
Jika pada state S2 menerima masukan 25-an maka akan pindah menuju state
S6 dan menghasilkan OUTPUT (kembalian) 5-an.
Dalam FSA juga dikenal himpunan state-state tertentu yang disebut sebagai
FINAL STATE. Perubahan dari suatu state ke state berikutnya mengikuti
aturan tertentu yang dirumuskan sebagai suatu fungsi transisi δ (dibaca:
delta).
2
Perilaku FSA diekspresikan dalam bentuk tabel transisi atau dalam bentuk
diagram transisi.
Contoh 2:
Buatlah diagram transisi dari FSA yang didefinisikan sebagai berikut:
M = (S, ∑, δ, S0, dan F), dimana:
S = {S0, S1, S2, S3}
∑ = {0,1}
F = {S0, S3}
Fungsi transisi δ ada pada tabel transisi berikut:
TABEL TRANSISI
δ
State Input
0 1
S0 S0 S1
S1 S0 S2
S2 S0 S0
S3 S2 S1
Jawab:
Diagram transisi dari FSA dapat digambarkan sebagai berikut:
3
C. FSA SEBAGAI PENGENAL STRING
Mesin FSA tersebut jika menerima masukan sederetan simbol masukan dari
simbol-simbol yang diijinkan maka akan menuju suatu state tertentu. Jika
state akhir yang ditempuh setelah suatu FSA menerima sederetan simbol
adalah state Final, maka deretan simbol (string) tersebut dikatakan
dikenali oleh FSA, atau dengan kata lain FSA mengenali string tersebut.
Kumpulan seluruh string yang dikenali oleh FSA merupakan suatu BAHASA yang
dikenali oleh FSA tersebut. Jika dimiliki FSA M maka bahasa yang dikenali
oleh FSA dinotasikan sebagai:
Untuk mesin FSA di atas, maka bahasa yang dikenali oleh FSA tersebut
adalah:
Contoh 3:
Tentukan bahasa L(M) yang dikenali oleh Mesin M berikut:
Jawab:
Dari diagram terlihat bahwa state akhir (final-state) adalah S3.
Pergerakan state yang mengantar ke final-state adalah S0S1S2S3 yakni
string 011 atau string 111 yang dapat ditulis sebagai (0,1)11.
4
Dengan demikian jika seluruh string tersebut digabungkan akan menjadi
(0,1)110*010*, sehingga bahasa yang dikenali mesin M adalah:
Contoh 4:
a) Tunjukkan bahwa diagram berikut adalah NFA:
Jawab:
Dari S0 jika menerima masukan 0 dapat memilih ke salah satu next-state
yaitu S1 atau S2. Dari S1 jika menerima masukan 1 dapat ke S2 atau tetap di
S1. Dengan demikian diagram diatas adalah NFA.
Jawab:
Pada setiap state, jika menerima masukan selalu hanya satu next-state yang
dituju. Dengan demikian diagram di atas adalah DFA.
5
E. FSA SEBAGAI PENGENAL BAHASA REGULAR
FSA baik DFA maupun NFA merupakan pengenal terhadap kelas bahasa regular,
yang dapat dicirikan sebagai berikut:
Tiap aturan produksi yang mungkin, dapat diwakili oleh gerakan dalam
FSA sebagai berikut:
6
dibangkitkan oleh grammar tersebut. Demikian juga jika dimiliki
suatu FSA maka akan dapat ditentukan tata bahasa (grammar) regular
yang membangkitkan bahasa yang dikenali FSA tersebut.
Contoh 5:
Tentukan tata bahasa (grammar) yang mengenali bahasa yang dibangkitkan
oleh FSA berikut:
Jawab:
Grammar G(∑,N,S,P), dimana ∑ = {0,1}, dan N = {S,A,B} yakni dengan
mengamati diagram dan menganalogikan state-state sebagai non-terminal,
yaitu S0 terkait dengan non-terminal S, S1 terkait dengan non-terminal A,
dan S2 terkait dengan non-terminal B. Jika diagram tersebut diuraikan
setiap tahapnya akan berkaitan dengan aturan-aturan produksi P seperti
uraian berikut:
7
Dengan demikian ada 5 aturan produksi yang menjadi bagian dari tata bahasa
yang membangkitkan bahasa yang sama dengan bahasa yang dikenali oleh FSA
tersebut, yaitu:
Contoh 6:
Tentukan FSA yang mampu mengenali bahasa yang dibangkitkan oleh grammar
G(∑,N,S,P), dimana ∑={0,1}, N={A,B}, dan P=S0A; A0A; A1B; B1B; Bε
Jawab:
Jika aturan produksi tersebut dirinci menjadi:
1. S0A
2. A0A
3. A1B
4. B1B
5. Bε