APLIKASI PENYEDERHANAAN CONTEXT FREE GRAMMAR

(1)

APLIKASI PENYEDERHANAAN CONTEXT FREE GRAMMAR

(SKRIPSI)

ANDRIYAN HUTOMO

PROGRAM STUDI ILMU KOMPUTER JURUSAN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG


(2)

i ABSTRAK

APLIKASI PENYEDERHANAAN CONTEXT FREE GRAMMAR Oleh

Andriyan Hutomo

Penelitian ini dilakukan dengan membuat aplikasi untuk menyederhanakan Context Free Grammar (CFG). Aplikasi ini dibuat untuk membantu mendapatkan bentuk sederhana dari Context Free Grammar dengan mudah. Proses pembuatan aplikasi ini dimulai dari proses perancangan algoritma penyederhanaan Context Free Grammar dengan menggunakan metode eXtreme Programming sebagai metode pengembangan aplikasinya hingga mendapatkan aplikasi penyederhanaan Context Free Grammar. Pengujian aplikasi dilakukan menggunakan metode Black Box Testing. Hasil dari pengujian aplikasi ini dapat menyederhanakan Context Free Grammar dengan baik dan menampilkan langkah penyederhanaannya. Penyederhanaan Context Free Grammar memiliki tiga tahap yaitu penghilangan produksi epsilon, penghilangan produksi unit dan penghilangan produksi useless, dan ketiga tahap itu harus dikerjakan secara berurutan.

Kata Kunci : Black Box Testing, Context Free Grammar, eXtreme Programming, Penyederhanaan.


(3)

ii ABSTRACT

APPLICATION FOR SIMPLIFYING CONTEXT FREE GRAMMAR By

Andriyan Hutomo

This research is done by making an application to simplify Context Free Grammar (CFG). The process of making the application starts from designing the algorithm using eXtreme Programming method as system development methods until get the application to simplify Context Free Grammar (CFG). The testing method to test the application is Black Box Testing. The result shows that the application can simplify Context Free Grammar smoothly, and how to simplify Context Free Grammar step by step. Context Free Grammar (CFG) simplification has three stages, eliminating espsilon production, eliminating unit production and eliminating useless production, those three stages must be done sequentially. Keyword : Black Box Testing, Context Free Grammar, eXtreme


(4)

APLIKASI PENYEDERHANAAN CONTEXT FREE GRAMMAR

Oleh

ANDRIYAN HUTOMO

Skripsi

Sebagai salah satu syarat untuk memperoleh gelar SARJANA KOMPUTER

Pada

Jurusan Ilmu Komputer

Fakultas Matematika dan Ilmu Pengetahuan Alam

PROGRAM STUDI ILMU KOMPUTER JURUSAN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG


(5)

I I'

f

f ff $ r fr fl 1$i $ l| r t F r l .* ; r T T

f

I

t

r

t

F g r

f

ry.

f

I

r

r

*

E

t

g T

. ,. : '; ....::1...':t .

Judul $kripsl',., ,

,.,.,,

: l Nama

Mahari,syl

.

.i:

i! :

Nomof'PokofMa]usiswa Jurusan

:.'::

. -., ta,: , t.

Fakultas

:

':

':'

'

'

Dra. Wb NrP 196311

,

ip,l,rx,lsr'pxxv:EDE

LAII;

coMW

gEE GRAMrtAr

:

dpdrt2an

fiutomo

z'09t7CI3292:5

,:..'::',::.:,' .; I : ; -Illng,Komprrtef

:

:ti,'.: .:

,.

1.;1 ,

.

: u:

:'' Matematika dan Ilmu Pengetahuan Alam

,:, :.rni .:' .-. i

: srii!1ii::i*i:i\riri:Lfli:i.r:iir:i:i.:i$

iltRico.dndrian, S' .rM.Kom.

}IIIP

1975A627 Z 0501 1 001

, ',',2,'M€ngefahiii

Ketua Juruqan trlmu KomPuter FMIPA Universitas LamPung

Yrisrn*n;M:tr(om'


(6)

M.gNGESAIIKIIN

:

Dra. Wamilianao MA., Ph.D.

1. p, ffi il # u # $ .il ill t I # ,f' I p l1' f, l $ s

r

f

s

f:

$

,.:

r

s

r

r s

I

il t * *

}

p tr

I

tr f, lim,PelggJi Kefua '.: '

Sekretari's

:

Rico Andrian, SSi., M.Kom.

P€nguji

,

,,t,:

Bukan Pembrmbing

Ir

lVlaehudor Yusman, M.Kom. i/


(7)

PERNYATAAN

Saya yang bertanda tangan di bawah ini, menyatakan bahwa skripsi saya yang

berjudul *APLIKASI PENYEDERHANAAN CONTEXT FREE GAMMAR', i111

merupakan karya saya sendiri dan bukan hasil karya orang lain. semua hasil

tulisan yang tertuang dalam skripsi

ini

telah mengikuti kaidah karya ilmiah Universitas Lampung. Apabila dikemudian

hari terbutti

skripsi saya ini merupakan hasil penjiplakan atau dibuat orang lain, maka saya akan bersedia

menerima sanksi berupa pencabutan gelar yang telah saya terima.

Bandar Lampung, Juni 2015

ffiYerueu

G.al)

ffi.-oc.

tfu_-

+.ir

psrrroorrorr,+rs-.

