15013-1-182516565738

download 15013-1-182516565738

of 12

description

Pendekatan FSA untuk kasus diagnosa penyakit sinusitis

Transcript of 15013-1-182516565738

PENDAHULUAN

Teori Bahasa dan Automata

MODUL I

TEORI BAHASA DAN AUTOMATA

JudulTEORI BAHASA OVERVIEW

PenyusunPengesahanPengarsipan

Tanggal :

Nixon Erzed Tanggal :

Tanggal :

Tujuan :

Mahasiswa memahami pengertian dan kedudukan Teori Bahasa dan Automata (TBA) pada ilmu komputer

Materi :

Definisi dan Pengertian Teori Bahasa dan Otomata

Teori bahasa dan otomata dalam ilmu komputer

Tata bahasa

Klasifikasi Tata Bahasa

Teknik Kompilasi

Materi Perkuliahan

PENDAHULUAN

Teori Bahasa dan Otomata

Teori bahasa dan otomata merupakan bagian dari teori komputasi pada ilmu komputer. Beberapa teori komputasi datang dari bahasa dan rekayasa sistem, terutama yang berbasiskan matematika. Dalam hal ini penekanannya adalah pada pemecahan masalah. Melalui contoh-contoh ilustrasi-masalah dapat dikenali latar belakang dari suatu konsep dan hubungannya dengan definis dan teorema yang ada. Secara teoritis ilmu komputer diawali dari sejumlah berbeda disiplin ilmu; ahli biologi mempelajari neural network, insinyur elektro mengembangkan switching sebagai tools untuk mendesain perangkat keras, matematikawan bekerja berdasarkan logika, dan ahli bahasa menyelidiki tata bahasa untuk bahasa alami (natural language)Finite state automata dan ekspresi reguler awal dikembangkan berdasarkan pemikiran neural network dan switching circuit. Finite state automata merupakan tools yang sangat berguna dalam perancangan suatu penganalisa leksikal (lexical analyzer) yang berguna dalam mengelompokkan karakter-karakter kedalam token-token sebagai unit terkecil dalam mengenali pola. Jadi apa sesungguhnya teori bahasa tersebut ? Teori bahasa merupakan suatu gagasan mendasar dalam komputasi yang menjadi tools untuk mengenali persoalan. Gagasan dasar tersebut dimodel dengan suatu simbol-simbol yang merepresentasikan juga suatu fungsi dari komputer digital.

Teori bahasa pada awalnya lebih diarahkan untuk mengenali suatu tata bahasa dan dapat mendefinisikan spesifikasi formal dari tata bahasa tersebut. Sehingga pada akhirnya dapat didefinisikan langkah-langkah algoritmik dalam pemrosesan tata bahasa. Teori bahasa dan otomata dalam ilmu komputer

Suatu teori hanya menarik jika dapat membantu dalam mencari solusi terbaik. Tanpa penerapan timbul pertanyaan, mengapa mempelajari teori? Teori memberikan konsep dan prinsip yang menolong untuk memahami perilaku dari suatu persoalan yang berkorelasi dengan teori tersebut. Bidang ilmu komputer meliputi topik yang luas, dari perancangan mesin sampai pemrograman. Disamping perbedaan yang ada, terdapat keseragaman prinsip-prinsip umum yang dipakai. Untuk mempelajari prinsip-prinsip dasar tersebut, kita mengkonstruksi suatu mesin otomata sebagai model abstrak dari komputer dan komputasi. Model ini memiliki fungsi-fungsi yang penting dan umum pada perangkat keras dan perangkat lunak komputer. Meskipun model tersebut sederhana untuk diterapkan langsung pada dunia nyata, keuntungan yang diperoleh dari mempelajarinya adalah memberikan landasan untuk basis dari suatu pengembangan algoritma. Pendekatan ini, juga diterapkan pada ilmu sains lainnya.

Tata Bahasa Penulisan suatu kalimat dalam sebuah bahasa, akan mengikuti suatu aturan tertentu yang berlaku pada bahasa tersebut. Aturan tersebut dikenal sebagai Tata Bahasa (grammar).

Sebagai contoh dalam bahasa Indonesia, penulisan sebuah kalimat berita akan mengikuti aturan SP (Subjek Predikat), atau lebih detilnya aturan penulisan suatu kalimat berita adalah :Kalimat berita

Subjek

Predikat

Kata Benda atau

Kata kerja atau

Kata Sandang + Kata benda atau Kata kerja + Objek

Kata Benda + Kata Keterangan atauKt. Sandang+ Kt Benda + Kt Keterangan

Kata Benda atau

Kt Sandang +Kt benda atau

Kt Benda+Kt Ket. atau

Kt Sdng+Kt Bnda +Kt Ket.

Kata kerja ( {memukul, memasak, menggigit, menulis

Kata benda ( {kambing, kucing, adik, bola, meja, }Kata sandang( {Si, bung, }

Kata Keterangan( {kecil, besar, cantik , jauh, }

Dengan mengikuti aturan tata bahasa tersebut, dapat direkonstruksi suatu kalimat berita sebagai berikut : Adik menulis

Kucing menggigit tikus

Si kambing cantik memakan sayuran segar

Periksalah kalimat berikut apakah memenuhi aturan tersebut :

Si tikus jorok mengejar kucing galak

Si bola besar menendang kambing jelek

Klasifikasi Tata Bahasa 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:BahasaMesin OtomataBatasa Aturan Produksi

Regular

Tipe 3Finite State Automata (FSA) meliputi Deterministic Finite Automata (DFA) & Nondeterministic Finite Automata (NFA) adalah sebuah simbol variabel maksimal memiliki sebuah simbol variabel yang bila ada terletak diposisi paling kanan

Bebas Konteks(Context Free)

Tipe 2Push Down Automata (PDA) berupa sebuah simbol variabel

Context SensitiveTipe 1Linier Bounded Automata| | | |

Unrestricted/Phase Structure/Natural Language/Tipe 0 Mesin Turingtidak ada batasan

Teknik Kompilasi

TRANSLATOR

Sebuah translator melakukan pengubahan source code/source program (program sumber) ke dalam target code/object code/object program (program objet). Ada beberapa macam translator :

1. Assembler

Source code adalah bahasa assembly, object code adalah bahasa mesin.

Contohnya : Turbo Assembler dan Macro Assembler.

Gambar stuktur Sistem Assembler

2. Kompilator/Compiler

Source code adalah bahasa tingkat tinggi, object kode adalah bahasa mesin atau bahasa assembler. Source code dan data diproses pada saat yang berbeda

Contoh : Turbo Pascal.

Gambar struktur Sistem Kompilator

3. Interpreter

Interpreter tidak membangkitkan object code, hasil translasi hanya dalam bentuk internal.

Contoh : Basic.

Gambar struktur Sistem Interpreter.

Perancangan Kompilator

Bahasa PemrogramanGagasan untuk perancangan compiler bahasa pemrograman bisa berasal dari bahasa alami (natural langgue), matamatika, dan bahasa pemrograman yang sudah ada. Penjelasan masing-masing sebagai berikut :

1. Kontruksi yang diturunkan dari bahasa alami berguna untuk kejelasan dan kemudahan pembacaan. Sebuah intruksi akan mengerjakan mirip dengan arti intruksi itu.

2. Matematika telah banyak dipakai untuk aturan aturan yang terdapat pada bahasa pemrograman misalnya ekspresi matematika.

3. Bahasa pemrograman yang sudah ada bisa menjadi sumber yang bagus untuk perancangan bahasa pemrograman. Tetapi perlu ketelitian saat menggunakan karena bahasa yang sudah ada itu mungkin mengandung kesalahan yag serius. Model Kompilator

Pekerjaan untuk membuat sebuah kompilator untuk suatu bahasa sumber sangat rumit. Kerumitan serta sifat dari proses kompilasi tergantung pada tingkat keluasan dari bahasa sumber. Kerumitan kompilator dapat dikurangi jika perancang bahasa pemrograman mempertimbangkan bermacam-macam faktor perancangan.

Bagian-bagian sebuah kompilator :

1. Analisis

Mengenali masukan (Scanner)

Memeriksa kebenaran tata bahasa masukan (Parser)

Menangkap makna masukan (pengenal semantik)

2. Sintesis

Pembangkit Kode

Pengoptimal Kode

Semua bagian tersebut dalam operasinya didukung dan merefer ke Tabel Simbol

Bagian Analisis berhubungan dengan pemisahan bagian-bagian dari program sumber menjadi bagian-bagian dasar (token). Secara lebih detil setiap elemen sintesis melakukan tugas-tugas sebagai berikut :

1. Penganalisa Leksikal (scanner)

Fungsi scanner adalah membaca seluruh teks program sumber karakter per karakter, mengenali bagian dasar dari teks (bagian leksikografis terkecil/ token) dan memisahkannya dengan spasi kosong. Keluaran dari penganalisa leksikal adalah daftar token.

Setiap token dalam daftar token dilengkapi dengan kode penanda token (id) dan keterangan jenis token. Id dibangkitkan dengan mereferensi kepada informasi yang tersimpan dalam tabel simbol.

2. Penganalisa Sintaks (Parser)

Daftar token yang dihasilkan scanner, oleh parser selanjutkan akan dikelompokkan atas kalimat-kalimat sesuai urutan keberadaan token dalam program sumber. Kalimat dapat berupa ekpspresi, statement, dan prosedur. Dengan mengacu pada tata aturan penulisan kalimat (tata bahasa/grammar), kalimat yang terbentuk akan dianalisa untuk menghasilkan pohon sintaks atau yang sejenisnya. Pohon sintaks mengidentifikasikan kalimat yang benar secara tata bahasa jika semua simpul daun berupa token dan setiap simpul yang bukan daun mewakili suatu tipe kelas sintaks.

3. Penganalisa Semantik

Pohon sintaks yang dihasilkan oleh parser kemudian digunakan oleh penganalisa semantik untuk menangkap makna yang dimaksud oleh kalimat tersebut. Keluaran dari proses analisis semantik adalah Kode Antara (intermediate code). Salah satu model kode antara adalah Notasi Polish.

Keluaran dari bagian analisis selanjutnya digunakan oleh bagian sintesis untuk membangkitkan program objek yang sesuai dengan program sumber dan mesin.

1. Pembangkit Kode (code generator)

Intermediate code akan diterjemahkan kedalam bahasa rakitan (assembly) atau langsung kedalam bahasa mesin.

2. Pengoptimal Kode (optimizer)

Pada kompilator yang canggih, kode-kode objek dari pembangkit kode akan dianalisa dan langkah-langkah operasi serta kemunculan berulang dari suatu ekpresi akan direduksi. Hasil reduksi tersebut dimaksudkan untuk menghasilkan program objek yang lebih efisien.

Cakupan Materi Perkuliahan : 1. Pendahuluan

Sasaran : Mahasiswa memahami pengertian dan kedudukan Teori Bahasa dan Otomata (TBO) pada ilmu komputer

Bahan :

Definisi dan Pengertian Teori Bahasa dan Otomata

Teori bahasa dan otomata dalam ilmu komputer

Tata bahasa

Klasifikasi Tata Bahasa

2. Teknik Kompilasi Sasaran : Mahasiswa mengenal dan memahami struktur cara kerja kompilator

Materi :

Bahasa Pemrograman

Translator

Model Kompilator

Penganalisa Leksikal

Penganalisa Sintaksis

3. Finite State Automata

Sasaran : Mahasiswa memahami Finite State Automata (FSA) dan dapat mengeksekusi suatu mesin otomata

Materi :

Implemetasi FSA

Deterministic Finite Automata (DFA)

Non Deterministic Finite Automata (NFA)

Ekivalensi

Reduksi State

Translasi NFA ke DFA

NFA dengan -move4. Ekspresi Reguler Sasaran : mahasiswa mamahami pengertian ekspresi Reguler dan menurunkan aturan produksi bahasa reguler dari suatu FSA

Materi :

implmentasi ekpresi reguler

notasi ekspresi reguler

hubungan ekspresi reguler dan FSA

Aturan produksi bahasa reguler Rekonstruksi aturan produksi5. FSA dengan Output Sasaran : Mahasiswa memahami model FSA dengan output Mesin Moore

Mesin Meally

Ekivalensi mesin Moore dan Mesin Meally6. Pohon PenurunanSasaran : mahasiswa memahamai pohon penurunan dari suatu tata bahasa.

Materi :

Pohon penurunan

Tata bahasa

Parsing

Ambiguitas

7. CFG

Materi : Mahasiswa memahamai dan dapat membangun suatu tata bahasa bebas konteks (CFG)

Materi :

Bentuk CFG

Penyederhanaan CFG

Produksi Useless

Produksi unit

Produksi

8. Bentuk NormalSasaran : Mahasiswa mengenal dan memahamai bentuk normal

Materi :

Pengertian bentuk normal

Bentuk normal Chomsky

Membangun bentuk normal Chomsky9. Rekursif Kiri

Sasaran : Mahasiswa memahamai pengertian rekursif kiri dan dapat mentranslasikan tata bahasa dengan rekursif kiri

Materi :

Aturan produksi rekursif

Tahapan Reduksi Rekursif kiri

10. Mesin Turing Sasaran : mahasiswa mengenal dan memahamai konsep mesin turingMateri :

Spesifikasi mesin turing

Mekanisme kerja mesin turing Deskripsi seketika mesin turingTabel Simbol

Pengoptimal kode

(optimizer)

Pembangkit kode (code generator)

Penganalisis semantik

Penganalisis Leksikal

(Scanner)

Penganalisis Sintaks

(Parser)

ANALISIS

SINTESIS

Program sumber

Program objek

compiler

Program

sumber

Data keluaran

Data masukan

Program komputer

Algoritma dan struktur data

Teori bahasa

dan automata

persoalan

Logika dasar persoalan

Hasil

Source Code

Interpreter

Data

Eksekusi computer

Source Code

Object Code

Compiler

Hasil

Data

Sorurce Code

Assembler

Object Code

Pseudo code / flow chart

PUSAT PENGEMBANGAN BAHAN AJAR-UMB Ir. Nixon Erzed MT TEORI BAHASA DAN AUTOMATA 2