TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN
AUTOMATA

ABJAD, KATA DAN BAHASA
Perhatikan kalimat-kalimat berikut :
1. Program komputer ditulis dalam suatu bahasa
pemrograman.
2. Pengetahuan sejati diperoleh dengan usaha
pemikiran bukan dengan ingatan.
3. Barisan simbol-simbol yang biasa kita gunakan
untuk menyajikan nilai bilangan ganjil (1,3,5,…)
4. Simbol adalah sebuah entitas abstrak bisa
berupa huruf atau angka.
2

...Lanjuta
n
Kalimat atau Pernyataan di atas mempunyai
sekurang-kurangnya dua hal yang sama :
1. Masing-masing tersusun dari barisan
simbol (sequence of symbols) yang

diambil dari suatu kumpulan yang
berhingga (finite).
2. Kardinal simbol di atas panjangnya
berhingga.
3

SIMBOL
Simbol adalah sebuah entitas abstrak
(seperti halnya pengertian titik dalam
geometri). Sebuah huruf atau sebuah angka
adalah contoh simbol.
Contoh : - ‘a’,’b’,’c’,’d’,’e’,…
- ‘1’,’2’,’3’,’4’,’5’,…
- Dan lain-lain.

ABJAD
• Sebuah himpunan berhingga tak kosong
dari simbol-simbol dinamakan sebuah
abjad (alphabet). Notasi : 
• Contoh:

– Bahasa Inggris terdiri dari 26 simbol.
 = {a,b,c,….,z}
– Bahasa Arab terdiri dari 28 simbol
 = { , , ,…., }

• Kita bisa menetapkan yang lain
5

...Lanjuta
n
• Jika  merupakan abjad apa saja, maka
kita menulis  untuk menotasikan
 adalah sebuah simbol dalam , maka
jika ={0,1,2,3,4,5,6,7,8,9} kita bisa
menulis 0.

6

...Lanjuta
n

• Karena sebuah abjad merupakan sebuah
himpunan tak kosong, maka jika 1 dan 2
abjad-abjad, maka 12 juga abjad.
Begitu pula
1- 2 dan 21 yang
merupakan himpunan tidak kosong juga
adalah abjad

7

KATA / UNTAI / STRING
• Sebuah barisan berhingga simbol dari suatu
abjad sering dinamakan sebuah kata (word)
yang terbentuk dari abjad tsb.
• Sebagai contoh, jika a, b, dan c adalah tiga
buah simbol maka abcb adalah sebuah kata
yang dibangun dari ketiga simbol tersebut.
• Contoh lain :
– HELLO dan PROGRAM
– XYZ, ASDP, dsb.

8

...Lanjuta
n
• Untuk menghindari kekerliruan tentang kata, maka
digunakan istilah untai (string) untuk menyatakan kata.
• Jika w adalah sebuah untai maka panjang untai
dinyatakan sebagai |w| dan didefinisikan sebagai
cacahan (banyaknya) simbol yang menyusun untai
tersebut. Sebagai contoh, jika w = abcb maka |w|= 4.
• Untai hampa adalah 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.

9

BAHASA
• Suatu kumpulan dari kata-kata

atau untai dinamakan sebuah
bahasa (language). Sehingga
kumpulan {1, 12, 123, 1234,
12345, 123456} adalah sebuah
bahasa berdasarkan abjad yang
terdiri dari digit-digit itu.
10

...Lanjuta
n

• Begitu
pula
dengan
kata
“sebenarnya” adalah sebuah bahasa
berdasarkan
abjad
Indonesia.
Sehingga

• Jika  merupakan sebuah abjad,
maka  juga sebuah bahasa-bahasa
yang terdiri dari semua untai simbol
tunggal.
11

...Lanjuta
n
• Bahasa yang tidak mempunyai untai
dinamakan bahasa kosong (empty
language), dinotasikan sbg , tidak sama
dengan bahasa yang terdiri dari untai
kosong {}. Sebab  tidak memiliki untai
sedangkan {} memiliki untai.

12

...Lanjuta
n
• Bahasa universal (universal language)

dari  adalah bahasa yang terdiri dari
semua untai berdasarkan suatu abjad .
• Notasi *.
• Contoh
– jika abjad  = {1}, maka * = {, 1, 11, 111,
1111, …} tak berhingga karena abjadabjadnya tidak kosong.
13

ABJAD, KATA, DAN BAHASA
• Jika
  adalah suatu abjad dan
– w adalah suatu untai berdasarkan , dan
– L adalah sebuah bahasa yang terdiri dari
beberapa untai berdasarkan  dan
– jika w adalah sebuah untai dalam L, maka
wL, artinya w adalah elemen dari L
sehingga
121  {1, 12, 121, 1212, 12121}
14


OPERASI PADA UNTAI
2

• Jika w adalah sebuah untai berdasarkan
suatu abjad, kita menotasikan panjang
(length) dari w dengan simbol |w|, yaitu
banyaknya simbol di dalam untai itu,.
• Contoh
– jika  = {1,2}, dan w = 121, maka |w| = 3.
– Untai tdk punyai simbol, sehingga || = 0

15

PERANGKAIAN
• Jika w dan z adalah untai-untai,
perangkaian (concatenation) w dengan z
adalah untai yang diperoleh dengan
merekatkan untai z ke untai w, menjadi wz
atau w.z
• Contoh

– w=“teori” dan
“teoribahasa”

z

=

“bahasa”

menjadi

16

...Lanjuta
n
• Kita dapatkan |wz| = |w| + |z|
• Concatenation  ke w tidak mengubah w,
sehingga  dikatakan bertindak sebagai
sebuah identitas (identity) terhadap
operasi concatentaion


17

EKSPONENSIASI
• Kita dapat memperkenalkan pengertian
eksponensiasi untuk untai2 berdasarkan
abjad sbr. Misalkan w merupakan sebuah
kata atau untai; maka :
,

jika n = 0

wn =
wwn-1, jika n > 0
18

...Lanjuta
n

• Sehingga berdasarkan  = {1,2}, jika

w = 122, kita dapatkan
w0 = 
w1 = 122
w2 = 122122
w3 = 122122122


19

SAMA DENGAN
• w sama dengan z jika keduanya
mempunyai panjang sama dan
simbol-simbol sama pada posisi yang
sama.
• Notasi w = z

20

...Lanjuta
n

OPERASI DASAR UNTAI

Diberikan dua string : x = abc, dan y = 123
• Prefik string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling belakang dari
string w tersebut.
Contoh : abc, ab, a, dan  adalah semua Prefix(x)
• ProperPrefix string w adalah string yang dihasilkan dari string w
dengan menghilangkan satu atau lebih simbol-simbol paling
belakang dari string w tersebut.
Contoh : ab, a, dan  adalah semua ProperPrefix(x)
• Postfix (atau Sufix) string w adalah string yang dihasilkan dari string
w dengan menghilangkan nol atau lebih simbol-simbol paling depan
dari string w tersebut.
Contoh : abc, bc, c, dan  adalah semua Postfix(x)
21

...Lanjuta
n

• ProperPostfix (atau PoperSufix) string w adalah string yang
dihasilkan dari string w dengan menghilangkan satu atau lebih simbolsimbol paling depan dari string w tersebut.
Contoh : bc, c, dan  adalah semua ProperPostfix(x)
• Head string w adalah simbol paling depan dari string w.
Contoh : a adalah Head(x)
• Tail string w adalah string yang dihasilkan dari string w dengan
menghilangkan simbol paling depan dari string w tersebut.
Contoh : bc adalah Tail(x)
• 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 : abc, ab, bc, a, b, c, dan  adalah semua Substring(x)

...Lanjuta
n
• ProperSubstring string w adalah string yang dihasilkan dari string
w dengan menghilangkan satu atau lebih simbol-simbol paling
depan dan/atau simbol-simbol paling belakang dari string w
tersebut.
Contoh : ab, bc, a, b, c, dan  adalah semua Substring(x)

• Subsequence string w adalah string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih simbol-simbol dari string w
tersebut.
Contoh : abc, ab, bc, ac, a, b, c, dan  adalah semua Subsequence(x)

• ProperSubsequence string w adalah string yang dihasilkan dari
string w dengan menghilangkan satu atau lebih simbol-simbol dari
string w tersebut.
Contoh : ab, bc, ac, a, b, c, dan  adalah semua Subsequence(x)

...Lanjuta
n
• Concatenation adalah penyambungan dua buah string.
Operator concatenation adalah concate atau tanpa
lambang apapun.
Contoh : concate(xy) = xy = abc123
• Alternation adalah pilihan satu di antara dua buah
string. Operator alternation adalah alternate atau .
Contoh : alternate(xy) = xy = abc atau 123
• Kleene Closure : x* = xxxxxx… = xx x …
• Positive Closure : x = xxxxxx… = xx x …

BEBERAPA SIFAT OPERASI
• Tidak selalu berlaku : x = Prefix(x)Postfix(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)
• 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

...Lanjuta
n
• Dua sifat aljabar concatenation :
1. Operasi concatenation bersifat asosiatif : x(yz) = (xy)z
2. Elemen identitas operasi concatenation adalah  : x = x
=x
• Tiga sifat aljabar alternation :
1. Operasi alternation bersifat komutatif : xy = yx
2. Operasi alternation bersifat asosiatif : x(yz) = (xy)z
3. Elemen identitas operasi alternation adalah dirinya
sendiri : xx = x
• Sifat distributif concatenation terhadap alternation : x (yz)
= xyxz

OPERASI 2 PADA BAHASA
• Misalkan A dan B bahasa2 berdasarkan
suatu
abjad.
Kita
mendefinisikan
Perangkaian bahasa A dan B. Notasi :
A  B = {w  x | w  A dan x  B}

Contoh :
– A = {merah, putih} dan B = {bendera} maka
A  B = {merahbendera, putihbendera}
– A.() = () . A = A
27

...Lanjuta
n
• Untuk Eksponensiasi, misalkan A merupakan
suatu bahasa berdasarkan suatu abjad . Kita
definisikan
,
jika n = 0
An =
AAn-1, jika n > 0

28

...Lanjuta
n

Contoh jika A = {ab} berdasarkan
abjad Inggris tersebut didapatkan:
A0 = {}
A1 = A = {ab}
A2 = A. A1 = {abab}
A3 = A. A2 = {ababab}

...Lanjuta
n
• Jika A dan B adalah bahasa2 berdasarkan suatu
abjad  maka Gabungan dari A dan B, ditunjukan
sebagai A  B, terdiri dari semua kata yang muncul
sekurang-kurangnya sekali di dalam A dan B, artinya
A  B = {x | x  A atau x  B}
Contoh
  = {0,1},
– A = {, 0, 1, 10, 11},
– B = {, 1, 0110, 11010}
Maka A  B = {, 0,1,10, 11, 0110, 11010}
30

...Lanjuta
n
• Misalkan A dan B adalah bahasa-bahasa
berdasarkan suatu abjad , maka Irisan dari A
dan B adalah terdiri dari untai-untai yang muncul
baik di A maupun di B sekaligus.
A  B = {x | x  A dan x  B
Contoh :
  = {0,1}
– A = {, 0, 1, 10, 11}
– B = {, 1, 0110, 11010}
Maka A  B = {, 1}
31

...Lanjuta
n
• Equal (sama) Misalkan bahwa A dan B
adalah bahasa2 berdasarkan suatu abjad
. Maka A=B jika dan hanya jika AB dan
BA sekaligus.

32

TEOREMA
• Untuk bahasa-bahasa A, B, dan C
berdasarkan suatu abjad , yang berikut
ini terpenuhi
– A . (B  C) = A . B  A . C
– (B  C) . A = B . A  C . A

33

TERIMA KASIH

Pertanyaan.?
1. Misalkan  = {a,u,k} jika w = {aku}

• Carilah wn untuk n=0,1,2,3,4,5.
• Untai-untai apa sajakah di dalam wn untuk sembarang n?

2. Misalkan A={Mouse, Keyboard} dan B = {Optik, USB}
Carilah Concatenation: A . B = ?

3. Tidak selalu berlaku : x = Prefix(x)Postfix(x)
4. Tidak selalu berlaku : Prefix(x) = Postfix(x) atau Prefix(x) 
Postfix(x)
5. Selalu berlaku : ProperPrefix(x)  ProperPostfix(x)
6. Selalu berlaku : Head(x)  Tail(x)
7. Setiap Prefix(x), ProperPrefix(x), Postfix(x), ProperPostfix(x),
Head(x), dan Tail(x) adalah Substring(x), tetapi tidak
sebaliknya
8. Setiap Substring(x) adalah Subsequence(x), tetapi tidak
sebaliknya