Adoc - Pub - Bab 1 Pendahuluan Sederhana Adalah Kelas Bahasa Re
Adoc - Pub - Bab 1 Pendahuluan Sederhana Adalah Kelas Bahasa Re
PENDAHULUAN
Dalam hierarki kelas-kelas bahasa menurut Chomsky, kelas bahasa yang paling
sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan
tepat dideskripsikan dengan menggunakan finite automata (FA); dengan kata lain bahasa
yang dapat diterima oleh suatu finite automata adalah bahasa reguler.
Finite automata merupakan mesin abstrak yang berupa sistem model matematika
dengan masukan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana
(bahasa reguler) dan dapat diimplementasikan secara nyata di mana sistem dapat berada di
salah satu dari sejumlah berhingga konfigurasi internal disebut state. Banyak model
perangkat keras dan perangkat lunak yang menggunakan finite automata sebagai
penerapannya. Beberapa contoh penerapan finite automata dalam perangat keras dan
perangkat lunak adalah dalam perancangan dan pemantauan perilaku rangkaian digital,
scanning dokumen teks dalam halaman web guna menemukan kesamaan kata, frase dan
Terdapat dua jenis finite automata, yaitu deterministik finite automata (DFA) dan non-
deterministik finite automata (NFA). Perbedaan di antara kedua jenis finite automata
tersebut terletak pada kontrol terhadap finite automata tersebut (Hopcroft et al., 2007).
Deterministik finite automata (DFA) bersifat deterministik, yang berarti bahwa automata
tersebut tidak dapat berada di lebih dari satu state pada saat yang bersamaan, sedangkan
automata tersebut dapat berada di beberapa state pada saat yang bersamaan atau dengan
kata lain NFA dapat menebak di state mana dia berikutnya akan berada (Hopcroft et al.,
2007).
Ada banyak bahasa yang apabila digunakan akan membuat NFA lebih mudah
dibangun dibandingkan jika dibangun menggunakan DFA. Suatu bahasa yang dibangun
menggunakan NFA ternyata tidak lebih powerful dibandingkan dengan ketika dibangun
menggunakan DFA. Setiap bahasa yang dapat dideskripsikan oleh suatu NFA ternyata
dapat pula dideskripsikan oleh satu DFA. Bukti bahwa DFA dapat melakukan apa saja
yang dapat dilakukan NFA melibatkan suatu konstruksi yang disebut dengan subset
menjadi DFA (Hopcroft et al., 2007). Jumlah state yang dimiliki oleh DFA maupun
oleh NFA kurang lebih sama pada kebanyakan kasus tetapi berbeda dalam jumlah
transisi yang dimiliki oleh keduanya. Pada sebagian kecil kasus, untuk membuat suatu
DFA yang mengungkapkan bahasa yang sama dengan suatu NFA dengan jumlah state n,
Hopcroft et al. (2007) menyatakan bahwa salah satu bentuk perluasan dari finite
automata adalah finite automata dengan transisi epsilon ( ). NFA yang memiliki ( -
NFA) memungkinkan NFA tersebut untuk menerima transisi atau string kosong. Lebih
lanjut efeknya pada NFA adalah memungkinkan terjadinya transisi spontan tanpa
menerima simbol masukan. Seperti halnya sifat non-deterministik pada finite automata,
penambahan transisi ini tidak memperluas kelas bahasa yang dapat diterima oleh
3
suatu finite automata. Perluasan ini hanya akan memberikan kemudahan dalam
DFA hasil transformasi dari suatu NFA bukanlah suatu DFA yang minimal. Untuk
suatu DFA, dapat menemukan DFA yang ekuivalen yang memiliki jumlah state yang
lebih sedikit atau sama dengan semua DFA yang menerima bahasa yang sama (Hopcroft
et al., 2007).
Selain itu juga, untuk membantu mahasiswa dan dosen dalam hal pengujian DFA dan
NFA maka dibuatlah sebuah compiler yang dapat menunjukkan perubahan suatu finite
Berikut ini adalah perumusan masalah yang dihadapi untuk diselesaikan adalah :
keinginan pengguna?
2. Apakah sistem aplikasi dapat menguji dan melakukan simulasi penerimaan atau
3. Apakah sistem aplikasi dapat melakukan transformasi dari NFA ke DFA setelah
1.3.1 Tujuan
2. Untuk membuat perangkat lunak yang dapat menerima suatu input dan
representasi automata.
5. Supaya mahasiswa dapat lebih mengerti isi dari Teori Bahasa dan Automata,
1.3.2 Manfaat
pembelajaran mata kuliah teori bahasa dan otomata, dan dapat meningkatkan
5
mengembangkan diri dalam hal isi dari Teori Bahasa dan Automata,
automata (NFA).
mahasiswa.
Program aplikasi yang akan dibuat adalah sebuah program aplikasi yang dapat
transisi, matriks transisi, fungsi transisi, dan language (ekspresi regular) deterministik
yang diuji cobakan pada IDE eclipse. Program ini akan dijalankan dengan menggunakan
Dalam menentukan topik skripsi ini, diambil referensi dari perancangan program
sebelumnya yang telah dilakukan oleh Ignatius Giri Wardhana dengan judul “Finite State
Automata Simulator (FAST) : Tool Untuk Simulasi dan Transformasi Finite State
6
Automata” di Universitas Gajah Mada. Perbedaan skripsi ini dengan perancangan program
dan melakukan transformasi NFA menjadi DFA dan minimisasi DFA yang
dilakukan pada inputan pengguna berdasarkan file yang sudah ditentukan yang
ditentukan.
menguji DFA dan NFA dengan membuat diagram transisinya serta dapat
menentukan string yang diinput dari pemgguna dapat diterima atau ditolak.
b. Tampilan Program
Pada skripsi ini akan dibuat desain tampilan antarmuka (interface) pengguna
untuk lebih memudahkan navigasi pengguna dalam beralih antar modul dalam
program.
a. Studi Pustaka
Penulis mencari sumber buku, artikel, dan literatur internet yang berhubungan
materi tersebut sebagai penunjang dalam kaitannya dengan materi yang di pilih
b. Metode Perancangan.
yaitu dimulai dari tahap analisis, desain, kode, pengujian, dan pemeliharaan.
BAB 1. PENDAHULUAN
Pada bab ini akan dijelaskan mengenai latar belakang, ruang lingkup, tujuan dan
Pada bab ini akan dijelaskan mengenai teori dasar dan metode yang dilakukan
untuk mendukung analisis dan perancangan yang dilakukan pada penulisan skripsi
ini.
Pada bab ini dilakukan analisis sistem yang meliputi gambaran umum
Pada bab ini akan dijelaskan mengenai spesifikasi perangkat keras yang
Pada bab ini berisi tentang kesimpulan dan keseluruhan analisis dan
perancangan sistem yang telah dilakukan, selain itu bab ini juga berisi tentang saran