2.7 Jarak Euclidean Euclidean Distance
Jarak Euclidean Euclidean Distance diperkenalkan oleh Euclid, seorang matematikawan dari Yunani sekitar tahun 300 SM untuk mempelajari hubungan
antara sudut dan jarak. Euclidean berkaitan dengan teorema Phytagoras dan biasanya diterapkan pada satu, dua, dan tiga dimensi.
Jarak Euclidean merupakan suatu metode metrika yang paling sering digunakan untuk menghitung atau mencari kedekatan nilai jarak dari dua buah
variabel. Jarak Euclidean adalah sebuah fungsi heuristik yang diperoleh berdasarkan jarak langsung bebas hambatan, misalnya ntuk mendapatkan nilai dari panjang garis
diagonal pada sebuah segitiga. Dalam kasus ini, maka rumus Euclidean digunakan untuk mencari nilai jarak antara dua buah titik dalam koordinat dua dimensi x,y.
Gambar 2. 7 Cara Menghitung Jarak Euclidean
Rumus dari Euclidean distance adalah akar dari kuadrat perbedaan dua titik koordinat atau dapat dituliskan sebagai berikut:
Keterangan: d = jarak Euclidean
x
1
x = nilai koordinat x pada titik 1
2
y = nilai koordinat x pada titik 2
1
y = nilai koordinat y pada titik 1
2
= nilai koordinat y pada titik 2
2.8 Algoritma
Istilah algoritma mulai dikenalkan oleh seorang ilmuwan Persia bernama Abu Ja’far Muhammad Ibn Musa Al-Khowarizmi yang hidup antara tahun 780 – 850 di Baghdad,
Irak. Purwanto, E. 2008
Universitas Sumatera Utara
Al Khowarizmi dibaca orang barat menjadi Algorism. Kata ini diambil dari makna khusus di ilmu komputer, dimana “algoritma” merujuk pada metode yang
dapat digunakan komputer untuk memberikan solusi pada masalah yang ada. Inilah yang membuat algoritma berbeda dari kata – kata proses, teknik, atau metode.
Algoritma adalah himpunan berhingga dari instruksi, yang apabila diikuti dapat menyelesaikan masalah tertentu. Horowitz, E., Sahni, S., Rajasekaran, S.
1998. Terdapat beberapa definisi yang diberikan untuk kata algoritma antara lain:
1. Algoritma adalah sekelompok aturan untuk menyelesaikan perhitungan yang
dilakukan oleh tangan atau mesin. 2.
Algoritma adalah langkah demi langkah sebuah prosedur berhingga yang dibutuhkan untuk menghasilkan sebuah penyelesaian.
3. Algoritma adalah urutan langkah – langkah perhitungan yang mentransformasikan
dari nilai masukan menjadi keluaran. 4.
Algoritma adalah urutan operasi yang dilakukan terhadap data yang terorganisasi dalam struktur data.
5. Algoritma adalah sebuah program abstrak yang dapat dieksekusi secara fisik oleh
mesin. 6.
Algoritma adalah sebuah model perhitungan yang dilakukan oleh komputer. Sebagai tambahan, semua algoritma harus memenuhi kriteria sebagai berikut:
1. Input. Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan.
2. Output. Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input.
3. Definitenes. Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan ambiguous.
4. Finiteness. Algoritma harus berhenti after a finite number of steps. 5. Effectiveness. Setiap algoritma diharapkan miliki sifat efektif.
Algoritma terdiri dari satu set langka h yang terbatas, yang masing-masing mungkin memerlukan satu atau lebih operasi. Kemungkinan komputer melaksanakan
operasi ini mengharuskan bahwa kendala tertentu ditempatkan pada jenis operasi dari algoritma didalamnya. Horowitz, E., Sahni, S., Rajasekaran, S. 1998.
Universitas Sumatera Utara
Jadi dapat disimpulkan bahwa algoritma lebih merupakan alur pemikiran atau urutan-urutan dari instruksi untuk menyelesaikan suatu pekerjaan atau suatu masalah
dari pada pembuatan program komputer dalam rentang waktu tertentu. Algoritma inilah yang kemudian dijadikan landasan atau pedoman untuk membuat program
komputer.
2.8.1 Algoritma Sollin
Algoritma Sollin adalah suatu algoritma dalam teori graf yang digunakan untuk menentukan minimum spanning tree di dalam graf berbobot terhubung dengan cara
melakukan penghapusan sisi – sisi yang tidak menyebabkan graf menjadi tidak terhubung atau membentuk sirkuit. Lubis, Ibnu H. 2011
Langkah – langkah dalam menentukan hasil dari Algoritma Sollin ini adalah: 1.
Menginisialisasi bahwa graf T masih berupa graf kosong. 2.
Memilih edge dengan nilai bobot terbesar dari masing – masing titik yang saling berhubungan kemudian mengeliminasi edge yang sama jika pada edge yang
terpilih terdapat edge dengan titik yang sama. 3.
Mengelompokkan edge yang telah terpilih ke dalam tree-nya masing – masing. Menghubungkan masing – masing tree yang telah terbentuk di dalam graf T agar
menjadi suatu penyelesaian MST. Wamiliana. Kurniawan, D. Shavitri, C. 2014. Contoh dari algoritma Sollin dapat dilihat pada Gambar 2.8. Graf berikut
merupakan suatu graf berbobot yang memiliki 10 simpul dan 16 sisi dengan bobot awal adalah 2 + 9 + 6 + 7 + 1 + 8 + 3 + 5 + 4 + 3 + 2 + 11 + 10 + 2 + 8 + 6 = 87.
b c
d a
g h
9 6
7 i
j 3
11 1
8 2
2 5
3 4
e
f 2
6 8
10
a Pencarian MST pada algoritma Sollin dilakukan dengan memilih sisi yang
memiliki bobot terbesar yaitu sisi c – g dengan bobot 11.
b c
d a
g h
9 6
7 i
j 3
11 1
8 2
2 5
3 4
e
f 2
6 10
8
Universitas Sumatera Utara
b Kemudian dari masing – masing verteks yang saling berhubungan dicari sisi yang
mempunyai bobot terbesar dan menghapus sisi yang membentuk sirkuit pada graf.
b c
d a
g h
9 6
7 i
j 3
11 1
8 2
2 5
3 4
e
f 2
6 8
10
c Sisi edge c – d dihapus karena membentuk sirkuit c - d – g – c.
b c
d a
g h
9 7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 10
8
d Langkah berikutnya mencari kembali sisi dengan bobot terbesar dari masing –
masing verteks yang saling berhubungan.
b c
d a
g h
9 7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
e Langkah yang dilakukan sama seperti langkah sebelumnya.
b c
d a
g h
9 7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
Universitas Sumatera Utara
f Sisi f – g dihapus karena membentuk sirkuit d – e – f – g – d, dan sisi e – g
dihapus karena membentuk sirkuit d – e – g – d.
b c
d a
g h
9 7
i j
3 11
1 8
2 2
5 3
4 e
f 8
10
g Sisi h – g dihapus karena membentuk sirkuit b – c – g – h – i – b.
8 b
c d
a g
h 9
7 i
j 3
11 8
2 2
5 3
4 e
f 10
h Sisi i – j dihapus karena membentuk sirkuit i – j – h – i, dan sisi c – j dihapus
karena membentuk sirkuit b – c – j – h – i – b.
8 b
c d
a g
h 9
7 i
j 11
8 2
2 5
3 e
f 10
i Sisi a – b dihapus karena membentuk sirkuit a – b – i – a. Total bobot akhir adalah
3 + 5 + 9 + 11 + 7 + 10 + 8 + 2 + 8 = 63.
8 b
c d
a g
h 9
7 i
j 11
8 2
5 3
e
f 10
Gambar 2. 8 Proses pengerjaan graf berbobot dengan menggunakan Algoritma Sollin
Universitas Sumatera Utara
2.8.2 Algoritma Prim’s
Salah satu algoritma yang sering digunakan untuk menyelesaikan persoalan minimum spanning tree adalah algoritma Prim’s. Algoritma ini ditemuka n oleh Robert C. Prim.
Syahfitri, R. 2009 Algoritma Prim’s adalah suatu algoritma di dalam teori graf yang bertujuan
menentukan suatu minimum spanning tree dari suatu graf terhubung yang berbobot. Metode ini digunakan untuk menentukan suatu subset dari sisi yang membentuk suatu
pohon yang melibatkan tiap – tiap titik, dimana total bobot dari semua sisi di dalam pohon adalah minimum. Lubis, Ibnu H. 2011
Algoritma Prim’s dimulai dari graf kosong. Algoritma ini membentuk minimum spanning tree langkah demi langkah dimana pada setiap langkah kita
mengambil verteks – verteks yang berkaitan dengan sisi edge tersebut, namun pada pemilihan edge berikutnya selalu terhubung dengan minimum spanning tree T yang
telah terbentuk. Langkah – langkah dalam menentukan hasil dari Algoritma Prim’s ini adalah:
1. Ambil sembarang simpul vertex sebagai simpul awal dari graf G, kemudian cari
sisi edge yang berbobot minimum dari simpul vertex awal tersebut, masukkan ke dalam T.
2. Pilih edge u,v yang mempunyai bobot minimum dan bersisian dengan simpul T,
tetapi u,v tidak membentuk sirkuit di T. Tambahkan u,v ke dalam T. 3.
Ulangi langkah 2 sampai minimum spanning tree terbentuk, yaitu setelah mengalami pengulangan sebanyak n – 2 kali dimana n adalah jumlah simpul graf
G. Syahfitri, R. 2009 Contoh dari algoritma Prim’s dapat dilihat pada Gambar 2.9. Graf berikut
merupakan suatu graf berbobot yang memiliki 10 verteks dan 16 sisi dengan bobot awal adalah 2 + 9 + 6 + 10 + 8 + 6 + 1 + 8 + 3 + 5 + 4 + 3 + 2 + 11 + 7 + 2 = 87.
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
Universitas Sumatera Utara
a Proses pencarian MST dilakukan dengan mencari sisi yang memiliki bobot atau
nilai terkecil dari verteks awal, yaitu a.
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
b Kemudian selanjutnya dilakukan pencarian dengan memilih sisi yang bersisian
dengan verteks dan memiliki bobot terkecil dan tidak membentuk sirkuit. Langkah ini dilakukan secara berulang hingga terbentuk sebuah minimum
spanning tree MST dari graf tersebut.
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
c
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
d
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
e
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
Universitas Sumatera Utara
f Sisi b – i tidak dihitung di dalam graf karena membentuk sirkuit a – b – i – a.
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
g
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
h
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
i Total bobot akhir dari graf adalah 2 + 3 + 4 + 2 + 1 + 3 + 6 + 2 + 8 = 31.
b c
d a
g h
9 6
7
i j
3 11
1 8
2 2
5 3
4 e
f 2
6 8
10
Gambar 2. 9 Proses pengerjaan graf berbobot dengan menggunakan algoritma Prim’s untuk menentukan minimum spanning tree dengan verteks awal adalah a.
2.9 Kompleksitas Algoritma