PENETAPAN POLA KONSUMEN MENGGUNAKAN ALGORITMA FREQUENT PATTERN GROWTH PADA CROSS MARKET ANALYSIS Bain Khusnul Khotimah1), Andharini Dwi Cahyani2), Nurwahyu Alamsyah3) 1,2,3
Jurusan Teknik Informatika, Fakutas Teknik, Universitas Trunojoyo Madura Jl. Raya Telang PO. BOX 2 Kamal, Bangkalan, Madura, 691962 1
[email protected],
[email protected]
ABSTRAK Pertumbuhan data yang semakin cepat dan sulit dikontrol hanya akan menjadikan sebuah tumpukan data yang tidak berguna, untuk mengatasi permasalahan tersebut data mining adalah solusinya. Data mining dapat mengubah tumpukan data yang tidak berguna tersebut menjadi sebuah informasi yang berharga. Penelitian ini akan memberikan informasi pola konsumen mini market dengan menggunakan algoritma FP-Growth, salah satu algoritma pada teknik data mining, Association Rules. FP-Growth merupakan salah satu algoritma yang cukup efisien karena hanya melakukan dua kali scanning database. Hasil dari analisa diketahui semakin besar transaksi yang diproses, maka semakin banyak kombinasi juga semakin lama waktu prosesnya. Dari hasil kombinasi tersebut dapat diketahui polapola atau rules tentang kebiasaan konsumen dalam berbelanja setelah dihitung support dan confidence dari setiap kombinasi. Semakin besar jumlah transaksi juga semakin besar subsets (kombinasi) yang dihasilkan juga membuat waktu proses akan semakin lama. Informasi tersebut dapat menjadi bahan pertimbangan dalam menentukan kebijakan perusahaan. Kata kunci : Data mining, FP-Growth, FP-Tree
ABSTRACT Growth data faster and harder to control, will only make a pile of useless data, to overcome the problem data mining is the solution. By data mining we can turn a pile of useless data into valuable information. This research will provide information on patterns of mini market consumers with data mining techniques. FP-Growth is one of the algorithm is quite efficient because it only made two database scanning. The results of analysis in mind the larger transactions processed, the more combinations are also the longer time process. From the combined result can be discovered patterns or rules about the shopping habits of consumers after the calculated support and confidence of every combination. The greater the number of transactions also the larger subsets (combinations) that are generated will also make the process longer. Such information can be taken into consideration in determining company policy. Keyword : Data mining, FP-Growth, FP-Tree
PENDAHULUAN Penggunaan teknologi informasi sekarang ini telah digunakan hampir di semua aspek kehidupan, contohnya dalam sebuah perusahaan ritel. Dengan sistem yang telah terkomputerisasi, sebuah perusahaan ritel dapat mengumpulkan data transaksi dengan cepat serta menghasilkan data yang sangat besar. Tetapi pertumbuhan data yang pesat itu, telah menciptakan kondisi “rich of data, but poor of information”. karena data yang terkumpul itu tidak digunakan untuk aplikasi yang berguna. Tidak jarang kumpulan data itu dibiarkan begitu saja seakan-akan menjadi “kuburan data” (data tombs). Padahal kita bisa menambang infor-masi-informasi dari data yang terkubur itu dan menjadikannya informasi penting bagi perusahan untuk mendukung keputusan ataupun membantu dalam menentukan strategi pemasaran. Association rules merupakan salah satu teknik di dalam data mining untuk menentukan hubungan antar item dalam suatu dataset (sekumpulan data) yang telah ditentukan. Konsep ini sendiri diturunkan dari terminologi market basket analysis, yaitu pencarian hubungan dari beberapa produk di dalam transaksi pembelian [1]. Dengan adanya data mining, data transaksi yang terjadi di mini market dapat dianalisa sehingga dapat ditemukan pola-pola perilaku konsu-men. Pola-pola ini merupakan kumpulan barang-barang yang sering dibeli oleh pelanggan. Dengan mengetahui pola tersebut, proses manajemen bisnis untuk menerapkan strategi bisnis ke depan menjadi lebih mudah. Associa-tion rules mempunyai peranan penting dalam proses pengambilan keputu-san. Tahapan besar dari proses data mining adalah mengidentifikasikan frequent itemset dan membentuk association rules dari itemset (daftar barang) tersebut. Association rules digunakan untuk menggambarkan hubungan antar item (barang) pada tabel data transaksional [2]. Contoh aturan association rules dari analisa pembelian di suatu pasar swalayan adalah dapat diketahuinya berapa besar kemungkinan seorang pelanggan membeli roti bersamaan dengan susu. Dengan pengetahuan tersebut pemilik pasar swalayan dapat mengatur penempatan barangnya atau merancang kampanye pemasaran dengan memakai kupon diskon untuk kombinasi
barang tertentu. Analisis asosiasi menjadi terkenal karena aplikasinya untuk menganalisa isi keranjang belanja di pasar swalayan.
METODE Cross Market Analysis Cross market analysis merupakan pemanfaatan data mining untuk melihat hubungan antara penjualan satu produk dengan produk lainnya. Berikut ini disajikan beberapa contoh: Cari pola penjualan Coca Cola sedemikian rupa sehingga didapat mengetahui barang apa sajakah yang harus disediakan untuk meningkatkan penjualan Coca Cola? Cari pola penjualan IndoMie sedemikian rupa sehingga didapat mengetahui barang apa saja yang juga dibeli oleh pembeli IndoMie. Dengan demikian para pembuat keputusan bisa mengetahui dampak jika tidak lagi menjual IndoMie [1].
Association Rules Association rules merupakan salah satu teknik didalam data mining untuk menentukan hubungan antar item dalam suatu dataset (sekumpulan data) yang telah ditentukan. Konsep ini sendiri diturunkan dari terminologi market basket analysis, yaitu pencarian hubungan dari beberapa produk di dalam transaksi pembelian [2]. Teknik ini mencari kemungkinan kombinasi yang frequent (sering muncul) dari suatu itemset (sekumpulan item). Ada dua langkah di dalam algoritma ini, seperti yang diilustrasikan pada Gambar 1. Langkah pertama adalah melakukan perhitungan untuk menemukan frequent itemsets dan langkah kedua mencari kaidah association rules dari sekumpulan frequent itemsets tadi. Association rules juga bermanfaat untuk pemakain data web yang berdasarkan personalitas. Pendekatan ini diadopsi dari hubungan dengan collaborative filtering [3] Dalam menggunakan metode association rules, terdapat tiga kriteria ukuran yaitu [4] : 1) Support : ukuran yang menunjukkan tingkat dominasi itemset dari keseluruhan transaksi (misalkan dari seluruh transaksi yang ada, seberapa besar kemungkinan item A dan item B dibeli secara bersamaan).
Support ({A,B}) Transaction (A,B).
=
Number
of
2) Confidence (Probability): ukuran yang menyatakan hubungan antara dua item secara conditional (misalkan seberapa sering item A dibeli, jika pelanggan membeli item B). Confidence (A U B)=Probability (B|A) = Support (A,B)/Support (A)
3) Improvement (Importance): ukuran yang menyatakan besarnya kemungkinan dua item dapat dibeli secara bersamaan. Importance ({A,B})=Probability(A,B)/(Probabili ty(A)*Probability (B)).
FP-Tree FP-Tree adalah struktur penyimpanan data yang dipadatkan. FP-Tree dibangun dengan memetakan setiap data transaksi ke dalam setiap lintasan tertentu dalam FP-Tree. Karena dalam setiap transaksi yang dipetakan mungkin ada transaksi yang memiliki item yang sama, maka lintasannya memungkinkan untuk saling menimpa. Semakin banyak data transaksi yang memiliki item yang sama, maka proses pemadatan dengan struktur data FP-Tree semakin efektif Kelebihan dari FP-Tree adalah hanya
memerlukan dua kali scanning data transaksi yang terbukti sangat efisien.Misal I= {a1, a2, …, an} adalah kumpulan dari item dan data base transaksi DB = {T1, T2, …, Tn}, dimana Ti (i € [1..n]) adalah sekumpulan transaksi yang mengandung item di I. Sedangkan support adalah penghitung (counter) frekuensi kemunculan transaksi yang mengandung suatu pola. Suatu pola dikatakan sering muncul (frequent pattern) apabila support dari pola tersebut tidak kurang dari suatu konstanta minimum support (batas ambang minimum dari support) yang telah didefinisikan sebelumnya. Permasalahan mencari pola frequent dengan batas ambang minimum support count, inilah yang dicoba untuk dipecahkan oleh FPTree dengan menggunakan algortima FPGrowth. Definisi FP-Tree adalah sebuah pohon dengan: a. FP-Tree dibentuk oleh sebuah akar yang bernama null, sekumpulan cabang yang terdiri dari item-item tertentu, dan sebuah tabel frequent header. b. Setiap simpul dalam FP-Tree mengandung tiga informasi penting, yaitu label item (menginformasikan jenis item yang direpresentasi-kan simpul tersebut),
Gambar 1. Dua langkah proses di dalam algoritma association rules
support count (merepresentasikan jumlah lintasan transaksi yang melalui simpul tersebut) dan pointer penghubung (yang menghubungkan simpul-simpul dengan label item sama antar lintasan, ditandai dengan garis panah putus-putus) [5].
FP-Growth Setelah tahap pembangunan FPTree dari sekumpulan data transaksi, akan diterapkan algoritma FP-Growth untuk mencari frequent itemset yang memenuhi syarat. Algoritma FP-Growth dibagi menjadi tiga langkah utama, yaitu: 1. Tahap pembangkitan conditional pattern base; conditional pattern base merupakan subdatabase yang berisi prefix path (lintasan prefix) dan suffix pattern (pola akhiran). Pembangkitan conditional pattern base didapatkan melalui FP-Tree yang telah dibangun sebelumnya. 2. Tahap pembangkitan conditional FP-Tree; Pada tahap ini, support count dari setiap item pada setiap conditional
pattern base dijumlah-kan, lalu setiap item yang memiliki jumlah support count lebih besar sama dengan minimum support count akan dibangkitkan dengan conditional FPTree. 3. Tahap Pencarian frequent itemset; Apabila Conditional FP-Tree merupakan lintasan tunggal (single path), maka didapatkan frequent itemset dengan melakukan kombinasi item untuk setiap conditional FP-Tree. Jika bukan lintasan tunggal, maka dilakukan pembang-kitan FP-Growth secara rekursif. Ketiga tahap tersebut merupakan langkah yang akan dilakukan untuk mendapat frequent itemset, yang dapat dilihat pada algoritma berikut : Input:FP-Tree Tree Outout:Rt sekumpulan lengkap pola frequent Method:FP-Growth (Tree,null) Procedure: FP-Growth (Tree,α) {
01:if Tree mengandung single path P; 02:then untuk tiap kombinasi (dinotasikan β) dari nodenode dalam path P do 03:bangkitkan pola β α dengan Support = minimum support dari node-node dalam β; 04:else untuk tiap ai dalam header dari Tree do { 05: bangkitkan pola 06: bangun β = ai α dengan support = ai . support 07: if Tree β=Ø 08: then panggil FP-Growth (Tree, β) } } (Sumber : Jiawei Han dan Micheline Kamber. Data Mining: Concepts and Techniques. 2001:246) [6]
HASIL DAN PEMBAHASAN Pembangkitan FP-Tree Dalam contoh kasus menggunakan 5 transaksi minimum support count = minimum confidence = 75%, tabel di bawah ini.
berikut dengan 3 dan seperti
Tabel 1: Tabel data transaksi mentah
TID 1 2 3 4 5
Items f,a,c,d,g,i,m,p a,b,c,f,l,m,o b,f,h,j,o b,c,k,s,p a,f,c,e,l,p,m,n
Frekuensi kemunculan tiap item dapat dilihat pada tabel 2. Setelah dilakukan pemindaian pertama didapat item yang memiliki frequensi di atas support count = 3 adalah f,c,a,b,m, dan p. kelima item inlah yang akan berpengaruh dan akan dimasukkan ke dalam FP-Tree selebihnya l,o,d,e,g,h,i,u,j,k,n dan s dapat dibuang karena tidak berpengaruh signifikan. Tabel 3 menggambarkan kemunculan frequent items dalam setiap transaksi, diurut berdasarkan yang frekuensinya
paling tinggi. Tabel 2: Frekuensi kemunculan tiap item
Item c f a b m p l o d e g i j k n s
Null
Frekuensi 4 4 3 3 3 3 2 2 1 1 1 1 1 1 1 1
c:3
f:2
a:2
m:1 b:1 p: 1
m:1
Gambar 3: Hasil pembentukan FP-Tree setelah pembacaan TID 2 Nu l l c: 4f: f
Tabel 3: Tabel data transaksi
TID 1 2 3 4 5
Items C,f,a,m,p C,f,a,b,m F,b, C,b,p C,f,a,m,p
:
11
f: 3b : b 1
a: 3 m: 2
b
p : 1
p: 2
Gambar 2. memberikan ilustrasi mengenai pembentukan FP-Tree setelah pembacaan TID 1.
m
Nul c:1
: 1
l
: 1
Gambar 4: Hasil pembentukan FP-Tree setelah pembacaan TID 5
f:1 a:1 m:1 p:1
Gambar 2: Hasil pembentukan FP-Tree setelah pembacaan TID 1
Dari lima data transaksi dengan enam jenis item seperti table 5. Gambar 5 sampai dengan Gambar 8 menunjukkan proses terbentuknya FP-Tree setiap TID dibaca. Setiap simpul pada FP-Tree mengandung nama sebuah item dan counter support yang berfungsi untuk menghitung frekuensi kemunculan item tersebut dalam tiap lintasan transaksi. FP-Tree yang merepresentasikan data transaksi pada Tabel 3 dibentuk dengan cara sebagai berikut:
: 1
1. Kumpulan data dipindai pertama kali untuk menentukan support count dari setiap item. Item yang tidak frequent dibuang, sedangkan frequent item dimasukkan dan disusun dengan urutan menurun, seperti yang terlihat pada Tabel 3. 2. Pemindaian kedua, yaitu pembacaan TID pertama {c,f,a,m,p} akan membuat simpul c,f,a,m dan p, sehingga terbentuk lintasan transaksi Null→c→f→a→m→p. Support count dari setiap simpul bernilai awal 1. 3. Setelah pembacaan transaksi kedua {c,f,a,b,m}, karena memiliki prefix transaksi yang sama dengan transaksi pertama, yaitu c, maka lintasan transaksi kedua dapat ditimpakan di c, sambil menambah support count dari a dan selanjutnya membuat lintasan baru sesuai dengan transaksi kedua. (lihat Gambar 4.6) 4. Transaksi ketiga, yaitu pembacaan transaksi ketiga {f,b} terbentuk lintasan kedua yaitu Null→f→b support count masing-masing count juga bernilai awal 1. Walaupun b ada di transaksi kedua, namun karena prefix transaksinya tidak sama, makan transaksi kedua ini tidak bisa dimampatkan dalam satu lintasan. 5. Proses ini dilanjutkan sampai FP-Tree berhasil dibangun berdasarkan tabel
data transaksi yang diberikan. (lihat Gambar 4.8)
Penerapan Algoritma FP-Growth Algoritma FP-Growth merupakan algoritma pencarian frequent yang efisien karena menggunakan struktur data tree (FP-Tree). Algoritma FP-Growth menentukan frequent itemset yang berakhiran suffix tertentu dengan menggunakan metode divide dan conquer untuk memecah problem menjadi subproblem yang lebih kecil (David Samuel, 2008:4). Dari contoh kasus akan mencari semua subset yang memungkinkan dengan cara membangkitkan conditional FP-Tree dan mencari frequent itemset. Membangkitkan conditional FP-Tree dilakukan dari bawah ke atas dari item yang jumlah frekuensi kemunculannya terkecil.
Kondisi FP-Tree Untuk Suffix p Ekstrak semua lintasan yang berakhiran m, selain path m, nol kan semua nilai path. Untuk lebih memperjelas, dapat dilihat di bawah ini contoh menemukan frequent itemset yang berakhiran dengan item m.
Gambar 5: Kondisi FP-Tree untuk suffix p
Setelah itu, buang satu persatu path m dan nilai path m dimasukkan ke setiap path yang dilintasi dari path m sampai ke root. Hasilnya terdapat 5 subsets yang memungkinkan untuk m yang dapat dilihat pada gambar 5.
Kondisi FP-Tree untuk suffix m Ekstrak semua lintasan yang berakhiran m, selain path m, nol kan semua nilai path. Untuk lebih memperjelas, dapat dilihat di bawah ini contoh menemukan frequent itemset yang berakhiran dengan item m Setelah itu, buang satu persatu path m dan nilai path m dimasukkan ke setiap path yang dilintasi dari path m sampai ke root. Hasilnya terdapat 5 subsets yang memungkinkan untuk m yang dapat dilihat pada gambar 6. Kondisi FP-Tree untuk suffix b Ekstrak semua lintasan yang berakhiran b, selain path b, nolkan semua
Gambar 6: Kondisi FP-Tree untuk suffix m
nilai path, untuk lebih memperjelas, dapat dilihat dibawah ini contoh menemukan frequent itemset yang berakhiran dengan item b. Setelah itu, buang satu persatu path b dan nilai path b dimasukkan ke setiap path yang dilintasi dari path b sampai ke root. Hasilnya terdapat 5 subsets yang memungkinkan untuk m yang dapat dilihat pada gambar 7.
Kondisi FP-Tree untuk suffix c Ekstrak semua lintasan yang berakhiran c, selain path c, nolkan semua nilai path, untuk lebih memperjelas, dapat dilihat dibawah ini contoh menemukan frequent itemset yang berakhiran dengan item c. Setelah itu, buang satu persatu path cdan nilai path c dimasukkan ke setiap path yang dilintasi dari path c sampai ke root. Hasilnya terdapat 5 subsets yang memungkinkan untuk m yang dapat dilihat pada gambar 8. Lakukan hal ini juga untuk suffix f dan a.
Gambar 7. Kondisi FP-Tree untuk suffix b
Gambar 8: Kondisi FP-Tree untuk suffix c
SIMPULAN Setelah menyelesaikan perancangan dan pembuatan aplikasi serta implementasi sistem , maka dapat ditarik kesimpulan sebagai berikut: 1. Semakin besar jumlah transaksi yang diproses, semakin lama waktu load proses FP-Growth. 2. Subsets (kombinasi) yang muncul berbanding lurus dengan jumlah transaksi. 3. Struktur pohon pada struktur data memiliki implementasi yang sangat beragam, khususnya dalam penyimpanan struktur data yang lebih efektif dan efisien.
[3]
[4]
[5]
[6]
DAFTAR PUSTAKA [1] Karim, F.A. 2006. Penggalian Kaidah Asosiasi Menggunakan Metode Apriori-TFP Pada Struktur Data T-Tree dan P-Tree”. Institut Teknologi Sepuluh Nopembe. [2] Handojo, A.Budhi, G.S., dan Dwiyono, N.A. 2008.A Decision Support System for “De Joglo” Restaurant Using Frequent Pattern
[7]
[8]
Tree Data Mining. Universitas Kristen Petra. Samuel, D. 2008.Penerapan Stuktur FP-Tree dan Algoritma FP-Growth dalam Optimasi Penentuan Frequent Itemset. Institut Teknologi Bandung. Sucahyo, Y.G. 2003.Penerapan Data Mining: Permasalahan Apa Saja yang Bisa Diselesaikan. IlmuKomputer.Com. Witten, I.H. and Frank, E. 2005. Data Mining-Practical Machine Learning Tools and Techniques, 2nd Edition. Morgan Kaufmann Publisher. Nakagawa, M., and Mobasher, B. 2003.. A Hybrid Web Personalization Model Based on Site Connectivity. Workshop at The ACM SIGKKDD International Conference on Knowledge Discovery and Data Mining. Washington DC. Tang, Z., and MacLennan, J. 2005. Data Mining with SQL Server 2005. Indianapolis: Wiley Pubishing Inc. Han, J and Kamber, Micheline. 2001. Data Mining: Concepts and Techniques. Morgan Kaufmann.