Anda di halaman 1dari 8

BAB II

KAJIAN PUSTAKA

2.1 Graf
Teori graf merupakan sebuah pokok bahasan yang memiliki banyak
terapan sampai saat ini. Terutama dalam pewarnaan graf, di antaranya
untuk masalah penjadwalan, perjalanan pedagang (Gibbons, 1985)
dan alokasi frekuensi (Riihijarvi, et.al., 2005). Graf digunakan untuk
merepresentasikan objek-objek diskrit dan hubungan antara objek-objek
tersebut. Definisi sebuah graf secara matematis adalah sebagai pasangan
himpunan sejumlah simpul (vertices) dan himpunan sisi (edges). Graf
ditulis dengan notasi G = (V, E), yang dalam hal ini V ialah himpunan
tidak kosong dari simpul-simpul (vertices atau node), V = {v1, v2, ... , vn},
dan E ialah himpunan sisi (edges atau arcs), E = {e1, e2, ... , en}, yang
menghubungkan sepasang simpul. Jumlah simpul pada graf disebut
kardinalitas graf, dinyatakan dengan n=¿ V ∨¿ , dan jumlah sisi
dinyatakan dengan m=¿ E∨¿ (Daswa & Riyadi, 2017).
2.1.1 Jenis-jenis Graf
Graf dapat dikelompokkan menjadi beberapa jenis hal ini
berdasarkan ada tidaknya sisi ganda, jumlah simpul, atau orientasi
arah pada sisi (Munir, 2012). Berdasarkan ada tidaknya sisi ganda
atau loop pada suatu graf, maka secara umum graf dapat
digolongkan menjadi (Rambe, 2018):
a. Graf Sederhana (Simple Graph)
Graf sederhana adalah graf yang tidak mengandung sisi ganda
maupun gelang (loop). Pada gambar 2.1 adalah contoh gref
sederhana dengan himpunan simpul V dan himpunan sisi E
adalah (Rambe, 2018) :
V = {1,2,3,4}
E = {(1,2),(1,3),(2,3),(2,4),(3,4)}
Gambar 2.1 Graf Sederhana (Munir, 2012)
b. Graf tak-sederhana (Nonsimple Graph)
Graf tak-sederhana adalah graf yang mengandungsisi ganda
atau loop .Ada dua macam graf tak-sederhana, yaitu graf ganda
(multigraph) dan graf semu (pseudograph) (Munir, 2012). Graf
ganda adalah graf yang mengandung sisi ganda seperti pada
Gambar 2.2. dengan himpunan simpul V dan himpunan sisi E
adalah:
V = {1,2,3,4}
E = {(1,2),(2,3),(1,3),(1,3),(2,4),(3,4),(3,4)}
E = {e1, e2 ,e3, e4 , e5 , e6 , e7}

Gambar 2.2 Graf Ganda (Munir,2012)


Graf semu adalah graf yang mengandung loop (Munir, 2012). Pada
Gambar 2.3. adalah contoh graf semu dengan himpunan simpul V
dan himpunan sisi E adalah:
V = {1,2,3,4}
E = {(1,2),(2,3),(1,3),(1,3),(2,4),(3,4),(3,4),(3,3)}
E = {e1, e2 ,e3, e4 , e5 , e6 , e7, e8 }
Gambar 2.3 Graf Semu (Munir, 2012)
Dilihat dari orientasi arah pada sisinya, maka secara umum graf
dikelompokkan menjadi dua yaitu :
1. Graf tidak berarah (undirected graph) adalah graph yang sisi
tidak mempunyai orientasi arah. Pada graf ini, urutan pasangan
simpul yang dihubungkan oleh sisi tidak diperhatikan (Munir,
2012). Contoh graf tidak berarah dapat dilihat pada Gambar 2.4

Gambar 2.4 Graf Tidak Berarah (Munir, 2012)


2. Graf berarah (directed graph) adalah graf yang setiap sisinya
diberikan orientasi arah. Pada graf berarah, (u,v) dan (v,u)
menyatakan dua buah busur yang berbeda, dengan kata lain
(u,v) ≠ (v,u). Untuk busur (u,v), simpul u dinamakan simpul
asal (initial vertex) dan simpul v dinamakan simpul terminal
(terminal vertex) (Munir, 2012). Contoh graf berarah dapat
dilihat pada Gambar 2.5.
Gambar 2.5 (a) Graf Berararh, (b) Graf-Ganda Berarah
2.1.2 Graf Berbobot (Weighted Graph)
Graf berbobot adalah graf yang setiap sisinya memiliki harga
(bobot). Bobot pada tiap sisi bergantung pada masalah yang
dimodelkan sehingga nilainya dapat berbeda-beda. Bobot tersebut
dapat menyatakan jarak antara dua buah kota,
waktu tempuh pesan (message) dari sebuah simpul komunikasi ke
simpul komunikasi lain (dalam jaringan komputer), ongkos
produksi dan sebagainya (Munir, 2012). Contoh graf berbobot
dapat dilihat ada Gambar 2.6.

Gambar 2.6 Weighted Undirected Graph (kiri), dan Weight


Directed Graph (kanan)
Berdasarkan bobot atau label garis pada suatu graf, graf bisa
dibedakan menjadi dua jenis (Ganet, 2019):
1. Graf Tak Berlebel, ialah graf yang sisinya (baik dalam graf
berarah maupun tak berarah) tidak menyatakan bobot/kuantitas
hubungan tersebut. Sisi hanya menunjukkan bahwa kedua
berhubungan.
2. Graf berlebel, ialah graf yang setiap sisinya memiliki
bobot/kuantitas (bilangan riil) yang menunjukkan
bobot/kuantitas hubungan antara kedua titik.
2.2 Algoritma
Berikut beberap definisi algoritma berdasarkan beberapa sumber, yaitu
(Rambe, 2018) :
1. Menurut Kamus Besar Bahasa Indonesia (KBBI), Algoritma adalah
urutan logis pengambilan suatu keputusan dalam memecahkan suatu
permasalahan (Pusat Bahasa Depertemen Pendidikan Nasional, 2008) .
2. Algoritma adalah runtunan logis yang menjelaskan tahapan-tahapan
penyelesaian masalah yang dirangkum secara sistematis untuk
menyelesaikan suatu masalah (Munir, 2012).
3. Algoritma adalah ilmu yang mempelajari tentang bagaimana cara
menyelesaikan suatu masalah berdasarkan urutan langkah-langkah
terbatas yang disusun secara sistematis dan menggunakan bahasa yang
logis dengan tujuan tertentu (Barakbah, et al., 2013).

Menurut Donald E. Knuth (Knuth, 1997) algoritma yang baik dan


benar harus memiliki karakteristik sebagai berikut (Rambe, 2018):

1. Input: Sebuah algoritma harus memiliki nol atau lebih inputan dari
pengguna sebagai data masukan untuk diolah.
2. Output: Sebuah algoritma harus memiliki minimal sebuah ouput yang
merupakan hasil dari olahan data.
3. Finiteness: Sebuah algoritma harus terbatas dan berhenti dari proses
yang telah dieksekusi.
4. Defineteness: Sebuah Algoritma harus jelas dan tidak menimbulkan
makna ganda (ambigious).
5. Effectiveness: Langkah-langkah algoritma dikerjakan dalam waktu
yang
wajar.
2.3 Algoritma Dijksra
Algoritma Dijkstra merupakan algoritma yang digunakan untuk
menentukan jarak terpendek dari satu vertex ke vertex yang lainnya pada
suatu graph berbobot, jarak antar vertex adalah nilai bobot dari setiap edge
pada graph. Algoritma Dijkstra dikenal juga sebagai algoritma greedy
yaitu algoritma yang penyelesaian masalah dengan mencari nilai
maksimum. Cara kerja algoritma Dijkstra dalam pencarian jarak terpendek
adalah perhitungan dari vertex asal ke vertex terdekatnya, kemudian ke
vertex yang kedua, dan seterusnya (Harahap & Khairina, 2017). Algoritma
yang ditemukan oleh Dijkstra untuk mencari path terpendek merupakan
algoritma yang lebih efisien dibandingkan algoritma Warshall, meskipun
implementasinya juga lebih sukar (Folaiman et al., 2018). Dalam
penelitian ini menggunakan Algoritma Djikstra dalam membuat model
CVGRP.
Tujuan CGVRP adalah untuk menentukan koleksi biaya minimum
dari m tur kendaraan yang berawal dan berakhir di gudang sehingga vertek
dari tiap graph dikunjungi tepat satu kali dengan melakukan jalur
Halmiton pada tiap vertek, serta muatan masing-masing kendaraan tidak
melebihi kapasitas. Setiap rute kendaraan mengunjungi tepat satu vertek
dari sejumlah kelompok dan memenuhi kendala kapasitas (Hermanto,
2020). Keuntungan algoritma Dijkstra ialah lebih efisien dan dapat
digunakan untuk memproses graf dikarenakan hanya memproses tiap titik
pada graf sekali. Jumlah titik menentukan tingkat kecepatan menemukan
solusi dari algoritma Dijkstra (Rambe, 2018).
Langkah-langkah algoritma Dijkstra, sebagai berikut:
1. Beri nilai bobot untuk setiap titik ke titik lainnya, lalu set nilai 0 pada
node awal dan nilai tak hingga “∞” terhadap node lain (belum terisi).
2. Set semua node dengan label “unvisited” dan set node awal sebagai
“start”.
3. Menghitung semua jarak yang terhubung dari titik start. Jika jarak ini
lebih kecil dari sebelumya (yang telah terekam sebelumnya) hapus data
lama, simpan data jarak dengan jarak yang baru.
4. Saat selesai mempertimbangkan setiap jarak terhadap node tetangga,
tandai yang telah dikunjungi sebagai “visited”. Node “visited” tidak
akan pernah dicek kembali, jarak yang disimpan adalah jarak yang
terakhir dan yang paling minimal bobotnya.
5. Set node “unvisited” dengan jarak terkecil (dari node start) sebagai
“start” selanjutnya dan lanjutkan kembali ke step 3.
2.4 Lintasan terpendek
Persoalan mencari lintasan terpendek di dalam graf merupakan
salah satu persoalan optimasi. Graf yang digunakan dalam pencarian
lintasan terpendek adalah graf berbobot (weighted graph), yaitu graf yang
setiap sisinya diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat
menyatakan jarak antar kota, waktu pengiriman pesan, ongkos
pembangunan, dan sebagainya. Asumsi yang kita gunakan di sini adalah
bahwa semua bobot bernilai positif. Kata terpendek berbeda-beda
maknanya bergantung pada tipikal persoalan yang akan diselesaikan.
Namun, secara umum terpendek berarti meminimisasi bobot pada suatu
lintasan dalam graf
Daftar Pustaka

Daswa, D., & Riyadi, M. (2017). Aplikasi Pewarnaan Graf Pada Masalah
Penyusunan Jadwal Perkuliahan Di Universitas Kuningan. JES-MAT (Jurnal
Edukasi Dan Sains Matematika), 3(2), 217. https://doi.org/10.25134/jes-
mat.v3i2.695

Folaiman, B., Rosihan, R., & Mubarak, A. (2018). Implementasi Algoritma


Dijkstra Untuk Penentuan Jalur Terpendek Pada Aplikasi Evakuasi Bencana
Untuk Penyandang Disabilitas. JIKO (Jurnal Informatika Dan Komputer),
1(2), 61–69. https://doi.org/10.33387/jiko.v1i2.770

Ganet, 2019. (2019). IIMPLEMENTASI ALGORITMA DIJKSTRA UNTUK


MENCARI RUTE TERPENDEK MOBIL PEMADAM KEBAKARAN
WILAYAH KOTA YOKYAKARTA.

Harahap, M. K., & Khairina, N. (2017). Pencarian Jalur Terpendek dengan


Algoritma Dijkstra. SinkrOn, 2(2), 18.
https://doi.org/10.33395/sinkron.v2i2.61

Hermanto, K. (2020). Penentuan Rute Terpendek dengan Menggunakan


Algoritma Dijkstra pada Jalur Bus Sekolah. 10(2), 116–123.
https://doi.org/10.24843/JMAT.2020.v10.i02.p128

Rambe, N. (2018). UNIVERSITAS SUMATERA UTARA Poliklinik


UNIVERSITAS SUMATERA UTARA. Jurnal Pembangunan Wilayah &
Kota, 1(3), 82–91.

Anda mungkin juga menyukai