TEORI BAHASA DAN OTOMATA

Download Report

Transcript TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA (3 SKS)
TEORI BAHASA DAN OTOMATA
• Teori bahasa membicarakan bahasa formal (formal language), terutama
untuk kepentingan perancangan kompilator (compiler) dan pemroses
naskah (text processor).
• Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah
bahasa dibangkitkan oleh sebuah tata bahasa (grammar) yang sama.
• Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata bahasa
berbeda.
• Dikatakan bahasa formal karena grammar diciptakan mendahului
pembangkitan setiap kalimatnya.
• Bahasa Natural/manusia bersifat sebaliknya; grammar diciptakan untuk
meresmikan kata-kata yang hidup di masyarakat. Dalam pembicaraan
selanjutnya ‘bahasa formal’ akan disebut ‘bahasa’ saja.
• Otomata adalah mesin abstrak yang dapat mengenali (recognize),
menerima (accept), atau membangkitkan (generate) sebuah kalimat
dalam bahasa tertentu.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
DEFINISI
Teori Otomata adalah teori mengenai mesinmesin 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.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
TEORI AUTOMATA MELIPUTI / MENCAKUP
•
•
•
•
•
•
•
Teori Bahasa Formal
Regular Expression
Finite Automata
Non Deterministic Finite Automata
Finite Automata dengan Output
Context-free Grammar
Pushdown Automata
UNIVERSITAS BUDI LUHUR - FTI
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
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
PENGERTIAN PROGRAM SEBAGAI OBYEK
MATEMATIKA
• Diberlakukannya alasan (reason), logika (logic)
dan aturan (rule) untuk kombinasi
• Apakah program mengoperasikan bilangan,
teks atau apapun
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
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)
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
BEBERAPA PENGERTIAN DASAR
• Simbol adalah sebuah entitas abstrak (seperti halnya pengertian
titik dalam geometri). Sebuah huruf atau sebuah angka adalah
contoh simbol.
• String adalah deretan terbatas (finite) simbol-simbol. Sebagai
contoh, jika a, b, dan c adalah tiga buah simbol maka abcb adalah
sebuah string yang dibangun dari ketiga simbol tersebut.
• Jika w adalah sebuah string maka panjang string dinyatakan sebagai
w dan didefinisikan sebagai cacahan (banyaknya) simbol yang
menyusun string tersebut. Sebagai contoh, jika w = abcb maka
w= 4.
• String hampa adalah sebuah string dengan nol buah simbol. String
hampa dinyatakan dengan simbol  (atau ^) sehingga = 0. String
hampa dapat dipandang sebagai simbol hampa karena keduanya
tersusun dari nol buah simbol.
• Alfabet adalah himpunan hingga (finite set) simbol-simbol
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
OPERASI DASAR STRING (1)
• Prefik string w adalah string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih simbol-simbol paling
belakang dari string w tersebut.
Contoh : abc, ab, a, dan  adalah semua Prefix(x)
• ProperPrefix string w adalah string yang dihasilkan dari
string w dengan menghilangkan satu atau lebih simbolsimbol paling belakang dari string w tersebut.
Contoh : ab, a, dan  adalah semua ProperPrefix(x)
• Postfix (atau Sufix) string w adalah string yang dihasilkan
dari string w dengan menghilangkan nol atau lebih simbolsimbol paling depan dari string w tersebut.
Contoh : abc, bc, c, dan  adalah semua Postfix(x)
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
OPERASI DASAR STRING (2)
• ProperPostfix (atau PoperSufix) string w adalah string
yang dihasilkan dari string w dengan menghilangkan
satu atau lebih simbol-simbol paling depan dari string
w tersebut.
Contoh : bc, c, dan  adalah semua ProperPostfix(x)
• Head string w adalah simbol paling depan dari string w.
Contoh : a adalah Head(x)
• Tail string w adalah string yang dihasilkan dari string w
dengan menghilangkan simbol paling depan dari string
w tersebut.
Contoh : bc adalah Tail(x)
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
OPERASI DASAR STRING (3)
• Substring string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling depan dan/atau
simbol-simbol paling belakang dari string w tersebut.
Contoh : abc, ab, bc, a, b, c, dan  adalah semua Substring(x)
• ProperSubstring string w adalah string yang dihasilkan dari string w
dengan menghilangkan satu atau lebih simbol-simbol paling depan
dan/atau simbol-simbol paling belakang dari string w tersebut.
Contoh : ab, bc, a, b, c, dan  adalah semua Substring(x)
• Subsequence string w adalah string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih simbol-simbol dari string w
tersebut.
Contoh : abc, ab, bc, ac, a, b, c, dan  adalah semua Subsequence(x)
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
OPERASI DASAR STRING (4)
• Proper Subsequence string w adalah string yang dihasilkan dari
string w dengan menghilangkan satu atau lebih simbol-simbol dari
string w tersebut.
Contoh : ab, bc, ac, a, b, c, dan  adalah semua Subsequence(x)
• Concatenation adalah penyambungan dua buah string. Operator
concatenation adalah concate atau tanpa lambang apapun.
Contoh : concate(xy) = xy = abc123
• Alternation adalah pilihan satu di antara dua buah string. Operator
alternation adalah alternate atau .
Contoh : alternate(xy) = xy = abc atau 123
• Kleene Closure : x* = xxxxxx… = xx x …
• Positive Closure : x = xxxxxx… = xx x …
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
BEBERAPA SIFAT OPERASI (1)
• Tidak selalu berlaku :
x = Prefix(x)Postfix(x)
• Selalu berlaku : x = Head(x)Tail(x)
• Tidak selalu berlaku :
Prefix(x) = Postfix(x) atau Prefix(x)  Postfix(x)
• Selalu berlaku : ProperPrefix(x)  ProperPostfix(x)
• Selalu berlaku : Head(x)  Tail(x)
• Setiap Prefix(x), ProperPrefix(x), Postfix(x), ProperPostfix(x),
Head(x), dan Tail(x) adalah Substring(x), tetapi tidak
sebaliknya
• Setiap Substring(x) adalah Subsequence(x), tetapi tidak
sebaliknya
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
BEBERAPA SIFAT OPERASI (2)
• Dua sifat aljabar concatenation :
– Operasi concatenation bersifat asosiatif : x(yz) = (xy)z
– Elemen identitas operasi concatenation adalah  : x =
x = x
• Tiga sifat aljabar alternation :
– Operasi alternation bersifat komutatif : xy = yx
– Operasi alternation bersifat asosiatif : x(yz) =
(xy)z
– Elemen identitas operasi alternation adalah dirinya
sendiri : xx = x
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
BEBERAPA SIFAT OPERASI (3)
• Sifat distributif concatenation terhadap
alternation : x (yz) = xyxz
• Beberapa kesamaan :
– Kesamaan ke-1 : (x*)* = x*
– Kesamaan ke-2 : x = x  = x*
– Kesamaan ke-3 : (xy)* = xyxxyyxyyx…
= semua string yang merupakan concatenation
dari nol atau lebih x, y, atau keduanya.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
KONSEP DASAR (1)
• Anggota alfabet dinamakan simbol terminal.
• Kalimat adalah deretan hingga simbol-simbol terminal.
• Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak
hingga kalimat.
• Simbol-simbol berikut adalah simbol terminal :





