• Tidak ada hasil yang ditemukan

Penghilangan Rekursif Kiri

N/A
N/A
Protected

Academic year: 2021

Membagikan "Penghilangan Rekursif Kiri"

Copied!
39
0
0

Teks penuh

(1)
(2)

Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel.

Aturan Produksi Rekursif Kanan

Sebuah aturan produksi dalam bentuk:

A 

A

A : Variabel

 :(VT)* atau kumpulan symbol variabel dan terminal Aturan Produksi Rekursif Kiri

Aturan produksi dalam bentuk:

A  A

Contoh: S  Sd B  Bad

(3)

Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke kanan, sebaliknya produksi yang rekursif ke kiri menyebabkan pohon penurunan tumbuh ke kiri.

Contoh :

tata bahasa bebas konteks dengan aturan produksi: S  aAc A  Ab   S A a b A c A A b b

(4)

CFG mengandung aturan produksi yang rekursif kiri

Aturan produksi yang tidak rekursif

kiri

Aturan produksi yang rekursif kiri

Lakukan penggantian, munculkan aturan produksi baru dan symbol variabel baru CFG bebas dari aturan produksi yang rekursif kiri

Dalam banyak penerapan tata bahasa, rekursif kiri tak diinginkan. Untuk menghindari penurunan yang bisa mengakibatkan loop hilangkan sifat rekursif kiri dari aturan produksi.

(5)

Steps:

 Pisahkan aturan produksi yang rekursif kiri dan yang tidak.

Aturan produksi yang rekursif kiri diberi simbol n setelah variabel:

A  A1  A2  A3  ……..An

Aturan produksi yang tidak rekursif kiri (termasuk produksi ) diberi simbol m

A  1  2  3 ……..m

 Lakukan penggantian aturan produksi yang rekursif kiri, menjadi

sebagai berikut:

A  1Z  2Z  ………mZ Z  1  2  3  ……n

(6)

◦ Hasil akhir berupa aturan produksi pengganti ditambah dengan aturan produksi semula yang tidak rekursif kiri.

Contoh:

Lakukanlah penghilangan rekursif kiri untuk tata bahas bebas konteks dibawah:

1. S  Sab  aSc  dd  ff  Sbd 2. S  Sab  Sb  cA

(7)

1.

Aturan produksi yang rekursif kiri:

S  Sab

Sbd

Untuk symbol S

1

= ab,

2

= bd

Aturan produksi yang tidak rekursif kiri:

S  aSc

dd

ff

Untuk symbol S

(8)

1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff

 Lakukan penggantian aturan produksi yang rekursif kiri

S  Sab  Sbd, digantikan oleh:

(9)

1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff

 Lakukan penggantian aturan produksi yang rekursif kiri

S  Sab  Sbd, digantikan oleh:

◦ S  aScZ1  dd Z1  ff Z1

◦ Z1  1  2

(10)

1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff

 Lakukan penggantian aturan produksi yang rekursif kiri

S  Sab  Sbd, digantikan oleh:

◦ S  aScZ1  dd Z1  ff Z1

◦ Z1  ab  bd

(11)

1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff

 Lakukan penggantian aturan produksi yang rekursif kiri

S  Sab  Sbd, digantikan oleh:

◦ S  aScZ1  dd Z1  ff Z1

◦ Z1  ab  bd

◦ Z1  ab Z1  bd Z1

Hasil akhir setelah penghilangan rekursif kiri adalah: S  aSc  dd  ff

S  aScZ1  dd Z1  ff Z1 Z1  ab  bd

(12)

2.

Aturan produksi yang rekursif kiri:

S  Sab

Sb

A  Aa

Untuk symbol S 

1

= ab,

2

= b

Untuk symbol A 

1

= a

Aturan produksi yang tidak rekursif kiri:

S  cA

A  a

bd

Untuk symbol S 

1

= cA

(13)

S  1 = ab, 2 = b & 1 = cA

A  1 = a & 1 = a 2 = bd

 Lakukan penggantian aturan produksi yang rekursif kiri

S  Sab  Sb, digantikan oleh:

◦ S  1 Z1

◦ Z1  1  2

◦ Z1  1 Z1  2 Z1 A  Aa, digantikan oleh:

◦ A  1 Z2  2 Z2

◦ Z2  1

(14)

S  1 = ab, 2 = b & 1 = cA

A  1 = a & 1 = a, 2 = bd

 Lakukan penggantian aturan produksi yang rekursif kiri

S  Sab  Sb, digantikan oleh:

◦ S  cAZ1

◦ Z1  ab  b

◦ Z1  ab Z1  bZ1

A  Aa, digantikan oleh:

◦ A  aZ2  bdZ2

◦ Z2  a

(15)

Hasil akhir setelah penghilangan rekursif kiri adalah: S  cA A  a  bd S  cAZ1 Z1  ab  b Z1  ab Z1  bZ1 A  aZ2  bdZ2 Z2  a Z2  aZ2

(16)

Lakukanlah penghilangan rekursif kiri untuk tata bahas bebas konteks dibawah:

S  Sa

aAc

c

(17)
(18)
(19)

Suatu tata bahasa bebas konteks (CFG) dikatakan dalam bentuk normal Greibach (GNF) jika setiap aturan produksinya ada dalam bentuk:

A  a

a : symbol terminal (tunggal), a T

 : rangkaian symbol-simbol variabel (V*)

Contoh tata bahasa bebas konteks dalam bentuk normal Greibach:

S  a  aAB A  aB

(20)

Untuk dapat diubah ke dalam

bentuk normal Greibach,

tata

bahasa semula harus memenuhi syarat:

◦ Sudah dalam bentuk normal Chomsky (CNF) ◦ Tidak bersifat rekursif kiri

(21)

Ada 2 cara merubah Tata bahasa bebas konteks menjadi

GNF:

•Substitusi

(22)

Steps:

 Tentukan urutan symbol-simbol variabel  A1, A2 ,….. Am

 Berdasarkan urutan symbol, seluruh aturan produksi yang ruas kanannya diawali

dengan symbol variabel dapat dituliskan dalam bentuk

Ah  Ai

dimana h </> i (rekursif kiri sudah dihilangkan),  berupa symbol-simbol variabel. ◦ Jika h < i, aturan produksi ini sudah benar (tidak perlu diubah)

◦ Jika h > i, aturan produksi belum benar. Ubah Ai pada produksi ini dengan ruas kanan produksi dari variabel Ai, sehingga diperoleh produksi dalam bentuk:

Ah  Ap (dimana h  p)

 h = p, lakukan penghilangan rekursif kiri  h < p, aturan produksi sudah benar

(23)

Steps - contd:

 Lakukan penghilangan rekursif kiri bila

Ah  Ap (dimana h = p)

 Lakukan 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.

 Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan cara

(24)

Contoh:

Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk CNF) ke dalam GNF! S  CA A  a  d B  b C  DD D  AB Jawab:

 Tentukan urutan symbol variabel  S<A<B<C<D (bebas)

 Periksa aturan produksi , apakah sudah memenuhi ketentuan urutan

variabel:

S  CA ( sudah memenuhi karena S<C) C  DD ( sudah memenuhi karena C<D)

(25)

 Lakukan substitusi pada symbol variabel A, aturan produksi

menjadi:

D  AB  D  aB  dB

 Setelah semua aturan produksi memenuhi ketentuan urutan

variabel, lakukan substitusi mundur pada aturan produksi yang belum dalam GNF

C  DD  C  aBD  dBD S  CA  S  aBDA  dBDA

(Lakukan substitusi dari kanan ke kiri berdasarkan urutan variabel)

 Hasil akhir aturan produksi dalam GNF:

S  aBDA  dBDA A  a  d

B  b

C  aBD  dBD D  aB  dB

(26)

Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk CNF) ke dalam GNF! A  BC B  CA  b C  AB  a Jawab:

 Tentukan urutan symbol variabel  A<B<C (bebas)

 Periksa aturan produksi , apakah sudah memenuhi ketentuan

urutan variabel:

A  BC (sudah memenuhi karena A<B) B  CA (sudah memenuhi karena B<C) C  AB (tidak memenuhi karena C>A)

(27)

 Lakukan substitusi pada symbol variabel A, aturan produksi menjadi:

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

 Teradapat Rekursif kiri pada : C  CACB, maka lakukan penghilangan

rekursif kiri: C  CACB bCB | a (1 = ACB & 1 = bCB , 2 = a) C  1 Z1  2 Z1 Z1  1 Z1  1 Z1

(28)

 Lakukan substitusi pada symbol variabel A, aturan produksi menjadi:

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

 Teradapat Rekursif kiri pada : C  CACB, maka lakukan penghilangan

rekursif kiri: C  CACB bCB | a (1 = ACB & 1 = bCB , 2 = a) C  bCBZ1  aZ1 Z1  ACB Z1  ACB Z1

Variabel C yang sudah dalam bentuk normal Greibach: C  bCB Z1 a Z1 bCB a

(29)

 Setelah semua aturan produksi memenuhi ketentuan urutan variabel,

lakukan substitusi mundur pada aturan produksi yang belum dalam GNF

B  CA| b  B  bCB Z1A a Z1A bCBA aA | b A  BC  A  bCB Z1AC a Z1AC bCBAC aAC bC

(Lakukan substitusi dari kanan ke kiri berdasarkan urutan variabel)

 Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan

cara substusi untuk menjadi GNF

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 GNF:

A  bCB Z1AC a Z1AC bCBAC aAC bC B  bCB Z1A a Z1A bCBA aA b

C  bCB Z1 a Z1 bCB a

Z1  bCB Z1ACCB a Z1ACCB bCBACCB aACCB bCCB

Z1  bCB Z1ACCBZ1 a Z1ACCBZ1 bCBACCBZ1 aACCB Z1 bCCBZ1

(30)

Ubahlah Tata bahasa bebas konteks berikut ke dalam GNF

(sudah dalam bentuk CNF) !

1.

S  AS | a

A  a

2.

S AA | d

A  SS | b

(31)

Kumpulan aturan produksi dapat dianggap sebagai sistem persamaan linear. Contoh:

A  BC B  CA  b C  AB  a Dapat dilihat sebagai:

A = BC B = CA + b C = AB + a Buat matriks dengan persamaan

V = VR + S

Dimana (n = banyaknya variable dalam tata bahasa) dan: V = vektor baris 1 x n (berisi simbol2 variabel)

R = matriks n x n berisi simbol terminal dan variabel (utk mengganti produksi yg diawali dengan variabel)

S = vektor baris 1 x n (berisi simbol terminal utk mengganti produksi yang diawali dengan terminal)

(32)

 Tentukan V,R dan S. V = [ A B C ] R = 0 0 B C 0 0 0 A 0 S = [ 0 b a ]

Persamaan matriksnya. V = VR + S [ A B C ] = [ A B C ] 0 0 B C 0 0 0 A 0 + [ 0 b a ] A =

BC

B =

CA

+ b C =

AB

+ a

(33)

 Bentuk Persamaan Matriks Baru

V = SQ + S

Dimana Q = matriks n x n yang berisi simbol variabel2 baru

Q = D E F G H I J K L

Matriksnya berupa: [ A B C ] = [ 0 b a ] + [ 0 b a ] D E F G H I J K L V = [ A B C ] S = [ 0 b a ]

(34)

 Dari hasil perkalian matriks didapat persamaan:

A = bG + aJ B = bH + aK + b

C = bI + aL + a

(35)

 Bentuk Persamaan Matriks Baru

Q= RQ + R

Dimana Q = matriks n x n yang berisi simbol variabel2 baru

Q = D E F G H I J K L

Matriksnya berupa: R = 0 0 B C 0 0 0 A 0 D E F G H I J K L 0 0 B C 0 0 0 A 0 0 0 B C 0 0 0 A 0 + D E F G H I J K L =

(36)

 Dari hasil perkalian matriks didapat persamaan: D = BJ E = BK F = BL + B G = CD + C H = CE I = CF J = AG K = AH + A L = AI ……… persamaan (2)

(37)

 Substitusi persamaan (1) ke dalam persamaan (2) D =bHJ + aKJ + bJ E = bHK + aKK + bK F = bHL + aKL + bL + bH + aK + b G = bID + aLD + aD + bI + aL + a H = bIE + aLE + aE I = bIF + aLF + aF J = bGG + aJG K = bGH + aJH + bG + aJ L = bGI + aJI ……… persamaan (3)

(38)

 Hasil akhir aturan produksi dalam bentuk GNF adalah ( pers1 + pers 3): A = bG + aJ B = bH + aK + b C = bI + aL + a D =bHJ + aKJ + bJ E = bHK + aKK + bK F = bHL + aKL + bL + bH + aK + b G = bID + aLD + aD + bI + aL + a H = bIE + aLE + aE I = bIF + aLF + aF J = bGG + aJG K = bGH + aJH + bG + aJ L = bGI + aJI

(39)

Ubahlah Tata bahasa bebas konteks berikut ke dalam GNF dengan

menggunakan perkalian matriks.

(sudah dalam bentuk CNF) !

1.

S AA | d

A  SS | b

Buktikan bahwa string yang sama dapat di hasilkan oleh kedua

cara

Referensi

Dokumen terkait

Hasil analisis dijumpai hubungan yang signifikan antara derajat regurgitasi katup mitral dengan fungsi sistolik ventrikel kiri, namun hanya terlihat pada diameter akhir

Penelitian ini bertujuan untuk melihat Kiri dan Islam ataupun Kiri Islam yang digagas oleh Hassan Hanafi , baik faktor-faktor yang meliputinya ataupun tujuan akhir dari pemikiran

(bagian basis dan bagian rekurens) belum nampak pada hasil konstruksi. Pada level kemampuan 1, mahasiswa belum selesai merealisasikan fungsi rekursif yang diminta. Tentang

Putar kanan-kiri adalah motor yang arah putar rotor dapat diatur putar kanan atau kiri. Contoh lift, escalator, mesin

Berdasarkan tujuan penelitian, hasil penelitian menunjukkan adanya sejumlah temuan data berupa konflik yang dialami oleh tokoh utama dalam novel Belok Kiri

Kepala Polisi Sektor Kampar Kiri bersama anggota Polsek Kampar Kiri telah melakukan tindakan preventif berupa himbuan kepada masyarakat kecamatan kampar kiri agar

Patogenesis terjadinya hipertrofi ventrikel kiri patologis karena adanya stimulasi primer berupa regangan mekanik jantung dan atau faktor neurohumoral yang akan diterjemahkan di

Hasil pengujian dapat disimpulkan karakteristik noise impulse dapat dikurangi secara signifikan dengan menggunakan filter median, atau filter rekursif dan kombinasinya,