Sunday, October 25, 2009

Maxion : akibat MAXsa pakai minION

image Tiga Kasus Pengujian Yang Ditulis dengan JUnit di atas IntelliJ IDEA, Dan Akhirnya Menghasikan Maxion yang Cukup Bisa Dihandalkan (dan Menjanjikan)

Ok, saya share ya. Ini penting. Saya akan paparkan butir-butir pemikirannya, sampai dibangunnya Maxion ini. Smoga bisa bermanfaat bagi Anda (dan juga saya).

Coba cek dulu situs ini : https://minion.dev.java.net.

Itu adalah proyek Java (yang masih dalam status Incubator, jadi –benar kata Mas Pancara, tidak terjamin untuk kelangsungannya) yang kami perkirakan bisa dipergunakan untuk pengembangan sistem deteksi plagiarisme di UGM. Bagi yang asing dengan Plagiarisme, itu adalah … eeeh, kebiasaan kita. Hehe. Yaitu, kalau mau ngumpul tugas, asal kopi paste aja. Gitu lho. Ga boleh lho itu (uhuk uhuk, batuk). Apalagi kalau kasusnya adalah proposal penelitian, skripsi, thesis atau malah disertasi. Wah, kan itu berarti …. eeeh, … pokoknya kita mau minimalisir plagiarisme dengan sistem ini. Gitu deh ^^

So, di awal riset, … telah ada dua alternatif teknologi : pimiento dan minion. Dan, dua2nya tidak dijamin bisanya (gubraks ^^). Yang pertama, hasil karya doctoral milik seseorang, yang meski diberikan sourcenya, namun tentu tidak sebagus kalau kita kembangkan sendiri. Yang kedua, well, karena di hosting di dev.java.net, saya ambil kesimpulan (terlalu berani mungkin), bahwa proyek ini punya kekuatan. Wealah, ternyata malah lebih gawat dari Pimiento : coba cek milisnya, masa’ pesan terakhir adalah November 2008??? Padahal saya meyakinkan dipergunakannya Minion (namun tetap, saat itu saya mengisolasi kompleksitas, dengan menganggap Minion adalah Black Box : rancang saja arsitektur dan layering aplikasi. Masalah indexing, findSimilar dan lainnya, bisa kita refine nanti). Dan, itu betul.

Dan setelah mencoba mengimplementasikan indexing dengan kasus file2 text sederhana saja, ternyata banyak result yang aneh. Misal : kenapa yang diindeks adalah angka-angka saja? Lalu, waktu kita cek findSimilar, kenapa skor untuk acuan dokumen malah lebih kecil dari dokumen lain? Aneh deh. Setelah mengirim dua email ke milis, dan mengirimkan pesan twitter ke Orangnya Langsung, akhirnya dapat kesimpulan sederhana : Ga ada yang nggubris lagi. Gubraxs.

Baik, tanpa perlu banyak cerita, ini adalah butir-butir konsep Maxion (Hm… yang merupakan singkatan historikal (dan maksa, hehe): akibat MAXsa pakai minION).

  1. Plagiarisme (pada kasus penulisan dokumen akademis) adalah proses melajak jejak hasil karya orang lain, yang dengan seenak ud*lnya, dipakai tanpa memberikan catatan penghargaan. Bagaimana kita tahu suatu fragmen adalah hasil karya orang lain? Nah, itu … (awalnya ga kebayang, namun setelah meditasi semalaman di malam Jum’at di Al-Ittihaad yang baru lalu) ternyata mudah. Konsepnya adalah …
  2. FINGERPRINT. Tiap fragmen baik paragraph atau line, memiliki (yang saya sebut dengan) sidik jari. Saya baru pergunakan satu saja mekanisme sidik jari : MD5. Tau kan? Jadi, jika suatu rangkaian string dimasukkan ke dalam algoritma MD5, maka akan dihasilkan string unik yang tidak ada duanya dengan yang lain. Ini sama persis seperti konsep sidik jari pada manusia : “Diberikan manusia yang dicipta Allah SWT terlebih dahulu di alam Ruh, dan dilahirkan di dunia melalui proses ************ antara **** dan ***, maka Anda bisa dijaminkan tidak ada yang memiliki sidik jari yang sama”. So, tiap fragmen paragraph atau baris pada semua dokumen yang dikelola, kita buatkan sidik jarinya dengan MD5. Caranya? Guampang. Masukkan saja ke dalam RDBMS (disini dipakai MySQL). Setelah itu …
  3. SIMPAN KE DALAM SERVER RDBMS (MySQL), yang rancangan diagramnya berikut ini:
    imageSederhana kan? Dengan hanya DELAPAN tabel saja, INDEXING dan SIMILARITY (so far) bisa ditunjukkan hasilnya. Proses yang utamanya, adalah ini : pecahkan semua DOCUMENT ke dalam PARAGRAPH, buat FINGERPRINT-nya dengan MD5, jika sidik jari ini tidak ditemukan di tabel PARAGRAPH, maka masukkan dia. Jika sudah ada (ups, ini kandidat plagiator kita ^^), maka biarkan, hanya, ambil nilai SIDIKJARI-nya tersebut, dan simpan ke tabel DOCUMENT_PARAGRAPH. Hal yang sama Anda lakukan untuk fragmen LINE. Selanjutnya …
  4. UNTUK PROSES FINDSIMILAR, atau cari yang mirip, itu …. akan saya jelaskan kalau ada yang bertanya. Hehe (alesan sih, soalnya ini udah ngantuk. Jam setengah dua nih!).

 

Semoga bermanfaat!

NB:

  • Penggunaan IntelliJ IDEA mungkin salah satu faktor teknis yang tidak bisa diremehkan. Banyak sekali fitur2 shortcut yang membuat saya bisa bergerak cepat ke bagian tertentu dan (paling) penting pada kode. Fiuh. Hebat ini. Tq mas Panc! Dari dulu mo beli, (cieeeeh), ga dapat2. Alhamdulillah, ada yang … bisa dipakai gitu deh :p
  • Wah, sekitar sebulan lagi Lebaran Haji. Semoga bisa pulang ke Bali dan Kurban di sana. Amiiin. :)

No comments: