IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

202
IMPLEMENTASI DATA MINING MENGGUNAKAN METODE CLUSTERING UNTUK PREDIKSI PENJUALAN DI PT. XYZ HALAMAN JUDUL SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Disusun oleh : Isidorus Cahyo Adi Prasetyo ( 115314009 ) PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Transcript of IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

Page 1: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

CLUSTERING UNTUK PREDIKSI PENJUALAN DI PT. XYZ

HALAMAN JUDUL

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Disusun oleh :

Isidorus Cahyo Adi Prasetyo

( 115314009 )

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

ii

IMPLEMENTATION DATA MINING USING CLUSTERING METHOD

FOR SELLING PREDICTION OF XYZ COMPANY

HALAMAN JUDUL (Bahasa Inggris)

A Thesis

Presented as Partial Fulfillment of The Requirements

To Obtain Sarjana Komputer Degree

In Informatics Engineering Study Program

Written by:

Isidorus Cahyo Adi Prasetyo

( 115314009 )

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: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

iii

HALAMAN PERSETUJUAN

HALAMAN PENGESAHAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

iv

SKRIPSI

PERNYATAAN KEASLIAN KARYA

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

v

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

vi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

vii

HALAMAN PERSEMBAHAN

HALAMAN PERSEMBAHAN

Karya Skripsi ini Saya persembahan kepada :

1. Tuhan Yesus Kristus, yang selalu mendampingiku dalam menyelesaikan

karya skripsi ini.

2. Keluargaku, antara lain Bapak, Ibu, Kakek, Tante, dan Adikku yang selalu

mendukungku baik berupa doa dan materi.

3. Kekasih dan segenap keluarganya yang selalu mendoakan dan

memberikan semangat.

4. Para Dosen dan Teman-Teman Mahasiswa Teknik Informatika Universitas

Sanata Dharma yang menjadi relasi dan penolong selama Saya

menjalankan studi.

5. Keluarga besar Universitas Sanata Dharma yang telah memberikan segala

pengalaman berharga dalam hidup.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

viii

HALAMAN MOTTO

HALAMAN MOTTO

Manusia tidak merancang untuk gagal, mereka gagal untuk merancang.

( William J. Siegel )

“IF YOU CAN’T FLY THEN RUN,

IF YOU CAN’T RUN THEN WALK

IF YOU CAN’T WALK THEN CRAWL,

BUT WHATEVER YOU DO YOU HEVE

YOU KEEP MOVING FORWARD”

(Martin Luther King.Jr.)

Stay Hungry, Stay Foolish

( Steve Jobs)

Because I actualy learned that in life you can

Only trust, like, yourself, actualy.

Not in sense that you can’t trust people but,

Yeah, like I said: the one who will never let you down is yourself.

Benedict Hang Yong Lim “HyHy”

Dota’s pro gamer – 2011

"One way to forget about pain is to do something you will be in,

completely. So. computer games."

(Danil "Dendi" Ishutin)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

ix

ABSTRAK

Seiring perkembangan jaman yang semakin maju, peranan teknologi

informasi dalam dunia bisnis masa kini mengalami perkembangan yang sangat

pesat. Teknologi Data Mining atau penambangan data ini dapat membantu sebuah

perusahaan untuk menemukan pengetahuan-pengetahuan baru, yang dapat

membantu dalam pengaturan strategi bisnis. Informasi yang diperoleh dari dari

proses penambangan data dapat membatu pelaku bisnis dalam meningkatkan

proses bisnis dan membuat keputusan bisnis.

Data penjualan produk helm pada PT. XYZ akan dimanfaatkan

menggunakan teknik analisis klaster. Analisis klaster merupakan sebuah analisis

pengelompokan data yang mengelompokan data berdasarkan informasi yang

ditentukan pada data. Tujuan dari pengelompokan data ini adalah agar obyek-

obyek di dalam suatu kelompok memiliki kemiripan satu sama lain sedangakan

obyek-obyek yang berbeda berada dalam kelompok yang memiliki perbedaan.

Berkaitan dengan proses pengelompokan data pada penelitian ini, akan

meggunakan metode hirarki divisive. Dalam metode divisive di setiap langkahnya

terjadi penambahan kelompok ke dalam nilai dua nilai terkecil sampai akhirnya

semua elemen bergabung. Metode ini merupakan proses pengklasteran yang

didasarkan pada persamaan nilai rata-rata antar objek. Jika sebuah objek memiliki

persamaan nilai rata-rata terbesar maka objek tersebut akan terpisah dan berubah

menjadi splinter group. Dilakukan 7 kali percobaan pembentukan kelompok dan

setiap percobaan dihitung pula nilai sum of square error (SSE)

Pada penelitian ini dibuat sebuah sistem yang mengimplementasikan

teknik analisis klaster menggunakan algoritma hirarki divisive. Data yang

digunakan adalah data penjualan. Hasil akhir dari proses pengolahan data

penjualan adalah terbentuknya 8 kelompok dengan nilai SSE terkeci dari beberapa

percobaan. Masing-masing kelompok akan dianalisa berdasarkan informasi yang

terkait. Hasil dari analisis klaster tersebut dapat menjadi strategi bagi pemilik

perusahaan dalam pengambilan keputusan hingga menyediakan serta memasarkan

produk dengan efektif untuk meningkatkan aktivitas penjualan.

Kata kunci: data mining, analisis klaster, hirarki divisive.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

x

ABSTRACT

ABSTRACT

Along with advanced current development, the role of information

technology in business world has been showing a great improvement. Data

Mining Technology can help a company to discover new comprehensions that are

very useful in setting business strategy. The information gathered from the data

mining will be able to help business people in escalating the business process and

making a business decision.

The product sales data at the XYZ Company will be used using cluster

analysis technique. Cluster analysis is an analysis for gathering the data based on

the information that has been chosen from the data. The aim from this data

clustering is to make the objects that have similarities of each other will be placed

in one group, while the different objects will be placed in one group that has

dissimilarity. Regarding with the clustering data process in this research, the

method that will be used is hierarchical divisive method. In the divisive method,

there will be group adding in every step into the value, the two smallest values

until finally all elements united. This method is a clustering process that is based

on the average value equation between the objects. If an object has the biggest

value equation, then the object will be separated and changed into splinter group.

There will be seven group formation experiments conducted and every experiment

will be counted the value of sum of square error (SSE).

This research creates a system that implements cluster analysis technique

using hierarchical divisive algorithm. The data used is the sales data. The final

result from processing the sales data is set-up of eight groups with the smallest

SSE value of several experiments. Each group will be analyzed based on

associated information. The outcome from the cluster analysis can be benefited as

a strategy to the company owner in making a decision to provide and market the

product effectively in order to increase sales activity.

Keyword: data mining, cluster analysis, hierarchical divisive.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

xi

KATA PENGANTAR

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa, karena pada akhirnya

penulis dapat menyelesaikan penelitian tugas akhir ini yang berjudul

“IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

CLUSTERING UNTUK PREDIKSI PENJUALAN DI PT. XYZ”.

Dalam seluruh proses penyusunan tugas akhir ini, penulis tak lepas dari

doa, bantuan, dukungan, dan motivasi dari banyak pihak. Oleh karena itu, penulis

ingin mengucapkan banyak terima kasih kepada:

1. Tuhan Yesus Kristus dan Bunda Maria yang selalu memberi anugerah,

rahmat, dan kekuatan sehingga penulis dapat menyelesaikan penelitian

dan penyusunan tugas akhir ini hingga selesai

2. Bapak Sudi Mungkasi, Ph.D. selaku Dekan Fakultas Sain dan Teknologi.

3. Ibu Rita selaku Ketua Program Studi Teknik Informatika.

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

yang telah baik, sabar memberikan waktu, bimbingan, dan motivasi

kepada peniulis.

5. Seluruh Dosen Teknik Informatika yang telah memberikan bekal ilmu dan

pengalaman selama penulis menempuh studi dan seluruh staff Sekretariat

Fakultas Sains dan Teknologi yang banyak membantu penulis dalam

urusan administrasi akademik terutama menjelang ujian tugas akhir dan

yudisium.

6. Kedua Orang Tua saya, F.X Suyatno dan Martha Sumini, terima kasih

untuk setiap cinta, kasih, sayang, dukungan moral dan moril untuk penulis,

dan doa demi kelancaran penyelesaian tugas akhir ini.

7. Margareta Desi Puspitasari seorang kekasih tercinta yang telah banyak

memberi semangat, kasih sayang, motivasi dan banyak membantu saat

suka dan duka.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

xii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

xiii

DAFTAR ISI

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

HALAMAN JUDUL (Bahasa Inggris) ................................................................... ii

HALAMAN PERSETUJUAN ............................................................................... iii

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

PERNYATAAN KEASLIAN KARYA ................................................................ iv

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI.................................. v

HALAMAN PERSEMBAHAN ........................................................................... vii

HALAMAN MOTTO .......................................................................................... viii

ABSTRAK ............................................................................................................. ix

ABSTRACT ............................................................................................................ x

KATA PENGANTAR ........................................................................................... xi

DAFTAR ISI ........................................................................................................ xiii

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

DAFTAR TABEL ............................................................................................... xvii

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

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

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

1.3. Tujuan ....................................................................................................... 3

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

1.5. Sistematika Penulisan ............................................................................... 4

BAB II LANDASAN TEORI ................................................................................. 6

2.1. Data Mining .............................................................................................. 6

2.2. Tahapan Data Mining ............................................................................... 7

2.3. Clustering ................................................................................................. 9

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

xiv

2.4. Hierarchical Clustering ......................................................................... 11

2.5. Definisi Metode Divisive ........................................................................ 13

2.6. Algoritma Metode Divisive .................................................................... 13

2.7. Uji Akurasi Data ..................................................................................... 19

BAB III METODOLOGI PENELITIAN.............................................................. 21

3.1. Sumber data ............................................................................................ 21

3.2. Teknik Analisis Data .............................................................................. 21

BAB IV ANALISIS DAN PERANCANGAN SISTEM ...................................... 29

4.1. Identifikasi Sistem .................................................................................. 29

4.1.1. Diagram Use Case........................................................................... 29

4.1.2. Narasi Use Case .............................................................................. 29

4.2. Perancangan Umum Sistem .................................................................... 29

4.2.1. Masukan Sistem .............................................................................. 29

4.2.2. Proses Sistem .................................................................................. 30

4.2.3. Output Sistem .................................................................................. 30

4.3. Perancangan Sistem ................................................................................ 30

4.3.1. Diagram Aktivitas ........................................................................... 30

4.3.2. Diagram kelas Analisis ................................................................... 31

4.3.3. Diagram Sequence ........................................................................... 32

4.3.4. Diagram Kelas Desain..................................................................... 33

4.3.5. Rincian Algoritma Setiap Method pada Tiap Kelas ........................ 33

4.4. Perancangan Stuktur Data ...................................................................... 33

4.4.1. Matriks Dua Dimensi ...................................................................... 34

4.5. Perancangan Antar Muka ....................................................................... 35

4.5.1. Tampilan Halaman Utama .............................................................. 35

BAB V MPLEMENTASI DAN ANALISIS HASIL ........................................... 40

5.1. Implementasi .......................................................................................... 40

5.1.1. Pengolahan Data.............................................................................. 40

5.1.2. Implementasi Antarmuka ................................................................ 46

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

xv

5.1.3. Impelentasi Kelas ............................................................................ 53

5.1.4. Implementasi Struktur Data ............................................................ 54

5.2. Analisis Hasil ......................................................................................... 58

BAB VI PENGUJIAN SISTEM ........................................................................... 67

6.1. Rencana Pengujian ................................................................................. 67

6.1.1. Hasil Pengujian Black-box .............................................................. 68

6.1.2. Kesimpulan Hasil Pengujian Black-box .......................................... 71

6.2. Kelebihan dan Kekurangan Sistem ........................................................ 71

6.2.1. Kelebihan Sistem ............................................................................ 71

6.2.2. Kekurangan Sistem ......................................................................... 71

BAB VII PENUTUP ............................................................................................. 73

7.1. Kesimpulan ............................................................................................. 73

7.2. Saran ....................................................................................................... 74

DAFTAR PUSTAKA ........................................................................................... 75

LAMPIRAN 1 ....................................................................................................... 76

LAMPIRAN 2 ....................................................................................................... 77

LAMPIRAN 3 ....................................................................................................... 82

LAMPIRAN 4 ....................................................................................................... 86

LAMPIRAN 5 ....................................................................................................... 89

LAMPIRAN 6 ....................................................................................................... 95

LAMPIRAN 7 ..................................................................................................... 125

LAMPIRAN 8 ..................................................................................................... 126

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

xvi

DAFTAR GAMBAR

Gambar 2.1. Data Mining Sebagai Tahapan Dalam Proses KDD .......................... 8

Gambar 2.2. Gambar Ilustrasi Algoritma Divisive ............................................... 18

Gambar 3.1. Block diagram proses program ........................................................ 21

Gambar 3.2. Jtree pembentukan Cluster ............................................................... 27

Gambar 4.1. Diagram kelas anaisis system ........................................................... 31

Gambar 4.2. Diagram kelas desain sistem ............................................................ 33

Gambar 4.3. Desain interface Halaman Utama tab Range Harga ......................... 35

Gambar 4.4. Desain interface Tab Range Harga................................................... 36

Gambar 4.5. Desain interface Halaman Utama Tab Preprosesing ........................ 38

Gambar 4.6. Desain interface Halaman Utama Tab Custering ............................. 39

Gambar 5.1. Contoh Sampel data transaksi .......................................................... 43

Gambar 5.2. Grafik SSE pembentukan Cluster .................................................... 46

Gambar 5.3. Implementasi Halaman Utama Sistem Tab Range harga ................. 47

Gambar 5.4. Implementasi Halaman Tentang....................................................... 48

Gambar 5.5. Implementasi Halaman Manual Sistem ........................................... 48

Gambar 5.6. Implementasi Input Range Harga ..................................................... 49

Gambar 5.7. Implementasi Input Data .................................................................. 50

Gambar 5.8. Implementasi Informasi Tabel Data Preprocessing ......................... 51

Gambar 5.9. Implementasi Hasil Divisive Clustering dan Akurasi ...................... 52

Gambar 5.10. Analisis – Grafik Hasil SSE ........................................................... 59

Gambar 5.11. Karakter cluster .............................................................................. 63

Gambar 5.12. Data Baru........................................................................................ 65

Gambar 5.13. Hasil Cluster Ulang ........................................................................ 66

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

xvii

DAFTAR TABEL

Tabel 3.1. Data contoh perhitungan jarak ............................................................. 22

Tabel 3.2. Hasil euclidean distance .................................................................... 23

Tabel 3.3. Matrik jarak tahap 2 ............................................................................. 24

Tabel 3.4. Matrik jarak tahap 3 ............................................................................. 25

Tabel 3.5. Matrik jarak tahap 4 ............................................................................. 26

Tabel 3.6. Contoh pembentukan 3 cluster oleh sistem ......................................... 28

Tabel 4.1 Tabel penjelasan diagram kelas analisis ............................................... 31

Tabel 4.2. Contoh Matriks Dua Dimensi .............................................................. 34

Tabel 4.3. Contoh represntasi matriks dua dimensi .............................................. 34

Tabel 5.1. Atribut dalam tabel detail penjualan .................................................... 40

Tabel 5.2 Atribut hasil seleksi ............................................................................... 42

Tabel 5.3. Hasil preprocessing data ...................................................................... 44

Tabel 5.4. Implementasi Kelas .............................................................................. 53

Tabel 5.5. Hasil Perhitungan Nilai SSE ................................................................ 59

Tabel 5.6. Hasil Clustering Divisive untuk 159 data ............................................ 59

Tabel 5.7 Nilai rata-rata variabel quantity pada percobaan ke-7 .......................... 61

Tabel 5.8. Hasil Clustering Divisive untuk penambahan data baru ...................... 65

Tabel 6.1. Rencana pengujian Blackbox ............................................................... 67

Tabel 6.2. Tabel Pengujian input range harga....................................................... 68

Tabel 6.3. Tabel Pengujian input Data .................................................................. 69

Tabel 6.4. Tabel Pengujian Clustering .................................................................. 70

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

1

BAB I

PENDAHULUAN

BAB I PENDAHULUAN

1.1. Latar Belakang

Seiring perkembangan jaman yang semakin maju, peranan teknologi

informasi dalam dunia bisnis masa kini mengalami perkembangan yang sangat

pesat dimana perkembangannya tidak dapat dihindari. Dampak dari

perkembangan tersebut juga memiliki pengaruh lain terhadap dunia bisnis seperti

peningkatan efektifitas dan efisiensi kerja, peningkatan marketing melalui digital

marketing, atau peningkatan potensi bisnis untuk menjangkau berbagai macam

permintaan konsumen. Hal tersebut memicu persaingan antar perusahaan yang

lain oleh karena itu para pelakunya harus senantiasa memikirkan cara-cara untuk

terus bertahan dan jika mungkin mengembangkan sekala bisnis mereka.

Perusahaan XYZ merupakan salah satu perusahaan yang bergerak di

bidang distribusi helm. Permintaan akan produk yang ada merupakan bagian yang

sangat penting dalam rantai penyediaan produk. Masalah yang muncul dari

keadaan di atas adalah ketidaksiapan produsen dalam memenuhi jumlah setiap

permintaan pasar karena permintaan dapat terjadi secara tiba-tiba atau di luar

kendali perusahaan. Mengatasi hal tersebut pihak produsen diharapkan harus

dapat terus meningkatkan keuntungan, salah satu caranya dengan menyediakan

produk helm sesuai dengan permintaan pasar agar tidak terjadi kekurangan atau

kelebihan produk. Sehingga diperlukan sistem yang mampu memprediksi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

2

ketersedian jumlah helm yang akan dipasarkan sesuai dengan permintaan agar

kegiatan penjualan dapat berjalan secara optimal.

Dengan mengimplementasikan data mining menggunakan metode

clustering merupakan cara yang efektif dalam melakukan peramalan, karena

metode ini akan mengelompokan barang penjualan kedalam beberapa klaster yang

terpisah sesuai dengan jumlah transaksi yang lakukan. Dari masing-masing klaster

yang terbentuk akan kelihatan barang mana saja yang memiliki tingkat pembelian

yang tinggi ataupun rendah. Dari data tersebut akan didapatkan data yang valid

tentang trend pembelian atau pola konsumsi konsumen.

Pembahasan dalam tugas akhir ini dititikberatkan hanya pada metode

divisive. Metode divisive merupakan kebalikan dari metode agglomeratif dalam

analisis klaster. Metode divisive clustering termasuk dalam analisis klaster

hierarchical. Pada setiap langkahnya, metode divisive terjadi penambahan

kelompok kedalam nilai dua nilai terkecil, sampai akhirnya semua elemen

terkelompokkan. Alasan mengapa menggunakan metode divisive untuk

pengelompokan penjualan karena tidak hanya menghasilkan jumlah cluster

sebanyak inputan cluster tetapi metode ini juga dapat menghasilkan jumlah

cluster dengan jumlah maksismal sama dengan jumlah sampel atau sesuai

kebutuhan. Dengan kata lain jika jumlah cluster lebih banyak berarti memberikan

banyak pilihan bagi produsen untuk mentukan strategi pasar berikutnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

3

1.2. Rumusan Masalah

Dari latar belakang diatas dapat dirumuskan masalah dari penelitian ini

antara lain:

1. Bagaimanakah langkah-langkah penerapan metode divisive dalam

pembentukan klaster pada data penjualan produk helm di PT. XYZ?

1.3. Tujuan

Tujuan dari penelitian ini adalah melakukan analisis terhadap data

penjualan untuk mengetahui prediksi pendistribusian produk helm di perusahaan

XYZ dengan bantuan data mining menggunakan algoritma divisive.

1.4. Batasan Masalah

Adapun batasan masalah dalam penelitian ini adalah sebagai berikut :

1. Data penjualan yang digunakan dalam proses data mining adalah tahun 2014.

2. Data yang digunakan sebagai atribut adalah data penjualan, yaitu berdasarkan

kelompok harga, harga jual, quantity, nama barang (merk, tipe, dan warna),

wilayah dari produk tersebut.

3. Berdasarkan input data penjualan produk helm di perusahaan XYZ tahun

2014, output yang dihasilkan program ini adalah berupa klaster produk

penjualan.

4. Pengguna sistem adalah bagian pemasaran produk helm di perusahaan XYZ.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

4

1.5. Sistematika Penulisan

BAB I PENDAHULUAN

Pada bab ini berisi gambaran umum penelitian meliputi: latar belakang masalah,

batasan masalah, tujuan tugas akhir, rumusan masalah, dan sistematika penulisan.

BAB II LANDASAN TEORI

Pada bab ini berisi mengenai penjelasan dan uraian singkat mengenai teori-teori

yang berkaitan dengan topik dari tugas akhir ini.

BAB III METODOLOGI PENELITIAN

Pada bab ini akan dijelaskan mengenai metode yang digunakan dalam penelitian

ini.

BAB IV ANALISIS DAN PERANCANGAN

Pada bab ini berisi tentang analisis dan perancangan sistem yang akan dibuat

meliputi gambaran umum sistem, data yang dibutuhkan untuk penelitian,

percancangan struktur data, dan perancangan antar muka.

BAB V IMPLEMENTASI DAN ANALISIS HASIL

Bab ini menjelaskan mengenai implementasi dari analisis yang telah dibuat pada

tahap sebelumnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

5

BAB VI PENGUJIAN SISTEM

Pada bab ini menjelaskan mengenai pengujian terhadap sistem yang telah dibuat

dan evaluasi sistem tersebut.

BAB VII PENUTUP

Bab ini berisi tentang kesimpulan dari penelitian yang telah dilakukan dan saran

dari sistem yang nantinya akan dikembangkan.

DAFTAR PUSTAKA

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

6

BAB II

LANDASAN TEORI

BAB II LANDASAN TEORI

Pada bab ini akan menjelaskan landasan teori yang digunakan dalam

penelitian ini. Agar sebuah penelitian dapat berhasil maka diperlukan refrensi

sebagai landasan teorinya. Landasan teori tersebut berisi tentang pengertian data

mining, tahapan data mining atau tahapan dalam proses Knowledge Discovery In

Databases, hierarchical clustering sebagai algorima yang digunakan untuk

pengelompokan obyek data dari variabel yang telah dipilih dan bagian terakhir

dalam bab ini akan dipaparkan tentang uji akurasi data.

2.1. Data Mining

Data mining adalah serangkaian proses untuk menggali nilai tambah

berupa pengetahuan yang selama ini tidak diketahui secara manual. Data mining

adalah proses yang menggunakan teknik statistik, perhitungan, kecerdasan

buatan dan machine learning untuk mengekstrasi dan mengidentifikasi

informasi yang bermanfaat dan pengetahuan yang terkait dari berbagai basis

data besar (Hanif, 2007).

Data mining sering juga disebut knowledge discovery in database (KDD),

adalah kegiatan yang meliputi pengumpulan, pemakaian data historis untuk

menemukan keteraturan, pola atau hubungan dalam set data berukuran besar.

Keluaran dari data mining ini bisa dipakai untuk memperbaiki pengambilan

keputusan di masa depan (Santosa, 2007). Data mining adalah kegiatan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

7

menemukan pola yang menarik dari data dalam jumlah besar, data dapat disimpan

dalam database, data warehouse, atau penyimpanan informasi lainnya.

Berdasarkan beberapa pengertian tersebut dapat ditarik kesimpulan bahwa

data mining adalah suatu teknik menggali informasi berharga yang terpendam atau

tersembunyi pada suatu database yang sangat besar sehingga ditemukan suatu

pola yang menarik yang sebelumnya tidak diketahui. Beberapa metode yang

sering disebut-sebut dalam literatur data mining antara lain clustering,

classification, association rules mining, neural network, genetic algorithm dan

lain-lain (Pramudiono, 2006). Data mining sering digunakan untuk membangun

model prediksi/inferensi yang bertujuan untuk memprediksi tren masa depan atau

perilaku berdasarkan analisis data terstruktur.

2.2. Tahapan Data Mining

Data tidak dapat langsung diolah dengan menggunakan sistem data

mining. Data tersebut harus dipersiapkan terlebih dahulu agar hasil yang diperoleh

dapat lebih maksimal. Dan tahapan dalam proses Knowledge Discovery In

Databases (KDD) dapat dilihat pada Gambar 2.1 terdiri dari tahapan-tahapan

sebagai berikut (J. Han & Kamber, 2006):

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

8

Gambar 1

Gambar 2.1. Data Mining Sebagai Tahapan Dalam Proses KDD

(Sumber : J. Han & Kamber 2006)

1. Cleaning and Integration

Langkah pertama adalah dengan melakukan pembersihan terhadap data

dan penggabungan data. Proses data cleaning bertujuan untuk menghilangkan

noise dan data yang tidak konsisten dan proses data integration bertujuan untuk

menggabungkan sumber data dari berbagai tempat menjadi satu penyimpanan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

9

2. Selection and Transformation

Pada tahap selection dan transformation, data dan atribut yang akan

digunakan diambil dari database untuk dianalisis. Selanjutnya data tersebut

diubah menjadi bentuk yang tepat untuk di-mining.

3. Data Mining

Data mining adalah proses mencari pola atau informasi menarik dalam

data terpilih dengan menggunakan teknik atau metode tertentu. Teknik, metode

atau algoritma dalam data mining sangat bervariasi. Pemilihan metode atau

algoritma yang tepat sangat bergantung pada tujuan dan proses KDD secara

keseluruhan

4. Evaluation and Presentation

Pada tahap ini, dilakukan identifikasi pola-pola yang benar-benar

menarik dari hasil data mining. Setelah didapatkan pola yang dihasilkan

dari proses data mining perlu divisualisasikan atau ditampilkan dalam bentuk

yang mudah dimengerti oleh pihak yang berkepentingan.

2.3. Clustering

Clustering atau klasterisasi adalah suatu alat bantu pada data mining yang

bertujuan untuk mengelompokan obyek-obyek ke dalam klaster-klaster. Klaster

adalah sekelompok atau sekumpulan obyek-obyek data yang similar satu sama

lain dalam kalaster yang sama dan dissimiliar terhadap obyek-obyek yang berbeda

klaster. Obyek akan dikelompokan ke dalam satu atau lebih klaster sehingga

obyek-obyek yang berbeda dalam satu klaster akan mempunyai kesamaan yang

tinggi antara satu dengan yang lainya. Obyek-obyek dikelompokan berdasarkan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

10

prinsip memaksimalkan kesamaan obyek pada klaster yang sama dan

meminimalkan ketidaksamaan pada klaster yang berbeda. Kesamaan obyek

bisanya diperoleh dari nilai-nilai atribut yang menjelaskan obyek data, sedangkan

obyek-obyek data biasanya direpresentasikan sebagai sebuah titik dalam ruang

multidimensi.

Dengan menggunakan klasterisasi, metode ini dapat mengidentifikasi

daerah yang padat, menemukan pola-pola distribusi secara keseluruhan, dan

menemukan keterkaitan yang menarik antar atribut-atribut data. Dalam data

mining, usaha difokuskan pada metode-metode penemuan untuk klaster pada

basisdata berukuran besar secara efektif dan efesien. Kebutuhan klasterisasi dalam

data mining meliputi skalabilitas, kemampuan untuk menangani tipe atribut yang

berbeda, mampu menagani dimensionalitas yang tinggi, menangani data yang

mempunyai noise, dan dapat diterjemahkan dengan mudah.

Secara garis besar, terdapat beberapa metode klasterisasi data. Pemilihan

metode klasterisasi tergantung pada tipe data dan tujuan klasterisasi itu sendiri.

Metode-metode berserta algoritmanya termasuk didalamnya meliputi:

1. Partitioning Method : Membuat berbagai partisi dan kemudian

mengevaluasi partidi tersebut dengan beberapa kriteria. Yang termasik ke

dalam metode ini meliputi algoritma K-Means, K-Medoid, PROCLUS,

CLARA, CLARANS, dana PAM

2. Hierarchical Method : Membuat suatu penguraian secara hierarikal dari

himpunan data dengan menggunakan beberapa kriteria. Metode ini terdiri

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

11

atas dua macam, yaitu Agglomerative yang menggunakan stratedi bottom-

up dan Divisive yang menggunakan strategi top-down. Metode ini

meliputi algoritma BIRCH, AGNES, DIANA, CURE, dan

CHAMALEON.

3. Density-based Method : Metode ini berdasarkan konektivitas dan fungsi

densitas. Metode ini meliputi algoritma DBSCAN, OPTICS, dan

DENCLU.

4. Grid-base Method : Metode ini berdasarkan suatu struktur granularitas

multi-level. Metode klasterisasi ini meliputi algoritma STING,

WaveCluster, dan CLIQUE.

5. Model-base Method : Suatu model dihipotesiskan untuk masing-masing

klaster dan ide untuk mencari best fit dari model tersebut untuk masing-

masing yang lain. Metode klasterisasi ini meliputi pendekatan statistic,

yaitu algoritma COBWEB dan jaringan syaraf tiruan, yaitu SOM.

2.4. Hierarchical Clustering

Metode hierarchical clustering mengelmpokan objek kedalam sebuah

pohon klaster. Hierarchical clustering dapat diklasifikasikan sebagai

agglomerative atau divisive, tergantung pada komposisi hirarki yang di tampilkan

dalam pendekatan bottom-up atau top down (split). (Han & Kamber, 2006).

Pada umumya terdapat dua metode hierarchical clustering:

1. Agglomerative, metode ini dimulai dari menempatkan objek ke dalam satu

cluster dan selanjutnya digabungkan ke dalam cluster yang lebih besar

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

12

hingga sebua objek terhubung dalam satu buah cluster atau hingga

mencapai jumlah cluster yang diinginkan.

2. Divisive, kebalikan dari metode agglomerative. Metode ini dimulai dari

satu cluster dengan seluruh objek data di dalamnya, selanjutnya cluster

tersebut dipecah kedalam cluster yang lebih kecil hingga setiap cluster

memiliki dua atau satu buah objek atau hingga mencapai jumlah cluster

yang diinginkan.

Sebelum pembentukan sebuah cluster perlu dihitung jarak kemiripan

antara obyek data. Ada beberapa cara untuk mengetahui kemiripan data. Satu

di antara cara yang ada adalah similarity matrix dengan perhitungan euclidean

distance. Euclidean distance didefinisikan sebagai berikut:

( ) √(| | | | | | | | ) (2.1)

Atau dapat disingkat dengan:

( ) √∑ ( ) (2.2)

Keterangan:

adalah jumlah atribut atau dimensi

dan adalah data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

13

2.5. Definisi Metode Divisive

Teknik divisive clustering termasuk kedalam analisis hierarchical

clustering. Pada setiap langkahnya, metode divisive terjadi penambahan kelompok

kedalam dua nilai terkecil. Sampai akhirnya semua element terkelompokan.

Teknik divisive merupakan proses pengklasteran yang didasarkan pada

persamaan nilai rata-rata antar objek. Jika sebuah objek memiliki persamaan nilai

rata-rata terbesar maka objek tersebut akan terpisah dan berubah menjadi splinter

group. Pada teknik divisive ini perhitungan juga di lihat dari perbedaan atau

selisih anatara persamaan nilai rata-rata dengan nilai elemen matrik yang telah

menjadi splinter group. Jika selisih nilai antara persamaan nilai rata-rata dengan

nilai elemen matrik splinter group bernilai negatif, maka perhitungan terhenti

sehingga harus dibuat matrik baru untuk mendapatkan klaster yang lain.

Perhitungan ini terus dilakukan sedemikian sehingga semua objek terpisah.

2.6. Algoritma Metode Divisive

Misalkan diberikan data X matriks berukuran n x p (n = jumlah sampel

data, p = variabel setiap data). Xij= data sampel ke-j (j = 1, 2, …, n) dan variabel

ke-i (i = 1, 2, …, p).

1. Bentuk suatu matriks jarak dengan menggunakan jarak euclidean.

Rumusnya berikut :

√∑ ( )

(2.3)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

14

Asumsikan setiap data dianggap sebagai klaster. Jika diberikan n data dan

c klaster maka n = c, maka diperoleh matriks jaraknya, yaitu:

( )

[

]

(2.4)

2. Hitung nilai rata-rata setiap obyek dengan obyek lainnya

3. Tentukan objek yang memiliki nilai rata-rata yang terbesar, objek yang

memiliki nilai rata-rata yang terbesar akan dipisah dan berubah menjadi

splinter group.

4. Hitung selisih nilai antara elemen matriks splinter group dengan nilai

rata-rata setiap objek yang tersisa.

5. Tentukan objek yang memiliki nilai selisih terbesar antara elemen matriks

splinter group dengan nilai rata-rata. Jika nilai selisih tersebut bernilai

positif, maka objek yang memiliki nilai selisih terbesar bergabung dengan

splinter group.

6. Ulangi langkah satu sampai lima sedemikian sehingga semua nilai selisih

antara nelemen matriks splinter group dengan nilai rata-rata bernilai

negatif dan klaster terbagi menjadi dua klaster baru.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

15

CONTOH ALGORITMA DIVISIVE :

Untuk memperjelas metode tersebut dapat diperhatikan contoh berikut.

Diketahui distance matriks D dengan 5 sample a, b, c, d, e seperti dibawah ini.

[

]

Data yang terdapat dalam matrik memiliki nilai yang berbeda antara objek

a, b, c, d, dan e. Dari matrik diatas kemudian akan dihitung nilai rata-rata setiap

obyek dengan obyek lainnya seperti dalam Tabel 2.1:

Tabel 2.1 Average dissimilarity to the other objects tahap 1

Objects Average dissimilarity to the other objects

a (2+6+10+9)/4=6.75

b (2+5+9+8)/4=6.00

c (6+5+4+5)/4=5.00

d (10+9+4+3)/4=6.50

e (9+8+5+3)/4=6.25

Dari tabel 2.1 objek a disebut splinter group. Sampai pada langkah ini

menghasilkan dua grup yaitu grup {a} dan grup {b,c,d,e}, tetapi perhitungan tidak

berhenti sampai disini. Untuk setiap objek dari group yang besar harus di hitung

average dissimilarity dengan objek yang tersisa, dan membandingkan itu dengan

average dissimilarity dengan objek dari splinter group. Pada Tabel 2.2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

16

menghitung selisih dari nilai rata-rata obyek yang tersisa dengan nilai rata-rata

dari splinter group:

Tabel 2.2 Difference tahap 1

Objects Average dissimilarity

to the other objects

Average dissimilarity to

objects of splinter group Difference

b (5.0+9.0+8.0)/3 = 7.33 2.00 5.33

c (5.0+4.0+5.0)/3 = 4.67 6.00 -1.33

d (9.0+4.0+3.0)/3 = 5.33 10.00 -4.67

e (8.0+5.0+3.0)/3 = 5.33 9.00 -3.67

Hasil perhitungan nilai selisih dalam Tabel 2.2 terlihat bahwa perbedaan

terbesar terdapat pada objek b. Oleh sebab itu, objek b berpindah bagian menjadi

splinter group. Jadi, splinter group yang satu {a,b} dan group sisanya {c,d,e}.

Pada Tabel 2.3 dilakukan perhitungan ulang masing-masing group dengan obyek

yang ada dan tersisa didalamnya, maka didapat:

Tabel 2.3 Difference tahap 2

Objects Average dissimilarity

to the other objects

Average dissimilarity to

objects of splinter group Difference

c (5.0+4.0)/2 = 4.50 (5.0+3.0)/2 = 4.00 -1.00

d (4.0+3.0)/2 = 3.50 (10.0+9.0)/2 = 9.50 -6.00

e (5.0+3.0)/2 = 4.00 (9.0+8.0)/2 = 8.50 -6.00

Pada Tabel 2.3 terlihat, untuk semua difference bernilai negatif. Oleh sebab

itu tidak terjadi perpindahan. Proses dihentikan dan langkah divisive pertama

selesai. Dimana data dibagi dalam dua klaster, yaitu {a,b}, dan {c,d,e}.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

17

Dalam langkah berikutnya akan dilakukan pembagian klaster. Pembagian

klaster dilakukan pada klaster yang memiliki rata-rata terbesar. Rata-rata dari

klaster {a,b} adalah 2, dan untuk klaster {c,d,e} adalah 5. Oleh sebab itu, akan

terjadi pembagian klaster {c,d,e}, dengan matrik sebagai berikut :

[

]

Tabel 2.4 Average dissimilarity to the other objects tahap 2

Objects Average dissimilarity to the other objects

c (4.0+5.0)/2 = 4.50

d (4.0+3.0)/2 = 3.50

e (5.0+3.0)/2 = 4.00

Pada Tabel 2.4 adalah hasil perhitungan nilai rata-rata dengan objek yang

tersisa. Ternyata objek c yang memiliki nilai positif terbesar, maka objek c masuk

dalam splinter group. Jadi, terdapat dua grup yaitu {c} dan {d,e}, selanjutnya

akan dihitung nilai selisih dari nilai rata-rata obyek yang tersisa dengan nilai rata-

rata dari splinter group seperti dalam Tabel 2.5:

Tabel 2.5 Difference tahap 3

Objects Average dissimilarity

to the other objects

Average dissimilarity to

objects of splinter group Difference

d 3.0 4.00 -1.00

e 3.0 5.00 -2.00

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

18

Dari Tabel 2.5 memperlihatkan proses pembentukan dihentikan karena semua

difference bernilai negatif. Karena itu, pembagian pada langkah dua {c,d,e}

adalah {c} dan {d,e}. Jadi, klaster yang didapat {a,b}, {c}, dan {d,e}. klaster {c}

disebut singleton karena hanya mengandung satu objek. Hasil dari hierarikal

digambarkan seperti pada Gambar 2.2 :

a,b,c,d,e

a,b

c,d,e c

d,e

a

b

Gambar 2

Gambar 2.2. Gambar Ilustrasi Algoritma Divisive

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

19

2.7. Uji Akurasi Data

Setelah didapatkan hasil olahan dengan divisive perlu diuji akurasinya

supaya diketahui validitas data tersebut. Ada beberapa teknik untuk uji akurasi

data tersebut. Karena metode yang digunakan adalah metode clustering maka

dapat digunakan dua jenis akurasi, yaitu Internal Evaluation dan External

Evaluation (Prasetyo, 2014).

1. Internal Evaluation

Internal Evaluation merupakan pengujian data cluster demi validitasnya

tanpa informasi dari luar. Validasi ini contohnya adalah cohesion,

separation, silhouette coefficient, dan sum of square error(SSE).

2. External Evaluation

Dengan menggunakan external evaluation akan diketahui kedekatan antara

label cluster terbentuk dengan class yang disediakan. External evaluation

ini dapat dilakukan dengan confusion matrix, entropy, dan purity.

Pada penelitian ini yang akan digunakan untuk uji akurasi adalah internal

evaluation, secara khusus dengan menggunkan teknik sum of square error (SEE).

Pada setiap pembentukan cluster akan dihitung nilai SSE-nya. Semakin kecil nilai

SSE menunjuakan bahwa cluster yang dibentuk semakin baik pula. Berukut

formula SSE yang akan digunakan (Lior Rokach):

∑ ∑ ‖ ‖

(2.5)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

20

Keterangan

adalah jarak data x di indeks i

adalah rata-rata semua jarak data di cluster k

Berikut adalah algoritma SSE:

1. Tentukan matriks K yang akan dihitung menggunakan SSE

adalah data set dari cluster k

Cluster k adalah anggota dari matriks K

2. Jika k=1

3. Hitung rata-rata cluster k ( ) … a

4. Lakukan langkah 5 dan 7 untuk setiap data x

5. Kurangkan a dengan data x di indek i (‖ ‖) … b

6. Hitung … c

7. c dijumlahkan untuk setiap cluster k … d

8. Jumlahkan total d di matriks K

9. Selesai

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

21

BAB III

METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN

Berdasarkan pada landasan teori yang telah disampaikan pada bab kedua.

Pada bab ini akan dibahas mengenai metodologi yang digunakan dalam penelitian

ini. Bab ketiga ini akan dipaparkan tentang sumber data yang diperoleh dan teknik

analisis data.

3.1. Sumber data

Data yang digunakan adalah data penjualan tahun 2014 pada perusahaan

XYZ. Data yang digunakan merupakan hasil eksport dari database perusahaan

berjenis file csv. Total data transaksi penjualan bejumlah 933 record.

3.2. Teknik Analisis Data

Data yang telah diperoleh selanjutnya mulai dianalisis. Berkaitan dengan

tahap-tahap teknik analisis dan jalannya program digambarkan dengan block

diagram sebagai berikut

Data PreprocessingPerhitungan

JarakDivisive Output Jtree

Akurasi

Gambar 3 Gambar 3.1. Block diagram proses program

1. Data

Data yang digunakan dalam penelitian ini adalah data yang diperoleh dari

perusahaan XYZ. Data ini merupakan data transaksi penjualan produk helm. Data

penjualan ini bersifat penting karena mengandung informasi penjualan secara

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

22

detail. Data yag digunakan adalah data penjualan tahun 2014 selama kurun waktu

satu tahun.

2. Preprocessing

Data yang sudah didapat selanjutnya diolah dengan tahap preprocessing.

Pada tahap ini akan dilakukan data cleaning, data integration, data selection, dan

data transformation.

3. Perhitungan Jarak

Setalah melalui tahap preprocessing, tahap selanjutnya adalah mengukur

jarak setiap data. Perhitungan jarak menggunakan euclidean distance, seperti

yang telah dipaparkan pada bab kedua dalam penelitina ini. Dengan menggunakan

perhitungan euclidean distance akan didapatkan jarak antar obyek data dalam

sebuah matriks. Matriks tersebut nantinya akan digunakan untuk tahap

selanjutnya, yaitu clustering menggunakan metode divisive. Tabel 3.1 adalah

contoh data yang akan digunakan untuk perhitungan euclidean distance:

Tabel 1 Tabel 3.1. Data contoh perhitungan jarak

Data x y

a 87.0 89.0

b 84.0 76.0

c 83.0 70.0

d 80.0 74.0

e 82.0 83.0

f 81.0 92.0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

23

Dengan menggunakan rumus perhitungan euclidean distance, didapatkan

matriks jarak seperti pada Tabel 3.2:

Tabel 2 Tabel 3.2. Hasil euclidean distance

a b c d e f

a 0.0 13.342 19.417 16.553 7.811 6.709

b 13.342 0.0 6.083 4.473 7.281 16.279

c 19.417 6.083 0.0 5.0 13.039 22.091

d 16.553 4.473 5.0 0.0 9.22 18.028

e 7.811 7.281 13.039 9.22 0.0 9.056

f 6.709 16.279 22.091 18.028 9.056 0.0

4. Divisive

Dalam tahap ini hasil dari matriks jarak akan digunakan untuk

pembentukan cluster. Masing-masing obyek data akan dikelompokan berdsarkan

jarak kemiripannya. Proses pengelompokan menggunakan perhitungan divisive.

Langkah-langkah perhitungannya seperti yang dapat dilihat dalam bab kedua

dalam penelitian ini. Berikut ini penerapan algoritma divisive:

Tahap 1

Langkah pertama: Dari matriks jarak pada Tabel 3.2 asumsikan setiap data

dianggap sebagai klaster.

Langkah kedua : Hitung nilai rata-rata setiap objek dengan objek lainnya.

Rata-rata objek a = 10.63866667

Rata-rata objek b = 7.909666667

Rata-rata objek c = 10.93833333

Rata-rata objek d = 8.879

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

24

Rata-rata objek e = 7.7345

Rata-rata objek f = 12.02716667

Langkah ketiga: Tentukan objek yang memiliki nilai rata-rata yang terbesar,

objek yang memiliki nilai rata-rata yang terbesar akan terpisah dan berubah

menjadi splinter group. Diperoleh objek f memiliki rata-rata terbesar, maka

objek f keluar dan menjadi splinter group.

Tahap 2

Diperoleh matrik jarak yang baru, seperti pada Tabel 3.3:

Tabel 3 Tabel 3.3. Matrik jarak tahap 1

a b c d e

a 0.0 13.342 19.417 16.553 7.811

b 13.342 0.0 6.083 4.473 7.281

c 19.417 6.083 0.0 5.0 13.039

d 16.553 4.473 5.0 0.0 9.22

e 7.811 7.281 13.039 9.22 0.0

Ulangi langkah kedua : Dari matriks jarak yang baru, kemudian pilih rata-rata

antar antar objek dengan objek lainnya.

Rata-rata objek a = 11.4246

Rata-rata objek b = 6.2358

Rata-rata objek c = 8.7078

Rata-rata objek d = 7.0492

Rata-rata objek e = 7.4702

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

25

Kemudian selisihkan setiap nilai rata-rata tersebut dengan elemen matrik

splinter group.

Rata-rata objek a = 11.4246 - 6.709 = 4.7156

Rata-rata objek b = 6.2358 - 16.279 = -10.0432

Rata-rata objek c = 8.7078 - 22.091 = -13.3832

Rata-rata objek d = 7.0492 - 18.028 = -10.9788

Rata-rata objek e = 7.4702 - 9.056 = -1.5858

Langkah ketiga : tentukan objek yang memiliki nilai selisih terbesar, objek

yang memiliki nilai selisih terbesar akan terpisah dan bergabung dengan

splinter group. Objek a memiliki nilai selisih terbesar, maka objek a

bergabung dengan objek f ke dalam splinter group.

Tahap 3

Diperoleh matrik jarak yang baru, , seperti pada Tabel 3.4:

4 Tabel 3.4. Matrik jarak tahap 3

b c d e

b 0.0 6.083 4.473 7.281

c 6.083 0.0 5.0 13.039

d 4.473 5.0 0.0 9.22

e 7.281 13.039 9.22 0.0

Ulangi langkah kedua : Dari matriks jarak yang baru, kemudian pilih rata-rata

antar antar objek dengan objek lainnya.

Rata-rata objek b = 4.45925

Rata-rata objek c = 6.0305

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

26

Rata-rata objek d = 4.67325

Rata-rata objek e = 7.385

Kemudian selisihkan setiap nilai rata-rata tersebut dengan elemen matrik

splinter group.

Rata-rata objek b = 4.45925 - 14.8105 = -10.35125

Rata-rata objek c = 6.0305 - 20.754 = -14.7235

Rata-rata objek d = 4.67325 - 17.2905 =-12.61725

Rata-rata objek e = 7.385 - 8.4335 = -1.0485

Karena semua nilai selisih bernilai negatif, maka algoritma kembali ke

awal. Rata-rata objek terbesar pada matriks tersebut dimiliki oleh objek e,

maka objek e keluar dan membentuk klaster baru.

Tahap 4

Diperoleh matrik jarak yang baru, , seperti pada Tabel 3.5:

5 Tabel 3.5. Matrik jarak tahap 4

b c d

b 0.0 6.083 4.473

c 6.083 0.0 5.0

d 4.473 5.0 0.0

Ulangi langkah kedua : Dari matriks jarak yang baru, kemudian pilih rata-rata

antar antar objek dengan objek lainnya.

Rata-rata objek b = 3.518666667

Rata-rata objek c = 3.694333333

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

27

Rata-rata objek d = 3.157666667

Kemudian selisihkan setiap nilai rata-rata tersebut dengan elemen matrik

splinter group.

Rata-rata objek b = 3.518666667 - 7.281 = -3.762333333

Rata-rata objek c = 3.694333333 - 13.039 = -9.344666667

Rata-rata objek d = 3.157666667 - 9.22 = -6.062333333

Karena semua nilai selisih bernilai negatif, maka algoritma berhenti

sampai disini. Maka objek b, c,dan d keluar dan membentuk klaster baru.

Dengan mengimplementasikan algoritma divisive menggunakan java, data

sampel yang digunakan pada Tabel 3.1 menghasilhan skruktur tree cluster seperti

pada Gambar 3.2:

Gambar 4

Gambar 3.2. Jtree pembentukan Cluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

28

5. Cluster

Proses Divisive menghasilkan jumlah cluster maksimum sesuai dengan

proses iterasi pada algoritma divisive. Hasil pembentukan cluster ditampilkan pula

kedalam struktur tree. Dari hasil Jtree tersubut juga dapat ditentukan cluster yang

diinginkan seperti pada Tabel 3.6.

Tabel 6 Tabel 3.6. Contoh pembentukan 3 cluster oleh sistem

Cluster 1 Cluster 2 Cluster 3

a e c

f b

d

6. Perhitungan Akurasi

Pada penelitian ini akan dilakukan uji akurasi pada setiap pembentukan

cluster dan mengevaluasi pola yang ditemukan dari hasil pengelompokan.

Sebelum sistem menyimpan cluster yang sudah terbentuk, masing-masing cluster

akan di hitung menggunakan sum of square error (SSE). Setelah semua cluster

terbentuk akan ditotal jumlah SSE-nya. Dengan demikian ada sejumlah percobaan

pembentukan cluster yang akan dihitung SSE-nya. SSE dengan nilai terendah

mengindikasikan bahwa cluster yang tebentuk adalah yang paling baik. Pada

penelitian ini dilakukan 2 sampai 7 percobaan pembentukan cluster sesuai dengan

jumlah obyek data, namun tidak menutup kemungkinan jika percobaan yang

dilakukan bisa lebih atau kurang atau lebih dari 7. Hal ini tergantung jumlah

obyek data dan kebutuhan yang ada.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

29

BAB IV

ANALISIS DAN PERANCANGAN SISTEM

BAB IV ANALISIS DAN P ERANCANGAN SISTEM

Pada bab ini akan dijelaskan mengenai perancangan sistem yang akan

diimplementasikan. Meliputi identifikasi sistem, perancangnan umum sistem,

perancangan system, perancangan struktur data dan perancangan antar muka.

4.1. Identifikasi Sistem

4.1.1. Diagram Use Case

Diagram use case adalah sebuah gambaran fungsi/pekerjaan yang dapat

dilakukan oleh sistem tersebut. diagram use case yang digunakan dapat dilihat

pada bagian lampiran 1 untuk melihat definisi use case tersebut.

4.1.2. Narasi Use Case

Pada bagian ini setiap use case akan dirinci dalam sebuah narasi yang

merupakan diskripsi tekstual dari kejadian bisnis dan bagaimana pengguna

berinteraksi dengan sistem untuk menyelesaikan tugas tersebut. untuk mengetahui

secara keseluruhan narasi use case dapat dilihat pada lampiran 2.

4.2. Perancangan Umum Sistem

4.2.1. Masukan Sistem

Masukan yang digunakan dalam sistem ini berasal dari tabel database

yang kemudian di ekspor kedalam file jenis *.csv file. Ketentuan eksport juga

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

30

perlu diperhatikan. Pilihan untuk menyertakan nama kolom harus dipilih, pemisah

kolom mengunakan tanda koma, dan tidak boleh ada nilai null.

4.2.2. Proses Sistem

Proses dari sistem yang menghasilkan cluster yang berfungsi untuk

mempediksi ini terdiri dari beberapa langkah:

a. Memasukan nilai range harga kelompok, kelompok 1 sampai dengan 5.

b. Penginputan file data penjualan yang akan digunakan untuk proses data

mining.

c. Proses clustering untuk memprediksi dijalankan.

d. Uji akurasi dari cluster yang telah berhasil dibentuk dan menganalisa hasil

cluster.

4.2.3. Output Sistem

Sistem yang akan dirancang ini akan menampilkan hasil proses clustering

diantaranya, jumlah cluster yang terbentuk, anggota setiap cluster, dan struktur

tree pembentukan cluster.

4.3. Perancangan Sistem

4.3.1. Diagram Aktivitas

Diagram aktivitas berfungsi untuk menunjukan seluruh tahapan alur kerja

dari sistem yang dirancang.

1. Diagram aktivitas input range harga

2. Diagram aktivitas input data file

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

31

3. Diagram Aktivitas clustering

4. Diagram Aktivitas Simpan Hasil Clustering

Penjelasan dari masing-masing diagram aktivitas akan di jelaskan pada

bagian lampiran 3

4.3.2. Diagram kelas Analisis

HalamanManual

HalamanTentang

ControlRangeHarga

KoneksiDB

User

HalamanUtama

RangeHarga

verteks

DataObyek

Divisive

Gambar 5 Gambar 4.1. Diagram kelas anaisis system

Tabel 7 Tabel 4.1 Tabel penjelasan diagram kelas analisis

No Nama kelas Jenis Keterangan

1 controlRangeHarga Controller Kelas berisi query untuk menyimpan nilai range

harga, mengupdate nilai range harga, menghapus dat

range harga, dan menampilkan nilai range harga

yang sudah ada dari database.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

32

2 KoneksiDB Controller Kelas ini digunakan untuk menghubungkan sistem

dengan database yang di gunakan oleh sistem.

3 DataObyek Model Kelas ini digunakan untuk menyimpan hasil input

data penjualan

4 Divisive Model Kelas ini di gunakan untuk membentuk sebuah

matriks utama. Didalam kelas ini juga terdapat

method-method untuk perhitungan divisive.

5 RangeHarga Model Kelas ini digunakan untuk menyimpan nilai range

harga kelompok.

6 Verteks Model Kelas ini di gunakan untuk membentuk sebuah

vertex dalam matriks.

7 HalamanBantuan View Kelas ini digunakan untuk menampilkan halaman

manual yang berisis tentang petunjuk penggunaan

sistem

8 HalamanTentang View Kelas ini digunakan untuk menampilkan informasi

yang berkaitan dengan pembuatan sistem

9 HalamanUtama View Kelas ini digunakan untuk menampilkan fungsi-

fungsi utama dari sistem. Mulai dari tahap input

range harga, tahap preprocessing, dan tahap

clustering divisive

4.3.3. Diagram Sequence

Berikut merupakan diagram sequence yang digunakan pada sistem ini

untuk lebih jelasnya terlampir pada bagian lampiran 4:

1. Diagram Sequence Input Nilai Range Harga

2. Diagram Sequence Input Data File

3. Diagram Sequence Proses Cluster

4. Diagram Sequence Simpan Hasil Cluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

33

4.3.4. Diagram Kelas Desain

Diagram kelas desain digunakan untuk merujuk daftar setiap kelas yang

nantinya akan digunakan dalam pembuatan sistem Penjelasan masing-masing

kelas berserta dengan atribut dan method yang digunakan dijelasakan pada

lampiran 5.

<<view>>HalamanUtama

memiliki

memanggil

<<entity>>RangeHarga

<<control>>controlRangeHarga

memiliki 1 *

11

<<control>>KoneksiDB

memanggil

memanggil

1

1

1

<<entity>>Verteks

<<entity>>Divisive

<<entity>>DataObyek

memanggil

memiliki 1 *

1 *

1

1

1 *

memanggil

memanggil

<<view>>HalamanTentang

1

<<view>>HalamanBantuan

1

memanggil1

Gambar 6 Gambar 4.2. Diagram kelas desain sistem

4.3.5. Rincian Algoritma Setiap Method pada Tiap Kelas

Rincian algoritma setiap method pada tiap kelas ini akan dijelakan pada

lampiran 6.

4.4. Perancangan Stuktur Data

Stuktur data dalam pengembanganya memiliki peran penting untuk

menyimpan dan mengorganisir sebagai media penyimpanan sehingga data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

34

tersebut dapat digunakan secara efisien. Perancangan struktur data yang

digunakan adalah matriks dua dimensi.

4.4.1. Matriks Dua Dimensi

Matrik dua dimensi merupakan kumpulan elemen-elemen yang bertipe

data sama dengan satu sama variabel, tetapi terdiri dari dua indeks. Untuk

membayangkan matriks dua dimensi, dapat menggunakan istilah baris (x) dan

kolom (y), seperti pada Tabel 4.2.

Tabel 8 Tabel 4.2. Contoh Matriks Dua Dimensi

0 1 2 3

0 [0,0] [0,1] [0,2] [0,3]

1 [1,0] [1,1] [1,2] [1,3]

2 [2,0] [2,1] [22] [2,3]

Matriks dua dimensi direpresintasikan kedalam memori secara berurutan.

Dimulai perbaris dengan elemen pertama adalah data pada index [0,0]. Dari

contoh matriks dua dimensi pada tabel 4.2 reprensentasinya di dalam memori

yaitu [0,0] | [0,1] | [0,2] | [0,3] | [1,0] | [1,1] | [1,2] | [1,3] | [2,0] | [2,1] | [22] | [2,3].

Sebuah matriks dua dimensi dapat digunakan dalam berbagi keperluan. Misalkan

data jumlah popusali warga dalam wilayah tertentu, atau warna pixel di layar.

Selain itu, matiks dua dimensi juga dapat digunakan untuk menampilkan data

multidimensi, contoh data jumlah mahasiswa lulus di suatu universitas, seprti

pada Tabel 4.3.

Tabel 9 Tabel 4.3. Contoh represntasi matriks dua dimensi

Jurusan 2002 2003 2004 2005

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

35

TI 40 20 50 80

TM 60 55 70 4

TE 30 45 80 100

4.5. Perancangan Antar Muka

4.5.1. Tampilan Halaman Utama

Pada Gambar 4.3 ini merupakan interface pertama saat masuk sistem.

Dalam halaman ini, hanya terdapat 2 tombol menu yang bertuliskan „Keluar‟ dan

“Bantuan‟. Tombol “Bantuan‟memiliki 2 menu items yaitu menu item „Tentang‟,

dan „Manual‟. Menu „Keluar‟ untuk keluar dari sistem ini. Menu item Menu item

„Tentang‟ digunakan untuk masuk ke dalam bagian informasi sistem dan menu

item „Manual‟digunakan untuk masuk ke dalam bagian bantuan penggunaan

sistem.

SISTEM PREDIKSI PENJUALAN HELMMENGGUNAKAN ALGORITMA HIERARCHICAL DIVISIVE

LOGO

Range Harga Preprosesing Clustering

Kelompok harga

Kelompok – 1

Kelompok – 2

Kelompok – 3

Kelompok – 4

Kelompok - 5

Batas bawah Batas Atas

Simpan Reset

Delete isi

Keluar Bantuan

Gambar 7 Gambar 4.3. Desain interface Halaman Utama tab Range Harga

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

36

Halaman Utama merupakan halaman yang akan menampilkan keseluruhan

proses utama pada sistem. Pada halaman ini user dapat melakukan proses imput

batas harga kelompok, proses penginputan data untuk kemudian dilakukan proses

clustering-nya.

1. Input range harga

Pada Gambar 4.4 ini adalah tab „Range Harga‟ tangberfungsi untuk

menentukan batasan nilai kelompok harga. Pada tab ini pengguna harus

mengisikan batas-batas nilai kelompok harga. Nantinya batas kelompok

harga ini digunakan untuk menandai setiap obyek data. Untuk inputan

batasan kelompok mempunyai aturan bahwa harga batas atas tidak boleh

kurang dari batas bawah kelompok sebelumnya begitu pula sebaliknya.

Sebagai contoh pada kelompok 1 batas bawah 0 dan batas atasnya 20000.

Maka batas atas dan bawah kelompok 2 harus lebih atau sama dengan

batas atas kelompok 1. Misal batas bawah 20000 dan batas atas 30000.

Kelompok harga

Kelompok – 1

Kelompok – 2

Kelompok – 3

Kelompok – 4

Kelompok - 5

Batas bawah Batas Atas

Simpan Reset

Delete isi

Range Harga Preprosesing Clustering

Gambar 8 Gambar 4.4. Desain interface Tab Range Harga

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

37

2. Input data dan Informasi Tabel Data

Pada tab kedua ’Preprosesing’ ini berfungsi untuk menginputkan

data dan melakukan proses pembentukan cluster. Bagian input program

yang diberi title input data terdapat tombol pilih file untuk menginputkan

data file. File yang digunakan harus bertipe file *.csv. Setelah file dipilih

sistem akan menampilkasn isi data secara utuh pada tabel data. Selain itu

terdapat tombol Submit Data untuk melakukan proses trasformasi data

dengan cara menyeleksi atribut yang diperlukan dalam proses clustering.

Setelah tombol Submit Data di pilih hasil dari proses transformasi akan di

tampilkan pada tabel trasformasi data yang di beri title trasnformasi data.

Untuk memulai proses preprocessing, pengguna harus memilih tombol

Preprocessing. Setelah itu hasil data dari proses preprocessing akan

ditampilkan pada tabel data preprocessing. Untuk memulai proses

pembentukan cluster, disediakn tombol proses. Gambar 4.5 adalah

rancangan Input data dan Informasi Tabel Data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

38

Range Harga Preprosesing Clustering

Input data

Pilih File

Tabel data

Submit Data

Jumlah Data

Tabel data preprocessing

Proses

Jumlah Data preprocessing

Data Preprocessing

Batal

Tabel Transformasi data

Trasformasi data

Preprocessing

Gambar 9 Gambar 4.5. Desain interface Halaman Utama Tab Preprosesing

3. Hasli Proses Clustring dan Akurasi

Setelah tombol proses dipilih sistem akan menampilkan hasli

pembentukan cluster dan hasil akurasi pada tab ketiga „Clustering‟ ke tabel

-tabel yang ada. Pada tab ini terdapat tabel-tabel, antara lain tabel jumlah

cluster dan tabel label anggota cluster. Untuk menyimpan hasil

pengelompokan, maka disediakan tombol Simpan. Di halama ini

menampilkan hasil visual dari proses pembentukan cluster melalui fungsi

Jtree.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

39

Range Harga Preprosesing Clustering

simpanWaktu Pembantukan Cluster

Tabel jumlah clsuter

Tree

Tabel Label anggota clsuter

SISTEM PREDIKSI PENJUALAN HELMMENGGUNAKAN ALGORITMA HIERARCHICAL DIVISIVE

LOGO

Menu

Total SSE

Gambar 10 Gambar 4.6. Desain interface Halaman Utama Tab Custering

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

40

BAB V

IMPLEMENTASI DAN ANALISIS HASIL

BAB V MPLEMENTA SI DAN ANALISIS HA SIL

Pada bab ini akan dijelaskan mengenai implementasi sistem sesuai

rancangan sistem yang telah dijelaskan pada bab sebelumya. Implementasi sistem

ini menggunakan bahasa pemrograman Java dengan aplikasi pemrograman

NetBeans 7.2 pada komputer dengan spesifikasi processor intel i5 2.3 GHz,

memori 4GB, dan harddisk 1T.

5.1. Implementasi

5.1.1. Pengolahan Data

Data yang diperoleh merupakan hasil eksport dari database perusahaan

berjenis file csv. Total data transaksi penjualan bejumlah 933 record dengan 21

atribut. Data tersebut akan diproses melalui tahap preprocessing, clustering, dan

akhirnya perhitungan akurasi secara internal (Internal evaluation) dalam

clustering yang coba dibentuk. Pada Tabel 5.1 adalah atribut dari tabel data

penualan.

Tabel 10 Tabel 5.1. Atribut dalam tabel detail penjualan

No Nama Atribut Keterangan

1 noFaktur Nomor nota transaksi penjualan

2 kodeBarang Kode dari masing-masing nama barang

3 namaBarang Nama dari produk helm

4 Satuan Jenis satuan barang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

41

5 Size Ukuran dari suatu produk helm

6 hargaJual Harga dari produk helm

7 Quantity Jumlah dari pembelian barang dalam suatu transaksi

8 disscount Potongan harga dari suatu produk helm

9 discountReal Potongan harga dari suatu produk helm

10 discount2 Potongan harga dari suatu produk helm

11 Total Total harga pembelian suatu produk helm setelah

discount

12 Urut Nomer urut dari setiap nota transaksi

13 Hpp -

14 Hppdpp -

15 hargaSatuan Harga satuan suatu produk helm

16 sisaPesanan -

17 statusReturOrder Berisi status dari pengembalian pembelian

18 statusNoKedit Berisi statis dari nota kredit

19 noUrut Nomer urut setiap transaksi

20 kodeArea Berisi kode are pemasaran wilayah

21 kelompokHarga Berisi label range klompok harga

5.1.1.1 Preprocessing

1. Data Cleaning

Proses pembersihan data ini akan menghapus record yang mengandung

data-data yang tidak relevan, tidak konsisten, dan tidak digunakan pada penelitian.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

42

Pada record penjualan detai tercatat beberapa transaksi dengan nama barang

„Helm Penjualan Lama‟, record data-data yang mengandung nama barang

tersebut akan dihapus karena tidak diperlukan dalam penelitian ini. Setelah

dilakukan pembersihan didapatkan 834 jumlah data yang diap untuk digunakan

dalam penelitian ini.

2. Data Integration

Setelah data penjualan melewati tahap data cleaning selanjutnya data di

diurutkan mulai dari harga jual terendah sampai harga jual tertinggi. Kemudian di

simpan dalam sebuah file tipe *.csv. kode barang menjadi identitas setiap sempel

obyek data.

3. Data Selection

Pada tahap ini dilakukan penyeleksian terhadap data-data yang akan

digunakan selama proses penelitian ini. Pada data penjualan detail terdapat 21

atribut yaitu noFaktur, kodeBarang, namaBarang, satuan, size, hargaJual, quantity,

discount, discountReal, discount2, total, urut, Hpp, hppdpp, hargasatuan,

sisapesan, statusReturOrder, statusNotaKredit, nourut, kodeCanvaser,

KelompokHarga. Bebrapa atribut data yang diseleksi adalah noFaktur, satuan,

size, discount, discountReal, discount2, urut, Hpp, hppdpp, hargasatuan,

sisapesan, statusReturOrder, statusNotaKredit, nourut. Setelah dilakukan seleksi

data, hanya ada 7 atribut yang digunakan dalam proses data mining seperti pada

Tabel 5.2.

Tabel 11 Tabel 5.2 Atribut hasil seleksi

No Nama Atribut Keterangan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

43

1 kodeBarang Kode dari masing-masing nama barang

2 namaBarang Nama dari produk helm

3 hargaJual Harga dari produk helm

4 quantity Jumlah dari pembelian barang dalam suatu transaksi

5 Total Total harga pembelian suatu produk helm setelah discount

6 kodeArea Berisi kode are pemasaran wilayah

7 kelompokHarga Berisi label range klompok harga

4. Data Transformation

Pada tahap ini Transformasi yang dilakukan adalah memberi label

kelompok harga pada setiap record sesuai dengan yang di tentukan oleh pengguna

dan menggabungkan nama barang yang sama dan menjumlahkan total quantity-

nya pada setiap kelompok harganya masing-masing. Praktiknya, sebagai pada

Gambar 5.1 dari data berjumlah 24 transakasi:

Gambar 11 Gambar 5.1. Contoh Sampel data transaksi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

44

Setelah data dalam Gambar 5.1 melalui tahap preprocessing data oleh

sistem akan menghasilkan 19 data seperti dalam Tabel 5.3:

Tabel 12 Tabel 5.3. Hasil preprocessing data

Nama Barang Kelompok

Harga

Total

quantity

GM EVO HELLO KITTY #4 WH 1 2.0

GM EVO HELLO KITTY #5 - SR PINK 1 4.0

GM EVO LOLA BUNNY & BUGS BUNNY #1 WH/RED 1 3.0

GM EVO ANGRY BIRD #3 - SR WH/RED 1 2.0

GM EVO MICKEY MOUSE # 10 - WH 1 1.0

GM EVO ROSSI - SR BK 1 1.0

GM NEW IMPREZZA GENT - 2V RED/BK 2 2.0

GM NEW IMPREZZA GEN - 2V BL MET BK 2 1.0

GM NEW IMPREZZA GENT - 2V WH/BK 2 1.0

NHK PREDATOR 2 VISOR SOLID - 2V WH 3 1.0

NHK PREDATOR 2 VISOR SOLID - 2V PP 3 1.0

NHK PREDATOR 2 VISOR SOLID - 2V R. RED 3 2.0

GM AIRBORNE SOLID - 2V GUN MET 3 1.0

GM AIRBORNE SOLID - 2V WH 3 1.0

GM SUPERCROSS NEUTRON - NV WH/RED 4 1.0

GM SUPERCROSS NEUTRON - WH/PP 4 1.0

NHK TERMINATOR SOLID 2V - RED F 4 2.0

GM SUPERCROSS NEUTRON - NV WH/GREEN 4 1.0

GM SUPERCROSS NEUTRON - NV WH/GOLD 4 1.0

5.1.1.2 Cluster dan Akurasi

Pengelompokan data yang mengelompokan data berdasarkan informasi

yang ditentukan pada data disebut analisis klaster. Hal ini dilakukan agar obyek-

obyek di dalam suatu kelompok memiliki kemiripan satu sama lain sedangakan

obyek-obyek yang berbeda berada dalam kelompok yang memiliki perbedaan.

Untuk mengetahui sejauh mana pengelompokan yang dilakukan adalah baik

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

45

dilakukan uji akurasi dari setiap proses pembentukan kelompok dengan internal

evaluation.

Dalam penelitian ini, pengelompokan menggunakan metode hierarchical

clustering divisive. Setelah data melalui tahap preprocessing selanjutnya data akan

di proses menggunakan hierarchical clustering divisive. Dari data penjualan

sejumlah 933 record kemudian setelah melalui tahap preprocessing menjadi 159

record dengan tiga atribut yang diproses dengan menggunakan hierarchical

clustering divisive sehingga terbentuk kelompok-kelompok. Pada setiap proses

pembentukan kelompok terebut diuji menggunakan sum of squares error (SSE).

System yang dibentuk melakukan proses hierarchical clustering divisive,

dengan menggunakan perhitungan euclidean distance sebahai metode untuk

menghitungjarak kedekatan atau kemiripan antar obyek. Hasil pengelompokan

ditampilkan dalam tabel-tabel informasi cluster dan Jtree sebagai visualisasi

pembentukan kelompok.

Seiring proses pembentukan cluster menggunakan metode divisive, SSE

akan dihitung. Berdasarkan Gambar grafik 5.2 dapat dilihat nilai SSE dari

masing-masing pembentukan kelompok. Pembentukan kelompok yang memiliki

nilai SSE rendah dapat dikatakan bahwa pengelompokan tersebut similaritas yang

tinggi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

46

Gambar 12 Gambar 5.2. Grafik SSE pembentukan Cluster

Dari hasil tujuh perbobaan pembentukan cluster menunjukkan bahwa SSE

terendah didapat pada percobaan ketujuh dengan nilai SSE 38092.636 yang

menghasilkan 8 buah cluster.

5.1.2. Implementasi Antarmuka

Pembuatan user interface sistem ini menggunakan NetBeans 7.3 dengan

bahasa pemrograman Java. Desain user interface yang dipaparkan pada baba

sebelumnya diimplementasikan dan digunakan sebagai sarana untuk menentukan

batas harga kelompok sampai untuk mengetahui akurasi dari pengelompokan data

dengan Hierarchical Divisive. Sistem ini dapat langsung menampilkan hasil

keseluruhan proses dengan melau 2 tahap, yang pertama menentukan batas

kelompok harga, preprocessing data lalu di proses clustering. User interface ini

tersimpan dalam file HalamanUtama.Java (lanjut lampiran 8 coding) berikut

tampilan keseluruhan sistem.

0

50,000

100,000

150,000

200,000

250,000

300,000

350,000

2 3 4 5 6 7 8

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

47

5.1.3.1 Implementasi Halaman Utama

Gambar 13 Gambar 5.3. Implementasi Halaman Utama Sistem Tab Range harga

Dari Gambar 5.3 terdapat menu Keluar yang berfungsi untuk keluar dari

sistem. Unutk menutup sistem digunakan code dispose(). Selain itu terdapat menu

bantuan yang memiliki submenu Tentang dan Manual. Submenu Tentang

berfungsi untuk memberi informasi tentang sistem kepada pengguna. Seperti yang

tampak pada Gambar 5.4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

48

Gambar 14 Gambar 5.4. Implementasi Halaman Tentang

Submenu Manual apabila diklik, maka akan menampilkan Halaman

Manual tentang cara penggunaan sistem. Tampak seperti Gambar 5.5.

Gambar 15 Gambar 5.5. Implementasi Halaman Manual Sistem

Selain menu tersebut pada setiap halaman Tentang dan Manual terdapat 1

tombol „Kembali‟ untuk kembali ke halaman utama sistem. Pada praktiknya,

ketika sistem dijalankan akan menampilkan secara bertahap dilalui. Tahap

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

49

tampilan tersebut adalah input range harga, input data, informasi tabel data, dan

yang terakhir proses divisive clustering dan akurasi. Proses range harga dan

preprocessing dilakukan dalam file HalamanUtama.java. Untuk proses clustering,

dan SSE dilakukan dalam file bernama Divisive.java (lampiran 8)

1. Input Range Harga

Setelah sistem dijalankan, sistem akan menampilkan Halaman Utama Tab

Range harga sebagai tahap awal untuk memproses data. Pada tahap ini pengguna

harus menginputkan nilai range harga untuk setiap kelompok. Sebelumnya sistem

akan menampilkan nilai yang sudah tersimpan dalam database, jika nilai dalam

database sudah ada pengguna bisa mengupdatenya dengan mengisi nilai baru dan

mengklik tombol simpanm, dan jika nilai dalam database kosong pengguna harus

memasukan nilai range harga baru. Tombol Delete isi untuk menghapus nilai

range yang sudah ada sedangkan tombol Reset digunakan untuk mengset nilai 0.

Fungsi dari nilai batas range harga kelompok nantinya berguna untuk memberi

label pada setiap data obyek.

Gambar 16 Gambar 5.6. Implementasi Input Range Harga

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

50

2. Input Data dan Informasi Tabel Data

Setelah selesai mengisi nilai range harga, masuk ke tahap berikutnya yaitu

tahap input data Preprocessing. Tombol Pilih File berfungsi untuk menginputkan

data yang akan di proses. File yang dapat di proses oleh sistem hanyalah yang

bertipe file *.csv. setelah diinputkan sistem akan menampilkan data secara utuh

pada tabel data, setelah tombol Submit Data dipilih sistem akan melakukan proses

transformasi data dengan menseleksi atribut data inputan kemudian

menampilkannya dalam tabel transformasi data. Tampilan dibawah ini adalah

tampilan dimana data berhasil dimasukan kedalam sistem dan berhasil melalui

proses transformasi.

Gambar 17 Gambar 5.7. Implementasi Input Data

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

51

Pada bagian input disediakan tombol Submit Data, Preprocessing dan

Batal. Tombol Submit Data berfungsi untuk melakukan proses trasformasi.

Tombol Batal berfungsi untuk membatalkan proses input data. Setelah pengguna

mengklik tombol Preprocessing hasil data dari tahapan trasformasi akan masuk ke

tabel data preprocessing, seperti tampak pada Gambar dibawah ini.

Gambar 18 Gambar 5.8. Implementasi Informasi Tabel Data Preprocessing

Pada Gambar 5.8 Unutk memulai proses Clustering, disediakan tombol Cluster.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

52

3. Hasil Proses Divisive Clustering dan Akurasi

User interface dari implementasi proses pengelompokan dan perhitungan

akurasi dapat dilihat pada Gambar 5.9.

Gambar 19 Gambar 5.9. Implementasi Hasil Divisive Clustering dan Akurasi

Penjelasan tentang Gambar 5.9:

a. Pada title Jumlah Cluster berisi Jumlah anggota tiap cluster.

b. Pada title Label Cluster adalah isi label anggota yang dimiliki cluster itu

sendiri.

c. Pada bagian paling kanan adalah visualisasi kelompok dalam jtree.

d. Bagian bawah terdapat informasi lama waktu pembentukan cluster dan

informasi hasil perhitungan SSE.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

53

5.1.3. Impelentasi Kelas

Tahapan ini berisi tentang implementasi kelas yang digunakan dalam

pembuatan sistem. Method yang digunakan adalah method yang memiliki fungsi

utama dalam sistem. Tabel 5.4 metupakan table yang berisi impelmentasi setiap

kelas

Tabel 13 Tabel 5.4. Implementasi Kelas

No. Nama Kelas Nama File Fisik Nama File Executable

1 DataObjek DataObjek.java DataObjek.class

2 Divisive Divisive.java Divisive. class

3 Koneksi Koneksi.Java Koneksi. class

4 RangeHarga RangeHarga.java RangeHarga. class

5 Verteks Verteks.java Verteks. class

6 controlRangeHarga controlRangeHarga.java controlRangeHarga. Class

7 HalamanAwal HalamanAwal.java HalamanAwal.class

8 HalamanUtama HalamanUtama.java HalamanUtama.class

9 HalamanBantuan HalamanBantuan.java HalamanBantuan.class

10 HalamanTentang HalamanTentang.java HalamanTentang.class

Listing program dari tiap-tiap kelas akan dijelaskan pada lampiran 8.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

54

5.1.4. Implementasi Struktur Data

Tahapan ini berisi tentang implementasi struktur data yang di gunakan

sistem ini.

5.1.3.1 Implementasi Kelas Verteks.java

Kelas verteks merupakan kelas yang menyimpan setiap objek data ke

dalam verteks. Dalam kelas ini terdapat 2 atribut untuk menyimpan data objek.

Atribut yang pertama adalah label. Atribut ini berfungsi untuk menyimpan label

pada setiap objek. Atribut kedua adalah nilai, atribut ini berfungsi untuk

menyimpan nilai dari setiap objek.

5.1.3.2 Implementasi Kelas Divisive.java

Kelas divisive merupakan kelas yang digunakan untuk

mengimplementasikan algoritma divisive, yaitu dalam melakukan proses

clustering itu sendiri. Dalam kelas divisive terdapat edge yang berfungsi untuk

menghubungkan verteks. Kelas divisive memiliki konstruktor sendiri yang

berfungsi sebagai ukuran maksimum dari verteks, method ini memiliki parameter

masukan yaitu maxVerteks.

public Divisive (int maxVertex) {

verteksList = new Verteks[maxVertex];

adjMat = new double[maxVertex][maxVertex];

for (int i = 0; i < adjMat.length; i++) {

for (int j = 0; j < adjMat.length; j++) {

if (i == j) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

55

adjMat[i][j] = 0.0;

} else {

adjMat[i][j] = inf;

}

}

}

}

Dalam konstruktor ini adjMat di definisikan sebagai edge yang akan

menghubungkan vertex. Setelah membuat matriks, langah selanjutnya adalah

memasukan vertex ke dalam kedalam matriks menggunakan method addVerteks.

Dalam method ini menggunakan dua parameter masukan yaitu label dan nilai.

Pada tahap ini setiap objek dimasukan kedalam vertex.

public void addVerteks(String label, List<Double> nilai) {

verteksList[jumVertex++] = new Verteks(label, nilai);

}

Setelah membuat vertex, selanjutnya menggunakan method addEdge yang

berfungasi untuk memasukan nilai edge antar objek. Nilai edge merupakan jarak

yang akan dihitung menggunakan rumus Euclidean Distance.

public void addEdge(int x, int y, Double nilai) {

adjMat[x][y] = adjMat[y][x] = nilai;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

56

Perhitungan jarak Euclidean menggunakan method cariJarakEuclidean.

Method ini memiliki parameter masukan indexAwal dan indexAkhir yang

berfungsi untuk menandai dimulai dan diakhirinya indeks yang di hitung jaraknya.

public Double cariJarakEcludian(int indexAwal, int indexTujuan) {

List<Double> a = new ArrayList<Double>();

List<Double> b = new ArrayList<Double>();

a = verteksList[indexAwal].getNilai();

b = verteksList[indexTujuan].getNilai();

double total = 0;

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

total += Math.pow((a.get(i) - b.get(i)), 2);

}

double r = Math.sqrt(total);

int decp = 2;

BigDecimal bd = new BigDecimal(r);

bd = bd.setScale(decp, BigDecimal.ROUND_DOWN);

r = bd.doubleValue();

return r;

}

Atribut yang digunakan untuk proses clustering seperti dibawah ini.

public Verteks verteksList[];

public Verteks LabelMatriks[];

public Verteks LabelSplinter[];

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

57

public Verteks LabelMatriksAkhir[];

public Verteks LabelSplinterAkhir[];

public double adjMat[][];

public double DataMatriks[][];

public double DataSplinter[][];

public double DataMatriksAkhir[][];

public double DataSplinterAkhir[][];

ArrayList<String> MatrixList = new ArrayList<>();

ArrayList<String> SplinterList = new ArrayList<>();

ArrayList<String> MatrixLisAkhir = new ArrayList<>();

ArrayList<String> SplinterListAkhir = new ArrayList<>();

Atribut pertama adalah verteksList yang berfungsi untuk menyimpan nilai

label obyek dalam verteks, atribut LabelMatriks yang berfungsi untuk menyimpan

nilai label matriks yang tersisa dalam verteks, atribut LabelSplinter yang berfungsi

untuk menyimpan nilai label obyek yang sudah terpisah dari matriks ke dalam

verteks, atribut LabelMatriksAkhir dan LabelSplinterAkhir untuk menyimpan

nilai label dari masing-masing obyek pada tahap akhir iterasi.

Atribut adjMat berfungsi untuk menyimpan nilai edge matriks jarak dalam

array, atribut DataMatriks dan DataSplinter berfungsi untuk menampung nilai

matriks jarak selama proses iterasi, atribut DataMatriksAkhir dan

DataSplinterAkhir digunakan untuk menyimpan nilai matriks diakhir proses

iterasi. Atribut yang bertipe ArrayList digunakan untuk menyimpan nilai label

obyek pada setiap iterasi kedalam sebuah ArrayList.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

58

5.2. Analisis Hasil

Dalam penelitian ini pengelompokan digunakan dengan divisive

clustering. Setelah data melewati tahap preprocessing selanjutanya data diproses

menggunakan algoritma divisive clustering. Data transakasi penjualan sebelumnya

berjumlah 834 dengan aktribut 21 kemudian di seleksi menjadi 834 data dengan 7

atribut setelah di proses melalui proses preprocessing menjadi 159 jumlah data

dan 3 atribut. Hasil data dari preprocessing tersebutlah yang akan diproses

menggunakan algoritma divisive. Untuk mengetahui sejauh mana pengelompokan

yang dilakukan adalah baik maka dilakukan uji akurasi dari pembentukan

kelompok dengan menggunakan internal evaluation. Setiap pembentukan

kelompok tersebut diuji dengan menggunakan metode sum of square error (SSE).

Sistem yang dibuat menggunakan algoritma divisive clustering ini dimulai

dari satu cluster besar yaitu matriks hasil dari perhitungan menggunakan jarak

euclidean. Hasil dari setiap pembentukan cluster ditampilkan dalam tabel-tabel,

Jtree sebagai visualisasi clustering agar tergambar proses dari

pengelompokannya. Sejalan proses clustering SSE akan dihitung. Hasil

perhitungan SSE pembentukan kelompok akan ditampilkan totalnya oleh sistem.

Berdasarkan pada pembentukan kelompok yang memiliki nilai SSE terendah

dapat dikatakan bahwa kelompok tersebut baik. Hasil langkah percobaan disajikan

pada Tabel 5.5 dan Gambar 5.10. Untuk mengetahui nilai SSE adalah statis,

dilakukan samapi dengan 5 kali pengulangan pembentukan cluster pada setiap

percobaan. Hasil dari percobaan tersebuat dilampirkan pada lampiran 7.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

59

Tabel 14 Tabel 5.5. Hasil Perhitungan Nilai SSE

Percobaan Cluster SSE

1 2 328195.654

2 3 62465.727

3 4 47805.751

4 5 40875.609

5 6 38820.685

6 7 38255.563

7 8 38092.636

Dari Tabel 5.5 dapat diketahui bahwa nilai SSE terkecil ada pada

percobaan 7 yang memberikan nilai SSE 38092.636 dari hasil tersebut dapat

dikatakan pembentukan 8 cluster adalah yang terbaik. Dalam bentuk grafik,

deretan nilai hasil SSE dari metode divisive clustering dapat dilihat pada Gambar

5.10.

Gambar 20 Gambar 5.10. Analisis – Grafik Hasil SSE

Jumlah obyek data untuk pembentukan 8 kelompok dengan divisive

clustering dapat dilihat dalam Tabel 5.6.

T

0

50,000

100,000

150,000

200,000

250,000

300,000

350,000

2 3 4 5 6 7 8

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

60

abel 15 Tabel 5.6. Hasil Clustering Divisive untuk 159 data

Cluster Jumlah

anggota Label Anggota

Cluster 1 19

GM EVO SOLID - SR BK; GM EVO SOLID - SR PP; GM EVO SOLID - SR RYL RED; GM TEEN BATMAN #2 - SR

WH; GM TEEN HELLO KITTY #1 - SR WH; GM TEEN HELLO KITTY #2 - SR WH; MAZ VISTRO SOLID 2V -

BK; MAZ VISTRO SOLID 2V - RYL RED; MAZ VISTRO SOLID 2V - WH; VOG XTREAM - CL BK; VOG

XTREAM - CL BK/DF; VOG XTREAM - CL GUN MET; VOG XTREAM - CL ICE BL; VOG XTREAM - CL PINK

CT; VOG XTREAM - CL PP; VOG XTREAM - CL R. RED; VOG XTREAM - CL WH; GM FIGHTER SOLID - SR

BK; GM FIGHTER SOLID - SR WH

Cluster 2 37

ASCA ASTRO SOLID BK; ASCA ASTRO SOLID GUN; ASCA ASTRO SOLID RYL RED; ASCA PREMIER SOLID

- 2V BK; ASCA PREMIER SOLID - 2V GUN; ASCA PREMIER SOLID - 2V WH; GM EVO SOLID - SR BL; GM

EVO SOLID - SR DGM; GM EVO SOLID - SR GUN M; GM EVO SOLID - SR WH; GM TEEN ANGRY BIRD #1 -

SR WH/RED; GM TEEN ANGRY BIRD #1 - SR WH/YL; GM TEEN HELLO KITTY #3 - SR WH; MAZ VISTRO

SOLID 2V - RED; MAZ VISTRO SOLID - PINK; VOG XTREAM 2 VSR SOLID/MEKANIK - 2V ICE BL; VOG

XTREAM 2 VSR SOLID/MEKANIK - 2V WH; VOG XTREAM - CL RED F; GM FIGHTER SOLID - SR DGM; GM

FIGHTER SOLID - SR RYL RED; GM INTERCEPTOR SOLID - 2V WH; GM NEW IMPREZZA SOLID - 2V BK;

GM NEW IMPREZZA SOLID - 2V GUN; GM NEW IMPREZZA SOLID - 2V RYL RED; GM NEW IMPREZZA

SOLID - 2V WH; NHK GLADIATOR SOLID - 2V GUN; VOG NAVIGATOR PICLET - 2V BK/BL; VOG

NAVIGATOR PICLET - 2V BK/RED; VOG NAVIGATOR PICLET - 2V BK/SIL; VOG NAVIGATOR SOLID - 2V

BK; VOG NAVIGATOR SOLID - 2V GUN M; VOG NAVIGATOR SOLID - 2V PP; VOG NAVIGATOR SOLID - 2V

WH; GM SUPERCROSS NEUTRON - NV WH/GOLD; GM SUPERCROSS NEUTRON - NV WH/GREEN; GM

SUPERCROSS NEUTRON - NV WH/RED; GM SUPERCROSS NEUTRON - WH/PP

Cluster 3 23

ASCA PREMIER SOLID - 2V PP; GM EVO SOLID - SR PINK CUTE; MAZ PRIUSS * SOLID R - 2V GUN; VOG

XTRAIL SOLID - CL GUN M; VOG XTRAIL SOLID - CL WH; VOG XTREAM 2VSR SOLID/MEKANIK-2V BK;

VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PINK; GM INTERCEPTOR SOLID - 2V BK; GM INTERCEPTOR

SOLID - 2V GUN M; NHK GLADIATOR SOLID - 2V BK; NHK GLADIATOR SOLID - 2V PP; NHK PREDATOR

SOLID - CL BK; NHK PREDATOR SOLID - CL GUN M; NHK PREDATOR SOLID - CL RYL RED; NHK R6

LOTUSS - ORG/FLO; NHK R-6 ROSSI - CL GR/FLO; VOG NAVIGATOR PICLET - 2V WH/BL; VOG

NAVIGATOR PICLET - 2V WH/SIL; VOG NAVIGATOR SOLID - 2V BK/DOF; VOG NAVIGATOR SOLID - 2V

RYL RED; NHK GP 1000 SOLID - 2V WH; NHK GODZILLA SOLID - 2V BK; NHK TERMINATOR LOTUS 2V -

WH

Cluster 4 14

GM AIRBORNE SOLID - 2V GUN MET; GM AIRBORNE SOLID - 2V WH; NHK GP 1000 SOLID - 2V PP; NHK

PREDATOR 2 VISOR SOLID - 2V FLT/BK; NHK PREDATOR 2 VISOR SOLID - 2V PP; NHK PREDATOR 2

VISOR SOLID - 2V R. RED; NHK PREDATOR 2 VISOR SOLID - 2V WH; GM SUPERCROSS NEUTRON - NV

WH/SIL; NHK GODZILLA SOLID - 2V GUN; NHK GODZILLA SOLID - 2V RYL RED; NHK GODZILLA SOLID -

2V WH; NHK TERMINATOR RX 805 - 2V WH/SIL; NHK TERMINATOR SOLID 2V - RED F; NHK TERMINATOR

STARBASE - 2V WH

Cluster 5 20

ASCA ASTRO SOLID WH; GM EVO HELLO KITTY #5 - SR PINK; GM EVO LOLA BUNNY & BUGS BUNNY #1

WH/RED; MAZ PRIUSS*SOLID R -2V RY RED; VOG TURBO SOLID - CL BK; VOG TURBO SOLID - CL WH;

VOG XTREAM 2 VSR SOLID/MEKANIK - 2V GUN; VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PP; VOG

XTREAM 2 VSR SOLID/MEKANIK - 2V RYL RED; GM FIGHTER SOLID - RED F; GM INTERCEPTOR SOLID -

2V BK/DOF; GM INTERCEPTOR SOLID - 2V RYL RED; NHK GLADIATOR SOLID - 2V WH; NHK PREDATOR

SOLID - CL FLAT BK; NHK R-6 BEYOND WH/GR; NHK R6 RALLY - BK/SIL; NHK R-6 RALLY - CL WH/SIL;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

61

NHK REVENTOR SOLID 2V - BK; NHK X-2 SOLID - 2V GUN; VOG NAVIGATOR SOLID - 2V ICE BL

Cluster 6 19

GM CITYLIGHT SOLID - 2 V - RED F; GM NEW IMPREZZA GEN - 2V BL MET BK; GM NEW IMPREZZA GENT

- 2V RED/BK; GM NEW IMPREZZA GENT - 2V WH/BK; GM NEW IMPREZZA SOLID - 2V BK/DOF; GM NEW

IMPREZZA SOLID - 2V BL; GM STARTECH SOLID BK; GM STARTECH SOLID GUN; NHK PREDATOR SOLID

- CL WH; NHK R6 BEYOND - WH/RED; NHK R-6 LOTUS - CL WH; NHK R6 RALLY - CL BK/BL; NHK R-6

RALLY - CL WH/BL; NHK R-6 SOLID - CL RYL RE; NHK R-6 SOLID - CL WH; NHK R-6 X-807 - CL YL FLO/BK;

NHK REVENTOR SOLID WH; NHK X-2 SOLID - 2V RYL RED; VOG NAVIGATOR SOLID - 2V RED F

Cluster 7 5 ASCA MOTIF PROTECH - 2V WH/YL; GM EVO MICKEY MOUSE # 10 - WH; VOG FREEWAY SOLID - 2V ICE

BL; VOG TURBO SOLID - CL GUN M; VOG XTRAIL SOLID - CL RED F

Cluster 8 22

ASCA MOTIF X-3 - 2V WH/GR; ASCA PREMIER SOLID - 2V RED F; GM EVO ANGRY BIRD #3 - SR WH/RED;

GM EVO HELLO KITTY # 3 - WH; GM EVO HELLO KITTY #4 WH; GM EVO ROSSI - SR BK; GM TEEN SNOW

WHITE #2 - SR WH; MAZ PRIUSS * SOLID R - 2V BK; MAZ PRIUSS * SOLID R - 2V WH; MAZ TREVIA ANGRY

BIRD # 1 SR - WH/RED; MAZ TREVIA HELLO KITTY #3 WH; MIX SPORTY SOLID - 2V BK; MIX SPORTY

SOLID - 2V RYL RED; VOG FREEWAY SOLID - 2V PP; VOG FREEWAY SOLID - 2V RYL RED; VOG FREEWAY

SOLID - 2V WH; VOG TURBO SOLID - CL BK/DOF; VOG TURBO SOLID - CL PP; VOG XTRAIL SOLID - CL

BK; VOG XTREAM 2 VSR SOLID/MEKANIK - 2V BLUE; VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RED F;

VOG XTREAM - CL PINK

Pada Tabel 5.7 adalah hasil perhitungan nilai rata-rata quantity obyek data

dari masing-masing cluster.

Tabel 16 Tabel 5.7 Nilai rata-rata variabel quantity pada percobaan ke-7

Cluster ̅ Quantity

1 29,526

2 11,595

3 5,870

4 2,429

5 3,550

6 1,632

7 1,000

8 1,898

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

62

Gambar 5.11 dibawah ini adalah anggota berserta ciri karakternya yang

diambil berdasarkan informasi data yang terkait dari masing-masing cluster:

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster

Kelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 30 114000 GM TEEN BATMAN #2 - SR WH KUL Cluster 4 3 2 314750 NHK PREDATOR 2 VISOR SOLID - 2V PP SLM

Cluster 1 1 24 114000 GM TEEN HELLO KITTY #1 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V R. RED SLM

Cluster 1 1 50 114000 GM TEEN HELLO KITTY #2 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V WH SLM

Cluster 1 1 46 145000 VOG XTREAM - CL BK SLM Cluster 4 3 2 318750 NHK PREDATOR 2 VISOR SOLID - 2V FLT/BK YOG

Cluster 1 1 22 145000 VOG XTREAM - CL BK/DF YOG Cluster 4 3 2 350000 NHK GP 1000 SOLID - 2V PP SLM

Cluster 1 1 34 145000 VOG XTREAM - CL GUN MET SLM Cluster 4 3 2 371000 GM AIRBORNE SOLID - 2V GUN MET SLM

Cluster 1 1 43 145000 VOG XTREAM - CL ICE BL SLM Cluster 4 3 3 371000 GM AIRBORNE SOLID - 2V WH YOG

Cluster 1 1 24 145000 VOG XTREAM - CL PINK CT GKD Cluster 4 4 2 403500 NHK TERMINATOR SOLID 2V - RED F SLM

Cluster 1 1 21 145000 VOG XTREAM - CL PP SLM Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V GUN SLM

Cluster 1 1 35 145000 VOG XTREAM - CL R. RED KUL Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V WH SLM

Cluster 1 1 41 145000 VOG XTREAM - CL WH SLM Cluster 4 4 3 418750 GM SUPERCROSS NEUTRON - NV WH/SIL SLM

Cluster 1 1 19 157750 MAZ VISTRO SOLID 2V - BK GKD Cluster 4 4 3 420500 NHK TERMINATOR RX 805 - 2V WH/SIL SLM

Cluster 1 1 20 157750 MAZ VISTRO SOLID 2V - RYL RED GKD Cluster 4 4 2 422000 NHK GODZILLA SOLID - 2V RYL RED SLM

Cluster 1 1 21 157750 MAZ VISTRO SOLID 2V - WH GKD Cluster 4 4 1 425500 NHK TERMINATOR STARBASE - 2V WH GKD

Cluster 1 1 34 167500 GM EVO SOLID - SR BK SLM

Cluster 1 1 22 167500 GM EVO SOLID - SR PP SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 26 167500 GM EVO SOLID - SR RYL RED KUL Cluster 5 1 4 103500 ASCA ASTRO SOLID WH KUL

Cluster 1 2 22 204000 GM FIGHTER SOLID - SR BK SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V GUN KUL

Cluster 1 2 27 204000 GM FIGHTER SOLID - SR WH SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RYL RED KUL

Cluster 5 1 4 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PP KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 5 1 4 170250 VOG TURBO SOLID - CL BK SLM

Cluster 2 1 15 101500 ASCA ASTRO SOLID RYL RED KUL Cluster 5 1 3 170250 VOG TURBO SOLID - CL WH SLM

Cluster 2 1 15 103500 ASCA ASTRO SOLID BK KUL Cluster 5 1 3 180250 MAZ PRIUSS*SOLID R -2V RY RED GKD

Cluster 2 1 13 103500 ASCA ASTRO SOLID GUN KUL Cluster 5 1 4 190500 GM EVO HELLO KITTY #5 - SR PINK YOG

Cluster 2 1 17 114000 GM TEEN ANGRY BIRD #1 - SR WH/RED KUL Cluster 5 1 3 190500 GM EVO LOLA BUNNY & BUGS BUNNY #1 WH/RED KUL

Cluster 2 1 11 114000 GM TEEN ANGRY BIRD #1 - SR WH/YL KUL Cluster 5 2 4 204000 GM FIGHTER SOLID - RED F SLM

Cluster 2 1 16 114000 GM TEEN HELLO KITTY #3 - SR WH YOG Cluster 5 2 3 209750 VOG NAVIGATOR SOLID - 2V ICE BL SLM

Cluster 2 1 10 131500 ASCA PREMIER SOLID - 2V BK GKD Cluster 5 2 3 237500 NHK R-6 BEYOND WH/GR SLM

Cluster 2 1 8 131500 ASCA PREMIER SOLID - 2V WH GKD Cluster 5 2 3 237500 NHK R6 RALLY - BK/SIL YOG

Cluster 2 1 11 133750 ASCA PREMIER SOLID - 2V GUN GKD Cluster 5 2 3 237500 NHK R-6 RALLY - CL WH/SIL SLM

Cluster 2 1 17 145000 VOG XTREAM - CL RED F SLM Cluster 5 2 4 241250 GM INTERCEPTOR SOLID - 2V RYL RED KUL

Cluster 2 1 8 155250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V WH YOG Cluster 5 2 4 244500 GM INTERCEPTOR SOLID - 2V BK/DOF KUL

Cluster 2 1 9 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V ICE BL SLM Cluster 5 2 4 252750 NHK X-2 SOLID - 2V GUN SLM

Cluster 2 1 9 157750 MAZ VISTRO SOLID 2V - RED GKD Cluster 5 2 4 270250 NHK GLADIATOR SOLID - 2V WH SLM

Cluster 2 1 8 158500 MAZ VISTRO SOLID - PINK GKD Cluster 5 2 3 272000 NHK PREDATOR SOLID - CL FLAT BK YOG

Cluster 2 1 17 167500 GM EVO SOLID - SR BL YOG Cluster 5 2 3 286250 NHK REVENTOR SOLID 2V - BK SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR DGM SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR GUN M SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 2 1 13 167500 GM EVO SOLID - SR WH YOG Cluster 6 2 2 209750 VOG NAVIGATOR SOLID - 2V RED F GKD

Cluster 2 2 12 204000 GM FIGHTER SOLID - SR DGM SLM Cluster 6 2 2 213500 GM CITYLIGHT SOLID - 2 V - RED F SLM

Cluster 2 2 14 206750 VOG NAVIGATOR SOLID - 2V BK GKD Cluster 6 2 1 221000 NHK R-6 SOLID - CL WH GKD

Cluster 2 2 13 206750 VOG NAVIGATOR SOLID - 2V GUN M GKD Cluster 6 2 2 224000 NHK R-6 SOLID - CL RYL RE GKD

Cluster 2 2 10 207000 GM FIGHTER SOLID - SR RYL RED KUL Cluster 6 2 2 237500 NHK R-6 LOTUS - CL WH SLM

Cluster 2 2 11 209750 VOG NAVIGATOR SOLID - 2V PP SLM Cluster 6 2 1 240750 NHK R6 BEYOND - WH/RED SLM

Cluster 2 2 8 209750 VOG NAVIGATOR SOLID - 2V WH GKD Cluster 6 2 2 240750 NHK R6 RALLY - CL BK/BL KUL

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/BL KUL Cluster 6 2 1 240750 NHK R-6 RALLY - CL WH/BL SLM

Cluster 2 2 11 222750 VOG NAVIGATOR PICLET - 2V BK/RED YOG Cluster 6 2 2 252750 NHK X-2 SOLID - 2V RYL RED SLM

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/SIL YOG Cluster 6 2 1 264250 GM STARTECH SOLID BK SLM

Cluster 2 2 8 241250 GM INTERCEPTOR SOLID - 2V WH YOG Cluster 6 2 1 264250 GM STARTECH SOLID GUN KUL

Cluster 2 2 8 270250 NHK GLADIATOR SOLID - 2V GUN SLM Cluster 6 2 2 272000 GM NEW IMPREZZA SOLID - 2V BK/DOF KUL

Cluster 2 2 8 272000 GM NEW IMPREZZA SOLID - 2V BK SLM Cluster 6 2 1 272000 NHK PREDATOR SOLID - CL WH YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V GUN SLM Cluster 6 2 1 275500 GM NEW IMPREZZA SOLID - 2V BL YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V RYL RED KUL Cluster 6 2 2 281500 NHK R-6 X-807 - CL YL FLO/BK KUL

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V WH SLM Cluster 6 2 2 286250 NHK REVENTOR SOLID WH SLM

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - NV WH/GOLD YOG Cluster 6 2 2 294750 GM NEW IMPREZZA GEN - 2V BL MET BK GKD

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/GREEN SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V RED/BK KUL

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/RED SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V WH/BK GKD

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - WH/PP GKD

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 7 1 1 145000 ASCA MOTIF PROTECH - 2V WH/YL YOG

Cluster 3 1 6 133750 ASCA PREMIER SOLID - 2V PP KUL Cluster 7 1 1 155000 VOG XTRAIL SOLID - CL RED F GKD

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL GUN M GKD Cluster 7 1 1 170250 VOG TURBO SOLID - CL GUN M SLM

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL WH GKD Cluster 7 1 1 180500 VOG FREEWAY SOLID - 2V ICE BL SLM

Cluster 3 1 7 155250 VOG XTREAM 2VSR SOLID/MEKANIK-2V BK KUL Cluster 7 1 1 190500 GM EVO MICKEY MOUSE # 10 - WH SLM

Cluster 3 1 6 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PINK GKD

Cluster 3 1 6 167500 GM EVO SOLID - SR PINK CUTE SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 3 1 6 180250 MAZ PRIUSS * SOLID R - 2V GUN GKD Cluster 8 1 2 116000 GM TEEN SNOW WHITE #2 - SR WH GKD

Cluster 3 2 6 206750 VOG NAVIGATOR SOLID - 2V RYL RED GKD Cluster 8 1 2 133750 ASCA PREMIER SOLID - 2V RED F KUL

Cluster 3 2 6 209750 VOG NAVIGATOR SOLID - 2V BK/DOF GKD Cluster 8 1 2 145000 ASCA MOTIF X-3 - 2V WH/GR KUL

Cluster 3 2 5 225750 VOG NAVIGATOR PICLET - 2V WH/BL YOG Cluster 8 1 2 147250 VOG XTREAM - CL PINK GKD

Cluster 3 2 6 225750 VOG NAVIGATOR PICLET - 2V WH/SIL YOG Cluster 8 1 2 151250 MAZ TREVIA HELLO KITTY #3 WH KUL

Cluster 3 2 7 241250 GM INTERCEPTOR SOLID - 2V BK KUL Cluster 8 1 2 153750 MAZ TREVIA ANGRY BIRD # 1 SR - WH/RED YOG

Cluster 3 2 5 241250 GM INTERCEPTOR SOLID - 2V GUN M YOG Cluster 8 1 2 155000 VOG XTRAIL SOLID - CL BK GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V BK SLM Cluster 8 1 2 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V BLUE GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V PP SLM Cluster 8 1 2 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RED F KUL

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL BK YOG Cluster 8 1 2 170250 VOG TURBO SOLID - CL PP SLM

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL GUN M YOG Cluster 8 1 2 171250 MIX SPORTY SOLID - 2V BK GKD

Cluster 3 2 5 272000 NHK PREDATOR SOLID - CL RYL RED YOG Cluster 8 1 2 172250 VOG TURBO SOLID - CL BK/DOF GKD

Cluster 3 2 6 277750 NHK R6 LOTUSS - ORG/FLO SLM Cluster 8 1 2 173750 MIX SPORTY SOLID - 2V RYL RED KUL

Cluster 3 2 5 277750 NHK R-6 ROSSI - CL GR/FLO SLM Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V BK GKD

Cluster 3 3 5 350000 NHK GP 1000 SOLID - 2V WH YOG Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V WH GKD

Cluster 3 4 7 417000 NHK GODZILLA SOLID - 2V BK SLM Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V PP SLM

Cluster 3 4 5 425500 NHK TERMINATOR LOTUS 2V - WH YOG Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V RYL RED KUL

Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V WH KUL

Cluster 8 1 2 187750 GM EVO ANGRY BIRD #3 - SR WH/RED GKD

Cluster 8 1 2 187750 GM EVO HELLO KITTY # 3 - WH YOG

Cluster 8 1 2 187750 GM EVO ROSSI - SR BK KUL

Cluster 8 1 2 190500 GM EVO HELLO KITTY #4 WH KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster

Kelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 30 114000 GM TEEN BATMAN #2 - SR WH KUL Cluster 4 3 2 314750 NHK PREDATOR 2 VISOR SOLID - 2V PP SLM

Cluster 1 1 24 114000 GM TEEN HELLO KITTY #1 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V R. RED SLM

Cluster 1 1 50 114000 GM TEEN HELLO KITTY #2 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V WH SLM

Cluster 1 1 46 145000 VOG XTREAM - CL BK SLM Cluster 4 3 2 318750 NHK PREDATOR 2 VISOR SOLID - 2V FLT/BK YOG

Cluster 1 1 22 145000 VOG XTREAM - CL BK/DF YOG Cluster 4 3 2 350000 NHK GP 1000 SOLID - 2V PP SLM

Cluster 1 1 34 145000 VOG XTREAM - CL GUN MET SLM Cluster 4 3 2 371000 GM AIRBORNE SOLID - 2V GUN MET SLM

Cluster 1 1 43 145000 VOG XTREAM - CL ICE BL SLM Cluster 4 3 3 371000 GM AIRBORNE SOLID - 2V WH YOG

Cluster 1 1 24 145000 VOG XTREAM - CL PINK CT GKD Cluster 4 4 2 403500 NHK TERMINATOR SOLID 2V - RED F SLM

Cluster 1 1 21 145000 VOG XTREAM - CL PP SLM Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V GUN SLM

Cluster 1 1 35 145000 VOG XTREAM - CL R. RED KUL Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V WH SLM

Cluster 1 1 41 145000 VOG XTREAM - CL WH SLM Cluster 4 4 3 418750 GM SUPERCROSS NEUTRON - NV WH/SIL SLM

Cluster 1 1 19 157750 MAZ VISTRO SOLID 2V - BK GKD Cluster 4 4 3 420500 NHK TERMINATOR RX 805 - 2V WH/SIL SLM

Cluster 1 1 20 157750 MAZ VISTRO SOLID 2V - RYL RED GKD Cluster 4 4 2 422000 NHK GODZILLA SOLID - 2V RYL RED SLM

Cluster 1 1 21 157750 MAZ VISTRO SOLID 2V - WH GKD Cluster 4 4 1 425500 NHK TERMINATOR STARBASE - 2V WH GKD

Cluster 1 1 34 167500 GM EVO SOLID - SR BK SLM

Cluster 1 1 22 167500 GM EVO SOLID - SR PP SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 26 167500 GM EVO SOLID - SR RYL RED KUL Cluster 5 1 4 103500 ASCA ASTRO SOLID WH KUL

Cluster 1 2 22 204000 GM FIGHTER SOLID - SR BK SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V GUN KUL

Cluster 1 2 27 204000 GM FIGHTER SOLID - SR WH SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RYL RED KUL

Cluster 5 1 4 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PP KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 5 1 4 170250 VOG TURBO SOLID - CL BK SLM

Cluster 2 1 15 101500 ASCA ASTRO SOLID RYL RED KUL Cluster 5 1 3 170250 VOG TURBO SOLID - CL WH SLM

Cluster 2 1 15 103500 ASCA ASTRO SOLID BK KUL Cluster 5 1 3 180250 MAZ PRIUSS*SOLID R -2V RY RED GKD

Cluster 2 1 13 103500 ASCA ASTRO SOLID GUN KUL Cluster 5 1 4 190500 GM EVO HELLO KITTY #5 - SR PINK YOG

Cluster 2 1 17 114000 GM TEEN ANGRY BIRD #1 - SR WH/RED KUL Cluster 5 1 3 190500 GM EVO LOLA BUNNY & BUGS BUNNY #1 WH/RED KUL

Cluster 2 1 11 114000 GM TEEN ANGRY BIRD #1 - SR WH/YL KUL Cluster 5 2 4 204000 GM FIGHTER SOLID - RED F SLM

Cluster 2 1 16 114000 GM TEEN HELLO KITTY #3 - SR WH YOG Cluster 5 2 3 209750 VOG NAVIGATOR SOLID - 2V ICE BL SLM

Cluster 2 1 10 131500 ASCA PREMIER SOLID - 2V BK GKD Cluster 5 2 3 237500 NHK R-6 BEYOND WH/GR SLM

Cluster 2 1 8 131500 ASCA PREMIER SOLID - 2V WH GKD Cluster 5 2 3 237500 NHK R6 RALLY - BK/SIL YOG

Cluster 2 1 11 133750 ASCA PREMIER SOLID - 2V GUN GKD Cluster 5 2 3 237500 NHK R-6 RALLY - CL WH/SIL SLM

Cluster 2 1 17 145000 VOG XTREAM - CL RED F SLM Cluster 5 2 4 241250 GM INTERCEPTOR SOLID - 2V RYL RED KUL

Cluster 2 1 8 155250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V WH YOG Cluster 5 2 4 244500 GM INTERCEPTOR SOLID - 2V BK/DOF KUL

Cluster 2 1 9 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V ICE BL SLM Cluster 5 2 4 252750 NHK X-2 SOLID - 2V GUN SLM

Cluster 2 1 9 157750 MAZ VISTRO SOLID 2V - RED GKD Cluster 5 2 4 270250 NHK GLADIATOR SOLID - 2V WH SLM

Cluster 2 1 8 158500 MAZ VISTRO SOLID - PINK GKD Cluster 5 2 3 272000 NHK PREDATOR SOLID - CL FLAT BK YOG

Cluster 2 1 17 167500 GM EVO SOLID - SR BL YOG Cluster 5 2 3 286250 NHK REVENTOR SOLID 2V - BK SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR DGM SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR GUN M SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 2 1 13 167500 GM EVO SOLID - SR WH YOG Cluster 6 2 2 209750 VOG NAVIGATOR SOLID - 2V RED F GKD

Cluster 2 2 12 204000 GM FIGHTER SOLID - SR DGM SLM Cluster 6 2 2 213500 GM CITYLIGHT SOLID - 2 V - RED F SLM

Cluster 2 2 14 206750 VOG NAVIGATOR SOLID - 2V BK GKD Cluster 6 2 1 221000 NHK R-6 SOLID - CL WH GKD

Cluster 2 2 13 206750 VOG NAVIGATOR SOLID - 2V GUN M GKD Cluster 6 2 2 224000 NHK R-6 SOLID - CL RYL RE GKD

Cluster 2 2 10 207000 GM FIGHTER SOLID - SR RYL RED KUL Cluster 6 2 2 237500 NHK R-6 LOTUS - CL WH SLM

Cluster 2 2 11 209750 VOG NAVIGATOR SOLID - 2V PP SLM Cluster 6 2 1 240750 NHK R6 BEYOND - WH/RED SLM

Cluster 2 2 8 209750 VOG NAVIGATOR SOLID - 2V WH GKD Cluster 6 2 2 240750 NHK R6 RALLY - CL BK/BL KUL

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/BL KUL Cluster 6 2 1 240750 NHK R-6 RALLY - CL WH/BL SLM

Cluster 2 2 11 222750 VOG NAVIGATOR PICLET - 2V BK/RED YOG Cluster 6 2 2 252750 NHK X-2 SOLID - 2V RYL RED SLM

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/SIL YOG Cluster 6 2 1 264250 GM STARTECH SOLID BK SLM

Cluster 2 2 8 241250 GM INTERCEPTOR SOLID - 2V WH YOG Cluster 6 2 1 264250 GM STARTECH SOLID GUN KUL

Cluster 2 2 8 270250 NHK GLADIATOR SOLID - 2V GUN SLM Cluster 6 2 2 272000 GM NEW IMPREZZA SOLID - 2V BK/DOF KUL

Cluster 2 2 8 272000 GM NEW IMPREZZA SOLID - 2V BK SLM Cluster 6 2 1 272000 NHK PREDATOR SOLID - CL WH YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V GUN SLM Cluster 6 2 1 275500 GM NEW IMPREZZA SOLID - 2V BL YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V RYL RED KUL Cluster 6 2 2 281500 NHK R-6 X-807 - CL YL FLO/BK KUL

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V WH SLM Cluster 6 2 2 286250 NHK REVENTOR SOLID WH SLM

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - NV WH/GOLD YOG Cluster 6 2 2 294750 GM NEW IMPREZZA GEN - 2V BL MET BK GKD

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/GREEN SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V RED/BK KUL

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/RED SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V WH/BK GKD

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - WH/PP GKD

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 7 1 1 145000 ASCA MOTIF PROTECH - 2V WH/YL YOG

Cluster 3 1 6 133750 ASCA PREMIER SOLID - 2V PP KUL Cluster 7 1 1 155000 VOG XTRAIL SOLID - CL RED F GKD

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL GUN M GKD Cluster 7 1 1 170250 VOG TURBO SOLID - CL GUN M SLM

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL WH GKD Cluster 7 1 1 180500 VOG FREEWAY SOLID - 2V ICE BL SLM

Cluster 3 1 7 155250 VOG XTREAM 2VSR SOLID/MEKANIK-2V BK KUL Cluster 7 1 1 190500 GM EVO MICKEY MOUSE # 10 - WH SLM

Cluster 3 1 6 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PINK GKD

Cluster 3 1 6 167500 GM EVO SOLID - SR PINK CUTE SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 3 1 6 180250 MAZ PRIUSS * SOLID R - 2V GUN GKD Cluster 8 1 2 116000 GM TEEN SNOW WHITE #2 - SR WH GKD

Cluster 3 2 6 206750 VOG NAVIGATOR SOLID - 2V RYL RED GKD Cluster 8 1 2 133750 ASCA PREMIER SOLID - 2V RED F KUL

Cluster 3 2 6 209750 VOG NAVIGATOR SOLID - 2V BK/DOF GKD Cluster 8 1 2 145000 ASCA MOTIF X-3 - 2V WH/GR KUL

Cluster 3 2 5 225750 VOG NAVIGATOR PICLET - 2V WH/BL YOG Cluster 8 1 2 147250 VOG XTREAM - CL PINK GKD

Cluster 3 2 6 225750 VOG NAVIGATOR PICLET - 2V WH/SIL YOG Cluster 8 1 2 151250 MAZ TREVIA HELLO KITTY #3 WH KUL

Cluster 3 2 7 241250 GM INTERCEPTOR SOLID - 2V BK KUL Cluster 8 1 2 153750 MAZ TREVIA ANGRY BIRD # 1 SR - WH/RED YOG

Cluster 3 2 5 241250 GM INTERCEPTOR SOLID - 2V GUN M YOG Cluster 8 1 2 155000 VOG XTRAIL SOLID - CL BK GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V BK SLM Cluster 8 1 2 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V BLUE GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V PP SLM Cluster 8 1 2 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RED F KUL

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL BK YOG Cluster 8 1 2 170250 VOG TURBO SOLID - CL PP SLM

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL GUN M YOG Cluster 8 1 2 171250 MIX SPORTY SOLID - 2V BK GKD

Cluster 3 2 5 272000 NHK PREDATOR SOLID - CL RYL RED YOG Cluster 8 1 2 172250 VOG TURBO SOLID - CL BK/DOF GKD

Cluster 3 2 6 277750 NHK R6 LOTUSS - ORG/FLO SLM Cluster 8 1 2 173750 MIX SPORTY SOLID - 2V RYL RED KUL

Cluster 3 2 5 277750 NHK R-6 ROSSI - CL GR/FLO SLM Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V BK GKD

Cluster 3 3 5 350000 NHK GP 1000 SOLID - 2V WH YOG Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V WH GKD

Cluster 3 4 7 417000 NHK GODZILLA SOLID - 2V BK SLM Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V PP SLM

Cluster 3 4 5 425500 NHK TERMINATOR LOTUS 2V - WH YOG Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V RYL RED KUL

Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V WH KUL

Cluster 8 1 2 187750 GM EVO ANGRY BIRD #3 - SR WH/RED GKD

Cluster 8 1 2 187750 GM EVO HELLO KITTY # 3 - WH YOG

Cluster 8 1 2 187750 GM EVO ROSSI - SR BK KUL

Cluster 8 1 2 190500 GM EVO HELLO KITTY #4 WH KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster

Kelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 30 114000 GM TEEN BATMAN #2 - SR WH KUL Cluster 4 3 2 314750 NHK PREDATOR 2 VISOR SOLID - 2V PP SLM

Cluster 1 1 24 114000 GM TEEN HELLO KITTY #1 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V R. RED SLM

Cluster 1 1 50 114000 GM TEEN HELLO KITTY #2 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V WH SLM

Cluster 1 1 46 145000 VOG XTREAM - CL BK SLM Cluster 4 3 2 318750 NHK PREDATOR 2 VISOR SOLID - 2V FLT/BK YOG

Cluster 1 1 22 145000 VOG XTREAM - CL BK/DF YOG Cluster 4 3 2 350000 NHK GP 1000 SOLID - 2V PP SLM

Cluster 1 1 34 145000 VOG XTREAM - CL GUN MET SLM Cluster 4 3 2 371000 GM AIRBORNE SOLID - 2V GUN MET SLM

Cluster 1 1 43 145000 VOG XTREAM - CL ICE BL SLM Cluster 4 3 3 371000 GM AIRBORNE SOLID - 2V WH YOG

Cluster 1 1 24 145000 VOG XTREAM - CL PINK CT GKD Cluster 4 4 2 403500 NHK TERMINATOR SOLID 2V - RED F SLM

Cluster 1 1 21 145000 VOG XTREAM - CL PP SLM Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V GUN SLM

Cluster 1 1 35 145000 VOG XTREAM - CL R. RED KUL Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V WH SLM

Cluster 1 1 41 145000 VOG XTREAM - CL WH SLM Cluster 4 4 3 418750 GM SUPERCROSS NEUTRON - NV WH/SIL SLM

Cluster 1 1 19 157750 MAZ VISTRO SOLID 2V - BK GKD Cluster 4 4 3 420500 NHK TERMINATOR RX 805 - 2V WH/SIL SLM

Cluster 1 1 20 157750 MAZ VISTRO SOLID 2V - RYL RED GKD Cluster 4 4 2 422000 NHK GODZILLA SOLID - 2V RYL RED SLM

Cluster 1 1 21 157750 MAZ VISTRO SOLID 2V - WH GKD Cluster 4 4 1 425500 NHK TERMINATOR STARBASE - 2V WH GKD

Cluster 1 1 34 167500 GM EVO SOLID - SR BK SLM

Cluster 1 1 22 167500 GM EVO SOLID - SR PP SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 26 167500 GM EVO SOLID - SR RYL RED KUL Cluster 5 1 4 103500 ASCA ASTRO SOLID WH KUL

Cluster 1 2 22 204000 GM FIGHTER SOLID - SR BK SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V GUN KUL

Cluster 1 2 27 204000 GM FIGHTER SOLID - SR WH SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RYL RED KUL

Cluster 5 1 4 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PP KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 5 1 4 170250 VOG TURBO SOLID - CL BK SLM

Cluster 2 1 15 101500 ASCA ASTRO SOLID RYL RED KUL Cluster 5 1 3 170250 VOG TURBO SOLID - CL WH SLM

Cluster 2 1 15 103500 ASCA ASTRO SOLID BK KUL Cluster 5 1 3 180250 MAZ PRIUSS*SOLID R -2V RY RED GKD

Cluster 2 1 13 103500 ASCA ASTRO SOLID GUN KUL Cluster 5 1 4 190500 GM EVO HELLO KITTY #5 - SR PINK YOG

Cluster 2 1 17 114000 GM TEEN ANGRY BIRD #1 - SR WH/RED KUL Cluster 5 1 3 190500 GM EVO LOLA BUNNY & BUGS BUNNY #1 WH/RED KUL

Cluster 2 1 11 114000 GM TEEN ANGRY BIRD #1 - SR WH/YL KUL Cluster 5 2 4 204000 GM FIGHTER SOLID - RED F SLM

Cluster 2 1 16 114000 GM TEEN HELLO KITTY #3 - SR WH YOG Cluster 5 2 3 209750 VOG NAVIGATOR SOLID - 2V ICE BL SLM

Cluster 2 1 10 131500 ASCA PREMIER SOLID - 2V BK GKD Cluster 5 2 3 237500 NHK R-6 BEYOND WH/GR SLM

Cluster 2 1 8 131500 ASCA PREMIER SOLID - 2V WH GKD Cluster 5 2 3 237500 NHK R6 RALLY - BK/SIL YOG

Cluster 2 1 11 133750 ASCA PREMIER SOLID - 2V GUN GKD Cluster 5 2 3 237500 NHK R-6 RALLY - CL WH/SIL SLM

Cluster 2 1 17 145000 VOG XTREAM - CL RED F SLM Cluster 5 2 4 241250 GM INTERCEPTOR SOLID - 2V RYL RED KUL

Cluster 2 1 8 155250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V WH YOG Cluster 5 2 4 244500 GM INTERCEPTOR SOLID - 2V BK/DOF KUL

Cluster 2 1 9 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V ICE BL SLM Cluster 5 2 4 252750 NHK X-2 SOLID - 2V GUN SLM

Cluster 2 1 9 157750 MAZ VISTRO SOLID 2V - RED GKD Cluster 5 2 4 270250 NHK GLADIATOR SOLID - 2V WH SLM

Cluster 2 1 8 158500 MAZ VISTRO SOLID - PINK GKD Cluster 5 2 3 272000 NHK PREDATOR SOLID - CL FLAT BK YOG

Cluster 2 1 17 167500 GM EVO SOLID - SR BL YOG Cluster 5 2 3 286250 NHK REVENTOR SOLID 2V - BK SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR DGM SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR GUN M SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 2 1 13 167500 GM EVO SOLID - SR WH YOG Cluster 6 2 2 209750 VOG NAVIGATOR SOLID - 2V RED F GKD

Cluster 2 2 12 204000 GM FIGHTER SOLID - SR DGM SLM Cluster 6 2 2 213500 GM CITYLIGHT SOLID - 2 V - RED F SLM

Cluster 2 2 14 206750 VOG NAVIGATOR SOLID - 2V BK GKD Cluster 6 2 1 221000 NHK R-6 SOLID - CL WH GKD

Cluster 2 2 13 206750 VOG NAVIGATOR SOLID - 2V GUN M GKD Cluster 6 2 2 224000 NHK R-6 SOLID - CL RYL RE GKD

Cluster 2 2 10 207000 GM FIGHTER SOLID - SR RYL RED KUL Cluster 6 2 2 237500 NHK R-6 LOTUS - CL WH SLM

Cluster 2 2 11 209750 VOG NAVIGATOR SOLID - 2V PP SLM Cluster 6 2 1 240750 NHK R6 BEYOND - WH/RED SLM

Cluster 2 2 8 209750 VOG NAVIGATOR SOLID - 2V WH GKD Cluster 6 2 2 240750 NHK R6 RALLY - CL BK/BL KUL

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/BL KUL Cluster 6 2 1 240750 NHK R-6 RALLY - CL WH/BL SLM

Cluster 2 2 11 222750 VOG NAVIGATOR PICLET - 2V BK/RED YOG Cluster 6 2 2 252750 NHK X-2 SOLID - 2V RYL RED SLM

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/SIL YOG Cluster 6 2 1 264250 GM STARTECH SOLID BK SLM

Cluster 2 2 8 241250 GM INTERCEPTOR SOLID - 2V WH YOG Cluster 6 2 1 264250 GM STARTECH SOLID GUN KUL

Cluster 2 2 8 270250 NHK GLADIATOR SOLID - 2V GUN SLM Cluster 6 2 2 272000 GM NEW IMPREZZA SOLID - 2V BK/DOF KUL

Cluster 2 2 8 272000 GM NEW IMPREZZA SOLID - 2V BK SLM Cluster 6 2 1 272000 NHK PREDATOR SOLID - CL WH YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V GUN SLM Cluster 6 2 1 275500 GM NEW IMPREZZA SOLID - 2V BL YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V RYL RED KUL Cluster 6 2 2 281500 NHK R-6 X-807 - CL YL FLO/BK KUL

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V WH SLM Cluster 6 2 2 286250 NHK REVENTOR SOLID WH SLM

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - NV WH/GOLD YOG Cluster 6 2 2 294750 GM NEW IMPREZZA GEN - 2V BL MET BK GKD

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/GREEN SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V RED/BK KUL

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/RED SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V WH/BK GKD

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - WH/PP GKD

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 7 1 1 145000 ASCA MOTIF PROTECH - 2V WH/YL YOG

Cluster 3 1 6 133750 ASCA PREMIER SOLID - 2V PP KUL Cluster 7 1 1 155000 VOG XTRAIL SOLID - CL RED F GKD

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL GUN M GKD Cluster 7 1 1 170250 VOG TURBO SOLID - CL GUN M SLM

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL WH GKD Cluster 7 1 1 180500 VOG FREEWAY SOLID - 2V ICE BL SLM

Cluster 3 1 7 155250 VOG XTREAM 2VSR SOLID/MEKANIK-2V BK KUL Cluster 7 1 1 190500 GM EVO MICKEY MOUSE # 10 - WH SLM

Cluster 3 1 6 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PINK GKD

Cluster 3 1 6 167500 GM EVO SOLID - SR PINK CUTE SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 3 1 6 180250 MAZ PRIUSS * SOLID R - 2V GUN GKD Cluster 8 1 2 116000 GM TEEN SNOW WHITE #2 - SR WH GKD

Cluster 3 2 6 206750 VOG NAVIGATOR SOLID - 2V RYL RED GKD Cluster 8 1 2 133750 ASCA PREMIER SOLID - 2V RED F KUL

Cluster 3 2 6 209750 VOG NAVIGATOR SOLID - 2V BK/DOF GKD Cluster 8 1 2 145000 ASCA MOTIF X-3 - 2V WH/GR KUL

Cluster 3 2 5 225750 VOG NAVIGATOR PICLET - 2V WH/BL YOG Cluster 8 1 2 147250 VOG XTREAM - CL PINK GKD

Cluster 3 2 6 225750 VOG NAVIGATOR PICLET - 2V WH/SIL YOG Cluster 8 1 2 151250 MAZ TREVIA HELLO KITTY #3 WH KUL

Cluster 3 2 7 241250 GM INTERCEPTOR SOLID - 2V BK KUL Cluster 8 1 2 153750 MAZ TREVIA ANGRY BIRD # 1 SR - WH/RED YOG

Cluster 3 2 5 241250 GM INTERCEPTOR SOLID - 2V GUN M YOG Cluster 8 1 2 155000 VOG XTRAIL SOLID - CL BK GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V BK SLM Cluster 8 1 2 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V BLUE GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V PP SLM Cluster 8 1 2 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RED F KUL

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL BK YOG Cluster 8 1 2 170250 VOG TURBO SOLID - CL PP SLM

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL GUN M YOG Cluster 8 1 2 171250 MIX SPORTY SOLID - 2V BK GKD

Cluster 3 2 5 272000 NHK PREDATOR SOLID - CL RYL RED YOG Cluster 8 1 2 172250 VOG TURBO SOLID - CL BK/DOF GKD

Cluster 3 2 6 277750 NHK R6 LOTUSS - ORG/FLO SLM Cluster 8 1 2 173750 MIX SPORTY SOLID - 2V RYL RED KUL

Cluster 3 2 5 277750 NHK R-6 ROSSI - CL GR/FLO SLM Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V BK GKD

Cluster 3 3 5 350000 NHK GP 1000 SOLID - 2V WH YOG Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V WH GKD

Cluster 3 4 7 417000 NHK GODZILLA SOLID - 2V BK SLM Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V PP SLM

Cluster 3 4 5 425500 NHK TERMINATOR LOTUS 2V - WH YOG Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V RYL RED KUL

Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V WH KUL

Cluster 8 1 2 187750 GM EVO ANGRY BIRD #3 - SR WH/RED GKD

Cluster 8 1 2 187750 GM EVO HELLO KITTY # 3 - WH YOG

Cluster 8 1 2 187750 GM EVO ROSSI - SR BK KUL

Cluster 8 1 2 190500 GM EVO HELLO KITTY #4 WH KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster

Kelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 30 114000 GM TEEN BATMAN #2 - SR WH KUL Cluster 4 3 2 314750 NHK PREDATOR 2 VISOR SOLID - 2V PP SLM

Cluster 1 1 24 114000 GM TEEN HELLO KITTY #1 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V R. RED SLM

Cluster 1 1 50 114000 GM TEEN HELLO KITTY #2 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V WH SLM

Cluster 1 1 46 145000 VOG XTREAM - CL BK SLM Cluster 4 3 2 318750 NHK PREDATOR 2 VISOR SOLID - 2V FLT/BK YOG

Cluster 1 1 22 145000 VOG XTREAM - CL BK/DF YOG Cluster 4 3 2 350000 NHK GP 1000 SOLID - 2V PP SLM

Cluster 1 1 34 145000 VOG XTREAM - CL GUN MET SLM Cluster 4 3 2 371000 GM AIRBORNE SOLID - 2V GUN MET SLM

Cluster 1 1 43 145000 VOG XTREAM - CL ICE BL SLM Cluster 4 3 3 371000 GM AIRBORNE SOLID - 2V WH YOG

Cluster 1 1 24 145000 VOG XTREAM - CL PINK CT GKD Cluster 4 4 2 403500 NHK TERMINATOR SOLID 2V - RED F SLM

Cluster 1 1 21 145000 VOG XTREAM - CL PP SLM Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V GUN SLM

Cluster 1 1 35 145000 VOG XTREAM - CL R. RED KUL Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V WH SLM

Cluster 1 1 41 145000 VOG XTREAM - CL WH SLM Cluster 4 4 3 418750 GM SUPERCROSS NEUTRON - NV WH/SIL SLM

Cluster 1 1 19 157750 MAZ VISTRO SOLID 2V - BK GKD Cluster 4 4 3 420500 NHK TERMINATOR RX 805 - 2V WH/SIL SLM

Cluster 1 1 20 157750 MAZ VISTRO SOLID 2V - RYL RED GKD Cluster 4 4 2 422000 NHK GODZILLA SOLID - 2V RYL RED SLM

Cluster 1 1 21 157750 MAZ VISTRO SOLID 2V - WH GKD Cluster 4 4 1 425500 NHK TERMINATOR STARBASE - 2V WH GKD

Cluster 1 1 34 167500 GM EVO SOLID - SR BK SLM

Cluster 1 1 22 167500 GM EVO SOLID - SR PP SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 26 167500 GM EVO SOLID - SR RYL RED KUL Cluster 5 1 4 103500 ASCA ASTRO SOLID WH KUL

Cluster 1 2 22 204000 GM FIGHTER SOLID - SR BK SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V GUN KUL

Cluster 1 2 27 204000 GM FIGHTER SOLID - SR WH SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RYL RED KUL

Cluster 5 1 4 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PP KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 5 1 4 170250 VOG TURBO SOLID - CL BK SLM

Cluster 2 1 15 101500 ASCA ASTRO SOLID RYL RED KUL Cluster 5 1 3 170250 VOG TURBO SOLID - CL WH SLM

Cluster 2 1 15 103500 ASCA ASTRO SOLID BK KUL Cluster 5 1 3 180250 MAZ PRIUSS*SOLID R -2V RY RED GKD

Cluster 2 1 13 103500 ASCA ASTRO SOLID GUN KUL Cluster 5 1 4 190500 GM EVO HELLO KITTY #5 - SR PINK YOG

Cluster 2 1 17 114000 GM TEEN ANGRY BIRD #1 - SR WH/RED KUL Cluster 5 1 3 190500 GM EVO LOLA BUNNY & BUGS BUNNY #1 WH/RED KUL

Cluster 2 1 11 114000 GM TEEN ANGRY BIRD #1 - SR WH/YL KUL Cluster 5 2 4 204000 GM FIGHTER SOLID - RED F SLM

Cluster 2 1 16 114000 GM TEEN HELLO KITTY #3 - SR WH YOG Cluster 5 2 3 209750 VOG NAVIGATOR SOLID - 2V ICE BL SLM

Cluster 2 1 10 131500 ASCA PREMIER SOLID - 2V BK GKD Cluster 5 2 3 237500 NHK R-6 BEYOND WH/GR SLM

Cluster 2 1 8 131500 ASCA PREMIER SOLID - 2V WH GKD Cluster 5 2 3 237500 NHK R6 RALLY - BK/SIL YOG

Cluster 2 1 11 133750 ASCA PREMIER SOLID - 2V GUN GKD Cluster 5 2 3 237500 NHK R-6 RALLY - CL WH/SIL SLM

Cluster 2 1 17 145000 VOG XTREAM - CL RED F SLM Cluster 5 2 4 241250 GM INTERCEPTOR SOLID - 2V RYL RED KUL

Cluster 2 1 8 155250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V WH YOG Cluster 5 2 4 244500 GM INTERCEPTOR SOLID - 2V BK/DOF KUL

Cluster 2 1 9 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V ICE BL SLM Cluster 5 2 4 252750 NHK X-2 SOLID - 2V GUN SLM

Cluster 2 1 9 157750 MAZ VISTRO SOLID 2V - RED GKD Cluster 5 2 4 270250 NHK GLADIATOR SOLID - 2V WH SLM

Cluster 2 1 8 158500 MAZ VISTRO SOLID - PINK GKD Cluster 5 2 3 272000 NHK PREDATOR SOLID - CL FLAT BK YOG

Cluster 2 1 17 167500 GM EVO SOLID - SR BL YOG Cluster 5 2 3 286250 NHK REVENTOR SOLID 2V - BK SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR DGM SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR GUN M SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 2 1 13 167500 GM EVO SOLID - SR WH YOG Cluster 6 2 2 209750 VOG NAVIGATOR SOLID - 2V RED F GKD

Cluster 2 2 12 204000 GM FIGHTER SOLID - SR DGM SLM Cluster 6 2 2 213500 GM CITYLIGHT SOLID - 2 V - RED F SLM

Cluster 2 2 14 206750 VOG NAVIGATOR SOLID - 2V BK GKD Cluster 6 2 1 221000 NHK R-6 SOLID - CL WH GKD

Cluster 2 2 13 206750 VOG NAVIGATOR SOLID - 2V GUN M GKD Cluster 6 2 2 224000 NHK R-6 SOLID - CL RYL RE GKD

Cluster 2 2 10 207000 GM FIGHTER SOLID - SR RYL RED KUL Cluster 6 2 2 237500 NHK R-6 LOTUS - CL WH SLM

Cluster 2 2 11 209750 VOG NAVIGATOR SOLID - 2V PP SLM Cluster 6 2 1 240750 NHK R6 BEYOND - WH/RED SLM

Cluster 2 2 8 209750 VOG NAVIGATOR SOLID - 2V WH GKD Cluster 6 2 2 240750 NHK R6 RALLY - CL BK/BL KUL

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/BL KUL Cluster 6 2 1 240750 NHK R-6 RALLY - CL WH/BL SLM

Cluster 2 2 11 222750 VOG NAVIGATOR PICLET - 2V BK/RED YOG Cluster 6 2 2 252750 NHK X-2 SOLID - 2V RYL RED SLM

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/SIL YOG Cluster 6 2 1 264250 GM STARTECH SOLID BK SLM

Cluster 2 2 8 241250 GM INTERCEPTOR SOLID - 2V WH YOG Cluster 6 2 1 264250 GM STARTECH SOLID GUN KUL

Cluster 2 2 8 270250 NHK GLADIATOR SOLID - 2V GUN SLM Cluster 6 2 2 272000 GM NEW IMPREZZA SOLID - 2V BK/DOF KUL

Cluster 2 2 8 272000 GM NEW IMPREZZA SOLID - 2V BK SLM Cluster 6 2 1 272000 NHK PREDATOR SOLID - CL WH YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V GUN SLM Cluster 6 2 1 275500 GM NEW IMPREZZA SOLID - 2V BL YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V RYL RED KUL Cluster 6 2 2 281500 NHK R-6 X-807 - CL YL FLO/BK KUL

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V WH SLM Cluster 6 2 2 286250 NHK REVENTOR SOLID WH SLM

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - NV WH/GOLD YOG Cluster 6 2 2 294750 GM NEW IMPREZZA GEN - 2V BL MET BK GKD

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/GREEN SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V RED/BK KUL

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/RED SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V WH/BK GKD

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - WH/PP GKD

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 7 1 1 145000 ASCA MOTIF PROTECH - 2V WH/YL YOG

Cluster 3 1 6 133750 ASCA PREMIER SOLID - 2V PP KUL Cluster 7 1 1 155000 VOG XTRAIL SOLID - CL RED F GKD

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL GUN M GKD Cluster 7 1 1 170250 VOG TURBO SOLID - CL GUN M SLM

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL WH GKD Cluster 7 1 1 180500 VOG FREEWAY SOLID - 2V ICE BL SLM

Cluster 3 1 7 155250 VOG XTREAM 2VSR SOLID/MEKANIK-2V BK KUL Cluster 7 1 1 190500 GM EVO MICKEY MOUSE # 10 - WH SLM

Cluster 3 1 6 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PINK GKD

Cluster 3 1 6 167500 GM EVO SOLID - SR PINK CUTE SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 3 1 6 180250 MAZ PRIUSS * SOLID R - 2V GUN GKD Cluster 8 1 2 116000 GM TEEN SNOW WHITE #2 - SR WH GKD

Cluster 3 2 6 206750 VOG NAVIGATOR SOLID - 2V RYL RED GKD Cluster 8 1 2 133750 ASCA PREMIER SOLID - 2V RED F KUL

Cluster 3 2 6 209750 VOG NAVIGATOR SOLID - 2V BK/DOF GKD Cluster 8 1 2 145000 ASCA MOTIF X-3 - 2V WH/GR KUL

Cluster 3 2 5 225750 VOG NAVIGATOR PICLET - 2V WH/BL YOG Cluster 8 1 2 147250 VOG XTREAM - CL PINK GKD

Cluster 3 2 6 225750 VOG NAVIGATOR PICLET - 2V WH/SIL YOG Cluster 8 1 2 151250 MAZ TREVIA HELLO KITTY #3 WH KUL

Cluster 3 2 7 241250 GM INTERCEPTOR SOLID - 2V BK KUL Cluster 8 1 2 153750 MAZ TREVIA ANGRY BIRD # 1 SR - WH/RED YOG

Cluster 3 2 5 241250 GM INTERCEPTOR SOLID - 2V GUN M YOG Cluster 8 1 2 155000 VOG XTRAIL SOLID - CL BK GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V BK SLM Cluster 8 1 2 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V BLUE GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V PP SLM Cluster 8 1 2 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RED F KUL

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL BK YOG Cluster 8 1 2 170250 VOG TURBO SOLID - CL PP SLM

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL GUN M YOG Cluster 8 1 2 171250 MIX SPORTY SOLID - 2V BK GKD

Cluster 3 2 5 272000 NHK PREDATOR SOLID - CL RYL RED YOG Cluster 8 1 2 172250 VOG TURBO SOLID - CL BK/DOF GKD

Cluster 3 2 6 277750 NHK R6 LOTUSS - ORG/FLO SLM Cluster 8 1 2 173750 MIX SPORTY SOLID - 2V RYL RED KUL

Cluster 3 2 5 277750 NHK R-6 ROSSI - CL GR/FLO SLM Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V BK GKD

Cluster 3 3 5 350000 NHK GP 1000 SOLID - 2V WH YOG Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V WH GKD

Cluster 3 4 7 417000 NHK GODZILLA SOLID - 2V BK SLM Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V PP SLM

Cluster 3 4 5 425500 NHK TERMINATOR LOTUS 2V - WH YOG Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V RYL RED KUL

Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V WH KUL

Cluster 8 1 2 187750 GM EVO ANGRY BIRD #3 - SR WH/RED GKD

Cluster 8 1 2 187750 GM EVO HELLO KITTY # 3 - WH YOG

Cluster 8 1 2 187750 GM EVO ROSSI - SR BK KUL

Cluster 8 1 2 190500 GM EVO HELLO KITTY #4 WH KUL

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

63

Gambar 21 Gambar 5.11. Karakter cluster

Untuk penamaan masing-masing cluster yang telah terbentuk dapat

berdasarkan karateristik dari masing-masing cluster, dalam penelitian ini dapat

menggunakan statistik rata-rata. Cluster satu dan dua dapat dinamakan kelompok

total pembelian sangat tinggi, karena kedua kelompok ini memiliki nilai rata-rata

terbesar terhadap total quantitynya dan jenis produk yang dipasarkan dominan

berada di wilayah Sleman. Cluster tiga dapat dinamakan kelompok total

pembelian tinggi, karena kelompok ini memiliki nilai rata-rata tinggi terhadap

total quantitynya setelah cluster satu dan dua dan produk yang dipasarkan

dominan di wilayah Yogyakarta. Cluster empat dan lima dapat dinamakan

kelompok total pembelian sedang, karena kedua kelompok ini memiliki nilai rata-

rata sedang terhadap total quantitynya setelah cluster tiga dan dua dan wilayah

pemasaran dari cluster ini berada di wilayah Sleman dan Kulonprogo. Cluster

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster

Kelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 30 114000 GM TEEN BATMAN #2 - SR WH KUL Cluster 4 3 2 314750 NHK PREDATOR 2 VISOR SOLID - 2V PP SLM

Cluster 1 1 24 114000 GM TEEN HELLO KITTY #1 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V R. RED SLM

Cluster 1 1 50 114000 GM TEEN HELLO KITTY #2 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V WH SLM

Cluster 1 1 46 145000 VOG XTREAM - CL BK SLM Cluster 4 3 2 318750 NHK PREDATOR 2 VISOR SOLID - 2V FLT/BK YOG

Cluster 1 1 22 145000 VOG XTREAM - CL BK/DF YOG Cluster 4 3 2 350000 NHK GP 1000 SOLID - 2V PP SLM

Cluster 1 1 34 145000 VOG XTREAM - CL GUN MET SLM Cluster 4 3 2 371000 GM AIRBORNE SOLID - 2V GUN MET SLM

Cluster 1 1 43 145000 VOG XTREAM - CL ICE BL SLM Cluster 4 3 3 371000 GM AIRBORNE SOLID - 2V WH YOG

Cluster 1 1 24 145000 VOG XTREAM - CL PINK CT GKD Cluster 4 4 2 403500 NHK TERMINATOR SOLID 2V - RED F SLM

Cluster 1 1 21 145000 VOG XTREAM - CL PP SLM Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V GUN SLM

Cluster 1 1 35 145000 VOG XTREAM - CL R. RED KUL Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V WH SLM

Cluster 1 1 41 145000 VOG XTREAM - CL WH SLM Cluster 4 4 3 418750 GM SUPERCROSS NEUTRON - NV WH/SIL SLM

Cluster 1 1 19 157750 MAZ VISTRO SOLID 2V - BK GKD Cluster 4 4 3 420500 NHK TERMINATOR RX 805 - 2V WH/SIL SLM

Cluster 1 1 20 157750 MAZ VISTRO SOLID 2V - RYL RED GKD Cluster 4 4 2 422000 NHK GODZILLA SOLID - 2V RYL RED SLM

Cluster 1 1 21 157750 MAZ VISTRO SOLID 2V - WH GKD Cluster 4 4 1 425500 NHK TERMINATOR STARBASE - 2V WH GKD

Cluster 1 1 34 167500 GM EVO SOLID - SR BK SLM

Cluster 1 1 22 167500 GM EVO SOLID - SR PP SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 26 167500 GM EVO SOLID - SR RYL RED KUL Cluster 5 1 4 103500 ASCA ASTRO SOLID WH KUL

Cluster 1 2 22 204000 GM FIGHTER SOLID - SR BK SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V GUN KUL

Cluster 1 2 27 204000 GM FIGHTER SOLID - SR WH SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RYL RED KUL

Cluster 5 1 4 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PP KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 5 1 4 170250 VOG TURBO SOLID - CL BK SLM

Cluster 2 1 15 101500 ASCA ASTRO SOLID RYL RED KUL Cluster 5 1 3 170250 VOG TURBO SOLID - CL WH SLM

Cluster 2 1 15 103500 ASCA ASTRO SOLID BK KUL Cluster 5 1 3 180250 MAZ PRIUSS*SOLID R -2V RY RED GKD

Cluster 2 1 13 103500 ASCA ASTRO SOLID GUN KUL Cluster 5 1 4 190500 GM EVO HELLO KITTY #5 - SR PINK YOG

Cluster 2 1 17 114000 GM TEEN ANGRY BIRD #1 - SR WH/RED KUL Cluster 5 1 3 190500 GM EVO LOLA BUNNY & BUGS BUNNY #1 WH/RED KUL

Cluster 2 1 11 114000 GM TEEN ANGRY BIRD #1 - SR WH/YL KUL Cluster 5 2 4 204000 GM FIGHTER SOLID - RED F SLM

Cluster 2 1 16 114000 GM TEEN HELLO KITTY #3 - SR WH YOG Cluster 5 2 3 209750 VOG NAVIGATOR SOLID - 2V ICE BL SLM

Cluster 2 1 10 131500 ASCA PREMIER SOLID - 2V BK GKD Cluster 5 2 3 237500 NHK R-6 BEYOND WH/GR SLM

Cluster 2 1 8 131500 ASCA PREMIER SOLID - 2V WH GKD Cluster 5 2 3 237500 NHK R6 RALLY - BK/SIL YOG

Cluster 2 1 11 133750 ASCA PREMIER SOLID - 2V GUN GKD Cluster 5 2 3 237500 NHK R-6 RALLY - CL WH/SIL SLM

Cluster 2 1 17 145000 VOG XTREAM - CL RED F SLM Cluster 5 2 4 241250 GM INTERCEPTOR SOLID - 2V RYL RED KUL

Cluster 2 1 8 155250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V WH YOG Cluster 5 2 4 244500 GM INTERCEPTOR SOLID - 2V BK/DOF KUL

Cluster 2 1 9 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V ICE BL SLM Cluster 5 2 4 252750 NHK X-2 SOLID - 2V GUN SLM

Cluster 2 1 9 157750 MAZ VISTRO SOLID 2V - RED GKD Cluster 5 2 4 270250 NHK GLADIATOR SOLID - 2V WH SLM

Cluster 2 1 8 158500 MAZ VISTRO SOLID - PINK GKD Cluster 5 2 3 272000 NHK PREDATOR SOLID - CL FLAT BK YOG

Cluster 2 1 17 167500 GM EVO SOLID - SR BL YOG Cluster 5 2 3 286250 NHK REVENTOR SOLID 2V - BK SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR DGM SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR GUN M SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 2 1 13 167500 GM EVO SOLID - SR WH YOG Cluster 6 2 2 209750 VOG NAVIGATOR SOLID - 2V RED F GKD

Cluster 2 2 12 204000 GM FIGHTER SOLID - SR DGM SLM Cluster 6 2 2 213500 GM CITYLIGHT SOLID - 2 V - RED F SLM

Cluster 2 2 14 206750 VOG NAVIGATOR SOLID - 2V BK GKD Cluster 6 2 1 221000 NHK R-6 SOLID - CL WH GKD

Cluster 2 2 13 206750 VOG NAVIGATOR SOLID - 2V GUN M GKD Cluster 6 2 2 224000 NHK R-6 SOLID - CL RYL RE GKD

Cluster 2 2 10 207000 GM FIGHTER SOLID - SR RYL RED KUL Cluster 6 2 2 237500 NHK R-6 LOTUS - CL WH SLM

Cluster 2 2 11 209750 VOG NAVIGATOR SOLID - 2V PP SLM Cluster 6 2 1 240750 NHK R6 BEYOND - WH/RED SLM

Cluster 2 2 8 209750 VOG NAVIGATOR SOLID - 2V WH GKD Cluster 6 2 2 240750 NHK R6 RALLY - CL BK/BL KUL

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/BL KUL Cluster 6 2 1 240750 NHK R-6 RALLY - CL WH/BL SLM

Cluster 2 2 11 222750 VOG NAVIGATOR PICLET - 2V BK/RED YOG Cluster 6 2 2 252750 NHK X-2 SOLID - 2V RYL RED SLM

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/SIL YOG Cluster 6 2 1 264250 GM STARTECH SOLID BK SLM

Cluster 2 2 8 241250 GM INTERCEPTOR SOLID - 2V WH YOG Cluster 6 2 1 264250 GM STARTECH SOLID GUN KUL

Cluster 2 2 8 270250 NHK GLADIATOR SOLID - 2V GUN SLM Cluster 6 2 2 272000 GM NEW IMPREZZA SOLID - 2V BK/DOF KUL

Cluster 2 2 8 272000 GM NEW IMPREZZA SOLID - 2V BK SLM Cluster 6 2 1 272000 NHK PREDATOR SOLID - CL WH YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V GUN SLM Cluster 6 2 1 275500 GM NEW IMPREZZA SOLID - 2V BL YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V RYL RED KUL Cluster 6 2 2 281500 NHK R-6 X-807 - CL YL FLO/BK KUL

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V WH SLM Cluster 6 2 2 286250 NHK REVENTOR SOLID WH SLM

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - NV WH/GOLD YOG Cluster 6 2 2 294750 GM NEW IMPREZZA GEN - 2V BL MET BK GKD

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/GREEN SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V RED/BK KUL

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/RED SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V WH/BK GKD

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - WH/PP GKD

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 7 1 1 145000 ASCA MOTIF PROTECH - 2V WH/YL YOG

Cluster 3 1 6 133750 ASCA PREMIER SOLID - 2V PP KUL Cluster 7 1 1 155000 VOG XTRAIL SOLID - CL RED F GKD

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL GUN M GKD Cluster 7 1 1 170250 VOG TURBO SOLID - CL GUN M SLM

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL WH GKD Cluster 7 1 1 180500 VOG FREEWAY SOLID - 2V ICE BL SLM

Cluster 3 1 7 155250 VOG XTREAM 2VSR SOLID/MEKANIK-2V BK KUL Cluster 7 1 1 190500 GM EVO MICKEY MOUSE # 10 - WH SLM

Cluster 3 1 6 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PINK GKD

Cluster 3 1 6 167500 GM EVO SOLID - SR PINK CUTE SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 3 1 6 180250 MAZ PRIUSS * SOLID R - 2V GUN GKD Cluster 8 1 2 116000 GM TEEN SNOW WHITE #2 - SR WH GKD

Cluster 3 2 6 206750 VOG NAVIGATOR SOLID - 2V RYL RED GKD Cluster 8 1 2 133750 ASCA PREMIER SOLID - 2V RED F KUL

Cluster 3 2 6 209750 VOG NAVIGATOR SOLID - 2V BK/DOF GKD Cluster 8 1 2 145000 ASCA MOTIF X-3 - 2V WH/GR KUL

Cluster 3 2 5 225750 VOG NAVIGATOR PICLET - 2V WH/BL YOG Cluster 8 1 2 147250 VOG XTREAM - CL PINK GKD

Cluster 3 2 6 225750 VOG NAVIGATOR PICLET - 2V WH/SIL YOG Cluster 8 1 2 151250 MAZ TREVIA HELLO KITTY #3 WH KUL

Cluster 3 2 7 241250 GM INTERCEPTOR SOLID - 2V BK KUL Cluster 8 1 2 153750 MAZ TREVIA ANGRY BIRD # 1 SR - WH/RED YOG

Cluster 3 2 5 241250 GM INTERCEPTOR SOLID - 2V GUN M YOG Cluster 8 1 2 155000 VOG XTRAIL SOLID - CL BK GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V BK SLM Cluster 8 1 2 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V BLUE GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V PP SLM Cluster 8 1 2 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RED F KUL

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL BK YOG Cluster 8 1 2 170250 VOG TURBO SOLID - CL PP SLM

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL GUN M YOG Cluster 8 1 2 171250 MIX SPORTY SOLID - 2V BK GKD

Cluster 3 2 5 272000 NHK PREDATOR SOLID - CL RYL RED YOG Cluster 8 1 2 172250 VOG TURBO SOLID - CL BK/DOF GKD

Cluster 3 2 6 277750 NHK R6 LOTUSS - ORG/FLO SLM Cluster 8 1 2 173750 MIX SPORTY SOLID - 2V RYL RED KUL

Cluster 3 2 5 277750 NHK R-6 ROSSI - CL GR/FLO SLM Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V BK GKD

Cluster 3 3 5 350000 NHK GP 1000 SOLID - 2V WH YOG Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V WH GKD

Cluster 3 4 7 417000 NHK GODZILLA SOLID - 2V BK SLM Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V PP SLM

Cluster 3 4 5 425500 NHK TERMINATOR LOTUS 2V - WH YOG Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V RYL RED KUL

Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V WH KUL

Cluster 8 1 2 187750 GM EVO ANGRY BIRD #3 - SR WH/RED GKD

Cluster 8 1 2 187750 GM EVO HELLO KITTY # 3 - WH YOG

Cluster 8 1 2 187750 GM EVO ROSSI - SR BK KUL

Cluster 8 1 2 190500 GM EVO HELLO KITTY #4 WH KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster

Kelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 30 114000 GM TEEN BATMAN #2 - SR WH KUL Cluster 4 3 2 314750 NHK PREDATOR 2 VISOR SOLID - 2V PP SLM

Cluster 1 1 24 114000 GM TEEN HELLO KITTY #1 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V R. RED SLM

Cluster 1 1 50 114000 GM TEEN HELLO KITTY #2 - SR WH YOG Cluster 4 3 4 314750 NHK PREDATOR 2 VISOR SOLID - 2V WH SLM

Cluster 1 1 46 145000 VOG XTREAM - CL BK SLM Cluster 4 3 2 318750 NHK PREDATOR 2 VISOR SOLID - 2V FLT/BK YOG

Cluster 1 1 22 145000 VOG XTREAM - CL BK/DF YOG Cluster 4 3 2 350000 NHK GP 1000 SOLID - 2V PP SLM

Cluster 1 1 34 145000 VOG XTREAM - CL GUN MET SLM Cluster 4 3 2 371000 GM AIRBORNE SOLID - 2V GUN MET SLM

Cluster 1 1 43 145000 VOG XTREAM - CL ICE BL SLM Cluster 4 3 3 371000 GM AIRBORNE SOLID - 2V WH YOG

Cluster 1 1 24 145000 VOG XTREAM - CL PINK CT GKD Cluster 4 4 2 403500 NHK TERMINATOR SOLID 2V - RED F SLM

Cluster 1 1 21 145000 VOG XTREAM - CL PP SLM Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V GUN SLM

Cluster 1 1 35 145000 VOG XTREAM - CL R. RED KUL Cluster 4 4 2 417000 NHK GODZILLA SOLID - 2V WH SLM

Cluster 1 1 41 145000 VOG XTREAM - CL WH SLM Cluster 4 4 3 418750 GM SUPERCROSS NEUTRON - NV WH/SIL SLM

Cluster 1 1 19 157750 MAZ VISTRO SOLID 2V - BK GKD Cluster 4 4 3 420500 NHK TERMINATOR RX 805 - 2V WH/SIL SLM

Cluster 1 1 20 157750 MAZ VISTRO SOLID 2V - RYL RED GKD Cluster 4 4 2 422000 NHK GODZILLA SOLID - 2V RYL RED SLM

Cluster 1 1 21 157750 MAZ VISTRO SOLID 2V - WH GKD Cluster 4 4 1 425500 NHK TERMINATOR STARBASE - 2V WH GKD

Cluster 1 1 34 167500 GM EVO SOLID - SR BK SLM

Cluster 1 1 22 167500 GM EVO SOLID - SR PP SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 1 1 26 167500 GM EVO SOLID - SR RYL RED KUL Cluster 5 1 4 103500 ASCA ASTRO SOLID WH KUL

Cluster 1 2 22 204000 GM FIGHTER SOLID - SR BK SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V GUN KUL

Cluster 1 2 27 204000 GM FIGHTER SOLID - SR WH SLM Cluster 5 1 4 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RYL RED KUL

Cluster 5 1 4 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PP KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 5 1 4 170250 VOG TURBO SOLID - CL BK SLM

Cluster 2 1 15 101500 ASCA ASTRO SOLID RYL RED KUL Cluster 5 1 3 170250 VOG TURBO SOLID - CL WH SLM

Cluster 2 1 15 103500 ASCA ASTRO SOLID BK KUL Cluster 5 1 3 180250 MAZ PRIUSS*SOLID R -2V RY RED GKD

Cluster 2 1 13 103500 ASCA ASTRO SOLID GUN KUL Cluster 5 1 4 190500 GM EVO HELLO KITTY #5 - SR PINK YOG

Cluster 2 1 17 114000 GM TEEN ANGRY BIRD #1 - SR WH/RED KUL Cluster 5 1 3 190500 GM EVO LOLA BUNNY & BUGS BUNNY #1 WH/RED KUL

Cluster 2 1 11 114000 GM TEEN ANGRY BIRD #1 - SR WH/YL KUL Cluster 5 2 4 204000 GM FIGHTER SOLID - RED F SLM

Cluster 2 1 16 114000 GM TEEN HELLO KITTY #3 - SR WH YOG Cluster 5 2 3 209750 VOG NAVIGATOR SOLID - 2V ICE BL SLM

Cluster 2 1 10 131500 ASCA PREMIER SOLID - 2V BK GKD Cluster 5 2 3 237500 NHK R-6 BEYOND WH/GR SLM

Cluster 2 1 8 131500 ASCA PREMIER SOLID - 2V WH GKD Cluster 5 2 3 237500 NHK R6 RALLY - BK/SIL YOG

Cluster 2 1 11 133750 ASCA PREMIER SOLID - 2V GUN GKD Cluster 5 2 3 237500 NHK R-6 RALLY - CL WH/SIL SLM

Cluster 2 1 17 145000 VOG XTREAM - CL RED F SLM Cluster 5 2 4 241250 GM INTERCEPTOR SOLID - 2V RYL RED KUL

Cluster 2 1 8 155250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V WH YOG Cluster 5 2 4 244500 GM INTERCEPTOR SOLID - 2V BK/DOF KUL

Cluster 2 1 9 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V ICE BL SLM Cluster 5 2 4 252750 NHK X-2 SOLID - 2V GUN SLM

Cluster 2 1 9 157750 MAZ VISTRO SOLID 2V - RED GKD Cluster 5 2 4 270250 NHK GLADIATOR SOLID - 2V WH SLM

Cluster 2 1 8 158500 MAZ VISTRO SOLID - PINK GKD Cluster 5 2 3 272000 NHK PREDATOR SOLID - CL FLAT BK YOG

Cluster 2 1 17 167500 GM EVO SOLID - SR BL YOG Cluster 5 2 3 286250 NHK REVENTOR SOLID 2V - BK SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR DGM SLM

Cluster 2 1 13 167500 GM EVO SOLID - SR GUN M SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 2 1 13 167500 GM EVO SOLID - SR WH YOG Cluster 6 2 2 209750 VOG NAVIGATOR SOLID - 2V RED F GKD

Cluster 2 2 12 204000 GM FIGHTER SOLID - SR DGM SLM Cluster 6 2 2 213500 GM CITYLIGHT SOLID - 2 V - RED F SLM

Cluster 2 2 14 206750 VOG NAVIGATOR SOLID - 2V BK GKD Cluster 6 2 1 221000 NHK R-6 SOLID - CL WH GKD

Cluster 2 2 13 206750 VOG NAVIGATOR SOLID - 2V GUN M GKD Cluster 6 2 2 224000 NHK R-6 SOLID - CL RYL RE GKD

Cluster 2 2 10 207000 GM FIGHTER SOLID - SR RYL RED KUL Cluster 6 2 2 237500 NHK R-6 LOTUS - CL WH SLM

Cluster 2 2 11 209750 VOG NAVIGATOR SOLID - 2V PP SLM Cluster 6 2 1 240750 NHK R6 BEYOND - WH/RED SLM

Cluster 2 2 8 209750 VOG NAVIGATOR SOLID - 2V WH GKD Cluster 6 2 2 240750 NHK R6 RALLY - CL BK/BL KUL

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/BL KUL Cluster 6 2 1 240750 NHK R-6 RALLY - CL WH/BL SLM

Cluster 2 2 11 222750 VOG NAVIGATOR PICLET - 2V BK/RED YOG Cluster 6 2 2 252750 NHK X-2 SOLID - 2V RYL RED SLM

Cluster 2 2 12 222750 VOG NAVIGATOR PICLET - 2V BK/SIL YOG Cluster 6 2 1 264250 GM STARTECH SOLID BK SLM

Cluster 2 2 8 241250 GM INTERCEPTOR SOLID - 2V WH YOG Cluster 6 2 1 264250 GM STARTECH SOLID GUN KUL

Cluster 2 2 8 270250 NHK GLADIATOR SOLID - 2V GUN SLM Cluster 6 2 2 272000 GM NEW IMPREZZA SOLID - 2V BK/DOF KUL

Cluster 2 2 8 272000 GM NEW IMPREZZA SOLID - 2V BK SLM Cluster 6 2 1 272000 NHK PREDATOR SOLID - CL WH YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V GUN SLM Cluster 6 2 1 275500 GM NEW IMPREZZA SOLID - 2V BL YOG

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V RYL RED KUL Cluster 6 2 2 281500 NHK R-6 X-807 - CL YL FLO/BK KUL

Cluster 2 2 9 272000 GM NEW IMPREZZA SOLID - 2V WH SLM Cluster 6 2 2 286250 NHK REVENTOR SOLID WH SLM

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - NV WH/GOLD YOG Cluster 6 2 2 294750 GM NEW IMPREZZA GEN - 2V BL MET BK GKD

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/GREEN SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V RED/BK KUL

Cluster 2 4 17 414000 GM SUPERCROSS NEUTRON - NV WH/RED SLM Cluster 6 2 2 294750 GM NEW IMPREZZA GENT - 2V WH/BK GKD

Cluster 2 4 9 414000 GM SUPERCROSS NEUTRON - WH/PP GKD

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah Cluster 7 1 1 145000 ASCA MOTIF PROTECH - 2V WH/YL YOG

Cluster 3 1 6 133750 ASCA PREMIER SOLID - 2V PP KUL Cluster 7 1 1 155000 VOG XTRAIL SOLID - CL RED F GKD

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL GUN M GKD Cluster 7 1 1 170250 VOG TURBO SOLID - CL GUN M SLM

Cluster 3 1 5 155000 VOG XTRAIL SOLID - CL WH GKD Cluster 7 1 1 180500 VOG FREEWAY SOLID - 2V ICE BL SLM

Cluster 3 1 7 155250 VOG XTREAM 2VSR SOLID/MEKANIK-2V BK KUL Cluster 7 1 1 190500 GM EVO MICKEY MOUSE # 10 - WH SLM

Cluster 3 1 6 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V PINK GKD

Cluster 3 1 6 167500 GM EVO SOLID - SR PINK CUTE SLM ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 3 1 6 180250 MAZ PRIUSS * SOLID R - 2V GUN GKD Cluster 8 1 2 116000 GM TEEN SNOW WHITE #2 - SR WH GKD

Cluster 3 2 6 206750 VOG NAVIGATOR SOLID - 2V RYL RED GKD Cluster 8 1 2 133750 ASCA PREMIER SOLID - 2V RED F KUL

Cluster 3 2 6 209750 VOG NAVIGATOR SOLID - 2V BK/DOF GKD Cluster 8 1 2 145000 ASCA MOTIF X-3 - 2V WH/GR KUL

Cluster 3 2 5 225750 VOG NAVIGATOR PICLET - 2V WH/BL YOG Cluster 8 1 2 147250 VOG XTREAM - CL PINK GKD

Cluster 3 2 6 225750 VOG NAVIGATOR PICLET - 2V WH/SIL YOG Cluster 8 1 2 151250 MAZ TREVIA HELLO KITTY #3 WH KUL

Cluster 3 2 7 241250 GM INTERCEPTOR SOLID - 2V BK KUL Cluster 8 1 2 153750 MAZ TREVIA ANGRY BIRD # 1 SR - WH/RED YOG

Cluster 3 2 5 241250 GM INTERCEPTOR SOLID - 2V GUN M YOG Cluster 8 1 2 155000 VOG XTRAIL SOLID - CL BK GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V BK SLM Cluster 8 1 2 156250 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V BLUE GKD

Cluster 3 2 7 270250 NHK GLADIATOR SOLID - 2V PP SLM Cluster 8 1 2 157750 VOG XTREAM 2 VSR SOLID/MEKANIK - 2V RED F KUL

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL BK YOG Cluster 8 1 2 170250 VOG TURBO SOLID - CL PP SLM

Cluster 3 2 6 272000 NHK PREDATOR SOLID - CL GUN M YOG Cluster 8 1 2 171250 MIX SPORTY SOLID - 2V BK GKD

Cluster 3 2 5 272000 NHK PREDATOR SOLID - CL RYL RED YOG Cluster 8 1 2 172250 VOG TURBO SOLID - CL BK/DOF GKD

Cluster 3 2 6 277750 NHK R6 LOTUSS - ORG/FLO SLM Cluster 8 1 2 173750 MIX SPORTY SOLID - 2V RYL RED KUL

Cluster 3 2 5 277750 NHK R-6 ROSSI - CL GR/FLO SLM Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V BK GKD

Cluster 3 3 5 350000 NHK GP 1000 SOLID - 2V WH YOG Cluster 8 1 2 180250 MAZ PRIUSS * SOLID R - 2V WH GKD

Cluster 3 4 7 417000 NHK GODZILLA SOLID - 2V BK SLM Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V PP SLM

Cluster 3 4 5 425500 NHK TERMINATOR LOTUS 2V - WH YOG Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V RYL RED KUL

Cluster 8 1 2 180500 VOG FREEWAY SOLID - 2V WH KUL

Cluster 8 1 2 187750 GM EVO ANGRY BIRD #3 - SR WH/RED GKD

Cluster 8 1 2 187750 GM EVO HELLO KITTY # 3 - WH YOG

Cluster 8 1 2 187750 GM EVO ROSSI - SR BK KUL

Cluster 8 1 2 190500 GM EVO HELLO KITTY #4 WH KUL

ClusterKelompok

Harga

Total

Quantity

Harga

JualNama Barang Wilayah

Cluster 7 1 1 145000 ASCA MOTIF PROTECH - 2V WH/YL YOG

Cluster 7 1 1 155000 VOG XTRAIL SOLID - CL RED F GKD

Cluster 7 1 1 170250 VOG TURBO SOLID - CL GUN M GKD

Cluster 7 1 1 180500 VOG FREEWAY SOLID - 2V ICE BL GKD

Cluster 7 1 1 190500 GM EVO MICKEY MOUSE # 10 - WH SLM

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

64

enam dapat dinamakan kelompok total pembelian rendah, karena kelompok ini

memiliki nilai rata-rata rendah terhadap total quantitynya dan wilayah pemasaran

produk dari cluster ini berada di wilayah Kulonprogo. Cluster tujuh dan delapan

dapat dinamakan kelompok total pembelian sangat rendah, karena kelompok ini

memiliki nilai rata-rata paling rendah terhadap total quantitynya diantara cluster

lainya dan produk yang dipasarkan dominan di wilayah Gunungkidul. Dari

analisis diatas Dapat disimpulkan untuk wilayah pemasarannya diantaralain,

cluster satu, dua dan empat di kota Sleman, cluster tiga di kota Yogyakarta,

cluster lima dan enam di kota Kulonprogo, dan cluster tujuh dan delapan di kota

Gunungkidul

Untuk mengetahui ketepatan sistem dalam melakukan proses

pengelompokan, sebelumnya telah dilakukan pengelompokan terhadap 159 data

dan menghasilkan 8 cluster, selanjutnya akan dilakukan percobaan pembentukan

cluster ulang dengan menambahkan 20 data baru, percobaan ini dilakukan untuk

mengetahui apakah data baru tersebut masuk di dalam cluster yang tepat atau

tidak. Berikut ini adalah daftar 20 data baru.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

65

Gambar 22 Gambar 5.12. Data Baru

Dari data baru pada Gambar 5.12 menghasilkan pengelompokan baru

seperti pada Tabel 5.8:

Tabel 17 Tabel 5.8. Hasil Clustering Divisive untuk penambahan data baru

Cluster Jumlah anggota

Cluster 1 20

Cluster 2 29

Cluster 3 31

Cluster 4 13

Cluster 5 22

Cluster 6 18

Cluster 7 5

Cluster 8 21

Pada Tabel 5.8 adalah hasil yang diperoleh dari proses pengelompokan

ulang, selanjutanya akan dicek apakah ke-20 data tersebut sudah masuk kedalam

cluster yang sama dengan percobaan sebelumnya. Pada Gambar 5.13 adalah hasil

pengelompokannya:

noFaktur kodeBarangnamaBarang satuan size hargaJualquantity discount discountRealdiscount2 total urut hpp hppdpp hargasatuansisapesan statusReturOrderstatusNotaKreditnourut kodeCanvaserKelompokHarga

MC11501230070201006047ASCA ASTRO SOLID RYL RED pcs 20 101500 1 0 0 0 101500 2 92000 92000 101500 0 N N 980 KUL 0

MC11501140070609707311GM TEEN HELLO KITTY #2 - SR WH pcs 20 116000 2 0 0 0 232000 2 208000 208000 116000 0 N N 800 YOG 0

MC11501300010503328154VOG XTREAM - CL ICE BL pcs 20 147250 2 0 0 0 294500 1 265000 265000 147250 0 N N 432 SLM 0

MC11501150030502604106VOG XTRAIL SOLID - CL GUN M pcs 20 155000 2 0 0 0 310000 5 277000 277000 155000 0 N N 272 GKD 0

MC11501080010605707227GM EVO SOLID - SR WH pcs 20 167500 1 0 0 0 167500 2 153500 153500 167500 0 N N 624 SLM 0

MC11503020020605730219GM EVO SOLID - SR DGM pcs 20 170000 2 0 0 0 340000 8 307000 307000 170000 0 N N 830 SLM 0

MC11501130030502307090VOG FREEWAY SOLID - 2V WH pcs 20 180500 2 0 0 0 361000 10 325000 325000 180500 0 N N 220 KUL 0

MC11501070010604501199GM FIGHTER SOLID - SR BK pcs 20 204000 2 0 0 0 408000 4 374000 374000 204000 0 N N 157 SLM 0

MC11501220030502828122VOG NAVIGATOR SOLID - 2V ICE BL pcs 20 209750 1 0 0 0 209750 15 189500 189500 209750 0 N N 975 SLM 0

MC11501190030503212143VOG NAVIGATOR PICLET - 2V BK/SIL pcs 20 225750 2 0 0 0 451500 4 409000 409000 225750 0 N N 900 YOG 0

MC11501210010604004181GM INTERCEPTOR SOLID - 2V GUN M pcs 20 241250 1 0 0 0 241250 3 221500 221500 241250 0 N N 919 YOG 0

MC11501200010609217298GM STARTECH SOLID GUN pcs 20 264250 1 0 0 0 264250 8 240000 240000 264250 0 N N 304 KUL 0

MC11501070040604106193GM NEW IMPREZZA SOLID - 2V RYL RED pcs 20 275500 1 0 0 0 275500 11 250000 250000 275500 0 N N 602 KUL 0

MC11501140060603866495GM NEW IMPREZZA GEN - 2V BL MET BK pcs 20 294750 1 0 0 0 294750 7 267500 267500 294750 0 N N 786 GKD 0

MC11501090040713207407NHK PREDATOR 2 VISOR SOLID - 2V WH pcs 20 314750 1 0 0 0 314750 4 290000 290000 314750 0 N N 700 SLM 0

MC11501070050713207407NHK PREDATOR 2 VISOR SOLID - 2V WH pcs 20 318750 1 0 0 0 318750 12 290000 290000 318750 0 N N 621 SLM 0

MC11501190040712107360NHK GP 1000 SOLID - 2V WH pcs 20 350000 1 0 0 0 350000 1 317000 317000 350000 0 N N 902 YOG 0

MC11501130040608913287GM SUPERCROSS NEUTRON - NV WH/RED pcs 20 418750 1 0 0 0 418750 4 380500 380500 418750 0 N N 745 SLM 0

MC11501120010713822423NHK TERMINATOR RX 805 - 2V WH/SIL pcs 20 420500 1 0 0 0 420500 12 386000 386000 420500 0 N N 191 SLM 0

MC11501230040717007476NHK TERMINATOR LOTUS 2V - WH pcs 20 425500 2 0 0 0 851000 7 772000 772000 425500 0 N N 373 YOG 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

66

Gambar 23 Gambar 5.13. Hasil Cluster Ulang

Hasilnya 15 dari 20 data baru yang di cluster ulang masuk ke dalam

cluster yang sama dan 5 data lainnya masuk ke dalam cluster yang berbeda.

Percobaan ini bertujuan untuk mengetahui seberapa akuratnya sistem dalam

membentuk sebuah cluster.

Cluster Lama Cluster Cluster Cluster baruASCA ASTRO SOLID RYL RED Cluster 2 Cluster 2 ASCA ASTRO SOLID RYL RED

GM TEEN HELLO KITTY #2 - SR WH Cluster 1 Cluster 1 GM TEEN HELLO KITTY #2 - SR WH

VOG XTREAM - CL ICE BL Cluster 1 Cluster 1 VOG XTREAM - CL ICE BL

VOG XTRAIL SOLID - CL GUN M Cluster 3 Cluster 3 VOG XTRAIL SOLID - CL GUN M

GM EVO SOLID - SR WH Cluster 2 Cluster 2 GM EVO SOLID - SR WH

GM EVO SOLID - SR DGM Cluster 2 Cluster 2 GM EVO SOLID - SR DGM

GM FIGHTER SOLID - SR BK Cluster 1 Cluster 1 GM FIGHTER SOLID - SR BK

VOG NAVIGATOR PICLET - 2V BK/SIL Cluster 2 Cluster 2 VOG NAVIGATOR PICLET - 2V BK/SIL

GM NEW IMPREZZA SOLID - 2V RYL RED Cluster 2 Cluster 2 GM NEW IMPREZZA SOLID - 2V RYL RED

VOG NAVIGATOR SOLID - 2V ICE BL Cluster 5 Cluster 5 VOG NAVIGATOR SOLID - 2V ICE BL

GM INTERCEPTOR SOLID - 2V GUN M Cluster 3 Cluster 3 GM INTERCEPTOR SOLID - 2V GUN M

GM STARTECH SOLID GUN Cluster 6 Cluster 6 GM STARTECH SOLID GUN

NHK GP 1000 SOLID - 2V WH Cluster 3 Cluster 3 NHK GP 1000 SOLID - 2V WH

NHK TERMINATOR RX 805 - 2V WH/SIL Cluster 4 Cluster 4 NHK TERMINATOR RX 805 - 2V WH/SIL

NHK TERMINATOR LOTUS 2V - WH Cluster 3 Cluster 3 NHK TERMINATOR LOTUS 2V - WH

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

67

BAB VI

PENGUJIAN SISTEM

BAB VI PENGUJIAN SISTEM

Pada bab ini akan dijelaskan mengenai pengujian yang dilakukan, berikut

tahapa-tahapan yang dilakukan dalam pengujian sistem:

6.1. Rencana Pengujian

Hanya akan dilakukan satu jenis pengujian dalam sistem ini, yaitu

pengujian menggunakan blackbox. Pengujian menggunakan metode blackbox

berkaitan dengan pengujian terhadap antarmuka sistem. Mencangkup pengujian

apakah semua fungsi-fungsi sistem berjalan dengan sesuai dengan kebutuhan

fungsional yang telah di definisikan.

Berikut ini merupakan tabel rencana pengujian blackbox yang akan di

lakukan pada masing-masing kelas dalam sistem ini.

Tabel 18 Tabel 6.1. Rencana pengujian Blackbox

No. Kelas Uji Butir Uji Jenis Pengujian

1 HalamanUtama Melakukan input range batas

kelompok harga

Blackbox

Menampilkan data dari file yang

berekstensi .csv

Blackbox

Melakukan clustering Blackbox

Menampilkan hasil clustering Blackbox

Menjalankan fungsi simpan hasil

pengelompokan

Blackbox

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

68

6.1.1. Hasil Pengujian Black-box

1. Pengujian Input Range Harga

Berikut ini merupakan data pengujian untuk Input Range Harga pada kelas

HalamanUtama.

Tabel 19 Tabel 6.2. Tabel Pengujian input range harga

Kasus dan Hasil Uji (Data Benar)

No Aktifitas yang

dilakukan

Keluaran yang

diharapkan

Hasil yang

diharapkan

Kesimpulan

1 Input nilai batas

atas dan batas

bawah mulai dari

kelompok 1

sampai kelompok

5

Data berhasil di

simpan kedalam

tabel

kategori_nilai

Data berhasil

di simpan

kedalam tabel

kategori_nilai

Diterima

Kasus dan Hasil Uji (Data Salah)

1 Input nilai batas

atas dan batas

bawah pada

masing-masing

kelompok

mengandung sifat

gabungan

Menampilkan

pesan error

bahwa nilai

range harga

mengandung

gabungan

Pesan

kesalahan

berhasil

ditampilkan

Diterima

2 Input nilai batas

atas dan batas

bawah pada

setiap kelompok

ada yang kosong

Menampilkan

pesan error

bahwa nilai

range harga

tidak boleh

kosong

Pesan

kesalahan

berhasil

ditampilkan

Diterima

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

69

2. Pengujian Input Data

Berikut ini merupakan data pengujian untuk Input Data pada kelas

HalamanUtama.

Tabel 20 Tabel 6.3. Tabel Pengujian input Data

Kasus dan Hasil Uji (Data Benar)

No Aktifitas yang

dilakukan

Keluaran yang

diharapkan

Hasil yang

diharapkan

Kesimpulan

1 Memasukan data

dari file yang

berekstensi .csv

Data berhasil di

seleksi dan

ditampilkan

dalam tabel

Data

ditampilkan

dalam tabel

Diterima

Kasus dan Hasil Uji (Data Salah)

1 Memasukan data

dari file yang

berekstensi selain

.csv

Menampilkan

pesan error

bahwa file yang

dimaksukan

tidak sesuai

dengan format

Pesan

kesalahan

berhasil

ditampilkan

Diterima

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

70

3. Pengujian Simpan Hasil Pengelompokan

Berikut ini merupakan data pengujian untuk Simpan Hasil Pengelompokan

pada kelas HalamanUtama.

Tabel 21 Tabel 6.4. Tabel Pengujian Clustering

Kasus dan Hasil Uji (Data Benar)

No Aktifitas yang

dilakukan

Keluaran yang

diharapkan

Hasil yang

diharapkan

Kesimpulan

1 Menekan button

simpan dan

melakukan

penyimpanan

file dengan

ekstensi .doc

directory yang

telah di pilih

oleh

user berhasil

tersimpan file

dengan ekstensi

.doc

File berhasil

tersimpan

dengan ekstensi

.doc

Diterima

Menekan button

simpan dan

melakukan

penyimpanan

file dengan

ekstensi .xls

directory yang

telah di pilih

oleh

user berhasil

tersimpan file

dengan ekstensi

.xls

File berhasil

tersimpan

dengan ekstensi

.xls

Diterima

Kasus dan Hasil Uji (Data Salah)

1

- - - -

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

71

6.1.2. Kesimpulan Hasil Pengujian Black-box

Berdasarkan hasil pengujian yang telah dikakukan dapat disimpulkan

bahwa sistem ini dapat menangani error ketika fungsi yang dijalankan salah atau

tidak seseuai dengan aturan pemakaiannya, sedangakan secara fungsional sistem

ini dapat berjalan dengan baik dan menghasilkan keluaran yang sesuai dengan

yang diharapkan

6.2.Kelebihan dan Kekurangan Sistem

6.2.1. Kelebihan Sistem

Kelebihan dari sistem prediksi penjualan helm menggunakan algoritma

hierarchical divisive ini adalah:

1. Sistem dapat menyeleksi atribut secara otomatis.

2. Sistem menampilkan hasil clustering yang mudah dipahami oleh user.

3. Sistem mampu menampilkan waktu lama pembentukan cluster.

4. Sistem ini dapat mentimpan hasil sesuai pada tabel informasi cluster denga

hasil penyimpanan berupa file bertipe .xls, .doc, .txt.

6.2.2. Kekurangan Sistem

Kekurangan dari sistem prediksi penjualan helm menggunakan algoritma

hierarchical divisive ini adalah:

1. Sistem tidak dapat menambahkan jumlah kategori kelompok harga.

2. Sistem hanya dapat menerima masukan file bertipe .csv.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

72

3. Sistem tidak dapat menerima masukan dari tabel di database MySql

ataupun Oracle.

4. File csv harus merupakan hasil ekspor dari database MySQl tabel

detailpenjualancanvaser diharuskan baris pertama adalah nama kolom dan

baris seterusnya adalah datanya, dengan ketentuan ekspor Escaped by „\‟,

Lines Terminated by „\r\n‟ dan Fields terminated by ‟,‟.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

73

BAB VII

PENUTUP

BAB VII PENUTUP

7.1. Kesimpulan

Hasil penelitian sistem prediksi penjualan helm menggunakan algoritma

hierarchical divisive ini menghaslikan kesimpulan sebagai berikut:

1. Sistem ini digunakan untuk melakukan pengelompokan produk dengan

menggunakan metode divisive clustering yang digunakan untuk

memrediksi pendistribusian produk helm.

2. Algoritma divisive yang yang diterapkan dapat mengelompokan data untuk

memprediksi penjualan helm dengan menunjukkan nilai sum of square

error terendah dalam percobaan pengelompokannya. Pembentukan

kelompok menghasilkan 8 buah cluster.

3. Nilai dari SSE bergantung pada jumlah data dan jumlah cluster yang

dihasilkan, semakin maksimal jumlah cluster yang dihasilkan maka nilai

SSE semakin kecil.

4. Semakin banyak jumlah cluster yang dihasilkan dari proses divisive

clustering akan memberikan lebih banyak pula pisihan untuk menentukan

strategi pasar untuk kedepannya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

74

7.2. Saran

Berdasarkan hasil pengujian dan analisa pada tugas akhir ini, penulis

memberikan saran untuk pengembangan penilitian secara lebih lanjut, antara lain:

1. Sistem ini diharapkan dapat dikembangkan agar mampu menerima inputan

file selain tipe csv atau dapat langsung mengambil sumber data dari

database yang terkait.

2. Hasil clustering dapat divisualkan jauh lebih baik dan lengkap sehingga

lebih interaktif dan lebih mudah dipahami(misal dendogram atau report

karakter cluster).

3. Algoritma yang dibuat pada sistem ini terbatas dalam pengolahan cluster

dalam jumlah data yang besar. Kedepannya diharapkan pengembangan

algoritma divisive dapat di buat lebih akurat, cepat, detail, dan efektif dalam

mengolah data yang besar.

4. Penyimpanan hasil clustering dapat dibuat dengan yang lebih relevan

sesuai dengan kebutuhan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

75

DAFTAR PUSTAKA

Al Fatta, Hanif. 2007. Analisa dan Perancangan Sistem Informasi.

Yogyakarta, Andi.

Budi Santosa. Data Mining : Teknik Pemanfaatan Data Untuk Keperluan Bisnis.

Graha Ilmu, Yogyakarta, 2007.

Han & Kamber. 2006. Data Mining Concepts and Techniques Edisi ke-2.

San Fransisco : Morgan Kaufmann publisher.

Larose , Daniel T, 2005, Discovering Knowledge in Data: An Introduction to Data

Mining, John Willey & Sons. Inc.

Lior Rokach, “Data Mining And Knowledge Discovery Handbook, Chapter 15:

Clustering Methods”. Available at:

http://www.ise.bgu.ac.il/faculty/liorr/hbchap15.pdf [Diakses tanggal 25

Januari 2015]

Munir, Rinaldi. 2004. Matematika Diskrit.

Pramudiono, I., 2006, Apa itu data mining?,

http://datamining.japati.net/cgibin/indodm.cgi?bacaarsip&1155527614&artik

el, tanggal terakhir akses 16 Januari 2007.

Prasetyo, E. (2014). Data Mining: Pengolahan Data Menjadi Informasi

Menggunakan Matlab.Yogyakarta: Andi

Veronika S. Moertini. Data mining sebagai solusi bisnis. In INTEGRAL, volume

7, April 2002.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

76

LAMPIRAN 1

DIAGRAM USE CASE

Input kelompo Harga

Input data

Proses ClusteringUser

Simpan hasilClustering

Definisi Aktor

No Aktor Deskripsi

1

User

Aktor ini dapat range kelompok harga jual, melakukan proses input data,

melakukan proses klaster dan simpan hasil pengelompokan.

Definisi Use Case

Nomor Use Case Nama Use Case Deskripsi

001 Input kelompok

harga

Use case ini menentukan range kelompok harga

untuk mengeset kelompok harga data penjualan

nantinya.

002 Input data Use case mengingputkan data penjualan yang sudah

di ekspor dari database yang berformat csv.

003 Proses clustering Use case menggambarkan proses dimana user

melakukan proses cluster terhadap data penjualan

yang ada.

004 Simpan hasil

cluster

Use case ini menggambarkan user melakukan

simpan hasil pola cluster yang telah dilakukan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

77

LAMPIRAN 2

NARASI USE CASE

Nama Use Case Input kelompok harga

Nomor Use Case 001

Actor User

Deskripsi Use Case Use case ini menggambarkan penentuan kelompok range harga.

Kondisi Awal Tampil halaman home

Kondisi Akhir Sistem menyimpan data kelompok range harga.

Langkah Umum Actor Sistem

Langkah 1: sistem

menampilkan halaman utama.

Langkah 2: User menginputkan

range batas kelompok harga.

Langkah 3: User menginputkan

batas bawah kelompok satu dan

batas atas harga kelompok 1.

Langkah 4: User menginputkan

batas bawah kelompok satu dan

batas atas harga kelompok 2.

Langkah 5: User menginputkan

batas bawah kelompok satu dan

batas atas harga kelompok 3.

Langkah 6: User menginputkan

batas bawah kelompok satu dan

batas atas harga kelompok 4.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

78

Langkah 7: User menginputkan

batas bawah kelompok satu dan

batas atas harga kelompok 5.

Langkah 8: User mengklik

tombol “Simpan”.

Langkah 9: sistem akan

menyimpan range harga

kelompok ke table

kategori_nilai.

Langkah 10: sistem akan

pindah ke tab preprosesing.

Langkah Alternatif Alt-Lagkah 2: jika user tidak benar menginputkan jumlah harga

sistem akan menempilkan peringatan jika user salah memasukan

harga.

Alt-Lagkah 3- Alt-Lagkah 7: jika user menginputkan jumlah

harga lebih kecil dari batas harga kelompok sebelumnya sistem

akan menampikan peringatan jika range harga sistem akan

menempilkan peringatan jika batas harga tidak sesuai.

Kesimpulan Use case ini akan berhenti apabila user telah menginputkan batas

harga yang sesuai. Use case ini tidak akan menyimpan batas nilai

kelompok harga jika batas nilai kelompok selanjutnya lebih kecil

dari batas nilai kelompok sebelum-sebelumnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

79

Nama Use Case Input data

Nomor Use Case 002

Actor User

Deskripsi Use Case Use case ini melakukan proses input data berupa file csv hasil

eksport dari table detail penjualan.

Kondisi Awal Nilai-nilai batas kelompok harga berhasil di simpan dan Tampil

halaman home tab preprosesing.

Kondisi Akhir Sistem melakukan proses sleksi atribut, pelabelan kelompok harga

dan pegelompokan data berdasarkan nama barang.

Langkah Umum Actor Sistem

Langkah 1: Manager mengklik

“Pilih File”.

Langkah 2: Sistem

menampilkan file chooser

untuk memasukan file.

Langkah 3: User sistem

melakukan pencarian file yang

akan digunakan.

Langkah 4: Sistem

menampilkan data yang

dimasukan kedalam tabel data

Langkah 5: User mengklik

tombol “Submit”.

Langkah 6: Sistem mensleksi

atribut yang diperlukan

terhadap penelitian, lalu sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

80

memberi label pada kelompok

harga sesuai dengan batas nilai

kelompok yang sudah

ditentukan, lalu sistem

menampilkan data pada table

sleksi sesuai dengan isi file

yang telah dipilih.

Langkah 7: User mengklik

tombol “Preprocessing”.

Langkah 6: Sistem akan

melakukan proses

pengelompokan nama barang

yang sama dan menjumlahkan

quantity-nya

Berdasarkan tiap

kelompoknya.

Langkah 7: Sistem akan

menampilkah hasil data

preprosesing.

Langkah 8: User mengklik

tombol “Cluster”

Langkah 9: sistem akan

melakukan proses clustering

Langkah Alternatif Alt-Lagkah 3: jika user menginputkan file selain file yang

bertipe .CSV sistem akan error dan memberi peringatanberupa file

inputan harus bertipe csv.

Alt-Lagkah 5: jika user mengklik tombol “BATAL” sistem akan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

81

membatalkan proses input data.

Kesimpulan Use Case ini memulai proses input data, memberi label kelompok

untuk digunakan pada proses preprosesing data.

Nama Use Case Proses Clustering

Nomor Use Case 003

Actor User

Deskripsi Use Case Use case ini melakukan proses preprocessing

Kondisi Awal Data hasil preprocessing siap digunakan untu proses clustering

Kondisi Akhir Hasil dari data penjualan yang diproses oleh sistem berhasil

membentuk cluster

Langkah Umum Actor Sistem

Langkah 1: Sistem akan melakukan

proses pengclusteran, sistem

menampilkan hasil cluster pada table

cluster, serta menampilkan label dan

jumlah cluster pada masing-masing

tabelnya.

Langkah Alternatif -

Kesimpulan Use Case ini adalah proses dari data mining menggunakan

algoritma hierarki divisive.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

82

LAMPIRAN 3

DIAGRAM AKTIVITAS

1. Diagram aktivitas input range harga

user menginputkan nilai batas atah dan batas bawah harga tiap kelompok

Sistem menyimpan nilai kelompok

harga di database

Mengecek nilai inputan masing-masing kelompok

Y

T

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

83

2. Diagram aktivitas input data file

Menklik timbol "Pilih file"

menyeleksi atribut lalu menampilkan data pada tabel

data sesuai dengan isi file

menampilkan file chooseruntuk memasukkan file

mencari file yang digunakan

mengklik tombol "Submit"

melakukan treanformasi data lalu menampilkan hasil

preprosesing pada tabel di tab Clustering

mengklik tombol "proses"

melakukan proses clustering

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

84

3. Diagram Aktivitas clustering

melakukan proses cluster

menampilkan hasli cluster pada tabel

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

85

4. Diagram Aktivitas Simpan Hasil Deteksi Outlier

mengklik tombol "SIMPAN"

menampilkan dialog pemilihan direktori

penyimpanan

menyimpan hasil cluster kedalam file dalam direktori yang terpilih

mengisikan nama file

menentukan lokasi penyimpanan

memilih ekstensi penyimpanan file

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

86

LAMPIRAN 4

Diagram Sequence Input nilai Range harga

User<<view>>

HalamanUtama

1. Menampilkan HalamanUtama Tab Range Harga

2. HalamanUtama.lihatRangeHarga()

4. cekInputRangeHarga()

<<Controller>>controlRangeHar

ga

5. cekIsiData()

<<Entity>>RangeHarga

6. prosesInsertRange(RangeHarga range)

7. prosesUpdateRange(RangeHarga range)

3. mengisi semua nilai-nilai batas kelompok

Diagram Sequence Input Data File

User<<view>

HalamanUtama

1. Menekan tombol "Pilih File"

2. Menampilkan kotak dialog File chooser

3. Memilih file bertipe .csv

4. pilihFileButtonActionPerformed(java.awt.event.ActionEvent evt)

5. Menapilkan data inputan di tabel data

6. Menekan tombol "Submite"

7.InputPreprosesData(tabelInputData);

8. Menapilkan data Seleksi di tabel seleksi

9. Menekan tombol "Preprocessing"

10.SubmitPreprosesing();

11. Menapilkan data preprocessing di tabel preprocessing

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

87

Diagram Sequence Proses Cluster

User <<view>>HalamanUtama

1. Menekan tombol "Cluster"

<<Control>>ControlRangeHarga

2. crlharga.deletePreproses();

3. graph.inputData(dataKelompokHargaTable);

<<Entity>>Graph

4. graph.LostClustering();

5. LostClustering2(int iterasi)

6. SimpanCluster(ArrayList<String> list, int Iter,

Double Data, double sse)

8. LostClustering3(int iterasi)

9. SimpanCluster(ArrayList<String> list, int Iter,

Double Data, double sse)

10. SimpanSubCluster(ArrayList<String> list, int

Iter, Double Data, double sse)

11. TampilLabel();

12. TampilJML();

13. TampilSSE();

14. pop_tree();

7. SimpanSubCluster(ArrayList<String> list, int

Iter, Double Data, double sse)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

88

Diagram Sequence Simpan Hasil Cluster

User<<view>>

HalamanUtama

1. Menekan tombol "Simpan"

2. Menampilkan kotak dialog penyimpanan

3. Memilih direktori penyimpanan

4. Mengisi nama file hasil penyimpanan

5. Memilih tipe file hasil penyimpanan

7. Menampilkan pesan berhasil di simpan

jButtonSimpanActionPerformed(java.awt.event.ActionEvent evt)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

89

LAMPIRAN 5

DIAGRAM KELAS DESAIN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

90

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

91

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

92

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

93

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

94

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

95

LAMPIRAN 6

1. Rincian algoritma pada setiap method pada kelas KoneksiDB

Nama Method Fungsi Algoritma

KoneksiDB() Method ini digunakan

untuk

mengkoneksikan

sistem ke

database MySql

1. Mengambil parameter url, userid, dan

password untuk membuat koneksi.

2. Jika benar, sistem akan mengembalikan nikai

koneksi dan berhasil terkoneksi dengan database

MySql .

bukaKoneksi() Method ini digunakan

untuk membuka

koneksi baru.

1. Mengambil parameter url, userid, dan

password untuk membuat koneksi.

2. Jika benar, sistem akan mengembalikan nikai

koneksi dan berhasil terkoneksi dengan database

MySql.

lihatData(String sql) Method ini digunakan

untuk mengeksekusi

sebuah query

1. Mengambil parameter inputan yang berupa

query.

2. Jika benar, Sistem akan menampilkan query

tersebut.

2. Rincian algoritma pada setiap method pada kelas graph

Nama Method Fungsi Algoritma

addVerteks(String,

List)

Method ini digunakan

untuk membuat

sebuah vertex untuk

membentuk graph

1. Membaca inputan parameter label dan nilai.

2. Mendeklarasikan sebuah vertex baru dengan

memasukan nilai label dan nilai kedalam vertex.

addEdge(int, int,

Double)

Method ini digunakan

untuk mengisi setiap

nilai edge pada vertex

1. Membaca inputan nilai parameter x, y, dan nilai.

2. memasukan nilai-nilai dari parameter tersebut

kedalam variabel adjMatt untuk mengisi nilai

edge.

cariJarakEcludian(int,

int)

Method ini digunakan

untuk mencari nilai

kemiripan obyek

1. Membaca parameter indexAwal dan

indexTujuan.

2. Membuat obyek a dan obyek b untuk

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

96

menggunakan

perhitungan euclidean

distance

menampung nilai dari indexAwal dan

1.Membaca parameter indexAwal dan

indexTujuan.

3. Mengeset nilai sum = 0.0.

4. Selama nilai i kurang dari jumlah data a, maka

akan di lakukan perhitungan sum = sum +

Math.pow((x.get(i) - y.get(i)), 2.0).

5. Mengembalikan nilai sum.

6. Membulatkan hasil sum menjadi 2 angka di

belakang koma.

tampilJarakEuclidean

()

Method ini digunakan

untuk menampilkan

graph hasil

perhitungan euclidean

distance

1. Selama nilai i kurang dari panjang vertexList,

maka akan ditampilkan

label dari vertex tersebut.

2. Selama nilai i kurang dari panjang adjMat, maka

akan di tampilkan perhitungan jarak

Euclidian Distance.

inputData(JTable ) Method ini digunakan

untuk menginputkan

data dari Jtabel ke

dalam matriks dan

kedalam graph

1. Membaca inputan parameter tabel.

2. Selama i kurang dari

jumlah baris pada tabel, maka di buat obyek

listNilai bertipe ArrayList.

3. Mulai dari j samadengan 1, selama j kurang dari

jumlah kolom pada tabel. Set label nilai label

pada indeks ke-0 pada tabel.

4. Memanggil method addVertex untuk membuat

verteks.

5. Selama i kurang dari jumlah baris pada tabel dan

selama j= i+1 kurang dari jumlah baris pada

kolom, dan selam i tidak sama dengan j maka

akan memanggil method

addEdge untuk mengisi nilai edge dengan jarak

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

97

EcluidianDistance pada method

cariJarakEcludian.

LostClustering () Method ini berisi

algoritma divisive

yang digunakan untuk

tahapan pertama

proses

pengelompokan data.

1. Membersihkan obyek mapClsuter.

2. Memanggil method SpDelete().

3. Membuat obyek iterasi bertipe int mengset nilai

iterasi menjadi 1.

4. Memanggil method getadjMat.

5. Memanggil method getVerteksList.

6. Memanggil method Averagematrix.

7. Memanggil method CariObjekTerbesar.

8. Untuk i sama dengan 0 selama i kurang dari

panjang data LabelCluster.

9. Jika i tidak sama dengan splinter maka ambil

nilai LabelCluster masukkan ke MatrixList.

10. Jika i sama dengan splinter maka ambil nilai

LabelCluster masukkan ke SplinterList.

11. Memanggil method UpdateMatriks.

12. Memanggil method getDataMatriks.

13. Memanggil method getLabelMatriks.

14. Memanggil method getDataSplinter.

15. Memanggil method Averagematrix.

16. Memanggil method AverageSplinter.

17. Memanggil method HitungSelisih.

18. Memanggil method AmbilIndexSelisih tampung

nilai kembali ke obyek indexSplinter.

19. Membuta obyek posCount bertipe int. mengeset

nilai posCount menjadi 0.

20. Untuk semua nilai j diisikan dengan obyek

HasilSelisih.

21. Jika j lebih besar dari 0 maka, jumlahkan nilai

posCount.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

98

22. Jika posCount sama dengan 0 maka lakukan

langkah berikut:

a.

23. Jika tidak maka lakukan langkah 1 s.d 9:

1. Bersihkan MatrixList.

2. Untuk I sama dengan 0 selama I kurang dari

panjang LabelClusterUpdate.

3. Jika indexSplinter tidak mengandung

elemen i.

4. Ambil nilai dari LabelClusterUpdate

kemudian diisikan ke obyek MatrixList.

5. Jika indexSplinter mengandung elemen i.

6. Ambil nilai dari LabelClusterUpdate

kemudian diisikan ke obyek SplinterList.

7. Memanggil method UpdateMatriks.

8. Memanggil method UpdateMatriksAkhir.

9. Memanggil method LostClustering2.

LostClustering2 () Method ini berisi

algoritma divisive

yang digunakan untuk

tahapan kedua proses

pengelompokan data

jika kemolpok splinter

masih memiliki nilai

positif.

1. Membaca inputan parameter iterasi.

2. Memanggil method getadjMat

3. Memanggil method getDataMatriks

4. Memanggil method getDataSplinter

5. Memanggil method getVerteksList

6. Memanggil method getLabelMatriks

7. Memanggil method Averagematrix

8. Memanggil method AverageSplinter

9. Memanggil method HitungSelisih

10. Memanggil method AmbilIndexSelisih tampung

nilai kembali ke obyek indexSplinter

11. Membuat obyek posCount bertipe int. mengeset

nilai posCount menjadi 0

12. Untuk semua nilai j diisikan dengan obyek

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

99

HasilSelisih

13. Jika j lebih besar dari 0 maka, jumlahkan nilai

posCount

14. Jika posCount sama dengan 0 maka lakukan

langkah 1 s.d 17:

15. Memanggil method MaxCluster

16. Memanggil method akurasi

17. Membuat obyek ArrayList tempC bertipe string

18. Isi element tempC dengan obyek arraylist

SplinterListAkhir

19. Memanggil method SimpanCluster

20. Isi Isi element mapClsuter dengan obyek

arraylist tempC

21. Jumlahkan nilai iter

22. Membersihkan elemen MatrixList

23. Membersihkan element SplinterList

24. Untuk I sama dengan 0 selama I kurang dari

panjang LabelClusterUpdate

25. Jika indexSplinter tidak mengandung elemen i

26. Ambil nilai dari LabelClusterUpdate kemudian

diisikan ke obyek MatrixList

27. Jika indexSplinter mengandung elemen i

28. Ambil nilai dari LabelClusterUpdate kemudian

diisikan ke obyek SplinterList

29. Memanggil method UpdateMatriks

30. Memanggil method UpdateMatriksAkhir

31. Memanggil method LostClustering3

32. Jika tidak maka lakukan langkah 1 s.d 9 :

33. Membersihkan elemen MatrixList

34. Untuk I sama dengan 0 selama I kurang dari

panjang LabelClusterUpdate

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

100

35. Jika indexSplinter tidak mengandung elemen i

36. Ambil nilai dari LabelClusterUpdate kemudian

diisikan ke obyek MatrixList

37. Jika indexSplinter mengandung elemen i

38. Ambil nilai dari LabelClusterUpdate kemudian

diisikan ke obyek SplinterList

39. Memanggil method UpdateMatriks

40. Memanggil method UpdateMatriksAkhir

41. Memanggil method LostClustering2

LostClustering3() Method ini berisi

algoritma divisive

yang digunakan untuk

tahapan kedua proses

pengelompokan data

jika kemolpok splinter

masih memiliki nilai

negatif.

1. Membaca inputan parameter iterasi.

2. Memanggil method getadjMat

3. Memanggil method getDataSplinter

4. Memanggil method getDataMatriks

5. Memanggil method getVerteksList

6. Memanggil method getLabelMatriks

7. Memanggil method Averagematrix

8. Memanggil method AverageSplinter

9. Memanggil method HitungSelisih

10. Memanggil method AmbilIndexSelisih tampung

nilai kembali ke obyek indexSplinter

11. Membuat obyek posCount bertipe int. mengeset

nilai posCount menjadi 0

12. Untuk semua nilai j diisikan dengan obyek

HasilSelisih

13. Jika j lebih besar dari 0 maka, jumlahkan nilai

posCount

14. Jika posCount sama dengan 0 maka lakukan

langkah 1 s.d 15:

15. Memanggil method UpdateMatriks

16. Memanggil method UpdateMatriks

17. Memanggil method MaxCluster

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

101

18. Memanggil method akurasi

19. Memanggil method MaxCluster

20. Memanggil method akurasi

21. Membuat obyek ArrayList TempSplinterBaru

bertipe string

22. Membuat obyek ArrayList TempSplinter bertipe

string

23. Isi element TempSplinterBaru dengan obyek

arraylist MatrixLisAkhir

24. Isi element TempSplinter dengan obyek arraylist

SplinterListAkhir

25. Isi Isi element mapClsuter dengan obyek

arraylist TempSplinter

26. Memanggil method SimpanCluster

27. Jumlahkan nilai iter

28. Isi Isi element mapClsuter dengan obyek

arraylist TempSplinterBaru

29. Memanggil method SimpanCluster

30. Jika tidak maka lakukan langkah 1 s.d 9 :

31. Membersihkan elemen MatrixList

32. Untuk I sama dengan 0 selama I kurang dari

panjang LabelClusterUpdate

33. Jika indexSplinter tidak mengandung elemen i

34. Ambil nilai dari LabelClusterUpdate kemudian

diisikan ke obyek MatrixList

35. Jika indexSplinter mengandung elemen i

36. Ambil nilai dari LabelClusterUpdate kemudian

diisikan ke obyek SplinterList

37. Memanggil method UpdateMatriks

38. Memanggil method UpdateMatriksAkhir

39. Memanggil method LostClustering2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

102

UpdateMatriks(Array

List, ArrayList,

double[][],

Verteks[])

Method ini digunakan

untuk mengupdate isi

array DataMatriks dan

adSplinter yang

nantinya digunakan

untuk proses

clustering slanjutnya

1. Membaca inputan parameter MatrixUtama,

MatrixSplit, data dan list.

2. Membuat obyek m bertipe int. mengeset nilai m

menjadi 0.

3. Membuat obyek m1 bertipe int. mengeset nilai

m1 menjadi 0.

4. Membuat obyek countMatrix bertipe ArrayList.

5. Membuat obyek countSplit bertipe ArrayList.

6. Membuat obyek LabelSpliter bertipe Verteks.

7. Membuat obyek LabelCluster bertipe Verteks.

8. Membuat obyek dataMatriks bertipe array.

9. Membuat obyek dataSplit array.

10. Untuk i sama dengan 0, selama i kurang dari

ukuran MatrixUtama.

11. Membuat obyek count bertipe int, memanggil

method Search.

12. Isi element countMatrix dengan count.

13. Untuk i sama dengan 0, selama i kurang dari

ukuran MatrixSplit.

14. Membuat obyek count bertipe int, memanggil

method Search.

15. Isi element countSplit dengan count.

16. Set nilai m sama dengan 0.

17. Set nilai m1 sama dengan 0.

18. Selama j kurang dari panjang data list.

19. Jika elemen countMatrix mengandung j.

20. Set LabelCluster dengan elemen list pada index

j.

21. Jumlahkan nilai m.

22. Jika elemen countSplit mengandung j.

23. Set LabelSpliter dengan elemen list pada index j.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

103

24. Jumlahkan nilai m1.

25. Set nilai m sama dengan 0.

26. Set nilai m1 sama dengan 0.

27. Selama e kurang dari panjang data data.

28. Jika elemen countMatrix mengandung e

29. Membuat obyek n bertipe int. mengeset nilai n

menjadi 0.

30. Membuat obyek k bertipe int. mengeset nilai k

menjadi 0.

31. Selama j kurang dari panjang data data

32. Jika elemen countMatrix mengandung j

33. Set datamatriks dengan elemen data1 pada index

e dan j.

34. Jumlahkan nilai n.

35. Jika elemen countSplit mengandung j

36. Set dataSplit dengan elemen data1 pada index e

dan j

37. Jumlahkan nilai k

38. Jumlahkan nilai m

39. Jumlahkan nilai m1

40. Memanggil method setDataMatriks

41. Memanggil method setLabelMatriks

42. Memanggil method SetDataSplinter

43. Memanggil method setLabelSplinter

UpdateMatriksAkhir(

ArrayList, ArrayList,

double[][],

Verteks[])

Method ini digunakan

untuk mengupdate isi

array

DataMatriksAkhir dan

DataSplinterAkhir

yang nantinya

digunakan untuk

1. Membaca inputan parameter MatrixUtama,

MatrixSplit, data dan list.

2. Membuat obyek m bertipe int. mengeset nilai m

menjadi 0

3. Membuat obyek m1 bertipe int. mengeset nilai

m1 menjadi 0

4. Membuat obyek countMatrix bertipe ArrayList

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

104

menghitung akurasi 5. Membuat obyek countSplit bertipe ArrayList

6. Membuat obyek LabelMatriks1 bertipe Verteks

7. Membuat obyek LabelSplinter1 bertipe Verteks

8. Membuat obyek DataMatriks1 bertipe array

9. Membuat obyek DataSplinter1 bertipe array

10. Untuk i sama dengan 0, selama i kurang dari

ukuran MatrixUtama

11. Membuat obyek count bertipe int, memanggil

method Search

12. Isi element countMatrix dengan count

13. Untuk i sama dengan 0, selama i kurang dari

ukuran MatrixSplit

14. Membuat obyek count bertipe int, memanggil

method Search

15. Isi element countSplit dengan count

16. Set nilai m sama dengan 0

17. Set nilai m1 sama dengan 0

18. Selama j kurang dari panjang data list

19. Jika elemen countMatrix mengandung j

20. Set LabelMatriks1 dengan elemen list pada

index j

21. Jumlahkan nilai m

22. Jika elemen countSplit mengandung j

23. Set LabelSplinter1 dengan elemen list pada

index j

24. Jumlahkan nilai m1

25. Set nilai m sama dengan 0

26. Selama e kurang dari panjang data data

27. Jika elemen countMatrix mengandung e

28. Membuat obyek n bertipe int. mengeset nilai n

menjadi 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

105

29. Selama j kurang dari panjang data data

30. Jika elemen countMatrix mengandung j

31. Set DataMatriks1 dengan elemen data1 pada

index e dan j

32. Jumlahkan nilai n

33. Jumlahkan nilai m

34. Set nilai m1 sama dengan 0

35. Selama e kurang dari panjang data data

36. Jika elemen countSplit mengandung e

37. Membuat obyek n bertipe int. mengeset nilai n

menjadi 0

38. Selama j kurang dari panjang data data

39. Jika elemen countSplit mengandung j

40. Set DataSplinter1 dengan elemen data1 pada

index e dan j

41. Jumlahkan nilai n

42. Jumlahkan nilai m

43. Memanggil method setDataMatriks

44. Memanggil method setLabelMatriks

45. Memanggil method SetDataSplinter

46. Memanggil method setLabelSplinter

47. Membarsihkan isi elemen MatrixLisAkhir

48. Membarsihkan isi elemen SplinterListAkhir

49. Selama i kurang dari panjang list

50. Jika countMatrix mengandung i

51. Isi ambil nilai list isikan ke elemen

MatrixLisAkhir

52. Jika countSplit mengandung i

53. Isi ambil nilai list isikan ke elemen

SplinterListAkhir

AmbilIndexSelisih(do Method ini digunakan 1. Membaca inputan parameter Data dan list.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

106

uble[], Verteks[]) untuk mengambil nilai

minimum dari hasil

perhitungan selisih

kelompok matrik

dengan kelompok

splinter

2. Membaut obyek tempIndex bertipe ArrayList

3. Membuat obyek minValueCounter bertipe int,

set nilai sama dengan 0

4. Membuat obyek index bertipe int, set nilai sama

dengan 0

5. Membaut obyek rerataAll bertipe array

6. Membuat obyek nilaiMin bertipe int, set nilai

sama dengan 0

7. Selama i kurang dari panjang Data

8. Ini elemen retaraAll pada indeks i dengan Data

pada indeks i

9. Membuat obyek bd bertipe BigDecimal

10. Isi nilai bd dengan elemen rerataAll

11. Memenggil method setScale

12. Isi elemen rerataAll dengan nilai bd

13. Isi nilaiMin dengan elemen rerataAll

14. Selama I kurang dari panjang rerataAll

15. Jika elemen rarataAll lebih besar dari nilaiMin

maka

16. nilaiMin sama dengan elemen rarataAll

17. set nilai minValueCounter sama dengan 1

18. set nilai index sama dengan 1

19. membersihkan elemen tempIndex

20. Isi elemen tempIndex dengan nilai index

21. Jika Jika elemen rarataAll lebih besar dari

nilaiMin maka

22. Jumlahkan nilai minValueCounter

23. Isi elemen tempIndex dengan nilai i

24. Mengembalikan nilai tempIndex

Search(String) Method ini digunakan

untuk untuk mencari

1. Membaca inputan parameter label.

2. Selama i kurang dari panjang verteksList

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

107

label sampel 3. Jika label sama dengan elemen verteksList

4. Mengembalikan nilai i

5. Jika tidak mengembalikan nilai -1

CariObjekTerbesar

(double[], Verteks[])

Method ini digunakan

untuk menghirung

nilai rata-rata splinter

grup.

1. Membaca inputan parameter data dan label.

2. Membuat obyek nilaiMax bertipe int.

3. Membuat obyek sum bertipe double

4. Membuat obyek idMax bertipe int.

5. Untuk i =0, selama i kurang dari panjang data

array

6. Tampung setiap nilai array data ke variabel sum.

7. Jika nilai sum lebih besar dari nilai nilaiMax.

8. nilaiMax=sum

9. set nilai baru idMax dengan nilai indeks i yang

memiliki nilai rata-rata terbesar.

10. Set splinter dengan niali idxMax

11. Mengembalikan nilai splinter

Averagematrix

(double[][],

Verteks[], ArrayList)

Method ini digunakan

untuk mencari nilai ra-

rata dari semua

sample pada matriks.

1. Membaca inputan parameter data, list dan

listSize.

2. Membuat obyek rerata beripe array

3. Selama i dan j kurang dari panjang data,

jumlahkan semua nilai pada masing-masing

sampel data lalu tampung di variabel rerata.

4. Nilai rerata pada setiap index i dibagi jumlah

sample list

5. Memanggil method RoundTo2DecimalsArray

6. Mengmbalikan nilai rerata

AverageSplinter

(double[][],

Verteks[], ArrayList)

Method ini digunakan

untuk memisah matrik

yang memiliki nilai

rata-rata terbesar.

1. Membaca inputan parameter data, list dan

listSize.

2. Membuat obyek rerata beripe array

3. Selama i dan j kurang dari panjang data dan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 125: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

108

listSize, jumlahkan semua nilai pada masing-

masing sampel data lalu tampung di variabel

rerata.

4. Nilai rerata pada setiap index i dibagi jumlah

sample listSize.

5. Memanggil method RoundTo2DecimalsArray.

6. Mengmbalikan nilai rerata.

HitungSelisih(double

[], double[],

Verteks[])

Method ini digunakan

untuk menghitung

selisih antara

kelompok matrik

dengan kelompok

splinter

1. Membaca inputan parameter obyekMatrix,

objekSplinter dan list.

2. Membuat obyek rerata beripe array

3. Membuat obyek ave beripe array.

4. Membuat obyek nilaiMax beripe double.

5. Membuat obyek idxMax beripe int.

6. Selama i kurang dari panjang data obyekMatrix

7. Hitung selisih elemen obyekMatrix dengan

objekSplinter pada masing-masing index,

tampung hasil selisih di obyek rerata

8. Pindahkan isi elemen rerata ke obyek ave

9. Set nilaiMx dengan elemen ave

10. Selama i kurang dari dari panjang data ave

11. Jika elemen ave lebih besar dari nilai indexMax

12. Set nilaiMax dengan elemen ave

13. Set idMax dengan i

14. Memanggil method RoundTo2DecimalsArray.

15. Mengmbalikan nilai HasilSelisih.

RoundTo2DecimalsA

rray(double[])

Method ini digunakan

untuk membulatkan

hasil nilai yang bertipe

array

1. Membaca inputan parameter val.

2. Selama i kurang dari panjang data val

3. Membuat obyek bd bertipe BigDecimal, set

elemen val di bd

4. Memanggil method setScale

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

109

5. Set elemen val dengan bd

6. Mengembalikan nilai val

RoundTo2DecimalsS

ingle(double)

Method ini digunakan

untuk membulatkan

hasil nilai bertipe

double

1. Membaca inputan parameter val.

2. Membuat obyek bd bertipe BigDecimal, set

elemen val di bd

3. Memanggil method setScale

4. Set elemen val dengan bd

5. Mengembalikan nilai val

MaxCluster_C(doubl

e[][])

Digunakan untuk

mengukur diameter

matriks cluster C.

1. Baca parameter masukan nilai rata-rata setiap

samepl dan label sampel

2. Membuat obyek nilaiMax bertipe int.

3. Membuat obyek sum bertipe double

4. Membuat obyek idMax bertipe int.

5. Untuk i =0, selama i kurang dari panjang data

array

6. Tampung setiap nilai array data ke variabel sum.

7. Jika nilai sum lebih besar dari nilai nilaiMax.

8. nilaiMax=sum

9. set nilai baru idMax dengan nilai indeks i yang

memiliki nilai rata-rata terbesar

10. Mengembalikan nilai idMax

BobotMatriks

(double[][],ArrayList

)

Method ini digunakan

untuk mencari nilai

bobot dari matrik itu

sendiri

1. Membaca inputan parameter data dan list.

2. Membuat obyek mean bertipe int.

3. Membuat obyek sum bertipe array

4. Untuk i =0 dan j=0, selama i dan j kurang dari

panjang data array

5. Set nilai sum=0

6. Jumlahkan setiap elemen data array, tampung di

obyek sum

7. Bagi elemen sum dengan panjang data array

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 127: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

110

tampung di obyek ave

8. Mengembalikan nilai ave

akurasi(double[][]) Method ini digunakan

untuk menghitung

sum of square.

1. Membaca inputan parameter data.

2. Membuat obyek mean bertipe int.

3. Membuat obyek sum bertipe array

4. Membuat obyek sse bertipe double

5. Membuat obyek sumerr2 bertipe array[]

6. Membuat obyek matriks bertipe array [][]

7. Untuk i =0 dan j=0, selama i dan j kurang dari

panjang data array

8. Set nilai sum=0

9. Jumlahkan setiap elemen data array, tampung di

obyek sum

10. Bagi elemen sum dengan panjang data array

tampung di obyek mean

11. Untuk i dan j =0, selama i dan j kurang dari

panjang data maka lakukan matriks [i][j] =

(data[i][j] - mean)

12. Untuk i dan j =0, selama i dan j kurang dari

panjang data maka lakukan matriks [i][j] =

Math.pow((matriks [i][j]), 2)

13. Untuk i dan j =0, selama i dan j kurang dari

panjang data maka lakukan sumerr2[i] +=

matriks[i][j]

14. Jumlahkan elemen sumerr2 tampung di sse

15. Membnulatkan nilai sse

16. Mengembalikan nilai sse

3. Rincian algoritma pada setiap method pada kelas controlRangeHarga

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 128: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

111

Nama Method Fungsi Algoritma

cekIsiData() Method ini digunakan

untuk mengecek isi

data pada tabel

kategori_nilai dalam

database

1. membuat obyek baru koneksi.

2. Membuat obyek jumlah bertipe int.

3. membuka koneksi

4. Membuat obyek baru range harga

5. Membuat obyek sql beripe string.

6. menyiapkan query

7. mengeksekusi query yang diberikan kemudian

ditamung dalam obyek ResultSet.

8. selama membaca hasil query, range memanggil

method setJumlah untuk mengeset jumlah isi

data

9. mengambil jumlah yang telah diset

10. jika nilai jumlah sama dengan 0 mengembalikan

status true.

11. jika tidak, mengembalikan status false.

prosesInsertRange(Ra

ngeHarga range)

Method ini digunakan

untuk menyimpan

nilai batas range harga

kelompok ke dalam

tabelKategoriNilai

dengan menggunakan

storage procedure

1. membaca input parameter range

2. membuat obyek koneksi bertipe koneksi.

3. Memanggil storage procedure spUpdateRangeH

4. Mengambil nilai batas harga bawah1 dari obyek

range

5. Mengambil nilai batas harga atas1 dari obyek

range

6. Mengambil nilai batas harga bawah2 dari obyek

range

7. Mengambil nilai batas harga atas2 dari obyek

range

8. Mengambil nilai batas harga bawah3 dari obyek

range

9. Mengambil nilai batas harga atas3 dari obyek

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 129: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

112

range

10. Mengambil nilai batas harga bawah4 dari obyek

range

11. Mengambil nilai batas harga atas4 dari obyek

range

12. Mengambil nilai batas harga bawah5 dari obyek

range

13. Mengambil nilai batas harga atas5 dari obyek

range

14. Meneksekusi query

prosesUpdateRange(

RangeHarga range)

Method ini digunakan

untuk mengupdate

nilai batas range harga

kelompok ke dalam

tabelKategoriNilai

dengan menggunakan

storage procedure

1. membaca input parameter range

2. membuat obyek koneksi bertipe koneksi.

3. Memanggil storage procedure

spSimpanRangeHarga

4. Mengambil nilai batas harga bawah1 dari obyek

range

5. Mengambil nilai batas harga atas1 dari obyek

range

6. Mengambil nilai batas harga bawah2 dari obyek

range

7. Mengambil nilai batas harga atas2 dari obyek

range

8. Mengambil nilai batas harga bawah3 dari obyek

range

9. Mengambil nilai batas harga atas3 dari obyek

range

10. Mengambil nilai batas harga bawah4 dari obyek

range

11. Mengambil nilai batas harga atas4 dari obyek

range

12. Mengambil nilai batas harga bawah5 dari obyek

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 130: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

113

range

13. Mengambil nilai batas harga atas5 dari obyek

rang

14. Meneksekusi query

tampilkanRangeNilai

(String kategori)

Method ini digunakan

untuk menampilkan

nilai batas atas dan

batas bawah pada

setiap kategori

keompok dari tabel

kategoriNilai.

1. Membuat obyek conn bertipe koneks

2. Membuat obyek rs bertipe ResultSet

3. Membuka koneksi

4. Membuat query “select batas_bwh, batas_atas

from kategori_nilai where kode_range like '" +

kategori + "'"

5. Mengeksekusi query

6. Mengembalikan hasil rs

deleteIsiData() Method ini digunakan

untuk menghapus isi

tabel kategori nilai

1. Membuat obyek conn bertipe koneks

2. Memanggil Storage procedure spdeleteKategori

3. Mengeksekusi query

tampilJumlahCluster(

)

Method ini digunakan

untuk menampilkan

jumlah cluster yang

dihasilkan dari proses

divisive

1. Membuat obyek conn bertipe koneks

2. Membuat obyek rs bertipe ResultSet

3. Membuka koneksi

4. Membuat query “SELECT

Count(datacluster.cluster) FROM datacluster"

5. Mengeksekusi query

6. Mengembalikan hasil rs

SimpanCluster(Array

List, int, Double,

double)

Method ini digunakan

untuk mentimpan

hasil cluster ke dalam

database

1. Baca parameter inputan list, Iter, Data, sse

2. Membuat obyek bertipe koneksi

3. Membuat obyek sql bertipe srting,

4. Membuat obyek callst bertipe CallableStatement,

set dengan nilai sql

5. Set parameter inputan dengan obyek iterasi

6. Mengeksekusi sql

7. Memanggil method SimpanSubCluster (list, Iter,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 131: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

114

Data, sse)

8. Memanggil method tutupKoneksi

SimpanSubCluster

(ArrayList, int,

Double, double)

Method ini digunakan

untuk menyimpan

semua anggota cluster

dalam tabel

sub_datacluster.

1. Membaca parameter inputan list, Iter, Data, sse

2. Membuat obyek koneksi beripe koneksi

3. Untuk i=0, selama I kurang dari panjang list

4. Membuat obyek sql beripe string

5. Membuat obyek callst bertipe CallableStatement

6. Set callst 1 dengan mengambil label pada obyek

list

7. Set callst 2 dengan nilai obyek Data

8. Set callst 3 dengan nilai obyek iter

9. Set callst 4 dengan nilai obyek sse

10. Mengeksekusi query

SpDelete() Method ini digunakan

untuk menghapus data

pada tabel dataCluster

dan sub_dataCluster.

1. Membuat obyek koneksi bertipe koneksi

2. Memanggil SP spdelete

3. Mengeksekusi query

4. Rincian algoritma pada setiap method pada kelas Halaman Utama

Nama Method Fungsi Algoritma

lihatRangeHarga() Method ini digunakan

untuk mengecek isi

nilai reange

kolompok-kelompok

harga tabel

kategoriNilai,

kemudian ditampilkan

kedalam sistem

1. memanggil method tampilkanRangeNilai untuk

mengambil nilai-nilai dari kategori kelompok 1

2. tampung hasil dalam rs

3. selama membaca isi rs, set bawah1filed dan

atas1filed dengan nilai rs.

4. memanggil method tampilkanRangeNilai untuk

mengambil nilai-nilai dari kategori kelompok 2

5. tampung hasil dalam rs

6. selama membaca isi rs, set bawah2filed dan

atas2filed dengan nilai rs.

7. memanggil method tampilkanRangeNilai untuk

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 132: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

115

mengambil nilai-nilai dari kategori kelompok 3.

8. tampung hasil dalam rs

9. selama membaca isi rs, set bawah3filed dan

atas3filed dengan nilai rs.

10. memanggil method tampilkanRangeNilai untuk

mengambil nilai-nilai dari kategori kelompok 4

11. tampung hasil dalam rs

12. selama membaca isi rs, set bawah4filed dan

atas4filed dengan nilai rs.

13. memanggil method tampilkanRangeNilai untuk

mengambil nilai-nilai dari kategori kelompok 5

14. tampung hasil dalam rs

15. Selama membaca isi rs, set bawah5filed dan

atas5filed dengan nilai rs.

prosesclustering() Method ini digunakan

untuk memulai proses

clustering

1. Cek apakah text field JumlahCluster kosong, jika

ya, cetak “Jumlah Cluster tidak boleh kosong”.

Jika tidak, lakukan langkah 2.

2. Cek apakah text field JumlahCluster berisi

numeric positif. Jika ya, lakukan langkah 3

3. Membuat Obyek decp bertipe int.

4. Membuat obyek jml bertipe int dan mengisinya

dengan nilai JumlahCluster field.

5. Membuat obyek bernama graph di kelas graph.

6. Memanggil method input data ke dalam tabel

dataKelompokHargaTable

7. Memanggil method SetCluster dengan imputan

jml.

8. memanggil method Clustering.

9. memanggil method tampilCluster

10. memanggil method tampilLabel

11. memanggil method tampilJml

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 133: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

116

12. memanggil method tampilSSE

13. memanggil method pop_tree.

tampilCluster() Method ini digunakan

untuk menampilkan

isi tabel sub_cluster

menggunakan SP

1. nama password dengan isi "1234"

2. Buat obyek tipe ArrayList bernama

columnNames

3. Buat obyek tipe ArrayList bernama data

4. Buat obyek bertipe String dengan nama sql isi

"SELECT anggota, bobot, cluster, sse FROM

sub_datacluster"

5. Buka koneksi

6. Mengeksekusi obyek query sql

7. Tampung hasil di obyek ResultSet

8. Buat obyek ResultSetMetaData bernama mb

dengan isi rs.getMetaData()

9. Set md.getColumnCount di obyek column

10. Tampung nama colom pada obyek

columnNames

11. Tampung isi baris dalam obyek data

12. Buat obyek tipe Vector dengan nama

columnNamesVector

13. Buat obyek tipe Vector dengan nama dataVector

14. Masukan isi baris columnNameske obyek

dataVector5

15. Masukan isi baris subVector ke obyek

columnNamesVector

16. Buat obyek DefaultTableModel bernama

tabelmodel1 berisi dataVector dan

columnNamesVector

17. Set model dataClusterdengan tabelmodel1

TampilLabel() Method ini digunakan 1. Buat obyek tipe ArrayList bernama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 134: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

117

untuk menampilkan

cluster dan anggola

dari cluster itu sendiri

dari tabel

sub_dataClusterr.

columnNames

2. Buat obyek tipe ArrayList bernama data

3. Buat obyek bertipe String dengan nama sql isi "

SELECT sub_datacluster.cluster,

sub_datacluster.anggota FROM sub_datacluster"

4. Buka koneksi

5. Mengeksekusi obyek query sql

6. Tampung hasil di obyek ResultSet

7. Buat obyek ResultSetMetaData bernama mb

dengan isi rs.getMetaData()

8. Set md.getColumnCount di obyek column

9. Tampung nama colom pada obyek

columnNames

10. Tampung isi baris dalam obyek data

11. Buat obyek tipe Vector dengan nama

columnNamesVector

12. Buat obyek tipe Vector dengan nama dataVector

13. Masukan isi baris columnNameske obyek

dataVector5

14. Masukan isi baris subVector ke obyek

columnNamesVector

15. Buat obyek DefaultTableModel bernama

tabelmodel1 berisi dataVector dan

columnNamesVector

16. Set model DataLabel tabelmodel1

TampilJML() Method ini digunakan

untuk menampilkan

jumlah dari angota

yang dimiliki cluster

masing-masing cluster

1. Buat obyek tipe ArrayList bernama

columnNames

2. Buat obyek tipe ArrayList bernama data

3. Buat obyek bertipe String dengan nama sql isi "

select `sub_datacluster`.`cluster` AS `Cls`, count

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 135: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

118

tersebut (`sub_datacluster` .`anggota`) AS `Jml` from

`sub_datacluster` group by

`sub_datacluster`.`cluster` ORDER BY

"sub_datacluster.id ASC"

4. Buka koneksi

5. Mengeksekusi obyek query sql

6. Tampung hasil di obyek ResultSet

7. Buat obyek ResultSetMetaData bernama mb

dengan isi rs.getMetaData()

8. Set md.getColumnCount di obyek column

9. Tampung nama colom pada obyek

columnNames

10. Tampung isi baris dalam obyek data

11. Buat obyek tipe Vector dengan nama

columnNamesVector

12. Buat obyek tipe Vector dengan nama dataVector

13. Masukan isi baris columnNameske obyek

dataVector5

14. Masukan isi baris subVector ke obyek

columnNamesVector

15. Buat obyek DefaultTableModel bernama

tabelmodel1 berisi dataVector dan

columnNamesVector

16. Set model DataJml tabelmodel1

TampilSSE() Method ini digunakan

untuk menampilkan

jumlah total SSE

1. Buat obyek tipe ArrayList bernama

columnNames

2. Buat obyek tipe ArrayList bernama data

3. Buat obyek bertipe String dengan nama sql isi "

SELECT SUM(mysum) FROM (SELECT

DISTINCT sub_datacluster.sse AS mysum

FROM sub_datacluster GROUP BY

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 136: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

119

sub_datacluster.cluster) AS bb;"

4. Buka koneksi

5. Mengeksekusi query ditampung dalam ResultSet

rs

6. Baca rs

7. Set TotalSSETextField1

rs.getString("SUM(mysum)")

pilihFile() Method ini digunakan

untuk menampilkan

JFileChooser untuk

memilih file excel

bertipe .csv kemudian

membaca file lalu

menampilkan ke

dalam tabel data.

1. Menampilkan JFileChooser open file

2. Mendapatkan nilai atribut nama_file yang dipilih

3. Deklarasi array bertipe String bernama

potong_nama_file untuk memberi nama file

dengan pemisah “\\”

4. Jika potong_nama_file.equals (“csv”)

5. Membuat vector baru bernama columnName.

6. Membuat vector baru bernama dataKeseluruhan.

7. Baca file inputan

8. Tampung nama kolom da isi semua baris dalam

columnName dan dataKeseluruhan obyek

9. Membuat obyek baru dob bertipe DataObyek

10. Ambil data pada colom ke 1, 2, 5, 6, 10, 19, dan

20 tampung dalam dob

11. Ambil nilai- nilai batas bawah dan batas bawah

pada setiap kelompok tampung dalam obyek a 1

s.5 dan b 1 s.d 5

12. Set semua kelompok harga pada DataObyek

13. Ambil semua nilai dalam obyek data, tampung

dalam obyek InputData

14. Ambil nama colom ke ke 1, 2, 5, 6, 10, 19, dan

20 dari file inputan dan tampung semua di

coluomDataFix

15. Membuat DefaultTableModel bernama model

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 137: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

120

dengan isi baris berisi InputData dan kolom

berisi columnName.

16. Atur tabel dataPreprocessTable menjadi seperti

model.

17. Set jumlahDataSeleksi =

tablemodel.getRowCount(

18. Set

jumlahDataSeleksiTextField.setText(" " +

jumlahDataSeleksi);

submitData() Method ini digunakan

untuk memulah tahap

preprocessing

mengolah data agar

siap untu k di mining.

1. Untuk i=0, selama I kurang dari panjang data

Objekdat

2. Buat obyek st bertipe StringTokenizer berisi

nama barang

3. Buat obyek baru a bertipe ArrayList

4. Tampung st ke dalam a

5. Ambil nilai kelompok harga

6. Jika kelompok harga sama dengan 1

7. Tampung semua nama barang pada a yang

memiliki kelompok harga sama dengan 1 di

tipekelompok1

8. Jika kelompok harga sama dengan 2

9. Tampung semua nama barang pada a yang

memiliki kelompok harga sama dengan 2 di

tipekelompok2

10. Jika kelompok harga sama dengan 3

11. Tampung semua nama barang pada a yang

memiliki kelompok harga sama dengan 3 di

tipekelompok1

12. Jika kelompok harga sama dengan 4

13. Tampung semua nama barang pada a yang

memiliki kelompok harga sama dengan 4 di

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 138: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

121

tipekelompok4

14. Jika kelompok harga sama dengan 5

15. Tampung semua nama barang pada a yang

memiliki kelompok harga sama dengan 5 di

tipekelompok5

16. Buat obyek PenggambunganTipeKelompok1

bertipe HashSet

17. Tampung tipekelompok1 kedalam

PenggambunganTipeKelompok1

18. Bersihkan tipekelompok1

19. Tampung PenggambunganTipeKelompok1 ke

tipekelompok1

20. Buat obyek PenggambunganTipeKelompok2

bertipe HashSet

21. Tampung tipekelompok2 kedalam

PenggambunganTipeKelompok2

22. Bersihkan tipekelompok2

23. Tampung PenggambunganTipeKelompok3 ke

tipekelompok2

24. Buat obyek PenggambunganTipeKelompok3

bertipe HashSet

25. Tampung tipekelompok3 kedalam

PenggambunganTipeKelompok3

26. Bersihkan tipekelompok3

27. Tampung PenggambunganTipeKelompok4 ke

tipekelompok4

28. Buat obyek PenggambunganTipeKelompok4

bertipe HashSet

29. Tampung tipekelompok4 kedalam

PenggambunganTipeKelompok4

30. Bersihkan tipekelompok4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 139: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

122

31. Tampung PenggambunganTipeKelompok1 ke

tipekelompok4

32. Buat obyek PenggambunganTipeKelompok5

bertipe HashSet

33. Tampung tipekelompok5 kedalam

PenggambunganTipeKelompok5

34. Bersihkan tipekelompok5

35. Tampung PenggambunganTipeKelompok5 ke

tipekelompok5

36. Untuk setiap tipe kelompok lakukan langkah

dibawah ini

a. Buat obyek baru z bertipe array

b. Untuk k=0, selama k kurang dari panjang data

tipekelompok*

c. Set buat objek baru jumlahQuantity=0

d. Untuk j=0, selama j kurang dari panjang data

Objekdat

e. Buat obyek st bertipe StringTokenizer berisi

nama barang

f. Buat obyek baru a bertipe ArrayList

g. Tampung st ke dalam a

h. Tampung a.get(0).toString() kedalam tipe

yang bertipe string

i. Jika tipekelompok* di indeks k sama dengan

tipe

j. Buat obyek baru quatity berisi setiap quantity

pada indeks j dari data Objekdat

k. Buat obyek datatampung berisi quatity

l. Jika z[0][k] sama dengan 0

m. Set z[0][k] dengan datatampung

n. Jika tidak, set jumlahQuantity= z[0][k]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 140: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

123

o. jumlahQuantity= jumlahQuantity+ z[0][k]

p. z[0][k]= jumlahQuantity

q. buat objek baru DataObyek bernama dob

yang berisi tipekelompok 1, 1, dan

jumlahQuantity

r. inputkan obyek dob ke obyek

hasilPengelompokan

37. Untuk i=0, selama I kurang dari panjang data

hasilPengelompokan

38. Buat obyek baru sementara1 bertipe vextor

39. Ambil nama barang pada indeks I di

hasilPengelompokan tampung ke dalam

sementara1

40. Ambil kelompok harga pada indeks I di

hasilPengelompokan tampung ke dalam

sementara1

41. Ambil quantity pada indeks I di

hasilPengelompokan tampung ke dalam

sementara1

42. Masukan nilai sementara1 ke obyek FixDataPre

43. Buat obyek vector namakolom

44. Masukan isi nama kolom dengan Nama Barang,

Kelompok Harga, Quantity

45. Buat obyek DefaultTableModel bernama

tabelmodel1 berisi FixDataPre dan namakolom

46. Set model dataKelompokHargaTable dengan

tabelmodel1

47. Set jumlahDataDivisiveTextField dengan

dataKelompokHargaTable.getRowCount()

cekInputRangeHarga(

)

Method ini digunakan

untuk mengecek input

1. Buat obyek RangeHarga dengan nama

nilaiRange

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 141: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

124

nilai harga kelompok. 2. Buat obyek controlRangeHarga dengan nama

crlharga

3. Membuat obyek bertipe boolean dengan nama

cekData berisi false;

4. Cek jika semua feld kosong

5. Tampilkan pesan error

6. Cek jika salah satu field ada yang kosong

tampilkan pesan error

7. Cek jika nilai field ada yang mengandung sifat

gabungan

8. Tampilakn pesan error

9. Cek jika semua field valid. Ambil setiap nilai

tampung semua nilai data dalam obyek

nilaiRange

10. Set cekData dengan cekIsiData

11. Cek status jika cekData sama dengan false, maka

lakukan langkah 12,

12. Panggil method prosesUpdateRange

13. Jika true =, panggil method prosesInsertRange

SimpanHasilCluster() Method ini digunakan

untuk menyimpan

hasil clustering

kedalam file

1. Menampilkan filechooser untuk lokasi

penyimpanan file hasil clustering.

2. Mengatur file filter agar hanya bisa disimpan

dalam tipe file doc, dan xls.

3. Deklarasi variabel bernama file_output_stream

bertipe FileOutputStream.

4. Deklarasi variabel bernama returnValue bertipe

int dengan inisialisasi fileChooser menampilkan

kotak dialog simpan.

5. Cek apakah returnValue ==

JFileChooser.APPROVE_OPTI ON. Jika ya

lakukan langkah 6 – 14.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 142: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

125

6. Membuat variabel bernama filename bertipe

String berisi path data yang di pilih.

7. Membuat variabel ext berisi filter terhadap tipe

file.

8. Cek apakah ext berisi Microsoft

Excel (*.xls). jika ya lakukan langkah 9 - 12.

9. Membuat variabel bernama f bertipe File.

10. Inisialisasi f sama dengan file baru dengan nama

file diikuti .xls

11. Menampilkan output f.

12. Mengirimkan isi data tabel hasil clsurteing

13. Cek apakah ext berisi Microsoft Word (*.doc)

jika ya lakukan seperti langkah 9-12. Jika tidak

lakukan langkah 14.

14. Cek apakah ext bertipe .txt, jika ya lakukan

seperti langkah 9-12.

15. Pesan “Hasil Pengklasteran Telah Berhasil

Disimpan”

LAMPIRAN 7

PERCOBAAN PERHITUNGAN SUM OF SQUARE ERROR

Tabel perbobaan

Percobaan Cluster SSE

AVG P1 P2 P3 P4 P5

1 2 328195,65 1255753,346 821891,83 326564,11 326564,11 611793,8

2 3 62465,727 67127,071 58150,59 58018,005 67127,071 62577,69

3 4 47805,751 48929,494 42545,224 41290,008 48929,494 45899,99

4 5 40875,609 46019,204 40004,988 38748,327 46044,137 42338,45

5 6 38820,685 43346,701 36243,742 36407,959 43371,634 39638,14

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 143: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

126

6 7 38255,563 42899,059 35907,797 36078,589 42923,992 39213

7 8 38092,636 42735,546 35562,333 35733,125 42760,479 38976,82

Keterangan:

P1: Perbobaan 1 adalah data preprocessing yang normal sesuai dengan haris

output dari tahapan preprocessing.

P2: Percobaan 2 adalah data preprocessing yang di urutkan nama barangnya

secara ascending.

P3: Percobaan 3 adalah data preprocessing yang di urutkan nama barangnya

secara descending.

P4: Percobaan 4 adalah data preprocessing yang di urutkan berdasarkan nama

barangnya dan total quantity secara descending.

P6: Percobaan 5 adalah data preprocessing yang di urutkan berdasarkan

kelompoik harga secara descending.

Percobaan ini bertujian untuk mengetahui pakah sistem menghasilkan nilai

SSE yang tepat jika sumber datanya di ubah strukturnya. Pada setiap percobaan

jumlah anggota yang dimiliki masing-masing cluster sama jumlahnya.

LAMPIRAN 8

LISTING PROGRAM

Listring Program – controlRangeHarga.java

package Controller;

import Entity.RangeHarga;

import Entity.KoneksiDB;

import static Entity.KoneksiDB.getConnection;

import java.sql.CallableStatement;

import java.sql.Connection;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 144: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

127

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import javax.swing.JTable;

/**

*

* @author Adiman

*/

public class controlRangeHarga {

public boolean cekIsiData() throws SQLException {

KoneksiDB conn = new KoneksiDB();

int jumlah = 0;

conn.bukaKoneksi();

RangeHarga range = new RangeHarga();

String sql = "select count(*) as jumlahData from kategori_nilai";

PreparedStatement statement = (PreparedStatement) conn.bukaKoneksi().prepareStatement(sql);

ResultSet rs = (ResultSet) statement.executeQuery();

while (rs.next()) {

range.setJumlahData(Integer.parseInt(rs.getString("jumlahData")));

}

jumlah = range.getJumlahData();

if (jumlah == 0) {

return true;

} else {

return false;

}

}

public void prosesInsertRange(RangeHarga range) throws SQLException {

KoneksiDB konek = new KoneksiDB();

String sql = "{call spSimpanRangeHarga(?,?,?,?,?,?,?,?,?,?)}";

java.sql.CallableStatement callst = konek.bukaKoneksi().prepareCall(sql);

callst.setDouble(1, range.getHargaBawah1());

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 145: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

128

callst.setDouble(2, range.getHargaAtas1());

callst.setDouble(3, range.getHargaBawah2());

callst.setDouble(4, range.getHargaAtas2());

callst.setDouble(5, range.getHargaBawah3());

callst.setDouble(6, range.getHargaAtas3());

callst.setDouble(7, range.getHargaBawah4());

callst.setDouble(8, range.getHargaAtas4());

callst.setDouble(9, range.getHargaBawah5());

callst.setDouble(10, range.getHargaAtas5());

callst.executeUpdate();

}

public void prosesUpdateRange(RangeHarga range) throws SQLException {

KoneksiDB konek = new KoneksiDB();

String sql = "{call spUpdateRangeH(?,?,?,?,?,?,?,?,?,?)}";

java.sql.CallableStatement callst = konek.bukaKoneksi().prepareCall(sql);

callst.setDouble(1, range.getHargaBawah1());

callst.setDouble(2, range.getHargaAtas1());

callst.setDouble(3, range.getHargaBawah2());

callst.setDouble(4, range.getHargaAtas2());

callst.setDouble(5, range.getHargaBawah3());

callst.setDouble(6, range.getHargaAtas3());

callst.setDouble(7, range.getHargaBawah4());

callst.setDouble(8, range.getHargaAtas4());

callst.setDouble(9, range.getHargaBawah5());

callst.setDouble(10, range.getHargaAtas5());

callst.executeUpdate();

}

public static ResultSet tampilkanRangeNilai(String kategori) throws SQLException {

KoneksiDB conn = new KoneksiDB();

ResultSet rs;

conn.bukaKoneksi();

String sql = "select batas_bwh, batas_atas from kategori_nilai where kode_range like '" + kategori

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 146: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

129

+ "'";

rs = (ResultSet) conn.lihatData(sql);

return rs;

}

public void deleteIsiData() throws SQLException {

KoneksiDB konek = new KoneksiDB();

String sql = "{call spdeleteKategori}";

CallableStatement callst = konek.bukaKoneksi().prepareCall(sql);

callst.executeUpdate();

}

public static ResultSet tampilJumlahCluster() throws SQLException {

KoneksiDB conn = new KoneksiDB();

ResultSet rs;

conn.bukaKoneksi();

String sql = "SELECT Count(datacluster.cluster) FROM datacluster";

rs = (ResultSet) conn.lihatData(sql);

return rs;

}

public void SimpanCluster(ArrayList<String> list, int Iter, Double Data, double sse) throws

SQLException {

Connection con = getConnection();

CallableStatement callst = null;

String sql = "{call sapsimpan_test(?)}";

try {

callst = con.prepareCall(sql);

callst.setString(1, "Cluster " + Iter);

callst.executeUpdate();

} catch (Exception e) {

System.err.println("SQLException: " + e.getMessage());

} finally {

if (callst != null) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 147: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

130

try {

callst.close();

} catch (SQLException e) {

System.err.println("SQLException: " + e.getMessage());

}

}

if (con != null) {

try {

con.close();

} catch (SQLException e) {

System.err.println("SQLException: " + e.getMessage());

}

}

}

SimpanSubCluster(list, Iter, Data, sse);

}

public void SimpanSubCluster(ArrayList<String> list, int Iter, Double Data, double sse) throws

SQLException {

Connection con = getConnection();

CallableStatement callst = null;

String sql = "{call sapsimpan_sub(?,?,?,?)}";

try {

callst = con.prepareCall(sql);

for (int i = 0; i < list.size(); i++) {

callst.setString(1, list.get(i));

callst.setDouble(2, Data);

callst.setString(3, "Cluster " + Iter);

callst.setDouble(4, sse);

callst.executeUpdate();

}

} catch (Exception e) {

System.err.println("SQLException: " + e.getMessage());

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 148: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

131

}

public void SimpanTree(Double Data, ArrayList<String> list, int Jml, String Label, String par,

String pos) throws SQLException {

Connection con = getConnection();

CallableStatement callst = null;

String sql = "{call SimpanTree(?,?,?,?,?,?)}";

try {

callst = con.prepareCall(sql);

callst.setDouble(1, Data);

callst.setString(2, list.toString());

callst.setInt(3, Jml);

callst.setString(4, Label);

callst.setString(5, par);

callst.setString(6, pos);

callst.executeUpdate();

//}

} catch (Exception e) {

System.err.println("SQLException: " + e.getMessage());

}

}

public void simpanPre(JTable tabel) throws SQLException {

Connection con = getConnection();

CallableStatement callst = null;

String sql = "{call sppreproses(?,?,?)}";

String nb[] = new String[tabel.getRowCount()];

String klp[] = new String[tabel.getRowCount()];

String qty[] = new String[tabel.getRowCount()];

for (int i = 0; i < tabel.getRowCount(); i++) {

nb[i] = tabel.getValueAt(i, 0).toString();

klp[i] = tabel.getValueAt(i, 1).toString();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 149: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

132

qty[i] = tabel.getValueAt(i, 2).toString();

try {

callst = con.prepareCall(sql);

callst.setString(1, nb[i]);

callst.setString(2, klp[i]);

callst.setString(3, qty[i]);

callst.executeUpdate();

} catch (Exception e) {

System.err.println("SQLException: " + e.getMessage());

}

}

}

public void SpDelete() throws SQLException {

KoneksiDB konek = new KoneksiDB();

String sql = "{call spdelete}";

CallableStatement callst = konek.bukaKoneksi().prepareCall(sql);

callst.executeUpdate();

konek.tutupKoneksi();

}

public void deletePreproses() throws SQLException {

KoneksiDB konek = new KoneksiDB();

String sql = "{call deletepreproses}";

CallableStatement callst = konek.bukaKoneksi().prepareCall(sql);

callst.executeUpdate();

konek.tutupKoneksi();

}

}

Listing Program – DataObyek.java

package Entity;

/**

*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 150: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

133

* @author Adiman

*/

public class DataObyek {

private String KodeBarang;

private String hargaJual;

private Double quantity;

private Double jumlah;

private String total;

private String NamaBarang;

private String KelompokHarga;

private String area;

public DataObyek() {

}

public DataObyek(String NamaBarang,String KelompokHarga, Double jumlah) {

this.NamaBarang = NamaBarang;

this.KelompokHarga = KelompokHarga;

this.quantity = jumlah;

}

public String getKodeBarang() {

return KodeBarang;

}

public void setKodeBarang(String KodeBarang) {

this.KodeBarang = KodeBarang;

}

public String getHargaJual() {

return hargaJual;

}

public void setHargaJual(String hargaJual) {

this.hargaJual = hargaJual;

}

public Double getQuantity() {

return quantity;

}

public void setQuantity(Double quantity) {

this.quantity = quantity;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 151: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

134

public Double getJumlah() {

return jumlah;

}

public void setJumlah(Double jumlah) {

this.jumlah = jumlah;

}

public String getTotal() {

return total;

}

public void setTotal(String total) {

this.total = total;

}

public String getNamaBarang() {

return NamaBarang;

}

public void setNamaBarang(String NamaBarang) {

this.NamaBarang = NamaBarang;

}

public String getKelompokHarga() {

return KelompokHarga;

}

public void setKelompokHarga(String KelompokHarga) {

this.KelompokHarga = KelompokHarga;

}

public String getArea() {

return area;

}

public void setArea(String area) {

this.area = area;

}

}

Listing Program-Graph.java

package Entity;

import Controller.controlRangeHarga;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 152: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

135

import java.math.BigDecimal;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.TreeMap;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

/**

*

* @author Adiman

*/

public class Graph {

public Verteks verteksList[];

public Verteks LabelMatriks[];

public Verteks LabelSplinter[];

public Verteks LabelMatriksAkhir[];

public Verteks LabelSplinterAkhir[];

public double adjMat[][];

public double DataMatriks[][];

public double DataSplinter[][];

public double DataMatriksAkhir[][];

public double DataSplinterAkhir[][];

public double inf = -1.0;

public int jumVertex = 0;

public int JmlCluster;

public int iter = 1;

public int cls = 1;

public int decp = 3;

ArrayList<String> MatrixList = new ArrayList<>();

ArrayList<String> SplinterList = new ArrayList<>();

ArrayList<String> MatrixLisAkhir = new ArrayList<>();

ArrayList<String> SplinterListAkhir = new ArrayList<>();

Map<String, ArrayList<String>> mapClsuter = new HashMap();

double[] mean;

double[] std;

controlRangeHarga control = new controlRangeHarga();

public Graph(int maxVertex) {

verteksList = new Verteks[maxVertex];

adjMat = new double[maxVertex][maxVertex];

for (int i = 0; i < adjMat.length; i++) {

for (int j = 0; j < adjMat.length; j++) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 153: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

136

if (i == j) {

adjMat[i][j] = 0.0;

} else {

adjMat[i][j] = inf;

}

}

}

}

public Verteks[] getLabelMatriksAkhir() {

return LabelMatriksAkhir;

}

public void setLabelMatriksAkhir(Verteks[] LabelMatriksAkhir) {

this.LabelMatriksAkhir = LabelMatriksAkhir;

}

public Verteks[] getLabelSplinterAkhir() {

return LabelSplinterAkhir;

}

public void setLabelSplinterAkhir(Verteks[] LabelSplinterAkhir) {

this.LabelSplinterAkhir = LabelSplinterAkhir;

}

public double[][] getDataMatriksAkhir() {

return DataMatriksAkhir;

}

public void setDataMatriksAkhir(double[][] DataMatriksAkhir) {

this.DataMatriksAkhir = DataMatriksAkhir;

}

public double[][] getDataSplinterAkhir() {

return DataSplinterAkhir;

}

public void setDataSplinterAkhir(double[][] DataSplinterAkhir) {

this.DataSplinterAkhir = DataSplinterAkhir;

}

public int getJmlCluster() {

return JmlCluster;

}

public void setJmlCluster(int JmlCluster) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 154: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

137

this.JmlCluster = JmlCluster;

}

public double[][] getDataSplinter() {

return DataSplinter;

}

public void SetDataSplinter(double[][] adSplinter) {

this.DataSplinter = adSplinter;

}

public Verteks[] getLabelSplinter() {

return LabelSplinter;

}

public void setLabelSplinter(Verteks[] verteksListSplinter) {

this.LabelSplinter = verteksListSplinter;

}

public Verteks[] getVerteksList() {

return verteksList;

}

public void setVerteksList(Verteks[] verteksList) {

this.verteksList = verteksList;

}

public double[][] getadjMat() {

return adjMat;

}

public void setadjMat(double[][] data) {

this.adjMat = data;

}

public void addVerteks(String label, List<Double> nilai) {

verteksList[jumVertex++] = new Verteks(label, nilai);

}

public void addEdge(int x, int y, Double nilai) {

adjMat[x][y] = adjMat[y][x] = nilai;

}

public double[][] getDataMatriks() {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 155: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

138

return DataMatriks;

}

public void setDataMatriks(double[][] DataMatriks) {

this.DataMatriks = DataMatriks;

}

public Verteks[] getLabelMatriks() {

return LabelMatriks;

}

public void setLabelMatriks(Verteks[] LabelMatriks) {

this.LabelMatriks = LabelMatriks;

}

public void inputData(JTable jTableData) {

String label = "P";

int p = 1;

for (int i = 0; i < jTableData.getRowCount(); i++) {

int o = 0;

List<Double> listNilai = new ArrayList<Double>();

for (int j = 1; j < jTableData.getColumnCount(); j++) {

label = String.valueOf(jTableData.getValueAt(i, 0));

listNilai.add(Double.parseDouble(jTableData.getValueAt(i, j).toString()));

}

p++;

addVerteks(label, listNilai);

MatrixList.add(label);

}

for (int i = 0; i < jTableData.getRowCount(); i++) {

for (int j = i + 1; j < jTableData.getRowCount(); j++) {

if (i != j) {

addEdge(i, j, cariJarakEcludian(i, j));

}

}

}

}

public void tampilJarakEuclidean() {

System.out.println("");

System.out.println("-------------------------------------Jarak Ecludian-----------------------------

--------");

System.out.print("\t");

for (int i = 0; i < verteksList.length; i++) {

System.out.print("" + verteksList[i].getLabel() + "\t");

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 156: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

139

System.out.println("\t");

for (int i = 0; i < adjMat.length; i++) {

System.out.print("" + verteksList[i].getLabel() + "\t");

for (int j = 0; j < verteksList.length; j++) {

System.out.print("" + adjMat[i][j] + "\t");

}

System.out.println("\t");

}

System.out.println("\t");

System.out.println("-------------------------------------Jarak Ecludian-----------------------------

--------");

}

public void LostClustering() throws SQLException {

double Bobot = BobotMatriks(adjMat, SplinterListAkhir);

control.SimpanTree(Bobot, MatrixList, MatrixList.size(), "root", "null", "null");

System.out.println("bobot" + Bobot);

MatrixList.clear();

mapClsuter.clear();

control.SpDelete();

int iterasi = 1;

System.out.println("----------------------------------------Iterasi " + iterasi + "-------------------

--------------------");

System.out.println("Clustering");

double[][] DataCluster = getadjMat();

Verteks[] LabelCluster = getVerteksList();

double rerataMatrix[];

double rerataSplinter[];

double HasilSelisih[];

int splinter = 0;

rerataMatrix = Averagematrix(DataCluster, LabelCluster, MatrixList);

splinter = CariObjekTerbesar(rerataMatrix, LabelCluster);

for (int i = 0;

i < LabelCluster.length;

i++) {

if (i != splinter) {

MatrixList.add(LabelCluster[i].getLabel());

} else {

SplinterList.add(LabelCluster[i].getLabel());

}

}

UpdateMatriks(MatrixList, SplinterList, DataCluster, LabelCluster);

double[][] DataClusterUpdate = getDataMatriks();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 157: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

140

Verteks[] LabelClusterUpdate = getLabelMatriks();

double[][] DataSplinterUpdate = getDataSplinter();

rerataMatrix = Averagematrix(DataClusterUpdate, LabelClusterUpdate, MatrixList);

rerataSplinter = AverageSplinter(DataSplinterUpdate, LabelClusterUpdate, SplinterList);

HasilSelisih = HitungSelisih(rerataMatrix, rerataSplinter, LabelClusterUpdate);

ArrayList<Integer> indexSplinter = AmbilIndexSelisih(HasilSelisih,

LabelClusterUpdate);

int posCount = 0;

for (double j : HasilSelisih) {

if (j > 0) {

posCount++;

}

}

if (posCount

== 0) {

System.out.println("STOP, NILAI SPLINTER GRUP NEGATIF! Clustering");

} else {

System.out.println("LANJUT, NILAI SPLINTER GRUP POSITIF Clustering");

MatrixList.clear();

for (int i = 0; i < LabelClusterUpdate.length; i++) {

if (!indexSplinter.contains(i)) {

MatrixList.add(LabelClusterUpdate[i].getLabel());

} else {

SplinterList.add(LabelClusterUpdate[i].getLabel());

}

}

UpdateMatriks(MatrixList, SplinterList, DataCluster, LabelCluster);

UpdateMatriksAkhir(MatrixList, SplinterList, DataCluster, LabelCluster);

LostClustering2(iterasi + 1);

}

}

public void LostClustering2(int iterasi) throws SQLException {

System.out.println("----------------------------------------Iterasi " + iterasi + "-------------------

--------------------");

System.out.println("ClusterIterasi");

tampilAnggotaCluster();

double[][] DataCluster = getadjMat();

double[][] DataClusterUpdate = getDataMatriks();

double[][] DataSplinterUpdate = getDataSplinter();

Verteks[] LabelCluster = getVerteksList();

Verteks[] LabelClusterUpdate = getLabelMatriks();

double rerataMatrix[];

double rerataSplinter[];

double HasilSelisih[];

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 158: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

141

int splinter = 0;

rerataMatrix = Averagematrix(DataClusterUpdate, LabelClusterUpdate, MatrixList);

rerataSplinter = AverageSplinter(DataSplinterUpdate, LabelClusterUpdate, SplinterList);

HasilSelisih = HitungSelisih(rerataMatrix, rerataSplinter, LabelClusterUpdate);

ArrayList<Integer> indexSplinter = AmbilIndexSelisih(HasilSelisih,

LabelClusterUpdate);

int posCount = 0;

for (double j : HasilSelisih) {

if (j > 0) {

posCount++;

}

}

if (posCount == 0) {

System.out.println("STOP, NILAI SPLINTER GRUP NEGATIF! Mulai baru

pengelompokan");

double Bobot14 = BobotMatriks(DataMatriksAkhir, MatrixLisAkhir);

System.out.println("adsM" + Bobot14);

control.SimpanTree(Bobot14, MatrixLisAkhir, MatrixLisAkhir.size(), "node", "rootR",

"right");

double Bobot31 = BobotMatriks(DataSplinterAkhir, SplinterListAkhir);

System.out.println("adsS" + Bobot31);

control.SimpanTree(Bobot31, SplinterListAkhir, SplinterListAkhir.size(), "node",

"rootL", "left");

double Bobot = BobotMatriks(DataSplinterAkhir, SplinterListAkhir);

double HasilAkurasi = akurasi(DataSplinterAkhir);

ArrayList< String> tempC = new ArrayList();

tempC.addAll(SplinterListAkhir);

control.SimpanCluster(tempC, iter, Bobot, HasilAkurasi);

mapClsuter.put("Cluster " + iter, tempC);

iter++;

MatrixList.clear();

SplinterList.clear();

for (int i = 0; i < LabelClusterUpdate.length; i++) {

if (!indexSplinter.contains(i)) {

MatrixList.add(LabelClusterUpdate[i].getLabel());

} else {

SplinterList.add(LabelClusterUpdate[i].getLabel());

}

}

UpdateMatriks(MatrixList, SplinterList, DataCluster, LabelCluster);

UpdateMatriksAkhir(MatrixList, SplinterList, DataCluster, LabelCluster);

System.out.println("a");

tampilAnggotaCluster();

LostClustering3(iterasi + 1);

} else {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 159: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

142

System.out.println("LANJUT, NILAI SPLINTER GRUP POSITIF2 ClusterIterasi");

MatrixList.clear();

for (int i = 0; i < LabelClusterUpdate.length; i++) {

if (!indexSplinter.contains(i)) {

MatrixList.add(LabelClusterUpdate[i].getLabel());

} else {

SplinterList.add(LabelClusterUpdate[i].getLabel());

}

}

UpdateMatriks(MatrixList, SplinterList, DataCluster, LabelCluster);

UpdateMatriksAkhir(MatrixList, SplinterList, DataCluster, LabelCluster);

LostClustering2(iterasi + 1);

}

}

public void LostClustering3(int iterasi) throws SQLException {

System.out.println("----------------------------------------Iterasi " + iterasi + "-------------------

--------------------");

System.out.println("ClusterIterasi2");

tampilAnggotaCluster();

double[][] DataCluster = getadjMat();

double[][] DataSplinterUpdate = getDataSplinter();

double[][] DataClusterUpdate = getDataMatriks();

Verteks[] LabelCluster = getVerteksList();

Verteks[] LabelClusterUpdate = getLabelMatriks();

double rerataMatrix[];

double rerataSplinter[];

double HasilSelisih[];

int splinter = 0;

rerataMatrix = Averagematrix(DataClusterUpdate, LabelClusterUpdate, MatrixList);

rerataSplinter = AverageSplinter(DataSplinterUpdate, LabelClusterUpdate, SplinterList);

HasilSelisih = HitungSelisih(rerataMatrix, rerataSplinter, LabelClusterUpdate);

ArrayList<Integer> indexSplinter = AmbilIndexSelisih(HasilSelisih,

LabelClusterUpdate);

int posCount = 0;

for (double j : HasilSelisih) {

if (j > 0) {

posCount++;

}

}

if (posCount == 0) {

System.out.println("STOP, NILAI SPLINTER GRUP NEGATIF!2 ClusterIterasi2");

UpdateMatriks(MatrixList, SplinterList, DataCluster, LabelCluster);

UpdateMatriksAkhir(MatrixList, SplinterList, DataCluster, LabelCluster);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 160: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

143

double Bobot14 = BobotMatriks(DataMatriksAkhir, MatrixLisAkhir);

control.SimpanTree(Bobot14, MatrixLisAkhir, MatrixLisAkhir.size(), "node", "right",

"right");

System.out.println("adsM" + Bobot14);

double Bobot31 = BobotMatriks(DataSplinterAkhir, SplinterListAkhir);

System.out.println("adsS" + Bobot31);

control.SimpanTree(Bobot31, SplinterListAkhir, SplinterListAkhir.size(), "node",

"right", "left");

double Bobot = BobotMatriks(DataMatriksAkhir, MatrixLisAkhir);

double HasilAkurasi = akurasi(DataMatriksAkhir);

double Bobot1 = BobotMatriks(DataSplinterAkhir, SplinterListAkhir);

double HasilAkurasi1 = akurasi(DataSplinterAkhir);

ArrayList<String> TempSplinterBaru = new ArrayList<>();

ArrayList<String> TempSplinter = new ArrayList<>();

TempSplinterBaru.addAll(MatrixLisAkhir);

TempSplinter.addAll(SplinterListAkhir);

mapClsuter.put("Cluster " + iter, TempSplinter);

control.SimpanCluster(TempSplinter, iter, Bobot1, HasilAkurasi1);

iter++;

mapClsuter.put("Cluster " + iter, TempSplinterBaru);

control.SimpanCluster(TempSplinterBaru, iter, Bobot, HasilAkurasi);

System.out.println(" b");

tampilAnggotaCluster();

//LostClustering2(iterasi + 1);

} else {

System.out.println("LANJUT, NILAI SPLINTER GRUP POSITIF1 ClusterIterasi2");

MatrixList.clear();

for (int i = 0; i < LabelClusterUpdate.length; i++) {

if (!indexSplinter.contains(i)) {

MatrixList.add(LabelClusterUpdate[i].getLabel());

} else {

SplinterList.add(LabelClusterUpdate[i].getLabel());

}

}

UpdateMatriks(MatrixList, SplinterList, DataCluster, LabelCluster);

UpdateMatriksAkhir(MatrixList, SplinterList, DataCluster, LabelCluster);

LostClustering2(iterasi + 1);

}

}

public void tampilAnggotaCluster() {

System.out.println("");

System.out.println("----------------------------------");

System.out.println("Update Anggota Clsuter "

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 161: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

144

+ "\nClsuter C :" + MatrixList

+ "\nClsuter N :" + SplinterList);

System.out.println("----------------------------------");

System.out.println("");

}

public void tampilMap() {

System.out.println("");

System.out.println("HASIL CLUSTERING");

Map<String, ArrayList<String>> treeMap = new TreeMap<String,

ArrayList<String>>(mapClsuter);

for (Map.Entry<String, ArrayList<String>> entry : treeMap.entrySet()) {

System.out.println(entry.getKey() + " = " + entry.getValue());

}

}

public void UpdateMatriks(ArrayList<String> MatrixUtama, ArrayList<String>

MatrixSplit, double[][] data, Verteks[] list) {

int m = 0;

int m1 = 0;

ArrayList<Integer> countMatrix = new ArrayList();

ArrayList<Integer> countSplit = new ArrayList();

Verteks[] LabelSpliter = new Verteks[MatrixSplit.size()];

Verteks[] LabelCluster = new Verteks[MatrixUtama.size()];

double[][] datamatriks = new double[MatrixUtama.size()][MatrixUtama.size()];

double[][] dataSplit = new double[MatrixUtama.size()][MatrixSplit.size()];

for (int i = 0; i < MatrixUtama.size(); i++) {

int count = Search(MatrixUtama.get(i));

countMatrix.add(count);

}

for (int i = 0; i < MatrixSplit.size(); i++) {

int count = Search(MatrixSplit.get(i));

countSplit.add(count);

}

m = 0;

m1 = 0;

for (int j = 0; j < list.length; j++) {

if (countMatrix.contains(j)) {

LabelCluster[m] = list[j];

m++;

}

if (countSplit.contains(j)) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 162: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

145

LabelSpliter[m1] = list[j];

m1++;

}

}

m = 0;

m1 = 0;

for (int e = 0; e < data.length; e++) {

if (countMatrix.contains(e)) {

int n = 0;

int k = 0;

for (int j = 0; j < data.length; j++) {

if (countMatrix.contains(j)) {

datamatriks[m][n] = data[e][j];

n++;

}

if (countSplit.contains(j)) {

dataSplit[m1][k] = data[e][j];

k++;

}

}

m++;

m1++;

}

}

setDataMatriks(datamatriks);

setLabelMatriks(LabelCluster);

SetDataSplinter(dataSplit);

setLabelSplinter(LabelSpliter);

public void UpdateMatriksAkhir(ArrayList<String> MatrixUtama, ArrayList<String>

MatrixSplit, double[][] data, Verteks[] list) {

int m = 0;

int m1 = 0;

ArrayList<Integer> countMatrix = new ArrayList();

ArrayList<Integer> countSplit = new ArrayList();

Verteks[] LabelMatriks1 = new Verteks[MatrixUtama.size()];

Verteks[] LabelSplinter1 = new Verteks[MatrixSplit.size()];

double[][] DataMatriks1 = new double[MatrixUtama.size()][MatrixUtama.size()];

double[][] DataSplinter1 = new double[MatrixSplit.size()][MatrixSplit.size()];

///ambil index

for (int i = 0; i < MatrixUtama.size(); i++) {

int count = Search(MatrixUtama.get(i));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 163: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

146

countMatrix.add(count);

}

///ambil index

for (int i = 0; i < MatrixSplit.size(); i++) {

int count = Search(MatrixSplit.get(i));

countSplit.add(count);

}

m = 0;

m1 = 0;

for (int j = 0; j < list.length; j++) {

if (countMatrix.contains(j)) {

LabelMatriks1[m] = list[j];

m++;

}

if (countSplit.contains(j)) {

LabelSplinter1[m1] = list[j];

m1++;

}

}

m = 0;

for (int e = 0; e < data.length; e++) {

if (countMatrix.contains(e)) {

int n = 0;

for (int j = 0; j < data.length; j++) {

if (countMatrix.contains(j)) {

DataMatriks1[m][n] = data[e][j];

n++;

}

}

m++;

}

}

m = 0;

for (int e = 0; e < data.length; e++) {

if (countSplit.contains(e)) {

int n = 0;

for (int j = 0; j < data.length; j++) {

if (countSplit.contains(j)) {

DataSplinter1[m][n] = data[e][j];

n++;

}

}

m++;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 164: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

147

}

setDataMatriksAkhir(DataMatriks1);

setLabelSplinterAkhir(LabelMatriks1);

setDataSplinterAkhir(DataSplinter1);

setLabelSplinterAkhir(LabelSplinter1);

MatrixLisAkhir.clear();

SplinterListAkhir.clear();

for (int i = 0; i < list.length; i++) {

if (countMatrix.contains(i)) {

MatrixLisAkhir.add(list[i].getLabel());

}

if (countSplit.contains(i)) {

SplinterListAkhir.add(list[i].getLabel());

}

}

}

public ArrayList<Integer> AmbilIndexSelisih(double[] Data, Verteks[] list) {

ArrayList<Integer> tempIndex = new ArrayList<>();

int minValueCounter = 0;

int index = 0;

double rerataAll[] = new double[Data.length];

double nilaiMin = 0;

for (int i = 0; i < Data.length; ++i) {

rerataAll[i] = Data[i];

BigDecimal bd = new BigDecimal(rerataAll[i]);

bd = bd.setScale(decp, BigDecimal.ROUND_DOWN);

rerataAll[i] = bd.doubleValue();

nilaiMin = rerataAll[i];

}

for (int i = 0; i < rerataAll.length; i++) {

if (rerataAll[i] > nilaiMin) {

nilaiMin = rerataAll[i];

minValueCounter = 1;

index = i;

tempIndex.clear();

tempIndex.add(index);

} else if (rerataAll[i] == nilaiMin) {

minValueCounter++;

tempIndex.add(i);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 165: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

148

}

return tempIndex;

}

public int Search(String label) {

for (int i = 0; i < verteksList.length; i++) {

if (label.equals(verteksList[i].getLabel())) {

return i;

}

}

return -1;

}

public int CariObjekTerbesar(double[] data, Verteks[] label) {

double nilaiMax = 0;

double sum;

int idxMax = 0;

for (int i = 0; i < data.length; i++) {

sum = data[i];

if (sum > nilaiMax) {

nilaiMax = sum;

idxMax = i;

}

}

return idxMax;

}

public double[] Averagematrix(double[][] data, Verteks[] list, ArrayList<String> listSize) {

double rerata[] = new double[data.length];

for (int i = 0; i < data.length; ++i) {

for (int j = 0; j < data.length; ++j) {

rerata[i] += data[i][j];

}

rerata[i] = rerata[i] / list.length;

}

return rerata;

}

public double[] AverageSplinter(double[][] data, Verteks[] list, ArrayList listSize) {

double rerata[] = new double[data.length];

for (int i = 0; i < data.length; ++i) {

for (int j = 0; j < listSize.size(); ++j) {

rerata[i] += data[i][j];

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 166: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

149

rerata[i] = rerata[i] / listSize.size();

}

return rerata;

}

public double[] HitungSelisih(double[] obyekMatrix, double[] objekSplinter, Verteks[] list)

{

double rerata[] = new double[objekSplinter.length];

double ave[] = new double[objekSplinter.length];

double nilaiMax = 0;

int idxMax = 0;

for (int i = 0; i < obyekMatrix.length; ++i) {

rerata[i] = obyekMatrix[i] - objekSplinter[i];

ave[i] = rerata[i];

nilaiMax = ave[i];

}

for (int i = 0; i < ave.length; i++) {

if (ave[i] >= nilaiMax) {

nilaiMax = ave[i];

idxMax = i;

}

}

return ave;

}

public double[] RoundTo2DecimalsArray(double[] val) {

for (int i = 0; i < val.length; ++i) {

BigDecimal bd = new BigDecimal(val[i]);

bd = bd.setScale(decp, BigDecimal.ROUND_DOWN);

val[i] = bd.doubleValue();

}

return val;

}

public double RoundTo2DecimalsSingle(double val) {

BigDecimal bd = new BigDecimal(val);

bd = bd.setScale(decp, BigDecimal.ROUND_FLOOR);

val = bd.doubleValue();

return val;

}

public double BobotMatriks(double[][] data, ArrayList<String> list) {

double ave = 0;

double sum = 0;

for (int i = 0; i < data.length; i++) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 167: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

150

sum = 0;

for (int j = 0; j < data[i].length; j++) {

sum += data[i][j];

ave = sum / data.length;

}

}

return RoundTo2DecimalsSingle(ave);

}

public double akurasi(double[][] data) {

double sse = 0;

double[] sumerr2 = new double[data.length];

double[][] matriks = new double[data.length][data.length];

double mean = 0;

double sum = 0;

for (int i = 0; i < data.length; i++) {

sum = 0;

for (int j = 0; j < data[i].length; j++) {

sum += data[i][j];

mean = sum / data.length;

}

}

for (int i = 0; i < matriks.length; i++) {

for (int j = 0; j < matriks[i].length; j++) {

matriks[i][j] = data[i][j] - mean;

}

}

for (int i = 0; i < matriks.length; i++) {

for (int j = 0; j < matriks[i].length; j++) {

matriks[i][j] = Math.pow(matriks[i][j], 2);

}

}

for (int i = 0; i < matriks.length; i++) {

for (int j = 0; j < matriks.length; j++) {

sumerr2[i] += matriks[i][j];

}

sse += sumerr2[i];

BigDecimal bd = new BigDecimal(sse);

bd = bd.setScale(decp, BigDecimal.ROUND_DOWN);

sse = bd.doubleValue();

}

return sse;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 168: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

151

}

Listing Program – KoneksiDB.java

package Entity;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

*

* @author Adiman

*/

public class KoneksiDB {

private static final String url = "jdbc:mysql://localhost:3306/skripsi";

private String user = "root";

private String password = "1234";

private Connection koneksi;

private Statement statement;

public KoneksiDB() throws SQLException {

try {

Class.forName("com.mysql.jdbc.Driver");

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

statement = koneksi.createStatement();

} catch (ClassNotFoundException ex) {

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

}

}

public Connection bukaKoneksi() throws SQLException {

Connection konek = DriverManager.getConnection(url, user, password);

return konek;

}

public void tutupKoneksi() throws SQLException {

if (koneksi != null) {

koneksi.close();

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 169: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

152

public ResultSet lihatData(String sql) throws SQLException {

ResultSet rs = null;

rs = statement.executeQuery(sql);

return rs;

}

public static void main(String[] args) throws SQLException {

KoneksiDB tes = new KoneksiDB();

}

public static Connection getConnection() {

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con =

DriverManager.getConnection("jdbc:mysql://localhost:3306/skripsi",

"root", "1234");

return con;

} catch (Exception ex) {

System.out.println("Database.getConnection() Error -->" + ex.getMessage());

return null;

}

}

public static void close(Connection con) {

try {

con.close();

} catch (Exception ex) {

}

}

}

Listing Program – RangeHarga.java

package Entity;

/**

*

* @author Adiman

*/

public class RangeHarga {

private double HargaAtas1;

private double HargaAtas2;

private double HargaAtas3;

private double HargaAtas4;

private double HargaAtas5;

private double HargaBawah1;

private double HargaBawah2;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 170: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

153

private double HargaBawah3;

private double HargaBawah4;

private double HargaBawah5;

private int jumlahData;

public RangeHarga() {

}

public double getHargaAtas1() {

return HargaAtas1;

}

public void setHargaAtas1(double HargaAtas1) {

this.HargaAtas1 = HargaAtas1;

}

public double getHargaAtas2() {

return HargaAtas2;

}

public void setHargaAtas2(double HargaAtas2) {

this.HargaAtas2 = HargaAtas2;

}

public double getHargaAtas3() {

return HargaAtas3;

}

public void setHargaAtas3(double HargaAtas3) {

this.HargaAtas3 = HargaAtas3;

}

public double getHargaAtas4() {

return HargaAtas4;

}

public void setHargaAtas4(double HargaAtas4) {

this.HargaAtas4 = HargaAtas4;

}

public double getHargaAtas5() {

return HargaAtas5;

}

public void setHargaAtas5(double HargaAtas5) {

this.HargaAtas5 = HargaAtas5;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 171: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

154

public double getHargaBawah1() {

return HargaBawah1;

}

public void setHargaBawah1(double HargaBawah1) {

this.HargaBawah1 = HargaBawah1;

}

public double getHargaBawah2() {

return HargaBawah2;

}

public void setHargaBawah2(double HargaBawah2) {

this.HargaBawah2 = HargaBawah2;

}

public double getHargaBawah3() {

return HargaBawah3;

}

public void setHargaBawah3(double HargaBawah3) {

this.HargaBawah3 = HargaBawah3;

}

public double getHargaBawah4() {

return HargaBawah4;

}

public void setHargaBawah4(double HargaBawah4) {

this.HargaBawah4 = HargaBawah4;

}

public double getHargaBawah5() {

return HargaBawah5;

}

public void setHargaBawah5(double HargaBawah5) {

this.HargaBawah5 = HargaBawah5;

}

public int getJumlahData() {

return jumlahData;

}

public void setJumlahData(int jumlahData) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 172: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

155

this.jumlahData = jumlahData;

}

}

Listing Program – verteks.java

package Entity;

import java.util.List;

public class Verteks {

private String label;

private List<Double> nilai;

public Verteks(String label, List<Double> nilai1) {

setLabel(label);

setNilai(nilai1);

}

public String getLabel() {

return label;

}

public void setLabel(String label) {

this.label = label;

}

public List<Double> getNilai() {

return nilai;

}

public void setNilai(List<Double> nilai) {

this.nilai = nilai;

}

}

Listing Program – HalamanBantuan.java

package View;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

/**

*

* @author Adiman

*/

public class HalamanBantuan extends javax.swing.JFrame {

public HalamanBantuan() {

initComponents();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 173: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

156

setTitle("Halaman Bantuan");

setLocationRelativeTo(this);

setResizable(false);

}

@SuppressWarnings("unchecked")

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

private void initComponents() {

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setTitle("AKU");

setBackground(new java.awt.Color(255, 255, 255));

setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

setMinimumSize(new java.awt.Dimension(860, 450));

setName("Form"); // NOI18N

jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

jPanel1.setName("jPanel1"); // NOI18N

jLabel5.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel5.setText("SISTEM PREDIKSI PENJUALAN HELM MENGGUNAKAN");

jLabel5.setName("jLabel5"); // NOI18N

jLabel6.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N

jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel6.setText("ALGORITMA HIERARCHICAL DIVISIVE");

jLabel6.setName("jLabel6"); // NOI18N

jLabel4.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/Image/logo.png"))); // NOI18N

jLabel4.setName("jLabel4"); // NOI18N

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(14, 14, 14)

.addComponent(jLabel4)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILI

NG, false)

.addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 721,

javax.swing.GroupLayout.PREFERRED_SIZE))

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 174: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

157

.addContainerGap(36, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(20, 20, 20)

.addComponent(jLabel5)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel6)

.addContainerGap(20, Short.MAX_VALUE))

.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE,

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

);

jPanel4.setBackground(new java.awt.Color(255, 255, 255));

jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());

jPanel4.setName("jPanel4"); // NOI18N

jScrollPane1.setName("jScrollPane1"); // NOI18N

jTextArea1.setColumns(20);

jTextArea1.setRows(5);

jTextArea1.setText("Petunjuk Penggunaan\nA. Petunjuk Preprocessing Data\n 1. Tekan

tombol 'Pilih File' untuk mengambil data dalam format file.csv \n - Baris pertama pada file

berformat .csv dianggap nama kolom.\n - Label data tidak boleh kosong sehingga data pada

kolom pertama dianggap sebagai \n label data.\n 2. Tekan tombol 'Submit' untuk

memproses data yang sudah siap olah ke dalam \n tab 'Cluster'\n\nB. Petunjuk Proses

Clustering\n 1. Tekan tombol 'Proses' untuk memulai proses Cluster \n 3. Tekan tombol

'Simpan Hasil Outlier' untuk menyimpan hasil deteksi\n outlier dalam format file .xls atau

.doc atau .txt");

jTextArea1.setName("jTextArea1"); // NOI18N

jScrollPane1.setViewportView(jTextArea1);

kembaliButton.setText("KEMBALI");

kembaliButton.setName("kembaliButton"); // NOI18N

kembaliButton.addActionListener(new java.awt.event.ActionListener() {

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

kembaliButtonActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel4Layout.createSequentialGroup()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 175: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

158

.addContainerGap()

.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN

G)

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 851,

Short.MAX_VALUE)

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

jPanel4Layout.createSequentialGroup()

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(kembaliButton)))

.addContainerGap())

);

jPanel4Layout.setVerticalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel4Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 304,

Short.MAX_VALUE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(kembaliButton)

.addContainerGap())

);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, 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))

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 176: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

159

.addContainerGap())

);

pack();

}// </editor-fold>

private void kembaliButtonActionPerformed(java.awt.event.ActionEvent evt) {

try {

HalamanUtama awal = new HalamanUtama();

awal.setVisible(true);

this.dispose();

} catch (SQLException ex) {

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

}

}

public static void main(String args[]) {

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

@Override

public void run() {

new HalamanBantuan().setVisible(true);

}

});

}

}

Listing Program – HalamanTentang.java

package View;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

/**

*

* @author Adiman

*/

public class HalamanTentang extends javax.swing.JFrame {

/**

* Creates new form HalamanUtama

*/

public HalamanTentang() {

initComponents();

setTitle("Halaman Tentang");

setLocationRelativeTo(this);

setResizable(false);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 177: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

160

/**

* 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() {

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setTitle("AKU");

setBackground(new java.awt.Color(255, 255, 255));

setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

setMinimumSize(new java.awt.Dimension(860, 450));

setName("Form"); // NOI18N

jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

jPanel1.setName("jPanel1"); // NOI18N

jLabel5.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel5.setText("SISTEM PREDIKSI PENJUALAN HELM MENGGUNAKAN");

jLabel5.setName("jLabel5"); // NOI18N

jLabel6.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N

jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel6.setText("ALGORITMA HIERARCHICAL DIVISIVE");

jLabel6.setName("jLabel6"); // NOI18N

jLabel4.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/Image/logo.png"))); // NOI18N

jLabel4.setName("jLabel4"); // NOI18N

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(14, 14, 14)

.addComponent(jLabel4)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILI

NG, false)

.addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE,

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 178: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

161

.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 721,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(36, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(20, 20, 20)

.addComponent(jLabel5)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel6)

.addContainerGap(20, Short.MAX_VALUE))

.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE,

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

);

jPanel4.setBackground(new java.awt.Color(255, 255, 255));

jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());

jPanel4.setName("jPanel4"); // NOI18N

jLabel7.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel7.setText("PENGEMBANGAN ALAT BANTU");

jLabel7.setName("jLabel7"); // NOI18N

jLabel8.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel8.setText("ALGORITMA HIERARCHICAL DIVISIVE");

jLabel8.setName("jLabel8"); // NOI18N

jLabel9.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel9.setText("PREDIKSI PENJUALAN HELM MENGGUNAKAN");

jLabel9.setName("jLabel9"); // NOI18N

jLabel11.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N

jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel11.setText("Dibuat oleh :");

jLabel11.setName("jLabel11"); // NOI18N

jLabel12.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N

jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel12.setText("ISIDORUS CAHYO ADI PRASETYO");

jLabel12.setName("jLabel12"); // NOI18N

jLabel14.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 179: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

162

jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel14.setText("115314009");

jLabel14.setName("jLabel14"); // NOI18N

jLabel15.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel15.setText("Yogyakarta");

jLabel15.setName("jLabel15"); // NOI18N

jLabel17.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel17.setText("2015");

jLabel17.setName("jLabel17"); // NOI18N

jLabel18.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel18.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel18.setText("Universitas Sanata Dharma");

jLabel18.setName("jLabel18"); // NOI18N

jLabel19.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel19.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel19.setText("Program Studi Teknik Informatika");

jLabel19.setName("jLabel19"); // NOI18N

jLabel20.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N

jLabel20.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel20.setText("Fakultas Sains dan Teknologi");

jLabel20.setName("jLabel20"); // NOI18N

kembaliButton.setText("KEMBALI");

kembaliButton.setName("kembaliButton"); // NOI18N

kembaliButton.addActionListener(new java.awt.event.ActionListener() {

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

kembaliButtonActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel4Layout.createSequentialGroup()

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

private void kembaliButtonActionPerformed(java.awt.event.ActionEvent evt) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 180: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

163

try {

HalamanUtama awal = new HalamanUtama();

awal.setVisible(true);

this.dispose();

} catch (SQLException ex) {

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

}

}

public static void main(String args[]) {

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

@Override

public void run() {

new HalamanTentang().setVisible(true);

}

});

}

}

Listing Program HalamanUtama.java

/*

* HalamanUtama.java

*

* Created on Jan 2, 2014, 1:58:00 PM

*/

package View;

import Controller.controlRangeHarga;

import Entity.DataObyek;

import Entity.Graph;

import Entity.KoneksiDB;

import Entity.RangeHarga;

import java.awt.Cursor;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.math.BigDecimal;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 181: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

164

import java.sql.SQLException;

import java.sql.Statement;

import java.util.*;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JFileChooser;

import javax.swing.JOptionPane;

import javax.swing.JTable;

import javax.swing.RowSorter;

import javax.swing.SortOrder;

import javax.swing.filechooser.FileNameExtensionFilter;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableModel;

import javax.swing.table.TableRowSorter;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.tree.DefaultTreeModel;

/**

*

* @author Adiman

*/

public class HalamanUtama extends javax.swing.JFrame {

private DefaultTableModel model;

ArrayList<DataObyek> Objekdat = new ArrayList<>();

ArrayList<DataObyek> hasilPengelompokan = new ArrayList<>();

Vector coluomDataFix = new Vector();

Vector InputData = new Vector();

Vector FixDataPre = new Vector();

ArrayList<String> tipekelompok1 = new ArrayList<String>();

ArrayList<String> tipekelompok2 = new ArrayList<String>();

ArrayList<String> tipekelompok3 = new ArrayList<String>();

ArrayList<String> tipekelompok4 = new ArrayList<String>();

ArrayList<String> tipekelompok5 = new ArrayList<String>();

ArrayList<String> tes2 = new ArrayList<String>();

String url = "jdbc:mysql://localhost:3306/skripsi";

String userid = "root";

String password = "1234";

Connection con;

Statement stm;

/**

* Creates new form HalamanUtama

*

* @throws java.sql.SQLException

*/

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 182: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

165

public HalamanUtama() throws SQLException {

KoneksiDB kon = new KoneksiDB();

controlRangeHarga ccrlRangeHarga = new controlRangeHarga();

initComponents();

lihatRangeHarga();

setTitle("Halaman Utama");

setLocationRelativeTo(this);

//setResizable(false);

submitButton.setEnabled(false);

jButtonSimpan.setEnabled(false);

jButton1.setEnabled(false);

batalSeleksiButton.setEnabled(false);

preprosesButton1.setEnabled(false);

Objekdat.clear();

InputData.clear();

FixDataPre.clear();

hasilPengelompokan.clear();

FixDataPre.clear();

tipekelompok1.clear();

tipekelompok2.clear();

tipekelompok3.clear();

tipekelompok4.clear();

tipekelompok5.clear();

jTabbedPane1.setSelectedComponent(jPanel4);

}

public void lihatRangeHarga() {

try {

ResultSet rs1 = controlRangeHarga.tampilkanRangeNilai("I");

rs1.beforeFirst();

while (rs1.next()) {

bawah1filed.setText(rs1.getString(1));

atas1filed.setText(rs1.getString(2));

}

ResultSet rs2 = controlRangeHarga.tampilkanRangeNilai("II");

rs2.beforeFirst();

while (rs2.next()) {

bawah2filed.setText(rs2.getString(1));

atas2filed.setText(rs2.getString(2));

}

ResultSet rs3 = controlRangeHarga.tampilkanRangeNilai("III");

rs3.beforeFirst();

while (rs3.next()) {

bawah3filed.setText(rs3.getString(1));

atas3filed.setText(rs3.getString(2));

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 183: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

166

ResultSet rs4 = controlRangeHarga.tampilkanRangeNilai("IV");

rs4.beforeFirst();

while (rs4.next()) {

bawah4filed.setText(rs4.getString(1));

atas4filed.setText(rs4.getString(2));

}

ResultSet rs5 = controlRangeHarga.tampilkanRangeNilai("V");

rs5.beforeFirst();

while (rs5.next()) {

bawah5filed.setText(rs5.getString(1));

atas5filed.setText(rs5.getString(2));

}

} catch (SQLException ex) {

JOptionPane.showMessageDialog(null, "Nilai kategori kosong!", ""

+ "Pembaritahuan", JOptionPane.INFORMATION_MESSAGE);

}

}

public void TampilLabel() {

ArrayList columnNames = new ArrayList();

ArrayList data = new ArrayList();

String sql = "SELECT\n"

+ "sub_datacluster.cluster AS Cluster,\n"

+ "sub_datacluster.anggota AS Anggota\n"

+ "FROM\n"

+ "sub_datacluster\n"

+ "ORDER BY\n"

+ "Cluster ASC";

try (Connection connection = DriverManager.getConnection(url, userid, password);

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery(sql)) {

ResultSetMetaData md = rs.getMetaData();

int columns = md.getColumnCount();

for (int i = 1; i <= columns; i++) {

columnNames.add(md.getColumnName(i));

}

while (rs.next()) {

ArrayList row = new ArrayList(columns);

for (int i = 1; i <= columns; i++) {

row.add(rs.getObject(i));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 184: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

167

}

data.add(row);

}

} catch (SQLException e) {

System.out.println(e.getMessage());

}

Vector columnNamesVector = new Vector();

Vector dataVector = new Vector();

for (int i = 0; i < data.size(); i++) {

ArrayList subArray = (ArrayList) data.get(i);

Vector subVector = new Vector();

for (int j = 0; j < subArray.size(); j++) {

subVector.add(subArray.get(j));

}

dataVector.add(subVector);

}

for (int i = 0; i < columnNames.size(); i++) {

columnNamesVector.add(columnNames.get(i));

}

DefaultTableModel tabelmodel1 = new DefaultTableModel(dataVector,

columnNamesVector);

DataLabel.setModel(tabelmodel1);

DataLabel.setAutoCreateRowSorter(true);

}

public void TampilJML() {

ArrayList columnNames = new ArrayList();

ArrayList data = new ArrayList();

String sql = "select `sub_datacluster`.`cluster` AS `Cluster`,"

+ "count(`sub_datacluster`.`anggota`) AS `Jumlah Anggota Cluster` "

+ "from `sub_datacluster` group by `sub_datacluster`.`cluster` ORDER BY\n"

+ "sub_datacluster.id ASC";

try (Connection connection = DriverManager.getConnection(url, userid, password);

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery(sql)) {

ResultSetMetaData md = rs.getMetaData();

int columns = md.getColumnCount();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 185: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

168

for (int i = 1; i <= columns; i++) {

columnNames.add(md.getColumnName(i));

}

while (rs.next()) {

ArrayList row = new ArrayList(columns);

for (int i = 1; i <= columns; i++) {

row.add(rs.getObject(i));

}

data.add(row);

}

} catch (SQLException e) {

System.out.println(e.getMessage());

}

Vector columnNamesVector = new Vector();

Vector dataVector = new Vector();

for (int i = 0; i < data.size(); i++) {

ArrayList subArray = (ArrayList) data.get(i);

Vector subVector = new Vector();

for (int j = 0; j < subArray.size(); j++) {

subVector.add(subArray.get(j));

}

dataVector.add(subVector);

}

for (int i = 0; i < columnNames.size(); i++) {

columnNamesVector.add(columnNames.get(i));

}

DefaultTableModel tabelmodel1 = new DefaultTableModel(dataVector,

columnNamesVector);

DataJml.setModel(tabelmodel1);

DataJml.setAutoCreateRowSorter(true);

// jTabbedPane1.setSelectedComponent(DivisivePanel);

// jTabbedPane1.setEnabledAt(1, true);

}

public void TampilSSE() {

String sql = "SELECT SUM(mysum) FROM(SELECT DISTINCT sub_datacluster.sse

AS "

+ " mysum FROM sub_datacluster GROUP BY sub_datacluster.cluster) AS bb;";

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 186: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

169

try (Connection connection = DriverManager.getConnection(url, userid, password);

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery(sql)) {

while (rs.next()) {

TotalSSETextField1.setText(rs.getString("SUM(mysum)"));

}

} catch (SQLException e) {

System.out.println(e.getMessage());

}

}

public void SimpanCluster() {

JFileChooser fileChooser = new JFileChooser(new File("E:/"));

fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft Excel (*.xls)", "xls"));

fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft Word (*.doc)",

"doc"));

fileChooser.setFileFilter(new FileNameExtensionFilter("Text Documents (*.txt)", "txt"));

FileOutputStream file_output_stream;

int returnValue = fileChooser.showSaveDialog(this);

if (returnValue == JFileChooser.APPROVE_OPTION) {

String filename = fileChooser.getSelectedFile().getPath();

String ext = fileChooser.getFileFilter().getDescription();

if (ext.equals("Microsoft Excel (*.xls)")) {

File f;

f = new File(filename + ".xls");

try {

file_output_stream = new FileOutputStream(f);

} catch (FileNotFoundException e) {

e.printStackTrace();

return;

}

try {

TableModel model = DataLabel.getModel();

FileWriter excel = new FileWriter(f);

for (int i = 0; i < model.getColumnCount(); i++) {

excel.write(model.getColumnName(i) + "\t");

}

excel.write("\n");

for (int i = 0; i < model.getRowCount(); i++) {

for (int j = 0; j < model.getColumnCount(); j++) {

excel.write(model.getValueAt(i, j).toString() + "\t");

}

excel.write("\n");

}

excel.close();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 187: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

170

} catch (IOException i) {

JOptionPane.showMessageDialog(this, "Penyimpanan Gagal");

}

} else if (ext.equals("Microsoft Word (*.doc)")) {

File f;

f = new File(filename + ".doc");

try {

file_output_stream = new FileOutputStream(f);

} catch (FileNotFoundException e) {

e.printStackTrace();

return;

}

try {

BufferedWriter bfw = new BufferedWriter(new FileWriter(f));

for (int i = 0; i < DataLabel.getColumnCount(); i++) {

bfw.write(DataLabel.getColumnName(i));

bfw.write("\t");

}

for (int i = 0; i < DataLabel.getRowCount(); i++) {

bfw.newLine();

for (int j = 0; j < DataLabel.getColumnCount(); j++) {

bfw.write(DataLabel.getValueAt(i, j).toString());

bfw.write("\t");

}

}

bfw.close();

} catch (IOException i) {

JOptionPane.showMessageDialog(this, "Penyimpanan Gagal");

}

} else if (ext.equals("Text Documents (*.txt)")) {

File f;

f = new File(filename + ".txt");

try {

file_output_stream = new FileOutputStream(f);

} catch (FileNotFoundException e) {

e.printStackTrace();

return;

}

try {

BufferedWriter bfw = new BufferedWriter(new FileWriter(f));

for (int i = 0; i < DataLabel.getColumnCount(); i++) {

bfw.write(DataLabel.getColumnName(i));

bfw.write("\t");

}

for (int i = 0; i < DataLabel.getRowCount(); i++) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 188: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

171

bfw.newLine();

for (int j = 0; j < DataLabel.getColumnCount(); j++) {

bfw.write(DataLabel.getValueAt(i, j).toString());

bfw.write("\t");

}

}

bfw.close();

} catch (IOException i) {

JOptionPane.showMessageDialog(this, "Penyimpanan Gagal");

}

}

JOptionPane.showMessageDialog(this, "Hasil Pengklasteran Telah Berhasil Disimpan

di " + filename);

}

}

public void cekInputRangeHarga() {

RangeHarga nilaiRange = new RangeHarga();

controlRangeHarga crlharga = new controlRangeHarga();

boolean cekData = false;

if (atas1filed.getText().equals("") || atas2filed.getText().equals("")

|| atas3filed.getText().equals("") || atas4filed.getText().equals("")

|| atas5filed.getText().equals("") || bawah1filed.getText().equals("")

|| bawah2filed.getText().equals("") || bawah3filed.getText().equals("")

|| bawah4filed.getText().equals("") || bawah5filed.getText().equals("")) {

JOptionPane.showMessageDialog(null, "Data Harus Terisi Semua!", "Peringatan",

JOptionPane.ERROR_MESSAGE);

} else if ((Integer.valueOf(bawah2filed.getText())) <=

(Integer.valueOf(bawah1filed.getText()))

|| (Integer.valueOf(atas2filed.getText())) <= (Integer.valueOf(atas1filed.getText())))

{

JOptionPane.showMessageDialog(null, "Proses Kelompok 2 gagal, Silahkan cek

kembali range nilai", ""

+ "Informasi", JOptionPane.INFORMATION_MESSAGE);

} else if ((Integer.valueOf(bawah2filed.getText())) <

(Integer.valueOf(atas1filed.getText()))

|| (Integer.valueOf(atas2filed.getText())) < (Integer.valueOf(bawah2filed.getText())))

{

JOptionPane.showMessageDialog(null, "Proses Kelompok 2 gagal, Silahkan cek

kembali range nilai", ""

+ "Informasi", JOptionPane.INFORMATION_MESSAGE);

} else if ((Integer.valueOf(bawah3filed.getText())) <=

(Integer.valueOf(bawah2filed.getText()))

|| (Integer.valueOf(atas3filed.getText())) <= (Integer.valueOf(atas2filed.getText())))

{

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 189: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

172

JOptionPane.showMessageDialog(null, "Proses Kelompok 3 gagal, Silahkan cek

kembali range nilai", ""

+ "Informasi", JOptionPane.INFORMATION_MESSAGE);

} else if ((Integer.valueOf(bawah4filed.getText())) <=

(Integer.valueOf(bawah3filed.getText()))

|| (Integer.valueOf(atas4filed.getText())) <= (Integer.valueOf(atas3filed.getText())))

{

JOptionPane.showMessageDialog(null, "Proses Kelompok 4 gagal, Silahkan cek

kembali range nilai", ""

+ "Informasi", JOptionPane.INFORMATION_MESSAGE);

} else if ((Integer.valueOf(bawah5filed.getText())) <=

(Integer.valueOf(bawah4filed.getText()))

|| (Integer.valueOf(atas5filed.getText())) <= (Integer.valueOf(atas4filed.getText())))

{

JOptionPane.showMessageDialog(null, "Proses Kelompok 5 gagal, Silahkan cek

kembali range nilai",

"Informasi", JOptionPane.INFORMATION_MESSAGE);

} else {

try {

nilaiRange.setHargaBawah1(Double.parseDouble(bawah1filed.getText()));

nilaiRange.setHargaAtas1(Double.parseDouble(atas1filed.getText()));

nilaiRange.setHargaBawah2(Double.parseDouble(bawah2filed.getText()));

nilaiRange.setHargaAtas2(Double.parseDouble(atas2filed.getText()));

nilaiRange.setHargaBawah3(Double.parseDouble(bawah3filed.getText()));

nilaiRange.setHargaAtas3(Double.parseDouble(atas3filed.getText()));

nilaiRange.setHargaBawah4(Double.parseDouble(bawah4filed.getText()));

nilaiRange.setHargaAtas4(Double.parseDouble(atas4filed.getText()));

nilaiRange.setHargaBawah5(Double.parseDouble(bawah5filed.getText()));

nilaiRange.setHargaAtas5(Double.parseDouble(atas5filed.getText()));

cekData = crlharga.cekIsiData();

System.out.println(cekData);

if (cekData == false) {

crlharga.prosesUpdateRange(nilaiRange);

JOptionPane.showMessageDialog(null, "Range Nilai Berhasil Disimpan",

"Informasi", JOptionPane.INFORMATION_MESSAGE);

jTabbedPane1.setEnabledAt(2, true);

} else {

crlharga.prosesInsertRange(nilaiRange);

JOptionPane.showMessageDialog(null, "Range Nilai Berhasil Disimpan",

"Informasi", JOptionPane.INFORMATION_MESSAGE);

jTabbedPane1.setEnabledAt(2, true);

}

} catch (SQLException ex) {

JOptionPane.showMessageDialog(null, "Proses Gagal, Silahkan cek kembali range

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 190: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

173

nilai",

"Informasi", JOptionPane.INFORMATION_MESSAGE);

}

}

}

private void deleteRange() {

controlRangeHarga ctrl = new controlRangeHarga();

try {

// TODO add your handling code here:

ctrl.deleteIsiData();

JOptionPane.showMessageDialog(null, "Range Nilai Berhasil Dihapus",

"Informasi", JOptionPane.INFORMATION_MESSAGE);

bawah1filed.setText("");

bawah2filed.setText("");

bawah3filed.setText("");

bawah4filed.setText("");

bawah5filed.setText("");

atas1filed.setText("");

atas2filed.setText("");

atas3filed.setText("");

atas4filed.setText("");

atas5filed.setText("");

} catch (SQLException ex) {

JOptionPane.showMessageDialog(null, "Range Nilai Gagal Dihapus",

"Informasi", JOptionPane.INFORMATION_MESSAGE);

Logger

.getLogger(HalamanUtama.class

.getName()).log(Level.SEVERE, null, ex);

}

}

public void pilih() {

JFileChooser fileChooser = new JFileChooser();

fileChooser.setVisible(true);

int returnValue = fileChooser.showOpenDialog(null);

if (returnValue == JFileChooser.APPROVE_OPTION) {

String namaFile = fileChooser.getSelectedFile().getPath();

String[] cut_namafile = namaFile.split("\\.");

if (cut_namafile[1].equals("csv")) {

File csv = fileChooser.getSelectedFile();

Vector columnNameKeseluruhan = new Vector();

Vector dataKeseluruhan = new Vector();

String line;

try {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 191: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

174

BufferedReader br = new BufferedReader(new FileReader(csv));

StringTokenizer st = new StringTokenizer(br.readLine(), ",");

while (st.hasMoreElements()) {

columnNameKeseluruhan.add(st.nextToken());

}

while ((line = br.readLine()) != null) {

StringTokenizer st2 = new StringTokenizer(line, ",");

Vector row = new Vector();

while (st2.hasMoreTokens()) {

row.add(st2.nextToken());

}

dataKeseluruhan.add(row);

DefaultTableModel model = new DefaultTableModel(dataKeseluruhan,

columnNameKeseluruhan);

tabelInputData.setModel(model);

// tabelInputData.setAutoCreateRowSorter(true);

TableModel tablemodel = tabelInputData.getModel();

int jumlahDataSeleksi = tablemodel.getRowCount();

jumlahData.setText(" " + jumlahDataSeleksi);

submitButton.setEnabled(true);

}

System.out.println("Input File Sukses");

pilihFileTextField.setText(csv.getPath());

} catch (Exception e) {

JOptionPane.showMessageDialog(null, "Format tidak sesuai");

}

}

}

}

public void InputPreprosesData(JTable tabel) {

DefaultTableModel dtm = (DefaultTableModel) tabel.getModel();

int nRow = dtm.getRowCount(), col = dtm.getColumnCount();

Vector columnNameKeseluruhan = new Vector();

Vector dataKeseluruhan = new Vector();

double[][] tabelData = new double[nRow][col];

double[][] zScore = new double[nRow][col];

for (int i = 0; i < tabel.getColumnCount(); i++) {

columnNameKeseluruhan.add(tabel.getColumnName(i));

}

for (int i = 0; i < tabel.getRowCount(); i++) {

ArrayList<String> tes = new ArrayList<>();

for (int j = 0; j < tabel.getColumnCount(); j++) {

tes.add((String) dtm.getValueAt(i, j));

}

DataObyek dob = new DataObyek();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 192: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

175

dob.setKodeBarang(tes.get(1));

dob.setNamaBarang(tes.get(2).substring(0));

dob.setHargaJual(tes.get(5));

dob.setQuantity(Double.parseDouble(tes.get(6)));

dob.setTotal(tes.get(10));

dob.setArea(tes.get(19).substring(0));

dob.setKelompokHarga(tes.get(20).substring(1));

Objekdat.add(dob);

}

Double a1 = Double.parseDouble(bawah1filed.getText());

Double a2 = Double.parseDouble(bawah2filed.getText());

Double a3 = Double.parseDouble(bawah3filed.getText());

Double a4 = Double.parseDouble(bawah4filed.getText());

Double a5 = Double.parseDouble(bawah5filed.getText());

Double b1 = Double.parseDouble(atas1filed.getText());

Double b2 = Double.parseDouble(atas2filed.getText());

Double b3 = Double.parseDouble(atas3filed.getText());

Double b4 = Double.parseDouble(atas4filed.getText());

Double b5 = Double.parseDouble(atas5filed.getText());

for (int i = 0; i < Objekdat.size(); i++) {

Double a = Double.parseDouble(Objekdat.get(i).getHargaJual());

if ((a >= a1) && (a < b1)) {

Objekdat.get(i).setKelompokHarga("1");

} else if ((a >= a2) && (a < b2)) {

Objekdat.get(i).setKelompokHarga("2");

} else if ((a >= a3) && (a < b3)) {

Objekdat.get(i).setKelompokHarga("3");

} else if ((a >= a4) && (a < b4)) {

Objekdat.get(i).setKelompokHarga("4");

} else if ((a >= a5) && (a < b5)) {

Objekdat.get(i).setKelompokHarga("5");

}

}

for (int i = 0; i < Objekdat.size(); i++) {

Vector sementara = new Vector();

sementara.add(Objekdat.get(i).getKodeBarang());

sementara.add(Objekdat.get(i).getNamaBarang());

sementara.add(Objekdat.get(i).getHargaJual());

sementara.add(Objekdat.get(i).getQuantity());

sementara.add(Objekdat.get(i).getTotal());

sementara.add(Objekdat.get(i).getArea());

sementara.add(Objekdat.get(i).getKelompokHarga());

InputData.add(sementara);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 193: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

176

}

coluomDataFix.add(columnNameKeseluruhan.get(1));

coluomDataFix.add(columnNameKeseluruhan.get(2));

coluomDataFix.add(columnNameKeseluruhan.get(5));

coluomDataFix.add(columnNameKeseluruhan.get(6));

coluomDataFix.add(columnNameKeseluruhan.get(10));

coluomDataFix.add(columnNameKeseluruhan.get(19));

coluomDataFix.add(columnNameKeseluruhan.get(20));

DefaultTableModel model = new DefaultTableModel(InputData, coluomDataFix);

kp.setModel(model);

TableModel tablemodel = kp.getModel();

preprosesButton1.setEnabled(true);

submitButton.setEnabled(false);

batalSeleksiButton.setEnabled(true);

}

public void SubmitPreprosesing() {

System.out.println("\nMulai Submite");

System.out.println("Prosesing pengelompokan tipe");

for (int i = 0; i < Objekdat.size(); i++) {

StringTokenizer st = new StringTokenizer(Objekdat.get(i).getNamaBarang(), "\\s+");

ArrayList<String> a = new ArrayList<>();

while (st.hasMoreElements()) {

a.add(st.nextToken());

}

if (Integer.parseInt(Objekdat.get(i).getKelompokHarga()) == 1) {

tipekelompok1.add(a.get(0).toString());

} else if (Integer.parseInt(Objekdat.get(i).getKelompokHarga()) == 2) {

tipekelompok2.add(a.get(0).toString());

} else if (Integer.parseInt(Objekdat.get(i).getKelompokHarga()) == 3) {

tipekelompok3.add(a.get(0).toString());

} else if (Integer.parseInt(Objekdat.get(i).getKelompokHarga()) == 4) {

tipekelompok4.add(a.get(0).toString());

} else if (Integer.parseInt(Objekdat.get(i).getKelompokHarga()) == 5) {

tipekelompok5.add(a.get(0).toString());

}

}

// Pengambungan HashShet tipe data di kelompok 1

HashSet<String> PenggambunganTipeKelompok1 = new HashSet<>();

PenggambunganTipeKelompok1.addAll(tipekelompok1);

tipekelompok1.clear();

tipekelompok1.addAll(PenggambunganTipeKelompok1);

// Pengambungan HashShet tipe data di kelompok 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 194: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

177

HashSet<String> PenggambunganTipeKelompok2 = new HashSet<>();

PenggambunganTipeKelompok2.addAll(tipekelompok2);

tipekelompok2.clear();

tipekelompok2.addAll(PenggambunganTipeKelompok2);

// Pengambungan HashShet tipe data di kelompok 3

HashSet<String> PenggambunganTipeKelompok3 = new HashSet<>();

PenggambunganTipeKelompok3.addAll(tipekelompok3);

tipekelompok3.clear();

tipekelompok3.addAll(PenggambunganTipeKelompok3);

// Pengambungan HashShet tipe data di kelompok 4

HashSet<String> PenggambunganTipeKelompok4 = new HashSet<>();

PenggambunganTipeKelompok4.addAll(tipekelompok4);

tipekelompok4.clear();

tipekelompok4.addAll(PenggambunganTipeKelompok4);

// Pengambungan HashShet tipe data di kelompok 5

HashSet<String> PenggambunganTipeKelompok5 = new HashSet<>();

PenggambunganTipeKelompok5.addAll(tipekelompok5);

tipekelompok5.clear();

tipekelompok5.addAll(PenggambunganTipeKelompok5);

double[][] z = new double[800][800];

for (int k = 0; k < tipekelompok1.size(); k++) {

double jumlahQuantity = 0;

for (int j = 0; j < Objekdat.size(); j++) {

StringTokenizer st = new StringTokenizer(Objekdat.get(j).getNamaBarang(),

"\\s+");

ArrayList<String> a = new ArrayList<>();

while (st.hasMoreElements()) {

a.add(st.nextToken());

}

String tipe = a.get(0).toString();

if (tipekelompok1.get(k).toString().equals(tipe)) {

double quatity = Objekdat.get(j).getQuantity();

double datatampung = quatity;

jumlahQuantity = datatampung;

if (z[0][k] == 0) {

z[0][k] = datatampung;

} else {

jumlahQuantity = z[0][k];

jumlahQuantity = jumlahQuantity + datatampung;

z[0][k] = jumlahQuantity;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 195: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

178

}

DataObyek dob = new DataObyek(tipekelompok1.get(k).toString(), "1",

jumlahQuantity);

hasilPengelompokan.add(dob);

}

for (int k = 0; k < tipekelompok2.size(); k++) {

double jumlahQuantity = 0;

for (int j = 0; j < Objekdat.size(); j++) {

StringTokenizer st = new StringTokenizer(Objekdat.get(j).getNamaBarang(),

"\\s+");

ArrayList<String> a = new ArrayList<>();

while (st.hasMoreElements()) {

a.add(st.nextToken());

}

String tipe = a.get(0).toString();

if (tipekelompok2.get(k).toString().equals(tipe)) {

double quatity = Objekdat.get(j).getQuantity();

double datatampung = quatity;

jumlahQuantity = datatampung;

if (z[1][k] == 0) {

z[1][k] = datatampung;

} else {

jumlahQuantity = z[1][k];

jumlahQuantity = jumlahQuantity + datatampung;

z[1][k] = jumlahQuantity;

}

}

}

DataObyek dob = new DataObyek(tipekelompok2.get(k).toString(), "2",

jumlahQuantity);

hasilPengelompokan.add(dob);

}

for (int k = 0; k < tipekelompok3.size(); k++) {

double jumlahQuantity = 0;

for (int j = 0; j < Objekdat.size(); j++) {

StringTokenizer st = new StringTokenizer(Objekdat.get(j).getNamaBarang(),

"\\s+");

ArrayList<String> a = new ArrayList<>();

while (st.hasMoreElements()) {

a.add(st.nextToken());

}

String tipe = a.get(0).toString();

if (tipekelompok3.get(k).toString().equals(tipe)) {

double quatity = Objekdat.get(j).getQuantity();

double datatampung = quatity;

jumlahQuantity = datatampung;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 196: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

179

if (z[2][k] == 0) {

z[2][k] = datatampung;

} else {

jumlahQuantity = z[2][k];

jumlahQuantity = jumlahQuantity + datatampung;

z[2][k] = jumlahQuantity;

}

}

}

DataObyek dob = new DataObyek(tipekelompok3.get(k).toString(), "3",

jumlahQuantity);

hasilPengelompokan.add(dob);

}

for (int k = 0; k < tipekelompok4.size(); k++) {

double jumlahQuantity = 0;

for (int j = 0; j < Objekdat.size(); j++) {

StringTokenizer st = new StringTokenizer(Objekdat.get(j).getNamaBarang(),

"\\s+");

ArrayList<String> a = new ArrayList<>();

while (st.hasMoreElements()) {

a.add(st.nextToken());

}

String tipe = a.get(0).toString();

if (tipekelompok4.get(k).toString().equals(tipe)) {

double quatity = Objekdat.get(j).getQuantity();

double datatampung = quatity;

jumlahQuantity = datatampung;

if (z[3][k] == 0) {

z[3][k] = datatampung;

} else {

jumlahQuantity = z[3][k];

jumlahQuantity = jumlahQuantity + datatampung;

z[3][k] = jumlahQuantity;

}

}

}

DataObyek dob = new DataObyek(tipekelompok4.get(k).toString(), "4",

jumlahQuantity);

hasilPengelompokan.add(dob);

}

for (int k = 0; k < tipekelompok5.size(); k++) {

double jumlahQuantity = 0;

for (int j = 0; j < Objekdat.size(); j++) {

StringTokenizer st = new StringTokenizer(Objekdat.get(j).getNamaBarang(),

"\\s+");

ArrayList<String> a = new ArrayList<>();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 197: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

180

while (st.hasMoreElements()) {

a.add(st.nextToken());

}

String tipe = a.get(0).toString();

if (tipekelompok5.get(k).toString().equals(tipe)) {

double quatity = Objekdat.get(j).getQuantity();

double datatampung = quatity;

jumlahQuantity = datatampung;

if (z[4][k] == 0) {

z[4][k] = datatampung;

} else {

jumlahQuantity = z[4][k];

jumlahQuantity = jumlahQuantity + datatampung;

z[4][k] = jumlahQuantity;

}

}

}

DataObyek dob = new DataObyek(tipekelompok5.get(k).toString(), "5",

jumlahQuantity);

hasilPengelompokan.add(dob);

}

for (int i = 0; i < hasilPengelompokan.size(); i++) {

Vector sementara1 = new Vector();

sementara1.add(hasilPengelompokan.get(i).getNamaBarang());

sementara1.add(hasilPengelompokan.get(i).getKelompokHarga());

sementara1.add(hasilPengelompokan.get(i).getQuantity());

FixDataPre.add(sementara1);

}

Vector namakolom = new Vector();

namakolom.add("Nama Barang");

namakolom.add("Kelompok Harga");

namakolom.add("Total Quantity");

DefaultTableModel tabelmodel1 = new DefaultTableModel(FixDataPre, namakolom);

dataKelompokHargaTable.setModel(tabelmodel1);

TableRowSorter<TableModel> sorter = new

TableRowSorter<>(dataKelompokHargaTable.getModel());

dataKelompokHargaTable.setRowSorter(sorter);

List<RowSorter.SortKey> sortKeys = new ArrayList<>();

int columnIndexBarang = 1;

sortKeys.add(new RowSorter.SortKey(columnIndexBarang, SortOrder.ASCENDING));

int columnIndexKelompok = 0;

sortKeys.add(new RowSorter.SortKey(columnIndexKelompok,

SortOrder.ASCENDING));

sorter.setSortKeys(sortKeys);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 198: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

181

sorter.sort();

jumlahDataDivisiveTextField.setText("" + dataKelompokHargaTable.getRowCount());

//jTabbedPane1.setSelectedComponent(DivisivePanel);

jButton1.setEnabled(true);

preprosesButton1.setEnabled(false);

// jTabbedPane1.setEnabledAt(1, true);

}

public void prosesclustering() throws SQLException {

Graph graph;

controlRangeHarga crlharga = new controlRangeHarga();

crlharga.deletePreproses();

setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

int decp = 2;

float t1 = System.nanoTime();

graph = new Graph(dataKelompokHargaTable.getRowCount());

graph.inputData(dataKelompokHargaTable);

crlharga.simpanPre(dataKelompokHargaTable);

System.out.println("\n*********************************Proses

Clustering*********************************");

graph.LostClustering();

float t2 = System.nanoTime();

double time = ((t2 - t1) * java.lang.Math.pow(10, -9));

BigDecimal bd = new BigDecimal(time);

bd = bd.setScale(decp, BigDecimal.ROUND_DOWN);

time = bd.doubleValue();

jTabbedPane1.setSelectedComponent(DivisivePanel);

TampilLabel();

TampilJML();

TampilSSE();

lamaclusteriTextField.setText("" + time);

setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));

jButtonSimpan.setEnabled(true);

jButton1.setEnabled(false);

pop_tree();

graph.tampilMap();

}

private void batalSeleksiButtonActionPerformed(java.awt.event.ActionEvent evt) {

try {

HalamanUtama utama = new HalamanUtama();

utama.setVisible(true);

this.dispose();

} catch (SQLException ex) {

Logger.getLogger(HalamanUtama.class

.getName()).log(Level.SEVERE, null, ex);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 199: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

182

}

}

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {

InputPreprosesData(tabelInputData);

// SubmitPreprosesing();

}

private void pilihFileButtonActionPerformed(java.awt.event.ActionEvent evt) {

pilih();// pilihFile();

}

private void jButtonSimpanActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

SimpanCluster();

}

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

try {

prosesclustering();

} catch (SQLException ex) {

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

}

}

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {

HalamanTentang tentang = new HalamanTentang();

tentang.setVisible(true);

this.dispose();

}

private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {

HalamanBantuan bantuan = new HalamanBantuan();

bantuan.setVisible(true);

this.dispose();

}

private void jMenu1MenuSelected(javax.swing.event.MenuEvent evt) {

int keluar = JOptionPane.showConfirmDialog(null, "Apakah anda yakin ingin keluar dari

sistem?", "Konfirmasi", JOptionPane.YES_NO_OPTION);

if (keluar == JOptionPane.YES_OPTION) {

this.dispose();

}

}

private void preprosesButton1ActionPerformed(java.awt.event.ActionEvent evt) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 200: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

183

SubmitPreprosesing();// TODO add your handling code here:

}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

}

private void jButtonSimpanRangeActionPerformed(java.awt.event.ActionEvent evt) {

cekInputRangeHarga();

}

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

deleteRange();

}

private void jButtonBatalActionPerformed(java.awt.event.ActionEvent evt) {

bawah1filed.setText("");

bawah2filed.setText("");

bawah3filed.setText("");

bawah4filed.setText("");

bawah5filed.setText("");

atas1filed.setText("");

atas2filed.setText("");

atas3filed.setText("");

atas4filed.setText("");

atas5filed.setText("");

}

public final void pop_tree() throws SQLException {

KoneksiDB kon = new KoneksiDB();

try {

try {

con = kon.getConnection();

stm = con.createStatement();

} catch (Exception ex) {

System.out.println("gagal 1");

ex.printStackTrace();

}

ArrayList list = new ArrayList();

list.add("Cluster Tree Node");

String sql = "SELECT * from datacluster";

ResultSet rs = stm.executeQuery(sql);

while (rs.next()) {

Object value[] = {rs.getString(1), rs.getString(2)};

list.add(value);

}

Object hierarchy[] = list.toArray();

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 201: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

184

DefaultMutableTreeNode root = processHierarchy(hierarchy);

DefaultTreeModel treeModel = new DefaultTreeModel(root);

jTree1.setModel(treeModel);

} catch (Exception e) {

System.out.println("gagal 2");

}

}

@SuppressWarnings("CallToThreadDumpStack")

public DefaultMutableTreeNode processHierarchy(Object[] hierarchy) throws

SQLException {

KoneksiDB kon = new KoneksiDB();

DefaultMutableTreeNode node = new DefaultMutableTreeNode(hierarchy[0]);

try {

int ctrow = 0;

int i = 0;

try {

try {

con = kon.getConnection();

stm = con.createStatement();

} catch (Exception ex) {

System.out.println("gagal 3");

ex.printStackTrace();

}

String sql = "SELECT id, cluster from datacluster group by cluster";

ResultSet rs = stm.executeQuery(sql);

while (rs.next()) {

ctrow = rs.getRow();

}

String L1Nam[] = new String[ctrow];

String L1Id[] = new String[ctrow];

ResultSet rs1 = stm.executeQuery(sql);

while (rs1.next()) {

L1Nam[i] = rs1.getString("cluster");

L1Id[i] = rs1.getString("id");

i++;

}

DefaultMutableTreeNode child, grandchild;

for (int childIndex = 0; childIndex < L1Nam.length; childIndex++) {

child = new DefaultMutableTreeNode(L1Nam[childIndex]);

node.add(child);//add each created child to root

String sql2 = "SELECT anggota, bobot from sub_datacluster where cluster= '" +

L1Nam[childIndex] + "' ";

ResultSet rs3 = stm.executeQuery(sql2);

while (rs3.next()) {

grandchild = new DefaultMutableTreeNode(rs3.getString("anggota"));

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 202: IMPLEMENTASI DATA MINING MENGGUNAKAN METODE

185

child.add(grandchild);//add each grandchild to each child

}

}

} catch (Exception ex) { ex.printStackTrace(); }

} catch (Exception e) { }

return (node);

}

public static void main(String args[]) {

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

@Override

public void run() {

try {

new HalamanUtama().setVisible(true);

} catch (SQLException ex) {

Logger.getLogger(HalamanUtama.class

.getName()).log(Level.SEVERE, null, ex);

}

}

});

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI