Anda di halaman 1dari 6

ATURAN PRODUKSI FINITE STATE AUTOMATA

Lintang Bagas. A1), Rini Nuraini, S.T ., M.Kom. .2)


1)
Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jakarta
2)
Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jakarta
Jl. Sawo Manila 61, Pejaten, Ps. Minggu, Jakarta Selatan 12520
Email : lintangbagas20@gmail.com 1), 050019052@yahoo.com2)

Abstrak
β. α merupakan simbol ruas kiri sedangkan β merupakan
Teknik kompilasi merupakan kelanjutan dari konsep- simbol ruas kanan. Simbol – simbol tersebut dapat
konsep dalam teori bahasa dan otomata. Pada tahun berupa terminal dan nonterminal dimana simbol
1956-1959 Noam chomsky melakukan penggolongan nonterminal dapat diturunkan menjadi simbol terminal.
tingkatan dalam bahasa, yaitu menjadi 4 class. Simbol terminal disimbolkan dengan huruf kecil (a,b,c,
Penggolongan tingkatan itu disebut dengan hirarki dan sebagainya), sedangkan simbol nonterminal
chomsky. disimbolkan dengan huruf besar (A,B,C, dan
sebagainya).
Tata bahasa (grammar) adalah sekumpulan dari
himpunan variabel-variabel, simbol-simbol terminal, 2. Pembahasan
simbol non-terminal, dan simbol awal yang dibatasi oleh
A. Aturan Produksi Bahasa Regular
aturan-aturan produksi. Aturan produksi itu sendiri
Kompilator (compiler) adalah sebuah program yang
adalah pusat dari tata bahasa yang menspesifikasikan
membaca suatu program yang ditulis dalam suatu bahasa
bagaimana suatu tata bahasa melakukan transformasi
sumber (source language) dan menterjemahkannya ke
suatu string ke suatu bentuk lainnya.
dalam suatu bahasa sasaran (target language).
Proses kompilasi dapat dilihat pada gambar sebuah kotak
Kata kunci: teknik kompilasi, chomsky, tata bahasa,
hitam (black box) berikut ini:
aturan produksi.

1. Pendahuluan
Komputer mengikuti sejumlah prosedur sistematis atau
algoritma yang dapat diaplikasikan untuk serangkaian Gambar 1. Proses kompilasi
input (string) yang menyatakan integer dan
menghasilkan jawaban setelah sejumlah berhingga Kemudian tata bahasa (grammar) adalah merupakan
langkah. Karena tidak puas dan terbatasnya jawaban sekumpulan dari himpunan variabel-variabel, simbol-
yang dihasilkan dari langkah-langkah tersebut, kemudian simbol terminal, simbol non-terminal, simbol awal yang
pada tahun 1930-an Alan Turing mempelajari mesin dibatasi oleh aturan-aturan produksi. Tata Bahasa
abstrak yang memiliki kemampuan seperti komputer (grammar) itu sendiri didefinisikan dengan empat (4)
sekarang (dalam hal apa yang dihitung) dengan tujuan tupel G = ({V, T, P, S})
dapat mempermudah semua perhitungan serta dimana :
mengefisienkan waktu dalam perhitungan tersebut. V = Himpunan simbol variabel / non terminal
T = Himpunan simbol terminal
Mesin abstrak itu sendiri adalah model teoritis dari P = Kumpulan aturan produksi
perangkat keras atau perangkat lunak yang digunakan S = Simbol awal
dalam teori automata. Tipe paling sederhana dari mesin
abstrak adalah finite automaton atau finite state machine. Aturan produksi adalah pusat dari tata bahasa yang
Prinsip yang mendasari mesin ini adalah sistem pada menspesifikasikan bagaimana suatu tata bahasa
setiap saat dalam salah satu dari sejumlah state melakukan transformasi suatu string ke suatu bentuk
berhingga dan bergerak diantara state-state tersebut lainnya. Selain itu, dapat juga mengkonstruksi aturan-
dalam merespon sinyal input individual. aturan produksi untuk suatu tata bahasa regular, yang
dimana batasan aturan produksi untuk bahasa regular itu
Setelah beberapa tahun kemudian, mulai sendiri, yaitu :
diperkenalkanlah aturan produksi yang dimana dalam α→β
teorinya adalah sebuah proses yang menspesifikasikan α adalah sebuah simbol variabel.
bagaimana suatu tata bahasa dan mentransformasi suatu β maksimal memiliki sebuah simbol variabel yang bila
string ke bentuk lainnya. Aturan produksi dinyatakan ada terletak diposisi paling kanan.
dalam bentuk α → β, α menghasilkan atau menurunkan
Batasannya dapat bertambah lagi, dimana ruas kanan
maksimal memiliki sebuah simbol variabel yang terletak
dipaling kanan. Artinya bisa memiliki simbol terminal
dengan jumlah tidak dibatasi, tetapi bila terdapat simbol
variabel maka simbol variabel tersebut hanya berjumlah
satu (1) dan terletak paling kanan.

Namun aturan produksipun dapat juga dinyatakan tidak Gambar 2. Contoh mesin finite state automata
legal apabila sebagai berikut:
 Simbol ɛ tidak boleh berada pada ruas kiri, Pada contoh mesin finite state automata tersebut,
misal ɛ → Abd memiliki simbol input ‘a’ dan ‘b’.
ɛ merupakan string kosong  Misalkan identitas state awal q0 dengan simbol
 Aturan produksi yang ruas kirinya hanya awal S.
memuat simbol terminal saja misal : a → bd δ (q0, a) = q1
atau ab → bd Dapat ditulis :
 Bahasa manusia/bahasa alami termasuk ke S → aE
dalam tata bahasa Tipe 0/unrestricted, atau Dimana E kita identikan dengan q1.
tidak ada batasan pada aturan produksinya.
 Batasan context sensitive biasanya turut  Dari q1 terdapat transisi :
digunakan dalam proses analisis semantik pada δ (q1, ε) = q2 dan δ (q1, ε) = q3
tahapan kompilasi Dapat ditulis :
 Bahasa context free menjadi dasar dalam E →A E → B
pembentukan suatu parser / proses analisis Dimana A kita identikan dengan q 2 dan B kita
sintaksis, dideskripsikan dengan notasi BNF identikan dengan q3.
(Backus Normal Form)
 Selanjutnya dapat dilihat, dari state q2 dengan
B. Mengkonstruksi Aturan Produksi dari Suatu input ‘a’ kembali ke state q2 dan dari state q3
Finite State Automata dengan input ‘b’ kembali ke state q3.
Finite State Automata awalnya dikembangkan δ (q2, a) = q2 dan δ (q3, b) = q3
berdasarkan pemikiran neural network dan switching Dapat ditulis :
circuit. Finite State Automata merupakan tool yang A → aA B → bB
sangat berguna dalam perancangan lexical analyzer,
yaitu bagian dari kompilator yang mengelompokkan  Selanjutnya, dari state q2 dengan input ‘b’
karakter-karakter ke dalam token, yang berupa unit menuju state q4 dan dari state q3 dengan input
terkecil seperti nama, variabel dan keyword. Dalam ‘b’ menuju ke state q4. Sementara q4 adalah
sistem penulisan, kompilator secara otomatis akan himpunan state akhir dan dari state q4 tidak ada
mentransformasikan ke dalam finite state automata dan lagi busur keluar, maka :
dipakai juga dalam text editor, pattern matching, δ (q2, b) = q4 dan δ (q3, b) = q4
sejumlah pemrosesan teks, dan program file-searching, Dapat ditulis :
dan sebagai juga konsep matematis untuk aplikasi lain A→ b B → b
yang berhubungan dengan logika.
 Kumpulan-kumpulan aturan produksi yang
Finite state automata itu sendiri terdiri dari sejumlah telah diperoleh bisa ditulis sebagai berikut :
berhingga state. Dalam banyak sistem dan komponen S → aE
seperti dijelaskan di atas, sejumlah berhingga state E →A| B
tersebut digunakan untuk mengingat bagian dari histori A → aA | b
suatu sistem. Karena hanya terdapat sejumlah berhingga B → bB | b
state, maka secara umum histori sistem secara
keseluruhan tidak dapat disimpan/diingat, sehingga ‘|’ berarti atau, maka secara formal tata bahasa
sistem tersebut harus dirancang terlebih dahulu untuk yang diperoleh dari otomata tersebut dapat
mengingat apa yang penting dan melupakan apa yang ditulis dengan sebagai berikut:
tidak penting. V = {S, E, A, B}
T = {a, b}
Dalam mengkonstruksi aturan produksi tata bahasa P = { S → aE , E → A | B , A → aA | b , B →
regular dari suatu finite state automata, perlu diingat bB | b }
yang menjadi perhatian adalah state-state yang bisa S=S
menuju ke state akhir.
Kemudian bisa dilihat pada contoh selanjutnya.
Gambar 4. Contoh lain lagi mesin finite state automata

 Contoh lain, dari gambar ketiga tersebut, maka


aturan produksinya adalah sebagai berikut:
S → aA | aS
A → bB
B → bA | ɛ ,

C. Finite State Automata untuk suatu Tata Bahasa


Gambar 3. Contoh lain mesin finite state automata Regular
Jika sebelumnya dari suatu diagram transisi finite state
 Maka, dapat dikonstruksikan aturan produksi automata dapat dibuat aturan-aturan produksi tata bahasa
untuk otomata tersebut sebagai berikut: regularnya, maka sebaliknya bisa juga mengkonstruksi
T = {a,b} diagram transisi finite state automata untuk suatu tata
S=S bahasa regular yang diketahui aturan-aturan
produksinya.
Contoh: Tata bahasa regular
 Kemudian, kumpulan aturan produksinya
S → aB | bA | ɛ
dibuat sebagai berikut:
A → abaS
S → aA | bB
B → babS
(identikkan S untuk q0, A untuk q1, B untuk q4)
A → bC
Maka, selanjutnya dapat langsung menggambar atau
(identikkan C untuk q2)
merancang diagram transisi finite state automatanya,
C → aS
yang dimana S identik dengan q0; A identik dengan q1;
(dari q2 mendapat input a ke q0)
dan B identik dengan q4.
(dari q3 tidak ada transisi keluar dan bukan state
Lengkapnya adalah sebagai berikut:
akhir maka transisi ke q3 kita abaikan)
B → bD
(identikkan D untk q5)
D → bS
(dari q5 mendapat input b ke q0)
(dari q6 tidak ada transisi keluar dan bukan state
akhir maka transisi ke q6 kita abaikan)

 Pada kasus ini kita lihat q0 sebagai state akhir


masih memiliki transisi keluar, maka
untuk menandakannya sebagai state akhir kita
buat:
Gambar 5. Gambar atau rancangan diagram transisi
S→ɛ
finite state automata
 Berbeda dengan kasus gambar sebelumnya
D. Jenis-Jenis Finite State Automata
dimana state akhir q4 tidak memiliki transisi
Ada dua jenis finite state automata, yaitu:
keluar.
Maka diperoleh:
 Deterministic Finite Automata (DFA)
V = {S,A,B,C,D}
Merupakan suatu state yang pada state
P ={ S → aA | bB | ɛ, A → BC, B → bD, C→
berikutnya mempunyai simbol masukan yang
aS, D → bS }
diterima. Deterministik artinya tertentu/sudah
tertentu fungsi transisinya.
Yang dimana sebenarnya aturan produksi
Notasi matematis deterministic finite automata
tersebut masih dapat disederhanakan menjadi:
adalah sebagai berikut:
P ={ S → aA | bB | ɛ, A → BaS, B → bbS }
M = nama DFA
Q = himpunan keadaan DFA
Sehingga mereduksi jumlah simbol variabel yang
S = himpunan alfabet
diperlukan seperti berikut ini:
d = fungsi transisi
q0 = keadaan awal o Dari suatu state bisa terdapat 0,1 atau
F = keadaan akhir lebih busur keluar (transisi) berlabel
simbol input yang sama.
M = (Q, S, d, q0, F) o Untuk NFA harus dicoba semua
kemungkinan yang ada sampai
Contoh: Pengujian untuk menerima bit string dengan terdapat satu yang mencapai state
banyaknya 0 genap, serta banyaknya 1 genap. akhir.
0011 : diterima o Suatu string x dinyatakan diterima
10010 : ditolak, karena banyaknya 0 ganjil oleh bahasa NFA apabila, M= (Q, _, d,
S, F) bila {x | d (S,x) memuat sebuah
Diagram transisi-nya: state di dalam F}

3. Kesimpulan
 Kompilator (compiler) adalah sebuah program
yang membaca suatu program yang ditulis
dalam suatu bahasa sumber (source language)
dan menterjemahkannya ke dalam suatu bahasa
sasaran (target language).
 Tata bahasa (grammar) adalah merupakan
sekumpulan dari himpunan variabel-variabel,
simbol-simbol terminal, simbol non-terminal,
Gambar 6. Gambar diagram transisi deterministic finite
simbol awal yang dibatasi oleh aturan-aturan
automata
produksi. Tata Bahasa (grammar) itu sendiri
didefinisikan dengan empat (4) tupel G = ({V,
Maka deterministic finite automatanya adalah:
T, P, S})
Q = {q0 , q1 , q2 , q3 }
dimana :
Σ = {0,1}
V = Himpunan simbol variabel / non terminal
S = q0
T = Himpunan simbol terminal
F = { q0}
P = Kumpulan aturan produksi
fungsi transisinya adalah:
S = Simbol awal
 Aturan produksi adalah pusat dari tata bahasa
yang menspesifikasikan bagaimana suatu tata
bahasa melakukan transformasi suatu string ke
suatu bentuk lainnya.
 Finite state automata adalah mesin abstrak
berupa sistem model matematika dengan
masukan dan keluaran diskrit yang dapat
mengenali bahasa paling sederhana (bahasa
Gambar 7. Gambar fungsi transisi deterministic finite reguler) dan dapat diimplementasikan secara
automata nyata.
δ(q0,011) = δ(q2,11) = δ(q3,1) = q2 → Ditolak.  Finite State Automata merupakan tool yang
δ(q0,1010) = δ(q1,010) = δ(q3,10) = δ(q2,0) = q0 → sangat berguna dalam perancangan lexical
Diterima. analyzer, yaitu bagian dari kompilator yang
mengelompokkan karakter-karakter ke dalam
 Non-Deterministic Finite Automata (NFA) token, yang berupa unit terkecil seperti nama,
Merupakan suatu state yang ada 0, 1 atau lebih variabel dan keyword yang dimana dalam
state yang dimana untuk state berikutnya sistem penulisan, kompilator secara otomatis
memiliki simbol masukan yang diterima. akan mentransformasikan ke dalam finite state
Ciri-ciri non-deterministic finite automata automata dan dipakai juga dalam text editor,
sebagai berikut: pattern matching, sejumlah pemrosesan teks,
o Merupakan otomata berhingga yang dan program file-searching, dan sebagai juga
tidak pasti untuk setiap pasangan state konsep matematis untuk aplikasi lain yang
inputnya, yang dimana bisa memiliki 0 berhubungan dengan logika.
(nol) atau lebih pilihan untuk state  Kedua jenis finite state automata tersebut
berikutnya. mampu mengenali himpunan reguler secara
o Untuk setiap state tidak selalu bernilai presisi, dengan demikian kedua jenis finite state
tepat, karena ada satu state berikutnya automata itu dapat mengenali string-string
untuk setiap simbol input yang ada.
yang ditunjukkan dengan ekspresi reguler pada tahun 2010. Saat ini menjabat sebagai Lektor dan
secara tepat. menjadi Dosen di Universitas Nasional Jakarta.
 Deterministic finite automata dapat menuntun
recognizer (pengenal) lebih cepat dibanding
non-deterministic finite automata. Namun
demikian, deterministic finite automata
berukuran lebih besar dibanding non-
deterministic finite automata yang ekuivalen
dengannya. Kemudian, Lebih mudah
membangun non-deterministic finite automata
dibanding deterministic finite automata untuk
suatu bahasa, namun juga lebih mudah
mengimplementasikan deterministic finite
automata dibanding non-deterministic finite
automata.

Daftar Pustaka
[1] Sitinjak, Kiki. 2012. Konsep & Notasi Bahasa. {Online}. Tersedia:
https://kikisitinjak.files.wordpress.com/2013/11/03_tekkom_-
_konsep-dan-notasi-bahasa.pdf. 08 Desember 2019.
[2] Soetanto, Hari. 2004. Teknik Kompilasi. {Online}. Tersedia:
http://febianto.staff.gunadarma.ac.id/Downloads/files/30756/buku
_teknik+kompilasi.pdf. 08 Desember 2019.
[3] Sari Tobing, Fetri. 2018. PENGANTAR TEKNIK KOMPILASI.
{Online}. Tersedia: https://slideplayer.info/slide/12630602/. 09
Desember 2019.
[4] Liverpudlian, Sidik. 2015. ATURAN PRODUKSI. {Online}.
Tersedia: https://slideplayer.info/slide/3659294/. 09 Desember
2019.
[5] El Said, Fairuz. 2011. Teori Bahasa dan Otomata (TBO).
{Online}. Tersedia:
https://fairuzelsaid.wordpress.com/2011/03/24/teori-bahasa-dan-
otomata-tbo-pendahuluan/. 06 Januari 2020.
[6] Rahmad, Reza. 2013. Aturan Produksi. {Online}. Tersedia:
https://www.scribd.com/doc/249226613/Aturan-Produksi. 06
Januari 2020.
[7] Lesmana, Hendra. 2018. ATURAN PRODUKSI UNTUK SUATU
FSA. {Online}. Tersedia: https://slideplayer.info/slide/13027888/.
06 Januari 2020.
[8] Faradilla, Kiki. 2015. Aturan Produksi Untuk Suatu Finite State
Automata. {Online}. Tersedia:
https://kikifaradilla.wordpress.com/2015/03/19/aturan-produksi-
untuk-suatu-finite-state-automata/. 06 Januari 2020.
[9] Cahyaning Tyas, Rizqia. 2012. MODUL TEORI BAHASA DAN
AUTOMATA. {Online}. Tersedia:
https://www.academia.edu/31597367/MODUL_TEORI_BAHASA
_DAN_AUTOMATA. 06 Januari 2020.
[10] Novianti, Mia. 2015. KONSEP dan NOTASI BAHASA. {Online}.
Tersedia: https://slideplayer.info/slide/2380405/. 06 Januari 2020.
[11] Simaremare, Riska. 2013. Finite State Automata. {Online}.
Tersedia:
https://riskasimaremare.wordpress.com/2013/04/23/finite-state-
automata/. 06 Januari 2020.

Biodata Penulis

Lintang Bagas Adrianto, Dilahirkan di jakarta pada 22


Mei 1999. Sekarang ini berumur 20 tahun dan bertempat
tinggal di daerah Ciracas, Jakarta Timur, DKI Jakarta.
Saat ini sedang menjalani kuliah semester 5 di
Universitas Nasional Jakarta.
Rini Nuraini, S.T ., M.Kom. ., memperoleh gelar
Sarjana Teknik (S.T), pada 20 November tahun 1997 di
Universitas Yarsi. Memperoleh gelar Magister Ilmu
Komputer (M.Kom.) di STMIK Nusa Mandiri Jakarta,

Anda mungkin juga menyukai