f{

F-ff"*,*

@

"

'

Andriyan Hutomo

NPM.0917$2A25


(8)

vii

RIWAYAT HIDUP

Penulis dilahirkan di Ngawi, Jawa Timur pada 16 Januari 1992, sebagai anak pertama dari empat bersaudara dengan ayah Dasril dan ibu Pusporini.

Penulis menyelesaikan pendidikan di TK Dewi Sartika Lawanggintung, Bogor pada tahun 1997, Sekolah Dasar Negeri 1 Lawanggintung, Bogor pada tahun 2003, Sekolah Menengah Pertama Negeri 1 Sekampung Udik, Lampung Timur pada tahun 2006, kemudian melanjutkan Sekolah Menengah Atas Negeri 1 Sekampung Udik, Lampung Timur dan kemudian lulus di tahun 2009.

Pada tahun 2009, penulis terdaftar sebagai mahasiswa Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung.

Pada bulan Januari 2013 sampai Februari 2013, penulis melakukan kerja praktik di Dinas Bina Marga Bandar Lampung.


(9)

viii

PERSEMBAHAN

Kepersembahan karya ini untuk :

Bapak dan Ibuku tercinta, aku bangga terlahir sebagai buah cinta kalian. Adik – adikku (Rianda Amelia Putri, Nabila Saraswati dan Muhammad Zidane Dia Ulhaq) dan semua keluarga besar yang terus mendukungku.

ALMAMATER TERCINTA UNIVERSITAS LAMPUNG


(10)

ix MOTTO


(11)

x

KATA PENGANTAR

Puji syukur kepada Tuhan Yang Maha Esa karena karunia-Nya sehingga penulis dapat menyelesaikan penelitian ini yang dituangkan dalam karya tulis ilmiah. Tugas akhir ini disusun sebagai syarat untuk memperoleh gelar Sarjana Komputer di Jurusan Ilmu Komputer Universitas Lampung. Judul tugas akhir ini adalah “Aplikasi Penyederhanaan Context Free Grammar”.

Penulis banyak menghadapi kesulitan dalam penyusunan tugas akhir ini. Berkat dorongan dan semangat yang diberikan dari berbagai pihak, akhirnya penulis dalam menyelesaikan tugas akhir ini. Penulis pada kesempatan ini mengucapkan terima kasih kepada :

1. Ibu Wamiliana Dra., MA, Ph.D. sebagai pembimbing I penulis yang telah memberikan ide untuk tugas akhir dan membimbing penulis serta memberikan dorongan sehingga tugas akhir ini dapat diselesaikan.

2. Bapak Rico Andrian, S.Si., M.Kom sebagai pembimbing II penulis yang telah memberikan masukan – masukan untuk tugas akhir ini, sehingga penulis dapat menyelesaikan tugas akhir ini.

3. Bapak Ir. Machudor Yusman, M.Kom selaku Ketua Jurusan, pembimbing akademik dan penguji utama dalam tugas akhir. Terima kasih atas saran,


(12)

xi

motivasi, bimbingan dan kesabarannya dalam proses pengerjaan tugas akhir ini. 4. Bapak Prof. Suharso, Ph.D. selaku Dekan MIPA Universitas Lampung

5. Bapak dan Ibu dosen Jurusan Ilmu Komputer.

6. Keluargaku tercinta, Bapak Dasril , Ibu Pusporini dan adik – adikku Upik, Abil dan Zidane yang selalu memberikan semangat, dukungan, doa dan segala yang terbaik untukku.

7. Mbahkung dan Mbahti buat kasih sayangnya yang tak henti-henti.

8. Aunty Ellen and Uncle Evan Wood yang selalu memberi support tanpa henti. 9. Someone special a.k.a Rita Saraswati yang selalu ada dan membawa keceriaan.

10.Sahabat – sahabatku tercinta Tanto, Choi, Zhia dan Inoy yang telah memberikan semangat dan dorongan.

11.Teman-teman Ilmu Komputer 2009 khususnya untuk Hilman Hudaya, Agatha, Andikha, Dako, Arif, Karina, Dexter Natanael, Ade, Triwid, Resty, Erland, Efriansyah yang mendukung dalam pengerjaan tugas akhir ini .

12.Almamater tercinta Universtas Lampung.

Penulis menyadari bahawa skripsi ini jauh dari kesempurnaan, akan tetapi sedikit harapan semoga skripsi ini bermanfaat bagi perkembangan ilmu pengetahuan terutama bagi rekan rekan Ilmu Komputer.

Bandarlampung, Juni 2015 Penulis

Andriyan Hutomo NPM. 0917032025


(13)

xii DAFTAR ISI

Halaman

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xiv

DAFTAR TABEL ... xv

DAFTAR KODE PROGRAM ... xvi

BAB I PENDAHULUAN 1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 3

1.4 Tujuan ... 3

1.5 Manfaat ... 3

BAB II TINJAUAN PUSTAKA 2.1. Teori Bahasa dan Automata ... 4

2.2. Hirarki Bahasa ... 5

2.3. Context Free Grammar (CFG) ... 6

2.4. Metode Pengembangan Aplikasi ... 8

2.5. PHP ... 14

2.6. XAMPP ... 14

2.6. Pengujian Black Box ... 15

BAB III METODE PENELITIAN 3.1. Waktu dan Tempat Penelitian ... 16


(14)

xiii

3.2 Metode Pengembangan Sistem ... 16

3.2.1. The Planning Game ... 17

3.2.1.1 Algoritma Penyederhaan Context Free Grammar (CFG) ... 18

3.2.2 Refactoring... 20

3.2.3 Simple Design ... 20

3.2.3.1 Form Awal ... 21

3.2.3.2 Form Masukkan Produksi ... 21

3.2.3.3 Form Hasil ... 22

3.2.4 Small Release ... 22

3.2.5 Testing ... 23

3.3. Perangkat Penelitian ... 23

BAB IV HASIL DAN PEMBAHASAN 4.1. Metode Pengembangan Aplikasi ... 25

4.1.1 The Planning Game ... 25

4.1.2. Small Release ... 27

4.1.3. Simple Design ... 28

4.1.3.1. Laman Pengenalan ... 28

4.1.3.2. Laman Input ... 29

4.1.3.3 Laman Hasil ... 31

4.1.4. Kode Program (Coding)... 32

4.1.4.1 Penghilangan Produksi Epsilon ... 32

4.1.4.2 Penghilangan Produksi unit ... 33

4.1.4.3 Penghilangan Produksi Useless ... 35

4.1.4.4 Menampilkan Hasil Akhir ... 36

4.1.5 Pengujian (Testing) ... 37

4.2. Implementasi Aplikasi ... 40

BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 41

5.2. Saran ... 41 DAFTAR PUSTAKA


(15)

xiv

DAFTAR GAMBAR

Halaman

Gambar 1. Model Extreme Programming... 9

Gambar 2. Diagram Metode Pengembangan sistem ... 17

Gambar 3. Flowchart Penyederhanaan Context Free Grammar ... 19

Gambar 4. Diagram Usecase... 21

Gambar 5. Ilustrasi Form Awal ... 21

Gambar 6. Ilustrasi Form Masukkan Produksi ... 22

Gambar 7. Ilustrasi Form Hasil ... 22

Gambar 8. Laman Pengenalan ... 29

Gambar 9. Laman Masukkan Jumlah Produksi ... 30

Gambar 10. Laman Masukkan Produksi ... 31

Gambar 11. Laman Hasil ... 31

Gambar 12. Pengujian Satu ... 37

Gambar 13. Pengujian Dua ... 38


(16)

xv

DAFTAR TABEL

Halaman Tabel 1. Tahapan Small Release. ... 27 Tabel 2. Pengujian ... 40


(17)

xvi

DAFTAR KODE PROGRAM

Halaman

Kode Program 1. Ilustrasi Refactoring... 20

Kode Program 2. Laman Masukkan Jumlah Produksi ... 29

Kode Program 3. Laman Masukkan Produksi ... 30

Kode Program 4. Penghilangan Produksi Epsilon ... 33

Kode Program 5. Penghilangan Produksi Unit ... 34

Kode Program 6. Penghilangan Produksi Useless ... 36


(18)

1

BAB I PENDAHULUAN

1.1 Latar Belakang

Komputer membutuhkan program agar dapat digunakan untuk memproses data. Program dibuat menggunakan bahasa pemrograman. Bahasa pemrograman berbeda dari bahasa yang biasa digunakan manusia. Bahasa pemrograman atau disebut juga bahasa formal lebih kaku dan memiliki aturan yang lebih ketat. Aturan yang terdapat dalam suatu bahasa disebut tata bahasa (grammar). Ilmu yang mempelajari tata bahasa dalam pemrograman disebut Teori Bahasa dan Otomata. Pemanfaatan otomata dapat diterapkan di berbagai bidang, terutama pengunaan di bidang komputer. Teori bahasa dan otomata merupakan bagian dari model dan gagasan mendasar mengenai komputasi. Teori otomata mempelajari model mesin komputer menggunakan model matematika.

Noam Chomsky, seorang ahli bahasa dari Amerika mengklasifikasikan 4 tipe tata bahasa (grammar) yang disebut dengan Hirarki Chomsky, yaitu Unrestricted Grammar (UG), Context Sensitive Grammar (CSG), Context Free Grammar (CFG), dan Regular Grammar (RG). Context free grammar (CFG) yang dikenalkan oleh Chomsky (1956) merupakan bagian dari teori bahasa dan otomata dan telah digunakan dalam banyak bidang. Context free grammar (CFG) sering digunakan sebagai model struktur bahasa pemrograman, bahasa manusia hingga


(19)

2

dalam bidang biologi yaitu untuk penulisan urutan DNA dan RNA.

CFG dalam penggunaannya membutuhkan perlakuan seperti penyederhanaan dan perubahan bentuk. CFG sebelum dirubah ke dalam bentuk normal Chomsky harus melalui proses penyederhanaan. Proses penyederhanaan CFG ada tiga tahapan yaitu penghilangan produksi unit, useless dan epsilon (produksi kosong). Pengguna terkadang menemui beberapa kendala atau kesulitan dalam menentukan hasil penyederhanaan CFG. Banyaknya produksi dan bentuk grammar yang rumit juga mempengaruhi pencarian solusi sehingga langkah yang diperlukan terlalu panjang untuk mencapai hasil penyederhanaan.

Kesulitan dalam penyederhanaan tersebut menarik untuk dibuat aplikasi yang dapat menyederhanakan CFG. Aplikasi yang dibuat dapat melakukan proses penyederhanaan CFG dan menampilkan langkah penyederhanaannya. Hasil yang didapat adalah CFG yang sudah disederhanakan.

1.2 Rumusan Masalah

Rumusan masalah yang terbentuk dalam penelitian ini adalah bagaimana cara mengembangkan suatu aplikasi yang dapat menyederhanakan context free grammar (kalimat bebas konteks) dan menampilkan hasil penyederhanaan serta langkah yang dilakukan untuk menyederhanakan CFG tersebut.


(20)

3

1.3 Batasan Masalah

Batasan masalah dalam penelitian ini, yaitu:

1.Grammar yang dimasukkan harus dalam bentuk CFG (context free grammar). 2.Proses penyederhanaan dilakukan sekaligus sehingga output yang dihasilkan

sudah berupa CFG yang disederhanakan.

3.Jumlah input produksi mengikuti jumlah alfabet yaitu maksimal dua puluh enam input.

1.4 Tujuan

Tujuan dari penelitian ini adalah membuat aplikasi yang dapat menyederhanakan context free grammar (kalimat bebas konteks) dan menampilkan langkah-langkah penyederhanaan.

1.5 Manfaat

Penelitian ini diharapkan dapat memberikan manfaat bagi para pembaca dan pengguna aplikasi. Manfaat yang diperoleh dari penelitian ini adalah :

1.Mempermudah dalam proses penyederhanaan Context free grammar (CFG). 2.Menjadi modul pembelajaran bagi siapa saja yang ingin mempelajari CFG.


(21)

4

BAB II

TINJAUAN PUSTAKA

2.1 Teori Bahasa dan Automata

Bahasa merupakan suatu sistem yang meliputi pengekspresian gagasan, konsep, fakta, termasuk simbol-simbol serta aturan agar mempunyai makna. Automata merupakan suatu sistem yang terdiri atas sejumlah state berhingga, dimana state menyatakan informasi mengenai input. Bahasa dan automata mempunyai hubungan yakni bahasa dijadikan masukan oleh mesin automata lalu mesin tersebut membuat keputusan untuk mengindikasikan bahwa masukan tersebut dapat diterima atau tidak (Keprof dan Ulman,1979).

Teori Automata dan bahasa formal berkaitan dalam hal pembangkitan kalimat atau generation yaitu, menghasilkan semua kalimat dalam bahasa L berdasarkan aturan yang dimilikinya, Pengenalan bahasa / language recognition adalah menentukan suatu kalimat termasuk sebagai salah satu anggota himpunan L atau tidak. Teori bahasa membicarakan bahasa formal (formal language), terutama untuk kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor). Bahasa formal adalah suatu kalimat yang dibentuk dengan menerapkan serangkaian aturan produksi pada sebuah simbol. Semua kalimat dalam sebuah bahasa dibangkitkan oleh suatu tata bahasa (grammar) yang sama. Suatu bahasa formal dapat dibangkitkan oleh dua atau lebih tata


(22)

5

bahasa berbeda. Suatu bahasa disebut bahasa formal disebut karena grammar dibuat untuk pembangkitan setiap kalimatnya. Bahasa manusia bersifat sebaliknya yaitu grammar dibentuk untuk meresmikan kata-kata yang hidup di masyarakat (Utdirartatmo ,2005).

Tata bahasa (grammar) merupakan kumpulan dari himpunan-himpunan variabel, simbol-simbol terminal, simbol awal, yang dibatasi oleh aturan-aturan produksi. Grammar (G) didefinisikan sebagai 4 pasangan tuple, yaitu VN, VT, S dan P dan dituliskan sebagai G (VN,VT,S,P), dimana : (Linz, 2001),

VN = Himpunan simbol-simbol non terminal VT = Himpunan simbol–simbol terminal S = Simbol awal

P = Himpunan aturan produksi 2.2 Hirarki Bahasa

Bahasa memiliki 4 penggolongan tingkat bahasa yang ditampilkan dalam suatu hirarki yang disebut Hirarki Chomsky, penggolongan tersebut adalah sebagai berikut (Chomsky, 1959):

a. Tipe 0 : Phrase-Structure Grammar/PSG atau Unrestricted grammar (natural language).

Tipe ini tidak mempunyai batasan dalam aturan produksinya, sebagai contoh :

Abc → aa Be →aBaB


(23)

6

b. Tipe 1 : Context Sensitive Grammar/CSG

Batasan pada tipe ini yaitu, panjang string pada ruas kiri (α) lebih kecil atau sama dengan ruas kanan ), seperti terlihat pada contoh berikut :

AC → Ed AB → aDF c. Tipe 2 : Context-Free Grammar/ CFG

Batasan pada bahasa bebas konteks yaitu ruas kiri tepat mempunyai satu simbol variabel, sebagai contoh :

A → Bcde B → CFcgh d. Tipe 3 : Regular Grammar/ RG

Batasan untuk tipe regular adalah ruas kiri tepat mempunyai satu simbol variabel dan ruas kanan terdiri dari satu terminal atau kombinasi dari satu terminal atau variabel atau sebaliknya, sebagai contoh :

A → a B → aB A → Ba

2.3 Context Free Grammar (CFG)

Tata Bahasa Bebas Konteks (CFG) adalah kumpulan berhingga dari variabel-variabel biasa yang disebut non terminal. Variabel tersebut merepresentasikan suatu bahasa. Bahasa yang direpresentasikan oleh non terminal dideskripsikan secara rekursif, dimana tiap simbol primitive disebut terminal. Aturan-aturan yang berhubungan dengan non terminal disebut produksi (Utdirartatmo ,2005).


(24)

7

Penulisan notasi CFG dapat ditulis dengan 4-tupel : G : (N, Σ, S, P), dimana N adalah himpunan berhingga dari nonterminal, Σ adalah himpunan berhingga dari terminal, S adalah terminal spesifik yang dinamakan simbol awal, dan P adalah himpunan dari produksi-produksi.

Penulisan CFG didasarkan pada ketentuan berikut ini :

1. Simbol non terminal ditulis dengan huruf A sampai Z, kecuali S, S digunakan sebagai simbol awal.

2. Huruf a sampai z, huruf Yunani α sampai ζ dan bilangan (digit) adalah simbol terminal.

Kumpulan non terminal, kumpulan terminal dan simbol awal dari grammar dapat diketahui dengan menguji produksinya. Suatu grammar dapat disajikan dengan mendaftarkan produksi dari grammar tersebut.

Aturan produksi pada CFG:

1. Ruas kiri dari aturan produksi terdiri dari satu simbol non terminal.

2. Ruas kanan dapat berupa string yang dibentuk dari simbol terminal dan non terminal.

Proses penurunan kalimat dari simbol awal suatu tata bahasa dapat digambarkan sebagai rangkaian penerapan aturan produksi yang dimiliki tata bahasa tersebut. Proses penerapan aturan produksi ini dimulai terhadap simbol awal dari tata bahasa tersebut. CFG dapat dimisalkan dengan simbol awal S, himpunan simbol non terminal S. himpunan simbol terminal a,b dan kumpulan aturan produksi sebagai berikut :

S aAS | a A SbA | ba


(25)

8

2.4 Metode Pengembangan Aplikasi

Perancangan aplikasi memerlukan suatu metode atau langkah untuk membangun atau mengembangkan aplikasi. Pembuatan aplikasi ini menggunakan metode Extreme Programming (XP). XP merupakan sebuah metode dalam pengembangan aplikasi yang menitik beratkan 4 nilai yaitu, kesederhanaan, komunikasi, umpan balik, dan keberanian. XP dikembangkan oleh Kent Beck pada tahun 1996 yang menulis buku aslinya dengan judul Extreme Programming Explained. XP sangat cocok digunakan untuk pengembangan sistem yang memerlukan waktu sedikit dan memiliki banyak kebutuhan yang berubah-ubah (Jeffries, 2001).

XP memiliki nilai-nilai yang menjadi dasar dari setiap proses pengembangan perangkat lunak. Nilai-nilai tersebut adalah: (Jeffries, 1999). 1. Communication

XP memfokuskan pada hubungan komunikasi yang baik antar anggota tim. Anggota tim harus membangun rasa saling mengerti, mereka juga wajib saling berbagi pengetahuan dan keterampilan dalam mengembangkan perangkat lunak. Ego dari para programer yang biasanya cukup tinggi harus ditekan dan mereka harus membuka diri untuk bekerjasama dengan programer lain dalam menuliskan kode program.

2. Courage

Anggota tim dan penanggungjawab pengembangan perangkat lunak harus selalu memiliki keyakinan dan integritas dalam melakukan tugasnya. Integritas ini harus selalu dijaga bahkan dalam kondisi adanya tekanan dari situasi sekitar (misalnya oleh klien atau pemilik perusahaan) harus terlebih


(26)

9

dahulu memiliki rasa saling percaya. Rasa saling percaya dibutuhkan agar anggota tim melakukan sesuatu dengan penuh integritas. Rasa percaya ini yang coba dibangun dan ditanamkan oleh XP pada berbagai aspeknya. 3. Simplicity

Method yang pendek dan simpel adalah salah satu nilai dasar dari XP. Desain yang sederhana, menghilangkan fitur yang tidak ada gunanya, dan berbagai proses penyederhanaan lain akan selalu menjadi nilai utama dari setiap aspek XP.

4. Feedback

Feedback dibutuhkan dalam proses pengembangan aplikasi. Feedback dari anggota lain membantu menemukan kesalah atau menjadi ide baru untuk mengembangkan aplikasi lebih jauh lagi.

Aspek dasar XP terdiri dari berbagai teknik atau metode yang diterapkan Beck dan Jeffries pada C3 Project. Teknik-teknik tersebut dapat diamati pada gambar 1 berikutini:


(27)

10

1. The Planning Game

Pendekatan XP dalam perencanaan sangat mirip dengan metode yang diterapkan pada RAD (Rapid Application Development). Proses pendek dan cepat, mengutamakan aspek teknik, memisahkan unsur bisnis dengan unsur teknis dan pertemuan intensif antara client dengan developer. Proses XP ini menggunakan terminologi “game” karena Beck menyarankan untuk menggunakan teknik score card dalam menentukan requirements. Aspek teknis yang semakin sulit membutuhkan skor yang semakin tinggi pada kartu rencana tersebut. (Beck, 1999) 2. Small Releases

Release dilakukan dalam lingkup sekecil mungkin pada XP. Setiap developer menyelesaikan sebuah unit atau bagian dari perangkat lunak maka hasil tersebut harus segera dipresentasikan dan didiskusikan dengan client. Unit tersebut jika memungkinkan dapat diterapkan pada perusahaan, hal itu juga dapat dilakukan sekaligus sebagai tes awal dari penerapan keseluruhan sistem. Small release tidak selalu harus dilakukan karena harus dihitung terlebih dahulu sumberdaya yang dibutuhkan. (Beck, 1999)

3. Metaphor

Metaphor pada dasarnya sama dengan arsitektur perangkat lunak. Keduanya menggambarkan visi yang luas terhadap tujuan dari pengembangan perangkat lunak. Beck sendiri seperti para penandatangan Agile Manifesto lainnya bercita-cita menyederhanakan proses pengembangan perangkat lunak yang saat ini sudah dianggap terlalu rumit. Arsitektur yang saat ini banyak berisi diagram dan kode semacam UML dianggap terlalu rumit untuk dimengerti, terutama oleh client. Metaphor, walaupun mirip dengan arsitektur lebih bersifat naratif dan deskriptif.


(28)

11

Komunikasi antara client dengan developer akan berlangsung lebih baik dan lancar dengan penggunaan metaphor. (Beck, 1999)

4. Simple Design

Beck sebagai salah seorang penandatangan Agile Manifesto adalah seorang yang tidak menyukai desain yang rumit dalam sebuah pengembangan perangkat lunak. XP desain dibuat dalam lingkup kecil dan sederhana. Desain yang simpel memungkinkan apabila terjadi perubahan maka pembuatan desain baru untuk mengatasi perubahan tersebut dapat dengan mudah dilakukan dan resiko kegagalan desain dapat diperkecil. (Beck, 1999)

5. Refactoring

Refactoring adalah salah satu aspek paling khas dari XP. Refactoring seperti didefinisikan oleh Martin Fowler adalah ”Melakukan perubahan pada kode program dari perangkat lunak dengan tujuan meningkatkan kualitas dari struktur program tersebut tanpa mengubah cara program tersebut bekerja”. Refactoring sendiri sangat sesuai untuk menjadi bagian XP karena Refactoring mengusung konsep penyederhanaan dari proses desain maupun struktur baris kode program. Refactoring memungkinkan tim pengembang dapat melakukan berbagai usaha untuk meningkatkan kualitas program tanpa kembali mengulang-ulang proses desain. (Beck, 1999)

6. Testing

XP menganut paradigma berbeda dalam hal pengujian dibandingkan model pengembangan perangkat lunak lainnya. Proses pengujian pada pengembangan perangkat lunak lainnya baru dikembangkan setelah perangkat lunak selesai menjalani proses coding maka pada XP tim pengembang harus membuat terlebih


(29)

12

dahulu tes yang hendak dijalani oleh perangkat lunak. Model tes yang mengantisipasi penerapan perangkat lunak pada sistem dikembangkan terlebih dahulu. Perangkat lunak diuji dengan model tes yang telah dibuat tersebut setelah proses coding selesai dilakukan. Pengetesan akan jauh lebih baik apabila dilakukan pada setiap unit perangkat lunak dalam lingkup sekecil mungkin daripada menunggu sampai seluruh perangkat lunak selesai dibuat. Siklus pada XP adalah requirement analysis  test code design. (Beck, 1999)

7. Pair Programming

Pair programming adalah melakukan proses menulis program dengan berpasangan. Dua orang programmer saling bekerjasama di komputer yang sama untuk menyelesaikan sebuah unit. Keduanya dapat berdiskusi dan saling melakukan koreksi apabila ada kesalahan dalam penulisan program. Aspek ini mungkin akan sulit dijalankan oleh para programmer yang memiliki ego tinggi dan sering tidak nyaman untuk berbagi komputer bersama rekannya. (Beck, 1999) 8. Collective Ownership

XP menuntut para programmer untuk berbagi pengetahuan untuk tiap baris program bahkan beserta hak untuk mengubahnya. Semua programmer harus memiliki pemahaman yang sama sehingga ketergantungan pada programmer tertentu ataupun berbagai hambatan akibat perbedaan gaya menulis program dapat diperkecil. Pertukaran unit pun dapat dilakukan bila level programmer sudah sangat tinggi. (Beck, 1999)


(30)

13

9. Coding Standards

Pair programming dan collective ownership hanya akan dapat berjalan dengan baik apabila para programmer memiliki pemahaman yang sama terhadap penulisan kode program. Coding standards harus disepakati oleh sesama programmer dalam tim sehingga pemahaman terhadap program akan menjadi mudah untuk semua programmer dalam tim. Coding standards dapat diterapkan sebagai contoh pada penamaan variabel dan penggunaan tipe data yang sama untuk tiap elemen semua record atau array pada program. (Beck, 1999)

10. Continous Integration

Build setiap hari kerja menjadi sebuah model yang disukai oleh berbagai tim pengembang perangkat lunak. Melakukan build sesering mungkin membuat berbagai kesalahan pada program dapat dideteksi dan diperbaiki secepat mungkin. Developer perangkat lunak meyakini bahwa build sekali sehari adalah minimum maka pada XP hal tersebut adalah maksimum. Tim pada XP disarankan untuk melakukan build sesering mungkin misalnya setiap 4 jam atau bahkan lebih cepat lagi. (Beck, 1999)

11. 40-hours Week

Beck berpendapat bekerja 8 jam sehari dan 5 hari seminggu adalah maksimal untuk tiap programmer. Proses ini untuk menghindari programmer membuat berbagai error pada baris-baris kode programnya karena kelelahan. (Beck, 1999)

12. On-Site Customer

On-Site Customer adalah sebuah pendekatan klasik, di mana XP menganjurkan bahwa ada anggota dari client yang terlibat pada proses


(31)

14

pengembangan perangkat lunak. Client harus ada di tempat pemrogaman dan turut serta dalam proses build dan test yang dilakukan. Client diharapkan dapat segera memberikan masukan untuk koreksinya apabila ada kesalahan dalam pengembangan aplikasi. (Beck, 1999)

2.5 PHP

PHP merupakan salah satu software pendukung dalam pengembangan aplikasi ini. PHP merupakan singkatan dari Hypertext Preprocessor yakni bahasa berbentuk skrip yang ditempatkan dalam server dan diproses di server yang hasilnya dikirim ke client dengan menggunakan browser. PHP secara khusus dirancang untuk membentuk aplikasi web dinamis. PHP dapat membentuk suatu tampilan berdasarkan permintaan terkini. Prinsip PHP mempunyai fungsi sama dengan skrip-skrip seperti ASP (Active Server Page), Cold Fusion, ataupun Perl. PHP sebenarnya dapat dipakai secara command line, maksudnya adalah bahwa skrip PHP dapat dijalankan tanpa melibatkan web server maupun browser (Kadir, 2008).

2.6 XAMPP

XAMPP adalah perangkat lunak gratis, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program untuk menjalankan fungsinya sebagai server yang berdiri sendiri, yang terdiri atas program Apache HTTP Serve, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. XAMPP adalah nama yang merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam GNU (General Public License) dan bebas, merupakan Web server yang mudah digunakan yang mampu melayani halaman dinamis. Saat


(32)

15

ini, XAMPP tersedia untuk sistem operasi Microsoft Windows, Linux, Sun Solaris, dan Mac OS X. (Sutarman, 2007 dalam Cahyanto dkk, 2013)

2.7 Pengujian Black Box

Pengujian black box merupakan suatu teknik pengujian perangkat lunak dengan berfokus pada persyaratan fungsional. Pengujian black box memungkinkan perekayasa perangkat lunak mendapat kanserangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box berusaha menemukan kesalahan dalam kategori sebagai berikut :

1. Fungsi-fungsi yang tidak benar atau hilang. 2. Kesalahan interface.

3. Kesalahan dalam struktur data atau akses database eksternal. 4. Kesalahan kinerja.

5. Inisialisasi dan kesalahan terminasi.

Pengujian black box diaplikasikan selama tahap akhir pengujian, karena black box memperhatikan stuktur kontrol, maka perhatian berfokus pada domain informasi (Pressman, 2002).


(33)

16

BAB III

METODE PENELITIAN

3.1 Waktu dan Tempat Penelitian

Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung. Waktu penelitian dilakukan pada Semester Genap Tahun Ajaran 2013-2014.

3.2 Metode Pengembangan Sistem

Aplikasi Penyederhanaan Grammar ini dikembangkan menggunakan metode Extreme Programming (XP). Metode XP ini merupakan metode yang sangat fleksibel dan cocok dipakai untuk mengembangkan software dalam waktu singkat. Aplikasi Penyederhanaan Context Free Grammar ini hanya dikembangkan dalam waktu singkat dan sedikit resource serta masih berupa prototype yang setiap saat bisa saja ditambah atau dirubah sourcenya, sehingga penggunaan metode XP sangat membantu dalam pengembangan aplikasi ini.

Metode XP, seperti sudah dijelaskan pada bab tinjauan pustaka memiliki dua belas tahapan. Penelitian ini tidak menggunakan seluruh tahapan dalam XP karena aplikasi yang dikembangkan merupakan aplikasi kecil dan tim hanya terdiri dari satu programmer. Tahapan-tahapan XP yang digunakan dalam pembuatan Aplikasi Penyederhanaan Grammar Context Free Grammar adalah sebagai berikut:


(34)

17

Gambar 2. Diagram Metode Pengembangan sistem 3.2.1 The Planning Game

Planning game merupakan tahap menentukan kebutuhan aplikasi. Pengembang bertemu dengan client dan membahas seperti apa aplikasi yang diinginkan oleh client pada tahapan ini. Tahap ini dilakukan secara intensif hingga pengembang dan client memiliki pandangan yang sama tentang aplikasi yang dibuat. Pembuatan algoritma untuk menyederhanakan Context Free Grammar merupakan salah satu proses yang dikerjakan dalam tahapan planning game.

XP

Penyederhanaan CFG

Planning Game

Aplikasi Penyederhanaan CFG Pengujian

Refactoring

Small Release Simple Design


(35)

18

3.2.1.1 Algoritma penyederhaan Context Free Grammar (CFG)

Aplikasi yang dibuat merupakan aplikasi yang dipakai untuk menyederhanakan Context Free Grammar. Proses yang terjadi dalam menyederhanakan CFG adalah sebagai berikut.

L1. Masukkan jumlah produksi.

L2. Tampilkan field untuk menginput produksi sesuai jumlah yang dimasukkan user.

L3. Masukkan produksi.

L4. Cek produksi tersebut apakah mengandung produksi epsilon, jika tidak ke L6, jika iya ke L5.

L5. Hilangkan produksi epsilon.

Contoh. A=>AB, B=>b | ^ menjadi A=>AB | A, B => b. B=> ^ dihilangkan karena produksi epsilon

L6. Cek produksi tersebut apakah mengandung produksi unit. Jika tidak ke L8, jika iya ke L7.

L7. Subtitusikan dengan produksi turunannya yang sama. Contoh. A=> B, B=>c menjadi A=>c,B=>c . A=>B disubtitusikan menjadi A=>c.

L8. Cek produksi tersebut apakah mengandung produksi useless. Jika tidak ke L10. Jika iya ke L9.

L9. Hilangkan produksi useless .

Contoh. S=>AbC | AB,A=>a,B=>b menjadi S=>AB,A=>a,B=>b. S=>AbC dihilangkan karena produksi C useless.

L10. Tampilkan produksi yang tidak mengandung produksi epsilon, unit dan useless sebagai hasil akhir perhitungan.


(36)

19

Pembuatan Aplikasi Penyederhanaan Context Free Grammar digambarkan menggunakan flowchart yang dapat dilihat pada Gambar 3 berikut:

Gambar 3. Flowchart Penyederhanaan Context Free Grammar

Cek ada useless ?

Hilangkan produksi useless

Tampilkan produksi akhir

