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...
Read More..

OTOMATA PENGANTAR KOMPILASI

Otomata, teori bahasa, kompilasi,
itu apa dan hubungannya bagaimana ?

• Otomata, berkaitan dengan teori mesin abstrak, yaitu mesin sekuensial yang menerima input, dan mengeluarkan output, dalam bentuk diskrit.
Contoh :Mesin Jaja / vending machine,Kunci kombinasi, Parser/compiler, dll.
• Teori bahasa formal, membahas mengenai pembentukan bahasa dengan suatu aturan tatabahasa.Teori Otomata dan bahasa formal, berkaitan dalam hal :
– Pembangkitan kalimat/generation : menghasilkan semua kalimat dalam bahasa L berdasarkan aturan yang dimilikinya
– Pengenalan kalimat / recognition : menentukan suatu string (kalimat) termasuk sebagai salah satu anggota bahasa L
• Kompilasi ; Proses penterjemahan program dari suatu bahasa sumber (source language) menjadi bahasa sasaran (target language).

Teori dasar, tatabahasa dan kelas bahasa
1. Memahami tatabahasa, aturan produksi.
Tata Bahasa : Aturan yang disebutkan pada proses pengenalan dan pembangkitan kalimat.
Secara formal, tata bahasa terdiri dari 4 komponen yaitu :
1. Himpunan berhingga, tidak kosong dari simbol-simbol non terminal T
2. Himpunan berhingga, dari simbol-simbol non-terminal N
3. Simbol awal S Î N, yang merupakan salah satu anggota dari himpunan simbol non-terminal.
4. Himpunan berhingga aturan produksi P yang setiap elemennya dituliskan dalam bentuk :
a ® b
dimana a dan b adalah string yang dibentuk dari himpunan T È N dan a harus berisi paling sedikit satu simbol non-terminal.
Keempat komponen tersebut sering dituliskan sbb :
G = (T,N,S,P)

Aturan Produksi : Aturan produksi a®b yang diterapkan pada suatu string w=aac mengganti kemunculan. a menjadi b, sehingga string tersebut berubah menjadi w=abc, sehingga dapat dituliskan aac Þ abc (aac memproduksi abc).
Produksi tersebut dapat diterapkan berkali-kali
w1 Þ w2 Þ w3 Þ ... Þ wn
atau dapat dituliskan
w1 Þ* wn
jika minimal harus ada 1 aturan produksi yang diterapkan :
w1 Þ+ wn
2. Memahami hirarki bahasa
Proses kompilasi dan bahasa formal
1. Memahami proses kompilasi.
2. Memahami hal yang dilakukan kompilator pada fase analisa (leksikal, sintaks, dan semantik)
3. Memahami hal yang dilakukan kompilator pada fase sintesa (pembentukan dan optimalisasi kode)

Proses kompilasi dari suatu kompilator



• Klasifikasi menurut cara pembentukan ;
single pass, multi pass, load and go

Proses kompilasi

Apa itu Finite State Automata?
Model matematika yang dapat menerima input dan mengeluarkan output
Memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasar input dan fungsi transisi
Tidak memiliki tempat penyimpanan/memory, hanya bisa mengingat state terkini.
Mekanisme kerja dapat diaplikasikan pada : elevator, text editor, analisa leksikal, pencek parity.

Definisi Formal: Finite State Automata
M=(Q , S , d , S , F )
Q = himpunan state
S = himpunan simbol input
d = fungsi transisi d : Q ´ S
S = state awal / initial state , SÎQ
F = state akhir, F Í Q
Contohnya..
M=(Q , S , d , S , F )
Q = {Genap, Ganjil}
S = {0,1}
S = Genap
F = {Ganjil }

Nama : Rinda lisna wulandari
NIM : 120911042 (B)
sumber : http://rustamaji.himatif.or.id/detail_download.php?aksi=detail&matakuliah=8
Read More..

Tren berbusana ala gadis korea


Dengan maraknya drama dan lagu-lagu korea yang akhir-akhir ini mencuri perhatian kaum remaja indonesia terutama wanita, Gaya berpakaian ala negeri ginseng ini juga semakin banyak digandrungi. Hal ini tentu menjadi peluang bisnis bagi pengusaha atau penjual baju yang menyediakan berbagai macam baju ala korea.
Gaya dan Cara berpakaian orang Korea pada dasarnya sama seperti orang-orang di Asia, Namun mereka jauh lebih berani dalam bereksplorasi dan sangat menginspirasi orang untuk meniru gaya busana mereka.

Gaya casual remaja korea sehari-hari biasanya mengenakan pakaian yang sesuai dengan musim. kalu musim semi, rata-rata orang mereka mengenakan rok mini atau celana pendek yang kadang pula di lengkapi dengan stoking hitam atau kaos kaki yang menutupi bagian kakinya. Uniknya, meskipun menggunakan bawahan yang agak terbuka tapi hampir semua cewek Korea memakai atasan yang tertutup (cardigan atau mini blazer),

Kebanyakan para remaja putri diindonesia yang sangat mengikuti tren,mereka mengikuti gaya berpakian ala gadis gorea tersebut. Karena selain simpel gaya berbusana mereka juga enak dipandang mata.
Read More..