JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6
1
Perancangan dan Pembuatan Perangkat Lunak Pengelompokan Email secara Otomatis Memakai Klasifikasi Single Pass Clustering Berbasis Kerangka Kerja Play! Husnun Nashir, Dwi Sunaryono, dan Abdul Munif. Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Jl. Arief Rahman Hakim, Surabaya 60111 E-mail:
[email protected]
Abstrak—Email awalnya didefinisikan sebagai surat berbentuk file teks yang dikirimkan melalui internet. Perkembangan email sangat pesat yang awalnya bertujuan untuk saling berkomunikasi menjadi lebih luas karena kemampuannya dapat digunakan sebagai sarana informasi. Statistik menunjukkan bahwa pengguna email sangat banyak. Intensitas penggunaannya pun sangat tinggi. Oleh karena itu, dibutuhkan suatu sistem pengelolaan email yang handal dan dapat mempermudah pengguna email untuk membaca emailemail yang diterima. Dalam tugas akhir ini, akan dibuat sistem pengelompokan email berdasarkan kesamaan isinya. Aplikasi ini dibangun berbasis kerangka kerja Play! dan menggunakan metode Single Pass Clustering. Implementasi kerangka kerja Play! pada tugas akhir ini utamanya digunakan pada lapisan arsitektur controller dan view sedangkan mapping model menggunakan Ebean. Pengelompokan email yang dilakukan dengan Single Pass Clustering menghasilkan nilai akurasi sebesar 68,24%. Kata Kunci—clustering, email, Play!, single pass clustering.
I. PENDAHULUAN
P
ERKEMBANGAN internet saat ini mengalami kemajuan yang sangat pesat. Seiring dengan itu, maka muncul layanan-layanan yang mendukung kegiatan manusia melalui media internet. Salah satu layanan yang populer sejak ditemukannya internet adalah electronic mail (email). Email awalnya didefinisikan sebagai surat berbentuk file teks yang dikirimkan melalui internet. Email sekarang ini sudah berkembang lebih atraktif dengan adanya teknologi HTML email sehingga email tidak hanya berupa tulisan, namun dapat disisipi gambar maupun file-file lainnya. Dengan demikian, perkembangan email yang awalnya bertujuan untuk saling berkomunikasi menjadi lebih luas karena kemampuannya dapat digunakan sebagai sarana informasi. Adanya perkembangan teknologi yang semakin pesat dan perkembangan telekomunikasi tersebut sangat memudahkan seseorang berkirim surat melalui email sebab penggunaan email tersebut dianggap murah dan cepat. Penggunaan email juga sangat berperan dalam berbagai kegiatan pendidikan, bisnis, perdagangan, sosial dan berbagai kegiatan lainnya.
Menurut data statistik yang dibuat oleh The Radicati Group Inc. [1] pada 2010 bahwa jumlah akun email diseluruh dunia sekitar 2,9 bilyun pada 2010 dan diperkirakan akan meningkat menjadi 3,8 bilyun pada 2014. Pada tahun 2010, akun email suatu perusahaan mengirim dan menerima sekitar 110 pesan sehari. Sekitar 18% email yang diterima adalah spam ataupun graymail (newsletter yang tidak dinginkan, peringatan, dll). Statistik di atas menunjukkan bahwa pengguna email sangat banyak. Intensitas penggunaannya pun sangat tinggi. Oleh karena itu, dibutuhkan suatu sistem pengelompokan email yang handal dan dapat mempermudah pengguna email untuk membaca email-email yang diterima. Dalam artikel berjudul “Klasifikasi Dokumen Berita Kejadian Berbahasa Indonesia dengan Algoritma Single Pass Clustering” yang ditulis oleh Agus Zainal Arifin dan Ari Novan Setiono mengimplemetasikan metode Single Pass Clustering untuk pengelompokan dokumen berita [2]. Dalam artikel tersebut menunjukkan hasil pengelompokan berita yang cukup baik. Hal inilah yang menjadi acuan bagi penulis untuk menerapkan metode yang sama namun pada kasus yang berbeda yaitu pengelompokan dokumen email. Dalam artikel ini, penulis akan membuat sistem pengelompokan email berdasarkan kesamaan isinya. Emailemail yang masuk akan dikelompokkan menurut kesamaan isinya antara email satu dengan yang lainnya. Aplikasi ini nantinya diharapkan mampu membuat pengelompokan email yang tepat sehingga dapat digunakan oleh pengguna. II. KAJIAN PUSTAKA A. Pemrosesan Awal (Pre-processing) Secara sederhana, preprocessing dapat didefinisikan sebagai proses pengontrolan ukuran daftar kata-kata yang dalam hal ini berupa jumlah kata-kata berbeda yang digunakan sebagai indeks term. Preprocessing juga bertujuan untuk menyaring kata-kata yang dianggap paling menonjol dari sebuah dokumen. Kata- kata konten seperti kata benda, kata kerja dan kata sifat merupakan sebagian besar pembawa semantik dari sebuah dokumen. Skema preprocessing secara garis besar dapat dibagi menjadi lima operasi teks [3]: 1. Identifikasi setiap kata yang terdapat dalam sebuah koleksi dokumen teks secara individual.
JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6 2. Lakukan proses stopping dengan basis stoplist berisi stopwords yang telah ditentukan sebelumnya. Proses ini bertujuan untuk menghilangkan kata-kata yang dianggap tidak spesifik untuk merepresentasikan konten. 3. Lakukan proses stemming pada kata-kata yang tersisa pada dokumen teks untuk mendapatkan bentuk dasar dari katakata yang memiliki stem sama, misalnya kata hubungan, menghubungkan dan hubungi akan direduksi menjadi bentuk yang sama yaitu hubung. 4. Setiap term yang tersisa pada setiap dokumen diberi bobot yang didapatkan melalui frekuensi term dan inverse document frequency. Metode pembobotan seperti ini dinamakan metode TF-IDF. 5. Representasikan setiap dokumen berdasar kumpulan terms hasil proses stemming menggunakan nilai hasil pembobotannya. B. Single Pass Clustering Single Pass Clustering [2] merupakan suatu tipe clustering yang berusaha melakukan pengelompokan data satu demi satu dan pembentukan kelompok dilakukan seiring dengan pengevaluasian setiap data yang dimasukkan ke dalam proses cluster. Pengevaluasian tingkat kesamaan antar data dan cluster dilakukan dengan berbagai macam cara termasuk menggunakan fungsi jarak, vectors similarity, dan lain-lain. START
Masukkan D1 ke C1
i=2
Hitung similarity Di dengan masingmasing cluster
Smax = max(similarity)
2 Gambar 1 menunjukkan diagram alur Single Pass Clustering. Algoritma Single Pass Clustering secara umum dapat dilakukan dengan langkah-langkah sebagai berikut: 1. Masukkan (dokumen pertama) D1 representasi (Cluster pertama) C1 2. Untuk (dokumen ke-i) Di hitung kesamaan (similarity) dengan setiap wakil dari masing-masing cluster. 3. Jika (Maximum Similarity) Smax lebih besar dari batas nilai (threshold value) ST, tambahkan tambahkan item kepada cluster yang bersesuaian dan hitung kembali representasi cluster, sebaliknya gunakan Di untuk inisialisasi cluster baru. 4. Jika masih ada sebuah item Di yang belum dikelompokkan, kembali ke langkah ke-2 C. Play! Framework Play! Framework [4] adalah kerangka kerja open source untuk pengembangan aplikasi web yang berbasis Java. Play! Framework dibuat oleh pengembang perangkat lunak bernama Guillaume Bort. Play! Framework dirilis pertama kali pada tahun 2007. Versi stabil terbarunya bernomor versi 2.0.1 yang dirilis pada 2 Mei 2012. Pada tugas akhir ini penulis akan menggunakan Play! Framework versi 2.0. Play! Framework versi 2.0 sangat berbeda dengan versi sebelumnya yaitu versi 1.2.x. Sehingga banyak juga developer pengguna Play! Framework versi 1.2.x yang memberikan kritik terhadap Play! Framework versi 2.0.x. Tidak seperti versi sebelumnya yang ditulis dalam bahasa Java, Play! 2.0 ditulis dengan dalam bahasa Scala. Namun bukan berarti harus membuat aplikasi web kita dalam bahasa Scala karena Play! 2 juga menyediakan Java API sehingga dapat juga dibuat dalam bahasa Java sesuai dengan kehendak. Beberapa fitur unggulan Play! : • Konfigurasi URL aplikasi yang mudah dan jelas. • Arsitektur yang mencakup teknologi HTML5 client. • Compile otomatis saat reload halaman aplikasi yang dirubah beberapa bagian kodenya. • Menyediakan fitur umum kerangka kerja web, diantaranya persistance, security, dan internalisation. III. METODOLOGI
Ya Smax > ST
Ya
Masukkan Di ke cluster
Tidak
Buat cluster baru Masukkan Di ke cluster baru
i <= jumlah dokumen
Tidak STOP
Gambar 1. Diagram Alur Single Pass Clustering
A. Analisis 1) Arsitektur Sistem Ilustrasi arsitektur dari perangkat lunak ini dapat dilihat pada Gambar 2. Dalam aplikasi ini terdapat satu aktor, yaitu anggota. Dalam aplikasi ini, anggota yang sudah terdaftar dapat melihat daftar email yang sudah dikelompokkan berdasarkan isinya dari masing-masing akun. Anggota juga dapat memeriksa adanya email baru yang sekaligus nantinya juga secara otomatis ditampilkan berkelompok-kelompok. Jika ada email baru maka sistem akan secara otomatis mengunduh data email tersebut dari mailserver ke basis data sistem. Data-data email tersebut kemudian diolah serta melalui tahap pra-proses dan proses sehingga menjadi data yang siap ditampilkan. Data email setelah proses itu juga disimpan dalam basis data sistem. Selain fungsi-fungsi di atas, anggota juga dapat melihat isi email yang ada di akunnya. Isi email ini antara lain alamat
JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6
3
pengirim, subyek email, waktu pengiriman dan isi email. Anggota juga dapat mengirimkan email melalui form yang disediakan. Data masukan untuk pengiriman email ini sama dengan data isi email yang telah disebutkan sebelumnya yaitu alamat tujuan, subyek email dan isi email.
System Login
Registrasi
Memeriksa Email Baru
Memberikan Tag Email
Data Email
Anggota Melakukan Pengelompokan Email
Server GoogleMail
Sistem Pengelompokkan Email Melihat Isi Email
Data Email Terproses
+
Cluster
Mengirim Email
Gambar 3. Diagram Kasus Penggunaan Basis Data Server Sistem
Memberi tag email Melihat daftar email
Mengirim email
Melakukan klasterisasi
Melihat isi email Memeriksa email baru
Komputer Untuk Menjalankan Aplikasi
Pengguna
Gambar 2. Arsitektur Perangkat Lunak
2) Kasus Penggunaan Dalam aplikasi ini terdapat satu aktor, yaitu anggota. Anggota yang sudah terdaftar dapat melihat daftar email yang sudah dikelompokkan berdasarkan isinya dari masing-masing akun. Anggota juga dapat memeriksa adanya email baru yang sekaligus nantinya juga secara otomatis ditampikan berkelompok-kelompok. Selain fungsi-fungsi di atas, anggota juga dapat melihat isi email yang ada di akunnya. Isi email ini antara lain alamat pengirim, subyek email, waktu pengiriman dan isi email. Anggota juga dapat mengirimkan email melalui form yang disediakan. Data masukan untuk pengiriman email ini sama dengan data isi email yang telah disebutkan sebelumnya yaitu alamat tujuan, subyek email dan isi email. Gambar 3 menunjukkan digram kasus penggunaan perangkat lunak.
B. Perancangan 1) Perancangan Data Dalam perangkat lunak digunakan tujuh buah entitas yang digunakan pada lapisan data atau domain. Ketujuh buah entitas tersebut adalah DokumenModel, UserModel, KategoriModel, TermModel, IndexingModel, StopwordModel, TagModel dan KamusModel. UserModel merupakan data aktor yang menggunakan perangkat lunak ini. Aktor yang menggunakan perangkat lunak ini adalah anggota. Entitas DokumenModel digunakan untuk menampung data email milik pengguna. Entitas KategoriModel adalah data cluster yang terbentuk ketika sistem melakukan pemrosesan data. Entitas TermModel dan IndexingModel digunakan sebagai tempat menampung data email yang sudah diolah dan siap untuk dilakukan perhingan-perhitungan hingga ditemukan di cluster mana sebuah dokumen email akan ditempatkan. Sedangkan entitas TagModel digunakan untuk menampung daftar tag yang dibuat oleh pengguna. Gambar 4 merupakan perancangan data dalam bentuk CDM (Conceptual Data Model) yang digunakan pada perangkat lunak ini. UserModel emailUser
Text <M> namaUser Text passwordUser Text counterUser Integer emailUser
4
TermModel idTerm Integer <M> namaTerm Text idfTerm Float
9 TagModel
idTerm 5
idTag Integer <M> namaTag Text
6
idTag 1 7
IndexingModel idIndexing Integer <M> tfIndexing Float idfIndexing Float idIndexing
StopwordModel idStopword Integer <M> namaStopword Text idStopword
8
DokumenModel
2
idDokumen Integer <M> subjekDokumen Float subjekMentahDokumen Text isiDokumen Text pengirimDokumen Text waktuDokumen Date dibacaDokumen Boolean idDokumen KamusModel idKamus Integer <M> kataKamus Text idKamus
Gambar 4. Diagram CDM Perangkat Lunak
KategoriModel
3
idKategori Integer <M> namaKategori Text dominanKategori Text idKategori
JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6
4
2) Perancangan Arsitektur perangkat Lunak Dalam subbab ini secara khusus dijelaskan pemanfaatan kerangka kerja Play! dalam membangun perangkat lunak. Perancangan arsitektur perangkat lunak dibuat dalam arsitektur model-view-controller. C. Implementasi 1) Implementasi Data Implementasi data dalam perangkat lunak ini dibuat menggunakan Ebean ORM (Object Relational Mapping). Dengan menggunakan Ebean penulis tidak perlu mengurusi server basis data. Semua objek kelas model dipetakan dan disimpan ke dalam basis data secara otomatis. Objek kelas model dianggap sebagai entitas dengan cara memberikan anotasi tertentu pada kelas-kelas tersebut. Kelas entitas dapat dianggap sebagai representasi tabel dalam basis data. Dengan menggunakan desain data yang telah dirancang sebelumnya maka dapat dilakukan implementasi data. Sebagai contoh, Gambar 5 merupakan implementasi data dari entitas KategoriModel. Entitas KategoriModel berfungsi untuk menyimpan cluster-cluster yang terbentuk saat pemrosesan data email. Kelas entitas KategoriModel memiliki relasi @ManyToOne dengan kelas entitas UserModel dan TagModel. @Entity @Table(name="kategori") public class KategoriModel extends Model { @Id public Long id;
Gambar 6. Komunikasi Antar Lapisan Arsitektur
IV. HASIL DAN PEMBAHASAN A. Uji Coba Fungsionalitas Pada subbab ini akan dijabarkan uji coba perangkat lunak secara mandiri berdasarkan metode kotak hitam. Tabel 1 merupaan rekapitulasi dari hasil uji coba fungsionalitas perangkat lunak.
ID
UJ-SUC-001
Tabel 1. Rekapitulasi Hasil Uji Coba Fungsionalitas Hasil Nama Pengujian Pengujian Login
public String namaKategori; public String dominanKategori;
UJ-SUC-002
Registrasi
@ManyToOne public UserModel userKategori; @ManyToOne public TagModel tagKategori; ...... }
UJ-SUC-003
Memeriksa Email Baru
Skenario 1
Berhasil
Skenario 2
Berhasil
Skenario 3
Berhasil
Skenario 1
Berhasil
Skenario 2
Berhasil
Skenario 3
Berhasil
Skenario 1
Berhasil
Skenario 2
Berhasil
Skenario 3
Gagal
Gambar 5. Implementasi Kelas Entitas KategoriModel
UJ-SUC-004
Melihat Isi Email
Skenario 1
Berhasil
2) Implementasi Arsitektur Perangkat Lunak Implementasi lapisan view dan controller memanfaatkan fungsi-fungsi yang disediakan oleh kerangka kerja Play!. Sedangkan implementasi lapisan model secara khusus memanfaatkan Ebean yang juga sudah disediakan built-in dalam kerangka kerja Play!. Gambar 6 menunjukkan komunikasi antar lapisan pada kerangka kerja Play!. Pertama, browser melakukan HTTP Request kepada aplikasi, yang nantinya akan ditangani oleh lapisan controller. Setiap HTTP Request yang masuk ke dalam aplikasi akan di terima oleh lapisan controller. Lalu, setelah lapisan controller menerima HTTP Request, maka selanjutnya aplikasi akan mengupdate lapisan model. Setelah itu, lapisan controller akan mengirimkan request kepada lapisan view untuk melakukan render tampilan. Setelah itu, output tampilan dari proses render yang dilakukan oleh lapisan tersebut dikembalikan sebagai HTTP Response.
UJ-SUC-005
Mengirim Email
Skenario 1
Berhasil
UJ-SUC-006
Memberikan Tag Email
Skenario 1
Berhasil
UJ-SUC-007
Melakukan Pengelompokan Email
Skenario 1
Berhasil
Berdasarkan uji coba yang telah dilakukan semua uji coba fungsionalitas memberikan hasil yang positif. Semua fungsi yang dibutuhkan dapat berjalan sesuai skenario yang telah direncanakan. Berikut akan ditampilkan beberapa hasil uji coba fungsionalitas yang telah berhasil dilakukan. Gambar 7 merupakan hasil uji coba melihat isi email. Sedangkan Gambar 8 adalah hasil uji coba mengirim email.
JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6
5 Tabel 2. Hasil Pengelompokan Email
Gambar 7. Hasil Uji Coba Melihat Isi Email
Justifikasi
Cluster hasil perhitungan
android
cluster 10
beasiswa
cluster 20
foto
cluster 12
kuliner
cluster 18
lowongan
cluster 2
wisata
cluster 14
htc
cluster 8
marketing
cluster 4
smartfren
cluster 11
Selanjutnya dihitung dari anggota masing-masing cluster tersebut berapakah yang sesuai dengan justifikasi pengujian. Dari hasil pengelompokan didapatkan ada 58 email dari 85 email keseluruhan yang dinyatakan benar sehingga didapatkan persentase keakuratan sebagai berikut:
Persentase keakuratan yang didapat adalah sebesar 68,24%. V. KESIMPULAN
Gambar 8. Hasil Uji Coba Mengirim Email
B. Uji Coba Non Fungsionalitas Pengujian nonfungsionalitas dilakukan dengan menguji akurasi dari hasil pengelompokan. Pengujian dilakukan dengan menggunakan 85 data email yang berasal dari berbagai milis yang sudah dipilih. Dari 85 data email tersebut penulis memberikan justifikasi subjektif dan mengelompokkannya menjadi 9 cluster. Sedangkan sistem melakukan pengelompokan terhadap 85 data email tersebut menggunakan treshold sebesar 0,05 dan menghasilkan 20 cluster. Pengujian dilakukan dengan menghitung perbandingan jumlah email yang dikelompokkan dengan benar terhadap jumlah seluruh email yang diujicobakan. Berdasarkan anggota cluster yang dominan dari hasil pengelompokan dapat dilihat bahwa yang memenuhi target justifikasi adalah cluster 10, cluster 20, cluster 12, cluster 18, cluster 2, cluster 14, cluster 8, cluster 4 dan cluster 11 seperti ditampilkan pada Tabel 2 :
Dari hasil pengamatan selama perancangan, implementasi, dan proses uji coba yang dilakukan, artikel ini mengambil kesimpulan sebagai berikut: 1. Aplikasi yang dibuat mampu mengelompokkan email secara otomatis berdasarkan isi email. 2. Aplikasi yang dibuat dapat mengimplementasikan pemrosesan awal data email diantaranya ekstraksi data email, identifikasi kata, penghapusan stopword, stemming, pembobotan dan indexing. 3. Aplikasi yang dibuat dapat mengimplementasikan algoritma Single Pass Clustering seperti yang terdapat dalam artikel “Klasifikasi Dokumen Berita Kejadian Berbahasa Indonesia dengan Algoritma Single Pass Clustering” yang ditulis oleh Agus Zainal Arifin dan Ari Novan Setiono dengan tingkat akurasi pengelompokan sebesar 68,24% dihitung berdasarkan jumlah email yang dikelompokan dengan benar terhadap jumlah email keseluruhan sesuai dengan justifikasi pengujian. 4. Aplikasi yang dibuat berhasil mengimplementasikan kerangka kerja Play!. 5. Implementasi kerangka kerja Play! pada aplikasi ini utamanya digunakan pada lapisan arsitektur controller dan view sedangkan mapping model menggunakan Ebean yang juga sudah disediakan oleh kerangka kerja Play!. UCAPAN TERIMA KASIH Penulis mengucapkan terima kasih kepada Tuhan Yang Maha Esa, karena hanya dengan karunia, rahmat, dan hidayahNya penulisan artikel ini dapat terselesaikan dengan baik.
JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6 DAFTAR PUSTAKA [1] [2]
[3] [4]
Radicati, Sara. Email Statistics Report, 2010. The Radicati Group, Inc., http://www.radicati.com. Zainal Arifin, Agus dan Novan Setiono, Ari. 2002. Klasifikasi Dokumen Berita Kejadian Berbahasa Indonesia dengan Algoritma Single Pass Clustering. Jurusan Teknik Informatika, Institut Teknologi Sepuluh Nopember. Salton G. 1989. Automatic Text Processing. Cornell University. Bort, Guillaume. Play! Framework. playframework.org.
6