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 email-email 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
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. Email-email 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. KAJIANPUSTAKA
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.
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
:dwi@its-sby.edu
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 kata-kata 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 PassClustering [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.
Masukkan D1 ke C1 Hitung similarity Di dengan masing-masing cluster Smax = max(similarity)
Smax > ST Masukkan Di ke cluster
Buat cluster baru Masukkan Di ke cluster baru i = 2 i <= jumlah dokumen START STOP Tidak Ya Tidak Ya
Gambar 1. Diagram Alur Single Pass Clustering
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
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
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.
Basis Data Server Sistem
Komputer Untuk Menjalankan Aplikasi Memeriksa email baru
Melihat daftar email
Melihat isi email
Server GoogleMail Sistem Pengelompokkan
Email Data Email Cluster Data Email Terproses Pengguna + Mengirim email Memberi tag email
Melakukan klasterisasi
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.
System
Anggota
Login
Registrasi
Memeriksa Email Baru
Melihat Isi Email
Mengirim Email
Memberikan Tag Email
Melakukan Pengelompokan Email
Gambar 3. Diagram Kasus Penggunaan
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.
1 2 3 4 5 6 7 8 9 TermModel idTerm namaTerm idfTerm <pi> Integer Text Float <M> idTerm <pi> DokumenModel idDokumen subjekDokumen subjekMentahDokumen isiDokumen pengirimDokumen waktuDokumen dibacaDokumen <pi> Integer Float Text Text Text Date Boolean <M> idDokumen <pi> KategoriModel idKategori namaKategori dominanKategori <pi> Integer Text Text <M> idKategori <pi> IndexingModel idIndexing tfIndexing idfIndexing <pi> Integer Float Float <M> idIndexing <pi> StopwordModel idStopword namaStopword <pi> Integer Text <M> idStopword <pi> KamusModel idKamus kataKamus <pi> Integer Text <M> idKamus <pi> UserModel emailUser namaUser passwordUser counterUser <pi> Text Text Text Integer <M> emailUser <pi> TagModel idTag namaTag <pi> Integer Text <M> idTag <pi>
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;
public String namaKategori;
public String dominanKategori;
@ManyToOne
public UserModel userKategori;
@ManyToOne
public TagModel tagKategori;
... }
Gambar 5. Implementasi Kelas Entitas KategoriModel
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.
Gambar 6. Komunikasi Antar Lapisan Arsitektur
IV. HASILDANPEMBAHASAN
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.
Tabel 1.
Rekapitulasi Hasil Uji Coba Fungsionalitas
ID Nama Pengujian Hasil
Pengujian UJ-SUC-001 Login Skenario 1 Berhasil Skenario 2 Berhasil Skenario 3 Berhasil UJ-SUC-002 Registrasi Skenario 1 Berhasil Skenario 2 Berhasil Skenario 3 Berhasil
UJ-SUC-003 Memeriksa Email Baru
Skenario 1 Berhasil Skenario 2 Berhasil Skenario 3 Gagal UJ-SUC-004 Melihat Isi Email Skenario 1 Berhasil
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.
Gambar 7. Hasil Uji Coba Melihat Isi Email
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 :
Tabel 2. Hasil Pengelompokan 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
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!.
UCAPANTERIMAKASIH
Penulis mengucapkan terima kasih kepada Tuhan Yang Maha Esa, karena hanya dengan karunia, rahmat, dan hidayah-Nya penulisan artikel ini dapat terselesaikan dengan baik.
DAFTARPUSTAKA
[1] Radicati, Sara. Email Statistics Report, 2010. The Radicati Group, Inc., http://www.radicati.com.
[2] 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.
[3] Salton G. 1989. Automatic Text Processing. Cornell University. [4] Bort, Guillaume. Play! Framework. playframework.org.