Anda di halaman 1dari 5

BAHAN 1 – KONSEP BAHASA

PENDAHULUAN

 Ilmu Komputer memiliki dua komponen utama :


1. Model dan gagasan mendasar mengenai komputer
2. Teknik rekayasa untuk perancangan sistem komputer meliputi perangkat keras
(hardware) dan perangkat lunak (software)
 Teori bahasa & otomata termasuk dalam bagian pertama dari 2 komponen utama Ilmu
Komputer di atas.
 Teori bahasa dan otomata diterapkan pada perancangan digital, pembuatan bahasa
pemrograman, dan kompilator

ABJAD, UNTAI (STRING), BAHASA

 Sebuah simbol adalah suatu entitas abstraks yang tidak didefinisikan secara formal
Contoh : huruf dan digit adalah simbol yang dipakai
 Abjad (alphabet) adalah sebuah himpunan berhingga tak kosong dari simbol–simbol
Notasi : Σ
Contoh :
- Abjad terdiri dari 26 simbol :
Σ = {a,b,c,d, … z}
a  Σ, artinya a adalah sebuah simbol di dalam Σ
- Σ = {1,2,3,4,5,6,7,8,9}
a∉Σ
Jika Σ1 dan Σ2 adalah abjad-abjad maka Σ1  Σ2, Σ1 – Σ2, dan Σ2 – Σ1 merupakan
himpunan tidak kosong (abjad)
 Untai / string / kata adalah sebuah barisan berhingga simbol-simbol dari suatu abjad.
Contoh :
Diketahui abjad Σ={a,b} maka string yang bisa terjadi a, ab, aa, bb, aaa, bbb, aaab,
dst
String kosong adalah barisan yang kosong dari simbol-simbol, notasi = {}
 Bahasa (language) adalah suatu kumpulan dari string-string, notasi = L
Contoh :
Diketahui :
∑= {1,2,3,4,…,5}
Kumpulan {1,12,123,1234,12345,112} adalah sebuah bahasa berdasarkan abjad yang
terdiri dari digit-digit itu.
Diketahui :
∑= {1}
Kumpulan {1,11,111,1111, ….} adalah sebuah bahasa
 Bahasa kosong (empty language) adalah sebuah bahasa yang tidak terdiri dari string-
string. Bahasa kosong berbeda dengan bahasa yang terdiri dari string kosong.
Notasi = ∅
 Jika ∑ merupakan sebuah abjad maka ∑ juga sebuah bahasa yang terdiri atas semua
string simbol tunggal.
Misal ∑ adalah sebuah abjad dan s adalah suatu string berdasarkan ∑.
Jika L adalah suatu bahasa yang terdiri dari beberapa string berdasarkan ∑ dan jika s
adalah sebuah string di dalam L maka dapat ditulis :
s  L, artinya s adalah elemen dari L
Contoh :
121  {1,12,121,1212,12121}

Teori Bahasa & Automata –Hal. 1


 Bahasa universal (universal language) dari ∑ adalah bahasa yang terdiri dari semua
string berdasarkan suatu abjad ∑.
Notasi : ∑*
Contoh :
∑ = {1}, maka ∑* = {,1,11,111,1111, …}
Untuk abjad apa saja, ∑* bersifat tak berhingga karena abjad-abjadnya tidak kosong.

OPERASI – OPERASI PADA STRING


1. Panjang (length) dari string
Panjang string s didefinisikan sebagai banyaknya anggota abjad (termasuk yang
sama) dalam s.
Notasi : |s|
Contoh :
∑ = {1,2}
s1 = 111 maka | s1| = 3
s2 = 121 maka | s2| = 3
s3 = 121212 maka |s3| = 6
2. Perangkaian/konkatenasi (Concatenation)
Jika s1 dan s2 adalah string-string, perangkaian s1 dan s2 adalah string yang diperoleh
dengan merekatkan string s2 ke string s1
Contoh :
s1 = 112 dan s2 = 121212, maka perangkaian s1 dengan s2 adalah string 112121212
s1. s2 = s1s2 = 112121212
s1. ε = s1 = 112

Sifat – sifat konkat


1. .s = s. = s, s  string
2. |s1s2| = |s1|+|s2|
3. sk = s.sk-1 , dengan s0 =  ,  k = 1, 2, …
4. (s1s2)s3 = s1(s2s3) = s1s2s3
5. s1s2 ≠ s2s1
3. Eksponensiasi/Pangkat (Exponentiation)
Misalkan s merupakan sebuah string atau kata, maka :
o
s =ε
1
s = 122
2
s = 122122
3
s = 122122122

