Top Banner
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
63

ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

Oct 31, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

43

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

44

LAMPIRAN 1

Diagram Batang Item Terbeli Terbanyak

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

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: ANALISIS KERANJANG BELANJA PADA DATA PENJUALAN OBAT …

53

5. Hasil dengan minimum support 8 % dengan minimum conficende 2%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI