2 alfabet dan string
-
Upload
rahmatdi-black -
Category
Entertainment & Humor
-
view
1.071 -
download
4
description
Transcript of 2 alfabet dan string
Teori Bahasa dan Otomata PendahuluanKonsep Dasar: Alfabet, String, dan Bahasa
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).
Teknik Informatika UPNVY 3
Bahasa Formal
Tatabahasa Bahasa
Pembangkitan dan Pengenalan Kalimat
OtomataAdalah mesin abstrak yang dapat
mengenali (recognize) atau menerima (accept) sebuah kalimat dalam bahasa tertentu.
Contoh: Mesin Jaja/vending machine, parser/compiler, dll.
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
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
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
Konsep DasarAlfabetStringBahasa
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
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}
StringString: deretan berhingga (finite)
simbol-simbol yang berasal dari suatu alfabet
Contoh:Dari alfabet biner ∑={0,1} bisa
didapat string 10011 dan 111
String kosongString kosong: String dengan nol
buah simbolLambang:
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
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
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 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
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, …}
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 *
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)*