Anda di halaman 1dari 57

Graf

Muhammad Faishol Amirul Mukminin


Outline
1. Terminologi Dasar
2. Handshaking Theorem
3. Jenis Jenis Graf
4. Graf Spesial
5. Permasalahan Pada Graf
6. Penutup

2
Terminologi Dasar

3
Apa itu graf?
● Graf merupakan konsep matematika diskrit untuk merepresentasikan
objek-objek yang saling berhubungan.
● Graf memiliki banyak pengaplikasian dalam kehidupan sehari-hari, seperti:
○ Pada ilmu komputer, digunakan untuk merepresentasikan alur komputasi.
○ Google maps menggunakan graf untuk membangung sistem transportasi.
○ Dalam bidang fisika dan kimia, graf dimanfaatkan untuk molekul.

4
Struktur Dasar (1/2)
● Graf G didefinisikan sebagai pasangan himpunan (V, E).
● V adalah himpunan tidak kosong dari simpul-simpul (vertex atau node)
● E adalah himpunan sisi yang menghubungkan sepasang simpul (edge).
● Simpul pada graf dapat dinomori dengan huruf seperti a, b, c, dst atau
dengan nomor seperti 1, 2, 3, dst atau mungkin gabungan keduanya.
● Sedangkan sisi yang menghubungkan simpul u dan v dapat dinotasikan
dengan pasangan (u, v).

5
Struktur Dasar (2/2)

Vertex / Node

Edge

6
Ketetanggaan (Adjacacent)
● Dua buah vertex dikatakan bertetangga
bila keduanya terhubung secara
langsung.
● Suatu vertex berkemungkinan tidak
memiliki tetangga, yakni saat vertex
tersebut tidak terhubung dengan vertex
lainnya.
● Sebagai contoh, pada graph di samping
didapatkan hubungan ketetanggaan:
○ A memiliki tetangga B, D, dan E
○ B bertetangga dengan A dan C
○ E memiliki tetangga A, C, D, dan F
○ dst.

7
Loop
● Sebuah edge disebut loop apabila edge tersebut menghubungkan dua vertex
yang sama. Sebagai contoh, edge dari vertex a ke a.
● loop ditandai dengan edge
Sebagai contoh pada graf berikut dimana cycle
berwarna biru.

8
Siklus (Cycle)
● Lintasan yang berawal dan berakhir pada simpul yang sama disebut sirkuit
atau siklus.
● Cycle bisa terdiri dari satu atau lebih edge dan tidak boleh melewati vertex
ataupun edge yang sama kecuali awal serta akhir vertex.
● Sebagai contoh pada graf berikut dimana cycle ditandai dengan edge
berwarna merah dan biru.

9
Degree Pada Graf (1/2)
● Derajat vertex pada graf tak berarah adalah jumlah edge yang terhubung
dengan vertex tersebut.
● Sebagai contoh, pada graf seperti di bawah:
○ Degree vertex A = 2
○ Degree vertex B = 1
○ Degree vertex C = 3

10
Degree Pada Graf (2/2)
● Pada graf berarah, derajat dibagi menjadi derajat masuk dan derajat keluar.
○ Derajat masuk adalah banyak edge yang masuk ke vertex tersebut.
○ Derajat keluar adalah banyak edge yang keluar dari vertex tersebut.
● Misalkan berdasarkan graf di samping:
○ Vertex 1 memiliki derajat masuk = 0, derajat keluar = 2
○ Vertex 2 memiliki derajat masuk = 1, derajat keluar = 0
○ Vertex 3 memiliki derajat masuk = 2, derajat keluar = 2
○ Vertex 4 memiliki derajat masuk = 1, derjat keluar = 1

11
Konektivitas, Articulation Point, Bridge
● Connected component: Subgraph maximal pada undirected graph yang
mana tiap dua vertexnya bisa dicapai satu sama lain melalui sebuah path
○ Penambahan vertex lainnya akan membuatnya tidak terhubung
● Bridge (cut-edge): Edge yang apabila dihapus, jumlah connected
component dalam graph bertambah
● Articulation Point (cut-vertex): Vertex yang apabila dihapus, jumlah
connected component dalam graph bertambah

12
Konektivitas, Articulation Point, Bridge (Cont’d)

Articulation Point

13
Konektivitas, Articulation Point, Bridge (Cont’d)

Bridge

14
Handshaking Theorem

15
Handshaking Theorem

16
Varian Handshaking Theorem

17
Jenis Jenis Graf

18
Berdasarkan Hubungan Antar Node (1/2)
● Undirected Graph (Graf tidak berarah)
○ Graf yang edgenya tidak mempunyai orientasi arah.
○ Pada graf ini, urutan pasangan vertex yang dihubungkan oleh edge tidak diperhatikan. Jadi (u,
v) = (v, u) adalah edge yang sama.

● Directed Graph (Graf Berarah)


○ Graf yang setiap edgenya diberi orientasi arah.
○ Edgenya yang berarah biasanya disebut dengan busur (arc).
○ Pada graf berarah (u, v) dan (v, u) menyatakan dua edge yang berbeda.
○ Untuk busur (u, v), vertex u dinamakan vertex asal dan vertex v dinamakan vertex akhir.

19
Berdasarkan Hubungan Antar Node (2/2)
Graf Tidak Berarah: Graf Berarah:

20
Berdasarkan Bobot Edge (1/2)
● Unweighted Graph (Graf tidak berbobot)
○ Graf dengan edge yang bobotnya seragam dan hanya bermakna terdapat hubungan antar
node.

● Weighted Graph (Graf berbobot)


○ Graf dengan edge yang dapat memiliki bobot berbeda-beda. Bobot pada edge ini bisa jadi
berupa biaya, jarak, atau waktu yang harus ditempuh jika menggunakan edge tersebut.

21
Berdasarkan Bobot Edge (2/2)
Unweighted Graph: Weighted Graph:

22
Graf Spesial

23
Complete Graph
● Complete graf merupakan simple undirected graph dimana setiap pasang
vertex berbeda terhubung dengan sebuah edge.
● Misalkan V merupakan banyaknya vertex pada sebuah tree.
Graf Maka dipastikan

banyaknya edge pada graph tersebut adalah V(V - 1)/2 buah.

24
Bipartite Graph
● Bipartite graph adalah graf dimana vertexnya dapat dibagi menjadi dua
himpunan tidak beririsan sedemikian sehingga tidak ada dua vertex yang
terhubung berada di himpunan yang sama.
● Secara matematis, misalkan kita bagi menjadi dua himpunan V 1 dan V2 ,
maka untuk setiap edge e ∈ E, salah satu ujung e di V1 dan ujung lainnya di
V 2.

25
Planar Graph
● Sebuah graf G disebut graf planar apabila graf tersebut dapat digambarkan
dalam sebuah bidang datar tanpa ada sisi/edge yang saling berpotongan

26
Tree
● Tree merupakan bentuk khusus dari graf.
● Tree memiliki properti bahwa seluruh vertex pada tree terhubung (tidak ada
vertex yang tidak dapat dikunjungi dari vertex lain) dan tidak terdapat cycle.
● Misalkan V merupakan banyaknya vertex pada sebuah tree. Maka dipastikan
banyaknya edge pada tree tersebut adalah V - 1 buah.

27
Jenis Jenis Tree (1/2)
1. Rooted Tree
Suatu tree yang memiliki hierarki dan memiliki sebuah
akar disebut sebagai rooted tree. Setiap vertex pada
rooted tree memiliki kedalaman yang menyatakan
jarak node tersebut ke vertex root (vertex root
memiliki kedalaman 0).

2. Binary Tree
Suatu rooted tree yang setiap node -nya memiliki 0, 1,
atau 2 anak.

28
Jenis Jenis Tree (2/2)
3. Perfect Binary Tree
Suatu binary tree yang seluruh vertex-nya memiliki 2 anak, kecuali tingkat
paling bawah yang tidak memiliki anak.

29
Directed Acyclic Graph
● Directed acyclic graph (DAG) merupakan bentuk khusus dari directed graf,
yang tidak memiliki cycle.
● Berbeda dengan tree yang mana setiap node harus dapat dikunjungi dari
node lainnya, sifat tersebut tidak berlaku pada DAG.
● DAG dapat digunakan untuk merepresentasikan urutan penyelesaian suatu
pekerjaan atau kurikulum pembelajaran.

30
Permasalahan Pada Graf

31
Shortest Path
● Shortest path adalah sebuah permasalahan dimana kita diharuskan mencari
lintasan terpendek dari satu vertex ke vertex lainnya pada sebuah graf.
● Pada tree, untuk setiap pasang vertex hanya memiliki sebuah lintasan. Maka
lintasan tersebut merupakan shortest path.
● Pada graf, bisa saja terdapat lebih dari satu lintasan yang dapat digunakan
untuk mengunjungi satu vertex ke vertex lainnya.
● Algoritma yang dapat digunakan untuk mencari shortest path pada graf:
○ Unweighted graph: Algoritma Breadth First Search (BFS)
○ Weighted graph: Algoritma Dijkstra, Floyd-Warshall, dan Bellman-Ford.

32
Shortest Path - Dijkstra’s Algorithm (1/2)
● Dijkstra’s algorithm adalah algoritma yang digunakan untuk mencari jarak
terpendek pada non-negative weighted graph.
● Algoritma ini ditemukan oleh Edsger W. Dijkstra.
● Algoritma ini memanfaatkan metode greedy dalam penyelesaian masalah.
● Dijkstra’s algorithm dapat digunakan untuk mencari jarak dari sebuah node
ke seluruh node lain.

33
Shortest Path - Dijkstra’s Algorithm (2/3)
Cara kerja algoritma dijsktra sebagai berikut.

1. Buat sebuah tabel finNode untuk mendaftar semua node yang jarak
terpendek dari source telah dihitung dan tidak akan berubah. Awalnya tabel
ini kosong.
2. Inisiasi semua jarak node dari source sebagai INFINITE, kecuali source node
yang kita inisiasi dengan 0.
3. Selama semua node belum ada di finNode, maka lakukan:
a. Ambil node u yang tidak ada di finNode dan memiliki jarak terpendek dari source.
b. Masukkan u ke finNode.
c. Update jarak semua node yang bertetangga (misal: v) dengan node u apabila jarak node u ke
source + jarak dari u ke v < jarak node v ke source.

34
Shortest Path - Dijkstra’s Algorithm (3/3)

Source node: 0

finNode

0 1 2 3 4

5 6 7 8 9

35
Eulerian Circuit/Path (1/2)
● Lintasan euler adalah lintasan yang melalui seluruh edge pada sebuah graf
tepat satu kali.
● Jika lintasan tersebut kembali ke vertex asal maka disebut dengan sirkuit
euler. Graf yang memiliki sirkuit euler dinamakan graf euler, sedangkan graf
yang memiliki lintasan euler disebut graf semi-euler.
● Syarat graf euler:
○ Graf tak berarah: Derajat seluruh vertexnya genap.
○ Graf berarah : Seluruh vertex pada graf tersebut terhubung dan derajat
masuk sama dengan derajat keluar untuk setiap vertexnya.

36
Eulerian Circuit/Path (2/2)
● Syarat graf semi-euler:
○ Graf tak berarah: Hanya memiliki dua vertex dengan derajat ganjil.
○ Graf berarah : Setiap vertex memiliki derajat masuk dan derajat keluar
sama kecuali dua vertex. Dimana salah satunya degIn > degOut, dan
satunya degOut > degIn.

Graf Semi-euler
Graf Euler
37
Hamiltonian Circuit/Path
● Lintasan hamilton adalah lintasan
yang melalui tiap vertex tepat satu
kali.
● Bila lintasan itu kembali ke vertex
asal, maka membentuk lintasan
tertutup dan dinamakan sirkuit
Hamilton.
● Graf yang memiliki sirkuit Hamilton
dinamakan graf Hamilton,
sedangkan graf yang hanya Gambar (a) merupakan graf semi-Hamilton
memiliki lintasan Hamilton disebut Gambar (b) merupakan graf Hamilton.
graf semi-Hamilton.

38
Graph Coloring
● Graph coloring merupakan permasalahan dimana kita ditugaskan untuk
mewarnai setiap vertex dengan sebuah warna sedemikian sehingga tidak ada
vertex dengan warna sama yang bertetangga.
● Banyak warna yang digunakan haruslah seminimum mungkin.
● Permasalahan ini tergolong permasalahan NP Complete.

39
Matching
● Matching merupakan permasalahan pada graf dimana kita harus memilih
beberapa edge sedemikian sehingga tidak ada vertex yang terhubung
dengan lebih dari satu edge yang kita pilih.
● Gambar di bawah ini merupakan matching:

● Gambar di bawah ini merupakan maximum matching:

40
Minimum Spanning Tree (1/2)
● Spanning Tree dari suatu graf adalah subgraf yang mana seluruh node pada
graf tersebut terhubung dan membentuk tree.
● Sebagai contoh, misalkan kita memiliki graf seperti gambar (a). Maka gambar
(b) merupakan spanning tree dari graf tersebut, sedangkan (c) dan (d) bukan.

