Anda di halaman 1dari 26

Teori Bahasa dan Automata

Disusun Oleh:
Nama:

1. Desi efriyani 161420153


2. Fitria Febriani 161420164
3. Suci Febri Yanti 161420071
4. Vina Violita 161420194

Kelas: IF51

Dosen: M. Soekarno Putra M.kom

UNIVERSITAS BINA DARMA


FAKULTAS ILMU KOMPUTER
TEKNIK INFOMATIKA
2018
Konsep Teori Bahasa dan Automata
Teori bahasa dan otomata merupakan salah satu yang wajib di jurusan teknik informatika
maupun di ilmu computer. Bahasa didalam kamus ada;ah suatu system yang meliputi
pengekpresian gagasan fakta, konsep, termasuk sekumpulan symbol-simbol dan aturan untuk
melakukan manipulasinya. Bahasa juga bisa disebut sebagai rangkaian symbol-simbol yang
mempunyai makna. Otomata merupakan suatu system yang berdiri atas sejumlah berhingga
state, dimana state menyatakan informasi mengenai input. Otomata juga dianggap sebagai media
mesin otomata (bukan mesin fisik) yang merupakan suatu model matematika dari suatu system
yang menrima input dan menghasilkan output serta berdiri dari sejumlah berhingga state
Hubungan diantara bahasa dan otomata adalah bahasa dijadikan sebagai input oleh suatau
mesin otmata, selanjutnyya mesin otomata akan membuat keputusan yang mendindifikasikan
apakah input itu diterima atau tidak.
Sejarah Teori Bahasa Automata
otomata bermua sebelum komuter ada pada teori dibidang system logika matematika atau
formal. Ilmuwan David Hilbert telah mencobaciptakan algoritma umum untuk pembuktian
(seluruh) persoalan matematika secara otomatis yaitu mampu menentukan salah benarnya
sembarang posisi matematika. Tahun 1931 Kurt Godel mempublikasikan ketidaklengkapan
dimana membuktikan prosedur/algoritma yang dikehendaki Havid Hilbert tersebut tidak ada.
Sekitara tahun 1950-an Noam Chomsky menciptkan model matematika sebagai sarana untuk
mendeskripsikan bahaa seta menjawab pertanyaan:
-apakah bahasa secara umum?
-bagaimana manusia memahami bahasa?
-bagaimana manusia mengajarkan bahasa keanak-anaknya?
Perbedaaan anatara bahasa computer dan bahasa manusia sampai sekarang belum
diketahui bagaimana cara manusia mengartikan bahasa sementara dengan pasti.mengartikan
bahasa pada computer. Noam Chomsky mengemukan perangkat format disebut grammar untuk
memodelkan property-properti bahasa. Garammar berisi sejumlah aturan serta menggunakan
aturan-aturan grammar. Grammar diterapkan pada perancangan kompilator dan bidang-bidang
diilmu computer karena banyak yang berperan pada pengembangannya. Bidang teori ini diberi
aneka ragam nama yaitu:
-teori otomata (theory of automata)
teori bahasa formal (theory of formal language)
-teori mesinturing (theory of turing machine)
Kedudukan Teori dan Otomata pada ilmu computer:
1. Ilmu computer mempunyai 3 komponen utama:
a. Model dan gagasan mendasar mengenai komputasi
b. Teknik rekayasa dan perancangan system komputasi, meliputi perangkat keras dan
perangkat lunak khusunya penerapan rancangan dari teori
2. Teori bahasa dan otomata merupakan bagian pertama, secara teoritis ilmu computer
diawali dari sejumlah perbedaan disiplin ilmu:
a. Teknik elektro : mengembangkan switching sebagai tool untuk mendesain
b. Matematika : bekerja berdasarakan logika
c. Ahli bahasa : menyelidiki tata bahasa utuk natural language
d. Ahli biologi : mempelajari neural network

3. Spesifikas dari mempelajari bahasa pemrograman:


a. Himpunana symbol-simbol (alphabet) yang bisa dipakai untuk membentuk program yang
benar
b. Himpunan program yang benar secara sintaktik
c. Makna dari program tersebut
Konsep Bahasa dan Otomata
1. Teori bahasa adalah konsep-konsep pada string alphabet dalam penyambungan karakter-
karakter alphabet untuk membentuk suatu makna (bahasa)
2. Alphabet adalah himpunan symbol (karakter) tak kosong yang berhingga, alphabet
digunakan untuk membentuk kata-kata (string-string) bahasa. Alphabet dilambangan
dengan ∑
3. String adalah deretan symbol dari alphabet dimana perulangan dimbol diijinkan
Contoh:
V = {a,b,c,d}
String pada alphabet V antara lain => ‘a’,’abcd’.’bbba’ dll….
4. Panjang string adalah jumlah symbol didalam string bukan pada alphabet dan
pengulangan kemunculan symbol dihitung. Panjang string dilambangkan (W)
5. Empety string adalah string yang tidak mengandung symbol apapun. Lambanganya €
atau /
6. Regular expression adalah cara untuk mengekprseikan bahasa dengan hanya
menggunakan operasi : (concatenation, superscript, kleene closure)

Teori Bahasa
Teori bahasa membicarakan bahasa formal (formal language). Terutana untuk
kepentingan perancngan kompilator (compiler) dan pemroses naskah (text processor).
1. Bahasa formal adalah kumpulan kalimat
2. Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah tatabahasa (grammar)
yang sama.
3. Bahasa manusia bersifat sebaliknya : grammar diciptakan untuk meresmikan kata-kata
yang hidup dimasyarakat, kata-kata yang pembicaraan selanjutnya bahasa formal disebut
bahasa saja
4. Automata adalah mesin abstrak yang mengenali (recognize), menerima (accept), atau
membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.
5. Untuk memodelkan hardware dari computer diperkenalkan otomata, otomata berfungsi
dari computer digital mereima input, menghasilkan output, bisa memiliki penympnangan
sementara dan mampu membuat keputusan dalam mentransfomasikan input ke output
6. Otomata merupakan system yang terdiri atas sejumlah berhingga state, dimana state
menyatkan informasi mengenai input yang lalu dan dapat dianggap sebagai memori
system mesin
7. Input pada mesin otomata dianggap sebagai bahasa yang harus dikenal oleh mesin
selanjutnya mesin otomata membuat keputusan yang mengindikasikan apakah input itu
diterima atau ditolak

Contoh penerapan teori Bahasa Otomata


Contoh 1 : model switch/on off digambarkan sebagai berikut:
Model tersebut mengingatkan apakah switch berada dalam state on atau state off model
memungkinkan user untuk menekan tombol yang dimiliki berbeda tergantung pada berikut:
1. Jika switch berada dalam state off maka setelah tombol ditekan state berubah menjadi on
2. Jika switch berada dalam state on maka telah tombol ditekan state berubah menjadi off
Contoh 2 : finite automata dapat digunakan sebagai bagian dari lexical analyzer tugas otomata.
Tugas otomata disebut adalah mengenail keybord then sehingga diperlukan lima state masing-
masing menyatakan posisi yang berbeda dalam kata then yang telah dicapai sejauh ini. Posisi ini
berhubungan dengan prefix dari kata yang berkisar dari kata string kosong (tidak ada kata yang
dikenali sejauh ini) sampai dengan kata lengkap.

Bahasa Mesin Otomata Batasan Aturan Produksi


