Anda di halaman 1dari 77

TEORI BAH

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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

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.

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

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.

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

GRAMMAR

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
TEORI BAHASA FORMAL (3 SKS)

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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 ()
• 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:

 = {a b c d e ... z , . }

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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
={x} L = { x xx xxx xxxx ... }

• Simbol alphabet tidak harus alphabet


huruf latin, namun dapat berisi apa saja
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
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+ JIM MICHAEL WIDI, S.KOM
UNIVERSITAS BUDI LUHUR -
FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 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() = 0

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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
 = { 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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

• Diketahui alphabet , diinginkan untuk mendefinisikan


sebuah language dimana tiap string dari huruf yang ada
di dalam  adalah sebuah word, termasuk null string.
• Language ini disebut sebagai closure
• Dapat dinotasikan dengan menambah sebuah asterisk
sesudah nama dari alphabet  * (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 - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• Contoh:
Jika  = { x } maka
* = L4 = {  x xx xxx ... }

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 ... }

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

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}*

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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). Berhati-
hatilah untuk membedakan antara + dengan +

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
LATIHAN
Perhatikan beberapa definisi di bawah ini yang berasal dari alphabet =
{ab}
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*

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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  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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

CONTOH OTOMATA HINGGA


Push

Start
Off On

Push

Start t h e n
t th the then

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 a, b
Start a b
X Y Z+

b
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
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- 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

• 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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

• Ada kemungkinan sebuah Otomata Hingga


tidak akan menerima language apapun

a, b

a, b a, b
- +

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
2 a
a
• Perhatikan Otomata Hingga ini
1- b a 4+ a, b

b b
3

• Apa yang terjadi bila diberi input string ababa


dan babbb (bagaimana pergerakkannya)?
Transisi bila diberi input string ababa Transisi bila diberi input string babbb
δ(1,a) = (2) δ(1,b) = (3)
δ(2,b) = (3) δ(3,a) = (2)
δ(3,a) = (2) δ(2,b) = (3)
δ(2,b) = (3) δ(3,b) = (4)
δ(3,a) = (2) δ(4,b) = (4)

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 b
X Y
Start x {x,y} {y}
a
Final y {y} Ø

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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
a a, b
 b a
b  
a
b
b

a, b
b

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• NFA yang akan dibuat untuk bisa mendefinisikan
kedua language yang diterima oleh masing-masing FA
terlihat seperti berikut ini:
a
a

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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

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) = ({Ø})

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

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) = ({Ø})

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

• ({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})

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

CONTOH • ({P},0} = ({P,Q})


• ({P},1) = ({P})
0 0
P P,Q P,Q,R • ({P,Q},0) = ({P,Q,R})
• ({P,Q},1) = ({P,R})
1 1 • ({P,Q,R},0) = ({P,Q,R,S})
1
1
• ({P,Q,R},1) = ({P,R})
P,R 0 • ({P,R},0) = ({P,Q,S})
• ({P,R},1) = ({P})
• ({P,Q,R,S},0) = ({P,Q,R,S})
0

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})

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

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 )

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

1- 2 3 4+

Perhatikan Transition Graph di atas


•String (abb)()(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  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 
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• TG juga memungkinkan dibuat dengan lebih
dari sebuah edge/busur berlabel .
1

 2 +

• Ataupun mempunyai lebih dari sebuah start state.


1-

2- +

3-

• Perlu disadari bahwa sebuah FA juga sebuah TG, namun tidak


sebaliknya

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• Lihat TG di bawah ini:

• Gambar di atas adalah sebuah TG yang tidak menerima string


apapun termasuk juga , karena tidak adanya final state
• Lihat mesin di bawah ini

• Hanya menerima string . 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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• Perhatikan TG di bawah ini


 

• Mesin di atas hanya menerima word , baa, dan abba
• Perhatikan TG di bawah ini
+

• TG ini menerima word yang huruf awal dan akhirnya berbeda

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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  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
• Tabel Keluaran yang memperlihatkan karakter apa dari T yang
akan dihasilkan untuk tiap state yang tercapai

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• Alphabet input  = {a, b}
• Karakter output T = {0, 1}
• Nama state q0, q1, q2, q3
Transition Table Output Table
State Baru Karakter yang
State Awal
Sesudah Input a Sesudah Input b diberikan
q0 q1 q3 1
q1 q3 q1 0
q2 q0 q3 0
q3 q3 q2 1

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)

• Bentuk grafis dari Mesin Moore tersebut


adalah: a
b
q0/1 q1/0

b a
a
b
q2/0 q3/1 a

• Contoh lain: a
b
a

q0/0 q1/0 a q2/0 q3/1

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.

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• Contoh Mesin Mealy
• Apa yang dihasilkan Mesin Mealy ini bila
diberi inputan aaabb?
q1
b/1
a/0

q0 a/1 q2

b/0 a/0

b/1 b/1
q3

a/1

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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
a/x, b/x
q4 q7 q4 q7

b/x

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
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 - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
CONTEXT-FREE GRAMMER
(CFG)
Definisi:
•Sebuah alphabet  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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
• 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
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
Contoh
Terminal adalah a
Nonterminal adalah S
Aturan Produksi
1. Prod 1 SaS
2. Prod 2 S
 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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
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)

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
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
UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM
FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
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.

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
Penghilangan Produksi Useless

Sehingga didapat
S  aSa | Bde
B  BBB | e

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
Penghilangan Produksi Unit

Sehingga didapat
S  Sb
S  dd | ef
C  dd
C  ef
D  dd

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI
TEORI BAHASA DAN OTOMATA
(3 SKS)
Penghilangan Produksi Empty
Definisi Produksi Empty:
Produksi yang dapat menghasilkan Empty

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

UNIVERSITAS BUDI LUHUR - JIM MICHAEL WIDI, S.KOM


FTI

Anda mungkin juga menyukai