viewers

Minggu, 31 Mei 2015

KRUSKAL



BAB I
PENDAHULUAN
A.   Latar Belakang
Dimasa sekarang dunia ilmu teknologi berkembang begitu pesat sehingga kita selaku pemeran dalam dunia tersebut hendaknya dapat bersaing dan membuat suatu program yang nantinya dapat bermanfaat. Maka dari itu dalam mewujudkan hal tersebut kita dituntut untuk dapat bekerja secara efisien dan efektif dalam segala hal, salah satu cara terbaik untuk dapat bekerja efisien adalah dengan menggunakan sebuah algoritma.
Dalam makalah ini kami ingin membahas salah satu metode penyelesaian kasus menggunakan algoritma Kruskal yang merupakan salah satu metode yang berguna untuk menyelesaikan dan memahami suatu masalah yang berkaitan dengan spanning tree, dengan harapan  penyelesaian suatu masalah tersebut akan lebih efisien menggunakan algoritma ini.


B.   Rumusan Masalah
1.      Apa definisi dari algoritma kruskal ?
2.      Bagaimana karakteristik algoritma kruskal ?
3.      Apa kelebihan dan kekurangan algoritma kruskal ?
4.      Contoh dari algortima kruskal ?


BAB II
PEMBAHASAN

A.   Definisi Algoritma Kruskal
Algoritma kruskal adalah sebuah algoritma dalam teori graf yang mencari sebuah minimum spanning tree untuk sebuah graf berbobot yang terhubung. Ini berarti menemukan subset dari tepi yang membentuk sebuah pohon yang mencakup setiap titik , di mana berat total dari semua tepi di atas pohon diminimalkan.. Jika grafik tidak terhubung, maka menemukan hutan rentang minimum (pohon rentang minimum untuk setiap komponen terhubung ) . Algoritma Kruskal juga tergolong algoritma Greedy dalam teori graf yang digunakan untuk mencari minimum spanning tree. Algoritma ini pertama kali muncul pada tahun 1956 dalam sebuah tulisan yang ditulis oleh Joseph Kruskal. Algoritma Kruskal adalah contoh dari algoritma rakus . Algoritma ini pertama kali muncul dalam Prosiding American Mathematical Society , hal 1956.
Dasar pembentukan algoritma Kruskal berasal dari analogi growing forest. Growing forest maksudnya adalah untuk membentuk pohon merentang minimum T dari graf G adalah dengan cara mengambil satu per satu sisi dari graf G dan memasukkannya ke dalam pohon yang telah terbentuk sebelumnya. Seiring dengan berjalannya iterasi untuk setiap sisi, maka forest akan memiliki pohon yang semakin sedikit. Oleh sebab itu, maka analogi ini disebut dengan growing forest. Algoritma Kruskal akan terus menambahkan sisi – sisi ke dalam hutan yang sesuai hingga akhirnya tidak akan ada lagi forest dengan, melainkan hanyalah sebuah pohon yang merentang minimum.
Graph : kumpulan dua himpunan yaitu himpunan titik ( vertex / simpul / node ) dan kumpulan dari garis ( edge ).
Tree : graph tak berarah yang terhubung dan tidak mengandung sirkuit. Sirkuit : simpul awal = simpul akhir.1

Secara Umum  Algoritma Kruskal ditulis :
1.    T masih kosong .
2.    pilih sisi (i,j) dengan bobot minimum.
3.    pilih sisi (i,j) dengan bobot minimum berikutnya yang tidak membentuk cycle di T, tambahkan (i,j) ke T.
4.    Ulangi langkah 3 sebanyak (n-2) kali.
5.    Total langkah (n-1) kali.

B.   Karakteristik Algoritma Kruskal
Sifat Algoritma Kruskal ini:
1.      Ia bekerja tidak hanya dengan grafik diarahkan.
2.      Ia bekerja dengan bobot dan tidak grafik tertimbang. Tapi, yang lebih menarik, apabila tepi yang berbobot.
3.      Kruskal adalah jenis algoritma serakah yang menghasilkan solusi optimal MST.

Langkah Algoritma Kruskal
Langkah-langkah utama Algoritma Kruskal adalah sebagai berikut:
1.      Atur tepi berat: paling berat pertama dan terberat terakhir.
2.      Pilih yang paling ringan tidak diperiksa tepi dari diagram.
3.      Tambahkan tepi memilih ini ke pohon, hanya jika hal itu tidak akan membuat siklus.
4.      Menghentikan proses kapanpun n - 1 tepi telah ditambahkan ke pohon.2

C.   Kelebihan dan Kekurangan Algoritma Kruskal
Terdapat dua macam algoritma tipe greedy yang dapat memenuhi pemecahan masalah pohon merentang ini. Yaitu algoritma Prim dan algoritma kruskal, berikut adalah kelebihan dan kekurangan algoritma Kruskal dibanding algoritma prim.

a) Kelebihan Algoritma Kruskal
Kelebihan algoritma Kruskal dibanding algoritma prim adalah sebagai berikut :
ü  Sangat cocok diterapkan saat graf memiliki sisi berjumlah sedikit namun memiliki sangat banyak simpul, karena orientasi kerja algoritma ini adalah berdasarkan pada urutan bobot sisi, tidak berdasarkan simpul.

b) Kekurangan Algoritma Kruskal
Beberapa hal yang menjadi kekurangan algoritma kruskal dibanding algoritma prim :
ü  Kurang cocok digunakan saat graf lengkap atau yang mendekati lengkap, dimana setiap simpul terhubungkan dengan semua simpul yang lain. Karena algoritma Kruskal menitik beratkan pada pencarian sisi, dimana sisi-sisi tersebut harus diurutkan dan ini memakan waktu yang tidak sedikit


D. Contoh Penyelesaian dengan Algoritma Kruskal
Contoh penyelesaian kasus minimun spanning tree dengan algoritma kruskal, diketahui sebuah graf berbobot seperti gambar 2.10 dibawah ini
 
Gambar 2.10 Gambaran Awal graf


Tabel 2. 1 Daftar urut nilai Graf dari sisi terbesar sampai terkecil
Bobot
Ruas


15
D,E


9
B,D
E,F

8
B,C
B,E
F,G
7
A,D
C,E

6
A,B
E,G

5
D,F


Penyelesaian :
1.    Mula-mula kita buat sekumpulan titik G hanya terdiri dari simpulsimpul saja. 
2.    Urutkan Ruas dari bobot kecil ke besar (DF, AB, EG, AD, CE, BC, BE, FG, BD, EF, DE), kemudian berdasarkan urutan tersebut, kita menambahkan ruas dengan mencegah terbentuknya sirkuit. 


 






a. Pilih ruas terkecil secara  acak
.





b. Penambahan ruas AB  tambahkan ruas DF ke dalam tree  

               
              
c. Penambahan  ruas EG                     d. Penambahan ruas AD


 




e. Penambahan ruas CE





f. Penambahan Ruas BC, dan ruas  BE dihapus karena membentuk sirkuit.

                         
 

 
g. Ruas FG dihapus karena                         h. Ruas DB dihapus karena membentuk sirkuit. membentuk sirkuit.




 i.      Ruas EF dihapus karena membentuk sirkuit.
j. Ruas DE dihapus karena membentuk sirkut.

 
k. SELESAI.
MST Graf G dengan Nilai Bobot : 38

Gambar 2.11 Teknik penyelesaian Spanning Tree dengan Metode
Kruskal

Pada Gambar 2.12 langkah-langkah teknik penyelesaian Minimum


Spanning Tree adalah sebagai berikut :
a.    Pilih ruas terkecil dari keseluruhan graf secara acak. Ruas DF adalah ruas terkecil dengan bobot 5 (gambar 2.11 (a))
b.    Setelah ruas 1 didapatkan, ulangi lagi pemilihan ruas terkecil secara acak dari keseluruhan graf. Ruas AB dan ruas EG adalah ruas terkecil dengan bobot 6. Pilih acak ruas AB (Gambar 2.11(b))
c.    Lanjutkan untuk ruas yang selanjutnya, Ruas EG adalah ruas terkecil dengan bobot 6 dan tidak membentuk sirkuit jika dihubungkan. Maka pilih ruas EG (Gambar 2.11(c))
d.   Pilih ruas selanjutnya dengan bobot yg terkecil saat ini, yaitu ruas AD dan ruas CE dengan bobot 7. Pilih acak ruas AD (Gambar 2.11(d))
e.    Lanjutkan untuk ruas CE adalah ruas terkecil dengan 7 dan tidak membentuk sirkuit jika dihubungkan. Maka pilih ruas CE (Gambar
2.11(e))
g.    Ruas selanjutnya dengan bobot yg terkecil saat ini yaitu ruas BC, BE dan  FG dengan bobot 8. Pilih acak ruas BC dan hapus ruas BE (Gambar 2.11(f)) dan ruas FG karena akan membentuk sirkuit jika dihubungkan (Gambar 2.11(g))
h.    Untuk ruas-ruas selanjutnya, BD, EF,dan DE dihapus karena akan membentuk sirkut jika dihubungkan (Gambar 2.11(h), Gambar 2.11(i),
Gambar 2.11(j))
i.      Gambar 2.11(k) adalah Minimum Spanning Tree yang dihasilkan.


BAB III
PENUTUP
A.   Kesimpulan
Algoritma Kruskal merupakan turunan dari algoritma greedy yang mengupayakan pengambilan pilihan optimum pada setiap langkah dengan harapan akan mendapatkan hasil optimum global pada akhirnya.
Algoritma Kruskal menitik beratkan pemilihan sisi berdasarkan urutan bobotnya. Dan karena terlebih dahulu harus mengurutkan sisi berdasarkan bobotnya, algoritma ini lebih cocok untuk pohon dengan jumlah simpul sedikit kurang disarankan untuk pohon dengan jumlah simpul yang banyak.


Daftar Pustaka

1 komentar: