PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS DALAM BENTUK NORMAL CHOMSKY MENGGUNAKAN PHP

(1)

PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS DALAM BENTUK NORMAL CHOMSKY MENGGUNAKAN PHP

(Skripsi)

Oleh

ISMAIL INDRA PRATAMA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG

BANDAR LAMPUNG 2015


(2)

ABSTRAK

PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS DALAM BENTUK NORMAL CHOMSKY MENGGUNAKAN PHP

Oleh

ISMAIL INDRA PRATAMA

Pada penelitian ini dibuat suatu perangkat lunak untuk menyederhanakan tata bahasa bebas konteks ke dalam bentuk normal Chomsky. Perangkat lunak ini dibuat untuk menyelesaikan suatu proses penyederhanaan tata bahasa bebas konteks (CFG), sehingga pengguna dapat mengetahui tahapan-tahapan dari suatu proses penyederhanaan, memudahkan pemahaman dalam melakukan penyederhanaan pada setiap tahapannya serta untuk mempercepat proses. Perangkat lunak ini dibuat menggunakan bahasa pemograman PHP. Masukan dari perangkat lunak ini adalah tata bahasa bebas konteks (CFG) yang belum disederhanakan. Urutan proses yang dilakukan dimulai dari penghilangan produksi epsilon, penghilangan produksi unit, penghilangan produksi useless dan pengubahan ke dalam bentuk normal Chomsky. Hasil pengujian Black Box dengan metode equivalen partitioning pada perangkat lunak menunjukkan bahwa perangkat lunak penyederhanaan tata bahasa bebas konteks dalam bentuk normal Chomsky mengggunakan PHP telah berhasil dan sesuai dengan kebutuhan pengguna.

Kata kunci : Bentuk Normal Chomsky (CNF), penyederhanaan Tata Bahasa Bebas Konteks (CFG),PHP, Tata Bahasa Bebas Konteks (CFG).


(3)

ABSTRACT

THE DEVELOPMENT OF APPLICATION FOR TO CHOMSKY NORMAL FORM USING PHP

By

ISMAIL INDRA PRATAMA

In this research we develop an application to simplify context-free grammar into a Chomsky normal form. This software was made to complete the process of simplification of the context-free grammar (CFG) so that user can identify the stages of a process of simplification, easy to understand the simplification at any stages as well as speed up the process. This software is created using the PHP programming language and use context-free grammar (CFG) as the input. The process order is carried out starting from removing epsilon, unit, and useless production so that the result is in Chomsky Normal Form. Black Box testing results with the method of partitioning software equivalen suggests that simplification of software context-free grammar into a Chomsky normal form using PHP was successful and suitable with the user needs.

Key words : Chomsky Normal Form (CNF), Context-Free Grammar (CFG), PHP, simplification of the Context-Free Grammar (CFG).


(4)

PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS DALAM BENTUK NORMAL CHOMSKY MENGGUNAKAN PHP

Oleh

ISMAIL INDRA PRATAMA

Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh Gelar SARJANA KOMPUTER

Pada

Jurusan Ilmu Komputer

Fakultas Matematika dan Ilmu Pengetahuan Alam

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG

BANDAR LAMPUNG 2015


(5)

(6)

(7)

(8)

RIWAYAT HIDUP

Penulis dilahirkan di Bandar Lampung Provinsi Lampung pada tanggal 8 Maret 1992. Penulis merupakan anak pertama dari empat bersaudara dengan Ayah bernama Holil dan Ibu bernama Dewi Sri.

Penulis memasuki Taman Kanak-Kanak (TK) pada tahun 1997 di TK Kurnia Kecamatan Teluk Betung Utara Kota Bandar Lampung. Penulis melanjutkan pendidikan dasar di Sekolah Dasar (SD) Negeri 5 Talang Teluk Betung Selatan Bandar Lampung pada tahun 1998 dan lulus pada tahun 2004. Penulis melanjutkan pendidikan di Sekolah Menengah Pertama (SMP) Negeri 3 Bandar Lampung dan lulus pada tahun 2007, kemudian penulis melanjutkan pendidikan di Sekolah Menengah Atas (SMA) Negeri 4 Bandar Lampung dan lulus pada tahun 2010.

Pada tahun 2011, penulis terdaftar sebagai mahasiswa Program Studi Ilmu Komputer Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung melalui jalur SNMPTN. Selama menjadi mahasiswa penulis cukup aktif


(9)

dalam organisasi antara lain menjabat sebagai anggota bidang kaderisasi Himakom (Himpunan Mahasiswa Ilmu Komputer) periode 2012-2013 dan periode 2013-2014. Selama menjadi mahasiswa beberapa kegiatan yang dilakukan penulis antara lain:

1. Pada bulan Januari 2014 penulis melaksanakan kuliah kerja nyata di Desa Tanjung Jaya Kecamatan Bangun Rejo Kabupaten Lampung Tengah.

2. Pada bulan November 2013 penulis terdaftar sebagai salah satu peserta dalam Seminar Nasional Sains dan Teknologi V Lembaga Penelitian Universitas Lampung yang dilaksanakan di Hotel Emersia Kota Bandar Lampung.

3. Pada bulan Juli 2014 penulis melaksanakan kerja praktek di Dinas Sosial Provinsi Lampung, Teluk Betung Bandar Lampung.


(10)

PERSEMBAHAN

Dengan mengucapkan syukur Alhamdulillah, kupersembahkan karya kecilku ini untuk :

Ayahku dan Ibuku tercinta,

Bapak Holil dan Ibu Dewi Sri, yang telah membesarkan, menyayangi, mendidik, menafkahi, dan selalu berdo’a untuk keberhasilan anak-anaknya.

Terima kasih atas Semua perjuangan pengorbanan, kesabaran dan kasih sayang yang telah kalian berikan untukku.

Adik-adikku yang selalu aku sayangi,

Diana Sari Hidayati, Rahmi Putri Amalia dan Indri Nurlita Sari, yang selalu mendukung dan memberikan semangat serta apresiasi.


(11)

MOTO

Barangsiapa Bersungguh-Sungguh Sesungguhnya Kesungguhan Itu

Adalah Untuk Dirinya Sendiri (QS Al-Ankabut [29] : 6)

Hidup Cuma Satu Kali,

Jadikan Hidup yang Cuma Satu Kali Ini Berguna Bagi Diri Sendiri dan Berguna Bagi Orang Lain

(Ismail Indra Pratama)

Learn From Yesterday, Live For Today, And Hope For Tomorrow


(12)

SANWACANA

Puji syukur penulis panjatkan kehadirat Allah subhanahu wa ta’ala atas berkat rahmat, hidayah, dan kesehatan yang diberikan kepada penulis sehingga dapat menyelesaikan penulisan skripsi ini. Skripsi ini disusun sebagai syarat untuk memperoleh gelar Sarjana Komputer di Jurusan Ilmu Komputer Universitas Lampung. Judul dari skripsi ini adalah “Penyederhanaan Tata Bahasa Bebas Konteks Dalam Bentuk Normal Chomsky Menggunakan PHP”.

Dalam penyusunan skripsi ini, penulis banyak menghadapi kesulitan. Namun, berkat bantuan dan dorongan dari berbagai pihak, akhirnya penulis dapat menyelesaikan skripsi ini. Untuk itu pada kesempatan ini, penulis mengucapkan terimakasih kepada:

1. Ayah dan Ibu yang telah memberikan doa, dukungan dan semangat serta memfasilitasi kebutuhan untuk menyelesaikan skripsi ini.

2. Ibu Dra. Wamiliana, M.A., Ph.D. sebagai pembimbing I penulis, yang telah memberikan ide untuk skripsi dan ditengah-tengah kesibukannya telah membimbing penulis dan memberikan dorongan sehingga penulisan skripsi ini dapat diselesaikan.


(13)

3. Bapak Rico Andrian, S.Si., M.Kom. sebagai pembimbing II penulis, yang telah memberikan saran, bantuan, dan membimbing penulis dalam pembuatan skripsi ini.

4. Bapak Ir. Machudor Yusman, M.Kom. sebagai pembahas sekaligus Ketua Jurusan Ilmu Komputer FMIPA Universitas Lampung, yang telah memberikan masukan-masukan yang bermanfaat dalam perbaikan skripsi ini.

