Upload
ledang
View
227
Download
0
Embed Size (px)
Citation preview
i
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
HALAMAN PERSETUJUAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
HALAMAN PENGESAHAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
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 FP-
GROWTH “.
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
ANALISIS DAN PERANCANGAN SISTEM .......................................................................................... 20
3.1 Analisis Sistem ............................................................................................................................ 20
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
3.3 Perancangan Umum Sistem ........................................................................................................ 38
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
3.2 Perancangan Sistem .................................................................................................................... 40
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
No
Gambar Keterangan 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
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–
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
dari beberapa tahap diantaranya adalah selection, 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
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 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 visualisasi dan teknik
representasi pengetahuan yang digunakan untuk memberikan
gambaran pada pihak yang terkait.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 k-
nearest-neighbor classification.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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. ( )merupakan transaksi yang ada dalam
database dimana ( , -)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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Tabel 2.1 menjelaskan lima buah transaksi yang ada dalam database yaitu
* +. Sedangkan items bought menunjukkan item
yang ada 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
TID
Items
Bought
( Ordered) Frequent
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
3.1.1 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
Potongan harga dari suatu barang 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 No urut transaksi penjualan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
3.1.2 Tahap – Tahap KDD
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
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
3.1.2.4 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
3.1.2.5 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Nama Barang Kode Barang Frekuensi
1 TAS 034010450 243
2 SINGLET/KAOS CE 032010145 190
3 SINGLET/KAOS 032010135 99
4 KAOS CE 017010250 80
5 SINGLET/KAOS CE 032010185 77
6 KAOS CE 017010210 59
7 CD PAKET/3 PCS 035060100 52
8 SINGLET 032010105 49
9 SINGLET 032010115 43
10 TALI RAMBUT 31020013 42
11 BLAZER 005010420 39
12 KAOS CO 018010250 37
13 KAOS CE 017010300 32
14 TALI RAMBUT 31020011 31
15 BLAZER 005010430 31
16 BLAZER 005010410 29
17 JAM TANGAN 015010200 27
18 BAJU CE 1 001010400 27
19 BAJU CE 001010450 26
20 CARDIGAN 007010320 25
21 CELANA/BAJU CE 008020500 25
22 JAM TANGAN 015010230 25
23 JILBAB 016010160 24
24 CELANA CE PJG 008020400 24
25 JAKET 013010580 23
26 KAOS CO 018010300 23
27 JAM TANGAN 015010170 22
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
28 CELANA CE 008020430 21
29 BAJU CE 001010430 20
30 BAJU CE 001010480 19
31 BAJU CE 001010440 19
32 JILBAB 016010270 18
33 BLAZER 005010450 17
34 HANDUK S 012020289 17
35 JILBAB 016010210 16
36 SPT X109 030010440 16
37 BLAZER 005010490 15
38 BLAZER 005010460 15
39 SHALL 040010082 15
40 BAJU CE 001010415 15
41 JAKET CE 013010620 15
42 CARDIGAN 007010350 15
43 CARDIGAN 007010330 15
44 KEMEJA CO 021030750 14
45 TP MAKE UP 31270073 14
46 BAJU CE 001010350 14
47 KAOS CE 017010240 14
48 BAJU ANAK 038010300 14
49 BAJU CE 001010420 14
50 BAJU CE 001010410 14
51 JILBAB 016010220 13
52 TALI RAMBUT 31020024 13
53 KAOS CO 018010259 13
54 HANDUK B 012010465 13
55 TP MAKE UP 31270098 13
56 JAM TANGAN 015010240 12
57 BLAZER 005010470 12
58 SISIR 31380048 12
59 SPT ASB 030010260 12
60 ROMPI/BALERO 025010380 12
61 BAJU CE 001010470 12
62 BAJU CE 001010500 12
63 BAJU CE 001010390 12
64 SDL RMT 029010270 12
65 JAKET CE/BALERO JEANS 013010520 11
66 TP MAKE UP 31270110 11
67 TP MAKE UP 31270085 11
68 KAOS CE PJG 017030250 11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
69 SPT D09 030010290 11
70 SEPRAI DBL 031021023 11
71 ROMPI/BALERO 025010330 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 : SINGLET / KAOS CE(032010185)
Frequent: 77
Path Item Hasil Setelah di Setarakan
1
TAS(450) : 243, SINGLET/ KAOS
CE(145) : 13, SINGLET/ KAOS CE(185)
: 1 =
TAS(450) : 1, SINGLET/ KAOS CE(145) :
1, SINGLET/ KAOS CE(185) : 1
2
TAS(450) : 243, SINGLET/ KAOS
CE(185) : 1 =
TAS(450) : 4, SINGLET/ KAOS CE(185) :
4
3
SINGLET/ KAOS CE(145) : 177,
SINGLET/ KAOS CE(185) : 14 =
SINGLET/ KAOS CE(145) : 15, SINGLET/
KAOS CE(185) : 14
4
SINGLET/ KAOS CE(145) : 177,
SINGLET / KAOS CE(135) : 17 ,
SINGLET/ KAOS CE(185) : 1 =
SINGLET/ KAOS CE(145) : 1, SINGLET /
KAOS CE(135) : 1 , SINGLET/ KAOS
CE(185) : 1
5
SINGLET / KAOS CE(135) : 71,
SINGLET/ KAOS CE(185) : 2 =
SINGLET / KAOS CE(135) : 2 , SINGLET/
KAOS CE(185) : 2
6
KAOS CE(250) : 61 , SINGLET/ KAOS
CE(185) : 1 =
KAOS CE(250) : 1 , SINGLET/ KAOS
CE(185) : 1
7 SINGLET/ KAOS CE(185) : 56 = SINGLET/ KAOS CE(185) : 56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 : BLAZER (005010420)
Frequent : 39
Path Item Hasil Setelah di Setarakan
1
SINGLET/ KAOS CE(145) : 177 , KAOS CE(250) : 5 , KAOS CE(210) : 2 , SINGLET(115) : 1 , BLAZER(420) : 1 =
SINGLET/ KAOS CE(145) : 1 , KAOS CE(250) : 1 , KAOS CE(210) : 1 , SINGLET(115) : 1 , BLAZER(420) : 1
2 SINGLET/ KAOS CE(145) : 177 , SINGLET/ KAOS(135) : 1, BLAZER(420) : 1 =
SINGLET/ KAOS CE(145) : 1 , SINGLET/ KAOS(135) : 1, BLAZER(420) : 1
3 SINGLET/ KAOS CE(145) : 177 , BLAZER(420) : 7 = SINGLET/ KAOS CE(145) : 7, BLAZER(420) : 7
4 SINGLET/ KAOS CE(185) : 56, CD PAKET / 3 PCS (100) : 2 , BLAZER(420) : 1 =
SINGLET/ KAOS CE(185) : 1, CD PAKET / 3 PCS (100) : 1 , BLAZER(420) : 1
5 SINGLET/ KAOS CE(185) : 56, BLAZER(420) : 1 = SINGLET/ KAOS CE(185) : 1, BLAZER(420) : 1
6 SINGLET/ KAOS CE(145) : 177 , SINGLET/ KAOS CE(185) : 1, BLAZER(420) : 1 =
SINGLET/ KAOS CE(145) : 1 , SINGLET/ KAOS CE(185) : 1, BLAZER(420) : 1
7 SINGLET/ KAOS (135) : 71 , BLAZER(420) : 4 = SINGLET/ KAOS (135) : 4 , BLAZER(420) : 4
8 KAOS CE(250) : 61, SINGLET( 115) : 2 , BLAZER( 420) : 2 =
KAOS CE(250) : 2, SINGLET( 115) : 2 , BLAZER( 420) : 2
9 KAOS CE(250) : 61 , BLAZER(420) : 2 = KAOS CE(250) : 2 , BLAZER(420) : 2
10
SINGLET/ KAOS CE(145) : 177 , CD PAKET / 3 PCS (100) : 2 , SINGLET(115) : 1, BLAZER(420) : 1 =
SINGLET/ KAOS CE(145) : 1 , CD PAKET / 3 PCS (100) : 1 , SINGLET(115) : 1, BLAZER(420) : 1
11 CD PAKET / 3 PCS(100) : 30 , BLAZER( 420) : 1 = CD PAKET / 3 PCS(100) : 1 , BLAZER( 420) : 1
12 SINGLET(115) : 23, BLAZER( 420) : 1 = SINGLET(115) : 1 , BLAZER( 420) : 1
13 BLAZER(420) : 17 = BLAZER(420) : 17
KESIMPULAN :
SINGLET/ KAOS CE(145) : 11 , KAOS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
1
TAS(450) : 243, SINGLET/ KAOS
(135) : 11 =
TAS(450) : 11, SINGLET/ KAOS
(135) : 11
2
SINGLET/ KAOS CE(145) : 177,
SINGLET/ KAOS (135) : 17 =
SINGLET/ KAOS CE(145) : 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 : SINGLET/KAOS CE (032010145)
Frequent: 190
Path Item Hasil Setelah di Setarakan
1
TAS(450) : 243, SINGLET/ KAOS
CE(145) : 13 =
TAS(450) : 13, SINGLET/ KAOS
CE(145) : 13
2 SINGLET/ KAOS CE(145): 177 = SINGLET/ KAOS CE(145): 177
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 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) }
3.1.2.6 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 :
Gambar 3. 3Diagram Use Case
Cari database &
data transaksi
penjualan
Cari pola asosiasi
barang User
<<depends on>>
<<depends on>>
Simpan hasil pola
asosiasi barang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Tabel 3. 9 Deskripsi Use Case
Nomor Use Case Nama Use Case Deskripsi Use Case
001 Cari database dan data
transaksi
Use case ini menggambarkan
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
3.2.2 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
8. Klik OK
9. Tampil data dari tabel yang dimaksud
Alternatif
Alt 4.Jika database tidak cocok, Muncul
exception “ Koneksi gagal !”, kembali step
2
Conclusion : User dapat melanjutkan proses apabila
database terhubung.
Businesse Rules : -
Assumptions : -
3.2.2.2 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 Reaksi Sistem
1. Isikan indeks noFaktur dan kodeBarang
pada kolom yang tersedia
2. Klik tombol prepocessing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
3.2.2.3 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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.
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.
Pengguna Aplikasi pencarian
rulemenggunakan
algoritma FP-Growth
Min_supp
Rule hasil proses
penambangan data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
3.3.3 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
3.2 Perancangan Sistem
3.4.1 Diagram Aktivitas
3.4.1.1 Cari database dan data transaksi penjualan
Klik tombol Open
Tampil Halaman_Open
Klik Cek Koneksi
Valid ?
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
SISTEM USER
YA
TIDAK
Pilih koeksi , Isikan nama
database, usernme ,
password dan url
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Gambar 3. 5 Diagram Aktivitas Cari database dan data transaksi penjualan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
3.4.1.2 Cari pola asosiasi barang
Isikan indeks noFaktur dan
kodeBarng pada kolom yang
disediakan
Tampil Halaman
Prepocessing yang berisi data
hasil prepocessing, jumlah
transaksi dan jumlah jenis
barangIsikan minimum_support
Tampil banyaknya barang yang
muncul bedasarkan
minimum_support yng di
masukkan
Klik tombol proses
Tampil Halaman Hasil proses
yang berisi rule dari proses
sosiasi
SISTEMUSER
Klik tombol prepocessing
Klik tombol Konfirmasi
Gambar 3. 6 Diagram Aktivitas Cari pola asosiasi barang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
3.4.1.3 Simpan hasil pola asosiasi barang
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
SISTEM USER
Gambar 3. 7 Diagram Aktivitas Simpan hasil pola asosiasi barang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
3.4.2 Diagram Kelas Analisis
USER
Halaman_Home Halaman_Bantuan
Controller_Data
base
Halaman_Open
Halaman_Prepoce
ssing
Controller_Algo
rithmLarik Comparable
StrukturTabel
TreeNode
Halaman_HasilPro
ses
Contoller_Data
baseambilHasil
LihatHasilAlgoTabel
Model
Konn
Gambar 3. 8 Diagram Kelas Analisis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
3.4.3 Diagram Sequence
3.4.3.1 Cari database dan data transaksi penjualan
Gambar 3.9 Diagram Sequence cari data transaksi
USER
<<interface>>
Halaman_Home.java
Klik Masuk
password inputInput
username dan
password
password input Konn()
1
4
<<controller>>
ControlDatabase.java
<<model>>
Konn.java
2
3 ambilTabel() 5
Tampil
Halaman_Open
password input Isikan nama database,
username, password,
url
password input Hasil Connection
password input
6 7
Koneksi berhasil Tampil pilihan tabel 8
Pilih tabel transaksi 9
ambildatatabel() 10
11 Tabel valid
Tampil data transaksi
12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
3.4.3.2 Cari pola asosiasi barang
Gambar 3.10 Diagram Sequence cari pola asosiasi
USER
<<interface>>
HalamanAwal.java
Masukkan min_supp
& klik konfirmasi
password input
Hasilprepoce
ssig() count,
transaksisesu
ai, transaksi
dan item
sesuai
1
4
<<controller>>
Control
Algorithm.java
<<model>>
StrukturTabel
, TreeNode,
ambilHasil
2
3
5 Tampil banyak
kemunculan
password input Klik proses
password input
Hasil asosiasi
password input
Tampil
Halaman_HasilProse
s
Tabel hasil
asosiasi
Set
transaksi
sesuai,
kode, count
<<Controller
>>
Larik
<<controller>
>
Control
Algorithm.ja
va
Larik
password input Data urut
password input
Datafix(),tree(),
addNode(),
penyetaraan()
Buat tree ,
penyetaraan
password input
cariNama
Kode()
password
input
6
7
8
9 10
11 12
13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
3.4.3.3 Simpan hasil pola asosiasi
Gambar 3.11 Diagram Sequence Cetak hasil asosiasi
USER
<<interface>>
Halaman_HasilProses.java
Tekan Tombol Save
password input
1
Pilih format penyimpanan dan
klik tombol simpan
Tampil Save dialog
2
3
Konfirmasi pentimpanan
Simpan data
4
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
3.4.4 Diagram Kelas Desain
Gambar 3.12 Diagram Kelas Desain
<<view>> Halaman_Home
<<view>> Halaman_Open
<<view>> Halaman_Bantuan
<<model>> Konn
<<controller>> Controller_Database
<<view>> Halaman_Prepo
cesing
<<controller>> Contoller_Algorithm
<<controller>> Larik
<<model>> Comparable
<<model>> StrukturTabe
l
<<model>> TreeNode
<<view>> Halaman_Prepo
cesing
<<controller>> Contoller_Database
<<model>> ambilHasil
<<model>> LihatHasilAlgoTableModel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
3.4.5 Rincian Algoritma Per Method
3.4.5.1 Algoritma Kelas Control Database
Tabel 3.14 Algoritma Kelas Control_Database
No Nama
Method
Fungsi
Method Algoritma Method
1.
Ambildata
tabel(Con
nection
conn,
String
table)
Mengambil
isi/data dari
tabel transaksi
yang dipilih
oeh pengguna
1. Buat variable st bertipe Statement
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 mengambil
semua data di tabel dan ditampung dalam
variable query
6. Mengeksekusi query tersebut dan
menampung dalam variable rs
7. Mengembalikan nilai rs
2.
Ambiltabe
l(Connecti
on conn)
Mengambil
nama – nama
tabel dari
koneksi
database yang
dilakukan oleh
pengguna
1. Buat variable st bertipe Statement
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 mengambil
nama tabel di database dan ditampung
dalam variable query
6. Mengeksekusi query tersebut dan
menampung dalam variable rs
7. Mengembalikan nilai rs
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
3. cariNama
Barang
Mencari nama
barang dari
sebuah
kodebarang
dalam sebuah
tabel transaksi
tertentu
1. Buat variable statement bertipe
PreparedStatement dan inisialisasi
dengan nilai null
2. Buat variable result bertipe
PreparedStatement dan inisialisasi
dengan nilai null
3. Buat variable nama bertipe String
4. Melakukan autocommit pada koneksi.
5. Melakukan set query untuk mengambil
nama barang di database dan ditampung
dalam variable sql bertipe String
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
4. cariNama
Kategori
Mencari nama
kategori dari
sebuah kode
kategori dalam
sebuah tabel
transaksi
tertentu
1. Buat variable statement bertipe
PreparedStatement dan inisialisasi
dengan nilai null
2. Buat variable result bertipe
PreparedStatement dan inisialisasi
dengan nilai null
3. Buat variable nama bertipe String
4. Melakukan autocommit pada koneksi.
5. Melakukan set query untuk mengambil
nama kategori di database dan ditampung
dalam variable sql bertipe String
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
5. prepocessi
ng
Melakukan
proses
preprocessing,
yaitu
menggabungka
n beberapa row
yang memiliki
nofaktur sama
agar menjadi
satu row
1. Buat variable st bertipe Statement
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
3.4.5.2 Algoritma Kelas Control_Algorithm
Tabel 3.15 Algoritma Kelas Control_Algorithm
No Nama
Method
Fungsi
Method Algoritma Method
1.
HasilPrep
ocessing(
ArayList
<Struktur
Tabel>
prepocess
ing)
Berisi kode
barang
hasil proses
prepocessin
g yang
disimpan
dalam
bentuk
ArrayList<
ArrayList<
String>>
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
2
Count<A
rrayList<
ArrayList
<String>
> b, int a
Menjumlah
an count
dari
masing-
masing
jenis
barang
yang ada
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 :
1. Menyimpan isi dari items dan
menyimpan di variable string
2. Menjalankan method split dari
variable kode dan menyimpan ke
dalam z bertipe String[]
c. Selama k kurang dari z.length :
1. Memasukkan hasilsplit dari j ke dalam
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
3
Transaksi
YgSesuai
(ArrayLis
t<Struktu
rTabel>
prepocesi
ng,
ArrayList
<TreeNo
de>
itemSesu
ai)
Mengambil
transaksi
yang
mengandun
g kode
yang sesuai
dengan
minimum
supportyag
dimasukka
n oleh
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
4
Transaksi
danItem
YangSes
uai(Array
List<Stru
kturTabel
>
prepocess
ing,
ArayList
<TreeNo
de>
transaksi
Sesuai,
ArrayList
<Struktur
Tabel>
count, int
x)
Mengambil
dan
mengurutk
an
transaksi
dan kode
yang sesuai
dengan
minimum
supportyag
dimasukka
n oleh
pengguna
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
variable c bertipe String
b. Mengambil nilai kode dan ditampung di
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
c dan bernilai 0 maka :
Melakukan split pada nilai d dan
ditampung dalam variable l bertipe
String[]
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
5.
Datafix(
ArrayList
<TreeNo
de>
transaksi
Seuai,
ArrayList
<TreeNo
de>
transaksi
danItemS
esuai)
Memasukk
an data
transaksi
yang sesuai
ke dalam
Array
untuk
proses
pembentuk
an Tree
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
5. Selama i kurang dari transaksiSesuai.size(), maka
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
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
6.
FP-
Tree(Arr
ayList<A
rrayList<
String>>
datafix,
Arrayist<
TreeNod
e> cek)
Membuat
struktur
Tree
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 :
- Mengamil nilai items dan di simpan dalam
item bertipe String
- 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
b). Jika nilai dari itm dibandingkan
dengan item sama maka
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
- Melakukan set pada curNode dengan nilai
temp
- Memanggil perintah tambahCount pada temp
5. Mengembalikan nilai dari root.
7.
addNode(
TreeNod
e tn,
ArrayList
<TreeNo
de>
head)
Menambah
kan node
dalam tree
1. Buat variable curNode dan diinisialisasikan
dengan nilai null;
2. Selama( TreeNode node : head), menjalankan :
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
curNode dengan
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 Nama
Method
Fungsi
Method Algoritma Method
1. delete(int
row)
Menghapus
row yang
ada
1. Memanggil method remove( row) pada obyek
rule
2. Memanggil method fireTable
RowDeleted(row,row)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
2. update
Melakukan
perubahan
terhadap row
yang ada
1. Memanggil method update( row) pada obyek
rule
2. Memanggil method fireTable
RowUpdated(row,row)
3. add
Menambahka
n row pada
tabel
3. Memanggil method add( row) pada obyek rule
4. Memanggil method fireTable
RowInserted(row,row)
4. getValueA
t
Mengambil
nilai dari
baris dan
kolom
1. Menjalankan perintah rule.get(rowIndex) dan
ditampung di variable s bertipe ambilHasil
2. Melakukan switch(coloumIndex)
3. Case 0 : megembalikan nilai candidate
4. Case 1 : mengembalikan nilai item
5. Case 2 : mengembalikan nilai count
6. Case 3 : mengembalikan nilai confidence
7. Case 4 : mengembalikan nilai suppxconf
5. getColou
mName
Mengambil
nama kolom
dalam tabel
1. Melakukan switch(coloumIndex)
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
3.4.5.4 Algoritma Kelas Konn
Tabel 3.17 Algoritma Kelas Konn
No Nama
Method
Fungsi
Method Algoritma Method
1.
Konn(String
namaDB,
String url,
String
username,
String
password)
Melakukan
koneksi ke
database
1. Memanggil method getClose()
2. Menjalankan method DriverManager
dengan mengambil nilai masukkan
berupa nama database, url, username
dan password dan disimpan dalam
atribut connection
3. Apabila koneksi berhasil maka
menampilkan pesan “ Koneksi berhasil”
4. Apabila koneksi gagal akan
menampilkan pesan “ Koneksi gagal”
2. isConnected
Mengecek
apakah koneksi
dengan
database
terhubung atau
tidak
1. Menjalankan perintah if dengan syarat
apabila atribut connection tidak null
maka akan mengembalikan nilai true
2. Apabila atribut connection bernilai null
maka mengembalikan nilai false
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
3. getClose
Method ini
berfungsi
untuk memutus
koneksi ke
database
5.1 Melakukan perintah if dengan syarat
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
3.5 Perancangan Antar Muka Pengguna
3.5.1 Perancangan Antar Muka Halaman Home
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.
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Logo
Universitas
KELUAR BANTUAN MASUK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
3.5.2 Perancangan Antar Muka Halaman Open
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.
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Logo
Universitas
Prepocessing
Nama Database :
Url :
Username :
Password :
Batal
Cek Koneksi
Pilih Tabel :
OKE
TABEL DATA TRANSAKSI
Masukkan indeks no faktur dan kode barang pada kolom di bawah ini :
No faktur : Kode :
Pengambilan Data Prepocessing Hasil Proses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
3.5.3 Perancangan Antar Muka Halaman Prepocessing
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.
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Logo
Universitas
Process
TABEL DATA TRANSAKSI HASIL PREPOCESSING
Jumlah data transaksi :
Minimum Support : % dari
Pengambilan Data Prepocessing Hasil Proses
Jenis Item Barang :
transaksi
Konfirmasi
Banyak Kemunculan : kali dari transaksi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
3.5.4 Perancangan Antar Muka Halaman Hasil Proses
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.
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Logo
Universitas
Home
TABEL RULE HASIL PROSES
Jumlah data transaksi : Min Supp:
Penjelasan rule dari hasil proses
Pengambilan Data Prepocessing Hasil Proses
Jenis Item Barang :
Save
Waktu Komputasi Pencarian rule :
Back
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
3.5.5 Perancangan Antar Muka Halaman Bantuan
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.
PENERAPAN DATA MINING PADA PERUSAHAAN RITAIL PAKAIAN
UNTUK MEMPREDIKSI KETERSEDIAAN JENIS BARANG
DENGAN MENGGUNAKAN ALGORITMA FP-GROWTH
Logo
Universitas
Home
LANGKAH – LANGKAH PROSES ALGORITMA
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Gambar 4.1 Halaman_Open
Tabel 4.1 Keterangan Halaman_Open
Id Objek Jenis Teks Keterangan
PanelKoneksi JPanel - Panel yang mendasari bagian cari
koneksi database
lblNamaDb Jlabel Nama
Database
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk memasukkan
nama database
lblNamaUrl Url
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk memasukkan
alamat url
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
lblUsername Username
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk memasukkan
username
lblPwd Password
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk memasukkan
password
titikdua1 Jlabel : -
titikdua2 Jlabel : -
titikdua3 Jlabel : -
titikdua4 Jlabel : -
txtNamaDatabase JtextField -
Kolom yang bertujuan untuk
pengguna menuliskan nama
database
txtUrl JtextField - Kolom yang bertujuan untuk
pengguna menuliskan alamat url
txtUsername JtextField -
Kolom yang bertujuan untuk
pengguna menuliskan nama
username
txtPassword JpasswordF
ield -
Kolom yang bertujuan untuk
pengguna menuliskan password
btnBatalKoneksi Jbutton Batal
Tombol yang bertujuan untuk
mengosongkan kembali kolom
nama database, url, username,
password
btnCekKoneksiDB Jbutton Cek
Koneksi
Tombol yang bertujuan untuk
melakukan cek koneksi terhadap
nama database, url, username,
password yang telah dituliskan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
pengguna pada kolom yang
tersedia
PanelPilihTabel Jpanel - Panel yang mendasari bagian cari
table transaksi
lblPilihTabel Jlabel Pilih
Tabel
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk memilih tabel
transaksi
Titikdua Jlabel : -
comboPilihTabel JcomboBo
x -
Berisi pilihan – pilihan tabel yang
ada pada database yang telah
terkoneksi
btnOkePilihanTabel Jbutton Oke
Tombol ini bertujuan untuk
menampilkan isi dari tabel yang
dipilih pengguna ke dalam tabel
yang ada di layar output
PanelDataTransaksi Jpanel - Panel yang mendasari tabel
transaksi
lblJumlahData Jlabel Jumlah
Data
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna jumlah data transaksi
yang ada
titikdua5 Jlabel : -
lblJmlhData2 Jlabel -
Menampilkan jumlah data
transaksi yang ada pada tabel
transaksi yang dipilih
lblIndek1 Jlabel -
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk mengisi kolom
indeks nofaktur dan kolom kode
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
lblIndek2 Jlabel -
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk mengisi kolom
indeks nofaktur dan kolom kode
lblNoFaktur Jlabel No Faktur
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk mengisi kolom
indeks nofaktur
txtIndekNoFaktur JtextField Kolom untuk pengguna
menuliskan indeks nofaktur
lblIndekKode Jlabel Kode
Barang
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk mengisi kolom
indeks kode
txtIndekKode JtextField Kolom untuk pengguna
menuliskan indeks kode
btnPrepocessing Jbutton Prepocessi
ng
Tombol yang bertujuan untuk
melakukan proses preprocessing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
4.1.2 Implementasi Antar Muka Halaman_Prepocessing
Gambar 4.2 Halaman_Prepocessing
Tabel 4.2 Keterangan Halaman_Prepocessing
Id Objek Jenis Teks Keterangan
PanelDataPreposesi
ng JPanel -
Panel yang mendasari hasil proses
prepocessing
ScrollPaneTableDat
aHasilPrepocessing JScrollPane -
ScrollPaneyang berfungsi agar
tabel bisa di scroll ke bawah
TableDataHasilPrep
ocessing JTable -
Menampung data transaksi hasil
prepocessing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
lblJmlhDtTransaksi JLable
Jumlah
Data
Transaksi
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna jumlah data transaksi
setelah hasil preprocessing
titikdua8 JLable : -
lblJmlhDataPrepoce
ssing JLable -
Menampilkan jumlah data
transaksi hasil prepocessing
lblJenisItem JLable Jenis Item
Barang
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna jumlah data item barang
setelah hasil prepocessing
titikdua9 JLable : -
lblJmlhItemPrepoce
ssing1 JLable -
Menampilkan jumlah item
transaksi hasil prepocessing
lblMinSupp JLable Minimum
Support
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna untuk menuliskan
minimum support
titikdua10 JLable : -
txtMin_supp JTextField Kolom untuk pengguna
menuliskan minimum support
lblMinnsupp2 JLable % dari
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang minimum
support
lblJmlhDataPrepoce
ssing1 JLable -
Menampilkan jumlah data
transaksi hasil prepocessing
lblMinsupp3 JLable transaksi
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang minimum
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
support
btnOkMin_Supp JButton Konfirmas
i
Tombol untuk menghitung jumlah
kemunculan item dalam transaksi
lblBnykKemuncula
n JLable
Banyak
Kemuncul
an
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang banyak item
yang muncul dalam transaksi
berdasar minimum support
titikdua11 JLable : -
lblJmlhItemMuncul JLable -
Menampilkan banyak banyak item
yang muncul dalam transaksi
berdasar minimum support
lblBnykKemuncula
n2 JLable kali dari
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang banyak item
yang muncul dalam transaksi
berdasar minimum support
lblJmlhDataPrepoce
ssing2 JLable -
Menampilkan jumlah data
transaksi hasil prepocessing
lblBnykKemuncula
n3 JLable transaksi
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang banyak item
yang muncul dalam transaksi
berdasar minimum support
btnProses JButton Process Tombol yang bertujuan untuk
melakukan proses pencarian rule
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
4.1.3 Implementasi Antar Muka Halaman_HasilProses
Gambar 4.3 Halaman_HasilProses
Tabel 4.3 Keterangan Halaman_HasilProses
Id Objek Jenis Teks Keterangan
Halaman_HasilPros
es JPanel -
Panel yang mendasari hasil proses
dari pencarian rule
ScrollPaneTableHas
ilProses JscrollPane -
ScrollPaneyang berfungsi agar
tabel bisa di scroll ke bawah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
TabelHasilProses Jtable - Menampung rule hasil proses
lblKetTable Jlable
Tabel
Hasil
Proses
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna bahwa tabel di bawah
adalah tabel hasil proses
btnSave Jbutton Save
Tombol yang berfungsi untuk
melakukan penyimpanan data hasil
proses
btnKembali Jbutton Home Tombol yang berfungsi untuk
kembali menuju Halaman_Home
ScrollPaneTextArea JscrollPane - ScrollPaneyang berfungsi agar
textarea bisa di scroll ke bawah
TextAreaHasil JtextArea - Menampung penjelasan rule hasil
proses
lblPenjelasanRule Jlable Penjelasan
Hasil Rule
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna mengenai penjelasan
hasil rule
lblTingkatAkurasi2 Jlable
Tingkat
Akurasi
Algoritma
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang tingkat akurasi
dari algoritma
lblTingkatAkurasi Jlabel - Menampilkan hasil perhitungan
akurasi algoritma
lblMinSuppHasilPr
oses Jlabel
Minimum
Support :
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang minimum
support
lblMinSuppHasilPr
oses2 Jlabel - Menampilkan minimum support
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
lblJmlhDtTransHasi
lProses Jlabel
Jumlah
Data
Transaksi
:
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang jumlah data
transaksi
lblJmlhDtTransHasi
lProses Jlabel -
Menampilkan jumlah data
transaksi
lblItemTransHasilPr
oses Jlabel
Jumlah
Item :
Tulisan yang tampil pada halaman
untuk memberikan keterangan
pengguna tentang jumlah item
lblItemTransHasilPr
oses Jlabel - Menampilkan jumlah item
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
4.1.4 Implementasi Antar Muka Halaman_Home
Gambar 4.4 Halaman_Home
Tabel 4.4 Keterangan Halaman_Home
Id Objek Jenis Teks Keterangan
PanelHome JPanel - Panel yang mendasari
Halaman_Home
lblLogo JLable - Menampilkan logo universitas
btnKeluarHome JButton Keluar Tombol yang bertujuan untuk
keluar dari aplikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
lblJudul1 JLable
Penerapan
Data
Mining Pada
Perusahaan
Retail
Pakaian
Judul
lblJudul2 JLable
Untuk
Memprediks
i Minat
Konsumen
Judul
lblJudul3 JLable
Dengan
Menggunak
an
Algoritma
FP-Growth
Judul
btnBantuanHome JButton Bantuan Tombol yang bertujuan untuk
masuk ke Halaman_Bantuan
btnMasukHome JButton Masuk Tombol yang bertujuan untuk
masuk ke Halaman_Open
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
4.1.5 Implementasi Antar Muka Halaman_Bantuan
Gambar 4.5 Halaman_Bantuan
Tabel 4.5 Keterangan Halaman_Bantuan
Id Objek Jenis Teks Keterangan
PanelJudul JPanel - Panel yang mendasari Judul
PanelLangkahSistem JPanel - Berisi langkah – langkah
menggunakan sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
btnHomeBantuan JButton HOME 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
6. LihatHasilAlgoTableM
odel
LihatHasilAlgoTableMo
del.java
LihatHasilAlgoTableMo
del.class
4.2.2 Implementasi Kelas Controller
Tabel 4.7 Implementasi dari Kelas Controller
No. 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
4.2.3 Implementasi Kelas View
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
Tabel 4.8 Implementasi dari kelas view
No. Use Case Antarmuka Nama Kelas Boundary
1. Cari Database dan
Data Transaksi Halaman_Open.java Halaman_Open.java
2. Cari Pola Asosiasi
Barang Halaman_Prepocessing.java Prepocessing.java
3. Simpan Hasil
Asosiasi Barang Halaman_HasilProses.java HasilProses.java
(Listing program terlampir pada Lampiran 1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
5.1.1 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Confidence LiftRatio
Waktu Komputasi Pencarian rule : -
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
3
ATASAN
CE(610) SENDAL(510) 0.42 0.113 0.68022
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
4 TAS(340) SENDAL(510) 0.4 0.223 1.34238
Waktu Komputasi Pencarian rule : 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) dan
SENDAL(510) dengan support kedua barang tersebut adalah 0.4 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
1 JOGER(531)
ATASAN
CE(610) 0.43 0.222 1.46604
2 ACC(700) SENDAL(510) 0.69 0.22 1.32432
3
ATASAN
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
CE(610)
6 K.KAKI(640) ACC(700) 0.34 0.415 3.23806
Waktu Komputasi Pencarian rule : 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) dan
SENDAL(510) dengan support kedua barang tersebut adalah 0.4 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
5.1.2 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
1 ACC(700) SENDAL(510) 1.08 0.286 1.60927
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 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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) ATASAN
CE(610) 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
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Confidence LiftRatio
Waktu Komputasi Pencarian rule :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Produk 1 Produk 2 Support Confidence LiftRatio
1 ACC(700) 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 Produk 1 Produk 2 Support Confidence LiftRatio
1 ACC(700) 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Produk 1 Produk 2 Support Confidence Lift Ratio
1 ACC(700) SENDAL(510) 2.45 0.241 1.41813
Waktu Komputasi Pencarian rule : 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Produk 1 Produk 2 Support Confidence Lift Ratio
1 ACC(700) SENDAL(510) 2.45 0.241 1.41813
Waktu Komputasi Pencarian Rule : 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 Produk 1 Produk 2 Support Confidence Lift Ratio
1 ACC(700) 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Produk 1 Produk 2 Support Confidence Lift Ratio
1 K.KAKI(640) ACC(700) 1.42 0.524 3.8057
2 JOGER(531)
ATASAN
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 April 2015
kesimpulan yang adapat diambil adalah sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
Tanggal 1 Penambahan
Barang Jumlah Awal Penjualan Sisa
K.KAKI(640) 200 56 144 0
ACC(700) 200 165 35 200
Tanggal 2 April 2015
Item
Tanggal 2 Penambahan
Barang Jumlah Awal Penjulan Sisa
K.KAKI(640) 144 34 110 0
ACC(700) 235 139 96 200
Tanggal 3 April 2015
Item
Tanggal 3
Jumlah Awal Penjualan Sisa
K.KAKI(640) 110 52 58
ACC(700) 296 252 44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
105
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
107
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
108
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");
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
109
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
110
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
112
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
113
}
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++;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
115
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;
}
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
117
*
* @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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
118
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
119
*/
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:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
120
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;
/**
*
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
121
* @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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
122
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);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
125
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
126
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
127
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;
}
//
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
129
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
*/
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
130
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 + " ");
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
131
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) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
134
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
135
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
136
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();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
137
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
138
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) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
148
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");
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
152
/**
* 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);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI