BAB III ANALISA DAN PERANCANGAN
Pada bab ini dijelaskan mengenai tahap analisa dan perancangan. Proses analisa dilakukan untuk menemukan solusi dari permasalahan yang telah diajukan sebelumnya pada sub bab 1.2.
Proses perancangan dilakukan untuk
mendefinisikan spesifikasi kebutuhan perangkat lunak, analisa arsitektur perangkat lunak, diagram use case, activity diagram, class diagram, dan interaction diagram serta perancangan basis data dan perancangan antar muka.
3.1
Analisa Sistem Hampir semua aspek kehidupan dan ilmu pengetahuan bersinggungan
dengan matematika. Matematika dasar sangat penting pengaruhnya terhadap matematika lanjut atau yang tingkatan lebih rumit. Jika di awal pembelajaran matematika menjadi hal yang ditakuti, maka secara otomatis pembelajaran terhadap pengetahuan lainnya – yang
mengadopsi matematika, ikut menjadi
pengetahuan yang kurang diminati. Hal dasar inilah yang dijadikan acuan untuk membantu pembelajaran matematika menjadi sesuatu yang mengasyikan dan menantang untuk bisa lebih mendalami dan menguasai. Pada Teori Bahasa Formal, setiap bahasa memiliki suatu aturan tata bahasa yang baku dan konsisten. Dalam kenyataannya, bahasa yang dipakai oleh manusia merupakan konvensi/kesepakatan dari para pemakai bahasa tersebut. Akibatnya, tata bahasa yang digunakan seringkali tidak konsisten. Oleh karena itu, dapat dimaklumi jika Teori Bahasa Formal tidak dapat memodelkan bahasa manusia secara sempurna. Pembelajaran matematika dasar yang bertujuan untuk membantu mengerjakan soal matematika dari bentuk kalimat bahasa Indonesia menjadi notasi matematika yang valid akan dikembangkan dengan mengadopsi teori bahasa automata.
33
34
3.1.1 Kaidah Matematika Penjabaran kalimat matematika harus memenuhi kaidah matematika. Penjabaran atau notasi matematika yang benar dapat menggunakan format infix, prefix, atau postfix. Notasi matematika infix menempatkan operator di antara operand dan format prefix menempatkan operator di depan operand, sedangkan suffix menempatkan operator di belakang operand. Pada tugas akhir ini, notasi matematika yang dianggap benar hanya yang menggunakan format infix, yaitu operator diletakkan di antara operand. Hal ini disesuaikan juga dengan metode yang biasa digunakan di lingkungan sekolah, terutama untuk pembelajaran matematika dasar. Contoh : Infix
Prefix
Postfix
A+BxC
x+ABC
ABCx+
D/E–F
-/DEF
DE/F-
Seperti yang telah disebutkan pada batasan masalah sebelumnya, dalam tulisan ini notasi matematika yang dianggap benar adalah notasi matematika yang menggunakan format infix. Walaupun infix ini memiliki kekurangan dalam: 1. Urutan pengerjaan tidak berdasarkan letak kiri atau kananya, tetapi berdasarkan precedence-nya. Contoh :
3+4x2 3+4x2
, maka urutan pengerjaan adalah 4 x 2 dahulu.
3+8
, lalu hasilnya ditambah 3
11 Urutan precedence (dari prioritas tertinggi) adalah sebagai berikut : 1. Pemangkatan 2. Perkalian dan Pembagian 3. Penjumlahan dan Pengurangan Namun hal ini bisa diatasi dengan menggunakan tanda kurung. Di mana tanda kurung ini akan menentukan prioritas operasi pada notasi yang ada dalam tanda kurung.
35
2. Jika suatu program akan mengevaluasi (mencari hasil) suatu infix, maka komputer perlu men-scan berulang-ulang mencari urutan pengerjaannya dahulu. Contoh :
7+4 x2 –6 /3
Jika kita diminta untuk menghitung soal seperti itu, maka kita tahu bahwa yang pertama kali harus kita kerjakan adalah 4 x 2. Lalu 6 / 3 dan seterusnya, seperti langkah-langkah berikut : 7+4 x2 –6 /3 7+8–6/3 7+8–2 15 – 2 13 Tetapi hal ini pun bisa ditolerir karena pengerjaan matematika memang harus difahami dulu keseluruhan permasalahan baru menyelesaikannya sesuai pertanyaan yang diminta. Notasi matematika yang menggunakan infix harus memenuhi kaidah berikut: -
Operator (+, -, /, x) selalu diletakkan di antara operand, atau setelah tanda kurung “)”
-
Jumlah kurang buka “(“ selalu sama dengan jumlah kurung tutup “)”
3.1.2 Tingkat Soal Matematika Pembelajaran matematika dasar yang terdiri dari operasi penjumlahan, pengurangan, perkalian dan pembagian, dapat dikelompokkan berdasarkan tingkat kesulitannya, yaitu: 1. Level beginner atau pemula Pada level ini, soal yang diberikan hanya terdiri dari operasi penjumlahan dan pengurangan dengan bilangan yang digunakan merupakan bilangan cacah.
Operator {+, -, =}
Operand {0,1,2,3,4, ..., n}
36
2. Level intermediate atau menengah Pada level ini, soal yang diberikan terdiri dari operasi penjumlahan, pengurangan, perkalian, dan pembagian. Bilangan yang digunakan merupakan bilangan bulat.
Operator {+, -, /, *, (, ), =}
Operand {-n, ..., -4, -3, -2, -1, 0, 1, 2, 3, 4, ..., n} 3. Level advanced atau mahir Pada level ini, soal yang diberikan bisa dijawab dengan metode penjumlahan, pengurangan, perkalian, serta pembagian, dengan bilangan yang digunakan dapat merupakan bilangan desimal Operator {+, -, / , *, (, ), =}
Operand {-n, ..., -0.4, -0.3, -0.2, -0.1, 0, 0.1, 0.2, 0.3, 0.4, ..., n}
3.1.3 Pembatasan Bahasa dalam Natural Language Processing Salah satu aspek tersulit dalam mengembangkan sistem berbasis NLP adalah kompleksitas dan fleksibilitas dari bahasa manusia. Ketika kita membuat suatu Natural language processor, maka kita perlu membatasi tipe dari kalimat dan tata bahasa yang diterima. Sehingga processor hanya akan memahami salah satu atau beberapa dari subset bahasa natural saja. Pada tulisan ini tata bahasa akan dibatasi dengan asumsi semua kalimat yang dipakai adalah deklaratif dan non-interogatif dan mengikuti pola standar : Subjek – predikat - objek Juga diasumsikan bahwa: ¤
Kalimat berita yang valid merupakan kalimat transitif (membutuhkan objek)
¤
Keterangan jumlah bilangan dinotasikan dengan angka
¤
Semua kalimat berita akan diakhiri tanda baca titik (.)
¤
Pertanyaan diakhiri dengan tanda tanya (?)
Sehingga kalimat-kalimat berikut akan diterima secara valid : Adik melempar mangga. Seekor ayam mencakar-cakar tanah. Tetapi parser tidak akan menerima kalimat seperti :
37
Adik berlari. Karena kalimat tersebut merupakan kalimat intransitif.
Untuk semua bagian dari tulisan ini akan mengacu ke pola seperti di atas yang dikenal dengan G1 grammar. Sebagai tambahan diperlukan kosakata yang bisa diterima, yang didaftarkan dalam basis data sebagai validasi.
State Machine NLP Parser State machine parser menggunakan “keadaan terkini (current state)” dari suatu kalimat untuk meramalkan jenis kata apa yang secara valid mengikuti. Gambar berikut menunjukkan transisi yang valid dari satu state/keadaan ke keadaan yang lain. Kalimat: Frase_kata_benda
Frase_kata_kerja
Frase_kata_benda
Frase_kata_benda:
kata_benda
kata_sandang kata_benda kata_benda
kata_keterangan
kata_sandang
kata_keterangan
kata_benda
Frase_kata_kerja: kata_kerja
kata_keterangan
kata_kerja
Gambar 1. State Machine untuk G1 grammar terbatas
38
Soal yang diberikan bisa di-upload oleh pengajar dengan sebelumnya mendefinisikan suatu kata ataupun frase dianggap sebagai suatu operator. Misalnya ”membeli” didefinisikan sebagai suatu operasi penjumlahan (operator ”+”), ”menjual” didefiniskan sebagai suatu operasi pengurangan (operator ”-”), ”membeli sebanyak” didefinisikan sebagai suatu operasi perkalian (operator ”*”). Dengan operand yang digunakan berupa angka atau bilangan.
3.1.4 Diagram Finite State Automata Seperti yang telah dijelaskan sebelumnya, bahwa FSA bisa diasosiasikan dengan sebuah diagram transisi, yaitu sebuah graph berarah yang memiliki sifat berikut: -
Setiap simpulnya mewakili setiap status pada FSA
-
Jika ada transisi dari status x ke status z dengan input a, maka digambarkan dengan suatu state x ke state z dengan input a.
-
Status awal ditandai dengan kata START, status akhir ditandai dengan 2 lingkaran Jadi fungsi dari diagram transisi adalah untuk menggambarkan cara kerja
suatu FSA. Notasi matematika yang benar harus dapat memenuhi aturan FSA. Berikut merupakan diagram FSA dari notasi matematika sederhana.
Gambar 2. Diagram FSA dari notasi matematika sederhana
Karena proses analisa dilakukan sampai tahap sintaksis kalimat, maka digunakan
Deterministic
Finite
Automata,
di
mana
satu
kata
yang
merepsentasikan operator hanya bisa merepresentasikan satu operator (tidak ada percabangan dalam transisi).
3.2
Perancangan Sistem Perancangan sistem dibagi menjadi beberapa bagian, yaitu perancangan
proses, perancangan data, dan perancangan antar muka. Untuk perancangan
39
proses, digunakan pemodelan perangkat lunak menggunakan UML (Unified Modelling Language) berupa use case diagram, activity diagram, class diagram dan sequence diagram.
3.2.1 Use Case Diagram Sebuah use case adalah situasi dimana sistem digunakan untuk memenuhi satu atau lebih kebutuhan pemakai. Use case menggambarkan kebutuhan sistem dari sudut pandang di luar sistem dan menentukan nilai yang diberikan sistem kepada pemakainya.
<
>
Upload Kosa Kata
Cek Kosa Kata <>
Upload Data Aturan
Cek Data Aturan
Lihat Data Aturan Pengajar <>
Upload Soal
Lihat Statistik Jawaban
Siswa
Mengerjakan Soal
Lihat Pembahasan
Gambar 3. Use Case Diagram
Cek Soal
40
Berikut penjelasan dari masing-masing use case: 1.
Upload Kosa Kata Tabel 1. Deskripsi Use Case Upload Kosa Kata Nama
Upload kosa kata
Deskripsi
Upload kosa kata merupakan proses untuk menambahkan kosa kata yang digunakan dalam kalimat soal. Pada proses ini, setiap kata sifatnya unik dan hanya merujuk ke dalam satu jenis kata. Jenis kata yang digunakan meliputi kata benda, kata kerja, kata sifat, kata keterangan, kata hubung serta kata depan.
Aktor
Pengajar
Pra Kondisi
Kosa kata belum ada, kosa kata telah ada.
Kondisi Berhasil
Kosa kata berhasil disimpan di basis data
Kondisi Gagal
Kosa kata gagal disimpan
Main Flow
•
Pengajar memilih menu upload kosa kata
•
Pengajar memasukkan kata atau frase
•
Aplikasi melakukan pengecekan apakah suatu kosa kata
sudah
tersedia
atau
belum
dan
menginformasikannya kepada pengajar • 2.
Kosa kata disimpan
Upload Data Aturan Tabel 2. Deskripsi Use Case Upload Data Aturan Nama
Upload data aturan
Deskripsi
Upload data aturan merupakan proses untuk menentukan satu kata atau frase termasuk ke dalam operator apa. Sedangkan operand tetap didefinisikan dengan angka. Sifat aturan ini statis untuk semua soal.
Aktor
Pengajar
Pra Kondisi
Data aturan belum ada, data aturan telah ada.
Kondisi Berhasil
Data aturan berhasil disimpan di basis data
Kondisi Gagal
Data aturan gagal disimpan
41
Main Flow
•
Pengajar memilih menu upload data aturan
•
Pengajar memasukkan kata atau frase aturan
•
Aplikasi melakukan pengecekan apakah suatu data aturan
sudah
tersedia
atau
belum
dan
menginformasikannya kepada pengajar • 3.
Data aturan disimpan
Upload Soal Tabel 3. Deskripsi Use Case Upload Soal Nama
Upload soal
Deskripsi
Proses ini dilakukan dengan meng-upload soal matematika yang dijabarkan dalam bentuk cerita. Setiap soal dipilah berdasarkan tingkatan
tingkat soal
kesulitannya,
yang
mudah,
apakah
termasuk
menengah
atau
sulit(advanced). Aktor
Pengajar
Pra Kondisi
Soal belum ada, soal telah ada.
Kondisi Berhasil
Soal atau pertanyaan berhasil disimpan di basis data
Kondisi Gagal
Soal gagal disimpan
Main Flow
•
Pengajar memilih menu upload soal
•
Pengajar memasukkan kalimat soal matematika
•
Aplikasi melakukan pengecekan apakah suatu soal sudah
ada
sebelumnya
atau
belum
dan
menginformasikannya kepada pegajar • 4.
Soal disimpan
Lihat Statistik Jawaban Tabel 4. Deskripsi Use Case Lihat Statistik Jawaban Nama
Lihat statistik jawaban
Deskripsi
Proses ini dilakukan untuk menampilkan statistik hasil atau jawaban yang telah dikerjakan siswa. Dari hasil statistik ini
42
dapat digunakan sebagai bahan analisa pengajar untuk lebih meningkatkan kualitas pembelajaran. Aktor
Pengajar
Pra Kondisi
Soal belum ada yang dikerjakan, soal sudah ada yang dikerjakan.
Kondisi Berhasil
Statistik keberhasilan suatu soal ditampilkan
Kondisi Gagal
Statistik keberhasilan suatu soal tidak bisa ditampilkan, Perhitungan statistik salah
Main Flow
•
Pengajar memilih menu lihat statistik jawaban
•
Pengajar memilih/memfilter berdasar range nilai statistik atau memilih semua soal
•
Aplikasi menghitung statistik untuk soal yang diminta
• 5.
Hasil statistik ditampilkan
Lihat Data Aturan Tabel 5. Deskripsi Use Case Lihat Data Aturan Nama
Lihat data aturan
Deskripsi
Proses ini dilakukan untuk dapat melihat data aturan yang digunakan dalam soal. Hal ini bertujuan agar siswa dapat menganalogikan suatu kata atau frase dalam kalimat ke dalam suatu notasi operator matematika.
Aktor
Siswa, pengajar
Pra Kondisi
Data aturan belum ada, data aturan telah ada.
Kondisi Berhasil
Data aturan ditampilkan
Kondisi Gagal
Data aturan tidak bisa ditampilkan
Main Flow
•
Siswa memilih menu lihat data aturan
•
Siswa memilih/memfilter berdasar suatu kata atau frase atau operator yang ingin ditampilkan
•
Aplikasi mencari data aturan yang diminta
•
Data aturan ditampilkan
43
6.
Mengerjakan Soal Tabel 6. Deskripsi Use Case Mengerjakan Soal Nama
Mengerjakan soal
Deskripsi
Proses
ini
matematika
dilakukan dalam
dengan
bentuk
menyelesaikan
cerita
ke
dalam
soal notasi
matematika yang valid dan menjawab hasil akhir dari proses perhitungan. Aktor
Siswa
Pra Kondisi
Soal belum ada, soal telah ada.
Kondisi Berhasil
Soal diselesaikan dan dianalisa sesuai dengan aturan notasi matematika Soal dan jawaban tidak bisa dianalisa aplikasi
Kondisi Gagal Main Flow
•
Siswa memilih menu mengerjakan soal
•
Siswa memilih/memfilter berdasar kategori tingkat kesulitan soal
•
Aplikasi menampilkan pertanyaan
•
Siswa menyelesaikan soal
•
Aplikasi melakukan analisa terhadap soal dan jawaban
•
Aplikasi
menampilkan
hasil
analisa,
apakah
jawaban benar atau salah.
7.
Lihat Pembahasan Tabel 7. Deskripsi Use Case Lihat Pembahasan Nama
Lihat pembahasan
Deskripsi
Lihat pembahasan merupakan proses untuk melihat penyelesaian dari suatu soal.
Aktor
Siswa, pengajar
Pra Kondisi
Pembahasan soal belum ada, pembahasan soal telah ada.
Kondisi Berhasil
Pembahasan soal yang benar ditampilkan
44
Kondisi Gagal
Hasil pembahasan tidak sesuai dengan soal/pertanyaan, hasil pembahasan menyalahi aturan matematika.
Main Flow
•
Siswa memilih menu lihat pembahasan
•
Siswa memilih/memfilter berdasar soal yang ingin dilihat pembahasannya.
•
Aplikasi memproses permintaan, melakukan analisa soal dan menyelesaikan soal
•
Aplikasi menampilkan hasil pembahasan.
3.2.2 Activity Diagram Aktivitas dari setiap use case yang telah digambarkan pada sub bab sebelumnya, dapat dijabarkan kedalam suatu activity diagram.
Pada activity
diagram, digambarkan alur dari proses yang terjadi dalam suatu use case.
45
1.
Upload Kosa Kata
Masukkan kata
Kata telah ada? Tidak
Simpan kata
Ya Kata telah digunakan dalam soal atau data aturan? Tidak
Mau dilakukan update? Ya Tidak
Ya
Update Kata
Konfirmasi data telah ada
Gambar 4. Activity Diagram - Upload Kosa Kata
Pada proses upload kosa kata, setiap kosa kata sifatnya unik. Semua kata yang digunakan dalam soal harus terlebih dahulu didaftarkan pada basis data kosa kata. Ketika pengajar memasukkan data, maka sistem akan melakukan pengecekan. Jika data belum ada, maka data akan disimpan, dan jika kata atau frase sudah ada, maka akan diperiksa apakah kata atau frase tersebut telah digunakan dalam soal atau data aturan. Jika sudah, maka tidak dapat dilakukan perubahan. Batasan ini karena basis data kosa kata merupakan data master yang menjadi referensi basis data Soal. Perubahan pada basis data kosa kata dapat mengakibatkan perubahan pada validitas soal. Namun jika kata atau frase tersebut belum digunakan dalam soal, maka masih dapat diubah.
46
2.
Upload Data Aturan
Masukkan kata sebagai data aturan
Simpan data aturan
Kata telah digunakan dalam data aturan? Tidak
Ya Data aturan telah digunakan dalam soal?
Mau dilakukan update?
Tidak Ya
Ya
Tidak
Update data aturan
Konfirmasi data telah ada
Gambar 5. Activity Diagram - Upload Data Aturan
Pada proses upload data aturan, satu kata atau frase hanya akan diterjemahkan menjadi satu operator matematika. Sehingga harus dipastikan kata atau frase tersebut unik. Ketika pengajar memasukkan data, maka sistem akan melakukan pengecekan. Jika data belum ada, maka data akan disimpan, dan jika kata atau frase sudah ada, maka akan diperiksa apakah kata atau frase tersebut telah digunakan dalam soal. Jika sudah, maka tidak dapat dilakukan perubahan. Namun jika kata atau frase tersebut belum digunakan dalam soal, maka masih dapat diubah. Batasan dalam mengubah data aturan ini karena perubahan data aturan dapat mengubah validitas soal yang telah ada.
47
3.
Upload Soal Masukkan soal
Soal telah ada? Ya
Konfirmasi soal telah ada
Tidak Simpan soal
Gambar 6. Activity Diagram - Upload Soal
Pada proses upload soal, sistem akan melakukan pengecekan apakah soal sudah ada di dalam basis data atau belum. Jika sudah ada, sistem akan menginformasikan bahwa soal telah ada, dan jika belum, maka soal akan disimpan di dalam basis data.
4.
Lihat Statistik Jawaban
Pilih soal
Hitung satatistik keberhasilan soal dijawab
Tampilkan hasil perhitungan
Gambar 7. Activity Diagram – Lihat Statistik Jawaban
48
Pada proses melihat statistik keberhasilan siswa dalam menjawab soal, pengajar dapat memilih salah satu soal atau memilih keseluruhan soal. Sistem melakukan perhitungan persentase keberhasilan siswa dalam menjawab soal dan menampilkan hasilnya di layar.
5.
Lihat Data Aturan
Pilih kata , frase atau operator
Data ada?
Tampilkan data aturan
Ya
Tidak Apakah user pengajar?
Konfirm asi data tidak ada Bukan
Ya Insert data?
Tidak
Ya Insert data aturan
Gambar 8. Activity Diagram – Lihat Data Aturan
Pada proses lihat data aturan, pengguna bisa melihat keseluruhan data yang ada, atau hanya menampilkan sebagian data berdasar filter kata, frase atau operator. Jika data tidak ada, sistem akan mengecek privilege pengguna, jika pengguna adalah pengajar, maka pengguna bisa menambahkan data aturan yang belum ada.
49
6.
Mengerjakan Soal
Pilih kategori soal
Tampilkan 1 soal secara acak
Jawab soal
Ya
Periksa jawaban
Perbaiki jawaban?
Jawaban benar? Ya
Tidak
Tidak Tampilkan poin
Tampilkan pembahasan
Gambar 9. Activity Diagram – Mengerjakan Soal
Pada proses pengerjaan soal, siswa akan diberikan pilihan kategori soal (level mudah, menengah atau mahir). Lalu sistem akan mengacak satu soal berdasar kategori yang dipilih. Lama pengerjaan satu soal tidak dibatasi, ketika siswa telah selesai mengerjakan soal, lalu sistem akan memeriksa jawaban, jika jawaban yang diberikan benar, benar akan ditampilkan poin, dan jika jawaban
salah, siswa boleh mengulang menjawab pertanyaan
sampai benar atau langsung melihat pembahasan.
50
7.
Lihat Pembahasan
Pilih soal
Tampilkan hasil pembahasan
Gambar 10. Activity Diagram – Lihat Pembahasan
Untuk melihat pembahasan jawaban suatu soal, sisw memilih soal yang ingin ditampilkan hasil pembahasannya. Kemudian sistem melakukan analisa terhadap soal dan nemampilkan pembahasan di layar.
3.2.3 Class Diagram Identifikasi class dilakukan berdasarkan hasil analisis perangkat lunak untuk memenuhi proses-proses yang telah dijelaskan pada use case diagram, dan keterhubungan antar class tersebut. Keterhubungan ini dapat dilihat dari sisi statik class atau hubungan statis suatu class dan juga dari sisi interaksi antar class atau hubungan dinamis suatu class. Terdapat lima class pada perangkat lunak ini, yaitu class Token, Scanner, DataAturan, Soal dan HistoryPengerjaan.
51
DataAturan
KosaKata
idKata idFSC kata op
idKata kata jenisKata newKosaKata() getJenisKata() insertKata() updateKata() deleteKata() getKosaKata() getKosaKataFSC()
newDataAturan() getIDFSC() getOperator() cekKataDigunakanFSC() getFSC() insertFSC() updateFSC() deleteFSC()
Soal idCat soal arrKalimat valid kalTanya objekHitung notasi
Node subj bil obj op predikat
newSoal() getSoal() getRandomSoal() cekKataDigunakanSoal() insertSoal() cekSoal() cekPertanyaan() setGraph() isSubject() isPredikat() isKeterangan() isKataTanya()
newNode() getBil() getOp()
Graph node graph notasi newGraph() addNode() generateGraph()
Matem atika notasi HistoryPengerjaan idSoal soal jawaban level
newMatematika() execMath()
newHistoryPengerjaan() saveHistory() updateHistory() viewHistoryDetail() viewHistoryStatistic()
Gambar 11. Class Diagram
1. Class KosaKata Class KosaKata merupakan class yang berfungsi dalam manipulasi daftar kata atau kamus yang akan digunakan oleh aplikasi. Dalam class KosaKata ini, kata dibedakan berdasarkan jenisnya, apakah kata benda, kata kerja, kata sifat, kata keterangan, kata hubung,
52
kata depan, atau kata tanya. Kata yang didaftarkan bersifat unik dan menjadi acuan bagi class DataAturan dan class Soal. Penjelasan detail mengenai atribut dan method yang ada pada class KosaKata dapat dilihat pada table berikut : Tabel 8. Deskripsi Class Token
No
Jenis
1 Atribut
Nama idKata
Deskripsi Identitas unik untuk setiap kata
2 Atribut
kata
Atribut yang merepresentasikan suatu kata
3 Atribut
jenisKata
Atribut yang menjelaskan jenis dari kata, misalnya kata benda, kata kerja, kata sifat, dan lain-lain
4 Method
newKosaKata
Method yang digunakan untuk menginisiasi atau mengeset instance KosaKata
5 Method
getJenisKata
Method yang digunakan untuk mengambil jenis suatu kata
6 Method
insertKata
Method yang digunakan untuk menyimpan kosa kata baru dalam basis data
7 Method
updateKata
Method yang digunakan untuk mengubah suatu kosa kata dalam basis data, dengan syarat kata tersebut belum digunakan sebagai Data Aturan atau Soal
8 Method
deleteKata
Method yang digunakan untuk menghapus suatu kosa
53
dari basi data, dengan syarat kata tersebut belum digunakan sebagai Data Aturan atau Soal 9 Method
getKosaKata
Method yang digunakan untuk mengambil daftar kosa kata yang ada
10 Method
getKosaKataFSC
Method yang digunakan untuk mengambil daftar kosa kata yang ada, yang digunakan oleh Data Aturan
2. Class DataAturan Class DataAturan merupakan class yang berfungsi memetakan kata atau frase dalam Bahasa Indonesia ke dalam operator matematika. Melalui class ini, user dapat men-set satu kata atau frase merepresentasikan operator apa. Penjelasan detail mengenai atribut dan method yang ada pada class DataAturan dapat dilihat pada table berikut : Tabel 9. Deskripsi Class DataAturan No
Jenis
1 Atribut
Nama idKata
Deskripsi Atribut ID yang merujuk pada suatu kata dalam basis data KosaKata
2 Atribut
idFSC
Identitas unik untuk setiap kata
3 Atribut
kata
Atribut yang digunakan untuk mencari mapping/reprsentasi dari suatu kata
4 Atribut
op
Atribut yang
54
merepresentasikan operator matematika 5 Method
newDataAturan
Method yang digunakan untuk menginisiasi satu data aturan
6 Method
getIDFSC
Method yang digunakan untuk mengambil nilai IDFSC
7 Method
getOperator
Method yang digunakan untuk mengambil nilai dari operator
8 Method
cekKataDigunakanFSC Method yang digunakan untuk memeriksa apakah suatu kata digunakan atau didaftarkan sebagai DataAturan
9 Method
getFSC
Method yang digunakan untuk mengambil daftar DataAturan
10 Method
insertFSC
Method yang digunakan untuk menyimpan suatu data aturan baru dalam basis data
11 Method
updateFSC
Method yang digunakan untuk melakukan perubahan terhadap data aturan
10 Method
deleteFSC
Method yang digunakan untuk melakukan penghapusan data aturan
55
3. Class Node Class Node merupakan class yang berfungsi memetakan kalimat dalam Bahasa Indonesia menjadi node atau objek yang akan digenerate menjadi graph sehingga membentuk notasi matematika yang valid untuk dieksekusi. Penjelasan detail mengenai atribut dan method yang ada pada class DataAturan dapat dilihat pada table berikut :
Tabel 10. Deskripsi Class Node No
Jenis
1 Atribut
Nama subj
Deskripsi String yang digunakan untuk menyimpan kata atau frase yang melakukan pekerjaan dalam suatu kalimat
2 Atribut
predikat
Atribut yang merepresentasikan operator matematika
3 Atribut
obj
String yang digunakan untuk menyimpan kata atau frase yang dikenai pekerjaan atau objek penderita dalam suatu kalimat
4 Atribut
bil
Atribut yang merepresentasikan kuantitas numerik dari objek
5 Atribut
op
Atribut yang merepresentasikan operator matematika dari suatu predikat
6 Method
newNode
Method yang berfungsi untuk men-set atau menginisiasi suatu instance dari Node
56
7 Method
getBilangan
Method yang digunakan untuk mengambil nilai dari suatu node
8 Method
getOp
Method yang berfungsi untuk mengambil nilai operator dari suatu node
4. Class Soal Class Soal merupakan class yang berfungsi untuk memanipulasi data soal, baik untuk menyimpan, mengubah, menghapus, maupun menampilkan soal yang ada di basis data. Penjelasan detail mengenai atribut dan method yang ada pada class Soal dapat dilihat pada table berikut : Tabel 11. Deskripsi Class Soal No
Jenis
1 Atribut
Nama idCat
Deskripsi Atribut yang merepresentasikan tingkat kesulitan dari suatu soal
2 Atribut
soal
String yang digunakan untuk menyimpan rangkaian kalimat soal
3 Atribut
arrKalimat
Array yang digunakan untuk menampung list kalimat daro suatu soal
4 Atribut
valid
Atribut yang menyimpan status dari suatu soal apakah valid atau memenuhi kaidah atau tidak
57
5 Atribut
kalTanya
String yang digunakan untuk menyimpan pertanyaan
6 Atribut
objekHitung
Objek yang akan dikalkulasi atau hitung
7 Atribut
notasi
String yang berbentuk notasi matematika hasil dari generate graph
8 Method
newSoal
Method yang digunakan untuk menginisiasi soal
9 Method
getSoal
Method yang digunakan untuk mengambil daftar soal yang ada dalam basis data
10 Method
getRandomSoal
Method yang digunakan untuk mengambil 1 soal secara acak untuk ditampilkan ketika user akan mengerjakan soal
11 Method
cekKataDigunakanSoal Method yang digunakan untuk mengecek apakah suatu kata telah digunakan dalam soal atau belum
12 Method
insertSoal
Method yang digunakan untuk menyimpan soal yang di-upload oleh admin/pengajar
13 Method
cekSoal
Method yang digunakan untuk mengecek apakah soal memenuhi kaidah
14 Method
cekPertanyaan
Method yang digunakan
58
untuk mengecek pertanyaan 15 Method
setGraph
Method yang digunakan untuk mengecek susunan kata (S-P-O)
16 Method
isSubject
Method yang digunakan untuk mengecek apakah suatu kata atau frase merupakan subjek atau bukan
17 Method
isPredikat
Method yang digunakan untuk mengecek apakah suatu kata atau frase merupakan predikat atau bukan
18 Method
isKeterangan
Method yang digunakan untuk mengecek apakah suatu kata atau frase merupakan keterangan atau bukan
19 Method
isKataTanya
Method yang digunakan untuk mengecek apakah suatu kata atau frase merupakan kata tanya atau bukan
5. Class Graph Class Graph merupakan class yang berfungsi menerjemahkan dan men-generate notasi matematika yang valid dari node – node yang telah terbentuk.
59
Penjelasan detail mengenai atribut dan method yang ada pada class Scanner dapat dilihat pada table berikut :
Tabel 12. Deskripsi Class Graph
No
Jenis
1 Atribut
Nama node
Deskripsi Objek node yang menampung suatu state
2 Atribut
graph
Atribut yang merepresentasikan keterhubungan antar node
3 Atribut
notasi
Output atau keluaran yang berupa notasi matematika
4 Method
newGraph
Method yang digunakan untuk menginisiasi suatu graph
5 Method
addNode
Method yang digunakan untuk menambahkan suatu node ke dalam graph
6 Method
generateGraph
Method utama yang digunakan untuk mengenerate graph dari node yang ada
6. Class Matematika Class Matematika merupakan class yang memvalidasi suatu notasi apakah valid atau tidak. Penjelasan detail mengenai atribut dan method yang ada pada class Matematika dapat dilihat pada table berikut :
60
Tabel 13. Deskripsi Class Matematika
No
Jenis
1 Atribut
Nama notasi
Deskripsi String yang digunakan untuk menampung notasi matematika
2 Method
newMatematika
Method yang digunakan untuk mengisiasi instance Matematika
3 Method
execMath
Method yang berfungsi untuk untuk memvalidasi sekaligus mengambil hasil akhir dari suatu operasi matematika
7. Class HistoryPengerjaan Class
HistoryPengerjaan
merupakan
class
yang
berfungsi
menyimpan history pengerjaan siswa sebagai bahan untuk proses perhitungan statistik untuk menganalisa proses pembelajaran. Penjelasan detail mengenai atribut dan method yang ada pada class HistoryPengerjaan dapat dilihat pada table berikut : Tabel 14. Deskripsi Class HistoryPengerjaan
No
Jenis
1 Atribut
Nama idSoal
Deskripsi Atribut yang merujuk ke suatu soal dalam basis data Soal
2 Atribut
soal
String yang digunakan untuk menyimpan rangkaian kalimat soal
3 Atribut
jawaban
Notasi matematika yang dijabarkan oleh siswa sebagai solusi dari soal
61
yang diberikan 4 Atribut
level
Atribut yang digunakan dalam menampung tingkat kesulitan dari suatu soal
5 Method
newHistoryPengerjaan Method yang digunakan untuk menginisiasi suatu instance dari HistoryPengerjaan
6 Method
saveHistory
Method yang digunakan untuk menyimpan history pengerjaan soal saat siswa mulai memilih soal
7 Method
updateHistory
Method yang digunakan untuk mengubah tanggal penyelesaian beserta jawaban dan status dari jawaban, apakah benar atau salah
8 Method
viewHistoryDetail
Method yang digunakan untuk menampilkan history pengerjaan untuk setiap soal
9 Method
viewHistoryStatistic
Method yang digunakan untuk menghitung dan menampilkan statistik keberhasilan suatu soal dapat dijawab oleh siswa
62
3.2.4 Sequence Diagram Untuk mengetahui lebih jelas mengenai urutan proses yang terjadi dalam setiap use case, dapat digambarkan melalui sequence diagram. Berikut sequence diagram untuk menjelaskan use case yang telah dipaparkan: 1.
Upload Kosa Kata UIUploadKosaKata
: KosaKata
: DataAturan
: Soal
newKosaKata() getKosaKata() insertKata() updateKata() cekKataDigunakanFSC() cekKataDigunakanSoal() deleteKata() cekKataDigunakanFSC() cekKataDigunakanSoal()
Gambar 12. Sequence Diagram Upload Kosa Kata
Pada proses ini pengguna akan mendaftarkan semua kosa kata yang akan digunakan untuk soal beserta jenisnya. Hal ini diperlukan dalam melakukan pengecekan struktur kata dalam kalimat yang harus memmenuhi format S-P-O atau S-P-O-K. Pada proses ini pengguna memasukkan kata yang akan disimpan. Lalu aplikasi akan mengecek apakah kata tersebut telah ada atau belum. Jika belum ada, maka kata akan langsung disimpan ke dalam basis data. Namun jika telah ada, akan diperiksa apakah sudah digunakan oleh DataAturan atau Soal. Jika belum digunakan, maka kata atau jenis kata yang dimaksud dapat diubah. Begitu juga untuk
63
penghapusan kosa kata, kata akan dicek terlebih dahulu apakah sudan digunakan data aturan atau soal.
64
2.
Upload Data Aturan UIUploadDataAturan
: DataAturan
: KosaKata
: Soal
newDataAturan() getKosaKataFSC() getFSC() insertFSC() cekKataDigunakanSoal() updateFSC deleteFSC() cekKataDigunakanSoal()
Gambar 13. Sequence Diagram Upload Data Aturan
Pada proses ini user akan menggunakan kata atau frase dalam Bahasa
Indonesia
untuk
merepresentasikan
suatu
operator
matematika. Pada saat penambahan data aturan, Class DataAturan akan memeriksa apakah data aturan telah ada sebelumnya atau tidak. Jika belum ada, maka data aturan akan disimpan. Sedangkan untuk proses pengubahan dan penghapusan data, akan
dilakukan
pengecekan terlebih dahulu apakah data aturan yang dimaksud telah digunakan dalam soal atau belum. Jika belum, maka proses perubahan dan penghapusan dapat dilakukan, dan jika sudah digunakan soal, maka data aturan tidak dapat diubah maupun dihapus.
65
3.
Upload Soal
UIUploadSoal
: Soal
: KosaKata
: DataAturan
: Node
: Graph
: Matematika
newSoal() getSoal() cekSoal()
newKosaKata() getJenisKata() isSubject isPredikat newDataAturan getOperator isSubject
setGraph
newNode() newGraph() addNode() generateGraph
newMatematika() execMath() insertSoal()
Gambar 14. Sequence Diagram Upload Soal
Pada proses ini pengguna akan memasukkan kalimat soal matematika, lalu class Soal akan menginisiasi instance Soal sebelum melakukan validasi terhadap kalimat. Class Soal ini melakukan pengecekan terhadap DataAturan. Jika valid, maka akan dilakukan penge-set-an node untuk selanjutnya di-generate suatu graph yang keluaran akhirnya berupa notasi matematika. Dan jika soal yang diinput valid, maka class Soal akan menyimpannya ke dalam basis data.
66
4.
Lihat Statistik Jawaban UILihatStatistik
: HistoryPengerjaan
newHistoryPengerjaan() viewHistoryDetail() viewHistoryStatistic()
Gambar 15. Sequence Diagram Lihat Statistik Jawaban
Pada proses ini user memilih salah satu soal atau keseluruhan soal, lalu class Class HistoryPengerjaan akan memberikan statistik dari history pengerjaan untuk soal yang dimaksud.
5.
Lihat Data Aturan UILihatDataAturan
: DataAturan
newDataAturan() getFSC()
Gambar 16. Sequence Diagram Lihat Data Aturan
Pada proses ini user akan memilih salah satu atau keseluruhan data aturan yang ada untuk ditampilkan. Class DataAturan akan
67
mengecek apakah data aturan yang dimaksud ada atau tidak. Jika ada, maka data aturan yang dimaksud akan ditampilkan di layar.
6.
Mengerjakan Soal
UIDoSoal
: Soal
: KosaKata
: DataAturan
: Node
: Graph
: Matem atika
: His toryPengerjaan
newSoal() getRandomSoal() newHis toryPengerjaan()
cekSoal()
saveHistory
newKosaKata() getJenis Kata() isSubject isPredikat newDataAturan getOperator isSubject
setGraph
newNode() newGraph() addNode() generateGraph
newMatematika() execMath()
updateHistory()
Gambar 17. Sequence Diagram Mengerjakan Soal
68
Pada proses ini, user memilih level/tingkat kesulitan soal yang ingin dikerjakan. Lalu aplikasi menampilkan satu soal secara acak. Pada saat yang sama, soal dan waktu awal pengerjaan akan disimpan oleh class HistoryPengerjaan sebagai bahan untuk statistik. Jawaban user yang diberikan akan dicek apakah memenuhi kaidah. Soal yang diberikan, akan di-parsing per kata hingga membentuk token-token yang menjadi node untuk selanjutnya di-generate ke dalam bentuk graph sehingga menghasilkan notasi dan jawaban matematika yang benar. Hasil notasi yang di-generate sistem akan dianalisis, dibandingkan dengan jawaban yang diberikan user. Jika jawaban user sesuai dengan notasi hasil generate sistem, maka jawaban dianggap benar. Dan jika tidak, maka jawaban dianggap salah. Soal yang dipilih, kapan dan lama waktu pengerjaan akan dicatat oleh class HistoryPengerjaan sebagai bahan untuk analisis pengajar.
69
7.
Lihat Pembahasan
UIPembahasan
: Soal
: KosaKata
: DataAturan
: Node
: Graph
: Matematika
newSoal()
getSoal() cekSoal()
newKosaKata() getJenisKata()
isSubject
isPredikat newDataAturan getOperator isSubject
setGraph
newNode() newGraph() addNode() generateGraph
newMatematika() execMath()
Gambar 18. Sequence Diagram Lihat Pembahasan
Pada proses ini, user memilih salah satu soal yang akan dilihat hasil pembahasannya. Soal yang diberikan, akan di-parsing per kata hingga
membentuk
token-token
yang
menjadi
node
untuk
selanjutnya di-generate ke dalam bentuk graph berarah sehingga menghasilkan notasi dan jawaban matematika yang benar.
70
3.2.5
Perancangan Data Karena
sistem
yang
dikembangkan
menyangkut
pengolahan
dan
penyimpanan data, perlu diperhitungkan juga bagaimana susunan penyimpanan data di dalam basis data sesuai kebutuhan sistem. Basis data yang dikembangkan terdiri dari tabel yang bersifat referensi, input, dan output. Tabel yang bersifat referensi terdiri dari tiga tabel. Pertama tabel “KosaKata” yang menyimpan daftar kata dalam Bahasa Indonesia beserta jenis kata. Kedua tabel “FSC” yang menyimpan daftar kata yang dipetakan menjadi operator matematika. Dan yang terakhir adalah tabel “KategoriSoal” yang menyimpan jenis soal berdasar tingkat kesulitan. Tabel yang bersifat input adalah tabel “Soal”, yaitu tabel yang menyimpan data soal matematika yang diupload oleh pengajar. Seluruh data yang ada di dalam tabel ini harus dipastikan merupakan soal matematika yang valid. Sedangkan untuk tabel yang bersifat output adalah tabel “HistorySoal”. Tabel ini menyimpan history kapan suatu soal dikerjakan, berapa lama pengerjaannya, serta benar atau salahnya jawaban yang diberikan. Tabel ini diperlukan untuk melihat statistic keberhasilan pengerjaan suatu soal. Susunan tabel-tabel yang digunakan dapat dilihat pada gambar berikut: UserLogin userId username pass w ord
Kos aKata IDKata Kata JenisKata
KategoriSoal IDKategori Kategori
digunakan
Dimiliki
FSC IDFSC Operator
Soal IDSoal Soal
Dicatat
Gambar 19. Rancangan Basis Data
HistorySoal IDHistory StartPengerjaan EndPengerjaan Status Jaw aban
71
Penjelasan mengenai tabel-tabel diatas digunakan kamus data yang dapat dilihat pada lampiran mengenai kamus data.
3.2.6 Perancangan Antar Muka Antar muka digunakan agar pengguna dapat berinteraksi dengan aplikasi. Berikut rancangan antar muka yang akan digunakan pada aplikasi :
1. Halaman Utama Halaman utama ditampilkan saat aplikasi pertama dijalankan. Halaman ini berfungsi untuk menampilkan list menu yang bisa diakses oleh siswa serta pilihan login jika akan menggunakan aplikasi sebagai admin/pengajar.
Gambar 20. Halaman Utama
2. Lihat Data Aturan Halaman Lihat Data Aturan digunakan untuk melihat list kata maupun frase yang didefinisikan sebagai operator matematika. Pengguna bisa memfilter kata/frase dan atau operator yang dicari dengan mengisi textbox
72
yang tersedia, atau membiarkannya kosong untuk menampilkan seluruh data yang ada, dan kemudian mengklik tombol “Cari”. LIHAT DATA ATURAN MENU Lihat Data Aturan Mengerjakan Soal Lihat Pembahasan Login Admin Log Out
Data Aturan
Kata/Frase Operator
Cari Data Aturan No.
Kata/Frase
Operator
1
membeli
+
Gambar 21. Lihat Data Aturan
3. Mengerjakan Soal Menu Mengerjakan Soal digunakan untuk menjawab pertanyaan yang telah di-upload oleh pengajar
73
Gambar 22. Mengerjakan Soal
4. Lihat Pembahasan Menu Lihat Pembahasan digunakan untuk melihat solusi dari suatu soal, baik secara penulisan notasi maupun jawaban akhir.
74
Gambar 23. Lihat Pembahasan
5. Login Admin Fitur Login Admin digunakan untuk validasi privilege agar bisa mengakses fitur-fitur admin.
75
Gambar 24. Login Admin
6. Upload Kosa Kata Fitur upload Kosa Kata digunakan untuk menambahkan suatu kata beserta jenisnya. Kalimat yang digunakan dalam soal sebelumnya harus terdaftar dalam basis data kosa kata. Hal ini bertujuan dalam pengecekan struktur kalimat. Pada menu ini, pengguna dapat juga mengubah atau menghapus suatu kata, dengan syarat kata tersebut belum digunakan dalam data aturan atau dalam soal.
76
UPLOAD KOSA KATA MENU Lihat Data Aturan Mengerjakan Soal Lihat Pembahasan
KosaKata
Kata
Cari
Upload Data Aturan Upload Soal Upload Kosa Kata Lihat Statistik
Kata Kerja
Jenis Kata
Simpan
Data Aturan No.
Kata
JenisKata
Edit
Delete
1
membeli
Kata Kerja
Edit +
Delete +
Log Out
Gambar 25. Upload Kosa Kata
7. Upload Data Aturan Fitur upload Data Aturan digunakan untuk menambahkan suatu aturan baru untuk suatu kata atau frase, bahwa kata atau frase tersebut merepsentasikan suatu operator matematika. Selain bisa menambahkan suatu data aturan baru, pada menu ini juga diperbolehkan untuk mengubah atau menghapus suatu data aturan yang masih belum digunakan.
Gambar 26. Upload Data Aturan
77
8. Upload Soal Salah satu fitur bagi admin/pengajar ini digunakan untuk menambahkan suatu soal ke dalam basis data soal. Selain itu bisa juga melihat daftar pertanyaan yang telah ada per kategori/tingkat kesulitan. UPLOAD SOAL MENU
Pilih Level Soal
Lihat Data Aturan Mengerjakan Soal Lihat Pembahasan
Level
Beginner/Mudah
Soal
[Soal]
Upload Data Aturan Upload Soal Lihat Statistik Log Out
Simpan
Lihat Soal yang Ada
Daftar Soal No.
Level
Soal
1
Mudah
Xxx sss xxxxx
Gambar 27. Upload Soal
9. Lihat Statistik Jawaban Pada menu Lihat Statistik Jawaban ini menampilkan riwayat pengerjaan untuk suatu soal. Persentase keberhasilan merupakan besarnya berapa kali jawaban berhasil dijawab berbanding total berapa kali soal tersebut mencoba dikerjakan.
78
Gambar 28. Lihat Statistik Jawaban - Persentase
Gambar 29. Lihat Statistik Jawaban – Rinci