Selesai

Ya

Tidak Ya

Tidak Mulai

Masukkan jumlah produksi

Masukkan produksi

Hilangkan produksi epsilon

Cek ada unit ?

Subtitusikan produksi unit Cek ada

epsilon ?

Ya Tidak


(37)

20

3.2.2 Refactoring

Proses penulisan kode dalam membuat aplikasi penyederhanaan grammar ini menggunakan proses refactoring. Proses refactoring adalah proses untuk meningkatkan cara penulisan program namun tidak merubah proses dari program tersebut. Contoh refactoring ditunjukan pada Kode Program 1 berikut:

function show_array(){ //menampilkan hasil untuk UI global $nt, $produksi;

for($i=0;$i<count($nt);$i++){ echo"$nt[$i]=>";

echo $produksi[$nt[$i]][0];

for($j=1;$j<count($produksi[$nt[$i]]);$j++) echo " | ".$produksi[$nt[$i]][$j]; echo"<br>";

} }

Kode Program 1. Ilustrasi Refactoring

Kode Program 1 menunjukkan aplikasi menggunakan function untuk membuat baris program terlihat rapih dan dapat dimengerti. Penggunaan function juga menguntungkan apabila terjadi error. Pendeteksian error akan lebih mudah sehingga bila ingin merubah script program tidak harus menulis dari awal.

3.2.3 Simple Design

Tahap ini merupakan tahap pembuatan desain. Desain yang dibuat untuk aplikasi ini berupa desain sederhana dimana semua button diberi nama dengan jelas sehingga memudahkan client dalam menggunakannya. Aplikasi ini pada dasarnya digunakan oleh banyak pihak karena aplikasi ini dihosting ke dalam laman web. Desain yang simpel membuat pengguna mudah mengerti dalam menjalankan aplikasi ini. Diagram usecase digunakan untuk membuat ilustrasi yang dilakukan pengguna di dalam aplikasi sehingga dapat mempermudah pengembang dalam membuatnya. Diagram usecase dapat dilihat pada Gambar 4 berikut:


(38)

21

Gambar 4. Diagram Usecase 3.2.3.1Form Awal

Form ini berisi satu textfield dan tombol submit. Halaman ini dipakai untuk menentukan jumlah produksi yang diproses. Form awal dapat dilihat pada Gambar 5 berikut:

Gambar 5. Ilustrasi Form Awal 3.2.3.2Form Masukan Produksi

Form ini berisi textfield sesuai dengan jumlah masukan di halaman awal dan dua button yaitu generate dan reset. Form masukan produksi ditunjukan pada Gambar 6 berikut:


(39)

22

Gambar 6. Ilustrasi Form Masukan Produksi 3.2.3.3Form Hasil

Form hasil hanya berupa laman kosong yang menampilkan hasil dari penyederhanaan dan produksi mana saja yang dibuang. Form hasil dapat dilihat pada Gambar 7 berikut:

Gambar 7. Ilustrasi Form Hasil 3.2.4 Small Release

Tahap ini merupakan tahap dimana setiap pengembang menyelesaikan suatpu unit proses dalam aplikasi dan akan langsung menunjukkannya kepada client. Aplikasi yang dibuat dalam penelitian ini memiliki banyak tahapan, seperti


(40)

23

saat penyederhanaan CFG ada tiga proses yaitu penghilangan epsilon, penghilangan unit dan penghilangan useless. Setiap proses itu selesai, pengembang menunjukan kepada client sehingga bila terdapat kekurangan dari proses tersebut dapat segera diatasi.

3.2.5 Testing

Sistem yang telah selesai dibangun melalui tahap pengkodean, kemudian diuji. Pengujian sistem dilakukan langsung kepada pengguna untuk mengetahui apakah sistem yang dibuat telah memenuhi kebutuhan pengguna atau belum. Pengujian sistem menggunakan metode black box testing. Pengujian black box testing berfokus pada output dari berbagai jenis input. Black box testing melibatkan pengujian interface untuk memastikan bahwa kode tersebut memenuhi persyaratan fungsional dan berfungsi. Sistem dikatakan berfungsi dengan baik apabila input diberikan sehingga sistem memberikan output sesuai dengan identifikasi sistem yang telah ditentukan sebelumnya

3.3 Perangkat Penelitian

Pengembangan aplikasi ini menggunakan satu unit personal computer (PC) dengan spesifikasi sebagai berikut:

1. Hardware

Spesifikasi hardware yang digunakan dalam pengembangan sistem ini adalah sebagai berikut:

1. Intel(R) Pentium(R) Dual CPU E2140 @1.60 GHz 2. Ram 1536MB


(41)

24

2. Software

Spesifikasi software yang digunakan adalah sebagai berikut:

1. Operating System Windows Seven Ultimate 32-bit (6.1, build 7601) 2. Adobe Dreamweaver Portable Version

3. Notepad++ 4. XAMPP


(42)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang diperoleh dari penelitian ini adalah ;

1. Setiap produksi unit yang selesai di subtitusi dapat dihasilkan produksi useless.

2. Penyederhanaan Context Free Grammar memiliki tiga proses yang harus dilakukan secara berurut yaitu, penghilangan produksi epsilon, produksi unit, dan produksi useless.

5.2 Saran

Saran yang dapat diberikan kepada pengembang penelitian ini lebih lanjut adalah sebagi berikut.

1. Aplikasi penyederhanaan Context Free Grammar ini dapat ditambahkan dengan proses merubah CFG yang sudah disederhanakan ke dalam bentuk normal Chomsky. 2.Aplikasi dapat dikembangkan dengan menampilkan peringatan jika aturan produksi

tidak dapat dikerjakan, atau sudah dalam bentuk CFG yang sederhana, dan juga aplikasi ini dapat dikembangkan dengan membuat proses penyederhanaan CFG dengan tampilan yang lebih menarik.

3. Aplikasi dapat dikembangkan dengan membuat jumlah input produksi tidak hanya sebanyak jumlah alfabet yang berjumlah dua puluh enam.


(43)

DAFTAR PUSTAKA

Beck, Kent. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley. Cahyanto, Ferry Budi, Nugroho, Atmoko, Winarti, Titin. 2013. Implementasi SMS Gateway

Sebagai Sarana Pemberitahuan Kepada Pelanggan PDAM IKK Kedungtuban Menggunakan PHP Dan MYSQL”. Jurnal TransIT Volume 1 Nomer 1. Fakultas Teknologi Informasi dan Komunikasi Universitas Semarang

Chomsky, Noam. 1959. On Certain Formal Properties Of Grammar. MIT:New Jersey. Jeffries, Ronald E.1999. “eXtreme Testing”, Software Testing & Quality Engineering (STQE)

Magazine. Addison-Wesley

Jeffries, Ronald E. 2001.“What Is eXtreme Programming”, Extreme Programming Magazine. Addison-Wesley

Kadir, Abdul. 2008. Dasar Pemrograman Web dinamis menggunakan PHP. ANDI:Yogyakarta.

Keprof, J.E. and J.D Ulman ,1979. Introduction to Automata Theory, Languages, and Computation. Edison – Wesley.

Linz, Peter. 2001. An Introduction to Formal Language and Automata. John and Bartlett Publisher: Canada.

Pressman, R S. 2002.“Rekayasa Perangkat Lunak” : Buku Satu, Andi : Yogyakarta. Utdirartatmo, Firrar. 2005. Teori Bahasa Automata. Graha Ilmu: Yogyakarta.


(1)

Gambar 4. Diagram Usecase

3.2.3.1Form Awal

Form ini berisi satu textfield dan tombol submit. Halaman ini dipakai untuk menentukan jumlah produksi yang diproses. Form awal dapat dilihat pada Gambar 5 berikut:

Gambar 5. Ilustrasi Form Awal 3.2.3.2Form Masukan Produksi

Form ini berisi textfield sesuai dengan jumlah masukan di halaman awal dan dua button yaitu generate dan reset. Form masukan produksi ditunjukan pada Gambar 6 berikut:


(2)

22

Gambar 6. Ilustrasi Form Masukan Produksi 3.2.3.3Form Hasil

Form hasil hanya berupa laman kosong yang menampilkan hasil dari penyederhanaan dan produksi mana saja yang dibuang. Form hasil dapat dilihat pada Gambar 7 berikut:

Gambar 7. Ilustrasi Form Hasil 3.2.4 Small Release

Tahap ini merupakan tahap dimana setiap pengembang menyelesaikan suatpu unit proses dalam aplikasi dan akan langsung menunjukkannya kepada client. Aplikasi yang dibuat dalam penelitian ini memiliki banyak tahapan, seperti


(3)

penghilangan unit dan penghilangan useless. Setiap proses itu selesai, pengembang menunjukan kepada client sehingga bila terdapat kekurangan dari proses tersebut dapat segera diatasi.

3.2.5 Testing

Sistem yang telah selesai dibangun melalui tahap pengkodean, kemudian diuji. Pengujian sistem dilakukan langsung kepada pengguna untuk mengetahui apakah sistem yang dibuat telah memenuhi kebutuhan pengguna atau belum. Pengujian sistem menggunakan metode black box testing. Pengujian black box testing berfokus pada output dari berbagai jenis input. Black box testing melibatkan pengujian interface untuk memastikan bahwa kode tersebut memenuhi persyaratan fungsional dan berfungsi. Sistem dikatakan berfungsi dengan baik apabila input diberikan sehingga sistem memberikan output sesuai dengan identifikasi sistem yang telah ditentukan sebelumnya

3.3 Perangkat Penelitian

Pengembangan aplikasi ini menggunakan satu unit personal computer (PC) dengan spesifikasi sebagai berikut:

1. Hardware

Spesifikasi hardware yang digunakan dalam pengembangan sistem ini adalah sebagai berikut:

1. Intel(R) Pentium(R) Dual CPU E2140 @1.60 GHz 2. Ram 1536MB


(4)

24

2. Software

Spesifikasi software yang digunakan adalah sebagai berikut:

1. Operating System Windows Seven Ultimate 32-bit (6.1, build 7601) 2. Adobe Dreamweaver Portable Version

3. Notepad++ 4. XAMPP


(5)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang diperoleh dari penelitian ini adalah ;

1. Setiap produksi unit yang selesai di subtitusi dapat dihasilkan produksi useless.

2. Penyederhanaan Context Free Grammar memiliki tiga proses yang harus dilakukan secara berurut yaitu, penghilangan produksi epsilon, produksi unit, dan produksi useless.

5.2 Saran

Saran yang dapat diberikan kepada pengembang penelitian ini lebih lanjut adalah sebagi berikut.

1. Aplikasi penyederhanaan Context Free Grammar ini dapat ditambahkan dengan proses merubah CFG yang sudah disederhanakan ke dalam bentuk normal Chomsky. 2.Aplikasi dapat dikembangkan dengan menampilkan peringatan jika aturan produksi

tidak dapat dikerjakan, atau sudah dalam bentuk CFG yang sederhana, dan juga aplikasi ini dapat dikembangkan dengan membuat proses penyederhanaan CFG dengan tampilan yang lebih menarik.

3. Aplikasi dapat dikembangkan dengan membuat jumlah input produksi tidak hanya sebanyak jumlah alfabet yang berjumlah dua puluh enam.


(6)

DAFTAR PUSTAKA

Beck, Kent. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley. Cahyanto, Ferry Budi, Nugroho, Atmoko, Winarti, Titin. 2013. Implementasi SMS Gateway

Sebagai Sarana Pemberitahuan Kepada Pelanggan PDAM IKK Kedungtuban

Menggunakan PHP Dan MYSQL”. Jurnal TransIT Volume 1 Nomer 1. Fakultas

Teknologi Informasi dan Komunikasi Universitas Semarang

Chomsky, Noam. 1959. On Certain Formal Properties Of Grammar. MIT:New Jersey. Jeffries, Ronald E.1999. “eXtreme Testing”, Software Testing & Quality Engineering (STQE)

Magazine. Addison-Wesley

Jeffries, Ronald E. 2001.“What Is eXtreme Programming”, Extreme Programming Magazine. Addison-Wesley

Kadir, Abdul. 2008. Dasar Pemrograman Web dinamis menggunakan PHP. ANDI:Yogyakarta.

Keprof, J.E. and J.D Ulman ,1979. Introduction to Automata Theory, Languages, and Computation. Edison – Wesley.

Linz, Peter. 2001. An Introduction to Formal Language and Automata. John and Bartlett Publisher: Canada.

Pressman, R S. 2002.“Rekayasa Perangkat Lunak” : Buku Satu, Andi : Yogyakarta. Utdirartatmo, Firrar. 2005. Teori Bahasa Automata. Graha Ilmu: Yogyakarta.