4.3 Implementasi Algoritma pada Sistem
Pada subbab ini akan dibahas beberapa pengimplementasian dari algoritma ke dalam sistem. Pengimplementasian yang dibahas, yaitu 1 algoritma K-Nearest
Neighbor, 2 algoritma Naïve Bayes, dan 3 teknik Cross Validation.
4.3.1 Algoritma K-Nearest Neighbor
Pada bagian ini akan dijelaskan beberapa langkah untuk melakukan klasifikasi dengan KNN menggunakan data yang telah di preprocessing. Beberapa langkahnya
yaitu, 1 menghitung jarak kemiripan similarity antara data training dengan data test dengan menggunakan rumus euclidean distance, 2 membandingkan jarak kemiripan
similarity untuk mendapatkan tetangga terdekat nearest neighbor, dan 3 Mengambil nilai kelas dari tetangga terdekat nearest neighbor untuk dijadikan sebagai
nilai hasil klasifikasi.
4.3.1.1 Menghitung Euclidean Distance
Hal pertama yang dilakukan klasifikasi KNN adalah menghitung jarak kemiripan similarity, untuk menghitung jarak kemiripan similarity sistem
menggunakan perhitungan euclidean distance. Langkah pertama adalah memastikan bahwa data testing dan training adalah data angka, kemudian barulah sistem akan
menghitung jarak kemiripan similarity data testing dan training dengan menggunakan rumus euclidean distance, berikut adalah cuplikan kodingnya:
if Double.isNaNy.valuei Double.isNaNx.valuei isNan adalah Not a Number
sum += y.valuei - x.valuei y.valuei - x.valuei; }
return Math.sqrtsum; kembalikan nilai akar dari sum
} Setelah membuat method euclidean distance, langkah selanjutnya adalah
membuat method untuk membandingkan antar jarak untuk mendapatkan jarak yang terdekat nearest neighbor.
4.3.1.2 Membandingkan Jarak Terdekat Nearest Neighbor
Langkah kedua adalah membandingkan jarak kemiripan similarity dari semua data yang telah dihitung menggunakan rumus euclidean distance untuk mendapatkan
jarak terdekat nearest neighbor. Langkah pertama adalah dengan membuat suatu tempat untuk menyimpan nilai jarak terdekat ke dalam sebuah map, berikut adalah
source code-nya: MapInstance, Double closest = new HashMapInstance, Double;
untuk menyimpan instance dan nilai jarak terdekat double max = dm.getMaxValue;
Selanjutnya untuk setiap data kanker lakukan perhitungan jarak euclidean distance antara data yang dites dengan data yang di-training dengan memanggil method
euclidean distance yang telah dibuat sebelumnya. for Instance tmp : this {
perulangan dilakukan sebanyak dataset double d = dm.UkurdgnEuclidinst, tmp;
hitung dengan euclidean distance Kemudian lakukan perbandingan antar jarak terdekat untuk mendapatkan jarak
yang paling dekat. Untuk mendapatkan jarak yang paling dekat nearest neighbor ada beberapa langkah yaitu 1 menyimpan semua hasil perhitungan euclidean distance ke
sebuah hashmap, 2 mengurutkan jarak dari terdekat ke terjauh, dan 3 menghapus jarak terjauh dan mengambil jarak terdekat sesuai k yang telah ditentukan.
if dm.compared, max inst.equalstmp { Cek jika sudah dicompare
closest.puttmp, d; masukkan jarak terdekat
Pada kode program di atas sistem akan mengecek jika jarak sudah didapatkan, jika ya maka akan dimasukkan ke dalam hashmap, kemudian setelah itu agar jumlah
jarak terdekat sesuai dengan k yang telah ditentukan maka jarak yang terjauh akan dihapus.
if closest.size k jika jumlah jarak terdekat melebihi k