PARSING (BOTTOM UP)

PARSING
(BOTTOM UP)
A.             Definisi
Menurut Wikipedia Bahasa Indonesia, parsing atau penguraian adalah suatu cara memecha-mecah suatu rangkaian masukan (misalnya dari berkas atau keyboard) yang akan menghasilkan suatu pohon uraian (parse tree) yang akan digunakan pada tahap kompilasi berikutnya, yaitu analisis semantic.
Sedangkan menurut Amrullah Ibrahim Hi. Hasan dalam blognya mengatakan, parsing adalah proses menganalisis teks, terbuat dari urutan token untuk menetukan struktur gramtical terhadap hal yang diberikan tata bahasa formal.
Masih menurut Amrullah, parsing juga merupakan istilah awal untuk diagram kalimat bahasa alam dan masih digunakan utnuk diagram bahasa infleksi, seperti bahasa-bahasa Roman atau latin.
Berdasarkan ke-2 pengertian di atas, maka dapat disimpulkan bahwa parsing dalam istilah komputer adalah suatu metode atau suatu cara menganalisa suatu  masukan dalam hal ini sintakx atau coding.
B.             Metode Parsing
Ada dua jenis metode penguraian yang sering digunakan, yaitu, top down parsing dan bottom up parsing. Namun, bottom up parsing yang akan dibahas dengan lebih detail (tugas).
1.         Penguraian dari atas ke bawah (top-down parsing
Penguraian dari atas ke bawah dapat dipandang sebagai suatu usaha untuk mencari derivasi paling kiri (leftmost) dari suatu rangkaian masukan. Dapat dikatakan juga sebagai suatu usaha untuk membentuk pohon urai (parser) untuk masukkan dari akamya dan membentuk node pohon parser dalam urutan preorder
        Perhatikanlah tata bahasa ini. 
S=>Ab 
A=> bela 
 2.       Penguraian dari bawah ke atas (bottom-up parsing)
Bottom up adalah teori yang mengajukan gagasan bahwa proses pengenalan diawali oleh identifikasi terhadap bagian-bagian spesifik dari suatu pola yang menjadi alasan bagi pengenalan pola secara keseluruhan.
Contoh :
Jika ada seseorang, kita akan mengenalinya dari bagian-bagian dirinya, seperti suara, postur, cara berjalan dan lain-lain, sehingga kita tahu bahwa itu adalah si A.
Bottom up merupakan salah satu metode yang digunakan untuk melakukan parsing. Operasi yang terdapat pada bottom up parser adalah shift dan reduce, sehingga seringkali bottom up parser disebut dengan shift-reduce parser. Pada setiap tahapan reduksi, substring yang berada disisi kanan dari sebuah production rule (RHS) digantikan dengan symbol dari pada LHS. Untuk membuat sebuah parsing table maka dibutuhkan DFA dari grammar tersebut. Ada beberapa jenis parsing table, antara lain LR(0), LR(1), dan SLR.
Penguraian dari bawah ke atas lebih banyak mempergunakan penguraian bagi suatu masukan dimulai dari bawah (leaf) dan bergerak keatas menuju puncak (root). Pada setiap langkah reduksi suatu substring yang sesuai dengan sisi kanan suatu produksi diganti dengan simbol yang berada di kanan produksi itu, langkah ini sering disebut derivasi rightmost.

Perhatikanlah tata bahasa ini. 
S => aABe A=>Abclb B=>d 
    
Kalimat 'abbcde' dapat direduksi ke S dengan langkah-langkah berikut:
Abbcde -> aAbcde -> aAde -> aABe -> S 
Salah satu contoh menarik dari parsing bottom-up adalah pada grammar preseden sederhana (GPS). Sebelum sampai ke parsing tersebut akan dikemukakan beberapa pengertian dasar serta relasi yang ada pada GPS.
a)      Jika a dan x keduanya diderivasi dari simbol awal grammar tertentu, maka a disebut sentensial jika a Î (VT½ VN)*, dan x disebut kalimat jika x Î (VT)*
b)      Misalkan a = Q1b Q2 adalah sentensial dan A Î VN :
1)        b adalah frase dari sentensial a jika : S .... Q1A Q2 dan A .... b
2)      b adalah simple frase dari sentensial a jika : S .... Q1A Q2 dan Ab
3)      Simple frase terkiri dinamakan handel
4)      frase, simple frase, dan handel adalah string dengan panjang 0 atau lebih.

CONTOH :
(a)    I  I H Hb adalah sentensial dan b adalah simple frase
   H H (dibandingkan dengan Q1b Q2 maka Q1= H, b = b, dan Q2 = e)
   H b Perhatikan : simple frase (b) adalah yang terakhir diturunkan
(b)    I I H Hb adalah sentensial dan H adalah simple frase
   I b (dibandingkan dengan Q1b Q2 maka Q1= e, b = H, dan Q2 = b)
   H b Perhatikan : simple frase (H) adalah yang terakhir diturunkan

Sentensial Hb mempunyai dua simple frase (b dan H), sedangkan handelnya adalah H.

Relasi Preseden dan Grammar Preseden Sederhana
Relasi preseden adalah relasi antara 2 simbol grammar (baik VT maupun VN) dimana paling tidak salah satu simbol tersebut adalah komponen handel.
Misalkan S dan R adalah 2 simbol. Ada 3 relasi preseden yang : ¬, «, dan ®
 

Contoh  :
Diketahui grammar dengan G = {Z ® bMb, M ® (L a, L ® Ma)}. Dari 3 sentensial :
bab, b(Lb, b(Ma)b, tentukan handel dan relasi yang ada.

 
                  Secara umum : jika A ® aBc adalah sebuah produksi maka :
- aBc adalah handel dari sentensial yang mengandung string “aBc”
- relasi preseden antara a, B, dan c adalah : a « B, B « c
Dengan memperhatikan ruas kanan produksi yang ada serta berbagai sentensial yang dapat diderivasi dari Z maka semua relasi preseden tercantum dalam tabel berikut :



Z
b
M
L
a
(
)
Z







b


«

¬
¬

M

«


«


L

®


®


a

®


®
¬
«
(


¬
«
¬
¬

)

®






                  Grammar G disebut grammar preseden sederhana, jika :
1. paling banyak terdapat satu relasi antara setiap dua simbolnya
2. tidak terdapat dua produksi produksi dengan ruas kanan yang sama

Parsing Grammar Preseden Sederhana
Prosedur parsing :
1.         Buat tabel 3 kolom dengan label : sentensial dan relasi, handel, dan ruas kiri produksi.
2.       Tuliskan kalimat (atau sentensial) yang diselidiki pada baris pertama kolom pertama.
3.       Dengan menggunakan tabel relasi preseden cantumkan relasi preseden antara setiap dua simbol yang bertetangga.
4.       Tentukan handel dari sentensial tersebut. Handel adalah string yang dibatasi “¬“ terakhir dan “® “ pertama jika dilakukan penelusuran dari kiri atau yang saling mempunyai relasi “«“. Handel tersebut pastilah merupakan ruas kanan produksi, karena itu tentukan ruas kiri dari handel tersebut.
5.       Ganti handel dengan ruas kiri produksinya. GOTO 3.
6.       Kalimat yang diselidiki adalah benar dapat diderivasi dari simbol awal jika kolom “ruas kiri produksi” menghasilkan simbol awal.

Contoh :
Lakukan parsing atas kalimat x = b(aa)b berdasarkan grammar G di atas.
Sentensial dan relasi
Handel
Ruas kiri produksi
b ¬ (¬ a ® a «)® b
a
M
b ¬ (¬ M « a «)® b
Ma)
L
b ¬ (« L® b
(L
M
b « M « b
bMb
Z

 Prosedur parsing sampai di simbol awal (Z). Maka kalimat “b(aa)b” memang dapat diderivasi dari simbol awal Z dengan menggunakan grammar G.

Sumber :
Modul Praktikum Automata – IT045330

Komentar

Postingan populer dari blog ini

PENGAKUAN IMAN RASULI (Bahasa Timor)

SOAL UJIAN PRAKTIK ADMINISTRASI SISTEM JARINGAN