Reguler Finite state automata (FSA) a adalah sebuah symbol
meliputi deterministic finite variable
automata (DFA) dan non β maksimal memiliki sebuah
Deterministic finite automata symbol variable yang bila ada
(NFA) terletak pada posisi paling
kanan
Context sensitive Push down automata (PDA) a berupa sebuah symbol
variable
Bebas Konteks/ context free Linier baunded automata |a| ≤ |β|
Unrestricted/phase Mesin turing Tidak ada batasan
structure/nature language
Secara umum tata Bahasa di ruamuskan sebagai berikut
a => β yang berarti a mengahsilakn β atau a menurunkan β
dimana a menyatakan symbol-simbol pada ruas kiri aturan produksi (sebelah kiri tanda ‘→’) dan
β menyatakan symbol-simbol pada ruas kanan aturan produksi (sebelah kanan tanda ‘→’)
simbol variable/ non terminal adalh simbol yang masih bias diturunakan dan ditandai dengan
huruf besar seperti A, B, C dan D.dst
simbol terminal adalah simbol yang sudah tidak bias diturunkan dan ditandai dengan huruf kecil
seperti a, b, c, dan d. dst
1. Tata Bahasa regular
Aturan:
-simbol sebelah kiri harus berupa simbol variable
-simbol pada seblah kanan maksimal hanya memiliki sebuah simbol variable dan bila
ada terletak pada posisi paling kanan

2. Tata Bahasa bebas konteks


Aturan:
-simbol pada seblah kiri harus beripa sebuah simbol variable

3. Tata Bahasa context sensitive


Aturan:
-simbol pada seblah kiri harus minimal ada sebuah simbol variable
-jumlah simbol pada ruas sebalah kiri harus lebih kecil atau sama dengan jumlah simbol
pada ruas kanan

4. Tata Bahasa unrestricted


