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.
Universitas Sumatera Utara
37
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
Universitas Sumatera Utara
38
Berdasarkan gambar 3.1 dapat dilihat bahwa masalah dipengaruhi oleh empat faktor primer, yaitu people, method, material, dan machine. Kemudian faktorfaktor primer tersebut dijabarkan menjadi beberapa 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.1 Kebutuhan 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.
Universitas Sumatera Utara
39
7.
Sistem mampu memberikan usulan penulisan kata terhadap penulisan kata yang salah berdasarkan jarak Levenshtein yang diinginkan.
3.1.3.2 Kebutuhan 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.
2.
Waktu pemeriksaan kalimat relatif singkat.
Sisi kemudahan penggunaan, sistem yang dirancang memiliki :
Tampilan antarmuka yang dirancang sedimikian rupa sehingga mirip dengan antarmuka perangkat lunak ternama pada umumnya, seperti layout menu bar, tool bar, dan tab control.
Setiap halaman form dirancang dengan mempertimbangkan konsistensi jenis huruf, warna, dan layout dari antarmuka.
3.
Sisi ekonomi, sistem yang dirancang memiliki :
4.
Bahasa yang digunakan sederhana dan mudah dimengerti.
Instalasi perangkat lunak dan keras tidak memerlukan biaya ekstra.
Sisi dokumentasi, sistem memiliki kemampuan sebagai berikut:
Sistem dapat menyimpan input yang dimasukkan pengguna dalam format *.doc dan *.txt.
Universitas Sumatera Utara
40
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]
Universitas Sumatera Utara
41
Aplikasi Pengoreksi Kalimat Bahasa Inggris
<
>
Inputan langsung
Memasukkan string kalimat <>
Input file User Memeriksa spelling error
<>
Jarak Lenveshtein
Memeriksa tenses review
<>
Aturan CNF <>
Generate matriks CYK
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.
Universitas Sumatera Utara
42
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.
Universitas Sumatera Utara
43
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.
Universitas Sumatera Utara
44
begin Step 1
:
Step 2
:
for i = 1 to n do 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 1n.
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.
6.
Pada step 3b inisialisasi Vij dengan Ø.
Universitas Sumatera Utara
45
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
3
4
i 1
2
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}.
Universitas Sumatera Utara
46
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
N
V
A
N
1 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}.
Universitas Sumatera Utara
47
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
2
S
Ø
N
j
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}.
Universitas Sumatera Utara
48
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
2
S
Ø
N
3
Ø
V
j
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.
Universitas Sumatera Utara
49
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
2
S
Ø
N
3
Ø
V
4
S
j
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.
Gambar 3.5 Pohon penurunan untuk input “I paint the house”
Universitas Sumatera Utara
50
3.3.2 Pseudocode Algoritma Levenshtein Implementasi jarak Levenshtein juga dapat dilakukan dengan teknik program dinamis, yaitu proses pencocokan string dilakukan secara bertahap. Tahapantahapan 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
Step 3c :
D[i, j] =
cost = 1
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.
2.
Step 1
Step 2
: 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
: 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
Universitas Sumatera Utara
51
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
Universitas Sumatera Utara
52
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
Universitas Sumatera Utara
53
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 a n
j,i 0 1 2 3
0 0 1 2 3
0 c 1 1 0 1 2
1 i 2 2 1 1 2
2 n 3 3 2 2 1
Universitas Sumatera Utara
54
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, langkahlangkah tersebut dapat dilihat pada gambar 3.6.
Gambar 3.6 Flowchart pemeriksaan spelling error
Universitas Sumatera Utara
55
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.
Gambar 3.7 Flowchart pemeriksaan tenses review
Universitas Sumatera Utara
56
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 Article
every, some, all, dan lain-lain. a, an, the dan lain-lain.
Preposition
in, of, on, to dan lain-lain.
Conjunction
and, 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
Universitas Sumatera Utara
57
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 :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> VJ | v
V : verb phrase
J
-> j
J : adjective
O
-> n
O : noun
Contoh : (The | d) (Devils | n) (are | v) (ugly | j).
Universitas Sumatera Utara
58
3.
Noun phrase + To be + Noun phrase CNF :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> VN | v
V : verb phrase
O
-> n
O : noun
Contoh : (The | d) (Devil | n) (has | v) (a |d) (friend | n).
4.
Noun phrase + Linking verb + Adjective CNF :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> VJ | v
V : verb phrase
J
-> j
J : adjective
O
-> n
O : noun
Contoh : (The | d) (Devil | n) (looks | v) (sad | j).
Universitas Sumatera Utara
59
5.
Noun phrase + Linking verb + Noun phrase CNF :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> VN | v
V : verb phrase
O
-> n
O : noun
Contoh : (The | d) (Devil | n) (become | v) (a |d) (infidel | n). 6.
Noun phrase + Verb CNF :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> v
V : verb phrase
O
-> n
O : noun
Contoh : (The | d) (Devil | n) (cried | v). 7.
Noun phrase + Verb + Noun phrase CNF :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> VN | v
V : verb phrase
O
-> n
O : noun
Universitas Sumatera Utara
60
Contoh : (The | d) (Devil | n) (burned | v) (a | d) (book | n) 8.
Noun phrase + Verb + Noun phrase + Noun phrase CNF :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> VN | v
V : verb phrase
O
-> O | n
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 :
Keterangan :
S
-> NV
S : sentence
N
-> DO | n
N : noun phrase
D
-> d
D : determiner
V
-> v
V : verb phrase
O
-> n
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.
Universitas Sumatera Utara
61
Tabel 3.7 Daftar nonterminal aturan CNF No Nonterminal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
S B C D E F G H I J K, A L M N O P Q R T U V W
Keterangan Sentence Preposition TO Coordinating conjuction Determiner, predeterminer Possessive pronoun Single verb Gerund Particle Preposition Adjective Adverb Cardinal number Modal Noun phrase I Noun phrase II Prepositional phrase Quantifier Relative clause TO F | TO N Noun phrase III Verb phrase Wh-question, Wh-pronoun, Wh-adverb
Tabel 3.8 Daftar terminal No Nonterminal 1 2 3 4 5 6 7 8 9 10 11 12 13 14
c b d e g h i j k, r l m n p q
Keterangan Coordinating conjuction Preposition TO Determiner, predeterminer Possessive pronoun Gerund Single verb Preposition Adjective Adverb Cardinal number Modal Noun Pronoun Quantifier
Universitas Sumatera Utara
62
15 16
v w
verb 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 Step Step Step
1 2 3 3a
: baca file kamus.txt dengan StreamReader : string line : while ((line = file.ReadLine()) != null) : listWords.Add(line)
Universitas Sumatera Utara
63
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.
Universitas Sumatera Utara
64
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 Step Step Step Step
1 2 2a 2b 3
: buka file baru wordList.txt dengan StreamWriter : foreach (string s in wordListUnique) : if (s.Trim() != "") : file.WriteLine(s.Trim()); : 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
Universitas Sumatera Utara
65
“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.1 Halaman 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.
Universitas Sumatera Utara
66
MENU STRIP TOOL STRIP
RichTextBox
Tenses Review
Spelling Error
TextBox
Sentence Analysis
TabControl
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
1
MenuStrip
2
ToolStrip
3
RichTextBox
4 5
TextBox TabControl
Keterangan Digunakan untuk menampilkan dan mengaktifkan menu perintah yang diinginkan user. Digunakan untuk menampilkan barisan submenu seperti toolbar. Digunakan untuk menampung input, dalam hal ini adalah teks, yang memiliki properti lebih banyak dibandingkan TextBox. Digunakan untuk menampung teks. Digunakan untuk menampung output hasil analisis terhadap kalimat berupa teks.
Universitas Sumatera Utara
67
3.5.3.2 Menu 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
Edit
New Open... Save Save As... Print... Exit
Font
Paragraph
Analyze
Help
Spelling Error Tenses Review CNF Rules
Sample Appendix
Undo Redo
Select Font... Font Color...
Increase Indent… Alignment...
Find... Find and Replace
Bold Italic Underline Normal
Bullet...
Select All Copy Cut Paste
Page Color...
Insert Images...
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
1
New
2
Open
3 4
Save Save As
5 6 7 8 9
Print Exit Undo Redo Find
10
Find and Replace
Keterangan Digunakan untuk memulai dokumen baru. Digunakan untuk membuka dokumen pada direktori penyimpanan. Digunakan menyimpan dokumen. Digunakan untuk menyimpan dokumen baru. Digunakan untuk mencetak document. Digunakan untuk menutup aplikasi. Digunakan untuk membatalkan perintah. Digunakan untuk membatalkan undo. Digunakan untuk menemukan kata di dalam RichTextBox Digunakan untuk menemukan dan mengganti kata yang diinginkan.
Universitas Sumatera Utara
68
11
Select All
12 13 14
Copy Cut Paste
15
Insert Images
16
Select Font
17 18
Font Color Bold
19 20
Italic Underline
21
Normal
22
Page Color
23
Increase Indent
24
Alignment
25
Bullet
26
Spelling Error
27
Tenses Review
28
CNF Rules
29
Sample
30
Appendix
Digunakan untuk men-seleksi semua teks. Digunakan untuk menyalin teks. Digunakan memotong teks. Digunakan untuk menempelkan teks yang telah disalin. Digunakan untuk menyisipkan gambar pada RichTextBox. Digunakan untuk memilih jenis huruf, dan ukuran. Digunakan untuk mewarnai huruf. Digunakan untuk membuat teks bercetak tebal. Digunakan untuk membuat teks miring. Digunakan untuk membuat teks bergaris bawah. Digunakan untuk membuat teks menjadi default. Digunakan merubah warna latar belakang RichTextBox. Digunakan untuk menggeser teks ke sebelah kanan di dalam RichTextBox. Digunakan untuk mengatur perataan paragraf. Digunakan untuk membuat daftar atau butir teks. Digunakan untuk memeriksa kesalahan penulisan kata. Digunakan untuk memeriksa jenis tenses, hubungan antara subjek, predikat dan keterangan waktu, dan pola kalimat. Digunakan untuk melihat, memodifikasi, dan menyimpan aturan CNF. Digunakan untuk menampilkan contoh penggunaan aplikasi. Berisi daftar dan keterangan simbolsimbol.
Universitas Sumatera Utara
69
3.5.3.3 CNF 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.
Context Free Grammar – Chomsky Normal Form
TextBox1
Apply
Default
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 Digunakan untuk menyimpan aturan CNF yang di-inputkan pada TextBox1. Digunakan untuk me-reset CNF. Digunakan untuk menerima input teks, yaitu CNF. Digunakan untuk menampilkan keterangan dari setiap simbol pada TextBox1.
1
Apply
Button
2 3
Default TextBox1
Button TextBox
4
TextBox2
TextBox
Universitas Sumatera Utara
70
3.5.3.4 Sub 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 1
Angka 1
2
Apply
Jenis Tool
Keterangan
NumericUpDown Digunakan untuk menampilkan daftar angka. Sebuah tombol yang dapat Button diklik untuk mengeksekusi perintah.
3.5.3.5 Tab 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.
Universitas Sumatera Utara
71
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 Menampilkan output hasil analisis jika menu strip tenses review diklik. Menampilkan output hasil analisis jika menu strip spelling error diklik. Menampilkan output hasil analisis untuk kalimat yang diinginkan. Digunakan untuk menampilkan hasil analisis apakah kalimat benar atau salah. Menampilkan jumah karakter dari input.
1
Tenses Review
Tab page
2
Spelling Error
Tab page
3
Sentence Analysis Tab page
4
RichTextBox
RichTextBox
5
Char Count
Label
6
Word Count
Label
Menampilkan jumah kata dari input
Universitas Sumatera Utara
72
7
Sentence Count
Label
8
Sentences OK
Label
9
Sentences BAD
Label
10
Accuration
Label
Menampilkan jumah kalimat dari input. Menampilkan jumah kalimat yang dianggap benar. Menampilkan jumah kalimat yang dianggap salah. 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.
Universitas Sumatera Utara
73
Tabel 3.14 Tools yang digunakan pada perancangan tab page spelling error No Nama Tool
Jenis Tool
Keterangan Digunakan untuk menampilkan hasil analisis apakah penulisan kata benar atau tidak. Menampilkan jumah kata yang dianggap benar.
1
RichTextBox
RichTextBox
2
Word OK
Label
3
Word BAD
Label
4
Accuration
Label
Menampilkan jumah kata yang dianggap salah. 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.
Gambar 3.18 Perancangan tab page sentence analysis
Universitas Sumatera Utara
74
Tools yang digunakan untuk merancang tampilan gambar 3.18 dapat dilihat pada tabel 3.15. Tabel 3.15 Tools yang digunakan pada perancangan tab page sentence analysis No Nama Tool
Jenis Tool
Keterangan Digunakan untuk mengeksekusi input pada TextBox1 dan menampilkan output pada TextBox2. Digunakan untuk menampilkan output pada TextBox2 pada jendela baru. Digunakan untuk menampilkan keterangan dari setiap simbol yang digunakan. Digunakan untuk menampung input berupa kalimat. Digunakan untuk menampilkan output berupa matriks CYK sebagai hasil analisis dari input pada TextBox1.
1
Analyze
Button
2
Zoom
Button
3
Info
Button
4
TextBox1
TextBox
4
TextBox2
TextBox
Universitas Sumatera Utara
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.1 Perangkat 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.
Universitas Sumatera Utara
76
4.1.1.2 Perangkat 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.
Universitas Sumatera Utara
77
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.
Universitas Sumatera Utara
78
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.
Gambar 4.3 Implementasi form CNF Rules
Universitas Sumatera Utara
79
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.
Gambar 4.5 Tab Page Tenses Review
Universitas Sumatera Utara
80
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
Universitas Sumatera Utara
81
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.
Universitas Sumatera Utara
82
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.
Universitas Sumatera Utara
83
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).
Universitas Sumatera Utara
84
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
Gambar 4.11 Tampilan direktori penyimpanan
Universitas Sumatera Utara
85
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.
Universitas Sumatera Utara
86
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.
Gambar 4.13 Tampilan pengujian Menu Strip Spelling Error
Universitas Sumatera Utara
87
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.
Gambar 4.15 Tampilan usulan penulisan kata dengan distance 1
Universitas Sumatera Utara
88
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.
Gambar 4.17 Tampilan usulan penulisan kata dengan distance 3
Universitas Sumatera Utara
89
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.
Universitas Sumatera Utara
90
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.
Universitas Sumatera Utara
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 nounphrase menjadi terminal noun atau nonterminal determiner dan noun-phrase lagi, dan kedua nonterminal tersebut dapat diturunkan lagi menjadi terminal
Universitas Sumatera Utara
92
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.
Universitas Sumatera Utara
93
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.
Universitas Sumatera Utara