IF-UTAMA 1
Grammar
Pertemuan : 4
Dosen Pembina :Danang Junaedi
IF-UTAMA 2
Definisi
• Bahasa adalah himpunan kata-kata atau kalimat yang
telah disepakati, contoh :
– {makan, tidur, bermain, belajar} ⊂ Bahasa Indonesia
– {shit, sheet, damn, kiss, smell} ⊂ Bahasa Inggris
– {konichiwa, kombanwa, arigato, hon, susumu} ⊂ Bahasa
Jepang
– {qirdun, asamaun, samaun, adzab} ⊂ Bahasa Arab
• Tata Bahasa adalah
– Himpunan dari aturan-aturan struktural yang didefinisikan
dan berlaku pada suatu kalimat yang dibentuk dalam suatu
bahasa
[2]– Cara mendeskripsikan bahasa
[5]Definisi
• Tata Bahasa adalah (contd)
– Kumpulan dari himpunan –himpunan variabel,
simbol – simbol terminal, simbol awal dan
aturan-aturan produksi, dimana
• Simbol terminal : simbol yg tidak dapat diturunkan lagi
(biasanya ditulis dalam huruf kecil)
• Aturan produksi : Menspesifikasikan bagaimana suatu
tata bahasa melakukan transformasi suatu string ke
bentuk lainnya.
• Simbol Non terminal (Variabel) : simbol yang masih
bisa diturunkan lagi (biasanya ditulis dalam huruf
kapital)
Dua sifat penting yang harus dipenuhi oleh
suatu tata bahasa
[2]
• Simbol terminal dan non terminal harus disjoint
(tidak memiliki elemen yang sama)
• Setiap aturan produksi harus memuat paling
sedikit satu simbol nonterminal pada anggota
bagian kiri.
IF-UTAMA 5
Manfaat & Motivasi Tata Bahasa
•
Motivasi menjelaskan bahasa alami, contoh
bahasa alami
<kalimat>
<subyek> <predikat> <obyek>
<subyek>
<kata benda>
<predikat>
<kata kerja>
<obyek>
<kata benda>
<kata benda> dosen, mahasiswa
<kata kerja> mengajar
kalimat atau bahasa alami yang dihasilkan salah
satunya adalah dosen mengajar mahasiswa
•
Manfaat mendeskripsikan aturan tata bahasa
sebuah bahasa pemrograman seperti C, Pascal
dts.
IF-UTAMA 6
Bahasa Mesin Otomata Batasan aturan produksi
Regular / tipe 3 Finite State Automata
meliputi Deterministic
Finite Automata (DFA) & Non Detereministik Finite Automata (NFA)
• α adalah sebuah simbol variabel
• β maksimal memiliki sebuah simbol variabel yang bila ada terletak diposisi paling kanan
Bebas Konteks /
context free / tipe2
Push Down Automata
(PDA)
αberupa sebuah simbol variabel
Context Sensitive /
tipe 1
Linier Bounded Automata |α | ≤ |β|
Unrestricted / Phase structure / Natural languange / tipe 0
Mesin Turing Tidak ada batasan
Tahun 1959 ahli bahasa bernama Noam Chomsky melakukan
penggolongan tingkat bahasa (Hirarki Chomsky) :
IF-UTAMA 7
Definisi Formal Regular Grammar
[3]
G = (Vn, Vt, S, P)
• Bahasa G di atas terdiri dari 4 tuple, yaitu :
– Vn = simbol non terminal (variabel)
– Vt = simbol terminal
– S = simbol awal ∈ Vn
– P = himpunan aturan produksi
• Setiap aturan produksi berbentuk :
A B (dibaca A menghasilkan B atau A menurunkan B)
– A = minimal mengandung 1 simbol non terminal
– B = (Vt)* U Vn
• Kumpulan aturan produksi :
A → B
1A → B
2 …..A → B
kBisa ditulis menjadi A → B
1|B
2|….. |B
k|
IF-UTAMA 8
Contoh 1 :
Regular Grammar
•
G = {{S,A,B},{a,b,ε},S,P}
Dimana aturan produksi P adalah
S aB
S bA
S ε
A abaS
B babS
atau dapat disederhanakan menjadi
S aB | bA | ε
A abaS
B babS
Studi Kasus :
Mana yang termasuk alfabet
non terminal, alfabet terminal,
simbol awal, dan himpunan
aturan produksi dari bahasa
formal pada contoh ini ???
IF-UTAMA 9
Definisi Formal Context Free Grammar
[4]
G = (Vn, Vt, S, P)
• Bahasa G di atas terdiri dari 4 tuple, yaitu :
– Vn = simbol non terminal (variabel)
– Vt = simbol terminal
– S = simbol awal ∈ Vn
– P = himpunan aturan produksi
• Setiap aturan produksi berbentuk :
A B (dibaca A menghasilkan B atau A
menurunkan B)
– A = minimal mengandung 1 simbol non terminal
– B = (Vn U Vt)*
IF-UTAMA 10
*
G
Context Free Languages (CFL)
[1]
The language generated by a CFG G, denoted by
L(G), is :
L(G) = {
ω
|
ω ∈
T* and S
⇒ ω
}
Therefore,
– every string consists solely of terminals, and
– every string can be derived from S
It is called a context free language (CFL).
Notice that:
– We must start with the start symbol
– We can use any production any number of times.
– The final string can only contain terminals.
Contoh 2 :
Context Free Grammar
•
G = {{S},{a,b},S,P}
Dimana aturan produksi P adalah
S aSb
S ab
atau dapat disederhanakan menjadi
S aSb | ab
•
G = {{E},{E},E,P}
Dimana aturan produksi P adalah
E E + E
E E * E
E (E)
E id
atau dapat disederhanakan menjadi
E E+E | E*E | (E) | id
Studi Kasus :
Mana yang termasuk alfabet non terminal, alfabet terminal, simbol awal, dan himpunan aturan produksi dari bahasa formal pada
contoh ini ???
Definisi Formal Context Sensitive Grammar
G = (Vn, Vt, S, P)
• Bahasa G di atas terdiri dari 4 tuple, yaitu :
– Vn = simbol non terminal (variabel) – Vt = simbol terminal
– S = simbol awal ∈ Vn – P = himpunan aturan produksi
• Setiap aturan produksi berbentuk :
A B (dibaca A menghasilkan B atau A menurunkan B)
– A = minimal mengandung 1 simbol non terminal – B = (Vn U Vt)*, dimana panjang B ≥ A
• Contoh aturan produksi pada Context Sensitive Grammar
S aS
S ab
aSb aSAb
IF-UTAMA 13
Aturan Ekspresi Reguler ke Tata Bahasa
Reguler Linier Kanan
4
1.
Bacalah ER dari kiri ke kanan, tulis X , X sebagai simbol awal.
2.
Jika yang terbaca adalah a, tuliskan a.
3.
Jika yang terbaca a*, tuliskan simbol non terminal baru, misalnya
Y, kemudian tuliskan ‘Y aY |’.
4.
Jika yang terbaca (a + b), tuliskan Y, kemudian tuliskan ‘Y aZ
| bZ |’ dan ‘Z ‘ . Y dan Z adalah simbol non terminal baru. Ruas
kanan dari ‘Z …’ ditentukan oleh hasil pembacaan ER
berikutnya.
5.
Jika yang terbaca (a + b)*, tuliskan simbol non terminal baru,
misalnya Y, kemudian tuliskan ‘Y aY | bY |’.
6.
Tuliskan
εjika seluruh ER sudah habis terbaca.
7.
Jika yang terbaca berbentuk (r + s), di mana r atau s berbentuk
a* atau (a + b)*, tuliskan RY | SY, kemudian tuliskan ‘Y …‘, ‘R
…’, dan ‘S …’. Ruas kanan dari aturan ‘Y …’ ditentukan
oleh hasil pembacaan ER berikutnya. Ruas kanan aturan ‘R
…’ dan ‘S ..’ ditentukan dengan jalan menganggap ekspresi r
dan s sebagai ekspresi terpisah.
IF-UTAMA 14
Contoh Ekspresi Reguler ke Tata
Bahasa Reguler Linier Kanan
4
• ER = 001*0
– Menurut aturan 2, 00 menghasilkan X 00. – Menurut aturan 3, 1* menghasilkan X 00Y, Y 1Y |. – Menurut aturan 2, 0 menghasilkan 0 sehingga Y 1Y | 0 – Menurut aturan 6, tuliskan εsehingga X 00Y, Y 1Y | 0.
– Jadi G = (Vn, Vt, S, P) ; Vn = {X, Y} ; Vt = {0, 1} ; S = X ; P = { X 00Y, Y 1Y | 0 }.
• ER = 00(0 + 1)*0
– Menurut aturan 2, 00 menghasilkan X 00.
– Menurut aturan 5, (0 + 1)* menghasilkan X 00Y, Y 0Y | 1Y |. Menurut aturan 2, 0 menghasilkan 0 sehingga Y 0Y | 1Y | 0. Menurut aturan 6, tulis εsehingga X 00Y, Y 0Y | 1Y | 0 ε.
– Jadi G = (Vn, Vt, S, P) ; Vn = {X, Y} ; Vt = {0, 1} ; S = X ; P = { X 00Y, Y 0Y | 1Y | 0 }.
• ER = 0(0 + 1)0*
– Aturan 2, 0 menghasilkan X 0.
– Aturan 4, (0 + 1) menghasilkan ‘X 0Y, Y 0Z | 1Z, Z ’. – Aturan 3, 0* menghasilkan ‘ A 0A |’.
– Aturan 6, tulis ε.
– Dengan demikian aturan produksi yang dihasilkan adalah
X 0Y, Y 0Z | 1Z, Z A, A 0A | ε. Aturan produksi ini bisa disederhanakan menjadi X 0Y, Y 0Z | 1Z, Z 0Z | ε
IF-UTAMA 15
Contoh Konversi dari Tata Bahasa Linier
Kanan Reguler ke Ekspresi Reguler
4
1. Tuliskan ekspresi dari kiri ke kanan, mulai dari
simbol awal.
2. Jika aturan produksi berbentuk X a, tuliskan a.
3. Jika aturan produksi berbentuk X a | b, tuliskan
(a+b)
4. Jika aturan produksi berbentuk X aX, tuliskan a*
5. Jika aturan produksi berbentuk X aX | bX, tuliskan
(a + b)*
6. Jika aturan produksi berbentuk X aY, dan terdapat
aturan produksi berbentuk Y …., tuliskan aY,
kemudian Y diganti sesuai aturan 2 sampai 6.
7. Jika aturan produksi berbentuk X aY | bZ, tuliskan
(aY + bZ), Y dan Z harus diganti sesuai dengan
aturan 2 sampai 7.
IF-UTAMA 16
Contoh Konversi dari Tata Bahasa Reguler
Linier Kanan ke Ekspresi Reguler
4
• G = (Vn, Vt, S, P) ; Vn = { X } ; Vt = {0, 1} ; S = X ; P = { X 0X | 1 }
– Menurut aturan 4, X 0X mengharuskan menulis 0* sehingga ER sekarang berisi 0*.
– Menurut aturan 2, X 1 mengharuskan menulis 1 sehingga ER sekarang berisi 0*1
• G = (Vn, Vt, S, P) ; Vn = { X,Y } ; Vt = {0, 1, 2} ; S = X ; P = { X 1Y, Y 0Y | 1Y | 1 | 2 }
– Menurut aturan 6, X 1Y mengharuskan menulis 1Y sehingga ER sekarang berisi 1Y. Sekarang kita pikirkan pengganti Y.
– Menurut aturan 5, Y 0Y | 1Y mengharuskan menulis (0+1)*. – Menurut aturan 3, Y 1 | 2 mengharuskan menulis (1+2).
– Jadi Y pada ER 1Y harus diganti dengan (0+1)*(1+2) sehingga ER yang terbentuk sekarang adalah 1(0+1)*(1+2).
• G = (Vn, Vt, S, P) ; Vn = { X, Y, Z } ; Vt = {0, 1} ; S = X ; P = { X Y | Z, Y 0Y | ε, Z 1Z | ε}
– Menurut aturan 7, X Y | Z mengharuskan menulis (Y + Z) sehingga ER sekarang berisi (Y + Z). Apakah pengganti Y dan Z ? Menurut aturan 4, Y 0Y mengharuskan menulis 0*.
– Menurut aturan 2, Y e mengharuskan menuliskan ε.
– Jadi Y pada ekspresi (Y + Z) diganti dengan 0* (e tidak perlu ditulis). Z 1Z | ε menghasilkan 1* sehingga Z pada (Y + Z) dapat diganti dengan 1*. – Dengan demikian ER untuk G di atas adalah ( 0* + 1* )
IF-UTAMA 17
1. Tulis Ekspresi Regular berdasarkan aturan produksi dari Context
Free Grammar berikut ini :
G = {{S,A,B,C,D},{0,1, ε}, S, P} Dimana P terdiri dari
S → BC B → AB | ε A → 011 | 1 C → DC | ε D → 01
2. Tulis Context Free Grammar berdasarkan bahasa berikut ini : Gh = ({K, H, N, T, X}, {a, b, c, d, e, f, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, H,P) Dimana P terdiri dari
H X X KT X NT T KT T NT T ε K a | b | c | d | e | f N 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Studi Kasus
[1 & 4]
IF-UTAMA 18