• Tidak ada hasil yang ditemukan

makalah leksikal

N/A
N/A
Protected

Academic year: 2021

Membagikan "makalah leksikal"

Copied!
9
0
0

Teks penuh

(1)

MAKALAH

MAKALAH

ANALISIS LEKSIKAL

ANALISIS LEKSIKAL

Di ajukan untuk memenuhi tugas mata kuliah : Teknik kompilasi Di ajukan untuk memenuhi tugas mata kuliah : Teknik kompilasi

Dosen pembina : Jaenudin, M.Kom Dosen pembina : Jaenudin, M.Kom

Program Studi :

Program Studi : Teknik Informatika/

Teknik Informatika/S1

S1

Disusun

Disusun Oleh

Oleh : Eko

: Eko Heryanto

Heryanto

: Ratna Febriani

: Ratna Febriani

: Nina Kurniasih

: Nina Kurniasih

: Elisabet Benufinit

: Elisabet Benufinit

UNIVERSITAS PUTRA INDONESIA

UNIVERSITAS PUTRA INDONESIA

2018

2018

(2)

KATA PENGANTAR

Assalamu’alaikum wr.wb

Segala puji bagi Allah SWT yang telah memberikan kami kemudahan sehingga kami dapat menyelesaikan makalah ini dengan tepat waktu. Tanpa pertolongan-Nya tentunya kami tidak akan sanggup untuk menyelesaikan makalah ini dengan baik. Shalawat serta salam semoga terlimpah curahkan kepada baginda tercinta kita yaitu Nabi Muhammad SAW yang kita nanti-natikan syafa’atnya di akhirat nanti.

Kami mengucapkan syukur kepada Allah SWT atas limpahan nikmat sehat-Nya, baik itu  berupa sehat fisik maupun akal pikiran, sehingga kami mampu untuk menyelesaikan pembuatan makalah sebagai tugas akhir dari mata kuliah Teknik Kompilasi dengan judul “Input dan Analisa Leksikal”.

Kami tentu menyadari bahwa makalah ini masih jauh dari kata sempurna dan masih  banyak terdapat kesalahan serta kekurangan di dalamnya. Untuk itu, kami mengharapkan kritik

serta saran dari pembaca untuk makalah ini, supaya makalah ini nantinya dapat menjadi makalah yang lebih baik lagi.

Demikian, dan apabila terdapat banyak kesalahan pada makalah ini penulis mohon maaf yang sebesar-besarnya. Kami juga mengucapkan terima kasih kepada semua pihak khususnya kepada Bapak Dosen yang telah membimbing kami untuk membuat makalah ini.

Demikian, semoga makalah ini dapat bermanfaat. Terima kasih.

Cianjur, 08 Oktober 2018

(3)

DAFTAR ISI

KATA PENGANTAR ………...i

DAFTAR ISI ………..ii BAB I PENDAHULUAN………...1  A. Latar Belakang ...1  B. Tujuan Penulisan ...1  C. Rumusan Masalah ...1 BAB II PEMBAHASAN………...2  2.1 Pengertian ………...2

 2.2 Tugas-tugas Analsis Leksika l...2

 2.3 Tugas-tugas tambahan Analisis Leksikal ...2

 2.4 Tahap-tahap Pelaksanaan Analisis Leksikal ...2

 2.5 Implementasi Analisis Leksikal ……….2

 2.6 Input Buffering ...3

 2.7 Besaran Leksik/Token ...4

BAB III PENUTUP...5

 A. Simpulan...5

 B. Saran ...5

(4)

BAB I

PENDAHULUAN

A . LATAR BELAKANG

Analisis leksikal (bahasa Inggris: lexical analysis) adalah sebuah proses yang mendahului  parsing sebuah rangkaian karakter. Ia menerima masukan serangkaian karakter (seperti dalam

dokumen plain-text atau source code) dan menghasilkan deretan simbol yang masing-masing dinamakan token; proses parsing akan lebih mudah dilakukan bila inputnya sudah berupa token.

