Handout Automata2

56
Teori bahasa dan otomata OLEH: ARSYAN DANNISWARA Nama : Arsyan danniswara Materi Kuliah Teori Bahasa Dan Otomata Author : Fajar Astuti H, S.Kom

description

mempelajari pemrograman bahasa

Transcript of Handout Automata2

BAB I

Teori bahasa dan otomata

OLEH:ARSYAN DANNISWARA

Nama : Arsyan danniswara

Nbi :146.140.4753

TEKNIK INFORMATIKAUNIVERSITAS TUJUH BELAS AGUSTUS SURABAYA

03-05-2015

DAFTAR ISI

Halaman judul .............................................................. iPrakata ..........................................................................ii Daftar Isi ......................................................................iii

KATA PENGATAR

Puji dan Syukur Saya Panjatkan atas kehadirat Allah SWT, karena atas limpahan Rahmat dan Karunia-Nya sehingga saya dapat menyusun makalah ini tepat pada waktunya. Makalah ini berisi tentang Masalah globalisasi informasi arah demokrasi pada Sabtu, 8 NOVEMBER 2014 dan dibuat untuk memenuhi tugas mata kuliah PKN di Universitas UNTAG tahun 2014.

Dalam penyusunan makalah ini, tidak sedikit hambatan yang Saya hadapi. Namun saya menyadari bahwa kelancaran dalam penyusunan makalah ini tidak lain berkat arahan dan bimbingan dari Bpk. Wahyono selaku dosen dari mata kuliah PKN, untuk itu Saya mengucapkan terima kasih yang sebesar-besarnya.

BAB I

PENDAHULUANPengertian Automata

Teori otomata mempelajari tentang mekanisme komputer abstrak atau mesin abstrak. Jauh sebelum ada komputer, tahun 1930, Alan Turing mempelajari mesin abstrak yang punya kemampuan seperti komputer sekarang, dikenal dengan nama Mesin Turing. Tujuan Turing adalah menggambarkan secara jelas apa yang dapat dan yang tidak dapat dilakukan mesin komputing. Kemudian pada tahun 1940 an dan 1950-an, ditemukan mesin abstrak yang lebih sederhana, yaitu finite automata. Automata ini, asalnya diperuntukkan untuk membentuk fungsi kecerdasan, berubah secara drastis untuk keperluan lain yang sangat beragam. Tahun 1950-an juga Chomsky mempelajari tentang tata bahasa formal, yang sangat berguna untuk pengembangan compiler.

Semua pengembangan teori ini secara langsung melahirkan ilmu-ilmu komputer yang sekarang ini. Beberapa konsepnya, seperti Finite Automata dan grammar, digunakan untuk perancangan dan pembuatan bermacam software penting, seperti Pascal dan C. Konsep lainnya, seperti Mesin Turing, membantu kita memahami apa yang dapat kita harapkan dari perangkat lunak kita.

Kedudukan Teori Bahasa dan Otomata

Ilmu komputer mempunyai dua komponen utama, pertama : model dan gagasan mengenai komputasi, dan kedua adalah teknik rekayasa untuk perancangan sistem komputasi, yang meliputi perangkat keras dan perangkat lunak. Teori Bahasa dan Otomata merupakan bagian dari komponen pertama.

Finite State Automata dan ekspresi regular awalnya dikembangkan berdasarkan pemikiran jaringan syaraf tiruan (neural network) dan rangkaian switch (switching circuit). Finite State Automata sangat berguna dalam perancangan lexica l analyzer, yang merupakan bagian dari sebuah compiler. FSA dan ekspresi regular juga digunakan dalam perancangan text editor, pattern-matching, sejumlah pemrosesan teks, dan program file-searching serta sebagai konsep matematis untuk aplikasi lain.

Mengapa mempelajari teori? Teori memberikan konsep dan prinsip yang menolong untuk memahami perilaku dari suatu disiplin ilmu. Bidang ilmu komputer meliputi topik yang sangat luas, dimana sebagian besar mempunyai prinsip yang umum. Untuk mempelajari prinsip dasar inilah diperlukan pemodelan secara abstrak dari komputer. Model ini memiliki fungsi-fungsi yang penting dan umum untuk dapat diterapkan pada perangkat keras maupun perangkat lunak. Beberapa gagasan yang diutarakan memiliki penerapan yang penting. Misalkan pada compiler.

Pengantar Model Komputasi

Kuliah ini membahas model-model komputasi sebagai mesin abstrak yang dapat didefinisikan secara matematis, mulai dari yang paling sederhana hingga yang paling powerful.

Model-model sederhana dibahas agar formalisasi matematis dapat terbentuk secara bertahap, selain itu tetap masih ada hubungannya dengan situasi-situasi dunia nyata.

Secara umum model-model digambarkan sebagai mesin untuk menjawab masalah keputusan berdasarkan masukan string x dengan memberikan keluaran berupa : ya atau tidak misalnya :

Apakah x bilangan ganjil

Apakah sebuah kata s anggota bahasa B

Masalah komputasi memang lebih umum daripada masalah keputusan, namun pada dasarnya suatu model untuk masalah keputusan memerlukan komponen yang dapat melakukan komputasi yang terkait, misalnya : Untuk suatu (x,y), apakah y = f(x)? hanya dapat dijawab jika f(x) dapat dikomputasi.

Model-model mesin yang akan dibahas pada kuliah ini adalah Finite Automata (FA), PushdownAutomata(PDA), Mesin Turing (TM). Teori dan model komputasi ini telah berkembang jauh sebelum ditemukan perangkat komputer itu sendiri.

Konsep Bahasa Simbol. Simbol merupakan elemen unik terkecil dari bahasa. Dalam sebuah bahasa terdapat sejumlah berhingga simbol-simbol.

