TEORI BAHASA DAN AUTOMATA

I. PENDAHULUAN
Teori Bahasa
Teori bahasa membicarakan bahasa formal (formal language), terutama untuk
kepentingan perancangan kompilator (compiler) dan pemroses naskah (text
processor). Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah
bahasa dibangkitkan oleh sebuah tata bahasa (grammar) yang sama. Sebuah bahasa
formal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda. Dikatakan bahasa
formal karena grammar diciptakan mendahului pembangkitan setiap kalimatnya.
Bahasa manusia bersifat sebaliknya; grammar diciptakan untuk meresmikan kata-kata
yang hidup di masyarakat. Dalam pembicaraan selanjutnya ‘bahasa formal’ akan
disebut ‘bahasa’ saja.
Automata
Automata adalah mesin abstrak yang dapat mengenali (recognize), menerima
(accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.
Beberapa Pengertian Dasar
• Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalam
geometri). Sebuah huruf 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 yang dibangun dari
ketiga simbol tersebut.
• Jika w adalah sebuah string maka panjang string dinyatakan sebagai w dan
didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut.
Sebagai contoh, jika w = abcb maka w= 4.
• String hampa adalah sebuah string dengan nol buah simbol. String hampa
dinyatakan dengan simbol ε (atau ^) sehingga ε= 0. String hampa dapat
dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.
• Alfabet adalah hinpunan hingga (finite set) simbol-simbol.

II. GRAMMAR DAN BAHASA
Konsep Dasar
1. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal atau
token.
2. Kalimat adalah deretan hingga simbol-simbol terminal.
3. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga
kalimat.
4. Simbol-simbol berikut adalah simbol terminal :
• huruf kecil awal alfabet, misalnya : a, b, c
• simbol operator, misalnya : +, −, dan ×
• simbol tanda baca, misalnya : (, ), dan ;
• string yang tercetak tebal, misalnya : if, then, dan else.
5. Simbol-simbol berikut adalah simbol non terminal :
• huruf besar awal alfabet, misalnya : A, B, C
• huruf S sebagai simbol awal
• string yang tercetak miring, misalnya : expr dan stmt.
6. Huruf besar akhir alfabet melambangkan simbol terminal atau non terminal,
misalnya : X, Y, Z.
7. Huruf kecil akhir alfabet melambangkan string yang tersusun atas simbol-simbol
terminal, misalnya : x, y, z.
8. Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal
atau simbol-simbol non terminal atau campuran keduanya, misalnya : α, β, dan γ.
9. Sebuah produksi dilambangkan sebagai α → β, artinya : dalam sebuah derivasi
dapat dilakukan penggantian simbol α dengan simbol β.
10. Simbol α dalam produksi berbentuk α → β disebut ruas kiri produksi sedangkan
simbol β disebut ruas kanan produksi.
11. Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah
derivasi dilambangkan sebagai : α ⇒ β.
12. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbolsimbol
non terminal atau campuran keduanya.
13. Kalimat adalah string yang tersusun atas simbol-simbol terminal. Jelaslah bahwa
kalimat adalah kasus khusus dari sentensial.
14. Pengertian terminal berasal dari kata terminate (berakhir), maksudnya derivasi
berakhir jika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas
simbol-simbol terminal itu).
15. Pengertian non terminal berasal dari kata not terminate (belum/tidak berakhir),
maksudnya derivasi belum/tidak berakhir jika sentensial yang dihasilkan
mengandung simbol non terminal.
Grammar dan Klasifikasi Chomsky
Grammar G didefinisikan sebagai pasangan 4 tuple : V T , V N , S, dan Q, dan
dituliskan sebagai G(V T , V N , S, Q), dimana :
VT : himpunan simbol-simbol terminal (atau himpunan token -token, atau
alfabet)
VN : himpunan simbol-simbol non terminal
S ∈ V N : simbol awal (atau simbol start)
Q : himpunan produksi

1. Tentukan sebuah gramar regular untuk bahasa L1 = { a n  n ≥ 1}
Jawab :
Q1 (L1 ) = {S → aSa}
2. Tentukan sebuah gramar bebas konteks untuk bahasa :
L 2 : himpunan bilangan bulat non negatif ganjil
Jawab :
Langkah kunci : digit terakhir bilangan harus ganjil.
Buat dua buah himpunan bilangan terpisah : genap (G) dan ganjil (J)
Q2 (L 2 ) = {S → JGSJS, G → 02468, J → 13579}
3. Tentukan sebuah gramar bebas konteks untuk bahasa :
L3 = himpunan semua identifier yang sah menurut bahasa pemrograman Pascal
dengan batasan : terdiri dari simbol huruf kecil dan angka, panjang identifier
boleh lebih dari 8 karakter
Jawab :
Langkah kunci : karakter pertama identifier harus huruf.
Buat dua buah himpunan bilangan terpisah : huruf (H) dan angka (A)
Q3 (L 3 ) = {S → HHT, T → ATHTHA, H → abc…, A → 012…}
4. Tentukan gramar bebas konteks untuk bahasa L 4 (G 4 ) = {a n b m n,m ≥ 1, n ≠ m}
Jawab :
Langkah kunci : sulit untuk mendefinisikan L 4 (G 4 ) secara langsung. Jalan
keluarnya adalah dengan mengingat bahwa x ≠ y berarti x > y atau x < y. L 4 = L A ∪ L B , L A ={a n b m n > m ≥ 1}, L B = {a n b m 1 ≤ n < m}. QA (L A ) = {A → aAaC, C → aCbab}, Q(L B ) = {B → BbDb, D→ aDbab} Q4 (L 4 ) = {S→ AB, A → aAaC, C → aCbab, B → BbDb, D→ aDbab} 5. Tentukan sebuah gramar bebas konteks untuk bahasa : L5 = bilangan bulat non negatif genap. Jika bilangan tersebut terdiri dari dua digit atau lebih maka nol tidak boleh muncul sebagai digit pertama. Jawab : Langkah kunci : Digit terakhir bilangan harus genap. Digit pertama tidak boleh nol. Buat tiga himpunan terpisah : bilangan genap tanpa nol (G), bilangan genap dengan nol (N), serta bilangan ganjil (J). Q5 (L 5 ) = {S → NGAJA, A → NNAJA, G→ 2468, N→ 02468, III. AUTOMATA HINGGA (AH)
• AH didefinisikan sebagai pasangan 5 tupel : (K, V T , M, S, Z).
K : himpunan hingga stata,
VT : himpunan hingga simbol input (alfabet)
M : fungsi transisi, menggambarkan transisi stata AH akibat pembacaan simbol
input.
Fungsi transisi ini biasanya diberikan dalam bentuk tabel.
S ∈ K : stata awal
Z ⊂ K : himpunan stata penerima
• Ada dua jenis automata hingga : deterministik (AHD, DFA = deterministic finite
automata) dan non deterministik (AHN, NFA = non deterministik finite automata).
- AHD : transisi stata AH akibat pembacaan sebuah simbol bersifat tertentu.
M(AHD) : K × V T → K
- AHN : transisi stata AH akibat pembacaan sebuah simbol bersifat tak tentu.
M(AHN) : K × V T → 2K
J → 13579}

By : Rinda Lisna Wulandari
NIM : 120911042
Sumber : ajuarna.staff.gunadarma.ac.id/Downloads/.../TeoriBahasaAutomata.p...

0 komentar:

Posting Komentar