APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi...

165
APLIKASI DATA MINING MENGGUNAKAN ALGORITMA APRIORI UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Disusun oleh : Alfonsus Doni Setyawan 105314096 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Transcript of APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi...

Page 1: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

APLIKASI DATA MINING

MENGGUNAKAN ALGORITMA APRIORI

UNTUK ANALISIS POLA PENJUALAN

DI XYZ HELM

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Disusun oleh :

Alfonsus Doni Setyawan

105314096

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

i

DATA MINING APPLICATION

USING APRIORI ALGORITHM

FOR ANALYSIS OF SALES PATTERN

IN XYZ HELMET

Thesis

Presented as Partial Fullfilment of the Requirements

To Obtain the Computer Bachelor Degree

In Informatics Engineering

By :

Alfonsus Doni Setyawan

105314096

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

ii

HALAMAN PERSETUJUAN PEMBIMBING

SKRIPSI

APLIKASI DATA MINING MENGGUNAKAN ALGORITMA APRIORI

UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM

Dipersiapkan dan ditulis oleh :

Alfonsus Doni Setyawan

105314096

Telah disetujui oleh :

Pembimbing

Ridowati Gunawan, S.Kom. M.T. Tanggal : ………………..

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

iii

HALAMAN PENGESAHAN SKRIPSI

APLIKASI DATA MINING MENGGUNAKAN ALGORITMA APRIORI

UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM

Dipersiapkan dan ditulis oleh :

Alfonsus Doni Setyawan

105314096

Telah dipertahankan di depan Panitia Penguji

Pada tanggal ……………………… 2016

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji:

Nama Lengkap Tanda Tangan

Ketua Drs.Haris Sriwindono M.Kom .........................

Sekretaris Paulina Heruningsih Prima Rosa M.Sc .........................

Anggota Ridowati Gunawan, S.Kom. M.T. .........................

Yogyakarta, ……………………

Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Dekan,

Sudi Mungkasi, Ph.D.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

iv

HALAMAN MOTTO

Jika ada mimpi selalu ada harapan

Jika ada harapan selalu ada usaha

Jika ada usaha selalu ada hasil

Jangan takut bermimpi untuk berhasil

Make dreams come true

(anonymous)

Berusahalah sampai tetes terakhir

Karena hasil tidak akan mengingkari usaha

(anonymous)

Katak selalu melompat kedepan

Walau jalan terjal menanti tak takut untuk melangkah

Hiduplah seperti katak

(anonymous)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

v

HALAMAN PERSEMBAHAN

Karya ini aku persembahkan untuk

Tuhan Yesus yang baik telah memberi karunia,

rahmat, dan penyertaanNya.

Bapak yang selalu ada, bahkan saat aku menulis halaman ini

aku percaya bapak ada disini.

Ibu dan adikku yang selalu memberikan

doa dan dukungan.

Dosen pembimbing skripsi yang telah memberikan

bimbingan dengan penuh kesabaran.

Kekasih yang selalu memberi semangat dan harapan

Serta kepada semua orang

yang telah membantu pengerjaan tugas akhir ini

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

vi

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak

memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam

daftar pustaka sebagaimana layaknya karya ilmiah.

Yogyakarta, …………………… 2016

Penulis,

Alfonsus Doni Setyawan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

vii

APLIKASI DATA MINING MENGGUNAKAN ALGORITMA APRIORI

UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM

Alfonsus Doni Setyawan

ABSTRAK

Data mining merupakan proses untuk menganalisis kumpulan data yang

menghasilkan pengetahuan baru sehingga dapat membantu dalam pengambilan

keputusan. Terdapat metode Association Rule dalam data mining yang dapat

menentukan pola aturan dari kumpulan data. Data dalam penelitian ini bertujuan

untuk mengetahui pola penjualan di XYZ Helm dengan analisis hasil

menggunakan Algoritma Apriori. Penelitian ini diperoleh dari hasil penjualan

helm sejumlah 126 nota transaksi dengan 798 detil penjualan yang kemudian

diolah dengan algoritma tersebut dengan menentukan nilai support dan

confidence. Hasil analisis menunjukan terdapat 4 barang yang lolos dari minimum

support 40% dan minimum confidence 50% dan diharapkan dapat membantu

pemilik usaha dalam mengambil keputusan untuk penjualan selanjutnya.

Kata kunci : Data mining, Association Rule, Algoritma Apriori, Support,

Confidence

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

viii

DATA MINING APPLICATION USING APRIORI ALGORITHM

FOR ANALYSIS OF SALES PATTERN IN XYZ HELMET

Alfonsus Doni Setyawan

ABSTRACT

Data mining is the process to analyze data sets that produce new knowledge to

help making a decision. There is a method of Association Rule in the data mining

that can determine the rule pattern of the data sets. This research aims to know the

sales pattern in XYZ Helmet using apriori algorithm. The data

were obtained from the results of sales at XYZ helmet that totaled 126

transactions with 798 sales details which were analyzed using the algorithm by

determining the value of support and confidence. According to the result of

analysis, there are 4 items passed minimum support 40% and minimum

confidence 50%. This result is expected to help business owner in deciding next

sales plan.

Key Word : Data mining, Association Rule, Algoritma Apriori, Support,

Confidence

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

ix

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH

UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma

Nama : Alfonsus Doni Setyawan

Nomor Mahasiswa : 105314096

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan

Universitas Sanata Dharma karya ilmiah saya yang berjudul:

APLIKASI DATA MINING MENGGUNAKAN ALGORITMA APRIORI

UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan

kepada Perpusatakaan Universitas 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 royalti kepada saya selama saya tetap mencantumkan nama saya

sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Pada tanggal,……………………

Yang menyatakan,

Alfonsus Doni Setyawan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

x

KATA PENGANTAR

Puji syukur dan terima kasih penulis panjatkan kepada Tuhan Yesus Kristus

atas segala berkat dan anugerah-Nya sehingga skripsi yang berjudul “APLIKASI

DATA MINING MENGGUNAKAN ALGORITMA APRIORI UNTUK

ANALISIS POLA PENJUALAN DI XYZ HELM” ini dapat diselesaikan dengan

baik. Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar sarjana

di Program Studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas

Sanata Dharma Yogyakarta.

Penulisan skripsi ini tentunya dapat selesai berkat dukungan dan bantuan dari

berbagai pihak. Oleh karena itu, penulis ingin mengucapkan banyak terima kasih

kepada :

1. Bpk. Sudi Mungkasi, Ph.D., selaku Dekan Fakultas Sains dan Teknologi

Universitas Sanata Dharma.

2. Ibu Dr. Anastasia Rita Widarti, M.Kom selaku Kepala Program Studi Fakultas

Psikologi Universitas Sanata Dharma.

3. Ibu Ridowati Gunawan, S.Kom, M.T., selaku Dosen Pembimbing Skripsi.

Terima kasih atas kesabarannya dalam membimbing pengerjaan tugas akhir.

4. Segenap Bapak / Ibu staf pengajar di Fakultas Sains dan Teknologi Universitas

Sanata Dharma, khususnya Program Studi Teknik Informatika. Terima kasih

untuk ilmu dan pelayanan yang telah diberikan.

5. Bapak, Ibu dan adik yang tercinta. Terima kasih untuk dukungan dan doa yang

selalu menguatkan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xi

6. Hilda Muliastu Widesti, pacar yang tersayang. Terima kasih untuk kesabaran,

cinta, dan perhatiannya. Terima kasih telah selalu mengingatkan saat rasa

malas melanda.

7. Untuk teman-teman di Universitas Sanata Dharma, dan semua teman-teman

lainnya yang selalu memberi dukungan, dan sindiran juga ilmu yang berguna

hingga skripsi saya selesai.

8. Seluruh pihak yang telah membantu selesainya skripsi ini, yang tidak bisa

disebutkan satu per satu. Terima kasih banyak.

Pada akhirnya penulis menyadari bahwa skripsi ini memiliki banyak

kekurangan. Oleh karena itu, penulis mengharapkan saran dan kritik yang dapat

membuat skripsi ini menjadi lebih baik lagi.

Yogyakarta, ....................2016

Penulis

Alfonsus Doni Setyawan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xii

DAFTAR ISI

HALAMAN JUDUL .............................................................................................. i

HALAMAN PERSETUJUAN PEMBIMBING ................................................. ii

HALAMAN PENGESAHAN .......................................................................................... iii

HALAMAN MOTTO .......................................................................................... iv

HALAMAN PERSEMBAHAN............................................................................. v

HALAMAN PERNYATAAN KEASLIAN KARYA ........................................ vi

ABSTRAK ........................................................................................................... vii

ABSTRACT ......................................................................................................... viii

HALAMAN PERSETUJUAN PUBLIKASI KARYA ILMIAH ..................... ix

KATA PENGANTAR ........................................................................................... x

DAFTAR ISI ........................................................................................................ xii

DAFTAR GAMBAR .......................................................................................... xvi

DAFTAR TABEL............................................................................................. xviii

BAB I PENDAHULUAN .......................................................................... 1

1.1.Latar Belakang .......................................................................... 1

1.2.Rumusan Masalah ..................................................................... 3

1.3.Tujuan dan Manfaat .................................................................. 3

1.4.Batasan Masalah........................................................................ 3

1.5.Metodologi ................................................................................ 4

1.6.Sistematika Penulisan................................................................ 5

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xiii

BAB II LANDASAN TEORI ..................................................................... 7

2.1. Pengertian Data Mining ........................................................... 7

2.2. Proses Penambangan Data ....................................................... 7

2.3. Teknik Penambangan Data ...................................................... 9

2.4. Teknik Asosiasi ...................................................................... 10

2.5. Algoritma Apriori .................................................................. 12

BAB III ANALISIS DAN DESAIN SISTEM .......................................... 16

3.1. Identifikasi Sistem ................................................................. 16

3.2. Analisis Sistem ....................................................................... 17

3.3. Pemrosesan Data .................................................................... 18

3.4. Use Case Diagram .................................................................. 23

3.4.1. Diagram Use Case ....................................................... 23

3.4.2. Definisi Use Case ........................................................ 24

3.5. Diagram Aktivitas .................................................................. 25

3.5.1. Diagram Aktivitas Menginput Data ............................ 25

3.5.2. Diagram Aktivitas Menginput Data Penjualan ............ 25

3.5.3. Diagram Aktivitas Melihat Histori Penjualan ............. 26

3.5.4. Diagram Aktivitas Mencari Rule Penjualan ................ 26

3.5.5. Diagram Aktivitas Melihat Hasil Apriori .................... 27

3.6. Diagram Sekuensial ............................................................... 28

3.6.1. Diagram Sekuensial Menginput Data ......................... 28

3.6.2. Diagram Sekuensial Menginput Data Penjualan......... 28

3.6.3. Diagram Sekuensial Melihat Histori Penjualan .......... 29

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xiv

3.6.4. Diagram Sekuensial Mencari Rule Penjualan ............. 29

3.6.5. Diagram Sekuensial Melihat Hasil Apriori ................. 30

3.7. ER Diagram ........................................................................... 30

3.7.1. Model Data Konseptual............................................... 30

3.7.2. Model Data Logikal .................................................... 31

3.7.3. Model Data Fisikal ...................................................... 32

3.8. Desain Program ...................................................................... 34

BAB IV IMPLEMENTASI SISTEM ....................................................... 38

4.1. Spesifikasi Hardware dan Software ....................................... 38

4.4.1. Spesifikasi Hardware ................................................... 38

4.4.2. Spesifikasi Software .................................................... 38

4.2. Pembuatan Database .............................................................. 38

4.3. Koneksi Java dan MySQL ..................................................... 38

4.4. Implementasi Program ........................................................... 40

4.4.1. Halaman Utama ........................................................... 40

4.4.2. Halaman Barang .......................................................... 40

4.4.3. Halaman Penjualan ...................................................... 41

4.4.4. Halaman Histori Penjualan .......................................... 42

4.4.5. Halaman Apriori .......................................................... 43

4.5. Pengujian Program ................................................................. 50

BAB V ANALISIS SISTEM .................................................................... 53

5.1. Analisis Sistem Pengujian ...................................................... 53

5.2. Manfaat Sistem ...................................................................... 55

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xv

5.3. Kelebihan dan Kekurangan Program ..................................... 55

5.3.1. Kelebihan Program...................................................... 55

5.3.2. Kekurangan Program ................................................... 56

BAB VI PENUTUP .................................................................................... 57

6.1. Kesimpulan ............................................................................ 57

6.2. Saran ...................................................................................... 57

DAFTAR PUSTAKA .......................................................................................... 58

LAMPIRAN ......................................................................................................... 59

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xvi

DAFTAR GAMBAR

Gambar 2.1 Langkah KDD .................................................................................... 9

Gambar 3.1 Use Case ........................................................................................... 23

Gambar 3.2 Diagram Aktivitas Menginput Data Barang..................................... 25

Gambar 3.3 Diagram Aktivitas Menginput Data Penjualan ................................ 25

Gambar 3.4 Diagram Aktivitas Melihat Histori Penjualan .................................. 26

Gambar 3.5 Diagram Aktivitas Mencari Rule Penjualan..................................... 26

Gambar 3.6 Diagram Aktivitas Melihat Hasil Apriori......................................... 27

Gambar 3.7 Diagram Sekuensial Menginput Data Barang .................................. 28

Gambar 3.8 Diagram Sekuensial Menginput Data Penjualan .............................. 28

Gambar 3.9 Diagram Sekuensial Melihat Histori Penjualan ............................... 29

Gambar 3.10 Diagram Sekuensial Mencari Rule Penjualan ................................ 29

Gambar 3.11 Diagram Sekuensial Melihat Hasil Apriori .................................... 30

Gambar 3.12 ER Diagram Konseptual................................................................. 30

Gambar 3.13 Desain Menu Utama ....................................................................... 34

Gambar 3.14 Desain Menu Barang ...................................................................... 35

Gambar 3.15 Desain Menu Penjualan .................................................................. 36

Gambar 3.16 Desain Histori Penjualan ................................................................ 37

Gambar 3.17 Desain Menu Apriori ...................................................................... 37

Gambar 4.1 Halaman Utama ................................................................................ 40

Gambar 4.2 Halaman Barang ............................................................................... 41

Gambar 4.3 Halaman Penjualan ........................................................................... 42

Gambar 4.4 Halaman Histori Penjualan............................................................... 43

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xvii

Gambar 4.5 Halaman Apriori ............................................................................... 44

Gambar 4.6 Hasil Analisis ................................................................................... 45

Gambar 4.7 Data Penjualan.................................................................................. 51

Gambar 4.8 Hasil Rule Program .......................................................................... 51

Gambar 4.9 Hasil Manual Excel .......................................................................... 52

Gambar 5.1 Hasil Apriori ..................................................................................... 54

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xviii

DAFTAR TABEL

Tabel 2.1 Contoh Transaksi Penjualan................................................................. 13

Tabel 2.2 Contoh Penentuan C1........................................................................... 13

Tabel 2.3 Contoh Kombinasi Data ....................................................................... 14

Tabel 2.4 Contoh Kombinasi Data ....................................................................... 15

Tabel 3.1 Atribut Tabel Penjualan_det ................................................................ 17

Tabel 3.2 Atribut Untuk Penambangan ................................................................ 18

Tabel 3.3 Atribut Tabel Detailpenjualan .............................................................. 19

Tabel 3.4 Atribut Tabel Detailpenjualancanvaser ................................................ 20

Tabel 3.5 Definisi Use Case ................................................................................. 24

Tabel 3.6 Tabel Logikal Warna ........................................................................... 31

Tabel 3.7 Tabel Logikal Merk ............................................................................. 31

Tabel 3.8 Tabel Logikal Tipe ............................................................................... 31

Tabel 3.9 Tabel Logikal Barang........................................................................... 31

Tabel 3.10 Tabel Logikal Penjualan_det ............................................................. 31

Tabel 3.11 Tabel Logikal Penjualan .................................................................... 32

Tabel 3.12 Tabel Logikal Pelanggan ................................................................... 32

Tabel 3.13 Tabel Fisikal Merk ............................................................................. 32

Tabel 3.14 Tabel Fisikal Tipe .............................................................................. 32

Tabel 3.15 Tabel Fisikal Barang .......................................................................... 33

Tabel 3.16 Tabel Fisikal Penjualan_det ............................................................... 33

Tabel 3.17 Tabel Fisikal Penjualan ...................................................................... 34

Tabel 3.18 Tabel Fisikal Pelanggan ..................................................................... 34

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

xix

Tabel 5.1 Hasil Pengujian .................................................................................... 53

Tabel 5.2 Hasil Perhitungan Lift Ratio ................................................................ 55

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

BAB I

PENDAHULUAN

1.1. Latar Belakang

Beberapa tahun terakhir, jumlah kendaraan terutama sepeda motor

meningkat di kota-kota besar. Misalnya, di Yogyakarta, jumlah motor

bertambah banyak setiap tahunnya sejak 2009 (Iskandar, 24 Agustus 2014).

Tidak mengherankan apabila penduduk di kota-kota besar memilih sepeda

motor sebagai alat transportasi utama sebab sepeda motor memudahkan

mereka untuk berpindah dari satu tempat ke tempat yang lain dengan cepat.

Selain itu, sepeda motor juga dapat membantu mereka menghemat waktu

untuk mencapai suatu tempat dibandingkan menggunakan kendaraan umum.

Ketika mengendarai sepeda motor, seseorang wajib menggunakan helm.

Helm merupakan alat pelindung keselamatan yang memiliki fungsi sangat

penting yaitu melindungi pengendara dari kecelakaan yang tidak diinginkan,

seperti jatuh atau terkena benturan. Untuk memaksimalkan fungsi pelindung

keselamatan tersebut, saat ini sudah banyak helm yang dilengkapi fitur

tambahan. Misalnya, ada helm yang dilengkapi dengan kaca ganda (double

visor) sehingga pengendara dapat menghindari sinar matahari yang

menyilaukan ketika mengendarai motor. Ada pula helm yang dilengkapi

dengan kunci pengaman (anti theft system) sehingga tidak mudah dicuri

ketika ditinggalkan di motor.

Pada saat ini, ada berbagai merk dan tipe helm yang beredar di pasaran.

Helm pun semakin menarik dengan aneka pilihan warna, motif, maupun

gambar. Hal ini membuat helm tidak hanya berfungsi sebagai alat pelindung

keselamatan namun juga membuat pengendara motor terlihat gaya.

XYZ Helm merupakan distributor penjualan helm yang melayani

permintaan dari Yogyakarta dan Jawa Tengah. Banyaknya permintaan helm

membuat perusahaan tersebut membutuhkan perangkat lunak untuk

mengelola transaksi yang dilakukan. Dengan melihat catatan-catatan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

2

transaksi yang disimpan dalam perangkat lunak tersebut, perusahaan dapat

dengan mudah mengetahui helm yang sesuai dengan permintaan pasar.

Salah satu area penerapan data mining adalah di dalam bidang promosi.

Bila sasaran promosi tidak ditentukan secara baik, dalam arti tidak

diupayakan mencari sasaran promosi yang potensial, maka hanya akan

menghabiskan banyak waktu dan biaya yang seharusnya bisa diminimalisir

melalui pemilihan target promosi yang baik. Salah satu cara yang dapat

diterapkan adalah dengan menerapkan penggunaan data mining. Dengan data

mining, diharapkan dapat mengoptimalkan penjualan. Penjualan barang yang

laku dan kurang laku dipasaran akan terlihat sehingga dengan demikian

barang yang kurang laku dapat dioptimalkan dengan cara obral atau bisa

dipaketkan dengan barang yang laris atau bisa juga dapat dimasukkan ke

dalam bonus penjualan bagi pembeli dengan jumlah banyak.

Algoritma Apriori adalah algoritma pengambilan data dengan aturan

asosiatif (Association rule) untuk menentukan hubungan asosiatif suatu

kombinasi item (Kusrini, 2007). Association Rule yang dimaksud dilakukan

melalui mekanisme penghitungan support dan confidence dari suatu

hubungan item. Sebuah aturan asosiasi dikatakan interesting jika nilai

support adalah lebih besar dari minimum support dan juga nilai confidence

adalah lebih besar dari minimum confidence. Algoritma Apriori ini akan

cocok untuk diterapkan bila terdapat beberapa hubungan item yang ingin

dianalisis. Penggunaan algoritma ini, akan memberikan pengetahuan bagi

pengguna berupa aturan atau pola penjualan yang telah terjadi.

Dari latar belakang tersebut, penulis tertarik menerapkan data mining

dalam penjualan di XYZ helm sehingga memudahkan penentuan hubungan

asosiatif tiap barang yang terjual. Hasil tersebut diharapkan dapat membantu

pemilik perusahan dalam pengoptimalan penjualan barang.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

3

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah dijelaskan di atas, maka dapat

dirumuskan masalah, yaitu :

a. Bagaimana membangun aplikasi data mining untuk analisis pola

penjualan helm di XYZ Helm menggunakan algoritma Apriori?

b. Bagaimana hasil penggunaan algoritma Apriori untuk analisis pola

penjualan?

1.3. Tujuan dan Manfaat

Adapun tujuan yang ingin dicapai adalah :

Mengetahui analisis pola penjualan helm dengan penerapan data mining

menggunakan algoritma Apriori.

Sedangkan manfaat yang diperoleh adalah :

a. Bagi Penulis

Dapat menambah pengetahuan dan wawasan lebih lanjut dari

perkuliahan, dan dapat mengaplikasikan ke dalam kasus yang nyata.

b. Bagi Pengguna

Diharapkan dari penelitian ini, informasi yang diperoleh menjadi

pertimbangan pengguna untuk marketing sehingga barang yang paling

laku atau kurang laku dapat dioptimalkan penjualannya.

1.4. Batasan Masalah

Agar tidak menyimpang dari permasalahan dan dapat mencapai sasaran

yang diharapkan, maka penulis membatasi permasalahan pada:

a. Data yang digunakan adalah data penjualan helm bulan Januari sampai

Februari 2015.

b. Data diperoleh dari basis data program yang telah berjalan di XYZ helm.

c. Data yang digunakan adalah No Faktur, Kode Item, Nama Item, dan

Jumlah Barang.

d. Berdasarkan data tersebut, output program adalah pola penjualan helm.

e. Pembuatan aplikasi menggunakan NetBeans IDE 6.8 dan MySQL.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

4

1.5. Metodologi

Metode penelitian yang digunakan dalam penelitian ini adalah studi

kasus dengan langkah-langkah sebagai berikut :

a. Pengumpulan Data

Pengambilan data dari rekap transaksi penjualan helm pada XYZ

Helm.

b. Penambangan Data

Data Cleaning (Pembersihan Data)

Pembersihan data adalah langkah awal yang penting dalam

proses mining karena data yang berkualitas dapat memberikan

informasi yang berkualitas pula. Pembersihan data akan dilakukan

pada data yang kosong dan dapat dilakukan dengan cara

penghapusan tuple, mengisi dengan konstanta, atau dengan nilai

rata-rata.

Data Integration (Integrasi Data)

Integrasi data adalah menggabungkan berbagai sumber ke

sebuah tempat penyimpanan data. Hal ini berguna untuk mendeteksi

dan menyelesaikan data yang mengandung konflik sehingga data

yang diperoleh pun menjadi tidak terdapat redundancy.

Data Selection (Seleksi Data)

Data yang relevan diambil dan dianalisis dari sebuah basis data.

Data Transformation (Transformasi Data)

Transformasi data akan dilakukan untuk mengubah data

menjadi bentuk atau satuan yang tepat untuk ditambang. Hal ini

akan terjadi apa bila pada suatu kolom atribut, memiliki satuan

berbeda. Misalnya data nilai rapor yang memiliki data continue

diubah dalam interval tertentu.

Data Mining (Penambangan Data)

Mengaplikasikan metode yang digunakan yaitu Apriori untuk

mendapatkan pola data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

5

Pattern Evaluation (Evaluasi Pola)

Mengidentifikasi pola-pola data yang menarik untuk

mempresentasikan pengetahuan berdasarkan pengukuran yang

penting.

Knowledge Presentation (Presentasi Pengetahuan)

Teknik visualisasi kepada pengguna untuk mempresentasikan

pengetahuan.

c. Uji Coba Sistem

Melakukan uji coba pada aplikasi data mining menggunakan

metode Apriori untuk analisis pola penjualan di XYZ secara

keseluruhan terhadap pengguna.

Menganalisis hasil pola yang didapat dengan teknik Apriori dari

perhitungan data yang ada.

1.6. Sistematika Penulisan

Sistematika penulisan laporan tugas akhir ini adalah sebagai berikut :

1. BAB I PENDAHULUAN

Berisi tentang latar belakang, rumusan masalah, tujuan dan manfaat,

batasan masalah, metodologi penelitian dan sistematika penulisan.

2. BAB II LANDASAN TEORI

Berisi penjelasan teori-teori yang digunakan sebagai dasar untuk

pembuatan aplikasi.

3. BAB III ANALISIS DAN DESAIN SISTEM

Berisi tentang analisis sistem yang akan dibuat dengan menerapkan

teori-teori yang telah dipaparkan pada bab sebelumnya. Terdapat

pembuatan desain sistem yang akan dibuat.

4. BAB IV IMPLEMENTASI SISTEM

Berisi tentang penjelasan implementasi sistem informasi praktek

dokter umum yang meliputi struktur menu sistem dan tampilan

program.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

6

5. BAB V ANALISIS SISTEM

Berisi tentang analisis hasil dari implementasi sistem. Terdapat

penjelasan tentang hasil uji coba sistem dan kelebihan atau

kekurangan yang ada.

6. BAB VI PENUTUP

Berisi tentang kesimpulan dan saran untuk pengembangan sistem.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

7

BAB II

LANDASAN TEORI

2.1. Pengertian Data Mining

Data mining (Penambangan Data) adalah suatu proses menemukan

hubungan yang berarti, pola, dan kecenderungan dengan memeriksa dalam

sekumpulan besar data yang tersimpan dalam penyimpanan dengan

menggunakan teknik pengenalan pola seperti teknik statistika dan

matematika (Kusrini dan Luthfi, 2009).

Secara sederhana dapat diartikan bahwa data mining atau yang disebut

juga dengan Knowledge Discovery in Database (KDD) adalah serangkaian

proses untuk mengekstrak pola yang penting atau menarik dari sejumlah data

yang sangat besar berupa pengetahuan yang selama ini tidak diketahui secara

manual.

Data mining muncul setelah banyak dari pemilik data baik perorangan

maupun organisasi mengalami penumpukan data yang telah terkumpul

selama beberapa tahun, misalnya data pembelian, data penjualan, data

nasabah, data transaksi, data akademik, dan sebagainya. Kemudian muncul

pertanyaan dari pemilik data tersebut, apa yang harus dilakukan terhadap

tumpukan data tersebut.

2.2. Proses Penambangan Data (Data Mining)

Data mining merupakan serangkaian proses yang terdiri dari langkah-

langkah sesuai pada Gambar 2.1 :

1. Data Selection (Seleksi Data)

Pada langkah ini, data yang relevan akan dianalisis yang diambil

dari sebuah basis data. Akan dilakukan analisis korelasi untuk analisis

fitur. Atribut-atribut data akan dicek apakah relevan ataupun atribut yang

mengalami redudansi tidak akan digunakan. Atribut yang diharapkan

adalah atribut yang bersifat independen. Artinya antara atribut satu

dengan atribut yang lain tidak saling mempengaruhi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

8

2. Data Cleaning (Pembersihan Data)

Pada langkah ini, noise data yang tidak konsisten akan dihapus. Di

dunia nyata, data cenderung tidak lengkap, noisy, dan tidak konsisten.

Pembersihan data secara rutin mencoba mendeteksi missing values,

memperhalus noise dari luar dengan mengidentifikasi outliers, dan

membenarkan ketidak konsistenan di dalam data.

3. Data Integration (Integrasi Data)

Pada langkah ini, akan dilakukan penggabungan data dari berbagai

macam sumber data. Data ini akan digabungkan ke dalam penyimpanan

data yang koheren. Macam-macam penyimpanan termasuk multiple

databases, data cubes, atau flat files. Hal-hal yang perlu diperhatikan

dalam integrasi data yaitu integrasi skema, pencocokan objek, redudansi

data.

4. Data Transformation (Transformasi Data)

Pada langkah ini, data ditransformasikan atau dikonsolidasi kedalam

bentuk-bentuk yang sesuai atau tepat untuk ditambang.

5. Data Mining (Penambangan Data)

Merupakan sebuah proses penting, dimana metode-metode

diaplikasikan dengan tepat untuk mengekstrak pola data.

6. Pattern Evaluation (Evaluasi Pola)

Mengidentifikasi pola yang sungguh-sungguh menarik untuk

merepresentasikan pengetahuan berdasarkan beberapa pengukuran yang

penting.

7. Knowledge Presentation (Presentasi Pengetahuan)

Teknik visualisasi dalam merepresentasikan pengetahuan yang

dipresentasikan kepada pengguna.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

9

Gambar 2.1. Langkah KDD ( Han & Kamber 2006)

2.3. Teknik Penambangan Data

Penambangan data dibagi menjadi beberapa teknik, seperti :

1. Association Rule

Teknik mining untuk menemukan aturan assosiatif antara suatu

kombinasi item. Contoh dari aturan assosiatif dari analisa pembelian

di suatu pasar swalayan adalah bisa diketahui berapa besar

kemungkinan seorang pelanggan membeli roti bersamaan dengan

susu. Dengan pengetahuan tersebut pemilik pasar swalayan dapat

mengatur penempatan barangnya atau merancang kampanye

pemasaran dengan memakai kupon diskon untuk kombinasi barang

tertentu. Penting tidaknya suatu aturan assosiatif dapat diketahui

dengan dua parameter, support yaitu persentase kombinasi item

tersebut dalam database dan confidence yaitu kuatnya hubungan

antar item dalam aturan assosiatif.

2. Classification

Proses untuk menemukan model atau fungsi yang menjelaskan atau

membedakan konsep atau kelas data, dengan tujuan untuk dapat

memperkirakan kelas dari suatu objek yang labelnya tidak diketahui.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

10

Model itu sendiri bisa berupa aturan “jika-maka”, berupa decision

tree, formula matematis atau neural network.

3. Clustering

Berbeda dengan association rule mining dan classification dimana

kelas data telah ditentukan sebelumnya, clustering melakukan

pengelompokan data tanpa berdasarkan kelas data tertentu. Bahkan

clustering dapat dipakai untuk memberikan label pada kelas data

yang belum diketahui itu. Karena itu clustering sering digolongkan

sebagai metode unsupervised learning. Prinsip dari clustering adalah

memaksimalkan kesamaan antar anggota satu kelas dan

meminimumkan kesamaan antar kelas/cluster. Clustering dapat

dilakukan pada data yan memiliki beberapa atribut yang dipetakan

sebagai ruang multidimensi.

2.4. Teknik Asosiasi

Teknik asosiasi adalah merupakan suatu metode penambangan data

untuk mencari pola asosiasi yang sering muncul dalam data. Metode ini

popular karena sering digunakan untuk menganalisis keranjang belanja.

Aturan yang terbentuk akan berupa “jika maka” dalam suatu transaksi. Bisa

digambarkan jika membeli barang A maka membeli barang B terjadi dalam

satu transaksi.

Hal penting dalam teknik asosiasi :

1. Item, Itemset, dan k-Itemset

Sebuah nilai atribut disebut dengan item, kumpulan dari beberapa

item disebut dengan itemset, dan k-itemset adalah itemset yang berisi

k item.

2. Support

Persentasi dari transaksi yang mengandung seluruh itemset. Semakin

banyak persentasi support yang didapat bisa disimpulkan bahwa item

tersebut laku dipasaran karena muncul dibanyak transaksi, dan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

11

sebaliknya semakin sedikit support yang diperoleh menandakan item

yang kurang laku.

… (2.1)

3. Confidence

Persentasi banyaknya A pada transaksi yang mengandung B.

… (2.2)

Support dan confidence adalah parameter yang digunakan untuk

mengukur aturan asosiasi. Aturan asosiasi tersebut dapat diperoleh dari

itemset yang mempunyai support dan confidence lebih besar dari minimum

support (minsup) dan minimum confidence (minconf).

Masalah yang mendasar dalam teknik asosiasi dibagi menjadi dua, yaitu

1. Menemukan seluruh itemset yang memiliki support >= minsup

Itemset yang memiliki support lebih besar atau sama dengan minsup

disebut dengan large itemset, sedangkan yang memiliki support lebih

kecil dari minimum support disebut dengan small itemset.

2. Menggunakan large itemset untuk menghasilkan aturan asosiasi yang

diinginkan.

Algoritma yang digunakan dalam teknik asosiasi antara lain :

1. Apriori

Algoritma ini mencari frequent itemset dari database transaksi

melalui beberapa tahap iterasi.

2. FP Growth

Algoritma ini berbeda dengan Apriori, tidak perlu melakukan

pencarian kandidat. Data direpresentasikan menggunakan Frequent

Pattern Tree melalui pendekatan devide and conquer untuk mendapat

frequent itemset.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

12

2.5.Algoritma Apriori

Langkah-langkah dari algoritma Apriori adalah sebagai berikut

(Ulmer,David,2002) :

1. Set k=1 (menunjuk pada itemset ke-1).

2. Hitung semua k-itemset (itemset yang mempunyai k item), untuk

mendapatkan candidate 1-itemset.

3. Hitung support dari semua calon itemset kemudian filter itemset tersebut

berdasarkan perhitungan minimum support, untuk mendapatkan frequent

1-itemset.

4. Gabungkan semua itemset berukuran k untuk menghasilkan calon

itemset k+1 atau candidate k-itemset.

5. Set k=k+1.

6. Ulangi langkah 3-5 sampai tidak ada itemset yang lebih besar yang dapat

dibentuk.

Apriori secara umum adalah mencari frequent itemset dari database

transaksi penjualan melalui beberapa tahap iterasi. Langkah pertama

algoritma ini adalah menghitung kejadian item untuk menentukan large 1-

itemset atau frequent itemset. Langkah berikutnya untuk large itemset

tersebut dilakukan penggabungan dari item yang telah lolos seleksi kemudian

itemset yang tidak lolos maka akan dihapus. Langkah berikutnya untuk item

yang telah lolos diiterasi tersebut maka akan digunakan untuk proses

selanjutnya, dan yang tidak lolos akan dihapus. Demikian langkah demi

langkah pencarian kandidat melalui iterasi sehingga memperoleh titik akhir

yang tidak dapat dilakukan iterasi lagi.

Untuk lebih jelasnya berikut ini merupakan contoh penerapan algoritma

Apriori untuk mencari aturan asosiasi :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

13

Tabel 2.1 Contoh Transaksi Penjualan

Transaksi Item yang dibeli

1 Susu, Teh, Gula

2 Teh, Gula, Roti

3 Teh, Gula

4 Susu, Roti

5 Susu, Gula, Roti

6 Teh, Gula

7 Gula, Kopi, Susu

8 Gula, Kopi, Susu

9 Susu, Roti, Kopi

10 Gula, Teh, Kopi

Dari table data transaksi tersebut akan dicari pola asosiasi dengan

minimal support lebih dari 20% dan confidence lebih dari 35%. Maka

penyelesaiannya :

1. Langkah pertama menentukan C1 atau candidate 1-itemset dam

jumlah kemunculan disemua transaksi.

Tabel 2.2 Contoh Penentuan C1

Kombinasi Jumlah

Teh 5

Gula 8

Kopi 4

Susu 6

Roti 4

Support 1-itemset

- Support(Teh) = 5/10 = 50%

- Support(Gula) = 8/10 = 80%

- Support(Kopi) = 4/10 = 40%

- Support(Susu) = 6/10 = 60%

- Support(Roti) = 4/10 = 40%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

14

2. Kumpulkan data item yang mempunyai kemunculan lebih atau sama

dengan 2 sehingga menjadi kombinasi data.

Tabel 2.3 Contoh Kombinasi Data

Kombinasi Jumlah

Teh, Gula 5

Teh, Kopi 1

Teh, Susu 1

Teh, Roti 1

Gula, Kopi 3

Gula, Susu 4

Gula, Roti 2

Kopi, Susu 3

Kopi, Roti 1

Susu, Roti 3

Support 2-itemset

- Support(Teh,Gula) = 5/10 = 50%

- Support(Gula,Kopi) = 3/10 = 30%

- Support(Gula,Susu) = 4/10 = 40%

- Support(Gula,Roti) = 2/10 = 20%

- Support(Kopi,Susu) = 3/10 = 30%

- Support(Susu,Roti) = 3/10 = 30%

Confidence 2-itemset

- Confidence(Teh,Gula) = 5/5 = 100%

- Confidence(Gula,Kopi) = 3/8 = 37.5%

- Confidence(Gula,Susu) = 4/8 = 50%

- Confidence(Gula,Roti) = 2/8 = 25%

- Confidence(Kopi,Susu) = 3/4 = 75%

- Confidence(Susu,Roti) = 3/6 = 50%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

15

3. Kemudian buat gabungan antara itemset yang lolos sehingga menjadi

3itemset dan jumlah kemunculan disetiap transaksi.

Tabel 2.4 Contoh Kombinasi Data

Kombinasi Jumlah

Teh, Gula, Kopi 1

Teh, Gula, Susu 1

Gula, Susu, Kopi 2

Gula, Susu, Roti 0

Gula, Kopi, Roti 0

Kopi, Susu, Roti 1

Support 3-itemset

- Support(Gula Susu, Kopi) = 2/10 = 20%

Confidence 3-itemset

- Confidence(Gula Susu,Kopi) = 2/4 = 50%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

16

BAB III

ANALISIS DAN DESAIN SISTEM

3.1.Identifikasi Sistem

XYZ Helm merupakan distributor penjualan helm yang melayani

permintaan helm. Banyak permintaan ini membuat perusahaan memiliki data

penjualan yang terus bertambah setiap harinya. Data tersebut disimpan

didalam bentuk database dengan program penjualan yang telah berjalan. Data

yang disimpan sangat beragam dan sangat banyak. Hal tersebut sebenarnya

dapat berguna bagi pemilik usaha jika diolah lebih dalam untuk menentukan

keterkaitan penjualan dari setiap barang yang ada. Namun untuk menemukan

keterkaitan tersebut tentusaja akan sulit jika harus memilah dari setiap

penjualan yang ada. Masalah ini dapat diatasi dengan adanya penambangan

data karena semua data penjualan yang ada akan diolah oleh sistem sehingga

pemilik usaha dapat melihat keterkaitan dengan mudah.

Sistem ini berfungsi sebagai alat bantu untuk XYZ Helm dalam

menganalisis pola penjualan helm. Sistem ini menggunakan algoritma asosiasi

dan menggunakan teknik apriori. Sistem akan mengolah penjualan, data

barang harus terlebih dahulu dimiliki dan dapat dimasukan pada master barang

yang disediakan. Setiap penjualan yang dilakukan direkap dengan menyimpan

juga data barang yang dijual sehingga dapat diketahui pada setiap nota

penjualan terdapat barang apa saja yang keluar. Data tersebut akan di simpan

dalam database, semakin banyak data yang dimiliki dapat membuat hasil

menjadi semakin baik. Data penjualan yang telah tersimpan akan diolah

dengan teknik apriori. Keluaran dari teknik tersebut akan berupa tingkat

keterkaitan dari barang yang telah dibeli oleh konsumen dari XYZ Helm,

sehingga dapat diketahui barang yang diminati.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

17

3.2.Analisis Sistem

Langkah-langkah dari algoritma Apriori adalah sebagai berikut

(Ulmer,David,2002) :

1. Set k=1 (menunjuk pada itemset ke-1).

2. Hitung semua k-itemset (itemset yang mempunyai k item), untuk

mendapatkan candidate 1-itemset.

3. Hitung support dari semua calon itemset kemudian filter itemset

tersebut berdasarkan perhitungan minimum support, untuk

mendapatkan frequent 1-itemset.

4. Gabungkan semua itemset berukuran k untuk menghasilkan calon

itemset k+1 atau candidate k-itemset.

5. Set k=k+1.

6. Ulangi langkah 3-5 sampai tidak ada itemset yang lebih besar yang

dapat dibentuk.

Data yang akan digunakan untuk penelitian ini adalah data penjualan dari

XYZ Helm. Data tersebut diperoleh dari database program yang telah

berjalan. Jumlah data untuk penelitian ini terdapat 726 record yang tersimpan

dalam tabel penjualan_det. Berikut penjelasan detail atribut tabel tersebut pada

Table 3.1

Table 3.1 Atribut Tabel Penjualan_det

No Nama Atribut Keterangan

1 no_faktur Nomor faktur penjualan

2 kode_item Kode item yang terjual

3 nama_item Nama item yang terjual

4 satuan Satuan item yang terjual

5 harga_jual Harga jual per item

6 jumlah_barang Jumlah item yang terjual

7 disc Diskon penjualan per item

8 jumlah_harga Total harga dikali jumlah item yang terjual

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

18

Data pada tabel tersebut masih merupakan data mentah, harus diproses

terlebih dahulu agar dapat dipakai untuk proses penambangan data.

3.3. Pemrosesan Data

Sebelum data dimasukan ke dalam sistem untuk proses penambangan

data, dilakukan pemrosesan awal terlebih dahulu. Pemrosesan tersebut

merupakan serangkaian langkah yang sesuai dengan KDD (Knowlage

Discovery in Database). Tidak semua langkah dilakukan dalam pemrosesan

awal tersebut karena dilihat dari data yang ada. Proses tersebut terdiri dari

langkah-langkah berikut :

1. Data Selection (Seleksi Data)

Proses seleksi data merupakan pemilihan data yang relevan untuk

penelitian. Pada database awal terdapat banyak atribut dalam tabel yang

tidak diperlukan karena tidak digunakan dalam proses penambangan

data. Sehingga dipilih beberapa atribut pada tabel 3.2.

Tabel 3.2 Atribut Untuk Penambangan

No Nama Atribut Keterangan

1 no_faktur Nomor faktur penjualan

2 kode_item Kode item yang terjual

3 nama_item Nama item yang terjual

4 jumlah_barang Jumlah item yang terjual

2. Data Cleaning (Pembersihan Data)

Proses pembersihan data merupakan langkah pertama yang harus

dilakukan. Dari data mentah yang ada dilakukan pembersihan dari data

yang tidak relevan. Namun dalam data penjualan ini tidak dilakukan

pembersihan karena data mentah tersebut dapat digunakan seluruhnya.

Record yang akan diolah berjumlah 726.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

19

3. Data Integration (Integrasi Data)

Proses integrasi data merupakan penggabungan data dari beberapa

sumber. Disini yang diperlukan untuk penambangan data adalah data

penjualan. Sementara data penjualan pada XYZ Helm terdapat dua jenis,

yaitu penjualan yang langsung dari toko dan penjualan canvaser. Untuk

itu diperlukan penggabungan terlebih dahulu dari rekap data penjualan

tersebut.

Tabel 3.3 Atribut Tabel Detailpenjualan

No Nama Atribut Keterangan

1 noFaktur Nomor faktur penjualan

2 kodeBarang Kode barang yang terjual

3 namaBarang Nama barang yang terjual

4 satuan Satuan item yang terjual

5 hargaJual Harga jual setelah diskon

6 quantity Jumlah barang terjual

7 discount Diskon per barang (%)

8 discountReal Diskon per barang (Rp)

9 discount2 Diskon kedua per barang (Rp)

10 total Total harga dari sejumlah barang

11 urut Urutan barang terjualan

12 hpp Harga pokok penjualan

13 hppdpp Harga pokok penjualan

14 hargasatuan Harga jual per barang

15 sisapesan Sisa pesan penjualan

16 statusReturOrder Status retur pemesanan

17 statusNotaKredit Status nota kredit penjualan

18 noUrut Urutan penjualan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

20

Tabel 3.4 Atribut Tabel Detailpenjualancanvaser

No Nama Atribut Keterangan

1 noFaktur Nomor faktur penjualan

2 kodeBarang Kode barang yang terjual

3 namaBarang Nama barang yang terjual

4 satuan Satuan item yang terjual

5 hargaJual Harga jual setelah diskon

6 quantity Jumlah barang terjual

7 discount Diskon per barang (%)

8 discountReal Diskon per barang (Rp)

9 discount2 Diskon kedua per barang (Rp)

10 total Total harga dari sejumlah barang

11 urut Urutan barang terjualan

12 hpp Harga pokok penjualan

13 hppdpp Harga pokok penjualan

14 hargasatuan Harga jual per barang

15 sisapesan Sisa pesan penjualan

16 statusReturOrder Status retur pemesanan

17 statusNotaKredit Status nota kredit penjualan

18 noUrut Urutan penjualan

19 kodeCanvaser Kode dari canvaser yang menjual

Dari kedua tabel diatas, akan dilakukan penggabungan menjadi satu

tabel untuk diolah. Tabel penggabungan tersebut merupakan tabel

penjualan_det pada Tabel 3.1.

4. Data Transformation (Transformasi Data)

Proses transformasi data merupakan proses pengubahan data

menjadi bentuk atau satuan yang tepat untuk ditambang. Pada data yang

dimiliki tidak memerlukan proses transformasi karena tidak memiliki

data continue karena data yang diambil adalah hasil masukkan program

sehingga tidak ada data kosong.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

21

5. Data Mining (Penambangan Data)

Proses penambangan data merupakan proses pengolahan data yang

telah didapat dari pemrosesan data. Pengolahan menggunakan algoritma

Apriori sebagai berikut :

1. Set k=1 (menunjuk pada itemset ke-1).

2. Hitung semua k-itemset (itemset yang mempunyai k item), untuk

mendapatkan candidate 1-itemset.

3. Hitung support dari semua calon itemset kemudian filter itemset

tersebut berdasarkan perhitungan minimum support, untuk

mendapatkan frequent 1-itemset.

4. Gabungkan semua itemset berukuran k untuk menghasilkan calon

itemset k+1 atau candidate k-itemset.

5. Set k=k+1.

6. Ulangi langkah 3-5 sampai tidak ada itemset yang lebih besar yang

dapat dibentuk.

6. Pattern Evaluation (Evaluasi Pola)

Proses evaluasi pola akan dilakukan dengan penggunaan lift ratio

untuk mengukur seberapa penting aturan yang telah didapat dari

program. Nilai ini akan menunjukkan kevalidan informasi apakah barang

A dibeli secara bersamaan dengan barang B, yang diperoleh dari hasil

perhitungan support dan confidence.

… (3.1)

Jika hasil perhitungan lift ratio lebih dari 1 maka dapat dikatakan

bahwa transaksi tersebut valid atau bisa dikatakan bahwa dalam

transaksi tersebut barang A dan B dibeli secara bersamaan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

22

7. Knowladge Presentation (Presentasi Pengetahuan)

Proses presentasi pengetahuan akan ditampilkan dalam bentuk

tabel java. Pada tabel tersebut akan ditampilkan asosiasi barang yang

dibeli secara bersamaan dan persentase jumlah support beserta

confidence. Dengan tampilan tersebut akan membantu mempermudah

pengguna untuk memahami hasil dari proses penambangan data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

23

3.4. Use Case Diagram

1.4.1. Diagram Use Case

Pada sistem ini aka ada 1 pengguna. Kegiatan yang dapat

dilakukan adalah menginput data, melihat histori penjualan, mencari

rule penjualan, dan melihat hasil apriori. Dari kegiatan yang dapat

dilakukan, terdapat 1 kegiatan yang terdapat keterangan depands on

yang artinya baru dapat dilakukan setelah kegiatan sebelumnya

dikerjakan. Ditunjukan pada Gambar 3.1

Gambar 3.1 Use Case

Menginput

Data Barang

Melihat

Histori

Penjualan

Melihat Hasil

Apriori

Pengguna

Mencari

rule penjualan

<<depands on>>

Menginput

Data

Penjualan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

24

1.4.2. Definisi Use Case

Deskripsi dari use case pada Gambar 3.1 dijabarkan dalam Tabel

3.5.

Tabel 3.5 Definisi Use Case

No Use Case Deskripsi

1 Menginput Data

Barang

Pengguna dapat menambahkan data barang. Data

tersebut dapat diinputkan sesuai dengan isian yang

telah disediakan pada sistem kemudian akan

tersimpan dalam database.

2 Menginput Data

Penjualan

Pengguna dapat menambahkan data penjualan. Data

tersebut dapat diinputkan sesuai dengan isian yang

telah disediakan pada sistem kemudian akan

tersimpan dalam database.

3 Melihat Histori

Penjualan

Pengguna dapat melihat histori data penjualan. Data

tersebut diperoleh dari database yang telah

menyimpan data dari setiap penjualan yang pernah

dilakukan.

4 Mencari Rule

Penjualan

Pengguna dapat mencari rule penjualan. Pada

kegiatan ini sebenarnya pengguna hanya akan

menekan tombol dan pencarian rule akan dilakukan

oleh sistem.

5 Melihat Hasil

Apriori

Pengguna dapat melihat hasil output dari algoritma

apriori. Hasil yang ditampilkan adalah hasil dari

pencarian rule yang telah dilakukan sebelumnya.

Hasil ini akan muncul jika kegiatan Mencari Rule

Penjualan telah selesai dikerjakan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

25

3.5.Diagram Aktivitas

1.5.1. Diagram Aktivitas Menginput Data

Menekan tombol Barang Menampilan form barang

Menyimpan ke databaseMenekan tombol Simpan

Memasukan data sesuai

field

Pengguna Sistem

Gambar 3.2 Diagram Aktivitas Menginput Data Barang

1.5.2. Diagram Aktivitas Menginput Data Penjualan

Menekan tombol

Penjualan

Menampilkan form

penjualan

Menyimpan ke databaseMenekan tombol Simpan

Memasukan data sesuai

field

Pengguna Sistem

Gambar 3.3 Diagram Aktivitas Menginput Data Penjualan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

26

1.5.3. Diagram Aktivitas Melihat Histori Penjualan

Menekan tombol Analisa

Menampilan form histori

penjualan

Pengguna Sistem

Mengambil data dari

database

Gambar 3.4 Diagram Aktivitas Melihat Histori Penjualan

1.5.4. Diagram Aktivitas Mencari Rule Penjualan

Menekan tombol Analisa

Menampilan form histori

penjualan

Menekan tombol Proses

Pengguna Sistem

Mengambil data dari

database

Menampilan form Apriori

Menghitung rule

penjualanMenekan tombol Analisa

Gambar 3.5 Diagram Aktivitas Mencari Rule Penjualan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

27

1.5.5. Diagram Aktivitas Melihat Hasil Apriori

Menekan tombol Analisa

Menampilan form histori

penjualan

Menekan tombol Proses

Pengguna Sistem

Mengambil data dari

database

Menampilan form Apriori

Menghitung rule

penjualanMenekan tombol Analisa

Menampilkan hasil pola

Gambar 3.6 Diagram Aktivitas Melihat Hasil Apriori

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

28

3.6. Diagram Sekuensial

1.6.1. Diagram Sekuensial Menginput Data

Mengisi data

barang

Form Barang

boudary

Barang

entity

tambahBarang()

Menekan

tombol Simpan

Gambar 3.7 Diagram Sekuensial Menginput Data Barang

1.6.2. Diagram Sekuensial Menginput Data Penjualan

Mengisi data

penjualan

Form

Penjualan

boudary

Barang

entity

tambahBarang()

Menekan

tombol Simpan

Gambar 3.8 Diagram Sekuensial Menginput Data Penjualan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

29

1.6.3. Diagram Sekuensial Melihat Histori Penjualan

Form Histori

Penjualan

boudary

Barang

entity

getAllDetail()

Menampilkan

data penjualan

Gambar 3.9 Diagram Sekuensial Melihat Histori Penjualan

1.6.4. Diagram Sekuensial Mencari Rule Penjualan

Form Histori

Penjualan

boudary

Barang

entity

getAllDetail()

Menampilkan

data penjualan

Form Apriori

boudary

Menekan tombol

Proses

Menekan tombol

Analisa

c2() c3()

Gambar 3.10 Diagram Sekuensial Mencari Rule Penjualan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

30

1.6.5. Diagram Sekuensial Melihat Hasil Apriori

Form Histori

Penjualan

boudary

Barang

entity

getAllDetail()

Menampilkan

data penjualan

Form Apriori

boudary

Menekan tombol

Proses

Menekan tombol

Analisac2() c3()

Menampilkan

hasil pola

Gambar 3.11 Diagram Sekuensial Melihat Hasil Apriori

3.7. ER Diagram

1.7.1. Model Data Konseptual

pelanggan beli barang punya merk

punya

tipe

1..*1..* 1..1 1..*

1..1

1..*

warnapunya

1..1

1..*

Gambar 3.12 ER Diagram Konseptual

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

31

1.7.2. Model Data Logikal

1. Tabel Warna

Tabel 3.6 Tabel Logikal Warna

Kode_warna Nama_warna

2. Tabel Merk

Tabel 3.7 Tabel Logikal Merk

kodemerk namamerk

3. Tabel Tipe

Tabel 3.8 Tabel Logikal Tipe

kodetipe namatipe kodemerk

4. Tabel Barang

Tabel 3.9 Tabel Logikal Barang

Kode_

item

Nama_

item

stok Harga_

beli

Harga_

jual

satuan kodemerk kodetipe kodewarna

5. Tabel Penjualan_det

Tabel 3.10 Tabel Logikal Penjualan_det

No_faktur Kode_item Nama_item satuan Harga_jual Jumlah_

barang

disc Jumlahh_

harga

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

32

6. Tabel Penjualan

Tabel 3.11 Tabel Logikal Penjualan

No_faktur Tgl_faktur Total_harga Diskon Grand_total Kode_pel

7. Tabel Pelanggan

Tabel 3.12 Tabel Logikal Pelanggan

Kode_pel Nama Alamat Kodepos telp

1.7.3. Model Data Fisikal

1. Tabel Merk

Tabel 3.13 Tabel Fisikal Merk

merk

kodemerk (PK)

namamerk

varchar(3)

varchar(40)

2. Tabel Tipe

Tabel 3.14 Tabel Fisikal Tipe

tipe

kodetipe (PK)

namatipe

kodemerk (FK)

varchar(5)

varchar(40)

varchar(3)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

33

3. Tabel Barang

Tabel 3.15 Tabel Fisikal Barang

barang

kode_item (PK)

nama_item

stok

harga_beli

harga_jual

satuan

kodemerk (FK)

kodetipe (FK)

kode_warna (FK)

varchar(15)

varchar(30)

int(11)

double

double

varchar(10)

varchar(4)

varchar(4)

varchar(4)

4. Tabel Penjualan_det

Tabel 3.16 Tabel Fisikal Penjualan_det

penjualan_det

no_faktur (FK)

kode_item (FK)

nama_item

satuan

harga_jual

jumlah_barang

disc

jumlah_harga

varchar(20)

varchar(30)

varchar(50)

varchar(11)

double

double

double

double

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

34

5. Tabel Penjualan

Tabel 3.17 Tabel Fisikal Penjualan

penjualan

no_faktur (PK)

tgl_faktur

total_harga

diskon

grand_total

kode_pel (FK)

varchar(20)

varchar(20)

double

double

double

varchar(20)

6. Tabel Pelanggan

Tabel 3.18 Tabel Fisikal Pelanggan

pelanggan

kode_pel (PK)

nama

alamat

kodepos

telp

varchar(15)

varchar(35)

varchar(30)

varchar(7)

varchar(13)

3.8. Desain Program

1. Menu Utama

Gambar 3.13 Desain Menu Utama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

35

2. Barang Form

Gambar 3.14 Desain Menu Barang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

36

3. Penjualan Form

Gambar 3.15 Desain Menu Penjualan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

37

4. DetailPenjualan Form

Gambar 3.16 Desain Histori Penjualan

5. Apriori Form

Gambar 3.17 Desain Menu Apriori

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

38

BAB IV

IMPLEMENTASI SISTEM

4.1. Spesifikasi hardware dan software

1.1.1. Spesifikasi hardware

1. Prosesor Intel Pentium Dual Core

2. Memori 2 GB

3. Hardisk 320 GB

1.1.2. Spesifikasi software

1. Sistem Operasi Windows 8.1 Pro

2. JDK1.8.0_65 dan JRE1.8.0_65

3. Netbeans IDE 6.8

4. SQLYog

4.2. Pembuatan Database

Pada bagian ini dilakukan pembuatan database baru pada MySQL dengan

bantuan SQLYog untuk menyimpan data-data yang akan digunakan. Adapun

langkah-langkah pembuatan database sebagai berikut :

1. Membuat database baru dengan nama apriori.

2. Pilih database yang baru saja dibuat kemudian Create table.

3. Buat tabel sesuai dengan perancangan yang telah dibuat.

4.3. Koneksi Java dan MySQL

Untuk menjembatani komunikasi data antara Java dengan MySQL perlu

digunakan JDBC (Java Databases Connectivity). Langkah untuk membuat

koneksi untuk keduanya, dengan :

1. Menambahkan driver dari library Java, yaitu MySQL JDBC Driver –

mysql-connector-java-5.16.bin.jar.

2. Membuat Java class untuk membuat koneksi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

39

Pada file koneksi.java ini ada fungsi yang berguna :

1. koneksiDatabase()

Fungsi ini digunakan untuk mendefinisikan letak dari database

yang akan dituju. Terdapat url, user, password yang akan

digunakan pengisian letaknya.

