BAB 2 LANDASAN TEORI. dapat diimplementasikan secara nyata di mana sistem dapat berada di salah satu dari

dokumen-dokumen yang mirip
PEMODELAN PERANGKAT LUNAK UNTUK PENGERTIAN DETERMINISTIC FINITE AUTOMATA DAN NON-DETERMINISTIC FINITE AUTOMATA

FINITE STATE MACHINE / AUTOMATA

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

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

Software Requirement (Persyaratan PL)

BAB 1 Pengenalan Pemrograman Komputer

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

BAB 1 PENDAHULUAN. Setiap usaha yang didirikan dengan orientasi laba (keuntungan) mempunyai

BAB IV DESKRIPSI KERJA PRAKTIK. tersebut, diperlukan langkah-langkah sebagai berikut. di harapkan akan dapat menyelesaikan permasalahan yang ada.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Modifikasi Motif Kain Tradisional Menggunakan Cellular Automata

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

BAB III ANALISIS DAN PERANCANGAN SISTEM. Berdasarkan System Development Life Cycle (SDLC) metode waterfall yang

BAB III TEORI PENUNJANG

BAB I PENDAHULUAN. 1.1 Pengenalan Algoritma dan Pemrograman

Teori Bahasa Formal dan Automata

BAB 1 PENDAHULUAN. memarkirkan mobilnya di tempat-tempat perparkiran yang cukup sibuk seperti

MODUL 4: Nondeterministic Finite Automata

BAB 2 LANDASAN TEORI. Android adalah sistem operasi berbasisi java yang berjalan pada kernel 2.6 Linux.

BAB 2 LANDASAN TEORI. Sejak komputer ditemukan, para peneliti telah berpikir adakah kemungkinan agar

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

RENCANA PEMBELAJARAN SEMESTER PROGRAM STUDI D3 KOMPUTERISASI AKUNTANSI FAKULTAS ILMU TERAPAN TELKOM UNIVERSITY

BAB I PENDAHULUAN 1-1

FLOWCHART. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

BAB III METODOLOGI PENELITIAN

MODUL 5: Nondeterministic Finite Automata dengan

TEORI BAHASA DAN AUTOMATA

LATAR BELAKANG PRINSIP AGILE SOFTWARE DEVELOPMENT

1. Pendahuluan. 2. Tinjauan Pustaka

Mata Kuliah Testing & Implementasi Sistem Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Pertemuan 5 --

MODUL 3: Finite Automata

Teori Bahasa dan Otomata

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

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

BAB II LANDASAN TEORI

TEKNIK KOMPILASI Bahasa Regular

FINITE STATE AUTOMATA

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

Kompresi Pohon dengan Kode Prüfer

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

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

Studi Pohon Steiner dan Penggunaannya dalam Perancangan Chip dan Jaringan

A. IDENTITAS B. DESKRIPSI MATAKULIAH C. TUJUAN MATAKULIAH

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


Proses Software. Tujuan

Pertemuan 1. Pengenalan Delphi 7

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

Teori Bahasa Formal dan Automata

BAB II LANDASAN TEORI. Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling

Teknik Informatika S1

BAB III LANDASAN TEORI

TEORI BAHASA DAN AUTOMATA

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Pada bab ini akan dibahas tentang tahapan-tahapan yang dilakukan dalam

1 BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

SISTEM INFORMASI PENJADWALAN DAN PENILAIAN SEKOLAH BERDASAR KURIKULUM 2013 (STUDI KASUS : SMA PGRI SUMBERREJO)

ANALISIS KELEMAHAN SISTEM LAMA Hanif Al Fatta M.Kom

Deterministic Finite Automata

Konsep Basisdata Bab 1

BAB 1 PENDAHULUAN 1.1 Latar Belakang

USE CASE DIAGRAM. Analisis dan perancangan berorientasi Obyek

BAB I PENDAHULUAN. PLN, di ganti menjadi kwh meter digital yang dapat memberikan nilai lebih

BAB IV DESKRIPSI PEKERJAAN

Teori Bahasa Formal dan Automata

UML & USE CASE DIAGRAM. Oleh : Bambang Hermawan, S.Si

system) yang elemennya terdiri dari hardware, software dan brainware. Ketiga

Materi 1. 1 Rekayasa Perangkat Lunak

Reduksi DFA [Deterministic Finite Automata]

E-journal Teknik Informatika, Volume 5, No. 1 (2015), ISSN :

DATA & INFORMASI DALAM SISTEM INFORMASI BISNIS ASIH ROHMANI,M.KOM

FLOWCHART. Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program.

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

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

BAB II LANDASAN TEORI

TEORI BAHASA DAN AUTOMATA

Nama : Rendi Setiawan Nim :

BAB 4. ANALISIS dan PEMBAHASAN

Non-Deterministic Finite Automata

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

UML & USE CASE DIAGRAM. Oleh : Bambang Hermawan, S.Si

BAB IV DISKRIPSI PEKERJAAN. cara langsung menemui bagian PPQC (Production Planning and Quality Control)

BAB II LANDASAN TEORI. pembelian dilakukan dengan mengubah bentuk barang. 2003). Menurut Soemarso S.R (1994) kegiatan pembelian dalam perusahaan

GARIS-GARIS BESAR PROGRAM PERKULIAHAN (GBPP)

Metodologi pengembangan sistem METODOLOGI PENGEMBANGAN SISTEM INFORMASI DIAN PALUPI RINI, M.KOM 1

Sistem Pendukung Keputusan untuk Investasi Perumahan Area Malang Menggunakan Algoritma Bayesian

BAB II LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN SISTEM. menggunakan model waterfall. Pada model waterfall terdapat tahapan analisis

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

TEORI BAHASA DAN OTOMATA PENGANTAR

PERTEMUAN 9 TEORI BAHASA DAN OTOMATA [TBO]

Penerapan Algoritma Backtracking dalam Permainan Futoshiki Puzzle

2.4.4 Activity Diagram... II Sequence Diagram... II Collaboration Diagram... II Implementasi... II PHP...

DESAI EVALU IMPLEM BAB I PENDAHULUAN

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN. ini akan semakin tinggi.apalagi pada tahun ini terjadi kenaikan harga bahan bakar

Desain Software. Arna Fariza PENS. Rekayasa Perangkat Lunak. Materi. Apakah desain software itu? Apakah modularisasi itu? Model

PENDAHULUAN. Data dan Informasi. Sistem Informasi. Komponen sistem informasi. Basis data

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

BAB I PENDAHULUAN 1.1 REVOLUSI KOMUNIKASI KOMPUTER

Transkripsi:

BAB 2 LANDASAN TEORI 2.1 Finite Autmata Finite autmata adalah mesin abstrak berupa sistem mdel 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 knfigurasi internal disebut state. Beberapa cnth sistem dengan state berhingga antara lain pada mesin minuman tmatis atau vending machine, pengatur lampu lalu lintas dan lexical analyser. Suatu finite autmata terdiri dari beberapa bagian. Finite autmata mempunyai sekumpulan state dan aturan-aturan untuk berpindah dari state yang satu ke state yang lain, tergantung dari simbl nya. Finite autmata mempunyai state awal, sekumpulan state dan state akhir. Finite autmata merupakan kumpulan dari lima elemen atau dalam bahasa matematis dapat disebut sebagai 5-tuple. Definisi frmal dari finite autmata dikatakan bahwa finite autmata merupakan list dari 5 kmpnen : kumpulan state, input, aturan perpindahan, state awal, dan state akhir. Dalam DFA sering digunakan istilah fungsi transisi untuk mendefinisikan aturan perpindahan, biasanya dintasikan dengan δ. Jika finite autmata memiliki sebuah panah dari suatu state x ke suatu state y,dan memiliki label dengan simbl input 0, ini berarti bahwa, jika autmata berada pada state x ketika autmata tersebut membaca 0, maka autmata tersebut dapat berpindah ke state y dapat diindikasikan hal yang sama dengan fungsi transisi dengan mengatakan bahwa δ(x, 0) = y.

10 Definisi 2.1.1 Sebuah finite autmata terdiri dari lima kmpnen (Q, Σ, δ, q 0, F ), di mana : 1. Q adalah himpunan set berhingga yang disebut dengan himpunan states. 2. Σ adalah himpunan berhingga alfabet dari simbl. 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.1.2 Hpcrft et al. (2007) Suatu finite autmata M = (Q,Σ,δ,q 0,F) akan menerima sebuah string w jika kumpulan states r 0 r 1 r n dalam Q memenuhi tiga kndisi : 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 masing-masing w i adalah anggta alphabet Σ. Pada definisi 2.1.2 kndisi yang pertama dinyatakan bahwa suatu finite autmata dimulai dari start state. Pada kndisi yang kedua dinyatakan bahwa finite autmata akan berpindah dari satu state ke state yang lain berdasarkan fungsi

11 transisi, dan kndisi yang ketiga menyatakan bahwa finite autmata akan menerima string apabila tersebut berakhir pada final state. Dapat dinyatakan bahwa M mengenali bahasa A jika A = {w M menerima w}. Menyatakan suatu finite autmata dengan menggunakan ntasi 5-tuple akan sangat mereptkan. Cara yang lebih dianjurkan dalam menuliskan finite autmata, yaitu dengan menggunakan : 1. Diagram transisi (transitin diagram), yaitu berupa suatu graf. 2. Tabel transisi (transitin table), yaitu daftar berbentuk tabel untuk fungsi δ, yang merupakan hubungan antara himpunan states dengan alfabet input. 2.1.1 Penyajian FA Menggunakan Diagram Transisi Definisi 2.1.3 Diagram transisi untuk finite autmata 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 simbl 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.

12 Cnth 2.1.1 Gambar 2.1 memperlihatkan diagram transisi dari sebuah finite autmata. Gambar 2.1 Diagram transisi dari suatu finite autmata 2.1.2 Penyajian FA Menggunakan Tabel Transisi Tabel transisi merupakan representasi tabular dari fungsi δ yang mengambil dua argumen dan menghasilkan suatu nilai. Baris pada tabel berkrespndensi dengan state dan klm pada tabel berkrespndensi dengan input. Cnth 2.1.2 Tabel 2.1 memperlihatkan tabel transisi dari finite autmata yang diperlihatkan pada Gambar 2.1. Tabel 2.1 Tabel transisi FA pada Cnth 2.1.1 Tabel transisi pada cnth 2.1.2 memiliki arti : 1. Simbl pada klm sebelah kiri adalah state. 2. Simbl pada baris paling atas adalah simbl.

13 3. Simbl yang berada " dalam" tabel merupakan fungsi transisi. 4. Simbl panah ( ) pada klm sebelah kiri menunjukkan start simbl. 5. Simbl (*) pada klm sebelah kiri menunjukkan state final. 2.1.3 Finite Autmata sebagai Pengenal Bahasa Reguler Dalam definisi 2.1.1, pada suatu finite autmata terdapat F yaitu himpunan state penerima. Apabila suatu string membawa state FA dari state inisial ke salah satu state dalam F dan berakhir pada state tersebut maka string tersebut diterima sebagai anggta bahasa tersebut. Definisi 2.1.4 Finite autmata sebagai pengenal bahasa reguler secara frmal dapat didefinisikan : 1. Suatu M = (Q,Σ,δ,q 0,F) merupakan suatu FA. Suatu string x dikatakan diterima leh M jika δ(q 0, x) F. Jika suatu string tidak diterima, maka string itu dikatakan ditlak leh M. 2. Suatu bahasa yang diterima atau diterima leh M adalah himpunan : L(M ) = {x Σ * x diterima M } dengan L adalah bahasa pada Σ dan L diterima leh M jika dan hanya jika L=L(M). Suatu bahasa L pada σ adalah bahasa reguler jika dan hanya jika terdapat suatu finite autmata yang mengenal L. Untuk setiap M, sembarang FA, terdapat suatu ekspresi reguler yang berkaitan dengan L(M) dan untuk ekspresi reguler

14 tersebut terdapat suatu finite autmata yang mengenali bahasa tersebut. Cnth 2.1.3 Diberikan autmata M seperti pada cnth 2.1.1, apakah autmata M menerima string 010 dan 111. Slusi: jalur kmputasi dari string 010 adalah : sehingga δ(q 1, 010) F dan M menerima string 010. Dengan cara yang sama dapat diketahui bahwa δ(q 1, 111) = q 2 F dan M menlak 111. Cnth 2.1.4 Diketahui suatu DFA M = (Q, Σ, δ, q 0, F ) di mana Q = {q 0, q 1, q 2 }, Σ = {0,1}, F = {q 1 } dan δ adalah fungsi yang didefinisikan sesuai dengan Tabel transisi 2.2 : Tabel 2.2 Tabel transisi DFA yang menerima akhiran 01 Dari Tabel transisi 2.2 dapat dibuat suatu diagram transisi sesuai dengan Gambar 2.2:

15 Gambar 2.2 Diagram transisi DFA yang menerima akhiran 01 Cnth 2.1.5 Diberikan suatu DFA M seperti pada cnth M menerima string 000 dan 010. Slusi: jalur kmputasi 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 menlak 010. 2.2 Nn-deterministik Finite Autmata (NFA) Deterministik finite autmata (DFA) adalah finite autmata dengan aturan yang sangat ketat. Pelnggaran dari aturan tersebut akan menghasilkan suatu nndeterministik finite autmata. Mgensen (2010) menyatakan bahwa perbedaan antara DFA dengan NFA adalah: 1. Pada NFA memungkinkan satu simbl menimbulkan transisi ke lebih dari satu state, dapat dikatakan juga bahwa pada DFA untuk setiap state s dan simbl a hanya ada paling banyak satu buah label a yang meninggalkan state s.

16 2. Pada NFA memungkinkan transisi spntan atau transisi-ǫ yang selanjutnya akan diistilahkan dengan ǫ-nfa. Definisi 2.2.1 Suatu nn-deterministik finite autmata (NFA) tersusun atas quintuple M = (K, Σ, δ, s, F ) di mana : 1. K adalah himpunan state, 2. Σ adalah alfabet, 3. s K adalah state awal, dan 4. δ adalah relasi transisi, K (Σ {e}) K Cnth 2.2.1 Diketahui suatu NFA M = (K, Σ, δ, q 0, F ) di mana Q = {q 0, q 1, q 2 }, Σ = {0,1}, F = {q 1 } dan δ adalah fungsi yang didefinisikan sesuai dengan Tabel transisi 2.3 : Gambar 2.3 NFA yang menerima semua string yang berakhiran 01 Tabel 2.3 Tabel transisi NFA yang menerima string berakhiran 01

17 Cnth 2.2.1 merupakan cnth suatu nn-deterministik finite autmata karena input 0 pada state q 0 dapat berpindah menuju state q 0 dan q 1. Suatu nn-deterministik finite autmata bukan merupakan mdel realistis dalam kmputer. NFA lebih digunakan untuk mempermudah dalam pembuatan ntasi general dari finite autmata. Untuk melihat suatu NFA lebih mudah untuk dibangun dibandingkan DFA, misalkan dipunyai suatu bahasa L = (ab aba) *. DFA pada Gambar 2.4 mengilustrasikan bahasa L tersebut. Walaupun menggunakan diagram, diperlukan waktu untuk mengetahui apakah Gambar 2.4 merupakan DFA. Dalam DFA tersebut harus dipastikan apakah terdapat tepat dua transisi yang keluar dari masing - masing state, masing-masing berlabel a dan b. Gambar 2.4 DFA yang menerima bahasa L = (ab aba) Untuk bahasa L tersebut dapat dibangun dengan menggunakan NFA sesuai dengan Gambar 2.5. Ketika sistem berada pada state q 1 dan menerima simbl b, maka ada dua kemungkinan perpindahan state yaitu q 0 dan q 2. Oleh sebab itu, Gambar 2.5 bukan representasikan suatu DFA melainkan suatu NFA yang ekuivalen dengan DFA yang ada pada gambar 2.4.

