Our Recent Posts

Tags

Data Mining : penerapan yang penting namun tidak disadari

Apa yang akan disampaikan praktisi dan akademisi TI bila kita ajak berdiskusi tentang data mining? Saya menduga akan ada beberapa tanggapan umum : ‘Oh, itu bukan keahlian saya’, ‘Menarik, dan begini-begitu’, ‘Belum banyak yang pakai’, ‘Tool-nya mahal’, ‘Rumit’. Pertanyaan saya selanjutnya : dari semua PT (Perguruan Tinggi), apakah ada hasil penelitian data mining yang bermanfaat kepada banyak praktisi dan akademisi TI untuk waktu yang lama dalam mengikuti perkembangan TI? Saya lihat tidak ada.

Dalam tulisan singkat ini saya ajak pembaca untuk melihat bahwa penelitian data mining tidak harus memerlukan tool yang mahal, bahwa kita bisa membuat hasil penelitian yang memiliki manfaat kepada banyak insan TI untuk mengikuti perkembangan TI dalam waktu yang lama.

Banyak buku data mining sudah dipublikasikan. Semua buku data mining yang Penulis baca terlalu menekankan penerapan data mining pada pemasaran dan/atau penjualan ([Seid2001]). Belum ada buku data mining yang memaparkan penerapan data mining dalam mengenali pemakaian kata-kata dalam TI. Saya akan memberi contoh dua kasus masalah.

Para praktisi dan akademisi TI sering berhadapan dengan istilah-istilah berikut : Type, Entity-type, Object-type, DataType, Abstract Data Type, Class, Domain. Kebanyakan pengarang entah tidak memberi alasan tentang pemakaian banyak istilah tersebut, atau memberi alasan – yang dibuat-buat – tentang perlunya pemakaian istilah-istilah tersebut (misal : bahwa class tidak sama dengan type). Pertanyaannya : apakah kita perlu semua istilah tersebut?

Pada contoh kedua, praktisi dan akademisi TI sering berhadapan dengan istilah-istilah Behavior, Command, Function, Message, Method, Operation, Operator, Procedure, Process, Stored procedure, dan Instruction. Pertanyaannya sama: apakah kita perlu semua istilah tersebut?

Saya telah melakukan penelitian pengenalan pola pemakaian kata-kata tersebut. Salah satu contoh hasilnya adalah keputusan saya pada kasus kedua di paragraf di atas. Kata operasi dipakai sebagai istilah yang primer, proses sebagai istilah yang sekunder, serta fungsi dan prosedur sebagai istilah tersier. Kata proses masih layak dipakai untuk kasus-kasus seperti proses bisnis dan prosesor (seperti dalam kasus perangkat keras). Kata fungsi bermakna operasi yang mengembalikan nilai, dan dipakai dalam kata bentukan fungsional. Kata prosedur bermakna operasi yang tidak mengembalikan nilai.

Mengapa kata operasi yang primer? Data mining pada dasarnya adalah pengenalan pola, dan saya mengenali pola pemakaian kata operasi dari kata dasarnya (operate dalam bahasa Inggris), dan kata-kata bentukan. Daftar ini mencakup hampir semua kata bentukan dari kata dasar operate : operator, operable, operability, operand, operation, operational, operating (seperti pada frasa operating-system). Dari pengenalan pola ini saya utamakan pemakaian kata operasi. Bukankah kata functor, functable, proceduror, procedurable, dan kata-kata bentukan lainnya tidak ada atau terlalu aneh?

Untuk kasus pertama, saya memilih memakai kata type. Mengapa? Ada frasa strongly-typed, weakly-typed, strong typing, weak typing, parameterized type ([Sebe1996], [Ghez1997]) Tidak ada frasa strongly-classed, weakly-classed, strong classing, weak classing, parameterized class. Kalaupun ada, istilah-istilah terakhir (yang memakai kata class/classed/classing) hanya menambah beban. Selain itu tidak ada istilah DataClass, dan bahkan buku Object-Oriented pun masih memakai kata type (misal : parameterized type, seperti [Stro1997]).

Karena keterbatasan tempat, saya tidak dapat memaparkan semua hasil penelitian saya pada artikel ini. Yang penting saya tidak berhenti pada hanya meneliti. Hasil penelitian ini diterapkan pada semua materi training/workshop, [Huta2005] dan semua buku lain yang saya tulis.

Manfaat ide seperti ini sangat mudah dinalar. Lihat saja prinsip kerja kompresi data ([Tane1996]). Bila varian kata terlalu banyak, maka hasil kompresi tidak optimal. Bila varian kata sedikit, hasil kompresi optimal. Kerja otak kita memakai prinsip yang mirip. Bila jumlah istilah terlalu banyak, maka kita akan sulit memahami teks. Bila jumlah istilah sedikit, kita mudah memahami teks.

Saya akan membuktikan kebenaran teori ini dengan beberapa file yang saya kirimkan kepada redaksi (semoga file-file ini dapat dimuat di CD dan di web). File-file yang dipakai adalah file teks untuk menghindarkan bias dari efek penambahan karakter formatting oleh editor teks seperti Microsoft Word. Kompresi memakai perangkat lunak Winzip 8.0.

File Document1.txt adalah file teks hasil copy-paste sebagian isi Bab 4 Programmer’s Guide Microsoft Assembler. File ini memakai kata operator, operation, dan instruction dengan bentuk tunggal maupun jamak yang memakai akhiran s. Ukuran uncompressed file Document1.txt adalah 6499 byte. Ukuran compressed file Document1.zip adalah 2731 byte.

Uncompressed file Document1A.txt adalah hasil perubahan dari file asli Document1.txt, hasil penggantian semua kata operator dan instruction dengan operation. Ukurannya 6496 byte, dan ukuran file Document1A.zip hasil kompresi adalah 2725 byte. Baik uncompressed maupun compressed files hasil pengurangan jumlah istilah berukuran lebih kecil (6496 versus 6499, 2725 versus 2731).

Kita dapat melakukan optimasi lebih lanjut. File Document1A.txt dapat dioptimasi dengan mengganti semua frasa Data Type dengan kata Type (case tetap dijaga, huruf besar dan huruf kecilnya tetap). File Document1B.txt hasil perubahan ini berukuran 6469 byte, lebih kecil daripada Document1A.txt yang berukuran 6496 byte. Hasil kompresinya Document1B.zip berukuran 2722 byte, lebih kecil daripada Document1A.zip yang berukuran 2725 byte

Pembaca mungkin merasa bahwa contoh-contoh di atas kurang meyakinkan karena ‘dari sononya’ ukuran uncompressed files sudah lebih kecil (misal : Document1A.txt dibanding Document1.txt) sehingga file hasil kompresi pasti lebih kecil (misal : Document1A.zip dibanding Document1.zip). Penulis akan beri contoh kasus dimana faktor utama yang berperan bukan ukuran uncompressed files, melainkan penghematan jumlah variasi kata.

File Document5.txt adalah file teks berisi class type domain behavior operator procedure function method routine. Catatan : karena Document5.txt adalah file teks, sebenarnya tidak ada formatting ke huruf miring; Penulis menulisnya miring untuk membedakan isi file dengan teks pembahasan

File Document6.txt adalah file hasil optimasi variasi kata di Document5.txt sehingga berisi type type type operation operation procedure function operation operation. Uncompressed file Document5.txt berukuran 69 byte, lebih kecil daripada Document6.txt yang berukuran 73 byte. Jadi, ukuran uncompressed file hasil optimasi variasi kata malah lebih besar daripada file asli.

Tetapi file hasil kompresi Document6.zip lebih kecil daripada Document5.zip (162 versus 184 byte). Ini bukti jumlah variasi kata yang lebih berperan dalam kompresi, bukan sekedar ukuran file sumber. Di sisi lain, walau ukuran file hasil optimasi jumlah variasi kata bisa berukuran lebih besar daripada file asli, otak kita lebih mudah memahami isinya. Jadi, optimasi jumlah variasi kata menghemat pemakaian otak kita dan menghasilkan kompresi yang lebih baik, tidak tergantung apakah ukuran (uncompressed) file hasil optimasi akan lebih besar atau lebih kecil daripada file asli. Dalam pengalaman penulis, pengurangan jumlah variasi kata lebih sering menghasilkan uncompressed files yang berukuran lebih kecil daripada file aslinya.

Menerapkan data mining dalam konteks pemakaian istilah TI berbiaya murah dan memiliki manfaat jangka panjang dari banyak segi. Kita bisa belajar TI dengan lebih manusiawi, kita lebih hemat energi, dan kita bisa ‘menyelamatkan lingkungan’ dengan tidak perlu membuat buku yang terlalu tebal.

Pustaka[Ghez1997] Carlo Ghezzi et al; Programming Language Concepts, 3rd edition; John Wiley[Huta2005] Bernaridho I Hutabarat; Konsep-konsep Pemrograman I; Andi[Sebe1996] Robert W. Sebesta; Concepts of Programming Languages, 3rd edition; Addison Wesley[Seid2001] Claude Seidman; Data Mining with SQL Server 2000; Microsoft Press[Stro1997] Bjarne Stroustrup; The C++ Programming Language, 3rd edition; Prentice Hall[Tane1996] Andrew S. Tanenbaum; Computer Networks, 3rd edition; Prentice Hall.

Quora.com berisi banyak posting menarik tentang apa sifat / personality yang cocok untuk menjadi programmer. Dari berbagai bacaan dan percakapan, saya rumuskan personality yang perlu: analitis, daya kayal tinggi, suka attention to detail. Selain personality, ada hal skill. Bahasa Inggris, dan skill komunikasi (dalam bahasa Indonesia, untuk bekerja di Indonesia) juga amat berguna.