Analisis leksikal terdiri dari dua tahap. Tahap pertama adalah pemindaian (scanning); scanner biasanya dibuat berdasarkan prinsip Finite State Machine ("mesin dengan jumlah

keadaan terbatas"). Pada tahap ini, scanner akan membaca input karakter-ke-karakter, mengubah keadaannya sendiri berdasarkan karakter yang tengah dibaca. Setiap kondisi final (input

dianggap valid) akan dicatat, bersama dengan lokasi input. Pada akhirnya scanner akan menemui keadaan penolakan, yang tidak akan berubah dengan input karakter apapun. Deteksi rekursi semacam ini akan mengakhiri proses pemindaian dan memindahkan keadaan scanner ke keadaan final terakhir, dan karenanya menyimpan informasi jenis dan besar lexeme valid yang terpanjang di dalam input..

Analisis leksikal membuat pekerjaan parser jadi lebih mudah; daripada m embangun nama setiap fungsi dan variabel dari karakter-karakter yang m enyusunnya, dengan analisis leksikal,  parser cukup hanya berurusan dengan sekumpulan token dan nilai sintaksis masing-masing.

Terlepas dari efisiensi pemrograman yang dapat dicapai dengan penggunaannya, proses kerja analisis leksikal yang membaca lebih dari sekali setiap karakter dari input yang diberikan

menjadikan penganalisa leksikal sebagai sub-sistem yang paling intensif melakukan komputasi, terutama bila digunakan dalam sebuah kompilator.

B . TUJUAN PENULISAN

Tujuan dalam penulisan makalah ini adalah untuk mengetahui fungsi-fungsi Analisis Leksikal pada teknik kompilasi pembuatan program analisis leksikal menggunakan bahasa  pemograman java.

C . RUMUSAN MASALAH

1.  bagaimana tahapan-tahapan Analisis Leksikal 2. apa pengertian Analisis Leksikal

(5)

BAB II

PEMBAHASAN

2.1 Pengertian

Pada analisis leksikal yang di tuntun tabel (table-driven lexical analyzer), maka satu-satunya yang berubah adalah tabel itu sendiri. Kadang diperlukan interaksi analisis leksikal dan analisis sintaktik yang lebih kompleks. Sehingga analisis leksikal harus dapat menganggap string sebagai token bertipe, bukan identifier. Untuk itu perlu komunikasi tingkat lebih tinggi yang  biasanya dilakukan suatu struktur data dipakai bersama seperti tabel simbol. Analisis Sintaktik

dapat memasukkan string ke tabel simbol, mengidentifikasi sebagai Type atau typedef, sehingga analisis leksikal dapat memeriksa tabel simbol untuk menentukan apakah lexeme adalah tipe token atau identifier.

2.2 Tugas-tugas Analisis Leksikal

Tugas-tugas Analisis leksikal antara lain sebagai berikut :

1. Konversi Program Sumber Menjadi Barisan Token. Mengubah program sumber yang dipandang sebagai barisan byte/karakter menjadi token.

2. Menangani Kerumitan Sistem Masukkan/Keluaran. Karena analisis leksikal

 biasanya berhubungan langsung dengan kode sumber yan g diwadahi file, maka analisis leksikal juga bertindak sebagai benteng untuk komponen-komponen lain di kompilator dalam mengatasi keanehan-keanehan sistem masukkan/keluaran sistem operasi dan sistem

komputer. Optimasi perlu dilakukan agar analisis leksikal membaca k arakter dengan sekaligus membaca sejumlah besar bagian file. Perangkat masukkan/keluaran benar  benar di isolasi agar tidak terlihat oleh parser dan komponen-komponen kompilator yang

lain.

2.3 Tugas-tugas tambahan Analisis Leksikal

Tugas-tugas tambahan Analisis Leksikal antara lain sebagai be rikut :

1. Penghilangan komentar dan white space (tab,spasi,karakter lainnya).

Tindakan house keeping dilakukan scanner sehingga mengisolasikan dari parser dan komponen-komponen kompilator lain.Peran ini menyederhanakan perancangan parser (dan grammar bahasa pemrograman).Scanner juga mencatat nomor baris saat itu

sehingga penanganan kesalahan yang cerdas dapat mengirim pesan kesalahan dengan lebih akurat.

2. Konversi literal/konstanta numerik menjadi tipe data tertentu.Analisis leksikal dapat mengirim token, dan nilainya. Nilai ini biasa disebut atribut. Namun demikian, bila analisis leksikal ditambahkan dengan tugas-tugas tambahan yang terlalu banyak juga akan menjadi tidak baik. Karena itu membatasi analisis leksikal hanya untuk melakukan tugas pengenalan pola token (ditambah membuang komentar) adalah mempermudah  pemeliharaan.

2.4 Tahap-tahap Pelaksanaan Analisis Leksikal

Tahap Pelaksanaan Analisis Leksikal antara lain seba gai berikut : 1. Pada single one pass.

Terjadi interaksi antara scanner dan parser. Sacnner dipanggil saat parser memerlukan token berikutnya. Pendekatan ini lebih baik karena bentuk internal program sumber yang lengkap tidak perlu dibangun dan disimpan di memori sebelum parsing dimulai.

(6)

2. Pada separate pass.

Scanner memproses secara terpisah, dilakukan sebelum parsing. Hasil scanner disimpan dalam file. Dari file tersebut, parsing melakukan kegiatannya. Scanner mengirim nilai-nilai integer yang mempresentasikan bentuk internal token, bukan nilai-nilai-nilai-nilai string.

Keunggulan cara ini adalah ukurannya kecil dan tetap. Parser sangat lebih efisien bekerja dengan nilai integer yang mempresentasikan simbol daripada string nyata dengan panjang variabel.

2.5 Implementasi Analisis Leksikal

Implementasi Analisis Leksikal antara lain sebagai berikut : a. Pengenalan Token.

1. Scanner harus dapat mengenali token

2. Terlebih dahulu di deskripsikan token-token yang harus dikenali  b. Pendeskripsian Token.

1. Menggunakan reguler grammar.

Menspesifikasikan aturan-aturan pembangkit token - token dengan kelemahan reguler grammar menspesifikasikan token berbentuk pembangkit, sedang scanner perlu bentuk pengenalan.

2. Menggunakan ekspresi grammar. Menspesifikasikan token-token dengan ekspresi reguler.

3. Model matematis yang dapat memodelkan pengenalan adalah finite-stateacceptor (FSA) atau finite automata. Implementasi Analisis Leksikal sebagai Finite

Automata.

Pada pemodelan analisis leksikal sebagai pengenal yang menerapkan finite automata, analisis leksikal tidak cuma hanya melakukan mengatakan YA atau TIDAK. Dengan demikian selain pengenal, maka analisis leksikal juga melakukan aksi-aksi tambahan yang diasosiasikan dengan string yang sedang diolah. Analisis leksikal dapat dibangun dengan menumpangkan pada konsep pengenal yang berupa finite automata dengan cara menspesifikasikan rutin-rutin (aksi-aksi) tertentu terhadap string yang sedang dikenali.

Penanganan Kesalahan di Analisis Leksikal Hanya sedikit kesalahan yang diidentifikasi di analisis leksikal secara mandiri karena analisis leksikal benar-benar merupakan pandangan sangat lokal terhadap program sumber. Bila ditemui situasi dimana analisis leksikal tidak mampu melanjutkan proses karena tidak ada pola token yang cocok, maka terdapat beragam alternatif  pemulihan.yaitu:

1. "Panic mode" dengan menghapus karakter-karakter berikutnya sampai analisis leksikal menemukan token yang terdefinisi bagus

2. Menyisipkan karakter yang hilang

3. Mengganti karakter yang salah dengan karakter yang benar 4. Mentransposisikan 2 karakter yang bersebelahan.

Salah satu cara untuk menemukan kesalahan-kesalahan di program adalah menghitung  jumlah transformasi kesalahan minimum yang diperlukan untuk mentransformasikan program

yang salah menjadi program yag secara sintaks benar. 2.6 Input Buffering

Perancangan analisis leksikal seharusnya dapat membuat buffering masukkan yang membantu mempercepat proses pembacaan dari file serta mempunyai fleksibelitas yang tinggi agar analisis leksikal tidak bergantung platform sehingga mempun yai portabilitas yang tinggi.

(7)

2.7 Besaran Leksik/Token

Besaran pembangun bahasa / leksis meliputi:

1. Identifier (huruf dan angka) Bisa berupa keyword atau nama.

keywords adalah kata kunci yang sudah disefinisikan oleh suatu bahasa seperti BEGIN, END, IF, ELSE dalam Pascal.Nama dideklarasikan sendiri oleh pemakai, seperti nama sebuah variabel.

Contoh :

VAR Nomor: INTEGER; Suhu: REAL;

Maka Nomor dan Suhu adalah Token berupa nama variabel, sedangkan VAR, INTEGER, dan REAL adalah keywords pada program tersebut.

2.  Nilai Konstanta

Yaitu konstanta yang terdapat pada program. Berupa konstanta integer, real,boolean, character, string.

Contoh:  N:=R+5*10

Kata:= kata1 + ‘makan’ A:=0.333

Selesai:= TRUE Maka 5, 10,’makan’,0.333,TRUE, termasuk Token Nilai Konstanta pada  program.

3. Operator dan Delimiter

Termasuk Operator adalah operator aritmetika , operator logika (). Delimiter berguna sebagai pemisah/pembatas, contohnya: ( ), ;, :, wh ite-space yaitu spasi (yg diabaikan di  program), enter, end of file.

(8)

BAB III

PENUTUPAN

3.1 Kesimpulan

Analisis Leksikal Merupakan Analisi dalam melakukan proses yang mend ahului parsing sebuah rangkaian karakter. Untuk masukan serangkaian karakter (seperti dalam dokumen plain-text atau source code) dan menghasilkan deretan simbol yang masing-masing dinamakan token;  proses parsing akan lebih mudah dilakukan bila inputnya sudah berupa token.

3.2 Saran

Apabila di dalam penulisan makalah ini terdapat kesalahan baik dari segi penulisan atau dari segi pembahasan kami mohon kritikan dan saran anda untuk memperbaikinya karena

(9)

DAFTAR PUSTAKA

https://id.scribd.com/doc/219191599/Makalah-Analisis-Leksikal https://repository.unikom.ac.id/45516/1/Slide4-Analisis%20leksikal.pdf

Referensi

Dokumen terkait

Dalam kerangka ini, maka pertanyaan yang mengmuka adalah kondisi seperti apa yang 

Analisis komponen utama (AKU) terhadap rataan spektrum inframerah yang dihasilkan dari kombinasi segitiga kisi 6 ekstrak SDSBL menghasilkan jumlah proporsi kumulatif KU 1 dan KU

hasil deteksi maka sangat penting dilakukan proses pencarian potensi objek yang diduga sebagai kandidat lingkaran terlebih dahulu sebelum melakukan proses deteksi

P senang karena keluarga dapat memberikan tanggapan dari penjelasan yang sudah diberikan. K mulai bersemangat terhadap

Menyatakan Pasal 15 beserta lampiran huruf a Undang-Undang Nomor 23 Tahun 2014 itu tidak mempunyai kekuatan hukum mengikat dengan segala akibat hukumnya, sepanjang tidak

Baja amutit ukuran penampang 17 mm x 17 mm dengan panjang ± 120 mm dibentuk menggunakan mesin potong, mesin milling dan mesin surface grinding menjadi menjadi balok

Pada tahap perencanaan tindakan dimulai dengan mengidentifikasi masalah yang diteliti berdasarkan observasi lapangan. Kegiatan pada tahap ini dimulai dengan melakukan

Faktor ini juga disebut dissatisfier (sumber ketidakpuasan) yang merupakan tempat pemenuhan kebutuhan tingkat rendah yang dikualifikasikan ke dalam faktor