Penerapan data mining pada perusahaan ritail pakaian untuk memprediksi ketersediaan jenis barang dengan menggunakan algoritma FP-Growth.

(1)

(2)

(3)

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


(4)

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


(5)

iii


(6)

iv


(7)

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


(8)

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


(9)

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.


(10)

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.


(11)

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


(12)

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.


(13)

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


(14)

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


(15)

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


(16)

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


(17)

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


(18)

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


(19)

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


(20)

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


(21)

1

BAB I

PENDAHULUAN

1.1Latar 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–


(22)

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.2Rumusan 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 ?


(23)

1.3Tujuan 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.4Batasan 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.5Metodologi 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


(24)

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


(25)

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.6Sistematika 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


(26)

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.


(27)

7

BAB II

TINJAUAN PUSTAKA

2.1Pengertian 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.2Proses Data Mining

Proses data mining dibagi menjadi beberapa proses yang dapat diilustrasikan seperti pada gambar 2.1 di bawah ini :


(28)

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.


(29)

2.3Teknik – 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.


(30)

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.4Algoritma 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.


(31)

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


(32)

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


(33)

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


(34)

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


(35)

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.


(36)

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


(37)

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


(38)

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.5Lift 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.


(39)

………..(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


(40)

20

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1Analisis 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.


(41)

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


(42)

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.


(43)

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.


(44)

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.


(45)

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


(46)

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


(47)

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.


(48)

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


(49)

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 :


(50)

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


(51)

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.


(52)

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


(53)

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


(54)

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


(55)

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


(56)

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 : -


(57)

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


(58)

3.3Perancangan 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.2Proses 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


(59)

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 –


(60)

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 ,


(61)

(62)

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

barang

Isikan 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

SISTEM USER

Klik tombol prepocessing

Klik tombol Konfirmasi


(63)

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


(64)

3.4.2 Diagram Kelas Analisis

USER

Halaman_Home Halaman_Bantuan

Controller_Data base Halaman_Open

Halaman_Prepoce ssing

Controller_Algo

rithm Larik

Comparable

StrukturTabel

TreeNode

Halaman_HasilPro ses

Contoller_Data

base ambilHasil

LihatHasilAlgoTabel Model Konn


(65)

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

Konn() 1

4

<<controller>> ControlDatabase.java

<<model>> Konn.java

2

3 ambilTabel()

5

Tampil Halaman_Open Isikan nama database,

username, password, url

Hasil Connection

6 7

Koneksi berhasil Tampil pilihan tabel

8

Pilih tabel transaksi

9

ambildatatabel() 10

11

Tabel valid Tampil data transaksi


(66)

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

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 Klik proses Hasil asosiasi Tampil Halaman_HasilProse s Tabel hasil asosiasi Set transaksi sesuai, kode, count <<Controller >> Larik <<controller> > Control Algorithm.ja va Larik Data urut Datafix(),tree(), addNode(),

penyetaraan() Buat tree ,

penyetaraan cariNama

Kode()

password 6

7 8

9 10

11 12


(67)

3.4.3.3 Simpan hasil pola asosiasi

Gambar 3.11 Diagram Sequence Cetak hasil asosiasi

USER

<<interface>> Halaman_HasilProses.java

Tekan Tombol Save

1

Pilih format penyimpanan dan klik tombol simpan Tampil Save dialog

2

3

Konfirmasi pentimpanan

Simpan data

4


(68)

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 Comparable <<model>>

<<model>> StrukturTabe

l

<<model>> TreeNode

<<view>> Halaman_Prepo

cesing

<<controller>> Contoller_Database

<<model>> ambilHasil

<<model>> LihatHasilAlgoTableModel


(69)

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


(70)

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


(71)

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


(72)

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


(73)

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


(1)

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 {


(2)

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");


(3)

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);

} } }

}


(4)

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(); }


(5)

{

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 */


(6)

/**

* 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); }