3.4. Detail Algoritma Tiap ANALISA DAN PERANCANGAN

III. 3.4. Detail Algoritma Tiap

Method Pada Tiap Kelas No Nama Kelas Jenis Keterangan No. Tabel 1 Itemset Entity Kelas ini digunakan untuk mencari dan menampung subset dari setiap candidate itemset, serta digunakan untuk menyimpan itemset baru. Tabel 3.1 2 Candidate Entity kelas ini digunakan untuk menghasilkan candidate itemset yang sudah bisa dipertimbangkan menjadi itemset baru. Tabel 3.2 3 LargeItemset Entity Kelas ini digunakan untuk membentuk candidate itemset. Tabel 3.3 4 Ls Entity Kelas ini digunakan untuk menghasilkan large itemset dari setiap itemset pada setiap iterasi. Itemset dari Large itemset terakhir yang dihasilkan dari kelas ini akan dijadikan sebagai Tabel 3.4 centroid untuk klaster. 5 ProsesAPIC controller Kelas ini digunakan untuk melakukan proses inti dari penambangan aturan asosiasi langka. Tabel 3.5 6 Centroid Entity Kelas ini digunakan untuk menyimpan centroid dari setiap klaster. Tabel 3.6 8 DataBaseConnection Entity Kelas ini digunakan untuk mengatur koneksi basis data antara sistem dengan basis data sql. Tabel 3.7 9 BarChart Entity Kelas ini digunakan untuk menampilkan grafik diagram batang dari detil isi setiap atribut. Tabel 3.8 10 Grafik Entity Kelas ini digunakan untuk menyimpan data detil dari atribut yang akan ditampilkan dalam grafik diagram batang Tabel 3.9 a. Detil Algoritma Pada Method di kelas Itemset Tabel 3.1 Tabel Kelas Itemset. Nama method Fungsi method Algoritma method getElements Membaca element data dari dataset yang ada dan memasukkannya ke dalam ArrayList. Inisialisasi i=0. Selama i elements.length, masukkan elements[i] ke dalam ArrayList result. getSubsetint,int Untuk membuat kombinasi subset dari itemset yang telah dijoinkan. 1. Untuk k=1, masukkan elements[i] dalam ArrayList item, dan masukkan item ke dalam ArrayList subSet. Lakukan langkah ini hingga tidak ada elements[i] lagi. 2. Jika k 1, cari subset itemset untuk k-1, masukkan ke dalam ArrayList subSubset. Inisialisasi j=0, dan selama j subSubset.size, ambil nilai itemset pada subSubset.getj masukkan dalam ArrayList item lalu lakukan seperti pada langkah 1. similarToItemset Untuk membandingkan apakah itemset pertama sama dengan itemset kedua, jika tidak sama maka kedua itemset tersebut akan dijoinkan untuk menghasilkan candidate itemset yang baru 1. Jika elements.length =1 maka dicek apakah elements[0] tidak sama dengan itemset yang ingin dibandingkan. Jika tidak sama akan dijoinkan. 2. Jika elements.length 1 dilakukan looping selama elements.length - 1 dan dilakukan pengecekkan seperti pada langkah 1. JoinItemset Untuk melakukan proses penggabungan join antar itemset atau frequent itemset guna mendapatkan kombinasi candidate itemset yang baru. 1. Jika elements[i] dan dan elements[i+1] tidak sama maka gabungkan kedua elements tersebut menjadi satu elements baru. 2. Masukkan elements baru ke dalam ArrayList yang baru. Lakukan langkah 1 dan 2 hingga tidak ada lagi elements yang akan dibandingkan. clone Untuk menyalin itemset yang ada dalam suatu ArrayList baru. Inisialisasi i =0. Selama i elements.length masukkan elements[i] ke dalam ArrayList yang baru. toString Untuk menampilkan itemset dan supportnya. 1. Jika elements = null atau elements.length = 0 maka kembalikan nilai string kosong yang menyatakan bahwa tidak ada itemset dari dataset inputan. 2. Jika elements.length =1, maka kembalikan 1 string elements data elements[0], dan 3. Jika elements.length 1 maka lakukan perulangan untuk mengambil string elements data selama i elements.length. b. Detil Algoritma Pada Method di kelas Candidate Tabel 3.2 Tabel Kelas Candidate. Nama method Fungsi method Algoritma method getLdouble Melakukan proses prunning 1. Baca nilai minimum support threshold system candidate itemset untuk mendapatkan frequent itemset. yang dimasukkan pengguna. 2. Baca semua candidate k- itemset yang telah dihasilkan dengan method aprioriGen. 3. Inisialisasi nilai i=0. Selama i panjang data candidate k –itemset, maka ambil nilai support dari candidate itemset tersebut lalu bandingkan dengan nilai minimum support threshold sistem yang sudah diubah nilainya menjadi 0. Jika support candidate itemset =0.0 maka masukkan candidate itemset tersebut dalam ArrayList itemArraylist. getLidouble Melakukan proses prunning candidate itemset untuk mendapatkan frequent itemset dalam klaster. 1. Baca nilai minimum support threshold system yang dimasukkan pengguna. 2. Baca semua candidate k- itemset yang telah dihasilkan dengan method aprioriGen. 3. Inisialisasi nilai i=0. Selama i panjang data candidate k –itemset, maka ambil nilai support dari candidate itemset tersebut lalu bandingkan dengan nilai maximum support. Jika support candidate itemset minimum support dan =0.0 maka masukkan candidate itemset tersebut dalam ArrayList itemArraylist. c. Detil Algoritma Pada Method di kelas Largeitemset Tabel 3.3 Tabel Kelas Largeitemset. Nama method Fungsi method Algoritma method aprioriGen Membuat kombinasi candidate k- itemset 1. Inisialisasi nilai i=0 dan j=i+1. Baca frequent k- itemset pada iterasi sebelumnya. 2. Selama i panjang data frequent k-itemset dan j panjang data frequent k- itemset maka lakukan pengujian apakah item [i] sama dengan item[j] dengan memanggil method similarToItemset. 3. Jika tidak sama lakukan proses join dengan memanggil method JoinItemset untuk mendapatkan candidate k- itemset yang baru. 4. Panggil method hasInfrequentSubsetItemse t untuk mengecek apakah itemset hasil proses join tersebut merupakan subset dari frequent itemset pada iterasi sebelumnya. Jika benar maka itemset tersebut akan dimasukkan ke dalam ArrayList sebagai candidate itemset yang baru. hasInfrequentSubset Itemset Mengecek apakah itemset yang telah dijoinkan merupakan subset dari frequent itemset pada iterasi sebelumnya. 1. Inisialisasi nilai flag=false, i=0,j=0 dan l=0. Selama i k tingkat frequent itemset panggil method getSubsetint,int untuk mendapatkan subset dari parameter Itemset . Lakukan langkah 2. 2. Selama j panjang data subset maka lakukan langkah 3. 3. Selama l panjang data itemset pada tingkat k maka bandingkanlah apakah itemset tersebut mengandung subset dari parameter Itemset. Jika benar kembalikan nilai flag = true. d. Detil Algoritma Pada Method di kelas Ls Tabel 3.4 Tabel Kelas Ls. Nama method Fungsi method Algoritma method putLargeItemset Menampung semua frequent itemset yang dihasilkan ke dalam ArrayList ls. Baca frequent k-itemset yang dihasilkan, masukkan ke dalam ArrayList. e. Detil Algoritma Pada Method di kelas ProsesAPIC Tabel 3.5 Tabel Kelas ProsesAPIC. Nama method Fungsi method Algoritma method pilihFileFile Membaca data dari file excel dan menampilkannya ke dalam tabel. 1. Inisialisasi nilai i=0, j=0, banyakBaris, dan banyakKolom pada sheet pertama. 2. Selama i banyakBaris dan j banyakKolom maka getCellj,i dari sheet pertama. 3. Masukan data ke dalam ArrayList Data. bacaDataClusterFile Membaca data dari file excel dan menampilkannya ke dalam tabel. 1. Inisialisasi nilai i=0, j=0, banyakBaris, dan banyakKolom pada sheet pertama. 2. Selama i banyakBaris dan j banyakKolom maka getCellj,i dari sheet pertama. 3. Masukan data ke dalam ArrayList Data. Cetak Menampilkan output dari sistem SDAAL. 1. membaca nilai dari setiap atribut penambangan data. 2. membaca jumlah klaster yang dihasilkan oleh sistem. 3. membaca aturan langka yang dihasilkan oleh setiap klaster 4. menampilkannya kedalam textarea yang disediakan. Factoriallong i Menghitung nilai factorial dari setiap jumlah item. 1. membaca jumlah dari setiap item yang akan dihitung nilai factorialnya. 2. menghitung nilai factorial twoDecPlacesdouble number Untuk menyederhanakan nilai dari bilangan decimal. 1. membaca nilai decimal yang akan disederhanakan 2. menyederhanakan nilai decimal nya. exportTableJTable table, File file Mengeksport tabel dalam JTable kedalam file excel 1. membaca nilai dari setiap isi tabel dalam JTable. 2. membuka koneksi kedalam file excel 3. menuliskan setiap isi dari JTable kedalam file excel. 4. menutup koneksi ke file excel deleteString fileName Melakukan penghapusan file yang sesuai dengan nama file yang dimasukan 1. mendeklarasikan file yang akan dihapus. 2. mengecek keberadaan file, jika ada maka lakukan penghapusan file, jika tidak sistem mengeluarkan pesan bahwa file tidak ada. deleteFiles String d, String e Melakukan penghapusan file dengan ekstensi 1. mendeklarasikan ekstensi file yang akan dihapus. tertentu. 2. mengecek keberadaan file dengan ekstensi yang sesuai masukan, jika ada maka lakukan penghapusan file, jika tidak sistem mengeluarkan pesan bahwa file tidak ada. findCandidate1Itemse ts Menemukan semua candidate 1-itemset dari dataset yang ada, serta hitung count dan support untuk tiap candidate 1- itemset. Untuk cari candidate 1- itemset : 1. Inisialisasi nilai i=1 dan j=1, jumlahKolom, dan jumlahBaris pada tabel view. 2. Selama jumlahBaris = j dan jumlahKolom = i lakukan langkah 3. 3. Jika ArrayList Data mengandung nilai data j,i, dan data j,i ≠ data j-1,i- 1 masukkan nilai data j,i ke dalam ArrayList data1. Untuk hitung count candidate 1-itemset : 1. Inisialisasi nilai x=0, dan vv=0. Selama ukuran ArrayList data1 x maka lakukan langkah 2. 2. Selama jumlahBaris = j dan jumlahKolom = i lakukan langkah 3. 3. Jika data1.getx = nilai dataj,i maka vv di- increment ditambah 1 4. Masukkan nilai vv dalam ArrayList temp. Untuk hitung support candidate 1-itemset : 1. Inisialisasi nilai htng = 0, Selama ukuran ArrayList temp x, ambil temp.getx dibagi jumlahBaris. 2. Masukkan nilai htng ke dalam ArrayList temp1. findFrequent1Itemsets Menemukan semua frequent 1- itemset. 1. Inisialisasi nilai x=0, sup1=0 dan minsup =0. Selama ukuran ArrayList temp1 x maka ambil nilai temp1.getx dan masukkan dalam variabel sup1. Lakukan langkah 2. 2. Jika sup1 = minsup, ambil itemset dari data1.getx. Lalu masukkan itemset dan sup1 ke dalam ArrayList temp2. findCandidate1Itemse tsCentro Menemukan semua candidate 1-itemset dari dataset yang ada, serta hitung count dan support untuk tiap candidate 1- itemset. Untuk cari candidate 1- itemset : 1. Inisialisasi nilai i=1 dan j=1, jumlahKolom, dan jumlahBaris pada tabel view. 2. Selama jumlahBaris = j dan jumlahKolom = i lakukan langkah 3. 3. Jika ArrayList Data mengandung nilai data j,i, dan data j,i ≠ data j-1,i- 1 masukkan nilai data j,i ke dalam ArrayList data1. Untuk hitung count candidate 1-itemset : 1. Inisialisasi nilai x=0, dan vv=0. Selama ukuran ArrayList data1 x maka lakukan langkah 2. 2. Selama jumlahBaris = j dan jumlahKolom = i lakukan langkah 3. 3. Jika data1.getx = nilai dataj,i maka vv di- increment ditambah 1 4. Masukkan nilai vv dalam ArrayList temp. Untuk hitung support candidate 1-itemset : 1. Inisialisasi nilai htng = 0, Selama ukuran ArrayList temp x, ambil temp.getx dibagi jumlahBaris. 2. Masukkan nilai htng ke dalam ArrayList temp1. findFrequent1Itemsets Centro Menemukan semua frequent 1- itemset. 1. Inisialisasi nilai x=0, sup1=0 dan minsup =0. Selama ukuran ArrayList temp1 x maka ambil nilai temp1.getx dan masukkan dalam variabel sup1. Lakukan langkah 2. 2. Jika sup1 = minsup, ambil itemset dari data1.getx. Lalu masukkan itemset dan sup1 ke dalam ArrayList temp2. findCandidate1Itemse tsCluster Menemukan semua candidate 1-itemset dari dataset yang ada, serta hitung count dan support untuk tiap candidate 1- itemset yang ada dalam klaster. Untuk cari candidate 1- itemset : 1. Inisialisasi nilai i=1 dan j=1, jumlahKolom, dan jumlahBaris pada tabel view. 2. Selama jumlahBaris = j dan jumlahKolom = i lakukan langkah 3. 3. Jika ArrayList Data mengandung nilai data j,i, dan data j,i ≠ data j-1,i- 1 masukkan nilai data j,i ke dalam ArrayList data1. Untuk hitung count candidate 1-itemset : 1. Inisialisasi nilai x=0, dan vv=0. Selama ukuran ArrayList data1 x maka lakukan langkah 2. 2. Selama jumlahBaris = j dan jumlahKolom = i lakukan langkah 3. 3. Jika data1.getx = nilai dataj,i maka vv di- increment ditambah 1 4. Masukkan nilai vv dalam ArrayList temp. Untuk hitung support candidate 1-itemset : 1. Inisialisasi nilai htng = 0, Selama ukuran ArrayList temp x, ambil temp.getx dibagi jumlahBaris. 2. Masukkan nilai htng ke dalam ArrayList temp1. findFrequent1Itemsets Cluster Menemukan semua frequent 1- itemset. 1. Inisialisasi nilai x=0, sup1=0 dan minsup =0. Selama ukuran ArrayList temp1 x maka ambil nilai temp1.getx dan masukkan dalam variabel sup1. Lakukan langkah 2. 2. Jika sup1 maxsup dan lebih dari 1.0jumlah baris, ambil itemset dari data1.getx. Lalu masukkan itemset dan sup1 ke dalam ArrayList temp2. getLs Menemukan semua frequent k- itemset. Untuk mendapatkan semua frequent k-itemset : 1. Mulai k=2 dan selama ls.getk-1 tidak kosong maka akan dibentuk candidate k-itemset dengan memanggil method aprioriGen. Masukkan candidate.getItems ke dalam items[]. 2. Inisialisasi nilai i =0 , dan selama i items.length, hitung count dan support untuk itemset tersebut. 3. Panggil method getLminsup untuk mendapatkan semua candidate item. 4. Simpan setiap candidate k-itemset dalam ArrayList dengan memanggil method putLargeItemset. 5. dari setiap candidate k- itemset cari subsetnya dan hitung support dari setiap subsetnya 6. setelah itu simpan subset dan supportnya kedalam ArrayList 7. hitung nilai relative support dari setiap candidate k-itemset dengan cara mebagai nilai support candidate k-itemset dengan nilai support maximum dari subset yang dimiliki candidate k-itemset tersebut. 8. kemudian simpan nilai relative support ini sebagai pengganti nilai support dari candidate k-itemset. 9. Hitung nilai koefisien chisquare dari masing – masing candidate k- itemset. 10. kemudian lakukan pengecekan relative support dan koefisien chisquare dari masing – masing item agar bisa menghasilkan large itemset yang nantinya digunakan sebagai titik awal klaster. Pengecekannya berdasar persamaan sebagai berikut: Database Mengambil data dari tabel dalam basis data. 1. Baca query yang dimasukan oleh pengguna. 2. lakukan eksekusi query 3. mengambil data dari dalam tabel database dan menyimpannya dalam table yang tersedia dalam Halaman Deteksi Data Tampilgrafik Menampilkan grafik diagram 1. Baca atribut yang dipilih pengguna untuk dilihat batang dari setiap atribut data. statistik datanya. 2. ambil semua data yang masuk dalam atribut yang telah dipilih oleh pengguna. 3. hitung setiap data yang ada, data yang sama dijadikan satu dan jumlah dari data tersebut ditambah satu. 4. tampilkan keseluruhan data kedalam tabel yang sudah disediakan dalam Halaman Lihat Grafik 5. tekan tombol view chart, maka data yang ditampilkan dalam tabel akan di konversi kedalam bentuk diagram batang bar chart. cekKoneksi Melakukan cek koneksi atnara basis data dengan sistem untuk memastikan sistem sudah terhubung dengan basis data. 1. baca masukan port, nama basis data, username, password, yang sudah dimasukan oleh pengguna. 2. lakukan koneksi kedalam basis data menggunakan data masukan tersebut 3. jika koneksi berhasil maka akan menampilkan pesan “ koneksi berhasil”. Similarity Menghasilkan klaster dari transaksi dalam basis data. 1. dapatkan centroid yang terbentuk dari method getLs; 2. masukan kumpulan item dalam setiap transaksi kedalam linklist kemudian hitung nilai similarity dari setiap transaksi terhadap centroid klaster yang ada. 3.cara menghitung menggunakan persamaan di bawah ini: 4. setalah semua similarity transaksi dihitung langkah berikutya adalah membandingkan setiap nilai similarity dari setiap transaksi terhadap klaster 5. transaksi dialokasikan pada klaster yang memiliki centroid dengan nilai similarity tertinggi terhadap transaksi . 6. hitung nilai optimum kluster dengan menjumlah rata – rata dari nilai similarity transaksi pada setiap klaster dikalikan dengan 1 jumlah klaster. 7. inisialisasi nilai optimum klaster awal = 0, dan bandingkan nilai optimum sekarang dengan nilai optimum sebelumnya, jika nilai optimum sekarang dari nilai optimum sebelumnya lakukan iterasi berikutnya, tapi jika sebaliknnya maka iterasi berhenti. 8. setiap iterasi berjalan maka akan dibentuk centroid baru yang berasal dari large itemset dari setiap transaksi yang dialokasikan kedalam klaster, jadi setiap klaster memiliki centroid baru. 9. method similarity berhenti ketika syarat nilai optimum klaster sebelumnya nilai optimum klaster sekarang. 10. simpan setiap klaster kedalam excel file. APIC Menghasilkan aturan asosiasi langka. Untuk menghasilkan aturan asosiasi langka maka diperlukan langkah sebagai berikut: 1. baca setiap klaster yang terbentuk dan tersimpan dalam format excel file. 2. baca per klaster, cari 1- large itemset dengan menggunakan method findFrequent1ItemsetsAI . 3. cari k-large itemset berikutnya dengan tambahan batasan perluasan item yaitu nilai pcc dari tem. 4. hitung nilai pcc dari item yang di gabungkan, dengan persamaan dibawah ini: 5. simpan nilai pcc dari setiap candidate itemset yang akan digabung dan gunakan untuk menghitung nilai MinAbsSup. MinAbsSup dihitung sebagai berikut: 6. setelah itu saring semua candidate itemset dengan menggunakan batasan setiap candidate itemset yang memiliki nilai support MinAbsSup Maximum support menjadi k-large itemset, sedangkan yang lain dipangkas dari pembentukan aturan langka. 7. setelah semua k-large itemset terbentuk cari nilai confidence setiap large itemset untuk mencari aturan asosiasi langka dari setiap large itemset. 8. itemset yang memiliki nilai confidence = maximum confidence, merupakan itemset yang dapat menghasilkan aturan asosiasi langka 9. tampilkan aturan asosiasi langka kedalam JTextArea yang sudah disediakan. f. Detil Algoritma Pada Method di kelas Centroid Tabel 3.6 Tabel Kelas Centroid. Nama method Fungsi method Algoritma method setCentroid Untuk melakukan pengaturan pada nilai centroid 1. mengambil masukan cetroid dari sistem 2. mengatur centroid tersebut menjadi centroid baru milik setiap klaster getCentroid Mendapatkan nilai centroid dari klaster 1. membaca id centroid 2. dapatkan nilai centroid yang ada dalam setiap klaster g. Detil Algoritma Pada Method di kelas DataBaseConnection Tabel 3.7 Tabel Kelas DataBaseConnection. Nama method Fungsi method Algoritma method DataBase Melakukan koneksi kedalam basis data 1. baca masukan jdbcURL, username, password, yang sudah dimasukan oleh pengguna. 2. lakukan koneksi kedalam basis data menggunakan inputan tersebut isConnected Mengecek koneksi antara sistem dan basis data. 1. baca masukan jdbcURL, username, password, yang sudah dimasukan oleh pengguna. 2. lakukan koneksi kedalam basis data menggunakan data masukan tersebut 3. jika koneksi berhasil maka akan menampilkan pesan “ koneksi berhasil”. h. Detil Algoritma Pada Method di kelas BarChart Tabel 3.8 Tabel Kelas BarChart. Nama method Fungsi method Algoritma method Tampil Menampilkan grafik diagram batang 1. baca inputan parameter dari Halaman Lihat Grafik. 2. konversi kedalam JFreeChart format 3. tampilkan dalam bentuk diagram batang i. Detil Algoritma Pada Method di kelas Grafik Tabel 3.9 Tabel Kelas Grafik. Nama method Fungsi method Algoritma method viewGrafik Mengirim data yang ada dalam tabel ke kelas BarChart sehingga bisa tertampil dalam bentuk grafik diagram batang. 1. melakukan inisialisasi variable : String ass [][]; String pars[][]; int jum[][]; int a=jTable1.getRowCount; int b= jTable1.getColumnCount; ass= new String[a][b]; pars= new String[a][b]; jum= new int[a][b]; 2. menyimpan data dalam tabel ke dalam variable ass[][] dan jum[][]. Ass untuk kolom 0, dan jum untuk kolom 1 3. membuat object baru dari kelas BarChart. 4. memanggil method tampil dari kelas BarChart. inputulang Konversi data detil atribut kedalam tabel 1. membaca data yang tersimpan dalam excel file dengan nama results1.xls 2. menyimpan data yang dibaca kedalam variable data dengan tipe data Object. 3. memasukan Object data kedalam tabel dalam Halaman Lihat Grafik. 4. set tabel RowSorter pada tabel. setConn Mengatur koneksi kedalam basis data. 1. melakukan set jdbcURL, set username, set password. 2. melakukan koneksi kedalam basis data menggunakan jdbcURL, set username, set password yang diset sebelumnya. 3. melakukan cek terhadap koneksi basis data, apakah berhasil atau tidak. checkMissingData Mengecek data yang kosong atau tidak sesuai dengan format isi data 1. membaca data dalam tabel 2. mencari missing data yaitu data yang memiliki nilai ?, null, atau data kosong. 3. menghitung jumlah keseluruhan. missing data dan menghitung prosentasenya dalam data keseluruhan.

III. 3.5. Sequence Diagram