Aturan:
-simbol pada seblah kiri harus meinimal ada sebuah simbol variable
Soal:
1. Tentukan apakah produksi-produksi berikut memenuhi aturan tata bahasa regular
 A => b (titerima)
 B =>bcB (ditolak karena symbol pada sebelah kanan maksimal hanya memiliki
sebuah symbol variable
 B =>bC (terima)
 B => Ad (ditolak karena symbol variable sebelah kanan harus berada pada posisi
paling kanan)
 B => bcdefg (ditolak karena symbol variable sebalah kanan harus berada diposisi
paling kanan)
 A =>aSa (diterima)
 A => aSS (ditolak karena symbol pada seblah kanan maksimal hanya memiliki
symbol variable)
 A => (diterima)
 Ad => dB (diterima)

2. Tentukan apakah produksi-produksi berikut memenuhi aturan tata Bahasa bebas konteks
 A => aSa (diterima)
 A =>Ace (diterima)
 A => ab (diterima)
 A => c (diterima)
 B => bcdf (diterima)
 B =>bcdfg (diterima)
 A => Asa (diterima)
 A => BCDEF (diterima)
 Ad => (diterima)
 A => AAAAA (diterima)
 D => (ditolak karena symbol pada sebelah kiri harus berupa sebuah symbol
variable)
3. Tentukan apakah produksi-produksi berikut memenuhi aturan tata Bahasa unrestricted
 A => E (diterima)
 AB => E (diterima)
 ad => b (ditolak karena sebelah kiri harus memiliki minimal symbol variable)
 ad => E (ditolak karema sebelah kiri harus memiliki minimal symbol variable)
 abC => cde (diterima)
 e => Cde (ditolak karena sebelah kiri harus memiliki minimal symbol variable)
 e => a (ditolak karena sebelah kiri harus memiliki minimal symbol variable)
 ABCDEFG => h (diterima)
 bA => CDEFGH (diterima)
4. tentukan apakah produksi-produksi memenuhi aturan tata bahasa context sensitive
 B => bcdefg (diterima)
 A => aSa (diterima)
 A => aSS (diterima)
 A => BCDEF (diterima)
 Ad => dB (diterima)
 A => E (ditolak karena symbol sebelah kiri harus meinimal mempunyai symbol
variable)
 AB => E (diterima)
 abC => DE (ditolak karena jumlah symbol di sebelah kiri lebih banyak dari
sebelah kanan)
 abcDef => ghjiki (diterima)
 AB => Cde (diterima)
Finite State Automata
Finite State Automata/state otomata berhingga, kita sebuat dengan FSA. Bukanlah mesin
fisik tetapi suatu model matematika dari suatu system yang menerima input dan output diskrit.
FSA merupakan mesin otmata dari Bahasa regular, suatu SFA memiliki state yang banyaknya
berhingga dan juga berpindah-pindah dari suatu state ke state lain
Secara formal finite state automata dinyatakan oelh 5 tupel atau M=(Q, ∑, ₷, S, F), dimana:
Q =himpunan state/ kedudukan
∑ = himpunan simbol input/ masukan/abjad
₷ = fungsi transisi
S = state awal/ kedudukan awal (initial state)
F = himpunan state akhir
Soal

1.
Q={q0, q1, q2, q3}
∑={0, 1}
S= q0 1
F=q0 q0 1 q1

₷ fungsi transisinya
₷ (q0,0) =q2 0 0
₷ (q0,1) =q1
₷ (q1,0) =q3
₷ (q1,1) =q0 0 0
₷ (q2,0) =q0 1
q2 q3
₷ (q2,1) =q3 1
₷ (q3,0) =q1
₷ (q3,1) =q2

2.
₷ a b
q0 q1 q2
q1 q2 q0
q2 q2 q2

a
a q1 b
q0 a q2
b b
3.
₷ a B
q0 q0 q1
q1 q0 q2
q2 q0 q3
q3 q0 q2

q1
Q = {q0, q1, q2, q3} a b
∑ = {a, b}
S = q0 a
F = {q0, q1, q2} q0 a b q2

a b

q3

4.
₷ 0 1
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2

LM =1101
= q1, q0, q2, q3 (ditolak)
LM =0101
= q2, q3, q1, q0 (diterima)
LM =1001
= q1, q3, q1, q0 (diterima)
5.

₷ a b
q0 q1 q1
q1 q1 q0

LM =aaa
= q0, q0, q0 (ditolak)
LM =bbbb
=q1, q0, q1, q0 (ditolak)
LM =abbab
=q0, q1, q0, q0, q1 (diterima)
Tugas 4
1. 0,1
q.4
0 0 q.3

q.0
1 1
q.1 0,1
q2

2. 1 0 0 1 0 = Diterima

q.0 q.o q.0 q.0 q.0 q.0


= ditolak

q.0 q.o q.3 q.4 q.4 q.4


= diterima

q.0 q.1
= ditolak

q.0 q.0 q.0 q.3 =ditolak


3.
1 1

q.0 q.1
0 0,1

4. A. 0 0 1

q.0 q.0 q.0 q.1 =diterima

q.0 q.1
= ditolak

q.0 q.0 q.1 = diterima


q.1

q.0 q.0 q.1 q.0


=ditolak

b.10

q.0 q.1 Ditolak

c.110

q.0 q.1 q.0 q.1


= diterima

q.0 q.1 q.1 = ditolak


Reduksi Jumlah State Automata = DFA
=> Indistinguishable : tidak dapat dibedakan
=> Distinguishable : dapat dibedakan

0 q1
0
q0 0 1 0,1

q2 1 q4

0 1

1
q3

1. Kombinasikan semua kemungkinan pasang state


(q0,q1):
(q0,q2):
(q0,q3):
(q0,q4): Dis
(q1,q2):
(q1,q3):
(q1,q4): Dis
(q2,q3):
(q2,q4): Dis
(q3,q4): Dis
2. state yang berpasangan dengan state akhir adalah Distinguishable
3. masing-masing pasangan state yang menerima input yang sama, jika salah satu pasangan state
mencapai state akhirnya di katakan Distinguishable
=> (q0,q1) (dis)
₷ (q0,0) = q1
₷ (q1,0) = q2
₷ (q0,1) = q3
₷ (q1,1) = q4 (dis)
=> (q0,q2) (dis)
₷ (q0,0) = q1
₷ (q2,0) = q1
₷ (q0,1) = q3
₷ (q2,1) = q4 (dis)
=> (q0, q3) (dis)
₷ (q0,0) = q1
₷ (q3.0) = q2
₷ (q0,1) = q3
₷ (q3,1) = q4 (dis)
=> (q1,q2) (indis)
₷ (q1,0) = q2
₷ (q2,0) = q1
₷ (q1,1) = q4
₷ (q2,1) =q4 (indis)
=> (q1,q3) (indis)
₷(q1,0) = q2
₷(q3,0) = q2
₷(q1,1) = q4
₷(q3,1) = q4 (indis)
=> (q2,q3) (indis)
₷(q2.0) = q1
₷(q3.0) = q2
₷(q2,1) = q4
₷(q3,1) = q4 (indis)
4.
(q0,q1): Dis
(q0,q2): Dis
(q0,q3): Dis
(q0,q4): Dis
(q1,q2): Indis
(q1,q3): Indis
(q1,q4): Dis
(q2,q3): Indis
(q2,q4): Dis
(q3,q4): Dis
5. tampilkan pasangan state yang Indis
(q1,q2)
(q1,q3)
(q2,q3)
Indis

q1,q2,q3

6. 0 0,1

q0
0,1 q1,q2,q3 1 q4

Ekuivalen NFA ke DFA.


1.NFA 0 1
0,1
q0 q1
1

Q = {q0,q1}
∑ = {0,1}
S = q0
F ={q1}
Note: setiap hasil transisi dianggap menjadi satu state yang baru
₷ 0 1
q0 {q0,q1} {q1}
q1 {q0,q1}
0 {q0,q1}
q0
1

1 {q3}

.
₷ 0 1
q0 {q0,q1} {q1}
q1 - {q0,q1}
{q0,q1} {q0,q1} {q0,q1}

{q0,q1}
.
q0
1
1

{q1}

2.NFA

₷ a B
q0 Ø Ø

∑ = {a,b}
a,b
a,b
q0 Ø
3.NFA
Q = {p,q,r,s}
∑ = {0,1}
S=p
F = {p,s}

₷ 0 1
P {q,s} {q}
Q {r} {q,r}
R {s} {p}
S - {p}
{q,s} {r} {p,q,r}
{q,r} {r,s} {p,q,r}
{p,q,r} {q,r,s} {p,q,r}
{r,s} {s} {p}
{q,r,s} {r,s} {p,q,r}

1
0 0 {r}
{q,s}
p

1 1 {p,q,r}

1
{q,r}

{r,s} 1 0

{q,r,s}
{s} 0

NFA dengan E-move


1. Note :
-himpunan state-state yang dapat dicapai tanpa membaca input
-state yang tidak mempunyai transisi E, maka E-clousurenya adalah state itu sendiri
E-Cl (q0) = {q0,q1,q3}
E-Cl (q1) = {q1,q3} E a
E-Cl (q2) = {q2,q4} q1 q2
q0
E-Cl (q3) = {q3}
E-Cl (q4) = {q4} a b E

b
q3 q4
2.NFA dengan E-move E

E-Cl (q0) = {q0,q1,q3}


E-Cl (q1) = {q1,q3} E a
E-Cl (q2) = {q2,q4} q0 q1 q2
E-Cl (q3) = {q3}
E-Cl (q4) = {q4} b E
E
q3 q4

Ekuivalen NFA dengan E-move Ke NFA tanpa E-move


0
E
q0 q1

1.

₷ 0
q0 {q0}
q1 Ø

2.
E-Closure
E-Cl (q0) = {q0,q1}
E-Cl (q1) = {q1}
3.E-Closure
₷ (q0,0) = E-Cl(₷ (E-Cl(q0),0)) ₷(q1,0) = E-Cl(₷ (E-Cl(q1),0))
= E-Cl (q0) = E-Cl (Ø)
= {q0,q1} =Ø

4.tabel transisi yang baru berdasarkan hasil no.3

₷ 0
q0 {q0,q1}
Q1 Ø

5. 0

q0 0 q1
Penggabungan dan konkatenasi finite stete automata
m1 => rancangan 1
m2 => rancangan 2
m3 => penggabngan/union
m4 => konkatenasi

m1
0
1
Qa0 qA1

m2

1
qB0 qB1
0
0

m3 = penggabungan (m3)
- tambahkan state awal baru pada m3(qs)
hubungkan dengan state dari m1 dan m2
-tambahkan state akhir baru pada m3 (qf)
0

E qA0 1 qA
1
qs 1 E
qf
1
qB0 qB1
E 0 E

m4 = konkatenasi (m4)
-state awal di m1 menjadi state awal di m4
-hubungkan state-state akhir m1 dengan state awal m2
-menentukan state akhir dim2

0 1
1 qB0 1
qA0 qA1 qB1

0
Tugas Ekspresi Regular

1. 0 1 0.1
1 0
q0 q1 q2

ER = 0*11*0(0,1)*

jawab:

0 ER = 0
q0

1 1 ER = 11
q1

1 0,1 ER = 0 (0,1)*
0 q2
q1

2.
0 1 1
1 0 1
q0 q1 q2 q3
0
0

ER = 01*10*11*11*0*
jawab:

0 1 1 0 1 1 ER = 01*10*11*
q2 q3
q0 q1

1
1 ER = 11*
q2 q3

0 ER = 0*
q3 q0
3.

0 0

0 1
1 1 0

1
ER = (0*0)*1*(1*1)*

jawab:
0 ER = (0*0)*
q0 q1
0

1 ER = 1*
q0 q2

1
q2 q1 ER = (1*1)*
1

4.FSA (11+0)*(00+1)*

q0 q2

1 0
1 0 1
q1 q3
0

5.FSA 10+(0+11)0*1

1
q0 q1

1
0
0
1 q2
q3
6.
0
q0

0 1
1 q1
q2

ER = (01*00)*00*

Jawab:
0

q0 1 q1 0 q2 ER = (01*00)*
0

0 0
q2 q0 ER = 00*

7.FSA c*(a∪bc)*

c a
q1
q0
c

b
q2

8.Gambarkan NFA dengan transisi E yang menerima ekstansi reguler = 1*

E 1
q0 q1
Tugas Pohon Penurunan Bahasa Bebas Konteks

1. Untuk tata bahasa bebas konteks berikut?


S AA
A AAA | a | bA | Ab
bbabaaba
Jawab:
S S

A A A A

A A A A b A b A
b

b A b A A b a A A A A
b

a a a b A
a a

A A

b A b A

A A A a

A
a b a

a
2. Untuk tata bahasa bebas konteks berikut?
S aAd | aB
A B|C
B ccd | ddc
accd
Jawab:

a B

c d
c

3. Untuk tata bahasa bebas konteks berikut?


S AB
A Aa | bB
B a | sb
baabaab
jawab:

A B

S
b
A a

A B
B
b

b B a

a
4. Untuk tata bahasa bebas konteks berikut?
S Ba | Ab
A Sa | Aab | a
B Sb | Bba | b
bbaaabb
jawab:

A b

A A b

S a
a

B A

B B a

b b

5. Untuk tata bahasa bebas konteks berikut?


S AB | bA
A a | aS | bAA
B b | bS | aBB
baaabb
jawab:
S

b B

S
a
B
a

b B B

b b
1. S AB l CA
B BC l AB
A a
C aB l b

S CA
A a
C b
S

C A

b a

2. S aS l A l C
A a S A
B aa A a
C aCb

A a

3. S A
A aA l €
B bA
S
S aAl = S A
A a= A € A
B bA a

S aA a
A a

4. S Aa l B
B A l bb S
A a l bc l B
A
a
S Aa
A a l bc b c
5. S AbaC l BaC l AaC l Aba l aC l Aa l Ba l a
A B l C l BC
B b
C D
D d

6. S Aac l aC l Aa l a S
A C l AB l A l B
B b A C
C d a
B
S AaC l Aa
A B d
b s
B b
C d

7. S AbaC
A Bd
B bl€
C Dl€
D Bca
Simbiol variabel yang nullable adalah
S AbaC
C Dl€

8. S AaB l aaB aaB= B €


A € bbA= A €

S Aab l aaB
B bbA l €

9. S aS / SS l €

S SS
S SS

10. S a l aA l B l C
A aB l € aA = A €
B Aa
C cCD
D ddd

S a l a l aA l B l c
A aB l €
B Aa
C cCd
D ddd
11. S aB l aaB l bA
A € aB = A €
B bA
B € bA = B €

S a l a l aa l aB l aaB l b l bA
A aB l €
B Aa
C cCD

Anda mungkin juga menyukai