Struktur Data
Suatu graph didefinisikan oleh himpunan verteks dan himpunan sisi (edge). keterhubungan
antara verteks. Biasanya untuk suatu graph G digunakan notasi matematis. Verteks
menyatakan entitas-entitas data dan sisi menyatakan G = (V, E) Dimana :
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc
V adalah himpunan verteks dan E himpunan sisi yang terdefinisi antara pasangan-pasangan
verteks. Sebuah sisi antara verteks x dan y ditulis {x,y}. Suatu graph H = (V1, E1) disebut
subgraph dari graph G jika V1 adalah himpunan bagian dari V dan E1 himpunan bagian dari
E. Cara pendefinisian lain untuk graph adalah dengan menggunakan himpunan
keterhubungan langsung Vx. Pada setiap verteks x terdefinisi Vx sebagai himpunan dari
verteks-verteks yang adjacent dari x. Secara formal: Vx = {y | (x,y) -> E}.
Dalam digraph didefinisikan juga terminologi-terminologi berikut ini.Predesesor dari suatu
verteks x (ditulis Pred(x)) adalah himpunan semua vertex yang adjacent ke x. Suksesor dari
verteks x (ditulis Succ(x)) adalah himpunan.
Pokok bahasan sebelumnya menjelaskan bahwa graf menampilkan visualisasi data dan
hubungannya. Sedangkan jika berbicara masalah implementasi struktur data graf itu sendiri,
isu utama yang dihadapi adalah bagaimana informasi itu disimpan dan dapat diakses dengan
baik, ini yang dapat disebut dengan representasi internal.
Secara umum terdapat dua macam representasi dari struktur data graf yang dapat
diimplementasi. Pertama, disebut adjacency list, dan diimplementasi dengan menampilkan
masing-masing simpul sebagai sebuah struktur data yang mengandung senarai dari semua
simpul yang saling berhubungan. Yang kedua adalah representasi berupa adjacency matrix
dimana baris dan kolom dari matriks (jika dalam konteks implementasi berupa senarai dua
dimensi) tersebut merepresentasikan simpul awal dan simpul tujuan dan sebuah entri di
dalam senarai yang menyatakan apakah terdapat sisi di antara kedua simpul tersebut.
Adjacency List
Dalam teori graf, adjacency list merupakan bentuk representasi dari seluruh sisi atau busur
dalam suatu graf sebagai suatu senarai. Simpul-simpul yang dihubungkan sisi atau busur
tersebut dinyatakan sebagai simpul yang saling terkait. Dalam implementasinya, hash table
digunakan untuk menghubungkan sebuah simpul dengan senarai berisi simpul-simpul yang
saling terkait tersebut.
Graf pada gambar diatas dapat dideskripsikan sebagai senarai {a,b},{a,c},{b,c}. Dan
representasi adjacency list dapat digambarkan melalui tabel di bawah ini.
Salah satu kekurangan dari teknik representasi ini adalah tidak adanya tempat untuk
menyimpan nilai yang melekat pada sisi. Contoh nilai ini antara lain berupa jarak simpul,
atau beban simpul.
Adjacency Matrix
Adjacency Matrix merupakan representasi matriks nxn yang menyatakan hubungan antar
simpul dalam suatu graf. Kolom dan baris dari matriks ini merepresentasikan simpul-simpul,
dan nilai entri dalam matriks ini menyatakan hubungan antar simpul, apakah terdapat sisi
yang menghubungkan kedua simpul tersebut. Pada sebuah matriks nxn, entri non-diagonal aij
merepresentasikan sisi dari simpul i dan simpul j. Sedangkan entri diagonal aii menyatakan
sisi kalang(loop) pada simpul i.
Gambar diatas merupakan adjacency matrix yang berkorelasi dengan graf tak berarah pada
gambar 4. Kolom dan baris pada matriks merupakan simpul- simpul berlabel 1-6. Kelebihan
dari adjacency matrix ini adalah elemen matriksnya dapat diakses langsung melalui indeks,
dengan begitu hubungan ketetanggan antara kedua simpul dapat ditentukan dengan langsung.
Sedangkan kekurangan pada representasi ini adalah bila graf memiliki jumlah sisi atau busur
yang relative sedikit, karena matriksnya bersifat jarang yaitu hanya mengandung elemen
bukan nol yang sedikit. Kasus seperti ini merugikan, karena kebutuhan ruang memori untuk
matriks menjadi boros dan tidak efisien karena komputer menyimpan elemen 0 yang tidak
perlu.
http://dinda-dinho.blogspot.co.id/2013/11
Sebuah graph mungkin hanya terdiri dari satu simpul
Sebuah graph belum tentu semua simpulnya terhubung dengan busur
Sebuah graph mungkin mempunyai simpul yang tak terhubung dengan simpul yang lain
Sebuah graph mungkin semua simpulnya saling berhubungan
Graph tak berarah (undirected graph atau non-directed graph) :
Urutan simpul dalam sebuah busur tidak dipentingkan. Mis busur e1 dapat disebut busur AB
atau BA
Urutan simpul mempunyai arti. Mis busur AB adalah e1 sedangkan busur BA adalah e8.
Graph Berbobot (Weighted Graph)
Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka
busur tersebut dinyatakan memiliki bobot.
Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata
kendaraan perhari yang melalui sebuah jalan, dll.
Istilah pada graph
Contoh :
Jika e merupakan busur dengan simpul-simpulnya adalah v dan w yang ditulis e=(v,w), maka
v dan w disebut terletak pada e, dan e disebut incident dengan v dan w.
Degree (derajat), indegree dan outdegree
Degree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut.
https wordpress.com/2010/04/22://yulieee.
Graf memiliki banyak jenis, dalam tulisan ini akan dibahas beberapa jenis graf yang sering digunakan.
Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf dan berdasarkan sisi pada graf yang
mempunyai orientasi arah.
Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf maka graf digolongkan menjadi dua
jenis:
Jumlah simpul pada graf disebut sebagai kardinalitas graf, dan dinyatakan dengan n = |V|, dan jumlah
sisi kita nyatakan dengan m = |E|
Berdasarkan orientasi arah pada sisi, maka secara umum graf dibedakan atas 2 jenis :
1. Graf tak-berarah (undirected graph)
Graf yang sisinya tidak mempunyai orientasi arah disebut tak-berarah. Pada graf tak-berarah,
urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi, (u, v) = (v, u)
adalah sisi yang sama.
Definisi graf dapat diperluas sehingga mencakup graf-ganda berarah(directed multigraph). Pada
graf-ganda berarah, gelang dan sisi ganda diperbolehkan ada
http://danysatriokintoko.blogspot.co.id/2013/02
KONSEP DASAR GRAPH
Definisi 1
Suatu graph G adalah pasangan (V,E) yang mana V adalah himpunan tak kosong yang anggotanya
disebut vertex dan E adalah himpunan yang anggotanya adalah pasangan pasangan tak berurut
Secara umum graph diartikan sebagai diagram, yang mana vertex ditampilkan berupa titik dan
dinotasikan dengan vi, i = 1,2,3, , p dan edge ditampilkan berupa garis yang menghubungkan dua
vertex (vi,vj) dan dinotasikan dengan ek, k = 1,2,3, ,q. v i dan vj disebut vertex vertex ujung dari
edge ek. Contoh dari suatu graph dapat dilihat dari gambar 1.
Definisi 2
Suatu edge yang menghubungkan pasangan vertex yang sama, yaitu (v i,vi) disebut loop. Dua
buah edge atau lebih yang mempunyai vertex ujung yang sama disebut paralel edge (multiple edge).
Definisi 3
Suatu graph yang mengandung loop dan paralel edge seperti contoh pada gambar 1 disebut graph
semu ( pseudo graph ) dan graph yang mengandung paralel edge tanpa loop disebut multiple graph.
Suatu graph yang tidak memuat loop dan paralel edge disebut simple graph. Contoh Simple
Definisi 5
Suatu graph dengan jumlah vertex dan jumlah edge yang berhingga disebut finite graph ( graph
berhingga ), sebaliknya jika jumlah vertex dan edge tak berhingga disebut infinite graph ( graph tak
berhingga ).
Definisi 6
Vertex vi dalam graph disebut insident terhadap edge e k jika dan hanya jika edge tersebut merupakan
Dua buah vertex vi dan vj disebut saling adjacent jika kedua vertex tersebut dihubungkan oleh suatu
Dua buah edge ek dan el yang non paralel disebut adjacent jika kedua edge tersebut insident pada
Degree atau derajat dari vertex vi adalah banyaknya edge yang insident pada vertex v i dalam graph G
Vertex yang berderajat 1 disebut end vertex ( pendant vertex ) sedangkan vertex yang berderajat nol
Teorema 1
Jumlah derajat pada seluruh vertex pada suatu graph adalah dua kali jumlah edgenya,
Bukti :
Karena edge e insident dengan dua vertex, sehingga jumlah derajat dari seluruh vertex sama dengan
Definisi 8
Suatu graph G yaitu (V,E) dengan E suatu himpunan kosong, sehingga graph tersebut tanpa edge,
disebut null graph. Dengan kata lain null graph adalah suatu graph dengan semua vertex nya
berderajat nol. Akibatnya setiap vertex pada null graph adalah isolated vertex.
Suatu simple graph yang mana setiap dua vertex yang berlainan dihubungkan oleh suatu edge maka
graph itu disebut graph lengkap ( komplit graph ). Komplit graph dengan n vertex dinotasikan dengan
Kn. Pada bab selanjutnya karena keterbatasan penulis, perangkat lunak yang dirancang hanya mampu
menampilkan hingga K20 meskipun secara konsep dasar graph minimum spanning tree dapat
diperoleh hingga ke Kn dan komplit graph yang ditampilkan adalah komplit graph yang tak berarah
dan terboboti.
Definisi 10
Graph beraturan ( Regular Graph ) adalah suatu simple graph yang semua vertexnya mempunyai
derajat yang sama. Jika graph G adalah simple graph yang mana setiap vertexnya berderajat r, maka
graph tersebut dinamakan reguler graph berderajat r. Setiap komplit graph dengan n vertex
Graph S disebut subgraph dari graph G jika semua vertex dan edge di S termuat di dalam G, dan edge
Definisi 12
Walk dalam suatu graph G adalah suatu deretan berhingga dari vertex dan edge secara bergantian
yang diawali dan diakhiri dengan vertex sedemikian hingga setiap edge yang insident dengan dua
Suatu walk dapat ditulis dengan atau tanpa mengikutsertakan edgenya. Apabila walk dengan vertex
awal dan vertex akhir yang sama maka walk tersebut disebut closed walk ( walk tertutup ). Bila vertex
awal dan vertex akhir berbeda maka disebut open walk ( walk terbuka ).
Pada gambar 6 (a) dapat diambil beberapa walk antara lain adalah :
v1 e1 v2 e5 v5 e6 v6 ( open walk )
v3 e3 v4 e4 v5 e5 v2 e2 v3 ( closed walk )
v1 v2 v5 v6
v3 v4 v5 v2 v3
Defenisi 13
Path adalah suatu walk yang semua vertex yang dilaluinya berbeda, dan path dengan vertex awal
sama dengan vertex akhir disebut dengan circuit ( cycle ). Loop bukan merupakan path atau circuit
karena loop menghubungkan dua vertex yang sama. Banyaknya edge yang terdapat dalam suatu
Definisi 14
Distance antara 2 vertex v i dan vj diartikan sebagai panjang path yang terpendek dari v i dan vj.
Length atau panjang suatu graph adalah bilangan yang menyatakan banyaknya edge yang muncul
v3 v4 v5
Suatu graph G disebut graph terhubung ( connected graph )jika untuk setiap pasangan vertex di
dalam G terdapat paling sedikit satu path, sebaliknya jika dalam graph G terdapat pasangan vertex
yang tidak mempunyai path penghubung maka graph itu disebut disconnected graph. Atau dengan
kata lain suatu connected graph adalah suatu graph yang tidak memiliki isolated vertex.
Dalam suatu disconnected graph memungkinkan terdapat dua atau lebih connected graph. Setiap
Gambar 7
Definisi 15
Directed graph adalah suatu graph G yang terdiri dari himpunan vertex V = {v 1, v2, , vp } dan
himpunan edge E = {e1, e2, , eq }dan suatu pemetaan f yang memetakan setiap edge onto terhadap
pasangan berurut dari vertex ( vi,vj ), yang mana vertex disajikan dengan titik dan edge disajikan
dengan sepotong garis berarah dari vi ke vj. Garis berarah yang menghubungkan dua vertex disebut
Definisi 16
Mixed graph adalah suatu graph G yang terdiri dari pasangan himpunan { V, E } yang mana V adalah
himpunan berhingga tak kosong yang anggotanya merupakan titik yang disebut vertex, dan E adalah
himpunan berhingga yang anggotanya merupakan potongan garis berarah dan tak berarah yang
Definisi 17
Undirected graph adalah suatu graph G yang terdiri dari pasangan himpunan { V,E } yang mana V
adalah himpunan berhingga tak kosong yang anggotanya disebut vertex dan E adalah himpunan
berhingga yang anggotanya disebut edge, yang merupakan potongan garis tak berarah yang
Definisi 18
Suatu graph G disebut weighted graph jika setiap edge dari graph G diberi bobot dengan suatu
bilangan real. Jika setiap edge nya dikaitkan dengan suatu simbol yang bukan bilangan real disebut
labeled graph.
( a ) Weighted Graph Gambar 10 ( b ) Labeled Graph
Definisi 19
Jika vi adalah suatu vertex dalam graph G, maka G v i merupakan suatu subgraph dari G yang
diperoleh dengan menghapus vertex vi beserta edge yang insident dengan vertex tersebut. Jika e j
adalah suatu edge dalam graph G, maka G e j merupakan suatu subgraph dari G yang diperoleh
( a ) Graph G
b ) Graph G v3 c ) Graph G e2
Gambar 11
https://dee83.wordpress.com/2008/08/16