Anda di halaman 1dari 90

‫اار ِحيم‬

َّ ‫الرحْ َم ِن‬
َّ ِ‫ــــــــــــــــم اﷲ‬
ِ ‫س‬ْ ِ‫ب‬
TEORI BAHASA DAN OTOMATA
(KOMPUTASI)

e-mail : darmantosoer@pelitabangsa.ac.id

Jl. Jati V Blok H/96 Rt 10/12 Perum. Jatimulya, Bekasi


Phone : 021-82405667 Mobile : 081317222010 Mobile : 0895330988007
e-mail : darmantosoer@yahoo.com e-mail : darmasoer@gmail.com 1
TEORI BAHASA DAN OTOMATA (KOMPUTASI)
(COMPUTATION THEORY) ‫ــــــــــــــــم اﷲِ َّالرحْ َم ِن َّاار ِحيم‬
ِ ‫س‬ْ ِ‫ب‬

FSM : FSA
FSA : DFA dan NFA

MATERI KULIAH : TEORI BAHASA DAN OTOMATA


. (TEORI KOMPUTASI)
DISUSUN OLEH : IR. U.DARMANTO SOER, MKOM

STT PELITA BANGSA 2

2
DOKUMEN INI MERUPAKAN BAGIAN KE-4
KULIAH TEORI BAHASA & OTOMATA (KPL-308).
Dokumen ini hanya sebagai penunjang pelaksanaan perkuliahan.
Untuk memahami materi kuliah, Anda wajib membaca :
1. Diktat Kuliah
2. Hand-out (berisi materi yang tidak ada dalam diktat)
3. Buku Acuan yang digunakan

3
SILABUS
1. Pendahuluan
2. Mesin Keadaan Hingga, Finite State Machine
3. Automata Hingga, Finite State Automata
4. Pengantar Bahasa Alami dan Bahasa Formal

Buku Referensi/Acuan
1. Harry R.Lewis, Cristos H.Papadimitrou, Elements of Theory of Computation,
Prentice-Hall Inc.
2. Zohar Manna, Mathematical Theory of Computation, McGraw-Hill
3. Buku-buku matematika diskret yang relevan

4
1. PENDAHULUAN
2 x (3 + 4) = 14  dengan bantuan kalkulator. Mudah !
Bagaimana dengan :
a+b=?
a x (b + c) = ?
Dapatkah digunakan kalkulator ?
Tergantung nilai a, b, c
Bila a = 2, b = 3, c = 4, hasil sama dengan di atas
Bagaimana untuk nilai a, b, c yang lain?

5
PENDAHULUAN

 Urutan langkah
1. Masukan nilai a, b, c
2. Hitung (kalkulasi) X = b + c
3. Hitung Y = a x X
4. Tulis (keluarkan isi) Y
5. Jika masih diperlukan nilai a, b, c yang lain, kembali ke no.1.
Jika tidak, selesai. Itu kan algoritma ya ??

6
PENDAHULUAN

 Kalkulator (mekanik) : Mesin Fisik (nyata)


Urutan langkah (algoritma) dapat dianggap sebagai
MESIN ABSTRAK. Lantas, siapa yang menjalankan algoritma ?
Kalau mudah, ya manusia, tapi kalau rumit dan panjang bagaimana?
Ya, mesin fisik juga tapi yang mempunyai kemampuan untuk
mengerti urutan perintah dalam algoritma,
itu kan KOMPUTER, jadi dalam KOMPUTER ada mesin abstrak
juga agar mampu mengerti urutan perintah
……makanya namanya KOMPUTER, yang melakukan komputasi

7
PENDAHULUAN
Contoh :
Kalkulasi – Komputasi
 Kalkulasi
Harga satuan suatu barang : Rp1.000
Jika pembeli, beli 3 buah, maka dengan uang Rp 5.000,
penjual mengembalikan :
Rp 5.000 – 3(Rp1.000) = Rp 2.000,-

 Komputasi
A : banyaknya barang yang dibeli
B : Banyaknya pembelian = Rp1.000 x A
U : uang kembalian = Rp5.000 – B
8
Hitung dulu B, kemudian hitung Rp5.000 – B = Rp2.000,-
8 Lalu bedanya apa ?
PENDAHULUAN
Kalkulasi : proses melakukan perhitungan dalam .

penyelesaian masalah
Komputasi : proses menjalankan urutan langkah-langkah
. dalam penyelesaian masalah

 Apa itu urutan langkah-langkah ?

 ALGORITMA

9
PENDAHULUAN

Pada contoh kasus :


Jika yang menyuruh menjalankan urutan langkah-langkah adalah kita
sendiri. Bagaimana kalau yang menjalankan orang lain ?
a) Kita harus memberikan urutan perintah yang dapat dipahami
b) Bila urutan perintah salah, hasilnya akan salah (latihan algoritma
sederhana)
Bagaimana kalau yang menjalankan perintah adalah MESIN ?

10

10
PENDAHULUAN
 Siapa yang melakukan perintah ?  kita (Human = manusia)
 Siapa yang diperintah ?  Mesin (machines)

 Mesin harus dapat berkomunikasi dengan kita syaratnya :


a. mengerti bahasa kita
b. memberitahukan siap menerima perintah
c. menerima dan mengerti perintah
d. dapat mengerjakan perintah
e. memberikan hasil yang dikerjakan kepada kita dengan meng-
gunakan bahasa kita
f. memberitahukan bahwa sudah selesai melaksanakan perintah
Bagaimana prinsip mesin tersebut ? 11

11
PENDAHULUAN

Interaksi Manusia - Mesin


MANUSIA MESIN MANUSIA

perintah  ?  hasil pelaksanaan

bahasa bahasa bahasa


manusia mesin manusia

antar muka = antar muka =


translator interface

12

12
PENDAHULUAN
Proses Pemikiran atau Abstraksi

Bagaimana prinsip mesin tersebut ?

Mesin abstrak
sebagai model komputasi
13

13
PENDAHULUAN

 ˂mesin abstrak > < mesin nyata˃, apa hubungannya ?

Unsur utama Teori Komputasi :


1. Teori mesin abstrak
2. Teori bahasa
3. Studi lain (tidak dipelajari dalam kuliah ini) :
a) Translasi perintah dalam mesin dan interpretasinya
 coding & decoding  dasar : struktur aljabar
b) Realisasi perintah dan pengaruh akibatnya
 error correcting code

14

14
2. MESIN KEADAAN HINGGA (MKH) = FINITE STATE
. MACHINE (FSM)

 Mesin Keadaan Hingga – Finite State Machine


mesin seperti apa itu ?

15

15
MESIN KEADAAN HINGGA = FINITE STATE MACHINE

Mesin Keadaan Hingga

input MKH output


- himp.hingga keadaan
- transisi keadaan

uang logam segelas minuman


teks: 1 0
0 1

16

16
MESIN KEADAAN HINGGA = FINITE STATE MACHINE

Bagaimana cara mesin menyajikan ?


.

1. menggunakan Graf berarah

2. menggunakan Algoritma

17

17
Mesin Pembuka – Penutup Pintu
Mana keadaannya ?
.

Mana input ? Mana Output ?

Buka pintu - pintu membuka

input
pintu tertutup pintu terbuka

Tutup pintu - pintu menutup


18

19
MESIN KEADAAN HINGGA = FINITE STATE MACHINE
.

S0 = keadaan pintu tertutup


S1 = keadaan pintu terbuka .

1 = perintah buka pintu


0 = perintah tutup pintu
1,a
a = pintu membuka
b = pintu menutup

input
S1
S0

0,b
19

19
MESIN KEADAAN HINGGA = FINITE STATE MACHINE

Mesin Pembuka – Penutup Pintu .

1,a

Buka pintu - pintu membuka


0,0

1, 0
pintu tertutup pintu terbuka
input S1
S0
Tanpa perintah,
Tanpa perintah,
pintu tak menutup
pintu tak membuka
0,b
Tutup pintu - pintu menutup
20

20
MESIN KEADAAN HINGGA = FINITE STATE MACHINE

Mesin Pembuka – Penutup Pintu

1,a

0,0
1, 0

S0 S1
input

0,b
21
.

Rancanglah tabel transisi ??


21
Rancangan Tabel Transisi dari mesin pembuka – penutup pintu :
.

f g
keadaan 0 1 0 1
S0 S0 S1 0 a
S1 S0 S1 b 0

22 .

21
LATIHAN SOAL FINITE STATE MACHINES
1. Diberikan diagram transisi seperti gambar di bawah ini.
Rancanglah tabel transisi ??
1

qo 1 q1

0 0 0 0

1
q2 q3

1
23
.

22
LATIHAN SOAL FINITE STATE MACHINES
2. Mesin Keadaan Hingga (finite state machine)
.

S1 0, 1
1,1

1, 0
0,1
S0 S3
0,0
1,0 0,0

Rancanglah tabel transisinya ?


S2
.
24
1,1
23
LATIHAN SOAL FINITE STATE MACHINES
3. Rancanglah diagram transisi dari tabel transisi di bawah ini,
bila q1 merupakan final state ? .

𝞭 a b
q0 q0 q1
q1 q2 q2
q2 q2 q2

25
.

24
LATIHAN SOAL FINITE STATE MACHINES
4. Rancanglah diagram transisi dari tabel transisi di bawah ini,
bila q2 merupakan final state ? .

𝞭 a
q0 {q1,q3}
q1 q2
q2 -
q3 -

26
.

25
LATIHAN SOAL FINITE STATE MACHINES
5. Rancanglah tabel transisi dari diagram transisi di bawah ini ?
,

11,0
01,1 01,0

00,0 S0 S1
11,1

10,1 00,1 10,0

27
.

26
.

TERIMA KASIH ATAS PERHATIANNYA. 28 .


KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN
27 BENAR, MUNGKIN BISA MENJADI SOAL UTS , UAS !
08 July 2019
1. FINITE STATE AUTOMATA (FSA) –
AUTOMATA KEADAAN HINGGA (AKH)
 Model matematika suatu sistem yang menerima input
dan output diskrit

 Mesin otomata dari bahasa Regular

 Tidak memiliki tempat penyimpanan sehingga


kemampuan mengingat terbatas, contoh: elevator/lift

 Aplikatif - berguna untuk merancang sistem nyata.

 Aplikasi meliputi : analisis leksikal, text-editor,


protokol komunikasi jaringan (kermit) dan parity
29

checker (pengecek parity).


FINITE STATE AUTOMATA (FSA) -AUTOMATA
KEADAAN HINGGA

1. FSA atau AH (Automata Hingga) .

 didefinisikan sebagai pasangan 5 tupel :

M = ( Q, ∑, 𝞭, S, F )
 Keterangan

Q : himpunan hingga state


∑ : himpunan hingga simbol input (alfabet) 

𝞭 : fungsi transisi, menggambarkan transisi state FSA


. akibat pembacaan simbol input.
Fungsi transisi ini biasanya diberikan dalam bentuk
tabel atau diagram transisi.
S  Q : state AWAL = S 30
F  Q : himpunan state AKHIR = F
FINITE STATE AUTOMATA (FSA) -AUTOMATA
KEADAAN HINGGA

Finite State Automata (FSA)


 Finite State Machine dapat berupa suatu mesin yang terkadang
tidak memiliki output, tapi umumnya mempunyai output
keluaran.
Finite State Machine yang terkadang tidak mengeluarkan output
ini dikenal sebagai FINITE STATE AUTOMATA (FSA). Pada
FSA mesin mula-mula dalam state S0 dan menerima sederatan
masukan yang dapat mengubahnya ke state-state berikutnya. .

31
FINITE STATE AUTOMATA (FSA) -AUTOMATA
KEADAAN HINGGA

 Dalam FSA juga dikenal himpunan state-state tertentu yang


disebut sabagai FINAL STATE. Perubahan dari satu state ke state
berikutnya mengikuti aturan tertentu yang dirumuskan sebagai
suatu FUNGSI transisi

 Perilaku Finite State Automata diekspresikan dalam bentuk tabel


transisi atau dalam bentuk diagram transisi.

32
,
FINITE STATE AUTOMATA (FSA) -AUTOMATA
KEADAAN HINGGA

 Secara formal FSA dapat didefinisikan sebagai TUPLE-5 :


Kumpulan dari 5 himpunan, atau dinotasikan sebagai : FSA adalah
M = ( Q, ∑ , 𝞭 , S0 dan F)
dimana :
Q = himpunan terhingga dari state-state
∑ = himpunan terhingga dari simbol-simbol masukan pada mesin

𝞭 = fungsi transisi yang mengatur gerakan mesin


S0 = State AWAL
F = himpunan state-state FINAL 33
.
FINITE STATE AUTOMATA (FSA) -AUTOMATA KEADAAN HINGGA
FSA dapat dikelompokkan menjadi Deterministik FSA (DFA) dan
.

Non-deterministik FSA (NFA) berdasarkan sifat fungsi transisinya.

Ada dua jenis FSA :


1. Deterministic Finite Automata (DFA)
2. Non deterministik Finite Automata.(NFA)
 DFA : transisi state FSA akibat pembacaan sebuah
simbol bersifat tertentu.
 NFA : transisi state FSA akibat pembacaan sebuah
simbol bersifat tak tentu.

DFA (Deterministik FSA) :


 Jika pada setiap state dari FSA tersebut apabila menerima input sebuah
simbol maka HANYA ada SATU NEXT STATE yang mungkin dituju. 34
1. DETERMINISTIC FINITE AUTOMATA (DFA)
(AUTOMATA HINGGA DETERMINISTIK)

Deterministic Finite Automata (DFA)


M = (Q, ∑, 𝞭, S, F),
dimana :
Q : himpunan stateatau kedudukan
∑ : himpunan simbol input
𝞭 (∂) : fungsi transisi, dimana 𝞭 (∂)  Q x ∑  Q
S : State awal (initial state), start
F : himpunan state akhir (Final State)

Language  L(M) : (x| ∂(S,x) di dalam F) 35


DETERMINISTIC FINITE AUTOMATA (DFA)
Contoh kasus-1
Diberikan DFA :
Q = {q0, q1, q2} Σ = {a, b} S = q0 F = (q2)
diberikan dalam bentuk diagram transisi berikut :
a b
a
q0 b b q2
q1

a
Ditanyakan :
a) Buatlah fungsi transisi ?
b) Rancanglah tabel transisi dari diagram transisi di atas ?
c) Bila diberikan string input : ”abb” dan ”baba” apakah diterima
atau ditolak mesin Otomata tersebut ? 36
.
JAWAB :

a. Fungsi transisi :
𝞭(q0, a) = q0
𝞭(q0, b) = q1
𝞭(q1, a) = q1
𝞭(q1, b) = q2
𝞭(q2, a) = q1
𝞭(q2, b) = q2

b. Tabel Transisi :

𝞭 a b
q0 qo q1 .

q1 q1 q2
q2 q1 q2
37
JAWAB :

c. Pada mesin otomata tersebut bila diberi input string ”abb” maka :
𝞭(q0, abb) = 𝞭(q0, bb) = 𝞭(q1, b) = q2
karena q2 state termasuk final state (keadaan akhir) maka ”abb”
berada dalam L(M), artinya string input ”abb” diterima mesin
otomata.

Untuk input string ”baba” tentukan sendiri sebagai latihan !


.

Untuk latihan anda : ababaa, bbabba, aabbaa, bababa.

38
Kesimpulan : ,

Sebuah kalimat atau string input akan diterima oleh DFA di


atas jika tracingnya berakhir di salah satu state AKHIR atau
final state.

39
,
DETERMINISTIC FINITE AUTOMATA (DFA)

Contoh kasus -2
Diberikan DFA :
Q = {q0, q1, q2}. Bila δ diberikan dalam tabel transisi berikut :
∑ = {a, b} δ a b
S = q0 q0 q0 q1

F = {q0, q1} q1 q0 q2
q2 q2 q2

Ditanyakan :
Telusurilah, apakah input (instruksi = order = perintah) kalimat-
kalimat berikut diterima atau ditolak DFA-machines di atas : .

40
abababaa, aaaabab , aaabbaba, bbbaaabb, abbaabba ?
FSA SEBAGAI PENGENAL STRING

 Mesin FSA tersebut jika menerima masukan sederetan simbol


masukan dari simbol-simbol yang diijinkan maka akan menuju suatu
state tertentu. Jika state akhir yang ditempuh setelah suatu FSA
menerima sederetan simbol adalah state FINAL, maka deretan simbol
(string) tersebut dikatakan DIKENALI oleh FSA, atau dengan kata lain
FSA mengenali string tersebut.
Misalnya untuk suatu FSA string-string yang dikenali adalah antara lain :
0
00..0 atau 0*
10
010
010010
100* .

110 41

111 
FSA SEBAGAI PENGENAL STRING

 Kumpulan seluruh string yang dikenali oleh FSA merupakan


suatu BAHASA yang dikenali oleh FSA tersebut. Jika dimiliki
FSA M maka bahasa yang dikenali oleh FSA di notasikan
sebagai : L(M) = { x | x semua string yang mengantar M dari
S0 ke (Si F) }

42
,
FSA SEBAGAI PENGENAL STRING
Jadi untuk mesin FSA diatas tadi :
L(M) = { 0* , 0*(10)0* , 0*(110,111)0* }

Contoh 1b.1 : Tentukan bahasa L(M) yg dikenali oleh Mesin M berikut ini :
0
start 0, 1 1
S0 S1 S2 S3
1 S
3

43
.
FSA SEBAGAI PENGENAL STRING
Jawab :
 Dari diagram terlihat bahwa final-state adalah S3. Pergerakan state
yang mengantar ke final-state adalah S0→S1→S2→S3 yakni string : 011
atau string 111 yang dapat ditulis sebagai (0,1)11.
 Pergerakan yang lain adalah dari S0 langsung ke S2 yaitu : S0→S2→S3
yang dilakukan melalui string : 01
 Setelah berada pada final state masih ada pergerakan yang bersifat
rekursif pada S3 yaitu apabila diberikan masukan 0,00,000,… atau : 0*.
Dengan demikian jika seluruh string tersebut digabungkan akan menjadi :
(0,1)110*  010*, sehingga bahasa yang dikenali adalah : .

44
L(M) = { (0,1)110*  010* } = { ((0,1)11  01)0* }
.

45
45
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK 45
DAN BENAR, MUNGKIN BISA MENJADI SOAL UTS !
14 - 20 July 2019

2. NON-DETERMINISTIC FINITE AUTOMATA (NFA)


– (AUTOMATA HINGGA NON-DETERMINISTIK)

NFA (Non-Deterministik FSA) adalah :


 Jika FSA tersebut menerima input simbol maka minimal ada
satu state yang akan berpindah ke LEBIH DARI SATU NEXT
STATE yang mungkin dituju.

 Sedangkan DFA, jika pada setiap state dari FSA tersebut


apabila menerima input sebuah simbol maka HANYA ada
SATU NEXT STATE yang mungkin dituju. .

46
2. NON-DETERMINISTIC FINITE AUTOMATA (NFA) –
(AUTOMATA HINGGA NON-DETERMINISTIK)

Non-deterministic Finite Automata (NFA)


M = (Q, ∑, δ, S, F),
dimana :
Q : himpunan state/kedudukan
∑ : himpunan simbol input
δ (∂) : fungsi transisi, dimana δ (∂)  Q x (∑ ⋃ )  P(Q)
P(Q) : set of all subsets of Q
S : Kedudukan (State) awal (initial state), Start state
F : himpunan kedudukan (state) akhir, Final State.

Language  L(M) : (x| ∂(S,x) di dalam F) 47


CONTOH KASUS NON DETERMINISTIC FINITE AUTOMATA

1. Berikut ini sebuah contoh kasus NFA (Q, ∑, δ, S, F). dimana :


Q = {q0, q1}

δ diberikan dalam tabel berikut :


δ a b S = qo F = q1 dan Σ = {a, b}
q0 {q0 ,q1} {q1}
q1 {q1} {q1} a). Rancanglah diagram transisi-nya ?

b) Bagaimana bila mesin NFA itu diberi string input (instruksi) :


ab, apakah akan diterima atau ditolak ?

48
,
JAWAB :
a, b
a
a,b
q0 q1

a) Perhatikan gambar di atas, bila state q0 mendapat input a


dapat berpindah ke state q0 atau q1, yang secara formal
dinyatakan : δ(q0, a) = {q0 , q1}.

,
49
CONTOH KASUS NON DETERMINISTIC FINITE AUTOMATA

a
a, b .

a,b
q0 q1

b) Bila mesin NFA itu diberi string input (instruksi) : ab,


Untuk NFA harus mencoba semua kemungkinan yang ada
sampai terdapat satu yang mencapai state akhir .
Jadi urutan transisi yang mencapai state akhir adalah :
δ(q0, ab) = (q1, b)
= q1. → final state : diterima.
 Jadi untuk membuktikan suatu string input itu diterima NFA,
maka harus membuktikan suatu urutan transisi yang menuju state
akhir. 50
,
CONTOH KASUS NON DETERMINISTIC FINITE AUTOMATA

2. Berikut ini sebuah contoh kasus NFA (Q, ∑, δ, S, F). dimana :


Q = {q0, q1 , q2 ,q3 , q4 }

δ diberikan dalam tabel berikut :


∑= {a, b,c} δ a b c
S = q0 .q0 {q0 , q1} {q0 , q2 } {q0 , q3 }
F = {q4} q1 {q1 , q4 } {q1 } {q1}
q2 {q2 } {q2, q4 } {q2}
q3 {q3 } {q3 } {q3, q4 }
q4   
Ditanyakan :
Telusurilah, apakah string input (order = perintah) kalimat-kalimat
berikut diterima NFA-machines di atas : 51

ab, abc, aabc, aabb ??


∑= {a, b,c} δ a b c

S = q0 q0 {q0 , q1} {q0 , q2 } {q0 , q3 }

F = {q4 } q1 {q1 , q4 } {q1 } {q1}


q2 {q2 } {q2, q4 } {q2}
q3 {q3 } {q3 } {q3, q4 }
q4   

a,b,c a,b,c
a L(M) = {ab, abc, aabc, aabb}
q0 q1
q1

b a
c
q3 q2
b q4

a,b,c a,b,c
c 52
CONTOH KASUS NON DETERMINISTIC FINITE AUTOMATA

Sebuah kalimat di terima NFA jika :


Salah satu tracing-nya berakhir di state AKHIR, atau
himpunan state setelah membaca string tersebut
mengandung state AKHIR

SOAL LATIHAN
Telusurilah, apakah kalimat-kalimat berikut diterima NFA di
atas :
ab, abc, aabc, aabb ?
c). M(q 0 ,aabc) ⇒ M(q 0 ,abc) ∪ M(q1 ,abc) ⇒ {M(q 0 ,bc) ∪ M(q1 ,bc)} ∪ M(q1 ,bc)
⇒ {{M(q 0 , c) ∪ M(q 2 ,c)} ∪ M(q1, c)} ∪ M(q1, c)
Jawab: ⇒ {{{ q 0 , q 3}∪ { q 2 }} ∪ {q1}} ∪ {q1} = {q 0 , q1, q 2 ,q 3}
Himpunan stata tidak mengandung stata penerima ⇒ kalimat aabc tidak diterima.

d) M(q 0 ,aabb) ⇒ M(q 0 ,abb) ∪ M(q1 ,abb) ⇒ {M(q 0 ,bb) ∪ M(q1 ,bb)} ∪ M(q1 ,bb)
⇒ {{M(q 0 , b) ∪ M(q 2 ,b)} ∪ M(q1, b)} ∪ M(q1, b)
⇒ {{{ q 0 , q 2 }∪ { q 2 , q 4 }} ∪ {q1}} ∪ {q1} = {q 0 , q1, q 2 , q 4 } 53
Himpunan stata tidak mengandung stata penerima ⇒ kalimat aabb diterima
JAWABAN CONTOH SOAL NON DETERMINISTIC FINITE
AUTOMATA

Jawab:
δ(q0,ab)  δ(q0,b)  δ(q1,b)  {q0, q2}  {q1} = {q0, q1, q2}
Himpunan state TIDAK mengandung state AKHIR  kalimat ab
ditolak atau tidak diterima.

δ(q0 ,abc)  δ(q0 ,bc)  δ(q1 ,bc)  { δ(q0 ,c)  δ(q2 ,c)}δ(q1, c)
{{ q0 , q3 }{ q2 }}{ q1 } = {q0 , q1 , q2 ,q3 }
Himpunan state TIDAK mengandung state AKHIR  kalimat abc
ditolak atau tidak diterima .

 Untuk string input berikutnya : aabc, aabb tentukan sendiri untuk


54
latihan !
2. Berikut ini sebuah contoh kasus NFA (Q, ∑, δ, S, F). dimana :
Q = {q0, q1 , q2 ,q3 , q4 }
,

δ diberikan dalam tabel berikut :

 Untuk string input berikutnya : aabc, aabb tentukan sendiri


untuk latihan !
c). M(q 0 ,aabc) ⇒ M(q 0 ,abc) ∪ M(q1 ,abc) ⇒ {M(q 0 ,bc) ∪ M(q1 ,bc)} ∪ M(q1 ,bc)
⇒ {{M(q 0 , c) ∪ M(q 2 ,c)} ∪ M(q1, c)} ∪ M(q1, c)
⇒ {{{ q 0 , q 3}∪ { q 2 }} ∪ {q1}} ∪ {q1} = {q 0 , q1, q 2 ,q 3}
Himpunan stata tidak mengandung stata penerima ⇒ kalimat aabc tidak diterima(ditolak)
d). M(q 0 ,aabb) ⇒ M(q 0 ,abb) ∪ M(q1 ,abb) ⇒ {M(q 0 ,bb) ∪ M(q1 ,bb)} ∪ M(q1 ,bb)
⇒ {{M(q 0 , b) ∪ M(q 2 ,b)} ∪ M(q1, b)} ∪ M(q1, b)
⇒ {{{ q 0 , q 2 }∪ { q 2 , q 4 }} ∪ {q1}} ∪ {q1} = {q 0 , q1, q 2 , q 4 }
Himpunan stata tidak mengandung stata penerima ⇒ kalimat aabb diterima

55
,
CONTOH KASUS NON DETERMINISTIC FINITE AUTOMATA

3. Berikut ini sebuah contoh kasus NFA (Q, ∑, δ, S, F). dimana :


Q = {q0, q1 , q2 ,q3 , q4 }
,

δ diberikan dalam tabel berikut :

∑= {a, b,c} δ a b c

S = q0 q0 {q0 , q1} {q0 , q2 } {q0 , q3 }

F = {q4 } q1 {q1 , q4 } {q1 } {q1}


q2 {q2 } {q2, q4 } {q2}
q3 {q3 } {q3 } {q3, q4 }
q4   

Telusurilah string input berikut : abb, bcc dan cbb apakah


56
diterima atau ditolak mesin NFA ? Tentukan sendiri untuk .

latihan !
LATIHAN KASUS NON DETERMINISTIC FINITE AUTOMATA

1) Soal Latihan/TUGAS-PR :
Rancanglah diagram transisi untuk NFA berikut :
Q = {q0 , q1, q2 , q3 , q4} Σ = {0,1}
S = q0
F = {q2 , q4}
Fungsi transisi dari NFA tersebut diberikan dalam tabel transisi :

δ 0 1
q0 {q0, q3} {q0, q1} Telusurilah, apakah string input
q1 Ø {q2} (order = perintah) kalimat-kalimat
q2 {q2} {q2} berikut diterima NFA-machines di atas
q3 {q4} Ø 01, 010, 011, 100 ?
q4 {q4} {q4}
57 ,
LATIHAN KASUS NON DETERMINISTIC FINITE AUTOMATA

2) Soal Latihan :
Rancanglah diagram transisi untuk NFA berikut :
Q = {q0 , q1} Σ = {0,1}
S = q0
F = {q1}
Fungsi transisi dari NFA tersebut diberikan dalam tabel transisi :

δ 0 1
q0 {q0, q1} {q1} Telusurilah, apakah string input
q1 Ø {q0, q1} (order = perintah) kalimat-kalimat
berikut diterima NFA-machines di
atas
01, 010, 0010, 0011 ??
58
,
CONTOH KASUS NON DETERMINISTIC FINITE AUTOMATA

3) Berikut ini sebuah kasus NFA (Q, ∑, δ, S, F). dimana : .

Q = {q0, q1 , q2 ,q3 , q4 }.
δ diberikan dalam tabel berikut :
G = ({q0 , q1 , q2 , q3, q4 }, {0,1}, δ , q0 , {q2, q4}}

δ 0 1
q0 { q0,q3} {q0,q1}
q1 ε {q2}
q2 {q2} {q2}
q3 {q4} ε
q4 {q4} {q4}

Telusurilah, apakah string input (order = perintah) kalimat-


kalimat berikut diterima NFA-machines di atas :
101, 010, 100, 110 ?? 59
.
.

60
60
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN
BAIK DAN BENAR, MUNGKIN BISA MENJADI
21 - 28 July 2019

Teori Bahasa dan Otomata

EKUIVALENSI NFA KE DFA


KONVERSI NON-DETERMINISTIC KE
DETERMINISTIC FA

MATERI KULIAH : TEORI BAHASA DAN OTOMATA (KOMPUTASI)


DISUSUN OLEH : IR. U.DARMANTO SOER, M.KOM
EKUIVALENSI ANTAR DETERMINISTIC FINITE AUTOMATA

 Dua DFA M1 dan M2 dinyatakan ekivalen apabila L(M1) =


L(M2)
0
0
q0 q1
M1

q0

M2
62
TAHAPAN PENGUBAHAN KONVERSI

a) Dari sebuah mesin Non-deterministic Finite Automata


(NFA) dapat dibuat mesin Deterministic Finite
Automata (DFA)-nya yang ekuivalen (bersesuaian).

b) Ekuivalen disini artinya mampu menerima bahasa


yang sama.

63
Contoh Kondisi Ekuivalensi DFA dan NFA

(1)Mesin NFA (2)MESIN DFA

Meskipun yang satu Deterministik dan lainnya Non-


Deterministik, keduanya menerima bahasa yang sama, yang
dalam ekspresi regular = 0 (0 ∪ 1)* 64
Contoh Kondisi Ekuivalensi DFA dan NFA

1) Misalkan ingin membuat mesin DFA dari mesin NFA pada \

gambar ini.
Yang pertama dilakukan adalah membuat Tabel Transisi NFA
tersebut. Bila diketahui Σ = {0,1} maka tabel transisinya adalah :

65

.
Contoh Kondisi Ekuivalensi DFA dan NFA

Mulai dari state awal, q0, kemudian mengikuti transisinya untuk


membentuk state-state baru, untuk setiap state yang terbentuk diikuti
lagi transisinya sampai ter”cover” semua.

66
,
Contoh Kondisi Ekuivalensi DFA dan NFA
Contoh
Dimulai dengan state awal q0, seperti gambar di bawah : ,

 Selanjutnya telusuri state berikutnya yang diperoleh dengan


memanfaatkan tabel Transisinya, maka :
1. State q0 bila memperoleh input string 0 menjadi state {q0, q1}
2. State q0 bila memperoleh string input 1 menjadi state {q1}
Maka hasilnya :

67 ,
Contoh Kondisi Ekuivalensi DFA dan NFA

Selanjutnya, telusuri state-state baru yang terbentuk


1. State {q1} bila memperoleh input string 0 menjadi state Ø
2. State {q1} bila memperoleh string input 1 menjadi {q0, q1}
,

3. State {q0, q1} bila memperoleh string input 0 menjadi {q0, q1},
ini diperoleh dari δ(q0, 0) = {q0, q1} digabung δ(q1, 0) = Ø ,
maka hasilnya δ[{q0, q1}, 0] ={q0, q1}
4. State {q0, q1} bila memperoleh input string 1 menjadi state
{q0, q1} ini diperoleh dari δ(q0, 1) = {q1} digabung dengan
δ(q1, 1) = {q0, q1} maka hasilnya δ[{q0, q1}1] = {q0, q1}
5. Perhatikan bahwa state yang sama cukup ditulis sekali saja. 68
Contoh Kondisi Ekuivalensi DFA dan NFA

Perhatikan hasilnya pada gambar di bawah ini :

 Perhatikan bahwa state q1 menerima input string 0, menjadi


state Ø . Disini Ø digambarkan juga sebagai sebuah state.
69
Contoh Kondisi Ekuivalensi DFA dan NFA

 Selanjutnya, perhatikan semua state yang telah ditelusiri atau


sudah dirunut, tinggal state Ø . State Ø menerima input string 0
atau 1 akan menjadi state Ø atau δ( Ø , 0) = Ø dan δ( Ø, 1) = Ø
.

70
Contoh Kondisi Ekuivalensi DFA dan NFA

 Pada mesin NFA semula, himpunan state akhir adalah {q1).


Maka pada DFA hasil perubahan state-state akhir adalah semua
,

state yang mengandung {q1}.


Maka state akhirnya sekarang adalah state {q1} dan state {q0, q1}
atau secara formal : F = {{q1}, {q0, q1}}

71
Contoh Kondisi Ekuivalensi DFA dan NFA

Dengan demikian, DFA hasil ekuivalensi dengan


NFA, bisa dilihat pd gambar dibawah ini:

(1) NFA (2) DFA yang ekuivalen

72
Contoh Kondisi Ekuivalensi DFA dan NFA

2. Diberikan diagram transisi seperti gambar di bawah :

Ditanyakan :
a) Buatlah bentuk formal dan Tabel Transisi
b) Rancanglah Diagram DFA ekuivalen

73
,
Contoh Kondisi Ekuivalensi DFA dan NFA
Jawab :
,

Yang pertama dilakukan adalah membuat Tabel Transisi NFA


tersebut. Bila diketahui Σ = {a,b} maka tabel transisinya adalah :

δ a b
q0 {q0, q1} {q1}
q1 Ø Ø

Mulai dari state awal, q0, kemudian mengikuti transisinya untuk


membentuk state-state baru, untuk setiap state yang terbentuk diikuti
lagi transisinya sampai ter”cover” semua. 74

,
Contoh Kondisi Ekuivalensi DFA dan NFA

 Selanjutnya telusuri state berikutnya yang diperoleh dengan


memanfaatkan tabel Transisinya, maka :
1. State q0 bila memperoleh input string a menjadi state {q0, q1}
2. State q0 bila memperoleh string input b menjadi state {q1}
Maka hasilnya :

75
,
Contoh Kondisi Ekuivalensi DFA dan NFA

Selanjutnya, telusuri state-state baru yang terbentuk


,

1. State {q1} bila memperoleh input string a menjadi state Ø

2. State {q1} bila memperoleh string input b menjadi state Ø

3. State {q0, q1} bila memperoleh string input a menjadi {q0, q1},
ini diperoleh dari δ(q0, a) = {q0, q1} digabung δ(q1, a) = Ø ,
maka hasilnya δ[{q0, q1}, a] ={q0, q1}
4. State {q0, q1} bila memperoleh input string b menjadi state
{q1} ini diperoleh dari δ(q0, b) = q1 digabung dengan δ(q1, b)
= { Ø } maka hasilnya δ[{q1} 0] = q1
5. Perhatikan bahwa state yang sama cukup ditulis sekali saja. 76
,
Contoh Kondisi Ekuivalensi DFA dan NFA

 Perhatikan bahwa state q1 menerima input string a, menjadi ,

state Ø . Disini Ø digambarkan juga sebagai sebuah state.

 Pada mesin NFA semula, himpunan state akhir adalah {q1).


Maka pada DFA hasil perubahan state-state akhir adalah semua
state yang mengandung {q1}.
Maka state akhirnya sekarang adalah state {q1} dan state {q0,
q1} atau secara formal : F = {{q1}, {q0, q1}}

77

,
Contoh Kondisi Ekuivalensi DFA dan NFA

Dengan demikian, DFA hasil ekuivalensi dengan


,

NFA, bisa dilihat pd gambar dibawah ini :

b a,b

(1) NFA b
a,b

a
(2) DFA yang ekuivalen 78
,
TUGAS-2
TEORI BAHASA & OTOMATA
,

Ketentuan
1) Tugas diprint, menggunakan kertas ukuran A4, berat kertas 70 g

2) Huruf yang digunakan adalah Times new romance berukuran 12,

lebar spasi 1½.


3) Dijilid memakai plastik biru dan karton biru. Dilengkapi dengan

Cover sampul yang telah diberikan. Perhatikan cover sampul


tidak boleh diubah ukurannya, mahasiswa hanya diminta untuk
mengisi Nama, NIM, Kelas dan angkatan.
4) Dikumpulkan jelang perkuliahan berikutnya. 79
,
TUGAS-2
TEORI BAHASA & OTOMATA
1. Sebuah DFA mempunyai definisi formal sebagai berikut : ,

Q = {0, 1, 2, 3, 4} , Σ = {a,b} , S = { 0 }, F = {2, 4} , δ = tabel


transisi dapat dilihat pada tabel di bawah.

Tabel Transisi
Ditanyakan :
a. Designlah diagram Transisi ?
b. Tuliskan definisi Formalnya ?
c. Instruksi manakah yang dapat
diterima/dilaksanakan oleh
DFA tsb ?

80
TUGAS-2 / PR

2. Sebuah DFA mempunyai diagram transisi sebagai berikut,


diagram transisi dapat dilihat pada gambar di bawah. .

a a b
b b
q0 q1 q2
a

Rancanglah :
a. Tuliskan definisi Formalnya ?
b. Designlah Transition table ?
c. Instruksi manakah yang dapat diterima/dilaksanakan oleh DFA tsb ?

81
TUGAS-2 / PR

3. Diberikan diagram Transisi seperti gambar di bawah ini ;


,

11,0
01,1 01,0

00,0 S0 S1
11,1

10,1 00,1 10,0

Ditanyakan :
.

a) Buatlah definisi Formalnya ?


b) Rancanglah Tabel Transisinya ?
82
TUGAS-2 / PR
4. Diketahui DFSA, A = (Q, ∑, , S, F), dimana,
Q = {q0, q1, q2, q3} \

∑ = { a, b }
S = q0
F = {q0}
Tabel Transisi :

a) Rancanglah Diagram State/transisi-nya ?


b) Bila diberikan string bbabba, apakah mesin tersebut bisa
83
menerima atau ditolak ? .
TUGAS-2 / PR
5. Diberikan tabel transisi suatu mesin FSA seperti gambar di
bawah ini :
,

Keadaan f
x y
A A, B C
B A B
C B A, B
A, B A, B B, C
B, C A, B A, B

Ditanyakan :
a) Buatlah definisi Formalnya ?
b) Rancanglah diagram Transisinya ?

. 84
TUGAS-2 / PR
Soal No. 6 :
.

Seorang petani (P) dengan seekor serigala(S), kambing(K) dan


seikat sayuran/rumput (R) berada pada suatu sisi sungai. Tersedia
hanya sebuah perahu kecil yang hanya dapat dimuati dengan petani
tersebut dengan salah satu serigala, kambing atau rumput. Petani
tersebut harus menyeberangkan ketiga bawaannya kesisi lain
sungai. Tetapi jika petani meninggalkan serigala dan kambing pada
suatu saat, maka kambing akan dimakan serigala. Begitu pula jika
kambing ditinggalkan dengan sayuran/rumput, maka sayuran/
rumput akan dimakan oleh kambing. Mungkinkah ditemukan suatu
cara untuk melintasi sungai tanpa menyebabkan kambing atau
rumput dimakan ?
a. Buatlah kemungkinan kombinasi state ?
b. Rancanglah diagram Transisinya ? 85
TUGAS-2 / PR
7. DIBERIKAN DIAGRAM TRANSISI DFA SEPERTI GAMBAR DI BAWAH
INI : .

a b
a

S0 S1 S2 b

a b

Rancanglah :
.

a. Tuliskan definisi formalnya ?


b. Designlah Transition table ?
c. Bila diberikan string input aaaabab dan aaabbaba, apakah
86
akan diterima atau ditolak oleh mesin Otomata ?
TUGAS-2 / PR

TUGAS-2 / PR .

8. Misalkan harga pizza Rp20.000,- dipotong jadi 8 bagian,


Bila makan sepotong, bayar Rp2500
makan 2 potong, bayar Rp5000
makan 4 potong, bayar Rp10.000
– Harga/p = Rp20.000 / 8
Pizza berbentuk lingkaran, dengan radius r
– Luas pizza [lingkaran] = p x r2
– Luas sepotong pizza = 1/8(p x r2)
– Bila r = 20 cm, berapa harga per cm2 ? .

Disarankan untuk menjawab dengan menggunakan rancangan


program bhs C++.

87
9. Diberikan suatu diagram transisi seperti gambar sbb : ,

Ditanyakan :
a) Buatlah bentuk Formal dan Tabel Transisi
b) Rancanglah Diagram DFA Ekuivalen
88
10. Q = {p,q,r,s}
δ 0 1
Σ = {0,1} .

S=p P {P, Q} p
F = {s} Q R R
R S Ø
S S S

a) Buatlah Diagram NFA dari tabel diatas


b) Buatlah Diagram DFA Ekuivalennya

89
.

90
90
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK
DAN BENAR, MUNGKIN BISA MENJADI SOAL UTS !

Anda mungkin juga menyukai