6 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 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.
Web Mining
Gambar 4 Diagram alur metode penelitian.
Data akses log Mulai
Seleksi data
Pengguna Eksternal
Pengklasteran data
Pembentukan membership function
Data fuzzy
Pemberian nilai threshold
Pembentukan nilai fuzzy support bagi masing-masing halaman
Pemberian minimum support
Pembentukan k-sequences Ya Tidak Evaluasi Pola Pengguna internal Representasi Pengetahuan Apakah terdapat K+1 sequences ? Selesai Output
Pembentukan frequent sequence
Evaluasi Pola Pengguna eksternal Pengguna Internal
S haru data func met bagi Gam akhi yang 0 0 0 0 1 0 0 0 0 1 Su 0 0 Sebelum melal us diubah terle a fuzzy. Fung ction) didapa ode Fuzzy C i masing-mas mbar 5(a), 5( irnya didapatk g memiliki nila 0 0.2 0.4 0.6 0.8 1 1.2 0 0.2 0.4 0.6 0.8 1 1.2 T umber : Fiot. Mini little 1 2 1 ,5 1 1 ,5 little Customer D C1 d d d d d C2 d d d d C3 d d d d d C4 d d d d d d
lui tahap minin ebih dahulu k gsi keanggotaa
atkan dengan
C-Means. Fung
sing item dit (b), 5(c), 5(d) kan data dala
ai yang berkisa 1 1 Tabel 2 Data t C et al. Spee ing. Technical 2 3 4 Candy 5 (a) 2 3 4 Soda lot 5 (b) Date Candy d1 2 d2 1 d3 4 d4 d5 d1 2 d2 d3 d4 3 d1 d2 3 d3 d4 d5 d1 d2 d3 2 d4 d5 d6 ng, data terseb ke dalam bentu an (membersh n menerapk gsi keanggota tunjukkan pa dan 5(e). Pa m bentuk fuz ar antara 0 dan transaksi custo
edy, Mini and
Report 5035, h lot 5 5 Item Toothpaste 3 4 1 2 2 but uk hip an an da da zzy n 1. omer Totally Fuzzy: http://ww.lirmm ms Soda Ball 1 1 1 5 2 1 2 1 4 2 3 2 0 0.2 0.4 0.6 0.8 1 1.2 0 0.2 0.4 0.6 0.8 1 1.2 0 0.2 0.4 0.6 0.8 1 1.2 : Three Ways f m.fr. 1 1 0.5 little m 1 1 0,5 few 1 1 0,5 few Gambar 5 (a Fungsi keang Videogame 2 3 5 4 1 1 1
for Fuzzy Sequ
2 3 4 Toothpaste 5 (c) medium 2 3 4 lot Ball 5 (d) 2 3 4 medium Videogame a), 5 (b), 5 (c), ggotaan masin 5 (e) . uential Pattern 5 lot 5 t 5 lot 5 (d) dan 5 (e) ng-masing item 7 ns ) m.
8 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.
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).
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
1-sequence. Proses komputasi dilakukan
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.
2 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.
Items
Candy (%) Toothpaste (%) Soda (%) Ball (%) Videogame (%) li L li m L li L f L f m L 87,5 50 25 62,5 37,5 25 100 25 50 0 62,5 67,5
Tabel 4 Nilai fuzzy support bagi masing-masing item
D
Items
Candy Toothpaste Soda Ball Videogame li L li m L li L f L f m L d1 1 0 d2 1 0 0 0,5 0,5 0,5 0,5 d3 0 1 0,5 0,5 d4 0,5 0,5 0 1 d5 0 1 0 1 0
Tabel 3 Nilai derajat keanggotaan bagi customer 1 dengan nilai ambang batas sebesar 0,3
Keterangan :
li : little, L : lot, m: medium, f : few
Keterangan :
9 <([candy,little])([soda,lot])>, ø ,[0,75]) <([candy,little])([soda,lot])>, ø ,[1]) d1 pth1 pth1 : updated <([candy,little])>,([soda,lot]),[1]) d2 pth1 : updated & closed <([candy,little])([soda,lot])>, ø ,[0,75]) pth2 : created <([candy,little])>,([soda,lot]),[1]) d3 pth1 : deleted pth2 : updated & closed d4 pth2 : not changed d5 pth2 : improved pth2 : return of curDeg
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.
Langkah-langkah proses scanning data menggunakan algoritma Totally Fuzzy adalah sebagai berikut :
• 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, sehingga pth2 saat ini bernilai
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
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)].
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 %.
10 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. 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.
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
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. 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. 2. Data yang mencatat proses request terhadap
data css, emz, ico, js, robots, swf, vbs, cgi, exe dan template.
3. 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).
Data yang diikutsertakan dalam tahap selanjutnya, yaitu :
1. Data yang mencatat kode status 200. Kode status 200 mengindikasikan bahwa request berhasil dilakukan dan server web mengirimkan halaman situs yang diminta kepada pengguna.
2. 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