FP-Growth

FP-Growth: Contoh Perhitungan FP-Tree dan Association Rule

Diterbitkan 25 September 2026

Metode FP Growth

FP-Growth (Frequent Pattern Growth) adalah algoritma data mining untuk menemukan frequent itemset tanpa membentuk kandidat itemset berulang seperti pada Apriori. FP-Growth memampatkan transaksi ke dalam struktur FP-Tree, kemudian menambang pola melalui conditional pattern base dan conditional FP-Tree.

Tutorial ini menggunakan contoh market basket analysis minimarket dengan 5 transaksi. Perhitungan dilakukan mulai dari support count, minimum support, F-List, pengurutan transaksi, pembentukan FP-Tree, conditional pattern base, frequent itemset, sampai association rule menggunakan confidence dan lift.

Untuk membandingkan pendekatan association rule, lihat juga algoritma Apriori dan Fuzzy C-Covering.


Daftar Isi


Pengertian FP-Growth

FP-Growth adalah singkatan dari Frequent Pattern Growth. Algoritma ini mencari pola item yang sering muncul bersama dengan memanfaatkan struktur pohon bernama Frequent Pattern Tree (FP-Tree).

Ide utamanya:

Data Transaksi
↓
Hitung Frekuensi Item
↓
Buang Item Tidak Frequent
↓
Bentuk F-List
↓
Urutkan Item Setiap Transaksi
↓
Bangun FP-Tree
↓
Conditional Pattern Base
↓
Conditional FP-Tree
↓
Frequent Itemset
↓
Association Rule

FP-Growth tidak perlu membangkitkan kandidat C1, C2, C3, dan seterusnya secara eksplisit seperti Apriori.


Perbedaan FP-Growth dan Apriori

Aspek FP-Growth Apriori
Struktur utama FP-Tree Kandidat itemset
Candidate generation Tidak eksplisit Ya
Pemindaian database Relatif sedikit Berulang
Data padat Umumnya lebih efisien Kandidat dapat sangat banyak
Interpretasi manual Lebih kompleks Lebih sederhana
Hasil Frequent itemset Frequent itemset

Jika ingin memahami pola kandidat secara bertahap, Apriori lebih mudah dipelajari terlebih dahulu. Jika jumlah transaksi besar dan banyak item saling berulang, FP-Growth dapat mengurangi kebutuhan candidate generation.


Istilah Penting

Pengertian Support Count

Support count adalah jumlah transaksi yang mengandung sebuah item atau itemset.

Contoh:

Roti muncul pada 4 transaksi

maka:

\[ support\ count(Roti)=4 \]

Minimum Support

Minimum support menentukan batas itemset yang dianggap frequent.

Jika:

Minimum Support = 60%
Jumlah transaksi = 5

maka minimum support count:

\[ 0.60\times5=3 \]

Itemset harus muncul minimal 3 transaksi.

F-List

F-List adalah daftar item frequent yang diurutkan berdasarkan support count dari terbesar ke terkecil.

FP-Tree

FP-Tree adalah struktur pohon yang menyimpan transaksi yang sudah diurutkan berdasarkan F-List.

Prefix transaksi yang sama akan berbagi node sehingga data menjadi lebih ringkas.

Conditional Pattern Base

Conditional pattern base adalah kumpulan prefix path menuju suatu item target.

Conditional FP-Tree

Conditional FP-Tree adalah FP-Tree lokal yang dibentuk dari conditional pattern base setelah item yang tidak memenuhi minimum support dihapus.


Rumus FP-Growth

Rumus Support Count

\[ SC(X) = |\{T_i\mid X\subseteq T_i\}| \]

Keterangan:

  • \(SC(X)\) = support count itemset \(X\),
  • \(T_i\) = transaksi ke-\(i\).

Support

\[ Support(X) = \frac{SC(X)}{N} \]

Jika dinyatakan persen:

\[ Support(X) = \frac{SC(X)}{N}\times100\% \]

Confidence

Untuk rule:

\[ X\rightarrow Y \]

confidence:

\[ Confidence(X\rightarrow Y) = \frac{Support(X\cup Y)}{Support(X)} \]

Lift

\[ Lift(X\rightarrow Y) = \frac{Confidence(X\rightarrow Y)}{Support(Y)} \]

Interpretasi:

  • \(Lift>1\): hubungan positif,
  • \(Lift=1\): cenderung independen,
  • \(Lift<1\): hubungan negatif.

