plagiat merupakan tindakan tidak terpuji plagiat

advertisement
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
HALAMAN JUDUL
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun Oleh :
Elisabet Septyana Eka Enykawati
115314011
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
i
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
APPLICATION OF DATA MINING IN CLOTHING RETAIL COMPANY
TO PREDICT THE AVAILABILITY OF GOODS USING FP-GROWTH ALGORITHM
JUDUL
A Final Project
Presented as Partial Fullfillment of the Requirements
To Obtain the Sarjana Komputer Degree
In Informatics Engineering Study Program
By :
Elisabet Septyana Eka Enykawati
115314011
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
ii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSETUJUAN
iii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PENGESAHAN
iv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSEMBAHAN
Tuhan Yesus Kristus
Bapak dan Ibu tercinta yang seantiasa memberikan
doa, dukungan semangat dan motivasi
Semua keluarga dan teman – teman tercinta
Almamaterku
Universitas Sanata Dharma Yogyakarta
v
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya
atau bagian karya orang lain, kecuali yang telah saya sebutkan dalam kutipan dan daftar pustaka,
sebagaimana layaknya karya ilmiah
Yogyakarta, 30 Juli 2015
Penulis
Elisabet Septyana Eka Enykawati
vi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRAK
Saat ini teknologi informasi berkembang sangat pesat. Hal tersebut memberikan dampak yang
besar bagi perkembangan dunia bisnis. Salah satunya adalah perkembangan bisnis di bidang
industri perdagangan. Perusahaan – perusahaaan bersaing untuk menarik perhatian dari
masyarakat dengan memberikan inovasi – inovasi baru. Perusahaan membutuhkan strategi –
strategi khusus untuk dapat menciptakan inovasi baru. Kepuasan konsumen adalah aset utama
bagi perusahaan untuk dapat mengembangkan bisnis terebut. Salah satu kepuasan konsumen di
dapatkan dengan ketersediaan barang yang dicari oleh konsumen.
Prediksi ketersediaan jenis barangdalam perusahaan tersebut dapat dilakukan dengan
memanfaatkan data transaksi penjualan. Pengolahan data transaksi yang tepat dapat digunakan
sebagai acuan dalam menentukan strategi untuk meningkatkan pelayanan konsumen. Dengan
menggunakan teknik pengolahan data mining, data transaksi penjualan akan diolah sehingga
menghasikan informasi yang bermanfaat untuk perusahaan. Teknik pengolahan data mining
terdapat bermacam – macam jenis tergantung dengan kegunaannya. Pada kasus ini, digunakan
pengolahan data mining secara asosiasi. Asosiasi adalah teknik data mining yang bertujuan
untuk menemukan hubungan antara satu item dengan item yang lain. Hubungan antar item
melalui data transaksi dapat dijadikan sebagai prediksi untuk menentukan jenis barang yang
tersedia.
Pada Tugas Akhir ini dibuat sebuah sistem untuk mengimplementasikan salah satu algoritma
yang dapat digunakan untuk mencari hubungan antara item yang ada yaitu algoritma FP-Growth.
Data yang digunakan adalah data transaksi penjualan. Hasil akhir dari proses pengolahan data
penjualan adalah pola asosiasi. Pola asosiasi yang dimaksud adalah hubungan suatu barang
terjual bersamaan dengan barang apa dalam transaksi penjualan. Hasil analisa dari pola tersebut
dapat direkomendasikan kepada pemilik perusahaan sebagai acuan dalam pengambilan
keputusan dalam penyediaan jenis barang untuk meningkatkan penjualan.
Kata kunci :data mining, algoritma asosiasi, FP-Growth.
vii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRACT
Today information technology is developing very rapidly. It is a big impact for the development
of the business world. One is the development of business in the field of trade industry.
Companies - firms compete to attract the attention of the public by providing innovations - new
innovations. Companies need a strategy - specific strategies to be able to create new innovations.
Consumer satisfaction is a major asset for the company to able to develop the business.
Consumer satisfaction with the availability of goods obtained in the search by consumers.
Prediction availability of goods can be done by utilizing the company's sales transaction data.
The proper processing of transaction data can be used as a reference in determining a strategy to
improve customer service. By using the processing techniques of data mining, sales transaction
data will be processed so generate useful information for the company. Processing techniques
there are a variety of data mining - maca types depending on its usefulness. In this case, the
processing of data mining used in the association. Association data mining is a technique that
aims to find the relationship between one item to another. Relations between mealui item
transaction data can be used as predictorsavailability of goods.
In this final project created a system to implement one algorithm that can be used to find the
relationship between existing items that FP-Growth algorithm. The data used is the sales
transaction data. The final result of the processing of sales data is a pattern association. Patterns
of association in question is the relationship of goods sold in conjunction with any item in the
sales transaction. Results of analysis of the pattern can be recommended to the owner of the
company as a reference in the decision making in the provision of inventory to increase sales.
Key words : data mining, association algorithm, FP-Growth.
viii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma
Nama
:Elisabet Septyana Eka Enykawati
Nomor Mahasiswa
:115314011
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas
Sanata Dharma karya ilmiah saya yang berjudul:
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakan Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain,
mengelolanya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin
dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya
sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya
Dibuat di Yogyakarta
Pada tanggal : 30 Juli 2015
Elisabet Septyana Eka Enykawati
ix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
KATA PENGANTAR
Puji syukur penulis haturkan kehadirat Tuhan Yang Maha Esa atas rahmat yang
telah dilimpahkan-Nya, atas terselesaikannya Tugas Akhir ini yang berjudul “ PENERAPAN
DATA MINING
PADA PERUSAHAAN RITAIL PAKAIAN UNTUK MEMPREDIKSI
KETERSEDIAAN JENIS BARANG DENGAN MENGGUNAKAN ALGORITMA FPGROWTH “.
Dalam penyelesaian Tugas Akhir ini, penulis telah mendapatkan bimbingan, bantuan
serta pengarahan-pengarahan dari berbagai pihak sehingga penulis dapat menyelesaikan karya
ilmiah ini dengan baik dan lancar.
Atas terselesainya Tugas Akhir ini penulis mengucapkan terimakasih kepada :
1. Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas Sains dan Teknoogi Universitas
Sanata Dharma Yogyakarta.
2. Ibu Ridowati Gunawan, S.Kom.,M.T. selaku Ketua Program Studi Teknik Informatika
dan dosen pembimbing akademik yang telah memberikan kesabaran, waktu dan
kebaikan.
3. Bapak Henricus Agung Hernawan S.T.,M.Kom. selaku dosen pembimbing akademik,
yang telah memberikan bimbingan dan saran selama penulis menempuh studi
4. Bapak Eko Hari Parmadi, S.Si.,M.Kom. selaku dosen penguji, yang telah memberikan
kritik dan saran kepada penulis.
5. Seluruh dosen yang telah mendidik dan memberikan ilmu pengetahuan berharga selama
penulis belajar di Universitas Sanata Dharma Yogyakarta.
x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6. Bapak dan Ibu tercinta yang telah memberikan kasih sayang,
perhatian, doa dan
dukungan sehingga penulis dapat menyelesaikan tugas akhir.
7. Kedua adikku Destya dan Lian yang telah memberikan dukungan kepada penulis dalam
menyelesaikan tugas akhir.
8. Nanda yang senantiasa memberikan perhatian, semangat dan motivasi kepada penulis
sehingga dapat menyelesaikan tugas akhir ini.
9. Teman – teman Teknik Informatika khususnya angkatan 2011 atas kebersamaannya
selama 4 tahun ini.
10. Seluruh staff Sekretariat Fakultas Sains dan Teknologi Universitas Sanata Dharma yang
banyak membantu dalam urusan administrasi akademik
11. Seluruh pihak yang telah membantu dalam proses penyelesaian tugas akhir ini.
Penelitian tugas akhir ini masih memiliki banyak kekurangan. Untuk itu, penulis sangat
membutuhkan saran dan kritik untuk perbaikan di masa yang akan datang. Semoga penelitian
tugas akhir ini dapat membawa manfaat bagi semua pihak.
Yogyakarta, 30 Juli 2015
Penulis
Elisabet Septyana Eka Enykawati
xi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR ISI
HALAMAN JUDUL ..................................................................................................................................... i
HALAMAN PERSETUJUAN..................................................................................................................... iii
HALAMAN PENGESAHAN...................................................................................................................... iv
HALAMAN PERNYATAAN KEASLIAN KARYA ................................................................................. vi
ABSTRAK .................................................................................................................................................. vii
ABSTRACT............................................................................................................................................... viii
HALAMAN PERSETUJUAN PUBLIKASI KARYA ILMIAH ................................................................ ix
KATA PENGANTAR .................................................................................................................................. x
DAFTAR ISI............................................................................................................................................... xii
DAFTAR GAMBAR .................................................................................................................................. xv
DAFTAR TABEL.......................................................................................................................................xvi
BAB I ............................................................................................................................................................ 1
PENDAHULUAN ........................................................................................................................................ 1
1.1
Latar Belakang .............................................................................................................................. 1
1.2
Rumusan Masalah ......................................................................................................................... 2
1.3
Tujuan Penelitian .......................................................................................................................... 3
1.4
Batasan Masalah ........................................................................................................................... 3
1.5
Metodologi Penelitian ................................................................................................................... 3
1.6
Sistematika Penulisan ................................................................................................................... 5
BAB II........................................................................................................................................................... 7
TINJAUAN PUSTAKA ............................................................................................................................... 7
2.1
Pengertian Data Mining ................................................................................................................ 7
2.2
Proses Data Mining ....................................................................................................................... 7
2.3
Teknik – Teknik Data Mining ...................................................................................................... 9
2.3.1
Association Rule Mining ....................................................................................................... 9
2.3.2
Classification ........................................................................................................................ 9
2.3.3
Clustering ............................................................................................................................ 10
2.3.4
Outlier Analysis................................................................................................................... 10
2.4
Algoritma Frequent Pattern Growth .......................................................................................... 10
BAB III ....................................................................................................................................................... 20
xii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ANALISIS DAN PERANCANGAN SISTEM .......................................................................................... 20
Analisis Sistem............................................................................................................................ 20
3.1
3.1.1
Analisis Data Awal ............................................................................................................. 21
3.1.2
Tahap – Tahap KDD ........................................................................................................... 22
3.2 Identifikasi Sistem ............................................................................................................................ 32
3.2.1
Diagram Use Case .............................................................................................................. 32
3.2.2
Narasi Use Case .................................................................................................................. 34
Perancangan Umum Sistem ........................................................................................................ 38
3.3
3.3.1
Masukan Sistem .................................................................................................................. 38
3.3.2
Proses Sistem ...................................................................................................................... 38
3.3.3
Keluaran Sistem .................................................................................................................. 39
3.3.4
Perancangan Struktur Data.................................................................................................. 39
Perancangan Sistem .................................................................................................................... 40
3.2
3.4.1
Diagram Aktivitas ............................................................................................................... 40
3.4.2
Diagram Kelas Analisis ...................................................................................................... 44
3.4.3
Diagram Sequence............................................................................................................... 45
3.4.4
Diagram Kelas Desain ........................................................................................................ 48
3.4.5
Rincian Algoritma Per Method ........................................................................................... 49
3.5
Perancangan Antar Muka Pengguna ........................................................................................... 64
3.5.1
Perancangan Antar Muka Halaman Home .......................................................................... 64
3.5.2
Perancangan Antar Muka Halaman Open ........................................................................... 65
3.5.3
Perancangan Antar Muka Halaman Prepocessing .............................................................. 66
3.5.4
Perancangan Antar Muka Halaman Hasil Proses................................................................ 67
3.5.5
Perancangan Antar Muka Halaman Bantuan ...................................................................... 68
BAB IV ....................................................................................................................................................... 69
IMPLEMENTASI SISTEM........................................................................................................................ 69
4.1
Implementasi Antar Muka Pengguna .......................................................................................... 69
4.1.1
Implementasi Antar Muka Halaman_Open ........................................................................ 69
4.1.2
Implementasi Antar Muka Halaman_Prepocessing............................................................ 74
4.1.3
Implementasi Antar Muka Halaman_HasilProses .............................................................. 77
4.1.4
Implementasi Antar Muka Halaman_Home ....................................................................... 80
4.1.5
Implementasi Antar Muka Halaman_Bantuan .................................................................... 82
xiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.2
Implementasi Kelas ..................................................................................................................... 83
4.2.1
Implementasi Kelas Model ................................................................................................. 83
4.2.2
Implementasi Kelas Controller ........................................................................................... 83
4.2.3
Implementasi Kelas View .................................................................................................... 83
BAB V ........................................................................................................................................................ 85
UJICOBA DAN EVALUASI ..................................................................................................................... 85
BAB VI ..................................................................................................................................................... 105
PENUTUP ................................................................................................................................................ 105
6.1
Kesimpulan ............................................................................................................................... 105
6.2
Saran ......................................................................................................................................... 105
DAFTAR PUSTAKA ............................................................................................................................... 106
LAMPIRAN 1 ........................................................................................................................................... 107
xiv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR GAMBAR
No
Keterangan
Gambar
Hal
2.1
Proses Data Mining
10
2.2
Header table
18
3.1
Hasil scanning data transaksi
26
3.2
Scanning ke-2 ( pembentukan FP –tree)
29
3.3
Diagram Use Case
34
3.4
Diagram Konteks
40
3.5
Diagram AktivitasCari database dan data transaksi penjualan
43
3.6
Diagram AktivitasCari pola asosiasi barang
44
3.7
Diagram AktivitasSimpan hasil pola asosiasi barang
45
3.8
Diagram Kelas Analisis
46
3.9
Diagram Sequence cari data transaksi
47
3.10
Diagram Sequence cari pola asosiasi
48
3.11
Diagram Sequence Cetak hasil asosiasi
49
3.12
Diagram Kelas Desain
50
3.12
Perancangan Antar Muka Home
66
3.13
Perancangan Antar Muka Halaman Open
67
3.14
Perancangan Antar Muka Halaman Prepocessing
68
3.15
Perancangan Antar Muka Halaman Hasil Proses
69
3.16
Perancangan Antar Muka Halaman Bantuan
70
4.1
Implementasi Antar Muka Halaman Open
72
4.2
Implementasi Antar Muka Halaman Prepocessing
76
4.3
Implementasi Antar Muka Halaman Hasil Proses
79
4.4
Implementasi Antar Muka Halaman Home
82
4.5
Implementasi Antar Muka Halaman Bantuan
84
xv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR TABEL
No Tabel
Keterangan
Hal
2.1
Transaksi dalam database
14
2.2
Hasil scanning dan sorting dari database
15
2.3
Hasil item yang memenuhi minimum support
16
2.4
Transaksi database yang berisi item yang memenuhi minimum support
16
2.5
Hasil Akhir
20
3.1
Atribut dalam table transaksi detail
23
3.2
Atribut yang digunakan dalam transaksi
25
3.3
Item sesuai min_supp
27
3.4
Hasil Penyetaraan 1
30
3.5
Hasil Penyetaraan 2
31
3.6
Hasil Penyetaraan 3
32
3.7
Hasil Penyetaraan 4
32
3.8
Hasil Rule
33
3.9
Deskripsi Use Case
35
3.10
Narasi Use Case Cari database dan data transaksi penjualan
36
3.11
Narasi Use Case Cari pola asosiasi barang
37
3.12
Narasi Use Case Cetak hasil pola asosiasi barang
39
3.13
Struktur Data
41
3.14
Algoritma Kelas Control_Database
51
3.15
Algoritma Kelas Control_Algorithm
54
3.16
Algoritma Kelas LihatHasilAlgoTabelModel
62
3.17
Algoritma Kelas Konn
64
xvi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.1
Keterangan Halaman_Open
72
4.2
Keterangan Halaman_Prepocessing
76
4.3
Keterangan Halaman_HasilProses
79
4.4
Keterangan Halaman_Home
82
4.5
Keterangan Halaman_Bantuan
84
4.6
Implementasi dari kelas model
85
4.7
Implementasi dari kelas Controller
85
4.8
Implementasi dari kelas View
86
5.1
Percobaan tanggal 1 April 2015 dengan minimum support 3%
88
5.2
Percobaan tanggal 1 April 2015 dengan minimum support 2.5%
88
5.3
Percobaan tanggal 1 April 2015 dengan minimum support 2%
89
5.4
Percobaan tanggal 1 April 2015 dengan minimum support 1.5%
90
5.5
Percobaan tanggal 2 April 2015 dengan minimum support 3%
91
5.6
Percobaan tanggal 2 April 2015 dengan minimum support 2.5%
91
5.7
Percobaan tanggal 2 April 2015 dengan minimum support 2%
92
5.8
Percobaan tanggal 2 April 2015 dengan minimum support 1.5%
92
5.9
Percobaan tanggal 2 April 2015 dengan minimum support 1.4%
93
5.10
Percobaan tanggal 3 April 2015 dengan minimum support 3%
95
5.11
Percobaan tanggal 3 April 2015 dengan minimum support 2.5%
95
5.12
Percobaan tanggal 3 April 2015 dengan minimum support 2%
96
xvii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.13
Percobaan tanggal 3 April 2015 dengan minimum support 1.5%
97
5.14
Percobaan tanggal 1,2 April 2015 dengan minimum support 3%
98
5.15
Percobaan tanggal 1,2 April 2015 dengan minimum support 2.5%
99
5.16
Percobaan tanggal 1,2 April 2015 dengan minimum support 2%
100
5.17
Percobaan tanggal 1,2 April 2015 dengan minimum support 1.5%
100
5.18
Percobaan tanggal 1,2,3 April 2015 dengan minimum support 3%
102
5.19
Percobaan tanggal 1,2,3 April 2015 dengan minimum support 2.5%
102
5.20
Percobaan tanggal 1,2,3 April 2015 dengan minimum support 2%
103
5.21
Percobaan tanggal 1,2,3 April 2015 dengan minimum support 1.5%
103
5.22
Tabel rule dengan akurasi tertinggi
105
xviii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi informasi kini berkembang dengan pesat. Hal tersebut
berpengaruh besar terhadap pertumbuhan bisnis baik di bidang industri maupun jasa.
Pengaruh tersebut sangat terlihat di dalam persaingan yang terjadi di antara perusahaan
yang ada. Mereka berlomba – lomba untuk menciptakan inovasi – inovasi baru untuk
menarik masyarakat. Oleh karena itu, para pelaku bisnis dalam sebuah perusahaan
membuat strategi – strategi bisnis yang baru agar perusahaan yang mereka kelola dapat
tetap berjalan dengan baik.
Salah satu perusahaan tersebut adalah sebuah perusahaan XYZ yang menjalankan
bisnis di bidang ritail. Aset utama dari sebuah perusahaan tersebut adalah kepuasan
konsumen terhadap ketersediaan produk yang ada. Tidak tersedianya barang yang di cari
oleh konsumen berpengaruh pula pada pelayanan maupun kepuasan konsumen serta
pendapatan perusahaan. Oleh karena itu dibutuhkan suatu prediksi untuk mengetahui
jenis barang yang harus tersedia dalam perusahaan tersebut. Prediksi jenis barang yang
harus tersedia sangat penting bagi perusahaan untuk menentukan strategi yang tepat yang
akan dijalankan dalam perusahaan tersebut untuk dapat mengoptimalkan penjualan.
Prediksi jenis barang yang harus tersedia dapat diketahui dengan mengamati data
transaksi penjualan. Data penjualan akan diolah yang menghasilkan laporan laba dan rugi
dari perusahaan tersebut. Melalui teknologi data miningyang ada dapat dijadikan sebagai
solusi bagi para pelaku perusahaan dalam pengambilan keputusan dalam menentukan
strategi perusahaan dalam meningkatkan pelayanan kepada konsumen.
Di dalam data mining terdapat beberapa teknik dimana penggunaannya
disesuaikan pada masalah yang ada. Pada permasalahan prediksi jenis barang yang harus
tersediadalam perusahaan, digunakan teknik association rule.Teknik association rule
dapat memberikan gambaran / pola – pola tertentu yang sering muncul bersamaan dalam
sekumpulan data yang ada. Dalam teknik association rule terdapat sebuah algoritma FP–
1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2
Growth yang dapat digunakan sebagai salah satu alternative algoritma dalam menentukan
prediksi jenis barang yang harus tersedia dalam perusahaan.
Algoritma FP–Growth merupakan pengembangan dari algoritma apriori. Pada
algoritma apriori dibutuhkan scanning data berulang – ulang untuk menentukan frequent
Itemset. Berbeda dengan algoritma FP–Growth yang hanya membutuhkan sebanyak dua
kali scanning data untuk menentukan frequent Itemset. Dalam menentukan frequent
Itemset pada algoritma FP–Growth digunakan pohon prefix yang biasa disebut FP–tree.
Penggunaan FP–treeakan membercepat dalam proses penentuan frequent Itemset.
Apabila frequent Itemset tersebut memiliki nilai kurang dari minimum support yang ada,
maka frequent Itemset tersebut akan dibuang dan tidak akan digunakan. Selanjutnya
untuk frequent Itemset yang berada di atas minimum support maupun sama dengan
minimum support akan digunakan untuk memprediksi.
Penerapan dari algoritma FP–Growth dapat membantu perusahaan dalam
memprediksi jenis barang yang harus tersediadengan mengolah data transaksi penjualan
barang yang ada.Hasil akhir dari proses tersebut berupagambaran / pola produk yang
sering dibeli oleh konsumen. Hasil tersebut dapat digunakan oleh perusahaan dalam
menentukan ketersediaan barang di perusahaan.
1.2 Rumusan Masalah
Berdasarkan pada latar belakang di atas, maka dapat dirumuskan menjadi dua
masalah utama yaitu :
a. Bagaimana menerapkan algoritma FP- Growth
dalam memprediksi jenis
barang yang harus tersedia pada perusahaan XYZ?
b. Apakah penerapan dari algoritma FP-Growth dapat memberikan hasil yang
akurat dalam memprediksi jenis barang yang harus tersedia dalam perusahaan
XYZ tersebut ?
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3
1.3 Tujuan Penelitian
Tujuan dari penelitian ini adalah
a. Membantu perusahaan XYZ dalam memprediksi jenis barang yang harus
tersedia dengan menggunakan algoritma FP- Growth
b. Menguji keakuratan algoritma FP-Growth dalam memprediksijenis barang
yang harus tersedia dalam perusahaan XYZ.
1.4 Batasan Masalah
Batasan masalah dari penelitian ini adalah
a. Data yang digunakan dalam penelitian ini adalah data transaksi penjualan
perusahaan XYZ yang bergerak di bidang retail meliputi no faktur penjualan,
kode barang beserta nama barang dari item yang dibeli dalam satu kali
transaksi penjualan.
b. Data diambil dalam kurun waktu satu tahun yaitu tahun 2013.
c. Data stok masing – masing barang disumsikan dengan jumlah 200.
d. Teknik Asosiasi yang digunakan untuk melakukan analisis data yaitu
menggunakan algoritma FP – Growth
1.5 Metodologi Penelitian
Dalam penelitian ini digunakan beberapa metodologi penelitian yaitu :
a. Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah dengan
melakukan pengambilan data yang dibutuhkan secara langsung pada objek
penelitian dan studi pustaka dengan mengumpulkan data dan mempelajari
masalah yang berhubungan dengan objek penelitian yang bersumber dari buku
– buku pedoman untuk melengkapi data yang diperlukan dalam penelitian ini.
b. Metode Analisis Data
Metode analisis data yang digunakan dalam penelitian ini adalah
menggunakan tahapan Knowledge Discovery in Databases (KDD) yang terdiri
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
dari
beberapa
tahap
diantaranya
adalah
selection,
4
preprocessing,
transformation, data mining dan evaluation. (Jiawei Han, 2011)
a. Data Selection
Data Selection merupakan tahap dimana menciptakan himpunan
data target, pemilihan himpunan data, atau memfokuskan pada
subset variabel atau sampel data, dimana penemuan (discovery)
akan dilakukan. Pemilihan (seleksi) data dari sekumpulan data
operasional perlu dilakukan sebelum tahap penggalian informasi
dalam KDD dimulai. Data hasil seleksi yang akan digunakan untuk
proses data mining, disimpan dalam suatu berkas, terpisah dari
basis data operasional.
b. Preprocessing
Tahap Preprocessing merupakan tahap pemprosesan pendahuluan
dan
pembersihan
data
merupakan
operasi
dasar
seperti
penghapusan noise dilakukan. Sebelum proses data mining dapat
dilaksanakan, perlu dilakukan proses cleaning pada data yang
menjadi fokus KDD. Proses cleaning mencakup antara lain
membuang duplikasi data, memeriksa data yang inkonsisten, dan
memperbaiki kesalahan pada data, seperti kesalahan cetak
(tipografi).
Dilakukan
proses
enrichment,
yaitu
proses
“memperkaya” data yang sudah ada dengan data atau informasi
lain yang relevan dan diperlukan untuk KDD, seperti
data
atau informasi eksternal.
c. Transformation
Tahap transformation merupakan tahap pencarian fitur-fitur yang
berguna untuk mempresentasikan data yang bergantung kepada
tujuan yang ingin dicapai. Tahap ini juga merupakan proses
transformasi pada data yang telah dipilih, sehingga data tersebut
sesuai untuk proses data mining. Proses ini merupakan proses
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5
kreatif dan sangat tergantung pada jenis atau pola informasi yang
akan dicari dalam basis data
d. Data mining
Proses data mining yaitu proses mencari pola atau informasi
menarik dalam data terpilih dengan menggunakan teknik
atau
metode tertentu. Teknik, metode, atau algoritma dalam data
mining sangat bervariasi. Pemilihan metode atau algoritma yang
tepat sangat bergantung pada tujuan dan
proses KDD secara
keseluruhan. Pemilihan algoritma data mining untuk pencarian
(searching).
e. Evaluation
Tahap evaluation merupakan tahap penerjemahan pola-pola yang
dihasilkan dari data mining. Pola informasi yang dihasilkan dari
proses data mining perlu ditampilkan dalam bentuk yang mudah
dimengerti oleh pihak yang berkepentingan. Tahap ini merupakan
bagian dari proses KDD
yang mencakup pemeriksaan apakah
pola atau informasi yang ditemukan bertentangan dengan fakta
atau hipotesa yang ada sebelumnya.
1.6 Sistematika Penulisan
Sistematika ini secara garis besar memberikan isi yang berupa susunan bab dari
penelitian.
BAB I PENDAHULUAN
Bab ini berisikan tentang latar belakang, rumusan masalah, tujuan penelitian,
batasan masalah, metodologi penelitian serta sistematika penulisan tugas akhir ini.
BAB II TINJAUAN PUSTAKA
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6
Bab ini berisikan teori – teori yang mendasari penulis dalam melakukan
pemecahan masalah yang ada guna sebagai acuan untuk penyelesaian tugas akhir
ini.
Di
antaranya
adalah
penjelasan
mengenai
definisi
data
mining,
pengelompokan data mining ,fungsi data mining, langkah – langkah data mining ,
algoritma asosiasi , algoritma FP – Growth.
BAB III ANALISIS DAN PERANCANGAN
Bab ini menjelaskan tentang analisa dan perancangan sistem yang akan dibuat
diantaranya mengumpulkan data dan menganalisis data dengan menjalankan
proses KDD.
BAB IV IMPLEMENTASI SISTEM
Bab ini menjelaskan mengenai implementasi dari analisa yang telah dibuat pada
tahap sebelumnya.
BAB V UJI COBA DAN EVALUASI
Bab ini berisi mengenai pengujian terhadap sistem yang telah dibuat dan evaluasi
terhadap sistem tersebut.
BAB VI PENUTUP
Bab ini berisi mengenai kesimpulan dan saran dari penulis terhadap sistem yang
telah dibuat untuk pengembangan selanjutnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB II
TINJAUAN PUSTAKA
2.1 Pengertian Data Mining
Data mining sangatlah penting bagi kita di jaman sekarang ini sebab
pertumbuhan data dari hari ke hari semakin meningkat, dari terabytes hingga
pentabytes. Semakin tingginya persaingan yang ada sekarang ini membuat kita
perlu untuk mencari sesuatu atau pengetahuan yang ada dalam data. Menurut
Jiawei , secara sederhana kata data mining merujuk pada ekstraksi atau
“menambang” pengetahuan dari sejumlah data yang besar. Dari penjelasan
tersebut, data mining dapat diartikan sebagai sebuah proses dari sekumpulan data
yang memiliki jumlah besar untuk mendapatkan data yang hasilnya tidak hanya
sekedar informasi melainkan merupakan sebuah pengetahuan atau knowledge
yang tersembunyi dari data tersebut. Pengetahuan atau knowledge yang diperoleh
dari hasil mining terhadap sekumpulan kata tersebut dapat membantu dalam
pengambilan sebuah keputusan.
Proses data mining ini adalah mengolah data, dimana data sebagai input
atau masukan yang melalui sebuah proses akan menghasilkan output yang tidak
hanya berisikan informasi namun ada sebuah pengetahuan yang dapat di ambil
dari data tersebut. Dari pengetahuan yang didapatkan akan diolah menjadi wisdom
yang sangat bermanfaat.
2.2 Proses Data Mining
Proses data mining dibagi menjadi beberapa proses yang dapat diilustrasikan
seperti pada gambar 2.1 di bawah ini :
7
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8
Gambar 2. 1 Proses Data Mining (Jiawei Han,2011)
Gambar 2.1 dapat dijelaskan seperti berikut :
a. Data Cleaning yaitu proses untuk menghilangkan noise dan data yang
tidak konsisten.
b. Data Integration yaitu proses dimana data dari berbagai sumber
digabungkan.
c. Data Selection yaitu proses penyeleksian data yang akan digunakan
untuk proes data mining.
d. Data Transformation yaitu proses data ditransformasikan dan
digabungkan ke dalam sebuah bentuk yang sesuai dengan data mining.
e. Data mining yaitu proses mencari pola atau informasi menarik dalam
data terpilih dengan menggunakan teknik atau metode tertentu.
f. Evaluation yaitu penerjemahan pola-pola yang dihasilkan dari data
mining. Pola informasi yang dihasilkan dari proses data mining perlu
ditampilkan dalam bentuk yang mudah dimengerti oleh pihak yang
berkepentingan.
g. Knowledge
Presentation
yaitu
proses
representasi
pengetahuan
yang
digunakan
gambaran pada pihak yang terkait.
visualisasi
untuk
dan
teknik
memberikan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9
2.3 Teknik – Teknik Data Mining
Dalam data mining terdapat beberapa teknik yang digunakan untuk melakukan
analisa terhadap sekumpulan data. Teknik data mining yang akan digunakan dalam
melakukan analisa data disesuaikan dengan kebutuhan dan masalah yang ada. Berikut
adalah beberapa teknik yang digunakan dalam data mining.
2.3.1 Association Rule Mining
Association rule mining merupakan salah satu teknik dalam data mining
yang digunakan untuk menemukan sebuah aturan assosiatif antara suatu kombinasi
item. Aturan yang digunakan dalam teknik ini adalah menggunakan aturan “ Jika –
Maka “. Seperti contohnya yang terjadi dari sebuah transaksi pembelian adalah jika
konsumen membeli barang A maka ia akan membeli juga barang B.
Beberapa algoritma yang menggunakan teknik association rule mining
adalah algoritma apriori yang menggunakan iterasi secara berulang – ulang untuk
menentukan frequent itemset dan algoritma FP-Growth
yang menggunakan
Frequent Pattern Tree dalam menentukan frequent itemset.
2.3.2 Classification
Teknik
Classification
merupakan
teknik
yang
digunakan
untuk
menemukan sebuah model atau sebuah fungsi yang mendiskripsikan dan
membedakan kelas atau konsep data, dengan tujuan menggunakan model tersebut
untuk memprediksi kelompok dari object yang belum diketahui labelnya. Model
dapat direpresentasikan dalam bentuk classification rules, decision tress,
mathematical formulae, atau neural networks.
Beberapa method yang digunakan untuk membangun sebuah model
classification yaitu naïve Bayesian classification, support vector machines, dan knearest-neighbor classification.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
2.3.3 Clustering
Berbeda dengan teknik classification dan association rule, teknik clustering
merupakan teknik yang digunakan untuk melakukan pengelompokan data dan
memberikan label pada sekelompok data yang sebelumnya tidak diketahui. Object
yang dikelompokkan atau di cluster berdasarkan pada prinsip memaksimalkan
kesamaan antar anggota di dalam suatu kelas dan meminimalkan kesamaan antar
kelas. Dengan hal tersebut object dalam kelas terbentuk, jadi object di dalam sebuah
cluster memiliki kesamaan yang tinggi apabila dibandingkan antara anggota satu
dengan anggota yang lain dalam cluster tersebut. Tetapi akan memiliki perbedaan
yang tinggi apabila dibandingkan dengan object yang terletak dalam cluster yang
berbeda.
2.3.4 Outlier Analysis
Dalam sekumpulan data mungkin terdapat object yang tidak sesuai dengan
model dari data, itulah yang disebut dengan outlier. Banyak method dari data
mining yang membuang outlier yang biasa disebut dengan noise atau exception.
Outlier mendeteksi dengan menggunakan tes statistic yang mengasumsikan
kemungkinan model dalam data atau menggunakan ukuran jarak dimana object
dikendalikan dengan mempertimpangkan outlier dalam cluster yang lain.
2.4 Algoritma Frequent Pattern Growth
Algoritma FP-Growth merupakan salah satu algoritma data mining yang
menggunakan teknik association rule. Algoritma FP-Growth sangat efisien dan
scalable untuk menentukan frequent pattern baik dalam data besar maupun kecil.
Algoritma ini juga lebih cepat daripada algoritma apriori dimana pada algoritma
apriori harus dilakukan iterasi secara berulang kali sehingga membutuhkan waktu
yang cukup lama untuk menyelesaikan. Algoritma apriori juga tidak dapat
menangani data yang besar, sehingga algoritma FP-Growth ini dapat dijadikan
sebagai solusi bagi permasalahan yang terjadi pada algoritma apriori yaitu
masalah pada candidate set generation and test.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11
Beberapa istilah yang ada dalam algoritma FP-Growth diantaranya dapat
dijelaskan dengan pemisalan berikut ini :
a.
*
+merupakan kumpulan dari item – item
yang ada dalam transaksi database
(
b.
database dimana
)merupakan transaksi yang ada dalam
(
,
-)merupakan sebuah transaksi
yang mengandung item yang berada pada I.
c. Support( frekuensi kemunculan ) dari pattern A adalah angka
dari transaksi yang mengandung item A di dalam DB.
d. A merupakan sebuah frequent pattern jika nilai dari supportA
tidak kurang dari minimum support yang telah ditentukan
sebelumnya.
Dalam algoritma FP-Growth dikenal pula istilah frequent pattern tree(
FP-tree) yaitu sebuah struktur seperti pohon prefix yang digunakan untuk
mendesain struktur frequent pattern mining secara efisien. Setiap node pada
pohon diisi dengan 1 item dan di setiap anak dari node tersebut merepresentasikan
item yang berbeda dengan item yang ada pada induk. Setiap node juga
menyimpan informasi pendukung dari isi item di dalam path dari root hingga ke
node. Sebuah root dalam pohon diinisialisasikan dengan nilai null. Dengan
menggunakan FP-Tree, algoritma FP-growth dapat langsung mengekstrak
frequent Itemset.
Langkah – langkah yang dijalankan dalam algoritma FP-growth adalah
sebagai berikut :
a. Menentukan
minimum
support
yang
akan
digunakan
untuk
menentukan rule dalam mencari frequent pattern.
b. Melakukan scanning pada database untuk mendapatkan frekuensi
kemunculan suatu item.
c. Melakukan seleksi / pembuangan terhadap item yang memiliki count
kurang dari minimum support yang telah ditentukan. Untuk item yang
memenuhi minimum support disimpan dalam list L, dan lakukan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12
sorting secara descending berdasarkan jumlah frekuensi terbesar
hingga terkecil.
d. Membentuk root FP-Tree yang diberi nilai dengan “null”.
e. Melakukan scan yang kedua kalinya untuk cabang dari FP-Tree sesuai
dengan urutan transaksi pada list L. Apabila item yang ada pada
transaksi berikutnya sudah ada pada transaksi sebelumnya maka nilai
indeks dari item tersebut akan bertambah 1, sedangkan jika item belum
ada pada transaksi sebelumnya akan membentuk cabang baru.
f. Berdasarkan list L pisahkan tiap frequent itemsets tanpa pengulangan
g. Melakukan analisa FP-Tree yang telah terbentuk dengan cara mencari
frequent itemsets yang mengandung nilai ai lalu setarakan nilai
frequent itemsets tersebut dengan nilai ai. Setelah disetarakan,
jumlahkan kedua nilai support frequent itemsets yang sama. Untuk
nilai yang diatas maupun sama dengan minimum support lah yang
menjadi rule. Langkah analisa diatas dilakukan berulang untuk semua
subset yang ada pada FP-Tree.
h. Hasil analisa FP-Tree yang sesuai dengan minimum support itulah
yang digunakan sebagai rule
Berikut adalah contoh dari penerapan algoritma pada sebuah data transaksi :
Tabel 2. 1 Transaksi dalam database
TID
Items Bought
100
f,a,c,d,g,i,m,p
200
a,b,c,f,l,m,o
300
b,f,h,j,o
400
b,c,k,s,p
500
a,f,c,e,l,p,m,n
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13
Tabel 2.1 menjelaskan lima buah transaksi yang ada dalam database yaitu
*
yang
+.
ada
Sedangkan items bought menunjukkan item
pada
transaksi
*
tersebut
adalah
+. Untuk mulai melakukan mining
menggunakan algoritma FP-Growth, sebelumnya ditentukan dahulu minimum
support nya. Dalam contoh ini saya tentukan minimum support nyayaitu 3.
Tabel 2. 2 Hasil scanning dan sorting dari database
Item
Count
f
4
c
4
a
3
b
3
m
3
p
3
l
2
o
2
d
1
g
1
i
1
h
1
j
1
k
1
s
1
e
1
n
1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
14
Tabel 2.2 menjelaskan langkah pertama yang dijalankan yaitu melakukan
scan pada database untuk mendapatkan frekuensi kemunculan item dalam
database. Lalu sorting berdasarkan jumlah frekuensi terbesar hingga terkecil.
Urutan tersebut penting yang nantinya akan digunakan dalam membuat FP-Tree
Tabel 2. 3 Hasil item yang memenuhi minimum support
Item
Count
f
4
c
4
a
3
b
3
m
3
p
3
Tabel 2.3 menjelaskan langkah selanjutnya yaitu melakukan seleksi
terhadap item yang memiliki count kurang dari minimum support yang telah
ditentukan sehingga menyisakan item f, c,a,m,p dan b. Sehingga transaksi dalam
database yang berisi item yang memenuhi minimum support dapat di lihat pada
table 2.4
Tabel 2. 4 Transaksi database yang berisi item yang memenuhi minimum support
Items
(
Ordered)
TID
Bought
Items
100
f,a,c,d,g,i,m,p f,c,a,m,p
200
a,b,c,f,l,m,o
f,c,a,b,m
300
b,f,h,j,o
f,b
400
b,c,k,s,p
c,b,p
500
a,f,c,e,l,p,m,n f,c,a,m,p
Frequent
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15
Langkah selanjutnya adalah membuat root dari sebuah pohon yang
di beri label “null”. Pada tahap ini dilakukan proses scanning untuk yang
kedua kalinya. Proses scan ini diawali pada transaksi pertama yaitu
transaksi yang berisi item (f,c,a,m,p). Transaksi tersebut menjadi cabang
pertama dari pohon, setiap item baru diberi nilai 1 sehingga menjadi
⟨(
)(
)(
)(
)(
)⟩.
Pada transaksi kedua yaitu transaksi yang berisi item (f,c,a,b,m)
membentuk cabang baru ketika sampai pada item (b dan m) karena item
(f,c,a) sudah terbentuk pada transaksi pertama sehingga menggunakan
transaksi pertama. Hanya saja nilai dari item dalam node yang telah ada
pada transaksi pertama dan dilewati juga dalam transaksi kedua bertambah
1 sehingga nilainya menjadi 2. Sedangkan pada node yang sedang
terbentuk pertama kali pada transaksi kedua bernilai 1 sehingga hasilnya
adalah ⟨(
)(
)(
)(
)(
)⟩.
Pada transaksi ketiga yaitu transaksi yang berisi item (f,b)
membentuk cabang baru ketika pada item (b) karena item (f)
menggunakan cabang yang sudah terbentuk pada transaksi sebelumnya.
Sehingga nilai dari item-item tersebut adalah ⟨(
)(
)⟩.
Pada transaksi ke empat yaitu transaksi yang berisi item (c,b,p)
membentuk cabang baru dari awal karena pada transaksi sebelumnya tidak
ada yang melakukan scan dengan diawali item ( c ). Sehingga nilai dari
masing – masing item tersebut adalah 1
Sedangkan pada transaksi terakhir yaitu transaksi yang berisi item
(f,c,a,m,p ) tidak membentuk cabang baru hanya saja nilai dari masing –
masing item tersebut bertambah 1. Hasil scan kedua yang dilakukan dalam
database yang berupa pohon dapat dilihat pada gambar 2.2 di bawah ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
16
Gambar 2. 2Header table ( Jiawei Han)
Dengan pohon yang telah terbentuk, selanjutnya akan dilakukan
mining frequent patterns. Proses ini dilakukan dengan mengoleksi patterns
dari node yang dimulai dari head( kepala) dari node dan diikuti dengan
item yang ada pada node-links tersebut. Proses mining dimulai dari item
yang terletak paling bawah pada Header table yaitu p.
Untuk node p, mendapatkan nilai frequent pattern (p:3) dan dua
path dalam FP-tree yaitu ⟨
⟩ dan ⟨
⟩.
Dari path yang dilalui bersama dengan p hanya ada 2 kali sehingga
disamakan dengan nilai dari p tersebut yaitu ⟨
⟩. Begitu
juga dengan path yang kedua disamakan dengan jumlah p yang dilalui
bersama yaitu ⟨
⟩. Kemudian dari dua path tersebut dijumlahkan
nilai dari masing – masing item yang ada di kedua path sehingga
menghasilkan satu frequent pattern yaitu (c,p) karena hanya c dan p itu
sendiri yang memenuhi minimum support yang telah ditentukan.
Untuk node m, mendapatkan nilai frequent pattern (m:3) dan dua
path
⟨
dalam
FP-tree
yaitu
⟨
⟩
dan
⟩. Dari path yang dilalui bersama dengan m hanya
ada 2 kali sehingga disamakan dengan nilai dari m tersebut yaitu
⟨
⟩. Begitu juga dengan path yang kedua disamakan dengan
jumlah m yang dilalui bersama yaitu ⟨
⟩. Kemudian dari
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
17
dua path tersebut dijumlahkan nilai dari masing – masing item yang ada di
kedua path sehingga menghasilkan satu frequent pattern yaitu (f,c,a,m) .
Untuk node b, mendapatkan nilai frequent pattern (b:3) dan tiga
path dalam FP-tree yaitu ⟨
⟩ , ⟨
⟩, ⟨
⟩.
Dari path yang dilalui bersama dengan b hanya ada 2 kali path pertama
sehingga disamakan dengan nilai dari b tersebut yaitu ⟨
⟩.
Begitu juga dengan path yang kedua disamakan dengan jumlah b yang
dilalui bersama yaitu⟨
⟩. Selanjutnya berlaku juga dengan path yang
ketiga disamakan dengan jumlah b yang dilalui bersama yaitu⟨
⟩.
Kemudian dari dua path tersebut dijumlahkan nilai dari masing – masing
item yang ada di ketiga path. Dari node b ternyata tidak terdapat frequent
pattern karena tidak ada yang memenuhi minimum support.
Untuk node a, mendapatkan nilai frequent pattern (a:3) dan sebuah
path dalam FP-tree yaitu ⟨
⟩. Dari path yang dilalui bersama
dengan a ada 3 kali sehingga disamakan dengan nilai dari m tersebut yaitu
⟨
⟩.Dari path tersebut
menghasilkan satu frequent pattern yaitu
(f,c,a).
Untuk node c, mendapatkan nilai frequent pattern (c:4) dan dua
path dalam FP-tree yaitu ⟨
⟩ dan ⟨
⟩. Dari path yang dilalui
bersama dengan c hanya ada 3 kali sehingga disamakan dengan nilai dari c
tersebut yaitu ⟨
⟩. Dari path tersebut
menghasilkan satu frequent
pattern yaitu (f,c).
Untuk node f yang merupakan kepala dari node tidak dilakukan
mining frequent parent karena hanya terdiri dari satu item saja.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
18
Tabel 2. 5Hasil Akhir
Dari proses tersebut dapat beberapa rule yang merupakan hasil
akhir dari proses mining dengan menggunakan algoritma FP-Growth yaitu
{ (c,p), (f,c,a,m,p), (f,c,a), (f,c)} seperti yang terlihat pada table 2.5 di atas.
2.5 Lift Ratio
Lift Ratio merupakan sebuah ukuran yang digunakan dalam teknik asosiasi untuk
mengukur seberapa besar tingkat keakuratan sebuah rule yang dihasilkan dari proses
asosiasi.
Beberapa istilah yang digunakan dalam Lift Ratio adalah sebagai berikut :
a. Antecedent merupakan sebab. Antecedent
adalah
item yang menjadikan item
consequent.
b. Consequent merupakan sebuah akibat. Secara sederhana dapat dijelaskan sebagai
item barang yang dibeli karena suatu barang telah dibeli.
Sehingga rumus dari Lift Ratio dapat dituliskan seperti di bawah ini :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
19
……………………..(2.1)
Dimanaconfidence:
∑
….…….(2.2)
∑
Antecedent disimbolkan dengan A sedangkan consequent disimbolkan dengan C
Sedangkan expected confidence :
∑
∑
……………(2.3)
Nilai dari Lift Ratio dapat dibaca sebagai berikut :
a. Apabila nilai dari Lift Ratio > 1 maka menyatakan bahwa A dan C muncul lebih
sering dari yang diharapkan
b. Apabila nilai dari Lift Ratio = 1 maka menyatakan bahwa A dan C muncul hampir
selalu bersamaan seperti yang diharapkan
c. Apabila nilai dari Lift Ratio< 1 maka menyatakan bahwa A dan C muncul lebih
jarang dari yang diharapkan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Tahap analisis sistem merupakan tahap dimana sebuah solusi diberikan untuk
menyelesaikan masalah yang telah dirumuskan dalam BAB I. Penyelesaian tersebut
dibagi ke dalam beberapa komponen yang nantinya akan saling berinteraksi untuk
mencapai tujuan.
Dalam bab ini, analisis sistem digambarkan dengan bentuk pemodelan fungsi – fungsi
yang ada di sistem dan alur dari sistem tersebut.
Sistem yang akan dibuat adalah sistem yang dapat mengelola data transaksi penjualan
perusahaan retail yang digunakan untuk melakukan proses data mining, melakukan
analisa terhadap rule hasil dari proses mining dan mencetak hasil analisa proses mining.
Seperti yang telah disebutkan pada BAB I dalam Tujun Penelitian, maka sistem ini akan
melakukan proses data mining dengan menggunakan algoritma FP-Growthuntuk
memprediksi ketersediaan jenis barang pada perusahaan tersebut.
20
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.1.1
21
Analisis Data Awal
Data yang digunakan dalam penelitian ini adalah data transaksi detail dari
perusahaan retail ABC selama 1 hari. Data tersebut terdiri dari 3556 record.
Tabel 3. 1 Atribut dalam table transaksi detail
No
Nama Atribut
Keterangan
1
noFaktur
Nomor nota transaksi penjualan
2
kodeBarang
Kode dari masing masing barang
3
namaBarang
Nama dari item barang yang di beli
4
satuan
Jenis satuan barang yang di beli
5
size
Ukuran dari suatu item
6
hargaJual
Harga dari brang yang di beli
7
quantity
Jumlah pembelian barang dalam satu kali
transaksi
8
discount
9
discountReal
10
discount2
11
total
Total harga setelah discount
12
urut
No urut barang dari setiap nota transaksi
13
hpp
14
hppdpp
15
hargasatuan
16
sisapesan
17
statusReturOrder Berisi status dari retur order
18
statusNotaKredit Berisi status dari nota kredit
19
nourut
Potongan harga dari suatu barang
No urut transaksi penjualan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
22
Tahap – Tahap KDD
3.1.2
Sebelum data tersebut dimasukkan ke dalam sistem untuk dilakukan
penambangan data, maka dilakukan terlebih dahulu tahap – tahap dalam KDD (
Knowledge Discovery In Database). Tahap – tahap tersebut akan dijelaskan lebih detail
pada penjelasan berikut ini :
3.1.2.1
Pembersihan Data (Data Cleaning)
Proses pembesihan data ini merupakan tahap pertama dalam KDD. Proses
ini merupakan proses dimana record yang mengandung data – data yang tidak
relevan, tidak konsisten akan dibuang. Pada penelitian ini data transaksi sudah
relevan dan konsisten sehingga tidak perlu dilakukan pembersihan data.
3.1.2.2
Integrasi Data (Data Integration)
Integrasi data merupakan penggabungan data dari beberapa sumber.
Dalam penelitian ini, peneliti hanya menggunakan satu sumber saja yaitu data
transaksi detail dari perusahaan retail XYZ dalam kurun waktu satu tahun
sehingga tidak dilakukan proses intergrasi data.
3.1.2.3
Pemilihan Data (Data Selection)
Pada tahap ini akan dilakukan penyeleksian data – data yang akan
digunakan dalam penelitian. Pada data transaksi penjualan detail terdapat 19
atribut yaitu noFaktur, kodeBarang, namaBarang, satuan, size, hargaJual,
quantity, discount, discountReal, discount2, total, urut, hpp, hppdpp, hargasatuan,
sisapesan, statusReturOrder, statusNotaKredit, nourut.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
23
Beberapa atribut data yang diseleksi adalah satuan, size, hargaJual,
quantity, discount, discountReal, discount2, total, urut, hpp, hppdpp, hargasatuan,
sisapesan, statusReturOrder, statusNotaKredit, nourut. Sehingga setelah dilakukan
seleksi data, hanya ada tiga record yang digunakan yaitu noFaktur, kodeBarang
dan namaBarang.
Tabel 3. 2 Atribut yang digunakan dalam transaksi
3.1.2.4
No
Nama Atribut
Keterangan
1
noFaktur
Nomor nota transaksi penjualan
2
kodeBarang
Kode dari masing masing barang
3
namaBarang
Nama dari item barang yang di beli
Transformasi Data (Data Transformation)
Tahap transformasi data merupakan tahap dimana data diolah setelah
selesai dilakukan pembersihan dan seleksi. Tahap ini akan melakukan
pengubahan format data asli ke dalam format data yang sesuai untuk
dilakukan proses penambangan data. Pada penelitian ini, peneliti
melakukan transformasi data pada table transaksi detail penjualan. Tabel
transaksi detail penjualan di ubah menjadi dua kolom yaitu no faktur dan
transaksi. Kolom pada noFaktur menyimpan no faktur dari transaksi yang
ada, sedangkan kolom transaksi menyimpan data transaksi penjualan
berupa nama barang dank ode barang yang dibeli. Sehingga dengan
bentuk table yang telah ditransformasikan dapat dengan mudah dilakukan
proses data mining.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.1.2.5
24
Penambangan data (Data Mining)
a. Menentukan
minimum
support
yang
akan
digunakan
untuk
menentukan rule dalam mencari frequent pattern.
Dalam penelitian ini, peneliti menentukan min_supportyaitu : 11
b. Melakukan scanning pada database untuk mendapatkan frekuensi
kemunculan suatu item.
Di bawah ini merupakan gambar dari proses scanning data transaksi
untuk menentukan frequent itemset. Proses scanning ini dilakukan
terhadap 1818 transaksi penjualan dari 18 kasir yang ada. Dari hasil
scanning tersebut ditemukan 646 jenis item barang yang ada.
Gambar 3. 1 Hasil scanning data transaksi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
25
c. Melakukan seleksi / pembuangan terhadap item yang memiliki count
kurang dari minimum support yang telah ditentukan. Untuk item yang
memenuhi minimum support disimpan dalam list L, dan lakukan
sorting secara descending berdasarkan jumlah frekuensi terbesar
hingga terkecil.Setelah dilakukan scanning dan dilakukan sorting ,
terdapat sebanyak 71 item barang yng supportnya memenuhi
min_supp yang telah ditentukan seperti yang terdapat pada gambar di
bawah ini :
Tabel 3. 3 Item sesuai min_supp
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Nama Barang
Kode Barang
TAS
034010450
SINGLET/KAOS CE
032010145
SINGLET/KAOS
032010135
KAOS CE
017010250
SINGLET/KAOS CE
032010185
KAOS CE
017010210
CD PAKET/3 PCS
035060100
SINGLET
032010105
SINGLET
032010115
TALI RAMBUT
31020013
BLAZER
005010420
KAOS CO
018010250
KAOS CE
017010300
TALI RAMBUT
31020011
BLAZER
005010430
BLAZER
005010410
JAM TANGAN
015010200
BAJU CE 1
001010400
BAJU CE
001010450
CARDIGAN
007010320
CELANA/BAJU CE
008020500
JAM TANGAN
015010230
JILBAB
016010160
CELANA CE PJG
008020400
JAKET
013010580
KAOS CO
018010300
JAM TANGAN
015010170
Frekuensi
243
190
99
80
77
59
52
49
43
42
39
37
32
31
31
29
27
27
26
25
25
25
24
24
23
23
22
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
CELANA CE
008020430
BAJU CE
001010430
BAJU CE
001010480
BAJU CE
001010440
JILBAB
016010270
BLAZER
005010450
HANDUK S
012020289
JILBAB
016010210
SPT X109
030010440
BLAZER
005010490
BLAZER
005010460
SHALL
040010082
BAJU CE
001010415
JAKET CE
013010620
CARDIGAN
007010350
CARDIGAN
007010330
KEMEJA CO
021030750
TP MAKE UP
31270073
BAJU CE
001010350
KAOS CE
017010240
BAJU ANAK
038010300
BAJU CE
001010420
BAJU CE
001010410
JILBAB
016010220
TALI RAMBUT
31020024
KAOS CO
018010259
HANDUK B
012010465
TP MAKE UP
31270098
JAM TANGAN
015010240
BLAZER
005010470
SISIR
31380048
SPT ASB
030010260
ROMPI/BALERO
025010380
BAJU CE
001010470
BAJU CE
001010500
BAJU CE
SDL RMT
JAKET CE/BALERO JEANS
001010390
029010270
013010520
TP MAKE UP
31270110
TP MAKE UP
KAOS CE PJG
31270085
017030250
21
20
19
19
18
17
17
16
16
15
15
15
15
15
15
15
14
14
14
14
14
14
14
13
13
13
13
13
12
12
12
12
12
12
12
12
12
11
11
11
11
26
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
69
70
71
SPT D09
030010290
SEPRAI DBL
031021023
ROMPI/BALERO
025010330
27
11
11
11
d. Membentuk root FP-Tree yang diberi nilai dengan “null”. Selanjutnya
melakukan scan yang kedua kalinya untuk cabang dari FP-Tree sesuai
dengan urutan transaksi pada list L. Apabila item yang ada pada
transaksi berikutnya sudah ada pada transaksi sebelumnya maka nilai
indeks dari item tersebut akan bertambah 1, sedangkan jika item belum
ada pada transaksi sebelumnya akan membentuk cabang baru.
Gambar 3. 2 Scanning ke-2 ( pembentukan FP –tree)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
28
e. Melakukan analisa FP-Tree yang telah terbentuk dengan cara mencari
frequent itemsets yang mengandung nilai ai lalu setarakan nilai
frequent itemsets tersebut dengan nilai ai. Setelah disetarakan,
jumlahkan kedua nilai support frequent itemsets yang sama. Untuk
nilai yang diatas maupun sama dengan minimum support lah yang
menjadi rule. Langkah analisa diatas dilakukan berulang untuk semua
subset yang ada pada FP-Tree.
Setelah dilakukan penyetaraan, dari 73 item barang yang memiliki
min_supp lebih dari maupun sama dengan 11, hanya ada 4 rule yang di
hasilkan seprti yang terlihat pada gambar di bawah ini :
Tabel 3. 4 Hasil Penyetaraan 1
NODE
:
Frequent:
SINGLET / KAOS CE(032010185)
77
Path
Item
Hasil Setelah di Setarakan
TAS(450) : 243, SINGLET/ KAOS
CE(145) : 13, SINGLET/ KAOS CE(185)
1
:1
TAS(450) : 1, SINGLET/ KAOS CE(145) :
=
TAS(450) : 243, SINGLET/ KAOS
2
CE(185) : 1
TAS(450) : 4, SINGLET/ KAOS CE(185) :
=
SINGLET/ KAOS CE(145) : 177,
3
4
SINGLET/ KAOS CE(185) : 14
4
SINGLET/ KAOS CE(145) : 15, SINGLET/
=
KAOS CE(185) : 14
SINGLET/ KAOS CE(145) : 177,
SINGLET/ KAOS CE(145) : 1, SINGLET /
SINGLET / KAOS CE(135) : 17 ,
KAOS CE(135) : 1 , SINGLET/ KAOS
SINGLET/ KAOS CE(185) : 1
=
SINGLET / KAOS CE(135) : 71,
5
1, SINGLET/ KAOS CE(185) : 1
SINGLET/ KAOS CE(185) : 2
CE(185) : 1
SINGLET / KAOS CE(135) : 2 , SINGLET/
=
KAOS CE(250) : 61 , SINGLET/ KAOS
KAOS CE(185) : 2
KAOS CE(250) : 1 , SINGLET/ KAOS
6
CE(185) : 1
=
CE(185) : 1
7
SINGLET/ KAOS CE(185) : 56
=
SINGLET/ KAOS CE(185) : 56
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
29
KESIMPULAN :
TAS(450) : 5, SINGLET/ KAOS
CE(145) : 16, SINGLET / KAOS
CE(135) : 3, KAOS CE(250) : 1,
SINGLET/ KAOS CE(185) : 77
Tabel 3. 5 Hasil Penyetaraan 2
NODE
:
Frequent :
Path
1
2
3
4
5
6
7
8
9
10
11
12
13
BLAZER (005010420)
39
Item
SINGLET/ KAOS CE(145) : 177 , KAOS
CE(250) : 5 , KAOS CE(210) : 2 ,
SINGLET(115) : 1 , BLAZER(420) : 1
SINGLET/ KAOS CE(145) : 177 , SINGLET/
KAOS(135) : 1, BLAZER(420) : 1
SINGLET/ KAOS CE(145) : 177 ,
BLAZER(420) : 7
SINGLET/ KAOS CE(185) : 56, CD PAKET / 3
PCS (100) : 2 , BLAZER(420) : 1
SINGLET/ KAOS CE(185) : 56, BLAZER(420)
:1
SINGLET/ KAOS CE(145) : 177 , SINGLET/
KAOS CE(185) : 1, BLAZER(420) : 1
SINGLET/ KAOS (135) : 71 , BLAZER(420) : 4
KAOS CE(250) : 61, SINGLET( 115) : 2 ,
BLAZER( 420) : 2
KAOS CE(250) : 61 , BLAZER(420) : 2
SINGLET/ KAOS CE(145) : 177 , CD PAKET /
3 PCS (100) : 2 , SINGLET(115) : 1,
BLAZER(420) : 1
CD PAKET / 3 PCS(100) : 30 , BLAZER( 420)
:1
SINGLET(115) : 23, BLAZER( 420) : 1
BLAZER(420) : 17
KESIMPULAN :
SINGLET/ KAOS CE(145) : 11 , KAOS
Hasil Setelah di Setarakan
SINGLET/ KAOS CE(145) : 1 , KAOS CE(250) : 1
, KAOS CE(210) : 1 , SINGLET(115) : 1 ,
= BLAZER(420) : 1
SINGLET/ KAOS CE(145) : 1 , SINGLET/
= KAOS(135) : 1, BLAZER(420) : 1
= SINGLET/ KAOS CE(145) : 7, BLAZER(420) : 7
SINGLET/ KAOS CE(185) : 1, CD PAKET / 3 PCS
= (100) : 1 , BLAZER(420) : 1
= SINGLET/ KAOS CE(185) : 1, BLAZER(420) : 1
SINGLET/ KAOS CE(145) : 1 , SINGLET/ KAOS
= CE(185) : 1, BLAZER(420) : 1
= SINGLET/ KAOS (135) : 4 , BLAZER(420) : 4
KAOS CE(250) : 2, SINGLET( 115) : 2 , BLAZER(
= 420) : 2
= KAOS CE(250) : 2 , BLAZER(420) : 2
SINGLET/ KAOS CE(145) : 1 , CD PAKET / 3 PCS
= (100) : 1 , SINGLET(115) : 1, BLAZER(420) : 1
= CD PAKET / 3 PCS(100) : 1 , BLAZER( 420) : 1
= SINGLET(115) : 1 , BLAZER( 420) : 1
= BLAZER(420) : 17
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
30
CE(250) : 5 , KAOS CE(210) : 1 ,
SINGLET(115) : 4,
SINGLET/ KAOS(135) : 5, SINGLET/ KAOS
CE(185) : 4, CD PAKET / 3 PCS (100) : 2,
SINGLET(105) : 1,
BLAZER(420) : 39
Tabel 3. 6 Hasil Penyetaraan 3
NODE
:
SINGLET/KAOS (032010135)
Frequent:
99
Path
Item
Hasil Setelah di Setarakan
TAS(450) : 243, SINGLET/ KAOS
1
(135) : 11
TAS(450) : 11, SINGLET/ KAOS
=
SINGLET/ KAOS CE(145) : 177,
(135) : 11
SINGLET/ KAOS CE(145) : 17,
2
SINGLET/ KAOS (135) : 17
=
SINGLET/ KAOS (135) : 17
3
SINGLET/ KAOS(!35) : 71
=
SINGLET/ KAOS(!35) : 71
KESIMPULAN :
TAS(450) : 11, SINGLET/ KAOS
CE(145) : 17, SINGLET/ KAOS (135)
: 99
Tabel 3. 7 Hasil Penyetaraan 4
NODE
:
Frequent:
SINGLET/KAOS CE (032010145)
190
Path
Item
Hasil Setelah di Setarakan
TAS(450) : 243, SINGLET/ KAOS
TAS(450) : 13, SINGLET/ KAOS
1
CE(145) : 13
=
CE(145) : 13
2
SINGLET/ KAOS CE(145): 177
=
SINGLET/ KAOS CE(145): 177
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
31
KESIMPULAN :
TAS(450) : 13, SINGLET/ KAOS
CE(145) : 190
Sehingga dari proses asosiasi data transaksi dihasilkan rule seperti pada gambar di
bawah ini :
Tabel 3. 8 Hasil Rule
No
3.1.2.6
RULE :
1
{ SINGLET/ KAOS CE(145) ,SINGLET/ KAOS CE(185) }
2
{ SINGLET/ KAOS CE(145) , BLAZER (420) }
3
{TAS(450) , SINGLET/ KAOS CE(145) , SINGLET/ KAOS (135) }
4
{SINGLET/ KAOS CE(145), TAS(450) }
Evaluation
Tahap ini akan dilakukan evaluasi terhadap ppola yang ditemukan, apakah
sesuai degan tujuan awal penelitian yang dilakukan oleh peneliti atau
tidak.
3.1.2.7
Knowledge Presentation
Setelah melakukan evaluasi terhadap hasil pola asosiasi yang ditemukan,
tahap ini akan dilakukan penterjemahan dengan melakukan pembacaan
rule yang dihasilkan. Sehingga hasil dari asosiasi tersebut dapat di
mengerti oleh pengguna.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
32
3.2 Identifikasi Sistem
3.2.1
Diagram Use Case
Diagram
use
case
merupakan
sebuah
diagram
yang
menggambarkan pekerjaan yang dilakukan oleh sistem tersebut. Beberapa
pekerjaan sistem yang peneliti bangun dapat dilihat pada gambar di bawah
ini :
Cari database &
data transaksi
penjualan
<<depends on>>
User
Cari pola asosiasi
barang
<<depends on>>
Simpan hasil pola
asosiasi barang
Gambar 3. 3Diagram Use Case
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 3. 9 Deskripsi Use Case
Nomor Use Case
001
Nama Use Case
Deskripsi Use Case
Cari database dan data
Use case ini menggambarkan
transaksi
proses dimana pengguna
melakukan pencarian database
dan tabel transaksi yang akan
digunakan untuk melakukan
proses data mining
002
Cari pola asosiasi
Use case ini menggambarkan
proses dimana pengguna
melakukan pencarian pola
asosiasi terhadap data transaksi
yang ada
003
Simpan hasil asosiasi
Use case ini menggambarkan
pengguna melakukan simpan
hasil pola asosiasi yang telah
dilakukan
33
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.2.2
34
Narasi Use Case
Deskripsi dari use case di atas akan dijabarkan dan dijelaskan pada table narasi
use case berikut ini :
3.2.2.1
Cari database dan data transaksi penjualan
Tabel 3. 10 Narasi Use Case Cari database dan data transaksi penjualan
Nama Use Case
Cari database dan data transaksi penjualan
Id Use Case
001
Source
Penjelasan Use case
Deskripsi
Menjelaskan proses pencarian database yang digunakan dan data
transaksi penjualan untuk proses data mining
Aktor
User
Kondisi Awal
Tampil Halaman Home
Kondisi Akhir
Tampil Data Transaksi yang akan diproses
Aksi Aktor
Reaksi Sistem
1. Klik tombol Open pada
Halaman_Home
2. Tampil Halaman_Open
3. Isikan nama database
4. Klik Cek Koneksi
5. Jika database terhubung, maka muncul
exception “ Koneksiberhasil !”
6. Tampil daftar table pada button pilih
tabel dan data transaksi
7. Pilih table yang akan digunakan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
35
8. Klik OK
9. Tampil data dari tabel yang dimaksud
Alt 4.Jika database tidak cocok, Muncul
Alternatif
exception “ Koneksi gagal !”, kembali step
2
User dapat melanjutkan proses apabila
Conclusion :
database terhubung.
3.2.2.2
Businesse Rules :
-
Assumptions :
-
Cari pola asosiasi barang
Tabel 3. 11 Narasi Use Case Cari pola asosiasi barang
Nama Use Case
Cari pola asosiasi barang
Id Use Case
002
Source
Penjelasan Use case
Deskripsi
Menjelaskan proses mencari pola asosiasi barang
Aktor
User
Kondisi Awal
Tampil Halaman_Open
Kondisi Akhir
Tampil Hasil Proses data mining
Aksi Aktor
1. Isikan indeks noFaktur dan kodeBarang
pada kolom yang tersedia
2. Klik tombol prepocessing
Reaksi Sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
36
3. Tampil Halaman Prepocessing yang
berisi table data hasil dari proses
preprocessing, jumlah transaksi dan
jumlah jenis barang
4. Isikan minimum_support
5. Klik tombol Konfirmasi
6. Tampil banyaknya barang yang muncul
berdasarkan minimum_support yang di
masukkan oleh user
7. Klik tombol Proses
8. Tampil Halaman Hasil proses yang
berisi rule dari proses asosiasi
Alternatif
-
Conclusion :
User dapat mengetahui rule dari data
transaksi penjualan
Businesse Rules :
-
Assumptions :
-
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.2.2.3
37
Simpan hasil pola asosiasi barang
Tabel 3. 12 Narasi Use Case Cetak hasil pola asosiasi barang
Nama Use Case
Cetak hasil pola asosiasi barang
Id Use Case
003
Source
Penjelasan Use case
Deskripsi
Menjelaskan proses user melakukancetak hasil pola asosiasi dari
proses data mining
Aktor
User
Kondisi Awal
Tampil Home Page
Kondisi Akhir
Hasil Analisa Pola tercetak
Aksi Aktor
Reaksi Sistem
1. Klik tombol Save
2. Tampil JFileChooser untuk memilih
lokasi penyimpanan, nama dokumen
penyimpanan dan jenis penyimpanan
3. Klik tombol Oke
4. Hasil proses asosiasi berhasil di simpan
Alternatif
Alt 4. -
Conclusion :
Hasil proses asosiasi dapat tersimpan
apabila telah dilakukan proses data mining
Businesse Rules :
Assumptions :
- User dapat melihat hasil apabila telah
melakukan proses data mining
Open Issues :
-
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
38
3.3 Perancangan Umum Sistem
3.3.1 Masukan Sistem
Masukan data dari sistem ini berasal dari table data yang berada di dalam
database. Database yang akan digunakan dapat dipilih sendiri oleh user. Tabel
data transaksi yang digunakan bergantung penuh pada koneksi database yang
digunakan oleh user. Selain itu, dalam proses pencarian rule dalam proses data
mining diperlukan sebuah masukan berupa minimum support yang digunakan
dalam menentukan rule.
Min_supp
Pengguna
Rule hasil proses
penambangan data
Aplikasi pencarian
rulemenggunakan
algoritma FP-Growth
Gambar 3. 4Diagram Konteks
3.3.2 Proses Sistem
Proses sistem terdiri dari beberapa langkah untuk dapat menemukan rule yang
berfungsi untuk memprediksi jenis barang yaitu :
a. Pengambilan data transaksi yang akan digunakan untuk proses data mining.
b. Menentukan minimum support yang berfungsi dalam menentukan rule.
c. Proses asosiasi untuk memprediksi dijalankan
d. Menganalisa hasil asosiasi terhadap proses data mining yang telah
dijalankan.
e. Menyimpan hasil analisa proses data mining yang telah dijalankan pada
langkah sebelumnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.3.3
39
Keluaran Sistem
Sistem yang akan di bangun ini akan memberikan beberapa keluaran
diantaranya adalah jumlah kemunculan yang terjadi dari banyaknya transaksi
yang ada ketika menentukan minimum support. Selain itu juga akan menampilkan
hasil dari proses data mining yang dijalankan berupa rule.
3.3.4
Perancangan Struktur Data
Dalam penelitian ini, peeliti menggunakan ArrayList dalam proses
pembentukan itemset dari pencarian frequentitemset sampai dengan terbentuknya
rule. Pemilihan ArrayList oleh peneliti dalam menyelesaikan penelitian ini
dikarenakan ArrayList tidak membutuhkan pendeklarasian panjang dari sebuah
larik. Larik akan secara otomatis bertambah seiring dengan banyak nya data yang
digunakan dalam penelitian ini.
Tabel 3. 13 Struktur Data
ArrayList
Fungsi
prepocessing
Menyimpan hasil preprocessing
count
Menyimpan count dari masing – masing jenis
barang
trns
Menyimpan transaksi yang mengadung kode
yang memiliki count sesuai dengan
min_support yang di masukkan
Tis
Menyimpan transaksi dan item yang
mengadung kode yang memiliki count sesuai
dengan min_support yang di masukkan
dataSet
Menyimpan data yang siap untuk dibuat tree
candidate
Menyimpan hasil dari penyetaraan masing –
masing item dan support nya
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.2 Perancangan Sistem
3.4.1
3.4.1.1
Diagram Aktivitas
Cari database dan data transaksi penjualan
USER
SISTEM
Klik tombol Open
Tampil Halaman_Open
Pilih koeksi , Isikan nama
database, usernme ,
password dan url
YA
Klik Cek Koneksi
Valid ?
TIDAK
Tampil exception “ koneksi
berhasil ! “
Tampil exception “ koneksi
gagal ! “
Tampil semua tabel yang
ada pada database tersebut
Pilih tabel yang akan
digunakan
Klik OK
Tampil data dari tabel yang
dimaksud
40
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 3. 5 Diagram Aktivitas Cari database dan data transaksi penjualan
41
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.1.2
42
Cari pola asosiasi barang
USER
SISTEM
Isikan indeks noFaktur dan
kodeBarng pada kolom yang
disediakan
Klik tombol prepocessing
Tampil Halaman
Prepocessing yang berisi data
hasil prepocessing, jumlah
transaksi dan jumlah jenis
barang
Isikan minimum_support
Klik tombol Konfirmasi
Tampil banyaknya barang yang
muncul bedasarkan
minimum_support yng di
masukkan
Klik tombol proses
Tampil Halaman Hasil proses
yang berisi rule dari proses
sosiasi
Gambar 3. 6 Diagram Aktivitas Cari pola asosiasi barang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.1.3
Simpan hasil pola asosiasi barang
SISTEM
USER
Menjalankan proses data
mining
Tampil hasil proses
asosiasi
Klik tombol save
Tampil JFileChooser untuk memilih
lokasi penyimpanan, nama dokumen
dan jenis penyimpanan
Klik tombol Oke
Data berhasil disimpan
Gambar 3. 7 Diagram Aktivitas Simpan hasil pola asosiasi barang
43
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.2
Diagram Kelas Analisis
Halaman_Home
Halaman_Bantuan
USER
Halaman_Open
Controller_Data
base
Halaman_Prepoce Controller_Algo
ssing
rithm
Konn
Larik
StrukturTabel
TreeNode
Halaman_HasilPro
ses
Contoller_Data
base
ambilHasil
LihatHasilAlgoTabel
Model
Gambar 3. 8 Diagram Kelas Analisis
Comparable
44
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.3
Diagram Sequence
3.4.3.1
Cari database dan data transaksi penjualan
<<interface>>
Halaman_Home.java
<<controller>>
ControlDatabase.java
45
<<model>>
Konn.java
USER
1
Klik Masuk
Tampil
inputInput
2 password
Halaman_Open
username dan
password
password
input
Isikan
nama database,
3
username,
password,
password
input
url
8
5
7
password
input
Tampil
pilihan
tabel
Konn()
4 ambilTabel()
6
Koneksi berhasil
Hasil Connection
password input
9
Pilih tabel transaksi
10
ambildatatabel()
11
Tabel valid
12
Tampil data transaksi
Gambar 3.9 Diagram Sequence cari data transaksi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.3.2
46
Cari pola asosiasi barang
<<interface>>
HalamanAwal.java
<<controller>>
Control
Algorithm.java
<<model>>
StrukturTabel
, TreeNode,
ambilHasil
<<Controller
>>
Larik
<<controller>
>
Control
Algorithm.ja
va
USER
1
Masukkan min_supp
& klik konfirmasi
2
password input
Tampil banyak
kemunculan
3
password input
Klik proses
password input
Hasilprepoce
ssig() count,
transaksisesu
ai, transaksi
dan item
sesuai
4
5
Set
transaksi
sesuai,
kode, count
6
Larik
8
7
Datafix(),tree(),
addNode(),
penyetaraan()
Data urut
password input
9 password input
Buat tree ,
penyetaraan
password input
13
Tampil
Halaman_HasilProse
s
11
12
Tabel hasil
asosiasi
Hasil asosiasi
password input
Gambar 3.10 Diagram Sequence cari pola asosiasi
10
cariNama
Kode()
password
input
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.3.3
Simpan hasil pola asosiasi
<<interface>>
Halaman_HasilProses.java
USER
1
Tekan Tombol Save
2
password input
Tampil Save dialog
3
4
Pilih format penyimpanan dan
klik tombol simpan
Simpan data
5
Konfirmasi pentimpanan
Gambar 3.11 Diagram Sequence Cetak hasil asosiasi
47
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.4
48
Diagram Kelas Desain
<<view>>
Halaman_Home
<<view>>
Halaman_Bantuan
<<view>>
Halaman_Open
<<controller>>
Controller_Database
<<model>>
Konn
<<view>>
Halaman_Prepo
cesing
<<controller>>
Contoller_Algorithm
<<controller>>
Larik
<<model>>
StrukturTabe
l
<<model>>
Comparable
<<model>>
TreeNode
<<model>>
ambilHasil
<<view>>
Halaman_Prepo
cesing
<<controller>>
Contoller_Database
<<model>>
LihatHasilAlgoTableModel
Gambar 3.12 Diagram Kelas Desain
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.5
Rincian Algoritma Per Method
3.4.5.1
Algoritma Kelas Control Database
49
Tabel 3.14 Algoritma Kelas Control_Database
No
Nama
Fungsi
Method
Method
Algoritma Method
1. Buat variable st bertipe Statement
2. Buat variable rs bertipe ResultSet
Ambildata
tabel(Con
1.
nection
conn,
String
table)
3. Buat variable query bertipe String
Mengambil
4. Buat koneksi ke dalam database dan
isi/data dari
simpan koneksi ke dalam variable st
tabel transaksi
5. Melakukan set query untuk mengambil
yang dipilih
semua data di tabel dan ditampung dalam
oeh pengguna
variable query
6. Mengeksekusi query tersebut dan
menampung dalam variable rs
7. Mengembalikan nilai rs
1. Buat variable st bertipe Statement
2. Buat variable rs bertipe ResultSet
2.
Mengambil
3. Buat variable query bertipe String
nama – nama
4. Buat koneksi ke dalam database dan
Ambiltabe
tabel dari
l(Connecti
koneksi
on conn)
database yang
nama tabel di database dan ditampung
dilakukan oleh
dalam variable query
pengguna
simpan koneksi ke dalam variable st
5. Melakukan set query untuk mengambil
6. Mengeksekusi query tersebut dan
menampung dalam variable rs
7. Mengembalikan nilai rs
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
50
1. Buat variable statement bertipe
PreparedStatement dan inisialisasi
dengan nilai null
2. Buat variable result bertipe
PreparedStatement dan inisialisasi
Mencari nama
3.
cariNama
Barang
dengan nilai null
barang dari
3. Buat variable nama bertipe String
sebuah
4. Melakukan autocommit pada koneksi.
kodebarang
5. Melakukan set query untuk mengambil
dalam sebuah
nama barang di database dan ditampung
tabel transaksi
dalam variable sql bertipe String
tertentu
6. Mengeksekusi query tersebut dan
menampung dalam variable result
7. Selama result.next() maka menjalankan
method getString dari variable result dan
disimpan pada variable nama
8. Mengembalikan nilai nama
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
51
1. Buat variable statement bertipe
PreparedStatement dan inisialisasi
dengan nilai null
2. Buat variable result bertipe
PreparedStatement dan inisialisasi
Mencari nama
4.
cariNama
Kategori
dengan nilai null
kategori dari
3. Buat variable nama bertipe String
sebuah kode
4. Melakukan autocommit pada koneksi.
kategori dalam
5. Melakukan set query untuk mengambil
sebuah tabel
nama kategori di database dan ditampung
transaksi
dalam variable sql bertipe String
tertentu
6. Mengeksekusi query tersebut dan
menampung dalam variable result
7. Selama result.next() maka menjalankan
method getString dari variable result dan
disimpan pada variable nama
8. Mengembalikan nilai nama
1. Buat variable st bertipe Statement
Melakukan
proses
preprocessing,
yaitu
5.
prepocessi
menggabungka
ng
n beberapa row
yang memiliki
nofaktur sama
agar menjadi
satu row
2. Buat variable rs bertipe ResultSet
3. Buat variable query bertipe String
4. Buat koneksi ke dalam database dan
simpan koneksi ke dalam variable st
5. Melakukan set query untuk
menggabungkan beberapa row yang
memiliki nofaktur sama agar menjadi
satu row di tabel dan ditampung dalam
variable query
6. Mengeksekusi query tersebut dan
menampung dalam variable rs
7. Mengembalikan nilai rs
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.5.2
52
Algoritma Kelas Control_Algorithm
Tabel 3.15 Algoritma Kelas Control_Algorithm
No
Nama
Fungsi
Method
Method
Berisi kode
barang
HasilPrep hasil proses
1.
ocessing(
prepocessin
ArayList
g yang
<Struktur
disimpan
Tabel>
dalam
prepocess
bentuk
ing)
ArrayList<
ArrayList<
String>>
Algoritma Method
1. Buat obyek baru dataset yang beripe
ArrayList<ArrayList<String>>
2. Selama processing.size() menjalankan :
-
Memanggil kode barang dan di simpan
dalam variable String code
-
Buat obyek baru data bertipe
ArrayList<String>
-
Menambahkan obyek data dengan nilai dari
code
-
Menambahkan obyek dataSet dengan nilai
dari data
3. Mengambalikan nilai dataset
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
53
1. Buat obyek baru arr dengan tipe List<String>
2. Buat obyek countbertipe ArrayList
<TreeNode>
3. Buat obyek baru hash yang bertipe HashSet
4. Buat variable string bertipe String dan
diinisialisasikan dengan nilai null
5. Selama i kurang dari b.size maka
menjalankan :
a. Mengambil isi dari b dan disimpan dalam
variable items bertipe ArrayList<String>
b. Selama items.size melakukan :
Menjumlah
Count<A
rrayList<
2
ArrayList
<String>
> b, int a
1. Menyimpan isi dari items dan
an count
dari
menyimpan di variable string
2. Menjalankan method split dari
masing-
variable kode dan menyimpan ke
masing
dalam z bertipe String[]
jenis
barang
c. Selama k kurang dari z.length :
1. Memasukkan hasilsplit dari j ke dalam
yang ada
variable string1
2. Menambahkan obyek hash dengan
string1
3. Menambahkan obyek arr dengan
string1
6. Mengambil nilai dari hash.iterator yang
disimpan dalam variable iterasi bertipe
iterator
7. Selama iterasi.hasNext() melakukan :
a. Mengambil nilai dari iterasi.next dan
disimpan dalam variable unik bertipe
String
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
54
8. Buat obyek baru unqueset bertipe Set<String>
9. Selama uniqueset. Size() melakukan :
a. Mengecek apakah nilai dari
collection.frequency(arr, temp) lebih besar
atau sama dengan min support, jika ya
melakukan :
4. Buat obyek baru tn bertipe TreeNode
5. Memanggil method tambahCount()
6. Melakukan set item pada tn dengan
nilai dari temp
7. Melakukan setCounts dengan
Collections.frequency(ar,temp)
8. Menambahkan obyek count dengan
nilai dari tn
10. Mengembalikan nilai count
Transaksi Mengambil
YgSesuai
transaksi
(ArrayLis yang
3
t<Struktu
mengandun
rTabel>
g kode
prepocesi
yang sesuai
ng,
dengan
ArrayList minimum
<TreeNo
supportyag
de>
dimasukka
itemSesu
n oleh
ai)
pengguna
1. Buat obyek baru transaksi bertipe ArrayList
<StrukturTabel>
2. Buat obyek baru trns bertipe ArrayList
<TreeNode>
3. Buat variable string bertipe String dan
diinisalisasikan dengan nilai null
4. Selama preprocessing.size() maka melakukan :
a. Mengambil kode dan di tamping di variable a
bertipe String
b. Melakukan split terhadap a dan menyimpan di
dalam variable l bertipe String[]
c. Selama l.length() maka menjalankan :
9. String = l
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
55
10. Selama itemSesuai.size() melakukan :
ï‚·
Jika item dari item sesuai dibandingkan
dengan nilai dari string dan
menghasilkan nilai no maka :
i. Buat obyek baru temp5 bertipe
StrukturTabel
ii. Menyimpan transaksi ke dalamtemp5
iii. Menambahkan obyek transaksi
dengan nilai dari temp5
5. Buat obyek hashurut bertipe TreeSet <String>
6. Selama i kurang dari transaksi.size() maka
menambahkan hashurut dengan nilai dari
transaksi
7. Menampung hashurut.iterator ke dalam variable
iterasi yang bertipe Iterator
8. Selama (iterasi.hasNext()) melakukan :
a. Penyimpanan isi dari iterasi.next ke dalam
variable unik bertipe String
b. Membuat obyek baru temp6 bertipe
TreeNode
c. Menyimpan isi dari variable unik ke
dalam setTransaksi dan di simpan di
obyek temp2
d. Menambahkan trns dengan temp6
9. Mengembalikan nilai trns
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
56
1. Buat obyek baru transaksidanItemSesuai bertipe
ArrayList<StrukturTabel>
2. Buat obyek baru tis yang bertipe ArrayList
<TreeNode>
3. Buat variable y dan inisialisasikan dengan nilai
null
4. Selama preprocessing.size() maka melakukan :
a. Mengambil nilai noFaktur dan ditampung di
Transaksi
variable c bertipe String
danItem
b. Mengambil nilai kode dan ditampung di
YangSes
uai(Array Mengambil
List<Stru
dan
kturTabel mengurutk
>
an
prepocess transaksi
4
variable d bertipe String
c. Selama transaksiSesuai.size() melakukan :
11. Mengambil nilai transaksi dan ditampung
di variable e bertipe String
12. Jika nilai e dibandingkan dengn nilai dari
ing,
dan kode
c dan bernilai 0 maka :
ArayList
yang sesuai
ï‚·
<TreeNo
dengan
ditampung dalam variable l bertipe
de>
minimum
String[]
transaksi
supportyag
Sesuai,
dimasukka
ArrayList n oleh
<Struktur
Tabel>
count, int
x)
pengguna
ï‚·
Melakukan split pada nilai d dan
Selama l.length() melakukan :
a) y = l
b) Selama count.size() melakukan :
i. Memanggil niai kode dari count
dan ditampung pada variable n
ii. Jika nilai n dibandingkan dengan
y menghasilkan nilai nol maka :
13. Mengambil nilai cout dan
menyimpan di variable gg
14. Selama gg >= nilai x maka :
ï‚·
Buat obyek baru temp7
dengan tipe StrukturTabel
ï‚·
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ï‚·
57
Melakukan set no fakur,
kode dan count pada temp7
ï‚·
Menambahkan
transaksidanItemSesuai
dengan temp7
15. Membuat obyek baru s[] beripe Struktur
Tabel
16. Selama transaksidanItemSesuai.size()
Membuat obyek baru bertipe
StrukturTabel dan melakukan set no
faktur, kode dan count
17. Memanggil method
Larik.quickSortDesc(s)
18. Selama s.length maka melakukan :
ï‚·
Melakukan set variable
struturTabel degan s[o]
ï‚·
Melakukan set variable n dengan
kode barang , m dengan count
barang
ï‚·
Buat obyek temp77 bertipe
TreeNode
ï‚·
Melakukan set transaksi dan item
pada temp77
ï‚·
Menambahkan obyek tis dengan
temp77
19. Menghapus isi dari obyek
transaksidanItemSesuai
5. Mengembalikan nilai obyek tis
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
58
1. Buat obyek baru dataSet dengan tipe ArrayList
<ArrayList<String>>
2. Buat obyek baru ah yang bertipe StrukturTabel
3. Buat variable f dengan tipe String dan di
inisialisasi kan dengan nilai null
4. Buat variable string dengan tipe String dan di
inisialisasi kan dengan nilai null
Datafix(
5. Selama i kurang dari transaksiSesuai.size(), maka
ArrayList Memasukk
5.
<TreeNo
an data
de>
transaksi
transaksi
yang sesuai
Seuai,
ke dalam
ArrayList Array
<TreeNo
untuk
de>
proses
transaksi
pembentuk
danItemS
an Tree
menjalankan :
20. Memanggil transaksi dari transaksiSesuai dan
ditampung dalam variable c bertipe String
21. Buat obyek baru data dengan tipe ArrayList
<String>
22. Selama j kurang dari
transaksidanItemSesuai.size(), maka
menjalankan :
ï‚·
Memanggil transaksi dari
transaksidanItemSesuai dan ditampung
esuai)
dalam variable e bertipe String
ï‚·
Jika nilai dari e dibandingkan dengan niai
dari c bernilai nol maka menampung nilai
item dalam variable f dan ditambahkan
dalam obyek data.
23. Menambahkan dataset dengan nilai dari data
6. Mengembalikan nilai dataset
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
59
1. Buat obyek baru root bertipe TreeNode()
2. Mengeset curNode dengan nilai dari root
3. Mengeset variable anak dengan memanggil
curNode.getChildNodes
4. Selama datafix.size, menjalankan :
a. Melakuakn set curNode dengan root
b. Mengambil nilai dari datafix dan disimpan
dalam variable bertipe ArrayList<String>
c. Selama items.size , menjalankan :
-
FP-
item bertipe String
Tree(Arr
ayList<A
6.
Mengamil nilai items dan di simpan dalam
rrayList<
Membuat
String>>
struktur
datafix,
Tree
-
Membuat obyek baru temp bertipe TreeNode
-
Jika variable anak tidak null , maka :
ï‚·
Selama anak.size(), menjalankan :
a). Menyimpan nilai dari anak di itm
bertipe TreeNode
Arrayist<
b). Jika nilai dari itm dibandingkan
TreeNod
dengan item sama maka
e> cek)
melakukan set temp dengan itm
-
Buat obyek tmp baru bertipe TreeNode
-
Melakukan setItem(item) pada tmp
-
Melakukan setParentNode(curNode) pada
tmp
-
Menambahkan anak pada curNode dengan
nilai dari tmp
-
Memangil perintah ntuk menambahkan node
baru
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
-
60
Melakukan set pada curNode dengan nilai
temp
-
Memanggil perintah tambahCount pada temp
5. Mengembalikan nilai dari root.
1. Buat variable curNode dan diinisialisasikan
dengan nilai null;
2. Selama( TreeNode node : head), menjalankan :
addNode(
TreeNod
e tn,
7.
Menambah
ArrayList kan node
<TreeNo
dalam tree
ï‚·
Melakukan set curNode dengan temp
ï‚·
Jika node.getItem() sama dengan
tn.getItem() maka :
ï‚·
Mengeset nilai curNode dengan node
ï‚·
Selama curNode.getNextNode() tidak
sama dengan null maka mengeset
de>
curNode dengan
head)
curNode.getNextNode()
3. Mengeset nextNode pada curNode dengan tn
4. Mengembaikan nilai curNode
3.4.5.3
Algoritma Kelas LihatHasilAlgoTabelModel
Tabel 3.16 Algoritma Kelas LihatHasilAlgoTabelModel
No
1.
Nama
Fungsi
Method
Method
delete(int
row)
Menghapus
row yang
ada
Algoritma Method
1. Memanggil method remove( row) pada obyek
rule
2. Memanggil method fireTable
RowDeleted(row,row)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Melakukan
2.
update
perubahan
terhadap row
yang ada
61
1. Memanggil method update( row) pada obyek
rule
2. Memanggil method fireTable
RowUpdated(row,row)
Menambahka 3. Memanggil method add( row) pada obyek rule
3.
add
n row pada
tabel
4. Memanggil method fireTable
RowInserted(row,row)
1. Menjalankan perintah rule.get(rowIndex) dan
ditampung di variable s bertipe ambilHasil
Mengambil
4.
2. Melakukan switch(coloumIndex)
getValueA nilai dari
3. Case 0 : megembalikan nilai candidate
t
baris dan
4. Case 1 : mengembalikan nilai item
kolom
5. Case 2 : mengembalikan nilai count
6. Case 3 : mengembalikan nilai confidence
7. Case 4 : mengembalikan nilai suppxconf
1. Melakukan switch(coloumIndex)
5.
getColou
mName
Mengambil
nama kolom
dalam tabel
2. Case 0 : mengembalikan “Produk 1 ”
3. Case 1 : mengembalikan “Produk 2 ”
4. Case 2 : mengembalikan “Support ”
5. Case 3 : mengembalikan “Confidence ”
6. Case 4 : mengembalikan “Sup x Con ”
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.4.5.4
62
Algoritma Kelas Konn
Tabel 3.17 Algoritma Kelas Konn
No
Nama
Fungsi
Method
Method
Algoritma Method
1. Memanggil method getClose()
2. Menjalankan method DriverManager
Konn(String
dengan mengambil nilai masukkan
namaDB,
1.
String url,
Melakukan
String
koneksi ke
username,
database
String
berupa nama database, url, username
dan password dan disimpan dalam
atribut connection
3. Apabila koneksi berhasil maka
menampilkan pesan “ Koneksi berhasil”
password)
4. Apabila koneksi gagal akan
menampilkan pesan “ Koneksi gagal”
Mengecek
2.
isConnected
1. Menjalankan perintah if dengan syarat
apakah koneksi
apabila atribut connection tidak null
dengan
maka akan mengembalikan nilai true
database
2. Apabila atribut connection bernilai null
terhubung atau
tidak
maka mengembalikan nilai false
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
63
5.1 Melakukan perintah if dengan syarat
Method ini
berfungsi
3.
getClose
untuk memutus
koneksi ke
database
apakah terhubung ke database atau
tidak, jika terhubung maka akan
dilakukan pemutusan koneksi dan
melakukan set pada atribut connection
dengan niai null
5.2 Jika tidak terhubung kembalikan nilai
false
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
64
3.5 Perancangan Antar Muka Pengguna
3.5.1
Perancangan Antar Muka Halaman Home
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Logo
Universitas
KELUAR
BANTUAN
MASUK
Gambar 3.12 Perancangan Antar Muka Home
Penjelasan gambar :
Gambar 3.12 merupakan halaman awal tampilan dari sistem pencarian pola asosiasi
barang dengan menggunakan algoritma FP –Growth. Halaman ini berisi Judul dari
penelitian yang peneliti lakukan, logo universitas, tombol keluar untuk keluar dari
system, tombol bantuan untuk melihat informasi tentang system, dan tombol masuk
untuk memulai proses pencarian rule.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.5.2
65
Perancangan Antar Muka Halaman Open
Logo
Universitas
Pengambilan Data
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Prepocessing
Nama Database :
Url
:
Username
:
Password
:
Hasil Proses
Batal
Pilih Tabel :
Cek Koneksi
OKE
TABEL DATA TRANSAKSI
Masukkan indeks no faktur dan kode barang pada kolom di bawah ini :
No faktur :
Kode :
Prepocessing
Gambar 3.13 Perancangan Antar Muka Halaman Open
Penjelasan gambar :
Gambar 3.13 merupakan perancangan antar muka halaman open ketika pengguna
telah melakukan klik pada tombol masuk. Pada halaman ini terdapat masukan berupa
koneksi database, namadatabase, username, password dan url. Pengguna dapat
memilih tabel transaksi yang akan digunakan ketika telah terkoneksi dengan
database. Halaman ini pula akan menampilkan isi dari tabel transaksi yang telah
dipilih. Untuk melakukan preprocessing pengguna harus mengisikan indeks nofaktur
dan indeks kode pada kolom yang tersedia.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.5.3
66
Perancangan Antar Muka Halaman Prepocessing
Logo
Universitas
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Pengambilan Data
Prepocessing
Hasil Proses
TABEL DATA TRANSAKSI HASIL PREPOCESSING
Jumlah data transaksi :
Minimum Support :
Jenis Item Barang :
% dari
transaksi
Konfirmasi
Banyak Kemunculan :
kali dari
transaksi
Process
Gambar 3.14 Perancangan Antar Muka Halaman Prepocessing
Penjelasan gambar :
Gambar 3.14 merupakan perancangan antar muka halaman preprocessing. Halaman
ini berisi tabel transaksi hasil preprocessing, masukkan minimum support dari
pengguna untuk melanjutkan ke proses pencarian rule.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.5.4
67
Perancangan Antar Muka Halaman Hasil Proses
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Logo
Universitas
Pengambilan Data
Prepocessing
Hasil Proses
Min Supp:
Jumlah data transaksi :
Jenis Item Barang :
TABEL RULE HASIL PROSES
Save
Waktu Komputasi Pencarian rule :
Penjelasan rule dari hasil proses
Home
Back
Gambar 3.15 Perancangan Antar Muka HalamanHasil Proses
Penjelasan gambar :
Gambar 3.15 merupakan perancangan antar muka halaman hasil proses yang berisi
tabel rule hasil dari proses. Selain itu juga berisi penjelasan terhadap rule yang
dihasilkan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.5.5
68
Perancangan Antar Muka Halaman Bantuan
Logo
Universitas
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
LANGKAH – LANGKAH PROSES ALGORITMA
Home
Gambar 3.16 Perancangan Antar Muka Halaman Bantuan
Penjelasan gambar :
Gambar 3.16 merupakan halaman bantuan. Halaman ini berisi langkah – langkah
pencarian rule maupun informasi mengenai sistem ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB IV
IMPLEMENTASI SISTEM
Setelah melakukan analisis dan perancangan sistem, maka tahap berikutnya adalah
melakukan implementasi terhadap rencangan yang telah di buat ke sebuah sistem untuk
melakukan proses prediksi minat konsumen terhadap suatu barang di sebuah perusahaan XYZ.
Implementasi ini dilakukan dengan menggunakan bahasa pemrograman Java dengan
menggunakan Netbeans IDE versi 7.2 pda computer dengan spesifikasi intel core i3, memori
1GB.
4.1 Implementasi Antar Muka Pengguna
Berikut adalah hasil implementasi antar muka pengguna dari sistem deteksi minat
konsumen dengan menggunakan algoritma FP-Growth :
4.1.1
Implementasi Antar Muka Halaman_Open
69
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
70
Gambar 4.1 Halaman_Open
Tabel 4.1 Keterangan Halaman_Open
Id Objek
PanelKoneksi
Jenis
JPanel
Teks
-
Keterangan
Panel yang mendasari bagian cari
koneksi database
Tulisan yang tampil pada halaman
lblNamaDb
Jlabel
Nama
untuk memberikan keterangan
Database
pengguna untuk memasukkan
nama database
Tulisan yang tampil pada halaman
lblNamaUrl
Url
untuk memberikan keterangan
pengguna untuk memasukkan
alamat url
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
71
Tulisan yang tampil pada halaman
lblUsername
Username
untuk memberikan keterangan
pengguna untuk memasukkan
username
Tulisan yang tampil pada halaman
lblPwd
Password
untuk memberikan keterangan
pengguna untuk memasukkan
password
titikdua1
Jlabel
:
-
titikdua2
Jlabel
:
-
titikdua3
Jlabel
:
-
titikdua4
Jlabel
:
Kolom yang bertujuan untuk
txtNamaDatabase
JtextField
-
pengguna menuliskan nama
database
txtUrl
JtextField
-
Kolom yang bertujuan untuk
pengguna menuliskan alamat url
Kolom yang bertujuan untuk
txtUsername
JtextField
-
pengguna menuliskan nama
username
txtPassword
JpasswordF
ield
-
Kolom yang bertujuan untuk
pengguna menuliskan password
Tombol yang bertujuan untuk
btnBatalKoneksi
Jbutton
Batal
mengosongkan kembali kolom
nama database, url, username,
password
Tombol yang bertujuan untuk
btnCekKoneksiDB
Jbutton
Cek
melakukan cek koneksi terhadap
Koneksi
nama database, url, username,
password yang telah dituliskan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
72
pengguna pada kolom yang
tersedia
PanelPilihTabel
Jpanel
-
Panel yang mendasari bagian cari
table transaksi
Tulisan yang tampil pada halaman
lblPilihTabel
Jlabel
Pilih
untuk memberikan keterangan
Tabel
pengguna untuk memilih tabel
transaksi
Titikdua
comboPilihTabel
Jlabel
JcomboBo
x
:
Berisi pilihan – pilihan tabel yang
-
ada pada database yang telah
terkoneksi
Tombol ini bertujuan untuk
btnOkePilihanTabel
Jbutton
Oke
menampilkan isi dari tabel yang
dipilih pengguna ke dalam tabel
yang ada di layar output
PanelDataTransaksi
Jpanel
-
Panel yang mendasari tabel
transaksi
Tulisan yang tampil pada halaman
lblJumlahData
Jlabel
Jumlah
untuk memberikan keterangan
Data
pengguna jumlah data transaksi
yang ada
titikdua5
Jlabel
:
Menampilkan jumlah data
lblJmlhData2
Jlabel
-
transaksi yang ada pada tabel
transaksi yang dipilih
Tulisan yang tampil pada halaman
lblIndek1
Jlabel
-
untuk memberikan keterangan
pengguna untuk mengisi kolom
indeks nofaktur dan kolom kode
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
73
Tulisan yang tampil pada halaman
lblIndek2
Jlabel
-
untuk memberikan keterangan
pengguna untuk mengisi kolom
indeks nofaktur dan kolom kode
Tulisan yang tampil pada halaman
lblNoFaktur
Jlabel
No Faktur
untuk memberikan keterangan
pengguna untuk mengisi kolom
indeks nofaktur
txtIndekNoFaktur
Kolom untuk pengguna
JtextField
menuliskan indeks nofaktur
Tulisan yang tampil pada halaman
lblIndekKode
Jlabel
Kode
untuk memberikan keterangan
Barang
pengguna untuk mengisi kolom
indeks kode
txtIndekKode
JtextField
btnPrepocessing
Jbutton
Kolom untuk pengguna
menuliskan indeks kode
Prepocessi Tombol yang bertujuan untuk
ng
melakukan proses preprocessing
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.1.2
74
Implementasi Antar Muka Halaman_Prepocessing
Gambar 4.2 Halaman_Prepocessing
Tabel 4.2 Keterangan Halaman_Prepocessing
Id Objek
PanelDataPreposesi
ng
ScrollPaneTableDat
aHasilPrepocessing
TableDataHasilPrep
ocessing
Jenis
JPanel
Teks
-
JScrollPane -
JTable
-
Keterangan
Panel yang mendasari hasil proses
prepocessing
ScrollPaneyang berfungsi agar
tabel bisa di scroll ke bawah
Menampung data transaksi hasil
prepocessing
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Jumlah
lblJmlhDtTransaksi
JLable
Data
Transaksi
titikdua8
lblJmlhDataPrepoce
ssing
JLable
:
JLable
-
75
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna jumlah data transaksi
setelah hasil preprocessing
Menampilkan jumlah data
transaksi hasil prepocessing
Tulisan yang tampil pada halaman
lblJenisItem
JLable
Jenis Item
untuk memberikan keterangan
Barang
pengguna jumlah data item barang
setelah hasil prepocessing
titikdua9
lblJmlhItemPrepoce
ssing1
JLable
:
JLable
-
Menampilkan jumlah item
transaksi hasil prepocessing
Tulisan yang tampil pada halaman
lblMinSupp
JLable
Minimum
untuk memberikan keterangan
Support
pengguna untuk menuliskan
minimum support
titikdua10
JLable
txtMin_supp
JTextField
:
Kolom untuk pengguna
menuliskan minimum support
Tulisan yang tampil pada halaman
lblMinnsupp2
JLable
% dari
untuk memberikan keterangan
pengguna tentang minimum
support
lblJmlhDataPrepoce
ssing1
JLable
-
Menampilkan jumlah data
transaksi hasil prepocessing
Tulisan yang tampil pada halaman
lblMinsupp3
JLable
transaksi
untuk memberikan keterangan
pengguna tentang minimum
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
76
support
btnOkMin_Supp
JButton
Konfirmas Tombol untuk menghitung jumlah
i
kemunculan item dalam transaksi
Tulisan yang tampil pada halaman
lblBnykKemuncula
n
JLable
Banyak
untuk memberikan keterangan
Kemuncul
pengguna tentang banyak item
an
yang muncul dalam transaksi
berdasar minimum support
titikdua11
JLable
:
Menampilkan banyak banyak item
lblJmlhItemMuncul
JLable
-
yang muncul dalam transaksi
berdasar minimum support
Tulisan yang tampil pada halaman
lblBnykKemuncula
n2
untuk memberikan keterangan
JLable
kali dari
pengguna tentang banyak item
yang muncul dalam transaksi
berdasar minimum support
lblJmlhDataPrepoce
ssing2
JLable
-
Menampilkan jumlah data
transaksi hasil prepocessing
Tulisan yang tampil pada halaman
lblBnykKemuncula
n3
untuk memberikan keterangan
JLable
transaksi
pengguna tentang banyak item
yang muncul dalam transaksi
berdasar minimum support
btnProses
JButton
Process
Tombol yang bertujuan untuk
melakukan proses pencarian rule
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.1.3
77
Implementasi Antar Muka Halaman_HasilProses
Gambar 4.3 Halaman_HasilProses
Tabel 4.3 Keterangan Halaman_HasilProses
Id Objek
Halaman_HasilPros
es
ScrollPaneTableHas
ilProses
Jenis
Teks
JPanel
-
JscrollPane
-
Keterangan
Panel yang mendasari hasil proses
dari pencarian rule
ScrollPaneyang berfungsi agar
tabel bisa di scroll ke bawah
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
TabelHasilProses
Jtable
Tabel
lblKetTable
Jlable
Hasil
Proses
78
Menampung rule hasil proses
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna bahwa tabel di bawah
adalah tabel hasil proses
Tombol yang berfungsi untuk
btnSave
Jbutton
Save
melakukan penyimpanan data hasil
proses
btnKembali
Jbutton
Home
ScrollPaneTextArea JscrollPane
-
TextAreaHasil
-
JtextArea
Tombol yang berfungsi untuk
kembali menuju Halaman_Home
ScrollPaneyang berfungsi agar
textarea bisa di scroll ke bawah
Menampung penjelasan rule hasil
proses
Tulisan yang tampil pada halaman
lblPenjelasanRule
Jlable
Penjelasan untuk memberikan keterangan
Hasil Rule
pengguna mengenai penjelasan
hasil rule
Tingkat
lblTingkatAkurasi2
Jlable
Akurasi
Algoritma
lblTingkatAkurasi
Jlabel
-
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang tingkat akurasi
dari algoritma
Menampilkan hasil perhitungan
akurasi algoritma
Tulisan yang tampil pada halaman
lblMinSuppHasilPr
oses
Jlabel
Minimum
untuk memberikan keterangan
Support :
pengguna tentang minimum
support
lblMinSuppHasilPr
oses2
Jlabel
-
Menampilkan minimum support
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
lblJmlhDtTransHasi
lProses
lblJmlhDtTransHasi
lProses
lblItemTransHasilPr
oses
lblItemTransHasilPr
oses
Jlabel
Jlabel
Jlabel
Jlabel
79
Jumlah
Tulisan yang tampil pada halaman
Data
untuk memberikan keterangan
Transaksi
pengguna tentang jumlah data
:
transaksi
-
Jumlah
Item :
-
Menampilkan jumlah data
transaksi
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang jumlah item
Menampilkan jumlah item
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.1.4
Implementasi Antar Muka Halaman_Home
Gambar 4.4 Halaman_Home
Tabel 4.4 Keterangan Halaman_Home
Id Objek
Jenis
Teks
PanelHome
JPanel
-
lblLogo
JLable
-
btnKeluarHome
JButton
Keluar
Keterangan
Panel yang mendasari
Halaman_Home
Menampilkan logo universitas
Tombol yang bertujuan untuk
keluar dari aplikasi
80
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Penerapan
Data
lblJudul1
JLable
Mining Pada
Perusahaan
Judul
Retail
Pakaian
Untuk
lblJudul2
JLable
Memprediks
i Minat
Judul
Konsumen
Dengan
Menggunak
lblJudul3
JLable
an
Judul
Algoritma
FP-Growth
btnBantuanHome
JButton
Bantuan
btnMasukHome
JButton
Masuk
Tombol yang bertujuan untuk
masuk ke Halaman_Bantuan
Tombol yang bertujuan untuk
masuk ke Halaman_Open
81
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.1.5
Implementasi Antar Muka Halaman_Bantuan
Gambar 4.5 Halaman_Bantuan
Tabel 4.5 Keterangan Halaman_Bantuan
Id Objek
Jenis
Teks
PanelJudul
JPanel
-
PanelLangkahSistem
JPanel
-
Keterangan
Panel yang mendasari Judul
Berisi langkah – langkah
menggunakan sistem
82
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
btnHomeBantuan
JButton
HOME
83
Tombol untuk kembali ke halaman
home
4.2 Implementasi Kelas
4.2.1
Implementasi Kelas Model
Tabel 4.6 Implementasi dari kelas model
No.
Nama Kelas Model
Nama File Fisik
Nama File Executable
1.
Koneksi
Koneksi.java
Koneksi.class
2.
StrukturTabel
StrukturTabel.java
StrukturTabel.class
3.
TreeNode
TreeNode.java
TreeNode.class
4.
Comparable
Comparable.java
Comparable.class
5.
AmbilHasil
AmbilHasil.java
AmbilHasil.class
LihatHasilAlgoTableM
LihatHasilAlgoTableMo
LihatHasilAlgoTableMo
odel
del.java
del.class
6.
4.2.2
Implementasi Kelas Controller
Tabel 4.7 Implementasi dari Kelas Controller
No.
4.2.3
Nama Kelas Controller
Nama File Fisik
Nama File Executable
1.
Konn
Konn.java
Konn.class
2.
ControlAlgorithm
ControlAlgorithm.java
ControlAlgorithm.class
3.
Control_Database
Control_Database.java
Control_Database.class
4.
Larik
Larik.java
Larik.class
Implementasi Kelas View
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
84
Tabel 4.8 Implementasi dari kelas view
No.
1.
2.
Use Case
Cari Database dan
Data Transaksi
Cari Pola Asosiasi
Barang
3.
Simpan Hasil
Asosiasi Barang
Antarmuka
Nama Kelas Boundary
Halaman_Open.java
Halaman_Open.java
Halaman_Prepocessing.java
Prepocessing.java
Halaman_HasilProses.java
HasilProses.java
(Listing program terlampir pada Lampiran 1)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB V
UJICOBA DAN EVALUASI
Setelah aplikasi prediksi dengan menggunakan algoritma FP-Growth selesai di buat, pada
tahap ini akan dilakukan ujicoba terhadap aplikasi tersebut. Ujicoba dilakukan dengan
menggunakan data transaksi penjualan dalam perusahan XYZ. Data transaksi yang digunakan
untuk unicoba adalah data transaksi penjualan selama 3 hari pada tanggal 1 April 2015 sampai
dengan tanggal 3 April 2015.
Dalam ujicoba ini akan dilakukan beberapa jenis percobaan untuk setiap data transaksi
dengan tujuan untuk mendapatkan aturan asosiasi dengan algoritma FP-Growth yang akurat dan
dapat dijadikan sebagai prediksi dalam menentukan stok barang dalam perusahaan.
5.1 Percobaan Data Transaksi Berdasarkan Kode Kategori Per Hari
Pada percobaan yang pertama ini, penulis melakukan ujicoba pada system tersebut
dengan menggunakan data transaksi penjualan pada perusahaan XYZ dengan berdasarkan kode
kategori barang yang ada pada perusahaan.
Percobaan ini akan dilakukan sebanyak 4 kali di setiap tanggal 1 April 2015, 2 April
2015 dan 3 April 2015 dengan dilakukan pengubahan pada minimum support yang dimasukkan.
Pada ujicoba tersebut akan menggunakan minimum support dengan nilai sebesar 3%, 2.5%, 2%
dan 1.5 %. Penulis mengunakan nilai minimum supportdengan beberapa nilai tersebut dengan
alasan karena data transaksi tersebut tidak memiliki persebaran nilai yang merata. Apabila
menggunakan nilai minimum support besar maka tidak akan menampilkan rule. Sedangkan
apabila menggunkan minimum support dengan nilai dibawah yang telah ditentukan oleh penulis,
akan menghasilkan rule yang sangat banyak, sehingga akan sulit untuk dianalisa.
85
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.1.1
86
Percobaan pada data transaksi tanggal 1 April 2015
Data transaksi yang digunakan adalah sebanyak 2245 , sedangkan jumlah item
yang ada sebanyak 91.
a. Percobaan tanggal 1 April 2015 dengan minimum support 3%
Tabel 5.1 Percobaan tanggal 1 April 2015 dengan minimum support 3%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
ACC(700)
SENDAL(510)
0.68
0.21
1.27419
Waktu Komputasi Pencarian Rule :
1 detik
Pada saat peneliti menggunakan minimum support 3% hanya terdapat satu buah rule yang
dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 0.68 persen, besar confidence adalah 0.21, besar nilai lift ratio sebesar
1.27419. Proses algoritma tersebut membutuhkan waktu sebesar 1 detik.
b. Percobaan tanggal 1 April 2015 dengan minimum support 2.5 %
Tabel 5.2 Percobaan tanggal 1 April 2015 dengan minimum support 2.5%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
K.KAKI(640)
ACC(700)
0.56
0.589
4.08119
2
ACC(700)
SENDAL(510)
0.68
0.21
1.27419
Waktu Komputasi Pencarian Rule :
2 detik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
87
Pada saat peneliti menggunakan minimum support 2,5% terdapat dua buah rule yang
dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 0.68 persen, besar confidence adalah 0.21 ,dengan nilai lift ratio sebesar
1.27419. Yang kedua adalah kode K.KAKI(640) dan ACC(700) dengan support kedua
barang tersebut adalah 0.56 persen, besar confidence adalah 0.589 ,dengan nilai lift ratio
sebesar 4.08119. Waktu yang di butuhkan untuk melakukan proses tersebut adalah 2
detik
c. Percobaan tanggal 1 April 2015 dengan minimum support 2 %
Tabel 5.3 Percobaan tanggal 1 April 2015 dengan minimum support 2 %
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
K.KAKI(640)
ACC(700)
0.56
0.589
4.08119
2
ACC(700)
SENDAL(510)
0.68
0.21
1.27419
Waktu Komputasi Pencarian Rule :
2 detik
Pada saat peneliti menggunakan minimum support 2,5% terdapat dua buah rule yang
dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 0.68 persen, besar confidence adalah 0.21 ,dengan nilai lift ratio sebesar
1.27419. Yang kedua adalah kode K.KAKI(640) dan ACC(700) dengan support kedua
barang tersebut adalah 0.56 persen, besar confidence adalah 0.589 ,dengan nilai lift ratio
sebesar 4.08119. Waktu yang di butuhkan untuk melakukan proses tersebut adalah 2
detik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
88
d. Percobaan tanggal 1 April 2015 dengan minimum support 1.5 %
Tabel 5.4 Percobaan tanggal 1 April 2015 dengan minimum support 1.5 %
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
JAM TANGAN(450) SENDAL(510)
0.34
0.274
1.66251
2
JAM TANGAN(450)
ACC(700)
0.41
0.331
2.2935
3
K.KAKI(640)
ACC(700)
0.56
0.589
4.08119
4
ACC(700)
SENDAL(510)
0.68
0.21
1.27419
Waktu Komputasi Pencarian rule :
2 detik
Pada saat peneliti menggunakan minimum support 2 % terdapat empat buah rule yang
dihasilkan yaitukode JAM TANGAN( 450) dan SENDAL(510) dengan support kedua
barang tersebut adalah 0.34 persen, besar confidence adalah 0.274 ,besar nilai lift
ratioadalah 1.66251. Yang kedua adalah kode JAM TANGAN(450) dan ACC(700)
dengan support kedua barang tersebut adalah 0.41 persen, besar confidence adalah 0.331
,besar nilai lift ratio adalah 2.2935
Yang ketiga adalah kode K.KAKI(640) dan ACC(700) dengan support kedua barang
tersebut adalah 0.56 persen, besar confidence adalah 0.589 ,besar nilai lift ratio adalah
4.08119. Yang keempat adalah kode ACC(700) dan SENDAL(510) dengan support
kedua barang tersebut adalah 0.68 persen, besar confidence adalah 0.21 ,besar nilai lift
ratio adalah 1.27419. Waktu yang dibutuhkan untuk melakukan proses tersebut adalah 2
detik
Dari hasil pengujian terhadap data transaksi tanggal 1 April 2015, kesimpulan yang dapat
diambil adalah sebagai berikut :
1. Dari hasil ke empat percobaan pola dengan kode ACC(700) dan SENDAL(510)
adalah dua barang yang selalu muncul dengan berbagai minimum support.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
2. Tingkat keakuratan rule dari keempat proses tersebut yang paling besar terdapat
pada rule kode K.KAKI(640) dan ACC(700) , dengan nilai lift ratio sebesar
4.08119.
5.1.2
Percobaan pada data transaksi tanggal 2 April 2015
Data transaksi yang digunakan adalah sebanyak 2450 , sedangkan jumlah item
yang ada sebanyak 89.
a. Percobaan tanggal 2 April 2015 dengan minimum support 3%
Tabel 5.5 Percobaan tanggal 2 April 2015 dengan minimum support 3%
No
Produk 1
Produk 2
Support
Waktu Komputasi Pencarian rule :
Confidence
LiftRatio
-
Pada saat pengguna menggunakan minimum support 3 % tidak menghasilkan suatu pola
apapun.
b. Percobaan tanggal 2 April 2015 dengan minimum support 2.5 %
Tabel 5.6 Percobaan tanggal 2 April 2015 dengan minimum support 2.5%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
ACC(700)
SENDAL(510)
0.69
0.22
1.32432
Waktu Komputasi Pencarian rule :
2 detik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
90
Pada saat peneliti menggunakan minimum support 2.5 % hanya terdapat satu buah rule
yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 0.69 persen, besar confidence adalah 0.22, besar nilai lift ratio adalah
sebesar 1.32432. Waktu yang diperlukan untuk melakukan proes tersebut sebesar 2 detik
c. Percobaan tanggal 2 April 2015 dengan minimum support 2 %
Tabel 5.7 Percobaan tanggal 2 April 2015 dengan minimum support 2%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
ACC(700)
SENDAL(510)
0.69
0.22
1.32432
Waktu Komputasi Pencarian rule :
2 detik
Pada saat peneliti menggunakan minimum support 2.5 % hanya terdapat satu buah rule
yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 0.69 persen, besar confidence adalah 0.22, besar nilai lift ratio adalah
sebesar 1.32432. Waktu yang diperlukan untuk melakukan proes tersebut sebesar 2 detik
d. Percobaan tanggal 2 April 2015 dengan minimum support 1.5 %
Tabel 5.8 Percobaan tanggal 2 April 2015 dengan minimum support 1.5 %
No
Produk 1
Produk 2
Support
Confidence LiftRatio
1
JOGER(531)
ATASAN CE(610)
0.43
0.222
1.46604
2
ACC(700)
SENDAL(510)
0.69
0.22
1.32432
SENDAL(510)
0.42
0.113
0.68022
ATASAN
3
CE(610)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4
TAS(340)
SENDAL(510)
0.4
0.223
Waktu Komputasi Pencarian rule :
91
1.34238
2 detik
Pada saat peneliti menggunakan minimum support 1.5% terdapat 4 buah rule yang
dihasilkan
yaitu kode JOGER(531) dan ATASAN CE(610) dengan support kedua
barang tersebut adalah 0.43 persen, besar confidence adalah 0.22, besar lift ratio adalah
1.46604 . Yang kedua adalah kode ACC(700) dan SENDAL(510) dengan support kedua
barang tersebut adalah 0.69
persen, besar confidence adalah 0.22, lift ratio adalah
1.32432. Yang ketiga adalah kode ATASAN CE(610) dan SENDAL(510) dengan
support kedua barang tersebut adalah 0.42 persen, besar confidence adalah 0.113, besar
nilai lift ratio adalah
0.68022. Yang keempat
adalahkode
TAS(340)
SENDAL(510) dengan support kedua barang tersebut adalah 0.4
dan
persen, besar
confidence adalah 0.223, besar nilai lift ratio adalah 1.34238 . Waktu yang dibutuhkan
untuk menjalankan proses tersebut adalah 2 detik.
e. Percobaan tanggal 2 April 2015 dengan minimum support 1.4 %
Tabel 5.9 Percobaan tanggal 2 April 2015 dengan minimum support 1.4%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
ATASAN
1
JOGER(531)
CE(610)
0.43
0.222
1.46604
2
ACC(700)
SENDAL(510)
0.69
0.22
1.32432
ATASAN
3
CE(610)
SENDAL(510)
0.42
0.113
0.68022
4
TAS(340)
SENDAL(510)
0.4
0.223
1.34238
5
ACC(700)
ATASAN
0.36
0.115
0.75943
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
92
CE(610)
6
K.KAKI(640) ACC(700)
0.34
Waktu Komputasi Pencarian rule :
0.415
3.23806
2 detik
Pada saat peneliti menggunakan minimum support 1.5 % terdapat 4 buah rule yang
dihasilkan
yaitu kode JOGER(531) dan ATASAN CE(610) dengan support kedua
barang tersebut adalah 0.43 persen, besar confidence adalah 0.22, besar lift ratio adalah
1.46604 . Yang kedua adalah kode ACC(700) dan SENDAL(510) dengan support kedua
barang tersebut adalah 0.69
persen, besar confidence adalah 0.22, lift ratio adalah
1.32432. Yang ketiga adalah kode ATASAN CE(610) dan SENDAL(510) dengan
support kedua barang tersebut adalah 0.42 persen, besar confidence adalah 0.113, besar
nilai lift ratio adalah
0.68022. Yang keempat
adalahkode
TAS(340)
SENDAL(510) dengan support kedua barang tersebut adalah 0.4
dan
persen, besar
confidence adalah 0.223, besar nilai lift ratio adalah 1.34238 . Yang kelima adalahkode
ACC(700) dan ATASAN CE(610) dengan support kedua barang tersebut adalah 0.36
persen, besar confidence adalah 0.115, besar nilai lift ratio adalah 0.75943. Yang keenam
adalahkode K.KAKI(640) dan ACC(700) dengan support kedua barang tersebut adalah
0.34 persen, besar confidence adalah 0.115, besar nilai lift ratio adalah 3.23806.
Waktu yang dibutuhkan untuk menjalankan proses tersebut adalah 2 detik.
Dari hasil pengujian terhadap data transaksi tanggal 2 April 2015, dan dari prediksi yang
dilakukan pada data transaksi 1 April 2015, kesimpulan yang adapat diambil adalah
sebagai berikut :
5.1.1
Dari hasil ke empat percoban pola dengan kode ACC(700) dan
SENDAL(510) adalah dua barang yang selalu muncul dengan berbagai minimum
support. Hal ini sesuai dengan pola yang dihasilkan ketika percobaan tanggal 1
April 2015, tetapi nilai dari support, confiden dan lift ratio lebih besar karena
jumlah data transaksi pada tanggal 2 April 2015 lebih banyak dari data transaksi
tanggal 1 April 2015.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.1.2
93
Tingkat keakuratan rule dari proses tersebut yang paling besar terdapat
pada rule kode K.KAKI(640) dan ACC(700) , dengan nilai lift ratio sebesar
3.23086. Apabila dilihat prediksi berdasarkan hasil rule pada tanggal 1 April
2015, maka rule tersebut sesuai.
5.1.3
Percobaan pada data transaksi tanggal 3 April 2015
Data transaksi yang digunakan adalah sebanyak 2684 , sedangkan jumlah item
yang ada sebanyak 91.
a. Percobaan tanggal 3 April 2015 dengan minimum support 3%
Tabel 5.10 Percobaan tanggal 3 April 2015 dengan minimum support 3%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
ACC(700)
SENDAL(510)
1.08
0.286
1.60927
Waktu Komputasi Pencarian rule :
2 detik
Pada saat peneliti menggunakan minimum support 3 % hanya terdapat satu buah rule
yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 1.08 persen, besar confidence adalah 0.286, besar nilai lift ratio adalah
1.60927 danwaktu yng dibutuhkan untuk melakukan proses tersebut sebesar 2 detik
b. Percobaan tanggal 3 April 2015 dengan minimum support 2.5 %
Tabel 5.11 Percobaan tanggal 3 April 2015 dengan minimum support 2.5%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1
ACC(700)
SENDAL(510)
1.08
Waktu Komputasi Pencarian rule :
0.286
94
1.60927
2 detik
Pada saat peneliti menggunakan minimum support 2.5 % hanya terdapat satu buah rule
yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 1.08 persen, besar confidence adalah 0.286, besar nilai lift ratio adalah
1.60927 danwaktu yng dibutuhkan untuk melakukan proses tersebut sebesar 2 detik
c. Percobaan tanggal 3 April 2015 dengan minimum support 2 %
Tabel 5.12 Percobaan tanggal 3 April 2015 dengan minimum support 2%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
ACC(700)
SENDAL(510)
1.08
0.286
1.60927
Waktu Komputasi Pencarian rule :
3 detik
Pada saat peneliti menggunakan minimum support 2 % hanya terdapat satu buah rule
yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua barang
tersebut adalah 1.08 persen, besar confidence adalah 0.286, besar nilai lift ratio adalah
1.60927 danwaktu yng dibutuhkan untuk melakukan proses tersebut sebesar 3 detik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
95
d. Percobaan tanggal 3 April 2015 dengan minimum support 1.5 %
Tabel 5.13 Percobaan tanggal 3 April 2015 dengan minimum support 1.5%
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
JAM TANGAN(450)
ACC(700)
0.42
0.359
2.54909
2
K.KAKI(640)
ACC(700)
0.52
0.553
3.92659
3
JOGER(531)
0.52
0.259
2.02669
4
ACC(700)
SENDAL(510)
1.08
0.286
1.60927
5
ATASAN CE(610)
ACC(700)
0.48
0.14
0.99407
6
TAS(340)
SENDAL(510)
0.46
0.179
1.0072
7
TAS(340)
ACC(700)
0.5
0.195
1.3846
ATASAN
CE(610)
Waktu Komputasi Pencarian rule :
3 detik
Pada saat pengguna menggunakan minimum support 1.5 % terdapat 7 buah rule yang
dihasilkan
yaitu kode
JAM TANGAN(450) dan ACC(700) dengan support kedua
barang tersebut adalah 0.42 persen, besar confidence adalah 0.359, besar nilai lift ratio
adalah 2.54909. Yang kedua adalah kode K.KAKI(640) dan ACC(700) dengan support
kedua barang tersebut adalah 0.52 persen, besar confidence adalah 0.553, besar nilai lift
ratio adalah 3.92659. Yang ketiga adalah kode JOGER(531) dan ATASAN CE(610)
dengan support kedua barang tersebut adalah 0.52 persen, besar confidence adalah
0.14368, besar nilai lift ratio adalah 2.02669. Yang keempat adalah kode ACC(700)
dan SANDAL(510) dengan support kedua barang tersebut adalah 1.08 persen, besar
confidence adalah 0.286, besar nilai lift ratio adalah 1.60927. Yang kelima adalah kode
ATASAN CE(610) dan ACC(700) dengan support kedua barang tersebut adalah 0.48
persen, besar confidence adalah 0.179, besar nilai lift ratio adalah 0.99407. Yang keenam
adalah kode TAS(340) dan SANDAL(510) dengan support kedua barang tersebut
adalah 0.46 persen, besar confidence adalah 0.179, besar nilai lift ratio adalah 1.0072.
Yang ketujuh adalah kode TAS(340) dan ACC(700) dengan support kedua barang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
96
tersebut adalah 0.5 persen, besar confidence adalah 0.195, besar nilai lift ratio adalah
1.3846. Waktu yang dibutuhkan untuk melakukan proses tersebut adalah 3 detik
Dari hasil pengujian terhadap data transaksi tanggal 3 April 2015, dan dari prediksi yang
dilakukan pada data transaksi 2 April 2015, kesimpulan yang adapat diambil adalah
sebagai berikut :
1. Dari hasil ke empat percoban pola dengan kode ACC(700) dan SENDAL(510)
adalah dua barang yang selalu muncul dengan berbagai minimum support. Hal ini
sesuai dengan pola yang dihasilkan ketika percoban tanggal 2 April 2015, tetapi
nilai dari support, confiden dan nilai lift ratio lebih besar karena jumlah data
transaksi pada tanggal 3 April 2015 lebih banyak dari data transaksi tanggal 2
April 2015.
2. Tingkat keakuratan algoritma dari keempat percobaan proses tersebut yang paling
besar adalah pada kode K.KAKI(640) dan ACC(700) dengan nilai lift ratio
sebesar 3.92659
5.2 Percobaan Data Transaksi Berdasarkan Kode Kategori Per 2 Hari
5.2.1
Percobaan pada data transaksi tanggal 1 dan 2 April 2015
Data transaksi yang digunakan adalah sebanyak 4695, sedangkan jumlah item
yang ada sebanyak 92.
a. Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 3 %
Tabel 5.14Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 3 %
No
Produk 1
Produk 2
Support
Waktu Komputasi Pencarian rule :
Confidence
LiftRatio
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
97
Pada saat peneliti menggunakan minimum support 3 % tidak menghasilkan suatu
rule apapun.
b. Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 2.5 %
Tabel 5.15Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 2.5 %
No
1
Produk 1
ACC(700)
Produk 2
Support
Confidence
LiftRatio
SENDAL(510)
1.37
0.125
1.29913
Waktu Komputasi Pencarian rule :
4 detik
Pada saat peneliti menggunakan minimum support 2.5 % hanya terdapat satu
buah rule yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan
support kedua barang tersebut adalah 1.37 persen, besar confidence adalah 0.125,
besar nilai lift ratio adalah sebesar1.29913. Waktu yang diperlukan untuk
melakukan proses tersebut adalah 4 detik.
c. Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 2%
Tabel 5.16Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 2 %
No
1
Produk 1
ACC(700)
Produk 2
Support
Confidence
LiftRatio
SENDAL(510)
1.37
0.125
1.29913
Waktu Komputasi Pencarian rule :
5 detik
Pada saat peneliti menggunakan minimum support 2 % hanya terdapat satu buah
rule yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support
kedua barang tersebut adalah 1.37 persen, besar confidence adalah 0.125, besar
nilai lift ratio adalah sebesar 1.29913. Waktu yang diperlukan untuk melakukan
proses tersebut adalah 5 detik.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
98
d. Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 1.5 %
Tabel 5.17Percobaan tanggal 1 dan 2 April 2015 dengan minimum support 1.5 %
No
Produk 1
Produk 2
Support
Confidence
LiftRatio
1
ACC(700)
SENDAL(510)
1.37
0.125
1.29913
2
K.KAKI(640)
ACC(700)
0.9
0.508
3.73834
Waktu Komputasi Pencarian rule :
6 detik
Pada saat peneliti menggunakan minimum support 1.5 % terdapat dua buah rule
yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support kedua
barang tersebut adalah 1.37 persen, besar confidence adalah 0.125, besar nilai lift
ratio sebesar 1.29913. Yang kedua adalah kode K.KAKI(640) dan ACC(700)
dengan support kedua barang tersebut adalah 0.9 persen, besar confidence adalah
0.508, besar nilai lift ratio adalah sebesar 3.73834. Waktu yang dibutuhkan untuk
menyelesaikan proses tersebut adalah 6 detik.
Dari hasil pengujian terhadap data transaksi tanggal 1 dan 2 April 2015 terhadap
hasil prediksi tanggal 3 April 2015, kesimpulan yang adapat diambil adalah
sebagai berikut :
1. Dari hasil ke empat percobaan pola dengan kode ACC(700) dan
SENDAL(510) adalah dua barang yang selalu muncul dengan berbagai
minimum support. Hal ini sesuai dengan pola yang dihasilkan ketika
percobaan tanggal 3 April 2015, tetapi nilai dari support, confiden dan
lift ratio lebih besar karena jumlah data transaksi pada tanggal 3 April
2015 lebih sedikit dari data transaksi tanggal 1 dan 2 April 2015.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
99
2. Tingkat keakuratan algoritma dari keempat percobaan tersebut yang paling
besar adalah ketika K.KAKI(640) dan ACC(700) yaitu sebesar 3.73834
5.3 Percobaan pada data transaksi selama 3 hari tanggal 1,2,3 April 2015
Data transaksi yang digunakan adalah sebanyak 7379, sedangkan jumlah item
yang ada sebanyak 93.
5.3.1
Percobaan pada data transaksi selama 3 hari tanggal 1,2,3 April 2015
a. Percobaan tanggal 1,2,3 April 2015 dengan minimum support 3 %
Tabel 5.18Percobaan tanggal 1,2,3 April 2015 dengan minimum support 3 %
MinSupp : 3 %
No
1
Produk 1
ACC(700)
Produk 2
Support
SENDAL(510)
2.45
Waktu Komputasi Pencarian rule :
Confidence Lift Ratio
0.241
1.41813
8 detik
Pada saat peneliti menggunakan minimum support 3 % hanya terdapat satu buah
rule yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support
kedua barang tersebut adalah 2.45 persen, besar confidence adalah 0.241, besar
nilai lift ratio sebesar 1.41813. Waktu yang dibutuhkan untuk menyelesaikan
proses tersebut adalah sebesar 8 detik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
100
b. Percobaan tanggal 1,2,3 April 2015 dengan minimum support 2.5 %
Tabel 5.19Percobaan tanggal 1,2,3 April 2015 dengan minimum support 2.5 %
No
1
Produk 1
ACC(700)
Produk 2
Support
Confidence
SENDAL(510)
2.45
0.241
Waktu Komputasi Pencarian Rule :
Lift Ratio
1.41813
8 detik
Pada saat peneliti menggunakan minimum support 2.5 % hanya terdapat satu
buah rule yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan
support kedua barang tersebut adalah 2.45 persen, besar confidence adalah 0.241,
besar nilai lift ratio sebesar 1.41813. Waktu yang dibutuhkan untuk
menyelesaikan proses tersebut adalah sebesar 8 detik
c. Percobaan tanggal 1,2,3 April 2015 dengan minimum support 2 %
Tabel 5.20Percobaan tanggal 1,2,3 April 2015 dengan minimum support 2 %
No
1
Produk 1
ACC(700)
Produk 2
Support
Confidence
Lift Ratio
SENDAL(510)
2.45
0.241
1.41813
Waktu Komputasi Pencarian Rule :
9 detik
Pada saat peneliti menggunakan minimum support 2 % hanya terdapat satu buah
rule yang dihasilkan yaitu kode ACC(700) dan SENDAL(510) dengan support
kedua barang tersebut adalah 2.45 persen, besar confidence adalah 0.241, besar
nilai lift ratio sebesar 1.41813. Waktu yang dibutuhkan untuk menyelesaikan
proses tersebut adalah sebesar 9 detik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
101
d. Percobaan tanggal 1,2,3 April 2015 dengan minimum support 1.5 %
Tabel 5.21Percobaan tanggal 1,2,3 April 2015 dengan minimum support 1.5 %
No
1
Produk 1
K.KAKI(640)
Produk 2
ACC(700)
Support
Confidence
Lift Ratio
1.42
0.524
3.8057
ATASAN
2
JOGER(531)
CE(610)
1.16
0.23
1.77343
3
ACC(700)
SENDAL(510)
2.45
0.241
1.41813
4
TAS(340)
SENDAL(510)
1.14
0.184
1.08272
Waktu Komputasi Pencarian Rule :
10 detik
Pada saat peneliti menggunakan minimum support 1.5 % terdapat 4buah rule
yang dihasilkan yaitu yang pertama adalah kode K.KAKI(640) dan ACC(700)
dengan support kedua barang tersebut adalah 1.42
persen, besar confidence
adalah 0.524, besar nilai lift ratio adalah 3.8057 . Yang kedua adalah
kodeJOGER(531) dan ATASAN CE(610) dengan support kedua barang tersebut
adalah 1.16 persen, besar confidence adalah 0.23, besar nilai lift ratio adalah
1.77343. Yang ketiga adalah
kodeACC(700)
dan SENDAL(510)
dengan
support kedua barang tersebut adalah 2.45 persen, besar confidence adalah 0.241,
besar nilai lift ratio adalah 1.41813. Yang keempat adalah kodeTAS(340) dan
SENDAL(510) dengan support kedua barang tersebut adalah 1.14 persen, besar
confidence adalah 0.184, besar nilai lift ratio adalah 1.08272.
Waktu yang
diperlukan untuk meyelesaikan proses tersebut adalah sebesar 10 detik
Dari hasil pengujian terhadap data transaksi tanggal 1, 2, 3
kesimpulan yang adapat diambil adalah sebagai berikut :
April 2015
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
102
1. Dari hasil ke empat percobaan pola dengan kode ACC(700) dan
SENDAL(510) adalah dua barang yang selalu muncul dengan berbagai
minimum support.
2. Tingkat keakuratan algoritma dari keempat percobaan
tersebut yang
paling besar adalah kode K.KAKI(640) dan ACC(700) dengan nilai lift
ratio 3.8057
Dari beberapa uji coba yang telah dilakukan terdapat sebuah rule yang selalu
memiliki nilai keakuratan tinggi yaitu barang K.KAKI(640) dengan ACC(700).
Melalui nilai keakuratan data tersebut dapat dijadikan sebagai prediksi dalam
penyediaan barang dalam perusahaan tersebut.
Tabel 5.22 Tabel rule dengan akurasi tertinggi
Tanggal 1 April 2015
Item
K.KAKI(640)
ACC(700)
Tanggal 1
Jumlah Awal Penjualan
200
56
200
165
Sisa
144
35
Penambahan
Barang
0
200
Sisa
110
96
Penambahan
Barang
0
200
Tanggal 2 April 2015
Item
K.KAKI(640)
ACC(700)
Tanggal 2
Jumlah Awal Penjulan
144
34
235
139
Tanggal 3 April 2015
Item
K.KAKI(640)
ACC(700)
Tanggal 3
Jumlah Awal Penjualan
110
52
296
252
Sisa
58
44
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
103
Ketika tanggal 1 April 2015 rule yang memiliki nilai akurasi tinggi adalah
K.KAKI(640) dan ACC(700). Di asumsikan jumlah dari masing – masing jenis
barang adalah 200. Pada tanggal tersebut penjualan K.KAKI(640) adalah sebesar 56
sehingga memiliki sisa item 144, sedangkan penjualan item ACC(700) adalah sebesar
165 sehingga memiliki sisa item 35.
Pada tanggal 2 April 2015 ruletersebut juga memiliki tingkat keakuratan tertinggi.
Penjualan K.KAKI(640) adalah sebesar 34 , sisa item dari hari sebelumnya adalah
144, sehingga memiliki sisa item pada tanggal 2 adalah 110, sedangkan penjualan
item ACC(700) adalah sebesar 139 namun sisa item pada tanggal sebelumnya hanya
35. Oleh karena itu dilakukan penambahan item sebesar 200 seperti stok awal,
sehingga sisa dari item tersebut adalah 96.
Pada tanggal 3 April 2015 ruletersebut juga memiliki tingkat keakuratan tertinggi.
Penjualan K.KAKI(640) adalah sebesar 52 , sisa item dari hari sebelumnya adalah
110, sehingga memiliki sisa item pada tanggal 3 adalah 58, sedangkan penjualan item
ACC(700) adalah sebesar 252 namun sisa item pada tanggal sebelumnya hanya 96.
Oleh karena itu dilakukan penambahan item sebesar 200 seperti stok awal, sehingga
sisa dari item tersebut adalah 44.
Dengan melihat penjelasan di atas, rule yang dihasilkan dari proses asosiasi
sangat membantu perusahaan untuk menentukan jenis barang apa yang harus
ditambahkan. Seperti hasil di atas, jenis ACC(700) selalu membutuhkan penambahan
barang untuk hari berikutnya sesuai dengan hasil yang telah diprediksi.
5.4 Kelebihan dan Kekurangan Sistem
5.4.1
Kelebihan Sistem
Kelebihan dari sistem pendekteksian miat konsumen dengan menggunakan
algoritma FP-Growth adalah sebagai berikut :
1. Sistem ini dapat menyimpan hasil proses ke dalam file dengan tipe .doc ,
.xls ,.pdf dan .txt
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
104
2. Sistem ini dapat melakukan proses deteksi dengan kode barang maupun
kode kategori.
5.4.2
Kekurangan Sistem
Kekurangan dari sistem pendekteksian miat konsumen dengan menggunakan
algoritma FP-Growth adalah sebagai berikut :
1. Sistem tidak dapat mengelola data yang berasal dari luar database ,
misalnya file dengan extensi .csv , .xls sehingga hanya dapat mengelola
data yang berasal dari database saja. ( Mysql)
2. Sistem hanya dapat menggunakan satu tabel saja dari database. Tidak
dapat melakukan relasi antar tabel secara sistem.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VI
PENUTUP
6.1 Kesimpulan
1. Algoritma Frequent Pattern Growth (FP-Growth) dapat digunakan untuk melakukan
pendekteksian jenis barang yang harus tersedia. Dengan melihat rule yang dihasilkan
dari proses asosiasi dalam uji coba, item - item yang ada merupakan sebuah prediksi
item akan di beli di kemudian hari. Item – item tersebut yang harus di prioritaskan
untuk di sediakan dalam perusahaan tersebut.
2. Nilai dari minimum support sangat berpengaruh terhadap hasil pola yang dihasilkan
dalam proses pendekteksian pola. Semakin tinggi nilai minimum support
maka
semakin sedikit rule yang dihasilkan, sedangkan semakin kecil minimum support
maka rule yang dihasilkan semakin banyak.
3. Besar nilai support dan confidence berpengaruh terhadap keakuratan data yang di uji
menggunakan lift ratio. Apabila suatu rule memiliki support yang tinggi dan
confidence yang tinggi maka rule tersebut memiliki tingkat akurasi yang besar dan
rule tersebut dapat dijadikan sebagai prediksi. Apabila suatu rule memiliki support
yang rendah dan confidence yang rendah maka rule tersebut memiliki tingkat akurasi
yang rendah yaitu memiliki nilai kurang dari 1, dan rule tersebut tidak dapat dijadikan
sebagai prediksi. Sedangkan Apabila suatu rule memiliki support yang rendah dan
confidence yang tinggi maka rule tersebut kemungkinan memiliki nilai akurasi yang
tinggi dan dapat dijadikan sebagai prediksi.
4. Waktu yang dibutuhkan untuk menyelesaikan proses bergantung pada jumlah
transaksi yang ada. Semakin banyak data transaksi dan semakin kecilminimum
support maka waktu yang dibutuhkan semakin besar.
6.2 Saran
1. Penulis berharap agar sistem ini dapat dikembangkan sehingga dapat digunakan
dengan data yang berasal dari luar database seperti .csv, dll
2. Penulis berharap agar sistem ini dikembangkan agar dapat menggunakan data
transaksi dalam database lebih dari satu tabel.
105
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
106
DAFTAR PUSTAKA
Agrawal,Rakesh,Ramakrishnan, Srikant. Fast Algoritms for Mining Association Rules, IBM
Almaden Research Center 650 Harry Road, Sn Jose, CA 95120
Han, J dan Kamber, M. 21001. Data Mining : Concepts and Techniques. Morgan Kaufman. San
Fransisco.
Han,J.,Pie, J., Y,Yin. 2000.Mining Frequent Patterns without Candidate Generation, School of
Computing Science Simon Fraser University.
Hill,Mc Graw. 2007 The Complete Reference Java Seventh Edition.
Prof. Fomby Tom. July 2013. Association Rules(Aka Affinity Analysis or Market Basket
Analysis). Department of Economics Southern Methodist University Dallas, Texas
75275.
Tim Dosen USD. Quick Sort dan Merge Sort. Jurusan Teknik Informatika USD
McNicholas.P.D., T.B. Murphy, M. O’Regan. Standardising the Lift of an Association Rule.
Department of Statistic, Trinity College Dublin, Ireland.
Sudiadiarta, I Gede, Market Basket Analysis Menggunakan Algoritma Frequent Pattern
Growth(FP-Growth) Untuk Situs E-Commerce. Universitas Sanata Dharma Yogyakarta
: Skripsi, 2006
Nurdiyanto, Amin. Penenerapan Algoritma Apriori Untuk Pencarian Pola Asosiasi Barang
Pada Data Transaksi Penjualan(Studi Kasus Pada Toko “Kafe Swalayan”).
Universitas Sanata Dharma Yogyakarta : Skripsi : 2009.
www.solver.com/association-rules-example
https://en.m.wikipedia.org/wiki/Lift_(data_mning)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 1
1. Implementasi Kelas Control_Database
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package CONTROLLER;
import TOOLS.Konn;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author elsa
*/
public class Control_Database {
public ResultSet ambiltable(Connection conn) throws SQLException{
Statement st;
ResultSet rs;
String query;
st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "show tables";
System.out.println("\nExecuting query : " +query);
rs = st.executeQuery(query);
return rs;
}
public ResultSet ambildatatabel(Connection conn, String table) throws
SQLException{
Statement st;
ResultSet rs;
String query;
107
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "select * from " + table;
System.out.println("\nExecuting query : " +query);
rs = st.executeQuery(query);
return rs;
}
public ResultSet prepocessing(Connection conn, String table, String key1 ,
String key2) throws SQLException{
Statement st;
ResultSet rs;
String query;
st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query ="SELECT "+key1+",
GROUP_CONCAT(distinct("+key2+"))'"+key2+"' FROM " +table+" GROUP
BY "+key1;
System.out.println("\nExecuting query : " +query);
rs = st.executeQuery(query);
return rs;
}
public String cariNamaBarangg(Connection conn, String kode,String table)
throws SQLException {
PreparedStatement statement = null;
ResultSet result = null;
String nama = "";
conn.setAutoCommit(false);
String sql = "select namaBarang "
+ "from "+table+" where kodeBarang = "+kode;
System.out.println("Query : "+sql);
statement = conn.prepareStatement(sql);
result = statement.executeQuery();
while(result.next()){
nama = result.getString("namaBarang");
}
108
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
return nama;
}
public String cariNamaKategori(Connection conn, String kode,String table)
throws SQLException {
PreparedStatement statement = null;
ResultSet result = null;
String nama = "";
conn.setAutoCommit(false);
String sql = "select namakategori "
+ "from "+table+" where kategori = "+kode;
System.out.println("Query : "+sql);
statement = conn.prepareStatement(sql);
result = statement.executeQuery();
while(result.next()){
nama = result.getString("namakategori");
}
return nama;
}
}
2. Implementasi Kelas Contol_Algorithm
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package CONTROLLER;
import TOOLS.Larik;
import TOOLS.StrukturTabel;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
109
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author elsa
*/
public class Control_Algorithm {
ResultSet result = null;
PreparedStatement pst = null;
Connection conn;
public Control_Algorithm(Connection koneksi) {
this.conn = koneksi;
}
public static ArrayList<ArrayList<String>>
HasilPrepocessing(ArrayList<StrukturTabel> prepocessing) {
ArrayList<String> data1 = new ArrayList<String>();
ArrayList<ArrayList<String>> dataSet = new
ArrayList<ArrayList<String>>();
StrukturTabel ah = new StrukturTabel();
int jum = 0;
String string = null;
for (int i = 0; i < prepocessing.size(); i++) {
String d = prepocessing.get(i).getNoFaktur();
String c = prepocessing.get(i).getKodeBarang();
System.out.println((i + 1) + " . " + d + " : " + c);
ArrayList<String> data = new ArrayList<String>();
data.add(c);
dataSet.add(data);
}
System.out.println(dataSet);
return dataSet;
}
110
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
111
public static ArrayList<TreeNode> Count(ArrayList<ArrayList<String>> b, int
a) {
List<String> arr = new ArrayList<String>();
ArrayList<TreeNode> count = new ArrayList<>();
HashSet<String> hash = new HashSet<>();
String string = null;
for (int i = 0; i < b.size(); i++) {
ArrayList<String> items = b.get(i);
for (int j = 0; j < items.size(); j++) {
string = items.get(j).toString();
String z[] = string.split(",");
for (int k = 0; k < z.length; k++) {
String string1 = z[k];
hash.add(string1);
arr.add(string1);
}
}
}
Iterator iterasi = hash.iterator();
while (iterasi.hasNext()) {
String unik = (String) iterasi.next();
System.out.println(unik);
//
}
Set<String> uniqueset = new HashSet<String>(arr);
int jum = 0;
for (String temp : uniqueset) {
if (Collections.frequency(arr, temp) >= a) {
System.out.println(temp + " : " + Collections.frequency(arr, temp));
TreeNode tn = new TreeNode();
tn.tambahCount();
tn.setItem(temp);
tn.setCounts(Collections.frequency(arr, temp));
count.add(tn);
}
//
}
return count;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public static ArrayList<TreeNode>
TransaksiYgSesuai(ArrayList<StrukturTabel> prepocessing,
ArrayList<TreeNode> itemSesuai) {
ArrayList<StrukturTabel> transaksi = new ArrayList<>();
ArrayList<TreeNode> trns = new ArrayList<TreeNode>();
String string = null;
int jmlh = 0;
for (int i = 0; i < prepocessing.size(); i++) {
String a = prepocessing.get(i).getKodeBarang();
String[] l = a.split(",");
for (int j = 0; j < l.length; j++) {
string = l[j];
for (int k = 0; k < itemSesuai.size(); k++) {
if (itemSesuai.get(k).getItem().compareTo(string) == 0) {
StrukturTabel temp5 = new StrukturTabel();
temp5.setTransaksiSesuaitpDuplikasi(prepocessing.get(i).getNoFaktur());
transaksi.add(temp5);
}
}
}
}
//
System.out.println(transaksi.size());
TreeSet<String> hashurut = new TreeSet<>();
for (int i = 0; i < transaksi.size(); i++) {
hashurut.add(transaksi.get(i).getTransaksiSesuaitpDuplikasi());
}
// Cetak
int jumlah = 0;
Iterator iterasi = hashurut.iterator();
while (iterasi.hasNext()) {
String unik = (String) iterasi.next();
TreeNode temp6 = new TreeNode();
temp6.setTransaksi(unik);
trns.add(temp6);
}
System.out.println(jumlah);
return trns;
112
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
public static ArrayList<TreeNode>
TransaksidanItemYangSesuai(ArrayList<StrukturTabel> prepocessing,
ArrayList<TreeNode> transaksiSesuai, ArrayList<TreeNode> count, int x) {
//
ArrayList<StrukturTabel> transaksidanItemSesuai = new ArrayList<>();
ArrayList<TreeNode> tis = new ArrayList<TreeNode>();
int jum = 0;
String y = null;
for (int i = 0; i < prepocessing.size(); i++) {
String c = prepocessing.get(i).getNoFaktur();
String d = prepocessing.get(i).getKodeBarang();
System.out.println((i+1) + " . " + c + " " +d);
for (int j = 0; j < transaksiSesuai.size(); j++) {
String e = transaksiSesuai.get(j).getTransaksi();
if (e.compareTo(c) == 0) {
String[] l = d.split(",");
System.out.println((j + 1) + " . " + "Transaksi " + c);
for (int k = 0; k < l.length; k++) {
y = l[k];
//
System.out.println(y);
jum++;
for (int m = 0; m < count.size(); m++) {
String n = count.get(m).getItem();
//
System.out.println(n);
if (n.compareTo(y) == 0) {
int gg = count.get(m).getCounts();
if (gg >= x) {
System.out.println(n + " : " + gg);
StrukturTabel temp7 = new StrukturTabel();
temp7.setNoFaktur(c);
temp7.setKodeBarang(n);
temp7.setCount(gg);
transaksidanItemSesuai.add(temp7);
}
}
}
}
StrukturTabel s[] = new
StrukturTabel[transaksidanItemSesuai.size()];
for (int o = 0; o < transaksidanItemSesuai.size(); o++) {
jum++;
113
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
114
s[o] = new StrukturTabel();
s[o].setNoFaktur(transaksidanItemSesuai.get(o).getNoFaktur());
s[o].setKodeBarang(transaksidanItemSesuai.get(o).getKodeBarang());
s[o].setCount(transaksidanItemSesuai.get(o).getCount());
}
Larik.quickSortDesc(s);
System.out.println("Daftar Kode Barang Setelah Diurutkan: ");
String n = null;
int m = 0;
for (int o = 0; o < s.length; o++) {
StrukturTabel strukturTabel = s[o];
System.out.println((o + 1) + ". " + s[o].getKodeBarang()
+ " : " + s[o].getCount());
n = s[o].getKodeBarang();
m = s[o].getCount();
TreeNode temp77 = new TreeNode();
temp77.setTransaksi(c);
temp77.setItem(n);
tis.add(temp77);
}
transaksidanItemSesuai.clear();
System.out.println("\n");
}
}
}
return tis;
}
public static ArrayList<ArrayList<String>> DataFix(ArrayList<TreeNode>
transaksiSesuai, ArrayList<TreeNode> transaksidanItemSesuai) {
ArrayList<String> data1 = new ArrayList<String>();
ArrayList<ArrayList<String>> dataSet = new
ArrayList<ArrayList<String>>();
StrukturTabel ah = new StrukturTabel();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
String f = null;
int jum = 0;
String string = null;
for (int i = 0; i < transaksiSesuai.size(); i++) {
String c = transaksiSesuai.get(i).getTransaksi();
ArrayList<String> data = new ArrayList<String>();
for (int j = 0; j < transaksidanItemSesuai.size(); j++) {
String e = transaksidanItemSesuai.get(j).getTransaksi();
if (e.compareTo(c) == 0) {
f = transaksidanItemSesuai.get(j).getItem();
data.add(f);
}
}
dataSet.add(data);
}
System.out.println(dataSet);
return dataSet;
}
Control_Algorithm() {
}
public static TreeNode FPTree(ArrayList<ArrayList<String>> datafix,
ArrayList<TreeNode> cek) {
TreeNode root = new TreeNode();
TreeNode curNode = root;
List<TreeNode> anak = curNode.getChildNodes();
for (int i = 0; i < datafix.size(); i++) {
curNode = root;
ArrayList<String> items = datafix.get(i);
for (int j = 0; j < items.size(); j++) {
String item = items.get(j);
TreeNode temp = new TreeNode();
if (anak != null) {
for (int k = 0; k < anak.size(); k++) {
TreeNode itm = anak.get(k);
if (itm.getItem().compareTo(item) == 0) {
temp = itm;
}
}
}
115
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
116
temp = new TreeNode();
temp.setItem(item);
temp.setParentNode(curNode);
curNode.getChildNodes().add(temp);
addNode(temp, cek);
curNode = temp;
temp.tambahCount();
}
curNode = root;
}
return root;
}
public static TreeNode addNode(TreeNode tn, ArrayList<TreeNode> head) {
TreeNode curNode = null;
for (int l = 0; l < head.size(); l++) {
TreeNode node = head.get(l);
if (node.getItem().compareTo(tn.getItem()) == 0) {
curNode = node;
while (curNode.getNextNode() != null) {
curNode = curNode.getNextNode();
}
curNode.setNextNode(tn);
}
}
return curNode;
}
}
3. Implementasi Kelas TreeNode
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package CONTROLLER;
import java.util.ArrayList;
import java.util.List;
/**
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
*
* @author elsa
*/
public class TreeNode {
private String item;
private String transaksi;
private String itemdalamtransaksi;
private TreeNode parentNode;
private List<TreeNode> childNodes = new ArrayList<TreeNode>();
private int counts;
private TreeNode nextNode;
public String getItem() {
return item;
}
public void setItem(String item) {
this.item = item;
}
public TreeNode getParentNode() {
return parentNode;
}
public void setParentNode(TreeNode parentNode) {
this.parentNode = parentNode;
}
public List<TreeNode> getChildNodes() {
return childNodes;
}
public void setChildNodes(List<TreeNode> childNodes) {
this.childNodes = childNodes;
}
public int getCounts() {
return counts;
}
117
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public void tambahCount() {
this.counts = counts + 1;
}
public TreeNode getNextNode() {
return nextNode;
}
public void setNextNode(TreeNode nextNode) {
this.nextNode = nextNode;
}
public void setCounts(int counts) {
this.counts = counts;
}
public String getTransaksi() {
return transaksi;
}
public void setTransaksi(String transaksi) {
this.transaksi = transaksi;
}
public String getItemdalamtransaksi() {
return itemdalamtransaksi;
}
public void setItemdalamtransaksi(String itemdalamtransaksi) {
this.itemdalamtransaksi = itemdalamtransaksi;
}
}
4. Implementasi Kelas LihatHasilAlgoTabelModel
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
118
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
*/
package MODEL;
import MODEL.ambilHasil;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/**
*
* @author elsa
*/
public class LihatHasilAlgoTabelModel extends AbstractTableModel {
private List<ambilHasil> rule = new ArrayList<ambilHasil>();
public LihatHasilAlgoTabelModel() {
}
public void delete(int row) {
rule.remove(row);
fireTableRowsDeleted(row, row);
}
public void update(int row, ambilHasil s) {
rule.set(row, s);
fireTableRowsUpdated(row, row);
}
public void add(ambilHasil Add) {
rule.add(Add);
fireTableRowsInserted(getRowCount() - 1, getColumnCount() - 1);
}
public int getRowCount() {
return rule.size();
}
public int getColumnCount() {
return 5;
}
public Object getValueAt(int rowIndex, int columnIndex) {
ambilHasil s = rule.get(rowIndex);
switch (columnIndex) {
case 0:
119
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
return s.getCandidate1();
case 1:
return s.getItem1();
case 2:
return s.getCount1();
case 3:
return s.getConfidence();
case 4:
return s.getLiftRatio();
default:
return "";
}
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "PRODUK 1";
case 1:
return "PRODUK 2";
case 2:
return "SUPPORT";
case 3:
return "CONFIDENCE";
case 4:
return "LIFT RATIO";
default:
return "";
}
}
}
5. Implementasi Kelas ambilHasil
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package MODEL;
import java.util.ArrayList;
/**
*
120
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
* @author elsa
*/
public class ambilHasil {
ArrayList<String> candidate;
ArrayList<String> item;
ArrayList<String> count;
private String candidate1;
private String item1;
private String count1;
private String confidence;
private String liftRatio;
public ArrayList<String> getCandidate() {
return candidate;
}
public void setCandidate(ArrayList<String> candidate) {
this.candidate = candidate;
}
public ArrayList<String> getItem() {
return item;
}
public void setItem(ArrayList<String> item) {
this.item = item;
}
public ArrayList<String> getCount() {
return count;
}
public void setCount(ArrayList<String> count) {
this.count = count;
}
public String getCandidate1() {
return candidate1;
}
public void setCandidate1(String candidate1) {
this.candidate1 = candidate1;
}
121
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public String getItem1() {
return item1;
}
public void setItem1(String item1) {
this.item1 = item1;
}
public String getCount1() {
return count1;
}
public void setCount1(String count1) {
this.count1 = count1;
}
public String getConfidence() {
return confidence;
}
public void setConfidence(String confidence) {
this.confidence = confidence;
}
public String getLiftRatio() {
return liftRatio;
}
public void setLiftRatio(String liftRatio) {
this.liftRatio = liftRatio;
}
}
6. Implementasi Kelas Comparable
package TOOLS;
public interface Comparable {
public int compareTo(Object o);
}
122
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
123
7. Implementasi Kelas Konn
package TOOLS;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class Konn {
private String namaDB;
private String url;
private String username;
private String password;
private Connection connection = null;
public Konn(String namaDB, String url, String username, String password) {
getClose();
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(Konn.class.getName()).log(Level.SEVERE, null, ex);
}
try {
connection = DriverManager.getConnection(url + "/" + namaDB,
username, password);
System.out.println("Koneksi berhasil");
} catch (SQLException ex) {
System.out.println("Koneksi gagal");
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
124
public boolean isConnected() {
if (connection != null) {
return true;
} else {
return false;
}
}
public boolean getClose() {
if (isConnected()) {
try {
connection.close();
connection = null;
} catch (SQLException ex) {
ex.printStackTrace();
//Logger.getLogger(Konn.class.getName()).log(Level.SEVERE, null,
ex);
}
return true;
} else {
return false;
}
}
public String getNamaDB() {
return namaDB;
}
public void setNamaDB(String namaDB) {
this.namaDB = namaDB;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getConn() {
return connection;
}
public void setConn(Connection connection) {
this.connection = connection;
}
}
8. Implementasi Kelas Larik
package TOOLS;
public class Larik {
// Descending
public static void quickSortHelperDesc(Object[] x, int indeksAwal, int
indeksAkhir) {
if (indeksAwal < indeksAkhir) {
int i = indeksAwal + 1;
int j = indeksAkhir;
while (i <= indeksAkhir && (((Comparable)
x[i]).compareTo(x[indeksAwal])) >= 0) {
i++;
}
while (j > indeksAwal && (((Comparable)
x[j]).compareTo(x[indeksAwal])) < 0) {
j--;
}
while (i < j) {
swap1(x, i, j);
125
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
while (i <= indeksAkhir && (((Comparable)
x[i]).compareTo(x[indeksAwal])) >= 0) {
i++;
}
while (j > indeksAwal && (((Comparable)
x[j]).compareTo(x[indeksAwal])) < 0) {
j--;
}
}
swap1(x, indeksAwal, j);
quickSortHelperDesc(x, indeksAwal, j - 1);
quickSortHelperDesc(x, j + 1, indeksAkhir);
}
}
private static void swap1(Object[] x, int i, int j) {
Object y = x[i];
x[i] = x[j];
x[j] = y;
}
public static void quickSortDesc(Object[] x) {
quickSortHelperDesc(x, 0, x.length - 1);
}
}
9. Implementasi Kelas StrukturTabel
package TOOLS;
public class StrukturTabel implements Comparable {
private String noFaktur;
private String kodeBarang;
private String namaBarang;
private String split;
private int count;
private String tnpdup;
private String transaksiSesuaitpDuplikasi;
public String getNoFaktur() {
return noFaktur;
}
126
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public void setNoFaktur(String noFaktur) {
this.noFaktur = noFaktur;
}
public String getKodeBarang() {
return kodeBarang;
}
public void setKodeBarang(String kodeBarang) {
this.kodeBarang = kodeBarang;
}
public String getNamaBarang() {
return namaBarang;
}
public void setNamaBarang(String namaBarang) {
this.namaBarang = namaBarang;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getSplit() {
return split;
}
public void setSplit(String split) {
this.split = split;
}
//
public int compareTo(Object o) {
if (count == ((StrukturTabel) o).getCount()) {
return 0;
} else if (count > ((StrukturTabel) o).getCount()) {
return 1;
}
return -1;
}
//
127
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
//
//
//
128
/**
* @return the tnpdup
*/
public String getTnpdup() {
return tnpdup;
}
/**
* @param tnpdup the tnpdup to set
*/
public void setTnpdup(String tnpdup) {
this.tnpdup = tnpdup;
}
public String getTransaksiSesuaitpDuplikasi() {
return transaksiSesuaitpDuplikasi;
}
public void setTransaksiSesuaitpDuplikasi(String transaksiSesuaitpDuplikasi) {
this.transaksiSesuaitpDuplikasi = transaksiSesuaitpDuplikasi;
}
}
10. Implementasi Kelas Halaman_Open
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package VIEW;
import javax.swing.JOptionPane;
import CONTROLLER.Control_Database;
import CONTROLLER.Control_Algorithm;
import CONTROLLER.TreeNode;
import MODEL.LihatHasilAlgoTabelModel;
import MODEL.ambilHasil;
import TOOLS.Konn;
import TOOLS.Larik;
import TOOLS.StrukturTabel;
import com.lowagie.text.SplitCharacter;
import java.awt.Component;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
/**
*
* @author elsa
*/
public class Halaman_Open extends javax.swing.JFrame {
ArrayList<TreeNode> jmlhItem = new ArrayList<TreeNode>();
ArrayList<StrukturTabel> prepocessing = new ArrayList<>();
ArrayList<ArrayList<String>> countItem = new ArrayList<>();
ArrayList<TreeNode> ambilTransaksi = new ArrayList<>();
ArrayList<ambilHasil> candidate = new ArrayList<>();
LihatHasilAlgoTabelModel model;
ambilHasil ah = new ambilHasil();
ArrayList<String> aa = new ArrayList<String>();
ArrayList<String> ab = new ArrayList<String>();
ArrayList<String> ac = new ArrayList<String>();
/**
* Creates new form Halaman_Open
*/
129
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public Halaman_Open() {
initComponents();
txtPassword.setText("root");
txtUsername.setText("root");
txtUrl.setText("jdbc:mysql://localhost");
txtNamaDatabase.setText("distribusi_sakola7sept");
model = new LihatHasilAlgoTabelModel();
tampilhasil();
jTabbedPane1.setEnabledAt(0, true);
jTabbedPane1.setEnabledAt(1, false);
jTabbedPane1.setEnabledAt(2, false);
btnOkePilihanTabel.setEnabled(false);
btnPrepocessing.setEnabled(false);
}
//Method Penyetaraan mengambil referensi dari :
//stackoverflow.com/questions/24242657/one-java-file-use-another-java-file//compile-error
public void Penyetaraan(ArrayList<ArrayList<String>> datafix,
ArrayList<String> kumpulanRule, int a) {
ArrayList<TreeNode> head = Control_Algorithm.Count(datafix, a);
TreeNode root = Control_Algorithm.FPTree(datafix, head);
Iterator anak = root.getChildNodes().iterator();
while (anak.hasNext() != true) {
return;
}
if (kumpulanRule != null) {
for (int l = 0; l < head.size(); l++) {
TreeNode treenode = head.get(l);
for (String s : kumpulanRule) {
aa.add(s);
ah.setCandidate(aa);
System.out.print(s + " ");
}
130
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ab.add(treenode.getItem());
ah.setItem(ab);
int count = treenode.getCounts();
String cont = String.valueOf(count);
ac.add(cont);
ah.setCount(ac);
candidate.add(ah);
System.out.println(treenode.getItem() + ":" + treenode.getCounts());
}
}
for (int i = 0; i < head.size(); i++) {
TreeNode hd = head.get(i);
ArrayList<String> rule = new ArrayList<String>();
rule.add(hd.getItem());
if (kumpulanRule != null) {
rule.addAll(kumpulanRule);
}
//
Menemukan conditional pattern base
ArrayList<ArrayList<String>> datafixbaru = new
ArrayList<ArrayList<String>>();
TreeNode curNode = hd.getNextNode();
while (curNode != null) {
int counter = curNode.getCounts();
ArrayList<String> parentNodes = new ArrayList<String>();
TreeNode parent = curNode;
while ((parent = parent.getParentNode()).getItem() != null) {
parentNodes.add(parent.getItem());
}
for (int k = counter; k > 0; k--) {
datafixbaru.add(parentNodes);
}
curNode = curNode.getNextNode();
}
Penyetaraan(datafixbaru, rule, a);
}
}
public String cariNamaBrg(String kode) {
131
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
132
String namaBarang = null;
String nb = null;
try {
String tabel = comboPilihTabel.getSelectedItem().toString();
Control_Database kn = new Control_Database();
String nama = txtNamaDatabase.getText();
String url = txtUrl.getText();
String user = txtUsername.getText();
String pwd = txtPassword.getText();
Konn conn = new Konn(nama, url, user, pwd);
conn.setNamaDB(nama);
conn.setUrl(url);
conn.setUsername(user);
conn.setPassword(pwd);
conn.getConn();
Connection co = conn.getConn();
namaBarang = kn.cariNamaBarangg(co, kode, tabel);
} catch (SQLException ex) {
Logger.getLogger(Halaman_Open.class.getName()).log(Level.SEVERE,
null, ex);
}
return namaBarang;
}
public String cariNamaKategori(String kode) {
String namaBarang = null;
String nb = null;
try {
String tabel = comboPilihTabel.getSelectedItem().toString();
Control_Database kn = new Control_Database();
String nama = txtNamaDatabase.getText();
String url = txtUrl.getText();
String user = txtUsername.getText();
String pwd = txtPassword.getText();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
133
Konn conn = new Konn(nama, url, user, pwd);
conn.setNamaDB(nama);
conn.setUrl(url);
conn.setUsername(user);
conn.setPassword(pwd);
conn.getConn();
Connection co = conn.getConn();
namaBarang = kn.cariNamaKategori(co, kode, tabel);
} catch (SQLException ex) {
Logger.getLogger(Halaman_Open.class.getName()).log(Level.SEVERE,
null, ex);
}
return namaBarang;
}
public int cariCount(String kode) {
int count = 0;
jmlhItem.size();
for (int i = 0; i < jmlhItem.size(); i++) {
String a = jmlhItem.get(i).getItem();
if (a.compareTo(kode) == 0) {
count = jmlhItem.get(i).getCounts();
}
}
System.out.println(kode + " " + count);
return count;
}
public void hapus() {
for (int i = 0; i < model.getColumnCount(); i++) {
for (int j = 0; j < model.getRowCount(); j++) {
model.delete(j);
ah.getCandidate().remove(j);
ah.getCount().remove(j);
ah.getItem().remove(j);
}
}
TabelHasilProses.setModel(model);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
TableModel tb1 = TabelHasilProses.getModel();
System.out.println("Jumlah row : " + model.getRowCount());
}
public void tampilhasil() {
hapus();
for (int j = 0; j < candidate.size(); j++) {
String key = ah.getCandidate().get(j);
if (key.length() == 3) {
ambilHasil hasilProses = new ambilHasil();
String kode1 = ah.getCandidate().get(j);
String nama1 = cariNamaKategori(kode1);
hasilProses.setCandidate1(nama1 + " (" + kode1 + ")");
int count = cariCount(kode1);
String kode2 = ah.getItem().get(j);
String nama2 = cariNamaKategori(kode2);
hasilProses.setItem1(nama2 + " (" + ah.getItem().get(j) + ")");
String supp = ah.getCount().get(j);
double supp2 = (Double.parseDouble(supp) / 100);
System.out.println(supp2);
String supp3 = String.valueOf(supp2);
hasilProses.setCount1(supp3);
System.out.println(count);
double confiden = (Double.parseDouble(supp) / count);
System.out.println(confiden);
DecimalFormat df = new DecimalFormat("#.###");
double df2 = Double.valueOf(df.format(confiden));
System.out.println("nilai confiden : " + df2);
String conf1 = String.valueOf(df2);
hasilProses.setConfidence(conf1);
int count2 = cariCount(kode2);
134
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
String jt = lblJmlhDataPrepocessing.getText();
System.out.println("jumlh transaksi : " + jt);
double liftRatio = ((df2 / (count2 / Double.parseDouble(jt))));
System.out.println(confiden);
DecimalFormat df1 = new DecimalFormat("#.#####");
double df3 = Double.valueOf(df1.format(liftRatio));
System.out.println("nilai left ratio : " + df3);
String sc1 = String.valueOf(df3);
hasilProses.setLiftRatio(sc1);
model.add(hasilProses);
} else {
ambilHasil hasilProses = new ambilHasil();
String kode1 = ah.getCandidate().get(j);
String nama1 = cariNamaBrg(kode1);
hasilProses.setCandidate1(nama1 + " (" + kode1 + ")");
int count = cariCount(kode1);
String kode2 = ah.getItem().get(j);
String nama2 = cariNamaBrg(kode2);
hasilProses.setItem1(nama2 + " (" + ah.getItem().get(j) + ")");
String supp = ah.getCount().get(j);
double supp2 = (Double.parseDouble(supp) / 100);
System.out.println(supp2);
String supp3 = String.valueOf(supp2);
hasilProses.setCount1(supp3);
System.out.println(count);
double confiden = (Double.parseDouble(supp) / count);
System.out.println(confiden);
DecimalFormat df = new DecimalFormat("#.###");
double df2 = Double.valueOf(df.format(confiden));
System.out.println("nilai confiden : " + df2);
String conf1 = String.valueOf(df2);
hasilProses.setConfidence(conf1);
135
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
int count2 = cariCount(kode2);
String jt = lblJmlhDataPrepocessing.getText();
System.out.println("jumlh transaksi : " + jt);
double liftRatio = ((df2 / (count2 / Double.parseDouble(jt))));
System.out.println(confiden);
DecimalFormat df1 = new DecimalFormat("#.#####");
double df3 = Double.valueOf(df1.format(liftRatio));
System.out.println("nilai lift ratio : " + df3);
String sc1 = String.valueOf(df3);
hasilProses.setLiftRatio(sc1);
model.add(hasilProses);
}
}
TabelHasilProses.setModel(model);
TableModel tb1 = TabelHasilProses.getModel();
}
public void pilihDB(Konn kn, String table) {
try {
Control_Database cd = new Control_Database();
ResultSet rs;
rs = cd.ambildatatabel(kn.getConn(), table);
ResultSetMetaData rsmd = rs.getMetaData();
int coloumCount = rsmd.getColumnCount();
System.out.println(coloumCount);
Vector headers = new Vector();
Vector data = new Vector();
headers.clear();
for (int i = 1; i <= coloumCount; i++) {
headers.add(rsmd.getColumnName(i));
}
data.clear();
int jum = 0;
while (rs.next()) {
Vector d = new Vector();
136
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
for (int i = 1; i <= coloumCount; i++) {
d.add(rs.getString(i));
}
d.add("\n");
data.add(d);
jum++;
}
System.out.println(jum);
String a = Integer.toString(jum);
lblJmlhData2.setText(a);
DefaultTableModel model = new DefaultTableModel(data, headers);
jTable2.setModel(model);
jTable2.setAutoCreateRowSorter(true);
} catch (SQLException ex) {
Logger.getLogger(Halaman_Open.class
.getName()).log(Level.SEVERE, null, ex);
}
}
public ArrayList<StrukturTabel> pilihSumberData(Konn kn, String table,
String a, String b) {
ArrayList<StrukturTabel> o = new ArrayList<>();
try {
String z = txtIndeknoFaktur.getText();
System.out.println(txtIndeknoFaktur.getText());
int c = Integer.parseInt(z);
String x = txtIndekKode.getText();
System.out.println(txtIndekKode.getText());
int d = Integer.parseInt(x);
TableModel tb = jTable2.getModel();
tb.getColumnName(c);
String k = tb.getColumnName(c);
tb.getColumnName(d);
String l = tb.getColumnName(d);
Control_Database cd = new Control_Database();
ResultSet rs;
ResultSet rs1;
rs = cd.prepocessing(kn.getConn(), table, k, l);
137
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
rs1 = cd.prepocessing(kn.getConn(), table, k, l);
ResultSetMetaData rsmd = rs.getMetaData();
int coloumCount = rsmd.getColumnCount();
System.out.println(coloumCount);
Vector headers = new Vector();
Vector data = new Vector();
headers.clear();
for (int i = 1; i <= coloumCount; i++) {
headers.add(rsmd.getColumnName(i));
//
}
data.clear();
int jum = 0;
while (rs.next()) {
Vector e = new Vector();
for (int i = 1; i <= coloumCount; i++) {
e.add(rs.getString(i));
}
e.add("\n");
data.add(e);
jum++;
}
System.out.println(jum);
System.out.println();
String f = Integer.toString(jum);
lblJmlhDataPrepocessing.setText(f);
lblJmlhDataPrepocessing1.setText(f);
lblJmlhDataPrepocessing2.setText(f);
DefaultTableModel model = new DefaultTableModel(data, headers);
TableDataHasilPrepocessing.setModel(model);
TableDataHasilPrepocessing.setAutoCreateRowSorter(true);
TableModel tb1 = TableDataHasilPrepocessing.getModel();
//
System.out.println(tb1.getRowCount());
while (rs1.next()) {
StrukturTabel temp = new StrukturTabel();
temp.setNoFaktur(rs1.getString(1));
temp.setKodeBarang(rs1.getString(2));
o.add(temp);
}
} catch (SQLException ex) {
138
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
139
Logger.getLogger(Halaman_Open.class
.getName()).log(Level.SEVERE, null, ex);
}
//
System.out.println("size dari o : " + o.size());
return o;
}
public int cariJumlah(ArrayList<StrukturTabel> b) {
List<String> arr = new ArrayList<String>();
ArrayList<TreeNode> count = new ArrayList<>();
HashSet<String> hash = new HashSet<>();
String string = null;
for (int i = 0; i < b.size(); i++) {
String items = b.get(i).getKodeBarang();
String z[] = items.split(",");
for (int k = 0; k < z.length; k++) {
String string1 = z[k];
hash.add(string1);
arr.add(string1);
}
}
Iterator iterasi = hash.iterator();
while (iterasi.hasNext()) {
String unik = (String) iterasi.next();
System.out.println(unik);
//
}
Set<String> uniqueset = new HashSet<String>(arr);
int jum = 0;
for (String temp : uniqueset) {
System.out.println(temp + " : " + Collections.frequency(arr, temp));
jum++;
}
return jum;
}
private void btnCekKoneksiDBActionPerformed(java.awt.event.ActionEvent
evt) {
String nama = txtNamaDatabase.getText();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
140
String url = txtUrl.getText();
String user = txtUsername.getText();
String pwd = txtPassword.getText();
Konn conn = new Konn(nama, url, user, pwd);
conn.setNamaDB(nama);
conn.setUrl(url);
conn.setUsername(user);
conn.setPassword(pwd);
conn.getConn();
if (conn.getConn() != null) {
JOptionPane.showMessageDialog(null, "Koneksi Berhasil");
btnOkePilihanTabel.setEnabled(true);
Connection co = conn.getConn();
Control_Database cd = new Control_Database();
ResultSet a = null;
try {
a = cd.ambiltable(co);
} catch (SQLException ex) {
Logger.getLogger(Halaman_Open.class
.getName()).log(Level.SEVERE, null, ex);
}
try {
while (a.next()) {
String namaa = a.getString(1);
comboPilihTabel.addItem(namaa);
}
} catch (SQLException ex) {
Logger.getLogger(Halaman_Open.class
.getName()).log(Level.SEVERE, null, ex);
}
} else {
JOptionPane.showMessageDialog(null, "Koneksi gagal");
}
// TODO add your handling code here:
}
private void btnBatalKoneksiDBActionPerformed(java.awt.event.ActionEvent
evt) {
txtNamaDatabase.setText("");
txtUrl.setText("");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
141
txtUsername.setText("");
txtPassword.setText("");
// TODO add your handling code here:
}
private void txtPasswordActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnOkePilihanTabelActionPerformed(java.awt.event.ActionEvent
evt) {
String nama = txtNamaDatabase.getText();
String url = txtUrl.getText();
String user = txtUsername.getText();
String pwd = txtPassword.getText();
String namatable = comboPilihTabel.getSelectedItem().toString();
Konn conn = new Konn(nama, url, user, pwd);
conn.setNamaDB(nama);
conn.setUrl(url);
conn.setUsername(user);
conn.setPassword(pwd);
conn.getConn();
Connection co = conn.getConn();
Control_Database cd = new Control_Database();
pilihDB(conn, namatable);
// TODO add your handling code here:
}
private void txtIndekKodeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnPrepocessingActionPerformed(java.awt.event.ActionEvent evt)
{
jTabbedPane1.setSelectedIndex(1);
jTabbedPane1.setEnabledAt(1, true);
jTabbedPane1.setEnabledAt(2, false);
String nama = txtNamaDatabase.getText();
String url = txtUrl.getText();
String user = txtUsername.getText();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
142
String pwd = txtPassword.getText();
String namatable = comboPilihTabel.getSelectedItem().toString();
String a = txtIndeknoFaktur.getText();
String b = txtIndekKode.getText();
Konn conn = new Konn(nama, url, user, pwd);
conn.setNamaDB(nama);
conn.setUrl(url);
conn.setUsername(user);
conn.setPassword(pwd);
conn.getConn();
Connection co = conn.getConn();
Control_Database cd = new Control_Database();
prepocessing = pilihSumberData(conn, namatable, a, b);
System.out.println("PREPOCESIING");
for (int i = 0; i < prepocessing.size(); i++) {
System.out.println(prepocessing.get(i).getNoFaktur() + " " +
prepocessing.get(i).getKodeBarang());
}
countItem = Control_Algorithm.HasilPrepocessing(prepocessing);
int jumlahitem = cariJumlah(prepocessing);
String c = Integer.toString(jumlahitem);
lblJmlhItemPrepocessing1.setText(c);
//
lblItemHsilProses2.setText(c);
//
//
PREPOCESSING.setEnabled(true);
// TODO add your handling code here:
}
private void txtMin_suppActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtMin_suppKeyPressed(java.awt.event.KeyEvent evt) {
}
private void txtMin_suppKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
143
}
private void btnOkMin_SuppActionPerformed(java.awt.event.ActionEvent evt)
{
if (txtMin_supp.getText() == null) {
JOptionPane.showMessageDialog(null, "Minimum Support Harus Diisi");
} else {
String a = txtMin_supp.getText();
System.out.println(a);
String c = lblJmlhDataPrepocessing1.getText();
double b = Double.parseDouble(a);
int d = Integer.parseInt(c);
double rumus = ((b / 100) * d);
//
int g = Integer
DecimalFormat df = new DecimalFormat("#");
double df2 = Double.valueOf(df.format(rumus));
//
System.out.println("Jumlah Kemunculan : " + rumus);
int df3 = (int) df2;
String e = Integer.toString(df3);
lblJmlhItemMuncul.setText(e);
}
// TODO add your handling code here:
}
private void btnProsesActionPerformed(java.awt.event.ActionEvent evt) {
long awal = System.currentTimeMillis();
//MIN_SUPPORT
String minsup = txtMin_supp.getText();
System.out.println("minsupp :" + minsup);
String c = lblJmlhDataPrepocessing1.getText();
String a = lblJmlhItemMuncul.getText();
int b = Integer.parseInt(a);
lblMinSuppHsilProses2.setText(minsup);
lblJmlhDtTransHsilProses2.setText(c);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
144
jmlhItem = Control_Algorithm.Count(countItem, b);
System.out.println("Jumlah Item : " + countItem.size());
int jumlahitem = 0;
for (int i = 0; i < jmlhItem.size(); i++) {
String x = jmlhItem.get(i).getItem();
int y = jmlhItem.get(i).getCounts();
System.out.println("kode : " + x + "count : " + y);
jumlahitem++;
}
ambilTransaksi = Control_Algorithm.TransaksiYgSesuai(prepocessing,
jmlhItem);
System.out.println("Transaksi yg Sesuai : " + ambilTransaksi.size());
ArrayList<TreeNode> TransaksidanItemSesuai =
Control_Algorithm.TransaksidanItemYangSesuai(prepocessing, ambilTransaksi,
jmlhItem, b);
System.out.println("Transaksi dan Item Sesuai : " +
TransaksidanItemSesuai.size());
//
System.out.println(TransaksidanItemSesuai.size());
for (int i = 0; i < TransaksidanItemSesuai.size(); i++) {
String y = TransaksidanItemSesuai.get(i).getItem();
}
ArrayList<ArrayList<String>> datafix =
Control_Algorithm.DataFix(ambilTransaksi, TransaksidanItemSesuai);
Penyetaraan(datafix, null, b);
tampilhasil();
long akhir = System.currentTimeMillis();
if (candidate.size() == 0) {
jTabbedPane1.setSelectedIndex(1);
JOptionPane.showMessageDialog(null, "Tidak Ada Rule yang
dihasilkan");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
145
} else {
jTabbedPane1.setSelectedIndex(2);
jTabbedPane1.setEnabledAt(2, true);
long waktu = (akhir - awal) / 1000;
String waktu_eksekusi = String.valueOf(waktu);
lblTingkatAkurasi.setText(waktu_eksekusi + " detik ");
String newline = "\n";
TextAreaHasil.setEditable(false);
TextAreaHasil.append("Hasil dari proses terdapat : " + candidate.size() + "
rule");
TextAreaHasil.append("\n" + newline);
TextAreaHasil.append("Minimum support yang digunakan : " +
lblMinSuppHsilProses2.getText() + " %");
TextAreaHasil.append("\n" + newline);
TextAreaHasil.append("Jumlah data transaksi : " + c);
TextAreaHasil.append("\n" + newline);
TextAreaHasil.append("Jumlah item barang : " +
lblItemHsilProses2.getText());
TextAreaHasil.append("\n" + newline);
TextAreaHasil.append("PENJELASAN RULE DALAM TABEL : ");
TextAreaHasil.append("\n" + newline);
for (int i = 0; i < candidate.size(); i++) {
ambilHasil hasil = new ambilHasil();
String kode1 = ah.getCandidate().get(i);
if (kode1.length() == 3) {
String nama1 = cariNamaKategori(kode1);
//
String produk1 = hasil.setCandidate1(nama1 + " ("
+ah.getCandidate().get(i)+")");
String kode2 = ah.getItem().get(i);
String nama2 = cariNamaKategori(kode2);
hasil.setItem1(nama2 + " (" + ah.getItem().get(i) + ")");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
146
hasil.setCount1(ah.getCount().get(i));
TextAreaHasil.append((i + 1) + ". " + "Jika konsumen membeli barang " +
nama1 + " (" + ah.getCandidate().get(i) + ")"
+ " maka akan membeli barang " + nama2 + " (" +
ah.getItem().get(i) + ")" + newline
+ "dengan support " + ah.getCount().get(i) + newline +
newline);
//
TextAreaHasil.setText("\n");
} else {
String nama1 = cariNamaBrg(kode1);
//
String produk1 = hasil.setCandidate1(nama1 + " ("
+ah.getCandidate().get(i)+")");
String kode2 = ah.getItem().get(i);
String nama2 = cariNamaBrg(kode2);
hasil.setItem1(nama2 + " (" + ah.getItem().get(i) + ")");
hasil.setCount1(ah.getCount().get(i));
TextAreaHasil.append((i + 1) + ". " + "Jika konsumen membeli barang " + nama1
+ " (" + ah.getCandidate().get(i) + ")"
+ " maka akan membeli barang " + nama2 + " (" +
ah.getItem().get(i) + ")" + newline
+ "dengan support " + ah.getCount().get(i) + newline +
newline);
//
TextAreaHasil.setText("\n");
}
}
}
}
private void btnKembaliActionPerformed(java.awt.event.ActionEvent evt) {
this.setVisible(false);
Halaman_Home a = new Halaman_Home();
a.setVisible(true);
}
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser fileOutput = new JFileChooser(new File("D:/"));
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
147
fileOutput.setFileFilter(new FileNameExtensionFilter("Microsoft
Excel(*.xls)", "xls"));
fileOutput.setFileFilter(new FileNameExtensionFilter("Microsoft
Word(*.doc)", "doc"));
fileOutput.setFileFilter(new FileNameExtensionFilter("Text
Documents(*.txt)", "xls"));
fileOutput.setFileFilter(new FileNameExtensionFilter("PDF(*.pdf)", "pdf"));
FileOutputStream outputStream;
int pilihanOutput = fileOutput.showSaveDialog(this);
if (pilihanOutput == JFileChooser.APPROVE_OPTION) {
String namaFileOutput = fileOutput.getSelectedFile().getPath();
String tipeFileOutput = fileOutput.getFileFilter().getDescription();
if (tipeFileOutput.equals("Microsoft Excel(*.xls)")) {
File fileHasil = new File(namaFileOutput + ".xls");
try {
outputStream = new FileOutputStream(fileHasil);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
return;
}
try {
TableModel tabelModel = TabelHasilProses.getModel();
FileWriter outputExcel = new FileWriter(fileHasil);
for (int i = 0; i < tabelModel.getColumnCount(); i++) {
outputExcel.write(tabelModel.getColumnName(i) + "\t");
}
outputExcel.write("\n");
for (int i = 0; i < tabelModel.getRowCount(); i++) {
for (int j = 0; j < tabelModel.getColumnCount(); j++) {
outputExcel.write(tabelModel.getValueAt(i, j) + "\t");
}
outputExcel.write("\n");
}
outputExcel.close();
JOptionPane.showMessageDialog(null, "Penyimpanan Berhasil",
"Pembeitahuan", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ie) {
JOptionPane.showMessageDialog(null, "Penyimpanan Gagal",
"Pemberitahuan", JOptionPane.INFORMATION_MESSAGE);
}
} else if (tipeFileOutput.equals("Microsoft Word(*.doc)")) {
File fileHasil = new File(namaFileOutput + ".doc");
try {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
outputStream = new FileOutputStream(fileHasil);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
return;
}
try {
TableModel tabelModel = TabelHasilProses.getModel();
BufferedWriter outputWord = new BufferedWriter(new
FileWriter(fileHasil));
for (int i = 0; i < tabelModel.getColumnCount(); i++) {
outputWord.write(tabelModel.getColumnName(i) + "\t");
}
outputWord.write("\n");
for (int i = 0; i < tabelModel.getRowCount(); i++) {
for (int j = 0; j < tabelModel.getColumnCount(); j++) {
outputWord.write(tabelModel.getValueAt(i, j) + "\t");
}
outputWord.write("\n");
}
outputWord.close();;
JOptionPane.showMessageDialog(null, "Penyimpanan Berhasil",
"Pembeitahuan", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ie) {
JOptionPane.showMessageDialog(null, "Penyimpanan Gagal",
"Pemberitahuan", JOptionPane.INFORMATION_MESSAGE);
}
} else if (tipeFileOutput.equals("Text Documents(*.txt)")) {
File fileHasil = new File(namaFileOutput + ".txt");
try {
outputStream = new FileOutputStream(fileHasil);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
return;
}
try {
TableModel tabelModel = TabelHasilProses.getModel();
FileWriter outputtxt = new FileWriter(fileHasil);
for (int i = 0; i < tabelModel.getColumnCount(); i++) {
outputtxt.write(tabelModel.getColumnName(i) + "\t\t\t\t");
}
outputtxt.write("\n");
for (int i = 0; i < tabelModel.getRowCount(); i++) {
for (int j = 0; j < tabelModel.getColumnCount(); j++) {
outputtxt.write(tabelModel.getValueAt(i, j) + "\t\t\t\t");
}
148
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
149
outputtxt.write("\n");
}
outputtxt.close();
JOptionPane.showMessageDialog(null, "Penyimpanan Berhasil",
"Pembeitahuan", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ie) {
JOptionPane.showMessageDialog(null, "Penyimpanan Gagal",
"Pemberitahuan", JOptionPane.INFORMATION_MESSAGE);
}
} else if (tipeFileOutput.equals("PDF(*.pdf)")) {
File fileHasil = new File(namaFileOutput + ".pdf");
try {
outputStream = new FileOutputStream(fileHasil);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
return;
}
try {
TableModel tabelModel = TabelHasilProses.getModel();
FileWriter outputpdf = new FileWriter(fileHasil);
for (int i = 0; i < tabelModel.getColumnCount(); i++) {
outputpdf.write(tabelModel.getColumnName(i) + "\t\t\t\t");
}
outputpdf.write("\n");
for (int i = 0; i < tabelModel.getRowCount(); i++) {
for (int j = 0; j < tabelModel.getColumnCount(); j++) {
outputpdf.write(tabelModel.getValueAt(i, j) + "\t\t\t\t");
}
outputpdf.write("\n");
}
outputpdf.close();
JOptionPane.showMessageDialog(null, "Penyimpanan Berhasil",
"Pembeitahuan", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ie) {
JOptionPane.showMessageDialog(null, "Penyimpanan Gagal",
"Pemberitahuan", JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
private void btnKembali1ActionPerformed(java.awt.event.ActionEvent evt) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
150
jTabbedPane1.setSelectedIndex(1);
TextAreaHasil.setText("");
hapus();
candidate.clear();
//
}
private void txtIndekKodeKeyPressed(java.awt.event.KeyEvent evt) {
btnPrepocessing.setEnabled(true);
}
11. Implementasi Kelas Halaman_Home
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package VIEW;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
*
* @author elsa
*/
public class Halaman_Home extends javax.swing.JFrame {
/**
* Creates new form Home
*/
public Halaman_Home() {
initComponents();
}
private void btnKeluarHomeActionPerformed(java.awt.event.ActionEvent evt)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
151
{
int result = JOptionPane.showConfirmDialog(null, "Apakah Anda yakin ingin
keluar ?");
switch (result) {
case JOptionPane.YES_OPTION:
this.dispose();
break;
case JOptionPane.NO_OPTION:
break;
case JOptionPane.CANCEL_OPTION:
break;
}
// TODO add your handling code here:
}
private void btnMasukHomeActionPerformed(java.awt.event.ActionEvent evt)
{
this.setVisible(false);
Halaman_Open frame = new Halaman_Open();
frame.setVisible(true);
// TODO add your handling code here:
}
12. Implementasi Kelas Halaman_Bantuan
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package VIEW;
import javax.swing.JFrame;
/**
*
* @author elsa
*/
public class Halaman_Bantuan extends javax.swing.JFrame {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
/**
* Creates new form Bantuan
*/
public Halaman_Bantuan() {
initComponents();
}
private void btnHomeBantuanActionPerformed(java.awt.event.ActionEvent
evt) {
Halaman_Home home = new Halaman_Home();
home.setVisible(true);
this.setVisible(false);
}
152
Download