5. Bapak Dwi Sakethi M.Kom. selaku Sekretaris Jurusan Ilmu Komputer FMIPA Universitas Lampung.

6. Bapak Prof Soeharso, Ph.D. selaku Dekan FMIPA Universitas Lampung. 7. Bapak Rangga Firdaus, M. Kom, selaku Pembimbing Akademik penulis. 8. Bapak dan Ibu Dosen Jurusan Ilmu Komputer yang telah memberikan ilmu

dan pengalaman dalam hidup untuk menjadi lebih baik.

9. Adik-adikku, Diana Sari Hidayati, Rahmi Putri Amalia, dan Indri Nurlita Sari, yang selalu mendukung dalam pengerjaan skripsi ini.

10.Teman-teman seperjuangan, Ilmu Komputer 2011 yang selalu ada dalam suka dan duka.

Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, akan tetapi penulis berharap semoga skripsi ini bermanfaat bagi perkembangan ilmu pengetahuan terutama bagi rekan-rekan Ilmu Komputer.

Bandar Lampung, 13 Agustus 2015


(14)

DAFTAR ISI

Halaman

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xvi

DAFTAR TABEL ... xviii

DAFTAR KODE PROGRAM ... xix

I. PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 4

1.3 Batasan Masalah ... 4

1.4 Tujuan Penelitian ... 4

1.5 Manfaat Penelitian ... 5

II. TINJAUAN PUSTAKA ... 6

2.1 Bahasa Alami dan Bahasa Formal ... 6

2.2 Tata Bahasa ... 7

2.3 Hirarki Tata Bahasa Menurut Chomsky ... 8

2.4 Tata Bahasa Bebas Konteks (Context Free Grammar) ... 10

2.5 Penyederhanaan ... 11

2.5.1 Penghilangan Produksi Useless ... 12

2.5.2 Penghilangan Produksi Unit ... 13

2.5.3 Penghilangan Produksi Epsilon(ε) ... 14

2.6 Bentuk Normal Chomsky ... 15

2.6.1 Proses Pembentukan Normal Chomsky ... 15

2.7 Metode Pengembangan Sistem ... 18


(15)

III. METODE PENELITIAN ... 23

3.1 Metode Penelitian ... 23

3.2 Tempat dan Waktu ... 24

3.3 Spesifikasi Hardware dan Software yang Digunakan ... 24

3.4 Flowchart Penyederhanaan Tata Bahasa Bebas Konteks (CFG) ... 25

3.5 Flowchart Pembentukan Normal Chomsky (CNF) ... 27

3.6 Metode Pengembangan Sistem ... 29

3.6.1System Engineering ... 29

3.6.2Analisis / Requirements Analysis ... 29

3.6.3Perancangan / Design ... 30

3.6.3.1 Use Case Diagram ... 30

3.6.3.2 Activity Diagram ... 31

3.6.3.3 Desain Antar Muka Sistem ... 33

1. Desain Halaman Utama (Home) ... 33

a. Form input Jumlah Produksi ... 33

b. Form input Produksi / CFG ... 34

c. Form Hasil Penyederhanaan CFG ... 35

d. Form Hasil Pembentukan Normal Chomsky ... 35

2. Desain Halaman Gambaran Umum ... 36

3. Desain Halaman Aturan Chomsky ... 37

4. Desain Halaman Bantuan ... 38

3.6.4 Implementasi / Coding ... 38

3.6.5 Pengujian / Testing ... 38

3.6.6 Operasi dan Perawatan / Maintenance ... 39

IV. HASIL DAN PEMBAHASAN ... 40

4.1 Hasil Analisis / Requirement Analysis ... 40

4.1.1 Kebutuhan Fungsional ... 41

4.1.2 Kebutuhan Non Fungsional ... 42

4.1.3 Kebutuhan Pengguna ... 42

4.2 Implemetasi ... 42

4.2.1 Halaman Utama (Home) ... 42


(16)

4.2.1.2 Form input Produksi ... 44

4.2.1.3 Form Hasil Penyederhanaan CFG ... 46

4.2.1.3.1 Penghilangan Produksi Epsilon “^” ... 48

4.2.1.3.2 Penghilangan Produksi Unit ... 49

4.2.1.3.3 Penghilangan Produksi Useless ... 51

4.2.1.3.4 Menampilkan Hasil Akhir Penyederhanaan CFG .... 52

4.2.1.4 Form Hasil Pembentukan Normal Chomsky ... 53

4.2.1.4.1 Memisahkan CFG yang Sudah CNF dengan CFG yang Belum CNF ... 55

4.2.1.4.2 Penggantian Simbol Terminal ... 57

4.2.1.4.3 Penggantian Produksi Jika Ruas Kanan Lebih Besar Dari 2 ... 58

4.2.1.4.4 Menampilkan Hasil Akhir Pembentukan Normal Chomsky ... 59

4.2.2 Halaman Gambaran Umum ... 61

4.2.3 Halaman Aturan Chomsky ... 62

4.2.4 Halaman Bantuan ... 63

4.2.4.1 Informasi Langkah-Langkah Pengoperasian Aplikasi ... 63

4.2.4.2 Informasi Algoritma Penyederhanaan Tata Bahasa Bebas Konteks (CFG) ... 64

4.2.4.3 Informasi Algoritma Pembentukan Normal Chomsky (CNF) ... 65

4.3 Pengujian / Testing ... 66

4.3.1 Pengujian Fungsional ... 66

4.3.2 Tampilan Antarmuka Hasil Pengujian Fungsional ... 71

1. Tampilan Pengujian Fungsi Pengecekan input Jumlah Produksi / CFG ... 71

2. Tampilan Pengujian Fungsi Pengecekan input Produksi / CFG ... 73

3. Tampilan Pengujian Fungsi Penyederhanaan Tata Bahasa Bebas Konteks (CFG) ... 74


(17)

4. Tampilan Pengujian Fungsi Pembentukan Normal Chomsky

(CNF) ... 76

4.3.3 Pembahasan Hasil Pengujian Fungsional ... 79

4.4 Operasi dan Perawatan / Maintenance ... 80

V. KESIMPULAN DAN SARAN ... 81

5.1 Kesimpulan ... 81


(18)

DAFTAR GAMBAR

Halaman Gambar 1. Hierarki Tata Bahasa (Grammar) Menurut Noam Chomsky

(Hamzah, 2009) ... 9

Gambar 2. Tahapan-Tahapan Pembentukan Normal Chomsky (Rustamaji, 2004) ... 16

Gambar 3. Tahapan Metode Waterfall (Jogiyanto, 2010) ... 19

Gambar 4. Tahap-tahap Penelitian ... 23

Gambar 5. Flowchart Penyederhanaan CFG ... 25

Gambar6. Flowchart Pembentukan Normal Chomsky (CNF) ... 27

Gambar 7. Use Case Diagram Aplikasi Penyederhanaan Tata Bahasa Bebas Konteks Dalam Bentuk Normal Chomsky (CNF) ... 31

Gambar8. Activity Diagram Aplikasi Penyederhanaan Tata Bahasa Bebas Konteks Dalam Bentuk Normal Chomsky (CNF) ... 32

Gambar 9. Desain Form input Jumlah Produksi ... 33

Gambar 10. Desain Form input Produksi / CFG ... 34

Gambar 11. Desain Form Hasil Penyederhanaan CFG ... 35

Gambar 12. Desain Form Hasil Pembentukan Normal Chomsky (CNF)... 36

Gambar 13. Desain Halaman Gambaran Umum ... 37

Gambar 14. Desain Halaman Aturan Chomsky ... 37

Gambar 15. Desain Halaman Bantuan ... 38

Gambar16. Form input Jumlah Produksi ... 43

Gambar17. Form input Produksi / CFG ... 45

Gambar18. Form Hasil Penyederhanaan CFG ... 47


(19)

Gambar 20. Halaman Gambaran Umum ... 61

Gambar 21. Halaman Aturan Chomsky ... 62

Gambar 22. Informasi Langkah-Langkah Pengoperasian Aplikasi ... 63

Gambar 23. Informasi Algoritma Penyederhanaan CFG ... 64

Gambar 24. Informasi Algoritma Pembentukan Normal Chomsky ... 65

Gambar 25. Pengecekan input Jumlah Produksi Jika Tidak Diisi ... 71

