Associate Rule / Analisa Asosiasi


Association Rule / Analisa Asosiasi adalah suatu proses untuk mencari hubungan antar data dalam suatu kumpulan data yang terjadi pada sebuah kejadian. Contoh yang dibahas kali ini adalah mengenai penentuan aturan pada barang-barang yang laris terjual.



Diasumsikan ada 15 data barang yang dijual, dengan data sebagai berikut

Tipe Barang Barang 1 Barang 2 Barang 3
Pensil Pensil 2B Pensil 3B Pensil 4B
Penghapus Penghapus L3 Penghapus S1 Penghapus Dex
Pena Pena Merah Pena Biru Pena Hitam
Penggaris Penggaris 15cm Penggaris 20cm Penggaris 30cm
Buku Buku Tulis Buku Gambar Komik

Contoh data barang adalah sebagai berikut:



Kemudian diketahui terdapat 10 transaksi penjualan dalam 1 hari
Maka tentukan aturan untuk setiap pasang barang yang laris terjual
Diasumsikan 10 data transaksi penjualan tersebut adalah sebagai berikut:

Transaksi Barang Terjual
Transaksi 1 Pensil 4B Penghapus L3 Penggaris 20cm Penggaris 30cm Buku Gambar Komik
Transaksi 2 Pensil 2B Penghapus S1 Pena Merah Pena Hitam Penggaris 30cm Komik
Transaksi 3 Pensil 3B Pena Hitam Penggaris 15cm Buku Tulis Buku Gambar
Transaksi 4 Pensil 2B Pensil 4B Penggaris 15cm Penggaris 20cm
Transaksi 5 Pensil 3B Penghapus L3 Pena Biru Penggaris 20cm Penggaris 30cm Buku Tulis Buku Gambar
Transaksi 6 Penghapus Dex Pena Biru Penggaris 30cm
Transaksi 7 Penghapus L3 Penghapus S1 Pena Merah Pena Hitam Penggaris 15cm Penggaris 20cm Buku Tulis Komik
Transaksi 8 Pensil 2B Penghapus S1 Penghapus Dex Pena Biru Pena Hitam Buku Gambar
Transaksi 9 Pensil 2B Penghapus L3 Penggaris 20cm Buku Tulis
Transaksi 10 Pensil 3B Pensil 4B Penghapus S1 Pena Biru Pena Hitam

Contoh data transaksi adalah sebagai berikut:
Sebagai catatan, masing-masing transaksi diperbolehkan memiliki data barang yang sama persis
Hanya saja dalam kasus ini, tidak terdapat transaksi yang kembar


Langkah-langkah penggunaan algoritma ini adalah

1. Lakukan konversi data transaksi ke dalam bentuk angka
Diasumsikan 15 data barang yang ada memiliki indeks yang urut dari angka 1 sampai dengan 15

* Lakukan pencarian itemSet untuk barang terjual yang banyak terjadi (poin 2 – 4)
2. Tentukan nilai persentase support sebagai faktor penentu sebuah barang dapat dikatakan ‘laris terjual’
Dalam kasus ini nilai persentase support bernilai 0.3
Nantinya nilai support ini akan dikalikan dengan jumlah transaksi yang terjadi, dalam kasus ini bernilai 10
sehingga 0.3 * 10 = 3, artinya sebuah barang dikatakan laris terjual apabila terjual sebanyak 3 kali dalam seluruh transaksi

3. Tentukan batas minimal dan batas maksimal kumpulan barang yang akan dihitung
Dalam kasus ini nilai minimal dan maksimal adalah 2 dan 4
Artinya kumpulan barang yang dihitung adalah kumpulan barang dengan jumlah 2 barang, 3 barang, dan 4 barang

4. Lakukan proses pencarian itemSet untuk barang terjual yang terjadi sesuai kriteria tersebut
Hasil perhitungan adalah kumpulan itemSet yang memenuhi kriteria (poin 4a – 4d)

Memasuki perhitungan pada fungsi HitungItemSet

4a. Hitung jumlah masing-masing barang pada semua transaksi

4b. Untuk setiap data barang yang memenuhi syarat minimum,
tambahkan data barang ke variabel dictItemSetLaris, daftarItemSetLaris, dataBarangValid

4c. Cari semua itemSet dengan ukuran 2, 3, 4 barang (poin 4c1 – 4c3)

4c1. Gunakan itemSet terpilih untuk membuat itemSet baru dengan ukuran itemSet lama + 1 (poin 4c1a dan 4c1b)

4c1a. Hanya Gunakan itemSet yang ukurannya adalah ukuran itemSet lama dikurangi 1

4c1b. Lakukan perhitungan sebanyak jumlah data valid (poin 4c1b1 – 4c1b6)

4c1b1. Simpan itemSet lama

4c1b2. Karena data transaksi sudah terurut, maka tidak semua data barang perlu dihitung

4c1b3. Tambahkan data barang valid sebagai data baru pada indeks terakhir ukuran

4c1b4. Jika ItemSet yang baru ternyata sudah ada pada dictionary, maka cari itemSet baru yang lain

4c1b5. Hitung berapa banyak itemsSet yang baru ini terjadi pada semua transaksi

4c1b6. Jika itemSet baru ini terjadi minimal sebanyak nilai support, maka tambahkan itemSet ini ke dalam dictionary

4c2. Update data barang valid berdasarkan dictionary yang baru saja diupdate

4c3. Untuk menjaga agar data barang valid selalu dalam keadaan terurut

4d. Masukkan semua itemset yang memenuhi kondisi sebagai jawaban

* Dari setiap itemSet yang ditemukan, tentukan relasi antar barang dalam itemSet tersebut (poin 5 – 6)

5. Tentukan nilai persentase confidence sebagai faktor penentu tingkat kebenaran relasi antar barang dalam itemSet
Dalam kasus ini nilai persentase confidence bernilai 0.7
Artinya relasi tersebut akan termasuk sebagai jawaban apabila tingkat kebenaran nya pada semua transaksi diatas 70%

6. Lakukan proses perhitungan nilai confidence untuk setiap relasi antar barang yang ditemukan
Hasil perhitungan adalah aturan-aturan relasi antar barang dengan tingkat kebenaran lebih dari 70%
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

6a. Lakukan perhitungan pada semua itemset (poin 6a1 dan 6a2)

6a1. Hitung berapa kali itemSet ini muncul pada semua transaksi

* Gunakan Fungsi ini untuk menghitung berapa kali sebuah itemSet muncul pada semua transaksi
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

6a2. Cari barang yang akan menjadi klausa sebab dan klausa akibat dari sebuah aturan
Semua barang akan dicari mulai ukuran 1 barang sampai dengan ukuran jumlah barang – 1 (poin 6a2a dan 6a2b)

6a2a. Cari kombinasi semua barang dengan ukuran 1 barang sampai dengan ukuran sebesar variabel len

6a2b. Untuk setiap kombinasi barang dengan ukuran x (poin 6a2a1 – 6a2a5)

6a2a1. Tentukan barang yang akan masuk ke dalam klausa sebab dari sebuah aturan
Jika itemSet bernilai (1,3,5,7,9) dan nilai kombinasi (0,2), maka nilai pada klausa sebab adalah (1,5)

6a2a2. Tentukan barang yang akan masuk ke dalam klausa akibat dari sebuah aturan
Jika itemSet bernilai (1,3,5,7,9) dan nilai kombinasi (0,2), maka nilai pada klausa akibat adalah (3,7,9)

6a2a3. Hitung jumlah barang-barang pada klausa sebab muncul pada semua transaksi

6a2a4. Hitung nilai confidence, yaitu tingkat kebenaran jumlah barang-barang pada klausa sebab terjadi pada semua transaksi
Jika nilai confidence lebih dari parameter minConfidence, maka buat aturan baru dengan data-data ini

6a2a5. Cari kombinasi lain dari itemSet ini
Jika ukuran = 5, dan nilai kombinasi = (0 3 4) maka nilai selanjutnya adalah 1 2 3)
Jika ukuran = 5, dan nilai kombinasi = (3 4 5) maka nilai selanjutnya adalah null

* Agar dapat menjalankan skrip diatas, maka diperlukan 2 buah Class, yaitu Class Itemset untuk menampung data jumlah barang, ukuran itemset, dan data transaksi yang dihitung, dan kemudian Class Aturan untuk menampung data sebab akibat sebuah aturan, data barang, dan nilai confidence. Deklarasi kedua class tersebut adalah sebagai berikut:


Hasil akhir adalah: (klik untuk perbesar gambar)

cmd37


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.

Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *