Anda di halaman 1dari 54

‫اار ِحيم‬

َّ ‫الرحْ َم ِن‬
َّ ِ‫ــــــــــــــــم اﷲ‬
ِ ‫س‬ْ ِ‫ب‬
TEORI BAHASA DAN OTOMATA
(KOMPUTASI)

e-mail : darmantosoer@pelitabangsa.ac.id

Jl. Jati V Blok H/96 Rt 10/12 Perum. Jatimulya, Bekasi


Phone : 021-82405667 Mobile : 081317222010
e-mail : darmantosoer@yahoo.com e-mail : darmasoer@gmail.com 1
TEORI BAHASA DAN OTOMATA (KOMPUTASI)
(COMPUTATION THEORY) ‫ــــــــــــــــم اﷲِ َّالرحْ َم ِن َّاار ِحيم‬
ِ ‫س‬ْ ِ‫ب‬

FSM : FSA DAN NFA

MATERI KULIAH : TEORI BAHASA DAN OTOMATA


(KOMPUTASI)
DISUSUN OLEH : IR. U.DARMANTO SOER, MKOM

STT PELITA BANGSA


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 yg 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 kalo 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 5000 – 3(Rp1000) = Rp 2000

 Komputasi
A : banyaknya barang yang dibeli
B : Banyaknya pembelian = Rp1000 x A
U : uang kembalian = Rp5000 – B
Hitung dulu B, kemudian hitung Rp5000 – B
8 Bedanya apa ?
PENDAHULUAN
Kalkulasi : proses melakukan perhitungan dalam .

penyelesaian masalah
Komputasi : proses menjalankan urutan langkah-langkah
. dalam penyelesaian masalah

 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 ?
 Kita harus memberikan urutan perintah yang dapat dipahami

 Bika urutan perintah salah, hasilnya akan salah (latihan algoritma


sederhana)
Bagaimana kalau yang menjalankan perintah adalah MESIN ?

10
PENDAHULUAN
 Siapa yang melakukan perintah ?  kita (manusia)
 Siapa yang diperintah ?  Mesin

 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 dgn meng-gunakan
bahasa kita
f. memberitahukan bahwa sudah selesai melaksanakan perintah
Bagaimana prinsip mesin tersebut ?

11
PENDAHULUAN

Interaksi Manusia - Mesin


MANUSIA MESIN MANUSIA

perintah  ?  hasil pelaksanaan

bahasa bahasa bahasa


manusia mesin manusia

antar muka = antar muka =


translator interface

12
PENDAHULUAN
Proses Pemikiran atau Abstraksi

Bagaimana prinsip mesin tersebut ?

Mesin abstrak
sebagai model komputasi

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
2. MESIN KEADAAN HINGGA (MKH) = FINITE STATE
. MACHINE (FSM)

 Mesin Keadaan Hingga – Finite State Machine


mesin seperti apa itu ?

15
MESIN KEADAAN HINGGA = FINITE STATE MACHINE

Mesin Keadaan Hingga

input MKH output


- himp.hingga keadaan
- transisi keadaan

uang logam segelas minuman


teks: 1 0
0 1

16
MESIN KEADAAN HINGGA = FINITE STATE MACHINE

Bagaimana cara mesin menyajikan ?


.

1. menggunakan Graf berarah

2. menggunakan Algoritma

17
Mesin Pembuka – Penutup Pintu
Mana keadaannya ?
.

Mana input ? Mana Output ?

Buka pintu - pintu membuka

pintu tertutup pintu terbuka

Tutup pintu - pintu menutup

18
MESIN KEADAAN HINGGA = FINITE STATE MACHINE
.

S0 = keadaan pintu tertutup


S1 = keadaan pintu terbuka .

1 = perintah buka pintu


0 = perintah tutup pintu
1,a
a = pintu membuka
b = pintu menutup

pintu terbuka = S1
pintu tertutup = S0

0,b

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
= S0 = S1

Tanpa perintah,
Tanpa perintah,
pintu tak menutup
pintu tak membuka
0,b
Tutup pintu - pintu menutup

20
Rancanglah tabel transisi ??
MESIN KEADAAN HINGGA = FINITE STATE MACHINE

Mesin Pembuka – Penutup Pintu

1,a

0,0
1, 0
S0 S1

0,b

Rancanglah tabel transisi ??


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

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
.

22
MESIN KEADAAN HINGGA = FINITE STATE MACHINE
2. Mesin Keadaan Hingga (finite state machine)
.

S1 0, 1
1,1

1, 0
0,1
S0 S3
0,0
1,0 0,0

Rancanglah tabel transisinya ?


S2
.

1,1
23
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

24
4. Rancanglah diagram transisi dari tabel transisi di bawah ini,
bila q2 merupakan final state ? .

𝞭 a
q0 {q1,q3}
q1 q2
q2 -
q3 -

25
5. Rancanglah tabel transisi dari diagram transisi di bawah ini ?
,

11,0
01,1 01,0

00,0 S0 S1
11,1

10,1 00,1 10,0

26
.
.

TERIMA KASIH ATAS PERHATIANNYA. .


KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN
BENAR, MUNGKIN BISA MENJADI SOAL UTS , UAS !
25
.

29
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN
BENAR, MUNGKIN BISA MENJADI SOAL UTS , UAS !
26
25 June 2018

1. FINITE STATE AUTOMATA (FSA) –


AUTOMATA KEADAAN HINGGA (AKH)
 Model matematika suatu sistem yang menerima input
dan output diskrit
 Mesin automata 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
checker (pengecek parity).

30
25 June 2018

Finite State Automata (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.
S  Q : state AWAL = S

F  Q : himpunan state AKHIR = F
31
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.
Dalam FSA juga dikenal himpunan state-state tertentu yang disebut sabagai FINAL
STATE. Perubahan dari satu state ke state berikutnya mengikuti sturan tertentu yang
dirumuskan sebagai suatu FUNGSI transisi
 Secara formal FSA dapat didefinisikan sebagai TUPLE-5 : Kumpulan dari 5
himpunan, atau dinotasikan sebagai : FSA adalah  Perilaku Finite State Automata
M = ( Q, ∑ , 𝞭 , S0 dan F) diekspresikan dalam bentuk tabel
dimana : transisi atau dalam bentuk diagram
Q = himpunan terhingga dari state-state transisi.
∑ = himpunan terhingga dari simbol-simbol masukan pada mesin .

𝞭 = fungsi transisi yang mengatur gerakan mesin


S0 = State AWAL
32
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 yg mungkin dituju.

33
1. DETERMINISTIC FINITE AUTOMATA (DFA)
(AUTOMATA HINGGA DETERMINISTIK)

Deterministic Finite Automata (DFA)


M = (Q, ∑, 𝞭, S, F),
dimana :
Q : himpunan state atau kedudukan
∑ : himpunan simbol input
𝞭 (∂) : fungsi transisi, dimana 𝞭 (∂)  Q x ∑  Q
S : State awal (initial state)
F : himpunan state akhir (Final State)

Language  L(M) : (x| ∂(S,x) di dalam F)


34
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
q0 b b q2
q1

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

35
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

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


.

37
DETERMINISTIC FINITE AUTOMATA (DFA)
Contoh kasus -2
Diberikan DFA :
Q = {q0, q1, q2}
δ 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 string input (instruksi = order = perintah)
kalimat-kalimat berikut diterima DFA-machines di atas : .

abababaa, aaaabab , aaabbaba ?


38
DETERMINISTIC FINITE AUTOMATA
Jawab :
DFA-machines sbb :
Q = {q0, q1, q2}
δ diberikan dalam tabel berikut :
∑ = {a, b} δ a b

S = q0 q0 q0 q1

F = {q0, q1} q1 q0 q2
Jawab :
Langkah pertama adalah merancang q2 q2 q2
diagram transisi lebih dulu :
a
b a
q0 q1 q2 b
a b

39
CONTOH KASUS DETERMINISTIC FINITE AUTOMATA

Ditanyakan :
1. Telusurilah, apakah kalimat-kalimat berikut diterima DFA di atas :
abababaa, aaaabab , aaabbaba, ?
Ditanyakan : aabbaa, aaabbbaaa, aabbbaa

Jawab :

40
JAWABAN SOAL DETERMINISTIC FINITE AUTOMATA
Jawab :

δ (q0,abababaa)  δ (q0,bababaa)  δ (q1,ababaa) 


δ (q0,babaa)  δ (q1,abaa)  δ (q0,baa)  δ (q1,aa) 
δ (q0,a)  q0

Tracing berakhir di q0 (state AKHIR)  kalimat abababaa diterima


Kesimpulan :
Sebuah kalimat diterima oleh DFA di atas jika tracingnya berakhir
di salah satu state AKHIR.

 Untuk soal nomor–nomor selanjutnya anda coba sendiri ??

41
1B. 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
111 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
1B. FSA SEBAGAI PENGENAL STRING
Jadi untuk mesin FSA diatas tadi :
L(M) = { 0* , 0*(10)0* , 0*(110,111)0* }

Contoh 1b. : Tentukan bahasa L(M) yg dikenali oleh Mesin M berikut ini :
0
start 0, 1 1
S0 S1 S2
1 S3

43
1B. 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 :
L(M) = { (0,1)110*  010* } = { ((0,1)11  01)0* }

44
25 June 2018

TUGAS-1
1. Sebuah DFA mempunyai definisi formal sebagai berikut :
Q = {0, 1, 2, 3, 4} , Σ = {a,b} , S = { 0 }, F = {2, 4} , δ = diagram
transisi dapat dilihat pada tabel di bawah.

Ditanyakan :
a. Designlah diagram transisi ?
b. Instruksi manakah yang
dapat diterima/dilaksanakan
oleh DFA tsb ?

45
TUGAS/PR -1

2. Sebuah DFA mempunyai diagram transisi sebagai berikut,


diagram transisi dapat dilihat pada gambar di bawah. .

Rancanglah :
a. Tuliskan definisi formalnya ?
b. Designlah transition table ?
c. Instruksi manakah yang dapat diterima/dilaksanakan oleh DFA tsb ?
.

46
TUGAS/PR -1
3. Rancanglah tabel transisi dari diagram transisi di bawah ini ?
11,0
01,1
,

01,0

00,0 S0 S1
11,1

10,1 00,1 10,0

47
TUGAS/PR -1

4. Diketahui DFSA, A = (Q, ∑, , S, F), dimana,


Q = {q0, q1, q2, q3}
∑ = { a, b }
S = q0
F = { q0 }
Tabel Transisi :

Ditanyakan :
a. Rancanglah Diagram State/transisi-nya ?
b. Bila diberikan string bbabba, apakah mesin tersebut bisa menerima atau menolak ?

48
TUGAS/PR -1

5. DIBERIKAN TABEL TRANSISI SEPERTI TABEL DI BAWAH :

Keadaan f Rancanglah diagram transisinya ?


a b
A a, b c
B a b
C b a, b
A, B a, b b, c
B, C a, b a, b

49
Finite State Automata (AH)

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
menyeberang-kan 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 rumput, maka
rumput akan dimakan oleh kambing. Mungkinkah
ditemukan suatu cara untuk melintasi sungai tanpa
menyebabkan kambing atau rumput dimakan ?
a. Buatlah kemungkinan kombinasi state ?
b. Rancanglah diagram transisinya ? 50
TUGAS/PR -1
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 diterima atau ditolak oleh mesin otomata ?

51
TUGAS/PR - 1
8. Misalkan harga pizza Rp 20.000,- dipotong jadi 8 bagian,
Bila makan sepotong, harus bayar Rp 2500,- .

makan 2 potong, bayar Rp 5000,-


makan 4 potong, bayar Rp10.000,- dan seterusnya.
– Harga/pot = Rp 20.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 Rp harga per cm2 ??
Disarankan untuk menjawab dengan menggunakan rancangan
program bahasa C++ ? .

52
.

53
TERIMA KASIH ATAS PERHATIANNYA.
KERJAKAN TUGAS YANG DIBERIKAN DENGAN BAIK DAN BENAR,
MUNGKIN BISA MENJADI SOAL UTS atau UAS! 53
.

Anda mungkin juga menyukai