• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN SISTEM"

Copied!
58
0
0

Teks penuh

(1)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem adalah teknik pemecahan masalah dengan menguraikan masalah di dalam suatu sistem menjadi komponen-komponen yang lebih kecil untuk memudahkan memahami masalah dan seberapa baik sebuah sistem tersebut bekerja.[15]

3.1.1 Analisis Masalah

Masalah yang dihadapi dalam membangun aplikasi ini tidak hanya dikarenakan jumlah kosakata Bahasa Inggris yang begitu banyak, dan pola kalimat yang variatif, tetapi juga meliputi masalah-masalah berikut ini.

1. Pemeriksaan kalimat dilakukan terhadap input yang lebih dari satu kalimat, sehingga diperlukan teknik untuk mengenali dan memisahkan antara satu kalimat dengan kalimat yang lain.

2. Setelah input dipisahkan per kalimat, kemudian diperlukan teknik agar masing-masing kalimat dipisahkan menjadi komponen yang lebih kecil, yaitu kata.

(2)

3. Bagaimana menggunakan kamus sehingga dapat memeriksa apakah suatu kata dianggap benar atau salah penulisannya.

Dari beberapa pernyataan masalah di atas maka dibuatlah solusi, kemudian dijadikan sebagai input untuk menganalisa sebab dan akibat. Tujuannya adalah untuk mengetahui seberapa baik solusi yang dirancang terhadap sistem secara langsung.

3.1.2 Cause and Effect Diagram

Cause and Effect Diagram disebut juga fishbone diagram adalah teknik yang digunakan untuk memperlajari, menentukan sebab, dan akibat dari masalah jika suatu solusi diterapkan, seperti yang dituangkan pada gambar 3.1.[15]

 

Gambar 3.1 Analisis masalah dalam membangun aplikasi pengoreksi kalimat

(3)

Berdasarkan gambar 3.1 dapat dilihat bahwa masalah dipengaruhi oleh empat faktor primer, yaitu people, method, material, dan machine. Kemudian faktor-faktor primer tersebut dijabarkan menjadi beberapa faktor-faktor sekunder. Penjabaran faktor-faktor tersebut dilakukan sampai penyebab masalah diketahui.

3.1.3 Analisis Kebutuhan Sistem

Analisis kebutuhan suatu sistem dikelompokkan menjadi 2 bagian yaitu, analisis fungsional dan analisis nonfungsional.[15]

3.1.3.1Kebutuhan Fungsional Sistem

Fungsional sistem adalah aktifitas dan pelayanan yang harus dimiliki oleh sebuah sistem berupa input, proses, output, maupun penyimpanan data. Berdasarkan kebutuhan sistem secara fungsional, aplikasi yang dirancang harus mampu memenuhi kebutuhan fungsional sebagai berikut :

1. Pengguna memasukkan input berupa kalimat dalam Bahasa Inggris. 2. Input dapat berupa inputan langsung atau file dalam format *.doc dan *.txt. 3. Sistem mampu memeriksa pola kalimat berdasarkan jenis kata dan aturan

CNF, hubungan subjek, predikat dan keterangan waktu dan menampilkan hasil pemeriksaan pada tab control.

4. Pengguna dapat memodifikasi aturan CNF sesuai keinginan untuk memeriksa pola kalimat tertentu.

5. Sistem mampu menampilkan matriks CYK untuk kalimat yang diinginkan. 6. Sistem mampu memberikan warna merah pada penulisan kata yang salah.

(4)

7. Sistem mampu memberikan usulan penulisan kata terhadap penulisan kata yang salah berdasarkan jarak Levenshtein yang diinginkan.

3.1.3.2Kebutuhan Nonfungsional Sistem

Kebutuhan nonfungsional sistem adalah karakteristik atau batasan yang menentukan kepuasan sebuah sistem seperti kinerja, kemudahan penggunaan, biaya, dokumentasi, kontrol, dan kemampuan sistem bekerja tanpa mengganggu fungsionalitas sistem lainnya.[15]

1. Sisi performa, sistem yang dirancang memiliki :

 Antarmuka (interface) yang sederhana dan menarik.

 Sistem dilengkapi dengan informasi sample, yaitu cara menggunakan aplikasi.

 Waktu pemeriksaan kalimat relatif singkat.

2. Sisi kemudahan penggunaan, sistem yang dirancang memiliki :

 Tampilan antarmuka yang dirancang sedimikian rupa sehingga mirip dengan antarmuka perangkat lunak ternama pada umumnya, seperti layoutmenu bar, tool bar, dan tab control.

 Setiap halaman form dirancang dengan mempertimbangkan konsistensi jenis huruf, warna, dan layout dari antarmuka.

 Bahasa yang digunakan sederhana dan mudah dimengerti.

3. Sisi ekonomi, sistem yang dirancang memiliki :

 Instalasi perangkat lunak dan keras tidak memerlukan biaya ekstra.

4. Sisi dokumentasi, sistem memiliki kemampuan sebagai berikut:

 Sistem dapat menyimpan input yang dimasukkan pengguna dalam format *.doc dan *.txt.

(5)

5. Sisi kontrol, sistem yang dirancang memiliki kemampuan :

 Sistem mengijinkan pengguna melakukan pembatalan terhadap suatu tindakan.

 Sistem mampu menampilkan pesan kesalahan jika input yang dimasukkan pengguna tidak tepat.

6. Sisi kualitas, sistem yang dirancang memiliki :

 Kemampuan memeriksa input lebih dari satu kalimat.

 Sistem mampu menampilkan hasil pemeriksaan input dengan akurasi yang baik.

3.2 Pemodelan

Model adalah konsep yang menyederhanakan suatu masalah dalam bentuk bahasa tertentu. Sebelum merancang perangkat lunak, maka pada tahap pemodelan ini dilakukan untuk memudahkan perancangan sistem selanjutnya. Bahasa yang digunakan untuk memodelkan sistem ini adalah Unified Modelling Language (UML), seperti use case diagram, activity diagram, dan sequence diagram.[15]

3.2.1 Use Case Diagram

Use case diagram menggambarkan aktifitas aktor di dalam sistem yang dirancang, dan bagaimana bagian-bagian sistem tersebut diintegrasikan sehingga membentuk sistem yang utuh. Hal tersebut merupakan solusi yang memenuhi analisis kebutuhan sistem. Hubungan antara aktor dengan sistem tersebut dapat dilihat pada gambar 3.2.[15] 

(6)

Aplikasi Pengoreksi Kalimat Bahasa Inggris User Memasukkan string kalimat Memeriksa spelling error Memeriksa tenses review Aturan CNF Jarak Lenveshtein Generate matriks CYK Input file <<include>> Inputan langsung <<include>> <<include>> <<include>> <<include>>

Gambar 3.2 Interaksi aktor dengan sistem pengoreksi kalimat Bahasa Inggris.

3.2.2 Activity Diagram

Activity diagram menggambarkan alur proses berupa urutan-urutan kegiatan yang terjadi di dalam sistem yang dirancang. Kegiatan user di dalam sistem antara lain memberi input berupa kalimat dalam Bahasa Inggris, mengatur CNF, melihat hasil analisis atau ouput. Urutan-urutan kegiatan tersebut dapat dilihat pada gambar 3.3.

(7)

Gambar 3.3 Activity Diagram aplikasi pengoreksi kalimat Bahasa Inggris

3.2.3 Sequence Diagram

Sequence diagram berikut ini menggambarkan interaksi objek di sekitar sistem, berupa komunikasi, pesan dan respon yang dari setiap event yang ditampilkan secara bertahap, seperti pada gambar 3.4.

(8)

Gambar 3.4 Sequence Diagram aplikasi pengoreksi kalimat Bahasa Inggris

3.3 Pseudocode

Pseudocode adalah kode semu yang mirip dengan kode pemrograman. Pada penelitian ini, pseudocode digunakan untuk menejelaskan urutan pemecahan masalah dengan algoritma CYK dan Levenshtein sebagai dasar alur pembuatan aplikasi.

3.3.1 Pseudocode Algoritma Cocke-Younger-Kasami (CYK)

Implementasi algoritma CYK dapat dilakukan dengan teknik program dinamis, yaitu proses pemeriksaan kalimat dilakukan secara bertahap dan masing-masing proses saling berkaitan satu dengan lainnya. Pendekatan pemecahan masalah dengan algoritma CYK dapat dilihat pada pseudocode berikut ini.

(9)

begin

Step 1 : for i = 1 to n do

Step 2 : Vi1 =

{ A | A  a aturan produksi, simbol ke-i adalah a }

Step 3 : for j = 2 to n do Step 3a : for i = 1 to (n-j+1) do begin Step 3b : Vij = Ø Step 3c : for k = 1 to (j-1) do Step 3d : Vij = Vij U

{ A | A  BC adalah suatu produksi, B di Vik

dan C di Vi+k, j-k }

end end

Keterangan :

1. Simbol n adalah panjang string yang akan diperiksa, misalnya untuk string ‘add’, maka n = | add | = 3.

2. Simbol i adalah variabel yang menyatakan kolom ke-i, dan simbol j adalah variabel yang menyatakan baris ke-j.

3. Pada step 1 dan 2 dimaksudkan untuk mengisi tabel baris pertama kolom 1-n.

4. Pada step 3 dilakukan iterasi dari baris ke 2 sampai n.

5. Pada step 3a dilakukan iterasi untuk mengisi kolom 1 sampai (n-baris+1) pada suatu baris.

(10)

7. Pada step 3c dan 3c dilakukan iterasi untuk memeriksa mana saja yang menjadi anggota Vij.

Penggunaan algoritma CYK di atas dapat dilihat pada contoh berikut, dengan input “I paint the house” dan tata bahasa yang digunakan sebagai berikut :

S → NV

N → noun | pronoun | AN V → verb | VN

A → article

Langkah pertama, membuat tabel untuk Vij (Vkolom, baris) sebagai berikut :

Tabel 3.1 Tahap pertama pengisian tabel CYK

I paint the house

 

pronoun verb article noun i   1 2 3 4 1       j 2       3 4      

Tabel di atas digunakan untuk mempermudah dalam menyelesaikan persoalan, i sebagai kolom, j sebagai baris dan n = 4. Dari step 1 dan 2 pada algoritma CYL dapat diperoleh baris pertama pada tabel sebagai berikut :

 Untuk V11, periksa variabel yang bisa menurunkan “pronoun”, dari N → “pronoun”, isikan V11 = {N}.

(11)

 Untuk V21, periksa variabel yang bisa menurunkan “verb”, dari V→ “verb”, isikan V21 = {V}.

 Untuk V31, periksa variabel yang bisa menurunkan “article”, dari A→ “article”, isikan V31={A}.

 Untuk V41, periksa variabel yang bisa menurunkan ”noun”, dari N→ “noun”, isikan V41={N}.

Dari hasil tersebut dapat diisikan tabel sebagai berikut :

Tabel 3.2 Tahap kedua pengisian tabel CYK

I paint the house

 

pronoun verb article noun i   1 2 3 4 1 N V A N j 2       3 4      

Selanjutnya diisi baris ke 2 sampai n sebagai berikut (pada baris ke 2 (k=1)) :  Untuk V12, periksa Vik-Vi+k, j-k, berarti V11-V21, yaitu N-V, variabel yang bisa

menurunkan NV dalah S, maka V12 isi dengan {S}.

 Untuk V22, periksa Vik-Vi+k, j-k, berarti V21-V31, yaitu V-A, variabel yang bisa menurunkan VA adalah Ø, maka V22 isi dengan {Ø}.

 Untuk V32, periksa Vik-V, j-k, berarti V31-V41, yaitu A-N, variabel yang bisa menurunkan AN adalah N, maka V32 isi dengan {N}.

(12)

Dari hasil tersebut dapat diisikan tabel sebagai berikut :

Tabel 3.3 Tahap ketiga pengisian tabel CYK

I paint the house

 

pronoun verb article noun i   1 2 3 4 1 N V A N j 2 S Ø N 3 4      

Selanjutnya diisi baris ke -3 (k=1 sampai 2) sebagai berikut :

 Untuk V13, periksa Vik-Vi+k, j-k, berarti V11-V22 & V12-V31, yaitu N- Ø & S-A, variabel yang bisa menurunkan NØ atau SA adalah tidak ada, maka V13 isi dengan Ø.

 Untuk V23, periksa Vik-Vi+k, j-k, berarti V21-V32 & V22-V41, yaitu V-N & Ø-N, variabel yang bisa menurunkan VN atau ØN adalah V, maka V23 isi dengan {V}.

(13)

Dari hasil tersebut dapat diisikan tabel sebagai berikut :

Tabel 3.4 Tahap keempat pengisian tabel CYK

I paint the house

 

pronoun verb article noun i   1 2 3 4 1 N V A N j 2 S Ø N 3 Ø V 4      

Selanjutnya diisi baris ke -4 (k=1 sampai 3) sebagai berikut :

 Untuk V14, periksa Vik-Vi+k, j-k, berarti V11-V23 & V12-V32 & V13 – V41 yaitu N-V & S-N & Ø-N, variabel yang bisa menurunkan NV, SN, atau ØN adalah S, maka V14 isi dengan S.

(14)

Dari hasil tersebut dapat diisikan tabel sebagai berikut :

Tabel 3.5 Tahap kelima pengisian tabel CYK

I paint the house

 

pronoun verb article noun i   1 2 3 4 1 N V A N j 2 S Ø N 3 Ø V 4 S    

Berdasarkan tabel di atas, simbol awal S termuat di V14. Hal ini merupakan syarat suatu string dapat diturunkan dari simbol awal V1n, sehingga input “I paint the house” dapat diturunkan oleh tata bahasa tersebut.

Pengujian tata bahasa tersebut dapat diilustrasikan dengan membuat pohon penurunan (parse tree), seperti pada gambar 3.5.

(15)

3.3.2 Pseudocode Algoritma Levenshtein

Implementasi jarak Levenshtein juga dapat dilakukan dengan teknik program dinamis, yaitu proses pencocokan string dilakukan secara bertahap. Tahapan-tahapan tersebut dapat dilihat pada pseudocode berikut ini.[16]

m = s_sumber.length n = s_target.length

Step 1 : For i = 0 to m do D[i, 0] = i Step 2 : For i = 0 to n do D[0, i] = i Step 3 : For i = 1 to m do

Step 3a : For j = 1 to n do

Step 3b : If (x[i-1] == y[j-1] cost = 0 Else cost = 1

Step 3c : D[i, j] =

Min (D[i-1, j]+1, D[i, j-1]+1, D[i-1, j-1]+cost) Step 4 : Return D[m,n]

Jika pseudocode di atas menerima input string sumber x = “cin” dan string target y = “can”, maka nilai m = 3 dan n = 3. Selanjutnya penerapan pseudocode tersebut dapat dilihat pada langkah-langkah berikut ini.

1. Step 1 : For i = 0 to m = 3 do D[i, 0] = i  D[0, 0] = 0 D[1, 0] = 1 D[2, 0] = 2 D[3, 0] = 3 2. Step 2 : For i = 0 to n = 3 do D[0, i] = i  D[0, 0] = 0 D[0, 1] = 1 D[0, 2] = 2 D[0, 3] = 3

(16)

3. Step 3 : For i = 1 to m = 4 do Untuk i = 1 Step 3a : For j = 1 to n = 3 do Untuk j = 1 Step 3b : If ((x[0] = ‘c’) == (y[0] = ‘c’)) Maka cost = 0 Step 3c : D[1,1] = Min(D[0, 1]+1, D[1, 0]+1, D[0, 0]+0) = Min(1+1, 1+1, 0+0) = Min(2, 2, 0) = 0 Untuk j = 2

Step 3b : If ((x[0] = ‘c’) == (y[1] = ‘a’)) Else cost = 1 Step 3c : D[1,2] = Min(D[0, 2]+1, D[1, 1]+1, D[0, 1]+1) = Min(2+1, 0+1, 1+1) = Min(3, 1, 2) = 1 Untuk j = 3 Step 3b : If ((x[0] = ‘c’) == (y[2] = ‘n’)) Else cost = 1 Step 3c : D[1,3] = Min(D[0, 3]+1, D[1, 2]+1, D[0, 2]+1) = Min(3+1, 1+1, 2+1) = Min(4, 2, 3) = 2 Untuk i = 2 Step 3a : For j = 1 to n = 3 do Untuk j = 1

(17)

Step 3b : If ((x[1] = ‘i’) == (y[0] = ‘c’)) Else cost = 1 Step 3c : D[2,1] = Min(D[1, 1]+1, D[2, 0]+1, D[1, 0]+1) = Min(0+1, 2+1, 1+1) = Min(1, 3, 2) = 1 Untuk j = 2

Step 3b : If ((x[1] = ‘i’) == (y[1] = ‘a’)) Else cost = 1 Step 3c : D[2,2] = Min(D[1, 2]+1, D[2, 1]+1, D[1, 1]+1) = Min(1+1, 1+1, 0+1) = Min(2, 2, 1) = 1 Untuk j = 3

Step 3b : If ((x[1] = ‘i’) == (y[2] = ‘n’)) Else cost = 1 Step 3c : D[2,3] = Min(D[1, 3]+1, D[2, 2]+1, D[1, 2]+1) = Min(2+1, 1+1, 1+1) = Min(3, 2, 2) = 2 Untuk i = 3 Step 3a : For j = 1 to n = 3 do Untuk j = 1 Step 3b : If ((x[2] = ‘n’) == (y[0] = ‘c’)) Else cost = 1 Step 3c : D[3,1] = Min(D[2, 1]+1, D[3, 0]+1, D[2, 0]+1) = Min(1+1, 3+1, 2+1) = Min(2, 4, 3) = 2

(18)

Untuk j = 2

Step 3b : If ((x[2] = ‘n’) == (y[1] = ‘a’)) Else cost = 1 Step 3c : D[3,2] = Min(D[2, 2]+1, D[3, 1]+1, D[2, 1]+1) = Min(1+1, 2+1, 1+1) = Min(2, 3, 2) = 2 Untuk j = 3 Step 3b : If ((x[2] = ‘n’) == (y[2] = ‘n’)) Maka cost = 0 Step 3c : D[3,3] = Min(D[2, 3]+1, D[3, 2]+1, D[2, 2]+0) = Min(2+1, 2+1, 1+0) = Min(3, 3, 1) = 1 3. Step 4 : Return D[m, n] = D[3, 3] = 1

Berdasarkan penerapan pseudocode di atas, maka jarak Levenshtein antara string sumber x = “cin” dan string target y = “can” adalah D[3, 3] = 1. Bentuk sederhana dari penerapan pseudocode tersebut dapat dilihat pada tabel 3.6.

Tabel 3.6 Penentuan tabel jarak Levenshtein

index 0 1 2 c i n j , i 0 1 2 3 0 0 1 2 3 0 c 1 1 0 1 2 1 a 2 2 1 1 2 2 n 3 3 2 2 1

(19)

3.4 Flowchart

Urutan-urutan prosedur dan proses pemecahan masalah dituangkan ke dalam sebuah bagan yang disebut flowchart. Pada penelitian ini flowchart digunakan untuk menggambarkan tahapan-tahapan implementasi algoritma CYK dan Levenshtein dalam pemecahan masalah. Tahapan-tahapan tersebut dapat dilihat pada flowchart berikut ini.

3.4.1 Flowchart Pemeriksaan Spelling Error

Pada tahap ini dilakukan pemeriksaan penulisan kata apakah kata tersebut terdapat di dalam kamus atau tidak dengan menggunakan fungsi contains() pada HashSet, dan menampilkan usulan penulisan kata dengan algoritma Levenshtein, langkah-langkah tersebut dapat dilihat pada gambar 3.6.

                                 

(20)

3.4.2 Flowchart Pemeriksaan Tenses Review

Pada tahap ini dilakukan pemeriksaan jenis tenses, hubungan subjek dengan predikat dan keterangan waktu, dan pola kalimat dengan algoritma CYK, seperti pada gambar 3.7.

(21)

3.5 Perancangan Sistem

Perancangan sistem dilakukan untuk mengintegrasikan model-model yang telah dibuat ke dalam solusi teknis. Perancangan tersebut meliputi tahapan-tahapan operasi dalam proses pengolahan data seperti perancangan bentuk normal Chomsky (Chomsky Normal Form), kamus dalam format *.txt, dan perancangan antarmuka sistem.[15]

3.5.1 Chomsky Normal Form (CNF)

Kemampuan algoritma CYK dapat mengenali kalimat dengan baik atau tidak sangat bergantung pada tata bahasa yang dibuat. Tata bahasa tersebut harus dalam aturan CNF, yang terdiri dari fragmen-fragmen umum berikut ini.

Noun defendant, employee, friend, infidel, whisper, book,dan lain-lain. Name  Devil, Medan City, Berry Syafaat dan lain-lain.

Pronoun I, me, she, her, he, him, it, dan lain-lain.

Verb are,become, burned, found, gave, has, have, looks, dan lain-lain. Adjective beautiful, ugly,sad, guilty, nice, red, readable, dan lain lain. Adverb carefully, here, soon, later, quickly, dan lain-lain.

Quantifier every, some, all, dan lain-lain. Article a, an, the dan lain-lain. Preposition in, of, on, to dan lain-lain.

Conjunctionand, but, however, or, therefore, dan lain-lain. Number  0, 1, 2, 3, 4, dan seterusnya.

Selanjutnya, fragmen-fragmen yang telah dibuat dijadikan sebagai dasar untuk membentuk tata bahasa dalam bentuk CNF, huruf kapital dikenali sebagai nonterminal, dan huruf kecil dikenali sebagai terminal. Di dalam aplikasi yang dirancang, aturan CNF tersebut dapat dimodifikasi sesuai keinginan, sehingga

(22)

pada perancangan aturan CNF berikut ini hanya untuk mengenali pola kalimat secara umum, dan tidak memperhatikan ambiguitas CNF.

1. Noun phrase + To be + Adverb (time or place) CNF : S -> NV N -> DO | n D -> d V -> VK | v K -> k O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase K : adverb O : noun Contoh :(The | d) (Devils | n) (are | v) (here | k).

2. Noun phrase + To be + Adjective CNF : S -> NV N -> DO | n D -> d V -> VJ | v J -> j O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase J : adjective O : noun Contoh :(The | d) (Devils | n) (are | v) (ugly | j).

(23)

3. Noun phrase + To be + Noun phrase CNF : S -> NV N -> DO | n D -> d V -> VN | v O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase O : noun Contoh : (The | d) (Devil | n) (has | v) (a |d) (friend | n).

4. Noun phrase + Linking verb + Adjective CNF : S -> NV N -> DO | n D -> d V -> VJ | v J -> j O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase J : adjective O : noun Contoh : (The | d) (Devil | n) (looks | v) (sad | j).

(24)

5. Noun phrase + Linking verb + Noun phrase CNF : S -> NV N -> DO | n D -> d V -> VN | v O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase O : noun Contoh : (The | d) (Devil | n) (become | v) (a |d) (infidel | n).

6. Noun phrase + Verb CNF : S -> NV N -> DO | n D -> d V -> v O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase O : noun Contoh : (The | d) (Devil | n) (cried | v).

7. Noun phrase + Verb + Noun phrase CNF : S -> NV N -> DO | n D -> d V -> VN | v O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase O : noun

(25)

Contoh : (The | d) (Devil | n) (burned | v) (a | d) (book | n)

8. Noun phrase + Verb + Noun phrase + Noun phrase CNF : S -> NV N -> DO | n D -> d V -> VN | v O -> O | n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase O : noun Contoh :

(The | d) (Devil | n) (gave | v) (the | d) (employess | n) (a | d) (whisper | n).

9. Noun phrase + Verb + Noun phrase + Adjective CNF : S -> NV N -> DO | n D -> d V -> v O -> n Keterangan : S : sentence N : noun phrase D : determiner V : verb phrase O : noun Contoh :

(The | d) (Devil | n) (found | v) (the | d) (defendant | n) (guilty | adjective).

Tidak semua simbol pada tabel pemetaan digunakan pada aturan CNF di atas. Selengkapnya, daftar simbol terminal dan nonterminal yang dikenali oleh aplikasi dapat dlihat pada tabel 3.7 dan 3.8.

(26)

Tabel 3.7 Daftar nonterminal aturan CNF No Nonterminal Keterangan 1 S Sentence 2 B Preposition TO 3 C Coordinating conjuction 4 D Determiner, predeterminer 5 E Possessive pronoun 6 F Single verb 7 G Gerund 8 H Particle 9 I Preposition 10 J Adjective 11 K, A Adverb 12 L Cardinal number 13 M Modal 14 N Noun phrase I 15 O Noun phrase II 16 P Prepositional phrase 17 Q Quantifier 18 R Relative clause 19 T TO F | TO N

20 U Noun phrase III

21 V Verb phrase

22 W Wh-question, Wh-pronoun, Wh-adverb

Tabel 3.8 Daftar terminal

No Nonterminal Keterangan 1 c Coordinating conjuction 2 b Preposition TO 3 d Determiner, predeterminer 4 e Possessive pronoun 5 g Gerund 6 h Single verb 7 i Preposition 8 j Adjective 9 k, r Adverb 10 l Cardinal number 11 m Modal 12 n Noun 13 p Pronoun 14 q Quantifier

(27)

15 v verb

16 w Wh-question, Wh-pronoun, Wh-adverb

3.5.2 Perancangan Kamus Txt Files

Semua kata dalam Bahasa Inggris dimasukkan ke dalam satu file dalam format *.txt. Langkah-langkah yang dilakukan untuk merancang kamus tersebut adalah sebagai berikut.

1. Siapkan semua kata dalam Bahasa Inggris, kemudian masukkan ke dalam file dengan format *.txt (contoh “kamus.txt”), dan setiap baris terdiri dari satu kata. Misal file tersebut berisi kata-kata seperti pada gambar 3.8.

Gambar 3.8 Sampel kata-kata dalam perancangan kamus.txt

2. Dengan menggunakan alat bantu pemrograman C#, buatlah sebuah program untuk membuka file pada langkah 1, kemudian masukkan ke dalam array dinamis dalam C# (List). Pengoperasian file tersebut dapat dilakukan dengan memanfaatkan kelas StreamReader, seperti pada pseudocode program berikut :

Step 1 : baca file kamus.txt dengan StreamReader

Step 2 : string line

Step 3 : while ((line = file.ReadLine()) != null)

Step 3a : listWords.Add(line)

(28)

Pada step 3, proses pembacaan string di dalam file kamus.txt akan tetap dilakukan sampai baris terakhir dari file tersebut. Setiap string yang telah dibaca akan dimasukkan ke dalam List dengan nama listWords seperti pada step 3a.

3. Urutkan kata di dalam List berdasarkan abjad dengan menggunakan fungsi Sort(), sebagai contoh listWords.Sort(). Sehingga listWords berisi sejumlah string yang telah terurut, seperti pada gambar 3.9.

Gambar 3.9 Sampel kata-kata di dalam file kamus.txt setelah diurutkan

4. Setelah diurutkan, kemudian List tersebut dimasukkan ke dalam struktur data Hashset atau sering disebut List dengan elemen bernilai unik, seperti pada contoh kode berikut :

HashSet<string> wordListUnique=new HashSet<string>(listWords)

Pembentukan Hashset dengan nama wordListUnique bertujuan untuk memastikan semua kata di dalam struktur data tidak ada yang sama antara satu dengan yang lainnya, seperti pada gambar 3.10.

(29)

Gambar 3.10 Sampel kata-kata di dalam file kamus.txt setelah dimasukkan

pada Hashset

Pada gambar 3.10 dapat dilihat bahwa tidak ada duplikasi kata antara satu dengan yang lainnya. Keadaan ini lebih efisien jika dibandingkan dengan gambar 3.9 yang masih memuat duplikasi kata pada baris kedua dan ketiga, yaitu kata “abandon”.

5. Lakukan split terhadap setiap elemen di dalam Hashset untuk menghindari string kosong (seperti pada baris pertama gambar 3.10), kemudian cetak semua kata di dalam Hashset tersebut ke dalam file dalam format *.txt (misal wordList.txt) dengan memanfaatkan kelas StreamWriter. Langkah ini diilustrasikan dengan pseudocode berikut :

Step 1 : buka file baru wordList.txt dengan StreamWriter

Step 2 : foreach (string s in wordListUnique)

Step 2a : if (s.Trim() != "")

Step 2b : file.WriteLine(s.Trim());

Step 3 : file.Close();

Pada step 2, proses pembacaan string di dalam Hashset wordListUnique akan tetap dilakukan sampai indeks terakhir. Selanjutnya pada step 2a dilakukan pemeriksaan terhadap setiap elemen di dalam Hashset dengan melakukan split untuk memeriksa apakah elemen tersebut berupa string kosong atau tidak. Jika elemen tidak kosong, maka string pada elemen tersebut dicetak pada file “wordList.txt”, seperti pada step 2b. File

(30)

“wordList.txt” ini lah yang digunakan pada aplikasi yang akan dirancang. Sehingga, hasil akhir dari sampel parancangan kamus yang digunakan pada aplikasi ini dapat dilihat pada gambar 3.11.

Gambar 3.11 Hasil akhir dari sampel kata-kata di dalam file kamus.txt

3.5.3 Perancangan Interface

Tampilan grafis yang menghubungkan semua komponen sistem disebut interface. Tampilan grafis tersebut antara lain sebagai berikut ini.[15]

3.5.3.1Halaman Utama

Halaman utama ini berisikan tampilan awal dari aplikasi, seperti menu strip, tool strip, input, dan output. Perancangan halaman utama tersebut dapat dilihat pada gambar 3.12.

(31)

TOOL STRIP MENU STRIP

RichTextBox TextBox

TabControl

Tenses Review Spelling Error Sentence Analysis

Gambar 3.12 Perancangan form halaman utama

Form halaman utama tersebut dirancang dengan menggunakan beberapa tool. Tool tersebut dapat dilihat pada tabel 3.9.

Tabel 3.9 Tools yang digunakan pada perancangan halaman utama

No Nama Tool Keterangan

1 MenuStrip Digunakan untuk menampilkan dan mengaktifkan menu perintah yang diinginkan user.

2 ToolStrip Digunakan untuk menampilkan barisan submenu seperti toolbar.

3 RichTextBox Digunakan untuk menampung input, dalam hal ini adalah teks, yang memiliki properti lebih banyak dibandingkan TextBox.

4 TextBox Digunakan untuk menampung teks.

5 TabControl Digunakan untuk menampung output hasil analisis terhadap kalimatberupa teks.

(32)

3.5.3.2Menu Strip

Menu strip pada aplikasi yang dirancang terdiri dari beberapa menu pilihan, yaitu File, Edit, Font, Paragraph, Analyze, Help, seperti pada gambar 3.13.

File New Open... Save Save As... Print... Exit Edit Undo Redo Select All Copy Cut Paste Find...

Find and Replace

Insert Images... Font Select Font... Font Color... Bold Italic Underline Normal Page Color... Paragraph Increase Indent… Alignment... Bullet... Analyze Spelling Error Tenses Review CNF Rules Help Sample Appendix

Gambar 3.13 Perancangan menu strip

Masing-masing menu pilihan pada menu strip tersebut memiliki fungsi yang tertentu. Fungsi-fungsi tersebut dapat dilihat pada tabel 3.10.

Tabel 3.10 Tools yang digunakan pada perancangan menu strip

No Nama Tool Keterangan

1 New Digunakan untuk memulai dokumen

baru.

2 Open Digunakan untuk membuka dokumen pada direktori penyimpanan.

3 Save Digunakan menyimpan dokumen.

4 Save As Digunakan untuk menyimpan dokumen baru.

5 Print Digunakan untuk mencetak document. 6 Exit Digunakan untuk menutup aplikasi. 7 Undo Digunakan untuk membatalkan perintah. 8 Redo Digunakan untuk membatalkan undo. 9 Find Digunakan untuk menemukan kata di

dalam RichTextBox

10 Find and Replace Digunakan untuk menemukan dan mengganti kata yang diinginkan.

(33)

11 Select All Digunakan untuk men-seleksi semua teks.

12 Copy Digunakan untuk menyalin teks. 13 Cut Digunakan memotong teks.

14 Paste Digunakan untuk menempelkan teks yang telah disalin.

15 Insert Images Digunakan untuk menyisipkan gambar pada RichTextBox.

16 Select Font Digunakan untuk memilih jenis huruf, dan ukuran.

17 Font Color Digunakan untuk mewarnai huruf.

18 Bold Digunakan untuk membuat teks bercetak tebal.

19 Italic Digunakan untuk membuat teks miring. 20 Underline Digunakan untuk membuat teks bergaris

bawah.

21 Normal Digunakan untuk membuat teks menjadi default.

22 Page Color Digunakan merubah warna latar belakang RichTextBox.

23 Increase Indent Digunakan untuk menggeser teks ke sebelah kanan di dalam RichTextBox. 24 Alignment Digunakan untuk mengatur perataan

paragraf.

25 Bullet Digunakan untuk membuat daftar atau butir teks.

26 Spelling Error Digunakan untuk memeriksa kesalahan penulisan kata.

27 Tenses Review Digunakan untuk memeriksa jenis tenses, hubungan antara subjek, predikat dan keterangan waktu, dan pola kalimat. 28 CNF Rules Digunakan untuk melihat, memodifikasi,

dan menyimpan aturan CNF.

29 Sample Digunakan untuk menampilkan contoh penggunaan aplikasi.

30 Appendix Berisi daftar dan keterangan simbol-simbol.

(34)

3.5.3.3CNF Rules

Form CFN rules merupakan bagian dari menu strip yang digunakan untuk melihat, memodifikasi, dan menyimpan tata bahasa dalam bentuk CNF. Perancangan menu pilihan tersebut dapat dilihat pada gambar 3.14.

Apply Default

Context Free Grammar – Chomsky Normal Form

TextBox1 TextBox2

Gambar 3.14 Perancangan form CNF rules

Tools yang digunakan untuk merancang form di atas dapat dilihat pada tabel 3.11.

Tabel 3.11 Tools yang digunakan pada perancangan form CNF rules

No Nama Tool Jenis Tool Keterangan

1 Apply Button Digunakan untuk menyimpan aturan CNF yang di-inputkan pada TextBox1.

2 Default Button Digunakan untuk me-reset CNF. 3 TextBox1 TextBox Digunakan untuk menerima input

teks, yaitu CNF.

4 TextBox2 TextBox Digunakan untuk menampilkan keterangan dari setiap simbol pada TextBox1.

(35)

3.5.3.4Sub Menu Tool Strip

Sub menu tool strip pada aplikasi yang dirancang terdiri dari beberapa komponen, yaitu New, Open, Save, Select Font, Font Color, Bold, Italic, Underline, Left, Center, Right, Find, NumericUpDown dan Button Apply, seperti pada gambar 3.15.

Gambar 3.15 Perancangan sub menu tool strip

Sebagian dari komponen tool strip di atas merupakan bagian dari menu strip, tetapi ditampilkan sebagai toolbar. Sedangkan sebagian komponen lainnya bukan merupakan bagian dari menu strip. Komponen yang dimaksud dapat dilihat pada tabel 3.12.

Tabel 3.12 Tools yang digunakan pada perancangan sub menu tool strip

No Nama Tool Jenis Tool Keterangan

1 Angka 1 NumericUpDown Digunakan untuk menampilkan daftar angka.

2 Apply Button Sebuah tombol yang dapat

diklik untuk mengeksekusi perintah.

3.5.3.5Tab Control

Tab control merupakan sebuah kontrol yang berfungsi untuk membuat tampilan seperti tab windows. Pada aplikasi yang dirancang, tab control digunakan untuk menampikan output hasil anlisis terhadap input. Tab control tersebut terdiri dari tiga page, yaitu tenses review, spelling error, dan sentence analysis.

(36)

3.5.3.5.1 Tab Page Tenses Review

Tab ini digunakan untuk menampilkan hasil analisis terhadap input jika komponen tenses review pada menu strip dieksekusi. Tampilan tab tersebut dapat dilihat pada gambar 3.16.

Gambar 3.16 Perancangan tab page tenses review

Tools yang digunakan untuk merancang form di atas dapat dilihat pada tabel 3.13. Tabel 3.13 Tools yang digunakan pada perancangan tab page tenses review

No Nama Tool Jenis Tool Keterangan

1 Tenses Review Tab page Menampilkan output hasil analisis jika menu strip tenses review diklik. 2 Spelling Error Tab page Menampilkan output hasil

analisis jika menu strip spelling error diklik. 3 Sentence Analysis Tab page Menampilkan output hasil

analisis untuk kalimat yang diinginkan.

4 RichTextBox RichTextBox Digunakan untuk

menampilkan hasil analisis apakah kalimat benar atau salah.

5 Char Count Label Menampilkan jumah karakter dari input. 6 Word Count Label Menampilkan jumah kata

(37)

7 Sentence Count Label Menampilkan jumah kalimat dari input. 8 Sentences OK Label Menampilkan jumah

kalimat yang dianggap benar.

9 Sentences BAD Label Menampilkan jumah kalimat yang dianggap salah.

10 Accuration Label Menampilkan akurasi penyusunan kalimat.

3.5.3.5.2 Tab Page Spelling Error

Tab ini digunakan untuk menampilkan hasil analisis terhadap input jika komponen spelling error pada menu strip dieksekusi, seperti pada gambar 3.17.

Gambar 3.17 Perancangan tab page spelling error

Sebagian dari komponen tab page di atas juga terdapat pada tab page tenses review. Sedangkan sebagian komponen lainnya bukan merupakan bagian dari tab page tenses review. Komponen yang dimaksud dapat dilihat pada tabel 3.14.

(38)

Tabel 3.14 Tools yang digunakan pada perancangan tab page spelling error

No Nama Tool Jenis Tool Keterangan 1 RichTextBox RichTextBox Digunakan untuk

menampilkan hasil analisis apakah penulisan kata benar atau tidak.

2 Word OK Label Menampilkan jumah kata yang dianggap benar. 3 Word BAD Label Menampilkan jumah kata

yang dianggap salah. 4 Accuration Label Menampilkan akurasi

penulisan kata.

3.5.3.5.3 Tab Page Sentence Analysis

Tab ini digunakan untuk menampilkan matriks CYK dari kalimat yang diinginkan sehingga dapat diketahui kenapa kalimat tersebut dianggap benar atau salah. Tampilan tab ini dapat dilihat pada gambar 3.18.

(39)

Tools yang digunakan untuk merancang tampilan gambar 3.18dapat dilihat pada tabel 3.15.

Tabel 3.15 Tools yang digunakan pada perancangan tab page sentence analysis

No Nama Tool Jenis Tool Keterangan

1 Analyze Button Digunakan untuk mengeksekusi input pada TextBox1 dan menampilkan output pada TextBox2. 2 Zoom Button Digunakan untuk menampilkan

output pada TextBox2 pada jendela baru.

3 Info Button Digunakan untuk menampilkan keterangan dari setiap simbol yang digunakan.

4 TextBox1 TextBox Digunakan untuk menampung input berupa kalimat.

4 TextBox2 TextBox Digunakan untuk menampilkan output berupa matriks CYK sebagai hasil analisis dari input pada TextBox1.

(40)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Implementasi sistem adalah membuat, memasang, dan menguji sistem ke dalam operasi. Tahap ini bertujuan untuk mengetahui apakah kebutuhan sistem yang telah diitegrasikan telah terpenuhi.[15]

4.1.1 Konfigurasi Perangkat Keras dan Lunak yang Dibutuhkan

Tahap ini merupakan penerapan aplikasi ke dalam sistem sebagai kelanjutan dari tahap perancangan. Aplikasi tersebut akan berjalan dengan baik jika memenuhi persyaratan konfiguasi perangkat keras dan lunak sebagai berikut ini.

4.1.1.1Perangkat Keras

Aplikasi yang dirancang dapat dijalankan dengan menggunakan perangkat keras (hardware) yang direkomendasikan sebagai berikut :

1. prosesor Intel Pentium IV 2.26 GHz, 2. memory 256 MB dan harddisk 40 GB, 3. VGA card 32 MB,

4. monitor dengan resolusi 1024 X 768 pixel, 5. keyboard dan mouse.

(41)

4.1.1.2Perangkat Lunak  

Aplikasi yang dirancang dapat dijalankan dengan menggunakan perangkat lunak (software) yang direkomendasikan sebagai berikut :

1. sistem operasi windows 7,

2. Ms. NET Framework 3.5 atau yang terbaru.

4.2 Penggunaan Aplikasi

Aplikasi yang dirancang terdiri dari beberapa menu pilihan. Masing-masing menu pilihan memiliki fungsi tertentu. Menu utama pada aplikasi tersebut antara lain sebagai berikut ini.

4.2.1 Halaman Utama

Halaman ini tidak hanya sebagai tampilan utama dari program, tetapi juga semua aktifitas seperti memasukkan input, dan output dari aplikasi ditampilkan pada halaman ini. Komponen-komponen halaman ini terdiri dari menu strip, tool strip, input dan output. Pengguna dapat memasukkan input pada RichTextBox, kemudian melakukan analisis dengan meng-klik menu strip Analyze yang terdiri dari tiga item, yaitu Tenses Review, Spelling Error, dan CNF Rules. Hasil dari analsisi tersebut ditampilkan pada tab control yang berada di sebelah bawah dari RichTextBox. Tampilan halaman tersebut dapat dilihat pada gambar 4.1.

(42)

Gambar 4.1 Implementasi form halaman utama

4.2.2 CNF Rules

Halaman ini dapat diakses dengan meng-klik menu strip CNF Rules. Pada halaman ini, pengguna dapat melihat, memodifikasi, dan menyimpan aturan CNF yang ditampilkan pada TextBox. Halaman tersebut dapat dilihat pada gambar 4.2.

(43)

Gambar 4.2 Menu Strip CNF Rules

Setelah menu strip di atas diaktifkan, maka aplikasi akan menampilkan sebuah halaman baru. Pada halaman tersebut pengguna dapat memodifikasi aturan CNF, seperti gambar 4.3.

(44)

4.2.3 Menu Strip Tenses Review

Pengguna dapat melakukan analisis terhadap input dengan meng-klik menu strip Tenses Review pada halaman utama. Analisis tersebut berupa pemeriksaan tenses, kesesuaian subjek, predikat dan keterangan waktu, dan pola kalimat. Tampilan menu strip tersebut dapat dilihat pada gambar 4.4.

Gambar 4.4 Menu Strip Tenses Review

Seteleh menu strip di atas diaktifkan, maka aplikasi akan melakukan analisis terhadap input pada RichTextBox. Kemudian hasil analisis ditampilkan pada tab page Tenses Review di halaman utama, seperti gambar 4.5.

(45)

4.2.4 Menu Strip Spelling Error

Pengguna juga dapat melakukan analisis terhadap input dengan meng-klik menu strip Spelling Error. Analisis tersebut berupa pemeriksaan penulisan kata, seperti pada gambar 4.6.

Gambar 4.6 Menu Strip Spelling Error

Seteleh menu strip di atas diaktifkan, maka aplikasi melakukan analisis terhadap input pada RichTextBox. Kemudian hasil analisis ditampilkan pada tab page Spelling Error di halaman utama, seperti pada gambar 4.7.

Gambar 4.7 Tab Page Spelling Error

(46)

4.2.5 Tab Page Sentence Analysis

Pengguna juga dapat menampilkan matriks CYK dari kalimat yang diinginkan dengan mengaktifkan tab page Sentence Analysis seperti pada gambar 4.8.

Gambar 4.8 Tab Page Sentence Analysis

Pada gambar 4.8 dapat dilihat bahwa terdapat dua TextBox. TextBox yang pertama digunakan untuk menampung input berupa kalimat. Sedangkan TextBox yang kedua digunakan untuk menampilkan output hasil analisis terhadap input pada TextBox yang pertama jika button Anlyze diaktifkan. Sementara itu, button Zoom digunakan untuk menampilkan TextBox yang kedua pada halaman baru, dan button info digunakan untuk menampilkan informasi dari setiap simbol yang digunakan pada hasil analisis.

(47)

4.3 Pengujian Aplikasi

Pengujian aplikasi bertujuan untuk memastikan bahwa aplikasi telah memiliki kemampuan yang baik sesuai dengan tujuan perancangan, yaitu mengoreksi kalimat dalam Bahasa Inggris seperti memeriksa tenses, kesesuaian subjek dengan predikat dan keterangan waktu, dan memberikan usulan penulisan terhadap penulisan kata yang dianggap salah.

4.3.1 Pengujian Menu Strip Tenses Review

Aplikasi dirancang tidak hanya dapat digunakan untuk melakukan analisis terhadap input yang dimasukkan secara langsung pada RichTextBox, tetapi juga input berupa file dalam format *.doc dan *.txt. Pada contoh berikut ini, aplikasi diuji untuk menganalisis input yang sama, tetapi input tersebut dimasukkan dengan cara yang berbeda, yaitu berupa input langsung dan file. Input tersebut adalah kalimat-kalimat berikut ini.

I applied to graduate school last month. I have thought about it for two hours. I had thought about until last night. The doorbell have just rung suddenly.

I hope I will have a successful plan yesterday. It sounds good.

Selanjutnya, input di atas dimasukkan ke dalam RichTextBox. Setelah itu, analisis dapat dilakukan dengan meng-klik menu strip Analyze Tenses Review. Hasil analisis tersebut dapat dilihat pada gambar 4.9.

(48)

Gambar 4.9 Tampilan pengujian Menu Strip Tenses Review dengan inputan

langsung

Pada kalimat ke-2, yaitu “I had thought about it until las night” dianggap salah karena tidak sesuai dengan aturan CNF; kalimat ke-3 dianggap salah karena ketidaksesuaian antara subjek dengan predikat, yaitu “The doorbell have”; Dan kalimat ke-4 dianggap salah karena ketidaksesuaian predikat dengan keterangan waktu. Sedangkan pada TextBox sebelah kanan digunakan untuk menampilkan jenis kata (POS Tagging).

(49)

Pengujian berikutnya dilakukan terhadap input berupa file *.doc dengan cara meng-klik menu strip File Open, kemudian memilih file pada direktori penyimpanan, seperti pada gambar 4.10 dan 4.11.

Gambar 4.10 Tampilan Menu Strip Open

(50)

Selanjutnya, input yang ada di dalam file TesSkripsi.doc dimasukkan ke dalam RichTextBox. Setelah itu, analisis dapat dilakukan dengan meng-klik menu strip Analyze Tenses Review. Hasil analisis dapat dilihat pada gambar 4.12.

Gambar 4.12 Tampilan pengujian Menu Strip Tenses Review dengan input file

Output hasil analisis pada gambar di atas sama dengan output hasil analisis pada gambar 4.9. Sehingga dapat diambil kesimpulan bahwa aplikasi telah mempu melakukan analisis terhadap input langsung dan file dalam format *.doc dan *.txt dengan baik.

(51)

4.3.2 Pengujian Menu Strip Spelling Error

Input yang digunakan pada pengujian ini sama dengan input pada pengujian menu strip Tenses Review, tetapi sedikit dimodifikasi. Input tersebut adalah sebagai berikut ini.

I applied to graiduate school last month. I have thought about it for two hours. I had thought about until last night. The doorbell have just rung suddeenly. I hope I will have a sucessful plan yesterday. It sounds good.

Selanjutnya, input di atas dimasukkan ke dalam RichTextBox. Setelah itu, analisis dapat dilakukan dengan meng-klik menu strip Analyze Spelling Error. Hasil analisis terhadap input dapat dilihat pada gambar 4.13.

(52)

Pada gambar 4.13, hasil analisis ditampilkan pada tab page Spelling Error. Hasil analisis tersebut berupa usulan penulisan kata terhadap kata yang salah, yaitu graiduate, suddeenly, dan sucessful. Usulan penulisan kata tersebut tidak hanya ditampilkan pada tab page Spelling Error, tetapi juga dapat dilihat dengan melakukan klik kanan pada kata yang salah secara langsung, kemudian usulan penelitian akan ditampilkan pada context menu, seperti pada gambar 4.14.

Gambar 4.14 Tampilan usulan penulisan dengan klik kanan

Jika usulan penulisan kata tidak ditemukan (Not Found), pengguna dapat mengganti distance yang terletak di sebelah atas RichTextBox menjadi angka yang lebih tinggi. Secara default, jarak Levenshtein (distance) yang digunakan oleh aplikasi adalah 1. Misalkan pada contoh di atas yaitu kata “graiduate”, usuluan penulisan kata yang diberikan jika distance yang digunakan adalah 1 dapat dilihat pada gambar 4.15.

(53)

Jika usulan penulisan kata yang ditampilkan kurang tepat, maka pengguna dapat mengatur distance sesuai dengan kebutuhan, misalnya pada gambar 4.15 distance yang digunakan adalah 1, kemudian distance tersebut diubah menjadi 2. Sehingga usulan penulisan kata yang ditampilkan oleh aplikasi tentu akan berbeda, seperti pada gambar 4.16.

Gambar 4.16 Tampilan usulan penulisan kata dengan distance 2

Semakin besar nilai distance yang digunakan, maka akurasi usulan penulisan kata yang ditampilkan oleh aplikasi akan semakin rendah. Hal ini dikarenakan aplikasi menampilkan usulan penulisan kata hanya berdasarkan distance. Seperti pada gambar 4.17, usulan penulisan kata yang ditampilkan aplikasi dengan distance 3 memiliki akurasi yang rendah jika kata yang dimaksud oleh pengguna adalah “graduate”, seperti pada gambar 4.17.

(54)

4.3.3 Pengujian Sentence Analysis

Pada bagian ini, pengujian hanya dilakukan terhadap satu kalimat saja. Tujuan bagian ini adalah untuk mengetahui apakah untuk kalimat tertentu dapat dibentuk matriks CYK atau tidak berdasarkan aturan CNF yang digunakan, sehingga pengguna dapat memahami kenapa pola kalimat tersebut dianggap salah atau benar. Misalkan contoh input yang digunakan pada gambar 4.18 adalah “The doorbell has just rung suddenly”.

Gambar 4.18 Tampilan pengujian sentence analysis

Jika hasil analisis pada gambar di atas terlihat terlalu kecil, maka pengguna dapat memperbesarnya dengan cara meng-klik button zoom pada gambar 4.18 untuk menampilkan hasil analisis pada jendela baru, seperti pada gambar 4.19.

(55)

  Gambar 4.19 Tampilan matriks CYK

Input yang digunakan pada gambar 4.19 adalah “The doorbell have just rung suddenly.” Kalimat tersebut dianggap benar karena pada matriks [1, jumlah kata] atau [1, 6] terdapat root S. Sebaliknya jika pada matriks [1, 6] tidak terdapat root S, maka pola kalimat akan dianggap salah.

(56)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil analisis, perancangan, implementasi dan pengujian sistem, maka dapat ditarik kesimpulan sebagai berikut ini.

1. Meskipun pola kalimat dalam Bahasa Inggris sangat variatif, tetapi pada dasarnya pola kalimat tersebut terdiri dari subjek dan predikat yang diperluas dalam bentuk frase atau klausa, sehingga pengenalan pola kalimat dalam Bahasa Inggris dengan algoritma CYK dan aturan CNF sangat cocok karena teknik yang digunakan adalah dengan merangkaikan unsur yang lebih kecil di dalam kalimat ke dalam unsur yang lebih umum, dalam hal ini adalah beberapa kata dikelompokkan menjadi frase, dan beberapa frase dikelompokkan menjadi kalimat.

2. Bahasa Inggris memiliki jumlah kosakata yang sangat banyak, sehingga cara yang paling efektif untuk mengenali apakah sebuah kata dianggap sebagai kata di dalam Bahasa Inggris atau tidak adalah dengan membandingkan kata tersebut dengan database kamus Bahasa Inggris.

3. Setiap nonterminal di dalam aturan CNF tidak hanya dapat diturunkan menjadi terminal, tetapi juga dapat berupa nonterminal lainnya, sehingga teknik ini dapat digunakan untuk menurunkan subjek yang berupa noun-phrase menjadi terminal noun atau nonterminal determiner dan noun-phrase lagi, dan kedua nonterminal tersebut dapat diturunkan lagi menjadi terminal

(57)

atau pun nonterminal berikutnya, hal ini memungkinkan seseorang untuk membuat aturan yang dapat menurunkan kalimat menjadi klausa, frase, atau kata.

4. Nilai jarak Levenshtein antar string berupa nilai dengan tipe data integer bukan boolean; nilai tersebut diperoleh dengan membandingkan selisih perbedaan antara string sumber dengan string target; kemudian dari nilai perbedaan tersebut dapat dilakukan pengurutan berdasarkan jarak Levenshtein terkecil yang diinginkan; dan kata dengan jarak Levenshtein terkecil ditampilkan sebagai usulan penulisan kata.

5.2 Saran

Setelah mengevaluasi hasil penelitian, maka beberapa saran untuk pengembangan penelitian selanjutnya sebagai berikut :

1. Pola kalimat Bahasa Inggris sangat variatif, sehingga untuk menghindari ambiguitas pada aturan CNF maka diperlukan aturan yang membutuhkan banyak variabel, sehingga simbol yang digunakan untuk menandai nonterminal dapat dibuat lebih dari satu karakter, misalnya noun phrase ditulis NP bukan N agar maksimal jumlah variabel yang dapat digunakan lebih dari 26 nonterminal, begitu juga dengan terminal.

2. Pola kalimat diperiksa berdasarkan prediksi jenis kata, sehingga untuk akurasi yang optimal maka fungsi penentuan jenis kata dapat dibuat dengan pendekatan khusus, sehingga tidak bergantung pada akurasi prediksi jenis kata oleh openNLP.

(58)

3. Pemeriksaan pola kalimat juga sangat bergantung pada aturan CNF yang digunakan, sehingga untuk menghindari kekurangan pada aturan tersebut diperlukan kajian khusus untuk merancang aturan CNF yang melibatkan ahli bahasa.

4. Pada penelitian ini pemeriksaan jenis tenses dilakukan berdasarkan aturan yang terpisah dari aturan CNF dan masih memiliki akurasi yang rendah, mesikpun demikian pemeriksaan tenses tersebut juga dapat dilakukan dengan aturan CNF dan selanjutnya diperiksa dengan algoritma CYK sehingga aplikasi dapat mengenali jenis tenses untuk kalimat majemuk, dan tidak hanya terbatas pada enam jenis tenses seperti pada penelitian ini.

5. Usulan penulisan kata tidak hanya dapat ditentukan dengan jarak Levenshtein, tetapi juga dapat dikombinasikan dengan rating kata yang paling sering muncul, sehingga kata yang dipilih sebagai usulan penulisan kata ditentukan berdasarkan jarak Levenshtein terkecil dan rating yang tertinggi dari daftar kata yang paling sering muncul.

6. Usulan penulisan kata juga dapat ditentukan dengan menggabungkan pendekatan pencocokan string dengan pemeriksaan pola kalimat, sehingga usulan penulisan kata ditampilkan berdasarkan jarak Levenshtein dan juga prediksi jenis kata dari hasil pemeriksaan pola kalimat.

Gambar

Tabel 3.1 Tahap pertama pengisian tabel CYK
Tabel 3.2 Tahap kedua pengisian tabel CYK
Gambar 3.5 Pohon penurunan untuk input “I paint the house”
Tabel 3.6 Penentuan tabel  jarak Levenshtein
+7

Referensi

Dokumen terkait

 gaji, skor ujian, jumlah buku bunga BCA 7% dan bunga Mandiri 14%, maka bunga Mandiri 2 kali bunga BCA. Data kualitatif adalah data yang disajikan bukan dalam bentuk

(4) Pengangkatan kembali dalam Jabatan Fungsional Penata Pertanahan sebagaimana dimaksud pada ayat (3), dilakukan dengan menggunakan Angka Kredit terakhir yang dimiliki

Dalam Ballenjer JJ Penyakit Telinga, Hidung, Tenggorok, Kepala dan Leher, edisi 13, Jilid Dua, Binarupa Aksara, Jakarta.. Embriologi Anatomi

Sintesis Surfaktan Metil Ester Sulfonat Minyak Jarak dari Biji Jarak Pagar (Jatropha curcas L.).. Skripsi

• Tingkat Emisi Acuan Hutan REDD+ merupakan tingkat emisi yang akan dijadikan acuan untuk mengukur keberhasilan pemerintah menurunkan emisi dari. deforestasi dan degradasi

TENTANG BOLEH NIAGA, KELAYAKAN UNTUK TUJUAN TERTENTU, ATAU APA-APA JAMINAN LAIN, DIBERI TENTANG MAKLUMAT ATAU PRODUK YANG DIRUJUK OLEH

 Mein Haus hat zwei ein Schlafzimmer Berdasarkan kalimat tersebut diatas tergolong klasifikasi tipe kesalahan ketaatasasan. Karena dalam kalimat tersebut siswa tidak dapat

Tingkat pengetahuan ibu hamil berdasarkan definisi kebudayaan, terutama pada pertanyaan tentang kehamilan merupakan proses alamiah sebagai kodratnya sebagai perempuan,