• Tidak ada hasil yang ditemukan

Algoritma Prim dan Algoritma Kruskal

N/A
N/A
Protected

Academic year: 2018

Membagikan "Algoritma Prim dan Algoritma Kruskal"

Copied!
4
0
0

Teks penuh

(1)

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

Pada permasalahan menentukan pohon merentang minimum dapat diselesaikan dengan beberapa metode. Namun, ada dua cara yang paling efektif untuk menyelsesaikan masalah menentukan pohon merentang minimum, yaitu dengan

algoritma Prim dan algoritma Kruskal. Algoritma Prim adalah suatu langkah-langkah untuk membuat pohon (tree) dengan cara memilih atau mengambil sisi dari graf yang memiliki bobot minimum dan bersisian dengan simpul di dalam pohon tetapi sisi tersebut tidak membentuk sirkuit di dalam pohon. Algoritma Kruskal adalah suatu langkah untuk membuat pohon (tree) dengan cara mengurutkan sisi dari graf berdasarkan urutan bobot dari yang terkecil hingga terbesar tetapi tidak membentuk sirkuit.

1. PENDAHULUAN

Teori graf dan pohon merupakan cabang dari matematika diskrit yang dapatkan dengan banyak pemodelan masalah dalam kehidupan sehari-hari. Salah satu pembahasannya yaitu pohon merentang minimum (minimum spanning tree). Salah satu contoh penyelesaian masalh dengan pemodelan pohon merentang minimum adalah penentuan biaya kabel listrik minimum untuk menyalurkan listrik ke semua desa.

Dalam permasalahan pohon merentang minimum dapat diselesaikan dengan beberapa cara. Namun cara yang paling digunakan adalah algoritma Prim dan algoritma Kruskal. Kedua algoritma ini terbukti dapat menyelesaikan pohon merentang minimum. Namun dalam penggunaanya, pengguna sering merasa sulit untuk memilih algoritma mana yang lebih tepat. Oleh karena itu, akan membahas tentang kedua algoritma tersebut.

2. MATERI

2.1 Teori Graf

Graf dapat didefinikan sebagai pasangan himpunan (V,E), atau dapat dinotasikan dengan G=(V,E), dimana V adalah himpunan tidak kosong dari simpul-simpul (vertek) dan E adalah himpunan dari sisi (edge) yang menghubungkan sepasang simpul.

Beberapa terminologi dasar yang harus diketahui: a. Graf Berarah (Directed Graph/Digraph) Graf berarah adalah graf yang setiap sisinya diberi orientasi arah. Dalam hal ini sisi yang ditulis (v1,v2) berbeda dengan sisi (v2,v1)

b. Graf Berbobot (Weight Graf)

Graf berbobot adalah graf yang setiap sisinya diberi sebuah harga.

c. Graf Lengkap (Complete Graph) Graf lengkap adalah graf sederhana, tidak mengandung gelang (sisi yang kedua simpulnya sama) maupun sisi ganda (dua sisi yang memiliki simpul asal dan simpul tujuan yang sama), serta setiap sisinya mempunyai sisi ke simpul lain. d. Bertetangga (Adjacent)

Dua buah simpul pada graf tak berarah dikatakan bertentangga bila keduanya terhubung dengan sebuah sisi. Dapat dikatakan, jika ada v1 dan v2 yang bertetangga, maka harus ada sisi (v1,v2)

e. Bersisian (Incident)

Untuk sembarang sisi e = (v1,v2), sisi e dikatakan bersisian dengan simpul v1 dan simpul v2.

f. Simpul Terpencil (Isolated Vertex)

Simpul terpencil adalah simpul yang tidak mempunyai sisi yang bersisian dengannya. Dengan kata lain, simpul ini ialah simpul yang tidak satupun bertetangga dengan simpul-simpul lain. g. Graf Kosong (Empty Graf)

Graf kosong yaitu graf yang himpunan sisinya merupakan himpunan kosong.

h. Lintasan (Path)

(2)

i. Siklus (Cycle) atau Sirkuit (Circuit)

Lintasan yang berawal dan berakhir pada simpul yang sama disebut siklus atau sirkuit.

j. Terhubung (Connected)