Gambar 26. Pengecekan input Jumlah Produksi Jika Diisi Angka “0” ... 72

Gambar 27. Pengecekan input Jumlah Produksi Jika Diisi Selain Angka ... 72

Gambar 28. Pengecekan input Jumlah Produksi Jika Diisi Dengan Angka Lebih Besar Dari 55 ... 72

Gambar 29. Pengecekan input Produksi jika Panjang Karakter Ruas Kiri Lebih Besar Dari 1 ... 73

Gambar 30. Pengecekan input Produksi Jika Ruas Kiri CFG Diisi Dengan Karakter Angka ... 73

Gambar 31. Pengecekan input Produksi Jika Salah Satu Field Tidak Diisi ... 74

Gambar 32. Fungsi Penyederhanaan CFG Jika Terdapat Produksi Epsilon (^) . 74 Gambar 33. Fungsi Penyederhanaan CFG Jika Terdapat Produksi Unit ... 75

Gambar 34. Fungsi Penyederhanaan CFG Jika Terdapat Produksi Useless ... 76

Gambar 35. Fungsi Penyederhanaan CFG Untuk Menampilkan Hasil Akhir Dari Penyederhanaan CFG ... 76

Gambar 36. Memisahkan CFG yang Sudah CNF Dengan CFG yang Belum CNF ... 77

Gambar 37. Penggantian Simbol Terminal Pada CFG yang Belum CNF ... 77

Gambar 38. Penggantian Ruas Kanan CFG yang Panjang Karakternya Lebih Besar Dari 2 ... 78


(20)

DAFTAR TABEL

Halaman


(21)

DAFTAR KODE PROGRAM

Halaman

Kode Program 1. Kode Program input Jumlah Produksi ... 44

Kode Program 2. Kode Program input Produksi/CFG ... 46

Kode Program 3. Kode Program Penghilangan Produksi Epsilon ... 49

Kode Program 4. Kode Program Penghilangan Produksi Unit ... 50

Kode Program 5. Kode Program Penghilangan Produksi Useless ... 52

Kode Program 6. Kode Program Hasil Akhir Penyederhanaan CFG ... 53

Kode Program 7. Kode Program Pemisahan CFG yang Sudah CNF dengan CFG yang Belum CNF ... 57

Kode Program 8. Kode Program Penggantian Simbol Terminal CFG yang Belum CNF ... 58

Kode Program 9. Kode Program Penggantian Produksi yang Panjangnya Lebih Besar Dari 2 ... 59

Kode Program 10. Kode Program Hasil Akhir Pembentukan Normal Chomsky (CNF) ... 61


(22)

BAB I PENDAHULUAN

1.1Latar Belakang

Bahasa alami atau bahasa non formal adalah bahasa komunikasi yang digunakan oleh manusia, yaitu bahasa ucap seperti bahasa Indonesia, bahasa Inggris, bahasa Arab. Sintaks bahasa alami sangat rumit, karena bahasa alami memiliki tata bahasa dan aturan yang lebih luas dan luwes, sehingga tidak mungkin untuk menspesifikasikan semua aturan sintaksnya. Bahasa formal adalah bahasa yang kaidah sintaksnya dapat dispesifikasikan secara matematis dengan baik. Kaidah bahasa dalam teori bahasa formal tidak hanya bermanfaat untuk studi linguistik bahasa alami seperti penterjemahan secara otomatis dari suatu bahasa ke bahasa lain, tetapi juga berguna untuk studi bahasa pemograman.

Tata bahasa bebas konteks (Context Free Grammar atau CFG) merupakan salah satu bahasa formal yang dapat digunakan untuk mendefinisikan sintaks bahasa pemograman. Suatu tata bahasa bebas konteks dapat berbentuk sangat melebar, sangat menyempit, atau terjadi rekursif kiri, yang semuanya sering dinamakan bentuk tidak normal. Suatu tata bahasa bebas konteks dapat


(23)

2

dimodifikasi ruas kanan aturan produksinya sedemikian sehingga panjangnya hanya satu atau dua karakter, tentu dapat dengan mudah dibayangkan bahwa pohon penurunan string yang terbentuk akan menjadi lebih sederhana, yaitu pohon biner dimana setiap simpul hanya memiliki cabang satu atau dua. Tata bahasa dengan batasan seperti ini disebut tata bahasa bebas konteks dalam bentuk normal Chomsky (Chomsky Normal Form atau CNF) (Rustamaji, 2004).

Permasalahan yang sering terjadi ketika melakukan penyederhanaan tata bahasa adalah tidak adanya hubungan interaktif antara media yang digunakan seperti buku, majalah dan modul dengan user sebagai pengguna program, sehingga cenderung menimbulkan rasa malas dan jenuh bagi user jika hanya sekedar memahami teori dan konsep saja tanpa ada penerapan langsung menggunakan media visual seperti komputer. Proses penyederhanaan tata bahasa juga dapat menimbulkan kerumitan jika tidak menggunakan media visual, yaitu ketika melakukan proses penyederhanaan terdapat pohon penurunan yang ambigu yakni pohon penurunan yang berbeda yang menghasilkan aturan produksi yang tidak berarti dan tidak efisien.

Penelitian ini mengembangkan suatu perangkat lunak yang dapat membantu user memudahkan proses penyederhanaan, khususnya penyederhanaan tata bahasa bebas konteks (Context Free Grammar). Penelitian ini juga dapat mengatasi rasa malas dan jenuh dari user dengan adanya hubungan interaktif antara user dengan komputer. User merasa lebih berminat dan tertarik untuk


(24)

3

melakukan proses penyederhanaan tata bahasa bebas konteks daripada hanya sekedar memahami konsep dan teori.

Penelitian sebelumnya dilakukan oleh Chomsky (1959) berjudul “On Certain Formal Properties of Grammars”, membahas tentang urutan batasan yang membatasi tata bahasa yang pertama dari mesin Turing. Penelitian lain dilakukan oleh Albert dkk (2000) dengan judul “Normal Form Algorithms for Extended Context-Free Grammars”, membahas tentang kompleksitas berbagai transformasi bentuk normal untuk memperluas tata bahasa bebas konteks (CFG). Penelitian lain dilakukan oleh Firsov dan Uustalu (2015) berjudul “Certified Normalization of Context Free Grammars”, membahas tentang pembuktian bahwa setiap tata bahasa bebas konteks dapat disederhanakan ke bentuk normal Chomsky dengan 4 urutan transformasi. Penelitian lain juga dilakukan oleh Ang (2004) dengan judul “CFG to Chomsky Normal Form (CNF) Converter“, membahas tentang penyederhanaan tata bahasa bebas konteks ke bentuk normal Chomsky menggunakan bahasa pemograman C. Program pada penelitian tersebut hanya dapat dijalankan menggunakan aplikasi Turbo C version 2.01 compiler. Tampilan program terlihat kurang menarik dan pengguna tidak memiliki banyak ruang dalam melakukan pengoperasian program. Pengembangan dan pengujian yang dilakukan pada penelitian tersebut hanya terbatas dalam lingkungan Win32. Penelitian ini merupakan penelitian lanjutan dari penelitian yang telah dilakukan oleh Hutomo (2014) dengan judul “Aplikasi Penyederhanaan Context Free Grammar”, dimana pada penelitian tersebut hanya menghasilkan aplikasi


(25)

4

untuk menyederhanakan tata bahasa bebas konteks (CFG). Penelitian ini melakukan pengembangan aplikasi tersebut dengan menambahkan proses merubah CFG yang sudah disederhanakan ke dalam bentuk normal Chomsky (CNF), sehingga memudahkan penguna dalam melakukan proses penyederhanaan CFG dan proses pembentukan normal Chomsky (CNF).

1.2Rumusan Masalah

Rumusan masalah dalam penelitian ini adalah bagaimana membuat suatu perangkat lunak yang dapat membantu user melakukan proses penyederhanaan tata bahasa bebas konteks (Context Free Grammar) ke dalam bentuk normal Chomsky?

1.3Batasan Masalah

Batasan masalah dari penelitian ini adalah:

a. Aplikasi ini dibuat menggunakan bahasa pemograman PHP.

b. Input grammar yang dimasukkan adalah tata bahasa tipe ke-2 (Context Free Grammar).

