Anda di halaman 1dari 19

Chapter 2

Finite State Machine

Program Studi Informatika IO Suzanti M.Cs


Jurusan Teknik Informatika
Universitas Trunojoyo Madura iosuzanti@trunojoyo.ac.id
Previously

Pengertian Bahasa Formal

Manfaat Automata
Today Schedule

FINITE STATE MACHINES (FSM)


Kegunaan FSM

Software untuk desain dan verifikasi rangkaian digital,

Lexical analyzer pada compiler,

Pencarian pada teks yang besar (search engine di
web, grep, dll),

Desain, verifikasi, dan implementasi sistem software
yang melibatkan interaksi (protokol jaringan, electronic
commerce, sistem reaktif, dll)
Problem to Resolve
Dalam mata kuliah ini, masalah didefinisikan sebagai
berikut:

Bahasa (Language) : L adalah sebuah himpunan dari
string (word, kata),

Input : string x ,

Masalah : Menentukan apakah x ∈ L atau tidak. L atau tidak.

Mesin menyelesaikan masalah L dengan menerima


atau menolak x .
Definisi
Alfabet (Σ) ) : adalah sembarang himpunan terhingga
(finite) simbol-simbol.

Σ) = {0, 1},

Σ) = {a, b, c, · · · , z },

Σ) = semua karakter ASCII.

String (w) : adalah sebuah barisan terhingga simbol-


simbol dari alfabet Σ) (string w = w1 w2 · · · wn , dimana
∀1 ≤ i ≤ n, wi ∈ L atau tidak. Σ) ).

101,

string,

Rp 1.000.000.
Definisi

String Kosong: ε .

εw = wε = w

εabba = abbaε = abba
● Panjang string: |w| = |w1 w2 · · · wn| = n.

|ε| = 0,

|1001| = 4,

|string| = 6.

Perkalian cartesian (cartesian product) :
Σ) k = Σ) × Σ) × · · · × Σ) (k kali)
Ini berarti semua string dengan panjang k di mana setiap
simbolnya diambil dari Σ)
Contoh
A = { a,b }
B = { 0, 1, 2 }

Cartesian Product
A x B = { (a,0), (a,1), (a,2), (b,0), (b,1), (b,2) }

|AxB|=|A|x|B|
=2x3
=6
Star Closure (Kleene *)
Σ) * = Σ) 0 ∪ Σ Σ) 1 ∪ Σ Σ) 2 ∪ Σ · · · . Ini berarti semua string dengan
panjang terhingga dari Σ) .
(Catatan: Σ) * sendiri adalah himpunan tak terhingga–
infinite).

Σ) 0 = {ε},

Σ) 1 = Σ) ,

Σ) 2 = Σ) × Σ) .
Contoh :
Σ) = {0,1}
Σ) * = {ε,0,1,00,01,10,11,000,001,...}
Positive Closure

Σ) + = Σ) 1 ∪ Σ Σ) 2 ∪ Σ · · · .
= Σ) * - ε

Contoh :
Σ) = {0,1}
Σ) * = {ε,0,1,00,01,10,11,000,001,...}
Σ) + = {0,1,00,01,10,11,000,001,...}
Bahasa
Bahasa L adalah sekumpulan string dari suatu alfabet
atau subset dari Σ) (L ⊆ Σ Σ) *).

L dan Σ) * bisa jadi berukuran tak terhingga, namun


keduanya berisi string-string dengan panjang yang
terhingga.
Bahasa
Σ) = {a, b, c, · · · , z},

L = semua kata-kata bahasa Indonesia.


Σ) = {0, 1},

L = {ε, 01, 0011, 000111, · · · }.


Σ) = ASCII,

L = semua program C++ yang dapat dicompile.
Operasi Bahasa
Menggunakan operasi himpunan
{a, ab, aaaa} ∪ Σ {bb, ab} = {a, ab, bb , aaaa}
{a, ab, aaaa} ∩ {bb, ab} = {ab}
{a, ab, aaaa} - {bb, ab} = {a, aaaa}

Complement : L̄ = Σ) * - L
{a, ba} = {ε, b, aa, ab, bb, aaa,...}
Reverse
Definisi: LR = { wR : w ∈ L atau tidak. L}


Contoh: {ab, aab, baba}R = {ba, baa, abab}

L = {an bn : n ≥ 0}

LR = {bn an : n ≥ 0}
Concatenation (penyambungan)
● x = x1 · · · xn ∈ L atau tidak. Σ) *
m ∈ L atau tidak. Σ) *
● y = y · · · y
1
● ⇒ x · y = x · · · x y · · · y
1 n 1 m .

εx = xε = x ,
|x · y| = |x| + |y|.

(a+b)* = bhs yang terbentuk dari semua kata dari huruf a
atau b atau keduanya
(a+b)* = λ,a,b,ab,ba,aa,bb,aba,bab, bbaa, abba, ...

a*b* = bhs yang terbentuk dari a, b bebas tapi tidak
mungkin ada a setelah b
a*b* = λ,a,b,aa,bb,ab,aab,aabb,abbb …

ab* = bhs yang terbentuk diawali satu a digabung
dengan b bebas
ab* = a, ab, abb, abbb, abbbb, ...

(ab)* = bhs yang terbentuk dari gabungan ab bebas
(ab)* = λ, ab, abab, ababab, ...
Latihan 1
1. ab* =
2. a*b =
3. a*a*a+ a* =
4. ab*a+ =
5. Jika A = {the, my} B = {horse, house, home},
tentukan cartesian product dari AxB, BxA, AxBxB
Up Next

Finite Automata (FA)


Any Question ?

Anda mungkin juga menyukai