Anda di halaman 1dari 21

Teori Bahasa dan Otomata

Pendahuluan
Konsep Dasar: Alfabet, String, dan Bahasa
Teori Bahasa
 Teori bahasa membicarakan tentang
bahasa formal (formal language),
terutama untuk perancangan
kompilator (compiler) dan pemrosesan
naskah.
 Bahasa formal adalah kumpulan
kalimat.
 Semua kalimat dalam sebuah bahasa
dibangkitkan oleh sebuah tata bahasa
(grammar).
Bahasa Formal

Pembangkitan dan
Tatabahasa Pengenalan Bahasa
Kalimat

Teknik Informatika UPNVY 3


Otomata
 Adalah mesin abstrak yang dapat
mengenali (recognize) atau menerima
(accept) sebuah kalimat dalam
bahasa tertentu.
 Contoh: Mesin Jaja/vending machine,
parser/compiler, dll.
Mengapa TBO?
 Ekspresi reguler (RE) digunakan pada
berbagai sistem
◦ Cth. UNIX a.*b.
◦ Cth DTD mendeskripsi tag XML dalam
bentuk RE seperti pegawai (nama,
alamat, anak*).
 Finite automata memodelkan protokol

5
Mengapa TBO? – (2)
 Tata bahasa bebas konteks (Context-
free grammars) digunakan untuk
mendeskripsikan semua bahasa
pemrograman => kompilasi
◦ Disamping juga bahasa manusia/alami =>
pemrosesan teks, penerjemahan, dll

6
Mengapa TBO? – (3)
 Ketika mencari solusi masalah, kita
sering mendapati batasan yang bisa
dilakukan suatu software
◦ Undecidable– tidak bisa diselesaikan oleh
program sama sekali.
◦ Intractable– bisa diselesaikan dengan
program, tapi butuh waktu yang lama

7
Konsep Dasar
 Alfabet
 String
 Bahasa
Alfabet
 Himpunan simbol terbatas dan tak
kosong
 Lambang: ∑
 Contoh:
◦ ∑ = {0, 1} alfabet biner
◦ ∑ = {a, b, c, …, z} alfabet yang terdiri dari
himpunan huruf kecil
◦ Himpunan simbol ASCII
Alfabet (2)
 Alfabet yang dipakai oleh prosesor
komputer: {0, 1}
 Alfabet untuk merepresentasikan
bilangan basis 10: {0, 1, 2, …, 9}
 Alfabet untuk menulis cerita
{a, …, z, A, …, Z, ?, …}
 Alfabet untuk merepresentasikan
bahasa logika { , , , ,…}
Alfabet (3)
 Alfabet untuk bahasa pemrograman,
disebut juga token
◦ Token/alfabet untuk bahasa C:
{main, printf, …}
 Alfabet untuk merepresentasikan
molekul DNA: {A, C, G, T}
String
 String: deretan berhingga (finite)
simbol-simbol yang berasal dari suatu
alfabet
 Contoh:
 Dari alfabet biner ∑={0,1} bisa didapat
string 10011 dan 111
String kosong
 String kosong: String dengan nol buah
simbol
 Lambang:
Panjang string
 Jika w adalah sebuah string maka
panjang string dinyatakan sebagai
w dan didefinisikan sebagai
banyaknya simbol yang menyus
 Contoh
◦ Jika w = abcb , maka w = 4
 =0
 Cth.: |011| =3
Substring
 Substring string w adalah string yang
dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-
simbol paling depan dan/atau simbol-
simbol paling belakang dari string w
tersebut.
 Contoh : x = abc, maka substring x
adalah abc, ab, bc, a, b, c, dan
n

 Himpunan string dari suatu alfabet


yang panjangnya n
 Jika = {0,1}
 3 = {000, 001, 010, 011,100,
101,110,111}
* dan +
 Himpunan semua string dari suatu
alfabet dilambangkan dengan *
 Cth:
◦ {0,1}* = { , 0, 1, 00, 01, 10, 11, 000, …}

 Himpunan semua string dari suatu


alfabet tanpa string kosong +
 {0,1}+ = {0, 1, 00, 01, 10, 11, 000, …}
Konkatenasi dua string
 Penggabungan dua buah string
 Contoh:
 Jika x = 01 dan y = 110, maka
◦ xy = 01110
◦ yx = 11001
 Sifat aljabar konkatenasi :
◦ asosiatif : x(yz) = (xy)z
◦ Elemen identitas operasi konkatenasi
adalah
◦ x=x =x
Bahasa
 Suatu himpunan string yang dipilih
dari * dari suatu alfabet
 Contoh:
 Jika = {0,1}
◦ Bahasa dengan string yang jumlah simbol
0 sama dengan simbol 1: { , 01, 10, 0011,
0101, 1100, …}
◦ Bahasa yang stringnya selalu diakhiri
simbol 0: {0, 10, 110, 100, 000, 1110, …}
Latihan
1. Tuliskan alfabet berikut ini:
a. Himpunan simbol angka heksadesimal
b. Himpunan huruf hidup/vokal kecil
2. Buatlah masing-masing 5 string dari
alfabet soal nomor 1 yang
panjangnya 5.
3. = {a, b, c}, carilah 3
4. = {a}, tuliskan *
5. = {O, X}, tuliskan *
Latihan
6. Carilah semua substring dari “gelas”
7. Jika ={a,b,c}, tulislah minimal 5 string
yang menjadi anggota bahasa berikut
ini:
a. Bahasa yang terdiri dari string palindrom
b. Bahasa yang terdiri dari string berawalan
dan berakhiran simbol a
c. Bahasa yang memuat substring cba
8. Enumerasikan himpunan string pada
bahasa berikut ini
a. a*b
b. (01)+

Anda mungkin juga menyukai