Anda di halaman 1dari 13

LAPORAN PROJECT

TEORI BAHASA DAN OTOMATA


PROGRAM DFA UNTUK MENERIMA STRING BERISI PIN ATM

Disusun Oleh :
Rahmad Arifan HR / 13523077
Bimo Prakoso / 13523078
Muhammad Aulia Arizal / 13523091
Sujatmiko Dwi Jaya Putra / 13523095
Vicky Vadya Royibha / 13523103

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS ISLAM INDONESIA
2015/2016
KATA PENGANTAR

Assalamualaikum Wr.Wb.

Alhamdulillah, segala puji bagi Allah SWT yang telah memberikan karunia dan
rahmatnya kepada kami sehingga dapat menyelesaikan laporan dan tugas yang telah diberikan
kepada kami.

Kami menyelesaikan laporan ini sebagai kewajiban mahasiswa dan syarat untuk lulus
matakuliah TBO ini.

Kami menyadari bahwa penulisan laporan ini masih memiliki banyak kekurangan. Untuk
itu kami mengharapkan saran dan kritik yang membangun agar laporan menjadi lebih baik dari
sebelumnya.

WassalamualaikumWr.Wb.

Yogyakarta, 19 Desember 2015

Penyusun
DAFTAR ISI

KATA PENGANTAR
DAFTAR ISI.......................................................... Error! Bookmark not defined.
BAB I PENDAHULUAN ...................................... Error! Bookmark not defined.
1.1. Latar Belakang .......................................................................................... 1
1.2. Rumusan Masalah ..................................................................................... 1
1.3 Batasan Masalah ........................................................................................ 1
1.4 Tujuan........................................................................................................ 2
1.5. Manfaat...................................................................................................... 2
1.6 Sistematika Penulisan................................................................................ 2
BAB II HASIL DAN PEMBAHASAN
2.1 Penjelasan Beserta capture DFA
2.2 Penjelasan Beserta capture hasil program
BAB III KESIMPULAN DAN SARAN
3.1. Kesimpulan
3.2. Saran
DAFTAR PUSTAKA ............................................................................................ iii
BAB I
PENDAHULUAN

1.1 Latar Belakang


Finite State Automata atau FSA merupakan suatu mesin abstrak yang dapat mengenali
berbagai tingkatan bahasa mulai dari low level language hingga high level language, bahasa
paling Sederhana yang dapat dikenali oleh FSA ialah bahasa reguler. FSA memiliki state
yang banyaknya tak hingga kemudian dapat berpindah dari satu state ke state lainnya
berdasarkan masukan dan transisinya, dan fsa tidak memiliki tempat penyimpanan. Ada dua
jenis FSA yaitu DFA (Deterministic Finite Automata) dan NFA (Non Deterministic Finite
Automata), perbedaan kedua jenis FSA tersebut adalah pada DFA hanya memiliki satu start
state dan hanya memiliki satu transisi (perpindahan state) untuk setiap karakter yang
dimasukan sedangkan pada NFA bisa memiliki banyak start state dan bisa memiliki lebih
dari satu transisi dari setiap karakter yang telah dimasukan.
Pada tugas kali ini kami akan mencoba membuat suatu program dengan
mengaplikasikan metode DFA yang dapat menerima string berisi pin atm yang valid dengan
jumlah string yang dapat diterima minimal sebanyak 4 digit dan maksimal 6 digit. Masukan
yang dapat diterima oleh program akan dibatasi hanya berupa angka karena seperti mesin
atm pada umumnya sistem hanya bisa menerima pin berbentuk angka mulai 0 hingga 9 selain
itu maka masukan tersebut akan ditolak oleh sistem. Sebelum membuat sistem terlebih
dahulu kami akan memodelkan bentuk DFAnya sehingga dari state-state yang ada pada DFA
tersebut nantinya akan dikonversi menjadi fungsi-fungsi pada program.

1.2 Rumusan Masalah


a. Bagaimana DFA yang dapat menerima string angka berjumlah 4 digit atau 6 digit?
b. Bagaimana program mengenali karakter yang dimasukkan?

1.3 Batasan Masalah


a. Hanya menyimpan karakter dalam bentuk angka
b. Hanya menerima 4 atau 6 digit angka
1.4 Tujuan
Program yang dibuat nantinya akan dapat menerima string dengan angka berjumlah
empat atau enam digit dan akan menampilkan output diterima.

1.5 Manfaat
Mengetahui alur proses DFA yang menerima string angka berjumlah empat atau enam
digit untuk pengisian pin atm yang valid

1.6 Sistematika Penulisan


Sistematika penulisan dalam penulisan laporan ini adalah sebagai berikut:
1. BAB I PENDAHULUAN
Bab I ini menjelaskan tentang bagaimana latar belakang, rumusan masalah, batasan
masalah, tujuan, manfaat, dan sistematika penulisan.
2. BAB II HASIL DAN PEMBAHASAN
Pada Bab II ini membahas hasil dari capture DFA dan capture dari program yang telah
dibuat.
3. BAB III KESIMPULAN DAN SARAN
Pada Bab III berisi beberapa kesimpulan dari laporan yang telah dibuat dan saran atau
masukkan untuk laporan kami yang masih belum sempurna
BAB II
HASIL DAN PEMBAHASAN

2.1 Penjelasan Beserta capture DFA

Gambar 3.1.1

Pada kasus ini state yang dibutuhkan untuk melengkapi DFA kami adalah sebanyak 8 buah,
dimana q0 sebagai start state, q4 serta q6 sebagai final state, kemudian q7 berfungsi sebagai
death state. Fungsi dari death state ini ialah apabila kita memasukan suatu input yang salah
kedalam DFA maka input tersebut nantinya akan masuk ke state q7. Alur dari DFA ini adalah
dari start state yaitu q0 akan menuju ke q1 jika Input yang dimasukan hanyalah angka 0 hingga 9
jika kita memasukan karakter selain angka seperti huruf atau pun karakter lain maka masukan itu
akan menuju ke state q7 dan tidak akan berhenti di final state yang artinya masukan tersebut
ditolak, kenapa masukan yang hanya diterima hanyalah angka 0 hingga 9 karena pada pin ATM
karakter yang dapat diterima hanyalah angka sistem tersebut tidak dapat menerima karakter lain
seperti huruf atau karakter lainnya. Begitu pula dari q1 menuju q2, q2 menuju q3, dan q3 menuju
final state q4. Mengapa pada dfa ini terdapat dua final state yaitu pada q4 dan q6 karena jumlah
pin yang dapat diterima pada sistem ini hanya sebanyak 4 digit atau 6 digit sehingga jika dari q0
sampai pada state q4 maka DFA itu diterima namun jika dari start state dia hanya sampai ke q5
atau bahkan ke q7 artinya DFA tersebut ditolak, dan kasus yang sama seperti pada q4 untuk state
q6.
2.2 Penjelasan Beserta capture kode program

Gambar 3.2.1
1. Baris kode diatas merupakan suatu prosedur bernama recognize yang digunakan untuk
mencari nilai true atau false dari masukan yang telah kita lakukan, jika masukan kita
bernilai true maka masukan tersebut diterima dan akan ditampilkan pemberitahuaanya
pada sistem namun jika masukan yang dilakukan salah maka sistem akan menampilkan
pemberitahuan bahwa masukan tersebut ditolak.

Gambar 3.2.2
2. pada gambar 3.2.2 di baris kode 19 hingga 33 merupakan representasi dari state q0 yang
merupakan start state, penjelasannya adalah jika kita memasukan string kosong kedalam
sistem maka fungsi akan mengembalikan nilai false dan jika kita memberi masukan
berupa angka dimana angka yang dapat diterima hanyalah dari 0 hingga 9 maka sistem
akan mengembalikan nilai ke fungsi q1 namun apabila kita memberi masukan diluar
dari angka yang dapat diterima maka sistem mengembalikan ke fungsi q7.
Gambar 3.2.3
3. Gambar diatas merupakan state q1 yang dikonversi kedalam bentuk kode program,
sama seperti pada gambar sebelumnya dimana ketika kita memasukan string kosong
atau tidak memasukan karakter apapun kedalam sistem maka fungsi diatas akan
mengembalikan ke nilai false artinya bahwa masukan kita ditolak, namun apabila kita
memasukan angka secara acak diantara 0 hingga 9 maka fungsi tersebut akan
mengembalikan nilai ke fungsi q2, dan jika kita memasukan karakter selain angka 0
hingga 9 maka sistem akan mengembalikan nilainya ke fungsi q7

Gambar 3.2.4
4. Dengan alur yang sama fungsi q2 diatas akan mengembalikan nilai false apabila kita
tidak memasukan nilai apapun kedalam sistem dan akan mengembalikan nilainya ke
fungsi q3 jika kita memasukan angka dari rentang 0 hingga 9 kemudian akan
mengembalikan nilai itu ke fungsi q7 jika masukan yang kita lakukan kedalam sistem
salah.
Gambar 3.2.5
5. Di fungsi q3 sistem akan mengembalikan nilai ke fungsi q4 yang merupakan final state
jika masukan yang diberikan kedalam sistem berupa angka dari 0 hingga 9 jika masukan
yang diberikan salah maka fungsi akan mengembalikan nilai ke fungsi q7 atau jika kita
tidak memasukan apapun kedalam sistem maka fungsi akan mengembalikan ke nilai
false yang artinya masukan kita ditolak.

Gambar 3.2.6
6. Gambar diatas merupakan fungsi q4 yang menjadi representasi final state pada DFA
yang telah kami buat. Sedikit berbeda dari langkah-langkah sebelumnya jika biasanya
kita memasukan string kosong kedalam sistem fungsi akan mengembalikan nilai false
pada gambar diatas fungsi justru mengembalikan ke nilai true apabila kita memasukan
string kosong kedalam sistem karena sistem dapat menerima 4 digit angka pin. Namun
jika kita tetap ingin memasukan lebih dari 4 digit angka tetap dimungkinkan sehingga
fungsi akan mengembalikan nilai tersebut ke fungsi q5 namun jika masukan yang
dilakukan salah fungsi tetap akan mengembalikan ke fungsi q7.
Gambar 3.2.7
7. Di fungsi q5 langkahnya sama seperti pada fungsi q0, q1, q2, dan q3 dimana fungsi ini
akan mengembalikan ke nilai false jika kita tidak memasukan nilai apapun kedalam
sistem, dan akan mengembalikan ke fungsi q6 jika kita memasukan salah satu angka
dari rentang 0 hingga 9 kemudian akan mengembalikan nilai ke fungsi q7 jika kita
memasukan karakter lain selain angka.

Gambar 3.2.8
8. Pada final state ke dua yaitu q6 fungsi akan mengembalikan nilai true jika kita tidak
memasukan string apapun kedalam sistem namun jika kita memasukan angka dari 0
hingga 9 atau memasukan karakter lainnya maka fungsi akan mengembalikan nilainya
ke fungsi q7 artinya jika kita memasukan suatu input kedalam q6 ini maka masukan
yang kita lakukan dianggap salah karena pada sistem ini digit pin yang dapat diterima
hanya 4 atau maksimal 6 digit lebih dari itu sistem akan menolaknya.
Gambar 3.2.9
9. Pada fungsi q7 karena ia berfungsi sebagai death state yaitu fungsi yang menampung
segala inputan yang tidak bisa diterima oleh sistem maka tidak dimugkinkan untuk
melakukan input pada fungsi ini, jika kita memberikan masukan kedalam fungsi ini
maka fungsi akan mengembalikan nilainya ke dirinya dan input yang kita masukan tidak
pernah menuju ke final state yang berarti masukan kita ditolak oleh sistem.

Gambar 3.2.10
10. Melakukan proses instansiasi dari kelas DFA setelah itu melakukan deklarasi terhadap
fungsi scanner agar dapat melakukan input ke dalam sistem, kemudian sistem akan
menampilkan output berupa Masukkan PIN: dan meminta kita memasukan input
berupa string sebanyak 4 digit atau 6 digit lalu sistem akan melakukan pemanggilan
method pada kelas DFA
BAB III
KESIMPULAN DAN SARAN

3.1 Kesimpulan
Kesimpulan yang didapat yaitu program DFA yang dibuat sudah dapat digunakan
untuk membuat string pin atm yang berisi angka yang berjumlah empat atau enam digit,
sehingga jika kita mengisi pin atm selain angka berjumlah empat atau enam digit, atau
mengisi dengan huruf atau karakter akan muncul pesan output string ditolak.

3.2 Saran
Saran untuk kedepannya semoga program ini dapat dikembangkan lebih lanjut
dan diaplikasikan didalam dunia nyata.
DAFTAR PUSTAKA

Klasiber.uii.ac.id
Introduction to Automata Theories, Languages and Computation (Hopcroft, Motwani, &
Ullman, 2001)

Anda mungkin juga menyukai