OPERASI – OPERASI PADA BAHASA


1. Perangkaian (Concatenation)
Misal L1 dan L2 merupakan bahasa-bahasa berdasarkan abjad.
Perangkaian L1 dan L2 ditulis :
L1 . L2 = { s1. s2 | s1  L1 dan s2  L2}
Contoh :
L1 = {cat,dog} dan L2 = {house}, maka :
L1 . L2 = {cathouse, doghouse}
L1.(ε) = (ε) . L1 = L1

Teori Bahasa & Automata –Hal. 2


Sifat – sifat konkatenasi bahasa

1. ∅L = L∅= ∅
L∑* = ∑*(L) =∑*

2. L1L2 ≠ L2L1 kecuali L1 = L2


3. (L1L2)L3 = L1(L2L3) = L1L2L3
4. Distributif
L1(L2 ∪ L3) = L1L2 ∪ L1L3

L1(L2 ∩ L3) = L1L2 ∩ L1L3

2. Eksponensiasi (Exponentiation)
Misalkan L merupakan suatu bahasa berdasarkan abjad ∑ :
Contoh :
Jika L = {ab} berdasarkan abjad tersebut didapatkan :
o
L = {ε}
1
L = L = {ab}
2 1
L = L.L = {abab}
3 2
L = L.L = {ababab}

3. Gabungan (Union)
Misalkan L1 dan L2 adalah bahasa-bahasa berdasarkan suatu abjad ∑, maka union
dari L1 dan L2 (L1  L2) terdiri dari semua string/kata yang muncul sekurang-
kurangnya sekali dalam L1 dan L2.
L1  L2 = {s|s  L1 atau s  L2}

4. Irisan (Intersection)
Misalkan L1 dan L2 adalah bahasa-bahasa berdasarkan suatu abjad ∑, maka
intersection dari L1 dan L2 (L1 ∩ L2) terdiri dari string-string yang muncul baik di L1
maupun di L2 sekaligus.
L1 ∩ L2 = {s|s  L1 dan s  L2}
Contoh :
∑ = {0,1}
Bahasa-bahasa L1 = {ε,0,1,10,11} dan L2 = {ε,1,0110,11010}, maka
L1  L2 = {ε,0,1,10,11,0110,11010}
L1 ∩ L2 = {ε,1}

5. Sub Bahasa
Misalkan L1 dan L2 adalah bahasa-bahasa berdasarkan suatu abjad ∑ dan jika semua
string di L1 juga merupakan string di L2, maka L1 disebut sebuah sub bahasa dari L2.
Notasi L1  L2
Contoh :
Jika L1 = {a,aa,aaa} dan L2 = {a,aa,aaa,aaaa,aaaaa}, maka L1  L2

6. Equal (Sama)
Dua buah bahasa L1 dan L2 dikatakan sama jika kedua bahasa tersebut secara persis
mempunyai string-string yang sama, artinya jika sebagai himpunan-himpunan
keduanya persis sama.
Notasi : L1 = L2

Teori Bahasa & Automata –Hal. 3


7. Star Closure dan Plus Closure
Jika L adalah sebuah bahasa berdasarkan suatu abjad ∑, didefinisikan :
• Star Closure dari L* :

L*   Ln
n0
+
• Plus Closure dari L :


L   Ln
n 1

Contoh :
o
L = {ε}
1
L = {a}
2 2
L = {a }={aa}
3 3
L = {a }= {aaa}
dan seterusnya ……
Jadi :

L*   Ln
n0
0 1 2
= L  L  L  ….
= {ε}  {a}  {aa}  …
= {ε, a, aa, …}


L   Ln
n 1
1 2 3
= L  L  L  ….
= {a}  {aa}  {aaa}  …
= {a, aa, aaa, …}

Teori Bahasa & Automata –Hal. 4


Sifat – sifat Star Closure

1. ε ∈ L*
2. ∅* = {1}
3. L+  L*
4. Jika ε ∈ L → L+ = L*
5. L1  L2 → L1*  L2*
6. L1* ∪ L2*  (L1 ∪ L2)*
7. L1* ∩ L2* = ( L1 ∩ L2 )*

Contoh:

- {1}* = {ε, 1, 11, 111, 1111, … }

- {0}* = {ε, 0, 00, 000, 0000, … }

- {0}* ∪ {1}* = {ε, 0, 00, … , 1, 11, 111, … }

- ({0} ∪ {1})* = {0,1}* = ∑*

Teori Bahasa & Automata –Hal. 5

Anda mungkin juga menyukai