Analisis Leksikal Pada Bahasa Pemrograman Java


     Udah lama ga posting, giliran nulis pasti ada sebabnya kalo ga tugas yaa karena emang pengen dapet nilai bagus (sama aja kan -___-). Buat apa ilmu kalo cuma di pendem sendiri kan, ga akan berkah, jadi akhirnya memutuskan untuk nulis lagi Horeeey \m/. Pada penulisan kali ini, saya pengen membahas tentang apa itu analisis leksikal atau nama gaulnya disebut dengan Scanner. Loh yang ada di warnet itu? (jayus bet) bukan, bukan.. hayuk kita coba telaah apa dan implementasinya di dalam bahasa pemrograman. Saya coba bungkus materi ini seperti percakapan antara dosen dengan mahasiswanya, mudah-mudahan lebih mudah dimengerti dan dicerna oleh pikiran kalian para pembaca :).

     Disini saya pilih bahasa Java karena saya berasal dari daerah jawa, tepatnya di tegal... laaah napa jadi curhat. langsung aja yuk cuuus!

M : Analisa leksikal, apa itu pak?
D : Sebelum membahas Analisa Leksikal, ada baiknya kalian mengetahui dulu tentang source code. Udah tau belom?

M : Ah si bapak, ditanya malah balik nanya -____- tau pak baris karakter terstruktur yang isinya kodingan itu kan?
D : Betul, 100 buat kamu. tulis nama dan npm di papan tulis yaa. Nah karakter dalam source code itu yang diubah oleh scanner (analisa leksikal) menjadi token-token.

M : Loh kok jadi kayak di lab sih pak, tapi biarin deh yang penting nilai *brb nulis nama*. masih bingung pak, token itu apa pak?
D : Token itu adalah komponen dasar leksikal dari program. Nah si scanner ini menerima masukan kode sumber berupa serangkaian karakter kemudian memilah-milahnya ke dalam satuan leksikal, yaitu si token itu loh.

M : *ngangguk-ngangguk* oh begitu yaa pak, terus token itu contohnya kaya gimana pak?
D : Contohnya ada banyak, diantaranya identifiers, keyword, operators, literals, punctuation, dll.

M : *bengong bingung* mohon maaf pak, ada cara yang lebih mudah buat jelasin masing-masing istilah tersebut? saya masih bingung >.<
D : oke bapak jelaskan, kamu udah pernah belajar bahasa java belum?

M : Pernah pak di lab semester 5 kemaren, emangnya kenapa pak?

D : Karena bapak akan coba jelaskan dengan mengambil contoh dalam bahasa java. Simak baik-baik yaa..


D : Coba kamu perhatikan source code sebuah program sederhana dalam bahasa Java berikut ini.


Program Sederhana Menggunakan Bahasa JAVA

D : Kamu perhatikan, yang mana termasuk variabel di dalam program itu?

M : hmm... universitas, tahun sama ajaran bukan pak?
D : Benar, nah darimana kamu tau semua itu adalah variabel?

M : *mikir garuk-garuk* ehm.. karena tidak termasuk dari kata yang sudah menjadi bagian dalam bahasa javanya pak
D : Nah, variabel adalah contoh dari sebuah identifier yaitu kata atau karakter yang bebas di rangkai oleh programmer asal tidak termasuk dari sebuah keyword dalam bahasa tersebut.
 

M : Berarti, fungsi / prosedur juga termasuk yaa pak dalam identifier?
D : Betul sekali! Sementara keyword adalah kata yang sudah menjadi bagian dalam bahasa Javanya seperti public, static, void, String, int, dll.


M : oooh begitu toh pak, paham paham. Terus kalo "gunadarma" itu apa dong pak disebutnya dalam analisa leksikal?
D : Kalo kata "gunadarma" tersebut merupakan nilai konstanta yang di sebut literals. Lain lagi dengan "+" dalam program tersebut disebutnya adalah operators.

M : Oh berarti setiap nilai konstanta itu literals yaa pak. Berarti "-", "*", "/" juga termasuk operators dong pak?
D : That's right, kamu cepet mengerti yaa bagus sekali. Nah sementara tanda ";" atau tanda yang wajib ada pada setiap baris dalam program Java di atas disebutnya adalah punctuation.

M : *malu-malu* oke saya sudah mengerti pak masing-masing dari istilah tersebut. terimakasih pak.
D : Loh loh ntar dulu, kamu mau nilai tambahan ga?
 

M : Mau dong pak, gimana caranya?
D : Coba kamu rangkum semua token-token dari program sederhana diatas, ke dalam bentuk tabel agar mudah dimengerti, bedakan di tabel sebelah kiri adalah nama tokennya, di kanan adalah contohnya dalam program tersebut. Bisa?

M : Bisa pak! sebentar yaa paak. Kira-kira begini bukan pak?

TOKEN CONTOH
Identifiers universitas, tahun, ajaran, args
Keyword public, class, static, void, main, String, int
Operators "+"
Literals gunadarma, 2010
Punctuations ";", ":", ",", "."


D : Bagus sekali! kamu saya kasih nilai A, dan bebas quiz yaa. ehm.. siapa nama kamu?
M : Udin pak..

D : Tidak ada yang namanya udin disini, npm kamu berapa?

M : 12039024 pak.

D : *mencari* tidak ada disini, kamu salah kelas mungkin?
M : engga lah pak, ini mata kuliah teknik pemrograman terstruktur kan?

D : -___- kamu sepertinya kurang tidur, dan sedikit capek. Maaf ya, kamu tidak jadi dapet nilai dan bebas quiz.
M : Seketika bete :| *ngacir*

 
Running program
1 comment

1 comment :