People Innovation Excellence
 
Feature Image

Cara Membuat Parse Tree

Pada proses tahapan kompilasi terdapat salah satu langkah yaitu syntax analysis. Di tahap ini input string yang ada akan diperiksa mengenai aturan produksinya, atau yang biasa kita sebut dengan check grammar. Aturan produksi dari sebuah language tertuang dalam Context Free Grammar (CFG). Langkah yang akan dilakukan untuk pengecekan grammar tersebut adalah mencoba melakukan parsing terhadap input string yang masuk berdasarkan pada aturan produksinya.

Contoh diberikan sebuah CFG seperti dibawah ini.

S -> aBa

B -> bB | ɛ

Pada CFG tersebut kita dapat melihat aturan produksi S hanya ada 1 yaitu S dapat diderivasi menjadi aBa. Disisi lain aturan produksi B memiliki 2 pilihan aturan yaitu B dapat diderivasi menjadi bB atau empty string (epsilon). Seperti yang kita ketahui bahwa CFG memiliki symbol terminal dan non-terminal (variable). Simbol non-terminal pada grammar tersebut adalah S dan B, sedangkan symbol terminal adalah a, b dan juga ada empty production.  Ketika proses parsing mencapai symbol terminal maka derivasi tidak dapat dilakukan lagi untuk terminal tersebut.

Jika terdapat sebuah input string abba dan kita ingin melakukan pengecekan apakah input tersebut sudah sesuai dengan aturan produksi yang kita miliki, maka kita dapat mencoba untuk membuat parse tree. Contoh parse tree yang dapat terbentuk dari CFG diatas adalah seperti gambar dibawah ini.

Kita akan memulai membuat syntax tree dari Start symbol. Pada umumnya start symbol akan diletakkan dipaling atas dari sebuah CFG. Pada contoh diatas start symbol kita adalah S yang akan diderivasi menjadi aBa (karena hanya ada 1 aturan jadi kita tidak bisa memilih aturan lainnya). Kita akan melakukan derivasi menggunakan left-most derivation. Karena node paling kiri merupakan node terimal symbol yang tidak dapat diderivasi maka kita akan melanjutkan dengan node berikutnya yaitu B. B dapat diderivasi menjadi bB atau ɛ. Jika kita memilih aturan ke 2 (derivasi menjadi ɛ) maka input string yang akan diterima adalah aa, bukan abba. Oleh karena itu kita harus memilih aturan yang pertama yaitu B diderivasi menjadi bB. Proses terus dilakukan sampai mendapatkan hasil terminal symbol yang sama dengan input string. Jika sebuah input string tidak dapat dibentuk syntax tree nya maka berarti string tersebut tidak sesuai dengan grammar yang ada (syntax error).


Published at :
Written By
Novita Hanafiah, S.Kom., M.Sc
Lecturer of Computer Science | School of Computer Science

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close