2019071062
Komputasi adalah proses/pengolahan data yang dilakukan oleh komputer pada mesin abstrak
sederhana.
Teori komputasi, yaitu suatu metode/cara dalam melakukan proses/pengolahan data yang dilakukan
oleh komputer.
Kompilasi, yaitu suatu proses yang digunakan untuk menerjemahkan program yang ditulis dalam
high-level programming language (bahasa pemrograman tingkat tinggi) ke dalam low-level
programming language (bahasa pemrograman tingkat rendah) atau machine program.
Pada dasarnya, pengolahan proses komputasi mencakup adanya proses kompilasi. Hal tersebut
dikarenakan untuk membuat mesin memahami apa yang perlu dilakukan dalam melakukan
komputasi, perlu adanya penerjemahan dari instruksi-instruksi yang dilakukan menggunakan teknik
kompilasi.
2. Computability theory Teori ini digunakan untuk memahami masalah yang dapat dipecahkan
dan yang tidak dapat dipecahkan.
DEFINISI TRANSLATOR
Translator adalah suatu program atau metode untuk mengambil input sebuah program lain yang
ditulis pada suatu source language (bahasa program) ke bahasa lain.
JENIS-JENIS TRANSLATOR
Mengukur mutu kompilator, kompilasi yang diinginkan dari kompilator tidak hanya sekadar
memberikan output (keluaran), tetapi juga harus memiliki kualitas yang baik. Kualitas kompilator
harus diukur melalui sebuah tahap pengujian.
1. Machine Language:
Pembuatan kompilator dengan menggunakan machine language (bahasa mesin) sulit untuk
dilakukan.
Tingkat kompleksitas pembuatan kompilator dengan machine language tergantung pada
jenis mesin yang digunakan. Semakin baik mesin yang digunakan maka semakin rumit pula
pembuatan kompilator.
2. Assembly Language:
Assembly language (bahasa perakitan) dapat digunakan dalam pembuatan kompilator.
Kelebihan dari penggunaan assembly language adalah hasil program memiliki ukuran yang
sangat kecil.
3. High-Level Language:
High-level language umumnya menggunakan bahasa yang sudah dipahami oleh manusia
sehingga lebih mudah untuk digunakan, termasuk dalam proses debugging.
High-level language juga memberikan fasilitas yang lebih banyak dan tidak bergantung pada
salah satu jenis mesin komputer.
- Scanner
Kebenaran dan urutan kemunculan token diperiksa. Token pada Langkah 1 (scanner) diurutkan
secara postfix, seperti berikut:
Intermediate code dibangkitkan dengan semantic analyzer (SA). Intermediate code dituliskan dalam
bentuk prefix notation. Proses yang terjadi adalah sebagai berikut:
Object code dibangkitkan dengan code generator (CG). Berikut adalah proses yang terjadi:
Hasil optimasi dituliskan dalam assembly language sehingga dihasilkan object code sebagai
berikut:
NOTASI ARITMETIKA
Dalam proses kompilasi, leksikal/token akan diurutkan dengan notasi aritmetika tertentu.
Terdapat tiga jenis notasi aritmetika yang digunakan, yaitu:
1. Infix Notation
Infix notation adalah notasi aritmetika yang meletakkan operator di antara dua operand.
2. Postfix Notation
Postfix notation adalah notasi aritmetika yang meletakkan operator di belakang operand.
Berikut adalah contoh konversi infix notation ke postfix notation.
3. Prefix Notation
Dalam prefix notation, operator terletak di depan operand. Berikut ditampilkan konversi
infix notation ke prefix notation.
CONTOH KASUS 1
Terdapat source code dalam bentuk notasi aritmetika sebagai berikut:
Tentukanlah object code dari notasi di atas dengan menggunakan tahapan proses kompilasi.
BAHASA DAN OTOMATA
TEORI BAHASA
Teori bahasa membicarakan bahasa formal, terutama untuk kepentingan perancangan compiler
(kompilator) dan text processor (pemroses naskah).
Bahasa terbagi menjadi dua jenis, yaitu bahasa alami (natural) dan bahasa formal.
1. Bahasa alami adalah bahasa yang digunakan manusia untuk berkomunikasi dan tidak
dirancang secara khusus. Bahasa ini berkembang secara alami.
2. Bahasa formal adalah bahasa yang dirancang untuk kebutuhan tertentu. Bahasa ini adalah
kumpulan kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah grammar
(tata bahasa) yang sama. Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata
bahasa berbeda.
OTOMATA
Otomata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept),
dan/atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu. Gambar di
samping adalah gambar pemodelan otomata.
• Simbol adalah sebuah entitas abstrak dari sebuah huruf atau sebuah angka.
• String hampa adalah sebuah string dengan nol buah simbol yang dinyatakan dengan
simbol (atau ^) sehingga = 0. String hampa dapat dipandang sebagai simbol hampa
karena keduanya tersusun dari nol buah simbol.
SIMBOL TERMINAL
MEREPRESENTASIKAN GRAMMAR
𝐺(𝒱𝒯 , 𝒱𝑁, 𝑆, 𝑄)
Keterangan:
DERIVASI KALIMAT
b. Derivasi kalimat umum Melihat pola kombinasi setiap produksi sehingga mendapatkan
kesimpulan yang memunculkan pola kalimat umum.
CONTOH KASUS
KLASIFIKASI GRAMMAR CHOMSKY
Menurut Noam Chomsky, secara umum tata bahasa dikelompokkan menjadi empat jenis, yaitu:
Finite automata (FA) adalah mesin abstrak paling sederhana untuk mengenali pola.
Finite automata pada umumnya disajikan dalam sebuah model abstrak dari komputer digital.
Penyajiannya digambarkan dengan simbol state (stata/kondisi) dan simbol anak panah.
Simbol state digambarkan dengan bangun lingkaran satu tepi (state awal) dan dua tepi (state akhir).
Simbol anak panah, satu arah atau dua arah untuk menunjukkan arah luaran penelusuran automata.
1. Deterministic Finite Automata (DFA) DFA, transisi finite state (FS) merupakan akibat dari
pembacaan sebuah simbol yang bersifat tertentu. DFA merupakan jenis FA yang tidak
diperkenankan untuk memiliki transisi null ke state lainnya dan hanya menuju tepat ke
sebuah state lainnya.
2. Nondeterministic Finite Automata (NFA) NFA, transisi finite state (FS) merupakan akibat dari
pembacaan sebuah simbol bersifat tak tentu. NFA, merupakan jenis FA yang diperkenankan
memiliki transisi null dan dapat menuju ke sejumlah state untuk input tertentu.
DETERMINISTIC FINITE AUTOMATA (DFA)
Deterministic finite automata (DFA) merupakan jenis finite automata (FA) yang tidak
diperkenankan untuk memiliki transisi null ke state lainnya dan hanya menuju tepat ke
sebuah state lainnya.
CONTOH KASUS 1
Problem: Telusurilah, apakah string abababaa diterima DFA F? Jawab:
• Apabila state awal (Q0) diberi masukan a maka akan bergerak ke state yang sama, yaitu Q0.
• State Q0 diberi masukan a maka akan bergerak ke ke state yang sama, yaitu Q0 yang
merupakan state penerima/akhir.
Berdasarkan penelusuran dari string abababaa terhadap grafik DFA F maka didapatkan hasil
bahwa string abababaa diterima oleh DFA F.
Finite state machine (FSM) adalah varian otomata berhingga yang memiliki output.
Contoh Kasus
MEMBUAT TABEL
Masukkan data fungsi f ke dalam tabel. Berikut adalah ilustrasi cara memasukkan data fungsi F
ke dalam tabel.
Masukkan data fungsi G ke dalam tabel yang sudah diisi fungsi F. Berikut adalah ilustrasi cara
memasukkan data fungsi G ke dalam tabel.
Masukkan seluruh data fungsi G ke dalam tabel. Berikut adalah hasil akhir dari tabel finite state
machine pada Contoh Kasus 1.
Finite state machine (FSM) merupakan varian finite automata yang memiliki input dan juga
output.
Finite state machine (FSM) binary adder merupakan salah satu implementasi atau penerapan
dari FSM. Sifat penjumlahan biner bergantung pada statusnya, yaitu carry atau not carry.
Nondeterministic finite automata (NFA) merupakan jenis finite automata yang dapat memiliki
sifat: Memiliki transisi null, Dapat menuju ke lebih dari satu state.
Sebelum menguji string ab dan aba, buatlah terlebih dahulu grafik otomata NFA dari keterangan
pada slide 5. Berdasarkan keterangan yang tersedia, dapat digambarkan grafik berikut:
Berikut adalah proses pengujian string ab.
Nondeterministic finite automata (NFA) merupakan sebuah finite automata (FA) yang ambigu
dan agar terhindar dari ambigu maka sebuah NFA perlu dinormalisasikan.
Proses normalisasi dilakukan dengan melakukan konversi NFA ke DFA. Konversi adalah
perubahan dari satu bentuk (rupa dan sebagainya) ke bentuk (rupa dan sebagainya) yang lain.
Proses konversi NFA ke DFA mengikuti algoritme konversi.
Setiap state 𝒒 yang merupakan nilai dari fungsi dan 𝒒 ∉ 𝑲, ditetapkan sebagai elemen baru dari
𝑲’. Tempatkan 𝒒 tersebut pada kolom state 𝑴’, lakukan pemetaan berdasarkan fungsi 𝑴
Selanjutnya, buatlah penggambaran mesin automata berdasarkan tabel transisi M’. Hasil
penggambarannya adalah sebagai berikut:
Elemen 𝒁’ adalah semua state yang mengandung state elemen 𝒁.
Untuk menentukan state penerima pada mesin DFA yang baru, apabila terdapat salah satu state
penerima dari elemen Z (yaitu C) maka state tersebut dapat dikatakan sebagai state penerima.
Pada mesin DFA yang baru state penerima adalah {B, C}.
Konversi DFA ke grammar merupakan sebuah proses pengubahan mesin DFA ke dalam bentuk
grammar atau tata bahasa. Sebuah grammar pada umumnya disajikan dalam bentuk himpunan
produksi-produksi. Proses konversi didasarkan pada algoritme konversi yang akan mengubah
sebuah proses penelusuran simbol terminal terhadap sebuah state menjadi bentuk produksi
grammar.
Diketahui sebuah DFA sebagai berikut 𝑭 𝑲, 𝑽𝑻, 𝑴, 𝑺, 𝒁 , akan dibentuk grammar 𝑮 = 𝑽𝑻 ’ , 𝑽𝑵,
𝑺’, 𝑸 dengan:
PENYELESAIAN
GRAMMAR TO NFA CONVERSION
Konversi grammar ke NFA merupakan sebuah proses pengubahan bentuk grammar atau tata
bahasa ke dalam mesin NFA.
Konversi dilakukan untuk mengubah himpunan produksi suatu grammar ke dalam bentuk fungsi
transisi 𝑴. Proses konversi didasarkan pada algoritme konversi dengan membalikkan algoritme
konversi bentuk DFA untuk menentukan semua produksi grammar.
CONTOH KASUS