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,


Phone : 021-82405667 Mobile
Bekasi : 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
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 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                          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 ?
.

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.

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

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)
.

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

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
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

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 S
1 S3
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 DAN BENAR, 45
MUNGKIN BISA MENJADI SOAL UTS !
2. NON-DETERMINISTIC FINITE 14 - 20 July 2019

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
51
berikut diterima NFA-machines di atas :
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
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 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
(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

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 :
59
101, 010, 100, 110 ?? .
.

60
60
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN
BENAR, MUNGKIN BISA MENJADI SOAL UTS !
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} 68

5.Perhatikan bahwa state yang sama cukup ditulis sekali saja.


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 76
,

5.Perhatikan bahwa state yang sama cukup ditulis sekali saja.


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 


(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

S0  S 1 
00,0
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 ?
85
b. Rancanglah diagram Transisinya ?
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 akan
86
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