Anda di halaman 1dari 20

TEORI BAHASA DAN OTOMATA

MATERI KULIAH :
1 Topik Substansi Kontrakpembelajaran, Pendahuluan a. Ketentuan dalam Kuliah b. Pengertian Bahasa c. Pengertian Otomata Pengertian Dasar dan Operasi pada string rammar dan Bahasa a. Pngertian Dasar Simbol dll b. Operasi dasar string a. De!inisi rammar b. Klasi!ikasi rammar"bahasa c. Penentuan bahasa dari suatu grammar d. Penentuan grammar dari suatu bahasa #, $ / %esin Pengenal Bahasa &O'O%('() ,kspresi 0eguler. a. %acam*macam mesin pengenal bahasa b. +inite State (utomata c. ,kui-alensi .+(*D+( a. Pengertian ,0 b. %enentukan ,0 dari suatu bahasa reguler c. %embuat .+( dari ,0 a. Pen4ederhanaan tata bahasa bebas konteks b. Bentuk .ormal 5homsk4 16 PushDo7n (utomata &PD() ,1 1 12 %esin 'uring 13 'opik Khusus * 1$ 1/ Ujian Akhir a. Pengertian PD( b. PD( deterministik"non deterministik. a. Pengertian %esin 'uring b. Penerimaan pada %' 'opik*topik khusus" masalah2 4ang lebih kompleks dari teori bahasa dan otomata.

2 3

1 2, 3

Ujian sisipan Bahasa Bebas Konteks

Buku :
'eori Bahasa dan Otomata, 8ohn ,. 9opcro!t dkk. &terjemahan, ,disi 2, 2661) 'eori Bahasa dan Otomata, +irrar :tdirartatmo ;ntroduction to <anguages and 'he 'heor4 o! 5omputation, 8ohn 5. %artin (n ;ntroduction to +ormal <anguage and (utomata, Peter <in=

'eori Bahasa
'eori bahasa membicarakan bahasa !ormal &formal language), terutama untuk kepentingan perancangan kompilator &compiler) dan pemroses naskah &text processor). Bahasa !ormal adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah tata bahasa &grammar) 4ang sama. Sebuah bahasa !ormal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda. Dikatakan bahasa !ormal karena grammar diciptakan mendahului pembangkitan setiap kalimatn4a. Bahasa .atural"manusia bersi!at sebalikn4a> grammar diciptakan untuk meresmikan kata*kata 4ang hidup di mas4arakat. Dalam pembicaraan selanjutn4a ?bahasa !ormal@ akan disebut ?bahasa@ saja.

Otomata &Automata)
Otomata adalah mesin abstrak 4ang dapat mengenali &recognize), menerima &accept), atau membangkitkan &generate) sebuah kalimat dalam bahasa tertentu.

Beberapa Pengertian Dasar A


Simbol adalah sebuah entitas abstrak &seperti haln4a pengertian titik dalam geometri). Sebuah huru! atau sebuah angka adalah contoh simbol. String adalah deretan terbatas &finite) simbol*simbol. Sebagai contoh, jika a, b, dan c adalah tiga buah simbol maka abcb adalah sebuah string 4ang dibangun dari ketiga simbol tersebut. 8ika w adalah sebuah string maka panjang string din4atakan sebagai w dan dide!inisikan sebagai cacahan &ban4akn4a) simbol 4ang men4usun string tersebut. Sebagai contoh, jika w B abcb maka wB #. String hampa adalah sebuah string dengan nol buah simbol. String hampa din4atakan dengan simbol &atau C) sehingga B 6. String hampa dapat dipandang sebagai simbol hampa karena keduan4a tersusun dari nol buah simbol. (l!abet adalah hinpunan hingga &finite set) simbol*simbol

Operasi Dasar String


Diberikan dua string A x B abc, dan y B 123 Pre!ik string w adalah string 4ang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol*simbol paling belakang dari string w tersebut. 5ontoh A abc, ab, a, dan adalah semua Pre!iD&x) ProperPre!iD string w adalah string 4ang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol*simbol paling belakang dari string w tersebut.

5ontoh A ab, a, dan adalah semua ProperPre!iD&x) Post!iD &atau Su!iD) string w adalah string 4ang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol*simbol paling depan dari string w tersebut. 5ontoh A abc, bc, c, dan adalah semua Post!iD&x) ProperPost!iD &atau PoperSu!iD) string w adalah string 4ang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol*simbol paling depan dari string w tersebut. 5ontoh A bc, c, dan adalah semua ProperPost!iD&x) 9ead string w adalah simbol paling depan dari string w. 5ontoh A a adalah 9ead&x) 'ail string w adalah string 4ang dihasilkan dari string w dengan menghilangkan simbol paling depan dari string w tersebut. 5ontoh A bc adalah 'ail&x) Substring string w adalah string 4ang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol*simbol paling depan dan"atau simbol*simbol paling belakang dari string w tersebut. 5ontoh A abc, ab, bc, a, b, c, dan adalah semua Substring&x) ProperSubstring string w adalah string 4ang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol*simbol paling depan dan"atau simbol*simbol paling belakang dari string w tersebut. 5ontoh A ab, bc, a, b, c, dan adalah semua Substring&x) SubseEuence string w adalah string 4ang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol*simbol dari string w tersebut. 5ontoh A abc, ab, bc, ac, a, b, c, dan adalah semua SubseEuence&x) ProperSubseEuence string w adalah string 4ang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol*simbol dari string w tersebut. 5ontoh A ab, bc, ac, a, b, c, dan adalah semua SubseEuence&x) 5oncatenation adalah pen4ambungan dua buah string. Operator concatenation adalah concate atau tanpa lambang apapun. 5ontoh A concate&xy) B xy B abc123 (lternation adalah pilihan satu di antara dua buah string. Operator alternation adalah alternate atau . 5ontoh A alternate&xy) B xy B abc atau 123 Kleene 5losure A xF B xxxxxxG B xx 2 x 3 G Positi-e 5losure A x + B xxxxxxG B xx 2 x 3 G 'idak selalu berlaku A x B Pre!iD&x)Post!iD&x) Selalu berlaku A x B 9ead&x)'ail&x) 'idak selalu berlaku A Pre!iD&x) B Post!iD&x) atau Pre!iD&x) Post!iD&x) Selalu berlaku A ProperPre!iD&x) ProperPost!iD&x) Selalu berlaku A 9ead&x) 'ail&x)

Beberapa Si!at Operasi

Setiap Pre!iD&x), ProperPre!iD&x), Post!iD&x), ProperPost!iD&x), 9ead&x), dan 'ail&x) adalah Substring&x), tetapi tidak sebalikn4a Setiap Substring&x) adalah SubseEuence&x), tetapi tidak sebalikn4a Dua si!at aljabar concatenation A Operasi concatenation bersi!at asosiati! A x&yz) B &xy)z ,lemen identitas operasi concatenation adalah A x B x B x 'iga si!at aljabar alternation A Operasi alternation bersi!at komutati! A xy B yx Operasi alternation bersi!at asosiati! A x&yz) B &xy)z ,lemen identitas operasi alternation adalah dirin4a sendiri A xx B x Si!at distributi! concatenation terhadap alternation A x &yz) B xyxz Beberapa kesamaan A Kesamaan ke*1 A &xF)F B xF Kesamaan ke*2 A x + B x + B xF Kesamaan ke*3 A &xy)F B xyxxyyxyyxG B semua string 4ang merupakan concatenation dari nol atau lebih x, y, atau keduan4a.

GRAMMAR DAN BAHASA


Konsep Dasar
(nggota al!abet dinamakan simbol terminal. Kalimat adalah deretan hingga simbol*simbol terminal. Bahasa adalah himpunan kalimat*kalimat. (nggota bahasa bisa tak hingga kalimat. Simbol*simbol berikut adalah simbol t r!ina" A huru! kecil, misaln4a A a, b, c, 6, 1, .. simbol operator, misaln4a A H, , dan simbol tanda baca, misaln4a A &, ), dan > string 4ang tercetak tebal, misaln4a A i#, th n, dan "s .

Simbol*simbol berikut adalah simbol non t r!ina" "Iariabel A huru! besar, misaln4a A (, B, 5 huru! S sebagai si!bo" a$a" string 4ang tercetak miring, misaln4a : expr 9uru! 4unani melambangkan string 4ang tersusun atas simbol*simbol terminal atau simbol*simbol non terminal atau campuran keduan4a, misaln4a A , , dan . Sebuah produksi dilambangkan sebagai , artin4a A dalam sebuah deri-asi dapat dilakukan penggantian simbol dengan simbol . Deri-asi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah deri-asi dilambangkan sebagai A . Sentensial adalah string 4ang tersusun atas simbol*simbol terminal atau simbol*simbol non terminal atau campuran keduan4a. Kalimat adalah string 4ang tersusun atas simbol*simbol terminal. Kalimat adalah merupakan sentensial, sebalikn4a belum tentu..

rammar A
rammar dide!inisikan sebagai pasangan # tuple A I ' , I . , S, dan P, dan dituliskan sebagai &I ' , I . , S, P), dimana A I ' A himpunan simbol*simbol terminal &al!abet) kamus I . A himpunan simbol*simbol non terminal SI . A simbol a7al &atau simbol start) P A himpunan produksi

5ontoh A 1.
1

A I' B JI% Lo& % Miss% 'ouK, I . B JS,(,B,5K, P B JS (B5, ( I, B Lo& ( Miss, 5 'ouK S (B5 I"o& 'ou L)G*+,-I"o& 'ou% IMiss'ou.

2. .

A I' B JaK, I . B JSK, P B JS aSaK S aS aaS aaa

L&

) BJan n L 1K

<& 2)BJa, aa, aaa, aaaa,GK

Klasi!ikasi 5homsk4
Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksin4a & ), .oam 5homsk4 mengklasi!ikasikan # tipe grammar A 1. rammar tipe ke*6 A :nrestricted rammar &: ) 5iri A , &I ' I . )F, M 6 2. rammar tipe ke*1 A 5onteDt Sensiti-e rammar &5S ) 5iri A , &I ' I . ) F, 6 N 3. rammar tipe ke*2 A 5onteDt +ree rammar &5+ ) 5iri A I . , &I ' I . )F #. rammar tipe ke*3 A 0egular rammar &0 ) 5iri A I . , JI ' , I ' I . K atau I . , JI ' , I . I' K 'ipe sebuah grammar &atau bahasa) ditentukan dengan aturan sebagai berikut A A language is said to be type-i (i = 0 1 2 3! language if it can be specified by a type-i grammar but can"t be specified any type-(i#1! grammar$ 5ontoh (nalisa Penentuan '4pe rammar 1. rammar
1

dengan P 1 B JS aB, B bB, B bK.

0uas kiri semua produksin4a terdiri dari sebuah I . maka 1 kemungkinan tipe 5+ atau 0 . Selanjutn4a karena semua ruas kanann4a terdiri dari sebuah I ' atau string I ' I . maka 1 adalah 0 &3).

2.

rammar

dengan P 2 B JS Ba, B Bb, B bK.

0uas kiri semua produksin4a terdiri dari sebuah I . maka 2 kemungkinan tipe 5+ atau 0 . Selanjutn4a karena semua ruas kanann4a terdiri dari sebuah I ' atau string I . I ' maka 2 adalah 0 &3). 3. rammar
3

dengan P 3 B JS Ba, B bB, B bK.

0uas kiri semua produksin4a terdiri dari sebuah I . maka 3 kemungkinan tipe 5+ atau 0 . Selanjutn4a karena ruas kanann4a mengandung string I ' I . &4aitu bB) dan juga string I . I ' &Ba) maka 3 bukan 0 , dengan kata lain 3 adalah 5+ &2). #. rammar
#

dengan P # B JS a(b, B aBK.

0uas kiri semua produksin4a terdiri dari sebuah I . maka # kemungkinan tipe 5+ atau 0 . Selanjutn4a karena ruas kanann4a mengandung string 4ang panjangn4a lebih dari 2 &4aitu a(b) maka # bukan 0 , dengan kata lain # adalah 5+ . $. rammar
$

dengan P $ B JS a(, S aB, a(b aB5bK.

0uas kirin4a mengandung string 4ang panjangn4a lebih dari 1 &4aitu a(b) maka kemungkinan tipe 5S atau : . $ Selanjutn4a karena semua ruas kirin4a lebih pendek atau sama dengan ruas kanan4a maka $ adalah 5S .

/.

rammar

dengan P / B JaS ab, S(c bcK.

0uas kirin4a mengandung string 4ang panjangn4a lebih dari 1 maka / kemungkinan tipe 5S atau : . Selanjutn4a karena terdapat ruas kirin4a 4ang lebih panjang daripada ruas kanan4a &4aitu S(c) maka / adalah : .

Deri-asi Kalimat dan Penentuan Bahasa


'entukan bahasa dari masing*masing gramar berikut A 1.
1

dengan P 1 B J1. S a(a, 2. ( a(a, 3. ( bK. Deri-asi kalimat umum A S a(a &1) aa(aa &2) a n (a n &2) a n ba n &3)
1

8a7ab A Deri-asi kalimat terpendek A S a(a &1) aba &3)

Dari pola kedua kalimat disimpulkan A < 1 & 1K 2.


2

) B J a n ba n n

dengan P 2 B J1. S aS, 2. S aB, 3. B b5, #. 5 a5, $. 5 aK. 8a7ab A Deri-asi kalimat terpendek A S aB &2) Deri-asi kalimat umum A S aS &1)

ab5 aba

&3) &$)

a n *1 S an B a n b5 a n ba5 a n ba m*1 5 a n ba m
2

&1) &2) &3) &#) &#) &$)

Dari pola kedua kalimat disimpulkan A < 2 & m1K 3. dengan P 3 B J1. S aSB5, 2. S ab5, #. b5 ccK. 8a7ab A Deri-asi kalimat terpendek 1A 3A S ab5 &2) abc &#) &1) Deri-asi kalimat terpendek 2 A S aSB5 &1) aab5B5 &2) aabB55 &$) aabcB5 &#) aabb55 &3) aabbc5 &#) aabbcc &/)
3

)BJa n ba m n 1,

3. bB bb, bc, $. 5B B5, /. c5 Deri-asi kalimat terpendek S aSB5 &1) aaSB5B5 aaab5B5B5 aaabB55B5 aaabB5B55 aaabBB555 aaabbB555 aaabbb555 aaabbbc55 aaabbbcc5 aaabbbccc &2) &$) &$) &$) &3) &3) &#) &/) &/)

Dari pola ketiga kalimat disimpulkan A < 3 & n 1K

) B J an bn cn

%enentukan rammar Sebuah Bahasa


1. 'entukan sebuah gramar regular untuk bahasa < 1 B J a n n 1K 8a7ab A P 1 &< 1 ) B JS aSaK 2. 'entukan sebuah gramar bebas konteks untuk bahasa A L 2 : hi!punan bi"an/an bu"at non n /ati# /anji" 8a7ab A <angkah kunci A digit terakhir bilangan harus ganjil. ItBJ6,1,2,..3K In BJS, ,8K PBJS9'O8'O8> ' 'O8'O8> 92O#O/O2> 6O2O#O/O2>81O3O$O 1O3K PBJS SO8SO8> 6O2O#O/O2>81O3O$O1O3K

Buat dua buah himpunan bilangan terpisah A genap & ) dan ganjil &8)

P 2 &< 2 ) B JS 8 S8S, 13$13K

62#/2, 8

3. 'entukan sebuah gramar bebas konteks untuk bahasa A A0 L 3 , hi!punan s !ua i1 nti#i r 2an/ sah ! nurut bahasa p !ro/ra!an 3as4a" 1 n/an batasan : t r1iri 1ari si!bo" huru# k 4i" 1an an/ka% panjan/ i1 nti#i r bo" h " bih 1ari 5 karakt r 8a7ab A <angkah kunci A karakter pertama identi!ier harus huru!. Buat dua himpunan bilangan terpisah A huru! &9) dan angka &() S9'O9>'9'O('O9O(> 9aO..O=> (6O..O3

P 3 &< 3 ) B JS 99', ' ('9'9(, 9 abcG, ( 612GK

#. 'entukan gramar bebas konteks untuk bahasa < # & # ) B Ja n b m n,m 1, n mK 8a7ab A

<angkah kunci A sulit untuk mende!inisikan < # & # ) secara langsung. 8alan keluarn4a adalah dengan mengingat bah7a D 4 berarti D M 4 atau D N 4. < # B < ( < B , < ( BJa n b m n M m 1K, < B B Ja n b m 1 n N mK. P ( &< ( ) B J( a(a5, 5 a5babK, P&< B ) B JB BbDb, D aDbabK P # &< # ) B JS (B, ( a(a5, 5 a5bab, B BbDb, D aDbabK $. 'entukan sebuah gramar bebas konteks untuk bahasa A < $ B bilangan bulat non negati! genap. 8ika bilangan tersebut terdiri dari dua digit atau lebih maka nol tidak boleh muncul sebagai digit pertama. 8a7ab A <angkah kunci A Digit terakhir bilangan harus genap. Digit pertama tidak boleh nol. Buat tiga himpunan terpisah A bilangan genap tanpa nol & ), bilangan genap dengan nol &.), serta bilangan ganjil &8). P $ &< $ ) B JS . (8(, ( ..(8(, 2#/2, . 62#/2, 8 13$13K

B0

M sin 3 n/ na" Bahasa

:ntuk setiap kelas bahasa 5homsk4, terdapat sebuah mesin pengenal bahasa. %asing*masing mesin tersebut adalah A Kelas Bahasa %nrestricted &rammar &: ) %esin Pengenal Bahasa %esin 'uring &'uring (ac)ine), '%

*ontext +ensiti,e &rammar &5S ) *ontext /ree &ammar &5+ ) 0egular &rammar, 0

