Anda di halaman 1dari 27

Teori Bahasa dan Otomata

• Pengenalan Teori Bahasa & Automata

By : M. Soekarno Putra
Pengenalan Teori Bahasa & Automata
 Referensi Buku : Teori Bahasa dan Otomata, Firrar
Utdirartatmo
Sejarah Otomata
Teori otomata mempelajari tentang mekanisme komputer abstrak atau
mesin abstrak. Jauh sebelum ada komputer, tahun 1930 Alan Turing
mempelajari mesin abstrak yang punya kemampuan seperti komputer
sekarang, dikenal dengan nama Mesin Turing. Tujuan Turing adalah
menggambarkan secara jelas apa yang dapat dan yang tidak dapat
dilakukan mesin komputing.
Sejarah Otomata
Kemudian pada tahun 1940 an dan 1950-an, ditemukan mesin abstrak
yang lebih sederhana, yaitu “finite automata”. Automata ini, asalnya
diperuntukkan untuk membentuk fungsi kecerdasan, berubah secara
drastis untuk keperluan lain yang sangat beragam. Tahun 1950-an juga
Chomsky mempelajari tentang “tata bahasa” formal, yang sangat
berguna untuk pengembangan compiler.
Sejarah Otomata
Semua pengembangan teori ini secara langsung melahirkan ilmu-ilmu
komputer yang sekarang ini. Beberapa konsepnya, seperti “Finite
Automata” dan “grammar”, digunakan untuk perancangan dan
pembuatan bermacam software penting, seperti Pascal dan C. Konsep
lainnya, seperti Mesin Turing, membantu kita memahami apa yang
dapat kita harapkan dari perangkat lunak kita.
Kedudukan Teori Bahasa dan Otomata
Pada Ilmu Komputer

Ilmu komputer mempunyai 2 komponen utama :


• Model dan gagasan mendasar mengenai komputasi.
• Teknik rekayasa untuk perancangan sistem 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 perbedaan disiplin
ilmu.
• Teknik elektro : Mengembangkan switching sebagai tool
untuk mendesain
hardware.
• Matematika : Bekerja berdasarkan logika.
• Ahli Bahasa : Menyelidiki tata bahasa untuk natural language.
• Ahli Biologi : Mempelajari neural network.
Spesifikasi dari sebuah bahasa pemrograman :
• Himpunan simbol-simbol (alphabet) yang bisa dipakai untuk
membentuk program yang benar.
• Himpunan program yang benar secara sintaktik.
• Makna dari program tersebut.
Automata
Automata adalah mesin abstrak yang dapat mengenali (recognize), menerima
(accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa
tertentu.
Automata berasal dari bahasa Yunani automatos, yang berarti sesuatu yang
bekerja secara otomatis (mesin). Istilah automaton sebagai bentuk tunggal
dan automata sebagai bentuk jamak. Teori Automata adalah teori tentang
mesin abstrak yang :

bekerja sekuensial
menerima input
mengeluarkan output
Konsep Bahasa dan Otomata
• Teori bahasa adalah konsep-konsep pada "string alpabet “ dalam
penyambungan karakter-karakter alpabet untuk membentuk suatu makna
(bahasa).
• Alpabet adalah
a himpunan simbol (karakter) tak kosong yang berhingga.
Alpabet digunakan untuk membentuk kata-kata (string-string) di
bahasa. Bahasa dimulai dengan alpabet. Alpabet dilambangkan dengan Σ
• String adalah deretan simbol dari alpabet dimana perulangan simbol
diijinkan.
• Panjang String adalah jumlah simbol didalam string bukan pada alphabet
dan pengulangan kemunculan simbol dihitung.
• Simbol-simbol : ‘a’,’b’,’c’
• String : ‘abcb’
• Panjang string : Ex : ‘abad’ panjangnya 4
‘asdhgf’ panjangnya 6

•Sebuah string kosong, biasanya dinyatakan dengan Ԑ, didefinisikan panjangnya = 0,

atau |Ԑ| = 0
• Teori bahasa dan otomata merupakan salah satu mata kuliah yang wajib di jurusan-jurusan teknik
informatika maupun ilmu komputer. Teori bahasa dan otomata merupakan mata kuliah yang cenderung
bersifat teoritis tidak memuat hal-hal yang ‘praktis’ untuk diterapkan langsung dalam praktik. Manfaat
langsung dari mata kuliah teori bahasa dan otomata akan kita dapatkan ketika mempelajari mata kuliah
Teknik Kompilasi.

• Bahasa di dalam kamus adalah suatu sistem yang meliputi pengekspresian gagasan, fakta, konsep,
termasuk sekumpulan simbol-simbol dan aturan untuk melakukan manipulasinya. Bahasa bisa juga
disebut sebagai rangkaian simbol-simbol yang mempunyai makna.
• Otomata merupakan suatu sistem yang terdiri atas sejumlah berhingga state, di
mana state menyatakan informasi mengenai input. Otomata juga dianggap
sebagai mesin otomatis (bukan mesin fisik) yang merupakan suatu model
matematika dari suatu system yang menerima input dan menghasilkan output,
serta terdiri dari sejumlah berhingga state.

• Hubungan di antara bahasa dan otomata adalah bahasa dijadikan sebagai input
oleh suatu mesin otomata, selanjutnya mesin otomata akan membuat keputusan
yang mengindikasikan apakah input itu diterima atau tidak.
Contoh Terapan Teori Otomata
• Contoh Penerapan Teori Bahasa Otomata
• Model switch on/off digambarkan sebagai berikut:
• Contoh 1:
• 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:
• 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.
Contoh Terapan Teori Otomata
• 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 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 Terapan Teori Otomata
• 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.
Contoh Terapan Teori Otomata
• Contoh 3 :
• Misalnya, kita memiliki sebuah mesin sederhana yang menerima input
kata dalam Bahasa Indonesia, hal ini bisa dilihat pada gambar diatas, bila
mesin mendapat string input berikut :
• ada : diterima
• adu : diterima
• add : ditolak
• Sebuah string input diterima bila mencapai state akhir/final
state, yang di situ digambarkan dengan lingkaran ganda.
Mesin ini memiliki 6 state,{q0,q1,q2,q3,q4,q5,q6}, yang mana
adalah himpunan state yang ada pada mesin itu. State awal
dari mesin adalah q0. {q3,q4} adalah himpunan state
akhir/final. Sedangkan himpunan simbol input adalah {a,d,u}.
Penjelasan lebih lanjut secara formal dari suatu mesin
otomata bisa dilihat pada bab dua.
Hirarki Chomsky
 Referensi Buku : Teori Bahasa dan Otomata, Firrar
Utdirartatmo
Pengenalan Hirarki Chomsky

Tata bahasa (grammar) bisa didefinisikan


secara formal sebagai kumpulan dari
himpunan-himpunan variabel, simbol-
simbol terminal, simbol awal, yang dibatasi
oleh aturan-aturan produksi. Pada tahun
1959 seorang ahli bernama Noam Chomsky
melakukan penggolongan tingkatan bahasa
menjadi empat, yang disebut dengan
Hirarki Chomsky. Penggolongan tersebut
bisa dilihat pada tabel berikut.
Tata Bahasa Regular
Tata Bahasa Bebas Konteks
Tata Bahasa Context Sensitive
Tata Bahasa Unrestricted

Aturan :
•Simbol pada Sebelah kiri harus minimal ada sebuah simbol variabel

Contoh :
•Abcdef → g
(Diterima)
•aBCdE → GHIJKL
(Diterima)
•abcdef → GHIJKL
(Ditolak, karena simbol pada sebelah kiri tidak ada sebuah simbol variabel)
Latihan Kelas
Latihan Kelas
Terima Kasih…

Anda mungkin juga menyukai