Algoritma Apriori

34
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

description

Deskripsi tentang algoritma apriori

Transcript of Algoritma Apriori

Page 1: Algoritma Apriori

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

Page 2: Algoritma Apriori

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} -> {susu} (support = 40%, confidence = 50%) 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

Page 3: Algoritma Apriori

Tahap ini mencari kombinasi item yang memenuhi syarat minimum dari nilai support dalam database. Nilai support sebuah item diperoleh dengan rumus berikut:

TransaksiTotal

AmengandungtransaksiJumlahASupport =)(

sedangkan nilai support dari 2 item diperoleh dari rumus 2 berikut :

)(),( BAPBASupport ∩=

Transaksi

BdanAmengandungTransaksiBASupport

∑∑=),(

Tabel 5.1. Transaksi

Transaksi Item yang dibeli 1 Susu, Teh, Gula 2 Teh, Gula, Roti 3 Teh, Gula 4 Susu, Roti 5 Susu, Gula, Roti 6 Teh, Gula 7 Gula, Kopi, Susu 8 Gula, Kopi, Susu 9 Susu, Roti, Kopi

10 Gula, Teh, Kopi

Sebagai contoh, ada database dari transaksi belanja pasar swalayan seperti ditunjukkan dalam Tabel 5.1

Page 4: Algoritma Apriori

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 Item yang dibeli 1 Susu 1 Teh 1 Gula 2 Teh 2 Gula 2 Roti 3 Teh 3 Gula 4 Susu 4 Roti 5 Susu 5 Gula 5 Roti 6 Teh 6 Gula 7 Gula 7 Kopi 7 Susu 8 Gula 8 Kopi 8 Susu 9 Susu 9 Roti 9 Kopi 10 Gula 10 Teh 10 Kopi

Page 5: Algoritma Apriori

Dan bila kita bentuk dalam bentuk tabular, data transaksi akan tampak seperti pada Tabel 5.3.

Format Tabular Data Transaksi

Transaksi Teh Gula Kopi Susu Roti 1 1 1 0 1 0 2 1 1 0 0 1 3 1 1 0 0 0 4 0 0 0 1 1 5 0 1 0 1 1 6 1 1 0 0 0 7 0 1 1 1 0 8 0 1 1 1 0 9 0 0 1 1 1 10 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 ( A �B)

Dimana antecedent A dan consequent B merupakan subset dari I, dan A dan B merupakan mutually exclusive dimana aturan

Jika A maka B

Page 6: Algoritma Apriori

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 3-itemset. 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.

Page 7: Algoritma Apriori

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. Itemset-itemset dari F2 yang dapat digabungkan adalah itemset-itemset yang memiliki kesamaan dalam k-1

Page 8: Algoritma Apriori

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:

AmengandungTransaksi

BdanAmengandungTransaksiABPConfidence

∑== )|(

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 Maka akan membeli Kopi

2/4 50%

Jika membeli Gula dan Kopi Maka akan membeli Susu

2/3 67%

Jika membeli Kopi dan Susu Maka akan membeli Gula

2/3 67%

Misalkan ditetapkan nilai confidence minimal adalah 60% maka aturan yang bisa terbentuk adalah aturan dengan 2 antecedent berikut:

Page 9: Algoritma Apriori

Jika membeli Gula dan Kopi Maka akan membeli Susu Jika membeli Kopi dan Susu Maka akan membeli Gula Sementara itu calon aturan asosiasi dari F2 bisa dilihat pada tabel 5.7

Aturan Asosiasi Aturan Confidence Jika membeli Teh Maka akan membeli Gula

5/5 100%

Jila membeli Gula Maka akan membeli Teh

5/8 62.5%

Jika membeli Gula Maka akan membeli Kopi

3/8 37.5%

Jika membeli Kopi Maka akan membeli Gula

3/4 75%

Jika membeli Gula Maka akan membeli Susu

4/8 50%

Jika membeli Susu Maka akan membeli Gula

4/6 67%

Jika membeli Gula Maka akan membeli Roti

2/8 25%

Jika membeli Roti Maka akan membeli Gula

2/4 50%

Jika membeli Kopi Maka akan membeli Susu

3/4 75%

Jika membeli Susu Maka akan membeli Kopi

3/6 50%

Jika membeli Susu Maka akan membeli Roti

3/6 50%

Jika membeli Roti Maka akan membeli Susu

3/4 75%

Page 10: Algoritma Apriori

dan aturan asosiasi final terurut berdasarkan Support x Confidence terbesar dapat dilihat pada Table 5.8.

Aturan Asosiasi Final

ATURAN SUPPORT CONFIDENCE SUPPORT x CONFIDENCE

Jika membeli Teh Maka akan membeli Gula

50% 100%

50.0% Jila membeli Gula Maka akan membeli Teh

50% 62.50%

31.3% Jika membeli Susu Maka akan membeli Gula

40% 67%

26.8% Jika membeli Kopi Maka akan membeli Gula

30% 75%

22.5% Jika membeli Kopi Maka akan membeli Susu

30% 75%

22.5% Jika membeli Roti Maka akan membeli Susu

30% 75%

22.5% Jika membeli Gula dan Kopi Maka akan membeli Susu

20% 67%

13.4% Jika membeli Kopi dan Susu Maka akan membeli Gula

20% 67%

13.4%

Page 11: Algoritma Apriori

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

Page 12: Algoritma Apriori

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

Page 13: Algoritma Apriori

Gambar 5.2 Flowchart Program untuk mendapatkan

kombinasi yang memenuhi (1)

Page 14: Algoritma Apriori

Gambar 5.3. Flowchart Program untuk mendapatkan kombinasi yang memenuhi(2)

Page 15: Algoritma Apriori

Gambar 5.4 Flowchart Program untuk mendapatkan

kombinasi yang memenuhi(3)

Page 16: Algoritma Apriori

Gambar 5.5 Flowchart Program untuk mendapatkan

kombinasi yang memenuhi(4) Gambar 5.6 menunjukkan Rancangan Form yang digunakan dalam impelementasi algoritma apriori.

Page 17: 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

Page 18: Algoritma Apriori

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

Page 19: Algoritma Apriori

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.

Page 20: Algoritma Apriori

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

Page 21: Algoritma Apriori

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

Page 22: Algoritma Apriori

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

Page 23: Algoritma Apriori

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}

Page 24: Algoritma Apriori

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;

Page 25: Algoritma Apriori

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

Page 26: Algoritma Apriori

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) + ') '+

Page 27: Algoritma Apriori

' 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;

Page 28: Algoritma Apriori

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

Page 29: Algoritma Apriori

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').AsInteger * 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;

Page 30: Algoritma Apriori

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.

Page 31: Algoritma Apriori

Gambar 5.12 Aplikasi Aturan Asosiasi dengan algoritma apriori Aturan asosiasi yang diperoleh adalah sebagai berikut:

Page 32: Algoritma Apriori

1. JIKA membeli 21 MAKA akan membeli 61 dengan SUPPORT 0.96 % dan CONFIDENCE 20.51 %

2. JIKA membeli 61 MAKA akan membeli 21 dengan SUPPORT 0.96 % dan CONFIDENCE 33.33 %

3. JIKA membeli 16 MAKA akan membeli 31 dengan SUPPORT 0.84 % dan CONFIDENCE 16.28 %

4. JIKA membeli 31 MAKA akan membeli 16 dengan SUPPORT 0.84 % dan CONFIDENCE 13.73 %

5. JIKA membeli 16 MAKA akan membeli 60 dengan SUPPORT 0.72 % dan CONFIDENCE 13.95 %

6. JIKA membeli 60 MAKA akan membeli 16 dengan SUPPORT 0.72 % dan CONFIDENCE 12.76 %

7. JIKA membeli 16 MAKA akan membeli 62 dengan SUPPORT 0.72 % dan CONFIDENCE 13.95 %

8. JIKA membeli 62 MAKA akan membeli 16 dengan SUPPORT 0.72 % dan CONFIDENCE 12.50 %

9. JIKA membeli 30 MAKA akan membeli 54 dengan SUPPORT 0.72 % dan CONFIDENCE 18.75 %

10. JIKA membeli 54 MAKA akan membeli 30 dengan SUPPORT 0.72 % dan CONFIDENCE 16.67 %

11. JIKA membeli 31 MAKA akan membeli 72 dengan SUPPORT 0.72 % dan CONFIDENCE 12.76 %

12. JIKA membeli 72 MAKA akan membeli 31 dengan SUPPORT 0.72 % dan CONFIDENCE 15.79 %

13. JIKA membeli 60 MAKA akan membeli 71 dengan SUPPORT 0.72 % dan CONFIDENCE 12.76 %

Page 33: Algoritma Apriori

14. JIKA membeli 71 MAKA akan membeli 60 dengan SUPPORT 0.72 % dan CONFIDENCE 14.29 %

Aturan-aturan tersebut diperoleh dengan langkah-langkah 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 3-itemset. Seperti pada langkah 2, dilakukan penghitungan frekuensi transaksi yang mengandung kombinasi item dari calon k-itemset, 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

Page 34: Algoritma Apriori

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.