Pada tahap analisis sintaksis, penulis tidak hanya menganalisis pola kalimat saja tetapi juga menggunakan algoritma Earley untuk menentukan apakah kalimat input-an dari mahasiswa/i bisa diproses berdasarkan grammar yang telah dibangun pada analisis pola kalimat. Untuk membut parser-nya penulis menggunakan Jerly (J-Earley), yaitu sebuah implementasi Java dari parser sintaksis berdasarkan algoritma Earley. Jerly ini bersifat open source sehingga penulis memutuskan untuk menggunakan Jerly ke dalam sistem ini (reuse code).
Sistem akan membaca input-an kalimat mahasiswa/i, kemudian memeriksanya berdasarkan pada grammar yang ada.
Grammar berupa Context Free Grammar (CFG) dengan G=(VN, VT, S, H). Matriks F akan dikompilasi per kolom dari kiri ke kanan dengan setiap kolom dikomputasi bottom up kecuali sel Fi,j dalam diagonal utama, yang akan dikomputasi terakhir pada tiap kolom. Pertama kali sel dari F bernilai kosong dan akan diisi dengan algoritma berikut:
1. j Å 0 S Æ W Є H Ö S Æ .W Є F0,0
Penjelasan : aturan S Æ W Є H ditulis ke sel (0,0) sebagai Î S Æ .W Є F0,0
2. B Æ U Є H
k ≤ j A Æ X. BY Є Fi,k
Ö B Æ .U Є Fi,j
(dimana B Є VN ; U Є (VNU VT) + ; X,Y Є (VNU VT)x) Penjelasan:
Ulangi selama k ≤ j (misalnya dalam kolom j, proses bergerak ke bawah sel demi sel)
{
Pada sel A Æ X. BY Є Fi,k, dicari aturan dimana ada sebuah non-terminal setelah tanda dot. Non-terminal ini dianggap sebagai B (disimpan ke dalam sebuah variable). Jika ada aturan B Æ U Є H, maka tambahkan B Æ .U Є Fi,j yang merupakan sel bawah kolom.
}
3. Jika j = n, maka komputasi selesai Jika j < n, maka j Å j+1, iÅ i-1 Penjelasan:
Jika j = n, maka komputasi selesai.
Jika j < n, maka tambahkan j dan kurangi i. Variabel j menunjuk pada kolom saat ini. Dengan j, proses bergerak satu kolom ke kanan . Variabel i menunjuk pada sel saat ini, terbawah, dan proses bergerka maju dengan i pada langkah berikutnya.
4. A Æ X.aj Y Є Fi,j-1 Ö A Æ X.aj Y Є Fi,j Penjelasan:
Pada satu sel di sebleh kiri sel (i,j), jika ada aturan yang memiliki terminal setelah dot, maka cocokan pada database: terminal tersebut dengan kata ke-j dari input-an kalimat. Jika hasilnya cocok, maka salin aturan ini ke sel (i,j), dan pindahkan dot ke satu posisi ke kanan.
5. I ≤ k < j: A Æ X. BY Є Fi,k
B Æ U. Є Fk,j
Ö A Æ XB.Y Є Fi,j
(dimana U Є (VN U VT)x) Penjelasan:
Simpan sel pada posisi (k,j) ke dalam variable E.
Kemudian simpan sel pada posisi (i,k) ke dalam variable G.
Jika ada aturan dalam E yang letak dot paling akhir
(seperti B Æ U. Є Fk,j), maka simpan B. Kemudian liat G.
Jika ada aturan dimana B berada disebelah kanan dari dot, maka salin aturan ini ke sel (i,j), lalu pindahkan dot tersebut ke satu posisi kanan. Setelah itu, bergerak dengan E satu sel ke bawah, dan dengan G satu sel ke kanan, dan proses dimulai lagi. Perulangan akan berhenti ketika mencapai F pada sel, yang di sebelah (i,j) Jika ada aturan baru pada B Æ U. Є Fi,j, maka harus dipasangkan antara sel (0,j) dengan (0,0) lagi.
6. Jika i > 0: i Å i-1, goto 4 Jika i = 0: goto 2
Penjelasan:
Jika i > 0: i Å i-1, goto 4, maka kurangi i dan menuju ke langkah 4. Artinya jika proses belum sampai ke atas dengan i, maka bergerak dengan i ke satu posisi ke atas, dan melompat ke langkah 4.
Jika i = 0: goto 2, maka menuju ke langkah 2.
Artinya jika proses sudah di atas dengan i, maka melompat ke langkah 2.
Berikut contoh simulasi penerapan algoritma Earley pada contoh grammar sederhana untuk kalimat “Aplikasi menjalankan komputer”.
Grammar contoh:
KALIMAT Æ S P O S Æ KBenda (KB) P Æ KKerja (KK) O Æ KBenda (KB)
Tabel 3.4 Proses Simulasi Algoritma Earley
0 0 1 2 3
Sel (0,3) memiliki aturan dot dari bentuk SÆ U. , oleh karena itu, kalimat “Aplikasi menjalankan komputer” dapat diterima oleh sistem berdasarkan contoh grammar sederhana diatas.
Untuk mempermudah dalam melihat prose yang terjadi di sistem, maka penulis membangun parser tree berdasar contoh kalimat diatas. Parser tree ini hanya sekedar bentuk
representasi visual dari proses parsing yang terjadi pada sistem.
Klausa
S P O Ket
FB S2 FK O Ket1 Klausa5
ε ε
FB KH1 FB2 FK2 FK3 KH2 Klausa2 Ket2
ε ε ε FB
F.Bil KB FB K.Ket FK4 KH Ket3
ε ε ε
Aplikasi KH1 FB2 KK K.Ket2 F.Bil KB FB Atau
FB1 ε ε ε ε ε
Adalah Aplikasi FB1 KB FB
ε ε
Software
Gambar 3.4 Parse Tree Pada Kalimat Jawaban
Klausa2
S P O Ket
ε FK FB Ket1 Klausa3
ε FK2 FK3 KH2 FB2 Ket2
ε FB ε ε ε
K.Ket2 FK4
ε
KK K.Ket2 F.Bil KB FB
ε ε ε Membuat Anda
Gambar 3.5 Parser Tree Klausa 2 Pada Kalimat Jawaban
Klausa3
S P O Ket
ε FK FB Ket1 Klausa4
ε FK2 FK3 KH1 FB2 Ket2
FB1 ε ε ε K.Ket2 FK4 FK2
ε
KK K.Ket2 F.Bil KB FB ε K.Ket2 FK4 ε
Bisa ε Tugas
FB1 KH1 FB2
KK K.Ket2 ε ε
ε KS FB
Mengerjakan Tertentu ε
Gambar 3.6 Parser Tree Klausa 3 Pada Kalimat Jawaban
Klausa4
S P O Ket
ε FK FB ε
FK2 FK3 KH1 FB2
ε FB1 ε ε K.Ket2 FK4
ε
KK K.Ket2 F.Bil KB FB ε ε ε
Memecahkan Masalah
Gambar 3.7 Parser Tree Klausa 4 Pada Kalimat Jawaban
Klausa5
S P O Ket
ε FK FB ε
FK2 FK3 KH1 FB2
ε FB1 ε ε K.Ket2 FK4
Sekedar
KK K.Ket2 F.Bil KB FB ε ε ε
Mencari Hiburan
Gambar 3.8 Parser Tree Klausa 5 Pada Kalimat Jawaban
Jika dilihat dari hasil parsing pada Gambar 3.4 sampai dengan Gambar 3.8. Parsing dibuat berdasarkan pada grammar yang dibuat, kalimat input-an dinyatakan Benar (True) jika kalimat tersebut dianggap sesuai dengan tata bahasa Indonesia atau diterima oleh grammar. Sebaliknya, kalimat dinyatakan Salah (False) maka sistem akan menolak kalimat tersebut. Hal ini disebabkan oleh kalimat input-an jawaban yang memang tidak sesuai dengan grammar yang ada, terjadi kesalahan mengetikan kata sehingga tidak ditemukan pada database pada saat pencarian. Saat ini sistem parser yang dibangun penulis hanya bisa menerima kalimat input-an yang sesuai dengan grammar dan yang tiap katanya terdapat di dalam database.
3.3.2.3 Analisis Semantik
Setelah berhasil melewati tahap morfologi, dan sintaksis, maka penulis dapat menyimpulkan bahwa kalimat input-an mahasiswa/i sudah sesuai dengan tata bahasa Indonesia yang dirumuskan melalui grammar yang dibuat. Maka dapat dilanjutkan ke tahap berikutnya yaitu analisis semantik.
Pada perancangan analisis semantik ini, sistem hanya akan dibuat melalui tahapan analisis semantik kata dari input-an mahasiswa/i dari beberapa kalimat yang di-input, sistem akan
mencoba untuk membangun konsep atau intisari dari kalimat tersebut berdasarkan arti tiap kata. Hal yang sama dilakukan oleh dosen dalam menganalisis jawaban dari mahasiswa/i yaitu dengan membuat rubrik, tetapi masih dengan cara manual dan tidak diresmikan oleh tim pembuat soal. Kalimat intisari yang diperoleh dari sistem oleh penulis akan dicocokan dengan database jawaban yang sudah disediakan. Hasil dari pencocokan atau pengevaluasian dari sistem akan ditampilkan pada layar beserta nilai yang dapat diperoleh mahasiswa setelah menjawab soal Untuk mendapatkan evaluasi yang diinginkan maka penulis dalam rancangannya mengerjakan beberapa tahapan yaitu: