• Tidak ada hasil yang ditemukan

APLIKASI PENYEDERHANAAN CONTEXT FREE GRAMMAR

N/A
N/A
Protected

Academic year: 2017

Membagikan "APLIKASI PENYEDERHANAAN CONTEXT FREE GRAMMAR"

Copied!
43
0
0

Teks penuh

(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.

(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.

(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.

(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.

(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.

(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

(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

(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

(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

(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.

(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

(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 :

(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).

(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

(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)

(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 :

(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

(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

(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

(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

(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

(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

(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

(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

(34)
[image:34.595.122.493.78.343.2]

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

(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

(36)

19

[image:36.595.135.448.154.738.2]

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 ?

(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

(38)
[image:38.595.197.419.88.215.2]

21

Gambar 4. Diagram Usecase

3.2.3.1Form Awal

Form ini berisi satu textfield dan tombol submit. Halaman ini dipakai untuk

[image:38.595.181.459.375.563.2]

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

(39)
[image:39.595.178.453.92.281.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

[image:39.595.168.457.431.599.2]
(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

(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

(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.

(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.

Gambar

Gambar 1. Model Extreme Programming
Gambar 2. Diagram Metode Pengembangan sistem
Gambar 3. Flowchart Penyederhanaan Context Free Grammar
Gambar 4. Diagram Usecase
+2

Referensi

Dokumen terkait