Dasar-Dasar
Teori Graf
Gambar : (a) Jembatan Konigsberg, dan (b) graf yang merepresentasikan jembatan Konisberg
Definisi Graf
• Gelang (loop) yaitu busur yang berawal dan berakhir pada simpul
yang sama
• Derajat (degree) yaitu banyaknya busur yang ada pada suatu simpul v.
( d(v) )
• n = |V| = kardinalitas simpul
• m = |E| = kardinalitas busur
Jenis – jenis Graf
– Graf tak-sederhana(unsimple-graph).
Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-sederhana
(unsimple graph). Ada dua macam graf tak-sederhana, yaitu graf
ganda(multigraph) dan graf semu(pseudograph).
Jenis – jenis Graf
Gambar : Tiga buah graf (a) graf sederhana, (b) graf ganda, dan (c) graf semu
Jenis – jenis Graf
• Misalkan G= (V, E) adalah sebuah Graf. G1= (V1, E1) adalah subgraf dari
G jika V1 ⊆ V dan E1 ⊆ E.
• Komplemen dari subgraf G1 terhadap graf G adalah graf G2= (V2, E2)
sedemikian sehingga E2= E- E1dan V2adalah himpunan simpul yang
anggota-anggota E2 bersisian dengannya.
Subgraf dan Komplemen Subgraf
Derajat (Degree)
• Diketahui
Operasi Gabungan dan Irisan
Operasi Selisih
Penjumlahan Ring G1 dan G2
Dekomposisi
Penghapusan (Deletion)
Penghapusan (Deletion)
PART 2
Graf berarah
Graf tak berarah
Contoh soal :
• Graf G disebut berlabel jika ruas dan atau simpulnya dikaitkan dengan suatu
besaran tertentu. Khususnya jika setiap ruas e dari G dikaitkan dengan suatu
bilangan non negatif d(e), maka d(e) disebut bobot atau panjang dari ruas e.
A = [aij],
1, jika simpul i dan j bertetangga
aij = {
0, jika simpul i dan j tidak bertetangga
Representasi Graf tak berarah
A = [aij],
• Sirkuit Euler ialah sirkuit yang melewati masing-masing sisi tepat satu
kali
• Graf yang mempunyai sirkuit Euler disebut graf Euler (Eulerian graph).
Graf yang mempunyai lintasan Euler dinamakan juga graf semi-Euler
(semi-Eulerian graph).
Lintasan Euler (Graf Semi Euler)
• Lintasan Hamilton ialah lintasan yang melalui tiap simpul di dalam graf
tepat satu kali.
• Sirkuit Hamilton ialah sirkuit yang melalui tiap simpul di dalam graf
tepat satu kali, kecuali simpul asal (sekaligus simpul akhir) yang dilalui
dua kali.
(misal: 3, 2, 1, 4)
Hamilton
Perbedaan Sirkuit Euler dengan Sirkuit Hamilton
TSP adalah problem untuk mengoptimasi dan menemukan perjalanan (tour) yang paling
terpendek.
TSP adalah problem untuk menentukan urutan dari sejumlah kota yang harus dilalui oleh
salesman, setiap kota hanya boleh dilalui satu kali dalam perjalanannya, dan perjalanan
tersebut harus berakhir pada kota keberangkatannya dimana salesman tersebut memulai
perjalananya, dengan jarak antara setiap kota satu dengan kota lainnya sudah diketahui.
Salesman tersebut harus meminimalkan pengeluaran biaya, dan jarak yang harus ditempuh
untuk perjalanannya tersebut.
Algoritma Exhaustive pada TSP
Tree / Pohon
Kubus
Bidang Empat
Contoh :
V–E+R=2
Dimana :
V = jumlah simpul,
E = jumlah ruas,
R = jumlah region
Pewarnaan Simpul
Pewarnaan Region
Pemberian warna terhadap simpul-simpul graf dimana 2 buah simpul
dibutuhkan.
Algoritma yang dapat digunakan untuk mendapatkan bilangan kromatis dari
sebuah graf
Adapun langkah-langkahnya adalah :
1. Urutkan semua simpul berdasarkan derajatnya, dari derajar besar ke derajat kecil.
2. Ambil warna pertama (misalnya merah), warnai simpul pertama yang sudah kita urutkan
berdasarkan derajatnya tadi. Kemudian warnai simpul berikutnya yang tidak berdampingan
dengan simpul pertama tadi dengan warna yang masih sama (merah).
3. Kemudian kita lanjutkan dengan warna kedua, dan seterusnya, sampai semua simpul telah diberi
warna.
Berapakah bilangan kromatis dari pewarnaan vertex graf berikut ?
Langkah 1 :
Urutkan vertex berdasarkan derajatnya dari besar ke kecil :
E, C, A, B, D, G, F, H
Langkah 2 :
mewarnai :
Ambil warna ke-1, misalnya hijau untuk E dan A yang tersisa adalah C, B, D, G, F, H
Ambil warna ke-2, misalnya merah untuk C, H, D yang tersisa adalah B, G, F
Warna ke-3 misalnya putih, Selesai.
berbeda.
Berapakah bilangan kromatis dari pewarnaan region graf berikut ?
Langkah 1 :
Urutkan region berdasarkan derajatnya dari besar ke kecil :
r6, r2, r3, r5, r4, r1
Langkah 2 :
mewarnai :
Ambil warna ke-1, misalnya biru untuk r6 yang tersisa adalah r2, r3, r5, r4, r1
Ambil warna ke-2, misalnya merah untuk r2, r4, r1 yang tersisa adalah r3, r5
Warna ke-3 misalnya putih, Selesai.
Jika dua buah region mempunyai sebuah sisi bersama, maka titik-titik yang terkait dapat
Garis-garis ini akan membentuk kurva. Kurva-kurva ini digambarkan sedemikian hingga
TREE (POHON)
• Hutan (forest) adalah kumpulan pohon yang saling lepas, atau graf tidak
terhubung yang tidak mengandung sirkuit. Setiap komponen di dalam
graf terhubung tersebut adalah pohon
SIFAT – SIFAT POHON
Teorema. Misalkan G = (V, E) adalah graf tak-berarah sederhana dan jumlah simpulnya n. Maka,
semua pernyataan di bawah ini adalah ekivalen:
• G adalah pohon.
• Setiap pasang simpul di dalam G terhubung dengan lintasan tunggal.
• G terhubung dan memiliki m = n – 1 buah sisi.
• G tidak mengandung sirkuit dan memiliki m = n – 1 buah sisi.
• G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya
satu sirkuit.
• G terhubung dan semua sisinya adalah jembatan.
Pohon Biner penuh adalah pohon biner yang semua cabangnya terisi
PEMODELAN MASALAH GRAF POHON
Contoh
Ini adalah graf berbobot awal. Angka-
angka dekat garis penghubung/ruas
adalah bobotnya. Nilai bobot dari Graf
tesebut adalah : 86
Contoh :
Jika kita akan membentuk pohon biner dari untai ’HKACBLJ’
maka pohon biner yang dihasilkan adalah sebagai berikut :
MEMBUAT POHON BINER (2)
Sebuah pohon biner memiliki operasi traversal yaitu suatu kunjungan pada
suatu simpul tepat satu kali. Dengan melakukan kunjungan lengkap
kita akan memperoleh urutan informasi secara linier yang tersimpan di
dalam pohon biner. Terdapat tiga jenis kunjungan pada pohon biner, yaitu :
PREORDER
INORDER
POSTORDER
KUNJUNGAN PADA POHON BINER (2)
Preorder : R, T1, T2
• kunjungi R
• kunjungi T1 secara preorder
• kunjungi T2 secara preorder
Inorder : T1, R, T2
• kunjungi T1 secara inorder
• kunjungi R
• kunjungi T2 secara inorder
Postorder : T1, T2, R
• kunjungi T1 secara postorder
• kunjungi T2 secara postorder
• kunjungi R
KUNJUNGAN PADA POHON BINER (3)
Contoh Soal
GRAF BERARAH / DIGRAPH
Contoh soal:
Nyatakan graf dibawah ini kedalam matriks hubung.
MATRIKS HUBUNG (ADJACENCY)
Penyelesaian:
Graf tersebut terdiri dari 6 titik (v1 ... v6) sehingga matriks hubungnya adalah
matriks bujur sangkar 6 x 6. jadi bentuk matriksnya adalah :
MATRIKS BINER (INCIDENCE)
Contoh soal:
Nyatakan graf dibawah ini kedalam matriks biner.
MATRIKS BINER (INCIDENCE)
Penyelesaian
Graf tersebut terdapat 8 garis dan terdapat 4 buah sirkuit sederhana,
yaitu :
MASALAH DENGAN GRAF BERARAH
Contoh Kasus
TEKNIK
REKURSIF
PENGERTIAN
PENGERTIAN
PENGERTIAN
A. Algoritma Backtracking
Algoritma Backtracking pertama kali diperkenalkan oleh DH Lehmer (1950), dirumuskan
dalam suatu algortima oleh RJ Walker (1960), aplikasinya dikembangkan oleh Golomb dan
Baumert. Dasar dari teknik Backtracking adalah searching.
Backtracking merupakan salah satu algotritma yang didasarkan pada pencarian ruang
solusi. Pencarian ruang solusi dalam algoritma backtracking menggunakan teknik pencarian
Depth First Search (DFS).
Masalah-masalah yang dapat diselesaikan dengan menggunakan algoritma Backtracking
adalah :
The 8-Queen Problem
The 4-Queen Problem
Sum of Subsets
Graph Coloring
Hamilton Cycles
Knapsack Problem
The Travelling Salesman Problem
procedure sumofsub(s,k,r)
global integer M,n
global real w(1:n)
real r,s
Permasalahan :
Suatu himpunan terdiri dari 6 bilangan yaitu {5, 10, 12, 13, 15, 18} yang disusun secara
tidak turun. Akan ditentukan himpunan-himpunan bagiannya yang jumlah seluruh elemennya
adalah 30
Penyelesaian :
n=6
W(1:6) = {5,10,12,13,15,18}
M = 30
Diasumsikan bahwa w(1) ≤ M dan ∑ w(i) ≥ M
Dalam hal ini w(1)= 5 ≤ 30 dan ∑ w(i) = 73 ≥ 30,
k-1
dan nilai s diperoleh dari ∑ w(j)x(j)
j=1
n
nilai r diperoleh dari ∑w(j)
j=k
A = {1,1,0,0,1} = 5+10+15=30
B = {1,0,1,1} = 5+12+13 = 30
C = {0,0,1,0,0} = 12+18 = 30
1. Pengertian BFS
Breadth-first search adalah algoritma yang melakukan pencarian secara melebar yang
mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi
semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul
yang belum dikunjungi dan bertetangga dengan simpul-simpul yang tadi dikunjungi , demikian
seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi
lebih dahulu sebelum simpul-simpul pad aras d+1.
Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang telah
dikunjungi. Simpul-simpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul yang
bertetanggaan dengannya. Tiap simpul yang telah dikunjungu masuk ke dalam antrian hanya
satu kali. Algoritma ini juga membutuhkan table Boolean untuk menyimpan simpul yang te lah
dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.
Pertanyaan: sebutkan rute yang akan ditempuh untuk mencapai kota no. 8. Titik awal
perjalanan adalah kota no. 1. Gunakan algoritma BFS!
4. Algoritma DFS
Algoritma DFS (Depth First Search) adalah salah satu algoritma yang digunakan untuk
pencarian jalur. Contoh yang dibahas kali ini adalah mengenai pencarian jalur yang melalui
semua titik.
Algoritma ini mirip dengan Algoritma BFS (Breadth First Search) yang sudah dijelaskan
sebelumnya. Jika Algoritma BFS (Breadth First Search) melakukan perhitungan secara terurut
dari urutan pertama sampai urutan terakhir, maka algoritma ini melakukan kebalikannya, yaitu
melakukan perhitungan secara terurut dari urutan terakhir. Setelah menghabiskan semua
kemungkinan dari titik terakhir, barulah mundur ke titik-titik sebelumnya sampai pada titik
pertama.
Di dalam DFS, pencarian dilakukan pada suatu struktur pohon yaitu kumpulan semua
kondisi yang mungkin yang diimplementasikan dalam sebuah struktur pohon. Paling atas adalah
akar (root) yang berisi kondisi awal pencarian (initial state) dan di bawahnya adalah kondisi -
kondisi berikutnya sampai kepada kondisi tujuan (goal state).
Pada prinsipnya, DFS ini menggunakan tumpukan untuk menyimpan seluruh state yang
ditemukan atau bisa dikatakan bahwa DFS menggunakan metode LIFO (Last In First Out).
Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 13 / Post Test
d. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke
dalam antrian.
b. Tiap simpul yang telah dikunjungui masuk ke dalam antrian hanya satu kali.
c. Algoritma BFS memerlukan sebuah antrian q untuk menyimpan simpul yang telah dikunjungi.
d. Agoritma BFS melakukan pencarian secara melebar yang mengunjungi simpul secara preorder.
b. BFS
c. Backtracking
d. Greedy
Online
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249987&cmid=472415 1/2
1/25/2021 Post Test: Attempt review
d. Di dalam DFS, pencarian dilakukan pada suatu struktur pohon yaitu kumpulan semua kondisi yang mungkin yang
diimplementasikan dalam sebuah struktur pohon.
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249987&cmid=472415 2/2
1/25/2021 Pre Test: Attempt review
Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 13 / Pre Test
Question 1 Masalah-masalah yang dapat diselesaikan dengan menggunakan algoritma Backtracking adalah :
Correct
b. Sum of Subsets
d. Graph Coloring
Question 2 Urutan langkah yang tepat dan pasti dalam memecahkan suatu masalah secara logis adalah pengertian dari :
Correct
b. Rekursif
c. Iteratif
d. Algoritma
b. Iteratif
c. Searching
d. Taging
Question 4 Algoritma yang melakukan pencarian secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu
Correct simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu adalah :
Mark 1.00 out of
1.00 Select one:
a. Backtracking
b. Greedy
c. BFS
d. DFS
Online
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249967&cmid=472412 1/2
1/25/2021 Pre Test: Attempt review
Question 5 Algoritma Backtracking pertama kali diperkenalkan oleh DH Lehmer pada tahun :
Correct
b. 1945
c. 1960
d. 1951
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249967&cmid=472412 2/2
1/28/2021 1 pesan baru
Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 14 / Post Test
Question 1 Berikut merupakan pernyataan yang benar mengenai algoritma floyd-warshall, kecuali :
Correct
c. Algoritma Floyd-Warshal merupakan algoritma yang mengambil jarak minimal dari suatu titik ketitik lainnya
b. Benar semua
c. Salah semua
Question 3 Salah satu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu
Correct keputusan yang saling terkait adalah :
Mark 1.00 out of
1.00 Select one:
a. Algoritma Floyd-Warshall
b. Algoritma Kruskal
c. Algoritma Welch-Powell
d. Algotitma Backtracking
Question 4 Prinsip yang dipakai program dinamis untuk perhitungan angka fibonacci, kecuali :
Correct
d. Mengimplementasikan rekursif
Online
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276300&cmid=477686 1/2
1/28/2021 1 pesan baru
Question 5 Bilangan-bilangan yang muncul dari hasil pen-jabaran penjumlahan dua peubah yang dipangkatkan adalah :
Correct
b. Aljabar
c. Koefisien Binomial
d. Floyd-warshall
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276300&cmid=477686 2/2
1/28/2021 Pre Test: Attempt review
Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 14 / Pre Test
b. Overlap
c. Minimalitas
d. Optimalitas
Question 2 Berikut merupakan pernyataan yang benar mengenai program dinamis, kecuali :
Correct
Question 3 Suatu metode penyelesaian masalah di mana solusi persoalan dapat dipandang sebagai serangkaian keputusan yang
Correct saling berkaitan adalah :
Mark 1.00 out of
1.00 Select one:
a. Program Statis
b. Algoritma
c. Program Dinamis
d. Pemrograman Terstruktur
b. Euler
c. Richard Bellman
d. Richard Freeman 1
Online
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276267&cmid=477684 1/2
1/28/2021 Pre Test: Attempt review
Question 5 Berikut merupakan karakteristik penyelesaian masalah dengan algoritma program dinamis, kecuali :
Correct
b. Menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yangharus dipertimbangkan
pada satu tahap.
c. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya.
https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276267&cmid=477684 2/2
Program Dinamis
A. Program Dinamis
Program dinamis adalah salah satu teknik matematika yang digunakan untuk
mengoptimalkan proses pengambilan keputusan secara bertahap ganda. Inti dari teknik ini
ialah membagi satu persoalan atas beberapa bagian persoalan (tahap), kemudian memecahkan
tiap tahap sampai seluruh persoalan telah terpecahkan. Penggunanan program dinamis untuk
mencari bobot minimum dari suatu pohon merentang merupkan salah satu alternatif selain
penggunaan algoritma greedy.
Prosedur pemecahan persoalan dalam program dinamis dilakukan secara rekursif. Ini
berarti bahwa setiap kali diambil keputusan, diperhatikan keadaan yang dihasilkan oleh
keputusan sebelumnya.
Program dinamis (dynamic programming) yang ditemukan oleh Richard Bellman pada
tahun 1953 merupakan suatu metode penyelesaian masalah di mana solusi persoalan dapat
dipandang sebagai serangkaian keputusan yang saling berkaitan. Program dinamis merupakan
salah satu metode yang mangkus yang biasanya digunakan untuk menyederhanakan persoalan-
persoalan rekursif.
Seperti halnya algoritma greedy, program dinamis juga merupakan suatu ancangan
untuk menyelesaikan masalah optimasi. Hanya saja, pada metode greedy hanya satu rangkaian
Penerapan program dinamis ini sangat luas. Di antaranya, yang sederhana, adalah untuk
menghitung angka Fibonacci dan koefisien binomial.
untuk n ≥ k ≥ 0 dan
Dengan algoritma di atas, banyak komputasi yang sama yang dilakukan berulang-ulang.
Sebagai contoh,perhitungan C(5,3) digambarkan dengan pohon seperti berikut.
C. Algoritma Floyd-Warshall
Algoritma Floyd-Warshall adalah salah satu varian dari pemrograman dinamis, yaitu
suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan
diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk
dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu.
Algoritma Floyd-Warshall adalah algoritma shorter path lain yang lebih singkat dan akan
bekerja dengan jalan yang ditempuh sangat negatif (tetapi tidak putaran negatif). " tetapi ini
akan mengambil banyak waktu daripada algoritma dijkstra” kata Yasith Vidanaarachchi .
"Namun, dalam praktiknya Algoritma ini lebih cepat karena singkatnya dan kesederhanaannya".
Algoritma warshal merupakan algoritma yang mengambil jarak minimal dari suatu titik
ketitik lainnya.pada algoritma ini menerapkan suatu algoritma dinamis yang menyebabkan akan
mengambil jarak lintasan terpendek secara benar.
contoh apabila kita berada dari suatu tempat di titik A akan menuju tempat yang berada
di titik E di mana kita harus melewati minimal satu titik titik antara b, c, d dan f
apabila kita memakai floyd warshall maka kita harus mentotalkan jumlah jaraknya, Seperti
a-b-d-e = 10 + 15 + 10 = 35 km
a-d-e = 20 + 5 =25 km
a-c-e = 30 + 25 = 55km
a-f-e = 20 + 25 = 45 km
dll,,
apabila semua nya telah terjumlah, maka jarak minimalnya ada d lintasan a-d-e dengan 25
km,,sesuai dengan algoritma floyd warshall.
• Teori Graf
• Definisi Graf
• Jenis-jenis Graf
Gambar : (a) Jembatan Konigsberg, dan (b) graf yang merepresentasikan jembatan Konigsberg
Definisi Graf
• Gelang (loop) yaitu busur yang berawal dan berakhir pada simpul
yang sama
• Derajat (degree) yaitu banyaknya busur yang ada pada suatu simpul v.
( d(v) )
• n = |V| = kardinalitas simpul
• m = |E| = kardinalitas busur
Jenis – jenis Graf
– Graf tak-sederhana(unsimple-graph).
Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-sederhana
(unsimple graph). Ada dua macam graf tak-sederhana, yaitu graf
ganda(multigraph) dan graf semu(pseudograph).
Jenis – jenis Graf
Gambar : Tiga buah graf (a) graf sederhana, (b) graf ganda, dan (c) graf semu
Jenis – jenis Graf
• Misalkan G= (V, E) adalah sebuah Graf. G1= (V1, E1) adalah subgraf dari
G jika V1 ⊆ V dan E1 ⊆ E.
• Komplemen dari subgraf G1 terhadap graf G adalah graf G2= (V2, E2)
sedemikian sehingga E2= E- E1dan V2adalah himpunan simpul yang
anggota-anggota E2 bersisian dengannya.
Subgraf dan Komplemen Subgraf
Derajat (Degree)
• Diketahui
Operasi Gabungan dan Irisan
Operasi Selisih
Penjumlahan Ring G1 dan G2
Dekomposisi
Penghapusan (Deletion)
Penghapusan (Deletion)