KONSEP GRAPH
Dosen Pengampu:
Mardiansyah Putra, M.Kom
Disusun Oleh:
1. Meiyela Salsabilla(104240008)
PROGRAM STUDI ILMU KOMPUTER
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS PGRI SILAMPARI
2025
KATA PENGANTAR
Puji syukur hadirat Allah SWT karena berkat rahmat serta hidayah-Nyalah kami masih
diberi kesehatan baik fisik maupun rohani, sehingga kami dapat menyelesaikan tugas mata
kuliah Struktur Data Dan Algoritma dengan judul Konsep Graph ,ini dengan tepat waktu.
Kami menyadari bahwa makalah yang telah kami buat ini masih banyak kekurangan
baik dalam isi maupun sistematik penyusunanya. Hal ini disebabkan oleh keterbatasan
pengetahuan dan wawasan kami. Oleh karena itu, kami sangat mengharapkan kritik dan saran
dari kalian semua untuk menambah wawasan dan pengetahuan bagi kita bersama, Terima
Kasih.
Lubuklinggau, Mei 2025
Penulis
Daftar Isi
KATA PENGANTAR..........................................................................................................................2
BAB I....................................................................................................................................................4
PENDAHULUAN................................................................................................................................4
BAB II..................................................................................................................................................5
PEMBAHASAN...................................................................................................................................5
A. Konsep Dasar..................................................................................................................................5
B. Pengertian Dan Definisi Graph......................................................................................................8
C. Tranversal dan Representasi Graph..............................................................................................9
KESIMPULAN..................................................................................................................................13
SARAN...............................................................................................................................................13
DAFTAR PUSTAKA.........................................................................................................................14
BAB I
PENDAHULUAN
A. Latar Belakang
Dalam perkembangan ilmu komputer dan matematika diskrit, konsep graf (graph)
menjadi salah satu topik fundamental yang memiliki banyak penerapan dalam
kehidupan nyata. Graf merupakan struktur data yang terdiri dari simpul (node/vertex)
dan sisi (edge) yang menghubungkan pasangan simpul. Konsep ini digunakan secara
luas dalam berbagai bidang seperti jaringan komputer, algoritma pencarian jalur, ilmu
sosial, hingga biologi.
Penerapan graf dapat ditemukan dalam hal-hal sederhana seperti jaringan
pertemanan di media sosial, sistem transportasi, atau pengiriman barang. Selain itu,
graf juga berperan penting dalam pengembangan algoritma seperti Dijkstra, BFS
(Breadth-First Search), dan DFS (Depth-First Search), yang digunakan untuk
menyelesaikan berbagai persoalan komputasi.
Mengingat pentingnya peran graf dalam ilmu komputer dan aplikasinya yang luas
dalam kehidupan sehari-hari, pemahaman yang mendalam tentang konsep dasar,
jenis-jenis graf, serta algoritma yang berkaitan menjadi hal yang sangat esensial. Oleh
karena itu, makalah ini disusun untuk membahas konsep dasar graf, jenis-jenisnya,
representasi, dan contoh aplikasinya secara sistematis.
B. RUMUSAN MASALAH
Adapun rumusan masalah dalam penyusunan makalah ini adalah:
1. Apa Pengertian dan Definisi dari Graph?
2. Apa Alasan Pentingnya Graph?
3. Contoh Aplikasi Graph?
4. Apa Representasi dan Tranversal Graph
C. TUJUAN PENULISAN
Adapun tujuan penulis dalam penyusunan makalah ini adalah:
1. Mengetahui Apa Itu Graph
2. Mengetahui Representasi Graph Beserta Algoritmanya
3. Mengetahui Tranversal Graph Beserta Algoritmanya
4. Mengetahui Operasi Dasar Pada Graph
BAB II
PEMBAHASAN
KONSEP DASAR
Graph adalah struktur yang terdiri dari kumpulan simpul (titik) dan sisi (garis
penghubung antar simpul). Graph digunakan untuk menggambarkan hubungan atau
koneksi antar objek. Contohnya, simpul bisa mewakili kota, dan sisi mewakili jalan
yang menghubungkannya.Ada graph berarah (arah koneksi penting) dan graph tak
berarah (arah tidak penting), serta graph berbobot jika sisi memiliki nilai (misalnya
jarak atau biaya).
Graph digunakan dalam banyak bidang, seperti jaringan komputer, transportasi,
media sosial, dan algoritma pencarian.
A. Definisi Graph
Secara sistematis, graph didefinisikan sebagai berikut:
Suatu graf yang dipandang sebagai kumpulan titik yang disebut simpul dan
segmen garis yang menghubungkan dua simpul yang disebut dengan rusuk.
Graph (G) didefinisikan sebagai pasangan himpunan ( V , E ), ditulis dengan
notasi G = ( V , E ), yang dalam hal ini V adalah himpunan tidak kosong dari simpul
simpul (vertices atau node) dan E adalah himpunan sisi (edges atau arcs) yang
menghubungkan sepasang simpul. Dari definisi diatas dapat disimpulkan bahwa,
graph adalah kumpulan dari simpuldan busur yang secara sistematis dinyatakan
sebagai:
G= (V , E )
Dimana:
G = Graph
V = Simpul atau vertices atau node atau titik
E = Busur atau edges atau arcsatau sisi
Dari definisi di atas menyatakan bahwa V tidak boleh kosong, sedangkan E
boleh kosong. Jadi, sebuah graph dimungkinkan tidak mempunyai sisi satu buah pun,
tetapi simpulnya harus ada, minimal satu. Graph yang hanya mempunyai satu buah
simpul tanpa sebuah sisi pun dinamakan graph trivial.
Simpul pada graph dapat dinomori dengan huruf, seperti a, b, c, ..., v, w, ...,
dengan bilangan asli 1, 2, 3, ..., atau gabungan keduanya. Sedangkan sisi yang
menghubungkan simpul u dengan v, maka e dapat ditulis sebagai
e = (v, v)
Secara geometri graph digambarkan sebagai sekumpulan noktah (simpul di dalam
bidang dwimatra
Graph dapat dibedakan menjadi beberapa jenis, seperti:
- Graph tak berarah (undirected graph): Sisi tidak memiliki arah, sehingga hubungan
antar simpul bersifat dua arah.
- Graph berarah (directed graph/digraph): Sisi memiliki arah, yang menunjukkan
hubungan satu arah dari satu simpul ke simpul lainnya.
- Graph berbobot (weighted graph): Setiap sisi memiliki nilai bobot yang menyatakan
biaya atau jarak antara dua simpul.
B. Alasan Pentingnya Graph
Pentingnya Graph dalam Struktur Data
1. Merepresentasikan Hubungan Kompleks
Graf memungkinkan representasi hubungan antar objek yang tidak bisa diwakili secara linear,
seperti hubungan pertemanan di media sosial, konektivitas antar kota, atau jaringan internet.
2. Fleksibel dan Luas Penggunaannya
Graf banyak digunakan dalam berbagai bidang ilmu komputer dan kehidupan nyata, seperti:
- Rute terpendek (Google Maps, GPS)
- Jaringan sosial (Facebook, LinkedIn)
- Analisis jaringan komputer
- Perencanaan proyek (graf ketergantungan tugas)
- Mesin pencari (PageRank di Google)
3. Mendukung Algoritma Efisien
- Struktur graf mendasari banyak algoritma penting seperti:
- Depth First Search (DFS) dan Breadth First Search (BFS) untuk penelusuran
- Dijkstra dan A untuk pencarian jalur terpendek
- Kruskal dan Prim untuk pohon merentang minimum
4. Dasar untuk Struktur Lain
- Banyak struktur data dan model komputasi kompleks, seperti automata, basis data
relasional, dan model jaringan, dibangun dengan konsep graf.
5. Mempermudah Visualisasi dan Analisis
- Dengan representasi grafis, hubungan antar data bisa divisualisasikan dan dianalisis lebih
mudah, membantu dalam pengambilan keputusan dan pemahaman sistem.
C. Contoh Aplikasi Graph
Contoh Aplikasi Struktur Data Graf
Jaringan Sosial (Social Network)
Platform seperti Facebook, Instagram, dan LinkedIn menggunakan graf untuk
merepresentasikan hubungan antar pengguna. Setiap pengguna adalah simpul, dan hubungan
pertemanan atau pengikut adalah sisi antar simpul.
Pencarian Jalur Terpendek (Shortest Path)
Aplikasi peta seperti Google Maps dan Waze menggunakan graf berbobot untuk menemukan
rute tercepat atau terpendek antara dua lokasi. Lokasi dianggap sebagai simpul, dan jalan
sebagai sisi dengan bobot tertentu (misalnya waktu tempuh atau jarak).
Sistem Rekomendasi
Layanan seperti Netflix atau Spotify menggunakan graf bipartit untuk menghubungkan
pengguna dengan item (film, lagu), dan membantu merekomendasikan konten berdasarkan
hubungan dalam graf.
Jaringan Komputer
Dalam jaringan komputer, simpul mewakili perangkat (komputer, router), dan sisi mewakili
koneksi antar perangkat. Algoritma graf digunakan untuk routing data melalui jaringan.
Penjadwalan Tugas (Task Scheduling)
Dalam manajemen proyek atau pemrograman paralel, graf digunakan untuk memodelkan
ketergantungan antar tugas. Graf berarah digunakan untuk menentukan urutan eksekusi yang
benar.
Web Page Ranking (Search Engine)
Mesin pencari seperti Google menggunakan graf web, di mana halaman web adalah simpul
dan hyperlink adalah sisi. Algoritma PageRank mengevaluasi pentingnya halaman
berdasarkan struktur graf.
D. Representasi Graph Beserta Algoritma dan Cara Kerjanya
Dalam struktur data, graf dapat direpresentasikan dengan dua cara utama:
Matriks Ketetanggaan (Adjacency Matrix)
Merupakan matriks dua dimensi berukuran V x V (V = jumlah simpul), di mana
elemen pada baris i dan kolom j menunjukkan apakah terdapat sisi dari simpul i ke j.
- Untuk graf tak berarah: matriks bersifat simetris.
- Untuk graf berbobot: elemen menyimpan nilai bobot; jika tidak ada sisi, diisi ∞ atau0.
- Kelebihan: Akses cepat untuk mengecek hubungan antar simpul.
- Kekurangan: Tidak efisien dalam menyimpan graf yang jarang (sparse graph).
Daftar Ketetanggaan (Adjacency List)
Setiap simpul menyimpan daftar simpul lain yang terhubung dengannya melalui sisi.
- Cocok untuk graf besar dan jarang.
- Lebih hemat memori dibandingkan matriks.
- Kelebihan: Efisien dalam menyimpan dan menjelajah simpul tetangga.
- Kekurangan: Pengecekan eksistensi sisi lebih lambat dibanding matriks.
Algoritma Umum dalam Graf dan Cara Kerjanya
1. Breadth-First Search (BFS)
Tujuan: Menelusuri graf secara melintang dari simpul awal.
Cara Kerja:
- Gunakan queue.
- Tandai simpul yang telah dikunjungi.
- Kunjungi semua tetangga dari simpul yang sedang diproses sebelum pindah ke
simpul berikutnya.
Aplikasi: Menentukan tingkat simpul (level), pencarian rute terpendek pada graf tak
berbobot.
2. Depth-First Search (DFS)
Tujuan: Menelusuri graf secara mendalam.
Cara Kerja:
- Gunakan stack (atau rekursi).
- Kunjungi simpul sedalam mungkin sebelum kembali dan melanjutkan ke simpul
tetangga lain.
Aplikasi: Deteksi siklus, topological sorting, pencarian komponen terhubung.
3. Dijkstra's Algorithm
Tujuan: Menemukan jalur terpendek dari satu simpul ke simpul lain pada graf
berbobot positif.
Cara Kerja:
- Inisialisasi jarak semua simpul dengan ∞, kecuali simpul awal (0).
- Gunakan priority queue.
- Perbarui jarak minimum dari simpul sumber ke simpul lainnya.
Aplikasi: Navigasi rute, jaringan transportasi, routing data.
4. Prim’s Algorithm
Tujuan: Mencari Minimum Spanning Tree (MST) dari graf berbobot.
Cara Kerja:
- Mulai dari satu simpul.
- Tambahkan sisi dengan bobot minimum yang menghubungkan simpul yang belum
dikunjungi.
Aplikasi: Desain jaringan, pengurangan biaya koneksi.
5. Kruskal’s Algorithm
Tujuan: Mencari MST dengan memproses sisi.
Cara Kerja:
- Urutkan semua sisi berdasarkan bobot.
- Tambahkan sisi terkecil yang tidak membentuk siklus (menggunakan struktur
disjoint set).
- Aplikasi: Mirip dengan Prim, tapi bekerja lebih baik pada graf jarang.
E. Trasversal Graph Beserta Algoritma dan Cara Kerjanya
Tranversal graph adalah proses mengunjungi semua simpul (node/vertex) dan sisi
(edge) dari sebuah graph secara sistematis. Tujuannya bisa bermacam-macam,seperti
mencari data, jalur terpendek, atau hanya mengecek struktur graph.
Dua Jenis Traversal Graph:
1. DFS (Depth-First Search) – Penelusuran Mendalam
Menelusuri simpul sedalam mungkin sebelum kembali (backtrack).
Cocok untuk menyelidiki seluruh jalur sebelum pindah jalur lain.
Cara Kerja:
1. Mulai dari simpul awal.
2. Kunjungi simpul tersebut dan tandai sebagai dikunjungi.
3. Kunjungi tetangga pertama yang belum dikunjungi.
4. Ulangi langkah 2–3 sampai semua simpul dikunjungi.
Algoritma:
Alur jalan algoritma DFS
1. Kunjungi simpul v.
2. Kunjungi simpul w yang bertetangga dengan simpul v.
3. Ulangi DFS mulai dari simpul w.
4. Ketika mencapai simpul u sedemikian sehingga semua simpul yang bertetangga
dengannya telah dikunjungi, pencarian dirunut-balik (backtrack) ke simpul
terakhir yang dikunjung sebelumnya dan mempunyai simpul w yang belum
dikunjungi.
5. Pencarian berakhir bila tidak ada lagi simpul yang belum dikunjungi yang dapat
dicapai dari simpul yang telah dikunjungi.
2. BFS (Breadth-First Search) – Penelusuran Melebar
Menelusuri setiap level simpul satu per satu sebelum melanjutkan ke level
berikutnya.
Cocok untuk menemukan jalur terpendek dalam graf tak berbobot.
Cara Kerja:
1. Mulai dari simpul awal.
2. Gunakan antrian (queue).
3. Masukkan simpul awal ke antrian dan tandai sebagai dikunjungi.
4. Ambil simpul dari antrian dan kunjungi tetangga-tetangganya.
5. Ulangi sampai semua simpul dikunjungi.
Algoritma:
Alur jalan algoritma BFS
1. Kunjungi simpul v.
2. Kunjungi semua simpul yang bertetangga dengan simpul v terlebih dahulu.
3.Kunjungi simpul yang belum dikunjungi dan bertetangga dengan simpul-simpul
yang tadi dikunjungi, demikian seterusnya.
Jika graf berbentuk pohor berakar, maka semua simpul pada aras d dikunjungi lebih
dahulu sebelum mengunjungi simpul-simpul pada aras d + 1.
F. STUDI KASUS GRAPH
Judul Cerita: Penjadwalan Mata Kuliah
Cerita:
Universitas Merdeka memiliki sejumlah mata kuliah yang saling memiliki prasyarat.
Artinya, mahasiswa harus mengambil mata kuliah tertentu terlebih dahulu sebelum
mengambil mata kuliah lainnya.
Agar sistem KRS (Kartu Rencana Studi) otomatis bisa memberikan saran urutan
pengambilan mata kuliah yang valid, kamu diminta membuat program untuk
menentukan urutan pengambilan mata kuliah yang benar berdasarkan hubungan
prasyarat tersebut.
Masalah:
Mencari urutan topologis (Topological Sort) pada graph berarah.
Algoritma:
1. Inisialisasi:
- Siapkan struktur data adjacency list adj untuk menyimpan graf.
- Siapkan map visited untuk menandai node yang sudah dikunjungi.
- Siapkan stack result untuk menyimpan urutan hasil topologis.
2. Tambahkan semua simpul dan hubungan prasyarat ke dalam adj.
3. Lakukan DFS untuk setiap node yang belum dikunjungi:
- Tandai node sebagai dikunjungi.
- Rekursif DFS ke semua tetangganya.
- Setelah semua tetangga dikunjungi, masukkan node ke dalam stack.
4. Ambil elemen dari stack sebagai urutan pengambilan mata kuliah dari awal ke akhir.
Contoh Input:
Mata kuliah dan prasyarat:
- Matematika Dasar → Struktur Data
- Struktur Data → Algoritma
- Algoritma → Kecerdasan Buatan
- Matematika Dasar → Logika Informatika
Graf berarah:
MatDas -> StrukDat
StrukDat -> Algoritma
Algoritma -> Kecerdasan
MatDas -> Logika
CODINGAN
#include <iostream>
#include <vector>
#include <map>
#include <stack>
using namespace std;
map<string, vector<string>> adj;
map<string, bool> visited;
stack<string> result;
void dfs(string course) {
visited[course] = true;
for (auto neighbor : adj[course]) {
if (!visited[neighbor])
dfs(neighbor);
}
result.push(course);
}
int main() {
// Daftar mata kuliah dan prasyarat
adj["MatDas"] = {"StrukDat", "Logika"};
adj["StrukDat"] = {"Algoritma"};
adj["Algoritma"] = {"Kecerdasan"};
adj["Logika"] = {};
adj["Kecerdasan"] = {};
// Inisialisasi visited
for (auto& pair : adj)
visited[pair.first] = false;
// DFS untuk semua simpul
for (auto& pair : adj) {
if (!visited[pair.first])
dfs(pair.first);
}
cout << "Urutan pengambilan mata kuliah:\n";
while (!result.empty()) {
cout << result.top() << endl;
result.pop();
}
return 0;
}
Urutan pengambilan mata kuliah:
MatDas
Logika
StrukDat
Algoritma
Kecerdasan
Topik yang Diterapkan:
- Graf berarah (Directed Graph)
- Topological Sorting
- DFS (Depth-First Search)
- Representasi graf menggunakan
BAB III
PENUTUP
A. KESIMPULAN
Graf adalah struktur data yang sangat penting untuk merepresentasikan hubungan
antar objek dan banyak digunakan dalam berbagai bidang, seperti jaringan komputer,
transportasi, dan penjadwalan. Dengan algoritma yang tepat, graf memungkinkan
penyelesaian masalah kompleks secara efisien, seperti pencarian rute terpendek, deteksi
siklus, dan penjadwalan tugas.
B. SARAN
Dalam mempelajari graf, penting untuk memahami jenis-jenis graf dan memilih
algoritma yang sesuai dengan masalah yang dihadapi. Disarankan untuk sering berlatih
mengimplementasikan algoritma graf seperti DFS, BFS, Dijkstra, dan Topological Sort
dalam berbagai konteks kasus nyata agar lebih memahami penerapannya dan
meningkatkan kemampuan problem solving.
DAFTAR PUSTAKA
Narayan, D. (2023). Applications of graph theory in computer science. Mathematics, 11(9),
1-22.
Weiss, M. A. (2018). Data Structures and Algorithm Analysis in C++ (4th ed.). Pearson.
Valenzuela-Tripodoro, J. C. (2023). Recent Advances in Graph Theory, Applications and
Related Topics. Mathematics, MDPI.