Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Brute force 2/16/2019 Materi ke 5.

Presentasi serupa


Presentasi berjudul: "Brute force 2/16/2019 Materi ke 5."— Transcript presentasi:

1 Brute force 2/16/2019 Materi ke 5

2 Parsing: Brute force Memilih aturan produksi mulai dari kiri
Meng-expand simbol non terminal sampai pada simbol terminal Bila terjadi kesalahan (string tidak sesuai) maka dilakukan backtrack Algoritma ini membuat pohon parsing secara top-down, yaitu dengan cara mencoba segala kemungkinan untuk setiap simbol non-terminal Contoh suatu language dengan aturan produksi sebagai berikut S  aAd | aB A  b | c B  ccd | ddc Misal ingin dilakukan parsing untuk string ‘accd’

3 Parsing: Brute force (i) S (ii) S (iii) S a A d a A d b
Terjadi kegagalan (iii), dilakukan back track (iv) S (v) S (vi) S a A d a B a B c c c d Terjadi kegagalan lagi (iv), dilakukan back-track

4 Parsing: Brute force Kelemahan dari metode-metode brute-force
Mencoba untuk semua aturan produksi yang ada sehingga menjadi lambat (waktu eksekusi) Mengalami kesukaran untuk melakukan pembetulan kesalahan Memakan banyak memakan memori, dikarenakan membuat backup lokasi backtrack Grammar yang memiliki Rekursif Kiri tidak bisa diperiksa, sehingga harus diubah dulu sehingga tidak rekursif kiri, Karena rekursif kiri akan mengalami Loop yang terus-menerus 2/16/2019 Materi ke 5

5 Brute force : Aturan produksi
Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel pada ruas kiri Sebuah produksi dalam bentuk A   A ;merupakan produksi rekursif kanan  = berupa kumpulan simbol variabel dan terminal Contoh aturan produk yang rekursif kanan: S  d S B  ad B bentuk produksi yang rekursif kiri A  A  merupakan produksi rekursif Kiri contoh: S  S d B  B ad 2/16/2019 Materi ke 5

6 Aturan produksi : Brute force
Produksi yang rekursif kanan akan menyebabkan penurunan tumbuh kekanan, Sedangkan produksi yang rekursif kiri akan menyebabkan penurunan tumbuh ke kiri. Contoh: Pohon penurunan sebuah Context free Grammar (CFG) yang rekursif kiri: 2/16/2019 Materi ke 5

7 Aturan produksi : Brute force
Dalam Banyak penerapan tata-bahasa, rekursif kiri tidak diinginkan, Untuk menghindari penurunan kiri yang looping, perlu dihilangkan sifat rekursif, dengan langkah-langkah sebagai berikut: Pisahkan Aturan produksi yang rekursif kiri dan yang tidak; misalnya Aturan produksi yang rekursif kiri A  A 1 | A 2 | ... | A n Aturan produksi yang tidak rekursif kiri ε A  1 | 2 | ... | n 2/16/2019 Materi ke 5

8 Aturan produksi : Brute force
Dari pers diatas dapat ditentukan simbol ruas kiri yang sama yaitu : 1, 2,…, n dan 1, 2,…, n lakukan per-ganti-an aturan produksi yang rekursif kiri, menjadi sebagai berikut: 1. A  1 Z | 2 Z | ... | n Z 2 Z  1 | 2 | ... | n 3 Z  1 Z | 2 Z | ... | n Z 2/16/2019 Materi ke 5

9 Aturan produksi : Brute force
Pergantian di atas dilakukan untuk setiap aturan produksi dengan simbol ruas kiri yang sama, bisa muncul variabel baru Z1, Z2 dst, sesuai dengan variabel yang menghasilkan rekurisif kiri Contoh: Tata Bahasa Context free S  Sab | aSc | dd | ff | Sbd Pisahkan aturan produksi yang rekursif kiri S  Sab | Sbd Ruas Kiri untuk S: 1=ab , 2=bd Aturan Produksi yang tidak rekursif kiri S  aSc | dd | ff dari situ didapat untuk Ruas Kiri untuk S: 1 = aSc, 2 = dd, 3= ff 2/16/2019 Materi ke 5

10 Aturan produksi : Brute force
Langkah berikutnya adalah dilakukan penggantian yang rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S  Sab | Sbd, dapat digantikan dengan 1. S  aScZ1 | ddZ1 | ffZ1 2. Z1  ab | bd Z1  abZ1 | bdZ1 Hasil akhir yang didapat setelah menghilangkan rekursif kiri adalah sebagai Berikut: S  aSc | dd | ff S  aScZ1 | ddZ1 | ffZ1 Z1  ab | bd 2/16/2019 Materi ke 5

11 Contoh 2. Terdapat tata bahasa bebas konteks : SSab | Sb | cA
A Aa | a | bd Langkah penyelesaiaannya: Pertama pemisahan aturan produksi yang rekursif kiri: SSab | Sb A Aa Kedua Tentukan simbol ruas kiri: S: 1=ab , 2=b A: 1=a Aturan produksi yang tidak rekursif kiri: ScA Aa | bd Simbol ruas kiri : S: 1= cA, A:1= a, 2= bd 2/16/2019 Materi ke 5

12 Lanjutan … Ketiga penggantian aturan produksi rekursif kiri:
Untuk yang memiliki simbol ruas kiri S: S  Sab | Sb, digantikan dengan 1. S  cAZ1 2. Z1  ab | b 3. Z1  abZ1 | bZ1 Untuk yang memiliki simbol ruas kiri A: A  Aa, diganti oleh: 1. A  aZ2 | bdZ2 2. Z2  a 3. Z2  aZ2 2/16/2019 Materi ke 5

13 Lanjutan …. Hasil akhir setelah penghilangan rekursif kiri adalah:
ScA Aa | bd ScAZ1 Z1ab | b Z1abZ1 | bZ1 AaZ2 | bdZ2 Z2a Z2aZ2 * Perhatikan bahwa penghilangan rekursif kiri memunculkan simbol variabel baru, dan aturan produksi baru yang rekursif kanan 2/16/2019 Materi ke 5

14 Latihan dan dikumpulkan!
Lakukan penghilangan rekursif kiri pada tata bahasa bebas konteks berikut: 1. SSa | aAc | c | ε AAb | ba 2. A Aa | aBc 3. AAbAB | ε BBAa | A | ε 4. SSBa | Ab ASa | AAb | a BSb | BBa | b 5. SSSC | SSB | abg Babc | BSb | BCd Cab 2/16/2019 Materi ke 5

15 Selesai 2/16/2019 Materi ke 5


Download ppt "Brute force 2/16/2019 Materi ke 5."

Presentasi serupa


Iklan oleh Google