● Minimum Spanning Tree (MST) adalah spanning tree pada graf berbobot
yang mana total bobot dari seluruh edge pada spanning tree tersebut
minimum.

41
Minimum Spanning Tree (2/2)
● Setidaknya terdapat 2 algoritma yang sering digunakan untuk menyelesaikan
permasalahan MST.
● Kedua algoritma tersebut adalah Kruskal’s algorithm dan Prim’s Algorithm.
● Keduanya menggunakan metode greedy.
● Algoritma Prim cukup mirip dengan algoritma dijkstra yang digunakan untuk
mencari jarak terpendek dari satu node ke node lainnya.
● Maka dari itu, materi ini akan membahas cara kerja dari Kruskal’s algorithm.

42
Minimum Spanning Tree - Kruskal’s Algorithm
Cara kerja Kruskal’s algorithm sebagai berikut.

1. Urutkan semua edge berdasarkan bobotnya dari terkecil ke terbesar.


2. Ambil edge dengan bobot terkecil. Lalu, apabila saat kita tambahkan edge
tersebut pada spanning tree sekarang tidak membentuk cycle, maka gunakan
edge tersebut. Apabila membentuk cycle, maka jangan gunakan.
3. Ulangi langkah ke-2 hingga terdapat (V - 1) edges pada spanning tree.

43
Minimum Spanning Tree - Kruskal’s Algorithm

1 2 3

0 8 4

7 6 5

44
Pembahasan Soal

45
OSK 2019 - Nomor 19
Pak Dengklek sedang memimpin proyek
pembangunan jalan di negara A, yang
berjumlah 13 kota dengan rencana
pembangunan 32 jalan seperti pada
gambar.

Jika angka di dalam kota melambangkan


banyaknya jalan yang menghubungkan
kota tersebut dengan kota lain,
tentukanlah berapa banyak jalan yang
sudah jadi.

46
OSK 2017 - Nomor 34
Pak Dengklek harus membawa itik-itiknya melewati terowongan dari stasiun S ke
stasiun T. Setiap terowongan mempunyai kapasitas itik yang dapat lewat dalam
sehari, yang jumlahnya dinyatakan dalam angka pada gambar. Berapa jumlah itik
maksimum yang dapat dipindahkan oleh Pak Dengklek dari S ke T dalam satu
hari?

47
OSK 2017 - Nomor 34

48
OSP 2017 - Nomor 38
Sebuah alat musik memiliki 2 tombol dan 5 bunyi. Bunyi yang akan keluar
mengikuti aturan tabel. Jika tombol pertama yang ditekan adalah A, bunyi apakah
yang tidak akan pernah muncul pada setiap penekanan tombol apapun
berikutnya?

49
OSP 2017 - Nomor 38
Tombol pertama: A

50
OSP 2014 - Nomor 16
Berapa banyak tree yang dapat dibentuk dari graf di bawah ini!

51
OSP 2014 - Nomor 17
Berapa banyak tree yang dapat dibentuk dari graf di bawah ini!

52
OSP 2015 - Nomor 8
Bebek-bebek Pak Dengklek membentuk
pertemanan seperti diilustrasikan pada
gambar. Ada sejumlah bebek yang jika
keluar dari hubungan pertemanan
mengakibatkan terputusnya komunikasi.
Berapa minimal hubungan pertemanan
baru yang perlu dibuat supaya hubungan
komunikasi tetap terjaga ketika salah satu
bebek meninggalkan kelompok tersebut?

53
OSP 2018 - Nomor 9
Pak Dengklek sedang berada di
rumah no. 1 dan ingin berkunjung
ke rumah no. 9.

Ada berapa banyak rute berbeda


yang dapat Pak Dengklek tempuh
dengan total lintasan sependek
mungkin?

54
OSP 2018 - Nomor 9

55
Penutup

56
Penutup
● Banyak dari permasalahan di sekitar kita dapat dimodelkan sebagai
permasalahan graf.
● Setiap soal graf pada tingkat KSN-K dan KSN-P dapat diselesaikan dengan
observasi, tanpa harus mengetahui teori/permasalahan graf yang ada.
● Meskipun begitu, akan lebih mudah dan akurat apabila kita dapat
mengidentifikasi permasalahan graf dari sebuah soal.

57

Anda mungkin juga menyukai