0% menganggap dokumen ini bermanfaat (0 suara)
45 tayangan5 halaman

Struktur Data - Week14

Graf adalah struktur data yang terdiri dari simpul dan busur yang menghubungkan antar simpul. Graf digunakan untuk merepresentasikan masalah-masalah seperti pencarian jalur terpendek, aliran maksimum, pencarian graf, urutan topologi, jaringan tugas, pohon minimum, dan masalah penjual berkeliling. Graf dapat disajikan menggunakan matriks yang merepresentasikan hubungan antar simpul.

Diunggah oleh

Temmy Pattiasina
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
45 tayangan5 halaman

Struktur Data - Week14

Graf adalah struktur data yang terdiri dari simpul dan busur yang menghubungkan antar simpul. Graf digunakan untuk merepresentasikan masalah-masalah seperti pencarian jalur terpendek, aliran maksimum, pencarian graf, urutan topologi, jaringan tugas, pohon minimum, dan masalah penjual berkeliling. Graf dapat disajikan menggunakan matriks yang merepresentasikan hubungan antar simpul.

Diunggah oleh

Temmy Pattiasina
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 5

31/07/2019

GRAPH
•Graph adalah kumpulan dari simpul dan busur yang
secara matematis dinyatakan sebagai: G = (V, E), Dimana
→ G = Graph; V = Simpul atau Vertex, atau Node atau
Titik; E = Busur atau Edge, atau arc

Week-14
Timothy John Pattiasina, ST., M.Kom.

• Jika struktur linear; misalnya array; KEGUNAAN GRAPH


memungkinkan pendefinisian
keterhubungan sekuensial antara entitas •Contoh lain masalah-masalah yang dapat
data, struktur data tree memungkinkan
pendefinisian keterhubungan hirarkis, diselesaikan dengan menggunakan
maka struktur graph memungkinkan struktur data graph adalah:
pendefinisian keterhubungan tak terbatas
antara entitas data. ✓Minimum Path
KEGUNAAN
GRAPH • Contohnya informasi topologi dan jarak ✓Maximum Flow
antar kota-kota di suatu pulau. Dalam
masalah ini kota x bisa berhubungan ✓Graph Searching Problem
langsung dengan hanya satu atau lima ✓Topological Ordering Problem
kota lainnya. Untuk memeriksa
keterhubungan dan jarak tidak langsung ✓Task Network Problem
antara dua kota dapat diperoleh
berdasarkan data keterhubungan langsung ✓Minimum Spanning Tree
dari kota-kota lainnya yang ✓Travelling Salesman Problem
memperantarainya.
✓Four-Color Problem

Graph Dan Matriks Penyajian Graph


•Suatu Graph mengandung 2 •Example:
himpunan, yaitu :
1. V mengandung 4 simpul, yaitu simpul
1. Himpunan V yang elemennya A,B,C,D.
disebut simpul (Vertex atau
Graph & Matriks Point atau Node atau Titik) 2. E mengandung 5 ruas, yaitu :
Penyajian Graph 2. Himpunan E yang merupakan e1 = (A,B)
pasangan tak urut dari simpul.
Anggotanya disebut Ruas (Edge
e2 = (B,C)
atau rusuk atau sisi). e3 = (A,D)
Graph seperti yang dimaksud ini e4 = (C,D)
ditulis G(V,E).
e5 = (B,D)

1
31/07/2019

Graph Dan Matriks Penyajian Graph


•Suatu Graph yang tidak
•Multigraph: Suatu Graph yang didalamnya mengandung
ruas sejajar maupun self-loop. mengandung ruas sejajar
maupun self-loop, sering disebut
juga sebagai Graph sederhana
atau Simple Graph.
Graph & Matriks •Suatu Graph G’(E’,V’) disebut Sub
Penyajian Graph Graph dari G(E,V), bila E’
himpunan bagian dari E dan V’
•Disini, ruas e2 pada kedua titik ujungnya adalah simpul himpunan bagian dari V. Jika E’
yang sama, yaitu simpul A. Ruas semacam ini disebut mengandung semua ruas dari E
Gelung atau Self-Loop. Sedangkan ruas e5 dan e6 yang titik ujungnya di V’, maka G’
mempunyai titik ujung yang sama, yaitu simpul-simpul B disebut Subgraph yang direntang
dan C. Kedua ruas ini disebut ruas berganda atau ruas oleh V’ (Spanning Subgraph).
sejajar.

•Sebuah graph mungkin hanya


Jenis Graph
terdiri dari satu simpul • Graph tak berarah (undirected graph atau non-directed graph):
Urutan simpul dalam sebuah busur tidak dipentingkan. Misal-
•Sebuah graph belum tentu nya busur e1 dapat disebut busur AB atau BA
semua simpulnya terhubung • Graph berarah (directed graph) : Urutan simpul mempunyai
dengan busur arti. Misal-nya busur AB adalah e1 sedangkan busur BA adalah
e8. v2
•Sebuah graph mungkin v2
B e9 B
e8
mempunyai simpul yang tak e3 e1 e3
e1
terhubung dengan simpul yang e4 v3 v1
e4
lain v1 A C A C v3
e10
•Sebuah graph mungkin semua e2 e5 e7 e2 e5 e7
simpulnya saling berhubungan
D e6 E v5 v4 D E
v4 e6 v5

Directed graph Undirected graph


Dapat dilihat dari bentuk busur, artinya urutan penyebutan pasangan 2 simpul.

Jenis Graph Istilah pada graph


• Graph Berbobot (Weighted Graph)
• Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah 1. Incident → Jika e merupakan busur dengan simpul-
simpul, maka busur tersebut dinyatakan memiliki bobot. simpulnya adalah v dan w yang ditulis e=(v,w), maka v
• Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik,
jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll. dan w disebut “terletak” pada e, dan e disebut incident
v
v
B 2 7 B2
dengan v dan w.
4
5
3 5 3 2. Degree (derajat), Degree sebuah simpul adalah jumlah
1 v3 busur yang incident dengan simpul tersebut.
v1 A C v1 A 1 C v3
2
10
2 • Indegree sebuah simpul pada graph berarah adalah jumlah
e 6 4 8 6 busur yang kepalanya incident dengan simpul tersebut, atau
2 8
jumlah busur yang “masuk” atau menuju simpul tersebut.
D 3 E v v D E
v 3 v • Outdegree sebuah simpul pada graph berarah adalah jumlah
5 4 5
4 busur yang ekornya incident dengan simpul tersebut, atau
Directed Undirected jumlah busur yang “keluar” atau berasal dari simpul tersebut.
graph graph
Panjang busur (atau bobot) mungkin tidak digambarkan secara panjang yang
proposional dengan bobotnya. Misal bobot 5 digambarkan lebih panjang dari 7.

2
31/07/2019

Istilah pada graph Istilah pada graph


3. Adjacent 4. Successor & Predecessor
Pada graph tidak berarah, 2 buah simpul disebut adjacent Pada graph berarah, bila simpul v adjacent dengan simpul w,
bila ada busur yang menghubungkan kedua simpul tersebut. maka simpul v adalah successor simpul w, dan simpul w
Simpul v dan w disebut adjacent. adalah predecessor dari simpul v.
5. Path
Sebuah path adalah serangkaian simpul-simpul yang berbeda,
yang adjacent secara berturut-turut dari simpul satu ke simpul
Pada graph berarah, simpul v disebut adjacent dengan berikutnya.
simpul w bila ada busur dari w ke v.
1 2 1 2 1 2 1 2

3 4 4 3 4 3 4
3

Representasi Graph dalam bentuk Representasi Graph dalam bentuk


matrix matrix
•Adjacency Matrix Graph tak berarah •Adjacency Matrix Graph berarah
Urut abjad A B C D E ke A B C D E
0 1 2 3 4 1 2 3 4
B B dari 0

A 0 0 1 0 1 0 A 0 0 1 0 1 0
out
A C A C
B 1 1 0 1 0 1 B 1 1 0 1 0 1
C 2 0 1 0 1 1 C 2 0 1 0 1 1
D E D 3 1 0 1 0 1 D E D 3 0 0 1 0 1
Graph
E 4
0 1 1 1 0 Graph
E 4
0 0 0 0 0

Degree simpul : 3 in

Representasi Graph dalam bentuk •Membuat function untuk sebuah simpul yang dapat
Linked List digunakan sebagai vertex maupun edge (dinamis).
• Adjency List graph tak berarah int ordo[5][5];
void masukkan(int a, int b, int c)
• Digambarkan sebagai sebuah simpul yang memiliki 2 pointer.
{
• Simpul vertex : Simpul edge : for (int i = 1; i <= 5; i++)
{
left right left right for (int j = 1; j <= 5; j++)
info info
Menunjuk ke simpul if (i == a && j == b)
edge pertama Menunjuk ke {
simpul edge
berikutnya, bila ordo[a][b] = ordo[i][j];
Menunjuk ke simpul Menunjuk ke simpul
vertex berikutnya, vertex tujuan yang masih ada. ordo[a][b] = c;
dalam untaian simpul berhubungan dengan }
yang ada. simpul vertex asal. }
}

3
31/07/2019

•Membuat function untuk sebuah simpul yang dapat Contoh : untuk vertex A, memiliki 2 edge yang
digunakan sebagai vertex maupun edge (Statis). terhubung yaitu e1 dan e2.
char Nms[6] = "ABCDE";
B Urut abjad
struct Node{
e1 A e1 e2
Node *left; e3
int info; e4
Node *right; A C B
};
Node *P,*FIRST,*LAST,*Q,*R; e2 e5 e7 C
Node *PointS[5];
int matrix[5][5]={ D E
e6
{0,5,0,2,0}, D
{6,0,3,0,0}, Graph
{0,0,0,0,9},
E
{0,0,12,0,7},
{0,14,0,0,0}
};

Gambar sebelumnya dapat disusun dengan lebih Adjency List Graph Berarah
sederhana

A B D B A B D
B
B A C E B A C
C B D E A C
A C C E
D A C E
D C E
E B C D
D E D E E B

Graph

Graph Berarah & Berbobot Definisikan simpul untuk vertex


dan edge

A B C D E Mengidentifikasi simpul pertama


6 B 0 1 2 3 4 sebagai vertex yang pertama

5
3 A 0 0 5 0 2 0 Penyelesaian
A 14 C
B 1
6 0 3 0 0 Tambahkan vertex sisanya Graph:
C 2 0 0 0 0 9
12 Tambahkan edge pada masing-
2 12 D 3 0 0 12 0 7
masing vertex yang telah
D 7 E
E 4 0 14 0 0 0 terbentuk
Perhatikan pemilihan nilai 0.
Tampilkan representasi graph
berikut bobotnya

4
31/07/2019

Practice
• Program c++ untuk graph berarah dan berbobot (directed weighted
graph) dengan ordo matrix 5x5 dimana nilai bobot dapat diisikan
bebas, sesuai dengan koordinat x & y (baris & kolom) pada matrix
yang juga ditetapkan, lalu tampilkan hasilnya. Output program
seperti yang terlihat dibawah ini:

Anda mungkin juga menyukai