Implementasi Kelas Graph_NaiveNL
public class Graph_NaiveNL { private double[][] matrix;
private Vertex_NaiveNL[] vertex; private int size = 0;
public Graph_NaiveNLint a { matrix = new double[a][a];
vertex = new Vertex_NaiveNL[a]; for int i = 0; i a; i++ {
for int j = 0; j a; j++ { matrix[i][j] = -1;
matrix[j][i] = -1; }
matrix[i][i] = 0; }
} public void addVertexString label, ListDouble nilai {
vertex[size++] = new Vertex_NaiveNLlabel, nilai; }
public void addEdgeint asal, int tujuan, double jarak { matrix[asal][tujuan] = matrix[tujuan][asal] = jarak;
} public double euclideanDistanceint asal, int tujuan {
ListDouble awal = new ArrayListDouble; ListDouble akhir = new ArrayListDouble;
awal = vertex[asal].getNilai; akhir = vertex[tujuan].getNilai;
double total = 0; for int i = 0; i awal.size; i++ {
total = total + awal.geti - akhir.geti awal.geti - akhir.geti; }
return Math.sqrttotal; }
public void NaiveNLdouble m, double D { double jumlah_tetangga = 0;
double jumlahData = vertex.length; System.out.printlnJumlah Data : + jumlahData;
System.out.printlnNilai M : + m; System.out.printlnNilai D : + D;
for int i = 0; i jumlahData; i++ { jumlah_tetangga = 0;
for int j = 0; j jumlahData; j++ { if matrix[i][j] 0 i = j matrix[i][j] = D {
if jumlah_tetangga == m + 1 { break;
} jumlah_tetangga++;
} }
if jumlah_tetangga m + 1 { vertex[i].setOutliertrue;
} else if jumlah_tetangga = m + 1 { vertex[i].setOutlierfalse;
} }
} public String displayOutlierDouble m, Double D, String jml_baris,
JTable t,String path { String hasil_outlier = ;
boolean isi = false; int jumlah_outlier = 0;
long t1 = System.nanoTime; NaiveNLm, D;
long t2 = System.nanoTime; System.out.println;
hasil_outlier = hasil_outlier + Hasil Deteksi Outlier\n\n; hasil_outlier = hasil_outlier + Nilai M : + m + \n;
hasil_outlier = hasil_outlier + Nilai dmin : + D + \n; hasil_outlier = hasil_outlier + Asal Data : + path + \n;
hasil_outlier = hasil_outlier + Jumlah Data : + jml_baris + \n; hasil_outlier = hasil_outlier +
===================================================== ================ \n\n;
for int i = 0; i vertex.length; i++ { if vertex[i].isOutlier == true {
jumlah_outlier++; hasil_outlier = hasil_outlier + Mahasiswa +
vertex[i].getLabelData + adalah outlier\n\n; for int j = 1; j t.getColumnCount; j++ {
for int k = 0; k t.getRowCount; k++ { if vertex[i].getLabelData == t.getValueAtk, 0 {
hasil_outlier = hasil_outlier + t.getColumnNamej+ bernilai + t.getValueAtk, j+\n ;
} }
} hasil_outlier = hasil_outlier +\n;
isi = true; }
} hasil_outlier = hasil_outlier + Jumlah Outlier : + jumlah_outlier +
\n; if isi == false {
hasil_outlier = hasil_outlier + Tidak ada hasil outlier \n; }
hasil_outlier = hasil_outlier + Lama Deteksi Outlier Dengan Algoritma Index Based: + t2 - t1 java.lang.Math.pow10, -9 +
detik\n; return hasil_outlier;
} }
Listing Program 5.2 Kelas Kelas Graph_NaiveNL.java