Tbo2023
Tbo2023
& Otomata
Fitri Nuraeni, S.Kom, M.Kom
S1 Teknik Informatika
Institut Teknologi Garut
2022
• Mahasiswa mampu menguraikan ekuivalensi Non-
Deterministic Finite Automata dengan transisi
kosong ke bentuk NFA dan DFA (L6: C4)
• NFA dengan transisi kosong (𝜀 − 𝑁𝐹𝐴)
10/30/2023 2
Kilas Balik
10/30/2023 3
Contoh • Bahasa L didefinisikan dengan:
• V = {M, N}
• T = {a, b}
• S=M
• P={
• M → aM | bN
• N → bN | aM
}
Semua Aturan produksi memenuhi
aturan Tata Bahasa Reguler, sehingga
Bahasa L termasuk Bahasa Reguler
dan dapat menggunakan Otomata
jenis Finite State Automata (FSA)
10/30/2023 4
Jenis-jenis FSA
10/30/2023 5
Deterministic Non-Deterministic
Finite State Finite State
Automata (DFA) Automata (NFA)
10/30/2023 6
Deterministic Finite State
Automata (DFA)
10/30/2023 7
Cara Pembacaan String NFA
P R R R √
P X
10/30/2023 8
Ekuivalensi
• Pada Bahasa regular, kita dapat membuat sebuah DFA yang
ekuivalen dari bentuk NFA
• Bentuk NFA dapat dengan mudah dibuat
• Bentuk DFA dapat cepat membaca string
• Ekuivalen disini berarti kedua FSA tersebut dapat menerima
Bahasa yang sama.
10/30/2023 9
Proses
Ekuivalensi
NFA ke
DFA
10/30/2023 10
Non-Deterministic
Finite Automata (NFA)
dengan transisi kosong
𝜀 − 𝑁𝐹𝐴
10/30/2023 11
String Kosong (𝜺)
• String adalah deret simbol yang diambil dari alfabet (∑)
• String kosong (𝜀) adalah keadaan dimana tidak ada
kemunculan simbol dari anggota alfabet.
• Contoh FSA yang menerima 𝜀:
FSA disamping menerima Bahasa A, dimana
1
𝐴 = 𝑤 𝑤 𝑡𝑒𝑟𝑑𝑖𝑟𝑖 𝑑𝑎𝑟𝑖 1, 𝑤 ≥ 0, 𝑤 ∈ Σ}
S
10/30/2023 13
Contoh 𝜀-NFA
A
𝜀
B
𝜀
C
• 𝜀-NFA disamping:
• Dari A tanpa membaca input
a
b
𝜀 dapat berpindah ke B
• Dari B tanpa membaca input
b
D E dapat berpindah ke C
• Dari E tanpa membaca input
dapat berpindah ke B
10/30/2023 14
𝜀-NFA hasil penggabungan 2 FSA
NFA disamping menerima Bahasa A,
• Contoh 𝜀-NFA: dimana
1 𝐴 = 𝑤 𝑤 𝑡𝑒𝑟𝑑𝑖𝑟𝑖 𝑑𝑎𝑟𝑖 1 𝑑𝑒𝑛𝑔𝑎𝑛 𝑤 ≥ 0
𝒂𝒕𝒂𝒖 𝑤 𝑚𝑒𝑚𝑢𝑎𝑡 01, 𝑤 ∈ Σ}, Σ = {0,1}
0,1 0,1 Maka, w = {𝜀,1, 11, 111, 1111, …, (1)*,
S
𝜀 01, 010,101, …, (0+1)*.01.(0+1)*}
0 1
A B C
0,1 0,1
1
0 1
S A B C
10/30/2023 15
𝜀-NFA hasil Penyambungan 2 FSA
0,1
1
0 1
S A B C
NFA(A) NFA(B)
NFA(C) = NFA(B).(NFA(A)
0,1
1
0 1 𝜀
A B C S
10/30/2023 16
Contoh 1
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
10/30/2023 17
Contoh 1
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
NFA(C) = NFA(A)+NFA(B)
0,1
A
1
B NFA(A)
0,1
1 NFA(B)
P R 10/30/2023 18
Contoh 1
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
NFA(C) = NFA(A)+NFA(B)
0,1
Buatkan state awal & state akhir baru
1
A B
F
S
0,1
1
P R 10/30/2023 19
Contoh 1
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
10/30/2023 24
Contoh 2
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
NFA(D) = NFA(A).NFA(B)
10/30/2023 25
Contoh 2
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
0,1 0,1
1 𝜀 1
A B P R
10/30/2023 26
Contoh 2
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
NFA(D) = NFA(A).NFA(B)
0,1 0,1
1 𝜀 1
A B P R
10/30/2023 27
Contoh 3
• Terdapat 2 FSA seperti gambar dibawah ini:
NFA(A) NFA(B)
0,1 0,1
1 1
A B P R
NFA(D) = NFA(B).NFA(A)
0,1 0,1
1 𝜀 1
P R A B
10/30/2023 28
Diskusi Kelompok
10/30/2023 29
Ekuivalensi 𝜀 − 𝑁𝐹𝐴
ke Bentuk NFA &
DFA
10/30/2023 30
𝜺-closure suatu 𝜀-NFA
• 𝜀-closure adalah himpunan state-state yang dapat dicapai dari suatu state
tanpa membaca input.
• 𝜀-closure(Q) = himpunan state-state yang dapat dicapai dari state Q tanpa
membaca input.
𝜀 𝜀
A B C 𝜀-closure(A) = {A, B, C}
𝜀-closure(B) = {B, C}
b
a 𝜀 𝜀-closure(C) = {C}
𝜀-closure(D) = {D}
b
D E 𝜀-closure(E) = {B, C, E}
10/30/2023 31
Tentukan 𝜺-closure NFA berikut!
𝜀 a
S P Q
𝜀 b 𝜀
R T
10/30/2023 32
Tentukan 𝜺-closure NFA berikut!
𝜀 a
• 𝜀-closure(S) = {S, P, R}
S P Q
• 𝜀-closure(P) = {P, R}
𝜀 b 𝜀
• 𝜀-closure(Q) = {Q, T}
R T • 𝜀-closure(R) = {R}
• 𝜀-closure(T) = {T}
10/30/2023 33
Tentukan 𝜺-closure NFA berikut!
𝜀 a
• 𝜀-closure(S) = {S, P, R}
S P Q
• 𝜀-closure(P) = {P, R}
𝜀 b 𝜀
• 𝜀-closure(Q) = {Q, T}
R T • 𝜀-closure(R) = {R}
• 𝜀-closure(T) = {T}
10/30/2023 35
Contoh 4
• Buatkan NFA untuk 𝜀-NFA dibawah ini!
𝜀 a
S P Q
𝜀 b
b
R T
10/30/2023 36
Contoh 4
• Buat tabel transisi untuk 𝜀-NFA semula
𝜀 a 𝚺
S P Q Q
a B
b →S ∅ ∅
𝜀
P Q ∅
b Q ∅ T
R T
R ∅ T
*T ∅ ∅
10/30/2023 37
Contoh 4
• Tentukan 𝜀-closure untu setiap state
𝜀 a • 𝜀-closure(S) = {S, P, R}
S P Q
• 𝜀-closure(P) = {P, R}
b
𝜀 • 𝜀-closure(Q) = {Q}
b • 𝜀-closure(R) = {R}
R T
• 𝜀-closure(T) = {T}
10/30/2023 38
Contoh 4
• Tentukan 𝜀-closure untu setiap statCarilah fungsi transisi hasil
perubahan (𝛿’) dari 𝜀-NFA ke NFA, dengan rumus 𝛿 ′ =
𝜺_closure(𝛿(𝜺_closure(state), input))
Q
𝚺 • 𝜀-closure(S) = {S, P, R}
a B
→S ∅ ∅ • 𝜀-closure(P) = {P, R}
P Q ∅ • 𝜀-closure(Q) = {Q}
Q ∅ T
• 𝜀-closure(R) = {R}
R ∅ T
*T ∅ ∅ • 𝜀-closure(T) = {T}
10/30/2023 39
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 40
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S =𝜀-closure(𝛿(𝜀-closure(S),a))
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 41
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S =𝜀-closure(𝛿({𝑆, 𝑃, 𝑅}a))
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 42
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
=𝜀-closure(𝛿(S,a); 𝛿(P,a);
Q ∅ T • 𝜀-closure(R) = {R} →S
𝛿(R,a))
R ∅ T
• 𝜀-closure(T) = {T} P
*T ∅ ∅
Q
R
*T
10/30/2023 43
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S =𝜀-closure(∅; 𝛿(P,a); 𝛿(R,a))
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 44
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S =𝜀-closure(∅; 𝑄; 𝛿(R,a))
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 45
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S =𝜀-closure(∅; 𝑄; ∅)
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 46
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄}
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 47
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} =𝜀-closure(𝛿(𝜀-closure(S),b))
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 48
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} =𝜀-closure(𝛿({𝑆, 𝑃, 𝑅},b))
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 49
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
=𝜀-closure(𝛿(S,b); 𝛿(P,b);
Q ∅ T • 𝜀-closure(R) = {R} →S {𝑄}
𝛿(R,b))
R ∅ T
• 𝜀-closure(T) = {T} P
*T ∅ ∅
Q
R
*T
10/30/2023 50
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} =𝜀-closure(∅; ∅; 𝑇)
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 51
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} {𝑇}
Q ∅ T • 𝜀-closure(R) = {R}
P
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 52
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} {𝑇}
Q ∅ T • 𝜀-closure(R) = {R}
=𝜀-closure(𝛿(𝜀-
R ∅ T P
• 𝜀-closure(T) = {T} closure(P),a))
*T ∅ ∅
Q
R
*T
10/30/2023 53
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} {𝑇}
Q ∅ T • 𝜀-closure(R) = {R}
P {𝑄}
R ∅ T
• 𝜀-closure(T) = {T} Q
*T ∅ ∅
R
*T
10/30/2023 54
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} {𝑇}
Q ∅ T • 𝜀-closure(R) = {R}
=𝜀-closure(𝛿(𝜀-
R ∅ T P {𝑄}
• 𝜀-closure(T) = {T} closure(P),b))
*T ∅ ∅
Q
R
*T
10/30/2023 55
Contoh 4
• 𝛿 ′ = 𝜺_closure(𝛿(𝜺_closure(state), input))
𝚺 𝜹′
Q • 𝜀-closure(S) = {S, P, R}
a B 𝚺
• 𝜀-closure(P) = {P, R} Q
→S ∅ ∅
a B
P Q ∅ • 𝜀-closure(Q) = {Q}
→S {𝑄} {𝑇}
Q ∅ T • 𝜀-closure(R) = {R}
P {𝑄} {𝑇}
R ∅ T
• 𝜀-closure(T) = {T} Q {∅} {𝑇}
*T ∅ ∅
R {∅} {𝑇}
*T {∅} {∅}
10/30/2023 56
Contoh 4
• buatkan tabel transisi dan diagram transisi dari NFA hasil
ekuivalensi a
𝜹′
a
𝚺 S P Q
Q
a B
→S {𝑄} {𝑇} b b b
P {𝑄} {𝑇}
b
Q {∅} {𝑇} R T
R {∅} {𝑇}
*T {∅} {∅}
10/30/2023 57
Contoh 4
• Tentukan state-state akhir NFA, yaitu state-state akhir semula
ditambah dengan state-state yang 𝜀-closurenya menuju ke
salah satu dari state akhir. a
• 𝜀-closure(S) = {S, P, R}
a
• 𝜀-closure(P) = {P, R} S P Q
• 𝜀-closure(Q) = {Q}
b b b
• 𝜀-closure(R) = {R}
• 𝜀-closure(T) = {T} b
R T
Karena tidak ada state yg 𝜀-closure memuat
state akhir, maka state akhir tetap T
10/30/2023 58
Contoh 4
• Hasil ekuivalensi
a
𝜀 a a
S P Q S P Q
𝜀 b b b b
b b
R T R T
10/30/2023 59
Contoh 5
𝜀 a a
S P Q S P Q
𝜀 b b b b
b b
R T R T
10/30/2023 60
Contoh 5
• Buatkan DFA yang ekuivalensi!
a
𝜹′
a
S P Q 𝚺
Q
a B
b b b →S {𝑄} {𝑇}
P {𝑄} {𝑇}
b
R T Q {∅} {𝑇}
R {∅} {𝑇}
*T {∅} {∅}
10/30/2023 61
Contoh 5
• Buatkan DFA yang ekuivalensi!
a
Q
a
a
S P Q S
b b b b
b
R T T
10/30/2023 62
Contoh 5
• Buatkan DFA yang ekuivalensi!
a
Q
a a
a
S P Q S
b ∅
b b b b
b
R T T
10/30/2023 63
Contoh 5
• Buatkan DFA yang ekuivalensi!
a
Q
a a
a
S P Q S
b ∅
b b b b
a,b
b
R T T
10/30/2023 64
Contoh 5
• Buatkan DFA yang ekuivalensi!
a
Q
a a a,b
a
S P Q S
b ∅
b b b b
a,b
b
R T T
10/30/2023 65
Diskusi
Kelompok
10/30/2023 66
Diskusi Kelompok
10/30/2023 67
Tugas 06
Ekuivalensi 𝜀-NFA ke NFA & DFA
10/30/2023 68
L6: • Carilah materi-materi dari berbagai sumber mengenai:
Ekuivalensi 1. Bagaimana proses ekuivalensi dari 𝜀-NFA ke NFA,
𝜺-NFA ke melalui sebuah contoh bahasa regular
NFA & DFA 2. Bagaimana proses ekuivalensi dari 𝜀-NFA ke DFA,
melalui sebuah contoh bahasa regular
UTS
Capaian per tahapan pembelajaran
(UTS)
Mahasiswa mampu Mahasiswa mampu
Mahasiswa mampu
mengetahui teori bahasa, memahami definisi
memahami konsep
jenis-jenis bahasa dan Otomata, tata bahasa
kompilator dan aturan
penerjemah bahasa chomsky & jenis
produksi bahasa (C2)
formal (C1) otomatanya (C2)
Mahasiswa mampu
Mahasiswa mampu Mahasiswa mampu
menguraikan ekuivalensi
menggunakan Bahasa membuat diagram Non-
Non-Deterministic Finite
Reguler dan Deterministic Deterministic Finite
Automata dengan transisi
Finite Automata (DFA) Automata dan DFA yang
kosong ke bentuk NFA
(C3) akuivalen (C4)
dan DFA (C4)
10/30/2023 73
Fitri Nuraeni
fitri.nuraeni@itg.ac.id
WA:
081322356516
Thank you
10/30/2023 74