Apa itu Analisis Leksikal?

Analisis leksikal adalah proses mengambil serangkaian karakter — atau, lebih sederhana, teks — dan mengubahnya menjadi kelompok bermakna yang disebut token. Metodologi ini telah digunakan dalam berbagai aplikasi, mulai dari menafsirkan bahasa komputer hingga analisis buku. Analisis leksikal tidak identik dengan parsing; melainkan, ini adalah langkah pertama dari proses penguraian total, dan ini menciptakan bahan mentah untuk digunakan nanti.

Blok pembangun token, juga disebut leksem, dapat dihasilkan dalam banyak cara, tergantung pada tata bahasa yang diperlukan untuk analisis leksikal. Contoh umum dari hal ini adalah memisahkan kalimat dengan kata-kata; ini sering dilakukan dengan memisahkan kalimat di sekitar spasi. Setiap rangkaian karakter kontinu yang dihasilkan tanpa spasi adalah leksem. String teks dapat dipecah menjadi satu atau banyak jenis karakter, menciptakan beberapa versi leksem dengan kompleksitas yang berbeda-beda. Token dihasilkan setelah setiap leksem dievaluasi dan dipasangkan dengan nilai yang sesuai; menurut definisi, token mengacu pada pasangan ini, bukan hanya leksem.

Analisis leksikal, agak kontra-intuitif, strip string teks dari konteksnya. Tujuannya hanya untuk menghasilkan blok bangunan untuk studi lebih lanjut, bukan untuk menentukan apakah potongan-potongan itu valid atau tidak valid. Dalam hal interpretasi bahasa komputer, validasi dilakukan dengan analisis sintaksis, dan validasi teks dapat dilakukan dari segi konteks atau isi. Jika sebuah string masukan benar-benar terbagi menjadi leksem-leksem yang sesuai dan masing-masing leksem tersebut memiliki nilai yang sesuai, analisis tersebut dianggap berhasil.

Tanpa konteks atau kemampuan untuk melakukan validasi, analisis leksikal tidak dapat digunakan secara andal untuk menemukan kesalahan dalam input. Tata bahasa leksikal mungkin memiliki nilai kesalahan yang ditetapkan untuk leksem tertentu, dan analisis semacam itu juga dapat mendeteksi token ilegal atau cacat. Meskipun menemukan token yang tidak sah atau salah bentuk memang menandakan input yang tidak valid, hal itu tidak berpengaruh pada apakah token lainnya valid, dan oleh karena itu ini bukan jenis validasi yang ketat.

Meskipun analisis leksikal merupakan bagian integral dari banyak algoritme, analisis ini harus sering digunakan bersama dengan metodologi lain untuk menciptakan hasil yang bermakna. Misalnya, memecah string teks menjadi kata-kata untuk menentukan frekuensi menggunakan pembuatan leksem, tetapi pembuatan leksem saja tidak dapat memantau berapa kali leksem tertentu muncul dalam input. Analisis leksikal mungkin berguna jika leksem itu sendiri diperhatikan, tetapi sejumlah besar masukan mungkin membuat analisis leksem mentah menjadi sulit karena volume data.