Market Basket Analysis dengan Metode Fuzzy C-Covering untuk Menentukan Pola Pembelian pada Toko Buku Yessica Nataliani
Yos Richard Beeh
Athanasia O.P. Dewi
Fakultas Teknologi Informasi Jl. Diponegoro 52-60 Salatiga (0298) 3419240
Fakultas Teknologi Informasi Jl. Diponegoro 52-60 Salatiga (0298) 3419240
Fakultas Teknologi Informasi Jl. Diponegoro 52-60 Salatiga (0298) 3419240
[email protected]
[email protected]
[email protected]
ABSTRACT
kerugian dalam memproduksi barang.
Market Basket Analysis adalah kumpulan asosiasi yang terdiri dari item-item yang saling berhubungan satu dengan yang lain dalam satu waktu tertentu. Fuzzy C-Covering adalah salah satu metode untuk menentukan keterkaitan antar produk.
Berbagai macam toko buku yang tersedia sekarang ini telah melakukan upaya-upaya untuk menarik perhatian konsumen. Persaingan ini semakin ketat karena para pembeli buku tidak sebatas orang dewasa saja, tetapi dari semua kalangan usia. Ada yang mencari buku karena hobi, tuntutan pelajaran atau ilmu, tuntutan kemajuan teknologi, untuk wirausaha yang akan dirintis, dan masih banyak lagi. Berbagai alasan inilah, maka sebuah toko buku ingin memenuhi kebutuhan pembeli dengan baik.
Data yang dikumpulkan merupakan data transaksi dari sebuah toko buku selama kurang lebih satu tahun. Tingkat asosiasi dari association rules berguna untuk mengambil kebijakan dalam pemasaran. Semakin besar max item threshold, maka semakin banyak kombinasi item yang terbentuk. Semakin kecil nilai minimum confidence, maka semakin banyak association rule yang dihasilkan. Selain itu, jika data transaksi yang digunakan semakin banyak, maka proses pengolahan juga semakin lama.
Keywords Market Basket Analysis, Fuzzy C-Covering, Association Rule.
1. PENDAHULUAN Dalam dunia bisnis, pelanggan berperan penting dalam menentukan sebuah kesuksesan dari pelaku bisnis itu sendiri. Kualitas dan kebutuhan merupakan faktor pemotivasi seorang customer untuk melakukan sebuah transaksi. Kualitas dari produk itu sendiri ditentukan mulai dari pemilihan barang baku, proses pembuatan, sampai dengan proses finishing barang tersebut diproduksi. Dalam memproduksi sebuah atau beberapa barang, produsen harus mengetahui berapa banyak penjualan yang dilakukan sebelumnya sehingga ini akan menjadi tolok ukur pada saat produksi selanjutnya dilakukan. Analisa kebutuhan juga bisa dilakukan dengan menggunakan data penjualan bulan-bulan sebelumnya. Hal ini dilakukan untuk memperkecil resiko
Untuk memenuhi kebutuhan-kebutuhan tersebut, maka para penjual tidak hanya menyediakan buku-buku yang berkualitas dan lengkap saja, akan tetapi sebuah toko buku juga dapat melakukan analisa yang berguna untuk memaksimalkan kepuasan pelanggan dan juga mendapatkan keuntungan. Dari penjualan-penjualan sebelumnya, penjual dapat menemukan sebuah pola belanja dari beberapa pelanggannya. Pola tersebut dapat membantu penjual untuk melakukan sebuah analisa jika suatu barang dibeli, maka barang-barang apa saja yang biasa dibeli oleh pelanggan. Penelitian dilakukan di Toko Buku Andi Star Salatiga. Andi Star adalah toko buku Penerbit Andi. Toko Buku Andi Star Salatiga sendiri berdiri sejak tanggal 12 Mei 2008. Toko ini merupakan anak cabang dari Toko Buku Andi Star Jogja, anak cabang yang lain berada di Solo. Produk-produk yang dijual adalah berbagai macam buku dan juga alat tulis. Penganalisaan ini dapat dilakukan dengan menggunakan metode Fuzzy C-Covering.
2. KAJIAN PUSTAKA Metode Fuzzy C-Covering merupakan metode yang dapat digunakan dalam menentukan keterkaitan antar produk. Metode ini biasa digunakan dalam menentukan keterkaitan antar produk dalam sebuah supermarket. Pada penelitian Market Basket Analysis ini digunakan metode Fuzzy C-Covering untuk menentukan pola pembelian pelanggan dalam suatu toko buku (Toko Buku Andi Star Salatiga). Pada penelitian sebelumnya yang diteliti adalah produk-produk yang berbeda. Misal antara selai dan roti, karena kasusnya adalah sebuah swalayan. Akan tetapi pada penelitian kali ini digunakan yang jenis produknya hampir sama, yaitu buku dan alat tulis. Yang membedakan antara produk satu dengan yang lainnya adalah nama produk dan jenis produk.
Dalam proses pencarian data, digunakan metode Fuzzy CCovering. Fuzzy C-Covering merupakan metode yang digunakan dalam menentukan keterkaitan antar produk. Dalam mencari hubungan antar item, metode ini berdasarkan persepsi bahwa semakin banyak item yang dibeli dalam satu transaksi, maka hubungan antar item yang terdapat dalam transaksi tersebut semakin lemah [1]. Terdapat dua hak akses, yaitu admin dan user. Dimana admin dapat mengatur koneksi dan dapat menentukan user yang dapat mengakses sistem. Digunakan file .txt dalam menyimpan password admin dan user, dalam penyimpanan tersebut dilakukan enkripsi untuk keamanan data admin dan user. Jadi user yang masuk tidak dapat mengetahui password admin maupun user yang lain. Penentuan minimum support dilakukan secara otomatis, jadi user tidak perlu memasukkan manual pada saat ganti jumlah kombinasi item. Output program berupa association rule dengan nilai confidence dan nilai support yang telah dihitung.
2.1 Market Basket Analysis Market Basket Analysis adalah asosiasi dalam data mining yang dapat menemukan atribut yang muncul dalam satu waktu. Proses ini menganalisis pola pembelian pelanggan dengan cara menemukan hubungan antara item-item yang berbeda yang diletakkan konsumen dalam shopping basket. Hasil yang telah didapatkan ini nantinya dapat dimanfaatkan oleh perusahaan retail seperti toko atau swalayan untuk mengembangkan strategi pemasaran dengan melihat item-item mana saja yang kemungkinan dibeli secara bersamaan oleh konsumen. Untuk beberapa kasus, pola dari item-item yang dibeli secara bersamaan oleh konsumen dapat ditebak, misalnya selai dibeli secara bersamaan dengan roti. Akan tetapi juga tidak menutup kemungkinan tercipta pola pembelian item yang belum pernah terpikirkan. Misalnya pembelian sabun mandi dengan makanan ringan. Bisa saja pola seperti ini terbentuk ketika suatu transaksi berlangsung. Karena kebutuhan customer berbeda-beda dan tidak dapat diprediksi sehingga tidak ada jalan keluar, misalnya seperti stok sabun mandi di gudang habis. Oleh karena itu Market Basket Analysis diharapkan dapat membantu dalam penyelesaian masalah ini. Dengan menggunakan aplikasi ini seorang penjual bisa dengan cepat dan tepat dalam menentukan pola pembelian dari beberapa customer.
2.2 Association Rule Analisis asosiasi atau association rule mining adalah teknik data mining untuk menemukan aturan asosiasi antara suatu kombinasi item. Contoh asosiasi yang biasa terjadi seperti seberapa besar kemungkinan pembeli membeli roti dengan selai secara bersamaan. Penting tidaknya suatu aturan asosiatif dapat diketahui dengan dua parameter, yaitu support (nilai penunjang) yang merupakan persentase kombinasi item tersebut dalam database dan confidence (nilai kepastian) yang merupakan kuatnya hubungan antar item dalam aturan asosiasi Aturan asosiasi biasanya dinyatakan dalam bentuk: {roti, mentega}→{susu} (support=40%, confidence=50%), yang berarti “50% dari transaksi di database yang memuat item roti dan
mentega juga memuat item susu. Sedangkan 40% dari seluruh transaksi yang ada di database memuat ketiga item itu.” Dapat juga diartikan: ”Seorang konsumen yang membeli roti dan mentega punya kemungkinan 50% untuk juga membeli susu. Aturan ini cukup signifikan karena mewakili 40% dari catatan transaksi selama ini.” Analisis asosiasi didefinisikan suatu proses untuk menemukan semua aturan asosiasi yang memenuhi syarat minimum untuk support (minimum support) dan syarat minimum untuk confidence (minimum confidence) [2]. Jika support ≥ minimum support dan confidence ≥ minimum confidence, maka rule tersebut bisa dikatakan sebagai interesting rule.
2.3 Metode Fuzzy C-Covering Fuzzy C-Covering merupakan salah satu metode yang dipakai untuk mengklasifikasikan elemen-elemen dari suatu himpunan universal menjadi partisi-partisi berupa fuzzy sets. Fuzzy CCovering sendiri merupakan generalisasi dari metode fuzzy cpartition yang telah dikenal sebelumnya. Fuzzy c-partition dapat didefinisikan sebagai berikut [3]. Misalkan I = {i1, i2, …, in} adalah domain dari data, maka fuzzy cpartition dari I adalah fuzzy subset atau fuzzy classes dari T, ditunjukkan oleh T = {t1, t2, …, tc}, yang memenuhi Rumus 1 dan Rumus 2. c
∑ μt (ik ) = 1 , untuk semua k ∈ Nn
m=1
0<
m
n
∑ μt (ik ) k =1
m
< n, untuk semua m ∈ Nc
(Rumus 1) (Rumus 2)
dimana c bilangan bulat positif (0 < c ≤ n) dan μ tm (ik ) ∈ [0,1]. Di dalam Fuzzy C-Covering, Rumus 1 dari teori fuzzy c-partition tersebut digeneralisasi menjadi Rumus 3 [4]: c
∑ μt (ik ) ≥ 1 ,
m=1
untuk semua k ∈ Nn
m
(Rumus 3)
2.4 Degree of Similarity in Fuzzy C-Covering Setiap crisp element dari data pada I juga dapat direpresentasikan sebagai fuzzy set dari fuzzy classes (T) dengan Rumus 4 [4]:
μi (t j ) = m
μt (im ) j
∑ μt (i) i∈I
(Rumus 4)
j
2.5 Fuzzy Conditional Probability Relation Umumnya, dalam mengukur derajat kesamaan antara dua fuzzy set digunakan fuzzy conditional probability relation dengan rumusan yang terdapat pada Rumus 5 [4]: R(X,Y) = P(X|Y)
=
X ∩Y Y
∑ min{μ X (i), μ Y (i)} i∈I
=
dimana: (Rumus 5)
∑ μ Y (i) i∈I
dimana: μX dan μY adalah fungsi anggota dari domain I untuk masing-masing X dan Y dari himpunan universal U. Dalam prakteknya, fuzzy conditional probability relation dapat digunakan sebagai dasar untuk merepresentasikan degree of similarity relationship antara dua fuzzy set dalam universe U. Dalam definisi fuzzy conditional probability relation, nilai probabilitas bisa diperkirakan berdasarkan hubungan semantik antar fuzzy set dengan menggunakan pandangan subjektif dari teori probabilitas. Jika sering terlibat dalam kelompok yang sama, maka elemenelemen akan memiliki hubungan yang lebih kuat jika. Di sisi lain, dengan semakin meningkatnya jumlah elemen pada suatu kelompok akan mengurangi degree of similarity antar tiap elemen dalam kelompok tersebut.
: kombinasi k-item yang dicari support-nya. Jika I adalah universal set of items, maka u ⊆ I |u| = k : jumlah item dalam u Tt : transaksi ke-t (Tt ⊆ I) |Tt| : jumlah item dalam Tt u
C Tk
: kombinasi k-item terhadap |Tt|
n
: jumlah record/tuple dalam QT;
t
s(u,Tt) ∈ {0,1} adalah suatu fungsi dimana jika u ⊆ Tt, maka s(u,Tt) =1, selain itu s(u,Tt) = 0. Dari 130 data nota pembelian (terdiri dari nomor nota dan kode barang) di toko buku yang dijadikan penelitian, akan dihitung nilai support untuk salah satu kode barang. Tabel 2 menunjukkan nomor nota yang menunjukkan kode 000773. Tabel 1 Nota dan Kode yang Menunjukkan Kode 000773
3. IMPLEMENTASI SISTEM Perhitungan Market Basket Analysis dengan metode Fuzzy CCovering dapat dilihat pada Gambar 3. Pertama, user memilih jangka waktu perhitungan yang terdiri dari bulan dan tahun. Kemudian user diminta memasukkan max item threshold, max item threshold adalah maksimal jumlah item yang terdapat di dalam satu transaksi. Setelah itu data disaring sesuai dengan bulan, tahun, dan max item threshold. Data yang dipilih adalah yang jumlah transaksinya lebih kecil dari max item threshold.
Nota
Kode
000354
000773
000385
000773
Dari Tabel 2 ditunjukkan bahwa kode 000773 terdapat dalam nota 000354 dan nota 000385. Pada nota tersebut memang hanya ada satu kode, yaitu masing-masing kode 000773. Contoh perhitungan support sesuai dengan Rumus 6 untuk Kode 000773: 1 1 1 1 + + 1! 1! 1! 1! ×1 ×1 ×1 ×1 1!(1 - 1)! 1!(1 - 1)! 1!0! = 0.0153846154 000773 = = 1!0! 130 130
Data yang dipakai adalah data bulan Oktober tahun 2008 dan max item threshold yang dimasukkan sebanyak tiga item. Pertama sistem akan memilih data dengan jumlah sekali transaksi kurang dari sama dengan tiga transaksi. Setelah itu data yang telah disaring tersebut dimasukkan ke dalam QT.
Setelah itu dilakukan seleksi kode item yang yang akan digunakan untuk perhitungan selanjutnya dengan syarat:
QT = {t | |t| ≤ ith, ith ∈ bilangan bulat positf}
support(u) ≥ minimum support ke-1
dimana: QT : Qualified Transaction adalah himpunan transaksi yang memenuhi max item threshold t : transaksi |t| : jumlah item dalam suatu transaksi ith : max item threshold Kemudian k diset menjadi bernilai 1 atau k=1 (k adalah variabel untuk menentukan jumlah kombinasi item). Nilai k berhenti jika k>max item threshold. Pada saat k=1 dicari perhitungan support dengan menggunakan data yang telah disimpan di dalam QT. Rumus perhitungan support dapat dilihat pada Rumus 6.
1
n
1 ∑ k t =1 C T s (u , Tt )
∑
n
support (u ) =
t
n
i =1
=
Tt ! k!( Tt − k )!
Dari perhitungan support k=1 yang didapat, maka dapat ditentukan minimum support sebagai berikut: minimum support 1 =
∑ hasil support ( k = 1)
banyak kode item 0.9999999 = = 0.00606060 6 165 Set k=2, dilakukan pengecekan apakah k>ith. Karena k tidak lebih besar dari ith, maka dilanjutkan pencarian support untuk kombinasi dua item.
Dari nota-nota yang memenuhi syarat untuk dilakukan kombinasi k=2, maka dapat dibentuk kombinasi dua item. Kombinasi item 2 yang terbentuk sebanyak 3655, didapat dari C86 =
s (u , Tt )
n (Rumus 6)
86! . 2!(86 − 2)!
Berikut ini adalah hasil perhitungan support yang hasilnya tidak sama dengan nol:
1 1 2! 2! ×1 ×1 2! (2 - 2)! (000200, 000207) = = 2!0! = 0.00769230 769 130 130
minimum support 2 =
∑ hasil support (k = 1)
Setelah didapatkan minimum support, kemudian dilakukan seleksi kode item untuk proses selanjutnya. support (000200, 000207) ≥ minimum support ke-2 Karena 0.00769230769 > 0.00000210459, maka kode item 000200 dan 000207 dipakai untuk perhitungan selanjutnya. Nilai k ditambah dengan satu, jadi sekarang k=3. Kemudian dilakukan pengecekan apakah k>ith. Jika k
ith, maka perhitungan support selesai dan dilanjutkan dengan perhitungan confidence. Karena 3(k)>3(ith) adalah benar, maka perhitungan support selesai dengan nilai k=2 dan dilanjutkan dengan perhitungan confidence. Setiap kode item yang telah didapat dari support terakhir, yaitu kode item 000200 dan 000207 didefinisikan sebagai fuzzy set terhadap fuzzy classes (T). Dalam kasus ini didefinisikan kode item 000200 sebagai fuzzy set terhadap T=000377 dan T=000399. Untuk kode item 000207 sebagai fuzzy set terhadap T=000399 dan T=000436.
000200
( 000377 ) =
μ
000200
( 000399 ) =
μ
000207
( 000399 ) =
μ
000207
( 000436 ) =
μ 000377
μ 000399
μ 000399 μ 000436 μ 000436
1 μ 000377 (000200 ) 1 = 2 = 1 1 2 ( 000200 ) + μ 000377 ( 004601 ) + 2 2 1 μ 000399 ( 000200 ) 1 2 = = 1 1 2 ( 000207 ) + μ 000399 ( 000200 ) + 2 2 1 μ 000399 ( 000207 ) 1 2 = = 1 1 2 ( 000207 ) + μ 000399 ( 000200 ) + 2 2 1 ( 000207 ) = 1 =1 1 ( 000207 ) 1
Dari perhitungan tersebut, maka kode item 000200 dan 000207 dapat didefinisikan sebagai berikut:
Untuk kombinasi 2 item, didapatkan:
∑ μ 000200
1+
1 2
= 0 . 33
Misal minimum confidence yang dimasukkan adalah 30%, maka hasil association rule yang didapat adalah sebagai berikut: >> jika [FAKTA TOP : PLANET BUMI] (kode: 000200) dibeli, kemungkinan [FAKTA TOP : ALAM KITA] (kode: 000207) juga dibeli adalah 50.0% (support= 0.7692307692307693%) Angka 50% menunjukkan nilai confidence-nya, yaitu jika pelanggan membeli kode 000200 (FAKTA TOP: PLANET BUMI), kemungkinan kode 000207 (FAKTA TOP: ALAM KITA) juga dibeli adalah 50%. Sedangkan 0.7692307692307693% adalah nilai support-nya, yaitu mewakili 0.7692307692307693% dari catatan transaksi selama bulan Oktober tahun 2008. >> jika [FAKTA TOP: ALAM KITA] (kode: 000207) dibeli, kemungkinan [FAKTA TOP: PLANET BUMI] (kode: 000200) juga dibeli adalah 33.33333333333333% (support = 0.7692307692307693%) Angka 33.33333333333333% menunjukkan nilai confidence-nya, yaitu jika pelanggan membeli kode 000207 (FAKTA TOP: ALAM KITA), kemungkinan kode 000200 (FAKTA TOP: PLANET BUMI) juga dibeli adalah 33.33333333333333%. Sedangkan 0.7692307692307693% adalah nilai support-nya, yaitu mewakili 0.7692307692307693% dari catatan transaksi selama bulan Oktober tahun 2008.
Perbandingan Confidence
Hasil
1 = 2 = 0 .5 1
Perhitungan
Support
dan
Dengan menggunakan data penjualan di Andi Star Salatiga pada bulan Oktober tahun 2008, didapatkan perbandingan hasil perhitungan support dan confidence dapat dilihat pada Tabel 3. Tabel 2 Perbandingan Hasil Perhitungan Support dan Confidence 3
5
7
166
196
213
2
2
2
30 detik
38 detik
41 detik
Support yang dihasilkan Confidence yang dihasilkan
μ000207={(1/2)/000399, (1)/000436}
confidence ( 000200 → 000207 ) =
=
Nilai confidence ini digunakan untuk mencari rule yang nantinya dapat dipakai dalam penentuan keterkaitan antar produk. Nilai minimum confidence didapat dari nilai yang dimasukkan oleh pengguna dan diseleksi yang nilai confidence-nya ≥ minimum confidence.
Max item threshold
μ000200={(1/2)/000377, (1/2)/000399}
| μ 000200 ∩ μ 000207 |
∑ μ 000207
1 2
Karena tidak memungkinkan adanya kombinasi yang lain, maka pencarian confidence berhenti pada kombinasi dua item.
banyak kode item 0.00769230 769 = = 0.00000210 459 3655
μ
confidence ( 000207 → 000200 ) =
| μ 000207 ∩ μ 000200 |
Waktu perhitungan Association rule (AR) yang terbentuk jika minimum confidence
30%
2 AR
30%
1 AR
30%
1 AR
50%
1 AR
50%
1 AR
50%
1 AR
Dari Tabel 2 didapat bahwa semakin tinggi max item threshold yang digunakan maka semakin tinggi pula support yang dihasilkan, tetapi tidak mempengaruhi confidence yang dihasilkan. Sementara itu, waktu perhitungannya juga semakin lama. Dengan max item threshold 3, didapatkan: 2 AR association rule (AR) yang terbentuk jika minimum confidence
30%
000200 → 000207 000207 → 000200
support 0.76923076 92307693% 0.76923076 92307693%
Confidence 50% 30%
1 AR
support
Confidence
000200 → 000207
0.76923076 92307693%
50%
1 AR
support
Confidence
000200 → 000207
0.72463768 11594203%
50%
1 AR
support
Confidence
000200 → 000207
0.72463768 11594203%
50%
1 AR
support
Confidence
000200 → 000207
0.70921985 81560284%
50%
1 AR
support
Confidence
000200 → 000207
0.70921985 81560284%
50%
50%
Dengan max item threshold 5, didapatkan: association rule (AR) yang terbentuk jika minimum confidence
30%
50%
confidence dari keterkaitan tersebut. Nilai support digunakan untuk menentukan layak atau tidaknya n item untuk dicari keterkaitannya, dimana n adalah banyaknya item yang memenuhi minimum support pada kombinasi terakhir. Semakin tinggi nilai confidence, maka semakin kuat keterkaitan antar item yang terjadi. Dari kedua nilai inilah, nanti didapatkan keterkaitan mana yang paling kuat di antara banyak produk yang terdapat di dalam suatu transaksi yang nantinya berguna untuk menentukan kebijakan pemasaran maupun untuk mengatur letak produk. Penataan produk bisa saja dilakukan berdekatan agar pelanggan dapat menemukan dengan mudah, atau sengaja dijauhkan supaya dalam mencari produk yang saling berkaitan tersebut pelanggan juga ingin membeli produk yang lain. Dari hasil penelitian yang telah dilakukan, metode Fuzzy CCovering dapat menghasilkan association rule dan tingkat asosiasinya. Semakin besar max item threshold, maka semakin banyak kombinasi item yang terjadi dan waktu yang dibutuhkan untuk mencari kombinasi semakin lama. Semakin banyak jumlah item di dalam suatu kombinasi, maka semakin sedikit waktu yang dibutuhkan untuk mencari tingkat kombinasi. Semakin kecil minimum support yang dihasilkan, semakin banyak rule yang terjadi dalam menentukan tingkat confidence. Selain itu, semakin kecil nilai confidence, semakin banyak association rule yang dihasilkan. Sebagai tolok ukur, dalam pembahasan sistem, max item threshold 3, dan nota yang memenuhi max item threshold sebanyak 130 transaksi dibutuhkan waktu untuk mencari support dan confidence 30 detik.
Dengan max item threshold 7, didapatkan: association rule (AR) yang terbentuk jika minimum confidence
30%
50%
5. DAFTAR PUSTAKA [1] Budhi, G. S., Resmana L., dan Osmand P. 2005. Penggunaan Metode Fuzzy c-Covering untuk Analisa Market Basket pada Supermarket. 6(1). http://petra.ac.id. [2] Kusrini dan Emha T. L. 2009. Yogyakarta: Penerbit Andi.
Algoritma Data Mining.
[3] Klir, G. J. dan Bo Y. 2001. Fuzzy Sets and Fuzzy Logic – Theory and Applications. India: Prentice Hall. [4] Intan, R. dan Masao M. 2003. A Proposal of Fuzzy Thesaurus Generated by Fuzzy Covering p. 167-172.
4. SIMPULAN Market Basket Analysis digunakan untuk mengetahui keterkaitan antar produk dalam suatu waktu. Metode Fuzzy C-Covering merupakan salah satu cara untuk mendapatkan nilai support dan
[5] Agarwal, B. B. dan Sumit P. T. 2007. Software Engineering. New Delhi: Laxmi Publications (P) TD.