Anda di halaman 1dari 18

MAKALAH

OTOMATA HINGGA DETERMINISTIK ATAU


DETERMINISTIC FINITE STATE (DFA)

DISUSUN OLEH :
Muhammad Sulhanuddin (221011402188)
Muhammad Rifqi (221011400439)
M. Syauqi Alfayyadh (221011402221)

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER
UNIVERSITAS PAMULANG
2024
DAFTAR ISI

KATA PENGANTAR..............................................................................4
BAB I.........................................................................................................5
PENDAHULUAN.....................................................................................5
1.1. Latar Belakang................................................................................5
1.2. Rumusan Masalah...........................................................................5
1.3. Tujuan.............................................................................................6
1.4. Manfaat...........................................................................................6
BAB II.......................................................................................................7
PEMBAHASAN.......................................................................................7
2.1 Pengertian Teori Otomata............................................................7
2.2 Konsep Dasar:..............................................................................7
2.3 Definisi DFA................................................................................8
BAB III....................................................................................................38
PENUTUP...............................................................................................38
.1 Kesimpulan...................................................................................38
3.1 Saran..............................................................................................39
DAFTAR PUSTAKA.............................................................................39

2
KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah mamberikan kami
kemudahan dan kelancaran untuk menyelesaikan makalah mata kuliah Bahasa Indonesia dengan
judul “otomata dan perkembangannya hingga mencapai Deterministic Finite State Automata
(DFA)” dapat selesai dengan waktu yang telah kami rencanakan.

Selamat datang dalam pengantar singkat tentang teori otomata, sebuah bidang dalam ilmu
komputer yang berfokus pada studi tentang mesin abstrak yang dapat melakukan komputasi. Teori
otomata dan bahasa formal memiliki peran yang penting dalam pengembangan sistem otomatis
dan analisis bahasa, serta memiliki aplikasi luas dalam berbagai bidang seperti pemrosesan bahasa
alami, kompilasi, dan verifikasi perangkat lunak. Kita akan memulai perjalanan kita dengan
memahami konsep dasar otomata, yang merupakan model matematis untuk komputasi. Salah satu
jenis otomata yang paling sederhana adalah Finite Automata (FA), yang merupakan subjek utama
pembahasan dalam topik ini. FA terdiri dari himpunan keadaan, alfabet input, fungsi transisi,
keadaan awal, dan himpunan keadaan akhir. Dalam konteks FA, kita akan menjelajahi dua jenis
otomata utama: Nondeterministic Finite Automata (NFA) dan Deterministic Finite Automata
(DFA). NFA memungkinkan transisi tidak deterministik, sedangkan DFA memiliki aturan transisi
yang deterministik untuk setiap simbol input pada setiap keadaan. Khususnya, kita akan fokus
pada DFA, yang merupakan model otomata yang sangat sederhana tetapi sangat kuat. DFA
memiliki banyak aplikasi dalam pengenalan pola, analisis sintaksis sederhana, dan pemodelan
sistem yang memiliki perilaku reguler. Memahami DFA adalah langkah penting dalam
mempelajari teori otomata secara lebih mendalam. Dengan demikian, mari kita mulai menjelajahi
dunia yang menarik dan beragam dari teori otomata dan bahasa formal, dengan harapan
mendapatkan pemahaman yang lebih baik tentang dasar-dasar komputasi dan bahasa.

Pamulang, 17 Maret 2024

Penulis

3
BAB I

PENDAHULUAN
1.1. Latar Belakang
Pada awalnya, dalam pengembangan ilmu komputer, terdapat kebutuhan untuk
memodelkan mesin abstrak yang dapat melakukan komputasi sesuai dengan aturan
tertentu. Inilah awal mula dari apa yang kemudian dikenal sebagai teori otomata. Teori
otomata adalah cabang penting dalam ilmu komputer yang mempelajari model matematis
dari sistem komputasi.
Salah satu konsep paling mendasar dalam teori otomata adalah Finite Automata (FA).
FA adalah model sederhana yang terdiri dari himpunan keadaan, alfabet input, fungsi
transisi, keadaan awal, dan himpunan keadaan akhir. Dengan FA, kita dapat mengenali
bahasa-bahasa yang dapat didefinisikan secara formal.
Dalam pengembangan FA, terdapat dua jenis otomata utama yang menjadi fokus
utama, yaitu Nondeterministic Finite Automata (NFA) dan Deterministic Finite Automata
(DFA). Pada tahap awal, kedua jenis otomata ini dikembangkan untuk mengenali bahasa-
bahasa reguler, yaitu bahasa yang dapat diterima oleh ekspresi reguler.
Perkembangan teori otomata mencapai puncaknya dengan DFA. DFA merupakan jenis
otomata yang paling sederhana dan kuat. Setiap transisi dalam DFA adalah deterministik,
artinya hanya ada satu transisi yang mungkin untuk setiap simbol input pada setiap
keadaan. Karena sifatnya yang deterministik, DFA sangat cocok untuk mewakili dan
mengenali bahasa-bahasa reguler dengan cara yang efisien.
DFA memiliki banyak aplikasi dalam pemrosesan bahasa alami, kompilasi,
pengenalan pola, dan berbagai bidang lainnya dalam ilmu komputer. Pemahaman yang
baik tentang DFA adalah langkah penting dalam mempelajari teori otomata dan bahasa
formal secara lebih mendalam.
Dengan demikian, pemahaman tentang perkembangan otomata hingga mencapai DFA
memberikan dasar yang kokoh dalam memahami konsep-konsep yang lebih kompleks
dalam teori otomata dan bahasa formal
1.2. Rumusan Masalah

1. Apa pengertian dan konsep dasar dari teori otomata?


2. Bagaimana perkembangan konsep otomata dari Finite Automata (FA) hingga
mencapai DFA?

4
3. Apa perbedaan utama antara Nondeterministic Finite Automata (NFA) dan
Deterministic Finite Automata (DFA)?
4. Bagaimana DFA digunakan dalam pengenalan bahasa dan pengenalan pola?
5. Apa kegunaan dan aplikasi praktis dari DFA dalam komputasi modern dan
pengembangan sistem otomatis?
6. Bagaimana algoritma konversi dari NFA ke DFA bekerja, dan mengapa konversi
ini penting dalam analisis otomata?
7. Apa tantangan utama dalam merancang DFA yang efisien dan memiliki kinerja
optimal?
8. Bagaimana DFA digunakan dalam konteks pengenalan sintaksis dan analisis
bahasa?

1.3. Tujuan

1. Menjabarkan kembali Definisi DFA


2. Menggambarkan Contoh DFA dalam menerima suatu string
3. Membuat Notasi Untuk DFA

1.4. Manfaat

Manfaat dari otomata hingga deterministik atau deterministic finite state (DFA) ini
adalah dapat Memahami otomata dan DFA membantu kita memahami dasar-dasar
komputasi. Konsep-konsep ini merupakan fondasi yang penting dalam pengembangan
dan analisis algoritma, serta pemahaman tentang kinerja mesin komputer.

5
BAB II

PEMBAHASAN
2.1 Pengertian Teori Otomata

Teori otomata adalah cabang dalam ilmu komputer dan matematika yang
mempelajari model matematis dari komputasi. Hal ini melibatkan studi tentang berbagai
jenis mesin abstrak, yang dikenal sebagai otomata, dan bahasa-bahasa yang dapat
diterima atau dihasilkan oleh otomata tersebut.
Dalam konteks ini, otomata adalah model matematis yang merepresentasikan
komputer atau mesin komputasi lainnya. Mereka beroperasi dengan membaca urutan input
dari alfabet tertentu dan bergerak dari satu keadaan ke keadaan lainnya berdasarkan aturan
atau fungsi transisi yang ditentukan.
Tujuan utama teori otomata adalah untuk memahami batasan dan kemampuan
komputasi, serta mengklasifikasikan bahasa-bahasa yang dapat atau tidak dapat diterima
oleh mesin komputasi tertentu. Ini membantu dalam mengidentifikasi masalah yang dapat
diselesaikan secara efisien oleh komputer dan dalam merancang algoritma yang efektif.
Konsep-konsep utama dalam teori otomata meliputi otomata, bahasa formal,
determinisme, dan komputasi. Otomata dapat dibagi menjadi beberapa jenis, termasuk
deterministic finite automata (DFA), nondeterministic finite automata (NFA), pushdown
automata (PDA), dan mesin Turing. Setiap jenis otomata memiliki kekuatan komputasi
yang berbeda-beda.
Teori otomata memiliki banyak aplikasi dalam ilmu komputer, seperti dalam
pemrosesan bahasa alami, kompilasi, pengenalan pola, dan kriptografi. Pemahaman yang
baik tentang teori otomata sangat penting bagi para ahli komputer dalam mengembangkan
solusi yang efisien untuk berbagai masalah komputasi.

2.2 Konsep Dasar:


a. Otomata
Otomata adalah model matematis yang merepresentasikan mesin komputasi
abstrak. Mereka dapat berupa deterministic finite automata (DFA),
nondeterministic finite automata (NFA), pushdown automata (PDA), atau mesin
Turing. Otomata dapat berada dalam satu keadaan tertentu pada satu waktu dan

6
bergerak dari satu keadaan ke keadaan lainnya sesuai dengan input yang diterima
dan aturan transisi.

b. Bahasa Formal
Bahasa formal adalah kumpulan string dari alfabet tertentu. Bahasa-bahasa formal
adalah objek utama dalam teori otomata. Otomata dapat menerima atau
menghasilkan bahasa-bahasa formal tertentu. Bahasa formal sering
direpresentasikan sebagai himpunan string di atas alfabet tertentu.

c. Determinisme
Konsep determinisme mengacu pada sifat suatu otomata di mana pada setiap
langkah dari komputasinya, ada hanya satu aksi yang mungkin. Misalnya, pada
deterministic finite automata (DFA), setiap kombinasi dari state dan input memiliki
tepat satu transisi yang ditentukan.

d. Komputasi
Komputasi adalah proses di mana otomata membaca urutan input dan berpindah
dari satu keadaan ke keadaan lainnya berdasarkan aturan atau fungsi transisi yang
ditentukan. Proses ini dapat berakhir dengan otomata menerima atau menolak
urutan input tertentu.

2.3 Definisi DFA


Pada Deterministic Finite state Automata (DFA), istilah deterministik ini
mengacu pada fakta bahwa setiap input hanya terdapat satu state pada mesin abstrak
yang dapat transisi menuju state tertentu menurut Hopcroft dalam buku nya
Introduction to Automata Theory, Languages, and Computation. Dapat dikatakan
bahwa hanya akan ada satu transisi untuk setiap masukan simbol.

1. DFA didefinisikan dengan 5 unsur yakni M = ( Q, ∑, δ , S, F ). Dengan

1) ∑ adalah himpunan hingga input alfabet.


2) Q adalah himpunan hingga dari state.
3) F adalah himpunan state penerima atau state akhir, F merupakan
7
himpunan bagian dari Q
4) S adalah inisialisasi atau start biasanya S  Q misalnya
5) δ adalah suatu fungsi yang disebut fungsi transisi atau fungsi state
selanjutnya dengan notasi fungsi nya  : Q x ∑ → 1
Q
2. Contoh DFA dalam menerima suatu string
Hal pertama yang perlu dipahami dalam DFA adalah bagaimana suatu DFA
menentukan menerima atau tidak dari sebuah simbol input. Bahasa dari DFA adalah
himpunan semua string yang diterima oleh DFA. Agar lebih memahami maka
perhatikan contoh berikut ini.

Jika suatu Q = ( , , ),  = ( a,b ), F = , S= . Dengan fungsi transisi 


adalah sebagai berikut :

a) ( , a) = ,
b) ( , b) = ,
c) ( , a) = ,
d) ( , b) = ,
e) ( , a) = , dan
f) ( , b) =

Arti dari keenam pernyataan transisi  di atas adalah

a) Merupakan pernyataan untuk transisi dari suatu state jika diberikan


suatu input “a” akan tetap pada
b) Merupakan pernyataan untuk transisi dari suatu state jika diberikan
suatu input “b”, maka state akan berpindah posisi ke state
c) Merupakan pernyataan untuk transisi dari suatu state jika diberikan
suatu input “a” , maka state akan berpindah posisi ke state
d) Merupakan pernyataan untuk transisi dari suatu state jika diberikan
suatu input “b” akan tetap pada
e) Merupakan pernyataan untuk transisi dari suatu state jika diberikan
suatu input “a” , maka state akan berpindah posisi ke state . Dan
f) Merupakan pernyataan untuk transisi dari suatu state jika diberikan

8
suatu input “b”, maka state akan berpindah posisi ke state

Fungsi transisi ini dapat disajikan dalam bentuk diagram sebagai berikut ini :

Gambar 4 1 Diagram fungsi Transisi suatu DFA

Jika ada string masukan bbab, proses string ini seperti berikut :

6) Inisialisasi, mesin berada pada posisi start .


7) Setelah mendapat string pertama “b”, mesin berpindah dari state ke .
8) Setelah mendapat string kedua “b”, mesin berpindah dari state ke .
(Sebenarnya tidak ada perpindahan)
9) Setelah mendapat string ketiga “a”, mesin berpindah dari state ke .
10) Setelah mendapat string pertama “b”, mesin berpindah dari state ke

9
Atau jika dengan menggunakan diagram transisi untuk setiap string dapat

seperti gambar berikut ini :

Gambar 4.2 Proses input string ke mesin DFA

Pada saat memproses string yang di input ke suatu mesin DFA, string akan dibaca satu per
satu simbol abjad dan setiap setelah membaca satu simbol pada simbol selanjutnya akan
semua simbol selesai dibaca hingga menghasilkan suatu posisi state tertentu. Kemudian posisi
state inilah yang akan membantu mesin mengenali string yang diinputkan tersebut.

Berdasarkan contoh di atas, setelah seluruh string bbab telah diproses, Mesin
berada di state , yang merupakan state yang penerima2. Oleh karena itu, string bbab
diterima oleh mesin ini. Kemudian jika sekarang terdapat masukan string abababa.
Setelah membaca string ini dari kiri ke kanan (dimulai pada sebagai state awal),
Mesin ini akan berada di state . Karena bukan state penerima atau state akhir,
dapat dikatakan bahwa mesin menolak berlanjut dari posisi state proses sebelumnya
dan seterusnya hingga string abababa.

Dapat dilihat bahwa mesin ini menerima setiap rangkaian abjad {a,b} hanya
dengan kondisi string yang berakhir dengan b. Pada kenyataannya, Mesin mampu
menerima string dengan kondisi :

 Setiap rangkaian abjad {a,b} yang memiliki properti bahwa ada


sebuah huruf vokal “a” dikuti konsonan “b” paling kanan, akan
diterima oleh mesin ini.

10
 Setiap rangkaian abjad selain kombinasi seperti pernyataan di atas
akan di reject atau ditolak oleh mesin ini.

2. Notasi untuk DFA


Mendeklarasikan sebuah DFA sebagai 5 unsur secara detail beserta deskripsi
dari  fungsi transisi akan membosankan serta sulit untuk membaca nya. Ada dua (2)
cara yang dapat dipilih untuk notasi sebagai deskripsi sebuah otomata atau DFA :

1. Sebuah Diagram Transisi, yakni graph seperti yang sudah dilihat pada
gambar 4.1
Sebuah

11
2. daftar tabel transisi , yang implikasi nya akan memberi tahu mengenai
himpunan dari state – state dan alfabet masukan

Diagram Transisi

Sebuah diagram transisi untuk sebuah DFA M = ( Q, ∑, δ , S, F ) adalah graph


didefinisikan sebagai berikut :

1. Setiap masing – masing state Q merupakan suatu node atau simpul


2. Untuk setiap state q dalam Q dan setiap simbol masukan a dalam , jika 
(q,a) = p. Maka diagram transisi akan memiliki busur dari simpul q menuju
simpul p, diberi label a. Jika terdapat beberapa simbol masukan yang
menyebabkan transisi dari q ke p, maka diagram transisi tersebut hanya
memiliki satu (1) busur, yang dilabeli daftar dari simbol – simbol tersebut.
3. Ada panah yang mengarah ke awal state , diberi label Star. Panah ini
tidak akan ditemui pada state lainnya.
4. Simpul yang sesuai sebagai state penerima atau state akhir (yang ada
pada F) akan ditandai dengan lingkaran ganda. Selain state yang ada di F,
hanya memiliki lingkaran satu.
Contoh diagram transisi dapat dilihat pada gambar 4.2

Gambar 4.3 Contoh diagram transisi yang menerima


setiap string yang berakhiran aa atau ba

Dapat dilihat dari gambar 4.3 bahwa ada dua (2) simpul sebagai state yakni
state dan state . Ada sebuah panah Start yang menuju dan state penerima nya
adalah yang direpresentasikan dengan lingkaran ganda. Selain state adalah satu

12
busur yang dikenali dengan a dan satu busur lainnya yang dikenali b3

Tabel transisi

Tabel transisi adalah bentuk konvensional, tampilan tabel untuk


merepresentasikan sebuah fungsi seperti , yang selalu memerlukan dua argumentasi
dan hingga mengembalikan nilai. Baris dari tabel menyesuaikan dengan state – state,
kolom menyesuaikan input atau masukan dari suatu DFA untuk menunjukkan state -
state berikutnya untuk kombinasi state - state dan input. Tabel transisi dari fungsi
transisi di atas sebagai berikut. Entri untuk baris menyesuaikan ke state q dan kolom
menyesuaikan ke masukan a dimana transisi state  (q,a).

Contoh berikut ini tabel transisi hasil dari diagram transisi pada gambar 4.2.

 a b

Tabel 4.1 Tabel transisi suatu DFA

Dapat dilihat pada tabel transisi di tabel 4.1, menyesuaikan pada fungsi transisi
 yang ada dari diagram transisi pada gambar 4.3. State awal (start) ditandai dengan
adanya panah (→) dan state penerima ditandai dengan tanda bintang (*) . Cara
membaca tabel transisi melalui baca baris ke kolom4 seperti berikut ini :

1. State mendapat input a, maka state berpindah dari ke


2. State mendapat input b, maka state berpindah dari ke
3. State mendapat input a, maka state berpindah dari ke
4. State mendapat input b, maka state berpindah dari ke

13
Contoh :

Buatlah tabel transisi dari gambar 4.4 berikut ini :

Gambar 4.4 Contoh diagram NFA

Jawab :

Hal yang perlu dilakukan adalah menentukan suatu baris diisi state Q yakni
{ , , } dan kolom diisi himpunan input masukan {0,1}, dengan start adalah
dan state penerima F adalah . Maka bentuk dari tabel transisi sebagai berikut :

 0 1

Tabel 4.2 contoh tabel transisi dari gambar 4.3

Konversi dari Tabel Transisi ke Diagram Transisi

Sebaliknya, Kita juga dapat menggambar diagram transisi dari suatu tabel
transisi.

 a b

Dengan

S =q0

F = {q1}

Maka diagram transisinya adalah sebagai berikut.


14
Contoh lain, terdapat tabel transisi sebagai berikut :

 a b

Dengan

S = q0

F = {q 0 , q 2 }

Diagram transisinya dapat kita lihat pada gambar di bawah ini.

Reduksi Jumlah State pada Finite State Automata

Untuk suatu bahasa regular, kemungkinan ada sejumlah Deterministic Finite

15
Automata yang dapat menerimanya. Perbedaannya hanyalah jumlah state yang
dimiliki otomata - otomata yang saling ekuivalen tersebut. Tentu saja, dengan alasan
kepraktisan, memilih otomata dengan jumlah state yang lebih sedikit.

Sasaran nya adalah mengurangi jumlah state dari suatu Finite State
Automata, dengan tidak mengurangi kemampuannya semula untuk menerima suatu
bahasa.

Ada dua buah istilah baru yang perlu kita ketahui yaitu :

1. Distinguishable yang berarti dapat dibedakan.

2. Indistinguishable yang berarti tidak dapat dibedakan.

Sebagai contoh penyederhanaan DFA berikut :

1. Karena q1 indistinguishable dengan q 2 dan q 2 indistinguishable dengan


q 3 , maka bisa dikatakan bahwa q1 , q 2 , dan q 3 saling indistinguishable dan dapat
dijadikan satu state.

2. Sehingga hasil penyederhanaannya adalah sebagai berikut :

16
BAB III

PENUTUP
3.1. Kesimpulan

 Kepentingan Teori Otomata: Teori otomata memberikan


fondasi yang kuat untuk memahami sifat-sifat dasar
komputasi. Melalui studi tentang otomata, kita dapat
memahami batasan dan kemampuan komputasi mesin-
mesin abstrak ini.
 Peran DFA: Sebagai salah satu jenis otomata paling
sederhana dan paling terbatas, DFA memiliki peran penting
dalam memodelkan dan mengenali bahasa-bahasa reguler.
Karena sifat deterministiknya, DFA memiliki aplikasi yang
luas dalam berbagai bidang seperti pemrosesan bahasa
alami, pengenalan pola, kriptografi, dan banyak lagi.
 Keterbatasan dan Kelebihan DFA: Meskipun DFA
memiliki keterbatasan dalam mengenali bahasa-bahasa
yang lebih kompleks, seperti bahasa-bahasa konteks-bebas,
mereka sangat efisien dalam mengenali bahasa-bahasa
reguler. Karena sifat deterministiknya, DFA relatif mudah
dipahami, dianalisis, dan diimplementasikan.
 Proses Perancangan DFA: Proses menuju perancangan
DFA melibatkan langkah-langkah yang terstruktur,
termasuk pemilihan model otomata yang tepat,
perancangan himpunan keadaan, fungsi transisi, dan
pengujian untuk memastikan DFA dapat mengenali bahasa
yang diinginkan.
 Pentingnya Analisis dan Verifikasi: Analisis dan verifikasi
DFA sangat penting untuk memastikan bahwa DFA
berperilaku sesuai dengan spesifikasi yang diinginkan. Ini

17
membantu dalam memastikan kebenaran dan efektivitas
otomata dalam mengenali bahasa-bahasa tertentu.

3.2. Saran

Jika Anda tertarik dalam penelitian atau pengembangan perangkat


lunak, pertimbangkan untuk menjelajahi aplikasi teori otomata dan DFA
dalam bidang yang menarik bagi Anda, seperti pemrosesan bahasa alami,
kecerdasan buatan, atau pengenalan pola. Ini dapat memberikan wawasan
yang berharga tentang bagaimana konsep-konsep teoritis dapat diterapkan
dalam konteks praktis.

DAFTAR PUSTAKA
Hopcroft, John. E., etc. 2001. Second edition. Introduction to
Automata Theory, Languages, and Computation. US
America : Pearson

Martin, John C. 2010. Fourth Edition. Introduction to Language and


The Theory of Computation. United State America : McGraw-
Hill

18

Anda mungkin juga menyukai