BAB 5 ALGORITMA A PRIORI A. Algoritma A Priori Algoritma a priori termasuk jenis aturan assosiasi pada data mining. Selain a priori yang termasuk pada golongan ini adalah metode Generalized Rule Induction dan Algoritma Hash Based . Aturan yang menyatakan asosiasi antara beberapa atribut sering disebut sebagai affinity analysis atau market basket analysis. Analisis asosiasi atau association rule mining adalah teknik data mining untuk menemukan aturan assosiatif antara suatu kombinasi item. Contoh dari aturan assosiatif dari analisa pembelian di suatu pasar swalayan adalah dapat diketahuinya berapa besar kemungkinan seorang pelanggan membeli roti bersamaan dengan susu. Dengan pengetahuan tersebut pemilik pasar swalayan dapat mengatur penempatan barangnya atau merancang kampanye pemasaran dengan memakai kupon diskon untuk kombinasi barang tertentu. Karena analisis asosiasi menjadi terkenal karena aplikasinya untuk menganalisa isi keranjang belanja di pasar swalayan, analisis asosiasi juga sering disebut dengan istilah market basket analysis. Analisis asosiasi dikenal juga sebagai salah satu teknik data mining yang menjadi dasar dari berbagai teknik data mining lainnya. Khususnya salah satu tahap dari analisis asosiasi yang disebut analisis pola frequensi tinggi (frequent pattern
mining) menarik perhatian banyak peneliti untuk menghasilkan algoritma yang efisien. Penting tidaknya suatu aturan assosiatif dapat diketahui dengan dua parameter, support (nilai penunjang) yaitu persentase kombinasi item tersebut dalam database dan confidence (nilai kepastian) yaitu kuatnya hubungan antar item dalam aturan asosiasi. Aturan asosiasi biasanya dinyatakan dalam bentuk : {roti, mentega} -> confidence = 50%)
{susu}
(support
=
40%,
Yang artinya : "50% dari transaksi di database yang memuat item roti dan mentega juga memuat item susu. Sedangkan 40% dari seluruh transaksi yang ada di database memuat ketiga item itu." Dapat juga diartikan : "Seorang konsumen yang membeli roti dan mentega punya kemungkinan 50% untuk juga membeli susu. Aturan ini cukup signifikan karena mewakili 40% dari catatan transaksi selama ini." Analisis asosiasi didefinisikan suatu proses untuk menemukan semua aturan asosiasi yang memenuhi syarat minimum untuk support (minimum support) dan syarat minimum untuk confidence (minimum confidence). Metodologi dasar analisis asosiasi terbagi menjadi dua tahap : 1. Analisa pola frekuensi tinggi
Tahap ini mencari kombinasi item yang memenuhi syarat minimum dari nilai support dalam database. Nilai support sebuah item diperoleh dengan rumus berikut:
Support ( A) =
Jumlah transaksi mengandung A Total Transaksi
sedangkan nilai support dari 2 item diperoleh dari rumus 2 berikut :
Support ( A, B ) = P ( A ∩ B ) ∑ Transaksi mengandung A dan B Support ( A, B ) = ∑ Transaksi
Transaksi 1 2 3 4 5 6 7 8 9 10
Tabel 5.1. Transaksi Item yang dibeli Susu, Teh, Gula Teh, Gula, Roti Teh, Gula Susu, Roti Susu, Gula, Roti Teh, Gula Gula, Kopi, Susu Gula, Kopi, Susu Susu, Roti, Kopi Gula, Teh, Kopi
Sebagai contoh, ada database dari transaksi belanja pasar swalayan seperti ditunjukkan dalam Tabel 5.1
Data pada Tabel 5.1 dalam database transaksional biasa direpresentasikan dalam bentuk seperti tampak pada Tabel 5.2 Representasi Data Transaksi dalam Database Transaksional Transaksi 1 1 1 2 2 2 3 3 4 4 5 5 5 6 6 7 7 7 8 8 8 9 9 9 10 10 10
Item yang dibeli Susu Teh Gula Teh Gula Roti Teh Gula Susu Roti Susu Gula Roti Teh Gula Gula Kopi Susu Gula Kopi Susu Susu Roti Kopi Gula Teh Kopi
Dan bila kita bentuk dalam bentuk tabular, data transaksi akan tampak seperti pada Tabel 5.3.
Transaksi 1 2 3 4 5 6 7 8 9 10
Format Tabular Data Transaksi Teh Gula Kopi Susu Roti 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0
Misalkan D adalah himpunan transaksi yang direperesentasikan dalam Tabel 5.1, dimana masing-masing transaksi T dalam D merepresentasikan himpunan item yang berada dalam I. I adalah himpunan iterm yang dijual {Teh, Gula, Kopi, Susu, Roti}. Misalkan kita memiliki himpunan items A (misal Susu dan Gula) dan himpunan item lain B (misal Kopi). Kemudian aturan asosiasi akan berbentuk Jika
A, maka B ( AB)
Dimana antecedent A dan consequent B merupakan subset dari I, dan A dan B merupakan mutually exclusive dimana aturan Jika A maka B
tidak berarti Jika B maka A
Definisi ini tidak berlaku untuk aturan trivial seperti : Jika beans dan Squash
Maka beans
Seorang analis mungkin hanya akan mengambil aturan yang memiliki support dan/atau confidence yang tinggi. Aturan yang kuat adalah aturan-aturan yang melebihi kriteria support dan/atau confidence minimum. Misalnya seorang analist menginginkan aturan yang memiliki support lebih dari 20% dan confidence lebih dari 35%. Sebuah itemset adalah himpunan item-item yang ada dalam I, dan k-itemset adalah itemset yang berisi k item. Misalnya {Teh, Gula) adalah sebuah 2-itemset dan {Teh, Gula, Roti) merupakan 3itemset. Frequent Itemset menunjukkan itemset yang memiliki frekuensi kemunculan lebih dari nilai minimum yang telah ditentukan (ф). Misalkan ф = 2, maka semua itemset yang frekuensi kemunculannya lebih dari atau sama dengan 2 kali disebut frequent. Himpunan dari frequent k-itemset dilambangkan dengan Fk. Tabel 5.4 berikut ini menujukkan calon 2-itemset dari data transaksi pada Tabel 5.1.
Calon 2-itemset Kombinasi Jumlah Teh, Gula 5 Teh, Kopi 1 Teh, Susu 1 Teh, Roti 1 Gula, Kopi 3 Gula, Susu 4 Gula, Roti 2 Kopi, Susu 3 Kopi, Roti 1 Susu, Roti 3 Dari data tersebut diatas, jika ditetapkan nilai ф = 3 maka F2 =
{ {Teh, Gula}, {Gula, Kopi}, {Gula, Susu}, {Gula, Roti}, {Kopi, Susu}, {Susu, Roti}}
Calon 3-itemset Kombinasi Jumlah Teh, Gula, Kopi 1 Teh, Gula, Susu 1 Gula, Susu, Kopi 2 Gula, Susu, Roti 0 Gula, Kopi, Roti 0 Kopi, Susu, Roti 1 Kombinasi dari itemset dalam F2 dapat kita gabungkan menjadi calon 3-itemset. Itemsetitemset dari F2 yang dapat digabungkan adalah itemset-itemset yang memiliki kesamaan dalam k-1
item pertama. Calon 3-itemset yang dapat dibentuk dari F2 seperti tampak pada Tabel 5.5. Dengan demikian F3 = {{Gula, Susu, Kopi}}, karena hanya kombinasi inilah yang memiliki frekeunsi kemunculan >= ф. 2. Pembentukan aturan Asosiasi Setelah semua pola frekuensi tinggi ditemukan, barulah dicari aturan asosiasi yang memenuhi syarat minimum untuk confidence dengan menghitung confidence aturan assosiatif A B Nilai confidence dari aturan A B diperoleh dari rumus berikut:
Confidence= P( B | A) =
∑
Transaksi mengandung A dan B
∑
Transaksi mengandung A
Dari F3 yang telah ditemukan, dapat dilihat besarnya nilai support dan confidence dari calon aturan asosiasi seperti tampak pada Tabel 5.6. Calon Aturan Asosiasi dari F3 Aturan Confidence Jika membeli Gula dan Susu 2/4 50% Maka akan membeli Kopi Jika membeli Gula dan Kopi 2/3 67% Maka akan membeli Susu Jika membeli Kopi dan Susu 2/3 67% Maka akan membeli Gula Misalkan ditetapkan nilai confidence minimal adalah 60% maka aturan yang bisa terbentuk adalah aturan dengan 2 antecedent berikut:
Jika membeli Gula dan Kopi Maka akan membeli Susu Jika membeli membeli Gula
Kopi
dan
Susu
Maka
akan
Sementara itu calon aturan asosiasi dari F2 bisa dilihat pada tabel 5.7 Aturan Asosiasi Aturan Confidence Jika membeli Teh 5/5 100% Maka akan membeli Gula Jila membeli Gula 5/8 62.5% Maka akan membeli Teh Jika membeli Gula 3/8 37.5% Maka akan membeli Kopi Jika membeli Kopi 3/4 75% Maka akan membeli Gula Jika membeli Gula 4/8 50% Maka akan membeli Susu Jika membeli Susu 4/6 67% Maka akan membeli Gula Jika membeli Gula 2/8 25% Maka akan membeli Roti Jika membeli Roti 2/4 50% Maka akan membeli Gula Jika membeli Kopi 3/4 75% Maka akan membeli Susu Jika membeli Susu 3/6 50% Maka akan membeli Kopi Jika membeli Susu 3/6 50% Maka akan membeli Roti Jika membeli Roti 3/4 75% Maka akan membeli Susu
dan aturan asosiasi final terurut berdasarkan Support x Confidence terbesar dapat dilihat pada Table 5.8. Aturan Asosiasi Final ATURAN
Jika membeli Teh Maka akan membeli Gula Jila membeli Gula Maka akan membeli Teh Jika membeli Susu Maka akan membeli Gula Jika membeli Kopi Maka akan membeli Gula Jika membeli Kopi Maka akan membeli Susu Jika membeli Roti Maka akan membeli Susu Jika membeli Gula dan Kopi Maka akan membeli Susu Jika membeli Kopi dan Susu Maka akan membeli Gula
SUPPORT
CONFIDENCE
50%
100%
50%
62.50%
SUPPORT x CONFIDENCE
50.0%
31.3%
40%
67%
30%
75%
30%
75%
30%
75%
20%
67%
26.8%
22.5%
22.5%
22.5%
13.4%
20%
67% 13.4%
B. Contoh Aplikasi Dalam mengimplementasikan algoritma apriori untuk mencari aturan asosiasi, penulis menggunakan database default saat instalasi SQL server 2000 yaitu database Northwind, dimana dalam database tersebut terdapat diantaranya 2 tabel dengan relasi seperti tampak pada Gambar 5.1.
Gambar 5.1 Relasi Tabel
Tabel Orders menyimpan transaksi yang terjadi dalam suatu perusahaan sedangkan tabel Order Details menjelaskan prodecur apa saja yang terbeli dalam masing-masing transaksi pada tabel Orders. Dalam menerapkan algoritma apriori, kami menggunakan tabel-tabel dalam database untuk menyimpan frequent itemset. Selain itu fasilitas query dalam database juga dimanfaatkan untuk mendapatkan kombinasi item yang mungkin dalam itemset. Langkah yang dilakukan dalam pembuatan aplikasi mining aturan asosisasi dengan algoritma apriori pada penelitian ini dijelaskan dalam flowchart yang tampak pada Gambar 5.2, Gambar 5.3, Gambar 5.4 dan Gambar 5.5
Gambar 5.2 Flowchart Program untuk mendapatkan kombinasi yang memenuhi (1)
Gambar 5.3. Flowchart Program untuk mendapatkan kombinasi yang memenuhi(2)
Gambar 5.4 Flowchart Program untuk mendapatkan kombinasi yang memenuhi(3)
Gambar 5.5 Flowchart Program untuk mendapatkan kombinasi yang memenuhi(4) Gambar 5.6 menunjukkan Rancangan Form yang digunakan dalam impelementasi algoritma apriori.
Gambar 5.6. Rancangan Form File aplikasi dan source code dapat di peroleh dalam CD yang disertakan dalam buku ini. Untuk dapat menjalankan aplikasi ini, komputer harus terinstal SQL Server 2000. Kode program ditulis dengan bahasa pemrograman Borland Delphi 6. Aplikasi ini berjalan diatas sistem operasi Microsoft Windows. Aplikasi ini membutuhkan database Northwind, yaitu database default saat menginstal SQL Server 2000. Setelah SQL Server terinstal, masukkan
database Northwind dalam ODBC. Berikut ini adalah langkah yang harus dilakukan untuk menambahkan database Northwind dalam ODBC: 1. Buka Control Panel – Administrative Tool –Data Source (ODBC). Fasilitas ini dapat dilihat pada Gambar 5.7
Gambar 5.7 Adminiatrative Tools 2. Pada form ODBC, tekan tombol Add. Form ini dapat dilihat pada Gambar 5.8
Gambar 5.8. Form ODBC 3. Pada Form Create New Data Source pilih Driver SQL Server dan tekan Tombol Finish. Form ini dapat dilihat pada gambar 5.9.
Gambar 5.9 Form Create New Data Source 4. Pada Form Create a New Data Source to SQL Server masukkan name Northwind dan pilih server dimana databasenya diletakkan kemudian tekan Tombol Next dan pada halaman selanjutnya tekan Tombol Next lagi. Form ini dapat dilihat pada Gambar 5.10
Gambar 5.10 Form Create a New Data Source to SQL Server 5. Pada halaman pemilihan database, ganti database default dengan database Northwind seperti tampak pada Gambar 5.11, kemudian tekan Tombol Next dan di halaman berikutnya tekan Tombol Finish.
Gambar 5.11. Halaman Pemilihan Database
Setelah database Northwind terdaftar dalam ODBC, langkah selanjutnya adalah membuat form seperti tampak pada Gambar 5.6. Properti yang paling penting dalam rancangan form tersebut adalah properti database pada komponen Query dan Query1. properti tersebut harus diisi dengan Northwind untuk menghubungkan aplikasi dengan databasenya. Berikut ini adalah listing programnya:
program Apriori; uses Forms, UApriori in 'UApriori.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. unit UApriori; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DB, DBTables, ComCtrls, IBDatabase, IBCustomDataSet, IBQuery, ExtCtrls;
type
TForm1 = class(TForm) Query: TQuery; Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Label1: TLabel; Label2: TLabel; EdtMinTransaksi: TEdit; EdtMinConfidence: TEdit; BitBtn1: TBitBtn; Panel4: TPanel; BitBtn2: TBitBtn; Memo1: TMemo; Bevel2: TBevel; Bevel3: TBevel; Bevel1: TBevel; Label3: TLabel; EdtTotalTransaksi: TEdit; Query1: TQuery; procedure BitBtn1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; C : integer; implementation uses DateUtils; {$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject); var i,j,k,l,temp,total_transaksi, min_transaksi : integer; min_confidence : real; keluar : boolean ; antecedent, konklusi : string; begin Memo1.Clear; with Query do begin Close; SQL.Text := ' SELECT count(OrderId) '+ ' FROM Orders '; Open; EdtTotalTransaksi.Text := Fields[0].AsString; total_transaksi := Fields[0].AsInteger; min_transaksi := StrToInt(EdtMinTransaksi.text); min_confidence := StrToFloat(EdtMinConfidence.Text);
//==========mengambil item yang memenuhi syarat (C1)=========// C := 1; Close; SQL.Text := 'DROP TABLE C1'; try ExecSQL; except end; Close;
SQL.Text := ' CREATE TABLE C1 ( '+ ' ITEM1 INTEGER, '+ ' JML INTEGER)'; try ExecSQL; except end; Close; SQL.Text := ' INSERT INTO C1 '+ ' SELECT ProductId, count(OrderId) '+ ' FROM [Order Details] '+ ' GROUP BY Productid '+ ' HAVING count(OrderId) >= ' + IntToStr(min_transaksi) + ' ORDER BY ProductId'; ExecSQL; //===========end of mengambil item yang memenuhi syarat (C1)==============//
//===============mengambil item yang memenuhi syarat (C2 dst)=============// while not keluar do begin inc(C); Close; SQL.Text := 'DROP TABLE C' + IntToStr(C); try ExecSQL; except end; //buat tabel
Close; SQL.Text := ' CREATE TABLE C' + IntToStr(C) + ' ( '; for i := 1 to C do SQL.Add(' ITEM' + IntToStr(i) + ' INTEGER, '); SQL.Add(' JML INTEGER)'); try ExecSQL; except end;
//isi tabel Close; SQL.Text := 'INSERT INTO C'+ IntToStr(C) + ' SELECT DISTINCT '; for i := 1 to C-1 do SQL.Add (' P.ITEM' + IntToStr(i) +', '); SQL.Add(' Q.ITEM' + IntToStr(C-1) +', '+ ' (SELECT COUNT(O.ORDERID) '+ ' FROM ORDERS O '+ ' WHERE (SELECT COUNT (*) FROM [ORDER DETAILS] D '+ ' WHERE D.PRODUCTID IN ('); for i := 1 to C-1 do SQL.Add (' P.ITEM' + IntToStr(i) +', '); SQL.Add(' Q.ITEM' + IntToStr(C-1) +') '+ ' AND D.ORDERID= O.ORDERID) >= '+ IntToStr(C) + ') '+
' FROM C'+ IntToStr(C-1) + ' P, C'+ IntToStr(C-1) + ' Q '+ ' WHERE Q.ITEM'+ IntToStr(C-1) + ' > P.ITEM' + IntToStr(C-1) );
for i := 2 to C-1 do SQL.Add(' AND P.ITEM' + IntToStr(i) + ' > P.ITEM' + IntToStr(i-1) ); SQL.Add(' ORDER BY '); for i := 1 to C-1 do SQL.Add (' P.ITEM' + IntToStr(i) +', '); SQL.Add(' Q.ITEM' + IntToStr(C-1)); try ExecSQL; except end; //hapus isi tabel yg tidak memenuhi syarat Close; SQL.Text := ' DELETE FROM C'+ IntToStr(C) + ' WHERE JML <= '+ FloatToStr(min_transaksi); try ExecSQL; except end; //cek isi tabel Close; SQL.Text := ' SELECT * FROM C'+ IntToStr(C) ; Open;
if IsEmpty then keluar := true; end; //end of while not keluar do //===========end of mengambil item yang memenuhi syarat (C2 dst)==========// //===========itung confidence ===================// for i := 2 to C-1 do begin Close; SQL.Text := 'SELECT * FROM C' + IntToStr(i) + ' ORDER BY JML DESC'; Open; while not eof do begin temp := 0; for j := i downto 1 do begin Query1.Close; Query1.SQL.Text := ' SELECT JML FROM C' + IntToStr(i-1) + ' WHERE '; for k := 1 to i-1 do begin Query1.SQL.Text := Query1.SQL.Text + ' item' + IntToStr(k) + ' = ' ; if temp = k then begin Query1.SQL.Text := Query1.SQL.Text + Fields[temp].AsString + ' and '; temp := temp + 2 end else begin Query1.SQL.Text := Query1.SQL.Text + Fields[temp].AsString + ' and '; temp := temp + 1 end
end; Query1.SQL.Text := copy(Query1.SQL.Text,1, length(Query1.SQL.Text)-7); Query1.Open; //jika nilai confidence minimum terpenuhi if FieldByName('jml').AsInteger*100/ Query1.FieldByName('jml').AsInteger >= min_confidence then begin antecedent := 'JIKA membeli '; for k := 1 to i do begin if k = j then konklusi := ' MAKA akan membeli '+ Fields[k-1].AsString + ' dengan SUPPORT '+ FormatFloat('0.00', FieldByName('jml').AsInteger/ total_transaksi*100) + ' %' + ' dan CONFIDENCE '+ FormatFloat('0.00',FieldByName('jml').AsIn teger * 100 / Query1.FieldByName('jml').AsInteger) + ' %' else if ((j = 1) and (k>2)) or ((j>1) and (k>1)) then antecedent := antecedent + ', ' + Fields[k-1].AsString else antecedent := antecedent + Fields[k-1].AsString; end;
Memo1.Lines.Add(antecedent + konklusi); end; end; //end of for j := 1 to i do Next; end; //end of while not eof end; end; //end of with query do end; procedure TForm1.FormShow(Sender: TObject); begin C := 0; Memo1.Clear; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin Close; end; end
Gambar 5.12 berikut ini adalah tampilan hasil running program aplikasi untuk mengimplementasikan algoritma apriori.
Gambar 5.12 Aplikasi Aturan Asosiasi dengan algoritma apriori Aturan asosiasi yang diperoleh adalah sebagai berikut:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
JIKA membeli 21 MAKA akan dengan SUPPORT 0.96 % dan 20.51 % JIKA membeli 61 MAKA akan dengan SUPPORT 0.96 % dan 33.33 % JIKA membeli 16 MAKA akan dengan SUPPORT 0.84 % dan 16.28 % JIKA membeli 31 MAKA akan dengan SUPPORT 0.84 % dan 13.73 % JIKA membeli 16 MAKA akan dengan SUPPORT 0.72 % dan 13.95 % JIKA membeli 60 MAKA akan dengan SUPPORT 0.72 % dan 12.76 % JIKA membeli 16 MAKA akan dengan SUPPORT 0.72 % dan 13.95 % JIKA membeli 62 MAKA akan dengan SUPPORT 0.72 % dan 12.50 % JIKA membeli 30 MAKA akan dengan SUPPORT 0.72 % dan 18.75 % JIKA membeli 54 MAKA akan dengan SUPPORT 0.72 % dan 16.67 % JIKA membeli 31 MAKA akan dengan SUPPORT 0.72 % dan 12.76 % JIKA membeli 72 MAKA akan dengan SUPPORT 0.72 % dan 15.79 % JIKA membeli 60 MAKA akan dengan SUPPORT 0.72 % dan 12.76 %
membeli 61 CONFIDENCE membeli 21 CONFIDENCE membeli 31 CONFIDENCE membeli 16 CONFIDENCE membeli 60 CONFIDENCE membeli 16 CONFIDENCE membeli 62 CONFIDENCE membeli 16 CONFIDENCE membeli 54 CONFIDENCE membeli 30 CONFIDENCE membeli 72 CONFIDENCE membeli 31 CONFIDENCE membeli 71 CONFIDENCE
14. JIKA membeli 71 MAKA akan membeli 60 dengan SUPPORT 0.72 % dan CONFIDENCE 14.29 %
Aturan-aturan tersebut diperoleh dengan langkahlangkah sebagai berikut: 1. Mengambil ProductId dan frekunesi transaksi terhadap produk tersebut dari tabel Order Details yang memenuhi minimum transaksi dan dimasukkan ke dalam tabel C1. Tabel Order Details dan tabel C1 dapat dilihat pada lampiran 2, sedangkan minimum transaksi ditentukan oleh user pada form aplikasi, dan dalam hal ini diambil nilai minimum transaksi sebesar 5. 2. Membuat kombinasi item-item pada tabel C1 dan dimasukkan ke dalam tabel C2 menjadi calon 2-itemset. Pada langkah ini dilakukan pula penghitungan frekuensi transaksi yang mengandung kombinasi item-item tersebut. Kombinasi item yang memiliki frekuensi transaksi kurang dari nilai minimum_transaksi dihapus dari tabel C2. Isi dari tabel C2 dapat dilihat pada lampiran 2. 3. Membuat kombinasi item-item pada tabel C2 dan dimasukkan ke tabel C3 menjadi calon 3itemset. Seperti pada langkah 2, dilakukan penghitungan frekuensi transaksi yang mengandung kombinasi item dari calon kitemset, dan kombinasi yang tidak memenuhi nilai minimum transaksi dihapus dari tabel C3. Isi dari tabel C3 kosong, yang artinya tidak ada kombinasi item yang memuhi syarat minimum transaksi. 4. Dari tabel C2 dibentuk aturan asosiasi yang berbentuk
jika nilai[item1] maka nilai[item2] dan sebaliknya jika nilai[item2] maka nilai[item1] 5. dari masing-masing bentuk aturan asosiasi pada seluruh record yang ada di tabel C2 di lakukang perhitungan nilai confidence. Bagi aturan yang memenuhi syarat minimum confidence akan ditampilkan, sedangkan yang tidak memenuhi tidak ditampilkan. Dalam hal ini, minimum confidence ditentukan sebesar 10% Aplikasi ini sudah dapat digunakan untuk mencari aturan asosiasi sampai tingkat n-antecedent. Tetapi karena data dalam database belum terlalu banyak, maka aturan asosiasi yang ditemukan baru sampai 1-antecedent.