Anda di halaman 1dari 34

Teori bahasa dan Automata

6. Bentuk Normal (CNF dan GNF)


Taufik Ridwan

Program Studi Teknik Informatika


Fakultas Ilmu Komputer
Universitas Singaperbangsa Karawang
2018
Chomsky Normal Form
B → CA
C → a
Alasan
▪ Bahasa bebas konteks menjadi dasar dalam pembentukan suatu
parser/proses analisis sintaksis.
▪ Bahasa bebas konteks (CFG) adalah tata bahasa tipe 2 dimana Simbol
kiri harus berupa sebuah simbol variabel.
▪ BCDeFg
▪DBcDe

Tujuan CNF Untuk melakukan pembatasan sehingga tidak menghasilkan


pohon penurunan yang memiliki kerumitan yang tidak perlu / aturan
produksi yang tidak berarti.

TR
3
Chomsky Normal Form
▪ Bentuk normal Chomsky (CNF) merupakan salah satu
bentuk normal yang sangat berguna untuk tata bahasa
bebas konteks (CFG)

▪ Dibuat dari sebuah tata bahasa bebas konteks yang telah


mengalami penyederhanaan yaitu
▪Tidak memiliki produksi useless / hampa (produksi-Λ)
▪Tidak memiliki produksi unit
▪Tidak memiliki produksi ε

TR
4
Chomsky Normal Form | aturan
▪ Ruas kanan adalah sebuah simbol terminal atau dua simbol variabel.
▪ Jika terdapat lebih dari satu simbol terminal maka harus dilakukan
penggantian dan juga jika terdapat lebih dari dua simbol variabel maka
harus dilakukan perubahan.

Misalnya :
▪ A → BC | d
▪B → CA
▪C → a

TR
5
1. Penghilangan Produksi Useless
Produksi Useless :
▪ Produksi yang memuat simbol variabel yang tidak memiliki
penurunan yang akan menghasilkan terminal-terminal seluruhnya,
produksi ini tidak berguna karena bila diturunkan tidak akan pernah
selesai (masih ada simbol variabel yang tersisa)
▪ Produksiyang tidak akan pernah dicapai dengan penurunan apapun
dari simbol awal, sehingga produksi itu redundan (berlebih)

TR
6
Produksi Useless | Contoh:

S→ AB | a
A → a

Disederhanakan menjadi :
Aturan S→ AB tidak berarti karena B tidak memiliki
penurunan

TR
S → a
A → a 7
Produksi Useless | Contoh:
S → aSa | Abd | Bde
A → Ada
B → BBB | a

▪ Simbol A tdk memiliki penurunan yang menuju terminal, sehingga bisa dihilangkan
▪ Konsekuensi no 1, aturan produksi S → Abd tidak memiliki penurunan

Bentuk sederhana :
S → aSa | Bde

TR
B → BBB | a 8
2. Produksi Unit
Definisi Produksi Unit:
▪ Produksi dimana ruas kiri dan kanan aturan
produksi hanya berupa 1 simbol variabel, misalnya
AB
▪ Penyederhaan ini dilakukan dengan melakukan
penggantian aturan produksi unit.

TR
9
Produksi Unit | Contoh:
S  Sb
S  C
C  D
C  ef
D  dd
Pergantian yang dilakukan adalah:
C D menjadi C dd Bentuk sederhana :
S C menjadi S dd | ef S  Sb
S  dd | ef
C  dd

TR
C  ef
D  dd 10
Produksi Useless | Contoh:
S → aB Sehingga menjadi :
A → bcD | dAC S → aB
B → e | Ab B → e
C → bCb | ab
C → bCb | adF | ab
F → cFB

Langkah penyederhaan :
1. A → bCD, D tidak memiliki penurunan. Konsekuensi no1, A tidak memiliki
penurunan yang menuju terminal
2. B → Ab tidak memiliki penurunan

TR
3. F tidak memiliki penurunan yang menuju terminal
4. C → adF tidak memiliki penurunan 11
3. Penghilangan Produksi ℰ

▪ Produksi ℰ adalah produksi dalam bentuk

𝜶  𝜺 (atau bisa dianggap sebagai produksi kosong)

▪ Penghilangan produksi 𝜺 dilakukan dengan penggantian


produksi yang memuat variabel yang bisa menuju produksi
𝜺 atau biasa disebut nullable.

TR
12
Produksi epsilon | Contoh:
S  bcAd
A  𝜺
Pada kasus diatas A nullable, maka variabel A bisa
ditiadakan.
Hasil penyederhanaan
S  bcd

TR
13
Produksi epsilon | Contoh:

S  bcAd
A  bd | 𝜺

▪ Hasil penyederhanaan

S  bcAd | bcd
A  bd

TR
14
Produksi epsilon | Contoh:
S -> dA I Bd Disederhanakan menjadi:
A -> bc S-> dA I d I Bd
A -> ε A -> bc
B -> c B -> c