1.4Tujuan Penelitian

Tujuan dari penelitian ini adalah menghasilkan suatu perangkat lunak penyederhanaan tata bahasa bebas konteks (Context Free Grammar) ke dalam bentuk normal Chomsky.


(26)

5

1.5Manfaat Penelitian

Manfaat dari penelitian ini adalah:

a. Memudahkan pengguna (user) dalam melakukan penyederhanaan tata bahasa bebas konteks ke dalam bentuk normal Chomsky.

b. Memudahkan pengguna (user) dalam mempelajari, memahami serta mengetahui tahapan-tahapan dari suatu penyederhanaan tata bahasa bebas konteks (Context Free Grammar) ke dalam bentuk normal Chomsky.


(27)

BAB II

TINJAUAN PUSTAKA

2.1Bahasa Alami dan Bahasa Formal

Bahasa menurut kamus Websters adalah “the body of words and methods of combining words used and understood by a considerable community”, sedangkan menurut Kamus Besar Bahasa Indonesia (KBBI), bahasa adalah: 1) Sistem lambang bunyi yang arbitrer, yang digunakan oleh anggota suatu

masyarakat untuk bekerja sama, berinteraksi, dan mengidentifikasikan diri. 2) Percakapan (perkataan) yang baik, tingkah laku yang baik, sopan santun,

perkataan-perkataan yang dipakai oleh suatu bangsa.

Definisi di atas mengungkapkan bahwa suatu bahasa adalah kalimat atau perkataan. Kalimat dalam sebuah bahasa dibentuk dengan menggabungkan satu atau lebih kata-kata. Perhatian kita dalam pembentukan kalimat hanya tertuju pada sintaks atau bentuk kalimat, dan bukan pada semantic atau makna kalimatnya. Bahasa komunikasi yang digunakan oleh manusia, yaitu bahasa ucap seperti bahasa Indonesia, Inggris, Jerman, Spanyol dan sebagainya disebut sebagai bahasa alami atau bahasa natural (natural language). Sintaks bahasa alami sangat rumit dan tidak mungkin untuk menspesifikasiksan semua


(28)

7

aturan sintaksnya. Bahasa yang kaidah sintaksnya dapat dispesifikasikan secara matematis dengan baik disebut bahasa formal. Bahasa formal dapat didefinisikan secara abstraks sebagai “sistem matematik”. Kaidah sintaks dalam teori bahasa formal tidak hanya bermanfaat untuk studi linguistic bahasa alami seperti penterjemahan secara otomatis dari suatu bahasa ke bahasa lain, tetapi juga berguna untuk studi bahasa pemograman. (Merliana, 2005).

2.2Tata Bahasa

Tata bahasa disebut juga Grammar, yang didefinisikan secara formal sebagai kumpulan dari himpunan-himpunan variabel, simbol-simbol terminal, simbol awal yang dibatasi oleh aturan tata bahasa. Suatu tata bahasa dapat menghasilkan sejumlah stringdengan menerapkan aturan tata bahasa. Contoh tata bahasa:

αβ dapat dibaca: α menghasilkan β

Tata bahasa berfungsi untuk menentukan kebenaran dalam penulisan suatu statement, sesuai dengan aturan yang terdapat pada suatu program.

Tata bahasa merupakan salah satu bagian penting dalam pembuatan implementasi ini. Masukan yang tidak sesuai dengan tata bahasa yang telah ditetapkan menyebabkan proses tidak dapat dilakukan. Tata bahasa bebas konteks (Context Free Grammar) digunakan dalam implementasi ini. Tata bahasa bebas konteks yang digunakan menghasilkan aturan produksi. Aturan produksi ini merupakan pusat dari tata bahasa yang menspesifikasikan


(29)

8

bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lain (Merliana, 2005).

2.3Hirarki Tata Bahasa Menurut Chomsky

Hierarki tata bahasamenurut Noam Chomsky (dalam Hamzah, 2009), adalah 4 penggolongan tingkat bahasa yang ditampilkan dalam suatu hierarki, penggolongan tersebut adalah sebagai berikut:

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

Batasan pada tipe ini ialah ruas kiri (α) minimal mempunyai satu simbol non terminal, sedangkan ruas kanan (β) 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


(30)

9

c. Tipe 2 : Context-Free Grammar / CFG

Batasan pada tata bahasa bebas konteks yaitu ruas kiri (α) tepat mempunyai satu simbol non terminal, sedangkan ruas kanan (β) tidak dibatasi, sebagai contoh:

A  Bcde B  CFcgh

d. Tipe 3 : Regular Grammar / RG

Batasan untuk tipe regular adalah ruas kiri (α) tepat mempunyai satu simbol non terminal dan ruas kanan maksimal mempunyai satu simbol non terminal yang terletak paling kanan, jadi ruas kanan bisa memiliki simbol terminal yang tidak terbatas, sebagai contoh:

A  aaa B  aaB

Diagram Hierarki Tata Bahasa (Grammar) menurut Noam Chomsky (dalam Hamzah, 2009) ditunjukkan pada Gambar 1.

Gambar 1. Hierarki Tata Bahasa (Grammar) Menurut Noam Chomsky (Hamzah, 2009).


(31)

10

2.4Tata Bahasa Bebas Konteks (Context Free Grammar)

Tata bahasa bebas kontext (Context Free Grammar), biasa disingkat dengan CFG memiliki batasan sebagai berikut:

Tata-bahasa Tipe 2 (Context Free Grammar): G (, N, S, P), adalah tata bahasa tipe-1 yang memiliki aturan produksi: α → β dengan tambahan batasan:

α: hanya terdiri dari 1 simbol non terminal saja, atau α  N β: tidak dibatasi, atau : {(N)*

Perbedaan antara bahasa bebas konteks dengan bahasa regular adalah pada string sisi kanan tanda panah untuk bahasa regular harus satu terminal tunggal atau terminal tunggal diikuti non terminal sedangkan untuk bahasa bebas konteks tidak dibatasi. Contoh:

Grammar dengan aturan : Sa|aA

AbB B

Adalah tata bahasa regularGrammar dengan aturan:

Sa|aA AbB | AA B

Adalah tata bahasa bebas konteks karena ada aturan produksi: AAA (Hamzah, 2009).


(32)

11

2.5Penyederhanaan

Tujuan dari penyederhanaan adalah melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak berarti.

Contoh 1:

S → AB | a A→ a

 Aturan produksi S → AB tidak berarti karena B tidak memiliki penurunan

Contoh 2: S→A A→B B→C C→D D→ a | A

 Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S→a,

 produksi D → A juga menyebabkan kerumitan.

Cara Penyederhanaan:

1. Penghilangan produksi useless (tidak berguna). 2. Penghilangan produksi unit.

3. Penghilangan produksi epsilon (ε). (Rustamaji, 2004).


(33)

12

2.5.1 Penghilangan Produksi Useless

Produksi useless didefinisikan sebagai:

 Produksi yang memuat simbol variabel yang tidak memiliki penurunan yang menghasilkan terminal-terminal seluruhnya.  Produksi yang tidak pernah dicapai dengan penurunan apapun dari

simbol awal, sehingga produksi itu redundan (berlebih).

Contoh:

S → aSa | Abd | Bde A → Ada

B→ BBB | a

Maka:

1) Simbol variabel A tidak memiliki penurunan yang menuju terminal, sehingga bisa dihilangkan.

2) Konsekuensi no (1), aturan produksi S → Abd tidak memiliki penurunan.

Penyederhanaan menjadi: S → aSa | Bde B → BBB | a (Rustamaji, 2004).


(34)

13

2.5.2 Penghilangan Produksi Unit

 Produksi dimana ruas kiri dan kanan aturan produksi hanya berupa satu simbol variabel, misalkan: A → B, C → D.

 Keberadaannya membuat tata bahasa memiliki kerumitan yang tak perlu.

 Penyederhanaan dilakukan dengan melakukan penggantian aturan produksi unit.

Contoh:

S → Sb S → C C → D C → ef D → dd

Penggantian dilakukan berturutan mulai dari aturan produksi yang paling dekat menuju ke penurunan terminal-terminal (‘=>’ dibaca ‘menjadi’):

C → D => C → dd S → C => S → dd | ef

Aturan produksi setelah penyederhanaan: S → Sb

S → dd | ef (Rustamaji, 2004).


(35)

14

2.5.3 Penghilangan Produksi Epsilon (ε)

Produksi ε adalah produksi dalam bentuk α→ε

atau bisa dianggap sebagai produksi kosong. Penghilangan produksi ε dilakukan dengan melakukan penggantian produksi yang memuat variabel yang bisa menuju produksi ε, atau biasa disebut nullable.

Prinsip penggantiannya bisa dilihat kasus berikut: S → bcAd

A →ε

A nullable serta A→ ε satu-satunya produksi dari A, maka variabel A bisa ditiadakan, hasil penyederhanaan tata bahasa bebas konteks menjadi:

S → bcd Tetapi bila kasusnya:

S → bcAd A → bd | ε

A nullable, tapi A→ ε bukan satu-satunya produksi dari A.

Hasil penyederhanaan:

S → bcAd | bcd A → bd (Rustamaji, 2004).


(36)

15

2.6Bentuk Normal Chomsky

Bentuk normal Chomsky / Chomsky Normal Form (CNF) merupakan salah satu bentuk normal yang sangat berguna untuk tata bahasa bebas konteks (CFG). Bentuk normal Chomsky dapat dibuat dari sebuah tata bahasa bebas konteks yang telah mengalami penyederhanaan yaitu penghilangan produksi useless, unit, dan ε. Suatu tata bahasa bebas konteks dapat dibuat menjadi bentuk normal Chomsky dengan syarat tata bahasa bebas konteks tersebut:

 Tidak memiliki produksi useless  Tidak memiliki produksi unit  Tidak memiliki produksi epsilon (ε)

Aturan produksi dalam bentuk normal Chomsky ruas kanannya tepat berupa sebuah terminal atau dua variabel. Misalkan:

A → BC A → b B → a C → BA | d

2.6.1 Proses Pembentukan Normal Chomsky

Langkah-langkah pembentukan bentuk normal Chomsky secara umum sebagai berikut:

 Biarkan aturan produksi yang sudah dalam bentuk normal Chomsky.  Lakukan penggantian aturan produksi yang ruas kanannya memuat


(37)

16

 Lakukan penggantian aturan produksi yang ruas kanannya memuat > 2 simbol variabel.

 Penggantian-penggantian tersebut bisa dilakukan berkali-kali sampai akhirnya semua aturan produksi dalam bentuk normal Chomsky.

 Selama dilakukan penggantian, kemungkinan akan muncul aturan-aturan produksi baru, dan juga memunculkan simbol-simbol variabel baru. (Rustamaji, 2004).

Tahapan-tahapan dalam pembentukan bentuk normal Chomsky terdapat pada Gambar 2.

Gambar 2. Tahapan-Tahapan Pembentukan Bentuk Normal Chomsky (Rustamaji, 2004).

Contoh, tata bahasa bebas konteks (kita anggap tata bahasa bebas konteks ini sudah mengalami penyederhanaan):

S → bA | aB A → bAA | aS | a B → aBB | bS | b


(38)

17

Aturan produksi yang sudah dalam bentuk normal Chomsky: A → a

B → b

Penggantian aturan produksi yang belum bentuk normal Chomsky (‘=>’ bisa dibaca berubah menjadi):

S → bA => S → P1A S → aB => S → P1B

A → bAA => A → P1AA => A → P1P3 A → aS => A → P2S

B → aBB => B → P2BB => B → P2P4 B → bS => B → P1S

Aturan produksi dan simbol variabel baru yang terbentuk: P1 → b

P2 → a P3 → AA P4 → BB

Hasil akhir aturan produksi dalam bentuk normal Chomsky: A → a

B → b S → P1A S → P2B


(39)

18

A → P1P3 A → P2S B → P2P4 B → P1S P1 → b P2 → a P3 → AA P4 → BB (Rustamaji, 2004).

2.7Metode Pengembangan Sistem

Metodologi pengembangan sistem adalah metode-metode, prosedur-prosedur, konsep-konsep pekerjaan, aturan-aturan dan postulat-postulat yang akan digunakan untuk mengembangkan suatu sistem informasi. Pengembangan sistem didefinisikan sebagai aktivitas untuk menghasilkan sistem informasi berbasis komputer untuk menyelesaikan persoalan (problem) organisasi atau memanfaatkan kesempatan yang timbul.

Model air terjun (waterfall) biasa juga disebut siklus hidup perangkat lunak. Metode pengembangan sistem waterfall mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya.


(40)

19

Tahapan-tahapan dalam metode pengembangan sistem waterfall terdapat pada Gambar 3 (Jogiyanto, 2010).

Gambar 3. Tahapan Metode Waterfall (Jogiyanto, 2010).

Keterangan Menurut gambar di atas alur dari Model Waterfall sebagai berikut: 1. Rekayasa perangkat lunak (system engineering), melakukan

pengumpulan data dan penetapan kebutuhan semua elemen sistem. 2. Requirements analysis, melakukan analisis terhadap permasalahan

yang dihadapi dan menetapkan kebutuhan perangkat lunak, fungsi performsi.

3. Design, menetapkan domain informasi untuk perangkat lunak, fungsi dan interfacing.

4. Implementasi, pengkodean yang mengimplementasikan hasil desain ke dalam kode atau bahasa yang dimengerti oleh mesin komputer dengan menggunakan bahasa pemprograman tertentu.

5. Pengujian, kegiatan untuk melakukan pengetesan program yang sudah dibuat apakah sudah benar atau belum di uji dengan cara manual, jika testing sudah benar maka program boleh digunakan.


(41)

20

6. Perawatan, menangani perangkat lunak yang sudah selesai supaya dapat berjalan lancar dan terhindar dari gangguan-gangguan yang dapat menyebabkan kerusakan.

2.8PHP (Hypertext Preprocessor)

PHP (Hypertext Preprocessor) merupakan bahasa pemrograman yang berbentuk scripting, sistem kerja dari program ini adalah sebagai interpreter bukan sebagai compiler (Nugroho, 2004). Interpreter menurut Kadir adalah perintah menerjemahkan statement program, sedangkan bahasa compiler adalah semua perintah di dalam program yang diterjemahkan terlebih dahulu, baru kemudian semuanya dijalankan” (Kadir, 2005).

PHP adalah salah satu bahasa pemograman skrip yang dirancang untuk membangun aplikasi web. Program yang ditulis dengan PHP akan di-parsing di dalam web server oleh interpreter PHP dan diterjemahkan ke dalam dokumen HTML ketika dipanggil web browser, yang selanjutnya akan ditampilkan kembali ke web browser. PHP dikatakan sebagai bahasa sisi server (server side) karena pemrosesan program PHP dilakukan di lingkungan web server. Kode PHP tidak akan terlihat pada saat user memilih perintah “View Source” pada web browser yang mereka gunakan (Raharjo dkk, 2014).

PHP adalah bahasa yang dirancang untuk mudah diletakkan didalam kode HTML. Kode PHP yang menyatu dengan kode HTML banyak sekali dijumpai. Kode PHP diawali dengan tag <?php dan diakhiri dengan tag ?>. Tag tersebut


(42)

21

dapat diganti dengan <? dan >? dengan cara melakukan konfigurasi terhadap file php.ini untuk mengijinkan pengguna tag pendek (short tag) dengan mengubah nilai short_open_tag menjadi on.

Contoh kode PHP yang sangat sederhana.

Perintah echo di dalam PHP berguna untuk mencetak nilai, baik teks maupun numerik, ke layar web browser, selain echo, dapat juga menggunakan perintah print, sehingga kode diatas dapat juga ditulis seperti berikut.

Setiap perintah atau statement di dalam kode PHP harus diakhiri dengan tanda titik koma atau semicolon (;) (Raharjo dkk, 2014).

Kelebihan yang dimiliki oleh pemrograman PHP adalah dapat disisipkan ke dalam tag-tag HTML, namun dengan kelebihan yang dimiliki, PHP juga mampu berdiri sendiri tanpa berada di sela-sela program lain. Contoh program PHP yang berada pada tag HTML sebagai berikut:

<?php

echo “Hello World”;

?>

<?php

print “Hello World”;


(43)

22

(Raharjo dkk, 2014).

<html> <head>

<title>Kode PHP dalam kode HTML</title> </head>

<body>

