Page 1
i
ANALISIS KERANJANG BELANJA PADA DATA
PENJUALAN OBAT DI APOTEK SANATA DHARMA REALINO
DENGAN ALGORITMA FP-GROWTH
TUGAS AKHIR
Disusun Oleh :
Antonio Kenny Setiawan
155314034
PROGRAM STUDI INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 2
ii
MARKET BASKET ANALYSIS FOR MEDICINE SALES DATA AT
SANATA DHARMA REALINO DRUGSTORE
BY USING FP-GROWTH ALGORITHM
UNDER GRADUATE THESIS
By :
Antonio Kenny Setiawan
155314034
INFORMATICS STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 3
v
HALAMAN MOTO
A Father’s Prayer
“Build me a son, O Lord, who will be strong enough to know when he is weak, and brave enough to face himself when he is afraid; one who will be proud and unbending in honest defeat, and humble and gentle in victory. Build me a son whose wishbone will not be where his backbone should be; a son who will know Thee and that to know himself is the foundation stone of knowledge. Lead him, I pray, not in the path of ease and comfort, but under the stress and spur of difficulties and challenge. Here let him learn to stand up in the storm; here let him learn compassion for those who fail. Build me a son whose heart will be clean, whose goal will be high; a son who will master himself before he seeks to master other men; one who will learn to laugh, yet never forget how to weep; one who will reach into the future, yet never forget the past. And after all these things are his, add, I pray, enough of a sense of humor, so that he may always be serious, yet never take himself too seriously. Give him humility, so that he may always remember the simplicity of greatness, the open mind of true wisdom, the meekness of true strength. Then I, his father, will dare to whisper, "I have not lived in vain.”
- Douglas MacArthur
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 4
vii
ABSTRAK
Perkembangan industri di dunia medis, khususnya dalam industri farmasi, membuat para
pelaku usaha apotek mengembangkan sebuah cara bagaimana cara meningkatkan penjualan
khususnya obat-obatan. Setiap apotek memiliki database yang berisi data transaksi pembelian
obat dan peralatan medis. Dari data tersebut bisa diketahui obat dan brang medis apa saja yang
paling banyak dibeli. Pada penelitian ini mencoba melakukan analisis keranjang belanja pada
transaksi pembelian obat di Apotek Sanata Dharma Realino. Data transaksi pembelian ini
dipakai untuk mencari produk obat maupun peralatan medis yang dibeli secara bersamaan.
Yang dihasilkan dari penelitian ini adalah aturan asosiasi antar obat atau peralatan medis yang
dibeli. Data yang digunakan pada penelitian ini menggunakan data bulan Januari hingga Juli
2019.
Algoritma FP-Growth menggunakan FP-Tree untuk menentukan frequent itemset dari
sebuah database. . Algoritma FP-Growth menggunakan 2 parameter yaitu minimum support
dan minimum confidence. Aturan asosiasi dipakai untuk mencari pola keterkaitan produk yang
dibeli secara bersamaan sehinga menghasilkan item yang berkaitan dengan item lainnya.
Berdasarkan penelitian ini, diperoleh kesimpulan bahwa untuk nilai minimum confidence yang
sama, semakin tinggi nilai minimum support maka akan semakin sedikit aturan asosiasi yang
dihasilkan. Hasil aturan asosiasi cenderung kurang variatif dikarenakan ada 2 item dengan
frekuensi pembeliannya jauh lebih sering dibandingkan item lain. Pada pengujian data
keseluruhan dari bulan Januari hingga Juli 2019, dengan minimum support sebesar 1% dan
minimum confidence sebesar 60% diperoleh 1 aturan asosiasi dengan support = 1,2%,
confidence = 61% dan lift ratio = 14,4 yaitu aturan ROHTO TM → VITACIMIN LEMON . Pengujian
dengan minimum support = 8% dan dengan minimum confidence = 20% menghasilkan 1
aturan asosiasi dengan lift ratio 0,61 yaitu aturan VITACIMIN LEMON → PARACETAMOL 500
MG .
Kata Kunci :
Algoritma FP-Growth, FP-Tree, Aturan Asosiasi, Frequent Itemset.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 5
viii
ABSTRACT
The development of medical industries, especially in pharmaceutical industries, makes the
pharmacy businesses develop a way to increase sales especially for medicines. Each pharmacy
usually has a database that contains the transaction data of drug purchase and medical
equipment. From this data, we can identify the most purchased medicines and medical
equipment. In this study, the writer conducted a shopping cart analysis on a drug purchase
transaction at the Sanata Dharma Realino pharmacy. This purchase transaction data is used to
search for both medicinal products/or medical equipment purchased simultaneously. The result
of this research is the association rules between drugs and/or medical equipment purchased.
This study uses data from January to July 2019.
FP-Growth algorithm use FP-Tree to find the frequent itemset of a database. The FP-Growth
algorithm uses 2 parameters i.e. minimum support and minimum confidence. The association
rules are used to find the interconnectedness of the products purchased simultaneously so as to
produce items related to other items.
Based on this study, it can be concluded that for the same confidence minimum value, the
higher the minimum support the fewer association rules that are generated. The results of
association rules tend to be less varied because there are 2 items with the purchase frequency
much more frequent than other items. Using training data from January to July 2019, with a
minimum support of 1% and confidence minimum of 60%, resulted on 1 association rule with
a support = 1,2, confidence = 61%, and lift ratio = 14,4, which is ROHTO TM → VITACIMIN
LEMON. The experiment with minimum support = 8% and minimum confidence = 20%,
resulted on 1 association rule with lift ratio of 0,61,which is VITACIMIN LEMON →
PARACETAMOL 500 MG .
Keywords :
FP-Growth Algorithms, FP-Tree, Association Rules, Frequent Itemset.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 6
xii
DAFTAR ISI
HALAMAN PERSETUJUAN .................................................. Error! Bookmark not defined.
HALAMAN PENGESAHAN SKRIPSI .................................. Error! Bookmark not defined.
HALAMAN MOTO ................................................................................................................. v
PERNYATAAN KEASLIAN KARYA ................................................................................. vi
ABSTRAK .............................................................................................................................. vii
ABSTRACT .......................................................................................................................... viii
LEMBAR PERNYATAAN PERSETUJUAN ...................................................................... ix
KATA PENGANTAR .............................................................................................................. x
DAFTAR ISI........................................................................................................................... xii
DAFTAR GAMBAR .............................................................................................................. xv
DAFTAR TABEL ................................................................................................................. xvi
BAB I PENDAHULUAN ......................................................................................................... 1
1.1 Latar Belakang .......................................................................................................... 1
1.2 Rumusan Masalah ..................................................................................................... 2
1.3 Tujuan Penelitian ...................................................................................................... 3
1.4 Manfaat Penelitian .................................................................................................... 3
1.5 Batasan Masalah ............................................................................................................ 3
1.6 Sistematika Penulisan .................................................................................................... 3
BAB II TINJAUAN PUSTAKA ............................................................................................. 5
2.1 Pengertian Data Mining............................................................................................ 5
2.2 Association Rules Mining .......................................................................................... 5
2.3 Analisis Keranjang Belanja ...................................................................................... 5
2.4 Proses Penambangan Data ....................................................................................... 5
2.5 Algoritma FP-Growth ............................................................................................... 6
2.5.1 FP-Tree ................................................................................................................ 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 7
xiii
2.5.2 Pembentukan Frequent Itemset............................................................................ 8
2.6 Aturan Asosiasi ........................................................................................................ 14
2.7 Lift Ratio .................................................................................................................. 15
2.8 Contoh Perhitungan Dengan Algoritma FP-Growth ........................................... 16
2.8.1 FP-Growth ......................................................................................................... 16
2.8.2 Aturan asosiasi ................................................................................................... 20
BAB III METODOLOGI PENELITIAN ............................................................................ 22
3.1 Pengumpulan Data .................................................................................................. 22
3.2 Pemrosesan Awal..................................................................................................... 23
3.3 Algoritma FP-Growth ............................................................................................. 23
3.4 Menghasilkan Aturan Asosiasi .............................................................................. 23
3.5 Evaluasi hasil ........................................................................................................... 23
BAB IV PEMROSESAN AWAL DAN PERANCANGAN SISTEM .............................. 25
6.1 Pemrosesan Awal..................................................................................................... 25
2. Data Integration ........................................................................................................ 26
6.2 Perancangan Sistem ................................................................................................ 28
4.2.1 Perancangan Umum ........................................................................................... 28
4.2.2 Diagram use case ............................................................................................... 30
4.2.3 Narasi use case ................................................................................................... 30
4.2.6 Perancangan Antarmuka. ................................................................................... 32
BAB V IMPLEMENTASI SISTEM DAN EVALUASI HASIL ....................................... 33
5.1 Implementasi Sistem ............................................................................................... 33
5.2 Evaluasi Dan Analisis Hasil .................................................................................... 35
BAB VI PENUTUP ................................................................................................................ 39
6.1 Simpulan ....................................................................................................................... 39
6.2 Saran .............................................................................................................................. 40
Daftar Pustaka ....................................................................................................................... 41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 8
xiv
LAMPIRAN............................................................................................................................ 43
LAMPIRAN 1 Diagram Batang Item Terbeli Terbanyak ............................................. 44
LAMPIRAN 2 Baris Kode Program ................................................................................ 45
LAMPIRAN 3 Pengujian Akurasi .................................................................................... 51
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 9
xv
DAFTAR GAMBAR
Gambar 2. 1 Proses pembentukan FP-Tree .............................................................................. 7
Gambar 2. 2 Penguraian itemset generation ke dalam subproblem.. ....................................... 9
Gambar 2. 3 Mencari frequent itemsets yang berakhir di e. .................................................. 10
Gambar 2. 4 Kumpulan data yang bersisi 15 transaksi pembelian obat ................................. 17
Gambar 2. 5 Potongan tahapan pembentukan FP-Tree dengan 15 data sampel. ................... 18
Gambar 3. 1 Tahapan Penelitian ............................................................................................ 22
Gambar 4. 1 Kondisi data yang akan digunakan untuk penelitian ......................................... 25
Gambar 4. 2 Data ditranformasikan dalam bentuk array ....................................................... 27
Gambar 4. 3 Boolean Matrix pada data uji ............................................................................ 28
Gambar 4. 4 Diagram konteks ................................................................................................ 28
Gambar 4. 5 Diagram flowchart ............................................................................................. 29
Gambar 4. 6 Diagram use case ............................................................................................... 30
Gambar 4. 7 Perancangan interface halaman beranda sistem. .............................................. 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 10
xvi
DAFTAR TABEL
Tabel 2. 1 Daftar item yang sering muncul dengan akhirannya. ............................................... 9
Tabel 2. 2 Dataset sample ....................................................................................................... 16
Tabel 2. 3 Frequent itemset dari 15 data sampel transaksi pembelian obat. ........................... 19
Tabel 2. 4 Aturan asosiasi dari 15 data sampel transaksi pembelian obat. ............................. 20
Tabel 5. 1 Perbandingan jumlah Aturan Asosiasi yang Dihasilkan ........................................ 37
Tabel 5. 2 Hasil aturan asosiasi dengan nilai support dan confidence terbaik. ....................... 37
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 11
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan industri di dunia medis, khususnya dalam industri apotek, membuat para
pelaku usaha apotek mengembangkan sebuah cara bagaimana cara meningkatkan
penjualan khususnya obat-obatan. Salah satu caranya adalah memastikan stok obat-
obatan tetap tersedia sesuai kebutuhan konsumen. Setiap apotek banyak terjadi
transaksi penjualan maupun pembelian obat. Data transaksi tersebut akan selalu
bertambah seiring banyaknya transaksi. Dari data-data transaksi yang dikumpulkan
menjadi sebuah informasi yang dapat digunakan untuk mengembangkan bisnis serta
dapat menenentukan obat apa yang akan dijual.
Data mining (penambangan data) adalah suatu analisis dari data yang berukuran besar
dengan tujuan untuk menemukan pola atau kecenderungan yang penting yang tidak
disadari keberadaannya. Data mining bukanlah bidang yang baru. Faktanya data mining
memiliki kaitan dengan berbabagai macam ilmu misalnya kecerdasan buatan (artificial
intelligence), mesin cerdas (machine learning), pemrolehan informasi (information
retrieval), basis data (database), serta statistika (Pramudiono, 2006).
FP- Growth (Frequent Pattern Growth) adalah satu metode dalam penambangan data
yang mengunakan frequent itemset tanpa menggunakan candidate generation, yang
sudah dikembangkan. Metode ini diambil dari prinsip divide and conquer untuk
diproyeksikan dan membagi data berdasarkan pola yang ditemukan (Han, 2000)
Penelitian tentang analisis keranjang belanja dengan metode asosiasi dengan data
penjualan obat pernah diteliti oleh Buulolo (2013) dengan judul Implementasi
Algoritma Apriori Pada Sistem Persediaan Obat (Studi Kasus: Apotek Rumah Sakit
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 12
2
Estomihi Medan) menghasilkan pola kombinasi yang paling tinggi supportnya adalah
pola Ketorolac 3% Inj 30 mg/ml. Ringer Lactate Larutan, sedangkan pola kombinasi
yang paling banyak itemnya adalah kombinasi itemsets Ceftriaxone Inj 1.0g, Ketorolac
3% Inj 30 mg/ml, Metronidazole Inj 5 mg/ml – 100 ml, Ringer Lactate Larutan dan
Pitogin Inj 10 IU/ml/Sintosin.
Penelitian analisis keranjang belanja juga dilakukan Lestari (2015), dengan judul
Penerapan Data Mining Menggunakan Algoritma FP-Tree dan FP-Growth Pada Data
Transaksi Penjualan Obat. Hasil yang didapat dari implementasi algoritma FP-Growth
adalah penjualan obat yang yang paling banyak pada apotek adalah Fungoral,
Alopurinol, Diatizem HCL, Batugin, dan Ketoconzole.
Dari beberapa penelitian yang sudah dilakukan, maka pada penelitian ini dilakukan
pengolahan data transaksi penjualan pada Apotek Sanata Dharma Realino dengan
menggunakan algoritma FP-Growth untuk menganalisis keranjang belanja yang
dihasilkan dari hasil transaksi penjualan serta menghasilkan sebuah informasi tentang
pola dan aturan asosiasi produk yang sering dibeli konsumen. Hasil dari analisis dapat
digunakan untuk menentukan strategi penjualan kedepannya dan dapat meningkatkan
pendapatan.
1.2 Rumusan Masalah
Dari latar belakang masalah tersebut, maka dapat dirumuskan permasalahan sebagai berikut :
1. Bagaimana implementasi metode FP- Growth dalam analisis keranjang belanja pada
transaksi pembelian obat di Apotek Realino Sanata Dharma?
2. Berapa besaran minium support dan minium confidence yang optimal yang dapat
menghasilkan aturan asosiasi yang kuat?
3. Seberapa kuat aturan asosiasi yang terbentuk pada algoritma FP- Growth pada data
transaksi pembelian obat di Apotek Realino Sanata Dharma?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 13
3
1.3 Tujuan Penelitian
Berdasarkan latar belakang dan rumusan masalah yang dibahas, maka tujuan penelitian ini
adalah :
1. Mengetahui hasil dari analisis keranjang belanja dengan algoritma FP-Growth.
2. Mengetahui kuat aturan asosiasi yang terbentuk dari algoritma FP-Growth pada data
transaksi pembelian obat di Apotek Realino Sanata Dharma.
1.4 Manfaat Penelitian
Manfaat yang diperoleh dari penelitian ini adalah agar pihak apotek dapat
mempersiapkan paket obat-obatan yang dijual sesuai pola asosiasi yang diperoleh.
1.5 Batasan Masalah
Berdasarkan latar belakang, rumusan masalah dan tujuan penelitian, agar tidak
menyimpang dari apa yang akan dibahas, maka penulis memberi batasan –batasan dalam
penelitian ini. Batasan-batasan dalam penelitian ini antara lain :
1. Data yang diambil adalah data data transaksi penjualan obat-obatan di Apotek Realino
Sanata Dharma pada bulan Januari – Juli 2019.
2. Metode data mining yang digunakan adalah algoritma FP-Growth.
3. Hubungan antar item dari aturan asosiasi akan diukur menggunakan lift ratio.
1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir terdiri dari beberapa bab, yaitu :
1. BAB I : PENDAHULUAN
Bab ini berisi tentang latar belakang, rumusan masalah, tujuan penelitian, batasan
masalah, dan sistematika penulisan tugas akhir.
2. BAB II : TINJAUAN PUSTAKA
Bab ini berisi teori-teori yang menjadi dasar teori penelitian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 14
4
3. BAB III : METODOLOGI PENELITIAN
Bab ini berisi tentang langkah-langkah penyelesaian tugas akhir dan deskripsi data
yang digunakan dalam penelitian.
4. BAB IV : PEMROSESAN AWAL DAN PERANCANGAN SISTEM
Bab ini menjelaskan pemrosesan awal terhadap data dan perancangan sistem, yang
akan dibuat.
5. BAB V : IMPLEMENTASI SISTEM DAN ANALISIS HASIL
Bab ini berisi implementasi dan analisis hasil pengujian terhadap sistem yang telah
dibuat.
6. BAB VI : PENUTUP
Bab ini berisi tentang kesimpulan dari hasil penelitian serta saran yang diperoleh
berdasarkan hasil yang diperoleh untuk pengembangan penelitian selanjutnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 15
1
BAB II
TINJAUAN PUSTAKA
3.1 Pengertian Data Mining
Data mining adalah tentang bagaimana menyelesaikan masalah dengan cara
menganalisa data yang sudah tersedia di basis data. Data mining juga dapat
didefinisikan sebagai proses untuk menemukan pola pada sebuah data (Witten &
Frank, 2005).
3.2 Association Rules Mining
Association rules mining (penambangan aturan asosiasi) adalah teknik untuk mencari
hubungan ketertarikan dalam beberapa item dari sebuat dataset (Han, 2000).
3.3 Analisis Keranjang Belanja
Analisis keranjang belanja adalah proses yang menggabungkan kelompok item
transaksi yang tujuannya untuk meningkatkan penjualan dengan cara menganalisis
kebiasaan konsumen dalam melakukan transaksi pembelian barang yang ditempatkan
dalam satu keranjang belanja dengan menemukan asosiasi antar item yang diambil.
(Han, 2000).
3.4 Proses Penambangan Data
Beberapa langkah dalam penambangan data atau knowledge discovery from data
(KDD) menurut (Han,2000) sebagai berikut :
a. Data cleaning adalah proses pembersihan data untuk menghilangkan data yang noisy,
dan inconsistent data.
b. Data integration adalah proses menggabungkan beberapa data dari sumber data yang
berbeda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 16
6
c. Data selection adalah proses memilih data atau atribut yang relevan. Pada tahap ini analisis
korelasi atribut.
d. Data transformation adalah proses transformasi data ke dalam bentuk yang relevan
dengan proses penambanagan data.
e. Data mining adalah langkah ppenting dalam mengaplikasikan metode.
f. Pattern evaluation adalah Menngevaluasi pola yang didapat dari penambangan data.
g. Knowledge presentation adalah visualisasi dan representasi hasil dari penambangan data
agar mudah dipahami user/pengguna.
3.5 Algoritma FP-Growth
Algoritma FP-Growth adalah algoritma yang tidak memakai paradigma generated -
and – test biasa yang dilakukan oleh algoritma Apriori. Algoritma FP-Growth
mengkodekan sebuah data set menggunakan compact data structure yang biasa disebut
FP-Tree. Hasil yang dikeluarkan adalah itemsets yang sering muncul dan ditampilkan
secara langsung (Tan, Steinbach, & Kumar, 2006). Ada tiga langkah utama dalam
Algoritma FP-Growth yaitu :
1. Pembangkitan Conditional Pattern Base
Condittional pattern base adalah subdatabase yang berisi prefix path (jalur
awalah) dan suffix pattern (pola akhiran). Conditional pattern base didapatkan
dari FP-Tree yang telah dibangun sebelumnya.
2. Pembangkitan Conditional FP-Tree
Pada conditional FP-Tree, support count pada tiap item yang ada di setiap
conditional pattern base dijumlahkan, lalu setiap item yang memiliki item yang
mempunyai jumlah support count lebih besar sama dengan minimum support
maka akan dibangkitkan dengan conditional Fp-Tree.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 17
7
3. Pencarian frequent itemset
Jika conditional pattern base merupakan single path (lintasan tunggal), maka akan
didapatkan frequent itemset dengan kombinasi item pada setiap condititional
pattern. Pembangkitan FP- Growth akan dibangkitkan secara rekursif apabila
bukan lintasan tunggal.
2.5.1 FP-Tree
FP-Tree merupakan representasi peringkasan masukan data. Untuk membentuk sebuah
FP-Tree, dibuat dengan membaca kumpulan data dalam satu transaksi sekaligus dan
melakukan pemetaan transaksi ke jalur FP-Tree. Saat ada transaksi yang berbeda dan
mempunyai item-item yang serupa maka digunakan jalur yang dapat tumpeng tindih.
Jika semakin banyak jalur yang melakukan tumpang tindih satu dengan yang lain, yang
membutuhkan kompresi lebih banyak sehingga menggunakan struktur FP-Tree. Jika
ditemukan ukuran yang kecil untuk dimasukan ke dalam memori, maka dilakukan
ekstraksi itemset secara langsung dari struktur yang ada di dalam memori.
Gambar 2. 1 Proses pembentukan FP-Tree (Tan, Steinbach, & Kumar, 2006)
a:1
b:1
null
b:1
c:1
d:1
c:1
d:1
e:1
(ii) Setelah membaca TID = 3
a:8
b:5
null
b:2
c:2
e:1
c:1
d:1
e:1
(iv) Setelah membaca TID = 10
c:3d:1 d:1
d:1
a:1
b:1
null
b:1
c:1
d:1
(ii) Setelah membaca TID = 2
(i) Setelah membaca TID = 1
null
a:1
b:1
TID Item
1 {a,b}
2 {b,c,d}
3 {a,c,d,e}
4 {a,d,c}
5 {a,d,c}
6 {a,b,c,d}
7 {a}
8 {a,b,c}
9 {a,b,d}
10 {b,c,e}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 18
8
Berikut tahapan pembentukan FP-Tree :
1. Dataset dipindai sebanyak 1 kali untuk menemukan support count di setiap item.
Item yang jarang muncul akan dibuang. Item yang sering muncul akan diurutkan
(sort) dari besar ke kecil (decreasing support). Pada gambar 2.1. item a adalah item
yang lebih banyak terbeli, dengan jumlah kemunculan 8 kali. Kemudian disusul
oleh item b sebanyak 5 kali kemunculan, dan seterusnya dikuti dengan item dengan
kemunculan terkecil.
2. Tahap kedua adalah membangun FP-Tree baru setelah melakukan tahap pertama,
{a,b}, kemudian membuat node dengan label sebagai a dan b. Jalur dibentuk dari
sebuah null a b untuk melakukan encode. Tiap node di jalur memiliki bobot
frekuensi 1.
3. Tahap ketiga, membuat node baru untuk item b,c,d. Membuat jalur baru untuk
menghubungkan node nullbc d. Node di jalur ini mempunyai bobot
frekuensi sama dengan satu.
4. Pada transaksi ketiga, {b,c,d}, membagi item yang umum (adalah a) dengan
transaksi pertama. Sebagai hasilnya, jalur untuk transaksi ketiga adalah null a
c d e, tumpang tindih dengam jalur transaksi null ab. Karena tumpang
tindih jalur, jumlah path frequency untuk node a bertambah menjadi dua.
5. Proses dilanjutkan sampai setiap transaksi terpetakan ke satu transaksi dari jalur
yang diberikan di FP-Tree yang dihasilkan setelah membaca semua transaksi
(Gambar 2.1 bagian iv).
2.5.2 Pembentukan Frequent Itemset
FP-Growth adalah algoritma yang membentuk frequent itemset dari sebuah FP-Tree
dengan cara mengekplorasi tree di bottom-up. Sebagai contoh pada tree di gambar 2.2,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 19
9
pada algoritma terlihat frequent itemset berakhir di item e, kemudian diikuti oleh d,c,b,
dan berakhir di a. Strategi Bottom-up digunakan untuk mencari frequent itemset yang
berakhiran dengan item tertentu yang setara dengan basis suffix yang mendekati yang
dijelaskan pada Gambar 2.2 . Setiap transaksi akan terpetakan ke dalam jalur FP-Tree,
bisa diperoleh akhir dari frequent itemset tertentu, contoh item e, jalur yang diperiksa
hanyalah jalur yang mengandung node e. Jalur ini bisa diakses dengan cepat dengan
memakai pointer yang berkaitan dengan node e.
Gambar 2. 2 Penguraian itemset generation ke dalam subproblem. (Tan, Steinbach, &
Kumar, 2006).
Tabel 2. 1 Daftar item yang sering muncul dengan akhirannya.
Suffix Frequent Itemsets
e {e}, {d,e}, {a,d,e}, {c,e},{a,e}
d {d}, {c,d}, {b,c,d}, {a,c,d}, {b,d}, {a,b,d}, {a,d}
c {c}, {b,c}, {a,b,c}, {a,c}
b {b}, {a,b}
a {a}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 20
10
Setelah melakukan pencarian frequent itemsets yang berakhiran dengan e, maka
algoritma akan melakukan proses untuk mencari itemset yang berakhir di d, dengan
cara memproses jalur yang berasosiasi dengan node d. Jalur yang sesua dapat dilihat
pada gambar 2.2. Proses dilanjutkan sampai semua jalur tersambung atau saling
berasosiasi dengan nodes c, b dan berakhir di a kemudian dilakukan pemrosesan. Jalur
untuk item-item ini ditunjukkan pada Gambar 2.2 (c), (d), dan (e), sedangkan untuk
item yang sesuai sering dirangkum dalam Tabel 2.1. Pada tabel 2.1 setiap suffix diikuti
dengan frequent itemset yang satu jalur dengan suffix. Sebagai contoh akhiran (e) terdiri
dari itemset d dan e, ad dan e, dan seterusnya.
Gambar 2. 3 Mencari frequent itemsets yang berakhir di e. (Tan, Steinbach, & Kumar,
2006).
Algoritma FP-Growth mencari semua frequent itemsets dengan suffix tertentu dengan
strategi divide and conquer atau membagi dan menggabungkan untuk melakukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 21
11
pembagian dari satu masalah menjadi beberapa subproblem yang lebih kecil. Sebagai
contoh, kita mencari semua frequent itemsets yang berakhiran di e. Untuk melakukan
hal itu kita harus memeriksa apakah itemset{e} adalah frequent dirinya sendiri. Jika dia
adalah frequent, maka kita pertimbangkan subproblem untuk mencari itemsets yang
berakhiran dengan de, kemudian diikuti dengan ce,be, dan ae. Selanjutnya giliran
masing-masing dari subproblem ini diuraikan menjadi subproblem yang lebih kecil.
Dengan menggabungkan solusi yang diperoleh dari subproblem, semua itemsets yang
sering berakhiran e dapat ditemukan. Pendekatan membagi dan menaklukkan (divide
and conquer) ini adalah cara utama yang dipakai algoritma FP-growth. Berikut adalah
tahapan untuk menyelesaikan subproblems, untuk mencari frequent itemsets yang
berakhiran dengan e.
1. Langkah pertama, kumpulkan semua jalur yang mengandung node e. Ini
disebut sebagai awalan, maka dari itu dipanggil sebagai jalur prefix
(gambar 2.3(a)).
2. Dari jalur prefix yang ditunjukan pada gambar 2.3(a), support count
untuk e didapatkan dengan cara menambahkan support count yang
terasosiasi dengan node e. Asumsikan misalnya support count adalah
sebesar 2, {e} dinyatakan karena itemset yang sering muncul dan
support count sebesar 3.
3. Diakibatkan {e} sering muncul, maka yang subproblem harus
diselesaikan oleh algoritma untuk menemukan itemset yang berakhiran
dengan de,ce,be dan ae. Awal jalur harus dikonversi lebih dahulu
menjadi conditional FP-Tree sebelum melakukan penyelesaian
subproblem. Sekilas struktural ini mirip dengan FP-Tree kecuali
digunakan untuk mencari frequent itemsets yang berakhiran tertentu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 22
12
Cara memperoleh conditional FP-Tree adalah sebagai berikut :
a) Tahap pertama, support count sepanjang jalur prefix harus
diperbarui, karena beberapa perhitungan dalan transaksi tidak
termasuk di item e. Pada gambar 2.3 (a), null b:2c:2e:1, jalur
paling kanan, transaksi{b,c} tidak terkandung item e. Sepanjang
jalur awal, count harus menyesuaikan ke 1 untuk menampilkan
jumlah transaksi yang sebenarnya yang terkandung {b, c, e}.
b) Melakukan pemotongan pada jalur awal dengan cara menghapus
node e. Penghapusan node dilakukan karena support count dalam
jalur awalan telah perbarui untuk menunjukkan transaksi yang
mengandung hanya node e dan subproblem untuk itemset yang
ditemukan sering muncul dan berakhiran de, ce, be dan ae. Maka
informasi node e tidak dinutuhkan lagi.
c) Support count yang telah diperbarui sepanjang frefix path, dimana
memungkinkan beberapa item tidak lagi sering muncul. Sebagai
contoh, node b, memiliki support count sama dengan 1 dan hanya
muncul sekali yang menandakan hanya ada satu transaksi yang
berisi b dan e. Item b dapat diabaikan dengan aman dari analisis
selanjutkan, karena semua item yang berakhiran be jarang muncul.
4. Conditional FP-Tree digunakan pada FP-Growth untuk menyelesaikan
subproblem penentuan frequent itemset dengan akhiran de, ce, dan ae.
Prefix path untuk d dikumpulkan dari conditional FP-Tree pada e
(Gambar 2.3(c)) untuk menemukan itemset yang sering muncul
berakhiran. Dengan menambahkan jumlah frequency yang berasosiasi
dengan node d, maka akan didapatkan support count untuk {d,e}.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 23
13
Karena support count sama dengan 2, {d, e} dideklarasikan sebagai
frequent itemset.Tahap selanjutnya, algoritma membangun conditional
FP-Tree untuk de dengan menggunakan pendekatan yang dijelaskan
pada tahap ketiga. Setelah support count diperbarui dan melakukan
penghapusan item yang jarang muncul (c) yang ditunjukkan pada
gambar 2.3 (d) conditional FP-Tree untuk de. Karena conditional FP-
Tree hanya mengandung satu item a, yang mana support dengan minsup,
algoritma melakukan ekstrasi frequent itemset {a,d,e} dan bergerak ke
subproblem selanjutnya yang menhasilkan frequent itemset yang
berakhiran ce. Setelah prefix path untuk c diproses, ditemukan {c, e}
yang sering muncul. Algoritma akan memproses untuk menyelesaikan
subprogram selanjuntya dan menemukan {a, e} yang menjadi frequent
itemset satu-satunya yang tersisa.
Ilustrasi tadi menjelaskan pendekatan divide and conguer yang dipakai algoritma FP-
Growth. Pada tahap rekursiv, conditional FP-Tree dibentuk dengan cara memperbarui
jumlah frekuensi di sepanjang prefix path dan semua item yang jarang muncul akan
dihapus. FP-Growth tidak akan menghasilkan duplikasi itemsets karena subpromblem
adalah disjoint. Jumlah yang berasosiasi dengan node memperbolehkan algoritma
untuk menunjukan perhitungan s upport ketika menghasilkan common suffix itemsets.
FP-Growth adalah algoritma yang menarik karena menggambarkan bagaimana
representasi dari data set efektif membantu menghasilkan frequent itemsets.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 24
14
3.6 Aturan Asosiasi
Aturan asosiasi dapat diukur kekuatannya dengan support dan confidence. Support
merupakan pecahan dari transaksi yang terdiri dari suatu itemset dan memenentukan
seberapa sering suatu aturan berlaku untuk data yang diberikan. Untuk menentukan
seberapa sering item Y muncul di transaksi yang mengandung X disebut confidence.
(Tan, Steinbach, & Kumar, 2006).
𝑆𝑢𝑝𝑝𝑜𝑟𝑡(𝑋 𝑌) = 𝜎(𝑋∪𝑌)
𝑁 2.1
Dimana :
X,Y : Item yang terdapat dalam himpunanTransaksi..
N : Jumlah keseluruhan transaksi.
σ(X∪Y) : Jumlah transaksi yang mengandung X dan Y.
𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒(𝑋 𝑌) = 𝜎(𝑋∪𝑌)
𝜎(𝑋) 2.2
Di mana :
σ(X∪Y) : Jumlah transaksi yang mengandung X dan Y.
σ(X) : Jumlah transaksi yang mengandung X.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 25
15
Ada 2 tahap dalam penambangan aturan asosiasi secara umum :
1. Menentukan semua itemset yang sering muncul. Definisinya adalah, tiap-tiap
itemset akan terjadi setidaknya seing muncul sesuai perhitungangn minimum
support yang ditetapkan sebelumnya (minsup).
2. Frequent itemset menghasilkan aturan asosiasi yang kuat, aturan harus memenuhi
minimum support dan minimum confidence.
Jika tidak memenuhi memenuhi minimum support dan minimum confidence, maka
aturan asosiasi akan dibuang karena tidak menarik. Jika memenuhi ambang batas
minimum support dan minimum confidence maka aturan asosiasi dianggap menarik.
Ambang batas ditetapkan oleh pengguna atau ahli domain . Analisis tambahan bisa
dipakai untuk mencari statistik korelasi yang menarik hubungan antar item. Disebut
kuat apabila aturan memenuhi, baik minimum support (min sup) dan minimum
confidence (min cof). (Han,2000)
2.7 Lift Ratio
Lift ratio adalah ukuran korelasi yang sederhana (Jiawei Han, 2000). Perhitungan Lift
ratio antara kejadian X dan Y bisa diukur sebagai berikut :
𝑙𝑖𝑓𝑡 = 𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒(𝑋 𝑌)
𝑆𝑢𝑝𝑝𝑜𝑟𝑡(𝑌) 2.3
Dimana :
X, Y : Item yang ada dalam himpunan transaksi.
Confidende (X→Y) : Nilai confidence yang dimiliki transasksi X maka Y.
Support(Y) : Support yang dimiliki item Y.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 26
16
1. Jika nilai yang diapat dari persamaan (2.3) kurang dari 1, maka terjadinya A
adalah negatif berkorelasi dengan terjadinya B.
2. Jika nilai yang didapat lebih besar dari 1, maka A dan B berkorelasi positif, yang
berarti bahwa terjadinya satu bisa menandakan terjadikan yang lain.
3. Jika nilai yang didapat sama dengan 1, maka A dan B bersifat independent dan
tidak berkolerasi (Han,2000)
2.8 Contoh Perhitungan Dengan Algoritma FP-Growth
2.8.1 FP-Growth
Berikut adalah contoh implementasi dari analisis keranjang belanja menggunakan
algoritma FP-Growth dengan dataset sample. Jumlah baris sebanyak 49 baris dan
terdiri dari 15 transaksi pembelian obat.
Tabel 2. 2 Dataset sample
TID Item
10918013 ACYCLOVIR 200MG TAB
10918013 ACYCLOVIR CR 5G
10918013 AMOXICILLIN 500MG CAP
10918013 PARACETAMOL 500MG STRIP
40217023 ACYCLOVIR CR 5G
40217023 FRESHCARE HOT
40217023 TOLAK ANGIN CAIR 12S
50918005 ACYCLOVIR 400MG
50918005 ACYCLOVIR CR 5G
50918005 PARACETAMOL 500MG STRIP
51217026 ACYCLOVIR CR 5G
51217026 ENERVON C TAB STRIP
140218007 ACYCLOVIR 400MG
140218007 ACYCLOVIR CR 5G
140218007 DETTOL CAIR 50 ML
140218007 SENSI MASK 6S
151018018 ACYCLOVIR 200MG TAB
151018018 ACYCLOVIR CR 5G
151018018 PARACETAMOL 500MG (LOS)
180417016 ACYCLOVIR CR 5G
180417016 ANTANGIN JRG SACHET
200818026 ACYCLOVIR 400MG
200818026 ACYCLOVIR CR 5G
200818026 CAVIPLEX KAPLET
200818026 PARATUSIN TAB 10S
200917003 ACYCLOVIR 200MG TAB
200917003 ACYCLOVIR CR 5G
240918015 ACYCLOVIR 200MG TAB
240918015 ACYCLOVIR CR 5G
240918015 PARACETAMOL 500MG STRIP
261017019 ACYCLOVIR CR 5G
261017019 ENTROSTOP TAB 12S
261017019 KAPAS SELECTION 50G
261017019 PANADOL BIRU KAPLET
261017019 PANADOL COLD&FLU TAB
261017019 TOLAK ANGIN CAIR 12S
280717001 ACYCLOVIR CR 5G
280717001 TOLAK ANGIN CAIR 12S
290818031 ACYCLOVIR 400MG
290818031 ACYCLOVIR CR 5G
290818031 CETIRIZINE 10MG TAB
290818031 PARACETAMOL 500MG STRIP
300117024 ACYCLOVIR 400MG
300117024 ACYCLOVIR CR 5G
300117024 DEXAHARSEN 0,5MG
300117024 ENERVON C TAB STRIP
300117024 SANMOL TAB
300817017 ACYCLOVIR 400MG
300817017 ACYCLOVIR CR 5G
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 27
17
Dari data yang ada pada Tabel 2.2 lampiran selengkapnya dapat dilihat pada gambar
2.4. Pada gambar 2.4 dilakukan proses pencarian frekuensi untuk setiap item pada data
transaksi pembelian . Item pada awalnya diurutkan secara acak, kemudian diurutkan
dari item yang paling sering muncul ke item yang jarang muncul di setiap data
transaksi. Sebagai contoh analisis keranjang belanja ini memakai minimum support =
2 dan confdence = 80%. Item yang tidak memenuhi syarat akan dihilangkan.
Gambar 2. 4 Kumpulan data yang bersisi 15 transaksi pembelian obat
Pada Gambar 2.4 Item diberi inisial dengan tujuan untuk mempermudah untuk
melakukan perhitungan manual.
1. Pembentukan FP-Tree
Data yang telah dikumpulkan telah sesuai dengan algoritma FP-Growth pada
Gambar 2.4, akan dikelola seperti Gambar 2.4. Dalam tree menghasilkan Node
yang berisi label item beserta counter untuk menghitung berapa kali item tersebut
muncul. Untuk pembentukan FP-Tree, setiap transaksi akan dibaca terlebih
dahulu terhadap 15 data sampel transaksi pembelian obat. Pembentukan node root
dimulai dari null, algoritma akan membaca TID 1 yaitu transaksi dengan nomor
nota 010918013{a} dan dibuat node dengan label {a}. Maka terbentuklah satu
Item Count Inisialisasi TID Item
ACYCLOVIR CR 5G 15 a 10918013 {a,c,d}
ACYCLOVIR 400MG 6 b 40217023 {a,e}
ACYCLOVIR 200MG TAB 4 c 50918005 {a,b,d}
PARACETAMOL 500MG STRIP 4 d 51217026 {a,f)
TOLAK ANGIN CAIR 12S 3 e 140218007 {a,b}
ENERVON C TAB STRIP 2 f 151018018 {a,c}
180417016 {a}
200818026 {a,b}
200917003 {a,c}
240918015 {a,c,d}
261017019 {a,e}
280717001 {a,e}
290818031 {a,b,d}
300117024 {a,b,f}
300817017 {a,b}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 28
18
jalur dari nulla dan ditambahkan counter unutuk frekuensi kemunculan item
untuk a = 1 . Selanjutnya, membentuk jalur untuk {c}. Karena c masih dalam satu
transaksi dengan a, maka jalur c dibuat dibawah a. Maka tebentuklah jalur null
ac. Kemunculan c baru satu kali maka counter untuk c = 1. Tahap selanjutnya
adalah untuk {d}, karena d masih didalam satu transaksi TID 1, maka dibuat
jalur ke d dibawah c. Hasilnya adalah nullacd . Counter item a = 1, c = 1,
d =1. Untuk tahapan pembentukan FP-Tree dapat dilihat pada gambar 2.2.
Gambar 2. 5 Potongan tahapan pembentukan FP-Tree dengan 15 data sampel.
Jika dalam pembentukan FP-Tree terdapat awalan node yang sama pada transaksi
yang berbeda, maka jalur akan dibuat tumpah tindih dan jumlah frekuensi akan
bertambah 1. Setelah semua transaksi sudah dibaca maka dibuat garis putus-putus
untuk menjukkan node yang memiliki label yang sama. FP-Tree yang terbentuk
dengan keseluruhan data bisa dilihat pada Gambar 2.5 (iii).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 29
19
2. Pembentukan conditional pattern base, conditional FP-Tree dan pencarian
frequent itemset.
Setelah FP-Tree terbentuk, tahap selanjutnya adalah membentuk conditional
pattern base, conditional FP-Tree, melakukan pencarian untuk frequent itemset
dengan cara menjelajahi tree secara bottom up.
Tabel 2. 3 Frequent Itemset dari 15 data sampel transaksi pembelian obat.
Untuk menemukan kemunculan yang berakhiran dengan f, maka langkah
pertama yang dilakukan adalah memeriksa apakah itemset {f} sering muncul.
Didapatkan f sering muncul dengan support count yang memenuhi minimum
support count. Maka node yang berakhiran f menjadi conditional pattern base,
yaitu a. Support count 2 didapat dari kemunculan yang bersama dengan f pada
tree yang dipetakan.
Untuk membentuk FP-Growth dibuat dengan memperbarui count pada node
yang memiliki item f. Item yang berakhiran f yang tidak sering muncul seperti
b maka akan dihilangkan, Hasilnya hanya a:2 saja yang dilanjutkan menuju
frequent itemset karena hanya a:2 saja yang memenuhi minimum support. Proses
akan terus dijalankan ke semua jalur yang terasosiasi dengan node f, e, d, c, b,
a.
SuffixConditional
Patern base
Conditional
FP-TreeFrquent Itemset
f {a:1} {ab:1} {a:2} {a,f:2}
e {a:3} {a:3} {a,e:3}
d {ac:2}, {ab :2} {a:4} {c:2} {ac,d:2},{ab,d :2}
c {a:4} {a:4} {a,c:4}
b {a:6} {a:6} {a,b:6}
a - - -
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 30
20
2.8.2 Aturan asosiasi
Selesai menemukan hasil untuk frequent itemset algoritma FP-Growth, proses
senlanjutnya adalah membentuk aturan asosiasi. Hasil dari tabel 2.3, dilakukan
pembentukan aturan asosiasi dengan minimum support = 2 dan minimum confidence =
80%. Nilai minimum support, confdence , dan lift ratio aturan asosiasi didapat dari
persamaan 2.1, persamaan 2.2, dan persamaan 2.3 yang ada pada tinjauan pustaka.
Count didapatkan dari kemunculan item scara bersamaan dalam 15 data transaksi
pembelian obat. Aturan yang tidak mencapai minimum support dan confidence akan
dihapus. Maka aturan asosiasi dapat dilihat pada Tabel 2.4.
Tabel 2. 4 Aturan asosiasi dari 15 data sampel transaksi pembelian obat.
No. Aturan
Asosiasi
Count Support Confidience Lift Ratio
1 𝑓 => 𝑎 2 2
15 x 100 = 13,3%
2
2 x 100
= 100%
100
1515
X100
=1
2 𝑒 => 𝑎 3 3
15 x 100 = 20%
3
3 x 100
= 100%
100
1515
X100
=1
3 𝑑𝑐 => 𝑎 2 2
15 x 100 = 13,3%
2
2 x 100
= 100%
100
1515
X100
=1
4 𝑑𝑏 => 𝑎 2 2
15 x 100 = 13,3%
2
2 x 100
= 100%
100
1515
X100
=1
5 𝑐 => 𝑎 4 4
15 x 100 = 26,6%
4
4 x 100
= 100%
100
1515
X100
=1
6 𝑏 => 𝑎 6 6
15 x 100 = 40%
6
6 x 100
= 100%
100
1515
X100
=1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 31
21
Aturan asosiasi yang didapat dan memenuhi minimum support dan minimum
confidence adalah sebagai berikut :
1. ENERVON C TAB STRIP →ACYCLOVIR CR 5G.
2. TOLAK ANGIN CAIR 12S → ACYCLOVIR CR 5G.
3. ACYCLOVIR CR 5G. → PARACETAMOL 500 MG STRIP, ACYCLOVIR
200MG TAB.
4. ACYCLOVIR CR 5G. → PARACETAMOL 500 MG STRIP, ACYCLOVIR
400MG.
5. ACYCLOVIR 200MG TAB → ACYCLOVIR CR 5G.
6. ACYCLOVIR 400MG → ACYCLOVIR CR 5G.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 32
14
BAB III
METODOLOGI PENELITIAN
3.1 Pengumpulan Data
Melakukan tinjauan pustaka tentang teori-teori data mining . analisis keranjang
belanja, aturan asosisasi, algortime FP-Growth, dan juga lift ratio. Proses
pengumpulan data transaksi dikumpulkan dari data transaksi pembelian obat di
Apotek Sanata Dharma Realino bulan Januari – Juli 2019.
Gambar 3. 1 Tahapan Penelitian
Pengumpulan Data
Pemrosesan Awal
Algoritma FP-Growth
Aturan Asosiasi
Evaluasi Hasil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 33
23
3.2 Pemrosesan Awal
Pemrosesan awal yang dilakukan antara lain data cleaning, data integeratiom, data
reduction, dan data transformation. (Han,2000). Tools yang digunakan pada penelitian
ini menggunakan library mlxtend.preprocessing yang dimiliki oleh bahasa
pemrograman python. Pada tahap ini data transformasikan array list untuk
mengelompokan item sesuai nomor id pada transaksi dan boolean matrix untuk
mengetahui item apa saja yang dibeli dalam satu transaksi.
3.3 Algoritma FP-Growth
Pada tahap ini, algoritma FP-Growth dimplementasikan untuk mengolah data sudah
diproses sesuai kebutuhan. Proses pada algoritma FP-Growth menghasilkan FP-Tree,
Conditional Pattern Base, Conditional FP-Tree dan pencarian Frequent itemset. Pada
penelitan ini menggunakan library mlxtend.fpgrowth.
3.4 Menghasilkan Aturan Asosiasi
Pada tahap ini, hasil FP-Tree akan dilakukan tahap perhitungan dengan aturan asosiasi.
Hasil dari aturan asosiasi menghasilkan 2 bagian terpenting, yaitu antecedent dan
consequent. Antecedent adalah adalah item yang ditemukan dalam data dan consequent
adalah adalah item yang ditemukan dalam kombinasi dengan antecedent (Rouse, 2018).
3.5 Evaluasi hasil
Berdasarkan aturan asosiasi yang telah diperoleh dengan implementasi FP-Growth,
dilanjutkan dengan dengan tahap pengujian aturan asosiasi yang dihasilkan. Pengujian
pada penelitian ini dibagi menjadi 2, yaitu uji validasi dan uji akurasi. Uji validasi
dilakukan untuk melihat persamaan hasil aturan asosiasi dari perhitungan manual
dengan sistem. Sedangkan untuk uji akurasi digunakan mengukur tingkat keakurasian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 34
24
dari metode FP-Growth dengan melihat nilai minimum support dan minimum
confidence terbaik serta besar lift ratio yang dihasilkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 35
34
BAB IV
PEMROSESAN AWAL DAN PERANCANGAN SISTEM
4.1 Pemrosesan Awal
Tahap awal pada pemrosesan data diantaranya data cleaning, data integration, dan data
transformation. Atribut yang ada pada dataset adalah date, time, tid, item dan qty.
atribut date dan time berisi tanggal dan waktu terjadinya transaksi, tid adalah nomor
transaksi atau nota penjualan, atribut item berisi barang atau obat yang dibeli oleh
konsumen, sedangkan qty adalah jumlah barang yang dibeli oleh konsumen dalam satu
transaksi. Dalam satu tid bersisi macam-macam item yang dibeli. Data yang diambil
adalah data 5 bulan, dari bulan Januari – Juli 2019. Jumlah baris pada data ini sebanyak
21.626 baris dan jumlah transaksi sebanyak 9.456 transaksi.
Gambar 4. 1 Kondisi data yang akan digunakan untuk penelitian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 36
26
Berikut adalah tahapan dalam pemrosesan awal pada dataset yang akan diuji :
1. Data Cleaning
Beberapa data perlu dibersihkan pada Gambar 4.1. sebagai berikut :
a) Data yang mengandung koma (,) diubah menjadi titik(.)
b) Semua data item kosong.
2. Data Integration
Pada penelitian ini menggunakan 1 data sql yang kemudian diexport
menjadi csv. Setiap transaksi pembelian obat yang masuk disimpan
dalam 1 file data. Maka dari itu penelitian ini hanya menggunakan
satu sumber data saja dan tidak diperlukan proses data integration.
3. Data Selection
Dalam data asli, terdapat 5 atribut, yaitu date, time, tid, item dan qty.
Pada penelitian ini atribut yang digunakan untuk analisis keranjang
belanja atau penambangan data hanya menggunakan 2 atribut, yaitu tid
dan item. Atribut tid dan atribut item bertipe string. Tahapan ini
dikerjakan oleh sistem saat membaca data masukan pengguna.
4. Data Transformation
Tahapan ini adalah hasil dari tahapan Data selection. Atribut kode
transaksi dan produk ditampung sistem dalam bentuk array dan
boolean matrix untuk proses penambangan data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 37
27
Gambar 4. 2 Data ditranformasikan dalam bentuk array
a. Data disimpan dalam array list
Data transaksi yang menyimpan tiap item yang beli dalam
masing-masing nomor transaksi atau tid. Tujuannya adalah
untuk memetakan item yang dibeli, sehingga program menjadi
mudah untuk mengelompokan satu transaksi dengan transaksi
lainnya.
b. Boolean Matrix
Transaksi yang sudah dikelompokkan kemudian dikonversikan
menjadi Boolean matrix. Atribut dalam Boolean matrix berisi
nama-nama item yang ada dalam data, sedangkan untuk baris
berisi index dari nomor transaksi (tid). Jika terdapat barang yang
dibeli dalam salah satu transaksi maka akan ditandai dengan
TRUE pada transaksi dengan nama item yang dibeli. Jika dalam
satu transaksi tidak ada salah satu item yang dibeli, maka akan
ditandai dengan FALSE. Untuk gambar hasil Boolean matrix
bisa dilihat pada gambar 4.3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 38
28
Gambar 4. 3 Boolean Matrix pada data uji
4.2 Perancangan Sistem
4.2.1 Perancangan Umum
Perancangan umum terdiri dari 3 bagian, diantara adalah sebagai berikut:
1. Input Sistem
Sistem analisis keranjang belanja menggunakan metode FP-Growth hanya bisa
menerima masukan data yang dipilih dari pengguna dalam format .csv. Dalam sistem
ini pengguna perlu memasukan nilai minimum support dan minimum confidence.
Gambaran secara umum perancangan sistem dapat dilihat pada gambar 4.4.
Gambar 4. 4 Diagram konteks
Analisis Keranjang Belanja dengan FP-
GrowthPengguna Program
Data Transaksi, Minimum Support dan Minimum
Confidence
Hasil analisis keranjang belanja
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 39
29
2. Proses Sistem
Pada proses ini data diolah untuk mendapatkan hasil analisis keranjang belanja dengan
metode FP-Growth. Dalam proses ini ada beberapa tahapan :
1. Membaca data yang sesuai input dari pengguna berupa format .csv
2. Pemilihan atribut yang digunakan untuk analisis keranjang belanja.
3. Proses analisis kerajang belanja terhadap data sesuai nilai minimum support dan
minimum confidence yang dimasukkan oleh pengguna.
4. Program akan menampilkan aturan asosiasi sesuai input minimum support dan
minimum confidence dari pengguna.
5. Menyimpan hasil ke dalam penyimpanan di komputer berupa file dalam bentuk .csv.
Proses sistem ditunjukan dalam diagram flowchart pada Gambar 4.2.
Gambar 4. 5 Diagram flowchart
Mulai
Import file bertipe .csv
Insert min imum support
Analisis Keranjang belanja
Simpan hasil analisis keranjang belanja
Seleksi atribut
Insert min imum confidence
File bertipe .csv
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 40
30
3. Output Sistem
Keluaran sistem adalah aturan asosiasi analisis keranjang belanja pembelian obat dengan
metode FP-Growth sesuai minimum support dan minimum confidence.
4.2.2 Diagram use case
Gambar 4. 6 Diagram use case
4.2.3 Narasi use case
1. Narasi use case input data.
Input file transaksi penjualan bertipe .csv
Proses analisis keranjang belanja
Ekspor hasil akhir dari analisis keranjang belanja
Nama Use Case Input Data
ID Use Case 001
Aktor Pengguna
Deskripsi Pengguna melakukan input file penjualan obat dalam format .csv
Kondisi Awal Pengguna ada di tampilan sistem dengan form input nama folder dan
file
Aksi Aktor Reaksi Sistem
Langkah 1 :
Pengguna menekan tombol
“Search” untuk mencari file dan
memilih bertipe .csv untuk
dimasukan ke dalam sistem
Langkah 2 :
Sistem menampilkan kotak dialog
untuk memilih file yang ada
dipenyimpanan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 41
31
2. Narasi use case proses.
3. Narasi use case ekspor hasil
Typical Course
Langkah 3 :
Memilih file yang akan diolah
oleh sistem.
Langkah 4 :
Memilihi atribut data masukan
pengguna dan menampilkan pada
table halaman sistem.
Kondisi Akhir Alamat folder terisi, data yang akan diolah akan tampil di sistem.
Nama Use
Case
Proses
ID Use Case 002
Aktor Pengguna
Deskripsi Data yang dimasukan akan diproses dengan analisis keranjang
belanja dengan metode FP-Growth.
Kondisi Awal Pengguna sudah menasukan data yang akan diolah dan pengguna
memasukan nilai minimum support dan condfidence
Typical
Course
Aksi Aktor Reaksi Sistem
Langkah 1 :
Pengguna menekan tombol
“Execute”.
Langkah 2 :
Sistem menampilkan
menampilkan hasil analisis
keranjang belanja. Sesuai
ketentuan yang dimasukkan
pengguna.
Kondisi Akhir Sistem menampilkan hasil aturan asosiao analisis keranjang
belanja.
Nama Use
Case
Ekspor Hasil
ID Use Case 003
Aktor Pengguna
Deskripsi Hasil analisis akan diekspor dalam bentul file .pdf
Kondisi Awal Menampilkan hasil aturan asosiasi.
Aksi Aktor Reaksi Sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 42
32
4.2.6 Perancangan Antarmuka.
Dalam halaman sistem, terdapat beberapa fungsi, seperti input data, input minimum
support dan confidence, melihat hasil analisis keranjang belanja dan menyimpan hasil
analisis dalam bentuk file .csv. Tampilan antarmuka dapat dilihat pada gambar 4.7.
Gambar 4. 7 Perancangan interface halaman beranda sistem.
Typical Course
Langkah 1 :
Pengguna menekan tombol
“export” untuk menyimpan
hasil analisis dalam bentuk file
.csv
Langkah 2 :
File tersimpan di folder
program.
Kondisi Akhir Data hasil analisis keranjang belanja tersimpan dalam bentuk .pdf.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 43
34
BAB V
IMPLEMENTASI SISTEM DAN EVALUASI HASIL
5.1 Implementasi Sistem
5.1.1 Penggalan Program
Sistem menggunakan bahasa pemograman python dengan Integrated Development
Environment (IDE) Sypder 3.7. Kode program bisa didapatkan www.kaggle.com.
Untuk baris kode program bisa dilihat pada lampiran 2.
Dalam sistem memakai 4 class, yang terdiri dari :
1. Class MainWindow
Class MainWindow berfunsgi sebagai penghubung algoritma program dengan
tampilan antar muka. Dalam MainWindow Terdiri dari beberapa function
diantaranya :
a. def __init__(self, parent = None):
Berfungsi sebagai parent atau induk dari beberapa function dalam class
MainWindow.
b. def open_file(self):
Function yang berfungsi sebagai pemanggil input data dari direktori komputer.
Dalam function ini data masukan pengguna akan dilakukan preprocessing
dengan menggunakan function TransactionEncoder() sesuai dengan atribut
yang dibutuhkan oleh program.
c. def runButton(self):
Berfungsi untuk memproses data masukan pengguna pada algoritma FP-
Growth dan Association Rules. Pada program ini menggunakan library
mlxtend.frequent_patterns import fpgrowth. Proses ini secara otomatis
menghitung transaksi masukan pengguna dan membangun FP-Tree yang
kemudian hasil dari pembentukan FP-Tree akan di hitung dalam
mlxtend.frequent_patterns import association_rules sesuai dengan masukan
minimum support dan minimum confidence dari pengguna.
d. def export_(self):
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 44
34
Berfungsi untuk mengekspor hasil aturan asosiasi dan disimpan dalam
direktori komputer.
2. Class gui01
Berisi beberapa function yang berguna untuk membangun tampilan antarmuka
program, seperti kolom masukan dataset, tabel untuk menampilkan data masukan
dan hasil dari aturan asosiasi,kolom masukan untuk minimum support dan
minimum confidence serta button untuk memproses perhitungan. Pada class
gui01berisi juga atibut untuk mengatur ukuran tampilan antarmuka, ukuran tabel,
button dan kolom inputan, serta label.
3. Class table_gui
Berisi function untuk menampung tabel dari masukan pengguna dan keluaran dari
hasil aturan asosiasi.
4. Class main
Berfungsi untuk mengeksekusi program.
5.1.2 Tampilan Antarmuka Program
.Tampilan antarmuka pada program dibuat menggunakan library python PyQt.
Gambar 5. 1 Implementasi Antarmuka Program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 45
35
Gambar 5.1 adalah hasil dari rancangan antarmuka dari Gambar 5.1 yang terdiri dari 5
bagian fungsi. Bagian fungsi tersebut antara lain :
1. Import file, pada bagian ini berguna untuk memasukkan data yang akan
diproses oleh sistem.
2. Dataset, pada bagian ini sistem akan menampilkan data yang dimasukkan
pengguna. Data ditampilkan dalam bentuk table.
3. Minimum support dan minimum confidence, berfungsi sebagai memasukan
nilai support dan confindence.
4. Execute, pada bagian ini berfungsi untuk memulai proses, sesuai masukan data,
nilai minimum support dan minimum confidence.
5. Hasil aturan asosiasi, pada bagian ini program akan menampilkan table hasil
dari pemrosesan FP-Growth. Tabel hasil aturan asosiasi terdiri beberapa atribut
yaitu : antecedents, consequents, antecedent support, consequent support,
support, confidence, lift, leverage, conviction.
6. Export hasil, pada bagian ini berfungsi untuk menyimpan hasil aturan asosiasi
dalam format .csv.
5.2 Evaluasi Dan Analisis Hasil
5.2.1 Uji Validasi Program
Pengujan validasi program dilakukan untuk melihat apakah progam dapat digunakan
untuk analisis kerajnag belanja. Pada pengujian ini menggunakan dataset sample
sebanyak 15 transaksi. Untuk dataset sample dapat dilihat pada Tabel 2.2. Untuk
Tahapan perhitungan manual dapat dilihat pada Tabel 2.3.
Aturan asosiasi yang didapat dengan perhitungan manual yang memenuhi minimum
support dan minimum confidence adalah sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 46
36
1. ENERVON C TAB STRIP →ACYCLOVIR CR 5G.
2. TOLAK ANGIN CAIR 12S → ACYCLOVIR CR 5G.
3. ACYCLOVIR CR 5G. → PARACETAMOL 500 MG STRIP, ACYCLOVIR
200MG TAB.
4. ACYCLOVIR CR 5G. → PARACETAMOL 500 MG STRIP, ACYCLOVIR
400MG.
5. ACYCLOVIR 200MG TAB → ACYCLOVIR CR 5G.
6. ACYCLOVIR 400MG → ACYCLOVIR CR 5G.
Hasil dari uji validasi program menghasilkan rules yang sama terhadap 15 transaksi
pada dataset sample. Nilai support dan confidence memiliki nilai yang sama dengan
perhitungan manual. Hasil aturan asosiasi dari program dapat dilihat pada Gambar 5.2.
Gambar 5. 2 Hasil pengujian pada sistem dengan data sample
5.2.2 Uji Akurasi
Pengujian dilakukan dengan menggunakan seluruh data dari bulan Januari sampai
bulan Juli 2019 dengan memakai nilai minimum support dan minimum confidence yang
bervariatif. Perbandingan jumlah aturan asosiasi yang dihasilkan pada setiap variasi
nilai minsup dan minconf dapat dilihat pada Tabel 5.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 47
37
Tabel 5. 1 Perbandingan jumlah Aturan Asosiasi yang Dihasilkan
Dari hasil uji perbandingan jumlah aturan asosiasi menggunakan dataset transaksi
penjualan obat dengan jumlah record sebanyak 21.619 dan jumlah transaksi sebanyak
9.458, diperoleh hasil minimum confidence tertinggi sebesar 60% dengan minimum
support sebesar 1% menghasilkan 1 aturan asosiasi yaitu ROHTO TM → VITACIMIN
LEMON dengan support yang didapat sebesar 1,2% , confidence sebesar 61% dan lift
ratio sebesar 14,4.
Nilai minimum support terbesar yang muncul sebesar 8% tetapi nilai minimum
confidence maksimal hanya sebesar 20%, dengan aturan asosiasi VITACIMIN
LEMON → PARACETAMOL 500 MG , dan lift ratio sebesar 0,64.
Sedangkan untuk Untuk minimum support 5%, 6%, dan 7% tidak terdapat aturan
asosiasi. Semakin kecil jumlah minimum support maka akan menghasilkan jumlah
aturan yang semakin banyak. Hasil aturan asosiasi dengan support dan confidence
terbaik dapat dilihat pada tabel 5.2
Tabel 5. 2 Hasil aturan asosiasi dengan nilai support dan confidence terbaik.
10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
1% 6 8 1 5 1 1 0 0 0 0
2% 2 3 1 1 0 0 0 0 0 0
3% 0 0 0 3 1 0 0 0 0 0
4% 2 0 1 2 0 0 0 0 0 0
5% 0 0 0 0 0 0 0 0 0 0
6% 0 0 0 0 0 0 0 0 0 0
7% 0 0 0 0 0 0 0 0 0 0
8% 1 1 0 0 0 0 0 0 0 0
Minimum Support Minimum Confidence
Minimum Support Minimum Confidence Antecedents Consequents Support Confidence Lift Ratio
0.01 0.6 ROHTO TM VITACIMIN LEMON 0.012 0.61 14.4
0.02 0.4 PROMAG TAB 10S VITACIMIN LEMON 0.023 0.43 10.3
0.03 0.5 AMOXCILLIN 500 MG CAP VITACIMIN LEMON 0.032 0.53 1.25
0.04 0.4 NEO RHEUMACYL TAB 10S VITACIMIN LEMON 0.046 0.47 11.1
0.04 0.4 SENSI MASK CANTOL VITACIMIN LEMON 0.041 0.49 11.6
0.08 0.2 PARACETAMOL 500 MG VITACIMIN LEMON 0.084 0.27 0.64
Input Output
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 48
38
Hasil dari aturan asosiasi pada penelitian ini cenderung kurang variatif dikarenakan
jenis item untuk “VITACIMIN LEMON” dan “PARACETAMOL 500 MG” terjual
jauh lebih banyak. Kedua item tersebut merupakan item dengan frekuensi pembelian
lebih banyak daripada item lainnya. Grafik item terjual dapat dilihat pada Lampiran 1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 49
34
BAB VI
PENUTUP
6.1 Simpulan
Hasil penelitian analisis keranjang belanja pada data penjualan obat di Apotek Sanata
Dharma Realino dengan algoritma FP-Growth adalah sebagai berikut :
1. Algoritma FP-Growth dapat menganalisis keranjang belanja dan menemukan
aturan asosiasi antar item pada data penjualan obat-obatan di Apotek Sanata
Dharma Realino.
2. Pada uji akurasi, pengujian dilakukan dengan menggunakan keseluruhan dataset 5
bulan dengan jumlah transaksi sebanyak 9.456 dengan minimum confidence
tertinggi sebesar 60% dengan minimum support 1% ditemukan 1 aturan asosiasi
yaitu ROHTO TM → VITACIMIN LEMON. Sedangkan untuk minimum support
tertinggi sebesar 8% dan minimum confidence sebesar 20%. menghasilkan aturan
VITACIMIN LEMON → PARACETAMOL 500 MG.
3. Saran yang dapat diusulkan ke pihak apotek untuk penempatan obat yang dijual
yang sesuai aturan asosiasi adalah Jika ROHTO TM → VITACIMIN LEMON dan
AMOXILLIN 500 G CAP → VITACIMIN LEMON berdasarkan nilai confidence
paling tertinggi yang dihasilkan. Penempatan 2 jenis obat tersebut memudahkan
pihak apotek untuk mengambil obat yang dibutuhkan konsumen.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 50
40
6.2 Saran
Saran untuk pengembangan di masa mendatang untuk sistem analisis keranjang belanja
dengan menggunakan metode FP-Growth adalah sebagai berikut :
1. Sistem dapat menerima masukan selain dari format file bertipe .csv.
2. Sistem dapat menampilkan hasil pembentukan FP-Tree.
3. Untuk meningkatkan akurasi, dalam penelitian berikutnya dapat diterapkan
teknik untuk menyeimbangkan data pada tahap preprocessing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 51
41
Daftar Pustaka
Fitria, R., Nengsih, W., & Qudsi, D. H. (2017). Implementasi Algoritma FP-Growth Dalam
Penentuan Pola Hubungan Kecelakaan Lalu Lintas. Jurnal Sistem Informasi, 118-124.
doi:http://dx.doi.org/10.21609/jsi.v13i2.551
Jiawei Han, J. P. (2000). Mining Frequent Pattern by Pattern-Growth : Methodology and
Implications.
Lestari, Y. D. (2015). PENERAPAN DATA MINING MENGGUNAKAN ALGORITMA
FP-TREE. Seminar Nasional Teknologi Informasi dan Komunikasi.
Mahmudah, R. R., & Ariwibowo, E. (2014). PENGGUNAAN ALGORITMA FP-GROWTH
UNTUK MENEMUKAN. Jurnal Sarjana Teknik Informatika.
Muflikhah, L., Ratnawati, D. E., & Putri, R. R. (2018). Buku Ajar Data Mining. Malang: UB
Press.
Rouse, M. (2018). Search Business Analytics. Diambil kembali dari
https://searchbusinessanalytics.techtarget.com/:
https://searchbusinessanalytics.techtarget.com/definition/association-rules-in-data-
mining#:~:text=It%20identifies%20frequent%20if%2Dthen,in%20combination%20w
ith%20the%20antecedent.
Said, A. M., Dominic, D. P., & Abdullah, D. B. (2009, May). A Comparative Study of FP-
growth Variations. IJCSNS International Journal of Computer Science and Network
Security, , 9, 266.
Soni, R. K., Gupta, P., & Sinhal, P. (2013, February). An FP-Growth Approach to Mining.
IJCSMC, 2, 1-5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 52
42
Tan, P.-N., Steinbach, M., & Kumar, V. (2006). Introduction Data Mining . Boston: Pearson
Education.
Whitten, I. H., & Frank, E. (2005). Data Mining, Practical Machine Learning Tools and
Techniques. Elseiver.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 53
43
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 54
44
LAMPIRAN 1
Diagram Batang Item Terbeli Terbanyak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 55
45
LAMPIRAN 2
Baris Kode Program
1. Class Main Window
2. # -*- coding: utf-8 -*-
3. """
4. Created on Mon Jun 15 12:46:48 2020
5.
6. @author: Kenny
7. """
8.
9.
10. from gui01 import Ui_MainWindow
11. from PyQt5 import QtGui
12. from PyQt5 import QtWidgets
13. from table_guikenny import TableModel
14. import pandas as pd
15. import numpy as np
16. from PyQt5.QtCore import *
17. from mlxtend.preprocessing import TransactionEncoder
18. from mlxtend.frequent_patterns import fpgrowth
19. from mlxtend.frequent_patterns import association_rules
20.
21. class MainWindow (QtWidgets.QMainWindow):
22.
23. def __init__(self, parent = None):
24. super().__init__(parent)
25. self.atribut = []
26. self.label = []
27. self.ui = Ui_MainWindow()
28. self.ui.setupUi(self)
29. self.ui.pushButton.clicked.connect(self.open_file)
30. self.ui.pushButton_2.clicked.connect(self.runButton)
31. self.ui.pushButton_3.clicked.connect(self.export_coeg)
32.
33. def open_file(self):
34. nama_file = QtWidgets.QFileDialog.getOpenFileName(self, 'Open
Dataset', QDir.homePath(), "*.csv")
35.
36. if nama_file[0] == '' or nama_file == None:
37. return
38.
39. self.dataset = pd.read_csv(nama_file[0])
40. tableModel = TableModel(self)
41. tableModel.dataset = self.dataset
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 56
46
42. self.ui.tableView.setModel(tableModel)
43. transactions = []
44. item_sets = {}
45. for t,g in self.dataset.groupby('tid')['item']:
46. transactions.append(g.tolist())
47. item_sets[t] = g.tolist()
48.
49. te = TransactionEncoder()
50. te_ary = te.fit(transactions).transform(transactions)
51. self.ap = pd.DataFrame(te_ary, columns=te.columns_)
52. def runButton(self):
53. #inpit minimum support
54. minsup = float(self.ui.lineEdit.text())
55. print(minsup)
56. mincof = float(self.ui.lineEdit_2.text())
57. print(mincof)
58.
59. f_final = fpgrowth(self.ap, min_support = minsup, use_colnames = True)
60. rules_final = association_rules(f_final,metric = "lift" ,min_threshold =
mincof)
61. print(rules_final)
62. print (rules_final[rules_final['confidence'] > 0.5])
63. rules_final[rules_final['confidence'] > 0.5]
64.
65.
66. hasil = (rules_final[rules_final['confidence'] >= mincof])
67. self.hasilsort = hasil.sort_values('support',ascending = False)
68. print(self.hasilsort)
69.
70.
71. tableModel = TableModel(self)
72. tableModel.dataset = self.hasilsort
73. self.ui.tableView_2.setModel(tableModel)
74.
75. def export_(self):
76. export_aja =
self.hasilsort.to_csv('C:/Users/hp/Documents/Kuliah/SKRIPSI/FIX JADI/Hasil
Aturan Asosiasi/hasiljadi.csv', encoding='utf-8')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 57
47
2. Class gui01
1. # -*- coding: utf-8 -*-
2.
3. # Form implementation generated from reading ui file 'guiKenny01.ui'
4. #
5. # Created by: PyQt5 UI code generator 5.9.2
6. #
7. # WARNING! All changes made in this file will be lost!
8.
9. from PyQt5 import QtCore, QtGui, QtWidgets
10.
11. class Ui_MainWindow(object):
12. def setupUi(self, MainWindow):
13. MainWindow.setObjectName("MainWindow")
14. MainWindow.resize(800, 670)
15. self.centralwidget = QtWidgets.QWidget(MainWindow)
16. self.centralwidget.setObjectName("centralwidget")
17. self.frame = QtWidgets.QFrame(self.centralwidget)
18. self.frame.setGeometry(QtCore.QRect(-40, -20, 801, 671))
19. self.frame.setAcceptDrops(False)
20. self.frame.setAutoFillBackground(False)
21. self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
22. self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
23. self.frame.setObjectName("frame")
24. self.label = QtWidgets.QLabel(self.frame)
25. self.label.setGeometry(QtCore.QRect(70, 30, 701, 141))
26. font = QtGui.QFont()
27. font.setFamily("Copperplate Gothic Bold")
28. font.setPointSize(13)
29. self.label.setFont(font)
30. self.label.setObjectName("label")
31. self.tableView = QtWidgets.QTableView(self.frame)
32. self.tableView.setGeometry(QtCore.QRect(170, 210, 501, 121))
33. self.tableView.setObjectName("tableView")
34. self.label_2 = QtWidgets.QLabel(self.frame)
35. self.label_2.setGeometry(QtCore.QRect(170, 130, 371, 41))
36. font = QtGui.QFont()
37. font.setFamily("Arial Black")
38. font.setPointSize(8)
39. font.setBold(True)
40. font.setWeight(75)
41. self.label_2.setFont(font)
42. self.label_2.setObjectName("label_2")
43. self.pushButton = QtWidgets.QPushButton(self.frame)
44. self.pushButton.setGeometry(QtCore.QRect(460, 140, 91, 41))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 58
48
45. self.pushButton.setObjectName("pushButton")
46. self.label_3 = QtWidgets.QLabel(self.frame)
47. self.label_3.setGeometry(QtCore.QRect(170, 185, 131, 21))
48. font = QtGui.QFont()
49. font.setFamily("Arial Black")
50. font.setPointSize(11)
51. font.setBold(True)
52. font.setWeight(75)
53. self.label_3.setFont(font)
54. self.label_3.setObjectName("label_3")
55. self.lineEdit = QtWidgets.QLineEdit(self.frame)
56. self.lineEdit.setGeometry(QtCore.QRect(270, 370, 51, 41))
57. self.lineEdit.setObjectName("lineEdit")
58. self.lineEdit_2 = QtWidgets.QLineEdit(self.frame)
59. self.lineEdit_2.setGeometry(QtCore.QRect(480, 370, 51, 41))
60. self.lineEdit_2.setObjectName("lineEdit_2")
61. self.pushButton_2 = QtWidgets.QPushButton(self.frame)
62. self.pushButton_2.setGeometry(QtCore.QRect(560, 370, 75, 41))
63. self.pushButton_2.setObjectName("pushButton_2")
64. self.label_4 = QtWidgets.QLabel(self.frame)
65. self.label_4.setGeometry(QtCore.QRect(180, 360, 91, 51))
66. self.label_4.setObjectName("label_4")
67. self.label_5 = QtWidgets.QLabel(self.frame)
68. self.label_5.setGeometry(QtCore.QRect(360, 380, 111, 16))
69. self.label_5.setObjectName("label_5")
70. self.label_6 = QtWidgets.QLabel(self.frame)
71. self.label_6.setGeometry(QtCore.QRect(180, 335, 551, 31))
72. font = QtGui.QFont()
73. font.setFamily("Continuum Bold")
74. font.setPointSize(10)
75. self.label_6.setFont(font)
76. self.label_6.setObjectName("label_6")
77. self.tableView_2 = QtWidgets.QTableView(self.frame)
78. self.tableView_2.setGeometry(QtCore.QRect(170, 440, 511, 141))
79. self.tableView_2.setObjectName("tableView_2")
80. self.label_7 = QtWidgets.QLabel(self.frame)
81. self.label_7.setGeometry(QtCore.QRect(170, 420, 221, 16))
82. font = QtGui.QFont()
83. font.setFamily("Arial Black")
84. font.setPointSize(11)
85. self.label_7.setFont(font)
86. self.label_7.setObjectName("label_7")
87. self.label_8 = QtWidgets.QLabel(self.frame)
88. self.label_8.setGeometry(QtCore.QRect(170, 160, 311, 21))
89. self.label_8.setObjectName("label_8")
90. self.pushButton_3 = QtWidgets.QPushButton(self.frame)
91. self.pushButton_3.setGeometry(QtCore.QRect(570, 590, 81, 31))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 59
49
92. self.pushButton_3.setObjectName("pushButton_3")
93. self.label_9 = QtWidgets.QLabel(self.centralwidget)
94. self.label_9.setGeometry(QtCore.QRect(10, 600, 321, 31))
95. font = QtGui.QFont()
96. font.setPointSize(7)
97. self.label_9.setFont(font)
98. self.label_9.setObjectName("label_9")
99. MainWindow.setCentralWidget(self.centralwidget)
100. self.menubar = QtWidgets.QMenuBar(MainWindow)
101. self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
102. self.menubar.setObjectName("menubar")
103. MainWindow.setMenuBar(self.menubar)
104. self.statusbar = QtWidgets.QStatusBar(MainWindow)
105. self.statusbar.setObjectName("statusbar")
106. MainWindow.setStatusBar(self.statusbar)
107.
108. self.retranslateUi(MainWindow)
109. QtCore.QMetaObject.connectSlotsByName(MainWindow)
110.
111. def retranslateUi(self, MainWindow):
112. _translate = QtCore.QCoreApplication.translate
113. MainWindow.setWindowTitle(_translate("MainWindow",
"KennyFp-Growth Beta Version 1.0"))
114. self.label.setText(_translate("MainWindow",
"<html><head/><body><p align=\"center\">PROGRAM ANALISIS
KERANJANG BELANJA </p><p align=\"center\">DENGAN METODE FP -
GROWTH</p><p align=\"center\"><br/></p></body></html>"))
115. self.label_2.setText(_translate("MainWindow", "Masukan file
penjualan dengan format \".csv"))
116. self.pushButton.setText(_translate("MainWindow", "Import
File"))
117. self.label_3.setText(_translate("MainWindow", "Dataset : "))
118. self.pushButton_2.setText(_translate("MainWindow", "Execute"))
119. self.label_4.setText(_translate("MainWindow", "Minimum
Support"))
120. self.label_5.setText(_translate("MainWindow", "Minimum
Confindence"))
121. self.label_6.setText(_translate("MainWindow", "Masukan
Minimum Support dan Minimum Confidence yang akan ditampilkan"))
122. self.label_7.setText(_translate("MainWindow", "Hasil Aturan
Asosiasi : "))
123. self.label_8.setText(_translate("MainWindow", "Catatan :
Pastikan nama atribut bernama \"tid\" dan \"item\""))
124. self.pushButton_3.setText(_translate("MainWindow", "Export
Hasil"))
125. self.label_9.setText(_translate("MainWindow", "Program by :
Kenny Setiawan, Universitas Sanata Dharma,2020"))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 60
50
3. Table_gui
1. from PyQt5 import QtCore
2. import pandas as pd
3. import os
4. class TableModel(QtCore.QAbstractTableModel):
5. def __init__(self, parent=None):
6. super().__init__(parent)
7. self.dataset = None
8. def rowCount(self, parent=QtCore.QModelIndex()):
9. return self.dataset.shape[0]
10. def columnCount(self, parent=QtCore.QModelIndex()):
11. return self.dataset.shape[1]
12. def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
13. if role == QtCore.Qt.DisplayRole:
14. if orientation == QtCore.Qt.Horizontal:
15. return self.dataset.columns[section]
16. else:
17. return section
18. def data(self, index, role=QtCore.Qt.DisplayRole):
19. if role == QtCore.Qt.DisplayRole:
20. return str(self.dataset.iloc[index.row()][index.column()])
4. Class Main
1. # -*- coding: utf-8 -*-
2. Created on Mon Jun 15 12:40:50 2020
3. @author: Kenny
4. """
5. from guiKenny01 import Ui_MainWindow
6. from PyQt5 import QtGui
7. from PyQt5 import QtWidgets
8. from mainwindowkenny import MainWindow
9.
10. if __name__ == "__main__":
11. import sys
12. app = QtWidgets.QApplication(sys.argv)
13. mw = MainWindow()
14. mw.show()
15. sys.exit(app.exec_())
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 61
51
LAMPIRAN 3
Pengujian Akurasi
1. Hasil dengan minimum support 1% dengan minimum conficende 60%
2. Hasil dengan minimum support 2% dengan minimum conficende 40%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 62
52
3. Hasil dengan minimum support 3% dengan minimum conficende 50%
4. Hasil dengan minimum support 4% dengan minimum conficende 40%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Page 63
53
5. Hasil dengan minimum support 8 % dengan minimum conficende 2%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI