Publication Repository Dinatek FP Max

ANALISA PENCARIAN FREQUENT ITEMSETS MENGGUNAKAN
ALGORITMA FP-MAX
Suhatati Tjandra
Dosen Teknik Informatika Sekolah Tinggi Teknik Surabaya
e-mail : [email protected]

ABSTRAK
Association rule mining merupakan sub bab dari data mining yang bertujuan untuk mencari
frequent itemset dan menemukan hubungan di antara item-item dalam suatu database. Tujuan
utama dari association rule mining adalah menemukan frequent itemset dan men-generate
association rule. Karena banyaknya jumlah frequent itemset yang dihasilkan jika menggunakan
frequent itemset mining, maka dikembangkan maximal frequent itemset mining yang hanya
menghasilkan frequent itemset yang maximal. Sebuah frequent itemset disebut maximal jika
tidak ada frequent itemset lain yang merupakan superset dari itemset tersebut. Algoritma FPMAX menggunakan dasar struktur tree yang dikenal dengan FP-Tree.
Kata kunci : Data Mining, FP-Max, FP-Tree, Itemset

ABSTRACT

Association rule mining is a part of data mining that has purposes to look for frequent
itemsets and to find the relation among items in a database. The main purposes of association
rule mining are to find frequent itemsets and to generate association rule. There are many

frequent itemsets being resulted when using frequent itemset mining, then maximal frequent
itemset mining is developed, where it only results maximal frequent itemset. A frequent itemset
is maximal if there is no other frequent itemset that is a superset for it. FP-MAX use the tree
structures which called FP-Tree.
Keywords : Data Mining, FP-Max, FP-Tree, Itemset

PENDAHULUAN

ditekankan untuk mencari dan menemukan
pengetahuan yang tidak hanya akurat, tetapi juga
dapat dipahami oleh user. Comprehensibility
(tingkat pemahaman) sangatlah penting ketika
pengetahuan yang ditemukan akan digunakan
sebagai bahan pertimbangan dalam pengambilan
suatu keputusan. Jika pengetahuan yang ditemukan
tidak dapat dipahami oleh user, user tidak
mendapat gambaran mengenai apa yang sedang
terjadi. Pada kasus ini, sangat besar kemungkinan
user tidak mempercayai pengetahuan yang
didapatkan dari hasil data mining sebagai bahan

pertimbangan dalam pengambilan keputusan. Hal
ini akan berakibat pada pengambilan keputusan
yang buruk atau kurang baik.
Terdapat beberapa langkah dalam data mining,
yaitu business object determination, data

Perkembangan teknologi informasi yang cukup
pesat menyebabkan penyimpanan dan pengolahan
data menjadi suatu hal yang cukup vital. Data yang
telah tersimpan dalam database tidak dapat
digunakan secara maksimal tanpa diamati lebih
dalam, mengenai fakta-fakta yang tersimpan dalam
data tersebut. Data mining, bertujuan untuk
mencari pengetahuan atau fakta-fakta yang
tersimpan dalam data, oleh karenanya data mining
ini terus dikembangkan dan diteliti.
Data mining bukanlah suatu bidang yang
berdiri sendiri, melainkan terdiri dari gabungan
beberapa disiplin ilmu, seperti halnya machine
learning, statistika, dan database. Tidak seperti

halnya classical statistic, pada data mining, lebih
1

preparation (data selection, data preprocessing),
data transformation, data mining, dan analisis of
knowledge. Setiap langkah harus diterapkan dan
harus diselesaikan terlebih dahulu untuk mencapai
tahap atau langkah berikutnya. Tahapan pada data
mining merupakan langkah yang menunjukkan
kecerdasan sistem komputer dalam mengambil
pengetahuan atau keputusan.

Frequent Itemset
Frequent itemset mining adalah algoritma yang
digunakan untuk mencari frequent itemset.
Frequent itemset mining dapat diklasikasifikan
menjadi tiga kelompok yaitu: algoritma mining
Frequent Itemset (FI), algoritma mining Frequent
Closed Itemset (FCI), dan algoritma mining
Maximal Frequent Itemset (MFI). Dimana FCI

merupakan subset dari FI dan MFI merupakan
subset dari FCI dan FI. ( MFI  FCI  FI ).
Misalkan I = { 1, 2, 3, …m } merupakan kumpulan
item dalam sebuah database dan T = { 1, 2, 3, …n
} merupakan kumpulan nomor transaksi (tids).
Maka sebuah itemset X dapat didefinisikan sebagai
X  I dan sebuah tidset Y dapat didefinisikan
sebagai Y  T. Support sebuah itemset X adalah
jumlah transaksi dimana terdapat item X
didefinisikan sebagai  (X). Sebuah itemset X
disebut frequent itemset apabila support X lebih
besar atau sama dengan nilai minimum support
yang dispesifikasikan (  (X)  min_supp ).
Minimum support adalah suatu nilai yang
menentukan sebuah itemset frequent atau tidak,
dimana minimum support ditentukan oleh user.
Misalkan nilai minimum support adalah 40% dan
jumlah transaksi dalam database ada lima
transaksi. Maka suatu itemset dikatakan frequent
bila itemset tersebut minimal terdapat pada dua

transaksi ( 40% * 5 = 2 ).

Maximal Frequent Itemset
Sebuah frequent itemset X disebut bersifat
maximal apabila tidak ada frequent itemset lain
yang merupakan superset dari itemset X. MFI ini
dikembangkan untuk mengatasi kelemahan dari
association rule mining yaitu banyaknya frequent
itemset yang dihasilkan apabila nilai support yang
diberikan kecil atau rendah.
Akan tetapi jumlah MFI yang lebih sedikit ini tidak
mengurangi informasi yang seharusnya diperoleh.
Dengan adanya MFI maka diharapkan rule yang
dihasilkan sedikit tapi dapat memberikan informasi
yang diinginkan.

2

Generate Association Rule
Setelah mengetahui frequent itemset, maka

langkah selanjutnya adalah menghasilkan rule
yang confident. Sebuah rule dapat dinyatakan
dalam ekspresi
X’  X – X’ untuk semua
frequent itemset X, dimana X '  X dan X  {} .
Sebuah rule disebut confident rule apabila nilai
confident dari rule tersebut lebih besar atau sama
dengan
nilai
minimum
confident
yang
dispesifikasikan ( p  minconf). Nilai confident ( p
) dihitung dengan rumus p =  ( X ) /  ( X ' ) atau
dapat dikatakan nilai confident ( p ) adalah nilai
support X dibagi nilai support X’.
Untuk sebuah itemset X dengan panjang k dapat
dihasilkan rule sebanyak 2k-2. Dengan kata lain,
sebuah rule dihasilkan dengan mengkombinasikan
item-item penyusun rule tersebut.


FP-Tree
Pembuatan FP-Tree dikerjakan dalam dua fase,
dimana dalam setiap fase diperlukan satu kali
membaca database. Fase yang pertama membaca
database untuk mengenali frequent 1-itemset.
Tujuannya adalah untuk menghasilkan order list
dari frequent itemset yang dapat digunakan ketika
membuat tree pada fase kedua.
Tabel 1
Dataset
Tid
Item
1
ABCDE
2
ABC
3
ABCE
4

ABDE
5
ABCE
6
BCDE
7
BCE
8
BCD
Setelah menghitung item yang muncul dalam
transaksi, infrequent item dengan support yang
lebih kecil dari support threshold akan dipisahkan
dan frequent item yang tersisa di urutkan
berdasarkan frekuensinya. List diatur dalam tabel,
yang disebut tabel header, dimana item dan
respective support disimpan dengan pointer untuk
first occurrence. Sebenarnya frequent pattern tree
dibuat pada fase kedua. Fase ini membaca database
untuk yang kedua kalinya dimana untuk setiap
transaksi dibaca, hanya kumpulan frequent item

yang terdapat dalam header table yang dipilih dan
di urutkan secara descending sesuai frekuensinya.

Transaksi item yang sudah diutkan digunakan
untuk membuat FP-Tree.
Setiap sub-transaksi yang sudah di urutkan
dibandingkan dengan prefix tree mulai dari root.
Jika ada kesesuaian di antara prefix tree dan path
dalam tree yang dimulai dari root, support dalam
node yang sesuai ditambah satu. Sebaliknya node
yang baru akan ditambahkan untuk item dalam
suffix dari transaksi untuk melanjutkan path yang
baru dimana tiap node baru tersebut nilai
supportnya di inisialisasi satu. Selama proses
penambahan node baru pada FP-Tree, link di buat
di antara node dalam tree dan di masukkan ke
dalam tabel header. Tabel header memegang satu
pointer per item yaitu pointer untuk kejadian
pertama dari item tersebut dalam struktur data FPTree. FP-Tree yang digunakan adalah FP-Tree
yang sudah dimodifikasi yaitu linknya bidirectional [2]. Gambar 1 merupakan contoh FPTree, dimana dataset yang digunakan adalah

dataset pada tabel 1.

pengembangan algoritma FP-MAX ini. Algoritma
FP-MAX ini sama seperti algoritma FP-Growth
prosesnya rekursif. Pada proses awal yang
dilakukan algoritma FP-MAX yaitu mencari
frequent 1 itemset dengan menggunakan FP-Tree,
dari pembacaan pertama suatu dataset atau
transaksi, dari FP-Tree yang sudah terbetuk
kemudian dicari conditional FP-Treenya setelah itu
baru dibentuk MFI-Treenya. Dari MFI-Tree baru
bisa didapatkan maximal frequent itemsetnya.

Langkah langkah yang di lakukan dalam
algoritma FP-MAX dapat dilihat pada gambar
2.

Gambar 2
Blok Diagram FP-MAX
Gambar 1

FP-Tree

Algoritma FP-MAX
Algoritma FP-MAX ini digunakan untuk mencari
semua maximal frequent itemsets di dalam sebuah
transaksi atau dalam sebuah dataset. Maximal
Frequent itemset ini digunakan untuk memperkecil
jumlah informasi yang diperoleh dari hasil mining
suatu dataset atau transaksi yang besar tanpa
mengurangi informasi yang di dapatkan dari proses
mining tersebut.
Sebuah frequent itemset X disebut bersifat
maximal apabila tidak ada frequent itemset lain
yang merupakan superset dari itemset X. MFI ini
dikembangkan untuk mengatasi kelemahan dari
association rule mining yaitu banyaknya frequent
itemset yang dihasilkan apabila nilai support yang
diberikan kecil atau rendah.
Algoritma FP-MAX ini merupakan pengembangan
dari algoritma FP-Growth. Algortima FP-Growth
merupakan dasar yang digunakan dalam

Proses yang dilakukan dalam algoritma FP-MAX
sampai mendapatkan maximal frequent itemsets:
1. Persiapan dataset yang akan dimining,
sebelum proses mining dataset di olah
dengan
data
preparation,
agar
pengetahuan yang didapatkan dari dataset
sesuai dengan kebutuhan.
2. Pembentukan FP-Tree, dari dataset yang
sudah diolah kemudian dibentuk FPTreenya, sehingga mendapatkan frequent 1
itemset.
3. Pencarian Conditional Pattern Base dari
FP-Tree yang terbentuk dengan menelusuri
semua cabang dari FP-Tree.
4. Pembentukan Conditional FP-Tree, dari
Conditional Pattern Base yang sudah di
dapatkan dari FP-Tree diolah lebih lanjut
untuk mendapatkan Conditional FP-Tree.
5. Setelah mendapatkan Conditional FP-Tree
maka dapat dibentuk menjadi Tree lagi
yaitu MFI-Tree.
6. Pencarian MFI dari MFI-Tree dilakukan
pada semua cabang cabang MFI-Tree.

3

Proses yang dilakukan algoritma FP-Max adalah
mengolah FP-Tree yang merupakan masukan awal,
kemudian mencari Conditional Frequent Pattern
Base, dari Conditional Frequent Pattern Base
kemudian dibentuk Conditional FP-Treenya, dari
Conditional FP-Tree kemudian barulah dibetuk
Maximal Frequent Itemset Tree (MFI-Tree).
MFI-Tree yang terbentuk kemudian dicari Pattern patternnya, pattern yang terbentuk dari MFI-Tree
itulah yang menjadi Maximal Frequent Itemset.
FP-Tree
mempunyai
header
table
yang
berhubungan dengan Treenya. Item dan jumlah
itemnya ditampung pada header table yang
diurutkan berdasarkan jumlahnya. Header table
pada FP-Tree ini dihubungkan dengan semua node
yang ada pada FP-Tree. Dibandingkan dengan
algoritma Apriori yang membutuhkan proses scan
database berulang ulang, algoritma FP-Growth
hanya membutuhkan dua kali scan dataset untuk
proses mining semua frequent itemset. Proses scan
pertama untuk mencari semua frequent item yang
ada pada dataset, proses scan yang kedua untuk
membentuk struktur FP-Tree.
Setelah FP-tree terbentuk maka proses untuk
memining dataset dapat diwakilkan dengan hanya
memining FP-Treenya saja. FP-Tree yang
terbentuk kemudian dicari Conditional Pattern
Basenya. Proses pencarian Conditional Pattern
Base dari FP-Tree gambar 1 adalah:
1.

Pembentukan Conditional Pattern base
untuk header tabel FP-Tree. Item D pada
header tabel dicari linknya ke semua
cabang dari FP-Tree, pencarian ini
dilakukan untuk semua cabang pada FPTree yang mempunyai item D. Dengan
proses yang dilakukan pada gambar 3
maka didapatkan conditional pattern
basenya adalah (BCEAD : 1).

dapat dilakukan dengan melakukan
penelusuran dari cabang FP-Tree yang
pertama. Proses pencarian item D kedua
dari FP-Tree didapatkan conditional
pattern basenya adalah (BCED : 1).

Gambar 4
Langkah 2 Pencarian Conditonal Pattern
3. Proses pencarian selanjutnya adalah mencari
cabang dari FP-Tree yang mempunyai item D
yang lain, proses ini dapat dilakukan dengan
melakukan penelusuran dari cabang FP-Tree
yang kedua. proses pencarian item D ketiga
dari FP-Tree didapatkan conditional pattern
basenya adalah (BCD : 1).

Gambar 5

Langkah 3 Pencarian Conditonal Pattern
4. Proses pencarian item D pada cabang terakhir
FP-Tree didapatkan conditional pattern
basenya adalah (BEAD : 1).

Gambar 3
Langkah 1 Pencarian Conditonal Pattern
2.

4

Proses pencarian selanjutnya adalah
mencari cabang dari FP-Tree yang
mempunyai item D yang lain, proses ini

Gambar 6

Langkah 4 Pencarian Conditonal Pattern

5. Proses selanjutnya adalah mencari conditional
pattern base untuk item A, E, C, B, langkah
yang dilakukan sama dengan langkah
pencarian conditional pattern base untuk item
D. Conditional pattern base untuk item A
adalah (BEA : 1), (BCA : 1), (BCEA : 3).
Conditional pattern base untuk item E adalah
(BE : 1), (BCE : 5). Conditional pattern base
untuk item C adalah (BC : 7). Conditional
pattern base untuk item B adalah (-), item B
tidak mempunyai conditional pattern base
karena setelah item B adalah Root.

Tabel 2
Conditional Pattern Base
Item
D
A
E
C
B

Conditional Pattern base
(BEAD : 1), (BCD: 1), (BCEAD : 1),
(BCED : 1)
(BEA : 1), (BCA : 1), (BCEA : 3).
(BE : 1), (BCE : 5)
(BC : 7).
(-)

Conditional FP-Tree dibentuk setelah Conditional
Pattern base dari semua item pada header table FPTree didapatkan. Conditional FP-Tree dibuat
dengan tujuan untuk proses pembentukan MFITree. Langkah langkah untuk mendapatkan
Conditional FP-Tree dengan minimum support 4
adalah sebagai berikut :
1. Conditional FP-Tree item D, cek apakah
pattern pattern yang ada pada conditional
pattern base merupakan subset atau bukan ,
jika merupakan subset dari pattern yang lain
maka di kelompokkan menjadi satu, pada
Tabel 5.1 item D mempunyai Conditional
Pattern (BEAD : 1), (BCD: 1), (BCED : 1),
karena semuanya merupakan subset dari
pattern (BCEAD : 1), maka Conditional FPTreenya akan menjadi (B : 4, D : 4).
2. Conditional FP-Tree item A, cek apakah
pattern pattern yang ada pada conditional
pattern base merupakan subset atau bukan ,
jika merupakan subset dari pattern yang lain
maka di kelompokkan menjadi satu, pada
Tabel 5.1 item A mempunyai Conditional
Pattern (BEA : 1), (BCA : 1). Karena
semuanya merupakan subset dari pattern
(BCEA : 3), conditional FP-Tree yang
terbentuk adalah (B : 5, A : 5, C : 4, E : 4).

3. Conditional FP-Tree item E, cek apakah
pattern pattern yang ada pada conditional
pattern base merupakan subset atau bukan ,
jika merupakan subset dari pattern yang lain
maka di kelompokkan menjadi satu, pada
Tabel 5.1 item E mempunyai Conditional
Pattern (BE : 1). Karena semuanya merupakan
subset dari pattern (BCE : 5), conditional FPTree yang terbentuk adalah (B : 6, E : 6, C : 5).
4. Conditional FP-Tree item C karena item C
hanya mempunyai sebuah pattern pada
Conditional Pattern Basenya dan pattern itu
memenuhi minimum support yang ditentukan
maka maka Conditional FP-Treenya yang
dihasilkan dari Conditional Pattern Basennya
adalah (B : 7, C : 7).
Semua Conditional FP-Tree yang terbentuk di
simpan ke dalam sebuah List Conditional FP-Tree,
dari proses di atas maka didapatkan semua
Conditional FP-Tree, Tabel 3 merupakan isi dari
Conditional FP-Tree.
Tabel 3
Conditional FP-Tree
Item
D

A
E
C
B

Conditional
Pattern Base
(BEAD : 1),
(BCD: 1),
(BCEAD : 1),
(BCED : 1)
(BEA : 1),
(BCA : 1),
(BCEA : 3).
(BE : 1),
(BCE : 5)
(BC : 7).
(-)

Conditional
FP-Tree
(B : 4, D : 4).

(B : 5, A : 5,
C : 4, E : 4)
(B : 6, E : 6,
C : 5)
(B : 7, C : 7)
(-)

Setelah
semua
proses
pencarian
Conditional FP-Tree selesai dilakukan maka proses
selanjutnya adalah proses mining untuk
mendapatkan (maximal frequent itemset) MFI dari
semua conditional FP-Tree yang terbentuk.
Maximal Frequent itemset (MFI) menampilkan
semua maximal elemen yang ada pada kumpulan
pattern pattern pada dataset. Jadi frequent itemset
bukan merupakan subset dari maximal frequent
itemset (MFI), stuktur tree baru yang digunakan
untuk melakukan pengecekan subset secara lebih
efisien yaitu stuktur MFI-Tree (Maximal Frequent
Itemset Tree). MFI-Tree digunakan untuk
menampung semua maximal frequent itemset yang
ditemukan dari dataset.

5

Dengan menggunakan struktur Maximal Frequent
itemset maka tidak diperlukan pengecekan lagi
pada Conditional FP-Tree apakah pattern tersebut
merupakan subset dari pattern yang lainnya, karena
dengan struktur tree, pattern yang sama tidak
dibentuk node yang baru, hanya pattern yang tidak
sama yang dibentuk node baru pada tree.
Maximal Frequent Itemset tree (MFI-Tree) mirip
seperti Frequent Pattern Tree (FP-Tree),
mempunyai root yang di beri label “ROOT”, dan
cabang dari root disebut prefix subtrees. Tiap node
pada subtree mempunyai dua buah field yaitu itemname dan node-link. Semua node dengan item
yang sama dihubungkan semua. Node link itu
menunjuk ke node berikutnya yang mempunyai
item sama pada Maximal Frequent Itemset tree
(MFI-Tree). Header tabel pada Maximal Frequent
Itemset tree (MFI-Tree) sama dengan header tabel
pada FP-Tree pada scan pertama dataset. Header
tabel pada Maximal Frequent Itemset tree (MFITree) mempunyai dua buah field, yaitu item-name
dan head of a node link. Node link menunjuk pada
salah satu cabang dari Maximal Frequent Itemset
tree (MFI-Tree) yang mempunyai item-name yang
sama.
Dengan menggunakan Maximal Frequent Itemset
tree (MFI-Tree) maka pattern pattern yang
didapatkan dari pembacaan node node yang ada
pada Maximal Frequent Itemset tree (MFI-Tree)
menghasilkan pattern pattern yang sudah maximal,
dan tiap patternnya tidak ada yang merupakan
subset dari pattern yang lainnya.
MFI-Tree (Maximal Frequent Itemset
Tree) merupakan struktur tree yang dibentuk untuk
menampung Maximal Frequent Itemset yang
didapat dari frequent pattern tree (FP-Tree),
struktur tree yang dipakai sama dengan struktur
FP-Tree, MFI-Tree mempunyai header tabel yang
dihubungkan dengan node pada tree yang
mempunyai item sama dengan yang ada pada
header tabel, tiap nodenya yang mempunyai item
sama juga dihubungkan.
MFI-Tree dibuat berdasarkan Conditional
FP-Tree, dari conditional FP-Tree item itemnya di
baca satu persatu kemudian di masukkan ke dalam
MFI-Tree. Header tabel yang digunakan sama
dengan header tabel pada FP-Tree. Berikut ini akan
ditunjukkan langkah langkah pembentukan MFITree dari conditional FP-Tree. Langkah langkah
pembentukan MFI dari conditional FP-Tree adalah
sebagai berikut:
1. Dari pembacaan pertama conditional FP-

Tree akan didapatkan pattern (BACE),

6

pattern ini kemudian dimasukkan ke dalan
Tree.

Gambar 7

Langkah 1 Pembentukan MFI-Tree
2. Dari pembacaan kedua conditional FP-

Tree akan didapatkan pattern (BEC),
pattern ini kemudian dimasukkan ke dalan
Tree.

Gambar 8
Langkah 2 Pembentukan MFI-Tree
3. Dari pembacaan ketiga conditional FP-

Tree akan didapatkan pattern (BC), pattern
ini kemudian dimasukkan ke dalan Tree.

Gambar 9
Langkah 3 Pembentukan MFI-Tree
4. Dari pembacaan ketiga conditional FP-

Tree akan didapatkan pattern (BD), pattern
ini kemudian dimasukkan ke dalan Tree.
Pattern (CW) merupakan pattern terakhir
yang ada pada conditional FP-Tree.

Gambar 10
Langkah 4 Pembentukan MFI-Tree

PENUTUP
 Semakin tinggi nilai minimum support yang
diberikan semakin sedikit waktu yang
diperlukan dan semakin sedikit memori yang
dipakai. Hal ini disebabkan karena nilai
minimum support berguna untuk memotong
jumlah transaksi yang di baca, sehingga proses
yang dilakukan semakin sedikit jika minimum
support tinggi.
 Algoritma FP-MAX pada saat melakukan
mining pada dataset yang besar waktu dan
memori yang dipakai semakin besar, karena
struktur tree yang dipakai adalah struktur FPTree, dan proses mining dilakukan apabila
keseluruhan tree sudah terbentuk, hal inilah
yang menyebabkan penggunaan memori yang
besar.

DAFTAR PUSTAKA
Jiawei Han dan Micheline Kamber, Data
Mining, Concepts and Techniques, Morgan
Kaufmann Publishers. 340 Pine Street, Sixth
Floor, San Fransisco, USA, 2001.
2. R. Agrawal dan R. Srikant, Fast Algorithms
for Mining Association Rules, Proceedings of
the 20th International Conference on Very
Large Databases, Santiago, Chile, 1994.
3. B. Goethals and M. Zaki. Advances in frequent
itemset mining implementations: Introduction
to fimi03. In Workshop on Frequent Itemset
Mining
Implementations
(FIMI’03)
in
conjunction with IEEE-ICDM, 2003.

1.

4.

K. Gouda and M. J. Zaki. Efficiently
mining maximal frequent itemsets. In
ICDM, pages 163–170, 2001.

7