ســــــــــــــــحم ا ح
بح ح
TEORI BAHASA DAN OTOMATA
(KOMPUTASI)
e-mail : darmantosoer@pelitabangsa.ac.id
FSM : FSA
FSA : DFA dan NFA
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. Handout (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
Hitung dulu B, kemudian hitung Rp5.000 – B = Rp2.000,8
Lalu bedanya apa ?
8
PENDAHULUAN
Kalkulasi : proses melakukan perhitungan dalam
penyelesaian masalah
.
Komputasi : proses menjalankan urutan langkahlangkah
dalam penyelesaian masalah
.
Apa itu urutan langkahlangkah ?
ALGORITMA
9
PENDAHULUAN
10
10
PENDAHULUAN
Siapa yang melakukan perintah ? kita (Human = manusia)
Siapa yang diperintah ? Mesin (machines)
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 M K H 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 ?
.
input
pintu tertutup pintu terbuka
19
MESIN KEADAAN HINGGA = FINITE STATE
MACHINE
S0 = keadaan pintu tertutup
.
S1 = keadaan pintu.
1 = perintahterbuka
buka pintu
0 = perintah tutup
1,a
a = pintu pintu
membuka
b = pintu menutup
input
S1
S0
0,b
19
19
MESIN KEADAAN HINGGA = FINITE STATE
MACHINE
1,a
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
1,a
0,0
1, 0
S0 S1
input
0,b
21
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)
.
S 1 0, 1
1,1
1, 0
0,1
S 0 S 3
0,0
1,0 0,0
S2
Rancanglah tabel transisinya ?
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
S0 S 1
00,0
11,1
27
.
26
.
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
31
FINITE STATE AUTOMATA (FSA)
AUTOMATA KEADAAN HINGGA
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
33
F = himpunan state-state FINAL .
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
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
37
q2 q1 q2
JAWAB :
c. Pada mesin otomata tersebut bila diberi input string ”abb” maka :
�(q0, abb) = �(q0, bb) = �(q1, b) = q2
38
Kesimpulan : ,
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
110 41
111
FSA SEBAGAI PENGENAL STRING
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 S
1 S3
3
43
.
FSA SEBAGAI PENGENAL STRING
Jawab :
Dari diagram terlihat bahwa final-state adalah S3. Pergerakan state yang
44
L(M) = { (0,1)110* 010* } = { ((0,1)11 01)0* }
.
45
45
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN BENAR, 45
MUNGKIN BISA MENJADI SOAL UTS !
2. NON-DETERMINISTIC FINITE 14 - 20 July 2019
46
2. NON-DETERMINISTIC FINITE AUTOMATA
(NFA) – (AUTOMATA HINGGA NON-
DETERMINISTIK)
Nondeterministic 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
49
,
CONTOH KASUS NON DETERMINISTIC FINITE
AUTOMATA
a
a, b .
a,b
q0 q1
a,b,c a,b,c
L(M) = {ab, abc, aabc, aabb}
a
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 tracingnya berakhir di state AKHIR, atau
himpunan state setelah membaca string tersebut
mengandung state AKHIR
SOAL LATIHAN
Telusurilah, apakah kalimatkalimat 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 .
55
,
CONTOH KASUS NON DETERMINISTIC FINITE
AUTOMATA
∑= {a, b,c} δ a b c
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
(order = perintah) kalimat-kalimat
q1 Ø {q2}
berikut diterima NFA-machines di atas
q2 {q2} {q2}
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
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}
60
60
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN
BENAR, MUNGKIN BISA MENJADI SOAL UTS !
21 - 28 July 2019
Dua DFA M1 dan M2 dinyatakan ekivalen apabila L(M1) =
L(M2)
0
0
q0 q1
M1
q0
M2
62
TAHAPAN PENGUBAHAN
KONVERSI
63
Contoh Kondisi Ekuivalensi DFA dan NFA
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
66
,
Contoh Kondisi Ekuivalensi DFA dan NFA
Contoh
Dimulai dengan state awal q0, seperti gambar di bawah : ,
67
,
Contoh Kondisi Ekuivalensi DFA dan NFA
Selanjutnya, telusuri state-state baru yang terbentuk
1.State {q1} bila memperoleh input string 0 menjadi state Ø
3.State {q0, q1} bila memperoleh string input 0 menjadi {q0, q1},
Ø
ini diperoleh dari δ(q0, 0) = {q0, q1} digabung δ(q1, 0) = , maka
4.State {q0, q1} bila memperoleh input string 1 menjadi state {q0,
70
Contoh Kondisi Ekuivalensi DFA dan NFA
Maka state akhirnya sekarang adalah state {q1} dan state {q0, q1}
71
Contoh Kondisi Ekuivalensi DFA dan NFA
72
Contoh Kondisi Ekuivalensi DFA dan NFA
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 ,
δ a b
q0 {q0, q1} {q1}
q1 Ø Ø
,
Contoh Kondisi Ekuivalensi DFA dan NFA
75
,
Contoh Kondisi Ekuivalensi DFA dan NFA
Selanjutnya, telusuri state-state baru yang terbentuk
1.State {q1} bila memperoleh input string a 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
Maka state akhirnya sekarang adalah state {q1} dan state {q0, q1}
77
,
Contoh Kondisi Ekuivalensi DFA dan NFA
b a,b
(1) NFA b
a,b
a
a
(2) DFA yang ekuivalen 78
,
TUGAS-2
TEORI BAHASA & OTOMATA ,
Ketentuan
1)Tugas diprint, menggunakan kertas ukuran A4, berat kertas 70 g
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
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
11,0
01,1 01,0
S0 S 1
00,0
11,1
Ditanyakan :
a) Buatlah definisi Formalnya ?
.
∑ = { a, b }
S = q0
F = {q0}
Tabel Transisi :
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
.
a b
a
S0 S1 S2 b
a b
Rancanglah : .
TUGAS-2 / PR .
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
89
.
90
90
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN BENAR,
MUNGKIN BISA MENJADI SOAL UTS !