huruf kecil, misalnya : a, b, c
simbol operator, misalnya : +, /, dan *
simbol tanda baca, misalnya : (, ), dan ;
simbol tanda baca, misalnya : (, ), dan ;
string yang tercetak tebal, misalnya : if, then, dan else.
• Simbol-simbol berikut adalah simbol non terminal /Variabel :
 huruf besar, misalnya : A, B, C
 huruf S sebagai simbol awal
 string yang tercetak miring, misalnya : expr
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
KONSEP DASAR (2)
• Huruf yunani melambangkan string yang tersusun atas simbolsimbol terminal atau simbol-simbol non terminal atau campuran
keduanya, misalnya : α,β, dan ε
• Sebuah produksi dilambangkan sebagai α --> β, artinya : dalam
sebuah derivasi dapat dilakukan penggantian simbol α dengan
simbol β.
• Derivasi adalah proses pembentukan sebuah kalimat atau
sentensial. Sebuah derivasi dilambangkan sebagai : α ==> β.
• Sentensial adalah string yang tersusun atas simbol-simbol terminal
atau simbol-simbol non terminal atau campuran keduanya.
• Kalimat adalah string yang tersusun atas simbol-simbol terminal.
Kalimat adalah merupakan sentensial, sebaliknya belum tentu.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
GRAMMAR
• Grammar G didefinisikan sebagai pasangan 4 tuple : Vt , Vn , S, dan P, dan
dituliskan sebagai G(Vt , Vn , S, P), dimana :




Vt : himpunan simbol-simbol terminal (alfabet) = kamus
Vn : himpunan simbol-simbol non terminal
S C V : simbol awal (atau simbol start)
P : himpunan produksi
• Contoh :
1.
G1 : Vt = {I, want, need, You}, Vn = {S,A,B,C}, P = {S --> ABC, A--> I, B--> want |
need, C--> You}
S --> ABC
 IwantYou
 L(G1)={IwantYou,IneedYou}
2.
G2 : VT = {a}, V = {S}, P = {S --> aS | a}
S
--> aS
--> aaS
--> aaa
L(G2) ={an --> n ≥ 1}
L(G2)={a, aa, aaa, aaaa, …}
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
TEORI AUTOMATA MELIPUTI/MENCAKUP
•
•
•
•
•
•
•
•
Teori Bahasa Formal
Regular Expression
Finite Automata
Non Deterministic Finite Automata
Finite Automata dengan Output
Context-free Grammar
Pushdown Automata
Mesin Turing
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
TEORI BAHASA FORMAL
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
– S1 = { a, b, c, d, e ….z ..} S2 = { 0, 1 }
• Symbol : A member of alphabet
• Set : Group of objects
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
TEORI BAHASA FORMAL
• Pembentukan struktur sebuah bahasa diawali dengan
memakai sebuah finite set (himpunan terbatas), dimana unit
fundamentalnya disebut alphabet (S)
• String-string yang boleh ada di dalam sebuah bahasa disebut
word
• Contoh language adalah Bahasa Indonesia. Alphabet yang
biasa dipakai adalah huruf, koma dan titik. Semuanya
dispesifikasi seperti di bawah ini:
S = {a b c d e ... z , . }
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Bila language ini dinamakan KATA-INDONESIA,
dimana semua string adalah word/kata di
dalam kamus, maka definisinya adalah:
KATA-INDONESIA = {semua kata di dalam kamus}
• Contoh sederhana suatu language dengan
alphabet yang ada hanya sebuah huruf, yaitu
huruf x
S={x}
L = { x xx xxx xxxx ... }
• Simbol alphabet tidak harus alphabet huruf
latin, namun dapat berisi apa saja
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Sebuah string dimungkinkan tidak punya alphabet.
String ini disebut empty string atau null string dan
dilambangkan . Perlu diingat  bukan alphabet
dalam language. Contoh:
L = {  x xx xxx xxxx ... }
• Bahasa tanpa word dilambangkan dengan null set 
• Tolong dibedakan antara language tanpa word
dengan word yang mempunyai 
L = { x xx xxx }
LL+{}
L=L+
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Contoh sebuah bahasa dengan non empty string
L1 = { x xx xxx xxxx ... }
Atau dengan cara lain
L1 = { xn for n = 1 2 3 ... }
• Dalam language L1, dapat dilakukan operasi
penggabungan (concatenation) dari word yang ada
menjadi word baru. Contoh word xx dengan word xxx
digabung menjadi word baru xxxxx
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Tidak selalu benar bila dua word digabungkan akan
membentuk sebuah word baru. Contoh:
L2 = { x xxx xxxxx xxxxxxx ... }
= { x ganjil}
= { x 2n+1 for n = 0 1 2 3 }
• xxx dan xxxxx adalah word pada language L2, namun
pengabungannya bukanlah word di dalam L2
• Didefinisikan suatu fungsi length untuk menghitung
jumlah huruf di dalam sebuah word
• length(xxxxxx) = 6
length(7152) = 4
• length() = 0
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Bila diinginkan sebuah language mempunyai null string, maka
jangan lupa untuk memasukannya saat mendefinisikan
language tersebut
L4
= {  x xx xxx xxxx ... }
= { xn for n = 0 1 2 3 }
• Harap dipahami bahwa x0 =  dan bukannya x0 = 1 seperti di
aljabar
• Didefinisikan fungsi reverse. Reverse dari suatu string adalah
string yang sama tetapi tersusun dari belakang, walaupun
string ini bukanlah word dalam bahasa tersebut
reverse(xxx) = xxx
reverse(xxxxx) = xxxxx
reverse(145) = 541
reverse(140) = 041
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Palindrome adalah kata, frase, nomor atau urutan lainnya dari
unit yang dapat dibaca dengan cara yang sama di kedua arah.
• Didefinisikan suatu language yang disebut PALINDROME dari
alphabet
S = { a, b}
PALINDROME = { , dan semua string x sedemikian sehingga
reverse(x) = x }
maka akan diperoleh:
PALINDROME = {  a b aa bb aaa aba bab bbb aaaa abba ... }
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Diketahui alphabet S, diinginkan untuk mendefinisikan
sebuah language dimana tiap string dari huruf yang ada di
dalam S adalah sebuah word, termasuk null string.
• Language ini disebut sebagai closure
• Dapat dinotasikan dengan menambah sebuah asterisk
sesudah nama dari alphabet  S* (Kleene Star).
• Dalam logika matematika dan ilmu komputer, bintang
Kleene (atau operator Kleene atau penutupan Kleene)
merupakan operasi unary, baik di set pada set string atau
simbol-simbol atau karakter. Penerapan bintang Kleene
untuk satu set V ditulis sebagai V*. Hal ini banyak
digunakan untuk ekspresi reguler, yang merupakan konteks
yang diperkenalkan oleh Stephen Kleene menjadi ciri
automata tertentu.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Contoh:
Jika S = { x } maka
S* = L4 = {  x xx xxx ... }
Jika S = { 0 1 } maka
S* = {  0 1 00 01 10 11 000 001 ... }
Jika S = { a b c } maka
S* = {  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 - FTI
JIM MICHAEL WIDI, S.KOM
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 ... }
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
REGULAR EXPRESSION
• Sebuah cara mendefinisikan language yang lebih
tepat dibandingkan dengan menggunakan 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}*
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Kleene Star tidak hanya dapat diaplikasikan untuk set
namun juga langsung ke alphabet. Contoh: x*
• Ekpresi sederhana x* akan dipakai untuk
mengekspresikan pengulangan dari x (bisa juga tidak
sama sekali)
x* =  atau x atau x2 atau x3 atau x4 ...
= xn for n = 0 1 2 3 4 ...
• Jadi x* adalah string dari x yang banyaknya tidak
dinyatakan secara pasti.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Sebuah language L yang didefinisikan dari alphabet S = {a, b}
seperti di bawah ini:
L = { a ab abb abbb abbbb ... }
• Dapat juga didefinisikan dengan kalimat:
L = semua word yang dimulai dengan a dan diikuti oleh
sejumlah b (dan mungkin tanpa b sama sekali)
• Dengan memakai notasi *, dapat dituliskan
L = language (ab*)
• Kleene Star dapat diimplementasikan pada string ab seperti di
bawah ini:
(ab)* =  atau ab atau abab atau ababab . . .
(ab)*  (ab*)
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Contoh Kleene Star lainnya:
• L1 = language (xx*)
• Language L1 di atas berisi sebuah x lalu diikuti dengan
sejumlah x (dimana mungkin saja tanpa x sama sekali)
• L1 dapat dituliskan dengan notasi lain, yaitu notasi +
• x+ berarti sejumlah x dalam jumlah yang selalu positif
(tidak bisa 0, atau tidak bisa )
• Notasi * lebih lazim dipergunakan daripada notasi +
• L1 dapat juga didefinisikan dengan salah satu contoh di
bawah ini:
xx* x+ xx*x* x*xx* x+x* x*x+ x*x*x*xx*
• Ingat bahwa x* bisa saja berarti 
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Contoh:
• Language yang didefinisikan dengan ekspresi
ab*a
• Adalah sebuah himpunan dari string a dan string b
yang paling sedikit berisi dua huruf yang diawali
dengan a dan diakhiri dengan a dan hanya akan berisi b
diantaranya (atau tidak sama sekali)
language(ab*a) = { aa aba abba abbba abbbba ... }
Contoh:
• Ekspresi-ekspresi di bawah ini mendefinisikan language
L2 dengan hasil yang sama
L2 = { xganjil } = x(xx)* = (xx)*x
• Namun ekspresi x*xx* tidak, karena termasuk (xx) x (x)
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Contoh:
Language dengan ekspresi seperti di bawah ini
a*b*
• Berisi semua string dari a dan b sedemikian sehingga
semua a (bila ada) akan berada di depan semua b (bila
ada)
language(a*b*) = {  a b aa ab bb aaa aab abb bbb aaaa ... }
• Perhatikan bahwa ba dan aba tidak termasuk dalam
language ini, juga bahwa jumlah a dan b tidak perlu
sama
• Ada pemanfaatan lain dari tanda tambah +. Ekpresi x +
y berarti salah satu dari x atau y (memilih). Berhatihatilah untuk membedakan antara + dengan +
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Contoh:
• Perhatikan bahasa T yang berasal dari alphabet S = { 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
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Contoh
• Language yang didefinisikan dengan expressi
ab*a
• Adalah sebuah himpunan dari string a dan
string b yang paling sedikit berisi dua huruf
yang diawali dengan a dan diakhiri dengan a
dan hanya akan berisi b diantaraanya (atau
tidak sama sekali)
language(ab*a) = { aa aba abba abbba abbbba . . .}
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Contoh
• Language dengan ekspresi seperti di bawah ini
a*b*
• Berisi semua string dari a dan b sedemikian
sehingga semua a (bila ada) akan berada di depan
semua b (bila ada)
language(a*b*) = { a b aa ab bb aaa aab abb bbb aaaa ...}
• Perhatikan bahwa ba dan aba tidak termasuk
dalam language ini, juga bahwa jumlah a dan b
tidak perlu sama
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Contoh
• Ekspresi-ekspresi di bawah ini mendefinisikan language L2 dengan hasil yang sama
L2
=
{ xganjil}
=
x(xx)*
=
(xx)*x
• Namun ekspresi x*xx* tidak, karena termasuk (xx) x (x).
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.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Contoh
• Sebuah language L akan berisi semua string dari a
dan b dengan panjang selalu tiga.
• L = { aaa aab aba abb baa bab bba bbb }
• Huruf pertama dari tiap word di dalam L adalah a
atau b. Huruf kedua dari tiap word di dalam L
adalah a atau b. Huruf ketiga tiap word di dalam L
adalah a atau b. Jadi L dapat didefinisikan:
L = language ((a + b)(a + b)(a + b))
Atau dengan lebih singkat
L = language ((a + b)3)
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
LATIHAN
Perhatikan beberapa definisi di bawah ini yang berasal dari alphabet = { a b }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
(a + b)7
(a + b)*
a(a + b)*
(a + b)*a(a + b)*
(a + b)*a(a + b)*a(a
b*ab*a(a + b)*
(a + b)*ab*ab*
b*a(a + b)*ab*
b*ab*ab*
(a + b)*a(a + b)*b(a
(a + b)*a(a + b)*b(a
bb*aa*
(a + b)*a(a + b)*b(a
UNIVERSITAS BUDI LUHUR - FTI
+ b)*
+ b)*
+ b)* + (a + b)*b(a + b)*a(a + b)*
+ b)* + bb*aa*
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
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 S 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.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
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.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
CONTOH OTOMATA HINGGA
Push
Start
Off
On
Push
Start
UNIVERSITAS BUDI LUHUR - FTI
t
t
h
th
e
the
n
then
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
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
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Perhatikan apa yang akan terjadi bila string aaa
diumpankan ke otomata hingga tersebut
• Penelusuran akan dimulai dari start state:
Huruf pertama adalah a, sesuai aturan-1 akan menuju state y
Huruf kedua adalah a, sesuai aturan-3 akan menuju state x
Huruf ketiga adalah a, sesuai aturan-1 akan menuju state y
• String sudah diumpankan semua, tapi tidak
mencapai final state
• Jadi, string aaa bukanlah termasuk di dalam
bahasa yang didefinisikan oleh otomata hingga.
a
Start
X
a
a, b
Y
b
Z+
b
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Contoh lain, bila string abba diumpankan ke
FA tersebut .
• Hasilnya, perjalanan mencapai pada state z
(final state) .
• Jadi, string abba termasuk word dalam bahasa
yang didefinisikan oleh otomata tersebut
tersebut
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Tidak sulit menerka word apa saja yang diterima
oleh FA tersebut, yaitu stringnya harus berisi
minimal sebuah b agar mencapai state z.
• Dari transition rule di atas, dapat dibuatkan
sebuah transition table seperti di bawah ini:
a
b
Start x
y
z
y
x
z
Final Z
z
z
• Otomata Hingga dapat dianggap sebagai suatu
mesin. Ada suatu pergerakkan, perpindahan dari
sebuah state ke state lain, karena adanya sebuah
input
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Otomata Hingga dapat juga digambarkan dalam
bentuk grafis yang disebut bentuk transition
diagram.
• Tanda - untuk start state dan + untuk final state .
• Bentuk lain, start state memakai panah dan final
state memakai lingkaran ganda.
a
a
X-
X
Y
a
a
b
b
b
b
Z+
a
UNIVERSITAS BUDI LUHUR - FTI
Y
Z
b
a
b
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
a
-
a
+
b
a, b
-
+
a, b
b
• 2 busur atau lebih yang berasal dari state yang sama
dan menuju ke state yang sama pula dapat disatukan
seperti gambar di atas.
• Sekilas terkesan bahwa FA di atas dapat menerima
string dalam bentuk apapun.
• Namun, bila inputnya adalah null string (  ), maka
tidak akan terjadi perpindahan state.
• Jadi language yang diterima oleh mesin di atas adalah:
( a + b ) ( a + b )* = ( a + b )+
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Ada kemungkinan sebuah Otomata Hingga
tidak akan menerima language apapun
a, b
-
UNIVERSITAS BUDI LUHUR - FTI
a, b
a, b
+
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Perhatikan Otomata Hingga ini
2
a
1-
b
a
4+
a
b
a, b
b
3
• Apa yang terjadi bila diberi input string ababa
dan babbb (bagaimana pergerakkannya)?
Transisi bila diberi input string ababa
δ(1,a) = (2)
δ(2,b) = (3)
δ(3,a) = (2)
δ(2,b) = (3)
δ(3,a) = (2)
UNIVERSITAS BUDI LUHUR - FTI
Transisi bila diberi input string babbb
δ(1,b) = (3)
δ(3,a) = (2)
δ(2,b) = (3)
δ(3,b) = (4)
δ(4,b) = (4)
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
NON-DETERMINISTIC FINITE AUTOMATA
• Pada Non-Deterministic Finite Automata (NFA), dari
suatu state bisa terdapat 0, 1 atau lebih busur keluar
(transisi) berlabel simbol input yang sama.
• Pada setiap pasangan state-input, dapat memiliki 0
(nol) atau lebih pilihan untuk state berikutnya.
a, b
a
Transition Table
a
X
Y
a
UNIVERSITAS BUDI LUHUR - FTI
b
Start x {x,y} {y}
Final y
{y}
Ø
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Contoh berikut diperlihatkan sebuah NFA yang
merupakan gabungan dari 2 buah FA, yaitu dengan cara
menumpuk start state.
• Dua FA berikut ini (FA1 dan FA2) masing-masing
menerima language yang didefinisikan oleh regular
expression r1 dan r2.
a
a
+
a

b
b
a
b
a
a

b
a
b

b
a, b
b
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
a, b
TEORI BAHASA DAN OTOMATA (3 SKS)
• NFA yang akan dibuat untuk bisa mendefinisikan
kedua language yang diterima oleh masingmasing FA terlihat seperti berikut ini:
a
a
a
b
a, b
b
a
+
a
a
a
b
b
a, b
UNIVERSITAS BUDI LUHUR - FTI
+
b
JIM MICHAEL WIDI, S.KOM
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
a
x
y
a
b
a
UNIVERSITAS BUDI LUHUR - FTI
b
z
b
Start X
Y
a
Y
X
b
Z
Z
Final Z
Z
Z
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
KONVERSI DARI NFA KE DFA
• Mulai dari state awal NFA, kemudian mengikuti transisinya
untuk membentuk state-state baru, untuk setiap state
yang terbentuk diikuti lagi transisinya sampai tercover
semua
• Jika state baru yang terbentuk sama cukup ditulis sekali
saja
• Jika state baru yang terbentuk adalah state Ø, maka state
Ø tersebut harus tetap digambarkan sebagai sebuah state
• Semua state pada DFA yang mengandung final state NFA
akan menjadi final state
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
CONTOH
a
a
{x,y}
{y}
a, b
x
Start x
Final y
y
a
• ({x},a) = ({x,y})
• ({x},b) = ({y})
• ({x,y},a) = ({x,y})
• ({x,y},b) = ({y})
• ({y},a) = ({y})
• ({y},b) = ({Ø})
• ({Ø},a) = ({Ø})
• ({Ø},b) = ({Ø})
UNIVERSITAS BUDI LUHUR - FTI
b
{y}
Ø
a
a
x
x,y
a, b
b
b
Ø
y
b
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
CONTOH
b
a, b
p
q
a
a, b
b
b
r
s
a
a
{q,s}
{r}
b
{q}
{q,r}
r
{s}
{p}
Final s
Ø
{p}
Start p
Final q
UNIVERSITAS BUDI LUHUR - FTI
• ({p},a)
• ({p},b)
• ({q,s},a)
• ({q,s},b)
• ({q},a)
• ({q},b)
• ({r},a)
• ({r},b)
• ({p,q,r},a)
• ({p,q,r},b)
• ({q,r},a)
• ({q,r},b)
• ({s},a)
• ({s},b)
• ({q,r,s},a)
• ({q,r,s},b)
• ({r,s},a)
• ({r,s},b)
• ({Ø },a)
• ({Ø },b)
= ({q,s})
= ({q})
= ({r})
= ({p,q,r})
= ({r})
= ({q,r})
= ({s})
= ({p})
= ({q,r,s})
= ({p,q,r})
= ({r,s})
= ({p,q,r})
= ({Ø})
= ({p})
= ({r,s})
= ({p,q,r})
= ({s})
= ({p})
= ({Ø})
= ({Ø})
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
CONTOH
a
q,s
p
b
b
a
q
b
a
b
r
b
q,r
b
a
Ø
a
a
r,s
s
a
a,b
b
a
a
q,r,s
UNIVERSITAS BUDI LUHUR - FTI
p,q,r
b
b
• ({p},a)
• ({p},b)
• ({q,s},a)
• ({q,s},b)
• ({q},a)
• ({q},b)
• ({r},a)
• ({r},b)
• ({p,q,r},a)
• ({p,q,r},b)
• ({q,r},a)
• ({q,r},b)
• ({s},a)
• ({s},b)
• ({q,r,s},a)
• ({q,r,s},b)
• ({r,s},a)
• ({r,s},b)
• ({Ø },a)
• ({Ø },b)
= ({q,s})
= ({q})
= ({r})
= ({p,q,r})
= ({r})
= ({q,r})
= ({s})
= ({p})
= ({q,r,s})
= ({p,q,r})
= ({r,s})
= ({p,q,r})
= ({Ø})
= ({p})
= ({r,s})
= ({p,q,r})
= ({s})
= ({p})
= ({Ø})
= ({Ø})
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
Start P
Q
R
Final S
0
1
{P,Q}
{R}
{S}
{S}
{P}
{R}
Ø
{S}
UNIVERSITAS BUDI LUHUR - FTI
• ({P},0}
• ({P},1)
• ({P,Q},0)
• ({P,Q},1)
• ({P,Q,R},0)
• ({P,Q,R},1)
• ({P,R},0)
• ({P,R},1)
• ({P,Q,R,S},0)
• ({P,Q,R,S},1)
• ({P,Q,S},0)
• ({P,Q,S},1)
• ({P,R,S),0)
• ({P,R,S),1)
• ({P,S},0)
• ({P,S},1)
= ({P,Q})
= ({P})
= ({P,Q,R})
= ({P,R})
= ({P,Q,R,S})
= ({P,R})
= ({P,Q,S})
= ({P})
= ({P,Q,R,S})
= ({P,R,S})
= ({P,Q,R,S})
= ({P,R,S})
= ({P,Q,S})
= ({P,S})
= ({P,Q,S})
= ({P,S})
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
CONTOH
P
0
P,Q
1
1
P,Q,R
1
0
0
P,R
0
P,Q,S
P,Q,R,S
1
0
0
1
0
1
P,S
1
UNIVERSITAS BUDI LUHUR - FTI
1
P,R,S
• ({P},0}
• ({P},1)
• ({P,Q},0)
• ({P,Q},1)
• ({P,Q,R},0)
• ({P,Q,R},1)
• ({P,R},0)
• ({P,R},1)
0 • ({P,Q,R,S},0)
• ({P,Q,R,S},1)
• ({P,Q,S},0)
• ({P,Q,S},1)
• ({P,R,S),0)
• ({P,R,S),1)
• ({P,S},0)
• ({P,S},1)
= ({P,Q})
= ({P})
= ({P,Q,R})
= ({P,R})
= ({P,Q,R,S})
= ({P,R})
= ({P,Q,S})
= ({P})
= ({P,Q,R,S})
= ({P,R,S})
= ({P,Q,R,S})
= ({P,R,S})
= ({P,Q,S})
= ({P,S})
= ({P,Q,S})
= ({P,S})
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
CONTOH
0
0
0
B
D
1
G
1
A
0, 1
1
0, 1
C
1
UNIVERSITAS BUDI LUHUR - FTI
E
0
F
0, 1
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
FINITE AUTOMATA DENGAN OUTPUT (MESIN
MOORE)
• Sebuah finite set dari state q0, q1, q2, q3, . . . Dimana q0 adalahstart
state
• Alphabet S berisi huruf-huruf yang akan membentuk input string.
S = {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
• Tabel Keluaran yang memperlihatkan karakter apa dari T yang akan
dihasilkan untuk tiap state yang tercapai
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Mesin Moore tidak mendefinisikan language dari
word yang diterima, karena tiap input yang
diumpankan akan menghasilkan suatu keluaran.
• Tidak mempunyai Final State.
• Proses akan berhenti jika huruf input yang
terakhir telah selesai dibaca.
• Tampilan Mesin Moore mirip dengan sebuah FA
• Perbedaannya terletak pada state. Sebuah state
akan mempunyai nama dan karakter apa yang
dihasilkan dengan pemisahnya garis miring ( / ).
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Alphabet input
• Karakter output
• Nama state
S = {a, b}
T = {0, 1}
q0, q1, q2, q3
Transition Table
State Awal
Output Table
State Baru
Sesudah Input a Sesudah Input b
Karakter yang
diberikan
q0
q1
q3
1
q1
q3
q1
0
q2
q0
q3
0
q3
q3
q2
1
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Bentuk grafis dari Mesin Moore tersebut
adalah:
b
a
q0/1
q1/0
b
a
a
b
q2/0
q3/1
a
b
• Contoh lain:
b
a
a
q0/0
a
q1/0
q2/0
q3/1
a
b
b
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
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 S berisi huruf-huruf yang akan membentuk input string.
S = {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.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Jumlah karakter yang dihasilkan akan sama
banyak dengan jumlah huruf dari input.
• Mesin ini tidak mendefinisikan language yang
diterima, sehingga tidak memiliki final state
• Perbedaan dengan mesin Moore, mesin Mealy
tidak menghasilkan apapun pada saat awal.
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Contoh Mesin Mealy
• Apa yang dihasilkan Mesin Mealy ini bila diberi
inputan aaabb?
q1
b/1
a/0
a/1
q0
b/0
q2
a/0
b/1
b/1
q3
a/1
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Bila terdapat 2 edge/busur yang menuju ke
sebuah state, maka kedua edge/busur itu dapat
digabungkan.
a/x
q4
q7
q4
a/x, b/x
q7
b/x
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM
TEORI BAHASA DAN OTOMATA (3 SKS)
• Contoh lain, mesin Mealy di bawah ini dapat
memperlihatkan adanya huruf ganda yang terdapat
pada string ababbaab, yaitu dengan menghasilkan
00001010.
a/1
a/0
start
b/0
a/0
b/0
b/1
UNIVERSITAS BUDI LUHUR - FTI
JIM MICHAEL WIDI, S.KOM