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 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. Otomata Source language 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) Modelling Ide dasar mengenai komputasi Ilmu Komputer 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
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 = {._,._.,.._,…_}
STRING String atas suatu alfabet adalah barisan berhingga anggota-anggota alfabet Contoh : α = {a1,a2,…,an} String Ṥ = Ṥ1, Ṥ2, …. Ṥk Panjang string Ṥ didefinisikan sebagai banyaknya anggota alfabet dalam Ṥ (|Ṥ|)
STRING (contd) Panjang String cacahan (banyaknya) simbol yang menyusun string tersebut. Contoh: jika w = abcb maka |w| = 4. w adalah sebuah string
STRING sebuah string dengan nol buah simbol String Hampa String hampa dinyatakan dengan simbol ε 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 penyambungan dua buah string 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=abc123, 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 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 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)
LATIHAN 2 a. Semua Prefix(x) b. semua ProperPrefix(y) Diberikan dua string : x = abcde, dan y = 23456 a. Semua 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)