PEMODELAN PERANGKAT LUNAK UNTUK PENGERTIAN DETERMINISTIC FINITE AUTOMATA DAN NON-DETERMINISTIC FINITE AUTOMATA

dokumen-dokumen yang mirip
BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan

BAB 4 IMPLEMENTASI DAN EVALUASI PROGRAM. dengan perangkat yang digunakan. Beberapa kriteria standar ditentukan agar sistem

Teori Bahasa Formal dan Automata

DAFTAR PUSTAKA. (Diakses pada

Teori Bahasa Formal dan Automata

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara

FINITE STATE MACHINE / AUTOMATA

FINITE STATE AUTOMATA

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

Aplikasi Simulator Mesin Turing Pita Tunggal

TEORI BAHASA DAN OTOMATA PENGANTAR

NonDeterministic Finite Automata. B.Very Christioko, S.Kom

Lecture Notes Teori Bahasa dan Automata

TEORI BAHASA DAN AUTOMATA

BAB I PENDAHULUAN 1-1

Teori Bahasa Formal dan Automata

MODUL 4: Nondeterministic Finite Automata

Deterministic Finite Automata

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

UNIVERSITAS GADJAH MADA FMIPA/DIKE/ILMU KOMPUTER Gedung SIC Lantai 1, Sekip, Bulaksumur, 55281, Yogyakarta

FTIK / PRODI TEKNIK INFORMATIKA

PERTEMUAN II. Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA)

TEKNIK KOMPILASI Bahasa Regular

Non-Deterministic Finite Automata

TEORI BAHASA DAN AUTOMATA

SENTENCE ANALYSIS WITH ARTIFICIAL INTELLIGENCE MACHINE LEARNING USING FINITE STATE AUTOMATA

Teori Bahasa dan Otomata

Lecture Notes Teori Bahasa dan Automata

Pendahuluan [6] FINITE STATE AUTOMATA. Hubungan RE & FSA [5] Finite State Diagram [6] 4/27/2011 IF-UTAMA 1

BAHASA BEBAS KONTEKS UNTUK KOMPLEMEN DARI STRING BERULANG CONTEXT FREE LANGUAGE FOR COMPLEMENT OF REPEATED STRING

Teori Bahasa & Otomata

Overview. Pendahuluan. Pendahuluan. Pendahuluan. Pendahuluan. Pendahuluan

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal

TEORI BAHASA DAN AUTOMATA

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga

Penerapan Finite State Automata Pada Proses Peminjaman Buku di Perpustakaan Universitas Kristen Satya Wacana Artikel Ilmiah

Tanggal Revisi : Tanggal : SATUAN ACARA PERKULIAHAN

1. Pendahuluan. 2. Tinjauan Pustaka

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

TEORI BAHASA DAN AUTOMATA

Teori Bahasa dan Automata. Finite State Automata & Non Finite State Automata

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

Operasi FA dan Regular Expression

Mesin Turing. Pertemuan Ke-14. Sri Handayaningsih, S.T., M.T. Teknik Informatika

1, 2, 3

Reduksi DFA [Deterministic Finite Automata]

PENDEKATAN TEORI AUTOMATA UNTUK MENYELESAIKAN APLIKASI-APLIKASI DI BIDANG ILMU KECERDASAN BUATAN

MODUL 3: Finite Automata

TEORI BAHASA DAN AUTOMATA

Teori Bahasa dan Otomata 1

ABSTRAK. Universitas Kristen Maranatha

FIRDAUS SOLIHIN FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO

INTELLIGENT DECISION SUPPORT SYSTEM DALAM MENDETEKSI BEHAVIOUR SIRKUIT LOGIKA

Pengantar Matematika. Diskrit. Bahan Kuliah IF2091 Struktur Diksrit RINALDI MUNIR INSTITUT TEKNOLOGI BANDUNG

Implementasi Pencocokan String Tidak Eksak dengan Algoritma Program Dinamis

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

Pengantar Matematika Diskrit

SATUAN ACARA PERKULIAHAN (SAP) TEORI BAHASA DAN OTOMATA

BAB II MODEL KOMPUTASI FINITE STATE MACHINE. Pada Bab II akan dibahas teori dasar matematika yang digunakan

MODUL 5: Nondeterministic Finite Automata dengan

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

Tujuan perancangan bhs program

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Von Neumann

Pengenalan Konsep Bahasa dan

Grammar dan Tingkat Bahasa

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs

Ekspresi Reguler. Pertemuan Ke-8. Sri Handayaningsih, S.T., M.T. Teknik Informatika

Contents.

Teori Bahasa Formal dan Automata

RENCANA PEMBELAJARAN SEMESTER (RPS)

RENCANA PEMBELAJARAN SEMESTER

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

TEORI BAHASA DAN OTOMATA [TBO]

DFA. Teori Bahasa dan Automata. Viska Mutiawani - Informatika FMIPA Unsyiah

LEMBAR PENGESAHAN PROSEDUR PELAKSANAAN KULIAH

RENCANA PEMBELAJARAN SEMESTER

Teori Bahasa & Otomata

Non-deterministic Finite Automata Dengan -Move

Aplikasi Pengubah Bentuk Normal Chomsky Menjadi Bentuk Normal Greibach dengan Metode Substitusi

Perancangan dan Implementasi Finite Automata pada Simulasi Vending Machine

KOMPUTASI PEMROGRAMAN

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

PENGEMBANGAN PROGRAM APLIKASI PENGUJIAN STRUKTUR ALJABAR (INTEGRAL DOMAIN, FINITE FIELD, SUBFIELD)

Turing and State Machines. Mesin Turing. Turing Machine. Turing Machines 4/14/2011 IF_UTAMA 1

Rasa ingin tahu adalah ibu dari semua ilmu pengetahuan. Tak kenal maka tak sayang, tak sayang maka tak cinta

BAB 1 PENDAHULUAN. Algoritma Banker dikemukakan oleh Edsger W.Djikstra dan merupakan salah satu

TUGAS MAKALAH TEORI BAHASA & AUTOMATA

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product

BAB III METODOLOGI PENELITIAN

Penerapan Konsep Finite State Automata (FSA) pada Mesin Pembuat Minuman Kopi Otomatis

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

Analisis dan Strategi Algoritma

Pengaruh Paralelisme Terhadap Mesin Turing Sebagai Konsep Komputasi

TEORI BAHASA DAN OTOMATA [TBO]

PENERAPAN KONSEP FINITE STATE AUTOMATA (FSA) PADA MESIN PEMBUAT MINUMAN KOPI OTOMATIS

TEORI BAHASA DAN AUTOMATA

JURNAL INFORMATIKA SIMULASI PERGERAKAN LANGKAH KUDA MENGGUNAKAN METODE BREADTH FIRST SEARCH

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

IF-UTAMA 1. Definisi. Grammar. Definisi

Transkripsi:

PEMODELAN PERANGKAT LUNAK UNTUK PENGERTIAN DETERMINISTIC FINITE AUTOMATA DAN NON-DETERMINISTIC FINITE AUTOMATA Santa Meilisa; Ngarap Im Manik; Djunaidy Santoso Universitas Bina Nusantara, Jl. Mawar Bukit Nusa Indah No. 106, Ciputat 15414, 021-7406519, meilisas33@yahoo.com ABSTRACT In the hierarchy of Chomsky language classes, language classes are the simplest class of regular languages. Regular languages can be precisely described using finite automata (FA). There are two types of finite automata, the deterministic finite automata (DFA) and the non-deterministic finite automata (NFA).In this study will be described about application program testing of deterministic finite automata transition diagram (DFA) and non-deterministic finite automata (NFA). This application is able to describe the transition diagram of DFA and NFA and can determine the string that input from the user is accepted or rejected with the main purpose is simplify the learning of language automata theory. Development of the system is started from the making of automata structure to the implementation of the algorithm in the manufacture and handling of automata transformations. The testing is done by looking at the system in dealing with the formation and transformation of finite automata. Obtained from testing the system is able to perform formation between automata and finite automata transformation. The results of performance testing found that the system is able to handle the formation and transformation of finite automata. The design of the application program will be conducted using the Java programming language is tested on eclipse IDE. Keywords : Finite State Automata, DFA, NFA, Java, eclipse. ABSTRAK Dalam hierarki kelas-kelas bahasa Chomsky, kelas bahasa yang paling sederhana adalah kelas bahasa reguler. Bahasa reguler dapat dengan tepat dideskripsikan dengan menggunakan finite automata (FA). Terdapat dua jenis finite automata, yaitu deterministik finite automata (DFA) dan non-deterministik finite automata (NFA). Dalam penelitian ini akan dideskripsikan program aplikasi pengujian diagram transisi deterministik finite automata (DFA) dan non-deterministik finite automata (NFA). Aplikasi ini mampu menggambarkan transisi diagram DFA dan NFA serta dapat menentukan string yang diinput dari pengguna dapat diterima atau ditolak, dengan tujuan utama memudahkan dalam membantu pembelajaran teori bahasa automata. Pengembangan sistem dilakukan mulai dari pembuatan struktur automata hingga implementasi algoritma dalam pembuatan dan penanganan transformasi automata. Pengujian dilakukan dengan melihat sistem dalam menangani pembentukan dan transformasi finite automata. Dari pengujian didapatkan bahwa sistem mampu melakukan pembentukan automata dan melakukan transformasi diantara finite automata. Hasil dari pengujian performa didapatkan bahwa sistem mampu menangani pembentukan dan transformasi finite automata. Perancangan program aplikasi akan dilakukan dengan menggunakan bahasa pemrograman Java yang diuji cobakan pada IDE eclipse. Kata kunci : Finite State Automata, DFA, NFA, Java, eclipse.

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 masukkan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler) dan dapat diimplementasikan secara nyata dimana 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, pemindaian dokumen teks dalam halaman web guna menemukan kesamaan kata, frase dan bentuk lain (Hopcroft et al., 2007). 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 non-deterministik finite automata (NFA) bersifat non-deterministik, yang berarti bahwa 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). Selain itu juga, untuk membantu mahasiswa dan dosen dalam hal pengujian DFA dan NFA maka dibuatlah sebuah compiler yang dapat menunjukkan perubahan suatu finite automata dari suatu bentuk representasi ke bentuk representasi yang lain. 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 Automata di Universitas Gajah Mada yang memiliki rumusan masalah yaitu mengembangkan suatu aplikasi yang dapat digunakan untuk merancang automata yang dapat menerima dan mengeluarkan output berupa file, menguji dan melakukan simulasi penerimaan atau penolakan string pada automata, melakukan transformasi di antara representasi finite automata, dan meminimalisasi automata secara menyatu dalam suatu aplikasi. Dalam penelitian ini, metode yang digunakan sama seperti penulis buat dan hasil penelitian yang dilakukan didapat bahwa sistem FAST dapat menerima masukan berupa file DFA, NFA dan -NFA, sistem ini juga telah berhasil melakukan proses pencocokan string pada ketiga finite automata tersebut serta melakukan transformasi dari NFA menjadi DFA yang ekuivalen dengan NFA awal dan melakukan minimisasi DFA pada DFA yang diketahui belum minimum menjadi DFA dengan state minimum yang ekuivalen dengan DFA awal dan sistem dapat menangani pembentukan file DFA, NFA random dan menangani subset construction dan minimisasi DFA hingga sejumlah seribu state. Penelitian berikutnya yang bertopik sama yaitu penelitian yang dilakukan oleh Milan Kynzl yang berjudul Simulation of Nondeterministic Finite Automata using Fail Function di Czech Technical University, Prague. Penelitian ini memiliki masalah yaitu saat meneliti masalah mengenai pattern matching dapat dipecahkan dengan menggunakan teori finite automata. Akan tetapi, jika kita membuat NFA untuk memecahkan masalah, kita tidak bisa menggunakannya secara langsung karena NFA bersifat nondeterminism, yaitu ketika membaca input string, di beberapa state NFA ada lebih dari satu kemungkinan pada langkah selanjutnya. Dalam kasus tersebut, NFA memprediksi langkah yang benar dan menggunakannya. Tapi dalam prakteknya tidak mungkin untuk memilih cara yang benar hanya untuk mengetahui state yang sebenarnya dan simbol input. Metode yang dingunakan untuk memecahkan masalah yaitu dengan membandingkan dua metode yaitu metode depth first search dan metode basic simulation. Hasil yang tercapai yaitu metode depth first search lebih unggul dalam hal kompleksitas waktu dibandingkan dengan metode basic simulation, metode depth first search tidak sensitif pada panjang pola untuk teks input yang dipilih sedangkan metode basic simulation menciptakan visible steps sebagai jumlah vektor bit yang diperlukan untuk mewakili state yang aktif. Perbedaan dari kedua penelitian di atas yaitu bahwa dalam penelitian sebelumnya program aplikasi hanya mencakup mampu dalam melakukan pembentukan finite automata secara terbatas, seperti pada penelitian yang dilakukan oleh Ignatius Giri Wardhana yang hanya mencakup pembentukan finite automata random sesuai dengan keinginan pengguna dan melakukan transformasi NFA menjadi DFA dan minimisasi DFA

yang dilakukan pada inputan pengguna berdasarkan file yang sudah ditentukan yang kemudian mengeluarkan hasil/output yang juga berdasarkan file yang sudah ditentukan, tapi pada skripsi ini program dibuat dengan user interface sehingga pengguna mampu berinteraksi dengan sistem lebih mudah. Sedangkan untuk penelitian yang dilakukan oleh Milan Kynzl menjelaskan bagaimana NFA dapat menentukan pola yang cocok yang diujikan dengan membandingkan dua metode yang berbeda. Adapun rumusan masalah yang harus dihadapi untuk diselesaikan yaitu apakah sistem mampu melakukan simulasi pada setiap pengujiannya dan diharapkan dapat sesuai dengan tujuan dan manfaat yang telah dibuat. Tujuan dari penelitian ini yaitu merancang model finite state automata, membuat perangkat lunak yang dapat menerima suatu input dan mengeluarkan output automata, membuat perangkat lunak yang dapat melakukan pemeriksaan apakah sebuah string masukan diterima oleh suatu representasi atau tidak, membuat perangkat lunak yang dapat melakukan transformasi representasi automata, dan supaya mahasiswa dapat lebih mengerti isi dari Teori Bahasa dan Automata, khususnya deterministik finite automata (DFA) dan nondeterministik finite automata (NFA) dan dapat mengembangkannya sehingga nilai mahasiswa menjadi lebih baik. Sedangkan manfaat dari penelitian ini dibagi menjadi tiga bagian yaitu : bagi peneliti : Dapat menghasilkan perangkat lunak yang dapat membantu pembelajaran mata kuliah teori bahasa dan otomata, dan dapat meningkatkan perkembangan studi finite state automata di Indonesia, dapat mengembangkan diri dalam hal isi dari Teori Bahasa dan Automata, khususnya deterministik finite automata (DFA) dan non-deterministik finite automata (NFA), bagi mahasiswa : Lebih mengerti dalam mengerjakan tugas-tugas, UTS, maupun UAS khususnya mengenai deterministik finite automata (DFA) dan non- deterministik finite automata (NFA), dan bagi dosen : Dapat mengembangkan soal-soal ujian dan tugas-tugas untuk mahasiswa. Finite Automata Definisi 1 Sebuah finite automata terdiri dari lima komponen (Q, Σ, δ, q 0, F ), dimana : 1. Q adalah himpunan set berhingga yang disebut dengan himpunan states. 2. Σ adalah himpunan berhingga alfabet dari simbol masukan. 3. δ : Q Σ adalah fungsi transisi, merupakan fungsi yang mengambil states dan alfabet input sebagai argumen dan menghasilkan sebuah state. Fungsi transisi sering dilambangkan dengan δ. 4. q 0 ϵ Q adalah states awal. 5. F Q adalah himpunan states akhir. Definisi 2 Hopcroft et al. (2007) Suatu finite automata M = (Q,Σ,δ,q 0,F) akan menerima sebuah string w jika kumpulan states r 0 r 1 r n dalam Q memenuhi tiga kondisi : 1. r 0 = q 0. 2. δ(r i, w i+1 ) = r i+1 untuk i = 0,, n 1. 3. r n ϵ F. dengan w = w 1 w 2...w n adalah string di mana masing-masing w i adalah anggota alphabet Σ. Pada definisi 2 kondisi yang pertama dinyatakan bahwa suatu finite automata dimulai dari start state. Pada kondisi yang kedua dinyatakan bahwa finite automata akan berpindah dari satu state ke state yang lain berdasarkan fungsi transisi, dan kondisi yang ketiga menyatakan bahwa finite automata akan menerima string masukan apabila masukan tersebut berakhir pada final state. Dapat dinyatakan bahwa M mengenali bahasa A jika A = {w M menerima w}. Menyatakan suatu finite automata dengan menggunakan notasi 5-tuple akan sangat merepotkan. Cara yang lebih dianjurkan dalam menuliskan finite automata, yaitu dengan menggunakan : 1. Diagram transisi (transition diagram), yaitu berupa suatu graf. 2. Tabel transisi (transition table), yaitu daftar berbentuk tabel untuk fungsi δ, yang merupakan hubungan antara himpunan states dengan alfabet input. Penyajian FA Menggunakan Diagram Transisi Definisi 3 Diagram transisi untuk finite automata M = (Q, Σ, δ, q 0, F ) adalah suatu graf yang didefinisikan sebagai berikut :

1. Terdapat simpul untuk setiap state Q. 2. Untuk setiap state q ϵ Q dan setiap simbol input a Σ, berlaku δ(q, a) = p. Diagram transisi memiliki busur berlabel a dari state q ke state p. 3. Terdapat anak panah berlabel start yang mengarah ke state awal q 0 dan anak panah ini tidak berasal dari state manapun. 4. State yang merupakan state akhir (F) akan ditandai dengan lingkaran ganda, sedang state yang lain menggunakan lingkaran tunggal. Contoh 1 Gambar 1 memperlihatkan diagram transisi dari sebuah finite automata. Gambar 1 Diagram Transisi dari Suatu Finite Sutomata Penyajian FA Menggunakan Tabel Transisi Tabel transisi merupakan representasi tabular dari fungsi δ yang mengambil dua argumen dan menghasilkan suatu nilai. Baris pada tabel berkorespondensi dengan state dan kolom pada tabel berkorespondensi dengan input. Contoh 2 Pada tabel 1 memperlihatkan tabel transisi dari finite automata yang diperlihatkan pada Gambar 1 Tabel 1 Tabel Transisi FA pada Contoh 1 δ 0 1 q 1 q 1 q 2 q 2 q 3 q 2 q 3 q 1 q 2 Tabel transisi pada contoh 2 memiliki arti : 1. Simbol pada kolom sebelah kiri adalah state. 2. Simbol pada baris paling atas adalah simbol masukan. 3. Simbol yang berada " dalam" tabel merupakan fungsi transisi. 4. Simbol panah ( ) pada kolom sebelah kiri menunjukkan start simbol. 5. Simbol (*) pada kolom sebelah kiri menunjukkan state final. Deterministik Finite Automata (DFA) Contoh 3 Diketahui suatu DFA M = (Q, Σ, δ, q 0, F ) dimana Q = {q 0, q 1, q 2 }, Σ = {0,1}, F = {q 1 } dan δ adalah fungsi yang didefinisikan sesuai dengan Tabel transisi 2 :

Tabel 2 Tabel Transisi DFA yang Menerima Akhiran 01 δ 0 1 q 0 q 2 q 0 q 1 q 1 q 1 q 2 q 2 q 1 Dari Tabel transisi 2 dapat dibuat suatu diagram transisi sesuai dengan Gambar 2 : Gambar 2 Diagram Transisi DFA yang Menerima Akhiran 01 Contoh 4 Diberikan suatu DFA M seperti pada contoh M menerima string 000 dan 010. Solusi: jalur komputasi dari string 000 adalah : sehingga δ(q 0, 000) ϵ F dan M menerima string 000. Dengan cara yang sama dapat diketahui bahwa δ(q 0, 010) = q 3 ϵ F dan M menolak 010. Non-deterministik Finite Automata (NFA) Definisi 4 Suatu non-deterministik finite automata (NFA) tersusun atas quintuple M = (K, Σ, δ, s, F ) dimana : 1. K adalah himpunan state, 2. Σ adalah alfabet, 3. s ϵ K adalah state awal, dan 4. δ adalah relasi transisi, di mana K (Σ ϵ {e}) K Contoh 5 Diberikan suatu NFA M = ({q 0, q 1, q 2, q 3 }, {0, 1}, δ, q 0, {q 3 }) dengan tabel transisi δ 0 1 q 0 q 1 q 1 q 1 {q 1, q 2 } q 2 q 3 q 3 q 3 q 3 Jika x = 0111, maka dapat dilihat apakah x diterima oleh NFA M atau tidak dengan melakukan proses: δ 1 ({q 0 }, 0) = δ(q 0, 0) = {q 1 } δ 1 ({q 0 }, 01) = δ 1 (δ 1 ({q 0 }, 0), 1) = δ 1 ({q 1 }, 1) = δ(q 1, 1) = {q 1, q 2 } δ 1 ({q 0 }, 011) = δ 1 (δ 1 ({q 0 }, 01), 1) = δ 1 ({q 1, q 2 }, 1) = δ(q 1, 1) δ(q 2, 1) = {q 1, q 2 } {q 3 } = {q 1, q 2, q 3 }

δ 1 ({q 0 }, 0111) = δ 1 (δ 1 ({q 0 }, 011), 1) = δ 1 ({q 1, q 2, q 3 }, 1) = δ(q 1, 1) δ(q 2, 1) δ(q 3,1) = {q 1,q 2 } {q 3 } {q 3 } = {q 1,q 2,q 3 } δ 1 ({q 0 }, 0111) = {q 1, q 2, q 3 } dan memuat q 3 yang merupakan anggota himpunan dari final state. Oleh karena terdapat satu buah jalur komputasi dari initial state yang berakhir pada salah satu anggota himpunan final state F, maka dapat dikatakan bahwa x = 0111 diterima oleh NFA. Dengan demikian, dapat dikatakan bahwa jika M adalah suatu NFA maka bahasa yang diterima oleh NFA dapat didefinisikan sebagai L(M ) = {x δ 1 ({q 0 } x) = P} dimana P memuat minimal satu buah anggota F (Kakde, 2002). Transformasi NFA - DFA (Subset Construction) Walaupun lebih mudah untuk dibangun, suatu NFA hanyalah mesin ideal yang tidak dapat dengan efisien diimplementasikan dalam kehidupan nyata karena mesin yang sesungguhnya hanya dapat mengikuti satu jalur komputasi pada saat yang bersamaan (Du dan Ko, 2001). Untuk itu diperlukan suatu prosedur yang dapat melakukan transformasi dari suatu NFA menjadi DFA yang ekuivalen dengan bahasa yang diterima NFA tersebut. Transformasi suatu NFA menjadi DFA dilakukan dengan melakukan simulasi semua jalur transisi yang mungkin pada NFA. Suatu NFA memiliki n buah state maka DFA yang ekuivalen dengan NFA tersebut akan memiliki 2 n state dengan state awal pada DFA tersebut merupakan subset {q 0 } dengan demikian, transformasi dari NFA menjadi DFA meliputi pencarian semua subset yang mungkin dari himpunan state dari NFA. (Kakde, 2002). Ide dasar dari subset construction adalah bahwa masing-masing state pada DFA yang terbentuk berkorespondensi dengan himpunan state pada NFA. Terdapat kemungkinan bahwa jumlah state pada DFA yang terbentuk dari hasil subset construction adalah berjumlah eksponensial dari jumlah state dari NFA. Contoh 6 Diketahui suatu NFA M = (Q,{0,1},δ,q 0,F) dan diberikan Q = {q 0, q 1, q 2, q 3, q 4, q 5 }, F = {q 3, q 4 } dan tabel transisi δ 0 1 ǫ q 0 {q 0 } {q 0, q 2 } {q 1 } q 1 {q 5 } {q 2 } q 2 {q 3 } q3 {q4} q 4 {q 3 } q5 {q 4 } Lihat Gambar 3 untuk mengetahui digram transisi NFA. akan dibentuk DFA M yang ekuivalen dengan NFA M. Gambar 3 NFA Masukan Subset Construction

solusi: dapat dibentuk DFA M dengan cara : 1. Buat Q ϵ = ϵ closure({q 0 }) sebagai initial state dan F = menjadi himpunan final state. Buat Q = {Q ϵ }. Jika Q ϵ F = kemudian tambahkan Q ϵ dalam F. 2. Ulangi langkah tersebut sampai ϵ (Q x, a) didefinisikan untuk semua Q x ϵ Q dan semua a ϵ {0, 1} : a) Pilih Q x ϵ Q dan a ϵ {0, 1} sedemikian hingga δ (Q x, a) belum didefinisikan. b) Buat Q xa = δ(q x, a) c) Jika Q xa ϵ Q tambahkan Q xa ke Q dan tambahkan juga pada F jika Q xa F = Semua proses tersebut dapat dilihat pada tabel transisi δ 0 1 Q = {q 0, q 1 } {q 0, q 1, q 5 } {q 0, q 1, q 2 } Q 0 = {q 0, q 1, q 5 } {q 0, q 1, q 5 } = Q 0 {q 0, q 1, q 2, q 4 } Q 1 = {q 0, q 1, q 2 } {q 0, q 1, q 3, q 4, q 5 } {q 0, q 1, q 2 } = Q 1 Q 01 = {q 0, q 1, q 2, q 4 } {q 0, q 1, q 3, q 4, q 5 } {q 0, q 1, q 2 } = Q 1 Q 10 = {q 0, q 1, q 3, q 4, q 5 } {q 0, q 1, q 3, q 4, q 5 } = Q 10 {q 0, q 1, q2, q 4 } = Q 01 Perlu dicatat bahwa pada langkah 2 tidak perlu mempertimbangkan states Q 00, Q 000, Q 001 dan yang lainnya karena Q 00 = Q 0, Q 000 = Q 00 = Q 0 dan Q 001 = Q 01, dengan cara yang hampir sama dapat diperoleh Q 11 = Q 1 tidak perlu memperhitungkan Q 11W untuk sebarang W ϵ {0, 1} *. Transisi diagram dari DFA M ditunjukkan pada Gambar 4. Gambar 4 DFA Hasil Subset Construction yang Ekuivalen METODE PENELITIAN Dalam penelitian ini metode yang digunakan meliputi : Studi Pustaka Penulis mencari sumber buku, artikel, dan literatur internet yang berhubungan dengan topik penelitian skripsi. Penulis kemudian mempelajari dan memahami materi tersebut sebagai penunjang dalam kaitannya dengan materi yang di pilih serta penelitian yang pernah dilakukan sebelumnya. Metode Perancangan Dalam proses perancangan program aplikasi ini, digunakan metode Waterfall yaitu dimulai dari tahap analisis, desain, kode, pengujian, dan pemeliharaan.

HASIL DAN BAHASAN Program utama dari aplikasi pengujian ini terdiri dari 1 buah form dengan 5 modul, yaitu modul Menggambarkan Diagram Transisi DFA, modul Pengujian Inputan String DFA, modul Menggambarkan Diagram Transisi NFA, modul Pengujian Inputan String NFA, dan modul Transformasi NFA ke DFA. TAMPILAN HASIL Gambar 1 Rancangan Tampilan Untuk menggambarkan Diagram Transisi DFA Modul ini akan muncul ketika program pertama kali dijalankan. Pada modul ini pengguna harus memilih automaton apakah pengguna ingin menggambarkan diagram transisi DFA atau NFA. Setelah memilih automaton, yang dalam hal ini pengguna memilih automaton DFA dan pengguna langsung dapat menggambar diagram transisinya. Untuk Toolbar merupakan toolbar yang pertama kali digunakan oleh pengguna berfungsi untuk men-select selama pengguna menggambar diagram transisi DFA atau memilih menu instruksi yang dibutuhkan pengguna dalam menggambar diagram transisi atau melakukan pengujian string ataupun melakukan transformasi dari NFA ke DFA, sedangkan untuk toolbar digunakan untuk membuat state, toolbar ini pada saat pertama kali dibuat, sistem akan menanyakan apakah nama dari state yang ingin dibuat tersebut dan sekaligus dapat menentukan mana yang start state atau final state dengan mngklik kanan pada mouse serta dapat menghapus state tersebut apabila sudah tidak digunakan lagi, dan untuk toolbar digunakan untuk memberikan link antar state dan memberi nilai pada link tersebut. Link tersebut nantinya akan berguna sebagai pengujian string apakah string tersebut diterima atau tidak. String yang dimasukkan harus sesuai dengan nilai yang dibuat pada penggmabaran diagram transisi DFA atau NFA. Cara mengubahnya hanya dengan mengganti textedit pada Alphabet dengan nilai yang pengguna buat.

Gambar 2 Rancangan Tampilan Untuk Pengujian Inputan String Pada DFA Pada gambar 2 di atas, setelah pengguna menggambar diagram transisi DFA, pengguna dapat melakukan pengujian inputan string dengan memasukkan inputan ke textbox string. Kemudian tekan tombol Run. Saat tombol Run ditekan, sistem akan memeriksa apakah string yang dimasukkan tersebut menuju ke final state. Jika menuju ke final state, maka string tersebut ACCEPTED, jika tidak menuju ke final state maka REJECTED. Di sini juga pengguna dapat melihat hasil running secara langkah per langkah, yaitu dengan memilih menu Run -> Debug -> Debug One Step. Atau pengguna juga dapat melihat hasil running sekaligus melihat hasilnya, yaitu dengan memilih menu Run -> Debug -> Debug Proceed. Langkah-langkah yang dimaksud pada saat pengguna menjalankan instruksi Debug One Step atau Debug Proceed, sistem akan memberi garis merah pada link atau penghubung antar state bila string tidak menuju ke final state, sedangkan sistem akan memberi garis hijau bila string menuju ke final state. Saat sistem selesai melakukan instruksi tersebut, sistem akan mengeluarkan peringatan apakah string yang telah dimasukkan oleh pengguna tersebut dapat diterima atau ditolak.

Gambar 3 Rancangan Tampilan Untuk menggambarkan Diagram Transisi NFA Pada gambar 3 di atas menunjukkan apabila pengguna memilih automaton NFA dan kemudian pengguna menggambarkan diagram transisi NFA sesuai dengan keinginan pengguna serta memiliki fungsi yang sama seperti yang telah dijelaskan pada gambar 1 di atas Gambar 4 Rancangan Tampilan Untuk Pengujian Inputan String Pada NFA Pada gambar 4 di atas, setelah pengguna menggambar diagram transisi NFA, kemudian pengguna dapat melakukan pengujian inputan string pada diagram transisi NFA yang dimasukkan sesuai dengan keinginan pengguna serta memiliki fungsi yang sama seperti yang telah dijelaskan pada gambar 2.

Gambar 5 Rancangan Tampilan Hasil Transformasi NFA ke DFA PEMBAHASAN Untuk mengevaluasi kinerja sistem apakah dapat melakukan pengujian dengan tepat atau tidak, akan dilakukan pencobaan dengan sampel automata yang sudah ada. Untuk tujuan pencobaan ini finite automata dibagi menjadi dua jenis, yaitu : o Deterministik finite automata (DFA). Bersifat deterministik, yaitu setiap input alphabet/simbol dari suatu state hanya akan bertransisi ke satu state lain. o Non-deterministik finite automata (NFA). Bersifat non-deterministik, yaitu setiap input alphabet/simbol dari suatu state mungkin akan bertransisi ke lebih dari satu state lain. Tampilan keluaran dari hasil pengujian Deterministik finite automata yaitu didapat bahwa input string kata ababbabb adalah ACCEPTED yang dikarenakan string yang diinput menuju ke final state. Sedangkan tampilan keluaran dari hasil pengujian non-deterministik finite automata yaitu didapat bahwa kata 100111 REJECTED, yang dikarenakan string yang diinput tidak menuju ke final state. Selain itu juga tampilan keluaran untuk hasil transformasi NFA ke DFA yaitu : Tabel 1 Matriks Transisi DFA Hasil Transformasi NFA State 0 1 A {AB} {A} AB {ABC} {A} BC {ABC} {A} Berdasarkan pada tabel 1, maka dapat dibuat diagram transisi DFA seperti gambar berikut :

Gambar 6 Diagram Transisi DFA Hasil Transformasi NFA SIMPULAN DAN SARAN Dari analisis dan pengujian terhadap beberapa sampel teori bahasa dan automata, dapat disimpulkan bahwa program pengujian dapat memberikan hasil yang sesuai dengan bila dikerjakan secara manual. Waktu kerja yang dibutuhkan program dalam memberikan hasil pengujian sangat singkat, sehingga jauh lebih efisien bila dibandingkan dengan pengujian secara manual. Program telah diuji dengan beberapa sampel automata yang memiliki jumlah state yang bervariasi, dan tidak ditemukan peningkatan waktu yang kasat dalam waktu proses program. Ukuran file program kecil dan algoritma program dirancang dengan algoritma-algoritma dasar yang tidak kompleks, sehingga tidak membutuhkan spesifikasi komputer yang tinggi untuk menjalankan program. Program dinilai dapat memenuhi tujuannya untuk memudahkan pengguna dalam memahami teori bahasa dan automata, khususnya mengenai deterministik finite automata (DFA) dan non-deterministik finite automata (NFA). REFERENSI Ding-Zhu, Du., dan Ko, K-I. (2001). Problem Solving in Automata, Languages, and Complexity. John Wiley and Son, Inc. ISBN 0-471-22464-2. Hopcroft, J E., Motwani, R., dan Ullman, J D. (2007). Introduction to Automata Theory, Languages and Computation. Pearson Addison-Wesley, Upper Saddle River, NJ, 3. edition, 2007. ISBN 978-0-321-51448-6. Kakde, O.G. (2002). Algorithms for Compiler Design. Charles River Media, Inc. ISBN 1-58450-100-6. Milan Kynzl. (2006). Simulation of Nondeterministic Finite Automata using Fail Function. Disertasi tidak diterbitkan. Prague: Faculty of Electrical Engineering, Czech Technical University. RIWAYAT PENULIS Santa Meilisa lahir di kota Padang pada 29 Mei 1989. Penulis menamatkan pendidikan S1 di Universitas Bina Nusantara dalam bidang Teknik Informatika dan Matematika pada 2012. Penulis aktif di humas sebagai tim kreatif.