Bahasa: Mesin Status Berhingga

4.2 Bahasa: Mesin Status Berhingga

Dengan menggunakan konsep himpunan dan fungsi, pada bab ini akan diba- has suatu model abstrak yang disebut dengan mesin status berhingga (…- nite state machine) atau disebut juga sirkuit sekuensial (sequential circuit). Sirkuit yang dimaksud adalah satu dari dua tipe dasar kontrol sirkuit yang terdapat di dalam komputer dijitel. Sesuai dengan namanya, mesin sta- tus berhingga mempunyai sejumlah berhingga status internal dimana mesin mampu mengingat informasi tertentu ketika berada di dalam status khusus.

4.2.1 Bahasa: Teori Himpunan String

Barisan simbol, atau karakter, merupakan peranan kunci di dalam pemros- esan informasi oleh komputer. Sebagai gambaran, program komputer dapat direpresentasikan sebagai barisan karakter yang berhingga. Suatu cara al- jabar diperlukan untuk menangani barisan berhingga tersebut atau menan- gani string.

Pada bagian ini kita gunakan untuk menotasikan himpunan berhingga tak-kosong dari simbol-simbol, himpunan ini disebut alfabet. Sebagai misal, = f0; 1g atau

= fa; b; c; dg: Agar tidak rancu dengan pengertian string nantinya, perlu disepakati bahwa keanggotaan

tidak dibolehkan jajaran lebih dari satu simbol. Misalnya, pende…nisian

= f0; 1; 2; 11; 13g atau = fa; b; c; ab; bbcg tidak diperkenankan.

Suatu string dapat dikonstruksi dari anggota-anggota melalui suatu cara yang sistematik dengan ide rekursif sebagaimana dinyatakan dalam de…nisi berikut ini.

De…nisi 4.2 Jika + adalah suatu alfabet dan n 2 Z ; dide…nisikan kuasa dari secara rekursif sebagai berikut:

1. 1 = ; dan

2. n +1 = fxy=x 2 ; y 2 g; xy menotasikan jajaran x dan y: Contoh 4.10 Misalkan = f0; 1g; maka

2 = f00; 01; 10; 11g;

3 = f000; 001; 010; 011; 100; 101; 110; 111g; dan

4 = f0000; 0001; 0010; 0011; 0100; 0101; 0110; 0111; 1000; 1001; 1010; 1011; 1100; 1101; 1110; 1111g: Misalkan = fa; b; cg; maka

2 = faa; ab; ac; ba; bb; bc; ca; cb; ccg; dan

3 = faaa; aab; ::; acc; baa; bab; ::; bcc; caa; cab; ::; cccg: Suatu anggota dari n disebut string n-simbol atau string dengan pan-

jang n: Secara umum, jika j j = m; maka j n j=m : De…nisi 4.3 Untuk alfabet 0 ; dide…nisikan = f g; dimana

meno- tasikan string kosong, yaitu string yang tidak memuat simbol apapun yang diambil dari :

Dari de…nisi di atas perlu dicatat bahwa:

2. Karena = 2 ; maka f g :

3. Karena jf gj = 1 6= 0 = j?j; maka f g 6= ?: De…nisi 4.4 Jika

adalah suatu alfabet, maka

1. n = = ; dan

n =1

n 2Z +

n =0

Dari de…nisi di atas, jelas bahwa

Sebagai tambahan dari istilah string, anggota-anggota dari + atau disebut juga dengan kata (word) atau kadangkala disebut dengan kalimat (sentence). Perlu juga dicatat bahwa walaupun himpunan + dan

tak- hingga, anggota-anggotanya diacu sebagai string simbol yang berhingga.

Contoh 4.11 Untuk

memuat semua string dari simbol \0" dan \1" termasuk string kosong. Untuk n kecil, kita masih

= f0; 1g; himpunan

mampu menuliskan semua anggota dari n : Misalkan

= f ; 0; 1; :::; 9; +; ; ; =; (; )g;

dimana menotasikan spasi (blank). Untuk pende…nisian ini, cukup sulit menggambarkan semua anggota

; dan untuk n > 2 terlalu banyak menuliskan semua anggota dari n : Suatu contoh anggota dari

adalah ekspresi aritmatik

atau suatu string tanpa makna

De…nisi 4.5 Jika w 1 ;w

2 2 ; maka bisa ditulis

1 =x 1 x 2 :::x m dan w 2 =y 1 y 2 :::y n ; untuk m; n 2 Z ; dan x 1 ;x 2; :::; x m ;y 1 ;y 2; :::; y n 2 : String w 1 dan w 2 dikatakan sama, notasi

w 1 =w 2 jika

m = n; dan x i =y i untuk setiap 1 i m:

De…nisi 4.6 Misalkan w = x

1 x 2 :::x n 2 ; dimana x i 2 untuk setiap

1 i n: Panjang dari w, notasi jjwjj ; dide…nisikan sebagai nilai dari n: Untuk kasus string kosong ; maka jj jj = 0:

De…nisi 4.7 Jika x; y 2 + dengan x + =x

1 x 2 :::x m dan y = y 1 y 2 :::y n ; untuk m; n 2 Z ; dan

x 1 ;x 2; :::; x m ;y 1 ;y 2; :::; y n 2:

Rangkaian (concatenation) dari x dan y, dinotasikan xy, dide…nisikan se- bagai string

xy =x 1 x 2 :::x m y 1 y 2 :::y n :

Rangkaian dari x dan adalah

x =x 1 x 2 :::x m =x 1 x 2 :::x m = x:

Rangkaian dari dan adalah

Rangkaian merupakan operasi biner yang tertutup pada + (juga ), bersifat asosiatif tetapi tidak komutatif (kecuali jika j j = 1), dan karena

x = x = x untuk setiap x 2 ; maka merupakan unsur identitas dari terhadap operasi rangkaian tersebut. Keterkaitan operasi rangkaian dan panjang string diantaranya dapat dilihat dalam sifat berikut ini.

jjxyjj = jjxjj + jjyjj ; untuk setiap x; y 2 ; kxk = kx k; untuk setiap x 2 ; dan

kzk = jjz jj = jj zjj = 1; untuk setiap z 2 :

De…nisi 4.8 Untuk setiap x 2 ; dide…nisikan kuasa (power) dari x se- cara rekursif sebagai

=;x n = x; x = xx; x =x x +1 ; :::; x =x x ; untuk n 2 N. Contoh 4.12 Jika = f0; 1g dan x = 01; maka

0 1 2 x 3 = ;x = 01; x = 0101; x = 010101;

2 kx 3 k = 4 = 2kxk; x = 6 = 3kxk; dan secara umum kx n k = nkxk; untuk n > 0:

De…nisi 4.9 Jika x; y 2 dan w = xy; maka string x disebut pre…ks (pre…x) dari w; dan jika y 6= ; maka x disebut pre…ks sejati (proper pre-

…x) dari w: Dalam hal ini, y disebut sa…ks (su¢x) dari w; dan jika x 6= ; maka y disebut sa…ks sejati (proper pre…x) dari w:

De…nisi 4.10 Jika x; y; z 2 dan w = xyz; maka y disebut dengan sub- string dari w: Apabila sedikitnya satu dari x dan z bukan ; maka y disebut substring sejati dari w:

De…nisi 4.11 Diberikan alfabet ; sembarang subhimpunan dari disebut dengan bahasa (language) atas : Dalam de…nisi ini termasuk himpunan kosong ? dan disebut bahasa kosong (empty language).

De…nisi 4.12 Untuk alfabet

; rangkaian dari A dan B; dinotasikan AB; dide…nisikan sebagai

dan bahasa A; B

AB = fab=a 2 A; b 2 Bg:

Teorema 4.1 Untuk alfabet dan bahasa A; B; C ; maka:

1. Af g = f gA = A

2. (AB)C = A(BC)

6. (B \ C)A BA \ CA De…nisi 4.13 Diberikan bahasa A

; kita dapat mengkonstruksi bahasa- bahasa yang lain dengan langkah-langkah sebagai berikut:

1. A 0 1 = f g; A + = A; dan untuk setiap n 2 Z ;

n +1

A n = fab=a 2 A; b 2 A g:

2. A +

A ; disebut ketertutupan positif (positive closure) dari A:

n 2Z +

3. A = A + [ f g; disebut ketertutupan Kleene (Kleene closure) dari A:

4.2.2 Mesin Status Berhingga

Sebelum mende…nisikan mesin status berhingga, diberikan ilustrasi berikut. Vending machine menjual dua minuman kaleng: Cola (C) dan Fanta (F) dengan harga sama 20c/: Mesin tersebut menerima koin: Nikel (senilai 5c/), Dime (10c/), dan Kuarter (25c/), dan mampu memberikan pengembalian.

Jika seseorang ingin membeli Fanta dengan menggunakan 2 Nikel dan 1 Dime, cara kerja mesin tersebut digambarkan dalam tabel berikut ini.

t 0 t 1 t 2 t 3 t 4 Status

(1) s 0 (4) s 1 (5c/) (7) s 2 (10c/) (10) s 3 (20c/) (10) s 0 Input

(11) W Output (3) K(Kosong) (6) K

(12) F Jika seseorang ingin membeli Cola dengan menggunakan 1 Kuarter, cara

(9) K

kerja mesin tersebut digambarkan dalam tabel berikut ini. t 0 t 1 t 2

Status (1) s 0 (4) s 1 (20c/) (7) s 0 Input

(2) 25c/

(5) B

Output (3) 5c/ (kembalian) (6) C Ilustrasi pada vending machine di atas merupakan gambaran yang umum-

nya terjadi pada cara kerja komputer dijitel atau sistem komunikasi telefon. Hal ini dapat diabstraksikan sebagai berikut:

1. Pada setiap waktu, mesin berada dalam keadaan salah satu dari sejum- lah berhingga status. Status-status ini disebut dengan status internal, dinyatakan: s 0; s 1; s 2; ...,s k :

2. Mesin siap menerima input sejumlah berhingga simbol. Himpunan simbol-simbol input yang mungkin disebut alfabet input, dinotasikan

I: Dalam ilustrasi di atas,

I = f5c/; 10c/; 25c/; W; Bg:

3. Output dan status berikutnya ditentukan oleh kombinasi input dan sta- tus internal. Himpunan semua simbol output yang mungkin disebut alfabet output, dinotasikan O:

O = f5c/; 10c/; 15c/; 20c/; F; C; K (kosong)g:

De…nisi 4.14 Mesin Status Berhingga adalah rangkai-5, notasi M = (S; I; O; ; $); dimana S adalah himpunan internal status untuk M; I adalah alfabet input untuk M ; O adalah alfabet output untuk M; : S I ! S adalah

fungsi status berhingga; dan $ : S

I ! O adalah fungsi output. Karena dalam mesin status berhingga, S; I; dan O adalah himpunan-

himpunan berhingga, maka (s; x) dan $(s; x) untuk setiap s 2 S dan untuk semua x 2 I dapat direpresentasikan dengan tabel yang disebut Tabel Status, atau dapat direpresentasikan dengan Diagram Status.

Contoh 4.13 Dide…nisikan mesin status berhingga M = (S; I; O; ; $); di- mana S = fs 0; s 1 ;s 3 g; I = O = f0; 1g; dan ; $ diberikan dalam tabel status berikut.

Jika M diberi input string 1010; maka outputnya string 0010: Hasil ini dinyatakan dalam tabel berikut.

Status s 0 s 1 s 2 s 1 s 2

Input

Output 0 0 1 0