Anda di halaman 1dari 27

BAHASA

AUTOMATA Pertemuan ke- 3

Oleh:
Siti Nurul Afiyah, S.Si., M.Si
GRAMMAR DAN BAHASA
• Tata Bahasa (grammar) bisa didefinisikan secara formal
sebagai kumpulan dari himpunan-himpunan variabel,
simbol-simbol terminal, simbol awal, yang dibatasi oleh
aturan-aturan produksi.

• Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa


bisa tak hingga kalimat.
KALIMAT dan SENTENSIAL
• Kalimat adalah deretan hingga (string) yang tersusun
atas simbol-simbol terminal.

• Sentensial adalah string yang tersusun atas simbol-


simbol terminal atau simbol-simbol non terminal atau
campuran keduanya.

• Kalimat adalah merupakan sentensial, sebaliknya belum


tentu.

• Derivasi adalah proses pembentukan sebuah kalimat


atau sentensial. Sebuah derivasi dilambangkan sebagai
:   .
TERMINAL
• Pengertian terminal berasal dari kata terminate (berakhir),
maksudnya derivasi berakhir jika sentensial yang dihasilkan adalah
sebuah kalimat
(yang tersusun atas simbol-simbol terminal itu).

• Simbol terminal adalah simbol yang tidak dapat diturunkan lagi.

• 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.
NON TERMINAL
• Pengertian non terminal berasal dari kata not terminate
(belum/tidak berakhir), maksudnya derivasi
belum/tidak berakhir jika sentensial yang dihasilkan
mengandung simbol non terminal.

• Simbol variabel /non terminal adalah simbol yang


masih bisa diturunkan.

• 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
TERMINAL dan NON TERMINAL
• Huruf besar akhir alfabet melambangkan simbol
terminal atau non terminal, misalnya : X, Y, Z.

• Huruf kecil akhir alfabet melambangkan string yang


tersusun atas simbol-simbol terminal, misalnya : x, y, z.

• Huruf yunani melambangkan string yang tersusun atas


simbol-simbol terminal atau simbol-simbol non
terminal atau campuran keduanya, misalnya : , , dan
.
ATURAN PRODUKSI
• Aturan produksi men-spesifikasikan bagaimana suatu
tatabahasa melakukan transformasi suatu string ke bentuk
lainnya
• Melalui aturan produksi didefinisikan suatu bahasa yang
berhubungan dengan tata bahasa tersebut.
• Sebuah produksi dilambangkan sebagai
   (bisa dibaca α menghasilkan β),
artinya : dalam sebuah derivasi dapat dilakukan penggantian
simbol  dengan simbol .
ATURAN PRODUKSI (lanjutan)
• Simbol  dalam produksi berbentuk    disebut ruas
kiri produksi sedangkan simbol  disebut ruas kanan
produksi.

• Contoh aturan produksi :


– T  a , dibaca : T menghasilkan a
– E  T| T+E , dibaca : E menghasilkan T atau E
menghasilkan T+E merupakan pemendekan dari aturan
produksi :
•ET
• E  T+E
Grammar
• Grammar G didefinisikan sebagai pasangan 4 tuple : VT, VN, S,
dan P.

• Dituliskan sebagai G(VT, VN, S, P), dimana :


- VT : himpunan simbol-simbol terminal
(alfabet) kamus.
- VN : himpunan simbol-simbol non
terminal.
- S VN : simbol awal (atau simbol start)
-P : himpunan produksi.
Contoh Grammar :
1. G1 : VT = {I, Love, Miss, You}, VN = {S,A,B,C},
P = {S  ABC, A I, B Love | Miss, C You}
S  ABC
 IloveYou
L(G1)={IloveYou, IMissYou}

2. G2 : VT = {a}, VN = {S}, P = {S  aSa}


S  aS
 aaS
 aaa
L(G2) ={an  n ≥ 1}
L(G2)={a, aa, aaa, aaaa,…}
Noam Chomsky
• Noam Chomsky melakukan penggolongan tingkatan bahasa
berdasarkan aturan produksinya yang disebut dengan Hierarki
Chomsky (1959).

• Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya


(  ), Noam Chomsky mengklasifikasikan 4 tipe grammar.

• Tipe sebuah grammar (atau bahasa) ditentukan dengan aturan


sebagai berikut :

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.
Klasifikasi Chomsky
• Grammar tipe ke-0 : Unrestricted Grammar (UG)
Ciri : ,   (VTVN)*, > 0
• Grammar tipe ke-1 : Context Sensitive Grammar (CSG)
Ciri : ,   (VTVN) *, 0 <   
• Grammar tipe ke-2 : Context Free Grammar (CFG)
Ciri :   VN,   (VTVN)*
• Grammar tipe ke-3 : Regular Grammar (RG)
Ciri :   VN,   {VT, VTVN} atau   VN,   {VT, VNVT}
Unrestricted Grammar (UG)(Tipe 0)
Mesin Otomata : Mesin Turing
Aturan Produksi : tidak ada batasan

Bahasa manusia/bahasa alami termasuk ke dalam grammar Tipe


0, yaitu Unrestricted.

– Contoh : Abc  De
Bahasa Regular(RG (Tipe 3)

– Mesin Otomata : FSA meliputi DFA & NFA

– Aturan Produksi :
• α adalah sebuah simbol variabel (Non Terminal),
• β maksimal memiliki sebuah simbol variabel yang bila
ada terletak di posisi paling kanan
Contoh Bahasa Regular
• Bahasa regular, batasan ruas kanan maksimal memiliki sebuah
simbol variabel yang terletak di paling kanan.

• Bahasa regular bisa memiliki simbol terminal saja dalam jumlah


tidak dibatasi, tetapi bila terdapat simbol variabel, maka simbol
tersebut hanya berjumlah 1 dan terletak di posisi paling kanan.

– Contoh :
•Ae
• A  efg
• A  efgH
•CD
Aturan produksi yang perlu
diperhatikan
• simbol ε tidak boleh berada pada ruas kiri
– contoh : ε  Abd
bukan aturan produksi yang legal.

• Aturan produksi sebelah kiri harus memuat simbol yang


bisa diturunkan
– contoh : ab  bd
bukan aturan produksi yang legal karena ruas
kirinya hanya memuat simbol terminal.
– contoh : aA  bd , masih legal karena ruas kirinya
masih mengandung simbol non terminal.
Bahasa Bebas Konteks (Tipe 2)

– Mesin Otomata : PDA

– Aturan Produksi :
α berupa sebuah simbol variabel( Non terminal)
Contoh Bahasa Bebas Konteks
• Bahasa bebas konteks : batasan ruas kiri haruslah tepat
satu simbol variabel.

– Contoh :
• B  CDeFg
• D  BcDe

• Bahasa bebas konteks menjadi dasar dalam


pembentukan suatu parser/proses analisis sintaksis yang
dideskripsikan secara formal dengan notasi BNF (Backus
Normal Form).
Bahasa Context Sensitive (Tipe
1)
– Mesin Otomata : Linier Bounded Automata

– Aturan Produksi : |α|≤ |β|


Contoh Bahasa Conteks
Sensitive
• Pada Bahasa Conteks Sensitive, panjang string ruas kiri ≤ panjang
string ruas kanan.

– Contoh :
• Ab  DeF
• CD  eF
•Sε

– |s| = 1, |ε| = 0, ada perkecualian sehingga S  ε


dianggap memenuhi context sensitive grammar.

• Batasan context sensitive digunakan dalam proses analisis semantik


pada tahap kompilasi.
Keterkaitan Bahasa
Contoh Analisa Penentuan Type Grammar
(1)

• Grammar G1 dengan P1 = {S  aB, B  bB, B  b}.

• Ruas kiri semua produksinya terdiri dari sebuah VN maka G1


kemungkinan tipe CFG atau RG. Selanjutnya karena semua
ruas kanannya terdiri dari sebuah VT atau string VTVN maka
G1 adalah RG (3).
Contoh Analisa Penentuan Type Grammar
(2)

• Grammar G2 dengan P2 = {S  Ba, B  Bb, B  b }.

• Ruas kiri semua produksinya terdiri dari sebuah VN maka G2


kemungkinan tipe CFG atau RG. Selanjutnya karena semua
ruas kanannya terdiri dari sebuah VT atau string VNVT maka G2
adalah RG(3).
Contoh Analisa Penentuan Type
Grammar (3)

• Grammar G4 dengan P4 = {S  aAb, B  aB}.

• Ruas kiri semua produksinya terdiri dari sebuah VN maka G4


kemungkinan tipe CFG atau RG. Selanjutnya karena ruas
kanannya mengandung string yang panjangnya lebih dari 2
(yaitu aAb) maka G4 bukan RG, dengan kata lain G4 adalah
CFG.
Contoh Analisa Penentuan Type
Grammar (4)

• Grammar G5 dengan P5 = {S  aA, S  aB, aAb  aBCb}.

• Ruas kirinya mengandung string yang panjangnya lebih dari 1


(yaitu aAb) maka G5 kemungkinan tipe CSG atau UG.
Selanjutnya karena semua ruas kirinya lebih pendek atau
sama dengan ruas kananya maka G5 adalah CSG.
Derivasi Kalimat dan Penentuan
Bahasa (1)

Tentukan bahasa dari masing-masing gramar berikut :


1. G1 dengan P1 = {1. S  aAa, 2. A  aAa, 3. A  b}.

• Jawab :
Derivasi kalimat terpendek : Derivasi kalimat umum :
S  aAa (1) S  aAa (1)
 aba (3)  aaAaa (2)

 anAan (2)
 anban (3)

• Dari pola kedua kalimat disimpulkan : L1 (G1) = {anban  n  1}


Derivasi Kalimat dan Penentuan
Bahasa (2)
2.

G2 dengan P2 = {1. S  aS, 2. S  aB, 3. B  bC, 4. C  aC, 5. C  a}.

• Jawab :
Derivasi kalimat terpendek : Derivasi kalimat umum :
S  aB (2) S  aS (1)
 abC (3) 
 aba (5)  an-1S (1)
 an B (2)
 anbC (3)
 anbaC (4)

 anbam-1C (4)
 anbam (5)

Dari pola kedua kalimat disimpulkan : L2 (G2)={anbam n 1, m1}

Anda mungkin juga menyukai