erik

14
PENGERTIAN AUTOMATA DAN TEORI BAHASA Automata Arti menurut American Heritage Dictionary: 1. a robot 2. one that behaves in an automatic or mechanical fashion Arti dalam dunia matematika Berkaitan dengan teori mesin abstrak, yaitu mesin sekuensial yang menerima input, dan mengeluarkan output, dalam bentuk diskrit. Contoh : ¨ Mesin Jaja / vending machine ¨ Kunci kombinasi ¨ Parser/compiler Jika disimpulkan maka pengertian 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). Teori Bahasa Teori Otomata dan bahasa formal, berkaitan dalam hal pembangkitan kalimat/generation yaitu, menghasilkan semua kalimat

Upload: taufik-hadayattullah

Post on 22-Oct-2015

16 views

Category:

Documents


3 download

DESCRIPTION

jkjk

TRANSCRIPT

Page 1: Erik

PENGERTIAN AUTOMATA DAN TEORI BAHASA

Automata

Arti menurut American Heritage Dictionary:

1. a robot

2. one that behaves in an automatic or mechanical fashion

Arti dalam dunia matematika

Berkaitan dengan teori mesin abstrak, yaitu mesin sekuensial yang menerima input, dan

mengeluarkan output, dalam bentuk diskrit.

Contoh :

¨ Mesin Jaja / vending machine

¨ Kunci kombinasi

¨ Parser/compiler

Jika disimpulkan maka pengertian 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).

Teori Bahasa

Teori Otomata dan bahasa formal, berkaitan dalam hal pembangkitan kalimat/generation

yaitu, menghasilkan semua kalimat dalam bahasa L berdasarkan aturan yang dimilikinya. Dan

pengenalan kalimat / recognition yaitu, menentukan suatu string(kalimat) termasuk sebagai salah

satu anggota himpunan L.

Teori bahasa membicarakan bahasa formal (formal language), terutama untuk

kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor).

Page 2: Erik

Jadi Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa

dibangkitkan oleh sebuah tata bahasa (grammar) yang sama. Sebuah bahasa formal bisa

dibangkitkan oleh dua atau lebih tata bahasa berbeda. Dikatakan bahasa formal karena grammar

diciptakan mendahului pembangkitan setiap kalimatnya. Bahasa manusia bersifat sebaliknya;

grammar diciptakan untuk meresmikan kata-kata yang hidup di masyarakat. Dalam pembicaraan

selanjutnya ‘bahasa formal’ akan disebut ‘bahasa’ saja.

JENIS DAN BAGIAN AUTOMATA DAN TEORI BAHASA FORMAL

Automata Hingga (AH)

AH didefinisikan sebagai pasangan 5 tupel : (Q, V T , σ, q0, F):

• Q     : himpunan hingga stata

• VT  : himpunan hingga simbol input (alfabet)

• σ     : fungsi transisi, menggambarkan transisi stata AH akibat pembacaan simbol input.

Fungsi transisi ini biasanya diberikan dalam bentuk tabel.

• q0 ∈ Q   : stata awal

• F ⊂ Q     : himpunan stata penerima

Ada dua jenis automata hingga : deterministik (AHD, DFA = deterministic finite automata) dan

non deterministik (AHN, NFA = non deterministik finite automata).

- AHD : transisi stata AH akibat pembacaan sebuah simbol bersifat tertentu.

.                 σ (AHD) : Q × V T → Q

- AHN : transisi stata AH akibat pembacaan sebuah simbol bersifat tak tentu.

.                  σ (AHN) : Q × V T → 2Q

Page 3: Erik

Automata Hingga Deterministik (AHD)

Berikut ini sebuah contoh AHD F(Q, V T , σ, q0, Z), dimana :

Q = {q0, q1, q2}   diberikan dalam tabel berikut :

Gambar1.  Tabel AHD

Ilustrasi graf untuk AHD F adalah sebagai berikut :

Lambang stata awal adalah node dengan anak panah.

Lambang stata awal adalah node ganda.

Gambar 2.   Grafik AHD

Contoh kalimat yang diterima AHD             : a, b, aa, ab, ba, aba, bab, abab, baba

Contoh kalimat yang tidak diterima AHD     : bb, abb, abba

Page 4: Erik

AHD ini menerima semua kalimat yang tersusun dari simbol a dan b yang tidak mengandung

substring bb. sebuah kalimat diterima oleh AHD jika tracingnya berakhir di salah satu stata

penerima.

.

Automata Hingga Nondeterministik (AHN)

Berikut ini sebuah contoh AHN F(Q, V T , σ, q0, Z), dimana :

Q = {q 0 , q1, q 2 ,q 3 , q 4 }        diberikan dalam tabel berikut :

Gambar3.   Tabel AHN

Page 5: Erik

Ilustrasi graf untuk AHN F adalah sebagai berikut :

Gambar4.  Grafik AHN

