Analisis ERD rumah sakit dengan 11 entitas dan 22 tabel yang terkait dengan data pasien, pegawai, ruangan, obat, dan perawatan di rumah sakit. Terdapat 5 relasi antar tabel untuk menghubungkan informasi terkait. Ringkasan memberikan informasi mengenai struktur data rumah sakit berdasarkan ERD yang dianalisis.
Dokumen tersebut membahas tentang array (larik) sebagai koleksi data yang memiliki elemen dengan nama dan tipe yang sama. Terdapat penjelasan mengenai jenis array satu, dua, dan tiga dimensi beserta contoh kode program untuk menyimpan dan menampilkan elemen array baik untuk tipe data integer maupun string.
Kode antara / Intermediate code merupakan hasil dari tahapan analisis, yang dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi
Makalah ini membahas analisis sistem informasi aplikasi penjualan dan pembelian elektronik berbasis web pada toko Kotakom Bandung. Tujuannya adalah merancang sistem informasi untuk memudahkan transaksi penjualan dan pembelian secara online.
Teks tersebut membahas tentang representasi data dan tipe data dalam pemrograman. Secara singkat, representasi data dibedakan menjadi fixed point dan floating point, sedangkan tipe data dibedakan menjadi primitive, composite, dan lainnya seperti string, date, dan object.
Final Project APSI : ANALISIS PERANCANGAN SISTEM INFORMASI PENJUALAN SUPERMAR...Ferdinand Jason
Laporan akhir proyek analisis sistem informasi penjualan supermarket Sakinah menjelaskan perancangan sistem baru untuk mengatasi masalah sistem lama yang belum terintegrasi antar cabang dan kurang memadai dalam pengelolaan stok barang. Sistem baru akan mengintegrasikan data cabang, supplier, pegawai, produk dan pesanan untuk memudahkan pengelolaan stok dan pembuatan laporan keuangan.
Model diagram yang ditunjukkan merupakan contoh gambaran Entity Relation Diagram (ERD) Sistem Informasi Rumah Sakit. Terdapat 5 entity utama yaitu pasien, dokter, obat, perawat, dan ruang. Terdapat 5 proses transaksi yaitu penanganan, resep, perawatan, menginap, yang menghubungkan entity-entity tersebut. ERD ini dapat membentuk sistem informasi dasar untuk menangani dan memberikan informasi mengenai elemen-elemen kunci rumah sakit.
Analisis ERD rumah sakit dengan 11 entitas dan 22 tabel yang terkait dengan data pasien, pegawai, ruangan, obat, dan perawatan di rumah sakit. Terdapat 5 relasi antar tabel untuk menghubungkan informasi terkait. Ringkasan memberikan informasi mengenai struktur data rumah sakit berdasarkan ERD yang dianalisis.
Dokumen tersebut membahas tentang array (larik) sebagai koleksi data yang memiliki elemen dengan nama dan tipe yang sama. Terdapat penjelasan mengenai jenis array satu, dua, dan tiga dimensi beserta contoh kode program untuk menyimpan dan menampilkan elemen array baik untuk tipe data integer maupun string.
Kode antara / Intermediate code merupakan hasil dari tahapan analisis, yang dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi
Makalah ini membahas analisis sistem informasi aplikasi penjualan dan pembelian elektronik berbasis web pada toko Kotakom Bandung. Tujuannya adalah merancang sistem informasi untuk memudahkan transaksi penjualan dan pembelian secara online.
Teks tersebut membahas tentang representasi data dan tipe data dalam pemrograman. Secara singkat, representasi data dibedakan menjadi fixed point dan floating point, sedangkan tipe data dibedakan menjadi primitive, composite, dan lainnya seperti string, date, dan object.
Final Project APSI : ANALISIS PERANCANGAN SISTEM INFORMASI PENJUALAN SUPERMAR...Ferdinand Jason
Laporan akhir proyek analisis sistem informasi penjualan supermarket Sakinah menjelaskan perancangan sistem baru untuk mengatasi masalah sistem lama yang belum terintegrasi antar cabang dan kurang memadai dalam pengelolaan stok barang. Sistem baru akan mengintegrasikan data cabang, supplier, pegawai, produk dan pesanan untuk memudahkan pengelolaan stok dan pembuatan laporan keuangan.
Model diagram yang ditunjukkan merupakan contoh gambaran Entity Relation Diagram (ERD) Sistem Informasi Rumah Sakit. Terdapat 5 entity utama yaitu pasien, dokter, obat, perawat, dan ruang. Terdapat 5 proses transaksi yaitu penanganan, resep, perawatan, menginap, yang menghubungkan entity-entity tersebut. ERD ini dapat membentuk sistem informasi dasar untuk menangani dan memberikan informasi mengenai elemen-elemen kunci rumah sakit.
Merupakan hasil diskusi untuk menentukan beberapa poin resiko yang mungki terjadi untuk menyusun proposal Project Management Plan dengan kasus sewa alat berat PT. Terlalu Berat
Cara membuat fungsi dan prosedur pada javaDevandy Enda
Cara membuat fungsi dan prosedur pada Java membahas tentang perbedaan antara fungsi dan prosedur. Fungsi akan mengembalikan nilai sedangkan prosedur tidak. Keduanya dapat digunakan untuk menyederhanakan program dengan membagi program menjadi bagian-bagian lebih kecil. Contoh kode mendemonstrasikan penulisan fungsi dan prosedur serta cara memanggilnya.
Dokumen tersebut membahas tentang proses kompilasi bahasa pemrograman, yang terdiri dari empat tahap utama yaitu analisis leksikal, analisis sintaktik, analisis semantik, dan sintesis. Analisis leksikal berfungsi untuk mengubah program sumber menjadi token, analisis sintaktik mengidentifikasi struktur program, analisis semantik memeriksa kesesuaian struktur, dan sintesis membentuk kode yang dapat dijalankan.
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
1. Soal ujian struktur data mata kuliah tersebut terdiri dari 30 soal pilihan ganda yang meliputi konsep-konsep dasar struktur data seperti array, linked list, stack, queue, tree, graph, dan sorting.
2. Beberapa soal menanyakan tentang tipe data, operator, kondisi linked list dan stack, operasi queue, serta pengertian sparse array dan binary tree.
3. Ada juga soal yang membahas algoritma sorting seperti insertion, selection, merge, dan quick sort beserta contoh soal p
NFA dan DFA merupakan dua jenis mesin pengenal pola yang berbeda. NFA bersifat non-deterministik sehingga satu keadaan dapat memiliki lebih dari satu keadaan berikutnya, sedangkan DFA bersifat deterministik dengan satu keadaan memiliki satu keadaan berikutnya. NFA lebih mudah dibuat dibanding DFA namun setiap NFA dapat diubah menjadi DFA.
Program ini membahas tentang mode pengalamatan pada mikroprosesor. Terdapat beberapa mode pengalamatan seperti direct, indirect, immediate, register addressing, register indirect addressing, displacement addressing, dan stack addressing. Setiap mode memiliki cara yang berbeda untuk mentransfer atau mengakses data.
PDA (Push Down Automata) merupakan mesin otomata yang memiliki memori tidak terbatas berupa stack. PDA dapat menerima bahasa bebas konteks dan direpresentasikan dengan 7 tupel yang mencakup state, simbol input, simbol stack, fungsi transisi, state awal, state akhir, dan simbol awal stack. PDA melakukan transisi dengan membaca input atau tanpa membaca input serta menambah atau mengurangi isi stack.
Algoritma dan Struktur Data (Python) - Struktur I/OAndiNurkholis1
Struktur input/output dan runtunan adalah konsep dasar dalam pemrograman yang mencakup proses memasukkan dan mengeluarkan data, serta alur kerja program dari atas ke bawah mulai dari input, proses, hingga output. Variabel, tipe data, operator, dan komentar merupakan komponen penting lainnya yang mendukung struktur tersebut.
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
Modul pratikum ini membahas algoritma dan pemrograman dalam bahasa Visual C++. Modul ini disusun oleh Edi Ismanto untuk mahasiswa Program Studi Pendidikan Informatika Universitas Muhammadiyah Riau. Modul ini memberikan pengertian dasar tentang Visual C++, tipe data, dan struktur program untuk membantu mahasiswa memahami dan mengimplementasikan algoritma serta program komputer menggunakan Visual C++.
Makalah ini membahas tentang implementasi pohon biner dengan menjelaskan pengertian pohon biner, jenis-jenisnya, kunjungan pada pohon biner, dan contohnya dalam kehidupan sehari-hari. Kemudian dijelaskan script dan hasil compile untuk membuat program pohon biner."
P 2 Konsep & Notasi Bahasa - Teknik Kompilasiahmad haidaroh
Grammar G didefinisikan sebagai pasangan 4 tupel yang terdiri dari himpunan simbol terminal, non terminal, simbol awal, dan produksi. Noam Chomsky mengklasifikasikan 4 tipe grammar berdasarkan bentuk ruas kiri dan kanan produksinya. Derivasi adalah proses menurunkan simbol non terminal menjadi terminal sesuai aturan produksi.
Merupakan hasil diskusi untuk menentukan beberapa poin resiko yang mungki terjadi untuk menyusun proposal Project Management Plan dengan kasus sewa alat berat PT. Terlalu Berat
Cara membuat fungsi dan prosedur pada javaDevandy Enda
Cara membuat fungsi dan prosedur pada Java membahas tentang perbedaan antara fungsi dan prosedur. Fungsi akan mengembalikan nilai sedangkan prosedur tidak. Keduanya dapat digunakan untuk menyederhanakan program dengan membagi program menjadi bagian-bagian lebih kecil. Contoh kode mendemonstrasikan penulisan fungsi dan prosedur serta cara memanggilnya.
Dokumen tersebut membahas tentang proses kompilasi bahasa pemrograman, yang terdiri dari empat tahap utama yaitu analisis leksikal, analisis sintaktik, analisis semantik, dan sintesis. Analisis leksikal berfungsi untuk mengubah program sumber menjadi token, analisis sintaktik mengidentifikasi struktur program, analisis semantik memeriksa kesesuaian struktur, dan sintesis membentuk kode yang dapat dijalankan.
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
1. Soal ujian struktur data mata kuliah tersebut terdiri dari 30 soal pilihan ganda yang meliputi konsep-konsep dasar struktur data seperti array, linked list, stack, queue, tree, graph, dan sorting.
2. Beberapa soal menanyakan tentang tipe data, operator, kondisi linked list dan stack, operasi queue, serta pengertian sparse array dan binary tree.
3. Ada juga soal yang membahas algoritma sorting seperti insertion, selection, merge, dan quick sort beserta contoh soal p
NFA dan DFA merupakan dua jenis mesin pengenal pola yang berbeda. NFA bersifat non-deterministik sehingga satu keadaan dapat memiliki lebih dari satu keadaan berikutnya, sedangkan DFA bersifat deterministik dengan satu keadaan memiliki satu keadaan berikutnya. NFA lebih mudah dibuat dibanding DFA namun setiap NFA dapat diubah menjadi DFA.
Program ini membahas tentang mode pengalamatan pada mikroprosesor. Terdapat beberapa mode pengalamatan seperti direct, indirect, immediate, register addressing, register indirect addressing, displacement addressing, dan stack addressing. Setiap mode memiliki cara yang berbeda untuk mentransfer atau mengakses data.
PDA (Push Down Automata) merupakan mesin otomata yang memiliki memori tidak terbatas berupa stack. PDA dapat menerima bahasa bebas konteks dan direpresentasikan dengan 7 tupel yang mencakup state, simbol input, simbol stack, fungsi transisi, state awal, state akhir, dan simbol awal stack. PDA melakukan transisi dengan membaca input atau tanpa membaca input serta menambah atau mengurangi isi stack.
Algoritma dan Struktur Data (Python) - Struktur I/OAndiNurkholis1
Struktur input/output dan runtunan adalah konsep dasar dalam pemrograman yang mencakup proses memasukkan dan mengeluarkan data, serta alur kerja program dari atas ke bawah mulai dari input, proses, hingga output. Variabel, tipe data, operator, dan komentar merupakan komponen penting lainnya yang mendukung struktur tersebut.
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
Modul pratikum ini membahas algoritma dan pemrograman dalam bahasa Visual C++. Modul ini disusun oleh Edi Ismanto untuk mahasiswa Program Studi Pendidikan Informatika Universitas Muhammadiyah Riau. Modul ini memberikan pengertian dasar tentang Visual C++, tipe data, dan struktur program untuk membantu mahasiswa memahami dan mengimplementasikan algoritma serta program komputer menggunakan Visual C++.
Makalah ini membahas tentang implementasi pohon biner dengan menjelaskan pengertian pohon biner, jenis-jenisnya, kunjungan pada pohon biner, dan contohnya dalam kehidupan sehari-hari. Kemudian dijelaskan script dan hasil compile untuk membuat program pohon biner."
P 2 Konsep & Notasi Bahasa - Teknik Kompilasiahmad haidaroh
Grammar G didefinisikan sebagai pasangan 4 tupel yang terdiri dari himpunan simbol terminal, non terminal, simbol awal, dan produksi. Noam Chomsky mengklasifikasikan 4 tipe grammar berdasarkan bentuk ruas kiri dan kanan produksinya. Derivasi adalah proses menurunkan simbol non terminal menjadi terminal sesuai aturan produksi.
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)Kukuh Setiawan
Dokumen tersebut membahas tentang materi perkuliahan teknik kompilasi yang mencakup penanganan kesalahan, optimasi kode, dan tabel informasi. Topik utama yang disinggung adalah jenis-jenis penanganan kesalahan dalam kompilasi, teknik recovery dan repair untuk menangani kesalahan, serta jenis-jenis optimasi kode dan tabel informasi yang digunakan dalam kompilasi.
This document provides instructions on how to hack passwords and create an FTP server on a PC. It discusses techniques like hashing, guessing, using default passwords, brute force attacks, and phishing to hack passwords. It also describes how to crack Windows passwords using tools like Cain and Abel. Additionally, it outlines the steps to obtain a static IP address, install and configure an FTP server software, and set up user accounts on the server.
Teknik kompilasi melibatkan proses penerjemahan program yang ditulis dalam bahasa sumber ke dalam bahasa sasaran. Proses ini dilakukan oleh kompilator dan terdiri atas dua tahap utama yaitu analisis dan sintesis. Pada tahap analisis, program akan dipecah menjadi token dan disusun menjadi pohon sintaks, sedangkan pada tahap sintesis akan dihasilkan kode eksekusi dalam bahasa sasaran.
Teks tersebut membahas tentang proses kompilasi pada umumnya, termasuk analisis leksikal, sintaktik, dan semantik. Analisis leksikal memecah program sumber menjadi token, analisis sintaktik menyusun token menjadi struktur pohon, dan analisis semantik memeriksa kesesuaian struktur tersebut.
Kompilator VB.Net melakukan kompilasi kode sumber Visual Basic menjadi Bahasa Antara Microsoft (Intermediate Language) yang disimpan dalam berkas assembly. Berkas assembly ini kemudian dijalankan oleh Common Language Runtime untuk mengubah Bahasa Antara menjadi kode mesin yang dapat dijalankan oleh sistem operasi. Kompilator melakukan analisis leksikal, sintaktik, dan semantik untuk mendeteksi kesalahan serta menangani berbagai jenis kesalahan sepert
Dokumen ini membahas tentang pendahuluan pembuatan compiler, meliputi tujuan pembelajaran seperti memahami cara kerja compiler, konsep pembuatan compiler, dan bagaimana bahasa pemrograman diterjemahkan oleh mesin. Juga dibahas proses compiler, jenis-jenis translator seperti interpreter dan compiler, serta cara pembuatan compiler menggunakan berbagai bahasa pemrograman.
Dokumen tersebut membahas tentang compiler, meliputi proses kompilasi, jenis-jenis translator seperti interpreter dan compiler, serta cara pembuatan compiler menggunakan bahasa pemrograman tingkat tinggi.
Dokumen tersebut membahas tentang teknik kompilasi yang meliputi proses kompilasi mulai dari analisis leksikal, sintaks, semantik, pembangkitan kode antara, optimalisasi kode, dan pembangkitan kode mesin. Juga membahas perbedaan antara compiler dan interpreter serta contoh proses kompilasi dari source program ke kode mesin.
Analisis leksikal adalah proses yang membaca karakter demi karakter dari program sumber dan mengubahnya menjadi token-token yang merepresentasikan komponen-komponen bahasa. Token-token ini kemudian digunakan oleh analisis sintaktik untuk memahami struktur bahasa dari program. Proses ini dilakukan oleh scanner yang beroperasi seperti mesin hingga untuk mengenali pola-pola bahasa.
Pemrograman adalah proses menulis kode komputer menggunakan bahasa pemrograman untuk membuat program yang dapat melakukan perhitungan atau tugas tertentu. Hal ini melibatkan pengetahuan algoritma, logika, dan bahasa pemrograman. Konsep dasar pemrograman meliputi input, proses, dan output data untuk menghasilkan informasi.
Dokumen tersebut membahas tahapan pemrograman komputer mulai dari algoritma, bahasa pemrograman, pengujian program, dan dokumentasi. Terdapat 3 tahap utama dalam membangun program yaitu memahami masalah, merancang solusi, dan mengimplementasikan rancangan dalam bentuk program. Bahasa pemrograman dibedakan menjadi tingkat tinggi dan rendah, serta perlu dilakukan pengujian dan dokumentasi untuk memastikan program berjalan dengan baik
Dokumen tersebut membahas tentang bahasa pemrograman mikroprosesor Z80, meliputi tujuan perkuliahan, pengertian bahasa assembly dan mesin, contoh program transfer data, dan penjelasan tentang menjalankan program.
Laporan ini merangkum pengalaman magang selama 9 minggu sebagai reporter di program Hallo Kampus di CTV Banten. Mahasiswa memperoleh pengalaman jurnalistik seperti mencari informasi, mencatat data, dan membuat naskah. Laporan ini menjelaskan proses produksi program televisi yang memerlukan keterampilan untuk menentukan kualitas acara.
Dokumen tersebut membahas 20 sunnah Rasulullah SAW yang sering kita abaikan, di antaranya mendahulukan kaki kanan saat memakai sandal, menjaga wudhu' walaupun tidak shalat, bersiwak, shalat istikharah, berwudhu sebelum tidur dan tidur miring ke kanan, sujud syukur atas nikmat, membaca doa setelah shalat, serta meminta izin 3 kali saat bertamu.
Nama : Muhammad Saparizan
NIM : 1021464292
Dokumen tersebut membahas teori bahasa Chomsky yang menjelaskan bahasa sebagai struktur yang dikendalikan aturan tertentu seperti mesin. Chomsky memperkenalkan konsep grammar untuk memodelkan bahasa dan membedakan empat tingkat bahasa berdasarkan batasan aturan produksinya.
Dokumen ini membahas 10 alternatif iklan dan kelebihan masing-masing iklan. Iklan-iklan tersebut antara lain iklan Ale-Ale, Susu Bebilac, Kartu AS, Kartu Smart, KB Kopi ABC, Tropicana Slim, Es Krim Magnum, Shampo Sunsilk, Coklat ChaCha, dan Mie Sedap. Kelebihan iklan-iklan tersebut bervariasi mulai dari editing videonya, animasi maskot, model populer, penjelasan manfaat, hingga penonjolan
1. Nama : Muhammad Saparizan
NIM : 1021464292
Teknik Kompilasi
TEKNIK KOMPILASI
Teknik Kompilasi
Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa
sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran.
Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan
melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses
penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling).
Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat,
- Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang
sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS
dan lain sebagainya.
- Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya
atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau
sumber komputer besar maupun komputer super.
Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulai
ditemukannya komputer pada awal 1950-an.
Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan
sangat pesat dan pembentukkan suatu kompilator dapat dilakukan makin mudah.
Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh
sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat.
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu
2. dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang
dilakukan oleh 18 orang.
Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan
baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang
terstruktur seperti PASCAL atau C dapat dikembangkan.
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama
yaitu bagian analisis dan bagian sintesis.
- Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam
beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari
program sumber.
Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu
struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap
nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut
memberikan argumen yang diperlukan
Secara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu
a. Proses analisis leksikal
b. Proses analisis sintaktik
c. Proses analisis semantic
- Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara
yang dihasilkan pada tahap analisis.
Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
a. Proses yang menghasilkan kode (code generator)
b. b. Proses optimasi kode (code optimizer)
Sebelum Bahasa sasaran dapat dihasilkan, dalam melakukan ini tiap bagian utama akan
berhubungan dan berkomunikasi dengan suatu berkas tabel yang disebut tabel simbol (symbol
table) yaitu suatu tabel yang berisi semua simbol yang digunakan dalam bahasa sumber.
Selain kompilator masih diperlukan beberapa program lainnya sebelum dapat dibentuk bahasa
sasaran yang dapat dijalankan. Seperti suatu bahasa sumber dapat dituliskan dalam beberapa
modul yang terpisah dan disimpan dalam beberapa file yang terpisah.
3. Untuk menanggulangi hal ini, maka suatu program khusus yang disebut dengan suatu
praprosesor digunakan untuk mengumpulkan modul-modul yang saling lepas ini ke dalam suatu
program baru. Praposesor dapat pula melengkapi singkatan-singkatan atau ungkapan-ungkapan
maupun kependekan-kependekan yang digunakan dalam bahasa sumber seperti pendefinisian
makro dan lain sebagainya.
Analisis Leksikal
Analisis Leksikal/Analisis Linier/Pembacaan Sekilas (Scanner)
Dalam kaitan ini 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.
Model dasar untuk membentuk suatu Analisis Leksikal adalah Finite-State Automata.
2 aspek penting pembuatan Analisis Leksikal adalah:
- Menentukan token-token bahasa.
- Mengenali token-token bahasa dari program sumber.
Token-token dihasilkan dengan cara memisahkan program sumber tersebut dilewatkan ke parser
Analisis Leksikal harus mengirim token ke parser. Untuk mengirim token, scanner harus
mengisolasi barisan karakter pada teks sumber yang merupakan 1 token valid. Scanner juga
4. menyingkirkan informasi seperti komentar, blank, batas-batas baris dan lain-lain yang tidak
penting (tidak mempunyai arti) bagi parsing dan Code Generator.
Scanner juga harus dapat mengidentifikasi token secara lengkap dan membedakan keyword dan
identifier. Untuk itu scanner memerlukan tabel simbol. Scanner memasukkan identifier ke tabel
simbol, memasukkan konstanta literal dan numerik ke tabel simbol sendiri setelah konversi
menjadi bentuk internal.
Analisis Leksikal merupakan komponen kompilasi independen yang berkomunikasi dengan
parser lewat antarmuka yang terdefinisi bagus dan sederhana sehingga pemeliharaan analisis
leksikal menjadi lebih mudah dimana perubahan-perubahan terhadap analisis leksikal tidak
berdampak pada pengubahan kompilator secara keseluruhan.
Agar dapat memperoleh fitur ini, maka antarmuka harus tidak berubah. Kebanyakan kode yang
menyusun analisis leksikal adalah sama untuk seluruh kompilator, tidak peduli bahasa.
Pada analisis leksikal yang dituntun 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.
Tugas-tugas Analisis leksikal
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 yang diwadahi
file, maka analisis leksikal juga bertindak sebagai benteng untuk komponen-komponen lain di
5. kompilator dalam mengatasi keanehan-keanehan sistem masukkan/keluaran sistem operasi dan
sistem komputer.
Optimasi perlu dilakukan agar analisis leksikal membaca karakter degan sekaligus membaca
sejumlah besar bagian file.
Perangkat masukkan/keluaran benar-benar diisolasi agar tidak terlihat oleh parser dan
komponen-komponen kompilator yang lain.
Tugas-tugas tambahan Analisis Leksikal
1. Penghilangan komentar dan whitespace (tab,spasi,karakter lainnya)
Tindakan housekeeping 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 ditambahin 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.
Tahap Pelaksanaan Analisis Leksikal
- 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.
- Pada separate pass
6. 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 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.
Implementasi Analisis Leksikal
1. Pengenalan Token
- Scanner harus dapat mengenali token
- Terlebih dahulu dideskripsikan token-token yang harus dikenali
2. Pendeskripsian Token
- Menggunakan reguler grammar. Menspesifikasikan aturan-aturan pembangkit token-token
dengan kelemahan reguler grammar menspesifikasikan token berbentuk pembangkit, sedang
scanner perlu bentuk pengenalan.
- Menggunakan ekspresi grammar. Menspesifikasikan token-token dengan ekspresi reguler.
- Model matematis yang dapat memodelkan pengenalan adalah finite-state acceptor (FSA) atau
finite automata.
3. 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 yangsedang diolah.
Analisis leksikal dapat dibangun dengan menumpangkan pada konsep pengenal yang berupa
7. finite automata dengan cara menspesifikasikan rutin-rutin (aksi-aksi) tertentu terhadap string
yang sedang dikenali.
4. 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:
- "Panic mode" dengan menghapus karakter-karakter berikutnya sampai analisis leksikal
menemukan token yang terdefinisi bagus
- Menyisipkan karakter yang hilang
- Mengganti karakter yang salah dengan karakter yang benar
- 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.
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 mempunyai portabilitas yang tinggi.
Analisis Sintaktik
Analisis Sintaktik/Analisis Hirarki/Parsing
Dalam tahap ini karakter atau token yang diperoleh pada analisis leksikal disusun dan
dikelompokkan dalam suatu hirarki tertentu yang secara keseluruhan mempunyai arti tertentu.
8. Disinilah struktur program yang lebih besar diidentifikasi (statement, deklarasi, ekspresi, dan
lainnya) menggunakan token leksikal yang dihasilkan Analisis Leksikal.
Analisis Sintaktik selalu bekerja bergantian dengan Analisis Semantik.
- Pertama, Analisis Sintaktik mengidentifikasikan urutan Token Leksikal seperti ekspresi,
statement, subprogram, dan lainnya.
- Analisis Semantik kemudian dipanggil untuk proses unit ini.
Analisis Sintaktik berfungsi menghasilkan pohon sintaks program sumber yang didefinisi
grammar.
Simbol terminal pohon sintaks adalah token-token yang dihasilkan scanner
Analisis Semantik
Analisis Semantik
Disini dilakukan pengecekan pada struktur akhir yang telah diperoleh dan diperiksa kesesuainnya
dengan komponen program yang ada.
Merupakan pusat dari tahapan translasi, struktur sintaktik yang dikenali oleh Analisis Sintaktik
diproses, dan struktur objek eksekusi sudah mulai dibentuk. Analisis Semantik kemudian menjadi
jembatan antara analisis dan sintesis dari translasi.
Analisis Semantik menghasilkan suatu kode objek yang dapat dieksekusi dalam translasi
sederhana, tetapi biasanya bentuk dari kode objek yang dapat dieksekusi ini merupakan bentuk
internal dari final program eksekusi, yang kemudian dimanipulasi oleh tahap optimisasi dari
translator sebelum akhirnya kode eksekusi benar-benar dihasilkan.