Vous êtes sur la page 1sur 4

Algoritma Prim dan Algoritma Kruskal

Komang Anggada Sugiarta (135150200111154)


Jefri Hendra Prasetyo (135150201111186)
Panji Tiara Kusuma (135150200111033)
Kukuh Wiliam M (135150200111001)
Taufan Nugraha (135150201111149)
Zainoddin (135150201111217)
Teknik Informatika, Program Teknologi Informasi Dan Ilmu Komputer
Universitas Brawijaya Malang, Jl. Veteran No 8, Malang
k.anggada@yahoo.co.id

Abstrak Graf dapat didefinikan sebagai pasangan


himpunan (V,E), atau dapat dinotasikan dengan
Pada permasalahan menentukan pohon G=(V,E), dimana V adalah himpunan tidak kosong
merentang minimum dapat diselesaikan dengan dari simpul-simpul (vertek) dan E adalah himpunan
beberapa metode. Namun, ada dua cara yang paling dari sisi (edge) yang menghubungkan sepasang
efektif untuk menyelsesaikan masalah menentukan simpul.
pohon merentang minimum, yaitu dengan Beberapa terminologi dasar yang harus diketahui:
algoritma Prim dan algoritma Kruskal. Algoritma a. Graf Berarah (Directed Graph/Digraph)
Prim adalah suatu langkah-langkah untuk membuat Graf berarah adalah graf yang setiap sisinya diberi
pohon (tree) dengan cara memilih atau mengambil orientasi arah. Dalam hal ini sisi yang ditulis (v1,v2)
sisi dari graf yang memiliki bobot minimum dan berbeda dengan sisi (v2,v1)
bersisian dengan simpul di dalam pohon tetapi sisi b. Graf Berbobot (Weight Graf)
tersebut tidak membentuk sirkuit di dalam pohon. Graf berbobot adalah graf yang setiap sisinya diberi
Algoritma Kruskal adalah suatu langkah untuk sebuah harga.
membuat pohon (tree) dengan cara mengurutkan c. Graf Lengkap (Complete Graph)
sisi dari graf berdasarkan urutan bobot dari yang Graf lengkap adalah graf sederhana, tidak
terkecil hingga terbesar tetapi tidak membentuk mengandung gelang (sisi yang kedua simpulnya
sirkuit. sama) maupun sisi ganda (dua sisi yang memiliki
simpul asal dan simpul tujuan yang sama), serta
1. PENDAHULUAN setiap sisinya mempunyai sisi ke simpul lain.
d. Bertetangga (Adjacent)
Teori graf dan pohon merupakan cabang Dua buah simpul pada graf tak berarah dikatakan
dari matematika diskrit yang dapatkan dengan bertentangga bila keduanya terhubung dengan
banyak pemodelan masalah dalam kehidupan sebuah sisi. Dapat dikatakan, jika ada v1 dan v2 yang
sehari-hari. Salah satu pembahasannya yaitu pohon bertetangga, maka harus ada sisi (v1,v2)
merentang minimum (minimum spanning tree). e. Bersisian (Incident)
Salah satu contoh penyelesaian masalh dengan Untuk sembarang sisi e = (v1,v2), sisi e dikatakan
pemodelan pohon merentang minimum adalah bersisian dengan simpul v1 dan simpul v2.
penentuan biaya kabel listrik minimum untuk f. Simpul Terpencil (Isolated Vertex)
menyalurkan listrik ke semua desa. Simpul terpencil adalah simpul yang tidak
Dalam permasalahan pohon merentang mempunyai sisi yang bersisian dengannya. Dengan
minimum dapat diselesaikan dengan beberapa cara. kata lain, simpul ini ialah simpul yang tidak
Namun cara yang paling digunakan adalah satupun bertetangga dengan simpul-simpul lain.
algoritma Prim dan algoritma Kruskal. Kedua g. Graf Kosong (Empty Graf)
algoritma ini terbukti dapat menyelesaikan pohon Graf kosong yaitu graf yang himpunan sisinya
merentang minimum. Namun dalam penggunaanya, merupakan himpunan kosong.
pengguna sering merasa sulit untuk memilih h. Lintasan (Path)
algoritma mana yang lebih tepat. Oleh karena itu, Lintasan yang panjangnya n dari simpul awal v 0 ke
akan membahas tentang kedua algoritma tersebut. simpul akhir vn di dalam graf G ialah barisan
berselang-seling simpul-simpul dan sisi-sisi yang
2. MATERI berbentuk v0, e1, v1, e2, …, vn-1, en, vn sedemikian
sehingga e1=(v0,v1), e2=(v1,v2), …, en=(vn-1,vn)
2.1 Teori Graf adalah sisi-sisi dari graf G.
i. Siklus (Cycle) atau Sirkuit (Circuit) 1. Ambil sisi dari graf yang berbobot
Lintasan yang berawal dan berakhir pada simpul minimum, kemuadian masukkan ke dalam
yang sama disebut siklus atau sirkuit. pohon.
j. Terhubung (Connected) 2. Pilihlah sisi yang mempunyai bobot
Graf disebut graf terhubung jika untuk setiap minimum dan bersisian dengan pohon.
pasang simpul v1 dan v2 di dalam himpunan V Namun sisi tersebut tidak membentuk
terdapat lintasan dari v1 ke v2, yang juga berarrti sirkuit di dalam pohon. Masukkan sisi
ada lintasan dari v2 ke v1 (untuk graf berarah). tersebut ke dalam pohon.
k. Upagraf (Subgraf) dan Komplemen Upagraf 3. Ulangi langkah 2 sampai pohon merentang
Misalkan G = {V,E} sebuah graf, G 1 = {V1,E1} minimum terbentuk, pohon merentang
dikatakan upagraf dari G jika V1 ⊆ V dan E1 ⊆ E. minimum terbentuk setelah mengalami
Komplemen dari upagraf G1 terhadap G adalah graf penggulangan sebanyak n-2 kali. (n adalah
G2 = {V2,E2} sedemikian sehingga E2 = E – E1 dan jumlah simpul graf).
V2 adalah himpunan simpul yang anggota-anggota Penulisan algoritma Prim dalam bentuk
E2 bersisian dengannya. pseudocode:
l. Upagraf Merentang (Spanning Subgraf) procedure Prim (input G: graf, output T: pohon)
Upagraf G1 = {V1,E1} dari G = {V,E} dikatakan { Membentuk pohon merentang minimum T dari
upagraf merentang jika V1=V, G1 mengandung graf terhubung G.
semua simpul G.F Masukan: graf-berbobot tehubung G=(V,E), yang
mana /v/=n
2.2 Teori Pohon Keluaran: pohon merentang minimum T=(V,E) }

Pohon (tree) adalah graf yang mempunyai Deklarasi


sebanyak n vertek (titik), n-1 edge (garis) dan tidak e:sisi
mempunyai sirkuit (cycle free) serta merupakan
graph yang terhubung. Sedangkan graf adalah Algoritma
himpunan vertek dan edge, dimana vertek bukan T sisi e yang mempunyai bobot minimum di
himpunan kosong dan edge ialah himpunan garis dalam E
yang menghubungkan simpul. Jadi pohon E E –{e} { e sudah dipilih, jadi buang e dari
merupakan suatu graf yang tidak memiliki garis E}
yang titik awal dan titik akhirnya sama (sirkuit) for i 1 to n-2 do
Teori Pohon Merentang e sisi yang mempunyai bobot terkecil di dalam
Jika G adalah graf tidak berarah yang E dan bersisian dengan simpul di T
bukan merupakan pohon dan memiliki sirkuit. T T U {e} { masukkan e ke dalam T yang sudah
Maka sebuah pohon dapat dikatakan sebagai terbentuk }
spanning tree, jika pohon tersebut adalah sub-graf E E – {e} { e sudah dipilih, jadi buang e dari
yang G yang memenuhi semua titik G. Jadi pohon E}
merentang adalah pohon yang terbentuk dari sub- endfor
graf dari G yang memenuhi semua titik G dan Contoh soal dan penyelesaian :
tidak membentuk sirkuit. Carilah pohon merentang minimum pada graf yang
ditunjukkan dibawah ini !
2.3 Teori Pohon Merentang Minimum 10 20
A B C
Minimal spanning tree adalah pohon
merentang yang mempunyai jumlah bobot atau 13
5
label yang paling minimal. Artinya pohon
merentang minimal ialah pohon merentang yang 12
15
dibuat dengan bobot paling kecil. D

2.4 Teori Algoritma Prim 11


21

Algoritma Prim adalah suatu langkah- F


langkah untuk membuat pohon (tree) dengan cara E
memilih atau mengambil sisi dari graf yang 16
memiliki bobot minimum dan bersisian dengan Penyelesaian dengan algoritma Prim :
simpul di dalam pohon tetapi sisi tersebut tidak
membentuk sirkuit di dalam pohon.
Sisi Bobot Hutan merentang
Langkah-langkah algoritma Prim: Lang
kah
1. CD 5 Algoritma Kruskal adalah suatu langkah
untuk membuat pohon (tree) dengan cara
C mengurutkan sisi dari graf berdasarkan urutan
bobot dari yang terkecil hingga terbesar tetapi tidak
D 5 membentuk sirkuit.
Langkah-langkah algoritma Kruskal:
1. Lakukan pengurutan terhadap setiap sisi di
graf mulai dari sisi dari bobot terkecil
2 DE hingga bobot terbesar.
C 11 2. Pilih sisi yang mempunyai bobot
minimum yang tidak membentuk sirkuit
D 5 pada pohon, kemudian tambahkan sisi
tersebut ke dalam pohon.
11 3. Ulangi langkah kedua sampai pohon
E minimum merentang terbentuk, pohon
merentang minimum terbentuk setelah
mengalami penggulangan sebanyak n-1
3 CF 11 kali. (n adalah jumlah simpul graf).
C
Penulisan algoritma Kruskal dalam bentuk
pseudocode:
D procedure Kruskal ( input G: graf, output T:
5
12 pohon )
11 { Membentuk pohon merentang minimum T dari
E graf terhubung G.
F Masukan: graf-berbobot tehubung G=(V,E), yang
mana /v/=n
Keluaran: pohon merentang minimum T=(V,E) }
4 DB 12
B C Deklarasi
i, p, q, u, v : integer
5
13
12 Algoritma
11 D ( Asumsi: sisi-sisi dari graf sudah diurut menaik
E berdasarkan bobotnya )
F T {}
while jumlah sisi T < n - 1 do
5 AB 13 e sisi di dalam E
A B C E E – {e} { e sudah dipilih, jadi buang e dari
10
E}
13 5 if e tidak membentuk siklus di T then
12 T T U {e} { masukkan e ke dalam T yang
sudah terbentuk }
11
endif
E
F endwhile
Sisi Bobot Hutan merentang
Lang
kah
Perhatikan bahwa algoritma Prim tidak 1. CD 5
menentukan sisi mana yang di pilih jika terdapat
C buah sisi yang berbobot sama. Saatu
lebih dari satu
caa untuk mengatasi hal ini dengn mengurutkan sisi
– sisi ituDberdasarkan
5 bobotnya dari kecil ke besar.
Kemudian pohon merentang minimum yang
dihasilkan tidak selalu unik. Graf sederhana
terhubung dan berbobot dapat memiliki lebih dari
satu buah pohon merentang yang berbeda tetapi
jumlah bobot minimumnya sama.

2.5 Teori Algoritma Kruskal


2 DE
C 11 REFERENSI
D 5 Munir, Rinaldi. (2005). Matematika Diskrit. Edisi
revisi kelima. Bandung:Informatika Bandung.
11 Rosen, Kenneth. (2012). Discrete Mathematics and
E Its Applications. Edisi ketujuh. New York:The
McGraw-Hill Companies.
Wikipedia. (2013, 29 November). Kruskal’s
3 CF 11 algorithm. Diperoleh 28 Desember 2013, dari
C
http://en.wikipedia.org/wiki/Kruskal
%27s_algorithm.
D Wikipedia. (2013, 5 April). Algoritma Prim.
5
12 Diperoleh 28 Desember 2013, dari
11 http://id.wikipedia.org/wiki/Algoritma_Prim.
E
F

4 DB 12
B C
5
13
12
11 D
E
F

5 AB 13
A B C
10

13 5
12

11
E
F

Pertama sisi-sisi graf diurutkan dari bobot yang


terkecil hingga bobot yang terbesar kemudian sisi-
sisi tersebut akan terhubung dan membentuk pohon
merentang minimum dengan syarat tidak boleh
terdapat sirkuit dalam pohon.

3. KESIMPULAN

Kesimpulan yang dapat diambil dari studi dan


perbandingan dua algoritma pencarian pohon
merentang minimum adalah:
1. Algoritma Prim dan Algoritma Kruskal
dapat menyelesaikan masalah pencarian
pohon merentang minimum dengan tepat
dan akurat.
2. Algoritma Kruskal lebih efisien
dibandingkan algoritma Prim saat graf
yang diberikan memiliki banyak simpul
dengan sisi yang sedikit.
3. Algoritma Prim lebih efisien dibandingkan
algoritma Kruskal saat graf yang diberikan
memiliki banyak sisi dengan simpul yang
sedikit (graf lengkap).

Vous aimerez peut-être aussi