PENERAPAN ALGORITMA APRIORI UNTUK MEMPEROLEH ASSOCIATION RULE ANTAR ITEMSET BERDASARKAN PERIODE PENJUALAN DALAM SATU TRANSAKSI Devi Fitrianah, Ade Hodijah Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Mercu Buana JL. Raya Meruya Selatan, Kembangan, Jakarta, 11650 Email:
[email protected],
[email protected] Abstrak Dalam dunia bisnis yang penuh persaingan menuntut seorang pengambil keputusan untuk melihat peluangpeluang yang dapat meningkatkan penjualan di perusahaannya. Salah satu unsur penting pendukung pengambilan keputusan adalah ketersediaan data transaksi dalam jumlah besar sebagai sumber informasi untuk analisis kecenderungan pola pembelian belanja konsumen. Untuk itu dalam penulisan ini dikembangkan aplikasi analisis association untuk mengekstraksi dan menginterpretasi pola kecenderungan produk-produk yang sering dibeli bersamaan pada periode penjualan tertentu dari data transaksi menggunakan algoritma apriori. Algoritma apriori ini akan membentuk frequent itemset sebanyak yang telah ditentukan sebelumnya berdasarkan dua parameter, support dan confidence, untuk menemukan aturan asosiasi antara suatu kombinasi item. Proses yang dilakukan diawali dengan persiapan data melalui preprocessing data kemudian ditransformasi ke dalam bentuk yang dapat diolah pada proses selanjutnya yaitu join dan prune hingga pembentukan association rules. Dari hasil pengujian, aplikasi yang dibangun mampu melakukan penerapan algoritma apriori dengan terbentuknya pola-pola frequent itemset dari data transaksi sebagai bahan analisis pola pembelian belanja konsumen. Kata Kunci: Apriori, Frequent Itemset, Association rules, Data Transaksi 1. Pendahuluan Gudang data yang berisi data bisnis merupakan salah satu aset utama yang dimiliki perusahaan. Bagi perusahaan dengan skala kecil, seperti tokotoko kecil, pengolahan data dengan sistem basis data sederhana sudah mencukupi untuk bahan analisa seorang manajer dalam pengambilan keputusan. Tidak demikian dengan perusahaan yang bergerak dengan skala besar, yang memasarkan produk dalam jumlah besar dengan jenis item yang juga sangat banyak dan beragam, misalnya sebuah supermarket, yang setiap bulannya harus menangani ratusan bahkan ribuan transaksi. Untuk meningkatkan “usability” ketersediaan data transaksi sebagai sumber informasi, misalnya penggunaan computer based method untuk menganalisis, meringkas dan mengekstraksi “knowledge” dari data tersebut, perlu adanya suatu sistem yang dapat mendukung manajer dalam mengambil keputusan secara cepat dan juga tepat. Salah satu cara untuk mendapatkan knowledge adalah dengan melakukan penambangan data. Penambangan data diperlukan untuk memperoleh informasi-informasi yang cukup untuk dianalisa lebih lanjut. Pada supermarket, informasi tersebut dapat berupa produk-produk apa saja yang sering terjual pada periode waktu tertentu dan data produk lain yang dibeli secara bersamaan oleh konsumen. Selanjutnya dapat diambil satu contoh hasil analisis yang diinginkan, seperti jika manajer Volume III/No.1/Mei/2011
pemasaran telah mengetahui produk apa saja yang biasa dibeli bersamaan maka salah satu tindakan konkrit yang dapat dilakukan adalah menata rakrak barangnya, seperti tata letak barang mana yang harus diletakkan berdekatan sehingga memudahkan konsumen untuk mendapatkan barang atau mengingatkan konsumen jika pada saat itu lupa ingin membeli atau membutuhkan barang tersebut. Selain itu, manajer juga dapat mengambil sikap dengan menyediakan lebih banyak barang tertentu di waktu-waktu tertentu, sehingga nantinya kedua keputusan ini dapat mendatangkan keuntungan yang lebih bagi perusahaan. Dari latar belakang seperti terpapar di atas, dapat dirumuskan permasalahan yaitu bagaimana melakukan penambangan data transaksi penjualan dengan association rule mining menggunakan algoritma apriori untuk mengetahui pola-pola frequent itemset agar diperoleh hasil analisis kecenderungan pola pembelian belanja konsumen. Data yang diambil sebagai contoh kasus adalah basis data Northwind yang merupakan database default saat instalasi SQL Server 2005. Hasil penulisan ini diharapkan dapat memberikan gambaran langkah-langkah penerapan algoritma apriori dalam menambang data. 2. Teori Penunjang Topik yang dibahas merupakan topik yang berkaitan dengan analisis yang berkaitan dengan kebiasaan belanja konsumen, maka metode yang 78
paling tepat digunakan adalah Market Basket Analysis. Untuk menghasilkan pola asosiasinya, penulis menggunakan algoritma apriori. 2.1 Data Mining Data mining atau Knowledge Discovery in Database adalah proses untuk menemukan interesting knowledge dari sejumlah besar data yang disimpan baik di dalam transactional database, data warehouse atau tempat penyimpanan informasi lainnya[1]. 2.2 Association Rule Mining Association rule mining adalah suatu prosedur untuk mencari hubungan antar item dalam suatu data set yang ditentukan[1]. Association Rule Mining meliputi dua tahap: a. Mencari kombinasi yang paling sering terjadi dari suatu itemset (frequent itemset). b. Meng-generate Association Rule dari frequent itemset yang telah dibuat sebelumnya. Umumnya ada dua ukuran kepercayaan (interestingness measure) yang digunakan dalam menentukan suatu association rule, yaitu Support dan Confidence[3]. 2.3 Market basket analysis Market Basket Analysis merupakan analisis terhadap kebiasaan konsumen berbelanja pada supermarket dengan cara menemukan asosiasi dan korelasi diantara berbagai macam items yang dimasukkan konsumen di dalam keranjang belanjaannya [5]. Secara lebih spesifik, market basket analysis bertujuan untuk mengetahui items apa saja yang sering dibeli bersamaan oleh konsumen. Items di sini diartikan sebagai berbagai macam produk atau barang pada supermarket tersebut. Fungsi association rules seringkali disebut dengan “market basket analysis”. Fungsi ini paling banyak digunakan untuk menganalisa data dalam rangka keperluan strategi pemasaran, desain catalog, dan proses pembuatan keputusan bisnis. Algoritma paling dasar untuk mencari itemset sering muncul (disebut frequent itemset) adalah algoritma apriori. 2.4 Algoritma Apriori Algoritma apriori adalah algoritma analisis keranjang pasar yang digunakan untuk menghasilkan aturan asosiasi, dengan pola “ifthen”. Algoritma apriori menggunakan pendekatan iteratif yang dikenal dengan level-wise search, dimana k-kelompok produk digunakan untuk mengeksplorasi (k+1)-kelompok produk atau (k+1)-itemset [1]. Beberapa istilah yang digunakan dalam algoritma apriori antara lain: a. Support (dukungan): probabilitas pelanggan membeli beberapa produk secara bersamaan dari seluruh transaksi. Support untuk aturan “X ⇒ Y” adalah probabilitas atribut atau Volume III/No.1/Mei/2011
g.
kumpulan atribut X dan Y yang terjadi bersamaan. Confidence (tingkat kepercayaan): probabilitas kejadian beberapa produk dibeli bersamaan dimana salah satu produk sudah pasti dibeli. Contoh: jika ada n transaksi dimana X dibeli, dan ada m transaksi dimana X dan Y dibeli bersamaan, maka confidence dari aturan if X then Y adalah m/n. Minimum support: parameter yang digunakan sebagai batasan frekuensi kejadian atau support count yang harus dipenuhi suatu kelompok data untuk dapat dijadikan aturan. Minimum confidence: parameter yang mendefinisikan minimum level dari confidence yang harus dipenuhi oleh aturan yang berkualitas. Itemset: kelompok produk Support count: frekuensi kejadian untuk sebuah kelompok produk atau itemset dari seluruh transaksi. Kandidat itemset (C ): itemset-itemset yang
h.
akan dihitung support count-nya. Frequent itemset (F ): itemset yang sering
b.
c.
d.
e f.
k
k
terjadi, atau itemset-itemset yang sudah melewati batas minimum support yang telah ditentukan. Ada dua proses utama yang dilakukan algoritma apriori, yaitu: 1. Join (penggabungan): untuk menemukan F , k
C dibangkitkan dengan melakukan proses join F
k
k-1
dengan dirinya sendiri, C =F *F
anggota C
k
k-1
k-1,
lalu
diambil hanya yang terdapat
k
didalam F . 2.
k-1
Prune (pemangkasan): menghilangkan anggota C yang memiliki support count lebih kecil k
dari minimum support agar tidak dimasukkan ke dalam F . k
Metodologi dasar algoritma apriori untuk membangkitkan frequent itemset terbagi menjadi dua tahap: a. Analisa pola frekuensi tinggi 1. Menelusuri seluruh record di basis data transaksi dan menghitung support count dari tiap item. Ini adalah kandidat 1-itemset, C . 1
Nilai support menggunakan rumus [2]: Support ( A) =
Support ( A, B ) =
2.
Jumlah _ transaksi _ berisi _ A Total _ transaksi
Jumlah _ transaksi _ berisi _ A ∩ B Total _ transaksi
Frequent 1-itemset F dibangun dengan 1
menyaring C dengan support count yang lebih 1
79
besar sama dengan minimum support untuk dimasukkan kedalam F . 1
3. Untuk membangun F , algoritma apriori 2
menggunakan proses join untuk menghasilkan C. 2
4. Dari C , 2-itemset yang memiliki support count 2
yang lebih besar sama dengan minimum support akan disimpan ke dalam L . 2
5. Proses ini diulang sampai tidak ada lagi kemungkinan k-itemset. Contoh tahapan pembangkitan C , F , C , F , C , F terlihat pada Gambar 1.
1
1
2
2
3
3
b. Pembentukan aturan asosiatif Dari beberapa frequent itemset yang telah ditemukan, dapat dibangkitkan aturan-aturan
asosiasi yang berkualitas. Syarat aturan asosiasi yang adalah harus memenuhi minimum support dan minimum confidence yang telah ditentukan. Confidence dari setiap aturan yang dibangkitkan dapat dihitung dengan menggunakan rumus [2]: Confidence( A ⇒ B) =
sup port _ count ( A ∩ B) sup port _ count ( A)
Berdasarkan rumusan diatas, aturan asosiasi dapat dibangkitkan dengan langkah: 1. Untuk setiap itemset l, bangkitkan seluruh subset l yang tidak kosong. 2. Untuk setiap subset s dari l yang tidak kosong, buat aturan ‘s => (ls)’ jika sup port _ count (l ) ≥ min imum _ confidence sup port _ count ( s )
Gambar 1. Pencarian candidate itemsets dan frequent itemset dengan minimum support = 2 [Sumber: Han, Jiawei, and Micheline Kamber, Data Mining: Concepts and Techniques, Morgan Kaufmann, 2001, p. 233 (telah diolah kembali).] Algoritma aprirori dapat dilihat sebagai berikut [1]: L1 = find_frequent_1_itemset(D); For (k=2; Lk-1≠∅; k++) { Ck = apriori_gen(Lk-1,min_sup); For each transaction t ∈ D //scan D for counts { Ct subset(Ck,t); //get the subsets of t that are candidates Volume III/No.1/Mei/2011
80
For each candidate c ∈ Ct { c.count ++; } } Lk = { c ∈ Ck | c.count ≥ min_sup } } return L = UkLk; Procedure apriori_gen(Lk-1:frequent(k-1)-itemsets; min_sup:min_sup_threshold) For each itemset l1 ∈ Lk-1 { For each l2 ∈ Lk-1 { If ( (l1[1]= l2[1]) ∧ (l1[2]= l2[2]) ∧…∧ (l1[k-2]= l2[k-2]) ∧ (l1[k-1] < l2[k-1]) )then { c = l1ZY l2; //join step: generate candidates If (has_infrequent_subset(c,Lk-1)) then { delete c; //prune step: remove unfruitful candidate }Else { add c to Ck; } } } } return Ck; Procedure has_infrequent_subset(c:candidate_k-itemset; Lk-1:frequent_(k-1)-itemsets) //use prior knowledge For each (k-1)-subset s of c { If s ∉ Lk-1 then { return TRUE; } } return FALSE; 3. Desain Sistem 3.1 Analisa Kebutuhan Sistem Dalam mengimplementasikan algoritma apriori untuk mencari aturan asosiasi, penulis menggunakan basis data Northwind, dimana dalam basis data tersebut terdapat diantaranya 3 tabel, yaitu tabel “Orders” menyimpan transaksi yang terjadi dalam suatu perusahaan, tabel “OrderDetails“ menjelaskan barang apa saja yang terbeli dalam masing-masing transaksi pada tabel “Orders“, sedangkan tabel “Products“ menyimpan detail data barang yang terbeli untuk setiap transaksi pada tabel “OrderDetails“. Atribut-atribut yang dipilih, yaitu atribut ”OrderDate” sebagai representasi waktu, ”Quantity” sebagai representasi stok, ”ProductName” sebagai representasi jenis barang yang dibeli oleh konsumen. Data yang dapat diterima oleh algoritma apriori adalah hanya data yang bersifat numerik, sehingga diperlukan proses transformasi data terlebih dahulu. Proses transformasi data teks atau kategorial menjadi numerik adalah dengan cara memberikan nilai integer kepada setiap data yang berbeda secara kontinyu. Data yang bernilai sama maka akan mempunyai nilai integer yang sama.
Volume III/No.1/Mei/2011
Atribut-atribut yang belum bertipe numerik, yakni atribut “ProductName” dan “OrderDate”, maka pada atribut-atribut tersebut harus dilakukan numerisasi terlebih dahulu. Sedangkan atribut “Quantity” telah bertipe numerik, sehingga tidak perlu lagi dilakukan proses numerisasi. Pada atribut “ProductName” kategori yang ada hanya berupa “Dibeli” dan “Tidak dibeli”, maka setelah dilakukan proses numerisasi, data “Dibeli” akan ditransformasi menjadi 1 dan data “Tidak dibeli” menjadi 0. Selanjutnya numerisasi pada atribut “OrderDate” ini difokuskan pada data tanggal transaksi dengan rentang waktu per-3 kali dalam sebulan, yakni tanggal (1-10) adalah “Periode awal bulan” akan ditransformasi menjadi 1, (11-20) adalah “Periode tengah bulan” akan ditransformasi menjadi 2, dan (21-tanggal akhir per bulan) adalah “Periode akhir bulan” akan ditransformasi menjadi 3. Langkah dalam pembuatan aplikasi association rule mining menggunakan algoritma apriori dijelaskan dalam flowchart yang tampak pada Gambar 2, Gambar 3, dan Gambar 4 berikut.
81
Mulai min_support, min_confidence 1. c := 1 2. Total_transaksi := Query SUM(OrderID) dalam tabel Orders 3. Ketemu := false
Ada tabel C[c] dalam database?
Ya
Hapus tabel C[c]
Tidak 1. Buat tabel C[c](ProductID,count_support) 2. Tabel C[c](ProductID) := Query DISTINCT(ProductID) dalam tabel OrderDetails 3. Tabel C[c](count_support) := Query SUM(ProductID) dalam tabel OrderDetails 4. L := 1 Query Frequent := count_support dalam tabel C[c]
count_support >= min_support?
Tidak
Hapus itemset dalam tabel C[c]
Ya Tidak
EOF Query Frequent?
Ya A
Gambar 2. Flowchart algoritma apriori proses join dan prune [Sumber: Kusrini dan Emha Taufiq Luthfi, Algoritma Data Mining, Penerbit Andi, 2009, p. 159-162 (telah diolah kembali).]
Volume III/No.1/Mei/2011
82
Gambar 3. Flowchart algoritma apriori proses join dan prune (lanjutan) [Sumber: Kusrini dan Emha Taufiq Luthfi, Algoritma Data Mining, Penerbit Andi, 2009, p. 159-162 (telah diolah kembali).]
Volume III/No.1/Mei/2011
83
B
c := c+1
Tambahkan kolom antecendent,antecendentConsequent,countConfidence dalam tabel C[c]
Query Assosiatif := generate semua nonempty C[c-1](s) dari C[c](l) untuk setiap frequent itemset C[c](l)
Rule = “s l-s” or Rule ≠ trivial?
Tidak
Hapus itemset dalam tabel C[c]
Ya
Tidak
1. A := s 2. B := l-s 3. Count_A := Query SUM(A(ProductID)) dalam tabel OrderDetails 4. Count_A B := Query SUM(A(ProductID) AND B(ProductID)) dalam tabel OrderDetails 5. Tabel C[c](antecendent) := Count_A 6. Tabel C[c](antecendentConsequent) := Count_A B 7. Tabel C[c](countConfident) := Count_A B / Count_A
EOF Query Assosiatif?
Ya Query Confidence := count_confidence dalam tabel C[c]
count_confident >= min_confidence?
Ya
Tampil rule := count_confidence * 100%
Tidak Tidak EOF Query Confidence?
Ya Selesai
Gambar 4. Flowchart algoritma apriori proses pembentukan aturan asosiatif [Sumber: Kusrini dan Emha Taufiq Luthfi, Algoritma Data Mining, Penerbit Andi, 2009, p. 159-162 (telah diolah kembali).]
Volume III/No.1/Mei/2011
84
Gambar 5. Activity diagram use case association
Gambar 6. Isi tabel transaksi untuk input proses Generate Association
Volume III/No.1/Mei/2011
85
3.2 Tahap Proses Association Desain dari proses ini dapat dilihat pada Gambar 5. Tahap proses Association adalah aplikasi berbasis Windows XP dan dibangun menggunakan software kompilasi PHP serta database engine MySQL. Pada tahap ini dilakukan proses association rule mining terhadap data transaksi Northwind yang telah tersimpan dalam tabel TabularTransaksi. Implementasi dilakukan menggunakan algoritma apriori dengan melakukan proses analisa pola frekuensi tinggi (proses join dan prune) kemudian proses pembentukan aturan asosiatif (proses generate association rule). 3.3 Desain Database Basis data yang dikembangkan terdiri dari tabel yang bersifat referensi, input, dan output. Tabel yang bersifat referensi ini terdiri dari 3 tabel, yaitu tabel “Orders”, “OrderDetails”, dan FREQUENT IDFREQUENT ORDERID PRODUCTID SUPPORT_COUNT BASEORDERIDFR EQ
integer integer integer integer integer
“Products”. Tabel ini merupakan tabel dari basis data transaksi penjualan, yaitu Northwind, yang diperoleh saat instalasi SQL Server 2000, database default. Relasi tabel relasi ini dapat dilihat pada gambar 7 Tabel yang bersifat input adalah tabel “Transaksi”, yakni tabel tabel yang menyimpan data sebagai input ke proses association. Seluruh data yang berada dalam tabel ini telah bersifat numerik. Terakhir adalah tabel yang bersifat output, tabel yang akan menyimpan data hasil association. Tabel ini terdiri dari 2 tabel. Pertama, tabel “Frequent”, yakni tabel yang menyimpan data frequent itemsets, hasil proses join dan prune. Kedua, tabel “Rule”, yakni tabel yang menyimpan data association rule, hasil proses pembentukan aturan asosiatif. Susunan tabel input dan tabel output dapat dilihat pada gambar 8.
ORDE RID = ORDE RID
TRANSAKSI ORDERID integer PRODUCTID integer QUANTITY integer ORDERDATE integer
IDFRE QUE NT = IDFRE QUE NT
RULE IDR ULE IDFREQUENT ANTECENDENT CONSEQUENT COUNT_SUPPORT COUNT_CONFIDENCE BASEORDERIDR L
integer integer integer integer integer integer integer
Gambar 7. Rancangan basis data dari aplikasi yang akan dibangun 4. Pengujian Sistem Pengujian dilakukan menggunakan spesfikasi hardware dan software berikut: Processor : Intel Dual-Core 1.2 GHz Memory : 1 GB Operating System : Ms. Windows XP SP2 Database : MySQL Berikut adalah skenario pengujian yang dilakukan: 1. Apakah sistem dapat melakukan proses association rule mining dengan jumlah atribut data berbeda sesuai dengan pilihan pengguna?
2. 3. 4. 5.
Apakah sistem dapat melakukan pra pemrosesan data (transformasi atribut)? Apakah sistem dapat melakukan proses asosiasi termasuk proses join dan prune? Apakah sistem dapat menampilkan hasil asosiasi? Apakah sistem dapat menyimpan hasil asosiasi?
Hasil implementasi dapat dilihat dari gambar 8 sampai gambar 11. Hasil pengujian lengkap terdapat pada table hasil pengujian.
Gambar 8. Form Selection Data Volume III/No.1/Mei/2011
86
Gambar 9. Form Association
Gambar 10. Form association rules mining Persentase
Gambar 11. Form association rules mining Periode
Volume III/No.1/Mei/2011
87
Aturan asosiasi yang diperoleh pada gambar 10 sebagai berikut: 1. JIKA membeli Asparagus dan Squash, MAKA akan membeli Beans dengan nilai support 28.6% dan confidence 80% 2. JIKA membeli Asparagus dan Beans, MAKA akan membeli Squash dengan nilai support 28.6% dan confidence 80%
Tabel 1 Hasil Pengujian Implementasi No
1
Kebutuhan
Sistem dapat melakukan proses association rule mining dengan jumlah atribut data berbeda sesuai pilihan pengguna.
2. JIKA membeli Asparagus dan Beans, MAKA akan membeli Squash dengan nilai support 28.6% dan confidence 80% • Asparagus - Periode awal bulan: 1 - Periode tengah bulan: 0 - Periode akhir bulan: 1 • Beans - Periode awal bulan: 1 - Periode tengah bulan: 0 - Periode akhir bulan: 1 • Squash - Periode awal bulan: 1 - Periode tengah bulan: 0 - Periode akhir bulan: 1
Volume III/No.1/Mei/2011
3
4
Sistem dapat melakukan proses algoritma association, dalam hal ini algoritma apriori, termasuk dilakukannya proses join dan prune. Sistem dapat menampilkan hasil association, sehingga data-data yang memiliki kecenderungan pembelian bersama dapat diketahui. Informasi pengelompokkan data barang ini berdasarkan persentase dan periode penjualan.
Pengguna dapat menginputkan data sesuai yang diinginkan sebagai input ke proses association. Pemenuhan kebutuhan ini terhadap sistem terdapat pada menu “Selection Data”.
√
Sistem berhasil melakukan transformasi menggunakan pengukuran variabel biner untuk atribut “ProductName” dan pengukuran kategorial untuk atribut “OrderDate”. Pemenuhan kebutuhan ini terhadap sistem terdapat pada menu “Association”.
√
√
Sistem dapat menyimpan hasil association 5
Keterangan
√
Sistem mampu melakukan pra pemrosesan data (transformasi atribut). 2
Aturan asosiasi yang diperoleh pada gambar 11 sebagai berikut: 1. JIKA membeli Asparagus dan Squash, MAKA akan membeli Beans dengan nilai support 28.6% dan confidence 80% Detail periode: • Asparagus - Periode awal bulan: 1 - Periode tengah bulan: 0 - Periode akhir bulan: 1 • Squash - Periode awal bulan: 1 - Periode tengah bulan: 0 - Periode akhir bulan: • Beans - Periode awal bulan: 1 - Periode tengah bulan: 0 - Periode akhir bulan: 0
Terpen uhi T i Y d a a k
√
Sistem telah mengimplementasikan algoritma apriori. Pemenuhan kebutuhan ini terhadap sistem terdapat pada menu “Association”. Pengguna dapat melihat data hasil association dan melihat hasilnya dalam format tabel dan grafi. Pemenuhan kebutuhan ini terhadap sistem terdapat pada menu “Interpretasi Persentase dan Periode”.
Hasil proses association yang terakhir dilakukan dapat dilihat pengguna walau aplikasi telah dimatikan. Pemenuhan kebutuhan ini terhadap sistem terdapat pada menu “View the last association”.
4. KESIMPULAN Dari hasil pembahasan dapat disimpulkan bahwa penulisan telah berhasil untuk: ¾ Semakin tinggi batasan minimum support count yang ditentukan maka association rules yang dihasilkan semakin sedikit. Sehingga menurunkan data barang yang dihasilkan namun lebih meningkatkan asosiasi diantara user’s threshold dengan pengelompokkan data barang. ¾ Bila di-input-kan nilai threshold yang tidak sesuai dengan jumlah maksimum support_count dan confidence berdasarkan jumlah kemunculan itemset pada database, maka hasil pencarian association rule akan menghasilkan daftar yang “null”. Hal ini dikarenakan nilai threshold tidak memenuhi minimal persayaratan frequent 2-itemset. 5. DAFTAR PUSTAKA [1] Han, Jiawei and Micheline Kamber, “Data Mining Concepts and Techniques”, Morgan Kaufmann, California, 2001. [2] Kusrini, Emha Taufiq Luthfi, 2009, Algoritma Data Mining, Penerbit Andi, Yogyakarta. [3] Larose, D. T., 2005, Discovering Knowledge in data: An Introduction to Data Mining, A John Wiley and sons, Inc., Publication, New Jersey. [4] Santosa, Budi. 2007. Data Mining-Teknik Pemanfaatan Data Untuk Keperluan Bisnis. Graha Ilmu. Yogyakarta. [5] Olson, David dan Yong Shi. 2006. Introduction to Business Data Mining. New York: McGraw-Hill.
88