APLIKASI PENYEDERHANAAN CONTEXT FREE GRAMMAR
(SKRIPSI)
ANDRIYAN HUTOMO
PROGRAM STUDI ILMU KOMPUTER JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG
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.
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.
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
I I'
f
f ff $ r fr fl 1$i $ l| r t F r l .* ; r T Tf
I
t
r
t
F g rf
ry.f
I
r
r
*
Et
g T. ,. : '; ....::1...':t .
Judul $kripsl',., ,
,.,.,,
: lNama
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'
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
sf:
$
,.:r
sr
r sI
il t * *}
p trI
tr f, lim,PelggJiKefua '.: '
Sekretari's
:
Rico Andrian, SSi., M.Kom.P€nguji
,
,,t,:Bukan Pembrmbing
Ir
lVlaehudor Yusman, M.Kom. i/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 ilmiahUniversitas Lampung. Apabila dikemudian
hari terbutti
skripsi saya inimerupakan 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 HutomoNPM.0917$2A25
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.
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.
ix MOTTO
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.
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
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
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
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
xv
DAFTAR TABEL
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
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.
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
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 :
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).
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
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)
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 :
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
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:
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
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
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
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
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
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
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
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
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
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 ?
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
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
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]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
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
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.
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.