TEORI BAHASA DAN AUTOMATA

1. Definisi Teori Bahasa dan Automata • Teori Bahasa Bahasa didefinisikan didalam kamus adalah suatu sistem yang meliputi pengekspresian gagasan, fakta, konsep, termasuk sekumpulan simbol-simbol dan aturan untukmelakukan manipulasinya. Sebuah bahasa adalah himpunan stringstring dari simbol-simbol alphabet. Teori bahasa membicarakan bahasa formal (formal language), terutama untuk kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor). • Automata Automata berasal dari bahasa Yunani automatos, yang berarti sesuatu yang bekerja secara otomatis (mesin). Istilah automaton sebagai bentuk tunggal dan automata sebagai bentuk jamak. Automata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.

2. • • • • • • • • •

Ruang Lingkup Teori Bahasa dan Automata Pengertian Dasar dan Operasi pada string Grammar dan Bahasa Teknik Kompilasi Finite State Automata (FSA) Ekspresi Reguler Mesin Pengenal Bahasa Pohon Penurunan Bentuk Normal Rekursif Kiri

dimana : VT : himpunan simbol-simbol terminal (alfabet) kamus VN : himpunan simbol-simbol non terminal S∈V N : simbol awal (atau simbol start) P : himpunan produksi Contoh : 1) G1 : VT = {I. dan . Anggota bahasa bisa tak hingga kalimat. − dan × . • Sebuah produksi dilambangkan sebagai α → β . • Simbol-simbol berikut adalah simbol non terminal /Variabel :  huruf besar. • Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbolsimbol non terminal atau campuran keduanya. Sebuah derivasi dilambangkan sebagai : α ⇒ β . V N = {S. misalnya : if.A. Kalimat adalah merupakan sentensial. V N . misalnya : A. C  huruf S sebagai simbol awal  string yang tercetak miring. c. V N . misalnya : expr • Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya. You}.  string yang tercetak tebal. P). S. • Kalimat adalah string yang tersusun atas simbol-simbol terminal.. ). IMissYou} . S. dan dituliskan sebagai G(V T . • Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. misalnya : +. artinya : dalam sebuah derivasi dapat dilakukan penggantian simbol α dengan simbol β .B. misalnya : a. C→ You} S ⇒ ABC ⇒ IloveYou L(G1)={IloveYou. dan else. P = {S → ABC. • Bahasa adalah himpunan kalimat-kalimat. • Simbol-simbol berikut adalah simbol terminal :  huruf kecil..C}. . sebaliknya belum tentu. dan P. • Kalimat adalah deretan hingga simbol-simbol terminal. Grammar Grammar G didefinisikan sebagai pasangan 4 tuple : V T . 0. 1. b. misalnya : (.  simbol tanda baca. dan γ .3. B→ Love | Miss. Miss. Definisi Jenis dan Contoh Grammar Konsep Dasar • Anggota alfabet dinamakan simbol terminal. β . B.  simbol operator. Love. then. A→ I. misalnya : α .

B → b}. 3) language if it can be specified by a type-i grammar but can’t be specified any type-(i+1) grammar. β ∈ (V T  N ) *. Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau string V T V N maka G 1 adalah RG(3). V N V T } Tipe sebuah grammar (atau bahasa) ditentukan dengan aturan sebagai berikut : A language is said to be type-i (i = 0. Contoh Analisa Penentuan Type Grammar 1. B → bB. Grammar tipe ke-0 : Unrestricted Grammar (UG) Ciri : α . V T V N } atau α ∈ V N . 2. Ruas kiri semua produksinya terdiri dari sebuah V N maka G 2 kemungkinan tipe CFG atau RG.…} Klasifikasi Chomsky Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya (α → β ). Noam Chomsky mengklasifikasikan 4 tipe grammar : 1. Grammar tipe ke-3 : Regular Grammar (RG) Ciri : α ∈ V N . . β ∈ {V T . 0 <  α  ≤  β  V 3. P = {S → aS a} S ⇒ aS ⇒ aaS ⇒ aaa L(G2) ={an n ≥ 1} L(G2)={a. β ∈ (V T  N )*. Grammar G 2 dengan P 2 = {S → Ba. 2. Ruas kiri semua produksinya terdiri dari sebuah V N maka G 1 kemungkinan tipe CFG atau RG. 1. aaaa.2) G2 : VT = {a}. Grammar tipe ke-2 : Context Free Grammar (CFG) Ciri : α ∈ V N . β ∈ (V T  N )* V 4.  α  > 0 V 2. aaa. β ∈ {V T . Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau string V N V T maka G 2 adalah RG(3). aa. Grammar G 1 dengan P 1 = {S → aB. V N = {S}. Grammar tipe ke-1 : Context Sensitive Grammar (CSG) Ciri : α . B → b}. B → Bb.

Selanjutnya karena ruas kanannya mengandung string V T V N (yaitu bB) dan juga string V N V T (Ba) maka G 3 bukan RG. SAc → bc}. 2. 3. A → b}. Jawab : Derivasi kalimat terpendek : S ⇒ aB (2) ⇒ abC (3) Derivasi kalimat umum : S ⇒ aS (1) … . Grammar G 4 dengan P 4 = {S → aAb. 5. Ruas kirinya mengandung string yang panjangnya lebih dari 1 (yaitu aAb) maka G 5 kemungkinan tipe CSG atau UG. Derivasi Kalimat dan Penentuan Bahasa Tentukan bahasa dari masing-masing gramar berikut : 1. B → b}. 6. G 1 dengan P 1 = {1. Selanjutnya karena semua ruas kirinya lebih pendek atau sama dengan ruas kananya maka G 5 adalah CSG. Grammar G 5 dengan P 5 = {S → aA. S → aAa. 5. Ruas kiri semua produksinya terdiri dari sebuah V N maka G 3 kemungkinan tipe CFG atau RG. 4. S → aB. dengan kata lain G 4 adalah CFG. C → a}. S → aS. Selanjutnya karena terdapat ruas kirinya yang lebih panjang daripada ruas kananya (yaitu SAc) maka G 6 adalah UG. Grammar G 3 dengan P 3 = {S → Ba. A → aAa. aAb → aBCb}.3. 4. B → bC. G 2 dengan P 2 = {1. 2. B → bB. S → aB. Ruas kirinya mengandung string yang panjangnya lebih dari 1 maka G 6 kemungkinan tipe CSG atau UG. 3. Ruas kiri semua produksinya terdiri dari sebuah V N maka G 4 kemungkinan tipe CFG atau RG. dengan kata lain G 3 adalah CFG(2). Jawab : Derivasi kalimat terpendek : S ⇒ aAa (1) ⇒ aba (3) Derivasi kalimat umum : S ⇒ aAa (1) ⇒ aaAaa (2) … ⇒ a n Aa n (2) ⇒ a n ba n (3) Dari pola kedua kalimat disimpulkan : L 1 (G 1 ) = { a n ba n n ≥ 1} 2. C → aC. Selanjutnya karena ruas kanannya mengandung string yang panjangnya lebih dari 2 (yaitu aAb) maka G 4 bukan RG. B → aB}. Grammar G 6 dengan P 6 = {aS → ab.

5. 3. S → abC. 6. Tentukan sebuah gramar bebas konteks untuk bahasa : . Tentukan sebuah gramar regular untuk bahasa L 1 = { a n n ≥ 1} Jawab : P 1 (L 1 ) = {S → aS a} 2. cC → cc}. G 3 dengan P 3 = {1. m≥ 1} n 3.⇒ aba (5) ⇒ a n -1 S ⇒a n B ⇒ a n bC ⇒ a n baC (4) … ⇒ a n ba m -1 C ⇒ a n ba m (5) (1) (2) (3) (4) Dari pola kedua kalimat disimpulkan : L 2 (G 2 )={a n ba m  ≥ 1. Jawab : Derivasi kalimat terpendek 1: Derivasi kalimat terpendek 3 : S ⇒ abC (2) S ⇒ aSBC (1) ⇒ abc (4) ⇒ aaSBCBC (1) Derivasi kalimat terpendek 2 : ⇒ aaabCBCBC (2) S ⇒ aSBC (1) ⇒ aaabBCCBC (5) ⇒ aabCBC (2) ⇒ aaabBCBCC (5) ⇒ aabBCC (5) aabcBC (4) ⇒ aaabBBCCC (5) ⇒ aabbCC (3) ⇒ aaabbBCCC (3) ⇒ aabbcC (4) ⇒ aaabbbCCC (3) ⇒ aabbcc (6) ⇒ aaabbbcCC ⇒ aaabbbccC ⇒ aaabbbccc (6) Dari pola ketiga kalimat disimpulkan : L 3 (G 3 ) = { a n b n c n n ≥ 1} (4) (6) Menentukan Grammar Sebuah Bahasa 1. S → aSBC. 4. bB → bb. bC → bc. 2. CB → BC.

ab}. G. aC. T → AT H HT A. Tentukan sebuah gramar bebas konteks untuk bahasa : P 3 (L 3 ) = himpunan semua identifier yang sah menurut bahasa pemrograman Pascal dengan batasan : terdiri dari simbol huruf kecil dan angka. Db.|z. Tentukan gramar bebas konteks untuk bahasa L 4 (G 4 ) = {a n b m  n.|9 P 3 (L 3 ) = {S → H HT. n ≠ m} Jawab : Langkah kunci : sulit untuk mendefinisikan L 4 (G 4 ) secara langsung. Ha|. G0|2|4|6|8. H2|4|6|8. Vt={0. A → 0 2 1 …} 4.. L A ={a n b m  > m ≥ 1}. Tentukan sebuah gramar bebas konteks untuk bahasa : ..THT|AT|H|A.J} P={SHT|JT|J.2. H → a c b ….J1|3|5|7|9} Buat dua buah himpunan bilangan terpisah : genap (G) dan ganjil (J) P 2 (L 2 ) = {S → J JS. ab. G → 0 4 8.m ≥ 1. A0|. Jalan keluarnya adalah dengan mengingat bahwa x ≠ y berarti x > y atau x < y. L B = {a n b m  ≤ n < m}. n 1 P A (L A ) = {A → aA C → aCb aC. L 4 = L A ∪ L B . Q(L B ) = {B → Bb D→ aDb Db.. ab} P 4 (L 4 ) = {S→ A A → aA C → aCb B → Bb D→ aDb B.9} Vn ={S.L 2 : himpunan bilangan bulat non negatif ganjil Jawab : Langkah kunci : digit terakhir bilangan harus ganjil. panjang identifier boleh lebih dari 8 karakter Jawab : Langkah kunci : karakter pertama identifier harus huruf. Buat dua himpunan bilangan terpisah : huruf (H) dan angka (A) SHT|H. J → 1 5 9} GS 2 6 3 7 3. ab} 5.. TGT|JT|J. G0|2|4|6|8.J1|3|5|7|9} P={SGS|JS|J.1.

Mesin Turing merupakan mesin pengenal bahasa yang dapat mengenali kelas bahasa yang lebih tinggi dari bahasa bebas konteks (CFG) yaitu Unrestricted Grammar (UG). adalah simbol awal adalah state akhir Ditambah dengan dua unsur. 4 8. model ini tetap diterima kalangan ilmu komputer sebagai model komputer yang sesuai untuk menentukan apakah suatu fungsi dapat selesaikan oleh komputer atau tidak (menentukan computable function). Σ adalah himpunan simbol-simbol. . untuk menangani stack: • • Γ adalah himpunan berhingga simbol-simbol stack. NA G→ 2 6 JA. adalah simbol awal stack. P 5 (L 5 ) = {S → N GA A → N JA.L 5 = bilangan bulat non negatif genap. di mana: • • • • Q adalah himpunan berhingga dari state. Mesin Turing Mesin Turing adalah model komputasi teoritis yang ditemukan oleh Alan Turing. serta bilangan ganjil (J). PushDown Automata PushDown Automata mesin pengenal bahasa yang dapat mengenali kelas bahasa Context Free Grammar (CFG) adalah salah satu varian otomata dengan 7-tupel . Dengan fungsi transisinya adalah adalah fungsi transisi 5. Buat tiga himpunan terpisah : bilangan genap tanpa nol (G). bilangan genap dengan nol (N). berfungsi sebagai model ideal untuk melakukan perhitungan matematis. Jika bilangan tersebut terdiri dari dua digit atau lebih maka nol tidak boleh muncul sebagai digit pertama. J → 1 5 9} 2 6 3 7 4. N→ 0 4 8. mempunyai medium keluaran proses. Walaupun model ideal ini diperkenalkan sebelum komputer nyata dibangun. Jawab : Langkah kunci : Digit terakhir bilangan harus genap. Digit pertama tidak boleh nol. adanya sequential storage sebagai memori yang dapat di baca-tulis.

Sign up to vote on this title
UsefulNot useful