Anda di halaman 1dari 17

PERTEMUAN VI

Deterministik Dan Non Deterministik FSA


FSA dikelompokkan menjadi Deterministik FSA (DFA) dan
Non Deterministik FSA (NFA) berdasarkan sifat fungsi
transisinya.
DFA (Detreministik FSA):
Jika pada setiap state dari FSA tersebut apabila menerima
input sebuah simbol maka HANYA ada SATU NEXT STATE
yang mungkin dituju.
NFA (Non Detreministik FSA):
Jika FSA tersebut menerima input simbol maka minimal
ada satu state yang akan berpindah ke LEBIH DARI SATU
NEXT STATE yang mungkin dituju.
1

Deterministik Dan Non Deterministik FSA


Contoh:
Perhatikan gambar FSA a) dan FSA b) berikut.
Tunjukkan gambar a) ini adalah NFA:
Tunjukkan gambar b) ini adalah DFA:
Gambar a) :
0,1
Start

0,1

S0

S1

S2

0
Gambar b) :
Start

0
S0

S1

S2

0
2

Deterministik Dan Non Deterministik FSA


Jawab:
Gambar a):
Dari S0 jika menerima masukan 0 dapat memilih ke salah
satu NEXT state yaitu S1 atau S2.
Dari S1 jika menerima masukan 1 dapat ke S2 atau tetap di
S1.
Dengan demikian gambar diatas adalah NFA.
Gambar b):
Pada setiap state, jika menerima masukan selalu HANYA
satu NEXT state yang dituju.
Dengan demikian gambar b) adalah DFA.
3

Konversi dari NFA ke DFA


Apabila dimiliki suatu FSA, misalnya M = (S, , , S0 dan F)
yang merupakan suatu NFA, maka selalu akan dapat
dibuat FSA baru yang merupakan DFA yang akan
mengenali string yang sama dengan NFA.
Misalkan DFA baru tersebut adalah M*={S*, *, *, S0* dan
F*} dimana:
* = ;
S0 * = S 0
S* = himpunan state yang baru
* = fungsi transisi yang baru
F* = himpunan final state yang baru
DFA hasil konversi NFA berbeda dalam himpunan state,
fungsi transisi dan final statenya.
4

Konversi dari NFA ke DFA


DFA hasil konversi NFA berbeda dalam himpunan state,
fungsi transisi dan final statenya.
Himpunan state yang baru merupakan gabungan dari nextstate yang membentuk himpunan state lebih dari satu.
Final state yang baru adalah gabungan next state-next
state apabila ia mengandung satu atau lebih final state.
Untuk proses konversi NFA ke DFA dapat dilakukan
dengan membuat diagram pohon transisi.

Konversi dari NFA ke DFA


Contoh:
FSA berikut merupakan FSA mengenal bilangan kelipatan
4 yang merupakan suatu NFA. Carilah konversi NFA
tersebut menjadi suatu DFA.
NFA: Pengenal string : (0,1)*00 (bilangan kelipatan 4
(biner))
0,1
Start
0
0
S0

S1

S2

Konversi dari NFA ke DFA


Jawab:
FSA diatas yang menyebabkan merupakan NFA adalah
pada state S0 apabila menerima masukan 0 maka nextstate nya tidak pasti, yaitu dapat tetap di S0 atau pindah ke
S1. Apabila unsur ini dapat dielimir maka konversi dapat
dilakukan.
Jika kita lihat diagram diatas NFA nya adalah:
M=(S, , , S0 and F)
Dengan: S={S0, S1, S2}

(S0,0)={S0,S1}

={0,1}

(S0,1)=S0

F={S2}

(S1,0)=S2
7

Konversi dari NFA ke DFA


Selanjutnya dapat disusun diagram pohon transisi sbb:
({S0,S1,S2},0)={S0,S1,S2}
({S0,S1},0)={S0,S1,S2}
(S0,0)={S0,S1}

({S0,S1,S2},1)={S0}
({S0,S1},1)={S0}

S0
(S0,1)={S0}

Gambar Proses Konversi

Pohon transisi diperoleh dengan menggabungkan next-state yang


mungkin lebih dari satu menjadi suatu himpunan-next state yang pada
gilirannya dianggap sebagai suatu state baru. Misal apabila pada state
S0 diberi masukan 0 maka ada dua next-state yang mungkin, yaitu S0
dan S1, ini dihimpun menjadi satu himpunan, yaitu {S0,S1}. Jika
dilanjutkan {S0,S1} dapat masukan 0 maka next-state nya menjadi
himpunan {S0,S1,S2) dst.
Hasil akhir yang diperoleh:
M*=(S*,*,*,S0* dan F*)
8

Konversi dari NFA ke DFA


Dengan:
S*={{S0}, {S0,S1} dan {S0,S1,S2}}
F*={{S0,S1,S2}}
*=seperti terlihat dalam diagram pohon atau dapat dibandingkan sbb:
State

S0

S0,S1

S0

S1

S2

S2

{S0}

{S0,S1}

S0

{S0,S1}

{S0,S1,S2}

S0

{S0,S1,S2
}

{S0,S1,S2}

S0

State

Tabel Untuk FSA semula NFA

Dikonversi menjadi tabel ini


(lihat diagram pohon)

Konversi dari NFA ke DFA


Dengan demikian diagram konversi nya adalah:
DFA: string yang dikenali adalah sama, yaitu: (0,1)*00
1
Start

S0

0
0

{S0,S1}

{S0,S1,S2}

1
1
Hasil konversi NFA ke DFA

10

FSA Sebagai Pengenal Bahasa Reguler


FSA baik DFA maupun NFA merupakan pengenal terhadap
kelas bahasa reguler yang dapat dicirikan sbb:
1. Aturan bahasa reguler memiliki aturan produksi :
=HANYA terdiri dari 1 simbol Non terminal saja, atau ||
=1

=dalam bentuk salah satu diantara : a, aB, atau


2. Tiap aturan produksi yang mungkin dapat diwakili oleh
gerakan dalam FSA sbb:
a. Ekspresi reguler diwakili oleh gerakan:
S
start
b. Ekspresi regular diwakili oleh gerakan:
S0
start
11

FSA Sebagai Pengenal Bahasa Reguler


c. Ekspresi regular a, atau aturan produksi: Aa diwakili :

aA

Start

S1

d. Aturan AaB di wakili oleh:

Start

e. Aturan A di wakili oleh:


A

f. Aturan produksi rekursif: AaA di wakili oleh:

a
A

Jika dimiliki grammar regular G tertentu maka akan dapat ditemukan


FSA yang mampu mengenali bahasa yang dibangkitkan oleh grammar
tersebut. Demikian juga jika dimiliki suatu FSA maka akan dapat
ditentukan tata bahasa regular yang membangkitkan bahasa yang
dikenali FSA tersebut.

12

FSA Sebagai Pengenal Bahasa Reguler


Contoh:
Tentukan tata-bahasa regular yang mengenali bahasa yang
dibangkitkan oleh FSA berikut:
0

Start

S0

S1

S2

0
Jawab:
G(, N, S, P); dimana = {0,1}
N={S,A,B} yakni dengan mengamati
diagram dan menganalogikan state-state se bagai non terminal, yaitu S0
terkait dengan non terminal S, S1 terkait dengan non terminal A dan S2
terkait dengan non terminal B. jika diagram diuraikan setiap tahapnya akan
berkait dengan aturan-aturan produksi P yang diuraikan sbb:
13

FSA Sebagai Pengenal Bahasa Reguler


Start
0
S1
S1

Start

S0

S1

Analog dengan aturan S1A

Analog dengan aturan A0A


S2dengan
1Analog

A1B

dengan
S0B
SAnalog
S2
0

0
S2
Analog dengan B
Jadi ada 5 aturan produksi yang jadi bagian tata bahasa
yang membangkitkan bahasa yang sama dengan bahasa
yang dikenali FSA tersebut yaitu:

14

Jadi ada 5 aturan produksi yang jadi bagian tata bahasa


yang membangkitkan bahasa yang sama dengan bahasa
yang dikenali FSA tersebut yaitu:
P={S1A, A0A, A1B, S0B, B}
Contoh:
Tentukan FSA dan diagram konversinya yang mampu
mengenali bahasa yang dibangkitkan oleh grammar berikut
ini:
G(, N, S, P): dimana ={0,1} N={S,A,B} dan dengan P:
{S0A; A0A; A1B; B1B dan B}
Jawab: Jika aturan produksi tersebut dirinci menjadi:
1.S0A
3. A1B
5. B
2.A0A
4. B1B
15

FSA Sebagai Pengenal Bahasa Reguler


Penurunan string dapat menempuh aturan : 1, 3, 5 yaitu:
S0A,01B01=01
Atau aturan: 1 diteruskan 2 (diulang tak terbatas)
dilanjutkan 3, kemudian 4 (diulang tak terbatas) dan aturan
5: yaitu:
S0A00A000a00A001B0011B0
0111B001
sehingga bahasa yang dibangkitkan oleh grammar tersebut
Adalah:
0
1
Start
0
1
S0
S1
S2

16

FSA Sebagai Pengenal Bahasa Reguler


Contoh:
Tentukan FSA yang mampu mengenali bahasa dan tata bahasa nya
untuk bahasa yang mewakili ekspresi bilangan real yang dapat
ditulis sebagai: xxx.yyyy; dimana {x,y | 0, 1, 2, 3, 4, 5, 6,7,8,9}
Jawab:
Untuk tata bahasa dapat dituliskan sbb:
G(, N, S, P): dimana ={0,1} N={S, A} dengan aturan produksi:
S0S|1S|2S|3S|4S|5S|6S|7S|8S|9S|A
A0A|1A|2A|3A|4A|5A|6A|7A|8A|9A|
FSA sebagai berikut:
0,1,2,3,4,5,6,7,8,9
0,1,2,3,4,5,6,7,8,9

Start

S0

S1
17

Anda mungkin juga menyukai