01 TBO_Teori Operasi Dasar String

Download Report

Transcript 01 TBO_Teori Operasi Dasar String

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
Ilmu
Komputer
model dan gagasan
mendasar mengenai komputasi
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
 String Hampa
sebuah string dengan
nol buah simbol
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
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. ProperPrefik string x
string yang dihasilkan dari string x dengan
menghilangkan satu atau lebih simbolsimbol paling belakang dari string x
tersebut.
Contoh:
String x = abc, maka:
ab, a, dan ε adalah semua ProperPrefix(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, bc, c dan ε adalah semua Postfix(x)
Operasi Dasar String
4. 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
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 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
8. 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
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, ac, a, b, c dan ε
adalah semua Subsequence(x)
Operasi Dasar String
10. 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
11. 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
12. 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)
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)
[email protected]