4.2.1 Perancangan Umum
4.2.1.1Input
Inputan dari sistem ini adalah data yang berasal dari file yang berekstensi .xls yang dapat dipilih langsung oleh pengguna. Pengguna juga berperan dalam
30
memasukkan nilai minimum support, minimum confidence dan nilai standar daya serap terlebih dahulu. Data yang dipakai adalah data nilai daya serap siswa SMA yang terdiri dari beberapa kolom kompetensi.
Pengguna
Pencarian Aturan Asosiasi dengan FP
Growth min support, min
confidence, data daya serap
aturan asosiasi
Gambar 4. 1Diagram Konteks
4.2.1.2Proses
Proses sistem terdiri dari beberapa langkah untuk dapat menemukan aturan asosiasi yang berfungsi untuk menemukan pola keterkaitan antar kompetensi yaitu:
1 Pengambilan data yang sudah melalui tahap preprocessing untuk digunakan
saat proses penambangan data.
2 Penentuan minimum support dan minimum confidence yang berfungsi
dalam menentukan aturan asosiasi.
3 Proses asosiasi untuk mencari pola keterkaitan kompetensi dijalankan.
4 Analisis hasil asosiasi terhadap proses penambangan data yang telah
dijalankan.
4.2.1.3Output
Sistem yang akan dibangun ini nantinya akan memberikan keluaran berupa aturan asosiasi yang memenuhi nilai minimum support dan minimum confidence beserta nilai lift ratio dan nilai confidence.
31
4.2.2 Diagram Use Case
Diagram usecase merupakan sebuah gambaran sistem yang dilihat dari sudut pandang pengguna sistem (user). Pengguna sistem dalam diagram usecase dapat juga disebut actor. Actor pada sistem ini hanya akan ada satu actor saja dan dapat melakukan 3 aktivitas seperti memilih data, mencari aturan dan menyimpan hasil. Ketiga aktivitas tersebut merupakan aktivitas yang saling berhubungan, sehingga tiap aktivitas harus dijalankan berurutan.
Pengguna
Memilih Data
Mencari aturan asosiasi
Menyimpan Hasil
<<include>>
<<include>>
32
4.2.3 Diagram Aktivitas
Diagram aktivitas sistem yang akan dibuat terlampir pada Lampiran 1. Diagram aktivitas yang dipakai sebanyak 3 buah menyesuaikan dengan jumlah aktivitas dari usecase yang ada. Diagram aktivitas tersebut terdiri dari:
1. Memilih data
2. Mencari aturan
3. Menyimpan hasil
4. Mencari aturan
4.2.4 Diagram Kelas Analisis
Fungsi dari pembuatan diagram kelas tahap analisis ini berguna untuk mempermudah dalam penyusunan sequence diagram. Diagram kelas analisis dapat dilihat pada Lampiran 2.
Tabel 4. 1 Daftar Kelas Untuk Tiap Usecase
Usecase Boundary Control Class Model Class (Entity)
Memilih data view_home view_preprocessing Control_atributSelection Model_atribuSelection Mencari aturan asosiasi
view_asosiasi Control_algorithm comparitorHeaderTable
TreeNode Model_combination Menyimpan hasil view_asosiasi 4.2.5 Diagram Sequence
Diagram sequence adalah diagram yang memperlihatkan atau menampilkan interaksi- interaksi antar objek di dalam sistem. Interaksi objek-objek tersebut termasuk
33
pengguna, boundary, controller dan model berupa pesan/message. Diagram sequence pada sistem ini terdiri dari 3 diagram sesuai dengan usecase. Diagram dapat dilihat pada Lampiran 3.
4.2.6 Struktur Data
Sistem pencarian aturan asosiasi ini membutuhkan suatu tempat penyimpanan data yang tidak membutuhkan memori yang terlalu banyak dan tidak menghabiskan waktu yang cukup banyak ketika sistem dijalankan karena dapat mengolah data dengan efisien. Berdasarkan kebutuhan diatas maka penelitian ini akan menggunakan konsep penyimpanan data menggunakan struktur data karena penyimpanan dengan struktur data tidak membutuhkan memori yang besar dan lebih efisien dalam mengolah data. Struktur data yang digunakan pada sistem ini adalah Tree dan Arraylist. Tree pada sistem ini dapat memiliki jumlah anak yang tidak sama jumlahnya untuk setiap node dan juga tidak bisa ditetapkan di awal. Maka struktur data Tree ini ditambahkan struktur data yang dinamis seperti List untuk menyimpan jumlah anaknya.
a. Tree
Dalam ilmu komputer, tree adalah sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari serangkaian node (simpul) yang saling berhubungan. Node-node tersebut dihubungkan oleh sebuah pointer parent dan child. Setiap node dapat memiliki 0 atau lebih node anak (child). Pada penelitian ini, pohon yang dibuat mempunyai anak yang bertipe List<TreeNode>. List ini dipilih karena ada beberapa node yang memiliki jumlah anak yang tidak bisa ditentukan dan tidak sama untuk tiap node-nya. Dalam perangkat lunak yang dibuat pembuatan node ini dilakukan di kelas TreeNode. Node yang dibuat akan berisikan informasi name, counts, next, parent dan child.
34
Gambar 4. 3 Ilustrasi FPTree
b. Arraylist
Arraylist memiliki sifat seperti array, tetapi perbedaan utamanya adalah Arraylist bersifat dinamis dalam arti dapat memperbesar kapasitasnya secara otomatis apabila diperlukan (Rickyanto,2003).
Pada penelitian ini penulis menggunakan arraylist dalam arraylist
(ArrayList<ArrayList<String>>) untuk membuat matriks. Penulis memilih
menggunakan arraylist karena dapat digunakan untuk membuat matrik dengan panjang data baris yang berbeda. Cara kerja arraylist pada sistem ini adalah yang pertama membuat objek arraylist yang pertama untuk menampung nama-nama kompetensi yang memenuhi syarat untuk satu sekolah. Contohnya seperti gambar di bawah ini. Berikut daftar kompetensi yang memenuhi standar nilai ketuntasan 75 yang dimasukkan kedalam array:
35
BIND6 BIND12 BIND16
Gambar 4. 4 Susunan arraylist untuk kode sekolah 01-010
BIND3 BIND4
Gambar 4. 5 Susunan arraylist untuk kode sekolah 01-019
Objek arraylist baru akan selalu dibuat untuk setiap kode sekolah yang berbeda. Setelah membuat objek arraylist untuk tiap sekolah maka akan dibuat objek arraylist untuk menjadikan satu semua objek arraylist sebelumnya. Gambaran datanya akan berubah menjadi seperti di gambar 4.6.
BIND6 BIND12 BIND16
BIND3 BIND4
BIND6 BIND4 BIND15 BIND17
Gambar 4. 6 Data arraylist dalam arraylist
c. TreeNode
4.2.7 Diagram Kelas Desain
Diagram kelas dapat memperlihatkan hubungan antar kelas. Diagram ini dapat membantu memvisualisasikan struktur kelas-kelas dari suatu sistem. Untuk detail kelas dapat dilihat pada Lampiran 5.
36 <<view>> view_preprocessing <<view>> view_home <<view>> view_about <<view>> view_help <<view>> view_asosiasi <<control>> control_algorithm <<model>> model_combination <<model>> TreeNode <<model>> comparatorHeaderTable <<model>> model_atributSelection <<control>> control_atributSelection
Gambar 4. 7 Diagram Kelas Desain
4.2.8 Rincian Algoritma untuk Setiap Metode
4.2.8.1 Metode-metode di dalam kelas control_algorithm
Nama Metode FPTree(ArrayList<LinkedList<String>> array1,
37
Fungsi Metode Mengubah data yang sudah dikenai preprocessing menjadi
bentuk Tree Algoritma :
1 Method ini memiliki masukkan berupa arraylist yang berisi data nilai daya serap.
2 Satu persatu persatu nilai dalam array akan dibuat pohon dengan memanggil
method insertNode().
3 Setelah pohon FPTree selesai dibuat maka headerTable yang sudah terisi akan
diurutkan dari yang terkecil ke terbesar count-nya.
Nama Metode insertNode(LinkedList<String> array1, TreeNode treenode,
ArrayList<TreeNode> headerTable)
Fungsi Metode Menambah node pada pohon
Algoritma:
1. Pertama kali yang dilakukan adalah mengecek apakah array yang sebagai
inputan kosong atau tidak. Jika kosong maka akan langsung me-return.
2. Jika array tidak kosong, maka akan dicek apakah root pada treenode sudah ada
isinya atau belum.
3. Jika root belum memiliki anak, maka akan dibuat node baru yang lalu akan
dibuat menjadi anak dari root. Node tersebut juga akan di link-an dengan headerTable.
4. Sedangkan jika root memiliki anak maka akan dicek apakah item pertama pada
array tersebut sudah ada pada pohon atau belum. Jika sudah maka akan ditambahkan countnya.
5. Setelah itu, item petama pada array tersebut dihapus.
6. Array tadi lalu dimasukkan kembali menjadi parameter saat memanggil method
38
Nama Metode FPGrowth(ArrayList<LinkedList<String>> array1, double
batas, int totalTransaction, double minConfidence)
Fungsi Metode Memanggil method FPGrowth dan menghitung nilai
confidence dan lift ratio Algoritma:
1 Method ini pertama tama akan memanggil method FPgowth() untuk membuat
conditional pattern base, conditional fp tree dan frequent itemset.
2 Setelah mendapatkan frequent-k itemset, lalu frequent-k itemset tersebut dicari
yang k-nya paling tinggi.
3 Frequent itemset yang paling tinggi tersebut akan digunakan untuk membuat
kombinasi aturan asosiasi dengan memanggil method CountConfAndLift yang ada di kelas model_combination
Nama Metode FPgrowth(TreeNode treeNode, String base, double
threshold, ArrayList<TreeNode> headerTable, Map<String, Integer> frequentPatterns)
Fungsi Metode Mencari conditional pattern base, conditional fp tree dan
frequent itemset Algoritma:
1. Lakukan perulangan dari data pada headerTable yang memiliki nilai count paling
kecil.
2. Lalu akan dilakukan perulangan juga untuk mencari letak item tadi pada pohon.
Setelah diketahui letaknya maka akan diruntut ke parentnya hingga sampai ke root. Proses tersebut dicatat sebagai conditional pattern base.
3. Jika item pada headerTable memiliki conditional pattern base yang count-nya
lebih dari minimum support maka item tersebut akan disimpan di hashmap frequentPattern.
39
4. Setelah itu maka akan dipanggil method conditional_fp_tree_constructor untuk
mencari conditional fp tree
5. Selama conditional fptree memiliki anak maka proses selanjutnya adalah
memanggil method dirinya sendiri sampai conditional fptree tidak memiliki anak.
Nama Metode conditional_fptree_constructor(Map<String, Integer>
conditionalPatternBase, Map<String, Integer>
conditionalItemsMaptoFrequencies, double threshold, ArrayList<TreeNode> conditional_headerTable)
Fungsi Metode Membuat pohon yang akan digunakan untuk mencari
conditional fp tree Algoritma:
1. Masukan dari method ini adalah conditional pattern base yang sudah didapatkan
sebelumnya.
2. Setelah itu conditional pattern base tersebut dicek apakah countnya lebih besar
atau sama dengan minimum support.
3. Jika iya maka pattern base tersebut akan disimpan pada array baru.
4. Setelah pattern base dicek maka akan dibuat pohonnya dari pattern base yang memenuhi minimum support
5. Method akan mengembalikan nilai berupa TreeNode
Nama Metode insert(LinkedList<String> pattern_vector, int
count_of_pattern, TreeNode conditional_fptree, ArrayList<TreeNode> conditional_headerTable)
Fungsi Metode Membuat pohon untuk mencari conditional fp tree
Algoritma:
1. Pertama kali yang dilakukan adalah mengecek apakah array yang sebagai inputan
40
2. Jika array tidak kosong, maka akan dicek apakah root pada treenode sudah ada
isinya atau belum.
3. Jika root belum memiliki anak, maka akan dibuat node baru yang lalu akan dibuat
menjadi anak dari root. Node tersebut juga akan di link-an dengan headerTable.
4. Sedangkan jika root memiliki anak maka akan dicek apakah item pertama pada
array tersebut sudah ada pada pohon atau belum. Jika sudah maka akan ditambahkan countnya.
5. Setelah itu, item petama pada array tersebut dihapus.
6. Array tadi lalu dimasukkan kembali menjadi parameter saat memanggil method
dirinya sendiri.
4.2.8.2 Algoritma Kelas model_combination
Nama Metode Combine(int start, HashMap temp, Map freqmap)
Fungsi Metode Membuat kombinasi dari string yang menjadi inputan
Algoritma:
1. Lakukan perulangan dari iterasi=1 sampai jumlah karakter dari string yang diinputkan
2. Satu persatu karakter diambil di gabungkan
3. Gabungan karakter tersebut lalu dicek, selama jumlahnya masih kurang dari jumlah string maka akan disimpan didalam arraylist antecendent
4. Langkah selanjutnya adalah memanggil dirinya sendiri untuk rekursif
Nama Metode CountConfAndLift(Map freqmap, HashMap map, int max,
int total, double minCon)
Fungsi Metode Menghitung nilai confidence dan lift ratio dari aturan yang
41 Algoritma:
1. Lakukan nested-loop untuk membuat kombinasi dari anteseden dan konsekuen
2. Setelah ditemukan kombinasinya, tiap kombinasi dihitung nilai confidence dan
lift rationya
3. Jika nilai confidence memenuhi nilai minimum confidence yang ditentukan maka
kombinasi tersebut akan dijadikan aturan asosiasi dan disimpan didalam arraylist
4.2.8.3 Algoritma Kelas View_Asosiasi
Nama Metode BubbleSortODesc(LinkedList<String> data, HashMap
map)
Fungsi Metode Mengurutkan data bertipe LinkedList dari besar ke kecil
Algoritma:
1. Lakukan perulangan dari iterasi=1 sampai data.size()-1
2. Lakukan perulangan kembali dari elemen=0 sampai data.size()-1-elemen
3. Lalu bandingkan count dari data sekarang dengan yang data setelahnya. Jumlah count dapat diambil dari hashmap.
4. Jika count data sekarang lebih kecil maka indeks data akan ditukar dengan indeks
data setelahnya.
Nama Metode BubbleSortODescArrayList(ArrayList
<TreeNode> data)
Fungsi Metode Mengurutkan data bertipe ArrayList<TreeNode> dari besar
ke kecil Algoritma:
d. Lakukan perulangan dari iterasi=1 sampai data.size()-1
e. Lakukan perulangan kembali dari elemen=0 sampai data.size()-1-
42
f. Lalu bandingkan count dari data sekarang dengan yang data setelahnya.
Jumlah count dapat diambil dari object TreeNode.
g. Jika count data sekarang lebih kecil maka indeks data akan ditukar dengan indeks data setelahnya.
Nama Metode RemoveNoFequentItem()
Fungsi Metode Menghapus data yang memiliki count lebih kecil dari
minimum support Algoritma:
1. Lakukan nested-loop untuk mengambil data ArrayList
2. Cek count dari tiap data
3. Jika count lebih besar atau sama dengan minimum support maka data akan
43
4.2.9 Antarmuka
1. Halaman Awal
Gambar 4. 8 Halaman Awal
Halaman ini merupakan halaman utama yang akan ditampilkan pertama kali saat sistem dijalankan. Halaman ini berisi 4 tombol yaitu BERANDA, BANTUAN, TENTANG dan MASUK SISTEM. Tombol BERANDA akan menghubungkan dengan halaman view_home. Sedangkan tombol BANTUAN ia akan menghubungkan dengan view_help, tombol TENTANG akan menghubungkan dengan view_about. Dan yang terakhir yaitu tombol MASUK SISTEM yang akan menghubungkan dengan halaman view_preprocessing untuk memulai memilih data yang akan digunakan.
44
2. Halaman About
Gambar 4. 9 Halaman About
Halaman ini digunakan untuk memberikan informasi tentang sistem seperti tujuan sistem ini dibuat dan kegunaanya. Pada halaman ini jg masih dapat digunakan tombol-tombol seperti halaman utama (Gambar 4.15).
45
3. Halaman Help
Gambar 4. 10 Halaman Help
Halaman bantuan ini berisikan panduan penggunaan sistem yang bertujuan untuk memudahkan pengguna dalam menggunakan aplikasi ini. Pada halaman ini jg masih dapat digunakan tombol-tombol seperti halaman utama (Gambar 4.15).
46
4. Halaman Preprocessing
Gambar 4. 11 Halaman Preprocessing
Halaman preprocessing ini digunakan untuk melakukan pemilihan data yang akan digunakan dengan cara menekan tombol PILIH FILE untuk mencari file bertipe .xls atau .csv. Setelah data muncul pada tabel dapat dilakukan juga penyeleksian atribut. Pada halaman ini kita dapat menghapus atribut-atribut yang tidak diperlukan. Setelah melakukan seleksi atribut, kita dapat menekan tombol KONVERSI untuk mengambil data yang memenuhi standar nilai keberhasilan yang sudah dimasukkan sebelumnya. Setelah itu tombol SUBMIT akan muncul dan dapat digunakan untuk melanjutkan proses selanjutnya.
47
5. Halaman Asosisasi
Gambar 4. 12 Halaman Asosiasi
Halaman ini akan berisikan tabel dengan data yang sudah melalui proses preprocessing. Setelah itu pengguna dapat memasukkan nilai minimal support dan minimal confidence yang dapat digunakan untuk proses pencarian aturan asosiasi dengan algoritma FPGrowth dengan menekan tombol PROSES.
48
6. Halaman Database
Gambar 4. 13 Halaman Database
Halaman ini digunakan untuk menyambungkan dengan database. Dari database yang ada nanti dapat dipakai datanya untuk proses pencarian aturan asosiasi selanjutnya.
49 BAB V
IMPLEMENTASI PENAMBANGAN DATA DAN EVALUASI HASIL