Anda di halaman 1dari 7

BAB I

PENDAHULUAN

1.1 Pendahuluan
Ilmu komputer memiliki dua komponen utama: pertama, model
dan gagasan mendasar mengenai komputasi, kedua, teknik rekayasa untuk
perancangan sistem komputasi, meliputi perangkat keras dan perangkat
lunak, khususnya penerapan rancangan dari teori. Teori Bahasa dan
Otomata merupakan bagian pertama. Sebuah simbol adalah suatu entitas
abstrak yang tidak kita definisikan secara formal. Huruf dan digit adalah
contoh dari simbol yang sering dipakai. Sebuah string adalah suatu deretan
berhingga dari simbol-simbol. Sebagai contoh, ‘S’,’T’,’U’ adalah simbol-
simbol, dan ‘abcd’ adalah suatu string. Dalam tata bahasa bebas konteks
(context free grammar), selanjutnya kita sebut sebagai CFG, tidak terdapat
pembatasan hasil produksinya. Batasannya hanyalah ruas kiri adalah
sebuah simbol variabel. Dalam tata bahasa bebas konteks linier kanan
memiliki aturan dasar yaitu tata bahasa bebas konteks adalah ‘Linier’, jika
setiap produksi punya maksimal satu non terminal disebelah kanan.
Sedangkan tata bahasa bebas konteks adalah ‘Linier Kanan’, jika Linier
dan produksi dengan non terminal di sebelah kanan berakhir dengan non
terminal tersebut. Untuk mengoptimisasikan tata bahasa bebas konteks
linier kanan, maka diperlukan pengecekan penginputan produksi dari tata
bahasa tersebut, jika penginputan sesuai dengan aturan dari tata bahasa
bebas konteks linier kanan, maka secara otomatis kita dapat menemukan
Non-deterministic finite automata (NFA) atau tidak deterministik.
Dikatakan tidak deterministik karena setiap satu state mempunyai dua
transisi, untuk satu simbol input. Atau state yang keluar dari transisi
edgenya sama. Setelah NFA maka sebelum optimisasi kita perlu
melakukan Deterministic Finite Automata (DFA) atau deterministik.
Dikatakan deterministik karena setiap state ada maksimal satu transisi
untuk satu simbol input dan tidak punya transisi ε (epsilon). Jika DFAnya

1-1
berhasil dikerjakan maka optimisasi untuk hasil optimal. Dikatakan
optimal karena jumlah state menjadi lebih sedikit dari jumlah state NFA.
Oleh sebab itu, untuk melakukan optimisasi tata bahasa, dapat dilakukan
dengan tiga tahap yaitu pertama, membandingkan state akhir dan bukan
state akhir. Kedua, membedakan state dengan cara dua state sebelah kanan
dan dua state sebelah kiri harus mempunyai transisi untuk satu simbol
input yang sama. Ketiga, membedakan state yang memiliki transisi untuk
simbol input dan state yang tidak memiliki transisi untuk simbol input.
Jika optimisasi menghasilkan hasil yang optimal maka visualisasi gambar
sama dengan DFA.

1.2 Latar Belakang Permasalahan


Dalam menghasilkan tata bahasa bebas konteks linier kanan yang
baru, yang lebih optimal, tentunya tidak mudah. Diperlukan pengecekan
dari setiap produksi yang diinputkan atau dimasukkan. Pengecekan
inputan produksi tata bahasa bebas konteks perlu untuk mengetahui
apakah produksi tersebut linier kanan atau bukan linier kanan.
Optimisasian tata bahasa bebas konteks linier kanan harus mengikuti
aturan yang telah ditetapkan dalam automata. Tidak hanya melakukan
pengecekan inputan produksi tata bahasa bebas konteks, apakah linier
kanan atau bukan linier kanan, tetapi perlu dilakukan NFA, dan DFA.

1.3 Batasan Masalah


Tata bahasa bebas konteks memiliki beberapa penyederhanan dan
aturannya. Oleh karena itu, dalam penyusunan tugas akhir, penyusun
membatasi lingkup permasalahan pada :
(1). Tata bahasa bebas konteks hanya membahas tentang Optimisasi
tata bahasa bebas konteks linier kanan.
(2). Melakukan pengecekan tata bahasa bebas konteks, apakah linier
kanan atau bukan linier kanan. Dengan membatasi :
a. Huruf A-Z untuk non terminal,

1-2
b. Huruf a-z untuk terminal.
c. Produksi disebelah kiri selalu dimulai dengan non terminal
atau huruf besar.
d. Produksi disebelah kanan hanya ada terminal atau huruf
kecil dan non terminal atau huruf besar.
e. Tombol keyboard / untuk melanjutkan penginputan
produksi
f. Tombol keyboard @ untuk ε atau epsilon
g. Produksi tata bahasa S → aSS, T → aTaTa, R → RR
disebut tidak linier kanan.
h. Produksi tata bahasa S → aS, T → bbb disebut linier kanan
i. Jika produksi yang diinputkan tidak linier kanan maka
untuk tidak dapat melakukan visualisasi dari NFA, DFA
dan optimisasi
(3). Jika produksi yang diinputkan linier kanan maka secara otomatis
kita dapat menemukan NFA. NFA dibatasi dengan :
a. State awal
b. State akhir
c. Simbol input berupa transisi terminal dari produksi
d. Label dalam state berupa angka
e. Disimpan dalam database berupa tabel
f. Visualisasi dalam gambar
(4). Sesudah NFA ditampilkan, maka dilanjutkan dengan DFA. DFA
dibatasi dengan :
a. State awal
b. State akhir
c. Simbol input berupa transisi terminal dari produksi
d. Label dalam state berupa huruf
e. Disimpan dalam database berupa tabel
f. Visualisasi dalam gambar

1-3
(5). Apabila tata bahasa bebas konteks linier kanan, ditemukan NFA,
kemudian DFA maka kita mengoptimasi tata bahasa ini.
Optimisasi dibatasi dengan :
a. Menggunakan tabel dimana terdapat kolom dan baris.
Didalam kolom dan baris terdapat huruf besar yang
merupakan hasil dari state pada DFA
b. Pada diagonal tabel ditulis s atau sama
c. Tiga aturan pada optimisasi, yang merubah s atau sama
menjadi b atau beda.
d. Jika hasil optimisasi pada tabel menunjukkan bahwa tidak
ada s atau sama diluar diagonal maka optimal.
e. Optimal dapat dilihat pada visualisasi dalam gambar DFA.

1.4 Perumusan Masalah


Berdasarkan latar belakang permasalahan dan batasan masalah
maka dirumuskan permasalahan bagaimana mengoptimasikan tata bahasa
bebas konteks linier kanan.

1.5 Tujuan Penyusunan Tugas Akhir


Tujuan umum penyusunan tugas akhir ini adalah
mengimplementasikan teori-teori yang telah diperoleh selama perkuliahan
ke dalam suatu permasalahan dalam bidang Teori Bahasa dan Otomata.
Adapun tujuan khusus tugas akhir ini adalah mengoptimisasi tata bahasa
bebas konteks linier kanan dengan menggunakan NFA, DFA untuk
menghasilkan tata bahasa bebas konteks linier kanan yang baru.

1.6 Metode Penelitian


Metode atau tahap-tahap yang digunakan dalam pembuatan
program dan penyusunan laporan tugas akhir ini, meliputi :
(1). Studi Pustaka

1-4
Studi pustaka dilakukan dengan mencari, mengumpulkan, dan
mempelajari referensi-referensi yang relevan dengan pemrograman
yang menggunakan Visual Basic, sehingga dapat mengkonversi
NFA ke DFA, dan mengoptimisasikan.
(2). Pembuatan program
Langkah-langkah yang ditempuh adalah :
a. Mempelajari Inputan untuk setiap tata bahasa bebas konteks,
yang disebut sebagai produksi, yang dibatasi dengan aturan-
aturan tertentu dalam penginputannya.
b. Mempelajari pengecekan terhadap produksi tata bahasa bebas
konteks linier kanan. NFA, DFA dan optimisasi linier kanan
yang divisualisasikan dalam gambar, dengan aturannya
masing-masing.
c. Mempelajari dan menerapkan permasalahan tersebut ke dalam
bahasa pemrograman dengan metode yang telah dipilih.
d. Perancangan dan pembuatan program.
e. Menguji dan melakukan perbaikan program.
f. Menyusun laporan tugas akhir.
(3). Penyusunan laporan akhir
Laporan akhir disusun setelah tahap pengujian dan
perbaikan program. Adapun laporan akan berisi uraian secara rinci
tentang tahap-tahap penelitian.

1.7 Spesifikasi Program


Spesifikasi program yang akan disusun oleh penyusun ini adalah
sebagai berikut :
− Program optimisasi tata bahasa bebas konteks linier kanan akan dibuat
dengan menggunakan bahasa pemrograman Visual Basic ver. 6.0 yang
berada di bawah Sistem Operasi Windows Xp.
− Proses yang dilewati adalah penginputan dan pengecekan tata bahasa
bebas konteks apakah linier kanan atau bukan linier kanan. Jika linier

1-5
kanan maka NFA disimpan dalam database berupa tabel, dan akan
divisualisasikan dalam gambar. Setelah NFA divisualisasikan, maka
DFA juga disimpan dalam database berupa tabel dan divisualisasikan
dalam gambar. Setelah pengecekan, NFA dan DFA, maka dilakukan
optimisasi tata bahasa bebas konteks linier kanan, yang
divisualisasikan juga dalam gambar.

1.8 Sistematika Penyusunan


Pada penyusunan laporan tugas akhir ini penyusun menyusun
secara sistematis menjadi lima bab. Bab I merupakan bab Pendahuluan,
yang membahas mengenai hal-hal pokok dalam pembuatan program dan
penyusunan laporan, yaitu meliputi latar belakang masalah, batasan
masalah, rumusan masalah, tujuan penyusunan tugas akhir, metode
penelitian, spesifikasi program, dan keterangan tentang sistematika
penyusunan tugas akhir.
Pada bab II akan menguraikan tentang landasan teori yang
digunakan yang digunakan meliputi referensi teori bahasa dan otomata,
teori tata bahasa bebas konteks dan teori tata bahasa bebas konteks linier
kanan, prinsip Finite state automata atau otomata berhingga state, prinsip
DFA atau Deterministic finite automata, prinsip NFA atau Non-
deterministic finite automata, dan tahapan pengubahan NFA ke DFA, dan
optimisasi tata bahasa bebas konteks linier kanan.
Bab III merupakan bab yang berisi tentang pemilihan sistem
operasi dan bahasa pemrograman, tahap perancangan dan analisis sistem
program yang akan menguraikan secara rinci mengenai pengecekan linier
kanan atau bukan linier kanan, database mengenai penyimpanan
pembuatan gambar NFA dan DFA, serta optimisasi dan output program.
Berdasarkan perancangan program yang terdapat pada Bab III,
maka Bab IV disusun sebagai implementasi program yang akan
memperlihatkan desain implementasi program dan hasil program berupa
form-form.

1-6
Bagian terakhir dari laporan tugas akhir ini adalah Bab V sebagai
Penutup, yang akan terdiri atas kesimpulan dari hasil implementasi
program optimisasi tata bahasa bebas konteks linier kanan serta saran-
saran bagi pengembangan program di waktu yang akan datang.

1-7

Anda mungkin juga menyukai