Anda di halaman 1dari 58

Teori Komputasi

Tata Bahasa Formal


Tata Bahasa
 Dalam pembicaraan tata bahasa,
anggota alfabet dinamakan simbol
terminal atau token.
 Kalimat adalah deretan hingga simbol-
simbol terminal.

Tata Bahasa Formal 2


Tata Bahasa

 Bahasa adalah himpunan kalimat-


kalimat. Anggota bahasa bisa tak
hingga kalimat.

Tata Bahasa Formal 3


Tata Bahasa
 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.Tata Bahasa Formal 4
Tata Bahasa
 Simbol-simbol berikut adalah simbol
non terminal :
huruf besar awal alfabet, misal: A, B, C
huruf S sebagai simbol awal
string yang tercetak miring, misalnya :
expr dan stmt.
Tata Bahasa Formal 5
Tata Bahasa
 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. Tata Bahasa Formal 6
Tata Bahasa
 Hurufyunani melambangkan string
yang tersusun atas simbol-simbol
terminal atau simbol-simbol non
terminal atau campuran keduanya,
misalnya : , , dan .

Tata Bahasa Formal 7


Tata Bahasa

 Sebuah produksi dilambangkan


sebagai   , artinya : dalam sebuah
derivasi dapat dilakukan penggantian
simbol  dengan simbol .

Tata Bahasa Formal 8


Tata Bahasa

 Simbol dalam produksi berbentuk 


  disebut ruas kiri produksi
sedangkan simbol  disebut ruas
kanan produksi.

Tata Bahasa Formal 9


Tata Bahasa

 Derivasi
adalah proses pembentukan
sebuah kalimat atau sentensial.
Sebuah derivasi dilambangkan
sebagai :   .

Tata Bahasa Formal 10


Tata Bahasa

 Sentensialadalah string yang tersusun


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

Tata Bahasa Formal 11


Tata Bahasa

 Kalimatadalah string yang tersusun


atas simbol-simbol terminal. Jelaslah
bahwa kalimat adalah kasus khusus
dari sentensial.

Tata Bahasa Formal 12


Tata Bahasa

 Pengertian terminal berasal dari kata


terminate (berakhir), maksudnya
derivasi berakhir jika sentensial yang
dihasilkan adalah sebuah kalimat
(yang tersusun atas simbol-simbol
terminal itu).
Tata Bahasa Formal 13
Tata Bahasa
 Pengertian non terminal berasal dari
kata not terminate (belum/tidak
berakhir), maksudnya derivasi
belum/tidak berakhir jika sentensial
yang dihasilkan mengandung simbol
non terminal.
Tata Bahasa Formal 14
Klasifikasi Chomsky
 Tatabahasa G didefinisikan sebagai
pasangan 4 tuple: VT , VN , S, dan Q,
dan dituliskan sebagai G(VT, VN, S, Q),
dimana :
VT : himpunan simbol-simbol terminal
(atau himpunan token -token,
atau alfabet)
Tata Bahasa Formal 15
Klasifikasi Chomsky
VN : himpunan simbol-simbol non
terminal
S  V : simbol awal (atau simbol start)
Q : himpunan produksi

Tata Bahasa Formal 16


Klasifikasi Chomsky
 Berdasarkan komposisi bentuk ruas
kiri dan ruas kanan produksinya ( 
), Noam Chomsky mengklasifikasikan
4 tipe tata bahasa:

Tata Bahasa Formal 17


Klasifikasi Chomsky
 Tata bahasa tipe ke-0 : Unrestricted Grammar
(UG)
Ciri : ,   (VT VN )*, > 0
 Tata bahasa tipe ke-1 : Context Sensitive
Grammar (CSG)
Ciri : ,   (VT VN )*, 0 <   

Tata Bahasa Formal 18


Klasifikasi Chomsky
 Tata bahasa tipe ke-2 : Context Free Grammar
(CFG)
Ciri :   VN ,   (VT VN )*
 Tata bahasa tipe ke-3 : Regular Grammar (RG)
Ciri :   VN ,   {VT , VT VN } atau   VN ,   {VT,
VN VT }

Tata Bahasa Formal 19


Analisa Penentuan Grammar
Contoh 1:

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

Tata Bahasa Formal 20


Analisa Penentuan Grammar
 Analisa:
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 VT VN maka G1 adalah RG.
Tata Bahasa Formal 21
Analisa Penentuan Grammar
Contoh 2:

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

Tata Bahasa Formal 22


Analisa Penentuan Grammar
 Analisa:
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 VN VT maka G2 adalah RG.
Tata Bahasa Formal 23
Analisa Penentuan Grammar
Contoh 3:

Grammar G3 dengan
Q3 = {S  Ba, B  bB, B  b}.

Tata Bahasa Formal 24


Analisa Penentuan Grammar
 Analisa:
Ruas kiri semua produksinya terdiri dari
sebuah VN maka G3 kemungkinan tipe
CFG atau RG.
Selanjutnya karena ruas kanannya
mengandung string VT VN (yaitu bB) dan
juga string VN VT (Ba) maka G3 bukan
RG, dengan kata lain G3 adalah CFG
Tata Bahasa Formal 25
Analisa Penentuan Grammar
Contoh 4:

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

Tata Bahasa Formal 26


Analisa Penentuan Grammar
 Analisa:
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
Tata Bahasa Formal 27
Analisa Penentuan Grammar
Contoh 5:

Grammar G5 dengan
Q5 = {S  aA, S  aB, aAb  aBCb}

Tata Bahasa Formal 28


Analisa Penentuan Grammar
 Analisa:
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

Tata Bahasa Formal 29


Analisa Penentuan Grammar
Contoh 6:

Grammar G6 dengan
Q6 = {aS  ab, SAc  bc}

Tata Bahasa Formal 30


Analisa Penentuan Grammar
 Analisa:
Ruas kirinya mengandung string yang
panjangnya lebih dari 1 maka G6
kemungkinan tipe CSG atau UG.
Selanjutnya karena terdapat ruas kirinya
yang lebih panjang daripada ruas
kananya (yaitu SAc) maka G6 adalah UG

Tata Bahasa Formal 31


Derivasi Kalimat dan
Penentuan Bahasa
Contoh 1:

Tentukan bahasa dari Grammar G1


dengan
Q1={1.S  aAa, 2.A aAa, 3.A  b}
Tata Bahasa Formal 32
Derivasi Kalimat dan
Penentuan Bahasa
Jawab:
 Derivasi kalimat terpendek :
S  aAa (1)
 aba (3)

Tata Bahasa Formal 33


Derivasi Kalimat dan
Penentuan Bahasa
 Derivasi kalimat umum :
S  aAa (1)
 aaAaa (2)

 an Aan (2)
 an b a n (3)

Tata Bahasa Formal 34


Derivasi Kalimat dan
Penentuan Bahasa
 Dari pola kedua kalimat disimpulkan :

L1(G1 ) = n
{a b a n  n  1}

Tata Bahasa Formal 35


Derivasi Kalimat dan
Penentuan Bahasa
Contoh 2:
Tentukan bahasa dari Grammar G2
dengan
Q2={1.S  aS, 2.S  aB, 3. B  bC,
4. C  aC, 5. C  a}
Tata Bahasa Formal 36
Derivasi Kalimat dan
Penentuan Bahasa
Jawab:
 Derivasi kalimat terpendek :
S  aB (2)
 abC (3)
 aba (5)

Tata Bahasa Formal 37


Derivasi Kalimat dan
Penentuan Bahasa
 Derivasi kalimat umum :
S  aS (1) …
  an b am-1 C (4)
 an-1S (1)  an b am (5)
 an B (2)
 an bC (3)
 an baC (4)
Tata Bahasa Formal 38
Derivasi Kalimat dan
Penentuan Bahasa
 Dari pola kedua kalimat disimpulkan :

L2(G2 ) = n
{a ba m  n  1, m  1}

Tata Bahasa Formal 39


Derivasi Kalimat dan
Penentuan Bahasa
Contoh 3:
Tentukan bahasa dari Grammar G3
dengan

Q3={1. S  aSBC, 2. S  abC, 3. bB  bb,


4. bC  bc, 5. CB  BC, 6. cC  cc}
Tata Bahasa Formal 40
Derivasi Kalimat dan
Penentuan Bahasa
Jawab:
 Derivasi kalimat terpendek 1:
S  abC (2)
 abc (4)

Tata Bahasa Formal 41


Derivasi Kalimat dan
Penentuan Bahasa
Jawab:
 Derivasi kalimat terpendek 2:
S  aSBC (1)  aabbcC (4)
 aabCBC (2)  aabbCC (3)
 aabBCC (5)  aabbcc (6)

Tata Bahasa Formal 42


Derivasi Kalimat dan
Penentuan Bahasa
 Derivasi kalimat terpendek 3:
S  aSBC (1)  aaabbBCCC(3)
 aaSBCBC (1)  aaabbbCCC(3)
 aaabCBCBC (2)  aaabbbcCC (4)
 aaabBCCBC (5)  aaabbbccC (6)
 aaabBCBCC (5)  aaabbbccc (6)
 aaabBBCCC (5)
Tata Bahasa Formal 43
Derivasi Kalimat dan
Penentuan Bahasa
 Dari pola kedua kalimat disimpulkan :

L3(G3 ) = n
{a b n c n  n  1}

Tata Bahasa Formal 44


Menentukan Grammar Sebuah
Bahasa
Contoh 1:
Tentukan sebuah gramar regular
untuk bahasa L1 = {an  n  1}

Tata Bahasa Formal 45


Menentukan Grammar Sebuah
Bahasa
Jawab:

Q1 (L1) = {S  aS a}

Tata Bahasa Formal 46


Menentukan Grammar Sebuah
Bahasa
Contoh 2:
Tentukan sebuah gramar bebas
konteks untuk bahasa:
L2 : Himpunan bilangan bulat non
negatif ganjil
Tata Bahasa Formal 47
Menentukan Grammar Sebuah
Bahasa
Jawab:
- Digit terakhir bilangan harus ganjil
- Mis G: genap dan J: ganjil
Q2 (L2) = {1. S  JGSJS
2. G  02468
3. J  1357}
Tata Bahasa Formal 48
Menentukan Grammar Sebuah
Bahasa
Contoh 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
Tata Bahasa Formal 49
Menentukan Grammar Sebuah
Bahasa
- Karakter pertama identifier harus huruf
- Mis H: huruf dan A: angka
Q3 (L3) = {1. S  HHT
2. T  ATHTHA
3. H  abc…
4. A  012…}
Tata Bahasa Formal 50
Menentukan Grammar Sebuah
Bahasa
Contoh 4:
Tentukan sebuah gramar bebas konteks
untuk bahasa:

L4 : = {an bm n,m  1, n  m}

Tata Bahasa Formal 51


Menentukan Grammar Sebuah
Bahasa
Jawab:
- Sulit untuk mendefinisikan grammar dari
L3 secara langsung
- Jalan keluarnya adalah dengan
mengingat x  y berarti x > y atau x < y

Tata Bahasa Formal 52


Menentukan Grammar Sebuah
Bahasa
L4 : = LA  LB
LA : = {an bm n > m  1}
LB : = {an bm 1 ≤ n < m}

QA (LA) = {A  aAaC, C  aCbab}


QB (LB) = {B  BbDb, D aDbab}
Tata Bahasa Formal 53
Menentukan Grammar Sebuah
Bahasa

Q4 (L4) = {1. S AB,


2. A  aAaC,
3. C  aCbab,
4. B  BbDb,
5. D aDbab}
Tata Bahasa Formal 54
Menentukan Grammar Sebuah
Bahasa
Contoh 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
Tata Bahasa Formal 55
Menentukan Grammar Sebuah
Bahasa
Jawab:
- Digit terakhir bilangan harus genap.
- Digit pertama tidak boleh nol
- Mis G: bilangan genap tanpa nol,
N: bilangan genap dengan nol,
J: bilangan ganjil
Tata Bahasa Formal 56
Menentukan Grammar Sebuah
Bahasa

Q5 (L5) = {1. S  NGAJA,


2. A  NNAJA,
3. G 2468,
4. N 02468,
5. J  13579}
Tata Bahasa Formal 57
Klasifikasi Chomsky
 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.

Tata Bahasa Formal 58

Anda mungkin juga menyukai