Innocent Titut
CARI
INFORMATIKA
Bentuk Normal Chomsky dan Greibach
PENDAHULUAN
Bentuk Normal Chomsky / Chomsky Normal Form (CNF) merupakan salah satu bentuk normal
yang sangat berguna untuk Context Free Grammar (CFG). Bentuk normal Chomskydapat dibuat
dari sebuah tata bahasa bebas konteks yang telah mengalami penyederhanaan yaitu penghilangan
produksi useless, unit, dan ε. Dengan kata lain, suatu tata bahasa bebas konteks dapat dibuat
menjadi bentuk normal Chomsky dengan syarat tata bahasa bebas kontesk tersebut:
Bentuk normal Chomsky (Chomsky Normal Form, CNF) adalah Context Free Grammar
(CFG) dengan setiap produksinya berbentuk :
A → BC atau A → a.
Transformasi CFG ke CNF
Aturan produksi dalam bentuk normal Chomsky ruas kanannya tepat berupa sebuah terminal
atau dua variabel.
Misalkan:
A → BC
A→b
B→a
C → BA | d
Bentuk Normal Greibach merupakan bentuk normal yang memiliki banyakkonsekuensi teoritis
dan prkatis. Dalam bentuk normal Greibach kita membatasi posisimunculnya terminal-terminal
dan variabel-variabel. Suatu tata bahasa bebas konteks(CFG) dikatakan dalam bentuk normal
Greibach / Greibach Normal Form, selanjutnyakita sebut sebagai GNF, jika setiap aturan
produksinya ada dalam bentuk:
A aa
Atau dengan kata lain, suatu tata bahasa bebas konteks dalam bentuk normal Greibach bila hasil
produksinya (ruas kanan) diawali dengan satu simbol terminal,selanjutnya bisa diikuti oleh
rangkaian simbol variabel. Contoh tata bahasa bebas konteksdalam bentuk bentuk normal
Greibach:
S a | aAB
A aB
B cS
Untuk dapat diubah ke dalam bentuk normaol Greibach, tata bahasa semula harus memenuhi
syarat:
Terdapat dua cara pembentukan bentuk normal Greibach , yaitu melalui substitusi dan perkalian
matriks. Pada bagian berikutnya kita membahasa kedua cara tersebut.
PEMBAHASAN
Contoh, Context Free Grammar (kita anggap CFG pada bab ini sudah mengalami
Penyederhanaan CFG):
S → bA | aB
A → bAA | aS | a
B → aBB | bS | b
A→a
B→b
Dilakukan penggantian aturan produksi yang belum bentuk normal Chomsky (‘=>’ bisa dibaca
berubah menjadi):
S → bA => S → P1A
S → aB => S → P2B
A → aS => A → P2S
B → bS => B → P1S
P1 → b
P2 → a
P3 → AA
P4 → BB
A→a
B→b
S → P1A
S → P2B
A → P1P3
A → P2 S
B → P2 P4
B → P1 S
P1 → b
P2 → a
P3 → AA
P4 → BB
S → PA
S → QB
A → PR
A → QS
A→a
B → QT
B → PS
B→b
P→b
Q→a
R → AA
T → BB
1. Tentukan urutan simbol-simbol variabel yang ada dalam tata bahasa. Misalkan terdapat m
variabel dengan urutan A1, A2, …., Am
2. Berdasarkan urutan simbol yang ditetapkan pada langkah (1)meluruh aturan produksi yang ruas
kanannya diawali dengan simbol variabel dapat dituliskan dalam bentukAh →Ai ? Dimana h <>
i (rekrusif kiri sudah dihilangkan) ? Bisa berupa simbol-simbolvariabel.
3. Jika h <> i, aturan produksi belum benar. Lakukan substitusi berulang-ulang terhadap Ai (ganti
Ai pada produksi ini dengan ruas kanan produksi dari variabel Ai ) sehingga suatu saat diperoleh
produksi dalam bentuk Ah →Ap ? (dimana h = p )
1. Jika h = p , lakukan penghilangan rekursif kiri
Yang belum memenuhi urutan yang telah kita tentukan adalah: D AB, karenaruas kiri > simbol
pertama pada ruas kanan. Maka kita lakukan sibstitusi padasimbol variabel A, aturan produksi
menjadi:
D aB | dB
Setelah semua aturan produksi sudah memenuhi ketentuan urutan variabel, kitalakukan substitusi
mundur pada aturan produksi yang belum dalam bentuk normal Greibach (‘=>’ dibaca
‘menjadi’):
*)Perhatikan substitusi mundur dimulai dari aturan produksi yang memiliki ruas kiri dengan
urutan variabel paling akhir ( kasus di atas:S A sehingga harus diubah)
Pengubahan C AB:
C bCBZ1 | aZ1
Z1 ACB
Z1 ACBZ1
Kita lihat seluruh hasil produksi dari variabel C, sudah dalam bentuk normal Greibach:
Setelah semua aturan produksi sudah memenuhi ketentuan urutan variabel, kita lakukan
substitusi mundur:
Selanjutnya lakukan pula substitusi pada aturan produksi dengan variabel baru yang terbentuk
(pada contoh ini Z1):
Didasari pemikiran bahwa aturan produksi dapat dianggap sebagai persamaan linear. Misalkan :
A → BC
B → CA | b
C → AB | a
Dengan mengganti tanda “→” menjadi “=” dan tanda “|” menjadi “+” maka didapat persamaan
linear :
A = BC
B = CA + b
C = AB + a
V = VR + S
DAFTAR PUSTAKA
https://bahanajarku.files.wordpress.com/2011/05/bentuk_normal_greibach.pdf
https://fairuzelsaid.wordpress.com/2011/06/23/bentuk-normal-chomsky/
http://hery-whyd.blogspot.co.id/2010/01/teori-bahasa-dan-automata.html
https://betaraubd.wordpress.com/2012/11/23/teori-bahasa-dan-otomata-karya-firrar-utdirartatmo/
Tata Bahasa Chomsky
Teori Bahasa dan Otomata
Bahasa adalah struktur yang dikendalikan sekumpulan aturan tertentu, semacam mesin untuk
memproduksi makna. Akan tetapi seperti setiap mesin hanya terdapat kemungkinan terbatas bagi
setiap orang dalam menggunakannya.
Dalam bahasa disediakan pembendaharaan kata atau tanda (vocabulary), serta perangkat aturan
bahasa (grammar, sintaks) yang harus dipatuhi jika hendak menghasilkan sebuah ekspresi yang
bermakna.
Teori Bahasa
Teori Bahasa adalah konsep-konsep pada "string alpabet V" dalam penyambungan karakter-karakter
alpabet untuk membentuk suatu makna (bahasa).
Otomata bermula sebelum komputer ada pada teori di bidang sistem logika matematika atau formal,
ilmuwan David Hilbert telah mencoba menciptakan algoritma umum untuk pembuktian (seluruh)
persoalan matematika secara otomatis yaitu mampu menentukan salah benarnya sembarang prosisi
matematika.
GÖdel membangun rumus di kalkulus predikat yang diterapkan pada bilangan bulat yang memiliki
pernyataan-pernyataan definisi yang tidak dapat dibuktikan maupun dibantah di dalam sistem logika
yang mungkin dibangun manusia.
Formalisasi argumen teorema ketidaklengkapan GÖdel ini berikut penjelasan dan formalisasi
selanjutnya dari prosedur efektif secara intuisi merupakan salah satu pencapaian intelektual terbesar
abad 20, yaitu abad dimana formalisasi berkembang semarak.
Pengembangan teori otomata, komputasi dan teori bahasa berikutnya difasilitasi perkembangan bidang
psyco-linguistic. Bidang psyco-linguistic berupaya menjawab pertanyan-pertanyan berikut:
- Apakah bahasa secara umum?
- Bagaimana manusia mengembangkan bahasa?
- Bagaimana manusia memahami bahasa?
- Bagaimana manusia mengajarkan bahasa ke anak-anaknya?
- Apa gagasan-gagasan yang dapat dinyatakan dan bagaimana caranya?
- Bagaimana manusia membangun kalimat-kalimat dari gagasan-gagasan yang berada di pikirannya?
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika sebagai sarana untuk
mendeskripsikan bahasa serta menjawab pertanyaan-pertanyaan di atas. Saat ini dimulai pendalaman
bidang bahasa komputer.
Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai sekarang belum diketahuinya
bagaimana cara manusia mengartikan bahasa, sementara dengan pasti dapat mengartikan bahasa pada
komputer.
Noam Chomsky mengemukakan perangkat format disebut grammar untuk memodelkan properti-
properti bahasa.
Tata bahasa (grammer) bisa didefinisikan secara, formal sebagai kumpulan dari himpunan?himpunan
variabel, simbol?simbol, terminal, simbol awal, yang dibatasi oleh aturan?aturan produksi. Tingkat
bahasa dapat digolongkan menjadi empat yaitu :
1.Bahasa : Regular type 3
Mesin otomata : Finite State Otomata (FSA) meliputi deterministic finite automata dan non
deterministic finite automata
Batasan aturan produksi : adalah sebuah simbol variabel maksimal memiliki sebuah simbol variabel
yang bila terletak di posisi paling kanan.
2.Bahasa : Bebas konteks/context free /type 2
Mesin otomata : Push down automata (PDA)
Batasan aturan produksi : Berupa sebuah simbol variabel.
3.Bahasa : Context sensitive/type 1
Mesin otomata : Linier bounded automata
Batasan aturan produksi :
4.Bahasa : Unrestricted /phase /natural language/type 0
Mesin otomata : Mesin turing
Batasan aturan produksi : Tidak ada batasan