Rabu, 07 Oktober 2015

Teknik Kompilasi - Analisis Leksikal





Tugas Teknik Kompilasi kali ini adalah membuat analisis leksikal.
Jadi, sebelum mengerjakan tugas lebih lanjut, kita ketahui dulu apa itu Analisis Leksikal.

Analisis Leksikal adalah aliran karakter yang membentuk program sumber dibaca dari kiri ke kanan dan dikelompokkan dalam apa yang disebut token yaitu barisan dari karakter yang dalam suatu kesatuan mempunyai suatu arti tersendiri.
Analisis ini melakukan penerjemahan masukan menjadi bentuk yang lebih berguna untuk tahap-tahap kompilasi berikutnya.
Analisis Leksikal merupakan antarmuka antara kode program sumber dan analisis sintaktik (parser). Scanner melakukan pemeriksaan karakter per karakter pada teks masukan, memecah sumber program menjadi bagian-bagian disebut Token.
Analisis Leksikal mengerjakan pengelompokkan urutan-urutan karakter ke dalam komponen pokok: identifier, delimeter, simbol-simbol operator, angka, keyword, noise word, blank, komentar, dan seterusnya menghasilkan suatu Token Leksikal yang akan digunakan pada Analisis Sintaktik.
Kira-kira seperti itulah pengertian Analisis Leksikal.

Untuk selanjutnya kita langsung saja ke contoh kasus analisis leksikal.
Disini saya mempunyai sebuah coding program yaitu program Pola Bintang menggunakan pemograman Java Netbeans. Agar dapat melakukan analisis leksikal maka kita lakukan sedikit kesalahan pada coding programnya seperti ini :

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
packet starpattern;

/**
 *
 * @author Picka
 */
publik klass Starpattern {

    /**
     * @param args the command line arguments
     */
    publik staticc void main(String[] args) {
        // TODO code application logic here
        for (int i= 1; i<=5;i++)
        {
            for (int j=i;j<=5;j++)
            {
                System.out.print("*")
            }
            System.out.println()
}
    }
}

Setelah itu kita coba compile maka pasti akan di temukan beberapa kesalahan pada program dan program tidak dapat di-Run atau dijalankan. Untuk mengetahui letak kesalahan pada program maka kita lakukan analisis leksikal. Cara kerja analisis leksikal adalah melakukan scanner atau pemindaian dari bagian atas duluan lalu ke bawah dan juga dari arah kiri terlebih dahulu baru ke arah kanan.
Pada Java Netbeans, kesalahan pada coding langsung ditampilkan dengan mark atau tanda merah di awal line seperti ini :

















Setelah melakukan analisis leksikal kita akhirnya dapat mengetahui kesalahan pada coding kita, langsung saja kita mencari solusi agar kesalahan pada coding dapat diperbaiki.
Solusi dari kesalahan pada coding diatas adalah :

Setelah diperbaiki maka hasil coding yang sudah jadi dan tidak ada lagi kesalahan adalah sebagai berikut :
























Dan ini adalah output dari program "Pola Bintang" yang telah dianalisa dan diperbaiki :











**********************T H A N K  Y O U**********************