18 Gambar 2.5 NFA yang menerima bahasa L = (ab aba) * NFA sebagai Pengenal Bahasa Reguler. Suatu NFA dikatakan menerima string x jika dan hanya jika terdapat beberapa jalur dalam diagram transisi dari state awal ke salah satu state akhir, sedemikian hingga semua simbl di dalam x akan terurai (Mgensen, 2010). Jika x adalah string alfabet Σ pada NFA (cnthnya x dalam Σ * ) diterima leh NFA jika minimal terdapat satu jalur yang eksis yang berkrespndensi pada x dalam NFA, yang dimulai dari start state dan berakhir pada final state. Sedangkan dalam DFA, karena hanya terdapat satu buah jalur yang berkrespndensi pada x dalam Σ * hal ini cukup untuk melakukan pengecekan apakah sebuah jalur yang dimulai dari initial state berakhir pada salah satu final state atau tidak untuk mengetahui apakah x diterima leh suatu DFA atau tidak (Kakde, 2002). Oleh karena itu, jika x adalah suatu string dibuat dari simbl dalam Σ dalam NFA, cnthnya x ada dalam Σ * kemudian x diterima leh NFA jika terdapat paling sedikit satu buah jalur yang terbentuk dan berkrespndensi dengan x dalam NFA, yang berawal dari initial state dan berakhir pada salah satu anggta himpunan final state dalam NFA. Karena x merupakan anggta Σ * dan terdapat kemungkinan nl, satu atau lebih transisi dari sebuah state pada sebuah simbl masukan dapat

19 didefinisikan fungsi transisi baru(δ 1 ) di mana fungsi transisi tersebut memetakan 2 Q Σ * hingga 2 Q dan jika δ 1 ({q 0, x}) = P di mana P adalah suatu himpunan yang terdiri dari minimal satu anggta himpunan dari F, sehingga x diterima leh NFA. Jika x dituliskan dengan wa di mana a adalah simbl terakhir dalam x dan w adalah string yang terbuat dari simbl yang tersisa dalam x maka δ 1 ({q 0 }, x) = δ 1 (δ 1 ({q 0 }, w)). Sejak δ 1 didefinisikan dengan pemetaan dari 2 Q Σ * hingga 2 Q maka δ 1 (p, a) = FrEach q in P δ(q, a) Cnth 2.2.2 Diberikan suatu NFA M = ({q 0, q 1, q 2, q 3 }, {0, 1}, δ, q 0, {q 3 }) dengan tabel transisi Jika x = 0111, maka dapat dilihat apakah x diterima leh NFA M atau tidak dengan melakukan prses: δ 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 }

20 δ 1 ({q 0 }, 0111) = {q 1, q 2, q 3 } dan memuat q 3 yang merupakan anggta himpunan dari final state. Oleh karena terdapat satu buah jalur kmputasi dari initial state yang berakhir pada salah satu anggta himpunan final state F, maka dapat dikatakan bahwa x = 0111 diterima leh NFA. Dengan demikian, dapat dikatakan bahwa jika M adalah suatu NFA maka bahasa yang diterima leh NFA dapat didefinisikan sebagai L(M ) = {x δ 1 ({q 0 } x) = P} di mana P memuat minimal satu buah anggta F (Kakde, 2002). 2.3 Epsiln Nn-deterministik Finite Autmata (-NFA) Mdel dari nn-deterministik finite autmata dapat diperluas dengan memungkinkan adanya transisi spntan atau transisi-ǫ di antara dua state. Jika suatu finite autmata diubah untuk dapat menerima transisi tanpa simbl, pada transisi ini terjadi perpindahan state dari state yang satu ke state yang lain tanpa apapun. Secara frmal dapat didefinisikan ǫ-nfa A dengan A = (Q, Σ, δ, q, F ) di mana secara struktur sama dengan NFA yang tidak memiliki transisi ǫ. Perbedaan antara NFA tanpa ǫ dengan ǫ-nfa adalah pada pendefinisian fungsi δ : 1. A merupakan state dalam Q. 2. A merupakan anggta Σ {ǫ}, yaitu baik simbl input, atau simbl ǫ. simbl ǫ, simbl string ksng, tidak dapat menjadi anggta alfabet Σ, sehingga tidak akan menimbulkan kebingungan. Dengan adanya transisi ǫ maka jumlah transisi pada ǫ-nfa bisa lebih banyak dari jumlah simbl dalam string, sedangkan pada NFA jumlah simbl akan sama dengan

21 jumlah transisi yang diaplikasikan pada δ. Pada dasarnya, penggunaan ǫ pada NFA sangat erat kaitannya ketika membicarakan tentang ekspresi reguler. ǫ-nfa berguna untuk membuktikan ekuivalensi antara kelaskelas bahasa yang diterima dalam finite autmata dengan ekspresi reguler. Cnth 2.3.1 cnth ϵ-nfa M = ({q 0, q 1, q 2 }, {0, 1, ϵ}, δ, q 0, {q 2 }) dengan tabel transisi: dengan diagram transisi sesuai dengan Gambar 2.6 Gambar 2.6 Diagram transisi ǫ-nfa -NFA sebagai Pengenal Bahasa Reguler. Suatu string x dalam Σ * dengan ǫ transisi akan diterima leh NFA jika terdapat minimal satu buah jalur yang berkrespndensi dengan x yang dimulai dari initial state dan berakhir pada salah satu anggta himpunan dair final state. Jalur yang terbentuk ini mungkin terbentuk dari dari transisi epsiln(ǫ). Sama seperti jalur yang terbentuk tanpa transisi-ǫ untuk mengetahui apakah suatu string diterima leh ǫ-nfa perlu didefinisikan terlebih

22 dahulu suatu fungsi ǫ-clsure(q) di mana q merupakan suatu state dalam autmata. Epsiln()-clsure. ǫ-clsure dari suatu himpunan state S adalah seluruh state dalam S tersebut beserta state-state lain yang dapat dicapai leh masing-masing state dalam S melalui transisi ǫ. Dengan kata lain ǫ-clsure juga merupakan himpunan yang di dalamnya terdapat S sebagai subset, dapat ditulis juga dengan ǫ(s) (Mgensen, 2010). Definisi 2.3.1 Hpcrft et al. (2007) Pada suatu ϵ-nfa M = (Q,Σ,δ,q 0,F) dan S Q suatu fungsi ϵ(s) dapat didefinisikan : 1. Setiap anggta S merupakan anggta ǫ(s). 2. Untuk setiap q ǫ ǫ(s) setiap anggta δ(q, ǫ) adalah anggta ǫ(s) 3. Tidak ada anggta lain dari Q yang merupakan anggta ǫ(s) kecuali berdasar pada kedua pernyataan di atas. ǫ-clsure tidak akan pernah akan berupa himpunan ksng karena q akan selalu dapat dicapai leh dirinya sendiri tanpa tergantung dari simbl lainnya. OLeh karena itu, dalam suatu jalur dengan label ǫ, q akan selalu muncul di dalam ǫ- clsure pada jalur tersebut. Jika P adalah himpunan atas state dan fungsi ǫ-clsure dapat diperluas untuk menghitung ǫ-clsure(p ) sebagai berikut : ǫ clsure(p) = freveryqinp ǫ clsure(q)

23 2.4 Transfrmasi di antara Autmata Untuk setiap finite autmata (NFA, DFA, ǫ-nfa) pasti terdapat bahasa reguler yang dapat diterima maupun sebaliknya untuk setiap bahasa reguler pasti ada finite autmata yang dapat menerimanya (Kakde, 2002). Untuk lebih jelasnya bisa dilihat pada Gambar 2.7. Gambar 2.7 memperlihatkan transfrmasi di antara bahasa yang reguler. Gambar 2.7 Transfrmasi di antara bahasa yang regular 2.4.1 Transfrmasi NFA - DFA (Subset Cnstructin) 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 kmputasi pada saat yang bersamaan (Du dan K, 2001). Untuk itu diperlukan suatu prsedur yang dapat melakukan transfrmasi dari suatu NFA menjadi DFA yang ekuivalen dengan bahasa yang diterima NFA tersebut. Transfrmasi suatu NFA menjadi DFA dilakukan dengan melakukan simulasi semua jalur transisi yang mungkin pada NFA.

24 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, transfrmasi dari NFA menjadi DFA meliputi pencarian semua subset yang mungkin dari himpunan state dari NFA. (Kakde, 2002). Ide dasar dari subset cnstructin adalah bahwa masing-masing state pada DFA yang terbentuk berkrespndensi dengan himpunan state pada NFA. Terdapat kemungkinan bahwa jumlah state pada DFA yang terbentuk dari hasil subset cnstructin adalah berjumlah ekspnensial dari jumlah state dari NFA. Cnth 2.4.1 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 Lihat Gambar 2.8 untuk mengetahui diagram transisi NFA. akan dibentuk DFA M yang ekuivalen dengan NFA M.

