• Tidak ada hasil yang ditemukan

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

Dokumen terkait