Makalah Kelompok Kecil TBO

22
TBO ( Teori Bahasa dan Otomata ) Ekivalensi NFA ke DFA Dosen : Bu Srilestanti Kelompok 4 : Adi Sugeng Riadi Dwi Lutfi Putra Dodik Prastyawan Heniatul Ainuniroh Siska Puspita Sari JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI

Transcript of Makalah Kelompok Kecil TBO

Page 1: Makalah Kelompok Kecil TBO

TBO ( Teori Bahasa dan Otomata )

Ekivalensi NFA ke DFA

Dosen : Bu Srilestanti

Kelompok 4 :

Adi Sugeng Riadi

Dwi Lutfi Putra

Dodik Prastyawan

Heniatul Ainuniroh

Siska Puspita Sari

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INFORMASI

UNIVERSITAS ISLAM BALITAR 2011

Page 2: Makalah Kelompok Kecil TBO

DAFTAR ISI

BAB 1 PENDAHULUAN

BAB 2 TAHAPAN PENGUBAHAN NFA KE DFA

BAB 3 CONTOH-CONTOH EKIVALENSI NFA KE DFA

BAB 4 PENUTUP

Page 3: Makalah Kelompok Kecil TBO

BAB 1 PENDAHULUAN

Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, yang telah berkenan

memberi petunjuk dan kekuatan kepada penulis sehingga makalah, “Teori Bahasa dan

Otomata” ini dapat diselesaikan.

Makalah ini disusun dan dibuat berdasarkan materi – materi yang ada. Materi – materi

bertujuan agar dapat menambah pengetahuan dan wawasan teman dalam belajar Teori

Bahasa dan Otomata. Serta teman juga dapat memahami nilai – nilai dasar yang

direfleksikan dalam berpikir dan bertindak.

Mudah-mudahan dengan mempelajari makalah ini, para teman akan mampu menghadapi

masalah-masalah atau kesulitan-kesulitan yang timbul dalam belajar Teori Bahasa dan

Otomata. Dan dengan harapan semoga teman mampu berinovasi dan berkreasi dengan

potensi yang dimiliki,

Wassalam

Blitar, oktober 2011

Putra

Page 4: Makalah Kelompok Kecil TBO

Pengertian

Komputer mengikuti sejumlah prosedur sistematis, atau algoritme, yang dapat

diaplikasikan untuk serangkaian input (string) yang menyatakan integer dan

menghasilkan jawaban setelah sejumlah berhingga langkah. Teori otomata adalah

studi tentang peralatan atau “mesin” komputasi abstrak, yang dapat didefinisikan

secara matematis. Tahun 1930-an Alan Turing telah mempelajari mesin abstrak

yang memiliki kemampuan seperti komputer sekarang (dalam hal apa yang

dihitung). Mesin abstrak merupakan model teoritis dari perangkat keras atau

perangkat lunak yang digunakan dalam teori otomata.

Tipe paling sederhana dari mesin abstrak adalah finite automaton atau finite state

machine. Prinsip yang mendasari mesin ini adalah sistem pada setiap saat dalam

salah satu dari sejumlah state berhingga dan bergerak diantara state-state tersebut

dalam merespon sinyal input individual.

Model Komputasi

Teori otomata mempelajari model mesin komputer menggunakan model

matematika. Namun matematika yang digunakan benar-benar berbeda dibanding

matematika klasik dan kalkulus. Model yang digunakan adalah model mesin state

atau model transisi state.

Terdapat tiga topik utama di teori otomata yaitu:

1. Finite automata (FA) atau disebut Finite State Automata (FSA). FSA

terbagi menjadi Deterministic Finite Automata (DFA) dan Non-

Derministik Finite Automata (NDFA).

2. PushDown Automata (PDA) terbagi Deterministic Pushdown Automata

(DPDA atau DPA) dan NonDertministik Automata(NDPA)

3. Turing Machine

Peran Teori Bahasa dan Otomata pada Ilmu Komputer

Ilmu komputer memiliki dua komponen utama : pertama, model dan gagasan

mendasar mengenai komputasi, kedua, teknik rekayasa untuk perancangan sistem

Page 5: Makalah Kelompok Kecil TBO

komputasi, meliputi perangkat keras dan perangkat lunak, khususnya penerapan

rancangan dari teori. Teori Bahasa dan Otomata merupakan bagian pertama.

Secara teoritis ilmu komputer diawali dari sejumlah berbeda disiplin ilmu: ahli

biologi mempelajari neural network, insinyur elektro mengembangkan switching

sebagai tool untuk mendesain hardware, matematikawan bekerja mendasarkan

logika, dan ahli bahasa menyelidiki tata bahasa untuk natural language.

Finite State Automata dan ekspresi reguler awalnya dikembangkan berdasarkan

pemikiran neural network dan switching circuit. Finite State Automata merupakan

tool yang sangat berguna dalam perancangan lexical analyzer, yaitu bagian dari

kompilator yang mengelompokkan karakter-karakter dalam ke dalam token, yang

berupa unit terkecil seperti nama, variabel dan keyword. Dalam sistem penulisan

kompilator secara otomatis akan mentransformasikan ekspresi regular ke dalam

finite state automata dan ekspresi regular dipakai pula dalam text editor, pattern

matching, sejumlah pemrosesan teks, dan program file-searching, dan sebagai

konsep matematis untuk aplikasi di disiplin lain seperti logika.

Finite automata terdiri dari sejumlah berhingga state. Dalam banyak sistem

dan komponen seperti dijelaskan di atas, sejumlah berhingga state digunakan

untuk mengingat bagian dari histori sistem. Karena hanya terdapat sejumlah

berhingga state, secara umum histori sistem secara keseluruhan tidak dapat

disimpan/diingat, sehingga sistem harus dirancang untuk mengingat apa yang

penting dan melupakan apa yang tidak penting.

Context free grammer dan pushdown automata digunakan dalam spesifikasi

bahasa komputer (pemrograman, markup, kamus data, query, perintah, script, printer).

Dalam parser, bagian kompilator yang memriksa kebenaran sintaks

program. Pemahaman pushdown automata sangat menyederhanakan proses

parsing. Proses parsing yang berlangsung sangat cepat adalah berkat pemahaman

mendalam teknik parsing bebasis pada pengetahuan mengenai context free

grammer.

Mesin Turing merupakan pemodelan mesin komputasi yang ampuh. Berdarkan

Page 6: Makalah Kelompok Kecil TBO

mesin Turing dapat diidentifikasi ketidakmungkinan penulisan program. Bila

dinyatakan tidak dapat dikomputasi mesin Turing berarti persoalan tidak mungkin

dapat diselesaikan secara komputasi dengan mesin komputasi apapun. Namun bila

dikatakan persoalan dapat dikomputasi mesin Turing bukan berarti terdapat

algoritma penyelesaian efisien. Mesin Turing sangat penting mengidentifikasi

ketidakmungkinan komputasi sehingga kita tidak bersusah payah berusaha

memperoleh solusi 100% terhadap fungsi yang diidentifikasi tidak mungkin

dikomputasi.

Contoh Penerapan Teori Bahasa Otomata

Contoh 1:

Model switch on/off digambarkan sebagai berikut :

Model tersebut mengingat apakah switch berada dalam state “on” atau state

“off”. Model memungkinkan user untuk menekan tombol yang memiliki

pengaruh berbeda tergantung pada keadaan switch:

Jika switch berada dalam state “off” maka setelah tombol ditekan state

berubah menjadi “on”.

Jika switch berada dalam state “on” maka setelah tombol ditekan state

berubah menjadi “off”.

Model pada Gambar 1 dapat dipandang sebagai model finite automato sederhana.

Dalam finite automata, state dinyatakan oleh lingkaran, dan dalam Contoh 1 state

diberi nama “on” dan “off”. Arc diantara state diberi label “input “ yang

menyatakan pengaruh eksternal pada sistem. Dalam Contoh 1 kedua arc

diberilabel ‘push” yang menyatakan user menekan tombol tertentu.

Salah satu state dinyatakan sebagai start state atau initial state yang merupakan

state dimana sistem berada dalam keadaan awal. Dalam Contoh start state adalah

Page 7: Makalah Kelompok Kecil TBO

off. Dalam pembahasan selanjutnya, start state ditunjukan oleh kata start dan

panah menuju start state tersebut. Dalam Gambar 1 state on dinyatakan sebagai

final atau accepting state. Dalam state tersebut, peralatan yang sedang dikontrol

oleh switch akan beroperasi. Dalam pembahasan selanjutnya, final State

dinyatakan dalam lingkaran ganda.

Contoh 2:

Finite automaton berikut dapat dinyatakan sebagai bagian dari lexical

analyzer.

Tugas dari automaton tersebut adalah mengenali keyword “then” sehingga

diperlukan lima state masing-masing menyatakan posisi yang berbeda dalam kata

“then” yang telah dicapai sejauh ini. Posisi ini berhubungan dengan prefix dari

kata yang berkisar dari kata string kosong (tidak ada kata yang dikenali sejauh ini)

sampai dengan kata lengkap.

Dalam Gambar 2, input dinyatakan oleh huruf. Start state merupakan string

kosong, dan setiap state memiliki transisi pada huruf selanjutnya dari kata then

ke state yang menyatakan prefix selanjutnya yang lebih besar. State yang diberi

nama “then” dimasuki ketika input mengeja kata “then”. Karena fungsi dari model

dalam Gambar 2 adalah mengenali kata then, maka state “then”dinyatakan

sebagai accepting state.

BAB 2 TAHAPAN PENGUBAHAN NFA KE DFA

Page 8: Makalah Kelompok Kecil TBO

Ekivalensi DFA dan NFA

Suatu DFA dapat dipandang sebagai kasus khusus (subset) dari NFA. Jelas bahwa kelas bahasa yang diterima oleh DFA juga akan diterima oleh DFA. Namun ternyata DFA juga dapat mensimulasikan NFA; yaitu untuk setiap NFA kita

dapat membuat DFA yang ekivalen. Dapat dibuktikan bahwa DFA dan NFA adalah ekivalen, sehingga dapat disebut FA saja.

Simulasi NFA oleh DFA

Cara simulasi NFA oleh DFA adalah dengan membuat state DFA berkorespondensi dengan set state di NFA.

DFA yang dibentuk mencatat semua state yang mungkin pada NFA setelah membaca input tertentu.

Pembuktian

Teorema: Jika L adalah himpunan yang diterima oleh NFA maka ada sebuah DFA yang menerima L

Misalnya sebuah NFA M = (Q, Σ, q0, δ, A) dan DFA M’ = (Q’, Σ’, q0’, δ’, A’) State pada M’ adalah semua subhimpunan dari himpunan state M, yaitu Q’ = 2Q. M’akan

mencatat dalam statenya semua state M yang mungkin pada waktu tertentu.

Pembuktian (2)

F’ adalah himpunan semua state di Q’ yang mengandung final state dari M.

Elemen Q’ akan dinyatakan sebagai [q1, q2, …, qi] dimana q1, q2, …, qi ada di Q– [q1, q2, …, qi] adakah satu state dalam DFA yang berkorespondensi dengan suatu himpunan state di NFA – q0’ = [q0].

Pembuktian (3)

δ’([q1, q2, …., qi], a) = [p1, p2, …, pj] jika dan hanya jika δ’({q1, q2, …., qi}, a) = {p1,p2, …,pj}

Aplikasi δ’ terhadap elemen [q1, q2, …, qi] dari Q’ dihitung dengan mengaplikasikan δΣterhadap setiap q1, q2, …, qi dan membuat gabungannya (unionnya),

Gabungan tersebut digunakan untuk membuat set state baru p1, p2…pj. Himpunan baru ini memiliki representasi [p1, p2, …, pj] di Q’, dan elemen tersebut adalah nilai dari δ’([q1, q2, …., qi], a)

Pembuktian (4)

Page 9: Makalah Kelompok Kecil TBO

Dengan menggunakan induksi, dapat dibuktikan bahwa: δ’(q0’, x) = [q1, q2, …, qi] jika dan hanya jika δ(q0, x) = {q1, q2, …, qi} Jadi: dapat dibuat sebuah mesin DFA yang menerima bahasa yang sama dengan yang

diterima oleh sebuah mesin NFA.

Prosedur NFA ke DFA

Prosedur pengubahan sebuah NFA menjadi DFA C no N A

Langkah 1

State awal DFA menjadi State awal NFA Dari q0 menjadi {q0} Hasil:

Langkah 2 Untuk setiap state DFA: {qi, qj, ... , qm}

Page 10: Makalah Kelompok Kecil TBO

Buat di NFA:

Lanjutan Langkah 2

δΣ({qi , q j,..., qm}, a)=Σ{q′i, q′jΣ,..., q′mΣ} Ulangi langkah ini untuk semua huruf dalam simbol masukan sampai tidak ada transisi

yang bisa ditambahkan.

Contoh :

• NFA

Page 11: Makalah Kelompok Kecil TBO

DFA

Langkah 3

Untuk setiap state DFA {qi, qj, .., qm} • Jika ada qj di final state NFA. Maka {qi, qj, ...., qm} adalah final state di DFA.

Page 12: Makalah Kelompok Kecil TBO

Contoh Langkah 3

NFA

DFA

Page 13: Makalah Kelompok Kecil TBO

BAB 3 CONTOH-CONTOH EKIVALENSI NFA KE DFA

Contoh 1. Ekivalensi NFA ke DFA

Diberikan NFA untuk menerima string yg diakhiri ab

Pertanyaan :

1. Buat Tabel Transisi NFA

2. Buat Tabel Transisi DFA hasil konversi dari NFA

3. Buat Graf Transisinya

Page 14: Makalah Kelompok Kecil TBO

Jawaban :

1. Tabel Transisi NFA

2. Tabel Transisi DFA

Page 15: Makalah Kelompok Kecil TBO

3. Graf Transisi DFA

BAB 4 PENUTUP

Page 16: Makalah Kelompok Kecil TBO

Demikian yang dapat kami paparkan mengenai materi yang menjadi pokok bahasan

dalam makalah ini, tentunya masih banyak kekurangan dan kelemahannya, kerena

terbatasnya pengetahuan dan kurangnya rujukan atau referensi yang ada hubungannya

dengan judul makalah ini.

Penulis banyak berharap para pembaca yang budiman dusi memberikan kritik dan saran

yang membangun kepada penulis demi sempurnanya makalah ini dan dan penulisan

makalah di kesempatan – kesempatan berikutnya.

Semoga makalah ini berguna bagi penulis pada khususnya juga para pembaca yang

budiman pada umumnya.