25 Gambar 2.8 NFA subset cnstructin slusi: dapat dibentuk DFA M dengan cara : 1. Buat Q ϵ = ϵ clsure({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 prses tersebut dapat dilihat pada tabel transisi

26 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 diperleh Q 11 = Q 1 tidak perlu memperhitungkan Q 11W untuk sebarang W ϵ {0, 1} *. Transisi diagram dari DFA M ditunjukkan pada Gambar 2.9. Gambar 2.9 DFA hasil subset cnstructin yang ekuivalen 2.4.2 Minimisasi Autmata Untuk suatu DFA, dapat ditemukan DFA yang ekuivalen yang memiliki jumlah state yang sama sedikitnya dengan sembarang DFA yang menerima bahasa yang sama (Hpcrft et al., 2007). DFA bisa dihasilkan dari bahasa reguler yang ditransfrmasikan menjadi NFA, kemudian dari NFA menggunakan subset cnstructin

27 menjadi DFA. DFA yang dihasilkan dari RE tersebut pada umumnya memiliki beberapa state yang memiliki kelakuan yang sama. Pada kasus terburuk dimungkinkan terbentuk n 2 prses di mana n adalah jumlah state. Terdapat beberapa algritma terkenal untuk melakukan minimisasi DFA. Dua algritma yang sering dipergunakan dalam melakukan minimisasi DFA adalah algritma klasik (table filling) dan algritma minimisasi Hpcrft (XU, 2009). Minimisasi dari DFA dapat dilakukan jika state dari DFA yang diminimisasi tidak mengubah bahasa yang diterima leh DFA tersebut. Kakde (2002), state berikut ini bisa dieliminasi dari autmata tanpa mengubah bahasa yang diterima leh autmata : 1. State yang tidak tercapai; state yang tidak tercapai ini adalah state yang tidak dapat dicapai dari state awal DFA pada semua kemungkinan. 2. State mati; state mati adalah suatu state yang bukan merupakan anggta dari himpunan final state di mana transisi dari setiap simbl akan berakhir pada state tersebut. Cnthnya, q adalah state mati jika q adalah anggta Q dan δ(q,a) = q untuk setiap a dalam Σ. 3. Nn-distinguisable state; nn-distinguisable state adalah state dari DFA yang keberadaannya tidak men-distinguish string sehingga keberadaanya tidak dapat dibedakan satu sama lain. sehingga Kakde (2002), minimisasi dari DFA menyangkut : 1. Pendeteksian terhadap state yang tidak dapat dicapai dari state awal dan mengeliminasi state tersebut dari DFA.

28 2. Mengidentifikasi state yang nn-distinguishable dan menggabungkannya menjadi satu. 3. Mendeteksi state mati dan mengeliminasi state tersebut dari DFA. Diberikan suatu nn minimum DFA D dengan alfabet Σ dan himpunan state S di mana F S adalah himpunan final state. Dapat dibuat suatu DFA minimum DFA min di mana masing-masing statenya adalah grup state dari D. Grup dari DFA min tersebut adalah knsisten. Untuk setiap pasangan state s 1,s 2 pada grup yang sama G 1 dan untuk sembarang simbl c, mve(s 1, c) pada grup G 2 yang sama dengan mve(s 2, c) atau keduanya belum didefinisikan. Dengan kata lain tidak dapat dikatakan bahwa s 1 dan s 2 berbeda dengan melihat transisi keduanya. Cnth 2.4.2 Diketahui suatu DFA nn minimal seperti pada Gambar 2.10 : Gambar 2.10 Nn-minimal DFA Pada awalnya DFA akan dibagi ke dalam dua grup, final grup dan nn-final grup. G 1 = {0, 6} G 2 = {1, 2, 3, 4, 5, 7}

29 Kedua grup tersebut diset sebagai unmarked grup. Kemudian akan dilakukan pengecekan apakah grup yang terbentuk sekarang adalah knsisten, untuk melihat apakah suatu grup knsisten dapat dibuat tabel untuk transisinya : Tabel transisi G 1 knsisten, dapat ditandai sebagai marked grup. Akan dibuat tabel untuk G 2 untuk mengetahui apakah grup G 2 sudah knsisten atau belum. Tabel transisi G 2 ternyata tidak knsisten, maka grup tersebut akan dibagi menjadi subgrup knsisten yang maksimal dan menghapus semua tanda. sekarang akan dilihat G 3 subsgrup G 3 ternyata tidak knsisten, maka dibagi lagi grup tersebut menjadi subgrup

30 knsisten yang maksimal dan menghapus semua tanda dapat dilihat pada G 5 Dapat dilihat bahwa G 5 knsisten, maka set sebagai marked grup. Untuk G 6 Ternyata G 6 knsisten, maka marked grup. Untuk G 1 : Tidak ada grup lagi yang belum dicek (kecuali singletn). Dengan demikian grupgrup tersebut membentuk suatu DFA minimial yang ekuivalen dengan DFA pada Gambar 2.10. DFA yang sudah mengalami minimisasi ditunjukkan pada Gambar 2.11

31 Gambar 2.11 DFA Minimal 2.5 Membangkitkan Autmata Randm Raitt (2006) menjelaskan bahwa pembuatan autmata randm sudah menjadi permasalahan umum. Dalam Raitt (2006) juga dijelaskan beberapa pendekatan algritma yang dapat dipergunakan untuk menyelesaikan pembuatan autmata randm. 2.5.1 Membangkitkan DFA Randm Untuk membangkitkan DFA randm, dapat menggunakan pendekatan algritma NFA terhubung milik Raitt (2006). Pada awalnya dibentuk suatu DFA yang semua statenya sudah terhubung satu sama lain, kemudian transisi sisanya dibentuk secara randm. DFA yang nanti terbentuk merupakan DFA yang lengkap, leh karena itu tidak perlu dilakukan perhitungan density dari DFA tersebut seperti pada saat menghitung density pada saat membentuk suatu NFA. DFA randm yang saling terhubung statenya dibuat dengan cara yang mirip dengan algritma NFA. Untuk membangkitkan DFA terhubung jika suatu transisi δ(q i,a) sudah ada pada tabel transisi harus ditemukan cara lain untuk menghubungkan state yang belum terhubung kepada DFA terhubung pada fase inisialisasi algritma.

32 Ketika struktur state yang sudah terhubung sudah terbentuk, transisi lain dalam DFA tersebut akan ditambahkan secara acak ke dalam DFA tersebut untuk membentuk DFA lengkap. Penambahan transisi acak pada pembentukan DFA randm dilakukan dengan melakukan pengecekan pada masing-masing simbl yang sudah didefinisikan terlebih dahulu pada awal pembentukan DFA. Untuk setiap state akan dilakukan pengecekan apakah transisi keluar untuk suatu simbl tertentu sudah ada atau belum, jika belum maka sistem akan melakukan pengacakan pada state yang menjadi state tujuan dari transisi keluar tersebut. 2.5.2 Membangkitkan NFA Randm Untuk membangkitkan NFA randm hal yang perlu diperhatikan adalah density dari finite autmata. Density adalah satu ukuran untuk keterhubungan autmata yang merupakan rasi kemunculan dari suatu transisi pada kemungkinan kemunculan dari semua transisi yang mungkin terjadi. Jika dipilih density 50% maka setiap transisi pada tabel transisi memiliki kemungkinan kemunculan yang sama. Jika density yang dipilih kurang dari 50% maka akan memunculkan jumlah transisi yang lebih sedikit dari rata-rata transisi dalam NFA. Hal ini akan menimbulkan bias dalam NFA hasil.

33 2.6 Perancangan Prgram Perancangan prgram merupakan langkah yang krusial dalam pembuatan suatu prgram aplikasi. Perancangan diperlukan untuk membuat bentuk dasar dan langkahlangkah yang perlu dilakukan dalam tahapan-tahapan pembuatan aplikasi. 2.6.1 Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak menurut Rger S. Pressman (2005,p23) adalah disiplin ilmu yang membahas semua aspek prduksi perangkat lunak, mulai tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Adapun tujuan dari Rekayasa Perangkat Lunak yaitu : Meningkatkan keakuratan, perfrmance & efficiency prduk secara keseluruhan dalam pengembangan. Menerapkan metdlgi yang terdefinisi dengan baik untuk reslusi perangkat lunak. Rekayasa Perangkat Lunak berhubungan dengan masalah-masalah praktis untuk menghasilkan suatu perangkat lunak. Pendekatan dilakukan dengan mdel bisnis dan strategi bisnis suatu perangkat lunak. Dalam perancangan perangkat lunak dikenal istilah SDLC (System Develpment Life Cycle) yaitu tahapan-tahapan pekerjaan yang dilakukan leh analis sistem dan prgrammer dalam membangun sistem infrmasi. Cnthnya, Waterfall Mdel atau Linear SequentialMdel adalah mdel klasik yang bersifat sistematis, berurutan dalam membangun perangkat lunak. Berikut ini ada dua gambaran dari

34 waterfall mdel. Sekalipun keduanya menggunakan nama-nama fase yang berbeda, namun sama dalam intinya. Fase-fase dalam Waterfall Mdel menurut referensi Smmerville : Gambar 2.12 Waterfall Mdel 1. Requirements analysis and definitin : Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi leh prgram yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap. 2. System and sftware design : Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap. 3. Implementatin and unit testing : desain prgram diterjemahkan ke dalam kdekde dengan menggunakan bahasa pemrgraman yang sudah ditentukan. Prgram yang dibangun langsung diuji baik secara unit. 4. Integratin and system testing : Penyatuan unit-unit prgram kemudian diuji secara keseluruhan (system testing).

35 5. Operatin and maintenance : mengperasikan prgram dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya. Kekurangan yang utama dari mdel ini adalah kesulitan dalam mengakmdasi perubahan setelah prses dijalani. Fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya. 2.6.2 Use Case Diagram Diagram use case digunakan untuk mengambarkan interaksi antara pengguna sistem (actr) dengan kasus (use case) yang disesuaikan dengan langkah-langkah (scenari) yang telah ditentukan. Sejak tahun 1992, dengan adanya pengembang UML, yaitu Jacb Et All, menjadikan use case sebagai mdel utama atau yang dibutuhkan (Requeirment Mdel) pada UML. Ntasi gambar yang digunakan dalam diagram use case yaitu : (Use Case) : Dibuat berdasar keperluan actr, merupakan apa yang dikerjakan system, bukan bagaimana sistem mengerjakannya. (Actr) : Menggambarkan rang, sistem atau eksternal entitas/ stakehlder yang menyediakan atau menerima infrmasi dari sistem dan menggambarkan sebuah tugas/peran dan bukannya psisi sebuah jabatan.

36 Assciatins digunakan untuk menggambarkan bagaimana actr terlibat dalam use case. Ada 4 jenis relasi yang bisa timbul pada diagram use case : 1. Assciatin antara actr dan use case : Ujung panah pada assciatin antara actr dan use case mengindikasikan siapa/apa yang meminta interaksi dan bukannya mengindikasikan aliran data. Sebaiknya gunakan Garis tanpa panah untuk assciatin antara actr dan use case Assciatin antara actr dan use case yang menggunakan panah terbuka untuk mengindikasikan bila actr berinteraksi secara pasif dengan system anda 2. Assciatin antara use case <<include>> termasuk di dalam use case lain (required) / (diharuskan) <<extend>> perluasan dari use case lain jika kndisi atau syarat terpenuhi 3. Generalizatin/Inheritance antara use case Gambarkan generalizatin/inheritance antara use case secara vertical dengan inheriting use case di bawah base/parent use case.

37 4. Generalizatin/Inheritance antara actrs Gambarkan generalizatin/inheritance antara actrs secara vertical dengan inheriting actr dibawah base/parent use case. 2.6.3 Flwchart Flwchart adalah penggambaran secara grafik dari langkah-langkah dan uruturutan prsedur dari suatu prgram. Flwchart menlng analis dan prgrammer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menlng dalam menganalisis alternatif-alternatif lain dalam pengperasian. Flwchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

38 Simbl-simbl flwchart yang biasanya dipakai adalah simbl-simbl flwchart standar yang dikeluarkan leh ANSI dan ISO. Simbl-simbl tersebut yaitu : : Merepresentasikan Input data atau Output data yang diprses atau Infrmasi. : Mempresentasikan perasi : Keluar ke atau masuk dari bagian lain flwchart khususnya halaman yang sama : Merepresentasikan alur kerja : Digunakan untuk kmentar tambahan : Keputusan dalam prgram : Rincian perasi berada di tempat lain

39 : Pemberian harga awal : Awal / akhir flwchart : Input / utuput yang menggunakan kartu berlubang : I/O dalam frmat yang dicetak : I/O yang menggunakan pita magnetik : I/O yang menggunakan disk magnetik : I/O yang menggunakan drum magnetik : I/O yang menggunakan penyimpanan akses langsung : I/O yang menggunakan pita kertas berlubang

40 : Input yang dimasukkan secara manual dari keybard : Output yang ditampilkan pada terminal : Operasi Manual : Transmisi data melalui channel kmunikasi, seperti telepn : Penyimpanan yang tidak dapat diakses leh kmputer secara langsung 2.7 Eclipse IDE Eclipse adalah sebuah IDE (Integrated Develpment Envirnment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platfrm (platfrmindependent). Berikut ini adalah sifat dari Eclipse : 1. Multi-platfrm : Target sistem perasi Eclipse adalah Micrsft Windws, Linux, Slaris, AIX, HP-UX, dan Mac OS X.

41 2. Multi-language : Eclipse dikembangkan dengan bahasa pemrgraman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrgraman lainnya, seperti C/C++, Cbl, Phytn, Perl, PHP, dan lain sebagainya. 3. Multi-rle : Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dkumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favrit dikarenakan gratis dan pen surce, yang berarti setiap rang bleh melihat kde pemrgraman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya ppular adalah kemampuannya untuk dapat dikembangkan leh pengguna dengan kmpnen yang dinamakan plug-in. 2.7.1 Sejarah Eclipse Eclipse awalnya dikembangkan leh IBM untuk menggantikan perangkat lunak IBM Visual Age fr Java 4.0. Prduk ini diluncurkan leh IBM pada tanggal 5 Nvember 2001, yang menginvestasikan sebanyak US$ 40 juta untuk pengembangannya. Semenjak itu knsursium Eclipse Fundatin mengambil alih untuk pengembangan Eclipse lebih lanjut dan pengaturan rganisasinya. Sejak tahun 2006, Eclipse Fundatin mengkrdinasikan peluncuran Eclipse secara rutin dan simultan yang dikenal dengan nama Simultaneus Release. Setiap versi peluncuran terdiri dari Eclipse Platfrm dan juga sejumlah pryek yang terlibat dalam pryek Eclipse. Tujuan dari sistem ini adalah untuk menyediakan distribusi

42 Eclipse dengan fitur-fitur dan versi yang terstandarisasi. Hal ini juga dimaksudkan untuk mempermudah deplyment dan maintenance untuk sistem enterprise, serta untuk kenyamanan. Peluncuran simultan dijadwalkan pada bulan Juni setiap tahunnya. 2.7.2 Arsitektur Eclipse Sejak versi 3.0, Eclipse pada dasarnya merupakan sebuah kernel, yang mengangkat plug-in. Apa yang dapat digunakan di dalam Eclipse sebenarnya adalah fungsi dari plug-in yang sudah diinstal. Ini merupakan basis dari Eclipse yang dinamakan Rich Client Platfrm (RCP). Berikut ini adalah kmpnen yang membentuk RCP : 1. Cre platfrm 2. OSGi 3. SWT (Standard Widget Tlkit) 4. JFace 5. Eclipse Wrkbench Secara standar Eclipse selalu dilengkapi dengan JDT (Java Develpment Tls), plug-in yang membuat Eclipse kmpatibel untuk mengembangkan prgram mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrgraman Java. Java, dan PDE (Plug-in Develpment Envirnment) untuk mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrgraman Java.

43 Knsep Eclipse adalah IDE yang terbuka (pen), mudah diperluas (extensible) untuk apa saja, dan tidak untuk sesuatu yang spesifik. Jadi, Eclipse tidak saja untuk mengembangkan prgram Java, akan tetapi dapat digunakan untuk berbagai macam keperluan, cukup dengan menginstal plug-in yang dibutuhkan. Apabila ingin mengembangkan prgram C/C++ terdapat plug-in CDT (C/C++ Develpment Tls). Selain itu, pengembangan secara visual bukan hal yang tidak mungkin leh Eclipse, plug-in UML2 tersedia untuk membuat diagram UML. Dengan menggunakan PDE setiap rang bisa membuat plug-in sesuai dengan keinginannya.