• Tidak ada hasil yang ditemukan

15013 12 847571335241

N/A
N/A
Protected

Academic year: 2017

Membagikan "15013 12 847571335241"

Copied!
9
0
0

Teks penuh

(1)

BENTUK NORMAL GREIBACH

Pengertian Bentuk Normal Greibach

Bentuk Normal 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 (CFG) dikatakan dalam bentuk normal Greibach/ Greibach Normal Form, selanjutnya kita sebut sebagai GNF, jika setiap aturan produksinya ada dalam bentuk:

A  a

a : symbol terminal (tunggal), a T

 : rangkaian symbol-simbol variabel (V*)

Atau dengan kata lain, 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.

Contoh tata bahasa bebas konteks dalam bentuk normal Greibach: S  a  aAB

A  aB

B  cS

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

 Sudah dalam bentuk normal Greibach  Tidak bersifat rekursif kiri

 Tidak menghasilkan 

Terdapat dua cara pembentukan bentuk normal Greibach, yaitu melalui substitusi dan perkalian matriks. Pada bagian berikutnya kita membahas kedua cara tersebut.

Pembentukan Bentuk Normal Greibach dengan Substitusi

Secara umum langkah-langkah untuk mendapatkan bentuk normal Greibach:

1. Tentukan urutan symbol-simbol variabel yang ada dalam tata bahasa. Misalkan terdapat m variabel dengan urutan A1, A2 ,….. Am

(2)

2. Berdasarkan urutan symbol yang ditetapkan pada langkah (1) seluruh aturan

a. Jika h < i, aturan produksi ini sudah benar (tidak perlu diubah)

b. 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) i. h = p, lakukan penghilangan rekursif kiri ii. h < p, aturan produksi sudah benar

3. Jika terjadi penghilangan rekursif kiri pada tahap (2b), sejumlah symbol variabel baru yang muncul dari operasi ini dapat disisipkan pada urutan variabel semula dimana saja asalkan ditempatkan tidak sebelum Ah (dikiri).

4. Setelah langkah (2) dan (3) dikerjakan maka aturan –aturan produksi yang ruas kanannya dimulai symbol variabel sudah berada dalam urutan yang benar

Ax  Ay (dimana x y) Produksi-produksi yang lain ada dalam bentuk:

Ah  a (a = symbol terminal)

Bx  

(Bx = symbol variabel baru yang muncul sebagai akibat dari operasi penghilangan rekursif kiri)

5. Bentuk normal Greibach diperoleh dengan cara melakukan substitusi mundur mulai dari variabel Am, lalu Am-1, Am-2,….Dengan cara ini aturan produksi dalam

bentuk Ax  Ay dapat diubah sehingga ruas kanannya dimulai dengan symbol

terminal.

6. Produksi yang dalam bentuk Bx   juga dapat diubah dengan cara substitusi

(3)

Contoh

(tata bahasa bebas konteks sudah dalam bentuk normal Chomsky dan memenuhi syarat untuk diubah ke bentuk normal Greibach ), symbol awal adalah S:

S  CA

A  a  d

B  b

C  DD

D  AB

Tentukan urutan symbol variabel, misalnya S, A, B, C, D (S<A<B<C<D).

Perhatikan:

urutan tersebut boleh anda tentukan 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:

 S  CA ( sudah memenuhi karena S<C)  C  DD ( sudah memenuhi karena C<D)  D  AB ( sudah memenuhi karena D>A)

Yang belum memenuhi urutan yang kita tentukan adalah D  AB, karena ruas

kiri > symbol pertama pada ruas kanan. Maka kita lakukan substitusi pada symbol variabel A, aturan produksi menjadi:

D  aB  dB

Setelah semua aturan produksi sudah memenuhi ketentuan urutan variabel, kita lakuakn substitusi mundur pada aturan produksi yang belum dalam bentuk normal

Greibach (‘’ dibaca ‘menjadi’)

 C  DD  C  aBD  dBD

 S  CA  S  aBDA  dBDA

Perhatikan :

substitusi mundur dimulai dari aturan produksi yang memiliki ruas kiri dengan urutan variabel paling akhir ( kasus diatas: S<A<B<C<D, maka C lebih dulu disubstitusi daripada S).

Hasil akhir aturan produksi yang sudah dalam bentuk normal Greibach ;

(4)

A  a  d

B  b

C  aBD  dBD

D  aB  dB

Perhatikan : setiap substitusi kita lakukan pada symbol variabel pertama pada ruas kanan (pada aturan produksi yang belum bentuk normal Greibach tentunya).

Prinsipnya:

 Biarkan aturan produksi yang sudah dalam bentuk normal Greibach

 Tentukan pengurutan simbol variabel, berdasarkan kondisi aturan produksi yang ada buatlah urutan sedemikian sehingga memudahkan untuk proses selanjutnya. Mulailah terlebih dahulu dari simbol awal.

 Lakukan perubahan pada aturan produksi yang belum memenuhi ketentuan urutan tersebut dan bila perlu selama proses itu bisa dilakukan substitusi dan penghilangan rekursif kiri

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

 Lakukan substitusi mundur juga pada aturan produksi baru yang muncul sebagai hasil penghilangan rekursif kiri.

Contoh (simbol awal A): A  BC

B  CA  b

C  AB  a

Kita tentukan urutan simbol: A,B,C (A<B<C) A  BC (sudah memenuhi karena A<B)

B  CA (sudah memenuhi karena B<C)

C  AB (padahal C>A sehingga harus diubah)

Pengubahan C  AB

C  AB  C  BCB  C  CACB bCB

Untuk C  CACB lakukan penghilangan rekursif kiri menjadi

 C  bCBZ1 a Z1

(5)

Kita lihat seluruh hasil produksi dari variabel C, sudah dalam bentuk normal Greibach:

Selanjutnya lakukan pula substitusi pada aturan produksi dengan variabel baru yang terbentuk (pada contoh ini Z1):

 Z1  ACB  Z1  bCB Z1ACCB a Z1ACCB bCBACCB aACCB bCCB

 Z1  ACB Z1  Z1  bCB Z1ACCBZ1 a Z1ACCBZ1 bCBACCBZ1 aACCB Z1 bCCBZ1

Hasil akhir aturan produksi dalam bentuk normal greibach:

A  bCB Z1AC a Z1AC bCBAC aAC bC

Misalkan G = (V,T,P,S) suatu CFG. A 1B2 suatu produksi dalam P

dan

B 12...r himpunan produksi B. Misalkan G1 = (V,T,P1,S) diperoleh

dengan menghilangkan semua produksi dalam bentuk A 1B2 dari P dan menambahkan produksi dalam bentuk :

A 112 122 ... 1r2 maka L(G) = L(G1).

Lemma G2:

(6)

A A1A2...Ar adalah himpunan sebagian produksi A, sedangkan produksi lainnya dalam bentuk :

A 12...s.

Misalkan G1 = (V {B},T,P1,S)

dibentuk dengan menambahkan variabel B ke V dan mengganti semua produksi A dengan produksi dalam bentuk :

Pembuktian Lemma G2 :

Derivasi Leftmost dari G untuk produksi A Ai berakhir dengan produksi A j sebagai berikut :

A Ai1 Ai2i1 ... Aipip-1...i1 jipip-1 ... i1

* Dalam G1 urutan penggantian di atas berbentuk A jB jipB jipip-1B

(7)

Theorem : (Greibach Normal Form)

Setiap CFL tanpa dapat dihasilkan oleh suatu CFG yang produksinya berbentuk :

A a

dimana A : variabel/non-terminal a : terminal

: string variabel yang mungkin empty

Contoh :

Ubah produksi grammar berikut ke dalam bentuk Greibach Normal Form : G = ({A1,A2,A3},{a,b},P,A1)

(8)

Penyelesaian : Tahap 1 :

Simbol A1 dalam (3) diganti dengan produksi (1) {Lemma G1} :

1. A1 A2A3 2. A2 A3A1b 3. A3 A2A3A2a

Selanjutnya A2 paling kiri dalam (3) diganti dengan produksi (2) :

1. A1 A2A3

2. A2 A3A1b

3. A3A3A1A3A2bA2A3A2a

Selanjutnya aplikasi Lemma G2 pada produksi (3) diperoleh : A3 bA3A2B3

A3 aB3 B3 A1A3A2

B3 A1A3A2B3 Dengan demikian P menjadi :

1. A1 A2A3

2. A2 A3A1b

3. A3 bA3A2B3aB3bA3A2a 4. B3 A1A3A2A1A3A2B3

Produksi (3) sudah GNF, dengan substitusi yang lain diubah ke dalam GNF.

Tahap 2 :

Dengan menggunakan produksi (3) secara substitusi ke dalam produksi lainnya diperoleh :

A2 bA3A2B3A1aB3A1bA3A2A1aA1b

A1 bA3A2B3A1A3aB3A1A3bA3bA3A2A1A3aA1A3 Dengan menggunakan produksi untuk A1 diperoleh :

(9)

aA1A3A3A2B3bA3A2B3A1A3A3A2

Referensi

Garis besar

Dokumen terkait

Langkah kedua merupakan hasil akhir tata bahasa bebas konteks dalam bentuk normal Chomsky dengan menampilkan hasil langkah pertama yang sudah dalm bentuk normal Chomsky dan

Langkah kedua merupakan hasil akhir tata bahasa bebas konteks dalam bentuk normal Chomsky dengan menampilkan hasil langkah pertama yang sudah dalm bentuk normal Chomsky dan

meliputi bahasa-bahasa regular dan ekspresi-ekspresi regular, aturan produksi bahasa regular, Tata bahasa bebas kontrks yang meliputi bahasa-bahasa bebas konteks, penyederhanaan

Gerakan: bila gerakan diawali tangan kiri, letakkan telapak tangan kiri pada matras yang diikuti kaki kanan terangkat lurus ke atas, saat tangan kanan diletakkan

Bentuk normal Chomsky dapat dibuat dari sebuah tata bahasa bebas konteks yang telah mengalami penyederhanaan yaitu penghilangan produksi useless, unit, dan ε.. Suatu

Setiap perpindahan suku, dari ruas kiri ke ruas kanan maupun sebaliknya (pada operasi penjumlahan dan pengurangan) selalu diikuti dengan perubahan tanda (bila

β maksimal memiliki sebuah simbol variabel yang bila ada terletak paling kanan. Bebas Konteks / Context Free /

Pola hubungan ruas kiri = pola hubungan ruas kanan Carilah kata kunci atau hubungan yang unik dari dua kata atau lebih yang diberikan di soal, maka jawaban juga harus memiliki hubungan