3
Rujukan utama
What is Graph Theory? (3:13)
Pendahuluan Teori Graf
Teori Graf mulai dikenal saat matematikawan kebangsaan Swiss, Leonhard Euler,
berhasil mengungkapkan Misteri Jembatan Koningsberg tahun 1736.
Di kota Koningsberg, Rusia, mengalir sungai Pregel, di sungai terdapat 2 pulau
(daratan) dan diantaranya terdapat jembatan yang menghubungkan pulau-pulau
tersebut, dengan jumlah jembatan sebanyak 7 buah.
Graf yang merepresentasikan jembatan Konigsberg terdiri dari (lihat gambar):
Simpul (vertex), menyatakan daratan.
Sisi (edge), menyatakan jembatan.
6
Pendahuluan Teori Graf
Graf adalah struktur diskrit yang terdiri dari simpul (vertex) dan sisi
(edge) yang menghubungkan simpul-simpul ini.
Dengan menggunakan model graf, kita dapat:
Menentukan apakah mungkin untuk berjalan di semua jalan di kota
tanpa menyusuri jalan dua kali, dan kita dapat menemukan
jumlah warna yang dibutuhkan untuk mewarnai wilayah peta.
Graf dapat digunakan untuk menentukan apakah suatu rangkaian
dapat diimplementasikan pada papan sirkuit planar.
Membedakan antara dua senyawa kimia dengan rumus molekul
yang sama tetapi struktur yang berbeda menggunakan graf.
Menentukan apakah dua komputer dihubungkan oleh tautan
komunikasi menggunakan model graf jaringan komputer.
Memecahkan masalah seperti menemukan jalur terpendek antara
dua kota dalam jaringan transportasi.
Menggunakan graf untuk menjadwalkan ujian dan menetapkan
saluran ke stasiun televisi.
7
Konsep Graf
Definisi 1
Suatu graf G=(V,E) terdiri dari V, yaitu himpunan simpul (vertex/node)
yang tidak kosong, dan E, yaitu himpunan sisi (edge). Setiap edge
memiliki satu atau dua vertex yang terkait dengannya, yang disebut
titik ujung. Sebuah edge menghubungkan titik-titik ujungnya.
8
Contoh: pseudograf
e16
e11 e17 e18
e12
e13 e14
e7 e8 e9 e19 e20
e15
e2 e4 e10
e21
e1 e5 e6
e3
Example :
Multiple edges = e5 and e6 ;
e8, e9 and e10 ;
e13 and e14 ;
e19 and e20.
Loops = e2, e3, e7, e11, e16, e18, e21. 9
Contoh-contoh Graf
10
Konsep Graf
• Sebuah graf didefinisikan sebagai sebuah pasangan
himpunan (vertex) yang tak kosong dan (edge),
dinotasikan dengan:
• Contoh:
11
Jenis Graf
Graf sederhana • Graf berarah
• di mana • di mana
– : himpunan tak – : himpunan tak
kosong dari titik- kosong dari titik-
titik/simpul/vertex titik/simpul/vertex
– : himpunan – : himpunan pasangan
pasangan tak terurut dari vertex-
terurut dari vertex- vertex yang berbeda,
vertex yang berbeda, disebut sisi/edge
disebut sisi/edge
12
Terminologi Dasar
Definisi 1
Dua verteks u dan v pada graf tak berarah G disebut adjacent
(bertetangga) di graf G jika u dan v adalah vertex-vertex ujung dari
suatu edge e dari G. Edge e yang demikian disebut incident
(bersinggungan) dengan vertex-verteks u dan v, dan e dikatakan
menghubungkan u dan v.
Definisi 2
Himpunan semua tetangga dari vertex v dari graf G=(V,E), dinotasikan
dengan N(v), disebut neighborhood dari v. Jika A adalah himpunan
bagian dari V, maka N(A) adalah himpunan dari semua vertex di G
yang bertetangga dengan paling sedikit satu vertex di A.
Jadi, N(A) =
13
Terminologi Dasar
Definisi 3
Derajat suatu vertex pada suatu graf tak berarah adalah jumlah edge
yang bersinggungan dengan vertex tersebut, kecuali loop pada suatu
suatu vertex yang berkontribusi dua kali terhadap derajat vertex
tersebut. Derajat suatu vertex v dinotasikan dengan deg(v).
14
Terminologi Dasar
Contoh:
Tentukan derajat, tetangga, terisolasi, dan pendant dari vertex pada graf
di bawah ini:
Solusi:
a. deg(a) = 2,
deg(b) = deg(c) = deg(f ) = 4,
deg(d) = 1, deg(e) = 3, dan
deg(g) = 0.
b. The neighborhoods
N(a) = {b, f }, N(b) = {a, c, e, f },
N(c) = {b, d, e, f }, N(d) = {c},
N(e) = {b, c, f }, N( f ) = {a, b, c, e},
and N(g) = ∅.
c. Isolated vertex : g
d. Pendant vertex : d 15
Konsep Bertetangga (Adjacent)
dan Terkait (Incident)
𝑣
𝑒
𝑢
16
Derajat suatu vertex
• Contoh:
𝑣5
𝑣6 𝑣4
𝑣1 𝑣2 𝑣3
17
Penyajian Graf
( )
0 1 0 0 0 1
𝑣6 𝑣4
1 0 1 0 0 1
0 1 0 1 0 0
𝑣1 𝑣2 𝑣3 0 0 1 0 0 0
0 0 0 0 0 0
1 1 0 0 0 0
18
Daftar Ketetanggaan
• Misalkan diketahui graf .
𝑣5
• Daftar ketetanggaan adalah sebuah
vektor atau himpunan dengan panjang , 𝑣6 𝑣4
di mana setiap elemennya berisi daftar
vertex-vertex yang bertetangga dengan 𝑣1 𝑣2 𝑣3
vertex untuk setiap .
• Dalam implementasi algoritma, daftar
Vertex Vertex tetangga
ketetanggaan itu:
– Berguna ketika kita ingin mengetahui
semua vertex yang bertetangga
dengan salah satu vertex .
– Kurang berguna saat ingin
mengetahui secara cepat apakah
vertex dan bertetangga. Ini karena
kita harus mencari daftar pada baris
dan baris . Untuk itu lebih disukai
menggunakan matriks
ketetanggaan. 19
Adjacency Matrix (3:34)
Matriks Ketetanggaan
• Diketahui graf .
𝑣5
• Matriks ketetanggaan (adjacency matrix)
adalah sebuah matriks di mana 𝑣6 𝑣4
vertex
( )
ketetanggaan berupa: 0 1 0 0 0 1
– matriks simetri dan 1 0 1 0 0 1
0 1 0 1 0 0
– diagonal utamanya nol 0 0 1 0 0 0
0 0 0 0 0 0
1 1 0 0 0 0
21
KONSEP PEWARNAAN GRAF
22
Konsep Pewarnaan Graf
Definisi 1
Pewarnaan graf sederhana adalah pemberian warna pada setiap vertex
pada graf sehingga tidak ada dua vertex bertetangga yang diberi warna
yang sama.
Definisi 2
Bilangan kromatik suatu graf adalah
jumlah warna paling sedikit yang
diperlukan untuk mewarnai graf tersebut.
Bilangan kromatik dari graf G dinotasikan
dengan 𝜒(G). (Here 𝜒 is the Greek letter
chi.)
23
Konsep Pewarnaan Graf
• Diketahui graf G. Bagaimana cara mewarnai (melabeli
dengan ) vertex-vertex pada graf G sedemikian hingga
vertex-vertex yang bertetangga berwarna berbeda, lebih
lanjut lagi, banyaknya warna harus seminimal mungkin.
• minimal
24
Pewarnaan Graf
Contoh:
Berapakah bilangan kromatik dari graf G dan H yang ditunjukkan pada
Gambar di bawah ini?
𝜒(G)=3
𝜒(H)=4
25
Aplikasi Pewarnaan Graf
27
Contoh Pewarnaan Graf
𝑣5
𝑣6 𝑣4
𝑣1 𝑣2 𝑣3
𝑣5 𝑣5 𝑣5
𝑣6 𝑣4 𝑣6 𝑣4 𝑣6 𝑣4
𝑣1 𝑣2 𝑣3 𝑣1 𝑣2 𝑣3 𝑣1 𝑣2 𝑣3
28
Contoh Pewarnaan Graf
55
𝑣
3
𝑣5
3
𝑣5
6
𝑣6 𝑣4
3
𝑣6 𝑣4
3
𝑣6 𝑣4
4 4 1
𝑣1 𝑣2 𝑣3 𝑣1 𝑣2 𝑣3 𝑣1 𝑣2 𝑣3
1 2 3 1 2 3 1 2 3
6 warna 4 warna 3 warna
. . .
29
Bilangan kromatik
(dibaca: chi(G))
• Bilangan kromatik adalah bilangan terkecil dari
banyaknya warna yang diperlukan untuk mewarnai suatu
graf.
• Pewarnaan yang menggunakan bilangan sebanyak
dikatakan sebagai pewarnaan yang optimal.
3
𝑣5
3
𝑣6 𝑣4 1
𝑣1 𝑣2 𝑣3
1 2 3
3 warna
30
Batas atas
dari bilangan kromatik
31
Batas atas
dari bilangan kromatik
Contoh: 𝑣6
𝑣4 𝑣5
𝑣2 𝑣1 𝑣3
Vertex Derajat
3 (4,1) 1
2 (3,2) 2
2 (3,3) 3
2 (3,4) 3
1 (2,5) 2
0 (1,6) 1
Jadi, .
32
Bilangan Kromatik
Vertex
(5,1) 1
(5,2) 2
(5,3) 3
𝑣1 𝑣2 𝑣3 𝑣4 𝑣5
(5,4) 4
𝑣6 𝑣7 𝑣8 𝑣9 𝑣 10
(5,5) 5 𝜒 (𝐺) ≤ 5
(5,6) 5
𝐺 (5,7) 5
(5,8) 5
(5,9) 5
(5,10) 5
Apakah ?
33
Algoritma Pewarnaan Graf
Algoritma 1. Greedy
1. Misalkan adalah permutasi dari vertex-
vertex di
2. untuk setiap :
, di mana adalah label warna
terkecil yang belum ditandai pada
semua tetangga .
34
Graph Coloring (2:33)
Contoh Algoritma Greedy
1
𝑣6 𝑣6 𝑣6 𝑣6 𝑣6
𝑣5 𝑣5 𝑣5 3 𝑣5 3 1 𝑣5
𝑣4 𝑣4 𝑣4 𝑣4 𝑣4
1 2 1 2 1 2 2 1 2 2 1 2
𝑣2 𝑣1 𝑣3 𝑣2 𝑣1 𝑣3 𝑣2 𝑣1 𝑣3 𝑣2 𝑣1 𝑣3 𝑣2 𝑣1 𝑣3
1 1 1 1 1
2 2 2 2
…
2 2 2
3 3
1
1
36
Contoh Algoritma Greedy
𝑣1 𝑣2 𝑣3 𝑣4 𝑣5 𝑣1 𝑣2 𝑣3 𝑣4 𝑣5
1 1 1 1 1 Ini perwarnaan yang
optimal karena
banyaknya warna yang
𝑣 6 𝑣 7 𝑣 8 𝑣 9 𝑣 10
2 2 2 2
𝑣 6 𝑣 7 𝑣 8 𝑣 9 𝑣 10
2
dibutuhkan sama
dengan , yaitu 2.
Vertex
1 1 1 1 1 2 2 2 2 2
37
Contoh Algoritma Greedy
𝑣1 𝑣3 𝑣5 𝑣7 𝑣9 𝑣1 𝑣3 𝑣5 𝑣7 𝑣9 Dengan urutan
1 2 3 4 5
vertex yang
seperti ini,
1 2 3 4 5 algoritma greedy
𝑣 2 𝑣 4 𝑣 6 𝑣 8 𝑣 10 𝑣 2 𝑣 4 𝑣 6 𝑣 8 𝑣 10 menghasilkan 5
warna. Ini tidak
Vertex optimal
1 1 2 2 3 3 4 4 5 5
38
Bit dan Byte
• Bit (binary digit). Bit merepresentasikan pernyataan logika, bernilai 0
atau 1.
– Bit pattern: himpunan terurut dari bit-bit
– Contoh: 101011 adalah sebuah bit pattern yang terdiri dari 6 bit.
– Sebuah bit pattern yang terdiri dari bit disebut sebuah -bit
pattern.
39
Operasi Bitwise AND ,
OR , dan shift
(<< left shift, >> right shift)
Contoh:
100101011 100101011 000101 << 2
010010111∧ ∨
010010111 = 010100
000000011 110111111
001011 >> 2
= 000010
40
Ingat Kembali
Algoritma Pewarnaan Graf
41
METODE
42
Algoritma Pewarnaan Graf
Algoritma 1. Greedy
1. Misalkan adalah permutasi dari vertex-
vertex di
2. untuk setiap :
, di mana adalah label warna
terkecil yang belum ditandai pada
semua tetangga .
43
Bitwise Graph Coloring
(Komosko 2015)
• Advantage: Fast
44
Propose Algorithm
Algoritma 3. Perbaikan dari Bitwise Graph Coloring
1. Input: Matriks ketetanggaan A[nxn]
2. Urutkan A berdasarkan derajatnya secara menurun (baik kolom
maupun baris).
3. Ubah setiap baris di A menjadi sebuah bilangan decimal,
kemudian simpan pada matriks Aint (ukuran: 1xn).
4. C = [0] ukuran 1xn
5. topeng = 1 << (n - 1)
6. untuk i = 0 sampai n – 1:
7. untuk j = 0 sampai n – 1:
8. cek = C[j] AND topeng
9. if cek == 0:
10. C[j] = C[j] OR Aint[i]
11. topeng = topeng >> 1
12. break
13. Output: C
45
Convert Dataset into
Adjacency Matrix (Algorithm)
46
Aplikasi dari Pewarnaan Graf
• Penyusunan jadwal pertemuan
• Penyusunan jadwal taksi
• Pengaturan lampu lalu lintas
47
Penjadwalan Ujian Semester
48
Convert Dataset into
Adjacency Matrix
• Dataset diperoleh dari petugas BAAK seperti pada tabel
berikut ini.
• Ambil hanya 2 kolom saja, yaitu
Kolom1: course ID, kolom 2: nama student
• Urutkan tabel berdasarkan kolom 1.
Academi
c Semester Course Class section Class Nbr SKS theory SKS Course
program Campus Binusian ID Student ID Official name code Long title peacticum Code Official name
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 LANG6027 Indonesian LA06 12845 2 0 LANG6027 NICHOLAS LAVENDO TANERI
Statistical
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 STAT6175 methods For LA06 15904 2 0 STAT6175 NICHOLAS LAVENDO TANERI
data science
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures LA06 11413 4 2 COMP6048 NICHOLAS LAVENDO TANERI
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures LA06 11413 4 2 COMP6048 NICHOLAS LAVENDO TANERI
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures TA06 11415 4 2 COMP6048 NICHOLAS LAVENDO TANERI
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 MATH6039 Calculus ll LA06 13110 4 0 MATH6039 NICHOLAS LAVENDO TANERI
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 MATH6039 Calculus ll LA06 13110 4 0 MATH6039 NICHOLAS LAVENDO TANERI
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 EESE2 EESE2 LA06 15039 0 0 EESE2 NICHOLAS LAVENDO TANERI
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures BA06 12302 4 2 COMP6048 NICHOLAS LAVENDO TANERI
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 ENGL6129 English savvy LA06 12513 0 0 ENGL6129 NICHOLAS LAVENDO TANERI
49
Bitwise Graph Coloring
untuk Penjadwalan
50
Python
51
HASIL & PEMBAHASAN
52
Implementasi Penjadwalan
pada Dept. TI-Mat-Stat
Academic
program Campus
• Dataset
Binusian ID Student ID Official name Semester Course code Long title Class section Class Nbr SKS theory SKS peacticum
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 LANG6027 Indonesian LA06 12845 2 0
Statistical
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 STAT6175 methods For data LA06 15904 2 0
science
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures LA06 11413 4 2
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures LA06 11413 4 2
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures TA06 11415 4 2
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 MATH6039 Calculus ll LA06 13110 4 0
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 MATH6039 Calculus ll LA06 13110 4 0
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 EESE2 EESE2 LA06 15039 0 0
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 COMP6048 Data structures BA06 12302 4 2
DBCST CSKMG BN12394421 2440115956 NICHOLAS LAVENDO TANERI 2 ENGL6129 English savvy LA06 12513 0 0
53
Matriks Ketetanggaan
dari Dataset TI-Mat-Stat
• Menggunakan Algoritma 4, diperoleh matriks ketetanggaan (Adjacency
matrix) berikut dengan 59 baris dan 59 kolom
54
Hasil Matriks C
• c = [287878360632130526L, 396312094275534822L,
484135860426505643L, 562378202004053948L,
575194045616614992L, 576407408675319809L,
571950546240339968L, 408587686408880128L, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
55
Mengubah Entri-entri Matriks C
Menjadi Bilangan Biner
56
Hasil pewarnaan graf
57
Waktu proses
58
KESIMPULAN DAN
MASALAH TERBUKA
59
Kesimpulan dan
Masalah Terbuka
60
FUN FACT
61
Jangan Malu/Takut
Untuk Meneliti
62
References
• Arifin, S., & Muktyas, I. B. (2021, April). Generate a system of linear equation through
unimodular matrix using Python and Latex. In AIP Conference Proceedings (Vol. 2331,
No. 1, p. 020005). AIP Publishing LLC. doi.org/10.1063/5.0041651
• Arifin, S., Muktyas, I. B., & Sukmawati, K. I. (2021, February). Product of two groups
integers modulo m, n and their factor groups using python. In Journal of Physics:
Conference Series (Vol. 1778, No. 1, p. 012026). IOP Publishing. doi.org/0.1088/1742-
6596/1778/1/012026
• Bustan, A. W., & Salim, M. R. (2019). Penerapan Pewarnaan Graf Menggunakan
Algoritma Welch- Powell Untuk Menentukan Jadwal Bimbingan Mahasiswa. Jurnal
THEOREMS (The Original Research of Mathematics), 4(1), 79-86.
• Chollet, F. (2021). Deep Learning with Python, Second Edition. United States: Manning.
• Firdaus, M. A. (2020). Aplikasi pewarnaan Graf menggunakan Algoritma Welch-
Powell pada penyusunan jadwal mata kuliah prodi matematika UIN Sunan Ampel
Surabaya (Doctoral dissertation, Uin Sunan Ampel Surabaya).
http://digilib.uinsby.ac.id/42168/
63
References
• Gravetter, F. J., & Forzano, L. B. (2012). Research methods for the behavioral sciences
4th edition. Belmont: Cengage Learning.
• Muktyas, I. B. (2010). Program Pewarnaan Graf untuk Pemodelan Penjadwalan Ujian
Semester di Jurusan Matematika Unnes (Doctoral dissertation, Universitas Negeri
Semarang). lib.unnes.ac.id/13117/
• Jioudi, B., Sabir, E., Moutaouakkil, F., & Medromi, H. (2019, November). A Congestion
Game Analysis for Route-Parking Selection with Dynamic Pricing Policies. In
International Symposium on Ubiquitous Networking (pp. 171-181). Springer, Cham.
• Rosen, K. H. (2019). Discrete Mathematics and its Applications, 8th ed. New York, USA:
McGraw-Hill Education, 2019.
• Klotz, W. (2002). Graph coloring algorithms (pp. 1-9). Verlag nicht ermittelbar.
• Komosko, L., Batsyn, M., San Segundo, P., & Pardalos, P. M. (2016). A fast greedy
sequential heuristic for the vertex colouring problem based on bitwise operations.
Journal of Combinatorial Optimization, 31(4), 1665-1677.
• Malkawi, M., Hassan, M. A. H., & Hassan, O. A. H. (2008). A New Exam Scheduling
Algorithm Using Graph Coloring. International Arab Journal of Information
Technology (IA JIT), 5(1). https://iajit.org/PDF/vol.5,no.1/11-68.pdf
64
References
65
Terima Kasih