TEORI GRAF DAN OTOMATA Pendahuluan Bagus Adhi Kusuma

TEORI GRAF DAN OTOMATA Pendahuluan Bagus Adhi Kusuma, S. T. , M. Eng. Program Studi Teknik Informatika STMIK AMIKOM Purwokerto

GRAF Graf adalah struktur diskrit yang terdiri dari simpul (vertex) yang merepresentsikan objek tertentu dan sisi (edge) yang menghubungkan sepasang simpul. Teori graf banyak digunakan dalam berbagai bidang kehidupan, misalnya penyusunan jadwal kuliah, menentukan jalur terpendek ke tempat tertentu, dan lain- lain.

APLIKASI GRAF Teori graf juga digunakan pada berbagai bidang ilmu, seperti : • Ilmu Kimia, • Ilmu Biologi, • Ilmu Geografi, • Teori Bahasa Formal, dan • Teori Otomata, dsb.

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.

Otomata Disediakan perbendaharaan kata atau tanda (vocabulary), serta perangkat aturan bahasa (grammar, sintaks) yang harus dipatuhi jika hendak menghasilkan sebuah ekspresi yang bermakna. • • • Grammar dan Klasifikasi Chomsky Touring Machine Finitie State Machine Pushdown Automata LBA (Linier Bounded Automata)

Block Diagram Otomata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu. Source language Otomata Target language

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

e. g. Hierarchical of NN • Ahli biologi mempelajari neural network • Ahli bahasa menyelidiki tata bahasa untuk natural language • Matematikawan bekerja mendasarkan logika • Electrical Engineer mengembangkan switching sebagai tool untuk mendesain hardware • Information Technology develop software system of computation.

Peran Graf dan Otomata dalam Ilmu Komputer (Contd) Ilmu Komputer Modelling Ide dasar mengenai komputasi TEORI GRAF DAN OTOMATA teknik rekayasa untuk perancangan sistem komputasi, meliputi perangkat keras dan perangkat lunak, khususnya penerapan rancangan dari teori

Penerapan Teori Graf dan Otomata Ø Model switch on/off • Model tersebut mengingat apakah switch berada dalam state “on” atau state “off”

Penerapan Teori Graf dan Otomata Ø Finite Automaton • Tugas dari automaton tersebut adalah mengenali keyword “then”

SIMBOL � Simbol adalah Sebuah entitas abstrak yang tidak didefinisikan secara formal. Contoh : huruf {a, A, b, c, C, d, …. , z} ; Digit angka {1, 2, 3, …. , 9}; operator {+, -, x, /}; tanda baca {. , !; } dll � Simbol biasanya digunakan untuk menyusun sebuah alfabet 12

ALFABET �Himpunan berhingga dari simbol-simbol yang berbeda Contoh : ◦ ◦ Alfabet huruf = {a, b, c, d, …, z} hex = {0, 1, 2, …, 9, A, …F} biner = {0, 1} morse = {. _, . _. , . . _, …_} 13

STRING �String atas suatu alfabet adalah barisan berhingga anggota-anggota alfabet Contoh : α = {a 1, a 2, …, an} String Ṥ = Ṥ 1, Ṥ 2, …. Ṥk �Panjang string Ṥ didefinisikan sebagai banyaknya anggota alfabet dalam Ṥ (|Ṥ|) 14

STRING (contd) Ø Panjang String cacahan (banyaknya) simbol yang menyusun string tersebut. Contoh: jika w = abcb maka |w| = 4. w adalah sebuah string

STRING Ø String Hampa sebuah string dengan nol buah simbol String hampa dinyatakan dengan simbol ε sehingga | ε | = 0 String hampa dapat dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.

Operasi Dasar String 1. 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 2. Proper. Prefik 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 Proper. Prefix(x)

Operasi Dasar String 3. 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, c dan ε adalah semua Postfix(x)

Operasi Dasar String 4. Proper. Postfix (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 Proper. Postfix(x)

Operasi Dasar String 5. Head string x Simbol paling depan dari string x tersebut Contoh: String x = abc, maka: a adalah Head(x)

Operasi Dasar String 6. 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 7. Substring 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 8. Proper. Substring 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 Proper. Substring(x)

Operasi Dasar String 9. 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, a, b, c dan ε adalah semua Subsequence(x)

Operasi Dasar String 10. Proper. Subsequence 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, a, b, c dan ε adalah semua Proper. Subsequence(x)

Operasi Dasar String 11. Concatenation penyambungan dua buah string. Operator concatenation adalah concate atau penyambungan dua buah string Contoh: String x = abc, y= 123 maka: concate(xy) = xy= abc 123

Operasi Dasar String 12. Alternation Pilihan satu di antara dua buah string Operator concatenation adalah alternate atau |. Contoh: String x = abc, y= 123 maka xy=abc 123, sehingga: alternate (xy) = x|y = abc atau 123

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 : Proper. Prefix(x) ≠ Proper. Postfix(x) ü Selalu berlaku : Head(x) ≠ Tail(x)

Sifat Operasi String ü Setiap Prefix(x), Proper. Prefix(x), Postfix(x), Proper. Postfix(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 adalah operasi concatenation dari empty string e. g. ε : ε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 1 Diberikan dua string : x = pqrs dan y = 6789 a. Prefix(x) b. semua Proper. Prefix(y) c. semua Postfix(x) d. semua Proper. Postfix(y) e. Head(x) k. Concate(yx) f. Tail(y) l. Alternate(xy) g. semua Substring(x) m. Head(x)Tail(y) h. semua Substring(y) n. Concate(Tail(y)xy) i. semua Subsequence(x) j. Proper Subsequence (x)

LATIHAN 2 Diberikan dua string : x = abcde, dan y = 23456 a. Semua Prefix(x) b. semua Proper. Prefix(y) c. semua Postfix(x) d. semua Proper. Postfix(y) e. Head(x) k. Concate(yx) f. Tail(y) l. Alternate(xy) g. semua Substring(x) m. Head(x)Tail(y) h. semua Substring(y) n. Concate(Tail(y)xy) i. semua Subsequence(x) j. Proper Subsequence (x)
- Slides: 34