Contoh kalimat yang diterima AHN di atas            : aa, bb, cc, aaa, abb, bcc, cbb

Contoh kalimat yang tidak diterima AHN di atas   : a, b, c, ab, ba, ac, bc

Fungsi transisi σ sebuah AHN dapat diperluas sebagai berikut :

1. σ (q, ε) = {q} untuk setiap q ∈ Q

2. σ (q, t T) = ∪ σ (p i , T) dimana t ∈ V T , T adalah V T *, dan σ (q, t) = {p i }

3. σ ({q1, q2, …, qn}, x) = ∪ σ (q i ,x), untuk x ∈ V T *

Sebuah kalimat di terima AHN jika salah satu tracing-nya berakhir di stata penerima, atau

himpunan stata setelah membaca string tersebut mengandung stata penerima.

Page 6: Erik

MODEL KOMPILATOR

Compiler adalah suatu program yang menerjemahkan bahasa program ( source code)

kedalam bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program,

mengumpulkannya dan kemudian menyusunnya kembali.

Komplier memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh

computer, program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat disbanding

program yang diperoduksi oleh interpreter, disamping itu juga bersifat independen. Contoh

program yang menggunakan compiler adalah Visual Basic, Visual Delvi, dan Pascal.

TAHAPAN DALAM COMPILER

TAHAP ANALISIS (front end, bertugas mendekomposisi program sumber)

Analisis leksikal atau analisis linier atau pembacaan sekilas (scanning). Aliran karakter

yang membentuk program sumber dibaca dari kiri ke kanan dan dikelompokkan dalam  token.

Analisis sintaktik atau analisis hirarki. Token yang diperoleh pada analisis leksikal disusun dan

dikelompokkan dalam suatu hirarki tertentu yang secara keseluruhan mempunyai arti tertentu.

Analisis sematik.

Disini dilakukan pengecekan pada struktur akhir yang telah diperoleh dan diperiksa kesesuaianya

dengan komponen yang ada.

TAHAP SINTESIS (back end, bertugas membentuk dan mengoptimasi kode)

Proses pembentukan kode (code generator).

Bentuk antara dari bahasa sumber  berupa suatu pohon sintaks diterjemahkan ke dalam

suatu bahasa asembli atau bahasa mesin

Proses optimasi kode (code optimizer).

Hasil pembentukan kode yang diperoleh kemudian dibuat lebih kompak lagi dengan

melakukan beberapa teknik optimasi supaya dapat diperoleh program yang lebih efisien

Page 7: Erik

Assambler

Bahasa assembly adalah sebuah program yang terdiri dari instruksi-instruksi yang

menggantikan kode-kode biner dari bahasa mesin dengan “mnemonik” yang mudah diingat.

Misalnya sebuah instruksi penambahan dalam bahasa mesin dengan kode “10110011” yang

dalam bahasa assembly dapat dibuat dalam instruksi mnemonik ADD, sehingga mudah diingat

dibandingkan dengan angka 0 dan 1, dalam setiap instruksi membutuhkan suatu operand baik

berupa data langsung maupun suatu lokasi memori yang menyimpan data yang bersangkutan.

Bahasa assembly sering juga disebut kode sumber atau kode simbolik yang tidak dapat

dijalankan oleh prosesor, sedangkan assembler adalah suatu program yang dapat menerjemahkan

program bahasa assembly ke program bahasa mesin. bahasa mesin adalah kumpulan kode biner

yang merupakan instruksi yang bisa dijalankan oleh komputer. Program bahasa mesin sering

disebut sebagai kode objek.

Interpreter

