


Apa itu Lookahead dalam Parsing?
Lookahead adalah fitur dari beberapa bahasa pemrograman yang memungkinkan parser untuk mengintip token berikutnya atau token dalam aliran input dan menggunakan informasi tersebut untuk menentukan struktur program.
Dengan kata lain, lookahead memungkinkan parser untuk melihat apa yang akan terjadi next di aliran input sebelum benar-benar menguraikannya. Hal ini dapat berguna untuk menyelesaikan ambiguitas dalam tata bahasa, seperti ketika sebuah kalimat dapat diurai dalam beberapa cara.
Misalnya, pertimbangkan kalimat berikut:
"Kucing mengejar tikus."
Kalimat ini secara tata bahasa ambigu karena dapat diurai seperti "Kucing mengejar tikus" atau "Mengejar tikus si kucing". Untuk mengatasi ambiguitas ini, parser mungkin menggunakan lookahead untuk mengintip token berikutnya dan menentukan parsing mana yang benar. Jika token berikutnya adalah "the", maka penguraian pertama benar, tetapi jika token berikutnya "dikejar", maka penguraian kedua benar.
Lookahead dapat diimplementasikan dengan cara berbeda tergantung pada bahasa dan parser yang digunakan. Beberapa teknik umum untuk menerapkan lookahead meliputi:
1. Rekursi Kiri: Dalam teknik ini, parser secara rekursif memanggil dirinya sendiri untuk mengurai sisa aliran input, menggunakan informasi yang dikumpulkannya dari token saat ini untuk menentukan cara mengurai token berikutnya.
2. Rekursi Kanan: Dalam teknik ini, parser secara rekursif memanggil dirinya sendiri untuk mengurai token sebelumnya, menggunakan informasi yang dikumpulkannya dari token saat ini untuk menentukan cara mengurai token berikutnya.
3. Parsing Prediktif: Dalam teknik ini, parser menggunakan model statistik untuk memprediksi token berikutnya dalam aliran masukan dan menggunakan prediksi tersebut untuk memandu penguraiannya.
4. Parsing CYK: Dalam teknik ini, parser menggunakan tabel nilai untuk melacak kemungkinan pohon parsing untuk aliran input dan menggunakan informasi lookahead untuk memangkas ruang pencarian dan menemukan pohon parse yang benar.
Secara keseluruhan, lookahead adalah fitur canggih yang dapat membantu parser menangani ambiguitas dalam tugas pemrosesan bahasa alami, namun hal ini juga dapat memakan biaya komputasi yang mahal dan mungkin tidak selalu diperlukan bergantung pada kasus penggunaan tertentu.