Abjad / Alfabet. Merupakan himpunan dari simbol-simbol yang digunakan dalam suatu bahasa. Biasanya dinotasikan dengan (. Misalkan ( = {0,1}.

String / word / kata / untai. Adalah barisan berhingga dari simbol-simbol dalam suatu alfabet. Misalkan : ( = {0,1} maka 01, 00, 111 merupakan string yang dibentuk berdasarkan alfabet (. Dalam pembahasan, seringkali suatu untai/string dinyatakan dengan suatu variabel, yang biasanya berupa huruf kecil. Contoh : w = 01; x = aba, dst.

Panjang String. Suatu string disusun dari sejumlah n simbol, dengan n(0. Banyaknya simbol yang menyusun sebuah string disebut panjang string, yang disimbolkan dengan |x|. contoh : x = aba , maka |x| = 3.

Untai hampa. Sebuah string dengan panjang nol (n=0) disebut untai hampa dan dinotasikan dengan (. Untai hampa (() merupakan untai yang dibentuk berdasarkan abjad apa saja. Sehingga ( merupakan himpunan bagian dari sembarang himpunan.

Bahasa. Bahasa merupakan himpunan string/kata dari alfabet bahasa itu. Misal untuk

(1 = {0,1} maka L1 = {00,01,11,111} merupakan bahasa yang dibentuk berdasarkan abjad (1 .

(2 = {a,b} maka L2 = {a, ab, aab, aaab, } merupakan bahasa berdasarkan abjad (2Misalkan ( suatu abjad dan w adalah untai yang dibentuk berdasarkan abjad (. Jika terdapat L yang merupakan bahasa berdasar abjad ( dan jika w ada di dalam L, kita tuliskan w ( L, yang berarti w elemen dari L.

Bahasa kosong. Merupakan bahasa yang tidak terdiri dari untai apapun. Dinotasikan dengan {} atau (.

Bahasa Universal. Adalah bahasa yang terdiri dari semua kata yang dapat dibentuk berdasarkan suatu abjad (. Misalkan ( = {1} maka bahasa universal, dinotasikan (*, adalah (* = {(, 1, 11, 111, 1111, }

Operasi pada String

Perangkaian (Concatenation). Jika w dan z adalah untai, perangkaian w dengan z merupakan untai yang diperoleh dengan merekatkan z ke w. Contoh : w = abang dan z = none maka wz atau w.z = abangnone. Panjang kata wz, |wz| = |w| + |z|=9.

Sebarang kata jika dirangkai dengan (, tidak akan merubah kata tersebut. w(=(w=w. Jadi ( merupakan identitas (identity) terhadap operasi perangkaian.

Pangkat (Exponentiation). Misalkan w merupakan sebuah kata, untuk n ( bilangan asli, didefinisikan :

Misalkan , ( = {0,1} dan w = 110, diperoleh :

w0 = ( w1 = w.w0 = 110.( = 110

w2 = w.w1 = 110.110 = 110110

w3 = w.w2 = 110.110110 = 110110110

Sama Dengan (Equal). Jika w dan z adalah untai, dikatakan w sama dengan z jika keduanya terdiri dari simbol-simbol yang sama dan panjangnya sama, dinotasikan w = z.

Awalan (prefix). Jika w dan x adalah kata, maka x merupakan awalan dari w jika untuk suatu untai y, berlaku w = xy. Contoh w = 121 dan x = 12, maka x merupakan awalan dari w, dimana dalam hal ini y = 1.

Subuntai (substring). Sebuah untai w merupakan subuntai dari untai lain z jika terdapat untai-untai x dan y, sehingga berlaku z = xwy.

Pembalikan (reversal / transpose). Transpose dari sebuah untai w, yaitu wR, didefinisikan sebagai :

Contoh : w = able,

wR = (able)R = (ble)R a

= (le)Rba

= (e)R lba

= (()Relba

= (. elba

= elbaOperasi Pada Bahasa

Concatenation. Misal A dan B adalah bahasa berdasarkan suatu abjad. Didefinisikan perangkaian dari bahasa A dan B sebagai :

A.B = { w.x | w ( A dan x ( B}

Jadi A.B terdiri dari semua untai yang dibentuk dengan mengambil setiap untai di A dan merangkaikannya dengan setiap untai di B. Contoh : A = {bird, dog} dan B = { house} maka AB = {birdhouse, doghouse}

Eksponensiasi. Misalkan A bahasa berdasarkan abjad (, didefinisikan :

Jadi, jika misalkan A = {ab,a} berdasarkan abjad ( = {a,b} maka :

A0 = { ( }

A1 = A.A0 = {ab,a}{(} = {ab,a}

A2 = A.A1 = {ab,a}{ab,a} = {abab,aba,aab,aa}

A3 = A.A2 = {ab,a}{abab,aba,aab,aa} = {ababab,ababa,abaab,abaa,aabab,aaba, aaab,aaa}

Gabungan (Union). Jika A dan B adalah bahasa berdasarkan abjad ( maka gabungan dari A dan B, A ( B, terdiri dari semua kata yang muncul sekurang-kurangnya sekali di dalam A dan B.

A ( B = {x | x ( A atau x(B}

Irisan (intersection). Irisan dari bahasa A dan B terdiri dari kata-kata yang muncul di A sekaligus di B. Dinotasikan sebagai : A ( B,

A ( B = {x | x ( A dan x ( B}

Selisih (Difference). Jika A dan B bahasa berdasarkan abjad (, didefinisikan selisih antara bahasa-bahasa tersebut sebagai :

A B = {x | x ( A dan x ( B}

Komplemen. Komplemen dari suatu bahasa A berdasarkan abjad ( didefinisikan sebagai : .

Subbahasa (sublanguage). Jika A dan B bahasa berdasarkan abjad (, dan jika semua untai di A juga merupakan untai di B maka A disebut subbahasa dari B. (A ( B)

Equal. Dua bahasa A dan B dikatakan sama atau equal, A = B, jika kedua bahasa tersebut secara persis mempunyai untai-untai yang sama.

Pembalikan (Transpose/Reversal). Pembalikan dari suatu bahasa A dapat didefinisikan sebagai :

AR = { xR | x ( A }

Contoh : A = { dog, bog} maka AR = {god, gob}.

Kleene Closure / Star Closure. Jika A sebuah bahasa maka penutup kleene dari bahasa A didefinisikan sebagai : A* = .

Contoh : A = {a} maka A* = {(,a,aa,aaa,}

Positive Closure / Plus Closure. Jika A sebuah bahasa maka penutup kleene dari bahasa A didefinisikan sebagai : A+ = .

Contoh : A = {a} maka A+ = {a,aa,aaa,}.

Teorema : A+ = A. A* = A*. ASoal-Soal

1. Misalkan A = {the,my} dan B = {horse,house,hose} merupakan bahasa-bahasa berdasarkan alfabet bahasa inggris. Carilah A.B, A.A 2. Misalkan A = {(,a}. Carilah An untuk n = 0,1,2,3. Berapa banyaknya elemen An untuk sembarang n?

3. Misalkan A = {(}. Carilah A*.

4. Misalkan A = {(,ab} dan B = {cd}. Tentukan untai-untai dalam A*B.

5. Misalka A = {a,b} Carilah A*

6. Misalkan A = {(}, B = {aa,ab,bb}, C = {(,aa,ab} , dan D = {}. Carilah A(B, A(C, A(D, B(D dan A(B, B(C, C(D, A(D. Misalkan F sebarang bahasa carilah F(D dan F(D.

7. Misalkan bahasa S = {a,b} dan S* merupakan star closure dari bahasa S. Ada berapa kata di S* yang punya panjang 2? Panjang 3? Panjang n?

8. Misalkan bahasa S = {aa,b} dan S* merupakan star closure dari bahasa S. Ada berapa kata di S* yang punya panjang 4? Panjang 5? Panjang 6? (Jelaskan secara umum)

9. Misalkan bahasa S = {ab,ba} dan S* merupakan star closure dari bahasa S. Tuliskan semua kata di S* yang panjangnya kurang atau sama dengan 7. Mungkinkan ada kata dalam S* yang mempunyai substring aaa atau bbb?

10. Misalkan bahasa S = {a, ab,ba} dan S* merupakan star closure dari bahasa S. Apakah string abbba ada di S*? Tuliskan semua kata di S* yang panjangnya kurang atau sama dengan 6!

Reference

[1] Hopcroft,John E; Motwani, Rajeev; Ullman, Jeffrey D.; Introduction to Automata Theory, Language and Computation; Second Edition; Addison-Wesley, 2001.

[2] Kelley, Dean; Otomata dan Bahasa Formal, Sebuah Pengantar; PT. Prenhallindo, 1999

[3] Cohen, Daniel I.A; Introduction to Computer Theory; John Wiley & Sons, Inc, 1991.

BAB II

BAHASA REGULER

Definisi Bahasa Regular

Misalkan ( merupakan sebuah abjad. Kumpulan dari bahasa regular berdasar ( didefinisikan secara rekursif sebagai berikut [1] :

(1) ( adalah sebuah bahasa regular

(2) {(} adalah sebuah bahasa regular

(3) untuk setiap a ( (, {a} merupakan bahasa regular. Disebut juga bahasa singleton(4) Jika A dan B bahasa regular maka A(B, A.B, dan A* atau B* merupakan bahasa regular.

(5) Tidak ada bahasa lain berdasarkan ( yang regular.

Contoh 1 : Misalkan ( = {a,b}, maka berikut ini merupakan bahasa-bahasa regular berdasarkan ( yaitu ( , {(},{a},{b},{a,b},{ab},{a,ab,b},{ai | i (0}, {(ab)i | i ( 0}

Ekspresi Regular

Ekspresi Regular (Regular Expression), disingkat RE, didefinisikan sebagai berikut:

(1) ( merupakan ekspresi regular untuk bahasa regular ((2) ( merupakan ekspresi regular untuk bahasa regular {(}

(3) a merupakan ekspresi regular untuk bahasa singleton {a}

(4) Jika r ekspresi regular untuk bahasa regular A dan s sebuah ekspresi regular untuk bahasa regular B, maka

r + s merupakan ekspresi regular untuk bahasa A ( B

rs merupakan ekspresi regular untuk bahasa A.B r* merupakan ekspresi regular untuk bahasa A*Contoh 2:

Bahasa RegularRE

{(}(

{a}a

{a,b}a+b

{ab}ab

{a,aa}a+aa

{a}*a*

{a,b}*(a+b)*

{(,ab}*((+ab)*

Teorema

Misalkan r,s dan t merupakan ekspresi regular berdasar abjad ( yang sama, maka berlaku :

(1) r + s = s + r

(2) r + ( = ( + r = r

(3) r + r = r

(4) (r + s) + t = r + (s + t)

(5) r.( = (.r = r

(6) r.( = (.r = ((7) (rs)t = r(st)

(8) r (s + t) = rs + rt dan (r + s) t = rt + st

(9) r* = r** = r* r* = (( + r)* = r* (r + () = (r + () r* = ( + rr*

(10) (r+s)* = (r* + s*)* = (r* s*)* = (r* s)* r* = r* (sr*)*

(11) r (sr)* = (rs)* r(12) (r* s)* = ( + (r + s)*s

(13) (rs*)* = ( + r(r+s)*

(14) s (r+()*(r+()+s = sr* (15) rr* = r*r = r+Seperti halnya dalam operasi aritmatik, untuk menghilangkan ambiguitas saat menggunakan notasi +, * dan concat, maka diperlukan suatu hirarki penulisan notasi. Hirarki tertinggi adalah *, kemudian concat, dan terakhir +. Tanda kurung berperan untuk mengelompokkan suatu subekspresi sebagai satu entitas ekspresi seperti halnya penulisan formula aritmatika. Misalkan : aa*(b+ba*)*bBerikut ini contoh penulisan ekspresi regular dari pendefinisian bahasa regular :

Contoh 3: Jika ( = {a,b} dan L adalah bahasa berdasarkan abjad ( yang semua string didalamnya mempunyai panjang genap. (termasuk ( ( L, dimana panjangnya nol)

Setiap string yang panjangnya genap merupakan hasil operasi concat dari string dengan panjang 2 atau dapat dituliskan : L = {aa + ab + ba + bb}* dimana dapat dinyatakan dengan ekspresi regular

(aa+ab+ba+bb)* = (a(a+b) + b(a+b))*

= ((a+b)(a+b))*

Contoh 4: Jika ( = {a,b} dan L adalah bahasa berdasarkan abjad ( yang semua string didalamnya diakhiri dengan double a.

Sembarang string berdasarkan abjad ( dapat dituliskan L1 = {a,b}*, dan kemudian diconcat dengan L2 = {aa} , sehingga menjadi L1.L2 = {a,b}*{aa}. Jika dituliskan dalam ekspresi regular : (a+b)*(aa)Finite Automata (FA)

Suatu Finite Automata (FA) atau kadang disebut Finite State Automaton (FSA) adalah mesin abstrak yang dapat mengenali bahasa regular.

FA didefinisikan sebagai berikut :

Suatu FA merupakan mesin status hingga yang terdiri dari 5 tuple yaitu (Q,(,s,F,() dimana

Q merupakan himpunan berhingga dari state (status)

( adalah himpunan alfabet dari simbol input.

s ( Q merupakan sebuah state yang berlaku sebagai state awal (start state).

F ( Q yang merupakan state akhir (final state)

( adalah fungsi transisi yang memetakan Q x ( ke Q , ditulis ((Q,() = Q

Contoh 5: Diketahui sebuah FA M = (Q,(,s,F,() dimana Q = {q0, q1, q2}, ( = {a,b}, s = q0, F = {q0} dan ( :

ab

q0Q1q2

q1Q2q0

q2Q2q2

FA tersebut dapat dinyatakan dalam bentuk digraf sebagai berikut:

RE=(ab)* Finite Automata dan Bahasa Regular

Dalam definisi suatu FA terdapat sejumlah status akhir. Apabila sebuah string masukan membawa status FA mulai dari status awal ke salah satu status akhir maka string tersebut diterima atau dikenali oleh FA tersebut. Dan sebuah bahasa L dikatakan diterima oleh sebuah FA jika semua string elemen bahasa L diterima oleh FA tersebut.

Contoh 6 : Perhatikan FA pada contoh 5, string ab diterima oleh FA tersebut karena jika kita mulai dari status awal q0 membaca input a, kita akan menuju status q1. Kem udian dari q1 membaca b, menuju status q0. Disini pembacaan inpu selesai, dan berhenti di status akhir (final state). Sehingga ab diterima oleh FA tersebut.

Contoh 7 : String aab tidak diterima oleh FA pada contoh 5. Mengapa? String apa saja yang diterima oleh FA tesebut? Bahasa apa yang diterima oleh FA tersebut?

Nondeterministic Finite Automata

FA pada contoh 5 merupaka Deterministic Finite Automata, dimana banyaknya transisi dari satu status ke status lainnya satu dan hanya satu. Nondeterministic Finite Automata adalah FA yang banyaknya fungsi transisi (() dari satu state ke state lainnya nol, satu atau lebih dari satu state.

Contoh 8 : Berikut ini adalah NFA M = (Q,(,s,F,() dimana Q = {q0, q1, q2}, (={a,b}, s=q0, F = {q0} dan ( :

ab

Q0{q1}{}

Q1{}{q0,q2}

Q2{q0}{}

Atau dalam bentuk digraf :

Ekivalensi NFA dan DFA

Jika terdapat sebuah NFA M = (Q,(,s,F,() yang menerima bahasa L, maka ada DFA M=(Q,(, s,F,() yang juga menerima bahasa L , dimana :

(1) ( = ((2) s = s

(3) Jika Q = {q0, q1, , qn} maka mula-mula Q = { [q0],[q1],,[qn]}

(4) Jika ((qi,a) = {qj, qk, } dan a ( (, maka (([qi],a) = [qj, qk, ] dan [qj, qk, ] menjadi state baru dan digabungkan ke Q

(5) Setiap state baru dalam Q yang diperoleh, dicari transisi untuk setiap input dalam (. Dimana (([qj, qk, ],a) = ((qj,a) ( ((qk,a) (

(6) F terdiri dari semua state di Q yang mengandung state di F.

Contoh 9 : Carilah sebuah DFA M=( Q,(,s,F,() yang ekivalen dengan NFA M=(Q,(,s,F,() pada contoh

.

(1) ( = ( = {a,b}

(2) s = s = [q0]

(3) Qmula-mula = {[q0],[q1],[q2]}

(4) ((q0,a) = {q1}

( ((q0,a) = [q1]

((q0,b) = {}

( ((q0,b) = [ ] (state baru)

((q1,a) = {}

( ((q1,a) = [ ]

((q1,b) = {q0,q2}

( ((q1,b) = [q0, q2] (state baru)

((q2,a) = {q0}

( ((q2,a) = [q0]

((q2,b) = {}

( ((q2,b) = [ ]

maka Q = {[q0],[q1],[q2], [],[q0, q2]}

(5) (( [] , a) = []

(( [] , b) = []

(( [q0, q2], a ) = ((q0,a) ( ((q2,a) = {q1} ( {q0} = {q0,q1} ( [q0,q1]

(( [q0, q2], b ) = ((q0,b) ( ((q2,b) = {} ( {} = {} ( []

(( [q0, q1], a ) = ((q0,a) ( ((q1,a) = {q1} ( {} = {q1} ( [q1]

(( [q0, q1], b ) = ((q0,b) ( ((q1,b) = {} ( {q0,q2} = {q0,q2}

Tidak ada state baru.

(6) F = {[q0], [q0,q2],{qo,q1}}

Maka kita mendapatkan sebuah DFA M = (Q,(,s,F,() dengan Q = {[q0], [q1], [q2], [], [q0,q1], [q0,q2]}, ( = {a,b}, s = [q0], F = {[q0], [q0,q2], [qo,q1]}, dan ( :

ab

[q0][q1][]

[q1][][q0,q2]

[q2][q0][]

[][][]

[q0,q2][q0,q1][]

[q0,q1][q1][q0,q2]

Finite Automata Dengan Transisi Hampa ((-transition)

Adalah NFA yang mempunyai transisi yang tidak bergantung dari suatu input tertentu. Atau dengan kata lain, dapat berpindah dari satu state ke state lain tanpa membaca input apapun.

Contoh :

(-Closer

Untuk sebuah state q ( Q dari NFA M=(Q,(,s,F,() dengan transisi-(, didefinisikan penutup-( ((-closer) dari q dimana :

(-cl(q) = {p | p ( Q dan p dapat dicapai dari q tanpa input apapun}

sedangkan

(-cl({qi1 , qi2, qi3, , qik}) =

dimana a ( (., qi ( Q. dan

d(q,a) = {p | p( Q dimana ada transisi dari q ke p dengan input a}

Setiap state punya tran sisi-( ke state itu sendiri, meskipun tidak digambarkan.

Eliminasi Transisi-(Jika NFA M=(Q,(,s,F,() dengan transisi-(, maka terdapat NFA lain M=(Q,(,s,F,() tanpa transisi-( yang mendefinisikan bahasa yang sama dimana :

((q,a) = (-cl (d ((-cl (q), a))

dan

F = F ( { q | ((-cl(q) ( F) ( ( }

Contoh 10 : Hilangkan transisi-( dari NFA berikut :

Dari gambar diatas kita dapat menentukan bahwa ( = {a,b}, F = {q1} dan

d(q0,a) = {}

(-cl(q0) = {q0, q1}

d(q0,b) = {q0}

(-cl(q1) = {q1}

d(q1,a) = {q1}

d(q1,b) = {}

Maka :

(1) ((q0,a)

(-cl(q0) = {q0, q1}

d({q0, q1},a) = d(q0,a) ( d(q1,a) = {} ( {q1} = {q1}

(-cl(q1) = {q1}

maka ((q0,a) = {q1}

(2) ((q0,b)

(-cl(q0) = {q0, q1}

d({q0, q1},b) = d(q0,b) ( d(q1,b) = {q0} ( {} = {q0}

(-cl(q0) = {q0, q1}

maka ((q0,b) = {q0, q1}

(3) ((q1,a)

(-cl(q1) = {q1}

d(q1,a) = {q1}

(-cl(q1) = {q1}

maka ((q1,a) = {q1}

(4) ((q1,b)

(-cl(q1) = {q1}

d(q1,b) = {}

(-cl({}) = {}

maka ((q1,a) = {}

(5) F = {q1} ( {q0, q1} = {q0, q1}

Jadi NFA tanpa transisi-( adalah :

Finite Automata & Ekspresi Regular

Jika r1 dan r2 adalah ekspresi regular yang mendefinisikan sebuah bahasa regular L, maka kita dapat membentuk sebuah NFA dari bahasa regular L tersebut, dimana

(1) RE : (FA :

(2) RE : (FA :

(3) RE : r

FA :

(4) RE : r1 + r2FA :

(5) RE : r1.r2FA :

(6) RE : r1*

FA :

Jika diketahui RE sebuah bahasa regular L, maka kita dapat membentuk sebuah DFA yang menerima bahasa L dengan langkah-langkah :

(1) Bentuklah NFA dengan transisi-( dari RE tersebut

(2) Eliminasi transisi-( dari NFA di langkah (1)

(3) Rubah NFA yang diperoleh di langkah (2) menjadi DFA

Sebaliknya jika terdapat sebuah FA M = (Q,(,s,F,() yang menerima bahasa L, maka kita dapat menentukan RE dari bahasa L dimana jika qj ( ((qi,() dan ( ( ( maka terdapat persamaan :

dan A0 = L(M)Lemma Arden : Persamaan X = AX + B ekivalen dengan X = A*.B

Contoh 11: Tentukan RE dari FA berikut

Kita dapatkan persamaan :

A0 = aA0 + bA1 ..(1)

A1 = ( .(2)

Persamaan (2) disubstitusikan ke persamaan (1) sehingga :

A0 = aA0 + b.(

A0 = aA0 + b (3)

Menurut lemma Arden, persamaan (3) ekivalen dengan :

A0 = a*.b

RE yang mendefinisikan bahasa L, didapatkan dari A0. Jadi RE : a*bEkivalensi Dua DFA

Jika M = (Q,(,s,F,() adalah DFA yang menerima bahasa L dan M=(Q,(,s,F,() adalah DFA yang menerima bahasa L, maka M dan M dikatakan ekivalen jika M dan M menerima bahasa yang sama (L = L). Kita dapat menentukan apakah dua DFA M dan M ekivalen dengan menggunakan algoritma Moore sebagai berikut, misalkan ( = {a,b}:

(1) Setiap state dari M dan M diberi label/nama yang semuanya berbeda (tidak boleh ada duplikat label)

(2) Buat tabel perbandingan yang terdiri dari N(3 karena jumlah symbol ada 2) kolom. Elemen dari tabel berbentuk pasangan (q,q) dimana q(Q dan q(Q. Sebagai inisial, pasangan (s,s) ditempatkan di kolom pertama baris pertama.

(3) Tempatkan di kolom pertama, baris pertama pasangan (s,s). Dan di kolom kedua diisi dengan pasangan (((s,a),((s,a)) dan di kolom ketiga diisi dengan pasangan (((s,b), ((s,b))

(4) Dari hasil langkah (3), jika elemen di kolom kedua dan kolom ketiga belum pernah muncul di kolom pertama, maka kita tempatkan di kolom pertama baris berikutnya.

(5) Jika dalam proses muncul pasangan (q,q) dimana q ( F dan q ( F atau sebaliknya q ( F dan q(F maka proses berhenti dan disimpulkan bahwa M dan M tidak ekivalen.

(6) Proses berhenti dengan kesimpulan bahwa M ekivalen dengan M jika sudah tidak ada lagi pasangan baru yang ditempatkan di kolom pertama.

Contoh 12: Tentukan apakah dua DFA berikut ekivalen

Tabel perbandingan :

ab

(1,4)(1,4)(2,5)

(2,5)(3,6)(1,4)

(3,6)(2,7)(3,6)

(2,7)(3,6)(1,4)

Maka kedua DFA diatas ekivalen

Minimize DFA

Misalkan M = (Q,(,s,F,() adalah sebuah DFA dengan n buah state, maka terdapat DFA lain M= (Q,(,s,F,() yang mempunyai < n buah state, yang menerima bahasa yang sama dengan M. Untuk mendapatkan M yang jumlah statenya lebih minimum digunakan algoritma sebagai berikut :

(1) Buat sebuah partisi ( yang mula-mula berisi dua kelas/grup. Kelas pertama berisi state akhir dan kelas kedua beranggotakan state-state yang bukan state akhir.

(2) Untuk setiap grup dalam ( dipecah (split) menjadi subgrup-subgrup dimana state s dan t akan terletak dalam grup yang sama jika dan hanya jika dari state s dan t dengan input a akan menuju ke state yang terletak di grup yang sama

(3) Proses berhenti jika sudah tidak ada lagi grup yang dapat dipecah.

Contoh 13 : Minimalkan jumlah state dari DFA berikut :

Soal-Soal

1. Tentukan RE dari bahasa regular berdasarkan ( = {a,b} berikut :

(a) L = {abia | i (0 }

(b) L = {(aa)i | i ( 0 }

(c) L = {(ab)ia | i ( 0 }

(d) L = {aibj | i,j ( 0 }

(e) Bahasa yang semua string didalamnya diakhiri dengan double b(f) Bahasa yang terdiri dari sebarang untai

(g) Bahasa yang semua stringnya terdiri dari simbol b saja dengan panjang string ganjil.

(h) Bahasa yang terdiri dari sebarang untai dengan panjang string genap.

2. Tentukan bahasa apa yang didefinisikan oleh RE berikut ini :

(a) ab*

(b) b*aa

(c) (a+b)(a+b)

(d) (a+b)*ab(a+b)*

BAB III

Tata Bahasa (Grammar)

DefinisiGrammar terdiri dari 4 hal yaitu :1. Suatu alfabet ( yang disebut terminal, T, yaitu sesuatu yang tidak dapat diganti atau diuraikan menjadi simbol lain

2. Himpunan simbol Nonterminal, N, yaitu simbol yang dapat diganti menjadi simbol-simbol lain.

3. Sebuah start simbol, S, merupakan elemen dari N.

4. Himpunan aturan penggantian yang disebut produksi, P, yang berbentuk ( ( (, dimana (,( : sembarang barisan simbol terminal dan atau nonterminal.

Macam-macam Grammar1. Context Sensitive Grammar (Grammar tipe-1) yang mendefinisikan bahasa tipe-1 (bahasa context sensitive)

2. Context Free Grammar(Grammar tipe-2) yang mendefinisikan bahasa tipe-2 (bahasa context free)

3. Regular grammar (grammar tipe-3) yang mendefinisikan bahasa tipe-3 (bahasa regular)

Derivasi

Adalah proses pen urunan untuk mendapatkan suatu untai dengan menggunakan aturan produksi suatu grammar yang dimulai dari sebuah start simbol.

Contoh 1:

Diketahui grammar G = ( N = {S,E,A}; T = {a,b}; S = S; P ={ S ( aE; E ( A; A(aA; A(b})

Lakukan proses derivasi untuk mendapatkan untai aab S ( aE ( aA ( aaA ( aab

Grammar Regular

Definisi

Adl sebuah grammar G = (N,T,S,P) dengan produksi P berbentuk :

Atau

Semiword : barisan terminal yang diakhiri dengan satu nonterminal

Word : barisan terminal

Contoh 2 :

Grammar regular :

A ( aaB | bbC

B ( bB | b

C ( cc | c

Ekivalensi FA dengan grammar regular

Misalkan M adalah sebuah FA dimana M = ((,Q,s,F,() menerima bahasa L. Maka terdapat sebuah grammar G =(N,T,S,P) yang menerima bahasa L yang sama dimana :

1. N = Q

2. T = (3. S = s

4. P :

Transisi (()Produksi (P)

( (X,a) = Y X ( aY

F = {X}X ( (

Contoh 3:

Diketahui FA = ({S,M,F},{a,b},S,{S,M},(}

b

a

a,b

b a

S M F

Tentukan grammar yang ekivalen dengan FA diatas

Grammar : G = ({S,M,F},{a,b},S,P}

P : S ( aS | bM | (

M ( aF | bS | (

F ( aF | bF

Ekivalensi Grammar regular dengan FA

Jika G = (N,T,S,P) adalah sebuah grammar regular, maka terdapat NFA M=((,Q,s,F,() yang menerima bahasa yang sama dengan bahasa yang didefinisikan oleh G. Dimana :

1. ( = T

2. Qmula-mula = N ( {f} ; f sebuah state baru.

3. s = S

4. F = {f}

5. ( :

jika produksi berbentuk : A ( a1a2anB (semiword) maka ditambahkan (n-1) state baru : q1,q2,,qn-1 dengan transisi : ((A,a1)=q1; ((q1,a2)=q2; ((qn-1,an) = B

a1 a2 an-1 an

A q1 qn-1 B

jika produksi berbentuk : A ( a1a2an (word) maka ditambahkan (n-1) state baru : q1,q2,,qn-1 dengan transisi : ((A,a1)=q1; ((q1,a2)=q2; ((qn-1,an) = f

a1 a2 an-1 an

A q1 qn-1 f

Contoh 4 :

Tentukan FA dari grammar G = ({S,A,B},{a,b},S,P) dengan P :

S ( aB | bA | (

A ( abaS

B ( babS

FA yang ekivalen terdiri dari :

( = T = {a,b};

Qmula-mula = N ( {f} = {S,A,B,f}

s = S

F = {f}

( :

Produksitransisi

S ( aB((S,a) = B

S ( bA((S,b) = A

S ( (((S,() = f

A ( abaS((A,a) = q1((q1,b) = q2((q2,a) = S

B ( babS((B,b) = q3((q3,a) = q4((q4,b) = S

Conteks Free Grammar

Definisi

CFG adalah grammar dengan produksi berbentuk : ( ( ( dimana ( : sebuah Nonterminal dan ( : string terminal dan atau nonterminal.

Contoh 5 :

G = ({S,A,B},{a,b},S,P) dengan P :

S ( ABA

A ( aA | (

B ( bBb | (Catatan :

1. Sebuah grammar regular pasti merupakan CFG

2. Sebuah CFG belum tentu grammar regular

Macam Derivasi

Derivasi dibedakan menjadi 2 yaitu :

1. Leftmost Derivation : penggantian Nonterminalnya dimulai dari Nonterminal yang paling kiri terlebih dahulu.

2. Rightmost Derivation : penggantian nonterminal dimulai dari nonterminal paling kanan.

Contoh 6 :

Dari grammar pada contoh 5 diatas lakukan leftmost derivation dan rightmost derivation untuk string : abbaa Leftmost derivation

S ( ABA ( aABA ( aBA ( abBbA ( abbA ( abbaA ( abbaaA ( abbaa

Rightmost derivation

S ( ABA ( ABaA ( ABaaA ( ABaa ( AbBbaa ( Abbaa ( aAbbaa ( abbaa

Parse Tree (Pohon Penguraian)

Adalah sebuah pohon (tree) yang menggambarkan suatu proses derivasi dimana :

Root : start simbol suatu grammar

Branch node : simbol-simbol nonterminal yang diperoleh pada saat proses derivasi

Leaf (daun) : simbol terminal

Contoh 7 :

Buatlah parse tree untuk string pada contoh 6 :

S

A B A

a A b B b a A

( ( a A

( Grammar Ambiguous

Adalah grammar dengan lebih dari satu parse tree untuk input yang sama.

Contoh 8 :

Tentukan parse tree dari grammar : S ( SbS | ScS | a untuk input abaca.

Derivasi untuk input abaca :

S ( SbS ( abS ( abScS ( abacS ( abaca

Atau

S ( ScS ( SbScS ( abScS ( abacS ( abaca

Sehingga parse tree untuk input tersebut :

S

SbS

aS c S

a

a

S

S c S

S b S a

a a

Menentukan CFG dari RE

RECFG

(S ( (

aS ( a

a + bS ( a | b

abS ( ab

a*S ( aS | (

r1 + r2S ( X | Y

r1r2S ( XY

r1*S ( XS | (

Contoh 9 :

Tentukan CFG dari RE :

1. RE : aa + bb

CFG : S ( X | Y

X ( aa

Y ( bb

2. RE : (a + b)*

CFG : S ( XS | ( atau S ( aS | bS | (

X ( a | b

3. RE : a*bba*

CFG : S ( XYX

X ( aX | ( Y ( bb

Chomsky Normal Form (CNF) Produksi hampa ((-production)

Jika N sebuah Nonterminal maka produksi hampa ((-production) adalah produksi yang berbentuk : N ( ( Definisi nonterminal nullableSebuah Nonterminal N disebut Nullable jika :

1. Berbentuk N ( (2. Terdapat derivasi yang dimulai dari N dan mencapai suatu untai hampa ( N ( ( ()

Replacement Rule (Aturan penggantian)

Jika G adalah sebuah grammar yang mengandung produksi-( maka terdapat grammar lain G yang tidak mengandung produksi-( yang menerima bahasa yang sama dengan G, yang dapat ditentukan dengan aturan penggantian yaitu:

1. Hapus semua produksi-(2. Jika ( ( ( produksi dimana ( mengandung Nonterminal Nullable, tambahkan produksi baru dengan menggantikan Nonterminal Nullable di semua posisi

A ( s1Ns2Ns3

dimana s1,s2,s3 : sembarang string

N : nonterminal nullable

Maka ditambahkan produksi :

A ( s1s2Ns3

(N pertama diganti ()

A ( s1Ns2s3

(N kedua diganti (

A ( s1s2s3

(N dikedua posisi diganti ()

Contoh 9 :

Tentukan grammar yang tidak mengandung produksi-( dari grammar berikut:

S ( a | Xb | aYa

X ( Y | (Y ( b | X

Jawab :

1. Menentukan nonterminal nullable

- X nonterminal nullable, karena ada produksi X ( (- Y nonterminal nullable, karena ada derivasi: Y ( X ( (2. Menghapus produksi-( sehingga grammar diatas menjadi :

S ( a | Xb | aYa

X ( Y

Y ( X/b

3. Menambahkan produksi baru :

Produksi yang mengandung nonterminal nullableProduksi baru

S ( XbS ( b

S ( aYaS ( aa

X ( Y-

Y ( X-

Maka grammar tanpa produksi-( adalah :

S ( a | Xb | aYa | b | aa

X ( Y

Y ( X/b

Produksi unit (Unit Production)

Jika A dan B nonterminal, maka produksi unit adalah produksi yang berbentuk : Satu Nonterminal ( Satu Nonterminal (A ( B)

Jika G grammar yang mengandung produksi unit maka terdapat grammar G yang tidak mengandung produksi unit dan menerima bahasa yang sama dengan G yang dapat diperoleh dengan aturan eliminasi (Elimination Rule) yaitu :

1. Jika A ( B sebuah produksi unit dan terdapat produksi yang dimulai dari B yaitu

B ( s1 | s2 |

Maka pada grammar ditambahkan produksi :

A ( s1 | s2 |

2. Jika A,B Nonterminal dan terdapat proses derivasi yang dimulai dari A dan berakhir di B :

A ( X1 ( X2 ( ( B

Dimana X1,X2 : Nonterminal dan terdapat produksi yang dimulai B :

B ( s1 | s2 |

Maka ditambahkan produksi :

A ( s1 | s2 |

3. Hapus semua produksi unit

Contoh 10 :

Tentukan grammar yang tidak mengandung produksi unit yang ekivalen dengan grammar berikut :

S ( A | bb

A ( B | b

B ( S | a

Jawab :

1. Menentukan produksi unit

Produksi unitBukan produksi unit

S ( AS ( bb

A ( BA ( b

B ( SB ( a

2. Menambahkan produksi baru

Produksi baru

S ( AS ( b

S ( A ( BS ( a

A ( BA ( a

A ( B ( SA ( bb

B ( SB ( bb

B ( S ( AB ( b

Jadi grammar yang tidak mengandung produksi unit :

S ( bb | b | a

A ( b | a | bb

B ( a | bb | b

S ( A | bb

A ( B | b

B ( S | a

Jika G adalah sebuah CFG dapat dirubah menjadi CFG lain yang ekivalen dan mempunyai produksi berbentuk :

Nonterminal ( rangkaian Nonterminal

Atau

Nonterminal ( satu terminal

Dengan cara :

Mengganti setiap terminal dengan nonterminal baru.

Misalkan produksi berbentuk :

N ( a1a2a3

Dimana a1,a2,a3 adalah terminal, maka setiap terminal diganti dengan nonterminal baru misal X1,X2,X3,

N ( X1X2X3

Menambahkan produksi baru, dari tiap nonterminal baru ke terminal yang digantikan :

X1 ( a1 ; X2 ( a2 ; X3 ( a3

Contoh 11 :

Rubah CFG berikut menjadi bentuk Nonterminal ( rangkaian nonterminal ; atau Nonterminal ( satu terminal.

S ( X | YaY | aSb | b

X ( YY | b

Y ( aY | aaX

Jawab :

Produksi yang dirubahProduksi penggantiProduksi baru

S ( YaYS ( YAYA ( a

S ( aSbS ( ASBA ( a ; B ( b

Y ( aYY ( AYA ( a

Y ( aaXY ( AAXA ( a

Jadi CFG baru yang didapat adalah sbb :

S ( X | YAY | ASB | b

X ( YY | b

Y ( AY | AAX

A ( a

B ( b

Jika G adalah sebuah CFG dapat dirubah menjadi CFG lain yang ekivalen dan mempunyai produksi berbentuk :

Nonterminal ( dua Nonterminal

Atau

Nonterminal ( satu terminal

Dengan cara :

Mengganti rangkaian Nonterminal pada posisi kedua dan seterusnya dengan sebuah nonterminal baru.

Misal terdapat produksi : N ( X1X2X3; dimana X1,X2,X3 : Nonterminal maka produksi tsb dirubah menjadi : N ( X1R1 Menambah produksi baru dari nonterminal baru ke rangkaian Nonterminal yang digantikan, yaitu R1 ( X2X3Contoh 12 :

Rubah CFG berikut menjadi bentuk Nonterminal ( dua Nonterminal atau Nonterminal ( satu terminal

S ( YAY | ASB | b

X ( YY | b

Y ( AY | AAX

A ( a

B ( b

Jawab :

Produksi yang digantiProduksi penggantiProduksi baru

S ( YAYS ( YR1R1 ( AY

S ( ASBS ( AR2R2 ( SB

Y ( AAXY ( AR3R3 ( AX

Jadi CFG baru yang diperoleh :

S ( YR1 | AR2 | b

X ( YY | b

Y ( AY | AR3

R1 ( AY

R2 ( SB

R3 ( AX

A ( a

B ( b

S ( YAY | ASB | b

X ( YY | b

Y ( AY | AAX

A ( a

B ( b

Definisi Chomsky Normal Form (CNF)

Adalah sebuah CFG yang mempunyai produksi berbentuk :

Satu Nonterminal ( Dua Nonterminal

Atau

Satu Nonterminal ( satu terminal

Langkah langkah merubah CFG menjadi CNF

1. Jika terdapat produksi-(, hilangkan dengan replacement rule

2. Jika terdapat produksi unit, hilangkan dengan elimination rule

3. Rubah menjadi bentuk :

Satu Nonterminal ( rangkaian Nonterminal ;atau

Satu Nonterminal ( satu terminal

4. Rubah menjadi bentuk :

Satu Nonterminal ( Dua Nonterminal

;atau

Satu Nonterminal ( satu terminal

Contoh 13 :

Tentukan CNF dari CFG berikut :

S ( AB

A ( B

B ( aB | Bb | (

Langkah-langkahnya :

1. Menghapus produksi-(a. Nonterminal nullable adalah A dan B karena:

B ( (A ( B ( (b. Menghapus produksi-( sehingga menjadi :

S ( AB

A ( B

B ( aB | Bb

c. Menambah produksi baru :

Produksi yang mengandung nonterminal nullableProduksi baru

S ( ABS ( B

S ( A

A ( B-

B ( aBB ( a

B ( BbB ( b

Jadi CFG1 baru :

S ( AB | B | A

A ( B

B ( aB | Bb | a | b

2. Menghapus produksi unit dari CFG1

a. Menentukan produksi unit

Produksi UnitBukan Produksi unit

S ( A

S ( BS ( AB

A ( B-

B ( aB | Bb | a | b

b. Menambah produksi baru :

Produksi baru

S ( A ( B atau

S ( BS ( aB | Bb | a | b

A ( BA ( aB | Bb | a | b

Jadi CFG2 baru :

S ( AB | aB | Bb | a | b

A ( aB | Bb | a | b

B ( aB | Bb | a | b

3. Merubah CFG2 menjadi bentuk rangkaian Nonterminal

Produksi yang digantiProduksi penggantiProduksi baru

S ( aBS ( XBX ( a

S ( BbS ( BYY ( b

A ( aBA ( XBX ( a

A ( BbA ( BYY ( b

B ( aBB ( XBX ( a

B ( BbB ( BYY ( b

Jadi CNF yang didapat :

S ( AB | XB | BY | a | b

A ( XB | BY | a | b

B ( XB | BY | a | b

X->a Y->b

BAB IV

Pushdown Automata (PDA)

Definisi

Pushdown automata terdiri dari 8 hal yaitu :

1. Himpunan alfabet sebagai input (()

2. Sebuah input tape, yang mula-mula berisi string input diikuti beberapa simbol blank (( atau ().

3. Himpunan karakter stack (()

4. Sebuah pushdown stack, yang mula-mula kosong.

5. Sebuah state awal (START)

6. Beberapa state pemberhentian yaitu ACCEPT dan REJECT

7. Beberapa state PUSH

8. Beberapa state percabangan :

a. State READ : membaca input tape berikutnya.

b. State POP : membaca karakter di top of stack.

Contoh 14 :

A a ( b

b

b,( a ( a,b

a (Analisa bagaimana PDA diatas menerima input : aaabbbStateInput TapeStack

STARTaaabbb((((

READ1aaabbb((((

PUSH aaabbb((a((

READ1aabbb((a((

PUSH aabbb((aa((

READ1abbb((aa((

PUSH abbb((aaa((

READ1bbb((aaa((

POP1bb((aa((

READ2bb((aa((

POP1b((a((

READ2b((a((

POP1((((

READ2((((

POP2((

ACCEPT((

Ekivalensi PDA dan FA

Jika diketahui sebuah FA M = ((,Q,s,F,() maka terdapat sebuah PDA tanpa stack yang menerima bahasa yang sama

Contoh 15:

Tentukan PDA dari FA berikut :

b B

a a

A b

PDA :

b

b a ( ( a Nondeterministik PDA

Adalah suatu PDA dimana pada state percabangan terdapat transisi keluar dengan input yang sama ke state yang berbeda.

Ekivalensi CFG dan PDA

Jika L adalah bahasa yang didefinisikan oleh sebuah CFG, maka ada PDA yang menerima bahasa L tersebut. Adapun cara merubah CFG menjadi PDA sebagai berikut :

1. CFG dirubah ke bentuk CNF

2. Jika X1 sebuah start simbol maka :

3. Jika Xi, Xj, Xk adalah nonterminal dan terdapat produksi : Xi ( XjXk

Xi4. Jika Xi : Nonterminal ; b : terminal dan terdapat produksi : Xi ( b

b

Xi

Contoh 16 :

Tentukan PDA dari CFG berikut :

S ( AB

A ( BB | a

B ( AB | a | b

a

a

b

PDA :

A B B

(

( S A B

Context Free Language

Jika L1 dan L2 merupakan CFL, maka L1+L2 juga merupakan CFL

Dengan grammar

Jika G1 = (N1,T1,S1,P1) adalah CFG yang mendefinisikan L1 dan G2=(N2,T2,S2,P2) adalah CFG yang mendefinisikan L2, maka L1+L2 didefinisikan oleh CFG :

S ( S1 | S2

G1 (dengan subscript 1 di setiap nonterminal)

G2 (dengan subscript 2 di setiap nonterminal)

Contoh 17 :

- L1 dinyatakan dengan CFG1 sbb :

S1 ( aS1a | bS1b | a | b | (- L2 dinyatakan dengan CFG2 sbb :

S2 ( aS2b | (- maka L1+L2 dinyatakan dengan CFG sbb :

S ( S1 | S2

S1 ( aS1a | bS1b | a | b | (

S2 ( aS2b | ( Dengan PDA :

Jika PDA1 menerima bahasa L1 dan PDA2 menerima bahasa L2 maka terdapat sebuah PDA yang menerima bahasa L1+L2 dimana :

PDA1 dimulai dengan : PDA2 dimulai dengan:

Maka PDA untuk L1+L2 dimulai dengan :

Contoh 18:

- PDA1 :

a a a

b

- PDA2 :

a

- PDA untuk L1+L2 :

a

a a a

b

Jika L1 dan L2 adalah CFL maka L1L2 juga sebuah CFL

Dengan grammar

Jika G1 sebuah CFG yang mendefinisikan L1 dan G2 adalah CFG yang mendefinisikan bahasa L2, maka terdapat CFG yang mendefinisikan bahasa L1L2 dimana :

S ( S1S2

G1 (dengan subscript 1 di setiap nonterminal)

G2 (dengan subscript 2 di setiap nonterminal)

Contoh 19:

- L1 dinyatakan dengan CFG1 sbb :

S ( aSa | bSb | a | b | (- L2 dinyatakan dengan CFG2 sbb :

S ( aSb | (- maka L1L2 dinyatakan dengan CFG sbb :

S ( S1S2

S1 ( aS1a | bS1b | a | b | (

S2 ( aS2b | ( Dengan PDA

Jika PDA1 menerima bahasa L1 dan PDA2 menerima bahasa L2 maka terdapat sebuah PDA yang menerima bahasa L1L2 dimana :

PDA1 diakhiri dengan : PDA2 diakhiri dengan:

Maka PDA yang menerima bahasa L1L2 :

Contoh 20 :

- PDA1 :

a

- PDA2 :

a a a

b

- PDA untuk L1L2 :

a

a a a

b

Jika L1 adalah CFL maka L1* juga sebuah CFL

Dengan grammar

Jika G1 sebuah CFG yang mendefinisikan L1, maka terdapat CFG yang mendefinisikan bahasa L1* dimana :

S ( S1S

G1 (dengan subscript 1 di setiap nonterminal)

Contoh 21:

- L1 dinyatakan dengan CFG1 sbb :

S ( aSa | bSb | a | b | (- maka L1* dinyatakan dengan CFG sbb :

S ( S1S

S1 ( aS1a | bS1b | a | b | (BAB V

Turing Machines

Definisi

Sebuah mesin turing (turing machine), TM, terdiri dari 6 hal yaitu :

1. Sebuah himpunan alfabet ( sebagai input

2. Sebuah tape yang terdiri dari tak hingga sel, dimana masing-masing sel dapat berisi sebuah karakter atau blank simbol ((). Mula-mula tape berisi string input, mulai dari sel paling kiri dan diakhiri simbol blank

3. Sebuah tape head , yang tugasnya :

- membaca isi sel tape

- mengganti isinya dengan karakter lain

- bergerak ke sel berikut, satu langkah, ke kiri atau ke kanan.

Mula-mula tape head terletak di sel paling kiri.

4. Sebuah himpunan karakter, (, yang dapat dicetak tape head ke dalam tape

5. Sebuah himpunan terhingga dari state, termasuk didalamnya sebuah state awal (START), dan beberapa state akhir / pemberhentian (HALT)

6. Sebuah program, yang merupakan himpunan aturan yang berisi informasi:

- apa yang harus dibaca tape head- karakter apa yang akan dicetak ke tape- tape head harus bergerak kemana

berbentuk :

(x1, x2, arah)

Keterangan :

x1 : elemen dari ( atau ( atau berupa ( (blank), yang menunjukkan karakter apa yang dibaca tape head.

x2 : elemen dari ( atau berupa ( (blank), yang menunjukkan karakter apa yang dicetak ke tape menggantikan x1.

Arah : R (Right) : bergerak ke kanan satu langkah

L (Left) : bergerak ke kiri satu langkah

Contoh 22 :

Mesin Turing yang menerima bahasa (a+b)b(a+b)*

(a,a,R) (b,b,R) ((,(,R)

(b,b,R) (a,a,R)

(b,b,R)

Cara kerja mesin turing diatas menerima kata abaStateTape

START 1a b a ( (

2a b a ( (

3a b a ( (

3a b a ( (

HALT 4a b a ( (

Soal soal

1. Dari CFG berikut :

S ( aS | bb

Tunjukkan bahwa CFG tersebut mendefinisikan bahasa a*bb2. Dari CFG berikut :

S ( XYX

X ( aX | bX | (Y ( bbb

Tunjukkan bahwa CFG tersebut mendefinisikan bahasa (a+b)*bbb(a+b)*

3. Dari CFG berikut :

S ( aX

X ( aX | bX | (

Tentukan bahasa apa yang didefinisikan CFG diatas ?

4. Dari CFG berikut :

S ( XaXaX

X ( aX | bX | (

Tentukan bahasa apa yang didefinisikan CFG diatas ?

5. Tentukan CFG untuk tiap-tiap bahasa berikut :

(i) ab*

(ii) a*b*

(iii) (baa + abb)*

6. Gambarkan parse tree untuk masing-masing CFG berikut :

CFG 1 : S ( aSb | ab

CFG 2 : S ( aS | bS | a

CFG 3 : S ( aS | aSb | X

X ( aXa | a

CFG 4 : S ( aAS | a

A ( SbA | SS | ba

CFG 5 : S ( aB | bA

A ( a | aS | bAA

B ( b | bS | aBB

Untuk input : ab, aaaa, aabb, abaa, abba, baaa, abab, bbaa, baab.

7. Tunjukkan bahwa CFG berikut ambigious dengan menemukan sebuah input yang mempunyai dua parse tree yang berbeda.

(i) S ( SaSaS | b

(ii) S ( aSb | S b | Sa | a

(iii) S ( aaS | aaaS | a

(iv) S ( aS | aSb | X

X ( Xa | a

8. Tentukan CFG untuk bahasa regular berikut ini untuk ( = {a,b}:

(i) bahasa yang didefinisikan dengan RE : (aaa + b)*(ii) bahasa yang didefinisikan dengan RE : (a+b)*(bbb+aaa)(a+b)*(iii) bahasa yang semua katanya diakhiri dengan b.

(iv) bahasa yang semua katanya punya panjang kata ganjil.

(v) Bahasa yang semua katanya terdiri dari a saja dengan panjang ganjil atau b saja dengan panjang genap.

9. Tentukan RE dan FA dari bahasa yang didefinisikan oleh CFG berikut :

(i) S ( aX | bS | a | b

X ( aX | a

(ii) S ( bS | aX | b

X ( bX | aS | a

(iii) S ( aaS | abS | baS | bbS | ((iv) S ( aB | bA | (A ( aS

B ( bS

(v) S ( aB | bA

A ( aB | a

B ( bA | b

(vi) S ( aS | bX | a

X ( aX | bY | a

Y ( aY | a

(vii) S ( aS | bX | a

X ( aX | bY | bZ | a

Y ( aY | a

Z ( aZ | bW

W ( aW | a

(viii) S ( bS | aX

X ( bS | aY

Y ( aY | bY | a | b

10. Untuk tiap-tiap CFG berikut tentukan CFG lain yang tidak mengandung produksi hampa. ((-production)

(i) S ( aX | bX

X ( a | b | ((ii) S ( aX | bS | a | b

X ( aX | a | ((iii) S ( aS | bX

X ( aX | ((iv) S ( XaX | bX

X ( XaX | XbX | (11. Untuk tiap-tiap CFG berikut tentukan CFG lain yang tidak mengandung produksi unit

(i) S ( aX | Yb

X ( S

Y ( bY | b

(ii) S ( AA

A ( B | BB

B ( abB | b | bb

(iii) S ( AB

A ( B

B ( aB | Bb | (12. Rubah CFG berikut ke dalam bentuk CNF

(i) S ( SS | a

(ii) S ( aSa | Ssa | a

(iii) S ( aXX

X ( aS | bS | a

(iv) E ( E + E

E ( E * E

E ( (E)

E ( 7

(v) S ( ABABAB

A ( a | (B ( b | ((vi) S ( SaS | SaSbS | SbSaS | ((vii) S ( AS | SB

A ( BS | SA | a

B ( SS | b

(viii) S ( X

X ( Y

Y ( Z

Z ( aa

(ix) S ( SS | A

A ( SS | AS | a

13. Tentukan leftmost derivation untuk kata abba dari grammar berikut :

S ( AA

A ( aB

B ( bB | (14. Tentukan leftmost derivation untuk kata abbabaabbbabbab dari CFG :

S ( SSS | aXb

X ( ba | bba | abb

15. Rubah FA berikut menjadi PDA :

(i) a

a

b b a b b

a

(ii)

b a

a b b

a b a

16. Dari PDA berikut ini periksalah apakah input string berikut diterima oleh PDA tersebut :

(i) abb

(ii) abab

(iii) aabb

(iv) aabbbb

( a

b

a ( b

a,(

a,b b b

( a b,( ( a

17. Dari PDA berikut :

( a

a

b

a,b (

(

Tentukan apakah kata-kata berikut diterima oleh PDA tersebut :

(i) aaabbb(ii) aaabab(iii) aaabaa(iv) aaaabb

18. Rancanglah sebuah PDA yang menerima bahasa :

(i) L = {anb2n | n ( 1}

(ii) L = {a2nbn | n ( 1}

(iii) L = {an+1bn | n ( 1}

(iv) L = {anbn+1 | n ( 1}

19. Tentukan PDA yang menerima bahasa yang sama dengan CFG berikut :

(i) S ( aSbb | abb

(ii) S ( SS | a | b

(iii) S ( XaaX

X ( aX | bX | ((iv) S ( aS | aSbS | a

(v) S ( XY

X ( aX | bX | a

Y ( Ya | Yb | a

(vi) S ( Xa | Yb

X ( Sb | b

Y ( Sa | a

20. Tentukan CFG yang mendefinisikan bahasa-bahasa berikut untuk ( = {a,b} :

(i) bahasa yang terdiri dari semua kata yang dimulai dengan a atau berbentuk anbn untuk n ( 1

(ii) bahasa yang terdiri dari semua kata yang dimulai dengan b atau berbentuk anbn untuk n ( 1

(iii) bahasa yang semua katanya berbentuk anbnambm dimana n,m(1

(iv) bahasa yang semua katanya berbentuk axbyaz dimana n,m(1 dan x+z = y

(v) bahasa yang semua katanya berbentuk anb2namb2m dimana n,m(1

21. (i) Tentukan CFG untuk bahasa

L = a(bb)*

(ii) Tentukan CFG untuk bahasa L*

22. Dari TM berikut ini :

(a,a,L)

(b,b,L)

(a,a,L),(b,b,L) (b,#,L),(a,#,L)

(#,#,R) ((,(,L)

(#,#,L)

(b,#,R) (a,a,R),(b,b,R)

(a,a,R)

(b,b,R)

(a,#,R) (a,a,R)

(b,b,R)

(#,#,R)

((,(,R)

Tentukan apakah input string berikut diterima oleh TM tersebut :

(i) aaa

(iii) baaba

(ii) aba (iv) ababb

1. Tentukan CFG dari a*bb2. Tentukan CFG dari (a+b)*bbb(a+b)*

3. Hilangkan ( produksi dibawah ini

S -> aB/A/aAbB

B -> aSb/bA/(

A -> B/aS/bAaB4. Tentukan RG dari FA dibawah ini

Nonterminal ( semiword

Nonterminal ( word

(terminal)(terminal)(terminal)(Nonterminal)

(terminal)(terminal)(terminal)

START

REJECT

ACCEPT

PUSH X

READ

POP

START

READ1

PUSH a

POP1

READ2

POP2

REJECT

REJECT

ACCEPT

REJECT

AA

START

Read A

REJECT

ACCEPT

Read B

START

POP

PUSH X1

POP

PUSH Xk

PUSH Xj

READ

POP

START

PUSH S

POP

READ

READ

READ

READ

PUSH A

PUSH B

PUSH B

PUSH B

PUSH A

PUSH B

ACCEPT

START

START

START

START

READ

PUSH a

PUSH b

POP

ACCEPT

START

READ

ACCEPT

START

READ

PUSH a

PUSH b

POP

ACCEPT

READ

ACCEPT

START

START

READ

ACCEPT

START

READ

PUSH a

PUSH b

POP

ACCEPT

READ

PUSH a

PUSH b

POP

ACCEPT

START

READ

2

HALT 4

START 1

3

START

READ1

ACCEPT

REJECT

REJECT

REJECT

REJECT

ACCEPT

REJECT

READ2

READ3

POP

READ4

POP

PUSH a

START

ACCEPT

ACCEPT

READ1

READ2

READ3

POP1

POP2

PUSH a

7

6

5

4

3

2

START1

HALT

Materi Kuliah Teori Bahasa Dan Otomata

Author : Fajar Astuti H, S.Kom

_1139871451.unknown

_1140448729.vsd

_1140453740.vsd

_1301322069.vsdq1

q0

q2

a

b

b

b

_1304921869.vsdA0

A1

b

a

_1317372366.vsdq0

q1

a, b

a

b

q0

_1301331365.vsdq1

q0

q2

a

b

a

b

_1140458804.vsd

_1237708766.unknown

_1140460860.vsd

_1140456103.unknown

_1140450922.vsd

_1140452837.vsd

_1140453373.vsd

_1140451803.vsd

_1140450797.vsd

_1140444749.vsd

_1140447830.unknown

_1140081500.vsd

_1139869805.unknown

_1139870819.unknown

_1139871203.unknown

_1139870263.unknown

_1139867170.unknown

_1139868274.unknown

_1139866789.unknown