Mengukur Jarak Euclidean: Teori dan Implementasi Menggunakan Java

Table of Contents
Euclidean distance adalah perhitungan jarak dari 2 buah titik dalam Euclidean space. Euclidean space diperkenalkan oleh Euclid, seorang matematikawan dari Yunani sekitar tahun 300 B.C.E. untuk mempelajari hubungan antara sudut dan jarak. Euclidean ini berkaitan dengan Teorema Phytagoras dan biasanya diterapkan pada 1, 2 dan 3 dimensi. Tapi juga sederhana jika diterapkan pada dimensi yang lebih tinggi. Artikel ini menjelaskan teori singkat beserta penerapannya di pemrograman java. 

Gambar 1. Ilustrasi Pengukuran Jarak Euclidean

Jarak Euclidean biasa diterapkan untuk membantu proses klasifikasi pada data mining. Contoh algoritma yang menggunakan jarak ini adalah k-nearest neighbor. Jarak euclidean juga bisa diterapkan untuk algoritma image retrival (temu kembali citra). Maka, mengenai penerapan jarak euclidean untuk berbagai algoritma sudah saya jabarkan di artikel lain.

Jarak euclidean diterapkan untuk berbagai dimensi. Agar memudahkan pemahaman, saya sertakan contoh jarak euclidean untuk 1 dimensi dan 2 dimensi. Secara umum, rumus jarak euclidean ditunjukkan oleh Gambar 2. Gambar 2 menunjukkan rumus jarak euclidean 2 dimensi karena melibatkan variabel x dan y.    

Gambar 2. Rumus Jarak Euclidean
Contoh jarak eulidean 1 dimensi
Misalnya, terdapat titik x1 bernilai 10 dan x2 bernilai -5. Maka kurangkan x1-x2 = 10-(-5) = 15. Lalu 15 kuadratkan sehingga memperoleh hasil 225. Langkah terakhir adalah diakarkan 2, sebagaimana rumusnya, sehingga kembali ke hasil 15. Bagaimana jika prosesnya dibalik, bukan x1-x2 tapi x2-x1? hasilnya akan sama saja. Coba saja!

Contoh jarak eulidean 2 dimensi
Terdapat suatu studi kasus begini, saya memiliki teman bernama anton yang berusia 25 tahun dengan berat badan 65 kg. Teman saya satu lagi, andi berusia 27 tahun dengan berat badan 70 kg. Sedangkan saya sendiri berumur 26 tahun dengan berat badan 67 kg. Pertanyaannya, berdasarkan variabel usia dan berat badan, saya mirip anton atau andi? 

Pertanyaan itu bisa dijawab menggunakan pendekatan jarak euclidean. Anggap saja variabel usia adalah x dan variabel berat badan adalah y. Maka, implementasinya seperti ini:
d (anton, saya) = (25-26)^2 + (65-67)^2 = 1+4 = 5. Hasil dari akar 5 adalah 2,24
d (andi, saya) = (27-26)^2 + (70-67)^2 = 1+9 = 10. Hasil dari akar 10 adalah 3,16

Kesimpulannya, saya mirip siapa? anda sudah tahu jawabannya. Mana jarak yang paling dekat diantara 2,24 dan 3,16. Tentu saja 2,24. Jadi, semakin kecil nilai jarak eulidean maka semakin mirip. Jika hasilnya 0? berarti bukan hanya mirip tapi sama. 

Sekarang, bagaimana cara menerapkan jarak euclidean di Java? Mudah saja. Buat method baru bernama jarakEulidean, tuliskan rumus euclidean di method itu. Untuk code akar dan pangkat, bisa menggunakan objek Math. Pilih Math.sqrt untuk akar dan Math.pow untuk pangkat. Parameter pada method ini ada 4, ini khusus untuk 2 dimensi, yakni x1,x2,y1,y2. Jika 3 dimensi maka ada 6 parameter. Tinggal anda sesuaikan saja. Selanjutnya panggil method jarakEulidean pada method main. Oke beres, seperti ini: 

public class jarakEulidean {

    static double jarakEuclidean(int x1, int x2, int y1, int y2) {
        return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
    }

    public static void main(String[] args) {
        
        int umurSaya = 26 ;
        int BBSaya=67;
        
        int umurAnton = 25;
        int BBAnton = 65;
        
        int umurAndi = 27;
        int BBAndi = 70;
        
        double d_saya_anton= jarakEuclidean(umurAnton,umurSaya,BBAnton,BBSaya);
        double d_saya_andi= jarakEuclidean(umurAndi,umurSaya,BBAndi,BBSaya);
        
        System.out.println("jarak antara saya dengan anton = " + d_saya_anton);
        System.out.println("jarak antara saya dengan andi = " + d_saya_andi);
        
    }
}
}

Hasil running-nya seperti Gambar 3:
Gambar 3. Running jarak euclidean

Mudah kan? seharusnya untuk dimensi 3 atau yang lebih tinggi, anda sudah bisa mengimplementasikan. Tinggal sesuaikan saja.
Jika dimensinya 3 maka variabel jarak euclideannya adalah x,y,z
Jika dimensinya 4 maka variabel jarak auclideannya adalah a,b,c,d.

Berikut penjelasan source code via Youtube



Cukup sekian penjelasan ini. Silakan tanya jika kurang paham.

Ada bonus materi berupa penjelasan via youtube tentang ngoding Euclidean Distance untuk temu kembali citra (image retrival).





Salam
Kita Informatika

Post a Comment