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
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.
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)
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.
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. .
L&
) BJan n L 1K
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
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
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
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
#
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
$
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
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 : .
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
) 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
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) &#) &/) &/)
) B J an bn cn
Buat dua buah himpunan bilangan terpisah A genap & ) dan ganjil &8)
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
#. '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
: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(
R np jl
6 np jl
1 jl np
S B np, + B J jlK
- 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 :
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
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