TEORI BAHASA DAN OTOMATA Pendahuluan Oleh : Bagus Adhi Kusuma, ST Program Studi Teknik Informatika STMIK AMIKOM Purwokerto
Bahasa Struktur yang dikendalikan oleh aturan tertentu, semacam mesin untuk memproduksi makna. disediakan perbendaharaan kata atau tanda (vocabulary), serta perangkat aturan bahasa (grammar, sintaks) yang harus dipatuhi jika hendak menghasilkan sebuah ekspresi yang bermakna.
Otomata Otomata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu. Pada Perangkat lunak: digunakan pada pembuatan kompiler bahasa pemrograman.
Fungsi Otomata (dalam Hubungannya dg Bahasa) fungsi automata sebagai pengenal (RECOGNIZER) string-string dari suatu bahasa bahasa Input otomata fungsi automata sebagai pembangkit (GENERATOR) string-string dari suatu bahasa, dalam hal ini bahasa sebagai keluaran dari automata bahasa Output otomata
Peran Bahasa dan Otomata dalam Ilmu Komputer model dan gagasan mendasar mengenai komputasi Ilmu Komputer TEORI BAHASA DAN OTOMATA teknik rekayasa untuk perancangan sistem komputasi,meliputi perangkat keras dan perangkat lunak, khususnya penerapan rancangan dari teori
ILMU KOMPUTER - ahli biologi mempelajari neural network - insinyur elektro mengembangkan switching sebagai tool untuk mendesain hardware - matematikawan bekerja mendasarkan logika - ahli bahasa menyelidiki tata bahasa untuk natural language
Penerapan Teori Bahasa dan Otomata Model switch on/off Model tersebut mengingat apakah switch berada dalam state “on” atau state “off”
Penerapan Teori Bahasa dan Otomata Finite Automaton Tugas dari automaton tersebut adalah mengenali keyword “then”
STRING Simbol sebuah entitas abstrak (seperti halnya pengertian titik dalam geometri) Contoh: Sebuah huruf atau sebuah angka String deretan terbatas (finite) simbol-simbol. Contoh: abcb String yang dibangun dari simbol a, b, c
STRING Panjang String cacahan (banyaknya) simbol yang menyusun string tersebut. Contoh: jika w = abcb maka |w| = 4. w adalah sebuah string Alfabet himpunan hingga (finite set) dari simbol-simbol
STRING sebuah string dengan nol buah simbol String Hampa String hampa dinyatakan dengan simbol ε (atau ^) sehingga | ε | = 0 String hampa dapat dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.
Operasi Dasar String Prefik string x string yang dihasilkan dari string x dengan menghilangkan nol atau lebih simbol-simbol paling belakang dari string x tersebut. Contoh: String x = abc, maka: abc, ab, a, dan ε adalah semua Prefix(x)
Operasi Dasar String string yang dihasilkan dari string x dengan ProperPrefik string x string yang dihasilkan dari string x dengan menghilangkan satu atau lebih simbol-simbol paling belakang dari string x tersebut. Contoh: String x = abc, maka: ab, a, dan ε adalah semua ProperPrefix(x)
Operasi Dasar String string yang dihasilkan dari string x Postfix (atau sufix) string x string yang dihasilkan dari string x dengan menghilangkan nol atau lebih simbol-simbol paling depan dari string x tersebut. Contoh: String x = abc, maka: abc, bc, c dan ε adalah semua Postfix(x)
Operasi Dasar String string yang dihasilkan dari string x ProperPostfix (atau Propersufix) string x string yang dihasilkan dari string x dengan menghilangkan satu atau lebih simbol-simbol paling depan dari string x tersebut. Contoh: String x = abc, maka: bc, c, dan ε adalah semua ProperPostfix(x)
Operasi Dasar String Simbol paling depan dari string x tersebut Head string x Simbol paling depan dari string x tersebut Contoh: String x = abc, maka: a adalah Head(x)
Operasi Dasar String Tail string x string yang dihasilkan dari string x dengan menghilangkan simbol paling depan dari string x tersebut. Contoh: String x = abc, maka: bc adalah Tail(x)
Operasi Dasar String Substring string x string yang dihasilkan dari string x dengan menghilangkan nol atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string x tersebut. Contoh: String x = abc, maka: abc, ab, bc, a, b, c dan ε adalah semua Substring(x)
Operasi Dasar String ProperSubstring string x string yang dihasilkan dari string x dengan menghilangkan satu atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string x tersebut. Contoh: String x = abc, maka: ab, bc, a, b, c dan ε adalah semua ProperSubstring(x)
Operasi Dasar String Subsequence string x string yang dihasilkan dari string x dengan menghilangkan nol atau lebih simbol-simbol dari string x tersebut. Contoh: String x = abc, maka: abc, ab, bc, ac, a, b, c dan ε adalah semua Subsequence(x)
Operasi Dasar String string yang dihasilkan dari string x ProperSubsequence string x string yang dihasilkan dari string x dengan menghilangkan satu atau lebih simbol-simbol dari string x tersebut. Contoh: String x = abc, maka: ab, bc, ac, a, b, c dan ε adalah semua ProperSubsequence(x)
Operasi Dasar String penyambungan dua buah string. Concatenation penyambungan dua buah string. Operator concatenation adalah concate atau tanpa lambang apapun Contoh: String x = abc, y= 123 maka: concate(xy) = xy= abc123
Operasi Dasar String Pilihan satu di antara dua buah string Alternation Pilihan satu di antara dua buah string Operator concatenation adalah alternate atau |. Contoh: String x = abc, y= 123 maka xy=123, sehingga: alternate (xy) = x|y = abc atau123
Sifat Operasi String Tidak selalu berlaku : x = Prefix(x)Postfix(x) Selalu berlaku : x = Head(x)Tail(x) Tidak selalu berlaku : Prefix(x) = Postfix(x) atau Prefix(x) ≠ Postfix(x) Selalu berlaku : ProperPrefix(x) ≠ ProperPostfix(x) Selalu berlaku : Head(x) ≠ Tail(x)
Sifat Operasi String Setiap Prefix(x), ProperPrefix(x), Postfix(x), ProperPostfix(x), Head(x), dan Tail(x) adalah Substring(x), tetapi tidak sebaliknya Setiap Substring(x) adalah Subsequence(x), tetapi tidak sebaliknya
Sifat Aljabar Contanetation Operasi concatenation bersifat asosiatif : x(yz) = (xy)z Elemen identitas operasi concatenation adalah ε : εx = x ε = x
Sifat Aljabar Alternation Operasi alternation bersifat komutatif : x|y = y|x Operasi alternation bersifat asosiatif : x|(y|z) = (x|y)|z Elemen identitas operasi alternation adalah dirinya sendiri : x|x = x
LATIHAN Diberikan dua string : x = rstu, dan y = 5678 a. Prefix(x) b. semua ProperPrefix(y) c. semua Postfix(x) d. semua ProperPostfix(y) e. Head(x) f. Tail(y) g. semua Substring(x) h. semua Substring(y) i. semua Subsequence(x) j. Proper Subsequence (x) k. Concate(yx) l. Alternate(xy) m. Head(x)Tail(y) n. Concate(Tail(y)xy)
bagus.ak@gmail.com