1
PENGGUNAAN STRUKTUR DATA
SOTrieIT
UNTUK
PEMANGKASAN TRANSAKSI DENGAN
ALGORITME
DATA MINING
FOLD
-
GROWTH
DENY PRASTOWO
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
2
PENGGUNAAN STRUKTUR DATA
SOTrieIT
UNTUK
PEMANGKASAN TRANSAKSI DENGAN
ALGORITME
DATA MINING
FOLD
-
GROWTH
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
DENY PRASTOWO
G64104063
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
i
Judul
: Penggunaan Struktur Data
SOTrieIT
untuk Pemangkasan
Transaksi dengan Algoritme
Data mining
FOLD
-
Growth
Nama
: Deny Prastowo
NIM
: G64104063
Menyetujui :
Pembimbing I,
Pembimbing II,
Rindang Karyadin, S. T., M. Komp.
Wisnu Ananta Kusuma, S. T., M. T.
NIP 132 311 915
NIP 132 312 485
Mengetahui :
Dekan Fakultas Matematika Dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Dr. drh. Hasim, DEA
NIP 131578806
ii
ABSTRAK
DENY PRASTOWO. Penggunaan Struktur Data SOTrieIT Untuk Pemangkasan Transaksi Dengan Algoritme Data Mining FOLD – Growth. Dibimbing oleh Rindang Karyadin dan Wisnu Ananta Kusuma.
Penelitian ini menggunakan salah satu teknik penggalian data yang dikenal dengan teknik aturan asosiasi (Association Rule) dan menggunakan algoritme FOLD – Growth untuk mengekstrak korelasi antar itemset yang terbentuk. Data yang digunakan dalam penelitian kali ini ialah suatu data transaksi penjualan sebuah toko di daerah kota Bogor.
Kombinasi yang terjadi pada dataset yang dipakai memperlihatkan bahwa itemset dengan kombinasi susu snack (support 6,58% ; confidence 44,64%) merupakan kombinasi yang paling banyak dilakukan dalam keseluruhan transaksi dalam basis data. Selanjutnya itemset dengan kombinasi permen mie instant (support 1% ; confidence 11,76%) merupakan kombinasi terkecil untuk penetapan nilai minimum support sebesar 1%. Sementara itu kombinasi dengan item susu.permen snack merupakan kombinasi itemset dengan nilai confidence tertinggi sebesar 70,44% dan kombinasi item permen mie instant merupakan kombinasi dengan nilai confidence terkecil. Dari penelitian ini diperoleh juga suatu kesimpulan bahwa pemangkasan menggunakan large 2 – itemset tidak merubah atau merusak kombinasi yang terjadi dalam database transaksi yang digunakan. Dengan demikian pemangkasan dengan acuan large 1 – 2 itemset dapat dilakukan.
iii
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 20 Mei 1986 sebagai anak kedua dari tiga bersaudara dari pasangan Sukento dan Wahyu Widayati. Penulis menyelesaikan masa studinya di Sekolah Menengah Umum Negeri 54 Jakarta pada tahun 2004.
Pada tahun yang sama penulis berkesempatan untuk melanjutkan studinya di Departemen Ilmu Komputer Institut Pertanian Bogor (IPB) melalui jalur Undangan Seleksi Masuk IPB (USMI). Penulis pernah melaksanakan praktek lapang selama dua bulan di SCTV. Tugas yang diberikan selama penulis melakukan praktek lapang ialah pembuatan sistem inventarisasi komputer di SCTV dan O Channel.
iv
PRAKATA
Alhamdulillahi Rabbil ‘alamin, puji dan syukur penulis panjatkan kepada Allah SWT atas segala curahan rahmat dan karunia-Nya sehingga tugas akhir ini dengan judul Penggunaan Struktur Data SOTrieIT untuk Pemangkasan Transaksi dengan algoritme FOLD - Growth, dapat diselesaikan. Dalam menyelesaikan karya tulis ini penulis mendapatkan banyak sekali bantuan, bimbingan dan dorongan dari berbagai pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu kelancaran penelitian ini, antara lain kepada:
1 Orangtuaku tercinta, Bapak Sukento dan Mama Wahyu Widayati, Alm. atas segala do’a, kasih sayang, dan dukungannya.
2 Kakak Cahya Priyanugraha dan Adik Windy Kurniasari tercinta yang selalu memberikan motivasi dalam penyelesaian karya tulis ini.
3 Bapak Rindang Karyadin, S.T, M.Kom selaku pembimbing pertama atas bimbingan dan arahannya selama penyusunan karya tulis ini.
4 Bapak Wisnu Ananta Kusuma S.T, M.T selaku pembimbing kedua atas bimbingan dan arahannya selama penyusunan karya tulis ini.
5 Ibu Annisa, S.Kom, M.Kom selaku moderator dan penguji serta seluruh arahannya pada penelitian ini.
6 Ima Kusumanti atas bantuan dan dorongan motivasinya. 7 Martin, Toro, Putri, Halida, Arief selama konsultasi bersama.
8 Syadid, Lewe, Ina, Trie dan seluruh rekan seperjuangan Ilkomerz 40, 41, 42 dan 43. Kepada semua pihak lainnya yang telah memberikan kontribusi yang besar selama pengerjaan penelitian ini yang tidak dapat disebutkan satu-persatu, Penulis ucapkan terima kasih banyak. Semoga penelitian ini dapat memberi manfaat.
Bogor, Juli 2008
v
DAFTAR ISI
Halaman
DAFTAR TABEL ... vi
DAFTAR GAMBAR ... vi
DAFTAR LAMPIRAN ... vi
PENDAHULUAN ... 1
Latar Belakang ... 1
Tujuan ... 1
Ruang Lingkup ... 1
Manfaat ... 1
TINJAUAN PUSTAKA ... 1
Penggalian Data (Data mining) ... 1
Pola Asosiasi (Association Rule) ... 1
FP – Tree ... 2
Algoritme FP-Growth... 3
SOTrieIT ... 3
Algoritme FOLD – Growth ... 4
METODOLOGI PENELITIAN ... 5
Studi Literatur ... 5
Pengumpulan Data ... 5
Data mining ... 5
Tahap Penggalian L1 dan L2 Dengan Menggunakan SOTrieIT ... 6
Tahap Pemangkasan Item – Item yang Tidak Frequent ... 6
Tahap Pembangunan FP – Tree ... 6
Tahap Penggalian Itemset Frequent ... 6
Pengujian dan Analisis ... 6
HASIL DAN PEMBAHASAN ... 6
Tahap Pembentukan Large Itemset ... 6
Pembentukan Large Itemset dengan Minimum Support Sebesar 1% - 5% ... 6
Tahap Pembentukan Aturan Asosiasi ... 7
Update Transaksi ... 9
KESIMPULAN DAN SARAN ... 9
Kesimpulan ... 9
Saran ... 9
DAFTAR PUSTAKA ... 10
vi
DAFTAR TABEL
DAFTAR GAMBAR
Halaman
1 FP – Tree pembacaan transaksi 100 ... 2
2 FP – Tree pembacaan transaksi 200 ... 3
3 FP – Tree utuh ... 3
4 (a) Pembacaan transaksi 100 pada SOTrieIT (b) Pembacaan Transaksi 200 pada SOTrieIT .. 4
5 SOTrieIT utuh ... 4
6 Algoritme universal update itemset ... 5
7 Metode Penelitian ... 5
... Halaman 1 Transaksi dalam database D ... 2
2 Frequent Itemset Terbentuk ... 3
3 Contoh transaksi dalam basisdata D ... 4
4 Large Itemset dengan minsup 1% ... 7
5 Pembentukan large itemset dengan algoritme FOLD - Growth ... 7
6 Hasil aturan asosiasi terbentuk dengan minimum confidence 10% dan minsup 1% ... 8
7 Hasil aturan asosiasi terbentuk dengan minimum confidence 20% dan minsup 1% ... 8
8 Hasil aturan asosiasi terbentuk dengan minimum confidence 10% dan minsup 2% - 5% ... 8
DAFTAR LAMPIRAN
Halaman 1 Contoh Transaksi ... 122 Kode pengelompokan barang ... 13
3 Hasil penggalian dengan minsup 1% dan mincof 10% ... 15
4 Hasil penggalian dengan minsup 2% dan mincof 10% ... 17
5 Hasil penggalian dengan minsup 3% dan mincof 10% ... 18
6 Hasil penggalian dengan minsup 4% dan 5% dengan mincof 10% ... 19
1
PENDAHULUAN
Latar Belakang
Begitu banyaknya fungsionalitas dalam penggalian data terkadang membuat kita harus memilih secara seksama. Pemilihan fungsionalitas yang tepat dalam melakukan suatu penggalian data menentukan keefektifan serta keefisienan waktu yang dibutuhkan dalam mengekstrak data tersebut.
Penggalian data dengan pola asosiasi merupakan salah satu pilihan fungsionalitas yang dapat kita cermati karena kegunaanya yang dapat diterapkan pada berbagai macam situasi seperti e-commerce, klasifikasi, pengelompokan dan lain sebagainya. Dalam penggalian data dengan pola asosiasi ditemukan atribut – atribut yang menunjukkan kondisi di mana atribut – atribut tersebut muncul secara bersama – sama dalam suatu data yang diberikan. Penggalian data dengan pola asosiasi ini lebih sering digunakan dalam pengolahan dan analisis data transaksi, selanjutnya lebih dikenal dengan nama market – basket analysis. Ada beberapa algoritme yang dapat digunakan untuk memperbaiki kinerja penggalian data dengan pola asosiasi, namun algoritme tersebut hanya dapat menangani kondisi tertentu saja dan memiliki kekurangan dalam kondisi lainnya. Sementara itu dalam penggalian data keefektifan serta keefisienan sumber daya yang digunakan sangat diperlukan.
Pada penelitian yang dilakukan oleh Woon et al. (2004), penggabungan dua buah algoritme FP – GROWTH dengan FOLDARM pada metode assosiasi menghasilkan sebuah algoritme baru (FOLD - Growth) yang memiliki kinerja yang lebih baik. Algoritme ini menggunakan struktur data SOTrieIT. Kinerja dari algoritme tersebut menghasilkan proses yang lebih fleksibel dan efisien jika dibandingkan dengan algoritme – algoritme aturan asosisiasi lainnya seperti Apriori dan FP - Growth. Dengan demikian penggunaan algoritme ini diharapkan dapat memperbaiki kinerja algoritme sebelumnya dan dapat diimplementasikan pada kasus penggalian data transaksi berdasarkan market - basket.
Tujuan
Penelitian ini bertujuan untuk menerapkan pemangkasan transaksi dengan
menggunakan struktur data SOTrieIT serta algoritme FOLD - Growth.
Ruang Lingkup
Ruang lingkup dari penelitian ini adalah : 1 Penggunaan metode association rule
untuk melakukan proses update menggunakan algoritme FOLD – Growth hanya terbatas pada penambahan data transaksi.
2 Pembahasan meliputi analisis hasil penggalian yang meliputi confidence serta support suatu item terhadap item yang lain.
Manfaat
Diharapkan dengan adanya penelitian ini, maka dapat menjadi sebuah referensi terhadap pemilihan algoritme dalam metode association rule. Penelitian ini juga memberikan sedikit gambaran mengenai proses update suatu transaksi saat dilakukan penggalian data.
TINJAUAN PUSTAKA
Penggalian Data (Data mining)
Data mining adalah proses pencarian suatu korelasi - korelasi baru suatu data yang mempunyai makna, pola dan tren tertentu dengan cara menyelidiki atau meneliti suatu data yang berukuran besar yang terdapat di dalam suatu gudang data dengan menggunakan teknologi pengenalan pola serta teknik statistik dan matematika (Larose 2005).
Pola Asosiasi (Association Rule)
Pola asosiasi ialah salah satu teknik dalam penggalian data yang bertujuan untuk mengekstrak korelasi yang menarik, pola – pola yang sering muncul, hubungan kumpulan item di dalam suatu basis data atau gudang data yang berisi record transaksi (Zhao et al. 2003).
Terdapat dua hal utama yang melandasi teknik ini yaitu support dan confidence (Zhao et al. 2003). Support dari suatu association rule didefinisikan sebagai persentase dari record X Y terhadap seluruh jumlah transaksi di dalam basis data. Support dapat dihitung dengan menerapkan rumus sebagai berikut :
Support (XY) =
tion rOfTransac TotalNumbe
Y SupportOfX
2 transaksi yang mengandung X Y terhadap
jumlah total transaksi yang mengandung X. Confidence dapat dihitung dengan menggunakan rumus sebagai berikut :
Confidence (X|Y) =
Support(X) ) Support(XY
FP – Tree
FP – Tree atau Frequent Pattern Tree merupakan suatu algoritme yang dirancang untuk mengatasi kendala bottleneck pada proses penggalian data dengan algoritme Apriori (Zhao et al. 2003). Definisi dari FP – Tree dijelaskan sebagai berikut (Han et al. 2000) :
• Terdiri atas sebuah root dengan label “null”, sekumpulan subtree yang menjadi child dari root dan sebuah tabel frequent header.
• Setiap node dalam FP – Tree mengandung tiga informasi penting, yaitu : label item, menginformasikan jenis item yang terdapat pada node tersebut, support count, merepresentasikan jumlah lintasan transaksi yang melalui simpul tersebut dan pointer penghubung yang menghubungkan label item yang sama antar lintasan dalam FP – Tree yang ditandai dengan garis putus – putus.
• Isi dari setiap baris dalam tabel frequent – header terdiri atas label item dan head of nodelink yang menunjuk ke node pertama dalam FP – Tree yang menyimpan label item tersebut.
FP – Tree merupakan suatu struktur data berbentuk tree yang menyimpan item – item yang frequent atau nilainya lebih besar dari minimum support yang diberikan, untuk memperjelas algoritme pembentukan FP - Tree maka akan diberikan sebuah contoh pembangunan FP – Tree yang mengacu pada basis data D dengan nilai minimum support sebesar 3 (60%) sebagai berikut :
Tabel 1 Transaksi dalam database D
Proses scanning pertama akan menghasilkan large 1 – itemset yang selanjutnya akan digunakan sebagai dasar dalam pengurutan secara menurun dari transaksi pada basis data D. Hasil 1 – itemset yang didapatkan dapat seperti berikut ini : {(sabun : 4), (snack : 4), (rokok : 3), (mie : 3), (shampoo : 3), (minuman : 3) } (angka setelah karakter “:” mengindikasikan jumlah count - nya).
Gambar 1 sampai 3 berikut akan mengilustrasikan pembangunan FP – Tree setelah pembacaan transaksi 100, 200, dan keseluruhan FP – Tree yang terbentuk.
Sabun
Snack
Rokok
Mie
Minum
Gambar 1 FP – Tree pembacaan transaksi 100.
TID Item Yang
Dibeli
Item Terurut
100 sabun, rokok,
snack, buah, daging, beras, mie, minuman
sabun, snack, rokok, mie, minuman
200 rokok, shampo,
snack, sabun, pulpen, mie, tisue
sabun, snack, rokok, mie,shampoo
300 shampo, sabun,
kamper, minyak, tisue
sabun, shampoo
400 shampo, snack,
kabel, lampu, minuman
snack, shampo, minuman
500 rokok, sabun,
snack, kertas, pulpen, minuman, mie, bihun
sabun, snack, rokok, mie, minuman
null
Sabun : 1
Snack : 1
Rokok : 1
Mie : 1
3 Sabun
Snack
Rokok
Mie
Sampo
Minum
Gambar 2 FP-Tree pembacaan transaksi 200.
Sabun
Snack
Rokok
Mie
Sampo
Minum
Gambar 3 FP – Tree utuh.
Contoh di atas merupakan salah satu ilustrasi pembentukan FP – Tree dengan penggunaan nilai minimum support sebesar 3 atau 60%. Algoritme pembentukan FP – Tree ini terdiri dari dua langkah utama (Han et al. 2000), yaitu :
1. Proses scanning basis data untuk menemukan 1 – itemset (L), kemudian itemset L digunakan untuk mengurutkan transaksi
terhadap item yang frequent secara menurun.
2. Proses pembuatan tree yang diawali dengan pembuatan ROOT (T). Kemudian menjalankan fungsi insert_tree([p|P],T), di mana p adalah elemen pertama dan P merupakan sisa elemen yang ada dalam daftar transaksi.
Fungsi insert_tree([p|P],T) dijalankan sebagai berikut: Jika T mempunyai anak N dan (N.itemName = p.itemName), maka naikan counter N sebesar 1. Selainnya buat node N baru dan buat link ke parent. Serta node-nya di kaitkan ke node – node yang mempunya label yang sama. Jika P tidak kosong, panggil fungsi insert_tree(P,N) secara rekursif.
Algoritme FP-Growth
Algoritme FP – Growth merupakan salah satu algoritme penggalian data yang akan membangkitkan suatu struktur data Tree atau yang disebut dengan FP – Tree. Algoritme ini melibatkan tiga langkah utama (Han et al. 2000), yaitu :
a Tahap pembangkitan kondisional pattern base.
b Tahap pembangkitan kondisional FP – Tree.
c Tahap pencarian frequent itemset. Sehingga jika FP –Tree pada Gambar 3 menjadi masukkan untuk algoritme FP – Growth, maka akan menghasilkan frequent item sebagai berikut :
Tabel 2 Frequent Itemset Terbentuk
Item Frequent Item
Shampo Shampo
Minuman Minuman / {snack |
minuman }
Mie Mie / {sabun snack rokok
| mie}
Rokok Rokok / {sabun snack |
rokok }
Snack Snack / { sabun | snack}
Sabun Sabun
SOTrieIT
SOTrieIT atau Sub Ordered Trie Itemset merupakan suatu tree yang dibangun dengan null
Sabun : 2
Snack : 2
Rokok : 2
Mie : 2
Minum : 1 Sampo : 1
Head Table
4 mengekstrak 1 – 2 itemset dari setiap
transaksi (Zhao et al. 2003). Prinsip penelusuran dalam SOTrieIT memiliki pendekatan yang sama dengan pencarian dengan metode DFS. Cara penelusuran dilakukan dengan scanning dari node pertama yang paling kiri. Jika support count dari satu item di level ke dua tidak mencukupi dari minimum support maka proses berhenti dan pindah ke level atas lainnya. Jika nilai support count pada level atas sudah tidak lagi mencukupi nilai minimum support, maka proses berhenti dan tree terbentuk.
Algoritma pembentukan SOTrieIT bekerja dengan melakukan ekstrasi 1 – 2 Itemset dari setiap transaksi yang dibaca. Tahapan pengerjaan dari algoritma ini secara singkat dijelaskan sebagai berikut (Woon et al. 2002):
1. Menemukan semua 1 - 2 itemset dari setiap transaksi
2. Menambahkan node baru pada Trie jika node dengan nilai count ialah 1 (satu) jika node tersebut tidak terdapat pada level 1 dan level 2, jika node sudah terdapat dalam Trie maka dilakukan penambahan nilai count di node tersebut dan dilakukan rebalancing antar node dalam Trie tersebut.
Untuk memperjelas uraian di atas akan diilustrasikan pembangunan SOTrieIT dengan basis data D sebagai berikut (Woon et al. 2002) :
Tabel 3 Contoh transaksi dalam basisdata D
TID Items
100 A C
200 B C
300 A B C
400 A B C D
Setelah diperoleh transaksinya, selanjutnya akan dibaca transaksi tersebut dan diekstraksi 1 – 2 itemset-nya. Pada saat transaksi 100 dibaca maka akan diekstrak 1 – itemset : {A, C} dan 2 – itemset : {AC} (Gambar 4 a). Selanjutnya saat pembacaan transaksi 200, sistem akan mengekstrak 1 itemsetnya : {B, C} dan 2 – itemsetnya : {BC} (Gambar 4 b). Langkah ini dilakukan berturut – turut sampai pembacaan transaksi 400, sehingga akan menghasilkan SOTreeIT
yang utuh seperti pada Gambar 5.
Gambar 4 (a) Pembacaan transaksi 100 pada SOTrieIT (b) Pembacaan Transaksi 200 pada SOTrieIT.
Gambar 5 SOTrieIT utuh.
Algoritme FOLD – Growth
Algoritme FOLD – Growth merupakan hasil gabungan dari algoritme FOLDARM dan FP – Growth. Pada algoritme ini diharapkan dapat menggabungkan keuntungan dan kebaikan dari 2 (dua) algoritme antara FP – Growth dengan FOLDARM. Algoritme FOLDARM yang memiliki kinerja cepat dalam pengukuran itemset frequent maksimum (Kmax) adalah kecil atau K 10, sedangkan algoritme FP – Growth memiliki kinerja yang cepat pada saat Kmax > 10 (Woon et al. 2004). Dalam algoritme ini terdapat pembagian tahap pengerjaan sebanyak 4 (empat) tahapan utama (Soelaiman et al. 2006).
Tahapan utama dalam algoritme FOLD – Growth yaitu :
a Pengalian L1 (Large 1 - Itemset) dan L2 (Large 2 - Itemset) dengan menggunakan SOTrieIT,
b Pemangkasan item – item yang tidak frequent dalam transaksi menggunakan L1 dan L2,
c Membangun FP – Tree menggunakan transaksi – transaksi yang telah dipangkas dan,
ROO
A :1
C : 1
C : 1
ROO
C : 2 A :1
C : 1
B :1
C : 1
ROOT
C : 4
D :1
B :3
C : 3 A 3
C : 3 B :2 D: 1 D: 1
D: 1
5 d Pengalian itemset frequent dengan
algoritme FP – Growth.
Dalam algoritme FP – Growth penggunaan struktur data FP – Tree memiliki kelemahan saat akan dilakukan proses update suatu data transaksi. Kendala yang terjadi ialah dilakukannya proses scanning basis data awal ditambah data transaksi yang akan ditambahkan atau dihapus. Proses ini akan memperlambat kinerja algoritme dalam proses penggalian.
Penggunaan struktur data SOTrieIT akan mempermudah proses penambahan atau pengurangan suatu transaksi terhadap suatu basis data. Penggunaan SOTrieIT dalam mengakomodasi perubahan basis data dapat mengefisienkan usaha yang dilakukan program dalam melakukan perubahan transaksi. Gambar 6 di bawah akan menunjukan algoritme yang digunakan dalam proses update transaksi yang baru (Woon et al. 2002).
Gambar 6 Algoritme universal update itemset.
METODOLOGI PENELITIAN
Penelitian ini dilakukan untuk mendapatkan analisis hasil FOLD – Growth terhadap permasalahan dalam penggalian data transaksi. Penelitian ini diharapkan dapat menjadi pembanding dari penilitian sebelumnya terhadap pilihan algoritme dalam menyelesaikan penggalian data berdasarkan metode Association Rule. Untuk memulai penelitian ini dilakukan beberapa langkah yang harus dijalani dan tertuang dalam suatu Metodologi Penelitian sesuai Gambar 7 berikut.
Gambar 7 Metode Penelitian.
Studi Literatur
Studi literatur dilakukan untuk menambah referensi terkait dengan algoritme FOLD – Growth. Pengumpulan informasi tentang proses – proses dalam algoritme ini dikumpulkan dan didapatkan dari beberapa sumber seperti : buku, jurnal, dan artikel di internet.
Pengumpulan Data
Data yang dipakai merupakan data transaksi yang berasal dari sebuah toko di daerah Bogor. Data ini merupakan data transaksi penjualan barang kebutuhan sehari – hari seperti : makanan pokok, snack, minuman, keperluan mandi dan lain – lain. Data yang diambil masih berupa transaksi biner sehingga diperlukan proses transformasi kembali supaya data dapat digunakan dengan baik.
Data mining
Implementasi association rule dengan algoritme FOLD - Growth terhadap data yang telah dilakukan preprocessing melewati beberapa tahap pengerjaan seperti yang dijelaskan pada Tinjauan Pustaka. Pada tahap
Mulai
Studi Literatur
Pengumpulan Data
Penggalian L1 & L2
DATA
Pemangkasan
Pembangunan. FP - Tree
FOLD -
GROWTH Penggalian
Analisis Hasil
Dokumentasi
Selesai 1 If a new i is added to the universal itemset
Do nothing because the SOTrietIT will be updated the moment a transaction i arrives
6 ini secara keseluruhan dibagi menjadi dua
bagian, bagian pertama ialah pembentukan Large Itemset dengan menggunakan algoritme FOLD – Growth, dan tahap selanjutnya ialah proses pembentukan aturan asosiasi dengan perhitungan support serta confidence dari masing – masing itemset.
Tahap Penggalian L1 dan L2 Dengan Menggunakan SOTrieIT
SOTrieIT yang digunakan akan melakukan scanning basis data sebanyak 1 (satu) kali. Hal ini berbeda saat kita mencoba melakukan dengan FP –Tree karena pada FP – Tree scanning basis data dilakukan sebanyak 2 (dua) kali. Pada scanning yang dilakukan ini akan dicoba membaca transaksi yang terdapat di dalam basis data. Untuk setiap transaksi akan dibangkitkan semua kemungkinan 1 – itemset dan 2 –itemset dan ditransformasikan kedalam bentuk tree.
Tahap Pemangkasan Item – Item yang Tidak Frequent
Dalam tahap ini kita akan mencoba melakukan seleksi terhadap itemset yang telah terbentuk dari SOTrieIT dengan cara menghilangkan item yang ada dalam transaksi yang tidak frequent. Sebuah item dikatakan tidak frequent jika nilai support count-nya kurang dari batas minimum support yang ditentukan. Pemangkasan ini dilakukan berdasarkan L1 dan L2 untuk setiap transaksi. Untuk itemset yang lebih dari 2 juga akan dilakukan pemangkasan berdasarkan L1 dan L2 sehingga itemset yang tidak frequent juga akan dipangkas. Setelah pemangkasan transaksi T dilakukan maka akan dilakukan pengurutan berdasarkan nilai support count – nya yang terbesar sehingga akan didapatkan Ordered Frequent Items yang telah dipangkas.
Tahap Pembangunan FP – Tree
Pada tahapan ini akan dilakukan pembangunan FP – Tree dengan menggunakan data transaksi T yang telah dipangkas dan diurut berdasarkan nilai support count – nya.
Tahap Penggalian ItemsetFrequent
Tahap ini dilakukan setelah FP – Tree selesai dibangun, penggalian itemset ini menggunakan algoritme FP – Growth pada FP –Tree tersebut.
Pengujian dan Analisis
Hasil dari pengujian yang didapatkan dari algoritme penggalian data dalam penelitian ini akan dikaji.
Analisis dilakukan dengan mencoba melihat hasil yang didapat dari proses penggalian dengan algoritme yang digunakan. Prosses penggalian dilakukan dengan menggunakan lima buah minimum support yaitu 1% - 5 %. Pemilihan nilai minimum support sebesar 1% sampai 5% diharapkan dapat memberikan suatu kesimpulan yang konvergen. Selain itu juga digunakan nilai minimum confidence sebesar 10% dalam pembentukan aturan asosiasinya. Pengambilan nilai minimum confidence sebesar 10% dilakukan supaya hasil itemset yang didapatkan berjumlah cukup banyak sehingga layak untuk dilakukan analisis.
HASIL DAN PEMBAHASAN
Percobaan dibagi menjadi dua buah proses atau tahapan, proses yang pertama dilakukan untuk mendapatkan itemset yang dicari. Kemudian proses berikutnya ialah proses perhitungan support serta confidence-nya untuk memperoleh aturan asosiasi yang lengkap dan terpercaya.
Proses cleaning tidak dilakukan kembali pada penelitian ini, hal ini disebabkan proses tersebut telah dilakukan pada penelitian sebelumnya. Dengan demikain yang dilakukan dalam penelitian ini hanya proses transformasi data transaksi yang berjumlah 23.361 transaksi kedalam format text yang dapat dibaca oleh program. Hal ini perlu dilakukan karena data yang diperoleh masih berupa transaksi biner (Lampiran 1). Data biner akan ditransformasikan kedalam kode tertentu yang merepresentasikan kelompok barang yang dibeli (Lampiran 2).
Tahap Pembentukan Large Itemset
Pembentukan large itemset dilakukan dengan menjalankan algoritme algoritme FOLD – Growth. Algoritme tersebut akan menghasilkan kumpulan itemset dengan batas support tertentu. Pada penelitian ini digunakan 5 (lima) buah nilai minimum support yaitu sebesar 1% sampai 5% dari keseluruhan transaksi yang berjumlah 23.631 transaksi.
Pembentukan Large Itemset dengan Minimum Support Sebesar 1% - 5%
7 (Tabel 4). Hasil penggalian yang lebih
lengkapnya terdapat pada Lampiran 3.
Tabel 4 Large Itemset dengan minsup 1% Jumlah k
–Itemset
FOLD – Growth
1 -
Itemset
23 Item
2 -
Itemset
37 Kombinasi
3 -
Itemset
5 Kombinasi
Hasil percobaan pertama (Tabel 4) memperlihatkan jumlah itemset yang diperoleh dengan algoritme FOLD – Growth. Itemset ini diperoleh dari proses penggalian yang meliputi faktor pemangkasan transaksi – transaksi yang tidak relevan terhadap acuan large 2 - itemset dan large 1 - itemset dan pencarian kombinasi antara item pada algoritma FOLD – Growth. Selain disebabkan karena faktor pemangkasan, faktor pemilihan nilai minimum support juga mempengaruhi pembentukan itemset yang didapatkan.
Dari percobaan pertama terlihat untuk kriteria 1 – itemset item dengan kode 20 (baterai) merupakan item yang paling jarang dibeli dalam keselutuhan transaksi (Lampiran 3). Sementara itu untuk item yang paling banyak dibeli ialah item dengan kode 6 (minuman) dengan nilai support sebesar 7093. Keunggulan FOLD – Growth selain dapat menemukan large 1 – itemset dengan cepat algoritme ini juga dapat menemukan large 2 – itemset dengan cepat. Untuk large 2 – itemset yang didapatkan terlihat bahwa kombinasi susu dan snack merupakan kombinasi terbesar dengan nilai support sebesar 1480 (Lampiran 3).
Setelah percobaan penggalian dengan penentuan minimum support sebesar 1% selesai dilakukan, dilakukan beberapa percobaan lainnya untuk memperkuat hasil analisis yang didapatkan sebelumnya. Percobaan berikutnya ialah proses penggalian dengan menggunakan minimum support sebesar 2% - 5%. Hasil yang didapatkan dari percobaan tersebut teringkas dalam Tabel 5 berikut ini.
Tabel 5 Pembentukan large itemset dengan algoritme FOLD - Growth
No Parameter Minsup
2% 3% 4% 5% 1 1–itemset 20 15 15 13 2 2–itemset 12 5 2 2
3 Total 32 20 17 15
Tabel 5 diatas memperlihatkan hubungan pembentukan large itemset yang dibentuk dari algoritme FOLD – Growth dengan nilai minsup tertentu. Dari tabel tersebut terlihat bahwa hasil akhir yang diperoleh algoritme tersebut ternyata merupakan hasil itemset yang terdiri dari sedikit kombinasi. Hasil ini selanjutnya dijadikan landasan kesimpulan bahwa data transaksi yang digunakan ternyata tidak cukup beragam sehingga hanya menghasilkan kombinasi itemset yang kecil dan relative sedikit.
Berdasarkan kesimpulan diatas, telah dibuktikan bahwa pemangkasan yang dilakukan
oleh FOLD – Growth dengan
mengkombinasikan 1 – itemset serta 2 – itemset dapat diterapkan walaupun terhadap data transaksi yang minim. Penerapan ini dapat dilakukan karena FOLD – Growth menghasilkan itemset yang dibutuhkan dalam penggalian data. Sehingga SOTrieIT dapat dimanfaatkan dalam membantu proses pemangkasan transaksi.
Tahap Pembentukan Aturan Asosiasi
Pembentukan aturan asosiasi diperlukan untuk mengetahui seberapa besar nilai kepercayaan yang didapatkan terhadap suatu kombinasi itemset yang didapatkan dalam proses penggalian. Pada percobaan kali ini nilai minimum confidence yang dipilih ialah sebesar 10% dan 20%.
8 confidence yang diperoleh untuk kombinasi
tersebut sebesar 44,64%. Sedangkan kombinasi kelompok item mie instant permen merupakan kombinasi dengan nilai support terkecil (support : 1,00%; confidence : 10,5%) dari keseluruhan itemset yang dihasilkan. Secara keseluruhan hasil yang diperoleh algoritme tersebut dalam mencari kombinasi dengan nilai minimum confidence sebesar 10% dapat dilihat pada Tabel 6 berikut.
Tabel 6 Hasil aturan asosiasi terbentuk dengan minimum confidence 10% dan minsup 1%
Kriteria FOLD - Growth
Support
terbesar
susu snack (supp : 6,58% conf : 44,64%)
Support
terkecil
Mie instant permen (supp : 1,00% conf: 10,5%)
Asosiasi terbentuk
71 Kombinasi
Tabel 6 di atas memperlihatkan hasil aturan asosiasi yang didapatkan dari keseluruhan itemset dari penggalian pada transaksi yang digunakan. Pemilihan nilai minimum support sebesar 10% ternyata meloloskan hampir semua kombinasi itemset yang didapatkan dari proses penggalian. Oleh karena itu akan dicoba proses pencarian kombinasi – kombinasi dengan nilai minimum confidence sebesar 20%. Percobaan ini dilakukan untuk meningkatkan nilai kepercayaan pengguna terhadap aturan asosiasi yang didapatkan dari proses penggalian yang telah dilakukan sebelumnya. Tabel 7 memperlihatkan hasil aturan asosiasi yang didapatkan dengan penggunaan nilai minimum confidence sebesar 20% dan minimum support sebesar 1%.
Tabel 7 Hasil aturan asosiasi terbentuk dengan minimum confidence 20% dan minsup 1%
Kriteria FOLD - Growth
Support
terbesar
susu snack (supp : 6,58% conf : 44,64%)
Support
terkecil
Pasta gigi lotion (supp : 1,03% conf: 20,58%)
Asosiasi terbentuk
45 Kombinasi
Berdasar pada nilai minimum confidence sebesar 20%, untuk kombinasi dengan nilai minimum support sebesar 1% diperoleh 45 aturan asosiasi. Dengan demikian terdapat 26 set kombinasi yang hilang karena memiliki nilai confidence dibawah 20%.
Selain itu, dalam pembentukan aturan asosiasi ini terlihat bahwa itemset dengan kombinasi susu.permen snack merupakan kombinasi dengan nilai confidence terbesar sebesar 70,44 % dan kombinasi sabun makanan pokok merupakan kombinasi dengan nilai confidence terendah sebesar 10,34%.
Pembentukan aturan asosiasi selanjutnya ialah penggunaan minimum support 2% - 5% dengan minimum confidence 10% (Lampiran 4,5, dan 6). Pada kasus minsup 2% terlihat jumlah kombinasi yang diperoleh berbeda seperti pada hasil penggalian dengan dengan minsup 1%. Hal ini dikarenakan banyak kombinasi yang memiliki nilai minimum support dibawah 2%.
Tabel 8 merupakan rangkuman hasil percobaan yang dilakukan dengan menggunakan hasil itemset yang didapatkan dari algoritme di atas.
Tabel 8 Hasil aturan asosiasi terbentuk dengan minimum confidence 10% dan minsup 2% - 5%
Minsup Kriteria FOLD – Growth
2% Support
terbesar
susu snack (supp : 6,58% conf : 44,64%)
Support
terkecil
Pelengkap roti snack (supp : 2,0% conf: 69,92%)
Asosiasi terbentuk
12 kombinasi
3% Support
terbesar
susu snack (supp : 6,58% conf : 44,64%)
Support
terkecil
snack sabun (supp : 3,22% conf :10,94%)
Asosiasi terbentuk
5 kombinasi
4% Support
terbesar
susu snack (supp : 6,58% conf : 44,64%)
Support
terkecil
minuman snack (supp : 6,26% conf : 20,87)
Asosiasi terbentuk
9
Minsup Kriteria FOLD – Growth
5% Support
terbesar
susu snack (supp : 6,58% conf : 44,64%)
Support
terkecil
minuman snack (supp : 6,26% conf : 20,87)
Asosiasi terbentuk
2 kombinasi
Berdasar pada Tabel 7 dan Tabel 8 memperlihatkan bahwa kombinasi susu snack merupakan kombinasi yang paling banyak terjadi dengan dukungan nilai support 6,58% dan nilai confidence sebesar 44,64%. Sementara kombinasi dengan nilai support terkecil ditemukan pada kombinasi mie instant mie permen (support : 1,00% ; confidence : 10,5%) saat percobaan dengan menggunakan nilai minsup sebesar 1%. Update Transaksi
Seperti yang dijelaskan pada bagian Tinjauan Pustaka, penggunaan algoritme FOLD – Growth dalam proses penggalian data memiliki beberapa kelebihan. Salah satu di antaranya ialah algoritme ini memungkinkan dilakukannya proses update transaksi baru terhadap transaksi yang lama.
Terbatasi oleh jumlah data transaksi yang dimiliki, maka dalam penelitian ini data transaksi yang diperoleh dibagi menjadi 2 (dua) bagian. Bagian pertama merupakan transaksi utama (dataset I) dan bagian selanjutnya ialah transaksi tambahan yang diperoleh dengan mengambil sebanyak 1/3 (sepertiga) bagian dari keseluruhan transaksi pada bagian awal, tengah, dan akhir basis data transaksi (dataset II). Penggalian pada proses update ini dilakukan dengan menggunakan nilai minimum support sebesar 2%.
Proses penggalian dengan dataset I dilakukan dengan menggunakan minimum support sebesar 2% dan didapatkan hasil seperti pada lampiran 5. Selanjutnya setelah proses penggalian dataset I selesai, dilakukan proses update dengan menambahkan dataset II pada sistem dengan nilai minimum support sebesar 2% kembali. Percobaan yang dilakukan menghasilkan kombinasi snack susu (support: 6,58% confidence: 44,64%) merupakan pola kombinasi pembelian yang paling banyak dilakukan.
KESIMPULAN DAN SARAN
Kesimpulan
Hasil yang diperoleh memperlihatkan kekuatan pemangkasan transaksi dalam proses penggalian data. Proses pemangkasan yang dilakukan oleh algoritme FOLD – Growth membuat transaksi menjadi lebih sederhana sehingga FP – Tree yang terbentuk akan menjadi lebih sederhana dan kompak. Dengan demikian pemangkasan yang dilakukan dalam algoritme ini disimpulkan tidak merusak susunan kombinasi yang terjadi dalam dataset yang digunakan.
Penggunaan struktur data SOTrieIT memiliki peran yang cukup penting dalam proses pemangkasan suatu transaksi. Proses pemangkasan dengan menggunakan L2 dan L1 memperlihatkan pengurangan jumlah transaksi dalam basis data yang digunakan. Sehingga saat akan dilakukan penggalian data dengan FP – Growth maka tree yang terbentuk akan menjadi lebih sederhana.
Kombinasi yang terjadi dalam dataset yang dipakai memperlihatkan itemset dengan kombinasi susu snack (support 6,58% ; confidence 44,64%) merupakan kombinasi yang paling banyak dilakukan dalam keseluruhan transaksi dalam database. Selanjutnya itemset dengan kombinasi permen mie instant (support 1% ; confidence 11,76%) merupakan kombinasi terkecil untuk penetapan nilai minimum support sebesar 1%. Untuk penetapan nilai minimum support sebesar 2% kombinasi susu snack masih menjadi kombinasi dengan nilai support terbesar dan kombinasi pelengkap roti snack (support 2% ; confidence 69,92%) merupakan kombinasi dengan nilai support mendekati nilai minsup 2% untuk penggunaan algoritme FP – Growth dan permen minuman (support 2,04% ; confidence : 23,86 %) untuk penggunaan algoritme FOLD – Growth.
Saran
10
DAFTAR PUSTAKA
Han, Jiawei., Pei, Jian., Yin, Yiwen., Mao, Runying. 2000. Mining Frequent Patterns Without Candidate Generation, School of Computing Science. Simon Fraser University.
Larose, Daniel T. 2005. Discovering Knowledge in Data : An Introduction to Data Mining. United States : Willey Publishing.
Soelaiman, Rully., Arini, Ni Made WP. 2006. Analisis Kinerja Algoritme FOLD – Growth dan FP – Growth Pada Penggalian Data Asosiasi[skripsi]. Surabaya : Institut Teknologi Sepuluh November.
Tanjung, Hilmy Q.R. 2004. Penerapan Data Mining Menggunakan Teknik Association Rule pada Data Transaksi Perpustakaan Pusat IPB[skripsi]. Bogor : Departemen Ilmu Komputer, Institut Pertanian Bogor.
Widodo, Slamet. 2004. Penerapan Data Mining dengan Metode Association Rule Untuk Analisis Cross – Market (studi kasus : Toko Sinar Bogor) [skripsi]. Bogor : Departemen Ilmu Komputer, Institut Pertanian Bogor. Woon, Yew – Kwong., Keong, Wee Ng.,
Das, Amitabha. 2002. A Fast Online Dynamic Association Rule Mining. Proc. Second Int’l Conf. Web Information System Enginering, page 278 – 287.
Woon, Yew – Kwong., Keong ,Wee Ng., Lim, E.P. 2004. A Support – Ordered Trie for Fast Frequent Itemset Discovery. IEEE Transaction on Knowledge and Data Engineering, Volume 16, No. 7, page 875 – 879.
Zhao Q, Sourav S. Bhowmick. 2003. Association Rule Mining: A survey, Singapore : Nanyang Technological University.
11
LAMPIRAN
12 Lampiran 1 Contoh Transaksi Biner
Contoh Transaksi Biner T I D 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0 9 0 1 0 0 1 1 0 1 2 0 1 3 0 1 4 0 1 5 0 1 6 0 1 7 0 1 8 0 1 9 0 2 0 0 2 1 0 2 2 0 2 3 0 2 4 0 2 5 0 2 6 0 2 7 0 2 8 0 2 9 0 3 0 0 3 1 0 3 2 0 3 3 0 3 4 0 3 5
1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 6 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
2
13 Lampiran 2 Kode pengelompokan jenis barang
NO_ID Nama
0 mie instant
1 minyak goreng
2 susu
3 kopi
4 makanan pokok
5 permen
6 minuman
7 snack
8 pelengkap roti
9 saus kecap
10 makanan kaleng
11 lotion
12 sabun
13 shampo
14 obat nyamuk
15 pengharum ruangan
16 bumbu dapur
17 tepung
18 susu bayi
19 rokok
20 baterai
21 eskrim
22 sosis
23 perlengkapan komputer
24 obat
25 pasta gigi
26 multivitamin
27 perlengkapan bayi
28 handuk
29 perlengkapan dapur
30 tissue
31 sandal
32 korek
33 pembersih lantai
14 Contoh transaksi yang telah di transformasi
TID ITEM
001 0 4 18
002 0 4
003 21
004 24
005 3
006 3
007 0 1 3 4 9 12 24
008 12
009 3
010 8
011 2
012 19
15 Lampiran 3 Hasil penggalian dengan menggunakan FOLD - Growth dengan minsup 1% dan
mincof sebesar 10%
No ITEM I → ITEM II Support Confidence
1 susu → snack 6.58 44.64
2 snack → susu 6.58 22.39
3 snack → minuman 6.26 21.31
4 minuman → snack 6.26 20.87
5 permen → snack 3.76 44.10
6 snack → permen 3.76 12.80
7 mie instant → snack 3.31 34.68
8 snack → mie instant 3.31 11.26
10 snack → sabun 3.22 10.94
9 sabun → snack 3.22 32.07
11 susu → minuman 2.95 20.07
13 sabun → pasta gigi 2.68 26.71
12 pasta gigi → sabun 2.68 53.64
14 sabun → susu 2.33 23.21
15 kopi → snack 2.19 27.91
16 mie instant → susu 2.05 21.48
17 susu → mie instant 2.05 13.92
18 permen → minuman 2.04 23.86
19 pelengkap roti → snack 2.00 69.92
20 mie instant → sabun 1.95 20.41
21 sabun → mie instant 1.95 19.49
22 mie instant → minuman 1.79 18.78
23 lotion → snack 1.77 29.95
24 pasta gigi → snack 1.76 35.25
26 susu → permen 1.72 11.66
25 permen → susu 1.72 20.14
27 kopi → susu 1.70 21.66
28 susu → kopi 1.70 11.54
29 sabun → minuman 1.68 16.79
31 susu.minuman → snack 1.68 56.65
32 minuman.snack → susu 1.68 26.76
30 susu.snack → minuman 1.68 25.47
34 mie instant → saus & kecap 1.62 16.92
33 saus & kecap → mie instant 1.62 54.88
35 tissue → snack 1.58 31.64
37 mie instant → makanan pokok 1.55 16.21
36 makanan pokok → mie instant 1.55 26.51
38 kopi → minuman 1.51 19.23
16
No ITEM I → ITEM II Support Confidence
40 lotion → sabun 1.49 25.16
41 kopi → sabun 1.43 18.27
42 sabun → kopi 1.43 14.31
43 Susu Bayi → snack 1.36 26.09
44 obat → snack 1.36 24.39
45 pasta gigi → susu 1.30 26.02
46 snack.permen → minuman 1.28 33.97
48 minuman.snack → permen 1.28 20.41
47 permen.minuman → snack 1.28 62.79
50 mie instant → kopi 1.27 13.83
49 kopi → mie instant 1.27 16.16
51 makanan pokok → snack 1.26 21.58
52 sabun.snack → susu 1.24 38.55
53 susu.snack → sabun 1.24 18.84
54 susu.sabun → snack 1.24 53.27
57 mie instant.susu → snack 1.21 59.17
60 susu.permen → snack 1.21 70.44
55 mie instan.snack → susu 1.21 36.65
58 permen.snack → susu 1.21 32.17
56 susu.snack → mie instant 1.21 18.46
59 susu.snack → permen 1.21 18.39
61 eskrim → snack 1.18 27.04
63 sabun → tissue 1.16 11.52
62 tissue → sabun 1.16 23.10
64 lotion → susu 1.10 18.58
66 sabun → makanan pokok 1.04 10.34
65 makanan pokok → sabun 1.04 17.07
67 pasta gigi → lotion 1.03 20.68
68 lotion → pasta gigi 1.03 17.44
69 permen → mie instant 1.00 11.76
70 perlengkapan bayi → snack 1.00 34.10
71 mie instant → permen 1.00 10.50
17 Lampiran 4 Hasil penggalian dengan menggunakan FOLD – Growth dengan minsup 2% dan
mincof sebesar 10%
No ITEM I → ITEM II Support Confidence
1 susu → snack 6.58 44.64
2 snack → susu 6.58 22.39
3 snack → minuman 6.26 21.31
4 minuman → snack 6.26 20.87
5 permen → snack 3.76 44.10
6 snack → permen 3.76 12.80
7 mie instant → snack 3.31 34.68
8 snack → mie instant 3.31 11.26
10 snack → sabun 3.22 10.94
9 sabun → snack 3.22 32.07
11 susu → minuman 2.95 20.07
13 sabun → pasta gigi 2.68 26.71
12 pasta gigi → sabun 2.68 53.64
14 sabun → susu 2.33 23.21
15 kopi → snack 2.19 27.91
16 mie instant → susu 2.05 21.48
17 susu → mie instant 2.05 13.92
18 permen → minuman 2.04 23.86
18 Lampiran 5 Hasil penggalian dengan menggunakan FOLD – Growth dengan minsup 3% dan
mincof sebesar 10%
No ITEM I → ITEM II Support Confidence
1 susu → snack 6.58 44.64
2 snack → susu 6.58 22.39
3 snack → minuman 6.26 21.31
4 minuman → snack 6.26 20.87
5 permen → snack 3.76 44.10
6 snack → permen 3.76 12.80
7 mie instant → snack 3.31 34.68
8 snack → mie instant 3.31 11.26
9 snack → sabun 3.22 10.94
19 Lampiran 6 Hasil penggalian dengan menggunakan FOLD – Growth dengan minsup 4% dan 5%
dengan mincof sebesar 10%
No ITEM I → ITEM II Support Confidence
1 susu → snack 6.58 44.64
2 snack → susu 6.58 22.39
3 snack → minuman 6.26 21.31
20 Lampiran 7 Hasil penggalian dataset I dengan menggunakan FOLD – Growth dengan minsup
2% dan mincof sebesar 10%
No ITEM I → ITEM II Support Confidence
1 snack → minuman 6.32 21.57
2 minuman → snack 6.26 20.91
3 susu → snack 6.27 43.88
4 snack → susu 6.27 21.39
5 permen → snack 3.79 44.44
6 snack → permen 3.79 12.93
7 mie instant → snack 3.31 34.34
8 snack → mie instant 3.31 11.29
9 sabun → snack 3.21 32.45
10 snack → sabun 3.21 10.93
11 susu → minuman 2.85 19.98
12 pasta gigi → sabun 2.58 52.12
13 sabun → pasta gigi 2.58 26.17
14 kopi → snack 2.23 28.18
15 susu → sabun 2.21 15.47
16 sabun → susu 2.21 22.38
17 permen → minuman 2.11 24.69
18 pelengkap roti → snack 2.04 71.08
19 susu → mie instant 2.04 14.24
20 mie instant → susu 2.04 21.12
Hasil update transaksi dataset II dengan menggunakan FOLD – Growth minsup 2% dan mincof sebesar 10%
No ITEM I → ITEM II Support Confidence
1 susu → snack 6.58 44.64
2 snack → susu 6.58 22.39
3 snack → minuman 6.26 21.31
4 minuman → snack 6.26 20.87
5 permen → snack 3.76 44.10
6 snack → permen 3.76 12.80
7 mie instant → snack 3.31 34.68
8 snack → mie instant 3.31 11.26
9 snack → sabun 3.22 10.94
10 sabun → snack 3.22 32.07
11 susu → minuman 2.95 20.07
12 sabun → pasta gigi 2.68 26.71
21
No ITEM I → ITEM II Support Confidence
14 sabun → susu 2.33 23.21
15 kopi → snack 2.19 27.91
16 mie instant → susu 2.05 21.48
17 susu → mie instant 2.05 13.92
18 permen → minuman 2.04 23.86
19 pelengkap roti → snack 2.00 69.92
1
PENGGUNAAN STRUKTUR DATA
SOTrieIT
UNTUK
PEMANGKASAN TRANSAKSI DENGAN
ALGORITME
DATA MINING
FOLD
-
GROWTH
DENY PRASTOWO
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
ii
ABSTRAK
DENY PRASTOWO. Penggunaan Struktur Data SOTrieIT Untuk Pemangkasan Transaksi Dengan Algoritme Data Mining FOLD – Growth. Dibimbing oleh Rindang Karyadin dan Wisnu Ananta Kusuma.
Penelitian ini menggunakan salah satu teknik penggalian data yang dikenal dengan teknik aturan asosiasi (Association Rule) dan menggunakan algoritme FOLD – Growth untuk mengekstrak korelasi antar itemset yang terbentuk. Data yang digunakan dalam penelitian kali ini ialah suatu data transaksi penjualan sebuah toko di daerah kota Bogor.
Kombinasi yang terjadi pada dataset yang dipakai memperlihatkan bahwa itemset dengan kombinasi susu Æ snack (support 6,58% ; confidence 44,64%) merupakan kombinasi yang paling banyak dilakukan dalam keseluruhan transaksi dalam basis data. Selanjutnya itemset dengan kombinasi permen Æ mie instant (support 1% ; confidence 11,76%) merupakan kombinasi terkecil untuk penetapan nilai minimum support sebesar 1%. Sementara itu kombinasi dengan item susu.permen Æ snack merupakan kombinasi itemset dengan nilai confidence tertinggi sebesar 70,44% dan kombinasi item permen Æ mie instant merupakan kombinasi dengan nilai confidence terkecil. Dari penelitian ini diperoleh juga suatu kesimpulan bahwa pemangkasan menggunakan large 2 – itemset tidak merubah atau merusak kombinasi yang terjadi dalam database transaksi yang digunakan. Dengan demikian pemangkasan dengan acuan large 1 – 2 itemset dapat dilakukan.
1
PENDAHULUAN
Latar Belakang
Begitu banyaknya fungsionalitas dalam penggalian data terkadang membuat kita harus memilih secara seksama. Pemilihan fungsionalitas yang tepat dalam melakukan suatu penggalian data menentukan keefektifan serta keefisienan waktu yang dibutuhkan dalam mengekstrak data tersebut.
Penggalian data dengan pola asosiasi merupakan salah satu pilihan fungsionalitas yang dapat kita cermati karena kegunaanya yang dapat diterapkan pada berbagai macam situasi seperti e-commerce, klasifikasi, pengelompokan dan lain sebagainya. Dalam penggalian data dengan pola asosiasi ditemukan atribut – atribut yang menunjukkan kondisi di mana atribut – atribut tersebut muncul secara bersama – sama dalam suatu data yang diberikan. Penggalian data dengan pola asosiasi ini lebih sering digunakan dalam pengolahan dan analisis data transaksi, selanjutnya lebih dikenal dengan nama market – basket analysis. Ada beberapa algoritme yang dapat digunakan untuk memperbaiki kinerja penggalian data dengan pola asosiasi, namun algoritme tersebut hanya dapat menangani kondisi tertentu saja dan memiliki kekurangan dalam kondisi lainnya. Sementara itu dalam penggalian data keefektifan serta keefisienan sumber daya yang digunakan sangat diperlukan.
Pada penelitian yang dilakukan oleh Woon et al. (2004), penggabungan dua buah algoritme FP – GROWTH dengan FOLDARM pada metode assosiasi menghasilkan sebuah algoritme baru (FOLD - Growth) yang memiliki kinerja yang lebih baik. Algoritme ini menggunakan struktur data SOTrieIT. Kinerja dari algoritme tersebut menghasilkan proses yang lebih fleksibel dan efisien jika dibandingkan dengan algoritme – algoritme aturan asosisiasi lainnya seperti Apriori dan FP - Growth. Dengan demikian penggunaan algoritme ini diharapkan dapat memperbaiki kinerja algoritme sebelumnya dan dapat diimplementasikan pada kasus penggalian data transaksi berdasarkan market - basket.
Tujuan
Penelitian ini bertujuan untuk menerapkan pemangkasan transaksi dengan
menggunakan struktur data SOTrieIT serta algoritme FOLD - Growth.
Ruang Lingkup
Ruang lingkup dari penelitian ini adalah : 1 Penggunaan metode association rule
untuk melakukan proses update menggunakan algoritme FOLD – Growth hanya terbatas pada penambahan data transaksi.
2 Pembahasan meliputi analisis hasil penggalian yang meliputi confidence serta support suatu item terhadap item yang lain.
Manfaat
Diharapkan dengan adanya penelitian ini, maka dapat menjadi sebuah referensi terhadap pemilihan algoritme dalam metode association rule. Penelitian ini juga memberikan sedikit gambaran mengenai proses update suatu transaksi saat dilakukan penggalian data.
TINJAUAN PUSTAKA
Penggalian Data (Data mining)
Data mining adalah proses pencarian suatu korelasi - korelasi baru suatu data yang mempunyai makna, pola dan tren tertentu dengan cara menyelidiki atau meneliti suatu data yang berukuran besar yang terdapat di dalam suatu gudang data dengan menggunakan teknologi pengenalan pola serta teknik statistik dan matematika (Larose 2005).
Pola Asosiasi (Association Rule)
Pola asosiasi ialah salah satu teknik dalam penggalian data yang bertujuan untuk mengekstrak korelasi yang menarik, pola – pola yang sering muncul, hubungan kumpulan item di dalam suatu basis data atau gudang data yang berisi record transaksi (Zhao et al. 2003).
Terdapat dua hal utama yang melandasi teknik ini yaitu support dan confidence (Zhao et al. 2003). Support dari suatu association rule didefinisikan sebagai persentase dari record X Y terhadap seluruh jumlah transaksi di dalam basis data. Support dapat dihitung dengan menerapkan rumus sebagai berikut :
Support (XY) =
tion rOfTransac TotalNumbe
Y SupportOfX
1
PENDAHULUAN
Latar Belakang
Begitu banyaknya fungsionalitas dalam penggalian data terkadang membuat kita harus memilih secara seksama. Pemilihan fungsionalitas yang tepat dalam melakukan suatu penggalian data menentukan keefektifan serta keefisienan waktu yang dibutuhkan dalam mengekstrak data tersebut.
Penggalian data dengan pola asosiasi merupakan salah satu pilihan fungsionalitas yang dapat kita cermati karena kegunaanya yang dapat diterapkan pada berbagai macam situasi seperti e-commerce, klasifikasi, pengelompokan dan lain sebagainya. Dalam penggalian data dengan pola asosiasi ditemukan atribut – atribut yang menunjukkan kondisi di mana atribut – atribut tersebut muncul secara bersama – sama dalam suatu data yang diberikan. Penggalian data dengan pola asosiasi ini lebih sering digunakan dalam pengolahan dan analisis data transaksi, selanjutnya lebih dikenal dengan nama market – basket analysis. Ada beberapa algoritme yang dapat digunakan untuk memperbaiki kinerja penggalian data dengan pola asosiasi, namun algoritme tersebut hanya dapat menangani kondisi tertentu saja dan memiliki kekurangan dalam kondisi lainnya. Sementara itu dalam penggalian data keefektifan serta keefisienan sumber daya yang digunakan sangat diperlukan.
Pada penelitian yang dilakukan oleh Woon et al. (2004), penggabungan dua buah algoritme FP – GROWTH dengan FOLDARM pada metode assosiasi menghasilkan sebuah algoritme baru (FOLD - Growth) yang memiliki kinerja yang lebih baik. Algoritme ini menggunakan struktur data SOTrieIT. Kinerja dari algoritme tersebut menghasilkan proses yang lebih fleksibel dan efisien jika dibandingkan dengan algoritme – algoritme aturan asosisiasi lainnya seperti Apriori dan FP - Growth. Dengan demikian penggunaan algoritme ini diharapkan dapat memperbaiki kinerja algoritme sebelumnya dan dapat diimplementasikan pada kasus penggalian data transaksi berdasarkan market - basket.
Tujuan
Penelitian ini bertujuan untuk menerapkan pemangkasan transaksi dengan
menggunakan struktur data SOTrieIT serta algoritme FOLD - Growth.
Ruang Lingkup
Ruang lingkup dari penelitian ini adalah : 1 Penggunaan metode association rule
untuk melakukan proses update menggunakan algoritme FOLD – Growth hanya terbatas pada penambahan data transaksi.
2 Pembahasan meliputi analisis hasil penggalian yang meliputi confidence serta support suatu item terhadap item yang lain.
Manfaat
Diharapkan dengan adanya penelitian ini, maka dapat menjadi sebuah referensi terhadap pemilihan algoritme dalam metode association rule. Penelitian ini juga memberikan sedikit gambaran mengenai proses update suatu transaksi saat dilakukan penggalian data.
TINJAUAN PUSTAKA
Penggalian Data (Data mining)
Data mining adalah proses pencarian suatu korelasi - korelasi baru suatu data yang mempunyai makna, pola dan tren tertentu dengan cara menyelidiki atau meneliti suatu data yang berukuran besar yang terdapat di dalam suatu gudang data dengan menggunakan teknologi pengenalan pola serta teknik statistik dan matematika (Larose 2005).
Pola Asosiasi (Association Rule)
Pola asosiasi ialah salah satu teknik dalam penggalian data yang bertujuan untuk mengekstrak korelasi yang menarik, pola – pola yang sering muncul, hubungan kumpulan item di dalam suatu basis data atau gudang data yang berisi record transaksi (Zhao et al. 2003).
Terdapat dua hal utama yang melandasi teknik ini yaitu support dan confidence (Zhao et al. 2003). Support dari suatu association rule didefinisikan sebagai persentase dari record X Y terhadap seluruh jumlah transaksi di dalam basis data. Support dapat dihitung dengan menerapkan rumus sebagai berikut :
Support (XY) =
tion rOfTransac TotalNumbe
Y SupportOfX
2 transaksi yang mengandung X Y terhadap
jumlah total transaksi yang mengandung X. Confidence dapat dihitung dengan menggunakan rumus sebagai berikut :
Confidence (X|Y) =
Support(X) ) Support(XY
FP – Tree
FP – Tree atau Frequent Pattern Tree merupakan suatu algoritme yang dirancang untuk mengatasi kendala bottleneck pada proses penggalian data dengan algoritme Apriori (Zhao et al. 2003). Definisi dari FP – Tree dijelaskan sebagai berikut (Han et al. 2000) :
• Terdiri atas sebuah root dengan label “null”, sekumpulan subtree yang menjadi child dari root dan sebuah tabel frequent header.
• Setiap node dalam FP – Tree mengandung tiga informasi penting, yaitu : label item, menginformasikan jenis item yang terdapat pada node tersebut, support count, merepresentasikan jumlah lintasan transaksi yang melalui simpul tersebut dan pointer penghubung yang menghubungkan label item yang sama antar lintasan dalam FP – Tree yang ditandai dengan garis putus – putus.
• Isi dari setiap baris dalam tabel frequent – header terdiri atas label item dan head of nodelink yang menunjuk ke node pertama dalam FP – Tree yang menyimpan label item tersebut.
[image:34.612.327.511.97.393.2]FP – Tree merupakan suatu struktur data berbentuk tree yang menyimpan item – item yang frequent atau nilainya lebih besar dari minimum support yang diberikan, untuk memperjelas algoritme pembentukan FP - Tree maka akan diberikan sebuah contoh pembangunan FP – Tree yang mengacu pada basis data D dengan nilai minimum support sebesar 3 (60%) sebagai berikut :
Tabel 1 Transaksi dalam database D
Proses scanning pertama akan menghasilkan large 1 – itemset yang selanjutnya akan digunakan sebagai dasar dalam pengurutan secara menurun dari transaksi pada basis data D. Hasil 1 – itemset yang didapatkan dapat seperti berikut ini : {(sabun : 4), (snack : 4), (rokok : 3), (mie : 3), (shampoo : 3), (minuman : 3) } (angka setelah karakter “:” mengindikasikan jumlah count - nya).
Gambar 1 sampai 3 berikut akan mengilustrasikan pembangunan FP – Tree setelah pembacaan transaksi 100, 200, dan keseluruhan FP – Tree yang terbentuk.
Sabun
Snack
Rokok
Mie
Minum
Gambar 1 FP – Tree pembacaan transaksi 100.
TID Item Yang
Dibeli
Item Terurut
100 sabun, rokok,
snack, buah, daging, beras, mie, minuman
sabun, snack, rokok, mie, minuman
200 rokok, shampo,
snack, sabun, pulpen, mie, tisue
sabun, snack, rokok, mie,shampoo
300 shampo, sabun,
kamper, minyak, tisue
sabun, shampoo
400 shampo, snack,
kabel, lampu, minuman
snack, shampo, minuman
500 rokok, sabun,
snack, kertas, pulpen, minuman, mie, bihun
sabun, snack, rokok, mie, minuman
null
Sabun : 1
Snack : 1
Rokok : 1
Mie : 1
[image:34.612.317.517.460.654.2]3 Sabun
Snack
Rokok
Mie
Sampo
Minum
Gambar 2 FP-Tree pembacaan transaksi 200.
Sabun
Snack
Rokok
Mie
Sampo
Minum
Gambar 3 FP – Tree utuh.
Contoh di atas merupakan salah satu ilustrasi pembentukan FP – Tree dengan penggunaan nilai minimum support sebesar 3 atau 60%. Algoritme pembentukan FP – Tree ini terdiri dari dua langkah utama (Han et al. 2000), yaitu :
1. Proses scanning basis data untuk menemukan 1 – itemset (L), kemudian itemset L digunakan untuk mengurutkan transaksi
terhadap item yang frequent secara menurun.
2. Proses pembuatan tree yang diawali dengan pembuatan ROOT (T). Kemudian menjalankan fungsi insert_tree([p|P],T), di mana p adalah elemen pertama dan P merupakan sisa elemen yang ada dalam daftar transaksi.
Fungsi insert_tree([p|P],T) dijalankan sebagai berikut: Jika T mempunyai anak N dan (N.itemName = p.itemName), maka naikan counter N sebesar 1. Selainnya buat node N baru dan buat link ke parent. Serta node-nya di kaitkan ke node – node yang mempunya label yang sama. Jika P tidak kosong, panggil fungsi insert_tree(P,N) secara rekursif.
Algoritme FP-Growth
Algoritme FP – Growth merupakan salah satu algoritme penggalian data yang akan membangkitkan suatu struktur data Tree atau yang disebut dengan FP – Tree. Algoritme ini melibatkan tiga langkah utama (Han et al. 2000), yaitu :
a Tahap pembangkitan kondisional pattern base.
b Tahap pembangkitan kondisional FP – Tree.
[image:35.612.103.313.85.725.2]c Tahap pencarian frequent itemset. Sehingga jika FP –Tree pada Gambar 3 menjadi masukkan untuk algoritme FP – Growth, maka akan menghasilkan frequent item sebagai berikut :
Tabel 2 Frequent Itemset Terbentuk
Item Frequent Item
Shampo Shampo
Minuman Minuman / {snack |
minuman }
[image:35.612.325.506.518.650.2]Mie Mie / {sabun snack rokok
| mie}
Rokok Rokok / {sabun snack |
rokok }
Snack Snack / { sabun | snack}
Sabun Sabun
SOTrieIT
SOTrieIT atau Sub Ordered Trie Itemset merupakan suatu tree yang dibangun dengan null
Sabun : 2
Snack : 2
Rokok : 2
Mie : 2
Minum : 1 Sampo : 1
Head Table
4 mengekstrak 1 – 2 itemset dari setiap
transaksi (Zhao et al. 2003). Prinsip penelusuran dalam SOTrieIT memiliki pendekatan yang sama dengan pencarian dengan metode DFS. Cara penelusuran dilakukan dengan scanning dari node pertama yang paling kiri. Jika support count dari satu item di level ke dua tidak mencukupi dari minimum support maka proses berhenti dan pindah ke level atas lainnya. Jika nilai support count pada level atas sudah tidak lagi mencukupi nilai minimum support, maka proses berhenti dan tree terbentuk.
Algoritma pembentukan SOTrieIT bekerja dengan melakukan ekstrasi 1 – 2 Itemset dari setiap transaksi yang dibaca. Tahapan pengerjaan dari algoritma ini secara singkat dijelaskan sebagai berikut (Woon et al. 2002):
1. Menemukan semua 1 - 2 itemset dari setiap transaksi
2. Menambahkan node baru pada Trie jika node dengan nilai count ialah 1 (satu) jika node tersebut tidak terdapat pada level 1 dan level 2, jika node sudah terdapat dalam Trie maka dilakukan penambahan nilai count di node tersebut dan dilakukan rebalancing antar node dalam Trie tersebut.
Untuk memperjelas uraian di atas akan diilustrasikan pembangunan SOTrieIT dengan basis data D sebagai berikut (Woon et al. 2002) :
Tabel 3 Contoh transaksi dalam basisdata D
TID Items
100 A C
200 B C
300 A B C
400 A B C D
Setelah diperoleh transaksinya, selanjutnya akan dibaca transaksi tersebut dan diekstraksi 1 – 2 itemset-nya. Pada saat transaksi 100 dibaca maka akan diekstrak 1 – itemset : {A, C} dan 2 – itemset : {AC} (Gambar 4 a). Selanjutnya saat pembacaan transaksi 200, sistem akan mengekstrak 1 itemsetnya : {B,