Kondisi :
A nullable tapi A -> ε bukan penurunan satu-satunya dari A

TR
15
CNF|Latihan:

Sederhanakan aturan produksi berikut


S -> AaCD
A -> CD | AB
B -> b | ε
C -> d | ε
D -> ε

TR
16
S -> AaCD D -> ε, maka:
A -> CD | AB S-> AaCD => S -> AaC
A -> CD => A -> C
B -> b | ε
D -> ε dihapus.
C -> d | ε
D -> ε ▪ B & C -> ε, maka

A -> AB => A ->AB|A|B


▪ Var yang nullable : B, C, D.
S-> AaC => S->AaC|aC|Aa|a
▪ A ->CD, maka A nullable
B -> ε dan C -> ε dihapus

S -> Aac

TR
A-> C|AB
B -> b 17
C -> d
Pembentukan Bentuk Normal Chomsky
• Biarkan aturan produksi yang sudah dalam bentuk normal Chomsky

• Lakukan penggantian aturan produksi yang ruas kanannya memuat simbol


terminal dan panjang ruas kanan > 1

• Lakukan penggantian aturan produksi yang ruas kanannya memuat > 2


simbol variabel

• Penggantian-penggantian tersebut bisa dilakukan berkali-kali sampai


akhirnya semua aturan produksi dalam bentuk normal Chomsky

• Selama dilakukan penggantian, kemungkinan kita akan memperoleh aturan-


aturan produksi baru, dan juga memunculkan simbol-simbol variabel baru

TR
18
Alur penyederhanaan Tata Bahasa Bebas Konteks

CFG
Penghilangan Penghilangan
produksi 𝜺 produksi unit

CFG yang
Penghilangan
sudah
produksi useless
disederhanakan

TR
19
Pembentukan Bentuk Normal Chomsky| Contoh:

▪ S→bA | aB
▪ A→bAA | aS | a
▪ B→aBB | bS | b

TR
20
Pembentukan Bentuk Normal Chomsky| Contoh:

▪ S→bA | aB
▪ A→bAA | aS | a
▪ B→aBB | bS | b

Aturan produksi yang sudah dalam bentuk normal Chomsky:


A → a
B → b

TR
21
Pembentukan Bentuk Normal Chomsky| Contoh:
S→bA | aB
Lakukan Penggantian aturan Produksi yang
A→bAA | aS | a
belum bentuk normal Chomsky: B→aBB | bS | b

▪ S→bA S→P1A
▪ S→aB S→2B

▪ A→bAA A→P1AA A→P1P3


▪ A→aS A→P2S

▪ B→aBB B→P2BB B→P2P4

TR
▪ B→bS B→P1S
22
Pembentukan Bentuk Normal Chomsky| Contoh:
S→bA | aB
Terbentuk aturan produksi dan simbol variabel baru
A→bAA | aS | a
▪ S→bA S→P1A B→aBB | bS | b

▪ S→aB S→P2B
P1 → b
▪ A→bAA A→P1AA A→P1P3 P2 → a
▪ A→aS A→P2S P3 → AA
P4 → BB
▪ B→aBB B→P2BB B→P2P4

TR
▪ B→bS B→P1S
23
Pembentukan Bentuk Normal Chomsky| Contoh:
S→bA | aB
Hasil akhir aturan produksi dalam bentuk normal Chomsky :
A→bAA | aS | a
▪ S→ P1 A | P 2B B→aBB | bS | b
▪ A→P1P3 | P 2S
▪ B→P2P4 | P 1S
P1 → b
▪ P1 → b
P2 → a
▪ P2 → a
▪ P3 → AA P3 → AA
▪ P4 → BB P4 → BB

TR
24
Greibach Normal Form
C → aV
Pengertian Bentuk Normal Greibach
▪ BentukNormal Greibach merupakan bentuk normal yang memiliki
banyak konsekuensi teoritis dan praktis. Dalam bentuk normal
Greibach kita membatasi posisi munculnya terminal-terminal dan
variabel-variabel. Suatu tata bahasa bebas konteks
▪ suatu tata bahasa bebas konteks dalam bentuk normal Greibach
bila hasil produksinya (ruas kanan) diawali dengan satu symbol
terminal, selanjutnya bisa diikuti oleh rangkaian symbol variabel.

TR
26
GNF | Contoh
▪ S  a | aAB

▪ A  aB

▪ B  cS

Untuk dapat diubah ke dalam bentuk normal Greibach, tata bahasa semula harusmemenuhi syarat:

▪ Sudah dalam bentuk normal Chomsky

▪ Tidak bersifat rekursif kiri

▪ Tidak menghasilkan ε

TR
Ada dua cara pembentukan bentuk normal
Greibach yaitu substitusi dan perkalian matriks
27
Pembentukan GNF dengan Substitusi
Langkah – langkahnya :
1. Tentukan urutan simbol-simbol variabel
2. Berdasarkan urutan simbol yang ditetapkan, seluruh aturan produksi yang ruas kanannya
diawali dengan variabel dapat dituliskan menjadi :
Ah → Ai γ
h <> i, adalah simbol variabel
a.Jika h < i, maka aturan sudah benar
b.jika h > i, aturan produksi salah. Lakukan substitusi berulang terhadap Ai, sehingga diperoleh produksi
dalam bentuk :

Ah → Apγ (dimana h ≤ p)
Jika h = p, lakukan penghilangan rekursif kiri

TR
Jika h < p, aturan produksi sudah benar

28
Pembentukan GNF dengan Substitusi
3. Jika terjadi penghilangan rekursif kiri pada tahap (2b), sejumlah variabel baru
yang muncul dari operasi ini dapat disisipkan pada urutan variabel semula
dimana saja asalkan tidak sebelum Ah (di kiri)
4. Setelah langkah (2) & (3) dikerjakan, maka aturan-aturan produksi yang ruas
kanannya dimulai simbol variabel sudah berada dalam urutan yang benar.
Ax → Ayγ (dimana x < y)
Produksi-produksi yang lain dalam bentuk :
Ax → a (a = simbol terminal)
Bx → Bx = simbol variabel baru yang muncul

TR
sebagai akibat dari operasi penghilangan ekursif kiri
29
Pembentukan GNF dengan Substitusi

5. Bentuk normal Greibach diperoleh dengan cara


melakukan substitusi mundur mulai dari variabel Am , lalu
Ax-1, Am-2, …. dengan cara ini aturan produksi dalam
bentuk Ax → Ayγ dapat diubah sehingga ruas kanannya
dimulai dengan simbol terminal.

6. Produksi yang dalam bentuk Bx → juga dapat diubah


dengan cara substitusi seperti pada langkah 5.

TR
30
Contoh:

▪ Simbol awal S :
S → CA
A→a|d
B→ b
C → DD
D → AB

TR
31
S → CA
A→a|d
B→ b
Langkah – langkah : C → DD
D → AB

Tentukan urutan simbol variabel :


S, A, B, C, D (S < A < B < C < D)
▪ urutan tersebut boleh ditentukan sendiri, buatlah urutan sedemikian sehingga
memudahkan untuk proses selanjutnya. Periksa aturan produksi yang symbol
pertama pada ruas kanan adalah symbol variabel, apakah sudah memenuhi
ketentuan urutan variabel:

Periksa ketentuan urutan variabel :


▪ S → CA (sudah memenuhi, karena S < C)
▪ C → DD (sudah memenuhi, karena C < D)

TR
▪ D → AB (tidak memenuhi, karena D > A)
32
S → CA
A→a|d
B→ b
Langkah – langkah : C → DD
D → AB

Lakukan substitusi pada D → AB dengan melakukan substitusi pada variabel A


sehingga aturan menjadi :
▪ D → aB | dB

Lakukan substitusi mundur pada aturan yang belum dalam bentuk normal Greibach
▪ C → DD → aBD | dBD
▪ S → CA → aBDA | dBD

Aturan produksi yang sudah dalam bentuk normal Greibach


▪ S → aBDA | dBDA
▪A→a|d Perhatikan :
▪B→b substitusi mundur dimulai dari aturan produksi yang memiliki

TR
▪ C → aBD | dBD ruas kiri dengan urutan variabel paling akhir ( kasus diatas:
S<A<B<C<D, maka C lebih dulu disubstitusi daripada S). 33
▪ D → aB | dB
Resume Langkah
Perhatikan : setiap substitusi dilakukan pada symbol variabel pertama pada ruaskanan (pada aturan
produksi yang belum bentuk normal Greibach tentunya). Prinsipnya:
1. Biarkan aturan produksi yang sudah dalam bentuk normal Greibach
2. Tentukan pengurutan simbol variabel, berdasarkan kondisi aturan produksi yang ada buatlah
urutan sedemikian sehingga memudahkan untuk proses selanjutnya. Mulailah terlebih dahulu
dari simbol awal.
3. Lakukan perubahan pada aturan produksi yang belum memenuhi ketentuan urutan tersebut
dan bila perlu selama proses itu bisa dilakukan substitusi dan penghilangan rekursif kiri
4. Lakukan substitusi mundur sedemikian rupa sehingga semua aturan produksi akan diawali
dengan tepat sebuah simbol terminal. Proses substitusi mundur mulai dari aturan produksi
dengan urutan paling akhir.
5. Lakukan substitusi mundur juga pada aturan produksi baru yang muncul sebagai hasil
penghilangan rekursif kiri.

TR
34

Anda mungkin juga menyukai