PROPOSAL TUGAS AKHIR - repositori.unud.ac.id · Proposal penelitian dengan Automasi Penilaian Essay...

35
PROPOSAL TUGAS AKHIR AUTOMASI PENILAIAN ESAI TERINTEGRASI PADA SISTEM ELEARNING MOODLE DENGAN KONSEP SIMILARITY RABIN KARP IDA BAGUS KOMANG WINDUYASA NIM. 1208605014 JURUSAN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS UDAYANA DENPASAR 2015

Transcript of PROPOSAL TUGAS AKHIR - repositori.unud.ac.id · Proposal penelitian dengan Automasi Penilaian Essay...

  • PROPOSAL TUGAS AKHIR

    AUTOMASI PENILAIAN ESAI TERINTEGRASI PADA

    SISTEM ELEARNING MOODLE DENGAN

    KONSEP SIMILARITY RABIN KARP

    IDA BAGUS KOMANG WINDUYASA

    NIM. 1208605014

    JURUSAN ILMU KOMPUTER

    FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

    UNIVERSITAS UDAYANA

    DENPASAR

    2015

  • 2

    LEMBAR PENGESAHAN PROPOSAL TUGAS AKHIR

    Judul : Automasi Penilaian Esai Terintegrasi pada Sistem Elearning

    Moodle dengan Konsep Similarity Rabin Karp

    Kompetensi : Rekayasa Perangkat Lunak

    Nama : Ida Bagus Komang Winduyasa

    NIM : 1208605014

    Tanggal Seminar : Selasa, 7 Juli 2015

    Disetujui Oleh :

    Pembimbing 1

    Agus Muliantara, S.Kom, M.Kom

    NIP. 198006162005011001

    Penguji 1

    I Putu Gede Hendra Suputra, S.Kom., M.Kom.

    NIP. 198812282014041001

    Penguji 2

    I Made Widhi Wirawan, S.Si, M.Cs

    NIP. 197511052005011004

    Mengetahui

    Ketua Jurusan

    Drs. I Wayan Satiyasa, M.Si.

    NIP. 196704141992031002

  • 3

    Kata Pengantar

    Proposal penelitian dengan Automasi Penilaian Essay Dengan Konsep Similarity Rabin

    Karp Terintegrasi Sistem Elearning Moodle ini disusun dalam rangkaian kegiatan pelaksanaan

    Tugas Akhir di Jurusan Ilmu Komputer F.MIPA UNUD. Proposal ini disusun dengan harapan

    dapat menjadi pedoman dan arahan dalam melaksanakan penelitian di atas.

    Sehubungan dengan telah terselesaikannya proposal ini, maka diucapkan terima kasih

    dan penghargaan kepada berbagai pihak yang telah membantu pengusul, antara lain:

    1. Bapak-bapak dan ibu-ibu dosen di Jurusan Ilmu Komputer, - khususnya Bapak

    Agus Muliantara yang telah meluangkan waktu turut memberikan saran dan

    masukan dalam penyempurnaan proposal ini;

    2. Kawan-kawan di Jurusan Ilmu Komputer yang telah memberikan dukungan moral

    dalam penyelesaian proposal ini.

    Disadari pula bahwa sudah tentu proposal ini masih mengandung kelemahan dan

    kekurangan. Memperhatikan hal ini, maka masukan dan saran-saran penyempurnaan sangat

    diharapkan.

    Bukit Jimbaran, 14 Mei 2015

    Penulis

  • 4

    Daftar Isi

    LEMBAR PENGESAHAN PROPOSAL TUGAS AKHIR ...................................................... 2

    Kata Pengantar ........................................................................................................................... 3

    Daftar Isi .................................................................................................................................... 4

    1. Latar Belakang ................................................................................................................... 6

    2. Rumusan Masalah .............................................................................................................. 7

    3. Batasan Masalah ................................................................................................................ 8

    4. Tujuan Penelitian ............................................................................................................... 8

    5. Manfaat penelitian ............................................................................................................. 9

    6. Tinjauan Pustaka Dan Dasar Teori .................................................................................... 9

    6.1. Ujian Esai .................................................................................................................... 9

    6.2. Sistem Elearning Moodle .......................................................................................... 10

    6.3. Text Mining ............................................................................................................... 10

    6.3.1. Information Retrival........................................................................................... 10

    6.3.2. Text Preprocessing ............................................................................................. 11

    6.4. String Matching ......................................................................................................... 11

    6.4.1. Algoritma String Matching Rabin Karp ............................................................ 12

    6.4.2. Modified Rabin Karp Algorithm ....................................................................... 14

    7. Metode Penelitian ............................................................................................................ 16

    7.1. Bahan dan Lokasi Penelitian ..................................................................................... 16

    7.2. Metode Pengumpulan Data ....................................................................................... 16

    7.3. Metode Pengembangan Perangkat Lunak ................................................................. 16

    7.4. Design Penelitian....................................................................................................... 17

    7.4.1. Diagram Konteks dan Data Flow Diagram Sistem ............................................ 17

    7.4.2. Tahap Preprocessing .......................................................................................... 20

    7.4.2.1. Case Folding dan Tokenizing ......................................................................... 20

  • 5

    7.4.2.2. Filtering .......................................................................................................... 21

    7.4.2.3. Stemming ....................................................................................................... 21

    7.4.3. Tahap Processing Algoritma Rabin Karp .......................................................... 28

    7.4.3.1. K-Gram Parsing.............................................................................................. 28

    7.4.3.2. Hashing........................................................................................................... 29

    7.4.4. Arsitektur Integrasi Sistem Moodle dan Automasi Esai .................................... 30

    7.4.5. Penambahan Modul pada Moodle ..................................................................... 31

    8. Uji Coba ........................................................................................................................ 32

    8.1. Skenario Uji Coba ................................................................................................. 32

    9. Jadwal Pelaksanaan Penelitian ...................................................................................... 33

    Daftar Pustaka .......................................................................................................................... 35

  • 6

    1. Latar Belakang

    Dengan kemajuan teknologi informasi, dunia pendidikan pun mengalami kemajuan.

    Proses belajar mengajar menjadi lebih mudah dan bervariatif dengan teknologi teknologi yang

    canggih. Begitu pula pada proses evaluasi pembelajaran. Evaluasi pembelajaran dilakukan

    untuk menguji pemahaman siswa terhadap materi pelajaran yang didapatkan, evaluasi adalah

    proses mengukur hasil belajar dengan menggunakan informasi. Di Indonesia, ada beberapa

    cara dalam evaluasi hasil belajar mengajar. Saat ini yang biasa digunakan adalah evaluasi

    dengan metode obyektif (opsional) dan esai.

    Esai adalah alat pengujian untuk menilai kemampuan pengetahuan, pengembangan ide

    –ide dan kemampuan untuk mengingat sebuah pengetahuan. Dalam penggunaanya, esai

    memiliki karakteristik yang lebih spesifik dibandingkan dengan metode opsional yang bersifat

    obyektif. Metode esai melibatkan kemampuan untuk mengingat, mengorganisasikan,

    mengekspresikan dan mengintegrasikan serta mengembangkan gagasan yang dimiliki siswa

    berdasarkan pengetahuan yang dimiliki. Namun, penggunaan esai memiliki kekurangan dalam

    penilaiannya. Pemeriksaan esai membutuhkan waktu yang lebih lama dibandingkan teknik lain

    karena sebagian besar dilakukan secara manual dan dibaca satu persatu. Belum lagi perbedaan

    pemahaman terhadap maksud dari jawaban esai sehingga perbedaan persepsi juga berpengaruh

    pada penilaian esai. Semakin banyak jumlah ujian yang dinilai kualitas penilaian semakin

    menurun.

    Penelitian text mining terkait automasi penilaian esai sebelumnya sudah pernah

    dilakukan. Penelitian text mining dapat dilakukan dengan menggunakan algoritma string

    matching seperti Naïve String Matching , Rabin Karp, Boyer-Moore, KMP, Comments –

    Walter, Set Backward Oracle Matching (SBOM/BOM) dan lainnya. Pada Naïve String

    Matching kompleksitas waktu proses pencocokan string sangat tinggi, dan membuat perfoma

    dari algoritma ini lamban (Akhtar- Tiwari-Gunjan-Khare, 2012). Sementara itu Boyer Moore

    adalah algoritma pencocokan string yang bersifat single pattern bukan multi pattern. Berbeda

    dengan Boyre-Moore, Comments –Walter adalah pengembangan dari Boyre-Moore yang dapat

    digunakan pada multi-pattern string. KMP dikenal sebagai algoritma untuk pencarian string

    dengan kompleksitas yang kecil namun efektifitasnya berkurang jika jumlah karakter dari teks

    cukup banyak. BOM adalah algoritma pencocokan string yang menggunakan factor oracle

    untuk pencocokan string dan bekerja terbalik dari bagian akhir pattern (backward) (Leena-

    Tarhio-Kytojoki, 2006) .

  • 7

    Pada penelitian oleh Leena Salmela, Jorma Tarhio, Jari Kytojoki(2006) dalam jurnal

    berjudul Multi-pattern string matching with q-grams dikatakan bahwa dari algoritma diatas,

    Rabin Karp baik digunakan pada pencocokan string dengan jumlah pola 1.000 sampai dengan

    10.000 pola dan SBOM baik digunakan pada 10.000 lebih pola. Setelah dibandingkan dengan

    algoritma lainnya, Rabin Karp adalah algoritma dengan runtime yang cepat dan membutuhkan

    kapasitas memori yang lebih kecil dari BOM. Dalam jurnal RB Matcher String Matching

    Technique (Singh-Kochar, 2008) membuktikan bahwa algoritma Rabin Karp yang asli dan

    yang telah dimodifikasi memiliki nilai akurasi nilai similaritas yang relative sama, tetapi

    algoritma Rabin Karp yang dimodifikasi memiliki waktu proses yang lebih cepat dibandingkan

    algoritma asli.

    Penelitian sejenis dengan menggunakan algoritma Rabin Karp yang telah dimodifikasi

    juga sudah pernah dilakukan oleh Lanang Septiadi Putra (2013), yakni penelitian tentang

    perancangan dan implementasi text mining menggunakan algoritma Rabin-Karp pada aplikasi

    pencarian dokumen referensi tugas akhir. Pada penelitian tersebut juga menggunakan algoritma

    Rabin Karp namun algoritma yang digunakan adalah algoritma Rabin Karp yang telah

    dimodifikasi. Hasil yang didapat dalam penelitian Lanang membuktikan bahwa Rabin Karp

    baik digunakan untuk pencocokan string dan memiliki akurasi yang baik pula bahkan lebih

    baik dari algoritma aslinya.

    Dalam penelitian ini penulis akan membuat aplikasi yang mampu mengolah dan

    menentukan tingkat kesamaan jawaban esai dengan kuncinya serta dapat memberikan hasil

    proses yang baik dengan algoritma yang digunakan adalah algoritma Rabin Karp yang

    dimodifikasi untuk meningkatkan akurasi serta mengefektifkan dan mengefisiensi kerja

    algoritma sistem. Aplikasi ini kemudian akan diintegrasikan dengan sistem Elearning Moodle,

    yakni sebuah system elearning open source yang menyediakan proses evaluasi esai. Sistem

    Moodle akan menjadi aplikasi input yang menampilkan soal serta menampung jawaban dari

    pelajar. Untuk kunci jawaban akan diinputkan pada sistem automasi penilaian. Kemudian

    jawaban jawaban pelajar akan diproses oleh aplikasi automasi penilai esai untuk dinilai

    kesamaannya dengan kunci jawaban.

    2. Rumusan Masalah

    Berdasarkan latar belakang yang dijabarkan sebelumnya, adapun rumusan masalah

    dalam penelitian ini adalah :

  • 8

    1. Bagaimana membangun sebuah sistem yang merupakan implementasi fungsi text

    mining menggunakan algoritma Rabin-Karp yang dapat melakukan penilaian

    terhadap jawaban essay dalam proses pembelajaran terintegrasi dengan Sistem

    Elearning Moodle?

    2. Bagaimana pengaruh preproses K-Gram Parsing terhadap nilai similaritas yang

    didapat system jika digunakan nilai K-Gram yang berbeda?

    3. Berapakah nilai K-Gram dalam K-Gram Parsing yang optimal untuk digunakan

    dalam system?

    3. Batasan Masalah

    Berikut ini adalah batasan masalah dari penelitian.

    1. Penelitian akan difokuskan untuk mendeteksi kesamaan jawaban esai dengan kunci

    jawaban tersedia.

    2. Algoritma yang digunakan untuk pendeteksian kesamaan dokumen adalah algoritma

    text mining yakni Rabin Karp yang telah dimodifikasi dengan gabungan beberapa

    metode preproses.

    3. Penilaian esai dapat ditentukan berdasarkan tingkat kesamaan dalam penggunaan

    kata-kata yang muncul secara berurutan dalam jawaban dan kunci jawaban bukan

    makna dari jawaban.

    4. Penelitian ini tidak berfokus pada kata yang memiliki kesamaan makna atau

    bersinonim.

    5. Penelitian ini tidak membahas tentang pengejaan dan penulisan yang berbeda

    dengan kaidah Ejaan Yang Disempurnakan.

    6. Objek penelitian adalah esai dengan struktur teks murni yang tidak mengandung

    symbol, rumus atau persamaan matematis dan sejenisnya

    4. Tujuan Penelitian

    Adapun tujuan dari penelitian ini adalah membangun sistem yang dapat memberikan

    nilai terhadap sebuah jawaban esai yang dapat digunakan sebagai referensi penilaian esai dalam

    proses evaluasi pembelajaran secara manual serta mengetahui nilai optimal K-gram yang

    memberikan akurasi terbaik.

  • 9

    5. Manfaat penelitian

    Manfaat dari penelitian ini antara lain :

    1. Memberikan kemudahan kepada pengajar dalam melakukan penilaian terhadap

    soal soal esai dalam proses evaluasi pembelajaran dengan penilaian yang

    konsisten terhadap jawaban dari esai yang diberikan,

    2. Mengurangi waktu yang dibutuhkan untuk melakukan penilaian terhadap

    jawaban esai.

    6. Tinjauan Pustaka Dan Dasar Teori

    6.1. Ujian Esai

    Tes Esai sudah sangat populer, terutama di kalangan pendidikan. Penggunaannya

    dimulai tahun 2300 SM di Cina, dan hanya bentuk tes tersebut yang digunakan selama berabad-

    abad. Kepopuleran tes esai cukup beralasan, karena kemudahannya. Berkebalikan dengan tes

    obyektif tes esai mudah untuk menyiapkannya, namun sulit untuk memeriksa jawabannya.

    Dalam penelitiannya, Siswanto (2006) mengatakan jawaban yang diberikan pada soal

    tes esai lebih baik karena jawaban yang diberikan menyediakan petunjuk tentang bentuk dan

    kualitas pemikiran pelajar. Hal itu dikarenakan jawabannya tidak disediakan, akan tetapi digali

    dari pengetahuan dan fakta-fakta serta prinsip yang diketahui pelajar kemudian dikembangkan

    dan diatur secara logis dan koheren dan diekspresikan sesuai pemahaman pelajar. Penilaian

    esai dilakukan dengan melihat karakteristik dari jawaban yang disajikan, bukan dilihat dari

    sebrapa panjang jawaban pelajar. Karakteristik jawaban esai digunakan untuk mengukur

    pemikiran kritis dari pelajar, keaslian serta kemampuan mengatur dan menggabungkan

    pengetahuan yang dimiliki. Kemampuan ini mengindikasikan pelajar mana yang memiliki

    kemampuan yang lebih/kurang.

    Kekurangan dari penggunaan tes esai terletak pada ketidakkonsistenan dari penilaian

    esai. Kekonsistenan atau reliabilitas dari penguji tergolong rendah untuk penilaian esai dengan

    tes yang sama. Siswanto juga menyatakan terdapat 3 kondisi yang mempengaruhi reliabilitas

    pengujian esai antara lain : (1) Sampling terbatas dari segi isi, (2) Ketidakjelasan perintah pada

    soal, (3) adanya subyetifitas skor jawaban. Ketiga hal ini dipengaruhi oleh faktor manusia yang

    memiliki persepsi dan mood yang berbeda untuk situasi berbeda, sementara sebagai penguji

    seharusnya dapat dipercaya dan dibuktikan secara independen.

  • 10

    6.2. Sistem Elearning Moodle

    Moodle adalah sebuah nama untuk sebuah program aplikasi yang dapat merubah

    sebuah media pembelajaran kedalam bentuk web. Aplikasi ini memungkinkan siswa untuk

    masuk kedalam “ruang kelas digital” untuk mengakses materi-materi pembelajaran. Dengan

    menggunakan Moodle, kita dapat membuat materi pembelajaran, kuis, jurnal elektronik dan

    lain-lain. Moodle itu sendiri adalah singkatan dari Modular Object Oriented Dynamic Learning

    Environment.

    Moodle merupakan sebuah aplikasi Course Management System (CMS) yang gratis

    dapat di-download, digunakan ataupun dimodifikasi oleh siapa saja dengan lisensi secara GNU

    (General Public License). Anda dapat men-download aplikasi Moodle di alamat

    http://www.moodle.org atau Anda dapat install gratis di Server www.e-Padi.com dengan

    berlangganan paket Hosting apa saja. Saat ini Moodle sudah digunakan pada lebih dari 150.000

    institusi di lebih dari 160 negara didunia.

    Aplikasi Moodle dikembangkan pertama kali oleh Martin Dougiamas pada Agustus 2002

    dengan Moodle Versi 1.0. Saat ini Moodle bisa dipakai oleh siapa saja secara Open Source.

    6.3. Text Mining

    Text mining adalah salah satu bidang khusus dalam data mining. Text mining

    merupakan proses penggalian pengetahuan intensif di mana pengguna berinteraksi dengan

    koleksi dokumen dari waktu ke waktu dengan menggunakan seperangkat alat analisis pada data

    mining. Text mining mengekstrak informasi yang berguna dari sumber data melalui identifikasi

    dan eksplorasi pola yang menarik (R. Feldman & J. Sanger, 2007). Dalam kasus text mining,

    sumber data adalah koleksi dokumen, dan pola yang menarik yang ditemukan tidak ada dalam

    catatan database formal tetapi dalam data tekstual terstruktur di dokumen dalam koleksi data.

    Text mining juga digambarkan dalam bidang ilmu komputer lain yang juga memiliki

    konsentrasi pada penanganan bahasa alami. Meskupin tidak secara penuh, text mining juga

    mengeksploitasi teknik dan metode dari bidang information retrival, information extraction dan

    korpus komputasi linguistic.

    6.3.1. Information Retrival

    Information retrieval (temu kembali informasi) adalah pencarian materi (biasanya

    dalam bentuk dokumen) dari kombinasi tidak terstruktur (berupa text) yang mengandung

    informasi yang dibutuhkan dari koleksi yang besar yang biasanya tersimpan dalam komputer

    (Christopher D. Manning, Prabhakar Raghavan & Hinrich Schütze, 2009) . Information

  • 11

    retrieval bekerja pada sekumpulan set dokumen dan mencari dokumen yang relevan terhadap

    informasi yang dibutuhkan oleh pengguna. Kata information retrival saat ini digantikan

    dengan search (bersinonim).

    Dalam membangun sebuah sistem yang efektif (dalam konteks kualitas hasil pencarian)

    terdapat hal yang harus diperhatikan :

    Precision : yakni fraksi dokumen terkait yang relevan terhadap informasi yang

    dibutuhkan pengguna harus presisi.

    Recall : Tingkat keberhasilan sistem dalam menemukan kembali fraksi dari relevan

    dokumen / sebuah informasi.

    6.3.2. Text Preprocessing

    Sesuai dengan penjelasan sebelumnya bahwa dalam text mining struktur data yang

    diproses tidak terstruktur, maka dibutuhkan langkah langkah awal sebelum proses mining

    dilakukan. Tujuan dari tahap teks preproses adalah untuk mengubah teks yang digunakan

    menjadi lebih terstruktur. Pada tahap preproses data pada setiap dokumen diseleksi, seleksi

    yang dimaksud meliputi case folding(penanganan huruf kapital), tokenizing (pemenggalan kata

    dasar) , filtering (menyaring kata) dan stemming (penentuan kata dasar). Langkah-langkah

    preproses text pada dokumen digambarkan sebagai berikut.

    Bagan 1. Alur Text Preprocessing

    Keempat tahap preproses diatas tidak berlaku pada setiap pengolahan teks. Setiap sistem

    memiliki kebutuhan dan spesifikasi yang berbeda. Tahap preproses bergantung pada kebutuhan

    pembangunan sistem untuk text mining.

    6.4. String Matching

    String matching adalah subjek penting dalam ranah pemrosesan teks. Dalam buku

    Exact String Maching Algorithms, Christian Charras dan Thierry Lecroq menyatakan string

    matching atau pencocokan string merupakan sebuah metode untuk mengetahui kesamaan dari

    satu atau beberapa pola teks yang diberikan. Konteks permasalahan dalam string matching

    adalah menemukan sebuah string (disebut “pola”) terdapat pada sebuah teks. Permasalahan

    ini lebih dikenal dengan pengenalan pola. String merupakan sebuah sekuen dari

    Case Folding Tokenizing Filtering Stemming

  • 12

    simbol/karakter dan simbol didefinisikan sebagai sebuah alfabet. Ukuran dan fitur lain dari

    alfabet merupakan faktor penting dalam algoritma pemrosesan string.

    Algoritma yang dapat digunakan untuk melakukan string matching sudah cukup

    berkembang. Beberapa contoh algoritma string matching yang dapat digunakan antara lain :

    (1)Algoritma Brute Force, (2) Algoritma Rabin Karp, (3)Knuth Morris Pratt, (4) Quick Search

    dan lain sebagainnya.

    6.4.1. Algoritma String Matching Rabin Karp

    Algoritma Rabin Karp adalah algoritma pencocokan string yang menggunakan fungsi

    hash sebagai pembanding antara string yang dicari (m) dengan substring pada teks (n).

    Algoritma Karp-Rabin diciptakan oleh Michael O. Rabin dan Richard M. Karp pada tahun

    1987. Fungsi Hash digunakan untuk menghindari quadratic number dari pembandingan

    karakter dalam sebagain besar situasi praktiknya. Dibandingkan dengan melakukan

    pengecekan terhadap setiap posisi dari teks jika pattern-nya ditemukan, jauh lebih efektif dan

    efisien jika hanya digunakan untuk mengecek apakah konten “mirip seperti” pola.

    Dalam rangka untuk memeriksa kemiripan antara dua kata maka digunakan fungsi

    hashing. Untuk membantu penyelesaian terhadap pencocokan string, fungsi hashing harus

    memiliki urutan properti sebagai berikut.

    1. Komputasi yang efisien

    2. Diskriminan tinggi terhadap string

    3. Hash (y[j+1 ...j+m]) harus dapat dengan mudah dihitung melalui hash(y[j….j+m-1]) dan

    y[j+m].

    Apabila hash value teks yang dibandingkan sama maka akan dilakukan perbandingan

    sekali lagi terhadap karakter-karakternya. Apabila hasil keduanya tidak sama, maka substring

    akan bergeser ke kanan. Pergeseran dilakukan sebanyak (n-m) kali. Perhitungan nilai hash

    yang efisien pada saat pergeseran akan mempengaruhi performa dari algoritma ini.

    Dibawah ini adalah pseudo code dari algoritma Rabin Karp.

    Rabin_Karp (T,P,d,q)

    {

    n =Length (T)

    m= Length (P)

    t0=0

    p=0

    h=dm-1mod q

    For i=1 to m

  • 13

    {

    p = (dp+P[i]) mod q

    t0 =(d t0 + T[i] ) mod q

    }

    For s =0 to n-m

    {

    If t[s]=p then

    {

    if P[1….m]=T[s+1…….s+m]

    then print pattern matches at shift ‘s’

    }

    if s

  • 14

    Fase 2

    Gambar 2 Menggeser Comparison block

    Setelah pergeseran, didapatkan nilai hash dari fingerprint “aab” (abb=aab - a + b)

    menjadi dua (2 = 1 ± 1 + 2).

    Gambar 3 Pembandingan kedua

    Hasil perbandingan juga tidak sama, maka dilakukan pergeseran. Begitu pula dengan

    perbandingan ketiga. Pada perbandingan keempat, didapatkan nilai hash yang sama.

    Gambar 4 Perbandingan keempat (nilai hash sama)

    Karena nilai hash sama, maka dilakukan perbandingan string karakter per karakter antara

    “bca” dan “cab”. Didapatkan hasil bahwa kedua string tidak sama. Kasus ini dinamakan

    sebagai spurious hits ( hit palsu). Kemudian kembali substring bergeser ke kanan.

    Gambar 5 Perbandingan kelima (string ditemukan)

    Pada perbandingan yang kelima, kedua nilai hash dan karakter pembentuk string sesuai,

    sehingga solusi ditemukan. Ketika nilai hash sama dan karakter penyusunnya juga sama

    kondisi ini disebut successfull hit (hit sukses). Dari hasil perhitungan, kompleksitas waktu yang

    dibutuhkan adalah O(m+n) dengan m adalah panjang string masukan dan n adalah jumlah

    looping yang dilakukan untuk menemukan solusi.

    6.4.2. Modified Rabin Karp Algorithm

    Seperti terlihat pada algoritma Rabin Karp, ketika ditemukan bahwa hasil perhitungan

    dari nilai hash yang sama algoritma tersebut membandingkan apakah subset karakter dengan

    hash yang sama memiliki urutan/susunan karakter yang sama. Hal ini menambah beban

    komputasi dari algoritma Rabin Karp. Rajender Singh Chillar dan Barjesh Kochar (2008)

  • 15

    dalam penelitiannya RB-Matcher: String Matching Technique memberikan modifikasi

    terhadap algoritma Rabin Karp dengan tambahan proses memperhitungkan nilai bagi dari

    string dan key string yang memiliki nilai hash yang sama. Dengan perhitungan sisa, akan dapat

    diketahui hasil bagi dan jika kedua sisa dan hasil bagi teks sesuai dengan pola maka termasuk

    sukses hit, kemudian tidak perlu untuk membandingkannya. Itu berarti tidak ada perhitungan

    tambahan hits palsu jika keduanya pola maka sama ditemukan pola yang lain tidak ditemukan.

    Dibawah ini adalah pseudo code dari algoritma Rabin Karp yang telah dimodifikasi

    (RB-Matcher).

    Modified_Rabin_Karp (T,P,d,q)

    {

    n =Length (T)

    m= Length (P)

    t0=0

    p=0

    Q=0

    pq=0

    h=dm-1mod q

    For i=1 to m

    {

    p = (dp+P[i]) mod q

    t0 =(d t0 + T[i] ) mod q

    }

    pq= P[1…..m] DIV q

    For s =0 to n-m

    {

    Q=T{s+1……….s+ m] DIV q

    If (ts = p and Q = pq)

    {

    then print pattern matches at shift ‘s’

    }

    if s

  • 16

    Dengan pengubahan pada algoritma maka waktu komputasi yang diperlukan untuk proses

    Rabin Karp menjadi lebih kecil.

    7. Metode Penelitian

    Penelitian yang dilakukan adalah jenis penelitian terapan yakni penelitian yang dapat

    diterapkan untuk memecahkan masalah yang dihadapi, dalam hal ini pengujian / penilaian

    terhadap jawaban esai. Penelitian ini berfokus pada pengetahuan teoritis dan praktis dalam

    bidang tertentu dan bukan bidang pengetahuan umum.

    7.1. Bahan dan Lokasi Penelitian

    Bahan penelitian yang digunakan adalah soal soal esai yang terdapat di Jurusan Ilmu

    Komputer Universitas Udayana. Soal soal esai yang digunakan didapatkan dari pengumpulan

    data.

    7.2. Metode Pengumpulan Data

    Dalam pengumpulan data yang diperlukan untuk penelitian ini teknik pengumpulan

    data yang digunakan adalah

    1. Studi Literatur dan Dokumentasi

    Teknik ini merupakan pengumpulan data yang dilakukan untuk mendapatkan

    pengetahuan tentang , ekstraksi fitur teks. Studi literatur juga diperlukan untuk

    mendapatkan informasi penelitian-penelitian sebelumnya tentang otomatisasi

    penilaian esai, text mining, string matching dan algoritma Rabin Karp.

    Analisis dokumen dilakukan untuk mengumpulkan data yang bersumber dari

    arsip dan dokumen yang berhubungan dengan penelitian. Dokumen yang diperlukan

    berupa data soal esai beserta jawabannya, data penelitian dan data publikasi di Jurusan

    Ilmu Komputer Fakultas MIPA Universitas Udayana

    2. Wawancara

    Wawancara dilakukan terhadap individu yang mengetahui tentang data dan

    informasi masalah yang dibahas dalam penelitian ini. Topik wawancara mengenai soal

    soal esai yang akan digunakan sistem yang diperlukan

    7.3. Metode Pengembangan Perangkat Lunak

    Perangkat lunak yang digunakan sebagai pengembangan dan pengujian disini bersifat

    purwarupa dan menggunakan program aplikasi Net Beans dan Adobe Dream Weaver untuk

    pengembangan, serta Browser Firefox sebagai perangkat lunak uji. Adapun metode yang

    digunakan dalam pembuatan perangkat lunak ini menggunakan System Development Life

  • 17

    Cycle (SDLC) yaitu Waterfall Model. Didalam SDLC terdapat tahapan-tahapan

    pengembangan model purwarupa yaitu:

    1. Analisis kebutuhan

    Tahapan ini melakukan analisis kebutuhan yang bertujuan untuk mengetahui informasi,

    model dan spesifikasi dari sistem yang akan dibangun.

    2. Pengembangan purwarupa

    Tahapan ini melakukan perancangan dan pembuatan purwarupa sesuai dengan

    kebutuhan sistem.Tahapan ini juga dilakukan evaluasi terhadap purwarupa tersebut

    apakah sudah sesuai atau belum dengan kebutuhan sistem.

    3. Pengembangan perangkat lunak

    Tahapan ini melakukan pembuatan perangkat lunak yang telah sesuai dengan

    kebutuhan dan mengembangkan sampai menjadi sebuah sistem aplikasi.

    4. Pengujian

    Tahapan ini merupakan proses pengujian terhadap perangkat lunak yang dilakukan

    untuk memastikan apakah sudah sesuai dengan kebutuhan atau belum.

    7.4. Design Penelitian

    Adapun desain alur kerja dari penelitian otomatisasi penilaian esai adalah sebagai

    berikut.

    7.4.1. Diagram Konteks dan Data Flow Diagram Sistem

    Untuk menggambarkan alur data yang ada pada sistem secara umum digunakan notasi

    Data Flow Diagram (DFD).

    Bagan 2 Diagram Konteks Sistem

    Sistem

    Otomatisasi

    Penialaian Esai

    Pelajar Pengajar

    Menginputkan

    jawaban esai

    Mendapatkan

    Nilai

    Menginputkan Soal dan

    Kunci Jawaban

    Mendapat Laporan

    Hasil Penilaian dan

    Jawaban

  • 18

    Dari diagram konteks diatas penjabaran detail data flow diagramnya adalah sebagai berikut.

    Bagan 3 DFD Level 0..

    Dengan DFD level 1 dari proses 1, 2 dan 3 seperti bagan berikut.

    Bagan 4 DFD Level 1 Proses 1

    Input jawaban esai Laporan Nilai Pelajar

    Input soal dan

    jawaban Laporan Hasil

    Penilaian

    1.

    Preproses

    2.

    Proses

    3.

    Postproses

    DB 1

    Kata

    dasar

    Nilai similarity

    & rangking

    Pelajar

    Pengajar

    Kata

    dasar

    DB 2

    DB 3

    Data Nilai

    Data

    Nilai

    Input jawaban esai

    Input soal dan

    jawaban

    Kata dasar

    1.1.

    Case

    Folding

    1.2.

    Parsing &

    Tokenizing

    1.3.

    Filtering

    1.4.

    Stemming

    Teks input

    Kata input

    Kata

    penting

    DB 1

    Kata dasar

    Keterangan :

    DB 1 : database kata dasar

    DB 2 : database hash

    DB 3 : database nilai

    Proses

    1.Preproses : pemroses awal teks input

    2. Proses : pemroses utama string matching

    3. Postproses : pengolahan nilai esai

  • 19

    Bagan 5 DFD Level 1 Proses 2

    Bagan 6 DFD Level 1 Proses 3

    Kata dasar

    Nilai similarity

    dan rangking

    2.1.

    Merging

    2.2.

    String

    Matching

    2.3.

    Dice's

    Similarity

    Coefficient

    Teks input

    Nilai Similarity

    DB 2

    DB 1

    Kata dasar

    Nilai

    Similarity dan

    rangking

    3.3.

    Laporan

    Nilai

    3.2.

    Laporan

    Nilai dan

    Rekapitulasi

    Laporan nilai

    Pelajar

    DB 3

    Laporan Hasil

    Penilaian

    3.1.

    Proses

    Nilai

    Data Nilai

    Data Nilai

    Keterangan :

    DB 1 : database kata dasar

    DB 2 : database hash

    DB 3 : database nilai

    Proses

    1.Preproses : pemroses awal teks input

    2. Proses : pemroses utama string matching

    3. Postproses : pengolahan nilai esai

  • 20

    Dalam penelitian ini secara garis besar penulis jabarkan menjadi beberapa fase berbeda

    sesuai dengan relevansi tahapan penelitian dan pengembanganya.

    7.4.2. Tahap Preprocessing

    Pada tahap ini dilakukan pemrosesan awal terhadap data/teks yang akan digunakan

    dalam penelitian.

    Bagan 7 Alur Preprocessing

    7.4.2.1. Case Folding dan Tokenizing

    Case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil . Hal

    ini baik untuk membuat normalisasi terhadap string/teks dan mengurangi kesalahan pada

    pencarian informasi yang diakibatkan oleh perbedaan karakter/case yang sebenarnya memiliki

    makna yang sama Tahap tokenizing adalah tahap pemotongan string atau character stream

    menjadi token/kata yang menyusunnya (Christopher-Prabhakar-Hinrich, 2008).. Berikut

    adalah proses case folding dan tokenizing.

    Case Folding

    Mulai

    Filtering

    Stemming

    Selesai

    Tokenizing

    Keterangan :

    Case Folding : Mengubah string ke dalam

    lower case(tanpa huruf kapital)

    Tokenizing : memecah string menjadi kata

    Filtering : menyaring kata kata yang

    bermakna penting, me-remove

    kata hubung, symbol

    Stemming : mengubah kata ke bentuk dasar

    (kata dasar)

  • 21

    Bagan 8 Proses Case Filding dan Tokenizing

    7.4.2.2. Filtering

    Filtering adalah tahap menyaring / mengambil kata-kata penting dari hasil token. Dapat

    dilakukan dengan menggunakan stopword (membuang kata yang kurang penting) atau wordlist

    (menyimpan kata penting). Stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang

    dalam pendekatan bag-of-words. Contoh stopwords adalah “yang”, “dan”, “di”, “dari”, dan

    seterusnya. Contoh dari tahapan ini dapat dilihat pada bagan berikut.

    Bagan 9 Proses Filtering

    7.4.2.3. Stemming

    Tahap stemming adalah tahap pencarian dasar kata dari tiap kata hasil filtering. Pada

    tahap ini dilakukan proses pengembalian berbagai bentukan kata ke dalam suatu representasi

    yang sama (kata dasar). Tahap ini kebanyakan dipakai untuk teks berbahasa inggris dan lebih

    Ilmu Komputer adalah salah satu

    jurusan di Fakultas MIPA

    ilmu

    komputer

    adalah

    salah

    satu

    jurusan

    di

    fakultas

    mipa

    Teks input

    Teks output

    ilmu

    komputer

    salah

    satu

    jurusan

    fakultas

    mipa

    Token Input Token Output

    ilmu

    komputer

    adalah

    salah

    satu

    jurusan

    di

    fakultas

    mipa

  • 22

    sulit diterapkan pada teks berbahasa Indonesia. Hal ini dikarenakan Bahasa Indonesia tidak

    memiliki rumus bentuk baku yang permanen.

    Bagan 10 Proses Stemming

    Ada beberapa algoritma stemming berbahasa Indonesia yang dikembangkan dalam

    beberapa penelitian diantaranya algoritma Nazief Adriani dal algoritma Arifin Setiono. Nazief

    Adriani dideskripsikan pada sebuah laporan teknikal yang tidak dipublikasi dari Universitas

    Indonesia pada tahun 1996. Algoritma ini bekerja dengan menggunakan aturan morfologi

    kompehrensif berdasarkan kelompok kata tertentu dengan mengenkapsulasi imbuhan kata

    yang diperbolehkan dan yang tidak (Jelita, 2007). Stemming Arifin Setiono juga memiliki alur

    kerja yang sama, yakni dengan menggunakan pendekatan dengan dictionary yang secara

    bertahap menghilangkan imbuhan kata. Algoritma ini lebih baik dalam kompleksitasnya

    daripada Nazief Adriani, namun dari segi keakuratan hasil proses algoritma Nazief Adriani

    lebih baik daripada algoritma Arifin Setiono (Jelita, 2007).

    Proses stemming pada teks berbahasa Indonesia lebih rumit/kompleks karena terdapat

    variasi imbuhan yang harus dibuang untuk mendapatkan root word(kata dasar) dari sebuah

    kata.. Pada umumnya kata dasar pada bahasa Indonesia terdiri dari kombinasi:

    Prefiks 1 + Prefiks 2 + Kata dasar + Sufiks 3 + Sufiks 2 + Sufiks 1

    Algoritma Nazief & Adriani memiliki tahap-tahap sebagai berikut:

    1. Pertama cari kata yang akan diistem dalam kamus kata dasar. Jika ditemukan maka

    diasumsikan kata adalah root word. Maka algoritma berhenti.

    2. Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”) dibuang. Jika berupa

    particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini diulangi lagi untuk

    menghapus Possesive Pronouns (“-ku”, “-mu”, atau “-nya”), jika ada.

    3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka

    algoritma berhenti. Jika tidak maka ke langkah 3a

    cari

    laku

    kembali

    bentuk

    bahasa Token Input Token Output

    pencarian

    dilakukan

    pengembalian

    bentukan

    berbahasa

  • 23

    a. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “-k”, maka “-

    k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma

    berhenti. Jika tidak ditemukan maka lakukan langkah 3b.

    b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah 4.

    4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi ke

    langkah 4a, jika tidak pergi ke langkah 4b.

    a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka

    algoritma berhenti, jika tidak, pergi ke langkah 4b.

    b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum

    juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan:

    jika awalan kedua sama dengan awalan pertama algoritma berhenti.

    5. Melakukan Recoding.

    6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan

    sebagai root word. Proses selesai.

    Tipe awalan ditentukan melalui langkah-langkah berikut:

    1. Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-

    turut adalah “di-”, “ke-”, atau “se-”.

    2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses

    tambahan untuk menentukan tipe awalannya.

    3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-”

    maka berhenti.

    4. Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none”

    maka awalan dapat dilihat pada Tabel 2. Hapus awalan jika ditemukan.

    Berikut adalah table kombinasi awalan dan akhiran yang tidak diijinkan.

    Awalan Akhiran yang tidak diizinkan

    be- -i

    di- -an

    ke- -i, -kan

    me- -an

    se- -i, -kan

    Tabel 1 Kombinasi awalan dan akhiran yang tidak diperbolehkan

  • 24

    Dengan cara menentukan tipe walan yang diberikan pada kata terdapat pada table berikut.

    Following Characters Tipe

    Awalan Set 1 Set 2 Set 3 Set 4

    “-r-“ “-r-“ – – none

    “-r-“ – – ter-luluh

    “-r-“ not (vowel or

    “-r-”)

    “-er-“ vowel ter

    “-r-“ not (vowel or

    “-r-”)

    “-er-“ not

    vowel

    ter-

    “-r-“ not (vowel or

    “-r-”)

    not “-er-“ – ter

    not (vowel or

    “-r-”)

    “-er-“ vowel – none

    not (vowel or

    “-r-”)

    “-er-“ not vowel – te

    Tabel 2 Cara Menentukan Tipe Awalan Untuk awalan “te-”

    Jenis awalan pada algoritma Nazief Adriani dibedakan menjadi beberapa tipe yang harus

    dihapus yakni

    Tabel 3.

    Tipe Awalan Awalan yang harus dihapus

    di- di-

    ke- ke-

    se- se-

    te- te-

    ter- ter-

    ter-luluh ter

    Tabel 3 Jenis Awalan Berdasarkan Tipe Awalannya

    Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan-aturan

    dibawah ini:

    1. Aturan untuk reduplikasi.

    1. Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata yang sama

    maka root word adalah bentuk tunggalnya, contoh : “buku-buku” root word-nya

    adalah “buku”.

    2. Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan ”seolah-olah”. Untuk

    mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika keduanya

    memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata

    “berbalas-balasan”, “berbalas” dan “balasan” memiliki root word yang sama yaitu

    “balas”, maka root word “berbalas-balasan” adalah “balas”. Sebaliknya, pada kata

  • 25

    “bolak-balik”, “bolak” dan “balik” memiliki root word yang berbeda, maka root

    word-nya adalah “bolak-balik”.

    2. Tambahan bentuk awalan dan akhiran serta aturannya.

    1. Untuk tipe awalan “mem-“, kata yang diawali dengan awalan “memp-” memiliki

    tipe awalan “mem-”.

    2. Tipe awalan “meng-“, kata yang diawali dengan awalan “mengk-” memiliki tipe

    awalan “meng-”.

    Berikut contoh-contoh aturan yang terdapat pada awalan sebagai pembentuk kata dasar.

    1. Awalan SE-

    Se + semua konsonan dan vokal tetap tidak berubah

    Contoh :

    Se + bungkus = sebungkus

    Se + nasib = senasib

    Se + arah = searah

    Se + ekor = seekor

    2. Awalan ME-

    Me + vokal (a,i,u,e,o) menjadi sengau “meng”

    Contoh :

    Me + inap = menginap

    Me + asuh = mengasuh

    Me + ubah = mengubah

    Me + ekor = mengekor

    Me + oplos = mengoplos

    Me + konsonan b menjadi “mem”

    Contoh :

    Me + beri = member

    Me + besuk = membesuk

    Me + konsonan c menjadi “men”

    Contoh :

    Me + cinta = mencinta

    Me + cuci = mencuci

    Me + konsonan d menjadi “men”

  • 26

    Contoh :

    Me + didik = mendidik

    Me + dengkur = mendengkur

    Me + konsonan g dan h menjadi “meng”

    Contoh :

    Me + gosok = menggosok

    Me + hukum = menghukum

    Me + konsonan j menjadi “men”

    Contoh :

    Me + jepit = menjepit

    Me + jemput = menjemput

    Me + konsonan k menjadi “meng” (luluh)

    Contoh :

    Me + kukus = mengukus

    Me + kupas = mengupas

    Me + konsonan p menjadi “mem” (luluh)

    Contoh :

    Me + pesona = mempesona

    Me + pukul = memukul

    Me + konsonan s menjadi “meny” (luluh)

    Contoh :

    Me + sapu = menyapu

    Me + satu = menyatu

    Me + konsonan t menjadi “men” (luluh)

    Contoh :

    Me + tanama = menanam

    Me + tukar = menukar

    Me + konsonan (l,m,n,r,w) menjadi tetap “me”

    Contoh :

    Me + lempar = melempar

    Me + masak = memasak

    Me + naik = menaik

    Me + rawat = merawat

    Me + warna = mewarna

  • 27

    3. Awalan KE-

    Ke + semua konsonan dan vokal tetap tidak berubah

    Contoh :

    Ke + bawa = kebawa

    Ke + atas = keatas

    4. Awalan PE-

    Pe + konsonan (h,g,k) dan vokal menjadi “per”

    Contoh :

    Pe + hitung + an = perhitungan

    Pe + gelar + an = pergelaran

    Pe + kantor + = perkantoran

    Pe + konsonan “t” menjadi “pen” (luluh)

    Contoh :

    Pe + tukar = penukar

    Pe + tikam = penikam

    Pe + konsonan (j,d,c,z) menjadi “pen”

    Contoh :

    Pe + jahit = penjahit

    Pe + didik = pendidik

    Pe + cuci = pencuci

    Pe + zina = penzina

    Pe + konsonan (b,f,v) menjadi “pem”

    Contoh :

    Pe + beri = pemberi

    Pe + bunuh = pembunuh

    Pe + konsonan “p” menjadi “pem” (luluh)

    Contoh :

    Pe + pikir = pemikir

    Pe + potong = pemotong

    Pe + konsonan “s” menjadi “peny” (luluh)

    Contoh :

    Pe + siram = penyiram

    Pe + sabar = penyabar

  • 28

    Pe + konsonan (l,m,n,r,w,y) tetap tidak berubah

    Contoh :

    Pe + lamar = pelamar

    Pe + makan = pemakan

    Pe + nanti = penanti

    Pe + wangi = pewangi

    Pada proses stemming menggunakan Algoritma Nazief & Adriani, kamus yang

    digunakan sangat mempengaruhi hasil stemming. Semakin lengkap kamus yang digunakan

    maka semakin akurat pula hasil stemming.

    7.4.3. Tahap Processing Algoritma Rabin Karp

    Flow chart dari proses utama sistem adalah sebagai berikut.

    Bagan 11 Flow chart Rabin Karp

    7.4.3.1. K-Gram Parsing

    K-Grams adalah rangkaian terms dengan panjang K. Kebanyakan yang digunakan

    sebagai terms adalah kata. K-Grams merupakan sebuah metode yang diaplikasikan untuk

    pembangkitan kata atau karakter. Metode K-Grams ini digunakan untuk mengambil potongan-

    potongan karakter huruf sejumlah k dari sebuah kata yang secara kontinuitas dibaca dari teks

    sumber hingga akhir dari dokumen. Dalam Markov Model nilai K-Grams yang sering

    digunakan yaitu, 2-gram (bigram), 3-gram (trigram) dan seterusnya disebut K-Grams (4-gram,

    5-gram dan seterusnya). Dalam natural language processing, penggunaan K-Grams (atau lebih

    dikenal dengan n-gram), proses parsing token (tokenisasi) lebih sering menggunakan 3-gram

    dan 4-gram, sedangkan 2-gram digunakan dalam parsing sentence, misal dalam part-of-speech

    Parsing K-gram

    Mulai

    Hashing

    String Matching

    Selesai

    Keterangan :

    Parsing K-gram : Menggabungkan kata dan

    Memotongnya menjadi string pola sejumlah

    K karakter.

    Hashing : memberi nilai hash untuk masing masing

    pola string

    String Matching : mencocokkan string pola dengan

    string query

  • 29

    (POS). Penggunaan 2-gram dalam tokenisasi akan menyebabkan tingkat perbandingan antar

    karakter akan semakin besar. Berikut ini adalah contoh K-Grams dengan k=5:

    7. Text : Ilmu Komputer Universitas Udayana ilmu komputer universitas udayana

    8. Kemudian dilakukan penghilangan spasi : ilmukomputeruniversitasudayana

    9. Sehingga hasil K- Gram yang didapat :

    {ilmuk} {lmuko} {mukom} {ukomp} {kompu} {omput}

    {mpute} {puter} {uteru} {terun} {eruni} {runiv}

    {unive} {niver} {ivers} {versi} {ersit} {rsita}

    {sitas} {itasu} {tasud} {asuda} {suday} {udaya}

    {dayan} {ayana}

    7.4.3.2. Hashing

    Hashing adalah suatu cara untuk mentransformasi sebuah string menjadi suatu nilai

    yang unik dengan panjang tertentu (fixed-length) yang berfungsi sebagai penanda string

    tersebut. Fungsi untuk menghasilkan nilai ini disebut fungsi hash, sedangkan nilai yang

    dihasilkan disebut nilai hash. Contoh sederhana hashing adalah:

    Firdaus, Hari

    Munir, Rinaldi

    Rabin, Michael

    Karp, Richard

    Menjadi:

    7864 = Firdaus, Hari

    9802 = Munir, Rinaldi

    1990 = Rabin, Michael

    8822 = Karp, Richard

    Contoh di atas adalah pengunaan hashing dalam pencarian pada database. Apabila tidak di-

    hash, pencarian akan dilakukan karakter per karakter pada nama-nama yang panjangnya

    bervariasi dan ada 26 kemungkinan pada setiap karakter. Namun pencarian akan menjadi lebih

    efisien setelah di-hash karena hanya akan membandingkan empat digit angka dengan cuma 10

    kemungkinan setiap angka. Nilai hash pada umumnya digambarkan sebagai fingerprint atau

    blok string yaitu suatu string pendek yang terdiri atas huruf dan angka yang terlihat acak (data

    biner yang ditulis dalam heksadesimal).

  • 30

    7.4.4. Arsitektur Integrasi Sistem Moodle dan Automasi Esai

    Untuk menggabungkan system automasi dengan system elearning Moodle maka

    diperlukan sebuah modul yang berfungsi sebagai interpreter yang menjembatani system

    automasi dengan system Moodle. Modul ini akan menghubungkan kedua system dalam proses

    data yang berkaitan dengan database yang digunakan pada kedua system. Adapun rancangan

    arsitektur integrasi kedua system antara lain sebagai berikut.

    Bagan 12 Arsiterktur Integrasi Sistem

    Dari database Moodle modul akan mengambil data data seperti data user, course yang

    diikuti user, lesson, serta data Quiz atau evaluasi serta data jawaban yang diperlukan. Secara

    detail arsitektur hubungan proses integrasi system adalah seperti dibawah ini.

    Bagan 13 Rancangan Arsitektur Integrasi Sistem

    Sistem Moodle

    Database Moodle

    Modul Intepreter Sistem Automasi

    Proses

    Seleksi dan

    Agregasi

    Data

    Proses Data

    Jawaban

    Data Course

    User, quiz

    Jawaban

    Kunci dan

    Jawaban

    Esai

    Sesi Aktif

    Get data

    Seleksi atribut

    data

    Agregasi data

    Preprosessing

    penilaian

    Proses

    penilaian

    Input kunci

    jawaban

    Submit

    nilai

    Database

    moodle

    Database

    moodle

    Database

    moodle

    data user,

    course, lesson

    quiz

    data dengan atribut

    terseleksi

    Agregat data user,

    course, quiz

    Data kunci

    jawaban

    pengajar pelajar

    Proses

    laporan

    Nilai disetujui

    Data jawaban dan

    kunci jawaban

    Data jawaban

    Dan kunci jawaban

    Rekomendasi

    nilai data nilai

    Laporan

    nilai

    Laporan

    nilai dan

    rekapitulasi

    Modul Sistem automasi

    kunci jawaban

  • 31

    7.4.5. Penambahan Modul pada Moodle

    Modul yang ditambahkan pada system elearning Moodle tidak dapat dibangun secara

    sembarang. Moodle telah menyediakan template modul baru dalam bentuk package modul

    yang dapat diunduh pada halaman resmi Moodle. Pada package tersebut terdapat beberapa file

    default yang harus ada pada sebuah modul baru yang akan ditambahkan pada system elearning

    Moodle. Berikut adalah langkah langkah membangun dan menambahkan modul baru pada

    Moodle.

    1. Download package template modul baru melalui situs resmi Moodle melalui

    https://docs.moodle.org/dev/NEWMODULE_Documentation

    2. Lakukan ekstraksi pada package template modul yang telah diunduh

    3. Ubah nama folder newmodule/ sesuai dengan nama modul yang akan digunakan.

    Nama modul harus menggunakan huruf kecil (bukan capital) tanpa tanda

    underscore.

    4. Lakukan editing pada file dalam folder modul baru yang dibuat maupun pada file

    dalam subdirektori modul baru

    5. Kemudian tempatkan folder modul baru pada folder /mod pada Moodle direktori.

    6. Buka menu setting administrasi pada dashboard admin, Settings > Site

    Administration > Development > XMLDB editor, lalu modifikasi table module

    yang ada.

    7. Pastikan web server memiliki akses data ke dalam database. Walaupun modul yang

    dibangun tidak menggunakan database setidakanya terdapat satu table referensi

    yang dihubungkan dengan system/modul yang dibangun.

    8. Modifikasi file version.php untuk men-setting versi dari modul yang dibangun.

    9. Buka menu Settings > Site Administration > Notifications untuk memastikan tabel

    modul telah dibuat

    10. Lakukan pengecekan bahwa modul yang dibangun telah berhasil ditambahkan

    pada system Moodle telah berhasil dibuat dengan membuka menu Site

    Administration > Plugins > Activity modules > Manage activities dan perhatikan

    apakah nama modul telah berada pada list modul yang telah diinstall.

    Hal yang harus diperhatikan dalam penambahan modul adalah pastikan bahwa modul yang

    dibangun telah memiliki kapabilitas pada database dan sistem Moodle. Dan sebelumnya

    mungkin perlu melakukan pengubahan pada file mod_form.php and view.php sebelum

    memodifikasi file yang lain.

    https://docs.moodle.org/dev/NEWMODULE_Documentation

  • 32

    8. Uji Coba

    Untuk pengujian terhadap sistem akan dilakukan dengan metode Blackbox testing.

    Pengujian dilakukan dengan beberapa skenario uji coba. Untuk bahan percobaan akan

    digunakan data dari hasil penelitian awal yang didapat di Jurusan Ilmu Komputer Universitas

    Udayana yakni berupa soal esai dengan struktur esai murni teks tanpa ada symbol, rumus atau

    persamaan matematis lainnya.

    8.1. Skenario Uji Coba

    Pengujian pertama dilakukan dengan menginput 1 soal melalui system kemudian akan

    diberikan 10 jawaban soal esai menggunakan jawaban yang sama memalui system Moodle

    hanya saja jawaban ke – 2, 3, 4, 5, 6, 7, 8, 9, dan 10 dilakukan pemotongan kata hingga jumlah

    kata masing masing 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, dan 10 % dari jawaban 1.

    Tujuan dari mengurangi jumlah kata adalah untuk mengetahui perangkingan yang didapat oleh

    sistem, setelah menginput kesepuluh jawaban esai tersebut. Pemotongan kata pada jawaban

    esai telah diubah sedemikian rupa dengan memotong secara acak jawaban esai . Perkiraan awal

    hasil dari pengujian ini adalah didapat hasil rangking berturut dari jawaban yang memiliki

    kesamaan tertinggi hingga terendah yakni jawaban 1, 2, 3 hingga 10.

    Pengujian kedua dilakukan dengan 1 soal esai kembali dengan 10 jawaban soal esai

    menggunakan jawaban yang berebeda dari jawaban 1. Tujuannya adalah untuk mengetahui

    perangkingan yang didapat oleh sistem menggunakan jawaban dengan uraian yang berbeda

    pada setiap jawaban setelah menginput kesepuluh jawaban esai tersebut. Perkiraan awal hasil

    dari pengujian ini adalah didapat hasil rangking berturut dari jawaban yang memiliki kesamaan

    tertinggi hingga terendah yakni jawaban 1, 2, 3 hingga 10.

    Tingkat Akurasi dari system akan diukur secara manual. Pengukuran dilakukan dengan

    membandingkan perolehan penilaian yang didapat dengan menilai esai secara manual dan

    penilaian yang didapat system. Tingkat akurasi akan disesuaikan dengan rasio pendekatan

    sebesar 90 % selisih dari penilaian secara manual dengan penilaian system. Hal ini dilakukan

    untuk memberikan batasan error rate penilaian system dengan penilaian manual sehingga dapat

    diketahui seberapa jauh perbedaan hasil yang diberikan oleh system dengan evaluasi manual.

    Proses pada kedua pengujian dilakukan proses preprocessing dan processing.

    Preprocessing akan dilakukan dikedua sisi query (jawaban) dan dokumen(kunci jawaban).

    Penentuan stoword pada penelitian ini dilakukan dengan mencari kata yang paling sering

    muncul dari beberapa dokumen dan daftar kata hubung berdasarkan Kamus Besar Bahasa

    Indonesia(KBBI) sehingga didapatkan kata-kata yang memang dapat dihilangkan dari

  • 33

    dokumen. Demikian pula untuk penentuan kata dasar juga mengacu pada KBBI edisi online.

    Processing dilakukan dengan menggunakan Rabin-Karp dan dice coefficient. Variable yang

    digunakan dalam penelitian ini adalah waktu proses dan nilai similaritas kunci jawaban

    terhadap jawaban input(query).

    9. Jadwal Pelaksanaan Penelitian

    AGENDA BULAN KE 1 BULAN KE 2 BULAN KE 3

    No Kegiatan MINGGU KE MINGGU KE MINGGU KE

    1 2 3 4 1 2 3 4 1 2 3 4

    Tahap Analisis Kebutuhan

    1 Pengumpulan data (Soal dan

    Jawaban Esai sebagai input

    pada system)

    Tahap Pengembangan

    Purwarupa/Permodelan

    2 Analisis kebutuhan antar muka

    dan pengembangan sistem

    3 Pembuatan detail flowchart

    preprocessing system untuk

    tokenizing, filtering dan

    stemming

    4 Pembuatan Flowchart parsing

    k-gram, hashing dan String

    Matching

    5 Pembuatan data flow diagram

    6 Pembuatan scenario dan data

    uji sistem

    7 Pembuatan desain antar muka

    Tahap Pengembangan Sistem

    8 Pengembangan dengan bahasa

    pemrograman PHP dan data

    Base MySQL

    Tahap Pengujian

  • 34

    9 Pengujian Unit

    10 Pengujian sistem sesuai

    skenario uji

    11 Pembuatan tabel hasil

    pengujian sistem

  • 35

    Daftar Pustaka

    Akhtar Rasool,Amrita Tiwari, Gunjan Singla,Nilay Khare. 2012. “String Matching

    Methodologies:A Comparative Analysis”. International Journal of Computer

    Science and Information Technologies, Vol. 3 (2) , 2012,3394 - 3397

    Christian Charras, Thierry Lecroq. Handbook of Exact String Matching Algorithms.

    Christopher D. Manning, Prabhakar Raghavan & Hinrich Schütze. 2009. An Introduction to

    Information Retrieval. England : Cambridge University Press Feldman, Ronen, James Sanger. 2007. The Text Mining Handbook : Advanced Approaches in

    Analyzing Unstructured Data. New York : Cambridge University Press.

    Handrie Noprisson, Boko Susilo, Ernawati., Oktober. 2013. “Implementasi Algoritma Rabin-

    Karp Untuk Menentukan Keterkaitan Antar Publikasi Penelitian Dosen Tahun 2013”.

    Jurnal Teknologi Informasi, Volume 9 Nomor 2, ISSN 1414-9999.

    Kendall, Kenneth E. 2008. Systems Analysis and Design 8th Edition. New Jersey : Prentice

    Hall

    Leena Salmela, Jorma Tarhio, Jari Kytojoki. 2006. “Multi-pattern string matching with q-

    grams”. ACM Journal of Experimental Algorithmics, Volume 11, Article No. 1.1,

    2006.

    Manvi Mahana, Mishel Johns, Ashwin Apte,. Desember. 2012.“Automated Essay Grading

    Using Machine Learning”. CS229 Machine Learning Stanford University.

    Rajender Singh Chillar, Barjesh Kochar., 2008. “RB-Matcher: String Matching Technique”.

    World Academy of Science, Engineering and Technology, Vol:2 2008-06-27.

    Sahriar Hamza, M. Sarosa, Purnomo Budi Santoso,. Desember. 2013. “Sistem Koreksi Soal

    Essay Otomatis Dengan Menggunakan Metode Rabin Karp”. Jurnal EECCIS Vol. 7,

    No. 2.

    Salmuasih, Andi Sunyoto,. Juni2013. “Implementasi Algoritma Rabin Karp Untuk

    Pendeteksian Plagiat Dokumen Teks Menggunakan Konse Similarity”. Seminar

    Nasional Aplikasi Teknologi Informasi (SNATI) 2013, F-23, ISSN 1907-5022.

    Siswanto. 2006. “Penggunaan Tes Essay Dalam Evaluasi Pembelajaran” Jurnal Pendidikan

    Akuntansi Indonesia, Vol. V No. 1, Hal. 55 – 61