Anda di halaman 1dari 6

Nama : Nova Atur Rojab

NIM : 3201716092
Kelas : 6A

LEXICAL ANALYSIS
Lexical alalysis adalah proses mengubah urutan karakter ke dalam suatu urutan
token. Sebuah program atau fungsi yang melakukan analisis leksikal disebut sebagai
analisa leksikal, lexer atau pemindai. lexer A sering ada sebagai fungsi tunggal yang
disebut oleh parser atau fungsi lain.
Tugas-tugas Aturan Lexical atau Lexical Analysis secara detil adalah :
1. mengidentifikasi semua besaran yang membangun suatu bahasa
2. mentransformasikan ke token-token (symbol terminal dari teori bahasa
automata)
3. menentukan jenis dari token-token
4. menangani kesalahan
5. menangani tabel symbol
6. scanner di desain untuk mengenali keyword, operator, identifier.
Spesifikasi bahasa pemrograman yang sering akan mencakup seperangkat aturan
yang mendefinisikan lexer tersebut. Peraturan-peraturan ini biasa disebut ekspresi
reguler dan mereka menentukan urutan karakter set yang digunakan kemungkinan untuk
membentuk token atau lexemes. spasi, (yakni karakter yang diabaikan), juga
didefinisikan dalam kalimat biasa.
1) Lexeme
Lexeme adalah urutan karakter dalam program sumber yang cocok dengan
pola token dan diidentifikasi oleh lexical analyzer sebagai contoh token itu.
Beberapa penulis menyebut ini sebagai "token", menggunakan "token" secara
bergantian untuk merepresentasikan string yang menjadi token, dan struktur data
token yang dihasilkan dari menempatkan string ini melalui proses tokenization.
2) Token
Lexical Token adalah string dengan makna yang ditentukan dan
diidentifikasi. Ini terstruktur sebagai pasangan yang terdiri dari nama token dan
nilai token opsional. Nama token adalah kategori unit leksikal. Nama token yang
umum adalah :

 identifier: nama yang dipilih oleh programmer;


 keyword: nama sudah ada dalam bahasa pemrograman;
 separator: karakter tanda baca dan pembatas berpasangan;
 operator: simbol yang beroperasi pada argumen dan menghasilkan hasil;
 literal: numerik, logis, tekstual, referensi literal;
 comment: baris, blokir

3) Lexical Grammar
Spesifikasi bahasa pemrograman seringkali mencakup seperangkat aturan,
tata bahasa leksikal, yang mendefinisikan sintaksis leksikal. Sintaks leksikal
biasanya merupakan bahasa reguler, dengan aturan tata bahasa yang terdiri dari
ekspresi reguler; mereka menentukan set kemungkinan urutan karakter (leksem)
dari token. Lexer mengenali string, dan untuk setiap jenis string ditemukan program
leksikal mengambil tindakan, paling sederhana menghasilkan token.
Dua kategori leksikal umum yang penting adalah ruang putih dan komentar.
Ini juga didefinisikan dalam tata bahasa dan diproses oleh lexer, tetapi dapat
dibuang (tidak menghasilkan token apa pun) dan dianggap tidak signifikan, paling
banyak memisahkan dua token (seperti jika x bukannya ifx). Ada dua pengecualian
penting untuk ini. Pertama, dalam bahasa aturan off-side yang membatasi blok
dengan indentasi, spasi putih awal adalah penting, karena menentukan struktur
blok, dan umumnya ditangani pada tingkat lexer; lihat struktur frasa, di bawah.
Kedua, dalam beberapa penggunaan lexer, komentar dan spasi putih harus
dipertahankan - sebagai contoh, prettyprinter juga perlu menampilkan komentar dan
beberapa alat debugging dapat memberikan pesan kepada pemrogram yang
menunjukkan kode sumber asli. Pada 1960-an, terutama untuk ALGOL, spasi dan
komentar dihilangkan sebagai bagian dari fase rekonstruksi garis (fase awal dari
frontend kompiler), tetapi fase terpisah ini telah dihilangkan dan ini sekarang
ditangani oleh lexer.
4) Tokenization
Tokenization adalah proses demarkasi dan mungkin mengklasifikasikan
bagian-bagian dari serangkaian karakter input. Token yang dihasilkan kemudian
diteruskan ke beberapa bentuk pemrosesan lainnya. Proses ini dapat dianggap
sebagai sub-tugas input parsing.
(Catatan: Tokenisasi di bidang keamanan komputer memiliki arti yang berbeda.)
Misalnya, dalam string teks:
The quick brown fox jumps over the lazy dog
string tidak secara tersegmentasi tersegmentasi pada spasi, seperti yang dilakukan
oleh penutur bahasa alami. Input mentah, 43 karakter, harus secara eksplisit dibagi
menjadi 9 token dengan pembatas ruang yang diberikan (mis., Cocok dengan string
"" atau ekspresi reguler / \ s {1} /).
Token dapat direpresentasikan dalam XML,

Ketika class token mewakili lebih dari satu kemungkinan lexeme, lexer sering
menyimpan cukup informasi untuk mereproduksi lexeme asli, sehingga dapat
digunakan dalam analisis semantik. Parser biasanya mengambil informasi ini dari
lexer dan menyimpannya di pohon sintaksis abstrak. Hal ini diperlukan untuk
menghindari kehilangan informasi dalam hal angka dan pengidentifikasi.
Token diidentifikasi berdasarkan aturan spesifik dari lexer. Beberapa metode
yang digunakan untuk mengidentifikasi token meliputi: ekspresi reguler, urutan
karakter tertentu yang disebut bendera, karakter pemisah khusus yang disebut
pembatas, dan definisi eksplisit oleh kamus. Karakter khusus, termasuk karakter
tanda baca, biasanya digunakan oleh lexers untuk mengidentifikasi token karena
penggunaan alami mereka dalam bahasa tertulis dan pemrograman.
CONTOH

Analisis Leksikal untuk Mengidentifikasi Kata Kerja


Data yang digunakan adalah kata kerja dalam Bahasa Indonesia, yang berasal dari
kata tertentu yang memperoleh imbuhan dan akhiran. Namun terdapat juga kata kerja
yang tidak memperoleh imbuhan dan akhiran kata.
Penyelesaian masalah menggunakan Analisis Leksikal :
1) Menentukan / mendeskripsikan token
Token yang digunakan berasal dari kata kerja Bahasa Indonesia yang terdiri
dari berbagai jenis. Token sendiri terdiri dari beberapa karakter yang masuk dan
terpisahkan menjadi identifier, keyword dan konstanta.
2) Menggunakan regular grammar
Regular Grammar yang digunakan dalam spesifikasi Analisis Leksikal untuk
mendeteksi kata kerja adalah sebagai berikut:
I−> aA|bA|.....|zA|a|b|.....|z,
Ber−> aA|bA|.....|zA, Di−> aA|bA|.....|zA,
Ke−> aA|bA|.....|zA, Meng−> aA|bA|.....|zA,
Per−> aA|bA|.....|zA, Ter−> aA|bA|.....|zA,
Ber−> aA|bA|.....|zA−> Kan,
Ber−> aA|bA|.....|zA−> Αn,
Di−> aA|bA|.....|zA−> Kan,
Di−> aA|bA|.....|zA−> i,
Ke−> aA|bA|.....|zA−> i,
Ke−> aA|bA|.....|zA−> An,
Meng−> aA|bA|.....|zA−> Kan,
Meng−> aA|bA|.....|zA−> i,
Per−> aA|bA|.....|zA−> Kan,
Per−> aA|bA|.....|zA−> i,
Ter−> aA|bA|.....|zA−> Kan,
Ter−> aA|bA|.....|zA−> i,
Reguler gramer di atas disusun berdasarkan pola pembentukan kata kerja yang
mempunyai awalan, akhiran, dan juga awalan dan akhiran. Berikut pola
pembentukan dari kata kerja

3) Menggunakan ekspresi grammar


Ekspresi ini digunakan untuk menspesifikasikan token-token dengan ekspresi
regular. Berikut digunakan ekspresi regular yang ekuivalen dengan regular
grammar di atas:
I = (a|b|...z)( a|b|...z)* =huruf(huruf)*
4) Menspesifikasikan token-token dengan ekspresi reguler: Dalam spesifikasi sintak
biasanya digunakan context free grammar (CFG). Sebagai contoh ekspresi if-then,
dengan simbol awal E adalah seperti berikut:
E −> if L then, L −> IO,
I = huruf(huruf)*,
O −> <|=|>|<=|>=|...|0|1|.....|9.
5) Membuat model matematis menggunakan finitestate acceptor (FSA) atau finite
automata (FA)
Penentuan model matematis menggunakan finite-state acceptor (FSA) berdasarkan
jenisnya, sehingga digunakan moel DFA (Deterministic Finite Automata). Model
ini membentuk skema scanner

Setelah tersusun skema scanner, selanjutnya dibuat sebuah aturan translasi untuk
beberapa ekspresi reguler atau token.
 jika state i merupakan state akhir berarti pada state i telah ditemukan sebuah
token
 jika state i bukan state akhir berarti pada state i telah terdeteksi token tidak
dikenal.

DAFTAR PUSTAKA

[1] https://en.wikipedia.org/wiki/Lexical_analysis
[2] https://visilubai.wordpress.com/2010/05/07/lexical-analysis/
[3] Ridho Muktiadi, Septian Ari Wibowo, 2014, Analisis Leksikal untuk
Mengidentifikasi Kata Kerja. UNiversitas Muhammadiyah Purwokerto. Jawa
Tengah

Anda mungkin juga menyukai