PEMBAHASAN
2.1. Teori-Teori Otomata
2.1.1.
Sejarah Otomata
Otomata bermula sebelum komputer ada pada teori di bidang sistem logika
matematika atau formal, ilmuwan David Hilbert telah mencoba menciptakan
algoritma umum untuk pembuktian (seluruh) persoalan matematika secara
otomatis yaitu mampu menentukan salah benarnya sembarang prosisi
matematika.
Tahun 1931, KurtGdel mempublikasikan teori ketidaklengkapan dimana
membuktikan prosedur/algoritma yang dikehendaki David Hilbert tersebut
tidak akan pernah ada. KurtGdel membangun rumus di kalkulus predikat yang
diterapkan pada bilangan bulat yang memiliki pernyataan-pernyataan definisi
yang tidak dapat dibuktikan maupun dibantah di dalam sistem logika yang
mungkin dibangun manusia.
Formalisasi argumen teorema ketidaklengkapan KurtGdel ini berikut
penjelasan dan formalisasi selanjutnya dari prosedur efektif secara intuisi
merupakan salah satu pencapaian intelektual terbesar abad 20, yaitu abad
dimana formalisasi berkembang semarak.
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika
sebagai sarana untuk mendeskripsikan bahasa serta menjawab pertanyaanpertanyaan di atas. Saat ini dimulai pendalaman bidang bahasa computer.
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika
sebagai sarana untuk mendeskripsikan bahasa serta menjawab pertanyaanpertanyaan di atas. Saat ini dimulai pendalaman bidang bahasa komputer.
Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai
sekarang belum diketahuinya bagaimana cara manusia mengartikan bahasa,
sementara dengan pasti dapat mengartikan bahasa pada komputer. Noam
Chomsky mengemukakan
memodelkan
perangkat
properti-properti
bahasa.
format
disebut
grammar
Tata
bahasa
(grammer)
untuk
bisa
variabel, simbol?simbol, terminal, simbol awal, yang dibatasi oleh aturanaturan produksi. Tingkat bahasa dapat digolongkan menjadi empat yaitu :
1.Bahasa : Regular type 3
Mesin otomata : Finite State Otomata (FSA) meliputi deterministic finite
automata dan non deterministic finite automata
Batasan aturan produksi : adalah sebuah simbol variabel maksimal
memiliki sebuah simbol variabel yang bila terletak di posisi paling kanan.
2.Bahasa : Bebas konteks/context free /type 2
Mesin otomata : Push down automata (PDA)
Batasan aturan produksi : Berupa sebuah simbol variabel.
3.Bahasa : Context sensitive/type 1
Mesin otomata : Linier bounded automata
Batasan aturan produksi :
4.Bahasa : Unrestricted /phase /natural language/type 0
Mesin otomata : Mesin turing
Batasan aturan produksi : Tidak ada batasan
2.1.2
Definisi Otomata
Teori Bahasa
Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata
bahasa berbeda.
Otomata (Automata)
Otomata adalah mesin abstrak yang dapat mengenali (recognize),
menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam
bahasa tertentu.
2.2. Mesin Tuning
2.2.1. Keterbatasan FSA dan PDA
Tidak semua jenis bahasa dapat dikenali oleh FSA atau PDA.
Sebagaimana telah diuraikan di pembahasan sebelumnya bahwa
kelemahan FSA adalah bahwa ia tidak mampu mengingat simbolsimbol yang pernah dibaca. Kelemahan FSA inilah yang kemudian
diatasi oleh PDA. Tetapi ternyata PDA juga memiliki kelemahan, yaitu
meskipun PDA dapat mengingat simbol yang dibaca dengan stack, tetapi
simbol stack hanya dapat diases dari satu arah, yaitu hanya simbolsimbol teratas.
Mesin Turing dirancang mengatasi kelemahan FSA dan PDA, yaitu
dengan merepresentasikan logika kerja mesin tidak menggunakan stack
sebagaimana representasi dalam PDA, tetapi menggunakan representasi
pita yang dapat dibaca dan ditulisi. Mesin turing diwakili oleh sebuah
pita panjang takterhingga. Pada pita dapat ditulis/ dibacakan sebuah
simbol. Setelah pita ditulisi maka simbol pada pita kemudian akan
berubah menjadi simbol yang baru saja dituliskan.
2.2.2. Definisi Mesin Tuning
Mesin Turing adalah model komputasi teoritis yang ditemukan oleh
Alan Turing, berfungsi sebagai model ideal untuk melakukan perhitungan
matematis. Walaupun model ideal ini diperkenalkan sebelum komputer
nyata dibangun, model ini tetap diterima kalangan ilmu komputer sebagai
model komputer yang sesuai untuk menentukan apakah suatu fungsi
dapat selesaikan oleh komputer atau tidak (menentukan computable
Keterangan :
Tape : Tempat diletakannya inputan yang berupa kata/untai.
Head : membaca dan menulisi sel pita mesin turing, bisa bergerak
ke kiri atau ke kanan.
Finite State Control (FSC) : otak dari TM, diimplementasikan dari
algoritma pengenalan kalimat.
1,_,2,#,>
2,A,3,A,>
Karakter '_' dapat digunakan untuk menunjukkan kosong (blank),
'H' untuk menunjukkan sebagai state berhenti/Halt (hanya berlaku pada
sisi kanan transisi), dan '<' dan '>' untuk menunjukkan arah masingmasing bergerak ke kiri atau kanan.
2.2.3. Gerakan Mesin Turing
Gerakan mesin turing diwakili oleh fungsi transisi :
(qi,a)=(qj,b,X) : Mesin kedudukan qi membaca simbol masukan a,
gerakan : mesin berubah ke status qj, menulis b dan posisi baca /tulis
bergerak X (berupa R=gerak ke kanan atau L=gerak ke kiri).
Contoh gerakan mesin
Untuk gerakan fungsi transisi (q1,a)=(q3,b,R) artinya:
= {a,b, b }
S={ q1}
F={ q2}
: (q1,a)= (q1,a,R)
(q1,b)= (q1,a,R)
(q1, b)= (q2, b ,L)
Pada state awal q1, bila mesin membaca a, maka ia tetap di q1, kemudian
10
11
F={q5}
:
(q1,a)= (q2,c,R)
(q2,a)= (q2,a,R)
(q2,d)= (q2,d,R)
(q2,b)= (q3,d,L)
(q3,d)= (q3,d,L)
(q3,a)= (q3,a,L)
(q3,c)= (q1,c,R)
(q1,d)= (q4,d,R)
(q4,d)= (q4,d,R)
(q4,b)= (q5, b ,L)
Jawab :
mesin tersebut mengenali bahasa : { an bn | n>=1 }.
Untuk mendemonstrasikan gerakan mesin turing saat membaca string
dari bahasa tersebut dapat diujikan dengan disuruh membaca
string :aaabbb. Gerakan mesin dapat diikuti dari deskripsi sesaat
sebagai berikut :
(q1,aaabbb )
|-- (q2,caabbb)
|-- (q2,caabbb)
|-- (q2,caabbb)
|-- (q2,caabbb)
|-- (q3,caadbb)
=FINAL STATE
12
|-- (q2,bbaa)
|-- (q1,bbaa)
|-- ....
Ternyata untuk masukan ini juga mesin turing bergerak terus tidak ada
akhirnya. Kalau dicermati dalam definisi gerakan di atas dapat
disimpulkan bahwa jika mesin turing diberi string aa, bb,ba dan ab
mesin terus bergerak bolak balik dari karakter pertama ke karakter
kedua ketika membaca string. Hal ini menyebabkan string apapun yang
diberikan akan menyebabkan gerakan bolak balik itu selalu terjadi,
sehingga mesin turing tidak akan pernah mencapai kedudukan final.
Tentunya sebagai pengenal bahasa definisi mesin turing seperti tersebut
di atas perlu dihindari. Sehingga dalam mendifinisikan suatu mesin
turing harus ada jaminan dalam definisi gerakan mesin turing bahwa
tidak ada definisi fungsi gerakan mesin yang jika diberikan umpan string
menyebabkan mesin bergerak secara loop, berputar tidak pernah
sampai kedudukan final.