<p>Paragraf 1: Teks dari kode HTML</p>

<!-- Menyisipkan kode PHP dalam kode HTML --> <?php

echo “<p>Paragaraf 2: Teks dari kode PHP</p>”; ?>

<!—- akhir kode PHP -->

<p>Paragraf 3: Teks dari kode HTML</p>

</body> </html>


(44)

BAB III

METODE PENELITIAN

3.1Metode Penelitian

Metode penelitian yang dilakukan bertujuan untuk mengatur dan mempermudah pelaksanaan penelitian. Tahap-tahap penelitian dalam pengembangan aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky (CNF) terdapat pada Gambar 4.

Gambar 4. Tahap-tahap Penelitian. Flowchart Penyederhanaan CFG dan Pembentukan Normal Chomsky (CNF)

Aplikasi Penyederhanaan Tata Bahasa Bebas Konteks (CFG) Dalam Bentuk

Normal Chomsky (CNF) Metode Pengembangan Sistem


(45)

24

3.2Tempat dan Waktu

Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung. Waktu penelitian dilakukan pada semester genap tahun ajaran 2014/2015.

3.3Spesifikasi Hardware dan Software yang Digunakan

Penelitian ini menggunakan satu unit notebook dengan spesifikasi hardware dan software sebagai berikut.

1. Spesifikasi hardware yang digunakan dalam penelitian ini adalah sebagai berikut.

1) Processor Intel(R) Core(TM) i5-2450M CPU @ 2,50GHz. 2) RAM DDR2 4 GB.

3) HDD 500 GB.

4) VGA NVIDIA GEFORCE 610M 2GB.

2. Spesifikasi software yang digunakan adalah sebagai berikut. 1) Sistem Operasi Windows 8.1 Pro 64 bit.

2) Aplikasi local server XAMPP. 3) Notepad++.


(46)

25

3.4Flowchart Penyederhanaan Tata Bahasa Bebas Konteks (CFG)

Tahap pertama dalam penelitian ini yaitu membuat flowchart penyederhanaan tata bahasa bebas konteks (CFG) berdasarkan algoritma penyederhanaan CFG. Flowchart penyederhanaan CFG terdapat pada Gambar 5.

Gambar 5. Flowchart Penyederhanaan CFG.

Algoritma penyederhanaan tata bahasa bebas konteks (CFG) adalah sebagai berikut.

1. Masukkan jumlah produksi yang akan disederhanakan.

2. Tampilkan field untuk menginput produksi sesuai jumlah produksi yang dimasukkan pengguna.


(47)

26

4. Cek produksi/CFG, apakah CFG mengandung produksi epsilon. - Jika ya, ke langkah 5.

- Jika tidak, ke langkah 6.

5. Hilangkan produksi epsilon (" ^ "). Misal:

A -> AB, B -> b | ^ menjadi A -> AB, B -> b.

B -> ^ dihilangkan karena merupakan produksi epsilon. 6. Cek produksi/CFG, apakah CFG mengandung produksi unit.

- Jika ya, ke langkah 7. - Jika tidak, ke langkah 8.

7. Substitusi dengan produksi turunannya yang sama. Misal:

A -> B, B -> c menjadi A -> c, B -> c. A -> B disubstitusikan menjadi A -> c.

8. Cek produksi/CFG, apakah CFG mengandung produksi useless. - Jika ya, ke langkah 9.

- Jika tidak, ke langkah 10. 9. Hilangkan produksi useless.

Misal:

S -> ABC | AB, A -> a, B -> b menjadi S -> AB, A -> a, B -> b. S -> ABC dihilangkan karena C merupakan produksi useless. 10.Tampilkan hasil produksi/CFG yang sudah disederhanakan. 11.Selesai.


(48)

27

3.5Flowchart Pembentukan Normal Chomsky (CNF)

Tahap selanjutnya dalam penelitian ini yaitu membuat flowchart pembentukan normal Chomsky (CNF) berdasarkan algoritma pembentukan normal Chomsky. Flowchart pembentukan normal Chomsky terdapat pada Gambar 6.

Gambar 6. Flowchart Pembentukan Normal Chomsky (CNF).

Algoritma Aplikasi Penyederhanaan Tata Bahasa Bebas Konteks (CFG) dalam Bentuk Normal Chomsky (CNF) adalah sebagai berikut.

Inisiasi: Set NC =

ø


(49)

28

1. Masukkan CFG yang sudah disederhanakan.

2. Cek apakah semua produksi sudah dalam bentuk CNF. a. Jika ya, ke langkah 9.

b. Jika tidak, lanjut ke langkah 3.

3. Cek apakah ada produksi yang sudah dalam bentuk CNF. a. Jika ada, lanjut ke langkah 4.

b. Jika tidak ada, langsung ke langkah 5.

4. Pisahkan CFG yang sudah dalam bentuk CNF dengan CFG yang belum CNF.

a. Jika CFG sudah dalam bentuk CNF, ke langkah 9. b. Jika CFG belum dalam bentuk CNF, lanjut ke langkah 5.

5. Cek apakah string produksi yang ruas kanan memuat simbol terminal. a. Jika ya, ke langkah 6.

b. Jika tidak, langsung ke langkah 7.

6. Ubah simbol terminal menjadi variabel baru berupa variabel non terminal. 7. Cek panjang string produksi ruas kanan.

a. Jika panjang string = 2 ke langkah 9. b. Jika panjang string >2, ke langkah 8.

8. Lakukan penggantian 2 variabel dari belakang secara berulang-ulang hingga tersisa 2 variabel non terminal.

9. Masukkan produksi ke himpunan NC.

10.Tampilkan hasil produksi yang sudah dalam bentuk CNF, serta variabel baru yang dihasilkan selama proses penyederhanaan.


(50)

29

3.6Metode Pengembangan Sistem

Metode pengembangan sistem yang digunakan dalam penelitian ini adalah metode Waterfall / Linear Squential Model. Metode ini bersifat sistematis atau secara berurutan dalam membangun suatu sistem. Tahapan pengembangan waterfall dalam pembuatan aplikasi peyederhanaan tata bahasa bebas konteks ke bentuk normal Chomsky antara lain, system engineering, requirement analysis, design, coding, testing, maintenance.

3.6.1 System Engineering

Tahap pertama dilakukan pengumpulan data dan penetapan kebutuhan semua elemen sistem. Pengumpulan data dilakukan dengan mendefinisikan tentang sistem atau aplikasi yang akan dikembangkan serta mendefinisikan manfaat dan tujuan pengembangan sistem atau aplikasi tersebut. Penelitian ini akan mengangkat tema tentang penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky (CNF).

3.6.2 Analisis / Requirements Analysis

Tahap analisis/requirement analysis adalah melakukan analisis terhadap permasalahan-permasalahan yang dihadapi, analisis perangkat lunak dan perangkat keras yang dibutuhkan dalam pembuatan aplikasi, analisis fungsi-fungsi yang dibutuhkan serta kebutuhan-kebutuhan lain dalam pembuatan aplikasi ini. Domain informasi dari software, seperti fungsi-fungsi yang dibutuhkan, user interface, dan sebagainya, harus dimengerti


(51)

30

untuk mengetahui sifat dari aplikasi yang akan dibuat. Tujuan analisis adalah agar menemukan kelemahan-kelemahan sistem atau aplikasi yang akan dibuat sehingga dapat diusulkan perbaikannya.

3.6.3 Perancangan / Design

Perancangan atau design merupakan tahap penerjemahan dari kebutuhan atau data yang telah dianalisis menjadi bentuk yang mudah dimengerti oleh pemakai (user). Desain dari sistem pada penelitian ini digambarkan dengan model UML berupa use case diagram dan activity diagram. Desain disini merupakan representasi dari sistem atau aplikasi guna mempermudah pengembang dalam membangun sistem.

3.6.3.1Use Case Diagram

Use case diagram pada aplikasi ini terdiri dari satu aktor dan 7 use case. Aktor yaitu sebagai pengguna aplikasi penyederhanaan tata bahasa bebas konteks dalam bentuk normal Chomsky. Tujuh use case yaitu input CFG, penyederhanaan CFG, algoritma penyederhanaan CFG, menampilkan hasil penyederhanaan CFG, pembentukan CNF, algoritma pembentukan CNF, menampilkan hasil pembentukan CNF. Hubungan antara pengguna dan use case tersebut adalah mula-mula pengguna memasukkan tata bahasa bebas konteks (CFG) sebagai input, setelah input dimasukkan dengan benar pengguna dapat melakukan penyederhanaan CFG menggunakan algoritma penyederhanaan CFG.


(52)

31

Aplikasi akan menampilkan hasil penyederhanaan CFG. Hasil penyederhanaan CFG tersebut digunakan pengguna untuk melakukan pembentukan CNF menggunakan algoritma pembentukan CNF, sehingga aplikasi akan menghasilkan suatu hasil akhir berupa tata bahasa bebas konteks (CFG) yang sudah dalam bentuk normal Chomsky (CNF). Use case diagram aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky (CNF) terdapat pada Gambar 7.

Gambar 7. Use Case Diagram Aplikasi Penyederhanaan Tata Bahasa Bebas Konteks Dalam Bentuk Normal Chomsky (CNF).

3.6.3.2Activity Diagram

Activity diagram aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky (CNF) prosedurnya dimulai dengan memasukkan tata bahasa bebas konteks (CFG) dilakukan oleh pengguna. Tahap selanjutnya, aplikasi akan memeriksa apakah CFG


(53)

32

yang dimasukkan sudah benar, jika CFG yang dimasukkan belum benar, pengguna harus mengulangi memasukkan CFG, jika CFG yang dimasukkan sudah benar, maka aplikasi akan melakukan penyederhanaan CFG menggunakan algoritma penyederhanaan CFG, ketika pengguna mengklik tombol ”Sederhanakan”. Tahap selanjutnya aplikasi akan menampilkan hasil penyederhanaan CFG. Hasil penyederhanan CFG tersebut digunakan aplikasi untuk melakukan pembentukan CNF, ketika pengguna mengklik tombol ”Convert ke CNF”. Tahap akhir ialah aplikasi akan menampilkan hasil akhir tata bahasa bebas konteks (CFG) yang sudah dalam bentuk normal Chomsky (CNF). Activity diagram aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky (CNF) terdapat pada Gambar 8.

Gambar 8. Activity Diagram Aplikasi Penyederhanaan Tata Bahasa Bebas Konteks Dalam Bentuk Normal Chomsky (CNF).


(54)

33

3.6.3.3Desain Antar Muka Sistem

Rancangan desain antar muka sistem (interface) dari aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky (CNF) adalah sebagai berikut.

1. Desain Halaman Utama (Home)

Rancangan desain halaman utama aplikasi terdiri dari 4 form yaitu form input jumlah produksi, form input produksi, form hasil penyederhanaan CFG dan form hasil pembentukan normal Chomsky (CNF).

a. Form input Jumlah Produksi

Form input jumlah produksi berisi sebuah textfield dan tombol ok. Textfield digunakan pengguna untuk melakukan input jumlah produksi/CFG yang ingin disederhanakan. Tombol ok digunakan pengguna ketika pengguna mengisi field input jumlah produksi dengan benar. Desain form input jumlah produksi halaman utama (Home) aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 9.

Gambar 9. Desain Form input Jumlah Produksi. HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Masukkan Jumlah Produksi : OK


(55)

34

b. Form input Produksi/CFG

Form input produksi/CFG berisi textfield sesuai dengan jumlah produksi yang dimasukkan di form input jumlah produksi dan dua buah tombol yaitu tombol ”Sederhanakan” dan tombol ”Reset. Form input produksi digunakan untuk memasukkan produksi/CFG yang ingin disederhanakan, setelah pengguna memasukkan produksi/CFG pengguna dapat menekan tombol “Sederhanakan”. Tombol “Reset” digunakan untuk mengulang input apabila terjadi kesalahan dalam melakukan input. Desain form input produksi/CFG halaman utama (Home) aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 10.

Gambar 10. Desain Form input Produksi/CFG. HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Masukkan Jumlah Produksi :

Masukkan Tata Bahasa Bebas Konteks (CFG) =>

=> OK


(56)

35

c. Form Hasil Penyederhanaan CFG

Form hasil penyederhanaan CFG merupakan form yang digunakan untuk menampilkan hasil dari penyederhanaan CFG setelah pengguna mengklik tombol ”sederhanakan” di form input produksi/CFG. Terdapat tombol ”Convert ke CNF” yang berfungsi untuk melakukan pembentukan normal Chomsky (CNF). Desain form hasil penyederhanaan CFG halaman utama (Home) aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 11.

Gambar 11. Desain Form Hasil Penyederhanaan CFG.

d. Form Hasil Pembentukan Normal Chomsky

Form hasil pembentukan normal Chomsky merupakan form yang digunakan untuk menampilkan hasil dari pembentukan normal Chomsky setelah pengguna mengklik tombol ”Convert ke CNF” di form hasil penyederhanaan CFG. Desain form hasil

HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Hasil Penyederhanaan CFG


(57)

36

pembentukan normal Chomsky (CNF) halaman utama (Home) aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 12.

Gambar 12. Desain Form Hasil Pembentukan Normal Chomsky (CNF).

2. Desain Halaman Gambaran Umum

Desain halaman gambaran umum merupakan halaman yang berisi mengenai informasi tentang gambaran umum aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky. Desain halaman gambaran umum aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 13.

HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan


(58)

37

Gambar 13. Desain Halaman Gambaran Umum

3. Desain Halaman Aturan Chomsky

Desain halaman aturan Chomsky merupakan halaman yang berisi mengenai informasi tentang aturan pembentukan normal Chomsky. Desain halaman aturan Chomsky aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 14.

Gambar 14. Desain Halaman Aturan Chomsky. HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Informasi tentang gambaran umum aplikasi

HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Informasi tentang Aturan pembentukan


(59)

38

4. Desain Halaman Bantuan

Desain halaman bantuan merupakan halaman yang berisi informasi bantuan tentang tata cara penggunaan aplikasi. Desain halaman bantuan pada aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 15.

Gambar 15. Desain Halaman Bantuan.

3.6.4 Implementasi / Coding

Tahap implementasi merupakan proses penerjemahan data atau pemecahan masalah yang dirancang kedalam bahasa pemrograman. Penelitian ini menggunakan bahasa pemograman PHP dengan bantuan aplikasi notepad++ dan XAMPP.

3.6.5 Pengujian / Testing

Tahap berikutnya adalah pengujian terhadap aplikasi tersebut. Pengujian aplikasi dilakukan untuk memastikan bahwa aplikasi yang dibuat telah

HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Informasi Bantuan Dalam menggunakan aplikasi


(60)

39

sesuai dengan desainnya dan semua fungsi dapat dipergunakan dengan baik tanpa ada kesalahan. Penelitian ini akan melakukan pengujian menggunakan metode pengujian Black box testing, dimana dalam pengujian ini akan menggunakan teknik pengujian equivalen partitioning.

3.6.6 Operasi dan Perawatan / Maintenance

Tahap terakhir ialah tahap maintenance, dimana pada tahap ini aplikasi sudah dapat dioperasikan oleh user serta dilakukan perawatan dan pemeliharaan agar aplikasi dapat beroperasi dengan lancar serta terhindar dari gangguan-gangguan yang dapat menyebabkan kerusakan.


(61)

BAB V

KESIMPULAN DAN SARAN

5.1Kesimpulan

Dari penelitian yang telah dilakukan dapat disimpulkan sebagai berikut : 1. Aplikasi penyederhanaan tata bahasa bebas konteks ke dalam bentuk

normal Chomsky telah berhasil dibangun untuk membantu pengguna dalam melakukan penyederhanaan tata bahasa bebas konteks (CFG) dan mengubah CFG yang sudah disederhanakan ke dalam bentuk normal Chomsky (CNF).

2. Penyederhanaan tata bahasa bebas konteks (CFG) memiliki tiga proses yang harus dilakukan secara berurut yaitu, penghilangan produksi epsilon, penghilangan produksi unit, dan produksi useless.

3. Setiap produksi unit selesai di subtitusi akan dihasilkan produksi useless. 4. Bentuk normal Chomsky hanya dapat dilakukan apabila tata bahasa bebas

konteks (CFG) sudah disederhanakan.

5. Selama proses pembentukan normal Chomsky dimungkinkan akan menghasilkan aturan produksi dan simbol variabel baru.


(62)

82

5.2Saran

Saran yang dapat diberikan kepada pengembang penelitian ini lebih lanjut adalah sebagai berikut :

1. Aplikasi dapat dikembangkan dengan menambahkan jumlah data simbol non terminal dan simbol terminal yang lebih besar.

2. Aplikasi dapat dikembangkan dengan menggunakan bahasa pemograman lain selain bahasa pemograman PHP.


(63)

DAFTAR PUSTAKA

Albert, J., Giammarresi, D dan Wood, D. 2000. Normal Form Algorithms Extended Context-Free Grammars. Theoretical Computer Science. Vol. 267. pp. 35-47. Pok Fu Lam. Hongkong.

Ang, M. L. S. 2004. CFG to Chomsky Normal Form (CNF) Converter. Dissertation. Ateneo de Manila University: Quezon.

Chomsky, N. 1959. On Certain Formal Properties of Grammars. Information and Control. Vol. 2. No. 2. pp. 137-167. New Jersey. USA.

Firsov, D dan Uustalu, T. 2015. Certified Normalization of Context-Free Grammars. Proceedings of the 2015 ACM Conference on Certified Programs and Proof (CPP’15’). New York. USA.

Hamzah, A. 2009. Teori Bahasa Dan Automata. Yogyakarta: Aprind Press. Hutomo, A.2014. Aplikasi Penyederhanaan Context Free Grammar. Skripsi, Unila.

Bandar Lampung.

Jogiyanto. 2010. Analisis & Disain. Yogyakarta: Penerbit Andi.

Kadir, Abdul, dan Hariyanto. 2005. Algoritma Pemrograman Menggunakan C++. Yogyakarta: Andi Offset.

Merliana, M. 2005. Perangkat Lunak Untuk Pembelajaran Penyederhanaan Tata Bahasa bebas Konteks dan Pengubahan ke dalam Bentuk Normal Greibach Dengan Metode Subtitusi. Skripsi, Unikom. Bandung.

Nugroho, B. 2004. Aplikasi Pemrograman Web Dinamis Dengan PHP dan MySQL. Yogyakarta: Penerbit Gava Media.

Raharjo, B., I. Heryanto dan E. Rosdiana K. 2014. Modul Pemograman WEB (HTML, PHP, & MySQL) Revisi Kedua. Bandung: Modula.

Rustamaji, H. C. 2004. Materi Kuliah Teori Bahasa Dan Auto mata. Modul Kuliah. Universitas Pembangunan Nasional “Veteran”. Yogyakarta.


(1)

37

Gambar 13. Desain Halaman Gambaran Umum

3. Desain Halaman Aturan Chomsky

Desain halaman aturan Chomsky merupakan halaman yang berisi mengenai informasi tentang aturan pembentukan normal Chomsky. Desain halaman aturan Chomsky aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 14.

Gambar 14. Desain Halaman Aturan Chomsky. HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Informasi tentang gambaran umum aplikasi

HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Informasi tentang Aturan pembentukan


(2)

4. Desain Halaman Bantuan

Desain halaman bantuan merupakan halaman yang berisi informasi bantuan tentang tata cara penggunaan aplikasi. Desain halaman bantuan pada aplikasi penyederhanaan tata bahasa bebas konteks (CFG) dalam bentuk normal Chomsky terdapat pada Gambar 15.

Gambar 15. Desain Halaman Bantuan.

3.6.4 Implementasi / Coding

Tahap implementasi merupakan proses penerjemahan data atau pemecahan masalah yang dirancang kedalam bahasa pemrograman. Penelitian ini menggunakan bahasa pemograman PHP dengan bantuan aplikasi notepad++ dan XAMPP.

3.6.5 Pengujian / Testing

Tahap berikutnya adalah pengujian terhadap aplikasi tersebut. Pengujian aplikasi dilakukan untuk memastikan bahwa aplikasi yang dibuat telah

HEADER

FOOTER Menu

Home

Gambaran Umum Aturan Chomsky Bantuan

Informasi Bantuan Dalam menggunakan aplikasi


(3)

39

sesuai dengan desainnya dan semua fungsi dapat dipergunakan dengan baik tanpa ada kesalahan. Penelitian ini akan melakukan pengujian menggunakan metode pengujian Black box testing, dimana dalam pengujian ini akan menggunakan teknik pengujian equivalen partitioning.

3.6.6 Operasi dan Perawatan / Maintenance

Tahap terakhir ialah tahap maintenance, dimana pada tahap ini aplikasi sudah dapat dioperasikan oleh user serta dilakukan perawatan dan pemeliharaan agar aplikasi dapat beroperasi dengan lancar serta terhindar dari gangguan-gangguan yang dapat menyebabkan kerusakan.


(4)

BAB V

KESIMPULAN DAN SARAN

5.1Kesimpulan

Dari penelitian yang telah dilakukan dapat disimpulkan sebagai berikut : 1. Aplikasi penyederhanaan tata bahasa bebas konteks ke dalam bentuk

normal Chomsky telah berhasil dibangun untuk membantu pengguna dalam melakukan penyederhanaan tata bahasa bebas konteks (CFG) dan mengubah CFG yang sudah disederhanakan ke dalam bentuk normal Chomsky (CNF).

2. Penyederhanaan tata bahasa bebas konteks (CFG) memiliki tiga proses yang harus dilakukan secara berurut yaitu, penghilangan produksi epsilon, penghilangan produksi unit, dan produksi useless.

3. Setiap produksi unit selesai di subtitusi akan dihasilkan produksi useless. 4. Bentuk normal Chomsky hanya dapat dilakukan apabila tata bahasa bebas

konteks (CFG) sudah disederhanakan.

5. Selama proses pembentukan normal Chomsky dimungkinkan akan menghasilkan aturan produksi dan simbol variabel baru.


(5)

82

5.2Saran

Saran yang dapat diberikan kepada pengembang penelitian ini lebih lanjut adalah sebagai berikut :

1. Aplikasi dapat dikembangkan dengan menambahkan jumlah data simbol non terminal dan simbol terminal yang lebih besar.

2. Aplikasi dapat dikembangkan dengan menggunakan bahasa pemograman lain selain bahasa pemograman PHP.


(6)

DAFTAR PUSTAKA

Albert, J., Giammarresi, D dan Wood, D. 2000. Normal Form Algorithms Extended Context-Free Grammars. Theoretical Computer Science. Vol. 267. pp. 35-47. Pok Fu Lam. Hongkong.

Ang, M. L. S. 2004. CFG to Chomsky Normal Form (CNF) Converter. Dissertation. Ateneo de Manila University: Quezon.

Chomsky, N. 1959. On Certain Formal Properties of Grammars. Information and Control. Vol. 2. No. 2. pp. 137-167. New Jersey. USA.

Firsov, D dan Uustalu, T. 2015. Certified Normalization of Context-Free Grammars. Proceedings of the 2015 ACM Conference on Certified Programs and Proof (CPP’15’). New York. USA.

Hamzah, A. 2009. Teori Bahasa Dan Automata. Yogyakarta: Aprind Press. Hutomo, A.2014. Aplikasi Penyederhanaan Context Free Grammar. Skripsi, Unila.

Bandar Lampung.

Jogiyanto. 2010. Analisis & Disain. Yogyakarta: Penerbit Andi.

Kadir, Abdul, dan Hariyanto. 2005. Algoritma Pemrograman Menggunakan C++. Yogyakarta: Andi Offset.

Merliana, M. 2005. Perangkat Lunak Untuk Pembelajaran Penyederhanaan Tata Bahasa bebas Konteks dan Pengubahan ke dalam Bentuk Normal Greibach Dengan Metode Subtitusi. Skripsi, Unikom. Bandung.

Nugroho, B. 2004. Aplikasi Pemrograman Web Dinamis Dengan PHP dan MySQL. Yogyakarta: Penerbit Gava Media.

Raharjo, B., I. Heryanto dan E. Rosdiana K. 2014. Modul Pemograman WEB (HTML, PHP, & MySQL) Revisi Kedua. Bandung: Modula.

Rustamaji, H. C. 2004. Materi Kuliah Teori Bahasa Dan Auto mata. Modul Kuliah. Universitas Pembangunan Nasional “Veteran”. Yogyakarta.