Detail Algoritma Pada Detail Algoritma Tiap

di kelas BarChart

4.5.6.5 Detail Algoritma Pada

Method di Kelas Graph Tabel 4.6 Tabel Kelas Graph Nama method Fungsi method Algoritma method insertVertex String, ListDouble Membuat vertex 1. Membaca input method berupa label dan list nilai 2. Menambah size vertex, vertex[size++] lalu membuat vertex baru dengan label dan nilai yang diinputkan lewat parameter insertBlock int, ListInteger Membuat blok 1. Membaca input method berupa no_urut dan list daftar_vertex 2. Membuat blok baru pada index ke- no_urut dan berisi vertex dalam daftar_vertex yang diinputkan lewat parameter insertEdge int, int, double Mengisi nilai edge 1. Membaca nilai input parameter yaitu i, j dan nilai 2. Mengisi edge[i][j] dan edge[j][i] dengan nilai euclidean int, int Menghitung nilai euclidean distance antara dua data 1. Membaca nilai input parameter yaitu a dan b 2. Membuat list data1 dan data2 3. data1 diisi dengan vertex[a].getNilai, data2 diisi dengan vertex[b].getNilai 4. total = 0, i = 0 5. Selama i data1.size, hitung total = total + Math.powdata1.geti - data2.geti, 2.0 6. Method ini lalu mengembalikan nilai NestedLoop JTable, double, double Melakukan proses deteksi outlier dengan nilai parameter M dan D yang diinputkan pengguna 1. Menerima input tabel, m dan d 2. Membuat list nilaiAtribut untuk menampung data nilai setiap vertex dan variabel label bertipe String untuk menyimpan nama label dari setiap vertex 3. Inisialisasi i = 0 4. Selama i jumbaris, buat listAtribut baru lalu inisialisasi j = 0 5. Selama j jumKolom, Jika j=0 maka label = model.getValueAti, j.toString. Jika j= 0 maka nilaiAtribut.addDouble. parseDoublemodel.get ValueAti, j.toString 6. Menambahkan vertex baru dengan memanggil method insertVertexlabel, nilaiAtribut 7. Hitung jumlah blok dengan perhitungan int hitung_blok = int jumBaris jumKolom byte_element 2 availableMemory_JVM 8. Jika hitung_blok =1 maka jumlah_blok = 1, data_per_blok = jumBaris, sisa = 0 Jika jumBarishitung_blok = 0 maka jumlah_blok = hitung_blok, data_per_blok = jumBarisjumlah_blok, sisa = jumBarisjumlah_blok Jika jumBarishitung_blok == 0 maka jumlah_blok = hitung_blok, data_per_blok = jumBarisjumlah_blok, sisa = 0 9. Membuat list daftar_vertex dan inisialisasi counter = 0 10. Inisialisasi i = 0 11. Selama i jumlah_blok Jika i = jumlah_blok -1 sisa = 0 maka data_per_blok = data_per_blok + sisa Membuat daftar_vertex baru Inisialisasi j = 0 Selama j data_per_blok, tambahkan counter ke list daftar_vertex kemudian counter++ Membuat blok baru dengan memanggil method insertBlocki, daftar_vertex 12. Inisialisasi list first_array = null dan list second_array = null 13. Inisialisasi i = 0 14. Selama i jumlah_blok Jika block[selected_fristArra y] belum pernah menjadi first_array maka isi blok tersebut ditampung dalam first_array Inisialisasi j = 0 15. Selama j jumlah_blok Jika j = 0, maka size1 dan size2 = first_array Jika j= 0, maka isi blok dari block[selected_secondA rray] ditampung dalam second_array, size1 = first_array.size dan size2 = second_array.size Inisialisasi counter_load_firstArray = 0, k = counter_load_firstArray 16. Selama k size1, saat k = size1, ke langkah 19 Jika vertex[first_array.getk] .isUnmarked = true maka index1 = first_array.getk Inisialisasi counter_load_secondArr ay = 0, l = counter_load_secondArr ay Selama l size2, saat l = size2, ke langkah 18 Jika k = l || k == l j 0, cek jika pertama = true maka index2 = first_array.getl, jika pertama = false maka index2 = second_array.getl Jika edge[index1][index2] == -1 maka isi nilai edge dengan memanggil method insertEdgeindex1, index2, euclideanindex1, index2 17. Jika edge[index1][index2] edge[index1][index2] = d k = l || k == l j 0 Maka tambahkan jumlah tetangga dari vertex[index1] dengan cara vertex[index1].setJumla h_tetanggavertex[index 1].getJumlah_tetangga + 1 Setelah menambahkan cek apakah tetangga dari vertex[index1] tersebut telah mencapai M+1, jika ya maka vertex[index1].setNon_ o utlier true dan vertex[index1].setUnma rkedfalse, jika tidak maka vertex[index1].setUnma rkedtrue Kembali ke langkah 17 18. Jika k == size1 - 1, artinya sebuah blok telah dicek seluruh anggotanya maka pertama diberi nilai false sehingga blok tersebut tidak boleh dimasukkan lagi ke dalam first_array. Kembali ke langkah 16 19. Jika i == 0 j jumlah_blok – 1 maka selected_secondArray++ Jika i = 0 j 1 j = jumlah_blok – 1 Cek apakah selected_secondArray == block.length - 1 j jumlah_blok – 1, jika ya maka selected_secondArray = 0, jika selected_secondArray block.length – 1 maka selected_secondArray++ Jika i = 0 j == 1 Cek apakah selected_secondArray block.length - 1 j jumlah_blok – 1, jika ya maka selected_secondArray++ , jika selected_secondArray == block.length - 1 j jumlah_blok – 1 maka selected_secondArray = Kembali ke langkah 15 20. Pada tahap ini dilakukan pergantian tempat antara first_array dan second_array dengan cara : block[selected_firstArra y].setFirstArraytrue tukar = selected_firstArray selected_firstArray = selected_secondArray selected_secondArray = tukar Kembali ke langkah 14 display Outlier Jtable, double, double, String, String Menampilkan hasil deteksi outlier 1. t1 = System.nanoTime 2. Memanggil method NestedLoopt,m,d 3. t2 = System.nanoTime 4. Inisialisasi i = 0 5. Selama i vertex.length, jika vertex[i].isNon Outlier = false maka tambahkan jumlah outlier dengan 1 lalu tampilkan vertex[i].getLabel 6. Inisialisasi j = 0 7. Selama j t.getColumnCount 8. Inisialisasi k = 0 9. Selama k t.getRowCount 10. Jika vertex[i].getLabel==t. getValueAtk, 0 maka data pada baris-k tersebut akan ditampilkan 11. Menampilkan jumlah data, jumlah outlier , dan lama deteksi outlier = t2 - t1 java.lang.Math.pow10, -9

4.5.6.6 Detail Algoritma Pada

Dokumen yang terkait

Deteksi outlier menggunakan Algoritma Local Correlation Integral (LOCI) : studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma.

0 0 258

Deteksi outlier menggunakan Algoritma Local Outlier Probability : studi kasus data akademik mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma.

0 5 265

Deteksi outlier menggunakan Algoritma Connectivity Based Outlier Factor : studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma.

0 4 252

Deteksi Outlier menggunakan algoritma Block-Based Nested-Loop : studi kasus data akademik mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma.

0 2 202

Deteksi Outlier menggunakan algoritma Naive Nested Loop : studi kasus data akademik mahasiswa Program Studi Teknik Informatika, Universitas Sanata Dharma, Yogyakarta.

2 3 236

Deteksi outlier menggunakan algoritma Block-based Nested Loop (studi kasus: data akademik mahasiswa prodi PS Universitas XYZ).

1 5 6

Deteksi outlier menggunakan algoritma Naive Nested Loop (studi kasus : data akademik mahasiswa program studi PS Universitas XYZ).

0 0 4

Deteksi outlier menggunakan Algoritma Connectivity Based Outlier Factor studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma

1 8 250

Deteksi outlier menggunakan Algoritma Local Outlier Probability studi kasus data akademik mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma

1 9 263

Deteksi Outlier menggunakan algoritma Naive Nested Loop : studi kasus data akademik mahasiswa Program Studi Teknik Informatika, Universitas Sanata Dharma, Yogyakarta - USD Repository

0 0 234