public class Koneksi {

private static Connection connection;

public Connection con;

public Statement stat;

public static Connection koneksiDatabase() throws SQLException {

if (connection == null) {

DriverManager.registerDriver(new Driver());

String url = "jdbc:mysql://localhost/aprioridataasli";

String user = "root";

String password = "admin";

connection = DriverManager.getConnection(url,user,password);

}

return connection;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

40

4.4. Implementasi Program

1.4.1. Halaman Utama

Halaman utama ini merupakan halaman yang ditampilkan pertama

kali ketika program dijalankan. Pada tampilan halaman ini, terdapat 3

tombol yaitu tombol barang, penjualan, dan analisis.

Gambar 4.1 Halaman Utama

1.4.2. Halaman Barang

Halaman ini merupakan halaman yang muncul ketika menekan

tombol barang di halaman utama. Halaman ini digunakan untuk

memasukan data barang baru atau melakukan edit untuk barang yang

sudah ada. Barang disini dapat digunakan untuk melakukan penjualan.

Dalam data barang ini, terdapat kode barang yang telah otomatis dari

program, kemudian merk, tipe, warna, dan satuan dalam bentuk combo

box. Lalu terdapat nama barang, stok, ritel setelah ppn, dan beli setelah

ppn yang dapat diisi oleh pengguna.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

41

Gambar 4.2 Halaman Barang

1.4.3. Halaman Penjualan

Halaman ini merupakan halaman yang muncul ketika menekan

tombol penjualan di halaman utama. Halaman ini digunakan untuk

menambahkan data penjualan. Data penjualan akan digunakan untuk

analisis dengan algoritma apriori. Pertama kali pengguna harus

memasukan pelanggan kemudian akan otomatis diikuti oleh alamat,

jika pelanggan telah ada dalam database. Lalu diikuti dengan

mengisikan barang yang dijual sehingga penjualan dapat di simpan

untuk proses berikutnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

42

Gambar 4.3 Halaman Penjualan

1.4.4. Halaman Histori Penjualan

Halaman ini merupakan halaman yang muncul ketika menekan

tombol analisis di halaman utama. Halaman ini digunakan untuk

menampilkan terlebih dahulu histori penjualan sebelum langkah

analisis menggunakan apriori. Disini ditampilkan tabel yang berisi no

faktur, kode barang, nama barang, dan jumlah. Pada tabel ini akan

muncul semua penjualan yang telah disimpan dalam database.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

43

Gambar 4.4 Halaman Histori Penjualan

1.4.5. Halaman Apriori

Halaman ini merupakan halaman yang muncul ketika menekan

tombol proses di halaman histori penjualan. Halaman ini digunakan

untuk menampilkan analisis dari data penjualan yang ada. Pertama kali

terlihat disini ada nilai minimum support, minimum confidence, dan

count. Nilai minimum support langsung diset sebesar 20%, minimum

confidence diset sebesar 50%, dan count disini terisi 126 sesuai dengan

jumlah penjualan yang ada. Terdapat juga textArea pada halaman ini,

nantinya akan digunakan untuk mengeluarkan hasil analisis algoritma

apriori.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

44

Gambar 4.5 Halaman Apriori

Ketika telah muncul halaman seperti Gambar 4.5, dapat menekan

tombol Analisis. Tombol ini berfungsi untuk menampilkan data pola

penjualan dari hasil analisis penjualan yang ada. Saat menekan tombol,

tunggu hingga proses selesai karena proses cukup memakan waktu

terlebih jika data penjualan berjumlah banyak. Tidak serta merta Count

sejumlah 126 transaksi tersebut adalah jumlah dari record yang akan

dioleh karena setiap penjualan akan mempunyai banyak barang yang

laku. Sebagai contoh jika pada setiap penjualan ada 5 barang terjual,

maka record yang akan diproses berjumlah 126 dikalikan 5 jadi

jumlahnya 730.

Dapat dilihat pada gambar 4.5, muncul hasil pola dari penjualan

yang ada. Muncul banyak pola penjualan karena minimum support

yang menjadi batas bisa dibilang cukup rendah. Untuk

memaksimalkan pola, bisa dinaikan juga minimum support dan

minimum confidence hingga batas yang pas.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

45

Gambar 4.6 Hasil Analisis

Seperti pada Gambar 4.6 diatas, hasil analisis dapat diperoleh dari

perhitungan yang dilakukan oleh program dan ditampilkan dalam

bentuk tabel. Penggunaan tabel untuk visualisasi diharapkan

mempermudah pengguna dalam mengambil pengetahuan. Kode

program yang digunakan dalam analisis tersebut sebagai berikut :

Koneksi koneksi=new Koneksi();

SQL sql=new SQL();

Vector<Apriori> dt=new Vector<Apriori>();

void isidata(){

dt.removeAllElements();

try{

int temp=Integer.parseInt(jTextField1.getText())*Integer.parseInt(jSpinner1.getValue().toString())/100;

System.out.println(temp);

koneksi.konek();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

46

ResultSet set = koneksi.stat.executeQuery("SELECT count(distinct(p.no_faktur)), t.namatipe " +

"FROM penjualan_det p, barang b, tipe t " +

"where b.tipe = t.kodetipe and p.kode_item = b.kode_item " +

"GROUP BY t.namatipe HAVING count(distinct(p.no_faktur)) >=1");

while(set.next()){

if(set.getInt("count(distinct(p.no_faktur))")>=temp ){

Apriori data=new Apriori();

data.setNama_item(set.getString("t.namatipe"));

data.setNilai(set.getInt("count(distinct(p.no_faktur))"));

dt.add(data);

}

}

set.close();

koneksi.stat.close();

koneksi.con.close();

} catch(Exception z){

JOptionPane.showMessageDialog(null, "Not Connect

"+z.getMessage(),"ERROR",JOptionPane.ERROR_MESSAGE);}

}

void c2(){

jTextArea1.setText("");

int n=0;

float bnyAB, bnyA, bnyB=0;

float supp,conf=0;

for(int a=0; a<dt.size();a++){

n++;

for(int b=0+n; b<dt.size();b++){

bnyAB=sql.c2(dt.get(a).getNama_item(), dt.get(b).getNama_item());

bnyA=dt.get(a).getNilai();

bnyB=dt.get(b).getNilai();

supp=bnyAB/Integer.parseInt(jTextField1.getText())*100;

if(supp>=Float.parseFloat(jSpinner1.getValue().toString())){

conf=(bnyAB/bnyA)*100;

if(conf>= Float.parseFloat(jSpinner2.getValue().toString())){

Apriori ap = new Apriori();

ap.setLeft(dt.get(a).getNama_item());

ap.setMid("=>");

ap.setRight(dt.get(b).getNama_item());

ap.setSupp(atur.format(supp));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

47

Apriori ap = new Apriori();

ap.setLeft(dt.get(a).getNama_item());

ap.setMid("=>");

ap.setRight(dt.get(b).getNama_item());

ap.setSupp(atur.format(supp));

ap.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVERE, null, ex);

}

}

conf=(bnyAB/bnyB)*100;

if(conf>= Float.parseFloat(jSpinner2.getValue().toString())){

Apriori ap2 = new Apriori();

ap2.setLeft(dt.get(b).getNama_item());

ap2.setMid("=>");

ap2.setRight(dt.get(a).getNama_item());

ap2.setSupp(atur.format(supp));

ap2.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap2);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

}

}

}

void c3(){

int n=0,m=0,o=0;

String item1,item2,item3="";

float bnyABC,bnyAB=0;

float supp,conf=0;

for(int a=0; a<dt.size();a++){ n++;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

48

void c3(){

int n=0,m=0,o=0;

String item1,item2,item3="";

float bnyABC,bnyAB=0;

float supp,conf=0;

for(int a=0; a<dt.size();a++){ n++;

for(int b=0+n ;b<dt.size();b++){

for(int c=0+b+1; c<dt.size();c++){

bnyABC=sql.c3(dt.get(a).getNama_item(), dt.get(b).getNama_item(), dt.get(c).getNama_item());

supp=bnyABC/Integer.parseInt(jTextField1.getText())*100;

if(supp>=Float.parseFloat(jSpinner1.getValue().toString())){

bnyAB=sql.c2(dt.get(a).getNama_item(), dt.get(b).getNama_item());

conf=(bnyABC/bnyAB)*100;

if(conf>= Float.parseFloat(jSpinner2.getValue().toString())) {

Apriori ap = new Apriori();

ap.setLeft(dt.get(a).getNama_item()+","+dt.get(b).getNama_item());

ap.setMid("=>");

ap.setRight(dt.get(c).getNama_item());

ap.setSupp(atur.format(supp));

ap.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVERE, null, ex);

}

}

bnyAB=sql.c2(dt.get(a).getNama_item(), dt.get(c).getNama_item());

conf=(bnyABC/bnyAB)*100;

if(conf>= Float.parseFloat(jSpinner2.getValue().toString())) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

49

Apriori ap2 = new Apriori();

ap2.setLeft(dt.get(a).getNama_item()+","+dt.get(c).getNama_item());

ap2.setMid("=>");

ap2.setRight(dt.get(b).getNama_item());

ap2.setSupp(atur.format(supp));

ap2.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap2);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVERE, null, ex);

}

}

bnyAB=sql.c2(dt.get(b).getNama_item(), dt.get(c).getNama_item());

conf=(bnyABC/bnyAB)*100;

if(conf>= Float.parseFloat(jSpinner2.getValue().toString())) {

Apriori ap3 = new Apriori();

ap3.setLeft(dt.get(b).getNama_item()+","+dt.get(c).getNama_item());

ap3.setMid("=>");

ap3.setRight(dt.get(a).getNama_item());

ap3.setSupp(atur.format(supp));

ap3.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap3);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

}

}

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

50

Seperti kode program diatas, terdapat method isidata yang pertama-

tama menghapus vector sehingga data dalam keadaan kosong.

Kemudian terdapat query untuk mengambil data barang yang ada

dalam transaksi. Lalu data akan disortir, jika data melebihi nilai temp

maka data akan dimasukan ke dalam vector untuk nantinya diolah

untuk menghasilkan rule.

Terdapat method c2 untuk mendapatkan rule penjualan. Terdapat

deklarasi n, bnyAB, bnyA, bnyB, supp, dan conf. Kemudian terdapat

looping untuk mengambil data a dan b. Lalu dihitung banyak

kemunculan bnyAB, bnyA, bnykB, dan supp. Jika nilai supp lebih dari

nilai minimal support yang telah ditentukan pada jSpinner1 maka

hitung conf. Bila nilai conf lebih dari nilai minimal confidence yang

telah ditentukan pada jSpinner2 maka rule tersebut akan disimpan pada

database.

4.5. Pengujian Program

Pengujian program dilakukan untuk mengetahui validitas penghitungan

pada program. Pengujian akan menggunakan beberapa data yang diambil

untuk sample percobaan. Pengujian akan membandingkan hasil dari program

dan perhitungan manual menggunakan excel untuk membuktikan tingkat

kevalidan program sebelum dijalankan pada kasus nyata.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

51

Gambar 4.7 Data Penjualan

Gambar 4.8 Hasil Rule Program

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

52

Gambar 4.9 Hasil Manual Excel

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

53

BAB V

ANALISIS SISTEM

5.1. Analisis Sistem Pengujian

Setelah program telah selesai dibuat, pada tahap ini dilakukan uji coba

program dengan data yang telah didapat dari record transaksi toko XYZ.

Data yang akan diolah berjumlah 798 record untuk mendapatkan aturan

asosiasi.

Pengujian

Sumber Data : Tabel penjualan_det Jumlah Transaksi : 126

Jumlah Baris : 798 Jumlah Jenis Barang : 18

Tabel 5.1 Hasil Pengujian

Minimum Support 20% 30% 40%

Minimum Confidence 50% 50% 50%

Large Itemset 12 9 7

Jumlah Barang 7 5 4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

54

Gambar 4.1 Hasil Apriori

Selain hasil pengujian di atas, dapat ditarik kesimpulan bahwa nilai

support dan confidence dapat digunakan untuk promosi penjualan dengan

penentuan diskon atau bonus. Rule yang menggandung support yang tinggi

adalah penjualan barang yang laku, yang dapat disimpulkan dari banyak

terdapat barang tersebut dalam transaksi yang ada dan sebaliknya. Dengan

begitu dapat membantu dalam membuat pemecahan masalah. Barang yang

tidak muncul dalam minimum support dapat digunakan sebagai bonus

pembelian barang yang memiliki support lebih tinggi sehingga barang yang

memiliki support kecil dapat terbuang dari gudang karena tidak laku pada

penjualan. Dengan kemungkinan seperti itu dapat ditarik kesimpulan juga

bahwa barang yang memiliki support tinggi bisa diperbanyak stok barang

karena sangat laku dalam penjualan dan dapat memberikan keuntungan bagi

toko.

Untuk menguji hasil dilakukan dengan penggunaan lift ratio untuk

mengukur seberapa penting aturan yang telah didapat dari program. Nilai ini

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

55

akan menunjukkan kevalidan informasi apakah barang A dibeli secara

bersamaan dengan barang B.

Tabel 5.2 Hasil Perhitungan Lift Ratio

Rule Lift Ratio

EVO SOLID - SR => XTREAM CL 1.96

SUPERCROSS NEUT… => XTREAM CL 1.64

TEEN HELLO KITTY.. => XTREAM CL 1.52

VISTRO SOLID - 2V => XTREAM CL 1.12

Jika hasil perhitungan lift ratio lebih dari 1 maka dapat dikatakan bahwa

transaksi tersebut valid atau bisa dikatakan bahwa dalam transaksi tersebut

barang A dan B dibeli secara bersamaan.

5.2. Manfaat Sistem

Manfaat yang diperoleh dengan adanya sistem sebagai berikut :

1. Pengguna dapat melakukan pencarian pola penjualan sehingga dapat

diketahui barang yang dibeli oleh konsumen secara bersamaan.

2. Pola penjualan yang tersedia dapat dianalisa oleh pengguna sehingga

dapat menjadi rekomendasi untuk pengembangan usaha, seperti menjadi

media promosi penjualan.

5.3. Kelebihan dan Kekurangan Program

5.3.1. Kelebihan Program

1. Program dapat mengolah data histori penjualan yang tidak

digunakan sehingga mendapatkan pola penjualan.

2. Program dapat menyajikan pengolahan data dengan mudah

sehingga pengguna tinggal menunggu hasil proses olah data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

56

5.3.2. Kekurangan Program

1. Program yang telah dibuat masih sangat sederhana hanya terfokus

pada penjualan dan penerapan algoritma Apriori.

2. Program hanya dapat mengolah penjualan helm yang telah masuk

ke dalam database sehingga terbatas terhadapt data helm.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

57

BAB VI

PENUTUP

6.1.Kesimpulan

Dari hasil penelitian yang telah dilakukan, maka dapat diperoleh beberapa

kesimpulan antara lain :

1. Algoritma Apriori dapat diimplementasikan untuk mendapatkan pola

penjualan dari histori yang ada.

2. Berdasarkan hasil pola penjualan dapat memberikan pengetahuan bagi

pengguna untuk mengoptimalkan penjualan, semakin besar support yang

muncul pada output maka barang tersebut paling laku untuk dijual.

6.2. Saran

Saran yang dapat diberikan oleh penulis antara lain :

1. Penelitian dapat diperbanyak jumlah data penjualan sehingga dapat

mendapatkan hasil dengan persentase yang lebih tinggi.

2. Input data penjualan dapat dibuat lebih universal sehingga dapat

digunakan untuk data-data penjualan selain penjualan helm.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

58

DAFTAR PUSTAKA

Kusrini dan Luthfi. 2009. Algoritma Data Mining. Yogyakarta : Andi

Offset.

Han, J. & Kamber, M. 2006. Second Edition : Data Mining Concepts

and Techniques, Chapter 2.

Iskandar Yoni. 23 Agustus 2014. Pertambahan Jumlah Kendaraan di

DIY dari Tahun ke Tahun. diakses pada tanggal 27 Agustus 2015

dari tribunnews.com/regional/2014/08/23/pertambahan-jumlah-

kendaraan-di-diy-dari-tahun-ke-tahun

Ulmer,David (2002), Mining an Online Auction Data Warehouse

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

59

LAMPIRAN

1. Apriori

i. Apriori

package Apriori;

import Koneksi.Koneksi;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

/**

*

* @author Doni

*/

public class Apriori {

private String kode_item;

private String nama_item;

private int nilai;

private String left;

private String mid;

private String right;

private String supp;

private String conf;

private Connection conn;

private final String SQL_SIMPAN = "insert into

apriori(dtleft, dtmid, dtright, supp, conf) " +

"values(?,?,?,?,?)";

private final String SQL_DELETE = "delete from apriori";

private final String SQL_GETALL = "select * from

apriori";

public Apriori(Connection koneksi) {

this.conn = koneksi;

}

public static Apriori KoneksiDataBase() throws

SQLException {

Apriori kon = new Apriori(Koneksi.koneksiDatabase());

return kon;

}

Apriori() {

}

public String getKode_item() {

return kode_item;

}

public void setKode_item(String kode_item) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

60

this.kode_item = kode_item;

}

public String getNama_item() {

return nama_item;

}

public void setNama_item(String nama_item) {

this.nama_item = nama_item;

}

public int getNilai() {

return nilai;

}

public void setNilai(int nilai) {

this.nilai = nilai;

}

public String getLeft() {

return left;

}

public void setLeft(String left) {

this.left = left;

}

public String getMid() {

return mid;

}

public void setMid(String mid) {

this.mid = mid;

}

public String getRight() {

return right;

}

public void setRight(String right) {

this.right = right;

}

public String getSupp() {

return supp;

}

public void setSupp(String supp) {

this.supp = supp;

}

public String getConf() {

return conf;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

61

public void setConf(String conf) {

this.conf = conf;

}

public void simpanRule(Apriori apriori) throws

SQLException {

PreparedStatement statement = null;

try {

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_SIMPAN);

statement.setString(1, apriori.getLeft());

statement.setString(2, apriori.getMid());

statement.setString(3, apriori.getRight());

statement.setString(4, apriori.getSupp());

statement.setString(5, apriori.getConf());

statement.executeUpdate();

conn.commit();

} catch (SQLException x) {

conn.rollback();

throw x;

} finally {

try {

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public void deleteRule() throws SQLException {

PreparedStatement statement = null;

PreparedStatement statement1 = null;

try {

conn.setAutoCommit(false);

statement1 = conn.prepareStatement(SQL_DELETE);

statement1.executeUpdate();

conn.commit();

} catch (SQLException x) {

conn.rollback();

throw x;

} finally {

try {

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

62

public List<Apriori> getAll() throws SQLException {

PreparedStatement statement = null;

ResultSet reset = null;

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_GETALL);

reset = statement.executeQuery();

List<Apriori> barang = new ArrayList <Apriori>();

while (reset.next()) {

Apriori apriori = new Apriori();

apriori.setLeft(reset.getString("dtleft"));

apriori.setMid(reset.getString("dtmid"));

apriori.setRight(reset.getString("dtright"));

apriori.setSupp(reset.getString("supp"));

apriori.setConf(reset.getString("conf"));

barang.add(apriori);

}

conn.commit();

return barang;

}

}

ii. AprioriForm

package Apriori;

import Koneksi.Koneksi;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.text.NumberFormat;

import java.util.List;

import java.util.Vector;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

/**

*

* @author Doni

*/

public class AprioriForm extends javax.swing.JFrame {

NumberFormat atur = NumberFormat.getInstance();

/** Creates new form AprioriForm */

public AprioriForm() throws SQLException {

initComponents();

jTextField1.setText(String.valueOf(sql.bnyTransaksi()));

isidata();

atur.setMaximumFractionDigits(2);

jSpinner1.setValue(20);

jSpinner2.setValue(50);

jTextArea1.setVisible(false);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

63

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated

Code">

private void initComponents() {

jLabel8 = new javax.swing.JLabel();

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jPanel2 = new javax.swing.JPanel();

jSpinner1 = new javax.swing.JSpinner();

jSpinner2 = new javax.swing.JSpinner();

jTextField1 = new javax.swing.JTextField();

jLabel3 = new javax.swing.JLabel();

jLabel4 = new javax.swing.JLabel();

jLabel5 = new javax.swing.JLabel();

jLabel6 = new javax.swing.JLabel();

jLabel7 = new javax.swing.JLabel();

jLabel9 = new javax.swing.JLabel();

jLabel10 = new javax.swing.JLabel();

jLabel11 = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

jTextArea1 = new javax.swing.JTextArea();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jScrollPane2 = new javax.swing.JScrollPane();

jTable1 = new javax.swing.JTable();

jLabel8.setText("jLabel8");

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_

CLOSE);

getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder

(javax.swing.border.BevelBorder.RAISED));

jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18));

jLabel1.setText("Apriori");

jLabel2.setText("Digunakan untuk analisa penjualan

dengan Apriori");

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

64

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addComponent(jLabel1)

.addComponent(jLabel2))

.addContainerGap(447, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(jLabel1,

javax.swing.GroupLayout.PREFERRED_SIZE, 35,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(jLabel2)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

getContentPane().add(jPanel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 700, -

1));

jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorde

r());

jPanel2.setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jPanel2.add(jSpinner1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(140, 20, 55, -

1));

jPanel2.add(jSpinner2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(410, 20, 55, -

1));

jTextField1.setEditable(false);

jTextField1.setText("200");

jPanel2.add(jTextField1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(620, 20, 45, -

1));

jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11));

jLabel3.setText("Minimum Support");

jPanel2.add(jLabel3, new

org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, -1, -

1));

jLabel4.setText("Nilai minimum pembelian barang yang

sama");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

65

jPanel2.add(jLabel4, new

org.netbeans.lib.awtextra.AbsoluteConstraints(10, 40, -1, -

1));

jLabel5.setText("%");

jPanel2.add(jLabel5, new

org.netbeans.lib.awtextra.AbsoluteConstraints(200, 20, -1, -

1));

jLabel6.setFont(new java.awt.Font("Tahoma", 1, 11));

jLabel6.setText("Minimum Confidence");

jPanel2.add(jLabel6, new

org.netbeans.lib.awtextra.AbsoluteConstraints(280, 20, -1, -

1));

jLabel7.setText("Nilai minimum kepercayaan item

barang");

jPanel2.add(jLabel7, new

org.netbeans.lib.awtextra.AbsoluteConstraints(280, 40, -1, -

1));

jLabel9.setText("%");

jPanel2.add(jLabel9, new

org.netbeans.lib.awtextra.AbsoluteConstraints(470, 20, -1, -

1));

jLabel10.setFont(new java.awt.Font("Tahoma", 1, 11));

jLabel10.setText("Count");

jPanel2.add(jLabel10, new

org.netbeans.lib.awtextra.AbsoluteConstraints(570, 20, -1, -

1));

jLabel11.setText("Jumlah transaksi");

jPanel2.add(jLabel11, new

org.netbeans.lib.awtextra.AbsoluteConstraints(570, 40, -1, -

1));

getContentPane().add(jPanel2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 70, 700,

80));

jTextArea1.setColumns(20);

jTextArea1.setRows(5);

jScrollPane1.setViewportView(jTextArea1);

jButton1.setText("Analisa");

jButton1.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jButton2.setText("Keluar");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

66

jButton2.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jTable1.setModel(new

javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null, null, null},

{null, null, null, null, null},

{null, null, null, null, null},

{null, null, null, null, null}

},

new String [] {

"LEFT", " ", "RIGHT", "SUPP", "CONF"

}

));

jScrollPane2.setViewportView(jTable1);

javax.swing.GroupLayout jPanel3Layout = new

javax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel3Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane1,

javax.swing.GroupLayout.DEFAULT_SIZE, 680, Short.MAX_VALUE))

.addGroup(jPanel3Layout.createSequentialGroup()

.addContainerGap(554,

Short.MAX_VALUE)

.addComponent(jButton1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(jButton2))

.addGroup(jPanel3Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane2,

javax.swing.GroupLayout.DEFAULT_SIZE, 680, Short.MAX_VALUE)))

.addContainerGap())

);

jPanel3Layout.setVerticalGroup(

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

67

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel3Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane2,

javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)

.addGap(18, 18, 18)

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 9,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jButton1)

.addComponent(jButton2))

.addGap(17, 17, 17))

);

getContentPane().add(jPanel3, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 150, 700,

300));

pack();

}// </editor-fold>

private void

jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

try {

Apriori.KoneksiDataBase().deleteRule();

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

c2();

c3();

try {

List<Apriori> apriori = (List<Apriori>)

Apriori.KoneksiDataBase().getAll();

AprioriTableModel model = new

AprioriTableModel(apriori);

jTable1.setModel(model);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

}

private void

jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

this.dispose();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

68

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

try {

new AprioriForm().setVisible(true);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel7;

private javax.swing.JLabel jLabel8;

private javax.swing.JLabel jLabel9;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JSpinner jSpinner1;

private javax.swing.JSpinner jSpinner2;

private javax.swing.JTable jTable1;

private javax.swing.JTextArea jTextArea1;

private javax.swing.JTextField jTextField1;

// End of variables declaration

Koneksi koneksi = new Koneksi();

SQL sql = new SQL();

Vector<Apriori> dt = new Vector<Apriori>();

void isidata() {

dt.removeAllElements();

try {

int temp =

Integer.parseInt(jTextField1.getText()) *

Integer.parseInt(jSpinner1.getValue().toString()) / 100;

System.out.println(temp);

koneksi.konek();

ResultSet set = koneksi.stat.executeQuery("SELECT

count(distinct(p.no_faktur)), t.namatipe "

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

69

+ "FROM penjualan_det p, barang b, tipe t

"

+ "where b.tipe = t.kodetipe and

p.kode_item = b.kode_item "

+ "GROUP BY t.namatipe HAVING

count(distinct(p.no_faktur)) >=1");

while (set.next()) {

if

(set.getInt("count(distinct(p.no_faktur))") >= temp) {

Apriori data = new Apriori();

data.setNama_item(set.getString("t.namatipe"));

data.setNilai(set.getInt("count(distinct(p.no_faktur))"));

dt.add(data);

}

}

set.close();

koneksi.stat.close();

koneksi.con.close();

} catch (Exception z) {

JOptionPane.showMessageDialog(null, "Not Connect

" + z.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);

}

}

void c2() {

jTextArea1.setText("");

int n = 0;

float bnyAB, bnyA, bnyB = 0;

float supp, conf = 0;

for (int a = 0; a < dt.size(); a++) {

n++;

for (int b = 0 + n; b < dt.size(); b++) {

bnyAB = sql.c2(dt.get(a).getNama_item(),

dt.get(b).getNama_item());

bnyA = dt.get(a).getNilai();

bnyB = dt.get(b).getNilai();

supp = bnyAB /

Integer.parseInt(jTextField1.getText()) * 100;

if (supp >=

Float.parseFloat(jSpinner1.getValue().toString())) {

conf = (bnyAB / bnyA) * 100;

if (conf >=

Float.parseFloat(jSpinner2.getValue().toString())) {

System.out.println(bnyAB + " " +

bnyA);

//

jTextArea1.setText(jTextArea1.getText()+" Jika membeli \"

"+dt.get(a).getNama_item()+" \" maka akan membeli \"

"+dt.get(b).getNama_item()+" \" dengan Supp

"+atur.format(supp)+"% dan Conf "+atur.format(conf)+"% \n");

Apriori ap = new Apriori();

ap.setLeft(dt.get(a).getNama_item());

ap.setMid("=>");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

70

ap.setRight(dt.get(b).getNama_item());

ap.setSupp(atur.format(supp));

ap.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

}

conf = (bnyAB / bnyB) * 100;

if (conf >=

Float.parseFloat(jSpinner2.getValue().toString())) {

System.out.println(bnyAB + " " +

bnyB);

Apriori ap2 = new Apriori();

ap2.setLeft(dt.get(b).getNama_item());

ap2.setMid("=>");

ap2.setRight(dt.get(a).getNama_item());

ap2.setSupp(atur.format(supp));

ap2.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap2);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

}

}

}

}

}

void c3() {

int n = 0, m = 0, o = 0;

String item1, item2, item3 = "";

float bnyABC, bnyAB = 0;

float supp, conf = 0;

for (int a = 0; a < dt.size(); a++) {

n++;

for (int b = 0 + n; b < dt.size(); b++) {

for (int c = 0 + b + 1; c < dt.size(); c++) {

bnyABC = sql.c3(dt.get(a).getNama_item(),

dt.get(b).getNama_item(), dt.get(c).getNama_item());

supp = bnyABC /

Integer.parseInt(jTextField1.getText()) * 100;

if (supp >=

Float.parseFloat(jSpinner1.getValue().toString())) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

71

bnyAB =

sql.c2(dt.get(a).getNama_item(), dt.get(b).getNama_item());

conf = (bnyABC / bnyAB) * 100;

if (conf >=

Float.parseFloat(jSpinner2.getValue().toString())) {

Apriori ap = new Apriori();

ap.setLeft(dt.get(a).getNama_item() + "," +

dt.get(b).getNama_item());

ap.setMid("=>");

ap.setRight(dt.get(c).getNama_item());

ap.setSupp(atur.format(supp));

ap.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

}

bnyAB =

sql.c2(dt.get(a).getNama_item(), dt.get(c).getNama_item());

conf = (bnyABC / bnyAB) * 100;

if (conf >=

Float.parseFloat(jSpinner2.getValue().toString())) {

Apriori ap2 = new Apriori();

ap2.setLeft(dt.get(a).getNama_item() + "," +

dt.get(c).getNama_item());

ap2.setMid("=>");

ap2.setRight(dt.get(b).getNama_item());

ap2.setSupp(atur.format(supp));

ap2.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap2);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

}

bnyAB =

sql.c2(dt.get(b).getNama_item(), dt.get(c).getNama_item());

conf = (bnyABC / bnyAB) * 100;

if (conf >=

Float.parseFloat(jSpinner2.getValue().toString())) {

Apriori ap3 = new Apriori();

ap3.setLeft(dt.get(b).getNama_item() + "," +

dt.get(c).getNama_item());

ap3.setMid("=>");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

72

ap3.setRight(dt.get(a).getNama_item());

ap3.setSupp(atur.format(supp));

ap3.setConf(atur.format(conf));

try {

Apriori.KoneksiDataBase().simpanRule(ap3);

} catch (SQLException ex) {

Logger.getLogger(AprioriForm.class.getName()).log(Level.SEVER

E, null, ex);

}

}

}

}

}

}

}

}

iii. AprioriTableModel

package Apriori;

import Barang.*;

import java.util.ArrayList;

import java.util.List;

import javax.swing.table.AbstractTableModel;

/**

*

* @author Doni

*/

public class AprioriTableModel extends AbstractTableModel {

private List<Apriori> apriori = new ArrayList<Apriori>();

public AprioriTableModel(List<Apriori> apriori) {

this.apriori = apriori;

}

public int getRowCount() {

return apriori.size();

}

public int getColumnCount() {

return 5;

}

public Object getValueAt(int rowIndex, int columnIndex) {

Apriori k = apriori.get(rowIndex);

switch (columnIndex) {

case 0:

return k.getLeft();

case 1:

return k.getMid();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

73

case 2:

return k.getRight();

case 3:

return k.getSupp();

case 4:

return k.getConf();

default:

return "";

}

}

@Override

public String getColumnName(int column) {

switch (column) {

case 0:

return "LEFT";

case 1:

return "=>";

case 2:

return "RIGHT";

case 3:

return "SUPP";

case 4:

return "CONF";

default:

return "";

}

}

}

2. Barang

a. Barang

package Barang;

/**

*

* @author Doni

*/

public class Barang {

private String kodeBarang; //KODE_ITEM

private String merk;

private String tipe;

private String warna;

private String namaBarang; //NAMA_ITEM

private int stokBarang; //STOK

private double hargaBeli; //HARGA_BELI

private double hargaJual; //HARGA_JUAL

private String satuan; //SATUAN

public String getKodeBarang() {

return kodeBarang;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

74

public void setKodeBarang(String kodeBarang) {

this.kodeBarang = kodeBarang;

}

public String getMerk() {

return merk;

}

public void setMerk(String merk) {

this.merk = merk;

}

public String getTipe() {

return tipe;

}

public void setTipe(String tipe) {

this.tipe = tipe;

}

public String getWarna() {

return warna;

}

public void setWarna(String warna) {

this.warna = warna;

}

public String getNamaBarang() {

return namaBarang;

}

public void setNamaBarang(String namaBarang) {

this.namaBarang = namaBarang;

}

public int getStokBarang() {

return stokBarang;

}

public void setStokBarang(int stokBarang) {

this.stokBarang = stokBarang;

}

public double getHargaBeli() {

return hargaBeli;

}

public void setHargaBeli(double hargaBeli) {

this.hargaBeli = hargaBeli;

}

public double getHargaJual() {

return hargaJual;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

75

public void setHargaJual(double hargaJual) {

this.hargaJual = hargaJual;

}

public String getSatuan() {

return satuan;

}

public void setSatuan(String satuan) {

this.satuan = satuan;

}

}

b. BarangForm

package Barang;

import Koneksi.Koneksi;

import Merk.Merk;

import Merk.MerkKontrol;

import Tipe.Tipe;

import Tipe.TipeKontrol;

import Warna.Warna;

import Warna.WarnaKontrol;

import java.sql.Connection;

import java.sql.SQLException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.view.JasperViewer;

/**

*

* @author masdonzdulz

*/

public class BarangForm extends javax.swing.JFrame {

/** Creates new form BarangForm */

public BarangForm() throws SQLException {

initComponents();

isiMerk();

isiTipe();

isiWarna();

resetfield();

jLabel9.setVisible(false);

jLabel11.setVisible(false);

RitelSblmPPNTextField.setVisible(false);

BeliSblmPPNTextField.setVisible(false);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

76

InternalFrame.setVisible(false);

SimpanButton.setEnabled(false);

HapusButton.setEnabled(false);

KodeBarangTextField.setEnabled(false);

}

private void isiMerk() throws SQLException {

List<Merk> merks =

MerkKontrol.KoneksiDataBase().getAllMerk();

for (Merk k : merks) {

merkCombo.addItem(k.getKodeMerk() + " " +

k.getNamaMerk());

}

}

private void isiTipe() throws SQLException {

String pilih =

String.valueOf(merkCombo.getSelectedItem().toString().substri

ng(0, 3));

System.out.println(pilih);

tipeCombo.removeAllItems();

List<Tipe> tipes =

TipeKontrol.KoneksiDataBase().getAllTipeByMerk(pilih);

for (Tipe t : tipes) {

tipeCombo.addItem(t.getKodeTipe() + " " +

t.getNamaTipe());

}

}

private void isiWarna() throws SQLException {

List<Warna> warnas =

WarnaKontrol.KoneksiDataBase().getAllWarna();

for (Warna w : warnas) {

warnaCombo.addItem(w.getKodeWarna() + " " +

w.getNamaWarna());

}

}

private void checkFormatAngka(String angka) {

if (!angka.matches("[0-9]*")) {

JOptionPane.showMessageDialog(rootPane, "Format

Salah, Masukkan Harus Angka");

RitelStlhPPNTextField.setText("");

BeliStlhPPNTextField.setText("");

stokTF.setText("");

}

}

private void resetfield() {

KodeBarangTextField.setText("");

NamaBarangTextField.setText("");

stokTF.setText("");

RitelSblmPPNTextField.setText("");

RitelStlhPPNTextField.setText("");

BeliSblmPPNTextField.setText("");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

77

BeliStlhPPNTextField.setText("");

merkCombo.setSelectedIndex(0);

tipeCombo.setSelectedIndex(0);

warnaCombo.setSelectedIndex(0);

automaticNumber();

SimpanButton.setText("Simpan");

SimpanButton.setEnabled(false);

HapusButton.setEnabled(false);

}

private void automaticNumber() {

try {

merkCombo.setEditable(true);

tipeCombo.setEditable(true);

warnaCombo.setEditable(true);

String pilih =

String.valueOf(merkCombo.getSelectedItem());

String merk = pilih.toString().substring(0, 2);

String pilih2 =

String.valueOf(tipeCombo.getSelectedItem());

String tipe = pilih2.toString().substring(0, 3);

String pilih3 =

String.valueOf(warnaCombo.getSelectedItem());

String warna = pilih3.toString().substring(0, 2);

long kd =

BarangKontrol.KoneksiDataBase().cekKode();

String kode = String.valueOf(kd);

String hasilkode = "";

if (kd < 10) {

hasilkode = merk + tipe + warna + "00" +

kode;

} else if (kd < 100) {

hasilkode = merk + tipe + warna + "0" + kode;

} else if (kd >= 100) {

hasilkode = merk + tipe + warna + kode;

}

KodeBarangTextField.setText(hasilkode);

} catch (SQLException ex) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

}

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this

method is

* always regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated

Code">

private void initComponents() {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

78

InternalFrame = new javax.swing.JInternalFrame();

jScrollPane1 = new javax.swing.JScrollPane();

ListTable = new javax.swing.JTable();

jLabel12 = new javax.swing.JLabel();

caribarangtextfield = new javax.swing.JTextField();

ExitListButton = new javax.swing.JButton();

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jPanel2 = new javax.swing.JPanel();

jPanel3 = new javax.swing.JPanel();

jLabel3 = new javax.swing.JLabel();

KodeBarangTextField = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

jLabel5 = new javax.swing.JLabel();

jLabel7 = new javax.swing.JLabel();

NamaBarangTextField = new javax.swing.JTextField();

satuanCombo = new javax.swing.JComboBox();

stokTF = new javax.swing.JTextField();

merkCombo = new javax.swing.JComboBox();

tipeCombo = new javax.swing.JComboBox();

warnaCombo = new javax.swing.JComboBox();

jLabel13 = new javax.swing.JLabel();

jLabel14 = new javax.swing.JLabel();

jLabel15 = new javax.swing.JLabel();

jPanel4 = new javax.swing.JPanel();

jLabel8 = new javax.swing.JLabel();

RitelStlhPPNTextField = new javax.swing.JTextField();

jLabel9 = new javax.swing.JLabel();

RitelSblmPPNTextField = new javax.swing.JTextField();

jPanel5 = new javax.swing.JPanel();

jLabel10 = new javax.swing.JLabel();

BeliStlhPPNTextField = new javax.swing.JTextField();

jLabel11 = new javax.swing.JLabel();

BeliSblmPPNTextField = new javax.swing.JTextField();

jPanel6 = new javax.swing.JPanel();

CetakButton = new javax.swing.JButton();

SimpanButton = new javax.swing.JButton();

HapusButton = new javax.swing.JButton();

ListButton = new javax.swing.JButton();

BatalButton = new javax.swing.JButton();

KeluarButton = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_

CLOSE);

getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

InternalFrame.setVisible(true);

InternalFrame.getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

ListTable.setModel(new

javax.swing.table.DefaultTableModel(

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

79

new Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},

new String [] {

"Kode Barang", "Nama Barang", "Harga Beli",

"Harga Jual"

}

));

ListTable.addMouseListener(new

java.awt.event.MouseAdapter() {

public void

mouseClicked(java.awt.event.MouseEvent evt) {

ListTableMouseClicked(evt);

}

});

jScrollPane1.setViewportView(ListTable);

InternalFrame.getContentPane().add(jScrollPane1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, 400,

90));

jLabel12.setText("Nama barang yang dicari");

InternalFrame.getContentPane().add(jLabel12, new

org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, 160,

20));

caribarangtextfield.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

caribarangtextfieldActionPerformed(evt);

}

});

caribarangtextfield.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent

evt) {

caribarangtextfieldKeyReleased(evt);

}

});

InternalFrame.getContentPane().add(caribarangtextfield, new

org.netbeans.lib.awtextra.AbsoluteConstraints(170, 20, 230, -

1));

ExitListButton.setText("Exit");

ExitListButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

ExitListButtonActionPerformed(evt);

}

});

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

80

InternalFrame.getContentPane().add(ExitListButton,

new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 160, -

1, -1));

getContentPane().add(InternalFrame, new

org.netbeans.lib.awtextra.AbsoluteConstraints(84, 103, 430,

240));

jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder

(javax.swing.border.BevelBorder.RAISED));

jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18));

// NOI18N

jLabel1.setText("Data Barang");

jLabel2.setText("Digunakan untuk memasukkan data

master barang");

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(23, 23, 23)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addComponent(jLabel2)

.addComponent(jLabel1))

.addContainerGap(321, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel1,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(jLabel2,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGap(9, 9, 9))

);

getContentPane().add(jPanel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 590,

70));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

81

jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorde

r(null, "Informasi Produk",

javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 0, 11), new java.awt.Color(204, 0,

0))); // NOI18N

jLabel3.setText("Kode Barang");

jLabel4.setText("Nama Barang");

jLabel5.setText("Satuan");

jLabel7.setText("Stok");

NamaBarangTextField.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

NamaBarangTextFieldActionPerformed(evt);

}

});

NamaBarangTextField.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent

evt) {

NamaBarangTextFieldKeyReleased(evt);

}

});

satuanCombo.setModel(new

javax.swing.DefaultComboBoxModel(new String[] { "pcs", "crt"

}));

satuanCombo.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

satuanComboActionPerformed(evt);

}

});

stokTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

stokTFActionPerformed(evt);

}

});

stokTF.addKeyListener(new java.awt.event.KeyAdapter()

{

public void keyReleased(java.awt.event.KeyEvent

evt) {

stokTFKeyReleased(evt);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

82

});

merkCombo.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

merkComboActionPerformed(evt);

}

});

tipeCombo.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

tipeComboActionPerformed(evt);

}

});

warnaCombo.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

warnaComboActionPerformed(evt);

}

});

jLabel13.setText("Warna");

jLabel14.setText("Tipe");

jLabel15.setText("Merk");

javax.swing.GroupLayout jPanel3Layout = new

javax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addComponent(jLabel5)

.addComponent(jLabel3)

.addComponent(jLabel14)

.addComponent(jLabel15)

.addComponent(jLabel13)

.addComponent(jLabel4,

javax.swing.GroupLayout.PREFERRED_SIZE, 88,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.U

NRELATED)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

83

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addComponent(warnaCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 245,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tipeCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 245,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(merkCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 245,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(KodeBarangTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 77,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.TRAILING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addComponent(satuanCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 75,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(40, 40, 40)

.addComponent(jLabel7,

javax.swing.GroupLayout.DEFAULT_SIZE, 51, Short.MAX_VALUE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(stokTF,

javax.swing.GroupLayout.PREFERRED_SIZE, 75,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addComponent(NamaBarangTextField,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.PREFERRED_SIZE, 245,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(224, 224, 224))

);

jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel3,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(KodeBarangTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(7, 7, 7)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

84

.addComponent(jLabel15,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(merkCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel14,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tipeCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel13,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(warnaCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel4,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(NamaBarangTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addGap(9, 9, 9)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel5,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

85

.addComponent(stokTF,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel7)))

.addGroup(jPanel3Layout.createSequentialGroup()

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(satuanCombo,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(22, 22, 22))

);

jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorde

r(null, "Informasi Penjualan",

javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 0, 11), new java.awt.Color(255, 0,

0))); // NOI18N

jLabel8.setText("Ritel Setelah PPN");

RitelStlhPPNTextField.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

RitelStlhPPNTextFieldActionPerformed(evt);

}

});

RitelStlhPPNTextField.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent

evt) {

RitelStlhPPNTextFieldKeyPressed(evt);

}

public void keyReleased(java.awt.event.KeyEvent

evt) {

RitelStlhPPNTextFieldKeyReleased(evt);

}

});

jLabel9.setText("Ritel Sebelum PPN");

RitelSblmPPNTextField.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent

evt) {

RitelSblmPPNTextFieldKeyReleased(evt);

}

});

javax.swing.GroupLayout jPanel4Layout = new

javax.swing.GroupLayout(jPanel4);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

86

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel4Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel8,

javax.swing.GroupLayout.PREFERRED_SIZE, 100,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(10, 10, 10)

.addComponent(RitelStlhPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 75,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(jLabel9,

javax.swing.GroupLayout.PREFERRED_SIZE, 110,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(RitelSblmPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 75,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(171, Short.MAX_VALUE))

);

jPanel4Layout.setVerticalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel4Layout.createSequentialGroup()

.addGroup(jPanel4Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel9,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel8,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(RitelSblmPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(RitelStlhPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorde

r(null, "Informasi Pembelian",

javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 0, 11), new java.awt.Color(255, 0,

0))); // NOI18N

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

87

jLabel10.setText("Beli Setelah PPN");

BeliStlhPPNTextField.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

BeliStlhPPNTextFieldActionPerformed(evt);

}

});

BeliStlhPPNTextField.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent

evt) {

BeliStlhPPNTextFieldKeyPressed(evt);

}

public void keyReleased(java.awt.event.KeyEvent

evt) {

BeliStlhPPNTextFieldKeyReleased(evt);

}

});

jLabel11.setText("Beli Sebelum PPN");

BeliSblmPPNTextField.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent

evt) {

BeliSblmPPNTextFieldKeyPressed(evt);

}

public void keyReleased(java.awt.event.KeyEvent

evt) {

BeliSblmPPNTextFieldKeyReleased(evt);

}

});

javax.swing.GroupLayout jPanel5Layout = new

javax.swing.GroupLayout(jPanel5);

jPanel5.setLayout(jPanel5Layout);

jPanel5Layout.setHorizontalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel10,

javax.swing.GroupLayout.PREFERRED_SIZE, 100,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(10, 10, 10)

.addComponent(BeliStlhPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 75,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(jLabel11,

javax.swing.GroupLayout.PREFERRED_SIZE, 110,

javax.swing.GroupLayout.PREFERRED_SIZE)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

88

.addGap(18, 18, 18)

.addComponent(BeliSblmPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 78,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(168, Short.MAX_VALUE))

);

jPanel5Layout.setVerticalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel10,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel11,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(BeliSblmPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(BeliStlhPPNTextField,

javax.swing.GroupLayout.PREFERRED_SIZE, 25,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

CetakButton.setText("Cetak Persediaan");

CetakButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

CetakButtonActionPerformed(evt);

}

});

SimpanButton.setText("Simpan");

SimpanButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

SimpanButtonActionPerformed(evt);

}

});

SimpanButton.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent

evt) {

SimpanButtonKeyPressed(evt);

}

});

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

89

HapusButton.setText("Hapus");

HapusButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

HapusButtonActionPerformed(evt);

}

});

ListButton.setText("List");

ListButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

ListButtonActionPerformed(evt);

}

});

BatalButton.setText("Batal");

BatalButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

BatalButtonActionPerformed(evt);

}

});

KeluarButton.setText("Keluar");

KeluarButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

KeluarButtonActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel6Layout = new

javax.swing.GroupLayout(jPanel6);

jPanel6.setLayout(jPanel6Layout);

