Implementasi dan Perbandingan Algoritma Minimum Spanning Tree Borůvka dan Prim Dalam Optimasi Panjang Jalur Listrik

BAB 2

LANDASAN TEORI

2.1

Graf

Graf G didefinisikan sebagai pasangan himpunan (V, E), ditulis dengan notasi G = (V,
E). Dalam hal ini, V merupakan himpunan tidak kosong dari simpul-simpul (vertices
atau node) digambarkan dalam titik-titik, dan E adalah himpunan sisi-sisi (edges atau
arcs) digambarkan dalam garis-garis yang menghubungkan sepasang simpul, V tidak
boleh kosong, sedangkan E boleh kosong. Jadi, sebuah graf dimungkinkan tidak
memiliki sisi satu buah pun, tetapi simpulnya harus ada, minimal satu. Graf yang
hanya mempunyai satu buah simpul tanpa sebuah sisi pun dinamakan graf trivial
(Munir R, 2007).
Nama “graf” diberikan karena graf dapat disajikan secara grafik atau gambar,
dan dengan bentuk gambar inilah sifat-sifat graf dapat dikenali secara detail. Titik
disajikan dalam bentuk noktah atau lingkaran kecil dan disajikan dalam bentuk garis
atau kurva yang memasangkan dua titik. Penyajian graf secara gambar tidak harus
tunggal. Penempatan posisi titik dan sisi tidak menjadi perhatian yang serius

(Abdussakir, et all, 2009).

2.2

Jenis-jenis Graf

Graf dapat dikelompokkan menjadi beberapa jenis bergantung pada sudut pandang
pengelompokkannya. Pengelompokkan graf dapat dipandang berdasarkan ada
tidaknya sisi ganda atau sisi kalang, berdasarkan jumlah simpul atau berdasarkan
orientasi arah pada sisi (Munir R, 2007).

Universitas Sumatera Utara

8

Berdasarkan ada tidaknya gelang atau busur ganda pada suatu graf maka secara umum
graf dapat dikelompokkan menjadi dua jenis:
1. Graf sederhana (simple graph) yaitu graf yang tidak mengandung gelang maupun
sisi-ganda dinamakan graf sederhana. Pada graf sederhana, sisi adalah pasangan
tak-terurut (unordered pairs). Jadi menuliskan sisi (u,v) sama saja dengan (v,u).

Kita dapat juga mendefinisikan graf sederhana G=(V,E) terdiri dari himpunan
tidak kosong simpul-simpul dan E adalah himpunan pasangan tak-terurut yang
berbeda disebut sisi (Munir R, 2007).
2. Graf tak-sederhana (unsimple graph) yaitu graf yang mengandung sisi ganda atau
gelang dinamakan graf tak-sederhana (unsimple graph). Ada dua macam graf taksederhana, yaitu graf ganda (multigraph) dan graf semu (pseudograph).
a. Graf ganda (multigraph) adalah graf yang mengandung sisi ganda. Sisi ganda
yang menghubungkan sepasang simpul bias lebih dari dua buah. Sisi ganda dapat
diasosiasikan sebagai pasangan tak terurut yang sama (Munir R, 2007).
b. Graf semu (pseudograph) adalah graf yang mengandung gelang (loop). Graf semu
lebih umum daripada graf ganda karena sisi pada graf semu dapat terhubung ke
dirinya sendiri (Munir R, 2007).

Sisi pada graf dapat mempunyai orientasi arah. Menurut orientasi arah pada sisinya,
graf dibagi menjadi dua jenis, yaitu:
1. Graf tidak berarah (undirected graph) adalah graf yang sisinya tidak mempunyai
orientasi arah, pada graf ini, urutan pasangan simpul yang dihubungkan oleh sisi
tidak diperhatikan (Munir R, 2007).
2. Graf berarah (directed graph) adalah graf yang setiap sisinya diberikan orientasi
arah, Graf berarah sering dipakai untuk menggambarkan aliran proses, peta lintas
suatu kota, dan sebagainya (Munir R, 2007).

Graf juga ada yang mempunyai bobot atau nilai. Berdasarkan bobotnya, graf dibagi
menjadi dua jenis, yaitu:
1. Graf tidak berbobot (unweighted graph) adalah graf yang tidak mempunyai bobot
atau nilai.

Universitas Sumatera Utara

9

2. Graf berbobot (weighted graph) apabila sebuah busur mempunyai sebuah nilai
yang menyatakan hubungan antara dua buah simpul, maka busur tersebut
dikatakan mempunyai bobot, dan graf disebut graf berbobot atau weighted graph.
Bobot sebuah busur dapat menyatakan panjang sebuah jalan antara dua buah titik,
atau jumlah rata-rata kendaraan perhari yang melalui sebuah jalan (Sjukani M,
2012). Contoh graf berbobot diperlihatkan pada Gambar 2.1.

Gambar 2.1 Graf Berbobot (weighted graph)
2.3

Contoh Terapan Graf


Aplikasi Graf sangat luas. Graf dipakai di berbagai disiplin ilmu maupun dalam
kehidupan sehari-hari. Graf digunakan untuk memodelkan suatu persoalan. Dibawah
ini terapan graf dalam beberapa bidang.
1. Rangkaian Listrik
Pada tahun 1247 Kirchoff menggunakan graf untuk memodelkan rangkaian listrik.
Berdasarkan graf tersebut Kirchoff menurunkan persamaan arus yang masuk dan
keluar pada tiap simpul. Dari sistem persamaan lanjar (linier) simultan yang
diperoleh dapat dihitung arus listrik yang mengalir pada setiap komponen (Munir
R, 2007).

2. Isomer senyawa kimia karbon
Pada tahun 1257 Arthur Cayley menggunakan graf dalam memodelkan molekul
senyawa alkana CnH2n+2 untuk menghitung jumlah isomernya. Atom karbon (C)
dan atom hidrogen (H) dinyatakan sebagai simpul, sendangkan ikatan antara atom
C dan H dinyatakan sebagai sisi. Isomer adalah senyawa kimia yang mempunyai

Universitas Sumatera Utara

10


rumus molekul sama tetapi rumus bagun (bentuk graf) berbeda (Munir R, 2007).

2.4

Pohon (Tree)

Pohon adalah graf tidak berarah yang berhubungan tanpa terhubung dengan sirkuit
sederhana, karena pohon tidak dapat memiliki rangkaian sederhana, pohon tidak dapat
berisi beberapa tepi atau loop. Maka setiap pohon pasti sebuah graf sederhana (Rosen
K.H, 2012). Konsep dalam teori graf terdiri dari beragam jenis, konsep pohon (tree)
merupakan konsep yang paling populer karena konsep ini mampu mendukung
pemecahan masalah dalam berbagai terapan graf. Dalam kehidupan sehari-hari, orang
telah lama menggunakan pohon untuk menggambarkan hirarkhi. Misalnya, pohon
silsilah keluarga, struktur organisasi dan lain sebagainya. Gambar dari pohon (tree)
dapat dilihat pada Gambar 2.2 berikut:

(a)

(b)


Gambar 2.2 Gambar a merupakan pohon, dan gambar b bukan pohon
Gambar a disebut pohon karena merupakan graf yang tak berarah (directed graph)
dan tidak mengandung sirkuit, sedangkan gambar b bukan pohon karena graf tersebut
tidak terhubung.
2.5

Pohon Merentang Minimum (Minimum Spanning Tree)

Pohon yang mengandung simpul-simpul dalam sebuah grafik yang saling terhubung
disebut spanning tree. Permasalahannya adalah bagaimana mendapatkan suatu pohon

Universitas Sumatera Utara

11

T yang mengandung semua simpul dalam grafik G dan mengandung jumlah minimum
dari bobot simpul-simpulnya (u,v) dari pohon T (Purwanto E.B, 2008).
Pernyataan di atas dapat ditulis dalam bentuk persamaan :


…………(1)

w(T) = (u,v)Tw(u,v)

Algoritma MST (Minimum Spanning Tree) mengelola sebuah himpunan simpul A,
kemudian menjalankan iterasi secara invariant (tidak berbeda). Perhatian utama pada
setiap iterasi adalah A sebagai sub-himpunan dari beberapa MST, sehingga setiap
langkah, akan ditentukan simpul yang dapat ditambahkan ke simpul A tanpa
menghilangkan sifat invariant-nya. Untuk A {(u, v)} sebagai himpunan bagian dari
MST (Purwanto E.B, 2008).
Kasus yang dipecahkan dalam Minimum Spanning Tree adalah mencari biaya
minimum (minimum cost) dari setiap ruas (ujung) pada grafik yang membentuk pohon
pencarian. Sebagai catatan bahwa tidak semua grafik bisa dihitung menggunakan
MST karena untuk dapat menghitung biaya minimum atas terbentuknya sebuah grafik
harus memenuhi kriteria-kriteria spanning tree yaitu:
a. Setiap ruaspada grafik harus terhubung
b. Setiap ruas pada grafik harus mempunyai nilai (label)
c. Setiap ruas pada gafik tidak mempunyai arah
Langkah-langkah menghitung total biaya minimum dari suatu grafik sebagai
berikut:

1. Dari suatu grafik yang terbentuk, perhatikan apakah memenuhi kriteria suatu
spanning tree.
2. Lakukan pelacakan secara berurutan mulai dari simpul pertama sampai dengan
simpul terakhir.
3. Pada setiap simpul perhatikan nilai (biaya) tiap-tiap ruasnya
4. Ambil nilai yang paling kecil artinya jarak terpendek dari setiap ruas simpul
5. Lanjutkan sampai seluruh simpul tergambar pada spanning tree.
6. Jumlahkan nilai yang telah dipilih atau cost minimal yang menghubungkan
simpul-simpul tersebut.

Universitas Sumatera Utara

12

2.6 Algortima BorĤvka
Algoritma Bor vka merupakan algoritma pertama untuk mencari pohon merentang
minimum dari suatu graf ditemukan oleh Otakar Bor vka pada tahun 1926.Algoritma
ini dimulai dengan memeriksa setiap simpul dan menambahkan sisi dengan bobot
terkecil pada pohon merentang, tanpa memperhatikan pada sisi yang telah
ditambahkan, dan melanjutkan menggabungkan sisi tersebut sampai terbentuk suatu

pohon merentang (Nasution R.P, 2007).
Untuk menentukan pohon merentang minimum dari sebuah graf dengan
menggunakan Algoritma Bor vka

maka diperlukan langkah-langkah sebagai

berikut:

Langkah 1: Salin titik dari G ke graf baru L yang kosong.
Langkah 2: Sedangkan L tidak terhubung (artinya hutan lebih dari satu pohon)


Untuk setiap pohon di L, hubungkan sebuah titik ke titik yang lain pada pohon

yang lain di L dengan menambahkan sisi yang berbobot minimum (Chartrand G. &
Ortrud R.O, 1993).

Universitas Sumatera Utara

13


Contoh pengerjaan Algoritma Bor vka dalam graf dapat dilihat pada Gambar 2.3.
(a)

(b)

(c)

(d

Gambar 2.3 Proses pengerjaan graf berbobot dengan menggunakan algoritma
pohon merentang minimum BorĤvka

Universitas Sumatera Utara

14

2.7 Algoritma Prim
Algoritma Prim pertama kali diusulkan oleh Jarnik, tetapi dengan atribut yang spesifik
terhadap Prim. Algoritma ini dimulai dari simpul yang berubah-ubah di setiap
tingkatnya, diperbolehkan menambah cabang baru untuk membuat susunan pohon

baru. Algoritma ini akan tertahan (hold) ketika simpul yang sedang dieksplorasi pada
grafik sudah sampai pada simpul yang dituju. Strategi yang digunakan adalah strategi
Greedy dengan menganggap bahwa setiap langkah dari spanning tree adalah
augmented dan dipilih simpul yang nilainya paling kecil dari semua simpul yang ada
(Purwanto E.B, 2008).
Algoritma Prim banyak menghabiskan waktu untuk mencari simpul dengan
nilai paling kecil. Dengan kata lain bahwa lama waktu didasarkan pada
ketergantungan bagaimana mencari simpul terkecil. Cara singkat untuk mendapatkan
simpul terkecil adalah dengan mencari deret adjensi dari jalur dalam V. Dalam kasus
ini setiap iterasi memerlukan biaya atau energi sebanyak O(m) kali dan membutuhkan
waktu eksekusi sebesar O(mn) (Purwanto E.B, 2008). Algoritma ini menitikberatkan
pada pemilihan bobot minimum berdasarkan simpul yang diambil. Dan karena tidak
perlu mengurutkan terlebih dahulu, algoritma Prim cocok untuk pohon dengan jumlah
simpul banyak. Algoritma Prim akan selalu berhasil menemukan pohon merentang
minimum tetapi pohon merentang yang dihasilkan tidak selalu unik (Nugraha D.W,
2011).
Langkah-langkah dalam menentukan algoritma Prim adalah (Munir R, 2007) ;
1. Menentukan titik awal lalu dilanjutkan mengambil sisi dari graf G yang berbobot
minimum dari titik awal yang di pilih tadi, masukkan ke dalam T yang kosong.
2. Pilih sisi e yang mempunyai bobot minimum berikutnya dan bersisian dengan titik
di T, tetapi e tidak membentuk sirkuit di T, masukkan e ke dalam T.
3. Ulangi sebanyak n-2 kali.

Universitas Sumatera Utara

15

Contoh pengerjaan Algoritma Prim dalam graf dapat dilihat pada Gambar 2.4.
(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

Gambar 2.4 Proses pengerjaan graf berbobot dengan menggunakan
algoritma pohon merentang minimum Prim, akar vertex adalah a

Universitas Sumatera Utara