Graf disebut graf terhubung jika untuk setiap pasang simpul v1 dan v2 di dalam himpunan V terdapat lintasan dari v1 ke v2, yang juga berarrti ada lintasan dari v2 ke v1 (untuk graf berarah).

k. Upagraf (Subgraf) dan Komplemen Upagraf Misalkan G = {V,E} sebuah graf, G1 = {V1,E1} dikatakan upagraf dari G jika V1 ⊆ V dan E1 ⊆ E. Komplemen dari upagraf G1 terhadap G adalah graf G2 = {V2,E2} sedemikian sehingga E2 = E – E1 dan V2 adalah himpunan simpul yang anggota-anggota E2 bersisian dengannya.

l. Upagraf Merentang (Spanning Subgraf) Upagraf G1 = {V1,E1} dari G = {V,E} dikatakan upagraf merentang jika V1=V, G1 mengandung semua simpul G.F

2.2 Teori Pohon

Pohon (tree) adalah graf yang mempunyai sebanyak n vertek (titik), n-1 edge (garis) dan tidak mempunyai sirkuit (cycle free) serta merupakan graph yang terhubung. Sedangkan graf adalah himpunan vertek dan edge, dimana vertek bukan himpunan kosong dan edge ialah himpunan garis yang menghubungkan simpul. Jadi pohon merupakan suatu graf yang tidak memiliki garis yang titik awal dan titik akhirnya sama (sirkuit) Teori Pohon Merentang

Jika G adalah graf tidak berarah yang bukan merupakan pohon dan memiliki sirkuit. Maka sebuah pohon dapat dikatakan sebagai spanning tree, jika pohon tersebut adalah sub-graf yang G yang memenuhi semua titik G. Jadi pohon merentang adalah pohon yang terbentuk dari sub-graf dari G yang memenuhi semua titik G dan tidak membentuk sirkuit.

2.3 Teori Pohon Merentang Minimum

Minimal spanning tree adalah pohon merentang yang mempunyai jumlah bobot atau label yang paling minimal. Artinya pohon merentang minimal ialah pohon merentang yang dibuat dengan bobot paling kecil.

2.4 Teori Algoritma Prim

Algoritma Prim adalah suatu langkah-langkah untuk membuat pohon (tree) dengan cara memilih atau mengambil sisi dari graf yang memiliki bobot minimum dan bersisian dengan simpul di dalam pohon tetapi sisi tersebut tidak membentuk sirkuit di dalam pohon.

Langkah-langkah algoritma Prim:

1. Ambil sisi dari graf yang berbobot minimum, kemuadian masukkan ke dalam pohon.

2. Pilihlah sisi yang mempunyai bobot minimum dan bersisian dengan pohon. Namun sisi tersebut tidak membentuk sirkuit di dalam pohon. Masukkan sisi tersebut ke dalam pohon.

3. Ulangi langkah 2 sampai pohon merentang minimum terbentuk, pohon merentang minimum terbentuk setelah mengalami penggulangan sebanyak n-2 kali. (n adalah jumlah simpul graf).

Penulisan algoritma Prim dalam bentuk pseudocode:

procedure Prim (input G: graf, output T: pohon) { Membentuk pohon merentang minimum T dari graf terhubung G.

Masukan: graf-berbobot tehubung G=(V,E), yang mana /v/=n

Keluaran: pohon merentang minimum T=(V,E) }

Deklarasi E dan bersisian dengan simpul di T

T T U {e} { masukkan e ke dalam T yang sudah terbentuk }

E E – {e} { e sudah dipilih, jadi buang e dari E }

endfor

Contoh soal dan penyelesaian :

Carilah pohon merentang minimum pada graf yang ditunjukkan dibawah ini !

Penyelesaian dengan algoritma Prim :

Lang kah

Sisi Bobot Hutan merentang

(3)

1. CD 5

2 DE 11

3 CF 11

4 DB 12

5 AB 13

Perhatikan bahwa algoritma Prim tidak

menentukan sisi mana yang di pilih jika terdapat lebih dari satu buah sisi yang berbobot sama. Saatu caa untuk mengatasi hal ini dengn mengurutkan sisi – sisi itu berdasarkan 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

Algoritma Kruskal adalah suatu langkah untuk membuat pohon (tree) dengan cara mengurutkan sisi dari graf berdasarkan urutan bobot dari yang terkecil hingga terbesar tetapi tidak membentuk sirkuit.

Langkah-langkah algoritma Kruskal:

1. Lakukan pengurutan terhadap setiap sisi di graf mulai dari sisi dari bobot terkecil hingga bobot terbesar.

2. Pilih sisi yang mempunyai bobot minimum yang tidak membentuk sirkuit pada pohon, kemudian tambahkan sisi tersebut ke dalam pohon.

3. Ulangi langkah kedua sampai pohon minimum merentang terbentuk, pohon merentang minimum terbentuk setelah mengalami penggulangan sebanyak n-1 kali. (n adalah jumlah simpul graf). Penulisan algoritma Kruskal dalam bentuk pseudocode:

procedure Kruskal ( input G: graf, output T: pohon )

{ Membentuk pohon merentang minimum T dari graf terhubung G.

Masukan: graf-berbobot tehubung G=(V,E), yang mana /v/=n

Keluaran: pohon merentang minimum T=(V,E) }

Deklarasi

i, p, q, u, v : integer

Algoritma

( Asumsi: sisi-sisi dari graf sudah diurut menaik berdasarkan bobotnya )

T {}

while jumlah sisi T < n - 1 do e sisi di dalam E

E E – {e} { e sudah dipilih, jadi buang e dari E }

if e tidak membentuk siklus di T then

T T U {e} { masukkan e ke dalam T yang sudah terbentuk }

endif

endwhile

Lang kah

Sisi Bobot Hutan merentang

1. CD 5

5

D

C

12 D 11

5 5

D

C

C

D

E

D 12 11

5

F

E

C

10

13

12

11 5

F

E

C

B

A

13

11 5

F

E

(4)

2 DE 11

3 CF 11

4 DB 12

5 AB 13

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).

REFERENSI

Munir, Rinaldi. (2005). Matematika Diskrit. Edisi revisi kelima. Bandung:Informatika Bandung. Rosen, Kenneth. (2012). Discrete Mathematics and Its Applications. Edisi ketujuh. New York:The McGraw-Hill Companies.

Wikipedia. (2013, 29 November). Kruskal’s algorithm. Diperoleh 28 Desember 2013, dari http://en.wikipedia.org/wiki/Kruskal

%27s_algorithm.

Wikipedia. (2013, 5 April). Algoritma Prim. Diperoleh 28 Desember 2013, dari http://id.wikipedia.org/wiki/Algoritma_Prim.

12 D 11

5

C

D

E

D 12 11

5

F

E

C

10

13

12

11 5

F

E

C

B

A

13

11 5

F

E

Referensi

Dokumen terkait

Konsep dasar yang digunakan dalam algoritma Kruskal dalam menentukan maximum spanning tree adalah pada setiap langkah memilih sisi dari graf G yang

Hasil yang diperoleh menunjukkan bahwa algoritma prim lebih efisien dibanding algoritma kruskal saat graf yang diberikan memiliki banyak sisi dengan simpul yang sedikit

Jadi, pohon merentang adalah graf pohon yang himpunan semua simpulnya merupakan improper subset dari himpunan simpul yang terdapat pada graf G, sedangkan

Konsep dasar yang digunakan dalam algoritma Prim adalah pada setiap langkah, pilih sisi dari graf G yang berbobot minimum, tetapi sisi tersebut tidak membentuk sirkuit

Implementasi sistem aplikasi algoritma Prim untuk menentukan pohon merentang minimum ( minimum spanning tree ) suatu graf berbobot dengan menggunakan program Delphi 7

JUDUL : Pencarian Pohon Merentang Minimum Menggunakan Algoritma Prim dan Algoritma Kruskal Terhadap Pemecahan Masalah Optimasi Jalur Rel pada Rencana Pembangunan

Algoritma Prim adalah algoritma yang digunakan untuk membentuk pohon perentang minimum (minimal spanning tree). Dan bila pohon perentang minimum yang terbentuk

Konsep dasar yang digunakan dalam algoritma Prim adalah pada setiap langkah, pilih sisi dari graf G yang berbobot minimum, tetapi sisi tersebut tidak membentuk sirkuit di