Anda di halaman 1dari 29

TEORI BAHASA

DAN
OTOMATA
Pendahuluan

Oleh : Iwan SW
Program Studi Teknik Informatika
UNIVERSITAS NGUDI WALUYO
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
➢ 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 simbol-
simbol 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(
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)
Terima Kasih

Anda mungkin juga menyukai