Gagasan utama dari sequential pattern mining adalah untuk menemukan semua pola sekuensial yang memiliki nilai support lebih besar dari nilai minimum support yang diberikan (Fiot. C et al 2005). Diagram alir metode Totally Fuzzy secara lengkap dapat dilihat pada Lampiran 1. METODE PENELITIAN
Mulai
Data akses log
Seleksi data
Proses Dasar Sistem Proses dasar sistem mengacu pada proses dalam Knowledge Discovery from Data (KDD). Algoritma Totally Fuzzy diterapkan pada tahap web mining. Diagram alur metode penelitian dapat dilihat pada Gambar 4. Tahapan KDD tersebut dapat diuraikan sebagai berikut : 1. Pembersihan data Data yang mencatat kode status selain 200 tidak akan diikutsertakan pada tahap selanjutnya. Kode status 200 mengindikasikan bahwa request berhasil dilakukan dan dikirimkan dari server web kepada pengguna. 2.
Seleksi data Pada tahap seleksi data dilakukan pemilihan atribut data yang dibutuhkan sebagai masukkan yang digunakan dalam tahap web mining. Terdapat tiga buah atribut yang akan digunakan yaitu : remotehost / alamat IP, date / tanggal pengaksesan yang dilakukan pengguna dan URL yang diminta oleh pengguna. Selanjutnya dilakukan pemisahan data yang mencatat request dari pengguna yang berasal dari internal dan eksternal IPB.
3. Transformasi data Data diubah ke dalam bentuk yang sesuai sebagai masukkan bagi algoritma Totally Fuzzy. Data tersebut dikelompokkan berdasarkan alamat IP masing-masing pengguna, selanjutnya diurutkan secara menaik berdasarkan waktu pengaksesannya. Sebagai ilustrasi tahapan algoritma Totally Fuzzy maka akan digunakan kumpulan data transaksi seperti yang ditunjukkan pada Tabel 2, sel yang kosong menunjukkan bahwa customer tidak melakukan pembelian terhadap item yang bersangkutan. Notasi Cn digunakan untuk melambangkan customer dan d digunakan untuk melambangkan hari pada saat customer tersebut melakukan pembelian produk.
Pengguna Eksternal
Pengguna Internal
Pengklasteran data
Pembentukan membership function
Data fuzzy
Web Mining
Pemberian nilai threshold
Pembentukan nilai fuzzy support bagi masing-masing halaman
Pemberian minimum support
Pembentukan k-sequences
Pembentukan frequent sequence
Apakah terdapat K+1 sequences ?
Ya
Tidak
Output
Evaluasi Pola Pengguna internal
Evaluasi Pola Pengguna eksternal
Representasi Pengetahuan
Selesai
Gambar 4 Diagram alur metode penelitian.
6
Tabel T 2 Data transaksi t custoomer Customer C1
Date D d d1 d d2 d d3 d d4 d d5 d d1 d d2 d d3 d d4 d d1 d d2 d d3 d d4 d d5 d d1 d d2 d d3 d d4 d d5 d d6
C2
C3
C4
Candy 2 1 4
Item ms Toothpaste Soda 3
Ball
1 1 1 2
Videogame
5 2
2
1 2 1
4 3
3 3
1 4
5
2 2
2
4 3 2 2
Suumber : Fiot. C et al. Speeedy, Mini and Totally Fuzzy:: Three Ways for f Fuzzy Sequuential Patternns Miniing. Technical Report 5035, http://ww.lirmm h m.fr. Sebelum melallui tahap mininng, data tersebbut S haruus diubah terleebih dahulu ke k dalam bentuuk dataa fuzzy. Fung gsi keanggotaaan (membershhip funcction) didapaatkan dengann menerapkan metode Fuzzy C-Means. C Funggsi keanggotaan bagii masing-massing item dittunjukkan pada Gam mbar 5(a), 5((b), 5(c), 5(d) dan 5(e). Pada akhiirnya didapatk kan data dalam bentuk fuzzzy yangg memiliki nilaai yang berkisaar antara 0 dann 1. 1.2 1 11 0 0.8 0 0.6 0,5 0 0.4 0 0.2 0
little
1
1.2 1 1 0.8 0.5 0.6 0.4 0.2 0
3
1 Candy
4
5
m medium
1
2
little
few
1.2 1 1 0.8 0,5 0.6 0.4 0.2 0
2
3
Soda
1 5 (b)
5
.
lott
1
2
3
4
5
Ball
1 5 (d) lot
1
4
Toothpaste
5 (a) 1.2 1 1 1 0 0.8 0,5 0 0.6 0 0.4 0 0.2 0
3
lot
1 5 (c)
lot
2
little
4
5
1.2 1 1 0.8 0,5 0.6 0.4 0.2 0
few
1
medium
2
3
lot
4
5
Videogame
1 5 (e)
Gambar 5 (aa), 5 (b), 5 (c), 5 (d) dan 5 (e)) Fungsi keangggotaan masinng-masing item m. 7
Tabel 3 merupakan konversi data yang terdapat pada Tabel 2 ke dalam bentuk derajat keanggotaan fuzzy. Fungsi keanggotaan tersebut dibentuk berdasarkan data yang terdapat pada basis data transaksi. Setiap nilai atau frekuensi pengaksesan memiliki nilai derajat keanggotaan tertentu terhadap masing-masing fuzzy set.
dengan menggunakan Thresholded Sigma Count. Nilai fuzzy support bagi item berukuran satu ditunjukkan pada Tabel 4. Nilai tersebut didapatkan dengan menggunakan algoritma Totally Fuzzy. Hanya pola sekuensial yang merupakan frequent sequence yang akan diikutsertakan dalam tahap selanjutnya. Misalkan ditentukan nilai minimum support sebesar 55 %, maka hanya item [candy, little], [toothpaste, medium], [soda, lot], [videogame, medium] dan [videogame, lot] yang merupakan frequent sequence dan diikutsertakan dalam proses pembentukan kandidat item berukuran dua.
Pada penelitian ini nilai k atau fuzzy set akan ditentukan terlebih dahulu, yaitu frekuensi pengaksesan rendah, sedang dan tinggi. 4.
Web Mining Tahap ini merupakan inti untuk melakukan analisis terhadap data. Pada tahap ini diterapkan penggunaan algoritma Totally Fuzzy yang diperkenalkan oleh Celine Fiot, Anne Laurent dan Maguelonne Teisseire (2005).
2
Tahapan-tahapan yang akan digunakan pada metode tersebut, yaitu: a.
Menentukan nilai ambang batas (threshold) ώ terhadap data. Sebagai ilustrasi pengguna menentukan nilai ambang batas ώ sebesar 0,2 , maka nilai derajat keanggotaan yang lebih kecil dari 0,2 tidak diperhitungkan dan bernilai 0.
b.
Penerapan algoritma Totally Fuzzy bagi masing-masing kandidat pola sekuensial yang terbentuk, yaitu : 1.
Dilakukan proses pembentukan kandidat pola sekuensial yang hanya mengandung sebuah item atau 1sequence. Proses komputasi dilakukan
Pada tahap ini selanjutnya akan dilakukan proses scanning data untuk memeriksa apakah pada transaksi yang dilakukan oleh tiap pengguna terdapat item yang merupakan item pertama pada kandidat pola sekuensial yang dicari. Jika ya, maka dilakukan proses pembentukan sebuah path baru. Masing-masing path menyimpan tiga buah informasi yaitu : item pada pola sekuensial yang telah ditemukan (Seq), item yang selanjutnya akan dicari (curIS), dan nilai derajat keanggotaan (curDeg). Hanya path yang memiliki nilai derajat keanggotaan yang paling tinggi yang akan disimpan.
Tabel 3 Nilai derajat keanggotaan bagi customer 1 dengan nilai ambang batas sebesar 0,3 Candy D d1 d2 d3 d4 d5
li 1 1 0
L 0 0 1
li
Toothpaste m
L
0
0,5
0,5
Items Soda li L 0,5 0,5 0,5 0
Ball
0,5 0,5 0,5 1
f
L
0
1
f
Videogame m L
0
1
0
Keterangan : li : little, L : lot, m: medium, f : few
Tabel 4 Nilai fuzzy support bagi masing-masing item Candy (%) li L 87,5 50
Toothpaste (%) li m L 25 62,5 37,5
Items Soda (%) li L 25 100
Ball (%) f L 25 50
Videogame (%) f m L 0 62,5 67,5
Keterangan : li : little, L : lot, m: medium, f : few
8
nilai yang sama. Maka hanya salah satu dari path tersebut yang akan dibuang. Misalkan, nilai pada pth1 yang dibuang, maka nilai pada pth2 yang akan mewakili besarnya derajat keanggotaan customer 1 terhadap pola sekuensial ([candy, little], [soda, lot)].
Sebagai ilustrasi penerapan algoritma Totally Fuzzy, maka akan dilakukan proses komputasi pada data transaksi seperti yang terdapat pada Tabel 3 untuk mendapatkan nilai fuzzy support terhadap kandidat pola sekuensial gS = <([candy,little]),([soda,lot]) bagi customer 1. Sebagai langkah awal yang harus dilakukan yaitu proses inisialisasi untuk membentuk sebuah path kosong pth1 = (ø,([candy,little]), 0). Pth1 bernilai 0 karena belum dilakukan proses scanning terhadap data transaksi.
pth1
d1
Langkah-langkah proses scanning data menggunakan algoritma Totally Fuzzy adalah sebagai berikut :
d2
•
d3
• •
•
•
Pada transaksi d1 : lakukan proses update pada path pth1, karena transaksi pada d1 terdapat ([candy,little]) yang merupakan item pertama pada kandidat pola sekuensial yang dicari, sehingga pth1 saat ini bernilai pth1 = (<([candy, little])>, ([soda, lot]), [1]). Pada transaksi d2 : lakukan proses pembentukan sebuah path baru pth2 = (<([candy, little])>,([soda, lot]), [1]). Selanjutnya lakukan proses update pada pth1 karena ([soda, lot]) yang merupakan curIS pada pth1 terdapat pada transaksi d2, sehingga pth1 saat ini bernilai pth1 = (<([candy, little])([soda, lot]), ø, [0,75]). Nilai curDeg pada pth1 saat ini didapatkan dari nilai curDeg pth1 sebelum proses update dijumlahkan dengan nilai derajat keanggotaan ([soda, lot]) pada transaksi d2, kemudian dicari nilai rataannya. Saat ini curDeg pada pth1 bernilai 0,75. Pth1 ditutup (path closed) karena telah mengandung semua item pada itemset pola sekuensial yang dicari. Pada transaksi d3 : lakukan proses update pada pth2 karena [soda,lot] yang merupakan curIS pada pth2 terdapat pada transaksi d3, saat ini bernilai sehingga pth2 pth2=(<([candy,little])([soda,lot])>,ø,[0,75] ). Pth2 ditutup karena telah mengandung semua item pada itemset pola sekuensial yang dicari. Untuk optimasi proses scanning terhadap datanya, maka untuk dua path yang telah lengkap (path tersebut telah mencakup semua itemset pada pola sekuensial yang dicari), hanya satu path yang memiliki nilai derajat keanggotaan terbesar yang akan disimpan. Karena pth1 dan pth2 memiliki
pth1 : updated
<([candy,little])>,([soda,lot]),[1]) <([candy,little])([soda,lot])>, ø ,[0,75]) <([candy,little])>,([soda,lot]),[1])
pth1 : updated & closed
pth2 : created
pth1 : deleted
pth2 : updated & closed <([candy,little])([soda,lot])>, ø ,[0,75])
d4
d5
pth2 : not changed
pth2 : improved <([candy,little])([soda,lot])>, ø ,[1]) pth2 : return of curDeg
Gambar 6 Proses scanning data customer 1. •
Pada transaksi d5 : Terdapat [soda,lot] yang memiliki nilai lebih tinggi yaitu 1, sehingga terjadi proses improved terhadap nilai curDeg pada pth2. Nilai pth2 yang sebelumnya bernilai 0,75 mengalami peningkatan menjadi 1. Nilai tersebut berasal dari nilai [candy, little] yang terdapat pada transaksi d1 dijumlahkan dengan nilai [soda, lot] yang terdapat pada transaksi d5, kemudian dicari nilai rataannya. Selanjutnya proses scanning data dilanjutkan seperti ditunjukkan pada Gambar 6.
•
Lakukan langkah-langkah diatas bagi masing-masing customer. Nilai fuzzy cardinality bagi masing-masing customer dijumlahkan kemudian dibagi dengan jumlah total customer pada basis data transaksi sehingga didapatkan nilai persentase fuzzy support bagi kandidat pola sekuensial <([candy, little]),([soda, lot])> sebesar 93,75 %.
9
3
Nilai fuzzy support bagi frequent sequence dengan ukuran k diperoleh dengan mengkombinasikan frequent sequence dengan ukuran k-1. Proses ini akan berhenti jika tidak memungkinkan lagi untuk membangkitkan kandidat pola sekuensial dengan ukuran k+1. Tahapan algoritma Totally Fuzzy secara lengkap dapat dilihat pada Lampiran 1.
5. Analisis Pola Pada tahap ini akan dianalisis pola sekuensial mana yang dikatakan frequent sequence dan mewakili pola pengaksesan pengguna. 6.
Representasi pengetahuan Pola sekuensial yang telah ditemukan kemudian dipresentasikan kepada pengguna agar mudah dipahami dan diinterpretasikan.
dalam bentuk file Common Log Format (CLF). Deskripsi data tersebut dapat dilihat pada Lampiran 2. Sebelum di-mining, data harus melewati tahap praproses (preprocessing) terlebih dahulu yang meliputi pembersihan data, transformasi data, dan seleksi data. Hal ini dilakukan agar data benar-benar lengkap, valid, dan sesuai dengan masukkan yang dibutuhkan oleh algoritma. Pembersihan Data Pada tahap ini dilakukan proses pembersihan terhadap data, data yang dibuang dan tidak diikutsertakan dalam tahap berikutnya, yaitu : 1.
Lingkungan Pengembangan Sistem Spesifikasi perangkat keras dan perangkat lunak yang digunakan dalam pengembangan sistem adalah sebagai berikut : a.
Perangkat keras dengan spesifikasi : • Processor : Intel(R) Core(TM) 2 Duo • Memory : 1 GB • Harddisk : 160 GB • Monitor 12.1” WXGA dengan resolusi 1024 x 768 pixel • Alat input : mouse dan keyboard
b.
Perangkat lunak yang digunakan : • Sistem Operasi : Microsoft Windows XP Professional dan Linux Ubuntu Feasty Fawn 7.10 • Microsoft Excel 2007 sebagai lembar kerja (worksheet) dalam pengolahan data. • Matlab 7.0.1 sebagai bahasa pemrograman. • GAWK sebagai media yang digunakan untuk praproses data.
2. 3.
Data yang diikutsertakan selanjutnya, yaitu : 1.
HASIL DAN PEMBAHASAN Data yang digunakan dalam penelitian ini adalah data log akses server web situs web IPB (www.ipb.ac.id). Data tesebut merupakan data pada server web IPB selama periode waktu 5 Januari hingga 18 Juni 2007 yang diperoleh
Data yang mencatat request terhadap resource data citra, yaitu jpg, png dan gif yang berukuran < 6 KB. Data citra yang berukuran > 6 KB dianggap merupakan sebuah konten dari halaman situs web dan bukan data yang hanya merupakan data pelengkap dari sebuah halaman situs web. Data yang mencatat proses request terhadap data css, emz, ico, js, robots, swf, vbs, cgi, exe dan template. Data yang mencatat kode status 401, 403, dan 404. Kode status 401, 403, dan 404 menunjukkan bahwa terjadi kegagalan (failed) dalam proses request. Kode status 401 menunjukkan bahwa terjadi kegagalan dalam proses autentifikasi, kode status 403 menunjukkan bahwa terdapat suatu larangan tertentu dalam proses request (forbidden request) terhadap subdirektori yang diminta oleh pengguna, dan kode status 404 menunjukkan bahwa file yang diminta oleh pengguna tidak ditemukan pada server (file not found).
2.
dalam
tahap
Data yang mencatat kode status 200. Kode status 200 mengindikasikan bahwa request berhasil dilakukan dan server web mengirimkan halaman situs yang diminta kepada pengguna. Data yang mencatat request terhadap sebuah halaman situs web.
Pada tahap ini dihasilkan koleksi data yang valid dan sesuai dengan input yang dibutuhkan oleh algoritma Totally Fuzzy. Setelah dilakukan proses pembersihan data maka diperoleh data
10