jPanel6Layout.setHorizontalGroup(

jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel6Layout.createSequentialGroup()

.addGroup(jPanel6Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addGroup(jPanel6Layout.createSequentialGroup()

.addContainerGap()

.addComponent(CetakButton,

javax.swing.GroupLayout.DEFAULT_SIZE, 569, Short.MAX_VALUE))

.addGroup(jPanel6Layout.createSequentialGroup()

.addGap(112, 112, 112)

.addComponent(SimpanButton)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

90

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(HapusButton,

javax.swing.GroupLayout.PREFERRED_SIZE, 71,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(ListButton,

javax.swing.GroupLayout.PREFERRED_SIZE, 69,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(BatalButton,

javax.swing.GroupLayout.PREFERRED_SIZE, 67,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(KeluarButton)))

.addContainerGap())

);

jPanel6Layout.setVerticalGroup(

jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel6Layout.createSequentialGroup()

.addComponent(CetakButton)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addGroup(jPanel6Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(HapusButton)

.addComponent(ListButton)

.addComponent(BatalButton)

.addComponent(SimpanButton,

javax.swing.GroupLayout.PREFERRED_SIZE, 23,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(KeluarButton))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

javax.swing.GroupLayout jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

91

.addComponent(jPanel5,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jPanel4,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(jPanel6,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(jPanel3,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addContainerGap())

);

jPanel2Layout.setVerticalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(jPanel3,

javax.swing.GroupLayout.PREFERRED_SIZE, 233,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(jPanel4,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(jPanel5,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.R

ELATED)

.addComponent(jPanel6,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

);

getContentPane().add(jPanel2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 78, 590,

450));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

92

pack();

}// </editor-fold>

private void

SimpanButtonActionPerformed(java.awt.event.ActionEvent evt) {

if (SimpanButton.getText().startsWith("S")) {

String kode = KodeBarangTextField.getText();

String nama = NamaBarangTextField.getText();

String stok = stokTF.getText();

String ritel = RitelStlhPPNTextField.getText();

String beli = BeliStlhPPNTextField.getText();

String satuan =

satuanCombo.getSelectedItem().toString();

String merk =

merkCombo.getSelectedItem().toString().substring(0,

2).trim();

String tipe =

tipeCombo.getSelectedItem().toString().substring(0,

3).trim();

String warna =

warnaCombo.getSelectedItem().toString().substring(0,

2).trim();

Barang brg = new Barang();

brg.setKodeBarang(kode);

brg.setNamaBarang(nama);

brg.setHargaJual(Double.parseDouble(ritel));

brg.setHargaBeli(Double.parseDouble(beli));

brg.setStokBarang(Integer.parseInt(stok));

brg.setSatuan(satuan);

brg.setMerk(merk);

brg.setTipe(tipe);

brg.setWarna(warna);

try {

BarangKontrol.KoneksiDataBase().tambahBarang(brg);

JOptionPane.showMessageDialog(rootPane, "

Data Berhasil Masuk");

List<Barang> barang = (List<Barang>)

BarangKontrol.KoneksiDataBase().getAllBarang();

resetfield();

} catch (Exception ex) {

JOptionPane.showMessageDialog(rootPane, "

Data dengan \n id = " + kode

+ " nama = " + nama + " \n Gagal

Masuk " + " \n error: " + ex.getMessage());

ex.getMessage();

}

} else {

String kode = KodeBarangTextField.getText();

String nama = NamaBarangTextField.getText();

String stok = stokTF.getText();

String ritel = RitelStlhPPNTextField.getText();

String beli = BeliStlhPPNTextField.getText();

String satuan =

satuanCombo.getSelectedItem().toString();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

93

Barang brgBaru = new Barang();

brgBaru.setKodeBarang(kode);

brgBaru.setNamaBarang(nama);

brgBaru.setHargaJual(Double.parseDouble(ritel));

brgBaru.setHargaBeli(Double.parseDouble(beli));

brgBaru.setStokBarang(Integer.parseInt(stok));

brgBaru.setSatuan(satuan);

try {

BarangKontrol.KoneksiDataBase().updatebarang(brgBaru);

JOptionPane.showMessageDialog(rootPane, "

Data Berhasil Ter-Update");

List<Barang> barang = (List<Barang>)

BarangKontrol.KoneksiDataBase().getAllBarang();

resetfield();

} catch (Exception ex) {

JOptionPane.showMessageDialog(rootPane, "

Data dengan \n id = " + kode

+ " nama = " + nama + " \n Gagal

Update " + " \n error: " + ex.getMessage());

ex.getMessage();

}

}

}

private void

HapusButtonActionPerformed(java.awt.event.ActionEvent evt) {

String kode = KodeBarangTextField.getText();

Barang hps = new Barang();

try {

BarangKontrol.KoneksiDataBase().Hapusbarang(kode);

JOptionPane.showMessageDialog(this, " Data

Katagori Dengan Kode = " + kode + " \n Berhasil Dihapus");

resetfield();

} catch (SQLException ex) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

}

private void

ListButtonActionPerformed(java.awt.event.ActionEvent evt) {

try {

List<Barang> brg = (List<Barang>)

BarangKontrol.KoneksiDataBase().getAllBarang();

BarangTableModel model = new

BarangTableModel(brg);

ListTable.setModel(model);

} catch (SQLException ex) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

94

InternalFrame.setVisible(true);

}

private void

BatalButtonActionPerformed(java.awt.event.ActionEvent evt) {

resetfield();

}

private void

KeluarButtonActionPerformed(java.awt.event.ActionEvent evt) {

this.dispose();

}

private void

RitelStlhPPNTextFieldKeyPressed(java.awt.event.KeyEvent evt)

{

}

private void

BeliStlhPPNTextFieldKeyPressed(java.awt.event.KeyEvent evt) {

}

private void

RitelStlhPPNTextFieldKeyReleased(java.awt.event.KeyEvent evt)

{

checkFormatAngka(RitelStlhPPNTextField.getText());

int a =

Integer.parseInt(RitelStlhPPNTextField.getText()) * 10 / 11;

RitelSblmPPNTextField.setText(String.valueOf(a));

SimpanButton.setEnabled(true);

}

private void

BeliStlhPPNTextFieldKeyReleased(java.awt.event.KeyEvent evt)

{

checkFormatAngka(BeliStlhPPNTextField.getText());

int a =

Integer.parseInt(BeliStlhPPNTextField.getText()) * 10 / 11;

BeliSblmPPNTextField.setText(String.valueOf(a));

SimpanButton.setEnabled(true);

}

private void stokTFKeyReleased(java.awt.event.KeyEvent

evt) {

checkFormatAngka(stokTF.getText());

SimpanButton.setEnabled(true);

}

private void

NamaBarangTextFieldKeyReleased(java.awt.event.KeyEvent evt) {

}

private void

NamaBarangTextFieldActionPerformed(java.awt.event.ActionEvent

evt) {

try {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

95

String namaMenu = NamaBarangTextField.getText();

Boolean cekBarang =

BarangKontrol.KoneksiDataBase().cekNamaBarang(namaMenu);

if (cekBarang == true) {

JOptionPane.showMessageDialog(this, "Nama

barang sudah ada");

} else {

if

(NamaBarangTextField.getDocument().getLength() > 30) {

JOptionPane.showMessageDialog(this, "Nama

barang tidak boleh lebih dari 30 karakter");

NamaBarangTextField.requestFocus();

} else if

(NamaBarangTextField.getDocument().getLength() < 1) {

JOptionPane.showMessageDialog(this, "Nama

barang tidak boleh kurang dari 1 karakter");

NamaBarangTextField.requestFocus();

}

}

stokTF.requestFocus();

} catch (SQLException e) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, e);

}

}

private void

ExitListButtonActionPerformed(java.awt.event.ActionEvent evt)

{

InternalFrame.dispose();

}

private void

caribarangtextfieldKeyReleased(java.awt.event.KeyEvent evt) {

String cari = caribarangtextfield.getText();

try {

List<Barang> brg = (List<Barang>)

BarangKontrol.KoneksiDataBase().caribarang(cari);

BarangTableModel model = new

BarangTableModel(brg);

ListTable.setModel(model);

} catch (SQLException ex) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

}

private void

ListTableMouseClicked(java.awt.event.MouseEvent evt) {

try {

int row = ListTable.getSelectedRow();

String kodebarang = ListTable.getValueAt(row,

0).toString();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

96

String namabarang = ListTable.getValueAt(row,

1).toString();

String kategori = ListTable.getValueAt(row,

2).toString();

String hargajual = ListTable.getValueAt(row,

3).toString();

Barang brg =

BarangKontrol.KoneksiDataBase().getBarangByKode(kodebarang);

KodeBarangTextField.setText(brg.getKodeBarang());

String kodemk = brg.getMerk();

Merk merk =

MerkKontrol.KoneksiDataBase().getMerkByKode(kodemk);

String merks = kodemk + " " + merk.getNamaMerk();

System.out.println(merks);

merkCombo.setSelectedItem(merks);

String kodetp = brg.getTipe();

Tipe tipe =

TipeKontrol.KoneksiDataBase().getTipeByKode(kodetp);

String tipes = kodetp + " " + tipe.getNamaTipe();

System.out.println(tipes);

tipeCombo.setSelectedItem(tipes);

String kodewrn = brg.getWarna();

Warna warna =

WarnaKontrol.KoneksiDataBase().getWarnaByKode(kodewrn);

String warnas = kodewrn + " " +

warna.getNamaWarna();

System.out.println(warnas);

warnaCombo.setSelectedItem(warnas);

satuanCombo.setSelectedItem(brg.getSatuan());

stokTF.setText(String.valueOf(brg.getStokBarang()));

NamaBarangTextField.setText(brg.getNamaBarang());

RitelStlhPPNTextField.setText(String.valueOf(brg.getHargaJual

()));

Double ritel =

Double.parseDouble(RitelStlhPPNTextField.getText()) * 10 /

11;

RitelSblmPPNTextField.setText(ritel.toString());

BeliStlhPPNTextField.setText(String.valueOf(brg.getHargaBeli(

)));

Double beli =

Double.parseDouble(BeliStlhPPNTextField.getText()) * 10 / 11;

BeliSblmPPNTextField.setText(beli.toString());

KodeBarangTextField.setEnabled(false);

SimpanButton.setEnabled(true);

HapusButton.setEnabled(true);

InternalFrame.setVisible(false);

SimpanButton.setText("Update");

} catch (SQLException ex) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

97

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

}

private void

RitelSblmPPNTextFieldKeyReleased(java.awt.event.KeyEvent evt)

{

checkFormatAngka(RitelSblmPPNTextField.getText());

int a =

Integer.parseInt(RitelSblmPPNTextField.getText()) * 11 / 10;

RitelStlhPPNTextField.setText(String.valueOf(a));

}

private void

BeliSblmPPNTextFieldKeyReleased(java.awt.event.KeyEvent evt)

{

checkFormatAngka(BeliSblmPPNTextField.getText());

int a =

Integer.parseInt(BeliSblmPPNTextField.getText()) * 11 / 10;

BeliStlhPPNTextField.setText(String.valueOf(a));

}

private void

CetakButtonActionPerformed(java.awt.event.ActionEvent evt) {

try {

Connection kon = null;

String reportSource = "";

kon = Koneksi.koneksiDatabase();

reportSource = "./reports/laporan.jasper";

Map<String, Object> params = new HashMap<String,

Object>();

try {

JasperPrint jasperPrint =

JasperFillManager.fillReport(reportSource, params, kon);

JasperViewer.viewReport(jasperPrint, false);

} catch (JRException ex) {

ex.printStackTrace();

}

this.setExtendedState(JFrame.ICONIFIED);

} catch (SQLException ex) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

98

private void

satuanComboActionPerformed(java.awt.event.ActionEvent evt) {

}

private void

BeliSblmPPNTextFieldKeyPressed(java.awt.event.KeyEvent evt) {

SimpanButton.setEnabled(true);// TODO add your

handling code here:

}

private void

BeliStlhPPNTextFieldActionPerformed(java.awt.event.ActionEven

t evt) {

SimpanButton.setEnabled(true);

SimpanButton.requestFocus();// TODO add your handling

code here:

}

private void

merkComboActionPerformed(java.awt.event.ActionEvent evt) {

try {

isiTipe();

automaticNumber();

} catch (SQLException ex) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

}

private void

tipeComboActionPerformed(java.awt.event.ActionEvent evt) {

automaticNumber();

}

private void

warnaComboActionPerformed(java.awt.event.ActionEvent evt) {

automaticNumber();

}

private void

stokTFActionPerformed(java.awt.event.ActionEvent evt) {

RitelStlhPPNTextField.requestFocus();

}

private void

RitelStlhPPNTextFieldActionPerformed(java.awt.event.ActionEve

nt evt) {

BeliStlhPPNTextField.requestFocus();

}

private void

SimpanButtonKeyPressed(java.awt.event.KeyEvent evt) {

SimpanButton.doClick();

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

99

private void

caribarangtextfieldActionPerformed(java.awt.event.ActionEvent

evt) {

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

try {

new BarangForm().setVisible(true);

} catch (SQLException ex) {

Logger.getLogger(BarangForm.class.getName()).log(Level.SEVERE

, null, ex);

}

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton BatalButton;

private javax.swing.JTextField BeliSblmPPNTextField;

private javax.swing.JTextField BeliStlhPPNTextField;

private javax.swing.JButton CetakButton;

private javax.swing.JButton ExitListButton;

private javax.swing.JButton HapusButton;

private javax.swing.JInternalFrame InternalFrame;

private javax.swing.JButton KeluarButton;

private javax.swing.JTextField KodeBarangTextField;

private javax.swing.JButton ListButton;

private javax.swing.JTable ListTable;

private javax.swing.JTextField NamaBarangTextField;

private javax.swing.JTextField RitelSblmPPNTextField;

private javax.swing.JTextField RitelStlhPPNTextField;

private javax.swing.JButton SimpanButton;

private javax.swing.JTextField caribarangtextfield;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

private javax.swing.JLabel jLabel12;

private javax.swing.JLabel jLabel13;

private javax.swing.JLabel jLabel14;

private javax.swing.JLabel jLabel15;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel7;

private javax.swing.JLabel jLabel8;

private javax.swing.JLabel jLabel9;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JPanel jPanel5;

private javax.swing.JPanel jPanel6;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

100

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JComboBox merkCombo;

private javax.swing.JComboBox satuanCombo;

private javax.swing.JTextField stokTF;

private javax.swing.JComboBox tipeCombo;

private javax.swing.JComboBox warnaCombo;

// End of variables declaration

}

c. BarangKontrol

package Barang;

import Koneksi.Koneksi;

import java.sql.CallableStatement;

import java.sql.Connection;

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;

/**

*

* @author Doni

*/

public class BarangKontrol {

private final String SQL_SIMPAN = "insert into

barang(kode_item, nama_item, stok, harga_beli, harga_jual,

satuan, merk, tipe, warna) "

+ "values(?,?,?,?,?,?,?,?,?)";

private final String SQL_UPDATE = "update barang set

nama_item=?, stok=?, harga_beli=?, harga_jual=?, satuan=?,"

+ "merk=?, tipe=?, warna=? where kode_item=?";

private final String SQL_GETALL = "select * from barang";

private final String SQL_CEKNAMABARANG = "select

nama_item from barang where nama_item = ?";

private final String SQL_HAPUSBARANG = "delete from

barang where kode_item=?";

private final String SQL_GETKODE = "select

max(substring(kode_item,8,10)) from barang";

private final String SQL_GETBYKODE = "select * from

barang where kode_item = ?";

private Connection conn;

public BarangKontrol(Connection koneksi) {

this.conn = koneksi;

}

public static BarangKontrol KoneksiDataBase() throws

SQLException {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

101

BarangKontrol kon = new

BarangKontrol(Koneksi.koneksiDatabase());

return kon;

}

public void tambahBarang(Barang barang) throws

SQLException {

PreparedStatement statement = null;

try {

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_SIMPAN);

statement.setString(1, barang.getKodeBarang());

statement.setString(2, barang.getNamaBarang());

statement.setInt(3, barang.getStokBarang());

statement.setDouble(4, barang.getHargaBeli());

statement.setDouble(5, barang.getHargaJual());

statement.setString(6, barang.getSatuan());

statement.setString(7, barang.getMerk());

statement.setString(8, barang.getTipe());

statement.setString(9, barang.getWarna());

statement.executeUpdate();

conn.commit();

} catch (SQLException x) {

conn.rollback();

throw x;

} finally {

try {

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public void updatebarang(Barang barang) throws

SQLException {

PreparedStatement statement = null;

try {

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_UPDATE);

statement.setString(1, barang.getNamaBarang());

statement.setInt(2, barang.getStokBarang());

statement.setDouble(3, barang.getHargaBeli());

statement.setDouble(4, barang.getHargaJual());

statement.setString(5, barang.getSatuan());

statement.setString(6, barang.getMerk());

statement.setString(7, barang.getTipe());

statement.setString(8, barang.getWarna());

statement.setString(9, barang.getKodeBarang());

statement.executeUpdate();

conn.commit();

} catch (SQLException x) {

conn.rollback();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

102

throw x;

} finally {

try {

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public void Hapusbarang(String hps) throws SQLException {

PreparedStatement statement = null;

try {

conn.setAutoCommit(false);

statement =

conn.prepareStatement(SQL_HAPUSBARANG);

statement.setString(1, hps);

statement.executeUpdate();

conn.commit();

} catch (SQLException x) {

conn.rollback();

throw x;

} finally {

try {

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public boolean cekNamaBarang(String namabarang) throws

SQLException {

PreparedStatement statement = null;

boolean cari = false;

ResultSet result = null;

try {

conn.setAutoCommit(false);

statement =

conn.prepareStatement(SQL_CEKNAMABARANG);

statement.setString(1, namabarang);

result = statement.executeQuery();

if (result.next()) {

cari = true;

}

conn.commit();

return cari;

} catch (SQLException e) {

conn.rollback();

throw e;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

103

} finally {

try {

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public List<Barang> getAllBarang() throws SQLException {

PreparedStatement statement = null;

ResultSet reset = null;

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_GETALL);

reset = statement.executeQuery();

List<Barang> barang = new ArrayList<Barang>();

while (reset.next()) {

Barang brg = new Barang();

brg.setKodeBarang(reset.getString("kode_item"));

brg.setNamaBarang(reset.getString("nama_item"));

brg.setHargaBeli(reset.getDouble("harga_beli"));

brg.setHargaJual(reset.getDouble("harga_jual"));

barang.add(brg);

}

conn.commit();

return barang;

}

public Barang getBarangByKode(String kode) throws

SQLException {

PreparedStatement statement = null;

ResultSet reset = null;

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_GETBYKODE);

statement.setString(1, kode);

reset = statement.executeQuery();

Barang barang = null;

while (reset.next()) {

Barang brg = new Barang();

brg.setKodeBarang(reset.getString("kode_item"));

brg.setNamaBarang(reset.getString("nama_item"));

brg.setStokBarang(reset.getInt("stok"));

brg.setHargaBeli(reset.getDouble("harga_beli"));

brg.setHargaJual(reset.getDouble("harga_jual"));

brg.setSatuan(reset.getString("satuan"));

brg.setMerk(reset.getString("merk"));

brg.setTipe(reset.getString("tipe"));

brg.setWarna(reset.getString("warna"));

return brg;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

104

}

conn.commit();

return barang;

}

public long cekKode() throws SQLException {

String kode = "";

long kdB = 0;

PreparedStatement statement = null;

ResultSet rset = null;

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_GETKODE);

rset = statement.executeQuery();

while (rset.next()) {

kode =

rset.getString("max(substring(kode_item,8,10))");

if (kode == null) {

kdB = 0;

break;

}

String kdBg = kode;

kdB = Long.parseLong(kdBg);

}

kdB = kdB + 1;

return kdB;

}

public List<Barang> caribarang(String carinama) throws

SQLException {

PreparedStatement psmt = null;

ResultSet reset = null;

conn.setAutoCommit(false);

String sql = "select * from barang "

+ "where lower(nama_item) like '" +

carinama.toLowerCase() + "%'";

psmt = conn.prepareStatement(sql);

reset = psmt.executeQuery();

List<Barang> barang = new ArrayList<Barang>();

while (reset.next()) {

Barang brg = new Barang();

brg.setKodeBarang(reset.getString("kode_item"));

brg.setNamaBarang(reset.getString("nama_item"));

brg.setHargaBeli(reset.getDouble("harga_beli"));

brg.setHargaJual(reset.getDouble("harga_jual"));

barang.add(brg);

}

conn.commit();

return barang;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 125: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

105

d. BarangTableModel

package Barang;

import java.util.ArrayList;

import java.util.List;

import javax.swing.table.AbstractTableModel;

public class BarangTableModel extends AbstractTableModel {

private List<Barang> barang = new ArrayList<Barang>();

public BarangTableModel(List<Barang> barang) {

this.barang = barang;

}

public int getRowCount() {

return barang.size();

}

public int getColumnCount() {

return 4;

}

public Object getValueAt(int rowIndex, int columnIndex) {

Barang k = barang.get(rowIndex);

switch (columnIndex) {

case 0:

return k.getKodeBarang();

case 1:

return k.getNamaBarang();

case 2:

return k.getHargaBeli();

case 3:

return k.getHargaJual();

default:

return "";

}

}

@Override

public String getColumnName(int column) {

switch (column) {

case 0:

return "Kode Barang";

case 1:

return "Nama Barang";

case 2:

return "Harga Beli";

case 3:

return "Harga Jual";

default:

return "";

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

106

3. Koneksi

package Koneksi;

import com.mysql.jdbc.Driver;

import java.sql.Statement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

/**

*

* @author Doni

*/

public class Koneksi {

private static Connection connection;

public Connection con;

public Statement stat;

public static Connection koneksiDatabase() throws

SQLException {

if (connection == null) {

DriverManager.registerDriver(new Driver());

String url = "jdbc:mysql://localhost/apriori";

String user = "root";

String password = "admin";

connection =

DriverManager.getConnection(url,user,password);

}

return connection;

}

}

4. Menu Utama

package MenuUtama;

import Barang.BarangForm;

import Penjualan.DetailPenjualan;

import Penjualan.PenjualanForm;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

*

* @author Doni

*/

public class MenuUtama extends javax.swing.JFrame {

public MenuUtama() {

initComponents();

}

@SuppressWarnings("unchecked")

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 127: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

107

// <editor-fold defaultstate="collapsed" desc="Generated

Code">

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

jPanel2 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CL

OSE);

jButton1.setText("BARANG");

jButton1.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jButton2.setText("PENJUALAN");

jButton2.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jButton3.setText("ANALISA");

jButton3.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder(

));

jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18)); //

NOI18N

jLabel1.setText("Aplikasi Data Mining");

jLabel2.setFont(new java.awt.Font("Tahoma", 0, 18)); //

NOI18N

jLabel2.setText("Menggunakan Metode Apriori");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 128: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

108

jLabel3.setFont(new java.awt.Font("Tahoma", 0, 18)); //

NOI18N

jLabel3.setText("Untuk Analisa Pola Penjualan");

javax.swing.GroupLayout jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel2Layout.createSequentialGroup()

.addContainerGap(102, Short.MAX_VALUE)

.addComponent(jLabel1)

.addGap(88, 88, 88))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel2Layout.createSequentialGroup()

.addContainerGap(67, Short.MAX_VALUE)

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLa

yout.Alignment.TRAILING)

.addComponent(jLabel3)

.addComponent(jLabel2))

.addGap(51, 51, 51))

);

jPanel2Layout.setVerticalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

ATED)

.addComponent(jLabel2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

ATED)

.addComponent(jLabel3)

.addContainerGap(19, Short.MAX_VALUE))

);

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 129: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

109

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLa

yout.Alignment.TRAILING, false)

.addComponent(jPanel2,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING,

jPanel1Layout.createSequentialGroup()

.addComponent(jButton1,

javax.swing.GroupLayout.PREFERRED_SIZE, 111,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNR

ELATED)

.addComponent(jButton2,

javax.swing.GroupLayout.PREFERRED_SIZE, 111,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNR

ELATED)

.addComponent(jButton3,

javax.swing.GroupLayout.PREFERRED_SIZE, 111,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(19, 19, 19)

.addComponent(jPanel2,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(48, 48, 48)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLa

yout.Alignment.BASELINE)

.addComponent(jButton1,

javax.swing.GroupLayout.PREFERRED_SIZE, 64,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton2,

javax.swing.GroupLayout.PREFERRED_SIZE, 64,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton3,

javax.swing.GroupLayout.PREFERRED_SIZE, 64,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(27, Short.MAX_VALUE))

);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 130: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

110

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addComponent(jPanel1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addComponent(jPanel1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

);

pack();

}// </editor-fold>

private void

jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

try {

BarangForm brg = new BarangForm();

brg.setVisible(true);

} catch (SQLException ex) {

Logger.getLogger(MenuUtama.class.getName()).log(Level.SEVERE,

null, ex);

}

}

private void

jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

PenjualanForm pjual = new PenjualanForm();

pjual.setVisible(true);

}

private void

jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

DetailPenjualan dp = new DetailPenjualan();

dp.setVisible(true);

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new MenuUtama().setVisible(true);

}

});

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 131: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

111

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JButton jButton3;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

// End of variables declaration

}

5. Penjualan

a. Penjualan

package Penjualan;

import Pelanggan.Pelanggan;

import java.util.Date;

/**

*

* @author Doni

*/

public class Penjualan {

private String noFaktur;

private String tanggalFaktur;

private Pelanggan kodePelanggan;

private String kodeBarang;

private String namaBarang;

private String satuan;

private Double hargasatuan;

private Double jumlahbarang;

private Double diskon;

private Double jumlahharga;

private Double total;

private Double diskontotal;

private Double grandtotal;

private String keterangan;

public String getNoFaktur() {

return noFaktur;

}

public void setNoFaktur(String noFaktur) {

this.noFaktur = noFaktur;

}

public String getTanggalFaktur() {

return tanggalFaktur;

}

public void setTanggalFaktur(String tanggalFaktur) {

this.tanggalFaktur = tanggalFaktur;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 132: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

112

}

public Pelanggan getKodePelanggan() {

return kodePelanggan;

}

public void setKodePelanggan(Pelanggan kodePelanggan) {

this.kodePelanggan = kodePelanggan;

}

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 String getSatuan() {

return satuan;

}

public void setSatuan(String satuan) {

this.satuan = satuan;

}

public Double getHargasatuan() {

return hargasatuan;

}

public void setHargasatuan(Double hargasatuan) {

this.hargasatuan = hargasatuan;

}

public Double getJumlahbarang() {

return jumlahbarang;

}

public void setJumlahbarang(Double jumlahbarang) {

this.jumlahbarang = jumlahbarang;

}

public Double getDiskon() {

return diskon;

}

public void setDiskon(Double diskon) {

this.diskon = diskon;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 133: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

113

}

public Double getJumlahharga() {

return jumlahharga;

}

public void setJumlahharga(Double jumlahharga) {

this.jumlahharga = jumlahharga;

}

public Double getTotal() {

return total;

}

public void setTotal(Double total) {

this.total = total;

}

public Double getGrandtotal() {

return grandtotal;

}

public void setGrandtotal(Double grandtotal) {

this.grandtotal = grandtotal;

}

public String getKeterangan() {

return keterangan;

}

public void setKeterangan(String keterangan) {

this.keterangan = keterangan;

}

public Double getDiskontotal() {

return diskontotal;

}

public void setDiskontotal(Double diskontotal) {

this.diskontotal = diskontotal;

}

}

b. PenjualanDetailTableModel

package Penjualan;

import java.util.ArrayList;

import java.util.List;

import javax.swing.table.AbstractTableModel;

/**

*

* @author Doni

*/

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 134: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

114

public class PenjualanDetailTableModel extends

AbstractTableModel {

private List<Penjualan> penjualan = new

ArrayList<Penjualan>();

public PenjualanDetailTableModel(List<Penjualan>

penjualan) {

this.penjualan = penjualan;

}

public int getRowCount() {

return penjualan.size();

}

public int getColumnCount() {

return 4;

}

public Object getValueAt(int rowIndex, int columnIndex) {

Penjualan k = penjualan.get(rowIndex);

switch (columnIndex) {

case 0:

return k.getNoFaktur();

case 1:

return k.getKodeBarang();

case 2:

return k.getNamaBarang();

case 3:

return k.getJumlahbarang();

default:

return "";

}

}

@Override

public String getColumnName(int column) {

switch (column) {

case 0:

return "No Faktur";

case 1:

return "Kode Barang";

case 2:

return "Nama Barang";

case 3:

return "Jumlah";

default:

return "";

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 135: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

115

c. PenjualanForm

package Penjualan;

import Barang.Barang;

import Barang.BarangKontrol;

import Barang.BarangTableModel;

import Pelanggan.Pelanggan;

import Pelanggan.PelangganKontrol;

import Pelanggan.PelangganDetailTableModel;

import java.awt.event.KeyEvent;

import java.sql.SQLException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.List;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

/**

*

* @author Doni

*/

public class PenjualanForm extends javax.swing.JFrame {

public PenjualanForm() {

initComponents();

jInternalFrameBarang.setVisible(false);

jInternalFramePelanggan.setVisible(false);

GregorianCalendar gc = new GregorianCalendar();

tanggalDC.setDate(gc.getTime());

automaticNumber();

}

private void automaticNumber() {

try {

long kd =

PenjualanKontrol.KoneksiDataBase().cekKode();

String kode = String.valueOf(kd);

String hasilkode = "";

if (kd < 10) {

hasilkode = "PEN" + "000" + kode;

} else if (kd < 100) {

hasilkode = "PEN" + "00" + kode;

} else if (kd < 1000) {

hasilkode = "PEN" + "0" + kode;

} else if (kd >= 1000) {

hasilkode = "PEN" + kode;

}

noFakturFK.setText(hasilkode);

} catch (SQLException ex) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 136: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

116

Logger.getLogger(PenjualanForm.class.getName()).log(Level.SEV

ERE, null, ex);

}

}

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated

Code">

private void initComponents() {

jInternalFramePelanggan = new

javax.swing.JInternalFrame();

jPanel6 = new javax.swing.JPanel();

jLabel14 = new javax.swing.JLabel();

cariPelangganTF = new javax.swing.JTextField();

jPanel7 = new javax.swing.JPanel();

jScrollPane3 = new javax.swing.JScrollPane();

pelangganTable = new javax.swing.JTable();

jButton1 = new javax.swing.JButton();

jInternalFrameBarang = new

javax.swing.JInternalFrame();

jPanel8 = new javax.swing.JPanel();

jLabel16 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

jPanel9 = new javax.swing.JPanel();

jScrollPane4 = new javax.swing.JScrollPane();

BarangTable = new javax.swing.JTable();

jButton2 = new javax.swing.JButton();

jPanel2 = new javax.swing.JPanel();

jLabel3 = new javax.swing.JLabel();

kodeBarangTF = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

namaBarangTF = new javax.swing.JTextField();

jLabel5 = new javax.swing.JLabel();

satuanTF = new javax.swing.JTextField();

jLabel6 = new javax.swing.JLabel();

hargaSatuanTF = new javax.swing.JTextField();

jLabel7 = new javax.swing.JLabel();

jumlahBarangTF = new javax.swing.JTextField();

jLabel8 = new javax.swing.JLabel();

jumlahHargaTF = new javax.swing.JTextField();

jLabel12 = new javax.swing.JLabel();

noTF = new javax.swing.JTextField();

jLabel13 = new javax.swing.JLabel();

discTF = new javax.swing.JTextField();

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

penjualanDetailTable = new javax.swing.JTable();

jPanel4 = new javax.swing.JPanel();

jLabel17 = new javax.swing.JLabel();

totalHargaTF = new javax.swing.JTextField();

jLabel18 = new javax.swing.JLabel();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 137: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

117

DiskonTF = new javax.swing.JTextField();

grandTotalTF = new javax.swing.JTextField();

jLabel19 = new javax.swing.JLabel();

simpanButton = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

jPanel5 = new javax.swing.JPanel();

jLabel9 = new javax.swing.JLabel();

pelangganTF = new javax.swing.JTextField();

jLabel10 = new javax.swing.JLabel();

jScrollPane2 = new javax.swing.JScrollPane();

alamatTA = new javax.swing.JTextArea();

jLabel11 = new javax.swing.JLabel();

tanggalDC = new com.toedter.calendar.JDateChooser();

jLabel15 = new javax.swing.JLabel();

noFakturFK = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_

CLOSE);

getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jInternalFramePelanggan.setVisible(true);

jInternalFramePelanggan.getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel14.setText("Nama pelanggan yang dicari");

cariPelangganTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

cariPelangganTFActionPerformed(evt);

}

});

cariPelangganTF.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent

evt) {

cariPelangganTFKeyReleased(evt);

}

});

javax.swing.GroupLayout jPanel6Layout = new

javax.swing.GroupLayout(jPanel6);

jPanel6.setLayout(jPanel6Layout);

jPanel6Layout.setHorizontalGroup(

jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel6Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel14)

.addGap(31, 31, 31)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 138: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

118

.addComponent(cariPelangganTF,

javax.swing.GroupLayout.PREFERRED_SIZE, 182,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(82, Short.MAX_VALUE))

);

jPanel6Layout.setVerticalGroup(

jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel6Layout.createSequentialGroup()

.addGap(22, 22, 22)

.addGroup(jPanel6Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel14)

.addComponent(cariPelangganTF,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(18, Short.MAX_VALUE))

);

jInternalFramePelanggan.getContentPane().add(jPanel6,

new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 440,

60));

pelangganTable.setModel(new

javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null},

{null, null, null},

{null, null, null},

{null, null, null}

},

new String [] {

"Kode Pelanggan", "Nama Pelanggan", "Alamat"

}

));

pelangganTable.addMouseListener(new

java.awt.event.MouseAdapter() {

public void

mouseClicked(java.awt.event.MouseEvent evt) {

pelangganTableMouseClicked(evt);

}

});

jScrollPane3.setViewportView(pelangganTable);

jButton1.setText("Keluar");

jButton1.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 139: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

119

javax.swing.GroupLayout jPanel7Layout = new

javax.swing.GroupLayout(jPanel7);

jPanel7.setLayout(jPanel7Layout);

jPanel7Layout.setHorizontalGroup(

jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel7Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel7Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addGroup(jPanel7Layout.createSequentialGroup()

.addComponent(jScrollPane3,

javax.swing.GroupLayout.DEFAULT_SIZE, 420, Short.MAX_VALUE)

.addContainerGap())

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel7Layout.createSequentialGroup()

.addComponent(jButton1)

.addGap(21, 21, 21))))

);

jPanel7Layout.setVerticalGroup(

jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel7Layout.createSequentialGroup()

.addComponent(jScrollPane3,

javax.swing.GroupLayout.PREFERRED_SIZE, 194,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.U

NRELATED)

.addComponent(jButton1)

.addContainerGap(12, Short.MAX_VALUE))

);

jInternalFramePelanggan.getContentPane().add(jPanel7,

new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 65, 440,

240));

getContentPane().add(jInternalFramePelanggan, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));

jInternalFrameBarang.setVisible(true);

jInternalFrameBarang.getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel16.setText("Nama barang yang dicari");

javax.swing.GroupLayout jPanel8Layout = new

javax.swing.GroupLayout(jPanel8);

jPanel8.setLayout(jPanel8Layout);

jPanel8Layout.setHorizontalGroup(

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 140: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

120

jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel8Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel16)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.U

NRELATED)

.addComponent(jTextField1,

javax.swing.GroupLayout.PREFERRED_SIZE, 177,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(224, Short.MAX_VALUE))

);

jPanel8Layout.setVerticalGroup(

jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel8Layout.createSequentialGroup()

.addGap(21, 21, 21)

.addGroup(jPanel8Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jLabel16)

.addComponent(jTextField1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jInternalFrameBarang.getContentPane().add(jPanel8,

new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 540,

50));

BarangTable.setModel(new

javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},

new String [] {

"Kode Barang", "Nama Barang", "Harga Beli",

"Harga Jual"

}

));

BarangTable.addMouseListener(new

java.awt.event.MouseAdapter() {

public void

mouseClicked(java.awt.event.MouseEvent evt) {

BarangTableMouseClicked(evt);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 141: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

121

});

jScrollPane4.setViewportView(BarangTable);

jButton2.setText("Keluar");

jButton2.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel9Layout = new

javax.swing.GroupLayout(jPanel9);

jPanel9.setLayout(jPanel9Layout);

jPanel9Layout.setHorizontalGroup(

jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel9Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel9Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addComponent(jScrollPane4,

javax.swing.GroupLayout.DEFAULT_SIZE, 520, Short.MAX_VALUE)

.addComponent(jButton2,

javax.swing.GroupLayout.Alignment.TRAILING))

.addContainerGap())

);

jPanel9Layout.setVerticalGroup(

jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel9Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane4,

javax.swing.GroupLayout.PREFERRED_SIZE, 302,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.U

NRELATED)

.addComponent(jButton2)

.addContainerGap(23, Short.MAX_VALUE))

);

jInternalFrameBarang.getContentPane().add(jPanel9,

new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 50, 540,

370));

getContentPane().add(jInternalFrameBarang, new

org.netbeans.lib.awtextra.AbsoluteConstraints(110, 30, 560,

450));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 142: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

122

jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorde

r());

jPanel2.setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel3.setText("Kode Barang");

jPanel2.add(jLabel3, new

org.netbeans.lib.awtextra.AbsoluteConstraints(48, 16, 73, -

1));

kodeBarangTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

kodeBarangTFActionPerformed(evt);

}

});

kodeBarangTF.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent

evt) {

kodeBarangTFKeyPressed(evt);

}

});

jPanel2.add(kodeBarangTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(48, 33, 73,

25));

jLabel4.setText("Nama Barang");

jPanel2.add(jLabel4, new

org.netbeans.lib.awtextra.AbsoluteConstraints(127, 16, 190, -

1));

jPanel2.add(namaBarangTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(127, 33, 190,

25));

jLabel5.setText("Satuan");

jPanel2.add(jLabel5, new

org.netbeans.lib.awtextra.AbsoluteConstraints(323, 16, -1, -

1));

jPanel2.add(satuanTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(323, 33, 35,

25));

jLabel6.setText("Harga Satuan");

jPanel2.add(jLabel6, new

org.netbeans.lib.awtextra.AbsoluteConstraints(364, 16, -1, -

1));

jPanel2.add(hargaSatuanTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(364, 33, 84,

25));

jLabel7.setText("Jumlah Barang");

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 143: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

123

jPanel2.add(jLabel7, new

org.netbeans.lib.awtextra.AbsoluteConstraints(454, 16, 88, -

1));

jumlahBarangTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jumlahBarangTFActionPerformed(evt);

}

});

jPanel2.add(jumlahBarangTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(454, 33, 88,

25));

jLabel8.setText("Total Harga");

jPanel2.add(jLabel8, new

org.netbeans.lib.awtextra.AbsoluteConstraints(594, 13, 94, -

1));

jumlahHargaTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jumlahHargaTFActionPerformed(evt);

}

});

jumlahHargaTF.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent

evt) {

jumlahHargaTFKeyPressed(evt);

}

});

jPanel2.add(jumlahHargaTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(594, 33, 94,

25));

jLabel12.setText("No");

jPanel2.add(jLabel12, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 14, 30,

18));

jPanel2.add(noTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 33, 30,

25));

jLabel13.setText("Disc %");

jPanel2.add(jLabel13, new

org.netbeans.lib.awtextra.AbsoluteConstraints(548, 16, 40, -

1));

discTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

discTFActionPerformed(evt);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 144: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

124

}

});

jPanel2.add(discTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(548, 33, 40,

25));

getContentPane().add(jPanel2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 190, 700,

70));

jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder

(javax.swing.border.BevelBorder.RAISED));

jPanel1.setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18));

jLabel1.setText("FORM PENJUALAN");

jPanel1.add(jLabel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 13, -1,

32));

jLabel2.setText("Form untuk memasukan data

penjualan");

jPanel1.add(jLabel2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 51, -1, -

1));

getContentPane().add(jPanel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 700,

80));

jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorde

r());

jPanel3.setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

penjualanDetailTable.setModel(new

javax.swing.table.DefaultTableModel(

new Object [][] {

},

new String [] {

"No Faktur", "Kode Barang", "Nama Barang",

"Satuan", "Harga Satuan", "Jumlah Barang", "Disc", "Total

Harga"

}

));

jScrollPane1.setViewportView(penjualanDetailTable);

jPanel3.add(jScrollPane1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 13, 676,

194));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 145: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

125

getContentPane().add(jPanel3, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 260, 700,

220));

jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorde

r());

jPanel4.setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel17.setText("Total Harga");

jPanel4.add(jLabel17, new

org.netbeans.lib.awtextra.AbsoluteConstraints(510, 10, -1,

20));

totalHargaTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

totalHargaTFActionPerformed(evt);

}

});

jPanel4.add(totalHargaTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(580, 10, 100, -

1));

jLabel18.setText("Diskon (Rp)");

jPanel4.add(jLabel18, new

org.netbeans.lib.awtextra.AbsoluteConstraints(510, 40, -1,

20));

DiskonTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

DiskonTFActionPerformed(evt);

}

});

jPanel4.add(DiskonTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(580, 40, 100, -

1));

jPanel4.add(grandTotalTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(580, 70, 100, -

1));

jLabel19.setText("Grand Total");

jPanel4.add(jLabel19, new

org.netbeans.lib.awtextra.AbsoluteConstraints(510, 70, -1,

20));

simpanButton.setText("Simpan");

simpanButton.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

simpanButtonActionPerformed(evt);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 146: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

126

}

});

simpanButton.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent

evt) {

simpanButtonKeyPressed(evt);

}

});

jPanel4.add(simpanButton, new

org.netbeans.lib.awtextra.AbsoluteConstraints(510, 110, -1, -

1));

jButton3.setText("Keluar");

jButton3.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

jPanel4.add(jButton3, new

org.netbeans.lib.awtextra.AbsoluteConstraints(590, 110, -1, -

1));

getContentPane().add(jPanel4, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 480, 700,

140));

jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorde

r());

jPanel5.setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel9.setText("Pelanggan");

jPanel5.add(jLabel9, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 18, 60, -

1));

pelangganTF.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

pelangganTFActionPerformed(evt);

}

});

jPanel5.add(pelangganTF, new

org.netbeans.lib.awtextra.AbsoluteConstraints(72, 13, 191,

25));

jLabel10.setText("Alamat");

jPanel5.add(jLabel10, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 44, 60, -

1));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 147: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

127

alamatTA.setColumns(20);

alamatTA.setRows(5);

jScrollPane2.setViewportView(alamatTA);

jPanel5.add(jScrollPane2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(72, 44, 191,

53));

jLabel11.setText("Tanggal");

jPanel5.add(jLabel11, new

org.netbeans.lib.awtextra.AbsoluteConstraints(330, 50, 50, -

1));

tanggalDC.setDateFormatString("dd-MM-yyyy");

jPanel5.add(tanggalDC, new

org.netbeans.lib.awtextra.AbsoluteConstraints(390, 50, 151,

25));

jLabel15.setText("No Faktur");

jPanel5.add(jLabel15, new

org.netbeans.lib.awtextra.AbsoluteConstraints(330, 20, -1, -

1));

jPanel5.add(noFakturFK, new

org.netbeans.lib.awtextra.AbsoluteConstraints(390, 20, 130,

25));

getContentPane().add(jPanel5, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 80, 700,

110));

pack();

}// </editor-fold>

private void

pelangganTFActionPerformed(java.awt.event.ActionEvent evt) {

String kodePelanggan = pelangganTF.getText();

System.out.println(kodePelanggan);

try {

Pelanggan cariPelanggan =

PelangganKontrol.KoneksiDataBase().getPelangganByKode(kodePel

anggan);

if (cariPelanggan != null) {

pelangganTF.setText(cariPelanggan.getKodePelanggan());

alamatTA.setText(cariPelanggan.getNamaPelanggan() + "\n" +

cariPelanggan.getAlamatPelanggan());

kodeBarangTF.requestFocus();

} else {

int reply =

JOptionPane.showConfirmDialog(null, "Pelanggan tidak

ditemukan. Lihat list pelanggan ?", "Konfirmasi",

JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

if (reply == JOptionPane.YES_OPTION) {

jInternalFramePelanggan.setVisible(true);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 148: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

128

List<Pelanggan> plg = (List<Pelanggan>)

PelangganKontrol.KoneksiDataBase().getAllPelanggan();

PelangganDetailTableModel model = new

PelangganDetailTableModel(plg);

pelangganTable.setModel(model);

}

}

} catch (SQLException e) {

System.out.println(e.getMessage());

}

}

private void

kodeBarangTFActionPerformed(java.awt.event.ActionEvent evt) {

String kodebarang = kodeBarangTF.getText();

try {

Barang cariBarang =

BarangKontrol.KoneksiDataBase().getBarangByKode(kodebarang);

if (cariBarang != null) {

Barang barang =

BarangKontrol.KoneksiDataBase().getBarangByKode(kodebarang);

namaBarangTF.setText(barang.getNamaBarang());

satuanTF.setText(barang.getSatuan());

hargaSatuanTF.setText(String.valueOf(barang.getHargaJual()));

jumlahBarangTF.requestFocus();

} else {

int reply =

JOptionPane.showConfirmDialog(null, "Kode Barang Tidak Ada.

Ingin Melihat List Barang ?", "Konfirmasi",

JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

if (reply == JOptionPane.YES_OPTION) {

jInternalFrameBarang.setVisible(true);

List<Barang> brg = (List<Barang>)

BarangKontrol.KoneksiDataBase().getAllBarang();

BarangTableModel model = new

BarangTableModel(brg);

BarangTable.setModel(model);

}

}

} catch (SQLException e) {

System.out.println(e.getMessage());

}

}

private void

cariPelangganTFKeyReleased(java.awt.event.KeyEvent evt) {

String cari = cariPelangganTF.getText();

try {

List<Pelanggan> plg = (List<Pelanggan>)

PelangganKontrol.KoneksiDataBase().cariPelanggan(cari);

PelangganDetailTableModel model = new

PelangganDetailTableModel(plg);

pelangganTable.setModel(model);

} catch (SQLException ex) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 149: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

129

Logger.getLogger(PenjualanForm.class.getName()).log(Level.SEV

ERE, null, ex);

}

}

private void

jumlahBarangTFActionPerformed(java.awt.event.ActionEvent evt)

{

String hrgBrg = hargaSatuanTF.getText();

Double hBrg = Double.parseDouble(hrgBrg);

String jmlBrg = jumlahBarangTF.getText();

Double jBrg = Double.parseDouble(jmlBrg);

Double totaltnpdiskon = hBrg * jBrg;

String totaltpdiskon =

String.valueOf(totaltnpdiskon);

jumlahHargaTF.setText(totaltpdiskon);

discTF.requestFocus();

}

private void

discTFActionPerformed(java.awt.event.ActionEvent evt) {

String jmtnpdiskon = jumlahHargaTF.getText();

Double jtnpdiskon = Double.parseDouble(jmtnpdiskon);

String diskon = discTF.getText();

Double dskon = Double.parseDouble(diskon);

Double totaldgndiskon = jtnpdiskon - ((dskon / 100) *

jtnpdiskon);

String totalstlhdiskon =

String.valueOf(totaldgndiskon);

jumlahHargaTF.setText(totalstlhdiskon);

jumlahHargaTF.requestFocus();

}

private void

jumlahHargaTFActionPerformed(java.awt.event.ActionEvent evt)

{

try {

String nofaktur = noFakturFK.getText();

String kode = kodeBarangTF.getText();

String nama = namaBarangTF.getText();

String satuan = satuanTF.getText();

Double hargasatuan =

Double.parseDouble(hargaSatuanTF.getText());

Double jumlahbarang =

Double.parseDouble(jumlahBarangTF.getText());

Double diskon =

Double.parseDouble(discTF.getText());

Double jumlahharga =

Double.parseDouble(jumlahHargaTF.getText());

Penjualan p = new Penjualan();

p.setNoFaktur(nofaktur);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 150: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

130

p.setKodeBarang(kode);

p.setNamaBarang(nama);

p.setHargasatuan(hargasatuan);

p.setJumlahbarang(jumlahbarang);

p.setDiskon(diskon);

p.setSatuan(satuan);

p.setJumlahharga(jumlahharga);

try {

PenjualanKontrol.KoneksiDataBase().tambahdetailpenjualan(p);

JOptionPane.showMessageDialog(rootPane, "

Data Berhasil Masuk");

System.out.println(nofaktur);

resetfield();

hitungtotal();

} catch (Exception ex) {

JOptionPane.showMessageDialog(rootPane, "

Data dengan \n id = " + kode + " nama = " + nama + " \n

Gagal Masuk " + " \n error: " + ex.getMessage());

ex.getMessage();

}

List<Penjualan> penjualan = (List<Penjualan>)

PenjualanKontrol.KoneksiDataBase().getAllPenjualanDetail(nofa

ktur);

PenjualanTableModel model = new

PenjualanTableModel(penjualan);

penjualanDetailTable.setModel(model);

} catch (SQLException ex) {

Logger.getLogger(PenjualanForm.class.getName()).log(Level.SEV

ERE, null, ex);

}

kodeBarangTF.requestFocus();

}

private void

cariPelangganTFActionPerformed(java.awt.event.ActionEvent

evt) {

}

private void

jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

jInternalFramePelanggan.dispose();

}

private void

pelangganTableMouseClicked(java.awt.event.MouseEvent evt) {

int row = pelangganTable.getSelectedRow();

String kodePelanggan = pelangganTable.getValueAt(row,

0).toString();

try {

Pelanggan p =

PelangganKontrol.KoneksiDataBase().getPelangganByKode(kodePel

anggan);

pelangganTF.setText(p.getKodePelanggan());

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 151: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

131

alamatTA.setText(p.getNamaPelanggan() + "\n" +

p.getAlamatPelanggan());

jInternalFramePelanggan.dispose();

kodeBarangTF.requestFocus();

} catch (SQLException ex) {

Logger.getLogger(PenjualanForm.class.getName()).log(Level.SEV

ERE, null, ex);

}

}

private void

jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

jInternalFrameBarang.dispose();

}

private void

BarangTableMouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

int row = BarangTable.getSelectedRow();

String kodebarang = BarangTable.getValueAt(row,

0).toString();

try {

Barang b =

BarangKontrol.KoneksiDataBase().getBarangByKode(kodebarang);

kodeBarangTF.setText(b.getKodeBarang());

namaBarangTF.setText(b.getNamaBarang());

satuanTF.setText(b.getSatuan());

hargaSatuanTF.setText(String.valueOf(b.getHargaJual()));

jInternalFrameBarang.dispose();

jumlahBarangTF.requestFocus();

} catch (SQLException ex) {

Logger.getLogger(PenjualanForm.class.getName()).log(Level.SEV

ERE, null, ex);

}

}

private void

totalHargaTFActionPerformed(java.awt.event.ActionEvent evt) {

}

private void

jumlahHargaTFKeyPressed(java.awt.event.KeyEvent evt) {

if (evt.getKeyCode() == KeyEvent.VK_F1) {

DiskonTF.requestFocus();

}

}

private void

DiskonTFActionPerformed(java.awt.event.ActionEvent evt) {

String totalharga = totalHargaTF.getText();

Double totharga = Double.parseDouble(totalharga);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 152: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

132

String diskon = DiskonTF.getText();

Double dskon = Double.parseDouble(diskon);

Double grndtotal = totharga - dskon;

grandTotalTF.setText(String.valueOf(grndtotal));

simpanButton.setEnabled(true);

simpanButton.requestFocus();

}

private void

simpanButtonKeyPressed(java.awt.event.KeyEvent evt) {

simpanButton.doClick();

}

private void

simpanButtonActionPerformed(java.awt.event.ActionEvent evt) {

String nofaktur = noFakturFK.getText();

Date tglfaktur = tanggalDC.getDate();

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-

yyyy");

String tanggal = sdf.format(tglfaktur);

String kodepel = pelangganTF.getText();

Double totalharga =

Double.parseDouble(totalHargaTF.getText());

Double diskon =

Double.parseDouble(DiskonTF.getText());

Double grandtotal =

Double.parseDouble(grandTotalTF.getText());

Penjualan pj = null;

Penjualan p = new Penjualan();

p.setNoFaktur(nofaktur);

p.setTanggalFaktur(tanggal);

Pelanggan pl = new Pelanggan();

pl.setKodePelanggan(kodepel);

p.setTotal(totalharga);

p.setDiskontotal(diskon);

p.setGrandtotal(grandtotal);

p.setKodePelanggan(pl);

try {

PenjualanKontrol.KoneksiDataBase().tambahpenjualan(p);

JOptionPane.showMessageDialog(rootPane, " Data

Berhasil Masuk");

System.out.println(nofaktur);

resetfield();

hitungtotal();

} catch (Exception ex) {

JOptionPane.showMessageDialog(rootPane, " Data

dengan \n faktur = " + nofaktur + "\n Gagal Masuk " + " \n

error: " + ex.getMessage());

ex.getMessage();

}

resetnota();

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 153: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

133

private void

kodeBarangTFKeyPressed(java.awt.event.KeyEvent evt) {

if (evt.getKeyCode() == KeyEvent.VK_F1) {

DiskonTF.requestFocus();

}

}

private void

jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

this.dispose();

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new PenjualanForm().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JTable BarangTable;

private javax.swing.JTextField DiskonTF;

private javax.swing.JTextArea alamatTA;

private javax.swing.JTextField cariPelangganTF;

private javax.swing.JTextField discTF;

private javax.swing.JTextField grandTotalTF;

private javax.swing.JTextField hargaSatuanTF;

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JButton jButton3;

private javax.swing.JInternalFrame jInternalFrameBarang;

private javax.swing.JInternalFrame

jInternalFramePelanggan;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

private javax.swing.JLabel jLabel12;

private javax.swing.JLabel jLabel13;

private javax.swing.JLabel jLabel14;

private javax.swing.JLabel jLabel15;

private javax.swing.JLabel jLabel16;

private javax.swing.JLabel jLabel17;

private javax.swing.JLabel jLabel18;

private javax.swing.JLabel jLabel19;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel7;

private javax.swing.JLabel jLabel8;

private javax.swing.JLabel jLabel9;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 154: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

134

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JPanel jPanel5;

private javax.swing.JPanel jPanel6;

private javax.swing.JPanel jPanel7;

private javax.swing.JPanel jPanel8;

private javax.swing.JPanel jPanel9;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JScrollPane jScrollPane3;

private javax.swing.JScrollPane jScrollPane4;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jumlahBarangTF;

private javax.swing.JTextField jumlahHargaTF;

private javax.swing.JTextField kodeBarangTF;

private javax.swing.JTextField namaBarangTF;

private javax.swing.JTextField noFakturFK;

private javax.swing.JTextField noTF;

private javax.swing.JTextField pelangganTF;

private javax.swing.JTable pelangganTable;

private javax.swing.JTable penjualanDetailTable;

private javax.swing.JTextField satuanTF;

private javax.swing.JButton simpanButton;

private com.toedter.calendar.JDateChooser tanggalDC;

private javax.swing.JTextField totalHargaTF;

// End of variables declaration

private void resetfield() {

kodeBarangTF.setText("");

namaBarangTF.setText("");

satuanTF.setText("");

hargaSatuanTF.setText("");

jumlahBarangTF.setText("");

discTF.setText("");

jumlahHargaTF.setText("");

}

private void hitungtotal() throws SQLException {

String nofaktur = noFakturFK.getText();

Penjualan total =

PenjualanKontrol.KoneksiDataBase().hitungtotal(nofaktur);

totalHargaTF.setText(String.valueOf(total.getTotal()));

}

private void resetnota() {

try {

resetfield();

automaticNumber();

pelangganTF.setText("");

alamatTA.setText("");

totalHargaTF.setText("");

DiskonTF.setText("");

grandTotalTF.setText("");

simpanButton.setEnabled(false);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 155: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

135

List<Penjualan> penjualan = (List<Penjualan>)

PenjualanKontrol.KoneksiDataBase().getAllPenjualanDetail("");

PenjualanTableModel model = new

PenjualanTableModel(penjualan);

penjualanDetailTable.setModel(model);

} catch (SQLException ex) {

Logger.getLogger(PenjualanForm.class.getName()).log(Level.SEV

ERE, null, ex);

}

}

}

d. DetailPenjualanForm

package Penjualan;

import Apriori.AprioriForm;

import Apriori.AprioriKodeForm;

import java.sql.SQLException;

import java.util.List;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

*

* @author Doni

*/

public class DetailPenjualan extends javax.swing.JFrame {

public DetailPenjualan() {

initComponents();

try {

List<Penjualan> p = (List<Penjualan>)

PenjualanKontrol.KoneksiDataBase().getAllDetail();

PenjualanDetailTableModel model = new

PenjualanDetailTableModel(p);

penjualandetailTable.setModel(model);

} catch (SQLException ex) {

Logger.getLogger(DetailPenjualan.class.getName()).log(Level.S

EVERE, null, ex);

}

}

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated

Code">

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jPanel2 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

penjualandetailTable = new javax.swing.JTable();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 156: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

136

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_

CLOSE);

getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder

(javax.swing.border.BevelBorder.RAISED));

jPanel1.setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18));

jLabel1.setText("Histori Penjualan");

jPanel1.add(jLabel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 2, -1,

35));

jLabel2.setText("Digunakan untuk melihat daftar

penjualan");

jPanel1.add(jLabel2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(12, 43, -1, -

1));

getContentPane().add(jPanel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 700,

70));

jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorde

r());

penjualandetailTable.setModel(new

javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},

new String [] {

"No Faktur", "Kode Item", "Nama iItem",

"Jumlah Barang"

}

));

jScrollPane1.setViewportView(penjualandetailTable);

jButton1.setText("Proses TipeBarang");

jButton1.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 157: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

137

jButton1ActionPerformed(evt);

}

});

jButton2.setText("Keluar");

jButton2.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jButton3.setText("Proses KodeBarang");

jButton3.addActionListener(new

java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(jScrollPane1,

javax.swing.GroupLayout.DEFAULT_SIZE, 676, Short.MAX_VALUE)

.addContainerGap())

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel2Layout.createSequentialGroup()

.addComponent(jButton3)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.U

NRELATED)

.addComponent(jButton1)

.addGap(18, 18, 18)

.addComponent(jButton2)

.addGap(18, 18, 18))))

);

jPanel2Layout.setVerticalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Ali

gnment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 158: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

138

.addContainerGap()

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 342,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.U

NRELATED)

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.Group

Layout.Alignment.BASELINE)

.addComponent(jButton1)

.addComponent(jButton2)

.addComponent(jButton3))

.addContainerGap(19, Short.MAX_VALUE))

);

getContentPane().add(jPanel2, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 70, -1,

410));

pack();

}// </editor-fold>

private void

jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

try {

AprioriForm prior = new AprioriForm();

prior.setVisible(true);

} catch (SQLException ex) {

Logger.getLogger(DetailPenjualan.class.getName()).log(Level.S

EVERE, null, ex);

}

}

private void

jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

this.dispose();

}

private void

jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

try {

AprioriKodeForm prior = new AprioriKodeForm();

prior.setVisible(true);

} catch (SQLException ex) {

Logger.getLogger(DetailPenjualan.class.getName()).log(Level.S

EVERE, null, ex);

}

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 159: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

139

new DetailPenjualan().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JButton jButton3;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JTable penjualandetailTable;

// End of variables declaration

}

e. PenjualanKontrol

package Penjualan;

import Koneksi.Koneksi;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

/**

*

* @author Doni

*/

public class PenjualanKontrol {

private final String SQL_SIMPANDET = "insert into

penjualan_det "

+ "(no_faktur, kode_item, nama_item, harga_jual,

jumlah_barang, total, satuan, disc) "

+ "values(?,?,?,?,?,?,?,?)";

private final String SQL_SIMPAN = "insert into penjualan

"

+ "(no_faktur, tgl_faktur, kode_pel, total_harga,

diskon, grand_total) "

+ "values(?,?,?,?,?,?)";

private final String SQL_GETALLPENJUALANDETAIL = "select

* from penjualan_det where no_faktur = ? ";

private final String SQL_GETKODE = "select

max(substring(no_faktur,4,6)) from penjualan";

private final String SQL_HTOTAL = "select sum(total) from

penjualan_det where no_faktur = ? ";

private final String SQL_GETALLDETAIL = "select

no_faktur, kode_item, nama_item, jumlah_barang from

penjualan_det";

private Connection conn;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 160: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

140

public PenjualanKontrol(Connection koneksi) {

this.conn = koneksi;

}

public static PenjualanKontrol KoneksiDataBase() throws

SQLException {

PenjualanKontrol kon = new

PenjualanKontrol(Koneksi.koneksiDatabase());

return kon;

}

public long cekKode() throws SQLException {

String kode = "";

long kdB = 0;

PreparedStatement statement = null;

ResultSet rset = null;

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_GETKODE);

rset = statement.executeQuery();

while (rset.next()) {

kode =

rset.getString("max(substring(no_faktur,4,6))");

if (kode == null) {

kdB = 0;

break;

}

String kdBg = kode;

kdB = Long.parseLong(kdBg);

}

kdB = kdB + 1;

return kdB;

}

public void tambahdetailpenjualan(Penjualan p) throws

SQLException {

PreparedStatement statement = null;

try {

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_SIMPANDET);

statement.setString(1, p.getNoFaktur());

statement.setString(2, p.getKodeBarang());

statement.setString(3, p.getNamaBarang());

statement.setDouble(4, p.getHargasatuan());

statement.setDouble(5, p.getJumlahbarang());

statement.setDouble(6, p.getJumlahharga());

statement.setString(7, p.getSatuan());

statement.setDouble(8, p.getDiskon());

statement.executeUpdate();

conn.commit();

} catch (SQLException x) {

conn.rollback();

throw x;

} finally {

try {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 161: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

141

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public void tambahpenjualan(Penjualan penjualan) throws

SQLException {

PreparedStatement statement = null;

try {

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_SIMPAN);

statement.setString(1, penjualan.getNoFaktur());

statement.setString(2,

penjualan.getTanggalFaktur());

statement.setString(3,

penjualan.getKodePelanggan().getKodePelanggan());

statement.setDouble(4, penjualan.getTotal());

statement.setDouble(5,

penjualan.getDiskontotal());

statement.setDouble(6,

penjualan.getGrandtotal());

statement.executeUpdate();

conn.commit();

} catch (SQLException x) {

conn.rollback();

throw x;

} finally {

try {

conn.setAutoCommit(true);

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public List<Penjualan> getAllPenjualanDetail(String

nofaktur) throws SQLException {

PreparedStatement statement = null;

ResultSet result = null;

try {

conn.setAutoCommit(false);

statement =

conn.prepareStatement(SQL_GETALLPENJUALANDETAIL);

statement.setString(1, nofaktur);

result = statement.executeQuery();

List<Penjualan> penjualan = new

ArrayList<Penjualan>();

while (result.next()) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 162: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

142

Penjualan p = new Penjualan();

p.setNoFaktur(result.getString("no_faktur"));

p.setKodeBarang(result.getString("kode_item"));

p.setNamaBarang(result.getString("nama_item"));

p.setSatuan(result.getString("satuan"));

p.setHargasatuan(result.getDouble("harga_jual"));

p.setJumlahbarang(result.getDouble("jumlah_barang"));

p.setDiskon(result.getDouble("disc"));

p.setJumlahharga(result.getDouble("total"));

penjualan.add(p);

}

conn.commit();

return penjualan;

} catch (SQLException e) {

throw e;

} finally {

try {

conn.setAutoCommit(true);

if (result != null) {

result.close();

}

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public List<Penjualan> getAllDetail() throws SQLException

{

PreparedStatement statement = null;

ResultSet result = null;

try {

conn.setAutoCommit(false);

statement =

conn.prepareStatement(SQL_GETALLDETAIL);

result = statement.executeQuery();

List<Penjualan> penjualan = new

ArrayList<Penjualan>();

while (result.next()) {

Penjualan p = new Penjualan();

p.setNoFaktur(result.getString("no_faktur"));

p.setKodeBarang(result.getString("kode_item"));

p.setNamaBarang(result.getString("nama_item"));

p.setJumlahbarang(result.getDouble("jumlah_barang"));

penjualan.add(p);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 163: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

143

conn.commit();

return penjualan;

} catch (SQLException e) {

throw e;

} finally {

try {

conn.setAutoCommit(true);

if (result != null) {

result.close();

}

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

throw e;

}

}

}

public Penjualan hitungtotal(String kode) throws

SQLException {

PreparedStatement statement = null;

ResultSet reset = null;

try {

conn.setAutoCommit(false);

statement = conn.prepareStatement(SQL_HTOTAL);

statement.setString(1, kode);

reset = statement.executeQuery();

Penjualan p = null;

while (reset.next()) {

p = new Penjualan();

p.setTotal(Double.parseDouble(reset.getString("sum(total)")))

;

}

conn.commit();

return p;

} catch (SQLException ex) {

conn.rollback();

throw ex;

} finally {

try {

conn.setAutoCommit(true);

if (reset != null) {

reset.close();

}

if (statement != null) {

statement.close();

}

} catch (SQLException ex) {

throw ex;

}

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 164: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

144

f. PenjualanTableModel

package Penjualan;

import java.util.ArrayList;

import java.util.List;

import javax.swing.table.AbstractTableModel;

/**

*

* @author Doni

*/

public class PenjualanTableModel extends AbstractTableModel {

private List<Penjualan> penjualan = new

ArrayList<Penjualan>();

public PenjualanTableModel(List<Penjualan> penjualan) {

this.penjualan = penjualan;

}

public int getRowCount() {

return penjualan.size();

}

public int getColumnCount() {

return 7;

}

public Object getValueAt(int rowIndex, int columnIndex) {

Penjualan k = penjualan.get(rowIndex);

switch (columnIndex) {

case 0:

return k.getNoFaktur();

case 1:

return k.getKodeBarang();

case 2:

return k.getNamaBarang();

case 3:

return k.getHargasatuan();

case 4:

return k.getJumlahbarang();

case 5:

return k.getDiskon();

case 6:

return k.getJumlahharga();

default:

return "";

}

}

@Override

public String getColumnName(int column) {

switch (column) {

case 0:

return "No Faktur";

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 165: APLIKASI DATA MINING MENGGUNAKAN ALGORITMA … · UNTUK ANALISIS POLA PENJUALAN DI XYZ HELM Skripsi ... Data mining, Association Rule, ... BAB IV IMPLEMENTASI SISTEM ...

145

case 1:

return "Kode Barang";

case 2:

return "Nama Barang";

case 3:

return "Harga Satuan";

case 4:

return "Jumlah";

case 5:

return "Diskon";

case 6:

return "Jumlah Harga";

default:

return "";

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI