Anda di halaman 1dari 25

UNIVERSITAS

YA R S I

Operasi Dasar dan


Hirarki Chomsky
Teori Bahasa dan Otomata

Elan Hayurani,
Herika Suherlan, M.Kom
M.Si.

Herika Hayurani, M.Kom.

Modified by:
Elan S., Herika H., Anisa H.
Image(s):
unsplash.com
http://unsplash.com/ Desain by Arksnet, Modified by Andreas F.
Topik

Teori dan Operasi Dasar


Konsep String
Bahasa

Grammar dan Hirarki


Bahasa Chomsky
Teori Bahasa

• Teori bahasa membicarakan bahasa formal (formal


language), terutama untuk kepentingan perancangan
kompilator (compiler) dan pemroses naskah (text
processor).
• Dikatakan bahasa formal karena grammar diciptakan
mendahului pembangkitan setiap kalimatnya.
• Bahasa natural/manusia bersifat sebaliknya; grammar
diciptakan untuk meresmikan kata-kata yang hidup di
masyarakat. Dalam pembicaraan selanjutnya ‘bahasa
formal’ akan disebut ‘bahasa’ saja.
Otomata (Automata)

• Arti kata Automaton/Otomata :


– A robot
– One that behaves in an automatic or mechanical fashion
– Self-acting
• Pengertian Otomata :
adalah mesin abstrak yang merupakan suatu model
matematika dari suatu sistem yang dapat mengenali
(recognize), menerima (accept), atau membangkitkan
(generate) sebuah kalimat dalam bahasa tertentu.
Contoh Penerapan
Otomata
• Lexical analyzer, komponen kompilator yang bertugas
memecahkan teks-teks input menjadi logical unit (seperti :
identifier, keyword, dan punctuation)

• Perancangan parser, bagian penting dari kompilator.


5
Konsep Bahasa

1. Simbol adalah sebuah entitas abstrak (seperti halnya


pengertian titik dalam geometri).
 Sebuah huruf atau sebuah angka adalah contoh simbol.

2. 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.

3. Alfabet adalah himpunan hingga (finite set) simbol-simbol

6
Konsep Bahasa (2)

4. 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.

5. String kosong (null string) adalah sebuah string dengan nol


buah simbol. String kosong dinyatakan dengan simbol  (atau
^) sehingga = 0.
6. Bahasa adalah himpunan string

7
Operasi Dasar String
Diberikan dua string : x = abc, dan y = 123
1. Prefik string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling belakang dari string w
tersebut.
 Contoh : abc, ab, a, dan  adalah semua Prefix(x)
2. ProperPrefix string w adalah string yang dihasilkan dari string w dengan
menghilangkan satu atau lebih simbol-simbol paling belakang dari string w
tersebut.
 Contoh : ab, a, dan  adalah semua ProperPrefix(x)
3. Postfix (atau Sufix) string w adalah string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih simbol-simbol paling depan dari
string w tersebut.
 Contoh : abc, bc, c, dan  adalah semua Postfix(x)
4. ProperPostfix (atau ProperSufix) string w adalah string yang dihasilkan
dari string w dengan menghilangkan satu atau lebih simbol-simbol paling
depan dari string w tersebut. 8
 Contoh : bc, c, dan  adalah semua ProperPostfix(x)
Operasi Dasar String
(2)
5. Head string w adalah simbol paling depan dari string w.
 Contoh : a adalah Head(x)
6. Tail string w adalah string yang dihasilkan dari string w dengan
menghilangkan simbol paling depan dari string w tersebut.
 Contoh : bc adalah Tail(x)
7. Substring string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling depan dan/atau
simbol-simbol paling belakang dari string w tersebut.
 Contoh : abc, ab, bc, a, b, c, dan  adalah semua Substring(x)
8. ProperSubstring string w adalah string yang dihasilkan dari string w
dengan menghilangkan satu atau lebih simbol-simbol paling depan
dan/atau simbol-simbol paling belakang dari string w tersebut.
 Contoh : ab, bc, a, b, c, dan  adalah semua ProperSubstring(x)
9
Operasi Dasar String
(3)
9. Subsequence string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol dari string w tersebut.
 Contoh : abc, ab, bc, ac, a, b, c, dan  adalah semua Subsequence(x)
10. ProperSubsequence string w adalah string yang dihasilkan dari string w
dengan menghilangkan satu atau lebih simbol-simbol dari string w
tersebut.
 Contoh : ab, bc, ac, a, b, c, dan  adalah semua ProperSubsequence(x)
11. Concatenation adalah penyambungan dua buah string. Operator
concatenation adalah concate atau tanpa lambang apapun.
 Contoh : concate(xy) = xy = abc123
12. Alternation adalah pilihan satu di antara dua buah string. Operator
alternation adalah alternate atau .
 Contoh : alternate(xy) = xy = abc atau 123
10
String

An : himpunan string dengan panjang n yang dibentuk


dari simbol-simbol di himpunan simbol/alfabet A.

A* : himpunan seluruh string yang dapat dibentuk dari


A (dengan berbagai panjang), disebut transitif
closure/ Kleene closure.
A* = A0  A1  A2 . . . .

A+ : Jika string kosong dikeluarkan dari himp. A*,


disebut positive closure.
A+ = A 1  A2  . . . .

11
Grammar dan Bahasa:
Konsep Dasar (1)

1. Simbol-simbol berikut adalah simbol terminal:


– huruf kecil, misalnya : a, b, c, 0, 1, ..
– simbol operator, misalnya : +, , dan 
– simbol tanda baca, misalnya : (, ), dan ;
– string yang tercetak tebal, misalnya : if, then, dan else.

2. Simbol-simbol berikut adalah simbol non terminal


(variabel):
– huruf besar, misalnya : A, B, C
– huruf S sebagai simbol awal
– string yang tercetak miring, misalnya : expr

12
Grammar dan Bahasa:
Konsep Dasar (2)

• Anggota alfabet dinamakan simbol terminal.


• Kalimat adalah deretan hingga simbol-simbol terminal.
• Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa
bisa tak hingga kalimat.
• Huruf yunani melambangkan string yang tersusun atas simbol-
simbol terminal atau simbol-simbol non terminal atau
campuran keduanya, misalnya : , , dan .
• Sebuah produksi dilambangkan sebagai   , artinya: dalam
sebuah derivasi dapat dilakukan penggantian simbol  dengan
simbol .
13
Grammar dan Bahasa:
Konsep Dasar (3)

• Derivasi adalah proses pembentukan sebuah kalimat atau


sentensial. Sebuah derivasi dilambangkan sebagai :   .
• Sentensial adalah string yang tersusun atas simbol-simbol
terminal atau simbol-simbol non terminal atau campuran
keduanya.
• Kalimat adalah string yang tersusun atas simbol-simbol
terminal. Kalimat adalah merupakan sentensial, sebaliknya
belum tentu.

14
Grammar

Grammar G didefinisikan sebagai pasangan 4 tuple: VT , VN , S,


dan P, dan dituliskan sebagai G (VT , VN, S, P), dimana:
VT : himpunan berhingga, tak kosong dari simbol-simbol terminal
VN : himpunan simbol-simbol non terminal
S VN : simbol awal (atau simbol start)
P : himpunan produksi
setiap elemennya dituliskan dlm bentuk :

dimana  dan  adalah string yang dibentuk dari himpunan VT dan
atau VN dan  harus berisi paling sedikit satu simbol non-terminal

15
Grammar: Contoh

1. G1 : VT = {Aku, Melihat, Hujan, Pelangi}, V = {S,A,B,C},

P = {S  ABC, A Aku, B Melihat, C Hujan|Pelangi}


S  ABC
 AkuMelihatHujan

L(G1) = {AkuMelihatHujan, AkuMelihatPelangi}

16
Grammar: Contoh (2)

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,…}

17
Klasifikasi Chomsky

Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya (


 ), Noam Chomsky mengklasifikasikan 4 tipe grammar:

1. Grammar tipe ke-0 : Unrestricted Grammar (UG)


Ciri : ,   (VT VN )*, > 0
2. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)
Ciri : ,   (VT VN ) *, 0 <   
3. Grammar tipe ke-2 : Context Free Grammar (CFG)
Ciri :   VN ,   (VT VN )*
4. Grammar tipe ke-3 : Regular Grammar (RG)
Ciri :   VN ,   {VT , VT VN} atau   VN,   {VT , VN VT}

18
Klasifikasi Chomsky (2)

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.”

19
Contoh Analisis
Penentuan Tipe Grammar

1. Grammar G dengan P = {S  aB, B  bB, B  b}.

2. Grammar G dengan P = {S  Ba, B  Bb, B  b}.

3. Grammar G dengan P = {S  Ba, B  bB, B  b}.

20
Contoh Analisis
Penentuan Tipe Grammar
(2)
4. Grammar G dengan P = {S  aAb, B  aB}.

5. Grammar G dengan P = {S  aA, S  aB, aAb  aBCb}.

6. Grammar G dengan P = {aS  ab, SAc  bc}.

21
Tugas 1

1. Tentukan dan jelaskan alasannya, apakah aturan


produksi-produksi berikut memenuhi aturan Reguler
Grammar (RG):
a) A b g) B bcdefG
b) B bdB h) A aSa
c) B C i) A aSS
d) B bC j) A 
e) B Ad k) Ad dB
f) B  bcdef
22
Tugas 1

2. Tentukan dan jelaskan alasannya, apakah aturan


produksi-produksi berikut memenuhi aturan
Context Free Grammar (CFG):
a) A aSa g) B bcdefG
b) A Ace h) A aSa
c) B C i) A aSS
d) B bC j) A 
e) B Ad k) Ad dB
f) B  bcdef
23
Tugas 1

3. Tentukan dan jelaskan alasannya, apakah aturan


produksi-produksi berikut memenuhi aturan
Context Sensitive Grammar (CSG) :
a) A aSa g) B bcdefG
b) A BCDEF h) abcDef ghijkl
c) AB  i) A aSS
d) ad b j) A 
e) ad  k) Ad dB
f) abC  DE l) AAA  BBB
24
Tugas 1

4. Tentukan dan jelaskan alasannya, apakah aturan


produksi-produksi berikut memenuhi aturan
Unrestricted Grammar (UG):
a)   a f) bA CDEFGh
b) AB cde g) A 
c) ABCDEF h h) ad 
d) AB  i) ad b
e) B bcdefG j) abC DE

25

Anda mungkin juga menyukai