Showing posts with label plagiarism. Show all posts
Showing posts with label plagiarism. Show all posts

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. :)

Saturday, October 24, 2009

Unit Testing : Merasakan Manfaat dari Yang Terabaikan

 

image

Green Bar!!! Pengujian berhasil…

Meski skripsi saya dulu tentang Extreme Programming, tidak sering saya menggunakan konsep2 XP dalam pengembangan software (pun, karena umumnya saya membantu pembelajaran dan pengembangan software untuk Tugas Akhir ya, yg menurut hemat saya, tidak perlu membutuhkan Unit Testing). Akibatnya, saat benar2 ada pengembangan software dalam skala komersial/produksi, saya lupa dengan Unit testing. Wah, pelajaran berharga. Begini kasusnya.

Aplikasi harus mendeteksi file2 baru pada suatu folder, dan jika ada yang baru, ia akan mengindeksnya dan memasukkan ke database. Oke, fitur ini rampung. Namun, saat pengetesan, saya benar2 mensimulasikan hal tersebut : saya kopi2 file baru ke folder tersebut. Setelah cek indexing berhasil, saya hapus. Dan diulang lagi.

Ini benar? ya tidak noh. Lah, kalau perlu mengetest … sampai 20 kali???. Kan ga praktis kalau paste dan undo via Windows Explorer ?

Solusinya ini : method pengindeks-an yang sedang dikerjakan dan diverifikasi, ditest tidak dengan mencoba kopi paste ke folder tersebut, namun di test dengan menggunakan Unit Testing via JUnit pada IntelliJ IDEA (Netbeans atau apapun sama saja). Perhatikan kode ini :

 

public void testSimilarity(){
       String file1 = "D:\\_SWDEV\\GO\\8.PLA\\work\\repos\\s1.txt";
       String file2 = "D:\\_SWDEV\\GO\\8.PLA\\work\\repos\\s2.txt";
       try {
           Indexer.getInstance().indexDocument(new File(file1));
           Indexer.getInstance().indexDocument(new File(file2));
        } catch (DocumentAlreadyExistException e) {
           e.printStackTrace();  }

   }

Nah, kode itu bisa dipanggil berulang via RUN biasa (jadi sekali tekan tombol RUN aja, sudah ketest). Tekan berapa kali pun, hasilnya akan sama. Ga perlu kopi paste kan?

Semoga bermanfaat!

NB:

  • Nanti saya share terus tentang JUnit terus… manfaat sekali lho…
  • Insya Allah… :)

Friday, September 11, 2009

Memaksimalkan Waktu 2 Jam Setelah Sholat Jum’at Untuk Bekerja

image

Jum’atan di Mekkah (2006) dari Detik.com

Yaitu, dua jam-an dari sekarang, karena pada Surat Al-Jumu’ah ayat 9 - 11, dikatakan :

image

“Hai orang-orang beriman, apabila diseru untuk menunaikan shalat Jum'at, maka bersegeralah kamu kepada mengingat Allah dan tinggalkanlah jual beli. Yang demikian itu lebih baik bagimu jika kamu mengetahui.”

image

“Apabila telah ditunaikan shalat, maka bertebaranlah kamu di muka bumi; dan carilah karunia Allah dan ingatlah Allah banyak-banyak supaya kamu beruntung”

image

Dan apabila mereka melihat perniagaan atau permainan, mereka bubar untuk menuju kepadanya dan mereka tinggalkan kamu sedang berdiri (berkhotbah). Katakanlah: "Apa yang di sisi Allah lebih baik daripada permainan dan perniagaan", dan Allah Sebaik-baik Pemberi rezki”

Pada ayat ke-10 tersebut, secara tegas disampaikan untuk berusaha mencari karunia Allah. Setelah secara tegas memerintahkan menunaikan Sholat Jum’at dengan meninggalkan jual beli, maka ayat selanjutnya memerintahkan untuk berniaga setelah itu. Nah, itu, menurut saya, indah sekali kan?

Semoga bermanfaat!

NB:

  • Inginnya Jum’atan di Markaz Al-Ittihaad Jakal Km 5 (depan Wahana Disc), terus mau ke partner kerja untuk bahas tentang Proyek Baru dengan LPPM UGM. Tapi, karena ada klien dari Jakarta yg akan datang ba’da Ashar, hm, betapapun inginnya, maka lebih baik kalau saya gunakan waktu 2 jam itu u/ memantapkan materi u/ pertemuan ba’da Ashar dengan beliau.
  • Bismillah…