Teori Bahasa Dan Otomata
Teori Bahasa Dan Otomata
ASA
DAN OTOMA
TA
Jim Michael
Widi, S.Kom
TEORI BAHASA DAN OTOMATA
(3 SKS)
PENDAHULUAN
Apa itu Komputer
• Alat untuk mengetik ?
• Komputer sangat kompleks - menerapkan teori
matematika secara langsung (computational
model)
Model dasar perhitungan
Rekayasa merancang sistem komputer H/W + S/W
HARDWARE/SOFTWARE
• Kekompleksan hardware dan software
ditangani oleh processor untuk
mengkonversi program kedalam bentuk
execute (eksekusi)
• Execute file dapat dibentuk melalui :
Compile
Assembly
Dan sebagainya (interpreter)
DEFINISI
Teori Otomata adalah teori mengenai
mesin-mesin abstrak, dan berkaitan erat
dengan teori bahasa formal. ada beberapa
hal yang berkaitan dengan Otomata, yaitu
Grammar. Grammar adalah bentuk abstrak
yang dapat diterima (accept) untuk
membangkitkan suatu kalimat otomata
berdasarkan suatu aturan tertentu.
GRAMMAR
THEORY OF FORMAL
LANGUAGE
• Bahasa berbentuk dari kombinasi simbol-
simbol dengan aturan formalnya
• Language : A set Of string
• String : A Finite list of symbols from an
alphabet
• Alphabet : A Finite set of objects called
symbol
– { a, b, c, d, e ….z ..} { 0, 1 }
• Symbol : A member of alphabet
• Set : Group of objects
= {a b c d e ... z , . }
Jika = { 0 1 } maka
* = { 0 1 00 01 10 11 000 001 ... }
Jika = { a b c } maka
* = { a b c aa ab ac ba bb bc ca cb cc aaa ... }
• Operasi Kleene Star menghasilkan infinite language
dari string huruf yang ada pada alphabet.
• Yang dimaksud infinite language adalah tak
terhitung banyaknya word.
• Disarankan word dari language tersusun urut dari
yang pendek secara alphabetik .
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• Contoh:
Jika S = { aa, b} maka
S* = { dan word bentukan yang berasal dari aa dan b }
S* = { dan semua string bentukan dari a dan b dengan a yang
selalu berderet dalam jumlah yang genap)
= { b aa bb aab baa bbb aaaa aabb baab bbaa bbbb aaaab aabaa
aabbb baaaa baabb bbaab bbbaa ... }
String aabaaab tidak termasuk S* karena jumlah a tidak genap
• Contoh:
Jika S = { a, ab } maka
S* = { dan word bentukan yang berasal dari a dan ab }
S* = { dan semua string bentukan dari a dan b kecuali yang
dimulai dengan b dan yang mengandung dua b berdempetan }
= { a aa ab aaa aab aba aaaa aaab aaba abaa abab aaaaa
aaaab aaaba aabaa aabab abaaa abaab ... }
REGULAR EXPRESSION
• Sebuah cara mendefinisikan language yang
lebih tepat dibandingkan dengan meng-
gunakan cara ellipsis (diakhiri dengan ...)
• Language ini disebut regular language
• Perhatikan:
L4 = { x xx xxx xxxx ... }
• Dengan memanfaatkan closure, bila S = { x }
maka L4 = S*
• Dapat juga ditulis sebagai L4 = {x}*
Contoh
•Language dengan ekspresi seperti di bawah ini
a*b*
Ada pemanfaatan lain dari tanda tambah +. Ekpresi x + y berarti salah satu
dari x atau y (memilih). Berhati-hatilah untuk membedakan antara + dengan
+.
Contoh
•Perhatikan bahasa T yang berasal dari alphabet = { a b c }
•T = { a c ab cb abb cbb abbb cbbb abbbb cbbbb }
•Semua word di dalam T dimulai dengan a atau c dan diikuti dengan sejumlah
b. Secara simbolik language T dapat ditulis dengan cara
T = language ((a + c)b*)
= language (a atau c diikuti sejumlah b)
tanda + berarti harus dilakukan pilihan untuk memakai ekspresi yang sebelah
kiri atau kanan.
OTOMATA HINGGA
Sebuah Otomata hingga adalah kumpulan dari tiga hal:
•Kumpulan terbatas (finite set) dari state (kondisi/
keadaan). Satu diantaranya menjadi initial state (kondisi
awal) atau start state, dan beberapa (bisa berarti tidak
ada) dari antaranya dinyatakan sebagai final state.
•Himpunan alphabet berisi beberapa huruf, dimana
string-string bentukan dari alphabet akan dibaca huruf
demi huruf.
•Kumpulan terbatas dari transition yang menjelaskan
untuk tiap state dan tiap huruf yang dibaca ke state
mana perjalanan dilanjutkan.
OTOMATA HINGGA
• Otomata hingga adalah suatu model yang dapat diterapkan
pada beragam jenis perangkat keras (hardware) dan
perangkat lunak (software).
• Penerapan-penerapan dari otomata hingga adalah:
Perangkat lunak yang digunakan untuk merancang dan
memantau perilaku rangkaian digital.
Lexical Analyzer, yaitu komponen kompiler yang bertugas
memecah teks-teks input menjadi logical unit seperti identifiers,
keyword dan punctuation.
Perangkat lunak untuk memindai dokumen teks yang jumlah
halamannya luar biasa banyak guna menemukan kesamaan kata,
frase dan bentuk-bentuk lain
Perangkat lunak yang digunakan untuk memeriksa sistem-sistem
dengan stata/state berbeda yang berhingga jumlahnya, misalnya
protokol komunikasi atau protokol yang digunakan untuk
pertukaran informasi secara aman.
Start
Off On
Push
Start t h e n
t th the then
CONTOH
• Alphabet yang digunakan hanya 2 huruf, a
dan b
• Ada 3 buah state, yaitu x, y dan z
• Aturan transition yang dipakai adalah:
1. Dari state x dan input a menuju state y
2. Dari state x dan input b menuju state z
3. Dari state y dan input a menuju state x
4. Dari state y dan input b menuju state z
5. Dari state z dan input apa saja tetap di state z
Ditentukan juga x sebagai start state dan z sebagai
final state
b
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
X- Y X Y
a a
b b b b
Z+ Z
a b a b
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
a
a a, b
- + - + a, b
b b
a, b
a, b a, b
- +
b b
3
a, b a Transition Table
a b
X Y
Start x {x,y} {y}
a
Final y {y} Ø
a a
+
b b
a
a a, b
b a
b
a
b
b
a, b
b
a
7 3 +5
b
b a
a, b a a b
+8 -1 b
b
a b
6 2 4 b
a, b
1. abbab
2. baabb
3. babbaaa
4. aababba
5. aaabbabbaaa
6. aabbbaaabaa
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
DETERMINISTIC FINITE
AUTOMATA
• Pada Deterministic Finite Automata, dari satu state ada tepat satu
state berikutnya untuk setiap simbol masukan yang diterima
• Apapun state saat itu (current state) atau masukan/input nya,
selalu terdapat satu dan hanya satu state berikutnya
x y
a b
a Start X Y Z
b b Y X Z
z b
Final Z Z Z
a
CONTOH a
a b
a, b
Start x {x,y} {y}
x y
Final y {y} Ø
a
a
• ({x},a) = ({x,y}) a
• ({x},b) = ({y})
• ({x,y},a) = ({x,y}) x x,y a, b
• ({x,y},b) = ({y}) b
• ({y},a) = ({y}) b
Ø
• ({y},b) = ({Ø}) y
• ({Ø},a) = ({Ø}) b
• ({Ø},b) = ({Ø})
CONTOH
• ({p},a) = ({q,s})
b • ({p},b) = ({q})
a, b • ({q,s},a) = ({r})
• ({q,s},b) = ({p,q,r})
• ({q},a) = ({r})
p q a, b
• ({q},b) = ({q,r})
b
• ({r},a) = ({s})
b
a • ({r},b) = ({p})
r • ({p,q,r},a) = ({q,r,s})
s
a • ({p,q,r},b) = ({p,q,r})
• ({q,r},a) = ({r,s})
• ({q,r},b) = ({p,q,r})
a b • ({s},a) = ({Ø})
• ({s},b) = ({p})
Start p {q,s} {q} • ({q,r,s},a) = ({r,s})
• ({q,r,s},b) = ({p,q,r})
Final q {r} {q,r} • ({r,s},a) = ({s})
r {s} {p} • ({r,s},b) = ({p})
• ({Ø },a) = ({Ø})
Final s Ø {p} • ({Ø },b) = ({Ø})
CONTOH a
• ({p},a)
• ({p},b)
= ({q,s})
= ({q})
• ({q,s},a) = ({r})
• ({q,s},b) = ({p,q,r})
p q,s • ({q},a) = ({r})
b • ({q},b) = ({q,r})
b • ({r},a) = ({s})
q a • ({r},b) = ({p})
• ({p,q,r},a) = ({q,r,s})
b a • ({p,q,r},b) = ({p,q,r})
b
• ({q,r},a) = ({r,s})
r b • ({q,r},b) = ({p,q,r})
b a • ({s},a) = ({Ø})
q,r Ø • ({s},b) = ({p})
a • ({q,r,s},a) = ({r,s})
a a s • ({q,r,s},b) = ({p,q,r})
a,b • ({r,s},a)
b = ({s})
r,s a • ({r,s},b) = ({p})
a p,q,r b • ({Ø },a) = ({Ø})
• ({Ø },b) = ({Ø})
q,r,s b
• ({P},0} = ({P,Q})
• ({P},1) = ({P})
0 1 • ({P,Q},0) = ({P,Q,R})
• ({P,Q},1) = ({P,R})
Start P {P,Q} {P} • ({P,Q,R},0) = ({P,Q,R,S})
Q {R} {R} • ({P,Q,R},1) = ({P,R})
• ({P,R},0) = ({P,Q,S})
R {S} Ø • ({P,R},1) = ({P})
Final S {S} {S} • ({P,Q,R,S},0) = ({P,Q,R,S})
• ({P,Q,R,S},1) = ({P,R,S})
• ({P,Q,S},0) = ({P,Q,R,S})
• ({P,Q,S},1) = ({P,R,S})
• ({P,R,S),0) = ({P,Q,S})
• ({P,R,S),1) = ({P,S})
• ({P,S},0) = ({P,Q,S})
• ({P,S},1) = ({P,S})
0
• ({P,Q,R,S},1) = ({P,R,S})
P,Q,S
0
P,Q,R,S • ({P,Q,S},0) = ({P,Q,R,S})
• ({P,Q,S},1) = ({P,R,S})
0 • ({P,R,S),0) = ({P,Q,S})
• ({P,R,S),1)
0
1 = ({P,S})
• ({P,S},0) = ({P,Q,S})
P,S
1
P,R,S • ({P,S},1) = ({P,S})
TRANSITION GRAPH
• Kumpulan dari 3 hal:
Finite set dari State dengan minimal satu
diantaranya dinyatakan sebagai start state (-)
dan beberapa (bisa juga tidak ada) dinyatakan
sebagai final state (+)
Sebuah alphabet berisi huruf-huruf yang akan
membentuk input string
Finite set dari transition yang menunjukkan arah
perpindahan dari satu state ke state lain bila
dibaca sebuah substring dari input (termasuk
juga pembacaan string atau )
1- 2 3 4+
2 +
2- +
3-
• Mesin di atas hanya menerima word , baa, dan abba
• Perhatikan TG di bawah ini
+
b a
a
b
q2/0 q3/1 a
• Contoh lain: a
b
a
b a
b
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
FINITE AUTOMATA DENGAN
OUTPUT (MESIN MEALY)
• Sebuah finite set dari state q0, q1, q2, q3, . . . Dimana q0
adalah start state
• Alphabet berisi huruf-huruf yang akan membentuk input
string. = {a, b, c, . . . }
• Alphabet dari karakter yang akan menjadi output T = {x, y, z,
...}
• Tabel transisi yang memperlihatkan untuk tiap state dan tiap
huruf input, state apa yang akan dicapai
• Tiap edge/busur diberi label dalam bentuk i/o, dimana I
adalah huruf yang akan dibaca dan o adalah karakter yang
dicetak.
q0 a/1 q2
b/0 a/0
b/1 b/1
q3
a/1
a/x
a/x, b/x
q4 q7 q4 q7
b/x
a/0
b/0
b/1
Sehingga didapat
S aSa | Bde
B BBB | e
Sehingga didapat
S Sb
S dd | ef
C dd
C ef
D dd
Contoh
S bcAd
A
Pada kasus ini, simbol variabel A dapat
menuju empty dan hanya satu penurunan
dari simbol variabel A, maka simbol variabel
A dapat ditiadakan