You are on page 1of 87

TEORI BAHASA DAN OTOMATA (3 SKS)

COPY RIGHT TO : IFFANO


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
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
PENGERTIAN PROGRAM SEBAGAI
OBYEK MATEMATIKA
Diberlakukannya alasan (reason), logika
(logic) dan aturan (rule) untuk kombinasi
Apakah program mengoperasikan bilangan,
teks atau apapun
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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)
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
KONSEP DASAR (2)
Huruf yunani melambangkan string yang tersusun atas
simbol-simbol 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.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
DEFINISI GRAMMAR
Suatu aturan tertentu yang dapat diterima
(accept) yang dapat dipakai untuk
membangkitkan atau memproduksi suatu
kalimat
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
GRAMMAR
Grammar G didefinisikan sebagai pasangan 4 tuple : V
t
, V
n
, S, dan
P, dan dituliskan sebagai G(V
t
, V
n
, S, P), dimana :
V
t
: himpunan simbol-simbol terminal (alfabet) = kamus
V
n
: himpunan simbol-simbol non terminal
S C V : simbol awal (atau simbol start)
P : himpunan produksi
Contoh :
1. G1 : VT = {I, want, need, You}, V = {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, }

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
JENIS-JENIS GRAMMAR
Kelas Bahasa Mesin pengenal
Regular language Finite State Automata
Context free language Push Down Automata
Context sensitive language Linear Bounded Automata
Unrestricted language Turing Machine


TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CIRI-CIRI GRAMMAR
Regular Language (bahasa formal)
Ruas Kiri Ruas kanan
o e N s 1 non terminal (paling
kiri/kanan)
Contoh :
P abR
Q abc
R Scac
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CIRI-CIRI GRAMMAR
Context free Language (konteks bebas)
Ruas Kiri Ruas kanan
o e N bebas

Contoh :
P aQb
Q abPRS
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CIRI-CIRI GRAMMAR
Context Sensitive (Konteks sensitif)
Ruas Kiri Ruas kanan
o e (TN)
+
|o| s |||

Contoh :
aD Da
AD aCD
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CIRI-CIRI GRAMMAR
Unrestricted (Tidak dibatasi)
Ruas Kiri Ruas kanan
o e (TN)
+
bebas

Contoh :
CB DB
ADc c
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CONTOH ANALISA PENENTUAN
GRAMMAR
Grammar G dengan Q = {S aB, B bB, B b}.
Ruas kiri semua produksinya terdiri dari sebuah V maka
G kemungkinan tipe CFG atau RG. Selanjutnya karena
semua ruas kanannya terdiri dari sebuah V atau string V
V maka G adalah RG.
Grammar G dengan Q = {S Ba, B Bb, B b}.
Ruas kiri semua produksinya terdiri dari sebuah V maka
G kemungkinan tipe CFG atau RG. Selanjutnya karena
semua ruas kanannya terdiri dari sebuah V atau string V
V maka G adalah RG.

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
TERMASUK GRAMMAR
TIPE?
Grammar G dengan Q = {S Ba, B bB, B b}
Grammar G dengan Q = {S aAb, B aB}
Grammar G dengan Q = {S aA, S aB, aAb
aBCb}
Grammar G dengan Q = {aS ab, SAc bc}
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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
E1 = { a, b, c, d, e .z ..} E2 = { 0, 1 }
Symbol : A member of alphabet
Set : Group of objects

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
TEORI BAHASA FORMAL
Pembentukan struktur sebuah bahasa diawali dengan
memakai sebuah finite set (himpunan terbatas),
dimana unit fundamentalnya disebut alphabet (E)
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:
E = {a b c d e ... z , . }

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Bila language ini dinamakan KATA-
INDONESIA, dimana semua string adalah
word/kata di dalam kamus, maka
definisinya adalah:

Contoh sederhana suatu language dengan
alphabet yang ada hanya sebuah huruf,
yaitu huruf x

Simbol alphabet tidak harus alphabet
huruf latin, namun dapat berisi apa saja
KATA-INDONESIA = {semua kata di dalam kamus}
E = { x } L = { x xx xxx xxxx ... }

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Sebuah string dimungkinkan tidak punya
alphabet. String ini disebut empty string atau
null string dan dilambangkan A. Perlu
diingat A bukan alphabet dalam language.
Contoh:

Bahasa tanpa word dilambangkan dengan null
set u
Tolong dibedakan antara language tanpa word
dengan word yang mempunyai A
L = { A x xx xxx xxxx ... }
L = { x xx xxx }
L = L + { A }
L = L + u
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh sebuah bahasa dengan non empty
string

Atau dengan cara lain

Dalam language L
1
, dapat dilakukan operasi
penggabungan (concatenation) dari word yang
ada menjadi word baru. Contoh word xx dengan
word xxx digabung menjadi word baru xxxxx
L
1
= { x xx xxx xxxx ... }
L
1
= { x
n
for n = 1 2 3 ... }
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Tidak selalu benar bila dua word digabungkan
akan membentuk sebuah word baru. Contoh:



xxx dan xxxxx adalah word pada language L
2
,
namun pengabungannya bukanlah word di dalam L
2

Didefinisikan suatu fungsi length untuk menghitung
jumlah huruf di dalam sebuah word
length(xxxxxx) = 6
length(7152) = 4
length(A) = 0
L
2
= { x xxx xxxxx xxxxxxx ... }
= { x
ganjil
}
= { x
2n+1
for n = 0 1 2 3 }
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Bila diinginkan sebuah language mempunyai null string,
maka jangan lupa untuk memasukannya saat
mendefinisikan language tersebut


Harap dipahami bahwa x
0
= A dan bukannya x
0
= 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
L
4
= { A x xx xxx xxxx ... }
= { x
n
for n = 0 1 2 3 }
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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
E = { a, b}
PALINDROME = { A, dan semua string x
sedemikian sehingga reverse(x) = x }
maka akan diperoleh:
PALINDROME = { A a b aa bb aaa aba bab bbb aaaa
abba ... }



TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Diketahui alphabet E, diinginkan untuk mendefinisikan
sebuah language dimana tiap string dari huruf yang ada
di dalam E adalah sebuah word, termasuk null string.
Language ini disebut sebagai closure
Dapat dinotasikan dengan menambah sebuah asterisk
sesudah nama dari alphabet E* (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.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh:
Jika E = { x } maka
E* = L
4
= { A x xx xxx ... }

Jika E = { 0 1 } maka
E* = { A 0 1 00 01 10 11 000 001 ... }

Jika E = { a b c } maka
E* = { A 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 .
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh:
Jika S = { aa, b} maka
S* = { A dan word bentukan yang berasal dari aa dan b }
S* = { A dan semua string bentukan dari a dan b dengan a yang
selalu berderet dalam jumlah yang genap)
= { A 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* = { A dan word bentukan yang berasal dari a dan ab }
S* = { A dan semua string bentukan dari a dan b kecuali yang
dimulai dengan b dan yang mengandung dua b berdempetan }
= { A a aa ab aaa aab aba aaaa aaab aaba abaa abab aaaaa
aaaab aaaba aabaa aabab abaaa abaab ... }
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
REGULAR EXPRESSION
Sebuah cara mendefinisikan language yang
lebih tepat dibandingkan dengan meng-
gunakan cara ellipsis (diakhiri dengan ...)
Language ini disebut regular language
Perhatikan:
L
4
= { A x xx xxx xxxx ... }
Dengan memanfaatkan closure, bila S = { x }
maka L
4
= S*
Dapat juga ditulis sebagai L
4
= {x}*
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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* = A atau x atau x
2
atau x
3
atau x
4
...
= x
n
for n = 0 1 2 3 4 ...
Jadi x* adalah string dari x yang banyaknya
tidak dinyatakan secara pasti.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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)* = A atau ab atau abab atau ababab . . .
(ab)* = (ab*)
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh Kleene Star lainnya:
L
1
= language (xx
*
)
Language L
1
di atas berisi sebuah x lalu diikuti dengan
sejumlah x (dimana mungkin saja tanpa x sama sekali)
L
1
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
+

L
1
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 A

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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 L
2
dengan hasil yang sama
L
2
= { x
ganjil
} = x(xx)* = (xx)*x

Namun ekspresi x*xx* tidak, karena termasuk (xx)
x (x)

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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 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). Berhati-
hatilah untuk membedakan antara + dengan
+


TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh:
Perhatikan bahasa T yang berasal dari alphabet E = { 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

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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 . . .}

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh
Ekspresi-ekspresi di bawah ini mendefinisikan language L
2
dengan hasil yang
sama
L
2
= { x
ganjil
}
= 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.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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
)

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
LATIHAN
Perhatikan beberapa definisi di bawah ini yang berasal dari alphabet =
{ a b }
1.(a + b)
7

2.(a + b)
*

3.a(a + b)
*

4.(a + b)
*
a(a + b)
*

5.(a + b)
*
a(a + b)
*
a(a + b)
*

6.b
*
ab
*
a(a + b)
*

7.(a + b)
*
ab
*
ab
*

8.b
*
a(a + b)
*
ab
*

9.b
*
ab
*
ab
*

10.(a + b)
*
a(a + b)
*
b(a + b)
*

11.(a + b)
*
a(a + b)
*
b(a + b)
*
+ (a + b)
*
b(a + b)
*
a(a + b)
*

12.bb
*
aa
*

13.(a + b)
*
a(a + b)
*
b(a + b)
*
+ bb
*
aa
*

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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 E 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.




TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CONTOH OTOMATA HINGGA





Off On
Start
Push
Push
Start
t th the then
t h e n
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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.





X Y Z+
Start a
b
a
b
a, b
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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:



Otomata Hingga dapat dianggap sebagai suatu
mesin. Ada suatu pergerakkan, perpindahan dari
sebuah state ke state lain, karena adanya sebuah
input

a b
Start x y z
y x z
Final Z z z
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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.


X Y
Z
a b
a
b
a
b
X- Y
a b
a
b
a
b
Z+
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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 ( A ), maka
tidak akan terjadi perpindahan state.
Jadi language yang diterima oleh mesin di atas
adalah:
( a + b ) ( a + b )* = ( a + b )
+





- +
a
b
a
b
- +
a, b
a, b
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Ada kemungkinan sebuah Otomata Hingga
tidak akan menerima language apapun

- +
a, b
a, b a, b
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Perhatikan Otomata Hingga ini



Apa yang terjadi bila diberi input string ababa
dan babbb (bagaimana pergerakkannya)?
2
1- 4+
3
a
a
a
b
b b
a, b
Transisi bila diberi input string ababa
(1,a) = (2)
(2,b) = (3)
(3,a) = (2)
(2,b) = (3)
(3,a) = (2)
Transisi bila diberi input string babbb
(1,b) = (3)
(3,a) = (2)
(2,b) = (3)
(3,b) = (4)
(4,b) = (4)
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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.

X Y
a, b
a
a
a b
Start x
{x,y}
{y}
Final y {y}
Transition Table
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh berikut diperlihatkan sebuah NFA yang
merupakan gabungan dari 2 buah FA, yaitu
dengan cara menumpuk start state.
Dua FA berikut ini (FA
1
dan FA
2
) masing-masing
menerima language yang didefinisikan oleh
regular expression r
1
dan r
2
.


+
a
a
a
a
b
b
b
b
a, b
b
a
a
b
a
b
a, b
+

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
NFA yang akan dibuat untuk bisa mendefinisikan
kedua language yang diterima oleh masing-masing
FA terlihat seperti berikut ini:

+8
7
6
-1
3
+5
2 4
a, b
a
a
a
a
a
a
a
b
b
b
b
b
a, b
1. abbab
2. baabb
3. babbaaa
4. aababba
5. aaabbabbaaa
6. aabbbaaabaa
b
b
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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
b
b
a
a
b
x y
z
a b
Start X Y Z
Y X Z
Final Z Z Z
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CONTOH
x
y
a, b
a
a
a b
Start x {x,y} {y}
Final y {y}
({x},a) = ({x,y})
({x},b) = ({y})
({x,y},a) = ({x,y})
({x,y},b) = ({y})
({y},a) = ({y})
({y},b) = ({})
({},a) = ({})
({},b) = ({})
x x,y
a
b
a
y
b
a, b
b

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CONTOH
b
p q
a, b
a
b
s
a, b
b
r
a
a b
Start p {q,s} {q}
Final q {r} {q,r}
r {s} {p}
Final s {p}
({p},a) = ({q,s})
({p},b) = ({q})
({q,s},a) = ({r})
({q,s},b) = ({p,q,r})
({q},a) = ({r})
({q},b) = ({q,r})
({r},a) = ({s})
({r},b) = ({p})
({p,q,r},a) = ({q,r,s})
({p,q,r},b) = ({p,q,r})
({q,r},a) = ({r,s})
({q,r},b) = ({p,q,r})
({s},a) = ({})
({s},b) = ({p})
({q,r,s},a) = ({r,s})
({q,r,s},b) = ({p,q,r})
({r,s},a) = ({s})
({r,s},b) = ({p})
({ },a) = ({})
({ },b) = ({})
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CONTOH
b
p
q,s
b
r
a
q
b
a
a
b
p,q,r
a
q,r
s
b
q,r,s
a
b
r,s
a
b
a
b
a
b
a,b

a
({p},a) = ({q,s})
({p},b) = ({q})
({q,s},a) = ({r})
({q,s},b) = ({p,q,r})
({q},a) = ({r})
({q},b) = ({q,r})
({r},a) = ({s})
({r},b) = ({p})
({p,q,r},a) = ({q,r,s})
({p,q,r},b) = ({p,q,r})
({q,r},a) = ({r,s})
({q,r},b) = ({p,q,r})
({s},a) = ({})
({s},b) = ({p})
({q,r,s},a) = ({r,s})
({q,r,s},b) = ({p,q,r})
({r,s},a) = ({s})
({r,s},b) = ({p})
({ },a) = ({})
({ },b) = ({})
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
0 1
Start P {P,Q} {P}
Q {R} {R}
R {S}
Final S {S} {S}
({P},0} = ({P,Q})
({P},1) = ({P})
({P,Q},0) = ({P,Q,R})
({P,Q},1) = ({P,R})
({P,Q,R},0) = ({P,Q,R,S})
({P,Q,R},1) = ({P,R})
({P,R},0) = ({P,Q,S})
({P,R},1) = ({P})
({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})
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CONTOH
P P,Q
0
P,Q,R
0
P,R
1
0
1
P,Q,R,S P,Q,S
0
P,R,S
0
1
0
1
0
P,S
1
0
1
1
1
({P},0} = ({P,Q})
({P},1) = ({P})
({P,Q},0) = ({P,Q,R})
({P,Q},1) = ({P,R})
({P,Q,R},0) = ({P,Q,R,S})
({P,Q,R},1) = ({P,R})
({P,R},0) = ({P,Q,S})
({P,R},1) = ({P})
({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})
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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 E 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 A atau c)

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Perhatikan Transition Graph di atas
String (abb)(A)(aa)(b) akan diterima oleh TG di
atas
String abba, abbaaabba dan b adalah 3 dari
beberapa string yang juga termasuk diterima oleh
TG di atas
Sebuah edge atau busur antara state 2 dan state 3
berlabel A berarti dapat berpindah dari state 2 ke
state 3 tanpa harus melakukan pembacaan terhadap
input
TG juga memungkinkan dibuat dengan lebih dari
sebuah edge/busur berlabel A
1 - 2 3 4+
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
TG juga memungkinkan dibuat dengan lebih
dari sebuah edge/busur berlabel A.
1
2
+
3

Ataupun mempunyai lebih dari sebuah start state.
1-
2-
+
3-
Perlu disadari bahwa sebuah FA juga sebuah TG, namun tidak
sebaliknya
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Lihat TG di bawah ini:

Gambar di atas adalah sebuah TG yang tidak menerima string
apapun termasuk juga A, karena tidak adanya final state
Lihat mesin di bawah ini

Hanya menerima string A. String apapun tidak dapat mencapai final
state, karena tidaknya edge/busur yang menuju ke final state
Perhatikan TG di bawah ini
+
Mesin di atas akan menerima semua word yang diakhiri dengan
huruf b. Reguler expression untuk language ini adalah (a + b)* b
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Perhatikan TG di bawah ini
Mesin di atas hanya menerima word A, baa, dan abba
Perhatikan TG di bawah ini
TG ini menerima word yang huruf awal dan akhirnya berbeda


+


+
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
FINITE AUTOMATA DENGAN OUTPUT
(MESIN MOORE)
Sebuah finite set dari state q
0
, q
1
, q
2
, q
3
, . . . Dimana q0
adalahstart state
Alphabet E berisi huruf-huruf yang akan membentuk input
string. E = {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
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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 ( / ).
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Alphabet input E = {a, b}
Karakter output T = {0, 1}
Nama state q
0
, q
1
, q
2
, q
3

Transition Table Output Table
State Awal
State Baru
Karakter yang
diberikan
Sesudah Input a Sesudah Input b
q0 q1 q3 1
q1 q3 q1 0
q2 q0 q3 0
q3 q3 q2 1
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Bentuk grafis dari Mesin Moore tersebut
adalah:

q
0
/1 q
1
/0
q
2
/0 q
3
/1
a
a
a
b
a
b
b
b
Contoh lain:
q
0
/0 q
1
/0 q
2
/0 q
3
/1
a
a
a
a
b
b
b
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
FINITE AUTOMATA DENGAN OUTPUT
(MESIN MEALY)
Sebuah finite set dari state q
0
, q
1
, q
2
, q
3
, . . . Dimana q0
adalah start state
Alphabet E berisi huruf-huruf yang akan membentuk input
string. E = {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.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
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.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh Mesin Mealy
Apa yang dihasilkan Mesin Mealy ini bila
diberi inputan aaabb?

a/0
q
1

q
2
q
0

q
3

b/1
b/1
a/0 b/0
b/1
a/1
a/1
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Bila terdapat 2 edge/busur yang menuju ke
sebuah state, maka kedua edge/busur itu
dapat digabungkan.

q
4
q
7

b/x
a/x

q
4
q
7

a/x, b/x
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh lain, mesin Mealy di bawah ini dapat
memperlihatkan adanya huruf ganda yang
terdapat pada string ababbaab, yaitu dengan
menghasilkan 00001010.
start
a/0
a/0
b/0
a/1
b/0
b/1
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
CONTEXT-FREE GRAMMER (CFG)
Definisi:
Sebuah alphabet E dari huruf-huruf yang disebut terminal,
dimana daripadanya akan dibentuk string yang merupakan
word
Himpunan dari simbol-simbol yang disebut nontermin al,
dimana satu dari antaranya adalah S yang berarti mulai
Finite set dari production dalam bentuk:
sebuah nonterminal finite string dari terminal dan atau
nonterminal
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Dimana string dari terminal dan atau
nonterminal dapat berisi:
Terminal saja
Nonterminal saja
Kombinasi terminal dan nonterminal
Empty string
Harus ada minimal sebuah nonterminal S
terletak disebelah kiri
Agar tidak terjadi kekacauan antara terminal
dan nonterminal, maka selalu dipakai huruf
kecil untuk terminal dan huruf kapital untuk
nonterminal
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh
Terminal adalah a
Nonterminal adalah S
Aturan Produksi
1. Prod 1 S a S
2. Prod 2 S A
Bila Prod 1 diaplikasikan sebanyak 6 kali, kemudian Prod 2,
maka akan diperoleh:
S => aS S => aaaaaS
S => aaS S => aaaaaaS
S => aaaS S => aaaaaa
S => aaaaS
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Contoh:
Terminal adalah a & b
Nonterminal adalah S
Aturan Produksinya:
Prod 1 S a S
Prod 2 S b S
Prod 3 S a
Prod 4 S b
Dari bahasa ini, dapat dihasilkan string baab dengan cara:
S => b S (Prod 2)
=> b a S (Prod 1)
=> b a a S (Prod 1)
=> b a a b (Prod 4)
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
PENYEDERHANAAN CONTEXT-FREE
GRAMMER
Tujuannya:
Untuk melakukan pembatasan sehingga tidak
menghasilkan pohon penurunan yang memiliki
kerumitan yang tak perlu atau aturan produksi
yang tidak berarti.
Ada 3 langkah penyederhanaan:
Penghilangan Produksi Useless
Penghilangan Produksi Unit
Penghilangan Produksi Empty
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Penghilangan Produksi Useless
Definisi Produksi Useless:
Produksi yang memuat simbol variabel yang tidak memiliki penurunan yang
menghasilkan terminal
Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari
simbol awal.
Contoh:
S aSa | Abd | Bde
A Ada
B BBB | a
Simbol variabel A tidak memiliki penurunan yang menuju terminal, sehingga
bisa dihilangkan
Akibatnya, aturan S Abd tidak memiliki penurunan, sehingga bisa
dihilangkan juga.
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Penghilangan Produksi Useless

Sehingga didapat
S aSa | Bde
B BBB | e

TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Penghilangan Produksi Unit
Definisi Produksi Unit:
Produksi dimana ruas kiri dan kanan aturan produksi hanya berupa 1 simbol
variabel, misalnya A B
Penyederhaan ini dilakukan dengan melakukan penggantian aturan produksi
unit.
Contoh:
S Sb
S C
C D
C ef
D dd
Pergantian yang dilakukan adalah:
C D menjadi C dd
S C menjadi S dd | ef
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Penghilangan Produksi Unit

Sehingga didapat
S Sb
S dd | ef
C dd
C ef
D dd
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
Penghilangan Produksi Empty
Definisi Produksi Empty:
Produksi yang dapat menghasilkan Empty

Contoh
S bcAd
A c
Pada kasus ini, simbol variabel A dapat
menuju empty dan hanya satu penurunan
dari simbol variabel A, maka simbol variabel
A dapat ditiadakan
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
TUGAS KULIAH
1. Misal terdapat bahasa S* dengan S = { a, b}
terdapat berapa banyak kata dalam bahasa di atas yang memiliki :
a. Length(2)
b. Length(3)
c. Length(n)

2. Misal terdapat bahasa S* dengan S = {a, ab, ba}
a. apakah string (abbba) adalah anggota bahasa di atas?
b. Adakah cara lain untuk menjelaskan bahasa di atas (yang pasti bukan bahasa
dengan string yang tidak mengandung bbb)?

3. Misalkan terdapat sebuah himpunan string S = { a, bb, bab, abaab }
a. Apakah abbabaabab dan abaabbabbaabb terdapat dalam S* ?
b. Adakah string pada S* yang memiliki karakter b berjumlah ganjil ?

4. a. Misal S = {ab, bb} dan T = {ab, bb, bbbb}. Tunjukkan bahwa S* = T*
b. Misal S = {ab, bb} dan T = {ab, bb, bbb}. Tunjukkan bahwa S* = T*,
tetapi S* c T*
TEORI BAHASA DAN OTOMATA (3 SKS)
COPY RIGHT TO : IFFANO
TUGAS KULIAH
5. Rancang Mesin FA agar dapat mengenali suatu bilangan Genap dan Ganjil
6. Selesaikan Soal No. 5 tetapi dengan merancang mesin NFA

You might also like