Aplikasi Pengubah Bentuk Normal Chomsky Menjadi Bentuk Normal Greibach Dengan Metode Substitusi
APLIKASI PENGUBAH BENTUK NORMAL CHOMSKY
MENJADI BENTUK NORMAL GREIBACH
DENGAN METODE SUBSTITUSI
(Skripsi)
Oleh
ANDIKHA Y.C DABUKKE
PROGRAM STUDI ILMU KOMPUTER
JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
2015
ABSTRAK
Aplikasi Pengubah Bentuk Normal Chomsky
Menjadi Bentuk Normal Greibach
Dengan Metode Substitusi
Oleh
Andikha Y.C. Dabukke
Penelitian ini dilakukan dengan membuat aplikasi pengubah bentuk normal
Chomsky menjadi bentuk normal Greibach dengan metode substitusi. Bentuk
normal Greibach merupakan salah satu bentuk dari Tata Bahasa Bebas Konteks.
Proses pembuatan aplikasi ini dimulai dari proses perancangan algoritma dengan
menggunakan metode prototype untuk mendapatkan aplikasi pengubah bentuk
normal Chomsky menjadi bentuk normal Greibach. Pengujian aplikasi ini adalah
dengan menguji proses pengubahan dari bentuk normal Chomsky menjadi bentuk
normal Greibach dan hasilnya aplikasi sudah dapat mengubah bentuk normal
Chomksy menjadi bentuk normal Greibach dengan baik. Bentuk normal Greibach
dengan metode subtitusi hanya bisa didapat apabila masukan yang dimasukkan
sudah dalam bentuk normal Chomsky.
Kata Kunci : Bentuk normal Greibach, Bentuk normal Chomsky, Tata bahasa
bebas konteks, Metode prototype.
i
ABSTRACT
Application to Change Chomsky Normal Form
to Greibach Normal Form
With Substitution Method
By
Andikha Y.C. Dabukke
The research was conducted with making an application to change Chomsky
Normal Form (CNF) to Greibach Normal Form (GNF) with substitution method.
Greibach Normal From (GNF) is one form of Context Free Grammar (CFG). The
development of the application starts by making algorithm with prototype method
to change Chomksy Normal Form (CNF) to Greibach Normal Form (GNF). This
Application testing is to test change process of Chomsky Normal Form to
Greibach Normal Form and the results application can change Chomsky Normal
Form to Greibach Normal Form smoothly. The input for the application must be
on Chomksy Normal Form (CNF).
Keyword : Greibach Normal Form, Chomsky Normal Form, Context Free
Grammar, Prototype Method.
ii
APLIKASI PENGUBAH BENTUK NORMAL CHOMSKY
MENJADI BENTUK NORMAL GREIBACH
DENGAN METODE SUBSTITUSI
Oleh
Andikha Y.C Dabukke
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
2015
I
I
,.
t
)t':
Judul Skripsi
'
't
:t .. r.: : ,
'
. ;:.::.
. t ):
'!::
r':
MENJADI,BNNTUKNO L'GREIBACHDENGAN
lfr
t
t
: APUKASI;PENGUIAH BENTUK NORIUAL CIIOMSKY
METODE SUBSTITUSI
.
f
.ir
lll
NaffiaM
iSwa': : :,,,..:.:, z
:
;::
t.,: :.:
Nomor,P.okok
Mahasrswa
':t
t...:)
0917032024
Jurusan'' t'''
Ilmu
.:.:.,'..
;1:
lt'
z4p&ktu1rc {$ab*kke
Fakultas .
'
:'::':: :
:
,:
. t':::::
: :.:'"
''
i
Komputer :"
:
'
:
,t
"
,,t:' ::, ; :'' "
':
':t
'l
'
Matematikh. dan llmu Pgggetahuan Alarn
t
Dra.'Wan
MA+?h,
NIP 19631108 L989A22001
i'rns
,
FMIPAU
Lampung,
NIp lg7,swzl
'-
achudorYusman, M;Kom.
NIP 1 570330,198503 I003
M.Kom.
l
1001
':i;';.,:,;:;, i:,t..,1i,:t:.:t:.:,..::,t,1.i;..,;,
Fakultag
: ': :
"
.:..
:;;;:,,,,i.r1;.:7:.1:.::::.1;'.,i.1.
PERNYATAAN
Saya yang bertanda tangan
di bawah ini, menyatakan bahwa skripsi
saya yang
herjudul "Aplikasi Pengubah Bentuk Normal Chomksy Menjadi Bentuk Normal
Greibach Dengan Metode Substitusi" ini merupakan karya saya sendiri dan bukan
hasil karya orang lain. Semua hasil tulisan yang tertuang dalam skripsi ini telah
nreagikuti kaidah karya ilmiah Universitas Lampung. Apabila dikemudian
hari
tffhkti
skripsi saya ini merupakan hasil penjiplakan atau dibuat orang lain,
maka
sa1'a akan bersedia menerima sanksi berupa pencabutan gelat yang
telah saya
terima.
Bgqr;far
L4mpung Juni 20i5
14ADF242114
Andikha Y.C. Dabukke
NPM.0917032024
VI
RIWAYAT HIDUP
Penulis dilahirkan di Bandar Lampung pada 7 Juni 1991,
sebagai anak pertama dari lima bersaudara dengan ayah
Bilman Dabukke dan ibu Yuliana Turnip.
Penulis menyelesaikan pendidikan di TK Xaverius Way
Halim Permai, Bandar Lampung tahun 1997, Sekolah
Dasar Xaverius 03 Way Halim Permai, Bandar Lampung tahun 2003, Sekolah
Menengah Pertama Xaverius 04 Way Halim Permai, Bandar Lampung tahun
2006, kemudian melanjutkan Sekolah Menengah Atas Negeri 09 Bandar
Lampung 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 Maret 2013, penulis melakukan kerja praktik di
PT. Indosat Tbk. Bandar Lampung.
vii
PERSEMBAHAN
Kepersembahan karya ini untuk :
Bapak dan Ibuku tercinta, aku bangga terlahir sebagai buah cinta kalian.
Adik – adikku (Christina, Rosalina, Tommy, Stefani)
dan semua keluarga yang terus mendukungku.
Terima Kasihku untuk Semuanya.
ALMAMATER TERCINTA
UNIVERSITAS LAMPUNG
viii
MOTTO
“Saya datang, saya bimbingan, saya ujian, saya revisi dan saya menang.”
ix
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 Pengubah Bentuk Normal Chomsky Menjadi Bentuk Normal Greibach
Dengan Metode Substitusi”.
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 Dra. Wamiliana, 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,
x
4. motivasi, bimbingan dan kesabarannya dalam proses pengerjaan tugas akhir
ini.
5. Bapak Prof. Suharso, Ph.D. selaku Dekan MIPA Universitas Lampung
6. Bapak dan Ibu dosen Jurusan Ilmu Komputer.
7. Keluargaku tercinta, Bapak , Ibu dan adik – adikku Christina, Rosalina,
Tommy, dan Stefani yang selalu memberikan semangat, dukungan, doa dan
segala yang terbaik untukku.
8. Sahabat – sahabatku tercinta Mardahai Tobok, Andreo Silalahi, dan Binner
Sidahuruk yang telah memberikan semangat, dorongan, dan keceriaan.
9. Teman-teman Ilmu Komputer 2009 khususnya untuk Hilman Hudaya, Agatha
Beny Himawan, Andriyan Hutomo, Dako Adi Ahmadi, Arif Andi Susanto,
Ade Imba Wahyu, Dexter Natanael, Triwid, Resty Luciana, Erland, Karina,
Efriansyah yang mendukung dalam pengerjaan tugas akhir ini .
10. 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
Andikha Y.C. Dabukke
NPM. 0917032024
xi
DAFTAR ISI
Halaman
KATA PENGANTAR ................................................................................
x
DAFTAR ISI ...............................................................................................
xii
DAFTAR GAMBAR ..................................................................................
xv
DAFTAR TABEL .......................................................................................
xvii
DAFTAR KODE PROGRAM ....................................................................
xviii
BAB I PENDAHULUAN
1.1. Latar Belakang ...............................................................................
1
1.2. Rumusan Masalah ..........................................................................
3
1.3. Batasan Masalah.............................................................................
3
1.4. Tujuan ............................................................................................
3
1.5. Manfaat ..........................................................................................
4
BAB II TINJAUAN PUSTAKA
2.1. Teori Bahasa dan Automata ..........................................................
5
2.2. Hirarki Bahasa Menurut Chomsky ................................................
6
2.3. Context Free Grammar (CFG) .....................................................
7
2.4. Greibach Normal Form (GNF) .....................................................
10
2.5. Metode Substitusi..........................................................................
11
2.6. Aturan Produksi Rekursif..............................................................
11
2.6.1 Penghilangan Rekursif Kiri ..................................................
12
2.7. Metode Pengembangan Aplikasi ..................................................
13
2.7.1 Use Case ..............................................................................
17
xii
2.7.2 Activity Diagram .........................................................................
18
2.8. Software Pendukung Pembuatan Aplikasi ....................................
20
BAB III METODE PENELITIAN
3.1. Metode Penelitian .........................................................................
21
3.1.1. Proses pembentukan bentuk normal Greibach dengan
metode substitusi .................................................................
22
3.1.2 Metode Prototype.................................................................
23
3.1.2.1. Identifikasi Alternatif Prototype .............................
24
3.1.2.2. Rancang Bangun Prototype ....................................
25
3.1.2.2.1. Activity Diagram .....................................
26
3.1.2.3. Evaluasi prototype ..................................................
29
3.1.2.4. Kode Sistem ...........................................................
30
3.1.2.5. Pengujian Sistem .....................................................
32
3.1.2.6. Transformasi Sistem ...............................................
32
3.1.3. Aplikasi pembentukan GNF dengan metode substitusi ......
33
3.2. Waktu dan Tempat Penelitian .......................................................
33
3.3. Perangkat yang digunakan ............................................................
33
BAB IV HASIL DAN PEMBAHASAN
4.1. Pembentukan bentuk normal Greibach dengan substitusi ............
35
4.2. Metode Pengembangan Sistem .....................................................
36
4.2.1. Identifikasi Alternatif Prototype .........................................
37
4.2.1.1. Kebutuhan Fungsional ...........................................
37
4.2.1.2. Kebutuhan Non-fungsional ....................................
38
4.2.1.3. Kebutuhan Pengguna .............................................
38
4.2.1.4. Kebutuhan Informasi..............................................
38
4.2.1.5. Gambaran Umum Aplikasi ....................................
38
4.2.2. Kode Program .....................................................................
39
4.2.2.1. Kode program pengecekan masukan Chomksy......
39
4.2.2.2. Kode program urutan variabel ...............................
40
4.2.2.3. Kode program substitusi bermasalah .....................
41
4.2.2.4. Kode program rekursif kiri ....................................
42
xiii
4.2.2.5. Kode program substitusi mundur ...........................
43
4.2.2.6. Kode program menampilkan bentuk normal
Greibach ................................................................
44
4.2.3. Pengujian Sistem .................................................................
45
4.2.4. Transformasi Sistem ...........................................................
54
4.3. Implementasi aplikasi bentuk normal Greibach dengan metode
substitusi .......................................................................................
54
4.3.1. Antarmuka pengenalan .......................................................
55
4.3.2. Antarmuka GNF..................................................................
56
4.3.2.1. Field aturan produksi .............................................
56
4.3.2.2. Kotak pesan peringatan aturan produksi salah.......
57
4.3.2.3. Menampilkan langkah – langkah dan hasil
bentuk GNF ............................................................
58
4.4. Kendala pengujian aplikasi ...........................................................
58
BAB V PENUTUP
5.1. Simpulan .......................................................................................
5.2. Saran .............................................................................................
DAFTAR PUSTAKA
xiv
59
59
DAFTAR GAMBAR
Halaman
Gambar 1. Proses penyederhanaan CFG .....................................................
9
Gambar 2. Ilustrasi model prototype...........................................................
13
Gambar 3. Tahapan metode penelitian........................................................
21
Gambar 4. Flowchart pembentukan GNF dengan substitusi ......................
23
Gambar 5. Tahapan metode prototype ........................................................
24
Gambar 6. Use Case Diagram Aplikasi Pengubah Bentuk Normal Chomksy
(CNF) Menjadi Bentuk Normal Greibach (GNF) ....................
25
Gambar 7. Activity Diagram Aplikasi Pengubah Bentuk Normal Chomsky
(CNF) Menjadi Bentuk Normal Greibach (GNF) ....................
28
Gambar 8. Proses pembentukan GNF dengan substitusi ............................
35
Gambar 9. Antarmuka field aturan produksi ...............................................
47
Gambar 10. Antarmuka fungsi aturan produksi salah .................................
47
Gambar 11. Antarmuka fungsi menentukan urutan variabel ......................
49
Gambar 12. Antarmuka fungsi substitusi bermasalah.................................
49
Gambar 13. Antarmuka fungsi tidak menemukan rekursif kiri ..................
49
Gambar 14. Antarmuka fungsi substitusi mundur ......................................
50
Gambar 15. Antarmuka fungsi menampilkan langkah tidak rekursif
kiri ...........................................................................................
xv
50
Gambar 16. Antarmuka fungsi menampilkan seluruh hasil GNF ...............
50
Gambar 17. Antarmuka fungsi menemukan bentuk rekursif kiri ...............
52
Gambar 18. Antarmuka fungsi menyelesaikan bentuk rekursif kiri ...........
52
Gambar 19. Antarmuka fungsi substitusi mundur rekursif kiri ..................
53
Gambar 20. Antarmuka fungsi menampilkan langkah proses ....................
53
Gambar 21. Antarmuka fungsi menampilkan seluruh bentuk GNF ...........
53
Gambar 22. Antarmuka pengenalan bentuk CNF dan GNF .......................
55
Gambar 23. Antarmuka menampilkan field aturan produksi ......................
56
Gambar 24. Antarmuka pesan peringatan aturan produksi salah ................
57
Gambar 25. Antarmuka menampilkan proses dan hasil bentuk normal
Greibach .................................................................................
xvi
58
DAFTAR TABEL
Halaman
Tabel 1. Notasi Use Case. ...........................................................................
18
Tabel 2. Notasi Activity Diagram................................................................
19
Tabel 3. Tahapan Desain Prototype ............................................................
26
Tabel 4. Pengujian Prototype 1 ...................................................................
46
Tabel 5. Pengujian Prototype 2 ...................................................................
47
Tabel 6. Pengujian Prototype 3 ...................................................................
51
Tabel 7. Pengujian Fungsional ....................................................................
54
xvii
DAFTAR KODE PROGRAM
Halaman
Kode Program 1. Kode program pengurutan ruas kiri ................................
30
Kode Program 2. Kode program periksa aturan produksi ..........................
31
Kode Program 3. Kode program rekursif kiri .............................................
31
Kode Program 4. Kode program substitusi z ..............................................
32
Kode Program 5. Kode program pengecekan masukan Chomksy ..............
40
Kode Program 6. Kode program urutan variabel ........................................
41
Kode Program 7. Kode program substitusi bermasalah ..............................
42
Kode Program 8. Kode program penyelesaian rekursif kiri .......................
43
Kode Program 9. Kode program substitusi mundur ...................................
44
Kode Program 10. Kode program menampilkan seluruh bentuk GNF .......
45
xviii
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Teori bahasa automata merupakan salah satu teori komputasi pada Ilmu
Komputer. Teori komputasi datang dari bahasa dan rekayasa sistem, terutama
yang berbasiskan matematika. Teori bahasa automata dapat dijadikan suatu
gagasan mendasar dalam komputasi yang menjadi tools untuk mengenali suatu
persoalan atau masalah karena dapat memberikan konsep dan prinsip untuk
memahami suatu persoalan yang berkolerasi dengan bidang ilmu komputer.
Ilmu Komputer memiliki topik yang cukup luas meliputi perancangan
mesin hingga pemrograman. Teori bahasa automata memiliki empat tipe grammar
yang disebut dengan Hirarki Chomsky, yaitu Unrestricted Grammar (UG),
Context Sensitive Grammar (CSG), Context Free Grammar (CFG), dan Regular
Grammar (RG). Penelitian ini difokuskan dalam Tata Bahasa Bebas Konteks
(CFG). Tata Bahasa Bebas Konteks (CFG) memiliki beberapa persoalan yang
dapat diselesaikan dengan bidang Ilmu Komputer, salah satunya adalah
penyederhanaan bentuk normal Chomsky (CNF) ke bentuk normal Greibach
(GNF). Salah satu bentuk normal Tata Bahasa Bebas Konteks (CFG) dalam teori
bahasa Automata adalah bentuk normal Greibach (GNF). Syarat yang harus
2
dipenuhi antara lain yaitu aturan produksinya harus dalam bentuk normal
Chomsky (CNF), tidak bersifat rekursif kiri, dan tidak memuat produksi yang
menghasilkan (epsilon). Bentuk normal Greibach (GNF) dapat dilakukan
dengan dua cara yaitu dengan cara substitusi dan matriks.
Aturan produksi dalam teori bahasa automata adalah proses yang
menspesifikasikan bagaimana suatu tata bahasa mentransformasi suatu string ke
bentuk lainnya. Aturan produksi dinyatakan dalam bentuk α → β, α menghasilkan
atau menurunkan β. α merupakan simbol ruas kiri sedangkan β merupakan simbol
ruas kanan. Simbol – simbol tersebut dapat berupa terminal dan nonterminal
dimana simbol nonterminal dapat diturunkan menjadi simbol terminal. Simbol
terminal disimbolkan dengan huruf kecil (a,b,c, dan sebagainya ), sedangkan
simbol nonterminal disimbolkan dengan huruf besar (A,B,C, dan sebagainya).
Penelitian sebelumnya, Merliana (2014) mengatakan bahwa
Penulisan
notasi Tata Bahasa Bebas Konteks (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 Tata Bahasa Bebas
Konteks (CFG) didasarkan pada ketentuan sebagai berikut; Simbol nonterminal
ditulis dengan huruf A sampai dengan Z, kecuali S, S digunakan sebagai simbol
awal, dan huruf a sampai dengan z, huruf Yunani α sampai ζ, dan bilangan (digit)
adalah simbol terminal. Merliana (2014) juga mengatakan bahwa
skema
penyederhanaan tata bahasa bebas konteks meliputi ; Tata Bahasa Bebas Konteks
(CFG)
Penghilangan
produksi
Penghilangan
produksi
unit
3
Penghilangan produksi useless Pengubahan kedalam bentuk normal
Chomsky (CNF) Penghilangan rekursif kiri Pengubahan kedalam bentuk
normal Greibach (GNF) dengan metode substitusi.
Impelementasi untuk menentukan Bentuk Normal Greibach (GNF) ini
cukup sulit dan cukup rumit, karena harus melalui tahapan – tahapan yang cukup
banyak dan memerlukan ketelitian yang sangat tinggi. Penelitian ini dimaksudkan
untuk menentukan bentuk normal Greibach (GNF) dengan menggunakan suatu
aplikasi. Aplikasi ini dibuat dengan menggunakan metode substitusi untuk
mendapatkan bentuk normal Greibach (GNF). Pada aplikasi ini diberikan tahap
dari proses agar memudahkan pemahaman dalam melakukan penyederhanaan
pada setiap tahapannya serta mempercepat proses dalam pencarian bentuk normal
Greibach (GNF).
1.2 Rumusan Masalah
Bagaimana membuat aplikasi dengan menggunakan Metode Substitusi dan
tidak menggunakan Metode Matriks.
1.3 Batasan Masalah
Batasan masalah dalam penelitian ini yaitu grammar yang dimasukkan harus
dalam aturan produksi bentuk normal Chomsky (CNF).
1.4 Tujuan
Tujuan dari penelitian ini adalah untuk membuat aplikasi pengubah bentuk
normal Chomsky (CNF) menjadi bentuk normal Greibach (GNF) dengan
menggunakan metode substitusi.
4
1.5 Manfaat
Manfaat dari penelitian ini adalah;
1. Mempermudah dalam hal mencari bentuk normal Greibach (GNF)
dengan menggunakan aplikasi ini.
2. Menjadi modul pembelajaran untuk orang yang belum mengetahui bentuk
normal Greibach (GNF).
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 berhingga state,
dimana state menyatakan informasi mengenai input. Bahasa dan automata
mempunyai hubungan yakni bahasa dijadikan input oleh mesin automata lalu
mesin tersebut membuat keputusan untuk mengindikasikan bahwa input tersebut
dapat diterima atau tidak (Keprof dan Ulman, 1979).
Teori Automata dan bahasa formal, berkaitan dalam hal pembangkitan
kalimat/generation yaitu, menghasilkan semua kalimat dalam bahasa L
berdasarkan aturan yang dimilikinya. Pengenalan kalimat atau recognition yaitu
menentukan suatu string (kalimat) termasuk sebagai salah satu anggota himpunan
L. 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 suatu bahasa dibangkitkan oleh suatu tata bahasa (grammar) yang sama.
6
Suatu bahasa formal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda.
Suatu bahasa disebut formal karena grammar dibentuk mendahului pembangkitan
setiap kalimatnya. Bahasa manusia bersifat sebaliknya yaitu grammar dibentuk
untuk meresmikan kata-kata yang hidup di masyarakat (Utdirartatmo, 2005).
Tata bahasa berfungsi untuk menentukan kebenaran dalam penulisan suatu
pernyataan, sesuai dengan aturan yang terdapat pada suatu program. Masukan
yang tidak sesuai dengan tata bahasa yang telah ditetapkan, maka proses tidak
bisa dilakukan (Merliana, 2014).
2.2 Hirarki Bahasa Menurut Chomsky
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
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
7
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 paling banyak mempunyai satu simbol variabel yang
terletak paling kanan, jadi ruas kanan bisa memiliki simbol terminal yang
tidak terbatas, sebagai contoh :
Aa
B aB
2.3 Context Free Grammar (CFG)
Tata Bahasa Bebas Konteks (CFG) adalah kumpulan berhingga dari
variabel-variabel biasa disebut nonterminal. Variabel tersebut merepresentasikan
suatu bahasa. Bahasa yang direpresentasikan oleh nonterminal dideskripsikan
secara rekursif, dimana tiap simbol primitive disebut terminal. Aturan-aturan yang
berhubungan dengan nonterminal disebut produksi (Utdirartatmo, 2005).
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.
8
Penulisan CFG didasarkan pada ketentuan berikut ini :
1) Simbol nonterminal 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 nonterminal, 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 , berlaku dua hal berikut :
1) Ruas kiri dari aturan produksi terdiri dari satu simbol nonterminal.
2) Ruas kanan dapat berupa string yang dibentuk dari simbol terminal dan
nonterminal.
Proses penurunan kalimat dari simbol awal suatu tata bahasa dapat
digambarkan sebagai rangkaian penerapan atursan produksi yang dimiliki tata
bahasa tersebut. Proses penerapan atuan produksi ini dimulai terhadap simbol
awal dari tata bahasa tersebut. CFG dapat dimisalkan dengan simbol awal S,
himpunan simbol
nonterminal S. A himpunan simbol nonterminal a,b dan
kumpulan aturan produksi sebagai berikut :
S aAS | a
A SbA | ba
Proses penyederhanaan CFG menurut Merliana (2014) meliputi Gambar 1
berikut ini :
9
CFG
Penghilangan
Produksi ε
Pengubahan ke
dalam bentuk
normal Greibach
dengan substitusi
Penghilangan
Produksi Unit
Penghilangan
Rekursif Kiri
Penghilangan
Produksi Useless
Pengubahan ke
dalam bentuk
normal Chomsky
Gambar 1. Proses penyederhanaan CFG
Proses penyerhanan CFG :
1) Proses penyederhanan menggunakan aturan produksi CFG.
2) Penghilangan produksi ε(epsilon) yaitu produksi yang tidak memuat
simbol variabel yang tidak memiliki penurunan dan tidak pernah dicapai
dengan penurunan apapun dari simbol awal.
3) Penghilangan produksi unit yaitu produksi dimana ruas kiri dan kanan
hanya berupa satu simbol variabel dan keberadaanya membuat tata bahasa
memiliki kerumitan yang tidak perlu.
4) Penghilangan produksi useless yaitu produksi dalam bentuk α ε atau
bisa dianggap sebagai produksi kosong.
5) Pengubahan dilakukan kedalam bentuk CNF yaitu aturan produksi yang
ruas kanannya terdiri atas sebuah terminal atau dua variabel.
6) Penghilangan rekursif kiri yaitu produksi dapat menyebabkan pohon
penurunan tumbuh ke kiri.
7) Pengubahan ke dalam bentuk GNF dengan metode substitusi.
10
2.4 Greibach Normal Form
Bentuk normal Greibach (GNF) merupakan bentuk normal yang memiliki
banyak konsekuensi teoritis dan prakatis. GNF membatasi posisi munculnya
terminal-terminal dan variabel-variabel karena dalam bentuk ini aturannya sudah
jelas, yaitu ruas kiri non terminal dan ruas kanan terdiri atas satu buah terminal
lalu diikuti oleh simbol – simbol variabel (Koch, 2010). CFG dikatakan dalam
GNF jika setiap aturan produksinya ada dalam bentuk:
A aα
a:simbol terminal (tunggal), a ε T
Ș: rangkaian simbol-simbol variabel (V*)
Suatu CFG merupakan GNF bila hasil produksinya (ruas kanan) diawali
dengan satu simbol terminal, selanjutnya bisa diikuti oleh rangkaian simbol
variabel. Bentuk contoh CFG dalam GNF:
S a | aAB
A aB
B cS
Bentuk normal Greibach didapatkan bila tata bahasa semula harus memenuhi
syarat sebagai berikut:
1. Sudah dalam bentuk normal Chomsky (CNF)
2. Tidak bersifat rekursif kiri
3. Tidak menghasilkan ε (epsilon)
Pembentukan GNF terdapat dua cara, yaitu dengan cara substitusi dan perkalian
matriks.
11
2.5 Metode Substitusi
Prinsip dalam pembentukan bentuk normal Greibach (GNF) dengan
substitusi menurut Koch (2010) meliputi :
1) Dimisalkan aturan produksi yang sudah dalam bentuk GNF.
2) Tentukan pengurutan simbol variabel dengan berdasarkan aturan produksi
yang ada.
3) Lakukan perubahan pada aturan produksi yang belum sesuai dengan
aturan.
4) Lakukan substitusi mundur sehingga semua aturan produksi diawali
simbol terminal.
5) Lakukan substitusi pada aturan produksi baru sebagai penghilangan
rekursif.
2.6 Aturan Produksi Rekursif
Aturan produksi yang rekursif memiliki ruas kanan (hasil produksi) yang
memuat simbol variabel pada ruas kiri. Suatu aturan produksi dalam bentuk :
A βA merupakan aturan produksi yang rekursif kanan.
Keterangan :
ș=(V∪T)* atau kumpulan simbol variabel dan terminal. Contoh aturan
produksi yang rekursif kanan: S dS
Produksi dalam bentuk:
B adB
A Aβ
Aturan produksi yang rekursif kiri,
Contoh :
S Sd
B Bad
12
Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke
kanan, sebaliknya produksi yang rekursif kiri menyebabkan pohon penurunan
tumbuh ke kiri. Pada tata bahasa yang diterapkan, bentuk rekursif kiri tak
diinginkan. Penurunan tersebut bisa mengakibatkan loop yang terus berulang
sehingga perlu menghilangkan sifat rekursif kiri dari aturan produksi.
Penghilangan rekursif kiri memungkinkan suatu CFG harus diubah ke dalam GNF
(Merliana, 2014).
2.6.1 Penghilangan Rekursif Kiri
Langkah-langkah penghilangan rekursif kiri sebagai berikut :
Pisahkan aturan produksi yang rekursif kiri dan yang tidak, misalnya :
Aturan produksi yang rekursif kiri : A Aα1 | Aα2 | Aα3 | ....... Aαn
Aturan produksi yang tidak rekursif kiri (termasuk produksi ε) :
A β1 | β2 | β3 | ........ βm
Tentukan α1, α2, .... αn, dan β1, β2, .... βm dari setiap aturan produksi
yang memiliki simbol ruas kiri yang sama.
Lakukan penggantian aturan produksi yang rekursif kiri, menjadi
sebagai berikut:
- A β1Z | β2Z | .... βmZ
- Z α1 | α2 | α3 | .... αn
- Z α1Z | α2Z | α3Z | .... αnZ
Penggantian di atas dilakukan untuk setiap aturan produksi dengan simbol
ruas kiri yang sama. Munculnya simbol variabel baru Z1, Z2 dan
seterusnya, sesuai banyaknya variabel yang menghasilkan produksi yang
rekursif kiri.
13
Hasil akhir berupa aturan produksi pengganti ditambah dengan aturan
produksi semula yang tidak rekursif kiri.
2.7 Metode Pengembangan Aplikasi
Perancangan aplikasi memerlukan suatu metode atau langkah untuk
membangun
menggunakan
atau mengembangkan aplikasi.
Metode
Prototype.
Pelanggan
Pengembangan aplikasi
(customer)
ini
membayangkan
kumpulan kebutuhan yang diinginkan tapi tidak terspesifikasikan secara detail
dari segi masukan (input), proses, maupun keluaran (output). Pengembang
perangkat lunak harus menspesifikasikan sebuah kebutuhan secara detail dari segi
teknis dimana pelanggan sering kurang mengerti mengenai hal teknis ini. Metode
prototype dapat digunakan untuk menyambungkan ketidakpahaman pelanggan
mengenai hal teknis dan memperjelas spesifikasi kebutuhan yang diinginkan
pelanggan kepada pengembang perangkat lunak (Rosa dan Shalahuddin, 2011).
Gambar 2. Ilustrasi Model prototype
14
Program prototype dibuat agar pelanggan lebih terbayang dengan apa
yang sebenarnya diinginkan. Program prototype biasanya merupakan program
yang belum jadi. Program ini biasanya menyediakan tampilan dengan simulasi
alur perangkat lunak sehingga tampak seperti perangkat lunak yang sudah jadi.
Program prototype ini dievaluasi oleh pelanggan atau user sampai ditemukan
spesifikasi yang sesuai dengan keinginan pelanggan atau user (Rosa dan
Shalahuddin, 2011).
Prototype dimulai dengan mengumpulkan kebutuhan. Pengembang dan
user bertemu dan mendefinisikan obyektif keseluruhan perangkat lunak yang
dibuat, mengidentifikasi segala kebutuhan yang diketahui, dan kemudian
dilakukan “perancangan kilat”. Perancangan kilat berfokus pada penyajian dari
aspek-aspek perangkat lunak tersebut yang nampak bagi pelanggan/pemakai
(contohnya pendekatan input dan format output). Perancangan kilat membawa
kepada konstruksi sebuah prototype. Prototype tersebut dievaluasi oleh pelanggan
atau pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat
lunak. Iterasi terjadi pada saat prototype disetel untuk memenuhi kebutuhan
pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara
lebih baik memahami apa yang harus dilakukannya (Pressman, 2002).
Prototype adalah salah satu pendekatan dalam rekayasa perangkat lunak
yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau
komponen-komponen perangkat lunak bekerja dalam lingkungannya sebelum
tahap konstruksi aktual dilakukan. Metode prototype sebagai suatu paradigma
baru dalam pengembangan sistem informasi manajemen, tidak hanya sekedar
suatu evolusi dari metode pengembangan sistem informasi manajemen. Prototype
15
dapat dimodifikasi, memungkinkan dimodifikasi beberapa kali sampai keadaan
yang ditetapkan user. Metode ini dikatakan revolusi karena merubah proses
pengembangan sistem informasi yang lama (Mulyanto, 2008).
Metode prototype mempunyai tahapan – tahapan, yaitu ;
1.
Identifikasi alternatif prototype
Identifikasi alternatif prototype ini didasarkan atas permintaan user (user
requirement). Alternatif prototype ini meliputi user interface, transaksi
utama, dan fungsi – fungsi pemrosesan sederhana.
2.
Rancang bangun prototype
Rancang bangun prototype dilakukan untuk melihat tahapan – tahapan dalam
pembuataan aplikasi ini sampai aplikasi benar – benar dapat digunakan.
3.
Evaluasi prototype
Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan
perubahan jika diperlukan. Evaluasi dilakukan dengan melakukan pengujian
terhadap sistem.
4.
Kode sistem
Pengkodean sistem dilakukan pada saat evaluasi selesai agar mendapatkan
sistem yang komplit.
5.
Pengujian Sistem
Sistem yang telah selesai pada tahap kode sistem, kemudian dilakukan
pengujian. Pengujian dilakukan secara langsung kepada pelanggan untuk
mengetahui apakah kebutuhan sudah sesuai dengan kebutuhan pelanggan atau
belum. Pengujian sistem ini dilakukan dengan black box testing.
16
6.
Transformasi sistem
Transformasikan sistem menjadi perangkat lunak yang berorientasi penuh
dengan melakukan penambahan program – program yang dibutuhkan,
perbaikan, dan pengujian perangkat lunak secara berkala.
Penggunaan metode prototype ini memiliki keuntungan dan kelemahan.
Keuntungan penggunaan prototype meliputi (Kusnendar, 2012);
1.
Komunikasi user-developer
Pengembang selalu meminta pendapat user dalam segala proses pembuatan
perangkat lunak.
2.
Membantu analis
Menentukan kebutuhan analis yang sebenarnya.
3.
Peran user meningkat
Evaluasi yang dilakukan oleh user menjadi meningkat karena dilakukan
berkali – kali.
4.
Pengembangan lebih cepat
Program yang dihasilkan dapat langsung dibuat serta user dapat langsung
melihat perkembangan tahap demi tahap.
5.
Implementasi mudah
User sudah mengenal tentang perangkat lunak yang dikembangkan.
Kelemahan penggunaan metode prototype meliputi;
1.
Pemakai menjadi sibuk
User dan pengembang harus sama – sama memiliki komitmen dan selalu
bekerja sama serta memliki waktu untuk bertemu.
17
2.
Pemakai sulit melakukan evaluasi
Bentuk prototype yang sering berubah menyebabkan sulit melakukan evaluasi
karena harus disesuaikan dengan kebutuhan user.
3.
User ingin cepat selesai
Bentuk program yang sudah terlihat sejak awal membuat user ingin program
cepat selesai.
4.
User berharap terlalu banyak
Evaluasi dan komunikasi yang terlalu sering menjadi membuat user sering
berubah keinginan (Kusnendar, 2012).
2.7.1 Use case
Use case diagram merupakan pemodelan untuk sistem atau aplikasi yang
dibuat. Use case mendeskripsikan sebuah interaksi antara satu aktor atau lebih
dengan sistem atau aplikasi yang dibuat. Use case secara umum digunakan untuk
mengetahui fungsi isi yang ada di dalam sebuah sistem atau aplikasi dan orang orang yang berhak menggunakan fungsi – fungsi tersebut. Use case memiliki dua
hal utama yaitu pendefinisian apa yang disebut aktor dan use case.
1) Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan
sistem atau aplikasi yang dibuat di luar sistem yang dibuat sendiri.
2) Use case merupakan fungsionalitas yang disediakan sistem atau aplikasi
sebagai unit – unit yang saling bertukar pesan antar unit atau aktor (Rosa dan
Shalahuddin, 2011).
Tabel use case menurut Rosa dan Shalahuddin (2011) adalah sebagai berikut:
18
Tabel 1. Notasi Use case
Simbol
Nama
Keterangan
Actor
Actor adalah pengguna
sistem. Actor tidak terbatas
hanya manusia saja, jika
sebuah
sistem
berkomunikasi
dengan
aplikasi
lain
dan
membutuhkan input atau
memberikan output, maka
aplikasi tersebut juga bisa
dianggap sebagai actor.
Use case digambarkan
sebagai lingkaran elips
dengan nama use case
dituliskan didalam elips
tersebut.
Asosiasi digunakan untuk
menghubungkan
actor
dengan use case. Asosiasi
digambarkan
dengan
sebuah
garis
yang
menghubungkan
antara
Actor dengan Use Case.
Use case
Association
2.7.2 Activity Diagram
Diagram aktivitas atau activity diagram menggambarkan workflow (aliran
kerja) atau aktivitas dari sebuah sistem atau aplikasi. Diagram aktivitas
menggambarkan aktivitas sistem, bukan apa yang dilakukan oleh aktor tetapi
aktivitas yang dilakukan oleh sistem atau aplikasi. Notasi simbol activity diagram
menurut Rosa dan Shalahuddin (2011) dapat dilihat pada Tabel 2 berikut ini.
19
Tabel 2. Notasi Activity Diagram
Simbol
Deskrispsi
Status awal
Status awal aktivitas sistem,
sebuah
diagram
aktivitas
memiliki sebuah status awal.
Aktivitas
Aktivitas yang dilakukan sistem,
aktivitas biasanya diawali dengan
kata kerja.
Percabangan
Asosiasi percabangan dimana jika
ada pilihan aktivitas maksimal
dua aktivitas.
Penggabungan / join
Asosiasi penggabungan dimana
lebih
dari
satu
aktivitas
digabungkan menjadi satu.
Status akhir
Status akhir yang dilakukan
sistem, sebuah diagram aktivitas
memiliki sebuah status akhir.
Swimlane
Memisahkan organisasi bisnis
yang bertanggung jawab terhadap
aktivitas yang terjadi.
20
2.8 Software pendukung pembuatan aplikasi
Software yang digunakan untuk mendukung aplikasi ini adalah PHP
(Hypertext Prepocessor). PHP merupakan singkatan dari Personal Home Page,
namun karena dalam perkembangannya PHP tidak hanya digunakan membuat
halaman web pribadi, PHP saat ini merupakan singkatan dari Hypertext
Preprocessor. PHP adalah bahasa pemrograman script server side yang didesain
untuk pengembangan web, tetapi juga bisa digunakan sebagai bahasa
pemrograman secara umum atau non web. PHP yakni bahasa berbentuk skrip
yang ditempatkan dalam server dan diproses di server yang hasilnya dikirim ke
klien dengan menggunakan browser. 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).
Web server yang paling sering dipakai untuk saat ini untuk PHP adalah
Apache. PHP juga memerlukan PHP binary yang bisa dikonfogurasikan sebagai
modul Apache ataupuns sebagai aplikasi CGI. Media penyimpanan data (database
server) yang dipakai adalah MYSQL. Melakukan installasi dan mengkonfigurasi
ketiga software tersebut (Apache, MYSQL, PHP) agar dapat berjalan dan
terhubung memang cukup sulit. Mengatasi masalah tersebut maka dibuat software
LAMP, XAMP, MAMP, WAMP yang dapat dilakukan dengan cara satu kali
proses installasi (Yuliano, 2007).
BAB III
METODE PENELITIAN
3.1 Metode Penelitian
Gambar 3. Tahapan Metode Penelitian
Tahap metode penilitan ini memiliki beberapa langkah, antara lain :
pembentukan bentuk normal Greibach dengan metode substitusi, metode
pengembangan sistem prototype, dan aplikasi bentuk normal Greibach dengan
metode substitusi. Proses pembentukan bentuk normal Greibach dengan metode
22
substitusi ini dilakukan dengan cara merancang algoritma dalam bentuk flowchart.
Proses pembuatan aplikasi ini menggunakan metode pengembangan sistem
prototype. Metode prototype merupakan model yang dimulai dari pengumpulan
kebutuhan pelanggan terhadap perangkat lunak digunakan, lalu dibuat prototype
agar pelanggan lebih mengerti dengan apa yang diinginkan. Metode prototype ini
memiliki keuntungan yaitu pengguna dapat mengetahui kesesuaian antara aplikasi
yang dihasilkan dengan kebutuhan tanpa harus menunggu sampai aplikasi
diimplementasikan. Aplikasi pengubah bentuk normal Greibach dengan metode
substitusi yang sudah didapat selanjutnya diimplementasikan dan digunakan oleh
pelanggan.
3.1.1
Proses pembentukan bentuk normal Greibach dengan metode
substitusi
Tahap penelitian ini dilakukan untuk merancang algoritma yang sesuai
untuk membuat aplikasi pengubah bentuk normal Chomsky menjadi bentuk
normal Greibach dengan metode substitusi. Algoritma aplikasi ini disampaikan
melalui sebuah flowchart. Flowchart ini menggambarkan bagaimana masukan
aturan produksi awal hingga proses – proses yang terjadi didalamnya hingga
mendapatkan hasil. Flowchart ini diperlukan untuk mendapatkan gambaran dalam
pengerjaan tahap selanjutnya dalam pembuatan aplikasi ini. Flowchart pengubah
bentuk normal Chomsky menjadi bentuk normal Greibach dengan metode
substitusi dapat dilihat pada Gambar 4 berikut ini.
23
Gambar 4. Flowchart pembentukan GNF dengan substitusi
3.1.2 Metode Prototype
Tahap ini merupakan tahap yang dilakukan selanjutnya setelah
mendapatkan bentuk flowchart pembentukan aplikasi ini. Flowchart yang telah
didapat dijadikan referensi dalam pengerjaan tahap selanjutnya. Tahap ini
menjelaskan tahapan secara rinci metode yang dilakukan dalam pembuatan
aplikasi ini. Tahap prototype ini memiliki 6 tahapan utama seperti berikut :
24
Gambar 5 . Tahapan metode prototype
3.1.2.1 Identifikasi Alternatif Prototype
Tahap identifikasi alternatif prototype ini merupakan tahap awal
dilakukannya penelitian. Pengumpulan data yang dilakukan berupa identifikasi
seluruh kebutuhan pelanggan, serta mencari data – data yang mendukung aplikasi
ini. Data – data tersebut didapatkan dari buku – buku atau jurnal - jurnal yang
terkait dengan aplikasi. Identifikasi alternatif prototype ini yang diutamakan
adalah proses input dan output aplikasi. Indikasi hubungan antara pengguna
dengan sistem digambarkan dengan use case pada Gambar 6 berikut ini.
25
Gambar 6. Use Case Diagram Aplikasi Pengubah Bentuk Normal Chomsky
(CNF) ke Bentuk Normal Greibach (GNF)
3.1.2.2. Rancang Bangun Prototype
Tahap rancang bangun prototype ini dilakukan setelah tahap identifikasi
alternatif prototype selesai. Tahap ini dilakukan agar mendapatkan bentuk –
bentuk prototype yang dapat dievaluasi sebelum diterapkan. Tahap rancang
bangun prototype ini memilliki 3 tahapan prototype yang dilakukan untuk
membuat perangkat lunak tersebut. Tahap pertama yang dilakukan yaitu
mendesain sistem yang dapat mengidentifikasi bentuk normal Chomsky. Tahap
kedua mendesain prototype yang dapat mencari bentuk normal Greibach yang
tidak memiliki rekursif. Tahap terakhirnya adalah mendesain prototype yang
dapat mencari bentuk normal Greibach yang memiliki rekursif kiri. Rancang
bangun prototype ini memerlukan activity diagram untuk melihat aktivitas yang
26
dilakukan antara pengguna dengan aplikasi. Penjelasan lebih lanjut tentang
rancang bangun prototype ini dijelaskan pada Tabel 3 berikut ini.
Tabel 3. Tahapan Desain Prototype
Prototype
1
2
3
Fungsi yang diinginkan
Fungsi yang diinginkankan prototype1:
1. Fungsi untuk membuat field untuk masukan produksi.
2. Fungsi untuk mengecek apakah masukan produksi
memenuhi syarat yang sudah ditetuntukan atau belum,
dalam hal ini harus dalam bentuk normal Chomsky.
Fungsi yang diinginkan prototype 2:
1. Fungsi untuk menentukan urutan variabel produksi.
2. Fungsi untuk melakukan substitusi bermasalah.
3. Fungsi untuk menemukan jika terdapat bentuktidak
rekursif kiri.
4. Fungsi untuk melakukan substitusi mundur.
5. Fungsi untuk menampilkan langkah – langkah proses
pengerjaan apabila tidak terdapat bentuk rekursif kiri.
6. Fungsi untuk menamplikan semua hasil bentuk normal
Greibach yang telah didapat.
Fungsi yang diinginkan prototype 3:
1. Fungsi untuk menemukan jika terdapat bentuk rekurif
kiri.
2. Fungsi untuk mengubah bentuk rekursif kiri menjadi
bentuk normal Greibach.
3. Fungsi untuk melakukan substitusi mundur.
4. Fungsi untuk menampilkan langkah – langkah proses
perngerjaan apabila terdapat bentuk rekursif kiri.
5. Fungsi untuk menamplikan semua hasil bentuk normal
Greibach yang telah didapat.
3.1.2.2.1 Activity Diagram
Activity Diagram aplikasi pengubah bentuk normal Chomsky ke bentuk
normal Greibach (GNF) prosedurnya dimulai dengan memasukkan aturan
produksi CNF yang dilakukan oleh pengguna. Aplikasi ini selanjutnya mendeteksi
apakah masukan yang dimasukkan tersebut apakah sudah dalam CNF. Masukan
yang telah dalam bentuk CNF, selanjutnya aplikasi melakukan pengurutan simbol
27
variabel. Urutan variabel yang telah terbentuk, maka aplikasi melakukan
pengecekan apakah sudah memenuhi urutan variabel. Variabel yang salah
urutannya akan dilakukan substitusi. Aturan produksi baru didapat setelah
dilakukan substitusi pada aturan yang bermasalah, selanjutnya dilakukan
pengecekan apakah terdapat rekursif pada aturan produksi tersebut. Aturan
produksi yang terdapat rekursif kiri diproses hingga rekursif tersebut hilang.
Aturan produksi baru yang timbul dari proses penghilangan rekursif tersebut,
diproses kembali dengan cara substitusi mundur. Substitusi mundur yang
dilakukan menghasilkan bentuk GNF. Aplikasi menampilkan seluruh hasil dari
bentuk GNF yang telah didapat. Activity diagram tersebut dapat dilihat pada
Gambar 7 berikut ini.
28
Gambar 7. Activity Diagram Aplikasi Pengubah Normal Chomsky
(CNF) ke Bentuk Normal Greibach (GNF).
29
3.1.2.3. Evaluasi Prototype
Evaluasi sistem ini dilakukan secara langsung kepada pihak pengguna,
sehingga jika masih terdapat kekurangan dapat langsung diperbaiki. Kekurangan
atau ketidaksesuaian prototype pada aplikasi ini diperbaiki pada pembangunan
prototype selanjutnya. Tahap ini diperlukan untuk memastikan apakah aplikasi
berjalan dengan baik, serta mengindentifikasi kesalahan, sehingga dapat langsung
dilakukan perbaikan hingga aplikasi dapat digunakan.
Tahap evaluasi ini dilakukan uji coba prototype kepada pengguna. Tahap
evaluasi prorotype ini yang paling utama adalah membicarakan kelayakan dan
kesesuaian prototype dengan pihak pengguna. Pengembang aplikasi juga
mengadakan diskusi dengan pengguna. Diskusi dalam hal ini mengenai aplikasi
pengubah bentuk CNF menjadi bentuk GNF dengan metode substitusi. Hal – hal
yang dibahas dalam diskusi ini mencakup tentang bagaimana menampilkan
proses- proses sehingga mendapatkan bentuk GNF, mencoba masukan berupa
bentuk normal Greibach, serta penulisan varibel dalam hasil akhir bentuk GNF
yang didapat. Hasil diskusi ini kemudian dicoba diterapkan pada prototype yang
masih kurang. Prototype yang dibuat apabila sudah sesuai dengan keinginan
pengguna, maka dilanjutkan pada tahap kode sistem. Prototype yang belum sesuai
dengan keinginan pengguna, maka perlu dilakukan evaluasi hingga prototype
benar – benar sesuai dengan keinginan pengguna.
30
3.1.2.4 Kode Sistem
Kode sistem dilakukan jika tahap evaluasi prototype telah selesai. Tahap
ini prototype yang sudah ditentukan, diterjemahkan ke dalam bahasa
pemrograman yang sesuai untuk menyatukannya menjadi aplikasi yang komplit.
Aplikasi ini menggunakan bahasa pemrograman PHP (Hypertext Preprocessor)
untuk membuat aplikasinya. Potongan kode program yang sudah dilakukan pada
aplikasi dapat dilihat pada Kode Program 1 hingga Kode Program 4 berikut ini.
//mengurutkan ruas kiri
function urutan(){
global $nt;
sort($nt);
$index=1;
$find_S=array_search("S",$nt);
if(!empty($find_S)){
foreach ($nt as $key => $val){
if($val=="S")
$new_nt[0]="S";
else{
$new_nt[$index]=$val;
$index++;
}
}
$nt = $new_nt;
}
}
Kode Program 1. Kode program pengurutan ruas kiri
31
//Periksa aturan produksi
function check_urutan(){
global $nt,$produksi;
for($i=0;$i
MENJADI BENTUK NORMAL GREIBACH
DENGAN METODE SUBSTITUSI
(Skripsi)
Oleh
ANDIKHA Y.C DABUKKE
PROGRAM STUDI ILMU KOMPUTER
JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
2015
ABSTRAK
Aplikasi Pengubah Bentuk Normal Chomsky
Menjadi Bentuk Normal Greibach
Dengan Metode Substitusi
Oleh
Andikha Y.C. Dabukke
Penelitian ini dilakukan dengan membuat aplikasi pengubah bentuk normal
Chomsky menjadi bentuk normal Greibach dengan metode substitusi. Bentuk
normal Greibach merupakan salah satu bentuk dari Tata Bahasa Bebas Konteks.
Proses pembuatan aplikasi ini dimulai dari proses perancangan algoritma dengan
menggunakan metode prototype untuk mendapatkan aplikasi pengubah bentuk
normal Chomsky menjadi bentuk normal Greibach. Pengujian aplikasi ini adalah
dengan menguji proses pengubahan dari bentuk normal Chomsky menjadi bentuk
normal Greibach dan hasilnya aplikasi sudah dapat mengubah bentuk normal
Chomksy menjadi bentuk normal Greibach dengan baik. Bentuk normal Greibach
dengan metode subtitusi hanya bisa didapat apabila masukan yang dimasukkan
sudah dalam bentuk normal Chomsky.
Kata Kunci : Bentuk normal Greibach, Bentuk normal Chomsky, Tata bahasa
bebas konteks, Metode prototype.
i
ABSTRACT
Application to Change Chomsky Normal Form
to Greibach Normal Form
With Substitution Method
By
Andikha Y.C. Dabukke
The research was conducted with making an application to change Chomsky
Normal Form (CNF) to Greibach Normal Form (GNF) with substitution method.
Greibach Normal From (GNF) is one form of Context Free Grammar (CFG). The
development of the application starts by making algorithm with prototype method
to change Chomksy Normal Form (CNF) to Greibach Normal Form (GNF). This
Application testing is to test change process of Chomsky Normal Form to
Greibach Normal Form and the results application can change Chomsky Normal
Form to Greibach Normal Form smoothly. The input for the application must be
on Chomksy Normal Form (CNF).
Keyword : Greibach Normal Form, Chomsky Normal Form, Context Free
Grammar, Prototype Method.
ii
APLIKASI PENGUBAH BENTUK NORMAL CHOMSKY
MENJADI BENTUK NORMAL GREIBACH
DENGAN METODE SUBSTITUSI
Oleh
Andikha Y.C Dabukke
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
2015
I
I
,.
t
)t':
Judul Skripsi
'
't
:t .. r.: : ,
'
. ;:.::.
. t ):
'!::
r':
MENJADI,BNNTUKNO L'GREIBACHDENGAN
lfr
t
t
: APUKASI;PENGUIAH BENTUK NORIUAL CIIOMSKY
METODE SUBSTITUSI
.
f
.ir
lll
NaffiaM
iSwa': : :,,,..:.:, z
:
;::
t.,: :.:
Nomor,P.okok
Mahasrswa
':t
t...:)
0917032024
Jurusan'' t'''
Ilmu
.:.:.,'..
;1:
lt'
z4p&ktu1rc {$ab*kke
Fakultas .
'
:'::':: :
:
,:
. t':::::
: :.:'"
''
i
Komputer :"
:
'
:
,t
"
,,t:' ::, ; :'' "
':
':t
'l
'
Matematikh. dan llmu Pgggetahuan Alarn
t
Dra.'Wan
MA+?h,
NIP 19631108 L989A22001
i'rns
,
FMIPAU
Lampung,
NIp lg7,swzl
'-
achudorYusman, M;Kom.
NIP 1 570330,198503 I003
M.Kom.
l
1001
':i;';.,:,;:;, i:,t..,1i,:t:.:t:.:,..::,t,1.i;..,;,
Fakultag
: ': :
"
.:..
:;;;:,,,,i.r1;.:7:.1:.::::.1;'.,i.1.
PERNYATAAN
Saya yang bertanda tangan
di bawah ini, menyatakan bahwa skripsi
saya yang
herjudul "Aplikasi Pengubah Bentuk Normal Chomksy Menjadi Bentuk Normal
Greibach Dengan Metode Substitusi" ini merupakan karya saya sendiri dan bukan
hasil karya orang lain. Semua hasil tulisan yang tertuang dalam skripsi ini telah
nreagikuti kaidah karya ilmiah Universitas Lampung. Apabila dikemudian
hari
tffhkti
skripsi saya ini merupakan hasil penjiplakan atau dibuat orang lain,
maka
sa1'a akan bersedia menerima sanksi berupa pencabutan gelat yang
telah saya
terima.
Bgqr;far
L4mpung Juni 20i5
14ADF242114
Andikha Y.C. Dabukke
NPM.0917032024
VI
RIWAYAT HIDUP
Penulis dilahirkan di Bandar Lampung pada 7 Juni 1991,
sebagai anak pertama dari lima bersaudara dengan ayah
Bilman Dabukke dan ibu Yuliana Turnip.
Penulis menyelesaikan pendidikan di TK Xaverius Way
Halim Permai, Bandar Lampung tahun 1997, Sekolah
Dasar Xaverius 03 Way Halim Permai, Bandar Lampung tahun 2003, Sekolah
Menengah Pertama Xaverius 04 Way Halim Permai, Bandar Lampung tahun
2006, kemudian melanjutkan Sekolah Menengah Atas Negeri 09 Bandar
Lampung 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 Maret 2013, penulis melakukan kerja praktik di
PT. Indosat Tbk. Bandar Lampung.
vii
PERSEMBAHAN
Kepersembahan karya ini untuk :
Bapak dan Ibuku tercinta, aku bangga terlahir sebagai buah cinta kalian.
Adik – adikku (Christina, Rosalina, Tommy, Stefani)
dan semua keluarga yang terus mendukungku.
Terima Kasihku untuk Semuanya.
ALMAMATER TERCINTA
UNIVERSITAS LAMPUNG
viii
MOTTO
“Saya datang, saya bimbingan, saya ujian, saya revisi dan saya menang.”
ix
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 Pengubah Bentuk Normal Chomsky Menjadi Bentuk Normal Greibach
Dengan Metode Substitusi”.
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 Dra. Wamiliana, 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,
x
4. motivasi, bimbingan dan kesabarannya dalam proses pengerjaan tugas akhir
ini.
5. Bapak Prof. Suharso, Ph.D. selaku Dekan MIPA Universitas Lampung
6. Bapak dan Ibu dosen Jurusan Ilmu Komputer.
7. Keluargaku tercinta, Bapak , Ibu dan adik – adikku Christina, Rosalina,
Tommy, dan Stefani yang selalu memberikan semangat, dukungan, doa dan
segala yang terbaik untukku.
8. Sahabat – sahabatku tercinta Mardahai Tobok, Andreo Silalahi, dan Binner
Sidahuruk yang telah memberikan semangat, dorongan, dan keceriaan.
9. Teman-teman Ilmu Komputer 2009 khususnya untuk Hilman Hudaya, Agatha
Beny Himawan, Andriyan Hutomo, Dako Adi Ahmadi, Arif Andi Susanto,
Ade Imba Wahyu, Dexter Natanael, Triwid, Resty Luciana, Erland, Karina,
Efriansyah yang mendukung dalam pengerjaan tugas akhir ini .
10. 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
Andikha Y.C. Dabukke
NPM. 0917032024
xi
DAFTAR ISI
Halaman
KATA PENGANTAR ................................................................................
x
DAFTAR ISI ...............................................................................................
xii
DAFTAR GAMBAR ..................................................................................
xv
DAFTAR TABEL .......................................................................................
xvii
DAFTAR KODE PROGRAM ....................................................................
xviii
BAB I PENDAHULUAN
1.1. Latar Belakang ...............................................................................
1
1.2. Rumusan Masalah ..........................................................................
3
1.3. Batasan Masalah.............................................................................
3
1.4. Tujuan ............................................................................................
3
1.5. Manfaat ..........................................................................................
4
BAB II TINJAUAN PUSTAKA
2.1. Teori Bahasa dan Automata ..........................................................
5
2.2. Hirarki Bahasa Menurut Chomsky ................................................
6
2.3. Context Free Grammar (CFG) .....................................................
7
2.4. Greibach Normal Form (GNF) .....................................................
10
2.5. Metode Substitusi..........................................................................
11
2.6. Aturan Produksi Rekursif..............................................................
11
2.6.1 Penghilangan Rekursif Kiri ..................................................
12
2.7. Metode Pengembangan Aplikasi ..................................................
13
2.7.1 Use Case ..............................................................................
17
xii
2.7.2 Activity Diagram .........................................................................
18
2.8. Software Pendukung Pembuatan Aplikasi ....................................
20
BAB III METODE PENELITIAN
3.1. Metode Penelitian .........................................................................
21
3.1.1. Proses pembentukan bentuk normal Greibach dengan
metode substitusi .................................................................
22
3.1.2 Metode Prototype.................................................................
23
3.1.2.1. Identifikasi Alternatif Prototype .............................
24
3.1.2.2. Rancang Bangun Prototype ....................................
25
3.1.2.2.1. Activity Diagram .....................................
26
3.1.2.3. Evaluasi prototype ..................................................
29
3.1.2.4. Kode Sistem ...........................................................
30
3.1.2.5. Pengujian Sistem .....................................................
32
3.1.2.6. Transformasi Sistem ...............................................
32
3.1.3. Aplikasi pembentukan GNF dengan metode substitusi ......
33
3.2. Waktu dan Tempat Penelitian .......................................................
33
3.3. Perangkat yang digunakan ............................................................
33
BAB IV HASIL DAN PEMBAHASAN
4.1. Pembentukan bentuk normal Greibach dengan substitusi ............
35
4.2. Metode Pengembangan Sistem .....................................................
36
4.2.1. Identifikasi Alternatif Prototype .........................................
37
4.2.1.1. Kebutuhan Fungsional ...........................................
37
4.2.1.2. Kebutuhan Non-fungsional ....................................
38
4.2.1.3. Kebutuhan Pengguna .............................................
38
4.2.1.4. Kebutuhan Informasi..............................................
38
4.2.1.5. Gambaran Umum Aplikasi ....................................
38
4.2.2. Kode Program .....................................................................
39
4.2.2.1. Kode program pengecekan masukan Chomksy......
39
4.2.2.2. Kode program urutan variabel ...............................
40
4.2.2.3. Kode program substitusi bermasalah .....................
41
4.2.2.4. Kode program rekursif kiri ....................................
42
xiii
4.2.2.5. Kode program substitusi mundur ...........................
43
4.2.2.6. Kode program menampilkan bentuk normal
Greibach ................................................................
44
4.2.3. Pengujian Sistem .................................................................
45
4.2.4. Transformasi Sistem ...........................................................
54
4.3. Implementasi aplikasi bentuk normal Greibach dengan metode
substitusi .......................................................................................
54
4.3.1. Antarmuka pengenalan .......................................................
55
4.3.2. Antarmuka GNF..................................................................
56
4.3.2.1. Field aturan produksi .............................................
56
4.3.2.2. Kotak pesan peringatan aturan produksi salah.......
57
4.3.2.3. Menampilkan langkah – langkah dan hasil
bentuk GNF ............................................................
58
4.4. Kendala pengujian aplikasi ...........................................................
58
BAB V PENUTUP
5.1. Simpulan .......................................................................................
5.2. Saran .............................................................................................
DAFTAR PUSTAKA
xiv
59
59
DAFTAR GAMBAR
Halaman
Gambar 1. Proses penyederhanaan CFG .....................................................
9
Gambar 2. Ilustrasi model prototype...........................................................
13
Gambar 3. Tahapan metode penelitian........................................................
21
Gambar 4. Flowchart pembentukan GNF dengan substitusi ......................
23
Gambar 5. Tahapan metode prototype ........................................................
24
Gambar 6. Use Case Diagram Aplikasi Pengubah Bentuk Normal Chomksy
(CNF) Menjadi Bentuk Normal Greibach (GNF) ....................
25
Gambar 7. Activity Diagram Aplikasi Pengubah Bentuk Normal Chomsky
(CNF) Menjadi Bentuk Normal Greibach (GNF) ....................
28
Gambar 8. Proses pembentukan GNF dengan substitusi ............................
35
Gambar 9. Antarmuka field aturan produksi ...............................................
47
Gambar 10. Antarmuka fungsi aturan produksi salah .................................
47
Gambar 11. Antarmuka fungsi menentukan urutan variabel ......................
49
Gambar 12. Antarmuka fungsi substitusi bermasalah.................................
49
Gambar 13. Antarmuka fungsi tidak menemukan rekursif kiri ..................
49
Gambar 14. Antarmuka fungsi substitusi mundur ......................................
50
Gambar 15. Antarmuka fungsi menampilkan langkah tidak rekursif
kiri ...........................................................................................
xv
50
Gambar 16. Antarmuka fungsi menampilkan seluruh hasil GNF ...............
50
Gambar 17. Antarmuka fungsi menemukan bentuk rekursif kiri ...............
52
Gambar 18. Antarmuka fungsi menyelesaikan bentuk rekursif kiri ...........
52
Gambar 19. Antarmuka fungsi substitusi mundur rekursif kiri ..................
53
Gambar 20. Antarmuka fungsi menampilkan langkah proses ....................
53
Gambar 21. Antarmuka fungsi menampilkan seluruh bentuk GNF ...........
53
Gambar 22. Antarmuka pengenalan bentuk CNF dan GNF .......................
55
Gambar 23. Antarmuka menampilkan field aturan produksi ......................
56
Gambar 24. Antarmuka pesan peringatan aturan produksi salah ................
57
Gambar 25. Antarmuka menampilkan proses dan hasil bentuk normal
Greibach .................................................................................
xvi
58
DAFTAR TABEL
Halaman
Tabel 1. Notasi Use Case. ...........................................................................
18
Tabel 2. Notasi Activity Diagram................................................................
19
Tabel 3. Tahapan Desain Prototype ............................................................
26
Tabel 4. Pengujian Prototype 1 ...................................................................
46
Tabel 5. Pengujian Prototype 2 ...................................................................
47
Tabel 6. Pengujian Prototype 3 ...................................................................
51
Tabel 7. Pengujian Fungsional ....................................................................
54
xvii
DAFTAR KODE PROGRAM
Halaman
Kode Program 1. Kode program pengurutan ruas kiri ................................
30
Kode Program 2. Kode program periksa aturan produksi ..........................
31
Kode Program 3. Kode program rekursif kiri .............................................
31
Kode Program 4. Kode program substitusi z ..............................................
32
Kode Program 5. Kode program pengecekan masukan Chomksy ..............
40
Kode Program 6. Kode program urutan variabel ........................................
41
Kode Program 7. Kode program substitusi bermasalah ..............................
42
Kode Program 8. Kode program penyelesaian rekursif kiri .......................
43
Kode Program 9. Kode program substitusi mundur ...................................
44
Kode Program 10. Kode program menampilkan seluruh bentuk GNF .......
45
xviii
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Teori bahasa automata merupakan salah satu teori komputasi pada Ilmu
Komputer. Teori komputasi datang dari bahasa dan rekayasa sistem, terutama
yang berbasiskan matematika. Teori bahasa automata dapat dijadikan suatu
gagasan mendasar dalam komputasi yang menjadi tools untuk mengenali suatu
persoalan atau masalah karena dapat memberikan konsep dan prinsip untuk
memahami suatu persoalan yang berkolerasi dengan bidang ilmu komputer.
Ilmu Komputer memiliki topik yang cukup luas meliputi perancangan
mesin hingga pemrograman. Teori bahasa automata memiliki empat tipe grammar
yang disebut dengan Hirarki Chomsky, yaitu Unrestricted Grammar (UG),
Context Sensitive Grammar (CSG), Context Free Grammar (CFG), dan Regular
Grammar (RG). Penelitian ini difokuskan dalam Tata Bahasa Bebas Konteks
(CFG). Tata Bahasa Bebas Konteks (CFG) memiliki beberapa persoalan yang
dapat diselesaikan dengan bidang Ilmu Komputer, salah satunya adalah
penyederhanaan bentuk normal Chomsky (CNF) ke bentuk normal Greibach
(GNF). Salah satu bentuk normal Tata Bahasa Bebas Konteks (CFG) dalam teori
bahasa Automata adalah bentuk normal Greibach (GNF). Syarat yang harus
2
dipenuhi antara lain yaitu aturan produksinya harus dalam bentuk normal
Chomsky (CNF), tidak bersifat rekursif kiri, dan tidak memuat produksi yang
menghasilkan (epsilon). Bentuk normal Greibach (GNF) dapat dilakukan
dengan dua cara yaitu dengan cara substitusi dan matriks.
Aturan produksi dalam teori bahasa automata adalah proses yang
menspesifikasikan bagaimana suatu tata bahasa mentransformasi suatu string ke
bentuk lainnya. Aturan produksi dinyatakan dalam bentuk α → β, α menghasilkan
atau menurunkan β. α merupakan simbol ruas kiri sedangkan β merupakan simbol
ruas kanan. Simbol – simbol tersebut dapat berupa terminal dan nonterminal
dimana simbol nonterminal dapat diturunkan menjadi simbol terminal. Simbol
terminal disimbolkan dengan huruf kecil (a,b,c, dan sebagainya ), sedangkan
simbol nonterminal disimbolkan dengan huruf besar (A,B,C, dan sebagainya).
Penelitian sebelumnya, Merliana (2014) mengatakan bahwa
Penulisan
notasi Tata Bahasa Bebas Konteks (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 Tata Bahasa Bebas
Konteks (CFG) didasarkan pada ketentuan sebagai berikut; Simbol nonterminal
ditulis dengan huruf A sampai dengan Z, kecuali S, S digunakan sebagai simbol
awal, dan huruf a sampai dengan z, huruf Yunani α sampai ζ, dan bilangan (digit)
adalah simbol terminal. Merliana (2014) juga mengatakan bahwa
skema
penyederhanaan tata bahasa bebas konteks meliputi ; Tata Bahasa Bebas Konteks
(CFG)
Penghilangan
produksi
Penghilangan
produksi
unit
3
Penghilangan produksi useless Pengubahan kedalam bentuk normal
Chomsky (CNF) Penghilangan rekursif kiri Pengubahan kedalam bentuk
normal Greibach (GNF) dengan metode substitusi.
Impelementasi untuk menentukan Bentuk Normal Greibach (GNF) ini
cukup sulit dan cukup rumit, karena harus melalui tahapan – tahapan yang cukup
banyak dan memerlukan ketelitian yang sangat tinggi. Penelitian ini dimaksudkan
untuk menentukan bentuk normal Greibach (GNF) dengan menggunakan suatu
aplikasi. Aplikasi ini dibuat dengan menggunakan metode substitusi untuk
mendapatkan bentuk normal Greibach (GNF). Pada aplikasi ini diberikan tahap
dari proses agar memudahkan pemahaman dalam melakukan penyederhanaan
pada setiap tahapannya serta mempercepat proses dalam pencarian bentuk normal
Greibach (GNF).
1.2 Rumusan Masalah
Bagaimana membuat aplikasi dengan menggunakan Metode Substitusi dan
tidak menggunakan Metode Matriks.
1.3 Batasan Masalah
Batasan masalah dalam penelitian ini yaitu grammar yang dimasukkan harus
dalam aturan produksi bentuk normal Chomsky (CNF).
1.4 Tujuan
Tujuan dari penelitian ini adalah untuk membuat aplikasi pengubah bentuk
normal Chomsky (CNF) menjadi bentuk normal Greibach (GNF) dengan
menggunakan metode substitusi.
4
1.5 Manfaat
Manfaat dari penelitian ini adalah;
1. Mempermudah dalam hal mencari bentuk normal Greibach (GNF)
dengan menggunakan aplikasi ini.
2. Menjadi modul pembelajaran untuk orang yang belum mengetahui bentuk
normal Greibach (GNF).
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 berhingga state,
dimana state menyatakan informasi mengenai input. Bahasa dan automata
mempunyai hubungan yakni bahasa dijadikan input oleh mesin automata lalu
mesin tersebut membuat keputusan untuk mengindikasikan bahwa input tersebut
dapat diterima atau tidak (Keprof dan Ulman, 1979).
Teori Automata dan bahasa formal, berkaitan dalam hal pembangkitan
kalimat/generation yaitu, menghasilkan semua kalimat dalam bahasa L
berdasarkan aturan yang dimilikinya. Pengenalan kalimat atau recognition yaitu
menentukan suatu string (kalimat) termasuk sebagai salah satu anggota himpunan
L. 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 suatu bahasa dibangkitkan oleh suatu tata bahasa (grammar) yang sama.
6
Suatu bahasa formal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda.
Suatu bahasa disebut formal karena grammar dibentuk mendahului pembangkitan
setiap kalimatnya. Bahasa manusia bersifat sebaliknya yaitu grammar dibentuk
untuk meresmikan kata-kata yang hidup di masyarakat (Utdirartatmo, 2005).
Tata bahasa berfungsi untuk menentukan kebenaran dalam penulisan suatu
pernyataan, sesuai dengan aturan yang terdapat pada suatu program. Masukan
yang tidak sesuai dengan tata bahasa yang telah ditetapkan, maka proses tidak
bisa dilakukan (Merliana, 2014).
2.2 Hirarki Bahasa Menurut Chomsky
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
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
7
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 paling banyak mempunyai satu simbol variabel yang
terletak paling kanan, jadi ruas kanan bisa memiliki simbol terminal yang
tidak terbatas, sebagai contoh :
Aa
B aB
2.3 Context Free Grammar (CFG)
Tata Bahasa Bebas Konteks (CFG) adalah kumpulan berhingga dari
variabel-variabel biasa disebut nonterminal. Variabel tersebut merepresentasikan
suatu bahasa. Bahasa yang direpresentasikan oleh nonterminal dideskripsikan
secara rekursif, dimana tiap simbol primitive disebut terminal. Aturan-aturan yang
berhubungan dengan nonterminal disebut produksi (Utdirartatmo, 2005).
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.
8
Penulisan CFG didasarkan pada ketentuan berikut ini :
1) Simbol nonterminal 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 nonterminal, 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 , berlaku dua hal berikut :
1) Ruas kiri dari aturan produksi terdiri dari satu simbol nonterminal.
2) Ruas kanan dapat berupa string yang dibentuk dari simbol terminal dan
nonterminal.
Proses penurunan kalimat dari simbol awal suatu tata bahasa dapat
digambarkan sebagai rangkaian penerapan atursan produksi yang dimiliki tata
bahasa tersebut. Proses penerapan atuan produksi ini dimulai terhadap simbol
awal dari tata bahasa tersebut. CFG dapat dimisalkan dengan simbol awal S,
himpunan simbol
nonterminal S. A himpunan simbol nonterminal a,b dan
kumpulan aturan produksi sebagai berikut :
S aAS | a
A SbA | ba
Proses penyederhanaan CFG menurut Merliana (2014) meliputi Gambar 1
berikut ini :
9
CFG
Penghilangan
Produksi ε
Pengubahan ke
dalam bentuk
normal Greibach
dengan substitusi
Penghilangan
Produksi Unit
Penghilangan
Rekursif Kiri
Penghilangan
Produksi Useless
Pengubahan ke
dalam bentuk
normal Chomsky
Gambar 1. Proses penyederhanaan CFG
Proses penyerhanan CFG :
1) Proses penyederhanan menggunakan aturan produksi CFG.
2) Penghilangan produksi ε(epsilon) yaitu produksi yang tidak memuat
simbol variabel yang tidak memiliki penurunan dan tidak pernah dicapai
dengan penurunan apapun dari simbol awal.
3) Penghilangan produksi unit yaitu produksi dimana ruas kiri dan kanan
hanya berupa satu simbol variabel dan keberadaanya membuat tata bahasa
memiliki kerumitan yang tidak perlu.
4) Penghilangan produksi useless yaitu produksi dalam bentuk α ε atau
bisa dianggap sebagai produksi kosong.
5) Pengubahan dilakukan kedalam bentuk CNF yaitu aturan produksi yang
ruas kanannya terdiri atas sebuah terminal atau dua variabel.
6) Penghilangan rekursif kiri yaitu produksi dapat menyebabkan pohon
penurunan tumbuh ke kiri.
7) Pengubahan ke dalam bentuk GNF dengan metode substitusi.
10
2.4 Greibach Normal Form
Bentuk normal Greibach (GNF) merupakan bentuk normal yang memiliki
banyak konsekuensi teoritis dan prakatis. GNF membatasi posisi munculnya
terminal-terminal dan variabel-variabel karena dalam bentuk ini aturannya sudah
jelas, yaitu ruas kiri non terminal dan ruas kanan terdiri atas satu buah terminal
lalu diikuti oleh simbol – simbol variabel (Koch, 2010). CFG dikatakan dalam
GNF jika setiap aturan produksinya ada dalam bentuk:
A aα
a:simbol terminal (tunggal), a ε T
Ș: rangkaian simbol-simbol variabel (V*)
Suatu CFG merupakan GNF bila hasil produksinya (ruas kanan) diawali
dengan satu simbol terminal, selanjutnya bisa diikuti oleh rangkaian simbol
variabel. Bentuk contoh CFG dalam GNF:
S a | aAB
A aB
B cS
Bentuk normal Greibach didapatkan bila tata bahasa semula harus memenuhi
syarat sebagai berikut:
1. Sudah dalam bentuk normal Chomsky (CNF)
2. Tidak bersifat rekursif kiri
3. Tidak menghasilkan ε (epsilon)
Pembentukan GNF terdapat dua cara, yaitu dengan cara substitusi dan perkalian
matriks.
11
2.5 Metode Substitusi
Prinsip dalam pembentukan bentuk normal Greibach (GNF) dengan
substitusi menurut Koch (2010) meliputi :
1) Dimisalkan aturan produksi yang sudah dalam bentuk GNF.
2) Tentukan pengurutan simbol variabel dengan berdasarkan aturan produksi
yang ada.
3) Lakukan perubahan pada aturan produksi yang belum sesuai dengan
aturan.
4) Lakukan substitusi mundur sehingga semua aturan produksi diawali
simbol terminal.
5) Lakukan substitusi pada aturan produksi baru sebagai penghilangan
rekursif.
2.6 Aturan Produksi Rekursif
Aturan produksi yang rekursif memiliki ruas kanan (hasil produksi) yang
memuat simbol variabel pada ruas kiri. Suatu aturan produksi dalam bentuk :
A βA merupakan aturan produksi yang rekursif kanan.
Keterangan :
ș=(V∪T)* atau kumpulan simbol variabel dan terminal. Contoh aturan
produksi yang rekursif kanan: S dS
Produksi dalam bentuk:
B adB
A Aβ
Aturan produksi yang rekursif kiri,
Contoh :
S Sd
B Bad
12
Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke
kanan, sebaliknya produksi yang rekursif kiri menyebabkan pohon penurunan
tumbuh ke kiri. Pada tata bahasa yang diterapkan, bentuk rekursif kiri tak
diinginkan. Penurunan tersebut bisa mengakibatkan loop yang terus berulang
sehingga perlu menghilangkan sifat rekursif kiri dari aturan produksi.
Penghilangan rekursif kiri memungkinkan suatu CFG harus diubah ke dalam GNF
(Merliana, 2014).
2.6.1 Penghilangan Rekursif Kiri
Langkah-langkah penghilangan rekursif kiri sebagai berikut :
Pisahkan aturan produksi yang rekursif kiri dan yang tidak, misalnya :
Aturan produksi yang rekursif kiri : A Aα1 | Aα2 | Aα3 | ....... Aαn
Aturan produksi yang tidak rekursif kiri (termasuk produksi ε) :
A β1 | β2 | β3 | ........ βm
Tentukan α1, α2, .... αn, dan β1, β2, .... βm dari setiap aturan produksi
yang memiliki simbol ruas kiri yang sama.
Lakukan penggantian aturan produksi yang rekursif kiri, menjadi
sebagai berikut:
- A β1Z | β2Z | .... βmZ
- Z α1 | α2 | α3 | .... αn
- Z α1Z | α2Z | α3Z | .... αnZ
Penggantian di atas dilakukan untuk setiap aturan produksi dengan simbol
ruas kiri yang sama. Munculnya simbol variabel baru Z1, Z2 dan
seterusnya, sesuai banyaknya variabel yang menghasilkan produksi yang
rekursif kiri.
13
Hasil akhir berupa aturan produksi pengganti ditambah dengan aturan
produksi semula yang tidak rekursif kiri.
2.7 Metode Pengembangan Aplikasi
Perancangan aplikasi memerlukan suatu metode atau langkah untuk
membangun
menggunakan
atau mengembangkan aplikasi.
Metode
Prototype.
Pelanggan
Pengembangan aplikasi
(customer)
ini
membayangkan
kumpulan kebutuhan yang diinginkan tapi tidak terspesifikasikan secara detail
dari segi masukan (input), proses, maupun keluaran (output). Pengembang
perangkat lunak harus menspesifikasikan sebuah kebutuhan secara detail dari segi
teknis dimana pelanggan sering kurang mengerti mengenai hal teknis ini. Metode
prototype dapat digunakan untuk menyambungkan ketidakpahaman pelanggan
mengenai hal teknis dan memperjelas spesifikasi kebutuhan yang diinginkan
pelanggan kepada pengembang perangkat lunak (Rosa dan Shalahuddin, 2011).
Gambar 2. Ilustrasi Model prototype
14
Program prototype dibuat agar pelanggan lebih terbayang dengan apa
yang sebenarnya diinginkan. Program prototype biasanya merupakan program
yang belum jadi. Program ini biasanya menyediakan tampilan dengan simulasi
alur perangkat lunak sehingga tampak seperti perangkat lunak yang sudah jadi.
Program prototype ini dievaluasi oleh pelanggan atau user sampai ditemukan
spesifikasi yang sesuai dengan keinginan pelanggan atau user (Rosa dan
Shalahuddin, 2011).
Prototype dimulai dengan mengumpulkan kebutuhan. Pengembang dan
user bertemu dan mendefinisikan obyektif keseluruhan perangkat lunak yang
dibuat, mengidentifikasi segala kebutuhan yang diketahui, dan kemudian
dilakukan “perancangan kilat”. Perancangan kilat berfokus pada penyajian dari
aspek-aspek perangkat lunak tersebut yang nampak bagi pelanggan/pemakai
(contohnya pendekatan input dan format output). Perancangan kilat membawa
kepada konstruksi sebuah prototype. Prototype tersebut dievaluasi oleh pelanggan
atau pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat
lunak. Iterasi terjadi pada saat prototype disetel untuk memenuhi kebutuhan
pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara
lebih baik memahami apa yang harus dilakukannya (Pressman, 2002).
Prototype adalah salah satu pendekatan dalam rekayasa perangkat lunak
yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau
komponen-komponen perangkat lunak bekerja dalam lingkungannya sebelum
tahap konstruksi aktual dilakukan. Metode prototype sebagai suatu paradigma
baru dalam pengembangan sistem informasi manajemen, tidak hanya sekedar
suatu evolusi dari metode pengembangan sistem informasi manajemen. Prototype
15
dapat dimodifikasi, memungkinkan dimodifikasi beberapa kali sampai keadaan
yang ditetapkan user. Metode ini dikatakan revolusi karena merubah proses
pengembangan sistem informasi yang lama (Mulyanto, 2008).
Metode prototype mempunyai tahapan – tahapan, yaitu ;
1.
Identifikasi alternatif prototype
Identifikasi alternatif prototype ini didasarkan atas permintaan user (user
requirement). Alternatif prototype ini meliputi user interface, transaksi
utama, dan fungsi – fungsi pemrosesan sederhana.
2.
Rancang bangun prototype
Rancang bangun prototype dilakukan untuk melihat tahapan – tahapan dalam
pembuataan aplikasi ini sampai aplikasi benar – benar dapat digunakan.
3.
Evaluasi prototype
Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan
perubahan jika diperlukan. Evaluasi dilakukan dengan melakukan pengujian
terhadap sistem.
4.
Kode sistem
Pengkodean sistem dilakukan pada saat evaluasi selesai agar mendapatkan
sistem yang komplit.
5.
Pengujian Sistem
Sistem yang telah selesai pada tahap kode sistem, kemudian dilakukan
pengujian. Pengujian dilakukan secara langsung kepada pelanggan untuk
mengetahui apakah kebutuhan sudah sesuai dengan kebutuhan pelanggan atau
belum. Pengujian sistem ini dilakukan dengan black box testing.
16
6.
Transformasi sistem
Transformasikan sistem menjadi perangkat lunak yang berorientasi penuh
dengan melakukan penambahan program – program yang dibutuhkan,
perbaikan, dan pengujian perangkat lunak secara berkala.
Penggunaan metode prototype ini memiliki keuntungan dan kelemahan.
Keuntungan penggunaan prototype meliputi (Kusnendar, 2012);
1.
Komunikasi user-developer
Pengembang selalu meminta pendapat user dalam segala proses pembuatan
perangkat lunak.
2.
Membantu analis
Menentukan kebutuhan analis yang sebenarnya.
3.
Peran user meningkat
Evaluasi yang dilakukan oleh user menjadi meningkat karena dilakukan
berkali – kali.
4.
Pengembangan lebih cepat
Program yang dihasilkan dapat langsung dibuat serta user dapat langsung
melihat perkembangan tahap demi tahap.
5.
Implementasi mudah
User sudah mengenal tentang perangkat lunak yang dikembangkan.
Kelemahan penggunaan metode prototype meliputi;
1.
Pemakai menjadi sibuk
User dan pengembang harus sama – sama memiliki komitmen dan selalu
bekerja sama serta memliki waktu untuk bertemu.
17
2.
Pemakai sulit melakukan evaluasi
Bentuk prototype yang sering berubah menyebabkan sulit melakukan evaluasi
karena harus disesuaikan dengan kebutuhan user.
3.
User ingin cepat selesai
Bentuk program yang sudah terlihat sejak awal membuat user ingin program
cepat selesai.
4.
User berharap terlalu banyak
Evaluasi dan komunikasi yang terlalu sering menjadi membuat user sering
berubah keinginan (Kusnendar, 2012).
2.7.1 Use case
Use case diagram merupakan pemodelan untuk sistem atau aplikasi yang
dibuat. Use case mendeskripsikan sebuah interaksi antara satu aktor atau lebih
dengan sistem atau aplikasi yang dibuat. Use case secara umum digunakan untuk
mengetahui fungsi isi yang ada di dalam sebuah sistem atau aplikasi dan orang orang yang berhak menggunakan fungsi – fungsi tersebut. Use case memiliki dua
hal utama yaitu pendefinisian apa yang disebut aktor dan use case.
1) Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan
sistem atau aplikasi yang dibuat di luar sistem yang dibuat sendiri.
2) Use case merupakan fungsionalitas yang disediakan sistem atau aplikasi
sebagai unit – unit yang saling bertukar pesan antar unit atau aktor (Rosa dan
Shalahuddin, 2011).
Tabel use case menurut Rosa dan Shalahuddin (2011) adalah sebagai berikut:
18
Tabel 1. Notasi Use case
Simbol
Nama
Keterangan
Actor
Actor adalah pengguna
sistem. Actor tidak terbatas
hanya manusia saja, jika
sebuah
sistem
berkomunikasi
dengan
aplikasi
lain
dan
membutuhkan input atau
memberikan output, maka
aplikasi tersebut juga bisa
dianggap sebagai actor.
Use case digambarkan
sebagai lingkaran elips
dengan nama use case
dituliskan didalam elips
tersebut.
Asosiasi digunakan untuk
menghubungkan
actor
dengan use case. Asosiasi
digambarkan
dengan
sebuah
garis
yang
menghubungkan
antara
Actor dengan Use Case.
Use case
Association
2.7.2 Activity Diagram
Diagram aktivitas atau activity diagram menggambarkan workflow (aliran
kerja) atau aktivitas dari sebuah sistem atau aplikasi. Diagram aktivitas
menggambarkan aktivitas sistem, bukan apa yang dilakukan oleh aktor tetapi
aktivitas yang dilakukan oleh sistem atau aplikasi. Notasi simbol activity diagram
menurut Rosa dan Shalahuddin (2011) dapat dilihat pada Tabel 2 berikut ini.
19
Tabel 2. Notasi Activity Diagram
Simbol
Deskrispsi
Status awal
Status awal aktivitas sistem,
sebuah
diagram
aktivitas
memiliki sebuah status awal.
Aktivitas
Aktivitas yang dilakukan sistem,
aktivitas biasanya diawali dengan
kata kerja.
Percabangan
Asosiasi percabangan dimana jika
ada pilihan aktivitas maksimal
dua aktivitas.
Penggabungan / join
Asosiasi penggabungan dimana
lebih
dari
satu
aktivitas
digabungkan menjadi satu.
Status akhir
Status akhir yang dilakukan
sistem, sebuah diagram aktivitas
memiliki sebuah status akhir.
Swimlane
Memisahkan organisasi bisnis
yang bertanggung jawab terhadap
aktivitas yang terjadi.
20
2.8 Software pendukung pembuatan aplikasi
Software yang digunakan untuk mendukung aplikasi ini adalah PHP
(Hypertext Prepocessor). PHP merupakan singkatan dari Personal Home Page,
namun karena dalam perkembangannya PHP tidak hanya digunakan membuat
halaman web pribadi, PHP saat ini merupakan singkatan dari Hypertext
Preprocessor. PHP adalah bahasa pemrograman script server side yang didesain
untuk pengembangan web, tetapi juga bisa digunakan sebagai bahasa
pemrograman secara umum atau non web. PHP yakni bahasa berbentuk skrip
yang ditempatkan dalam server dan diproses di server yang hasilnya dikirim ke
klien dengan menggunakan browser. 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).
Web server yang paling sering dipakai untuk saat ini untuk PHP adalah
Apache. PHP juga memerlukan PHP binary yang bisa dikonfogurasikan sebagai
modul Apache ataupuns sebagai aplikasi CGI. Media penyimpanan data (database
server) yang dipakai adalah MYSQL. Melakukan installasi dan mengkonfigurasi
ketiga software tersebut (Apache, MYSQL, PHP) agar dapat berjalan dan
terhubung memang cukup sulit. Mengatasi masalah tersebut maka dibuat software
LAMP, XAMP, MAMP, WAMP yang dapat dilakukan dengan cara satu kali
proses installasi (Yuliano, 2007).
BAB III
METODE PENELITIAN
3.1 Metode Penelitian
Gambar 3. Tahapan Metode Penelitian
Tahap metode penilitan ini memiliki beberapa langkah, antara lain :
pembentukan bentuk normal Greibach dengan metode substitusi, metode
pengembangan sistem prototype, dan aplikasi bentuk normal Greibach dengan
metode substitusi. Proses pembentukan bentuk normal Greibach dengan metode
22
substitusi ini dilakukan dengan cara merancang algoritma dalam bentuk flowchart.
Proses pembuatan aplikasi ini menggunakan metode pengembangan sistem
prototype. Metode prototype merupakan model yang dimulai dari pengumpulan
kebutuhan pelanggan terhadap perangkat lunak digunakan, lalu dibuat prototype
agar pelanggan lebih mengerti dengan apa yang diinginkan. Metode prototype ini
memiliki keuntungan yaitu pengguna dapat mengetahui kesesuaian antara aplikasi
yang dihasilkan dengan kebutuhan tanpa harus menunggu sampai aplikasi
diimplementasikan. Aplikasi pengubah bentuk normal Greibach dengan metode
substitusi yang sudah didapat selanjutnya diimplementasikan dan digunakan oleh
pelanggan.
3.1.1
Proses pembentukan bentuk normal Greibach dengan metode
substitusi
Tahap penelitian ini dilakukan untuk merancang algoritma yang sesuai
untuk membuat aplikasi pengubah bentuk normal Chomsky menjadi bentuk
normal Greibach dengan metode substitusi. Algoritma aplikasi ini disampaikan
melalui sebuah flowchart. Flowchart ini menggambarkan bagaimana masukan
aturan produksi awal hingga proses – proses yang terjadi didalamnya hingga
mendapatkan hasil. Flowchart ini diperlukan untuk mendapatkan gambaran dalam
pengerjaan tahap selanjutnya dalam pembuatan aplikasi ini. Flowchart pengubah
bentuk normal Chomsky menjadi bentuk normal Greibach dengan metode
substitusi dapat dilihat pada Gambar 4 berikut ini.
23
Gambar 4. Flowchart pembentukan GNF dengan substitusi
3.1.2 Metode Prototype
Tahap ini merupakan tahap yang dilakukan selanjutnya setelah
mendapatkan bentuk flowchart pembentukan aplikasi ini. Flowchart yang telah
didapat dijadikan referensi dalam pengerjaan tahap selanjutnya. Tahap ini
menjelaskan tahapan secara rinci metode yang dilakukan dalam pembuatan
aplikasi ini. Tahap prototype ini memiliki 6 tahapan utama seperti berikut :
24
Gambar 5 . Tahapan metode prototype
3.1.2.1 Identifikasi Alternatif Prototype
Tahap identifikasi alternatif prototype ini merupakan tahap awal
dilakukannya penelitian. Pengumpulan data yang dilakukan berupa identifikasi
seluruh kebutuhan pelanggan, serta mencari data – data yang mendukung aplikasi
ini. Data – data tersebut didapatkan dari buku – buku atau jurnal - jurnal yang
terkait dengan aplikasi. Identifikasi alternatif prototype ini yang diutamakan
adalah proses input dan output aplikasi. Indikasi hubungan antara pengguna
dengan sistem digambarkan dengan use case pada Gambar 6 berikut ini.
25
Gambar 6. Use Case Diagram Aplikasi Pengubah Bentuk Normal Chomsky
(CNF) ke Bentuk Normal Greibach (GNF)
3.1.2.2. Rancang Bangun Prototype
Tahap rancang bangun prototype ini dilakukan setelah tahap identifikasi
alternatif prototype selesai. Tahap ini dilakukan agar mendapatkan bentuk –
bentuk prototype yang dapat dievaluasi sebelum diterapkan. Tahap rancang
bangun prototype ini memilliki 3 tahapan prototype yang dilakukan untuk
membuat perangkat lunak tersebut. Tahap pertama yang dilakukan yaitu
mendesain sistem yang dapat mengidentifikasi bentuk normal Chomsky. Tahap
kedua mendesain prototype yang dapat mencari bentuk normal Greibach yang
tidak memiliki rekursif. Tahap terakhirnya adalah mendesain prototype yang
dapat mencari bentuk normal Greibach yang memiliki rekursif kiri. Rancang
bangun prototype ini memerlukan activity diagram untuk melihat aktivitas yang
26
dilakukan antara pengguna dengan aplikasi. Penjelasan lebih lanjut tentang
rancang bangun prototype ini dijelaskan pada Tabel 3 berikut ini.
Tabel 3. Tahapan Desain Prototype
Prototype
1
2
3
Fungsi yang diinginkan
Fungsi yang diinginkankan prototype1:
1. Fungsi untuk membuat field untuk masukan produksi.
2. Fungsi untuk mengecek apakah masukan produksi
memenuhi syarat yang sudah ditetuntukan atau belum,
dalam hal ini harus dalam bentuk normal Chomsky.
Fungsi yang diinginkan prototype 2:
1. Fungsi untuk menentukan urutan variabel produksi.
2. Fungsi untuk melakukan substitusi bermasalah.
3. Fungsi untuk menemukan jika terdapat bentuktidak
rekursif kiri.
4. Fungsi untuk melakukan substitusi mundur.
5. Fungsi untuk menampilkan langkah – langkah proses
pengerjaan apabila tidak terdapat bentuk rekursif kiri.
6. Fungsi untuk menamplikan semua hasil bentuk normal
Greibach yang telah didapat.
Fungsi yang diinginkan prototype 3:
1. Fungsi untuk menemukan jika terdapat bentuk rekurif
kiri.
2. Fungsi untuk mengubah bentuk rekursif kiri menjadi
bentuk normal Greibach.
3. Fungsi untuk melakukan substitusi mundur.
4. Fungsi untuk menampilkan langkah – langkah proses
perngerjaan apabila terdapat bentuk rekursif kiri.
5. Fungsi untuk menamplikan semua hasil bentuk normal
Greibach yang telah didapat.
3.1.2.2.1 Activity Diagram
Activity Diagram aplikasi pengubah bentuk normal Chomsky ke bentuk
normal Greibach (GNF) prosedurnya dimulai dengan memasukkan aturan
produksi CNF yang dilakukan oleh pengguna. Aplikasi ini selanjutnya mendeteksi
apakah masukan yang dimasukkan tersebut apakah sudah dalam CNF. Masukan
yang telah dalam bentuk CNF, selanjutnya aplikasi melakukan pengurutan simbol
27
variabel. Urutan variabel yang telah terbentuk, maka aplikasi melakukan
pengecekan apakah sudah memenuhi urutan variabel. Variabel yang salah
urutannya akan dilakukan substitusi. Aturan produksi baru didapat setelah
dilakukan substitusi pada aturan yang bermasalah, selanjutnya dilakukan
pengecekan apakah terdapat rekursif pada aturan produksi tersebut. Aturan
produksi yang terdapat rekursif kiri diproses hingga rekursif tersebut hilang.
Aturan produksi baru yang timbul dari proses penghilangan rekursif tersebut,
diproses kembali dengan cara substitusi mundur. Substitusi mundur yang
dilakukan menghasilkan bentuk GNF. Aplikasi menampilkan seluruh hasil dari
bentuk GNF yang telah didapat. Activity diagram tersebut dapat dilihat pada
Gambar 7 berikut ini.
28
Gambar 7. Activity Diagram Aplikasi Pengubah Normal Chomsky
(CNF) ke Bentuk Normal Greibach (GNF).
29
3.1.2.3. Evaluasi Prototype
Evaluasi sistem ini dilakukan secara langsung kepada pihak pengguna,
sehingga jika masih terdapat kekurangan dapat langsung diperbaiki. Kekurangan
atau ketidaksesuaian prototype pada aplikasi ini diperbaiki pada pembangunan
prototype selanjutnya. Tahap ini diperlukan untuk memastikan apakah aplikasi
berjalan dengan baik, serta mengindentifikasi kesalahan, sehingga dapat langsung
dilakukan perbaikan hingga aplikasi dapat digunakan.
Tahap evaluasi ini dilakukan uji coba prototype kepada pengguna. Tahap
evaluasi prorotype ini yang paling utama adalah membicarakan kelayakan dan
kesesuaian prototype dengan pihak pengguna. Pengembang aplikasi juga
mengadakan diskusi dengan pengguna. Diskusi dalam hal ini mengenai aplikasi
pengubah bentuk CNF menjadi bentuk GNF dengan metode substitusi. Hal – hal
yang dibahas dalam diskusi ini mencakup tentang bagaimana menampilkan
proses- proses sehingga mendapatkan bentuk GNF, mencoba masukan berupa
bentuk normal Greibach, serta penulisan varibel dalam hasil akhir bentuk GNF
yang didapat. Hasil diskusi ini kemudian dicoba diterapkan pada prototype yang
masih kurang. Prototype yang dibuat apabila sudah sesuai dengan keinginan
pengguna, maka dilanjutkan pada tahap kode sistem. Prototype yang belum sesuai
dengan keinginan pengguna, maka perlu dilakukan evaluasi hingga prototype
benar – benar sesuai dengan keinginan pengguna.
30
3.1.2.4 Kode Sistem
Kode sistem dilakukan jika tahap evaluasi prototype telah selesai. Tahap
ini prototype yang sudah ditentukan, diterjemahkan ke dalam bahasa
pemrograman yang sesuai untuk menyatukannya menjadi aplikasi yang komplit.
Aplikasi ini menggunakan bahasa pemrograman PHP (Hypertext Preprocessor)
untuk membuat aplikasinya. Potongan kode program yang sudah dilakukan pada
aplikasi dapat dilihat pada Kode Program 1 hingga Kode Program 4 berikut ini.
//mengurutkan ruas kiri
function urutan(){
global $nt;
sort($nt);
$index=1;
$find_S=array_search("S",$nt);
if(!empty($find_S)){
foreach ($nt as $key => $val){
if($val=="S")
$new_nt[0]="S";
else{
$new_nt[$index]=$val;
$index++;
}
}
$nt = $new_nt;
}
}
Kode Program 1. Kode program pengurutan ruas kiri
31
//Periksa aturan produksi
function check_urutan(){
global $nt,$produksi;
for($i=0;$i