-inear .ounded Automata, <B( Pushdo7n (utomata, PD( +inite State (utomata, +S(

6INITE STATE AUTOMATA )6SA+


+S( dide!inisikan sebagai pasangan $ tupel A &P, Q, R, S, +). P A himpunan hingga state Q A himpunan hingga simbol input &al!abet) R A !ungsi transisi, menggambarkan transisi state +S( akibat pembacaan simbol input. +ungsi transisi ini biasan4a diberikan dalam bentuk tabel. S P A state (S(< + P A himpunan state (K9;0 5ontoh A +S( untuk mengecek parit4 ganjil P BJ np, jlK diagram transisi Q B J6,1K
tabel transisi

R np jl

6 np jl

1 jl np

S B np, + B J jlK

(da dua jenis +S( A 1eterministic finite automata &D+()

2on deterministik finite automata.&.+()

- D+( A transisi state +S( akibat pembacaan sebuah simbol bersi!at tertentu. 7 : 8 9 8 - .+( A transisi state +S( akibat pembacaan sebuah simbol bersi!at tak tentu. R A P Q 2P

D6A :
P B JE6, E1, E2K R diberikan dalam tabel berikut A QB Ja, bK S B E6 + B JE6, E1K
a E6 a b E1 b

R E6 E1 E2

a b E6 E1 E6 E2 E2 E2
a E2 b

Kalimat 4ang diterima oleh D+( A a, b, aa, ab, ba, aba, bab, abab, baba Kalimat 4ang dittolak oleh D+( A bb, abb, abba D+( ini menerima semua kalimat 4ang tersusun dari simbol a dan b 4ang tidak mengandung substring bb. :ontoh :

'elusurilah, apakah kalimat*kalimat berikut diterima D+( di atas A abababaa 1it ri!a aaaabab 1it ri!a aaabbaba 1ito"ak ;a$ab :

i) R &E6,abababaa) R &E6,bababaa) R &E1,ababaa) R &E6,babaa) R &E1,abaa) R &E6,baa) R &E1,aa) R &E6,a) E6


'racing berakhir di E6 &state (K9;0) kalimat abababaa diterima

ii) R &E6, aaaabab) R &E6,aaabab) R &E6,aabab) R &E6,abab) R &E6,bab) R &E1,ab) R &E6,b) E1 'racing berak)ir di 31 (state A4560! kalimat aaaababa diterima iii)R &E6, aaabbaba) R &E6, aabbaba) R &E6, abbaba) R &E6, bbaba) R &E1,baba) R &E2,aba) R &E2,ba) R &E2,a) E2 'racing berak)ir di 32 (bukan state A4560! kalimat aaabbaba ditolak
K si!pu"an :

sebuah kalimat diterima oleh D+( di atas jika tracingn4a berakhir di salah satu state (K9;0.

N6A :
Berikut ini sebuah contoh .+( &P, Q, R, S, +). dimana A P B JE 6 , E 1 , E 2 ,E 3 , E # K R diberikan dalam tabel berikut A QB Ja, b,cK S B E6 + B JE # K R E6 E1 E2 E3 E# a JE 6 , E 1 K JE 1 , E # K JE 2 K JE 3 K b JE 6 , E 2 K JE 1 K JE 2 , E # K JE 3 K c JE 6 , E 3 K JE 1 K JE 2 K JE 3 , E # K

;lustrasi gra! untuk .+( adalah sebagai berikut A


a, b, c a E6 c E3 a, b, c b b E2 a, b, c E# E1 a a, b, c

kalimat 4ang diterima .+( di atas A aa, bb, cc, aaa, abb, bcc, cbb kalimat 4ang tidak diterima .+( di atas A a, b, c, ab, ba, ac, bc Sebuah kalimat di terima .+( jika A salah satu tracing*n4a berakhir di state (K9;0, atau himpunan state setelah membaca string tersebut mengandung state (K9;0 :ontoh : 'elusurilah, apakah kalimat*kalimat berikut diterima .+( di atas A ab, abc, aabc, aabb 8a7ab A 1. R&E 6 ,ab) R&E 6 ,b) R&E 1 ,b) JE 6 , E 2 K JE 1 K B JE 6 , E 1 , E2K 5impunan state '61A4 mengandung state A4560 kalimat ab tidak diterima 2. R&E 6 ,abc) R&E 6 ,bc) R&E 1 ,bc) J R&E 6 ,c) R&E 2 ,c)KR&E 1 , c) JJ E 6 , E 3 KJ E 2 KKJ E 1 K B JE 6 , E 1 , E 2 ,E 3 K 9impunan state ';D(K mengandung state (K9;0 kalimat abc tidak diterima 3. R&E 6 ,aabc) R&E 6 ,abc) R&E 1 ,abc)J R&E 6 ,bc) R&E 1 ,bc)K

R &E 1 ,bc) JJ R&E 6 , c) R&E 2 ,c)K R&E 1 , c)K R&E 1 , c) JJJ E 6 , E 3 K J E 2 KK JE 1 KK JE 1 K B JE 6 , E 1 , E 2 ,E 3K 9impunan state ';D(K mengandung state (K9;0 kalimat aabc tidak diterima

#. R&E 6 ,aabb) R&E 6 ,abb) R&E 1 ,abb) J R&E 6 ,bb) R&E 1 ,bb)K R &E 1 ,bb) JJ R&E 6 , b) R&E 2 ,b)K R&E 1 , b)K R&E 1 , b) JJJ E 6 , E 2 K J E 2 , E # KK JE 1 KK JE 1 K B JE 6 , E 1 , E2, E#K 9impunan state mengandung state (K9;0 kalimat aabb diterima

Anda mungkin juga menyukai