َّ الرحْ َم ِن
َّ ِــــــــــــــــم اﷲ
ِ سْ ِب
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. 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
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
ALGORITMA
9
PENDAHULUAN
10
10
PENDAHULUAN
Siapa yang melakukan perintah ? kita (Human = manusia)
Siapa yang diperintah ? Mesin (machines)
11
PENDAHULUAN
12
12
PENDAHULUAN
Proses Pemikiran atau Abstraksi
Mesin abstrak
sebagai model komputasi
13
13
PENDAHULUAN
14
14
2. MESIN KEADAAN HINGGA (MKH) = FINITE STATE
. MACHINE (FSM)
15
15
MESIN KEADAAN HINGGA = FINITE STATE MACHINE
16
16
MESIN KEADAAN HINGGA = FINITE STATE MACHINE
2. menggunakan Algoritma
17
17
Mesin Pembuka – Penutup Pintu
Mana keadaannya ?
.
input
pintu tertutup pintu terbuka
19
MESIN KEADAAN HINGGA = FINITE STATE MACHINE
.
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
.
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
𝞭 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
27
.
26
.
M = ( Q, ∑, 𝞭, S, F )
Keterangan
31
FINITE STATE AUTOMATA (FSA) -AUTOMATA
KEADAAN HINGGA
32
,
FINITE STATE AUTOMATA (FSA) -AUTOMATA
KEADAAN HINGGA
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.
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 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
46
2. NON-DETERMINISTIC FINITE AUTOMATA (NFA) –
(AUTOMATA HINGGA NON-DETERMINISTIK)
48
,
JAWAB :
a, b
a
a,b
q0 q1
,
49
CONTOH KASUS NON DETERMINISTIC FINITE AUTOMATA
a
a, b .
a,b
q0 q1
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
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 .
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
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
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
21 - 28 July 2019
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
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
70
Contoh Kondisi Ekuivalensi DFA dan NFA
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 :
,
δ a b
q0 {q0, q1} {q1}
q1 Ø Ø
,
Contoh Kondisi Ekuivalensi DFA dan NFA
75
,
Contoh Kondisi Ekuivalensi DFA dan NFA
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
77
,
Contoh Kondisi Ekuivalensi DFA dan NFA
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
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
00,0 S0 S1
11,1
Ditanyakan :
.
∑ = { 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 :
.
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 !