2 alfabet dan string

21
Teori Bahasa dan Otomata Pendahuluan Konsep Dasar: Alfabet, String, dan Bahasa

description

Teori Bahasa Otomata

Transcript of 2 alfabet dan string

Page 1: 2 alfabet dan string

Teori Bahasa dan Otomata PendahuluanKonsep Dasar: Alfabet, String, dan Bahasa

Page 2: 2 alfabet dan string

Teori BahasaTeori 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).

Page 3: 2 alfabet dan string

Teknik Informatika UPNVY 3

Bahasa Formal

Tatabahasa Bahasa

Pembangkitan dan Pengenalan Kalimat

Page 4: 2 alfabet dan string

OtomataAdalah mesin abstrak yang dapat

mengenali (recognize) atau menerima (accept) sebuah kalimat dalam bahasa tertentu.

Contoh: Mesin Jaja/vending machine, parser/compiler, dll.

Page 5: 2 alfabet dan string

5

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

Page 6: 2 alfabet dan string

6

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

Page 7: 2 alfabet dan string

7

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

Page 8: 2 alfabet dan string

Konsep DasarAlfabetStringBahasa

Page 9: 2 alfabet dan string

AlfabetHimpunan simbol terbatas dan

tak kosongLambang: ∑Contoh:

◦∑ = {0, 1} alfabet biner◦∑ = {a, b, c, …, z} alfabet yang

terdiri dari himpunan huruf kecil◦Himpunan simbol ASCII

Page 10: 2 alfabet dan string

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 {,,,,…}

Page 11: 2 alfabet dan string

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}

Page 12: 2 alfabet dan string

StringString: deretan berhingga (finite)

simbol-simbol yang berasal dari suatu alfabet

Contoh:Dari alfabet biner ∑={0,1} bisa

didapat string 10011 dan 111

Page 13: 2 alfabet dan string

String kosongString kosong: String dengan nol

buah simbolLambang:

Page 14: 2 alfabet dan string

Panjang stringJika w adalah sebuah string maka

panjang string dinyatakan sebagai w dan didefinisikan sebagai banyaknya simbol yang menyus

Contoh◦Jika w = abcb , maka w= 4

= 0Cth.: |011| =3

Page 15: 2 alfabet dan string

SubstringSubstring 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

Page 16: 2 alfabet dan string

n

Himpunan string dari suatu alfabet yang panjangnya n

Jika = {0,1}3 = {000, 001, 010, 011,100,

101,110,111}

Page 17: 2 alfabet dan string

* 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, …}

Page 18: 2 alfabet dan string

Konkatenasi dua stringPenggabungan dua buah stringContoh: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

Page 19: 2 alfabet dan string

BahasaSuatu 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, …}

Page 20: 2 alfabet dan string

Latihan

1. Tuliskan alfabet berikut ini:a. Himpunan simbol angka heksadesimalb. 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 *

Page 21: 2 alfabet dan string

Latihan6. 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 palindromb. Bahasa yang terdiri dari string berawalan

dan berakhiran simbol ac. Bahasa yang memuat substring cba

8. Enumerasikan himpunan string pada bahasa berikut ini

a. a*bb. (01)+c. (ab|c)*