#01 Menentukan Data Transaksi

Digunakan 5 transaksi:

Transaksi Item
T1 Roti, Susu
T2 Roti, Popok, Kopi, Telur
T3 Susu, Popok, Kopi, Cola
T4 Roti, Susu, Popok, Kopi
T5 Roti, Susu, Popok, Cola

Jumlah transaksi:

\[ N=5 \]

#02 Menentukan Minimum Support

Parameter:

Minimum Support = 60%
Minimum Confidence = 70%

Minimum support count:

\[ 0.60\times5=3 \]

Jadi:

\[ \boxed{minimum\ support\ count=3} \]

Setiap item atau itemset harus muncul minimal 3 kali agar dianggap frequent.


#03 Menghitung Frekuensi Setiap Item

Hitung jumlah transaksi yang mengandung masing-masing item.

Contoh Roti

Roti terdapat pada:

T1
T2
T4
T5

Maka:

\[ SC(Roti)=4 \]

Support:

\[ Support(Roti)=\frac45\times100\%=80\% \]

Contoh Kopi

Kopi terdapat pada:

T2
T3
T4

Maka:

\[ SC(Kopi)=3 \]

Support:

\[ Support(Kopi)=\frac35\times100\%=60\% \]

Hasil seluruh item:

Item Support Count Support Status
Roti 4 80% Frequent
Susu 4 80% Frequent
Popok 4 80% Frequent
Kopi 3 60% Frequent
Cola 2 40% Tidak
Telur 1 20% Tidak

Karena minimum support count adalah 3, Cola dan Telur dikeluarkan dari proses FP-Tree.


#04 Membentuk F-List

Item frequent:

Roti = 4
Susu = 4
Popok = 4
Kopi = 3

Karena Roti, Susu, dan Popok memiliki support count sama, digunakan urutan tetap agar proses manual konsisten:

Roti
Susu
Popok
Kopi

F-List:

Urutan Item Support Count
1 Roti 4
2 Susu 4
3 Popok 4
4 Kopi 3

Jika support count sama, aturan tie-breaking harus dibuat konsisten. Urutan tie tidak mengubah nilai support itemset, tetapi dapat mengubah bentuk visual FP-Tree.


#05 Mengurutkan Item pada Transaksi

Cola dan Telur dihapus karena tidak frequent.

Kemudian item setiap transaksi diurutkan mengikuti F-List.

Transaksi Setelah Filtering dan Sorting
T1 Roti → Susu
T2 Roti → Popok → Kopi
T3 Susu → Popok → Kopi
T4 Roti → Susu → Popok → Kopi
T5 Roti → Susu → Popok

Contoh T2

Transaksi asli:

Roti, Popok, Kopi, Telur

Telur tidak frequent, sehingga:

Roti, Popok, Kopi

Contoh T3

Transaksi asli:

Susu, Popok, Kopi, Cola

Cola dibuang:

Susu, Popok, Kopi

#06 Membentuk FP-Tree

Gunakan root:

NULL

Memasukkan T1

NULL
└── Roti:1
    └── Susu:1

Memasukkan T2

T2:

Roti → Popok → Kopi

Node Roti sudah ada, count naik:

NULL
└── Roti:2
    ├── Susu:1
    └── Popok:1
        └── Kopi:1

Memasukkan T3

Susu → Popok → Kopi

Karena prefix dimulai Susu, dibuat cabang baru:

NULL
├── Roti:2
│   ├── Susu:1
│   └── Popok:1
│       └── Kopi:1
└── Susu:1
    └── Popok:1
        └── Kopi:1

Memasukkan T4

Roti → Susu → Popok → Kopi

Setelah count diperbarui:

NULL
├── Roti:3
│   ├── Susu:2
│   │   └── Popok:1
│   │       └── Kopi:1
│   └── Popok:1
│       └── Kopi:1
└── Susu:1
    └── Popok:1
        └── Kopi:1

Memasukkan T5

Roti → Susu → Popok

FP-Tree akhir:

NULL
├── Roti:4
│   ├── Susu:3
│   │   └── Popok:2
│   │       └── Kopi:1
│   └── Popok:1
│       └── Kopi:1
└── Susu:1
    └── Popok:1
        └── Kopi:1

Count node menunjukkan berapa transaksi melewati prefix tersebut.


#07 Membentuk Conditional Pattern Base

Mining dilakukan dari item dengan support terendah pada F-List.

Urutan:

Kopi
Popok
Susu
Roti

Conditional Pattern Base untuk Kopi

Kopi terdapat pada tiga path:

Roti → Popok → Kopi : 1
Roti → Susu → Popok → Kopi : 1
Susu → Popok → Kopi : 1

Prefix sebelum Kopi:

Prefix Path Count
Roti, Popok 1
Roti, Susu, Popok 1
Susu, Popok 1

Hitung frekuensi conditional:

Roti  = 2
Susu  = 2
Popok = 3

Minimum support count:

3

Maka hanya:

Popok

yang bertahan.

Hasil frequent pattern:

\[ \{Popok,Kopi\} \]

dengan:

\[ SC=3 \]

#08 Membentuk Conditional FP-Tree

Conditional FP-Tree untuk Kopi

Dari conditional frequency:

Roti  = 2
Susu  = 2
Popok = 3

setelah pruning:

Popok = 3

Conditional FP-Tree:

NULL
└── Popok:3

Frequent itemset:

\[ \{Popok,Kopi\}:3 \]

Conditional FP-Tree untuk Popok

Prefix path menuju Popok:

Roti : 1
Roti → Susu : 2
Susu : 1

Conditional frequency:

Roti = 3
Susu = 3

Keduanya memenuhi minimum support count 3.

Maka diperoleh:

\[ \{Roti,Popok\}:3 \]

dan:

\[ \{Susu,Popok\}:3 \]

Kombinasi tiga item:

\[ \{Roti,Susu,Popok\} \]

hanya muncul pada 2 transaksi sehingga tidak frequent.

Conditional FP-Tree untuk Susu

Prefix menuju Susu dari jalur dengan Roti:

Roti : 3

Maka:

\[ \{Roti,Susu\}:3 \]

#09 Menentukan Frequent Itemset

Frequent 1-itemset:

Itemset Support Count Support
{Roti} 4 80%
{Susu} 4 80%
{Popok} 4 80%
{Kopi} 3 60%

Frequent 2-itemset:

Itemset Support Count Support
{Roti, Susu} 3 60%
{Roti, Popok} 3 60%
{Susu, Popok} 3 60%
{Popok, Kopi} 3 60%

Tidak ada frequent 3-itemset yang mencapai minimum support count 3.


#10 Membentuk Association Rule

Minimum confidence:

\[ 70\% \]

Contoh Rule Kopi → Popok

Support:

\[ Support(Kopi,Popok)=\frac35=0.60 \]

Support Kopi:

\[ Support(Kopi)=\frac35=0.60 \]

Confidence:

\[ Confidence(Kopi\rightarrow Popok) = \frac{0.60}{0.60} = 1.00 \]

atau:

\[ 100\% \]

Lift:

\[ Lift = \frac{1.00}{0.80} = 1.25 \]

Karena:

\[ Lift>1 \]

hubungannya positif.

Rule yang memenuhi minimum confidence:

Rule Support Confidence Lift
Kopi → Popok 60% 100% 1.2500
Popok → Kopi 60% 75% 1.2500
Roti → Susu 60% 75% 0.9375
Susu → Roti 60% 75% 0.9375
Roti → Popok 60% 75% 0.9375
Popok → Roti 60% 75% 0.9375
Susu → Popok 60% 75% 0.9375
Popok → Susu 60% 75% 0.9375

Pada data contoh, rule dengan lift tertinggi adalah:

Kopi → Popok
Popok → Kopi

keduanya memiliki:

\[ Lift=1.25 \]

Cara Membaca Lift

Lift membantu membedakan rule yang hanya memiliki confidence tinggi karena consequent memang sering muncul.

Contoh:

Kopi → Popok

Confidence:

\[ 100\% \]

Support Popok:

\[ 80\% \]

Lift:

\[ 1.25 \]

Artinya kemunculan Kopi meningkatkan kecenderungan Popok dibanding baseline Popok pada data contoh.

Sebaliknya:

Roti → Susu

memiliki confidence:

\[ 75\% \]

tetapi:

\[ Lift=0.9375 \]

karena Susu sendiri sudah muncul pada 80% transaksi.

Untuk pendekatan association rule berbasis candidate generation, lihat Apriori. Untuk pendekatan fuzzy, lihat Fuzzy C-Covering.


Kelebihan dan Kekurangan

Kelebihan FP-Growth

  • Tidak melakukan candidate generation berulang seperti Apriori.
  • Database dapat dipadatkan ke dalam FP-Tree.
  • Efektif ketika banyak transaksi berbagi prefix.
  • Dapat menemukan frequent pattern secara rekursif.
  • Cocok untuk market basket analysis.

Kekurangan FP-Growth

  • FP-Tree lebih kompleks dijelaskan secara manual.
  • Implementasi membutuhkan struktur tree dan header/link yang baik.
  • FP-Tree dapat besar jika transaksi sangat beragam.
  • Minimum support yang terlalu rendah dapat menghasilkan banyak pattern.
  • Hasil association rule tetap perlu dievaluasi menggunakan confidence, lift, atau metrik lain.

Ringkasan

Parameter:

Jumlah transaksi = 5
Minimum Support = 60%
Minimum Support Count = 3
Minimum Confidence = 70%

F-List:

Roti:4
Susu:4
Popok:4
Kopi:3

Frequent 2-itemset:

{Roti,Susu}:3
{Roti,Popok}:3
{Susu,Popok}:3
{Popok,Kopi}:3

Rule terkuat berdasarkan lift:

Kopi → Popok

dengan:

Support = 60%
Confidence = 100%
Lift = 1.25

FP-Growth memperoleh pola tersebut melalui FP-Tree dan conditional pattern base tanpa harus membentuk kandidat itemset bertingkat seperti Apriori.


FAQ FP-Growth

Apa kepanjangan FP-Growth?

FP-Growth adalah Frequent Pattern Growth.

Apa fungsi FP-Growth?

Untuk mencari frequent itemset dari data transaksi dengan memanfaatkan FP-Tree.

Apa perbedaan FP-Growth dan Apriori?

Apriori membentuk kandidat itemset secara bertingkat, sedangkan FP-Growth menggunakan FP-Tree dan conditional pattern mining.

Apa itu FP-Tree?

FP-Tree adalah struktur pohon yang menyimpan transaksi frequent dalam bentuk prefix yang dapat dibagikan antartransaksi.

Apa itu F-List?

Daftar item frequent yang diurutkan berdasarkan support count.

Apa itu conditional pattern base?

Kumpulan prefix path yang mengarah ke item target.

Apa itu conditional FP-Tree?

FP-Tree lokal yang dibangun dari conditional pattern base setelah pruning.

Bagaimana menentukan minimum support count?

Kalikan minimum support dengan jumlah transaksi lalu gunakan batas count yang sesuai.

Pada contoh:

\[ 60\%\times5=3 \]

Apa itu confidence?

Confidence mengukur seberapa sering consequent muncul ketika antecedent muncul.

Apa itu lift?

Lift membandingkan confidence rule dengan frekuensi dasar consequent.

Apakah lift harus lebih dari 1?

Tidak harus untuk menghasilkan rule, tetapi lift lebih dari 1 menunjukkan hubungan positif.

Apakah FP-Growth termasuk classification?

Tidak. FP-Growth terutama digunakan untuk frequent pattern mining dan association rule.

Apakah FP-Growth dapat digunakan untuk data penjualan?

Ya. Market basket analysis merupakan salah satu penerapan paling umum.

Apakah FP-Growth membutuhkan data label?

Tidak. FP-Growth merupakan metode unsupervised frequent pattern mining dan tidak membutuhkan label kelas.


Referensi

  1. Han, J., Pei, J., & Yin, Y. (2000). Mining Frequent Patterns without Candidate Generation. Proceedings of ACM SIGMOD.
  2. Han, J., Kamber, M., & Pei, J. (2012). Data Mining: Concepts and Techniques. Third Edition. Morgan Kaufmann.
  3. Agrawal, R., & Srikant, R. (1994). Fast Algorithms for Mining Association Rules. Proceedings of VLDB.

Source Code FP-Growth

Berikut source code yang menggunakan algoritma FP-Growth pada RumahSourceCode.

Ada yang Ditanyakan?

Jika masih ada kesulitan atau kekeliruan tentang metode di atas, silakan hubungi kami melalui halaman Kontak.

Perhitungan Excel tersedia melalui halaman Download, sedangkan aplikasi terkait dapat dilihat pada halaman Daftar Source Code.

Donasi digunakan untuk biaya server dan mendukung pembuatan tutorial metode atau algoritma lainnya.

Komentar

Belum ada komentar.

Tulis Komentar

Komentar pengunjung diperiksa sebelum ditampilkan.