Interpreter adalah Perangkat lunak yang mampu mengeksekusi code program (yang

ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin

melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh

programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di

dalam kode tersebut.

Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah

langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin,dimana prose penterjemahan

dilaksanakan sebelum program tersebut dieksekusi.

Interpreter atau dalam bahasa Indonesia dikenal sebagai Juru Bahasa berbeda dengan

Translator atau penterjemah dalam segi media yang dipakai untuk menerjemahkan. Interpreter

akan menterjemahkan bahasa sumber ke dalam bahasa sasaran secara langsung atau orally

sementara translator akan menerjemahkan bahasa sumber ke bahasa sasaran secara tertulis.

Page 8: Erik

Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini

menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan

pada platform yang berbeda-beda.

KOMPONEN KOMPILASI

Penganalisa

Leksikal(scanner

)

Penganalisa

Sintaks(parser)

Penganalisa

Semantik

Pembangkit Kode antara

Pembentukkode

Pengoptimalkode

Program

Sumber

Program

Sumber

Program

Sasaran

Program

Sasaran

TABEL

SIMBOL

TABEL

SIMBOL

ANALISA SINTESA

Bagan pokok proses kompilasi

Blok Diagram

Page 9: Erik

METODE PARSING

Parsing adalah konsturksi atau pembentukan Pohon Sintaks untuk suatu kalimat (ekspresi).Bila

terdapat lebih dari satu pohon sintaks untuk sebuah grammar

maka dikatakan grammar tersebut Ambiguous

ada beberapa Metode Parsing antara lain :

1.Parsing top-downparsing top-down adalah Diberikan kalimat x sebagai input. Parsing dimulai dari simbol awal S sampai kalimat x nyata (atau tidak nyata jika kalimat x memang tidak bisa diturunkan dari S) dari pembacaan semua leaf dari pohon parsing jika dibaca dari kiri ke kanan.

2. Parsing bottom-upParsing bottom-up adalah Diberikan kalimat x sebagai input. Parsing dimulai dari kalimat x yang nyata dari pembacaan semua leaf pohon parsing dari kiri ke kanan sampai tiba di simbol awal S (atau tidak sampai di S jika kalimat x memang tidak bisa diturunkan dari S).1.Parsing top-downAda 2 kelas metoda parsing top-down, yaitu kelas metoda dengan backup dan kelas metoda tanpa backup. Contoh metoda kelas dengan backup adalah metoda Brute-Force, sedangkan contoh metoda kelas tanpa backup adalah metoda recursive descent.

1. Program Sumber ditulis dalam bahasa sumber, misal Pascal, Assembler, dsb2. Program Sasaran dapat berupa bahasa pemrograman lain

atau bahasa mesin pada

suatu komputer3. Scanner : Memecah program sumber menjadi besaran leksik/token4. Parser : Memeriksa kebenaran dan urutan kemunculan token5. Penganalisa semantik : Melakukan analisa semantik,

biasanya dalam realisasi akan

digabungkan Dengan intermediate code generator (bagian yang berfungsi

membangkitkan kode antara)7. Pengoptimal Kode : Memperkecil hasil dan mempercepat proses8. Tabel : Menyimpan semua informasi yang berhubungan dengan proses kompilasi

Keterangan

Page 10: Erik

Metoda Brute-ForceKelas metoda dengan backup, termasuk metoda Brute-Force, adalah kelas metoda parsing yang menggunakan produksi alternatif, jika ada, ketika hasil penggunaan sebuah produksi tidak sesuai dengan simbol input. Penggunaan produksi sesuai dengan nomor urut produksiMetoda Brute-Force tidak dapat menggunakan grammar rekursi kiri, yaitu grammar yang mengandung produksi rekursi kiri (left recursion) : A —> Aµ. Produksi rekursi kiri akan menyebabkan parsing mengalami looping tak hingga.

Metoda Recursive-DescentKelas metoda tanpa backup, termasuk metoda recursive descent, adalah kelas metoda parsing yang tidak menggunakan produksi alternatif ketika hasil akibat penggunaan sebuah produksi tidak sesuai dengan simbol input. Jika produksi A mempunyai dua buah ruas kanan atau lebih maka produksi yang dipilih untuk digunakan adalah produksi dengan simbol pertama ruas kanannya sama dengan input yang sedang dibaca. Jika tidak ada produksi yang demikian maka dikatakan bahwa parsing tidak dapat dilakukan.Ketentuan produksi yang digunakan metoda recursive descent adalah : Jika terdapat dua atau lebih produksi dengan ruas kiri yang sama maka karakter pertama dari semua ruas kanan produksi tersebut tidak boleh sama. Ketentuan ini tidak melarang adanya produksi yang bersifat rekursi kiri.

2.Parsing Bottom-UpSalah satu contoh menarik dari parsing bottom-up adalah parsing pada grammar preseden sederhana (GPS). Sebelum sampai ke parsing tersebut, akan dikemukakan beberapa pengertian dasar serta relasi yang ada pada GPS.Parsing Grammar Preseden SederhanaProsedur parsing :

1. Buat tabel 3 kolom dengan label : sentensial dan relasi, handel, dan ruas kiri produksi.2. Tuliskan kalimat (atau sentensial) yang diselidiki pada baris pertama kolom pertama.3. Dengan menggunakan tabel relasi preseden cantumkan relasi preseden antara setiap dua

simbol yang bertetangga.4. Tentukan handel dari sentensial tersebut. Handel adalah string yang dibatasi “¬“ terakhir

dan “<–>“ pertama jika dilakukan penelusuran dari kiri atau yang saling mempunyai relasi “<–>“. Handel tersebut pastilah merupakan ruas kanan produksi, karena itu tentukan ruas kiri dari handel tersebut.

5. Ganti handel dengan ruas kiri produksinya. GOTO 3.6. Kalimat yang diselidiki adalah benar dapat diderivasi dari simbol awal jika kolom “ruas

kiri produksi” menghasilkan simbol awal.

Page 11: Erik

OTOMATA DAN TEORI BAHASA FORMAL

TUGAS SISTEM KOMBINASI

OLEH :

TAUFIK HADAYATTULLAH

09101152630221

Page 12: Erik

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER

UNIVERSITAS PUTRA INDONESIA “YPTK”

PADANG

2014