GRAPH
Graph
adalah sekelompok simpul-simpul (nodes/vertices) V, dan sekelompok
sisi (edges) E yang menghubungkan sepasang simpul. Bayangkan simpul-simpul
tersebut sebagai lokasi-lokasi, maka himpunan dari simpul-simpul tersebut
adalah himpunan lokasi-lokasi yang ada. Dengan analogi ini, maka sisi
merepresentasikan jalan yang menghubungkan pasangan lokasi-lokasi tersebut.
Graf juga didefinisikan sebagai himpunan benda-benda yang disebut verteks (node) yang terhubung oleh sisi (atau edge ata u arc). biasanya graf digambarkan sebagai kumpulan titik-titik (melambangkan verteks) yang dihubungkan oleh garis-garis (melambangkan sisi).
contoh implementasi graf pada struktur data :
Graf juga didefinisikan sebagai himpunan benda-benda yang disebut verteks (node) yang terhubung oleh sisi (atau edge ata u arc). biasanya graf digambarkan sebagai kumpulan titik-titik (melambangkan verteks) yang dihubungkan oleh garis-garis (melambangkan sisi).
contoh implementasi graf pada struktur data :
1. Graf tak berarah (undirected graph)
Graf yang sisinya
tidak mempunyai orientasi arah disebut graf tak berarah. Pada graf
tak-berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak
diperhatikan. salah satu contoh graf tak berarah dimana
sisi-sisi yang menghubungkan antar simpul dalam graf tersebut tidak memiliki
orientasi arah.
2. Graf Berarah (directed graph)
Graf yang setiap
sisinya memiliki orientasi arah disebut sebagai graf berarah. Sisi berarah
dalam graf ini dapat dinamakan sebagai busur (arc). Lain halnya dengan
graf tak-berarah, urutan pasangan simpul disini sangat diperhatikan karena
dapat menyatakan hal yang berbeda. contoh dari graf berarah yang
memiliki sisi-sisi dengan orientasi arah (busur).
Digraph & Undigraph
Graph Berarah (directed graph atau
digraph): jika sisi-sisi pada graph, misalnya {x, y} hanya
berlaku pada arah-arah tertentu saja, yaitu dari x ke y tapi
tidak dari y ke x; verteks x disebut origin dan vertex y
disebut terminus dari sisi tersebut. Secara grafis maka penggambaran arah
sisi-sisi digraph dinyatakan dengan anak panah yang mengarah ke verteks
terminus, secara notasional sisi graph berarah ditulis sebagai vektor dengan (x,
y).
Graph Tak Berarah (undirected graph atau undigraph): setiap sisi {x, y} berlaku pada kedua arah: baik x ke y maupun y ke x. Secara grafis sisi pada undigraph tidak memiliki mata panah dan secara notasional menggunakan kurung kurawal.
Dalam masalah-masalah graph undigraph bisa dipandang sebagai suatu digraph dengan mengganti setiap sisi tak berarahnya dengan dua sisi untuk masing-masing arah yang berlawanan.
Selain itu, berdasarkan definisi ini maka struktur data linear maupun hirarkis adalah juga graph. Node-node pada struktur linear atupun hirarkis adalah verteks-verteks dalam pengertian graph dengan sisi-sisinya menyusun node-node tersebut secara linear atau hirarkis. Sementara kita telah ketahui bahwa struktur data linear adalah juga tree dengan pencabangan pada setiap node hanya satu atau tidak ada. Linear 1-way linked list adalah digraph, linear 2-way linked list bisa disebut undigraph.
Graph Tak Berarah (undirected graph atau undigraph): setiap sisi {x, y} berlaku pada kedua arah: baik x ke y maupun y ke x. Secara grafis sisi pada undigraph tidak memiliki mata panah dan secara notasional menggunakan kurung kurawal.
Dalam masalah-masalah graph undigraph bisa dipandang sebagai suatu digraph dengan mengganti setiap sisi tak berarahnya dengan dua sisi untuk masing-masing arah yang berlawanan.
Selain itu, berdasarkan definisi ini maka struktur data linear maupun hirarkis adalah juga graph. Node-node pada struktur linear atupun hirarkis adalah verteks-verteks dalam pengertian graph dengan sisi-sisinya menyusun node-node tersebut secara linear atau hirarkis. Sementara kita telah ketahui bahwa struktur data linear adalah juga tree dengan pencabangan pada setiap node hanya satu atau tidak ada. Linear 1-way linked list adalah digraph, linear 2-way linked list bisa disebut undigraph.
Aspek Algoritmis
Walau secara konseptual struktur linear
adalah subset dari tree dan demikian pula tree adalah subset dari graph, dalam
aplikasinya perlu dibedakan cara penanganan struktur-struktur tersebut untuk
mencapai efisiensi algoritmis. Algoritma-algoritma untuk graph secara umum
terlalu mahal apabila digunakan pada struktur hirarkis (tree), apalagi pada
struktur linear. Jadi apabila masalah yang dihadapi pada dasarnya hanya
merupakan masalah dengan struktur data hirarkis saja maka cukup lah kita
menggunakan representasi dan algoritma-algoritma tree.
Konektivitas pada Undigraph
- Adjacency: Dua verteks x dan y yang berlainan disebut berhubungan langsung (adjacent) jika terdapat sisi {x, y} dalam E.
- Path: Sederetan verteks yang mana setiap verteks adjacent dengan verteks yang tepat berada disebelahnya.
- Panjang dari path: jumlah sisi yang dilalui path.
- Siklus: suatu path dengan panjang lebih dari satu yang dimulai dan berakhir pada suatu verteks yang sama.
- Siklus sederhana: dalan undigraph, siklus yang terbentuk pada tiga atau lebih verteks-verteks yang berlainan yang mana tidak ada verteks yang dikunjungi lebih dari satu kali kecuali verteks awal/akhir.
- Dua verteks x dan y yang berbeda dalam suatu undigraph disebut berkoneksi (connected) apabila jika terdapat path yang menghubungkannya.
- Himpunan bagian verteks S disebut terkoneksi (connected) apabila dari setiap verteks x dalam S terdapat path ke setiap verteks y (y bukan x) dalam S.
- Suatu komponen terkoneksi (connected components) adalah subgraph (bagian dari graph) yang berisikan satu himpunan bagian verteks yang berkoneksi.
- Suatu undigraph dapat terbagi atas beberapa komponen yang terkoneksi; jika terdapat lebih dari satu komponen terkoneksi maka tidak terdapat path dari suatu verteks dalam satu komponen verteks di komponen lainnya.
- Pohon bebas (free tree): suatu undigraph yang hanya terdapat satu komponen terkoneksi serta tidak memiliki siklus sederhana.
Konektivitas pada Digraph
Terminologi di atas berlaku juga pada
Digraph kecuali dalam digraph harus dikaitkan dengan arah tertentu karena pada
arah yang sebaliknya belum tentu terdefinisi.
- Adjacency ke / dari: Jika terdapat sisi (x,y) maka dalam digraph dikatakan bahwa x "adjacent ke" y atau y "adjacent dari" x. Demikian pula jika terdapat path dari x ke y maka belum tentu ada path dari y ke x Jadi dalam digraph keterkoneksian didefinisikan lebih lanjut lagi sebagai berikut.
- Terkoneksi dengan kuat: Himpunan bagian verteks S dikatakan terkoneksi dengan kuat (strongly connected) bila setiap pasangan verteks berbeda x dan y dalam S, x berkoneksi dengan y dan y berkoneksi dengan x (dpl., ada path dari x ke y dan sebaliknya dari y ke x).
- Terkoneksi dengan Lemah: Himpunan bagian verteks S dikatakan terkoneksi dengan lemah (weakly connected) bila setiap pasangan verteks berbeda x dan y dalam S, salah satu: x berkoneksi dengan y (atau y berkoneksi dengan x) dan tidak kebalikan arahnya (dpl., hanya terdefinisi satu path: dari x ke y atau sebaliknya dari y ke x).
Himpunan Keterhubungan Langsung
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 verteks yang adjacent ke x.
Suksesor dari verteks x (ditulis Succ(x)) adalah himpunan semua verteks
yang adjacent dari x; yaitu adjacency set di atas. .
Degree
- Degree dari suatu verteks x dalam undigraph adalah jumlah sisi di mana di salah satu ujungnya terdapat x.
- Indegree dari suatu verteks x dalam digraph adalah jumlah dari predesesor x.
- Outdegree dari suatu verteks x dalam digraph adalah jumlah dari suksesor x.
Graph berbobot (weighted graph)
Apabila sisi-sisi pada
graph disertai juga dengan suatu (atau beberapa) harga yang menyatakan secara
unik kondisi keterhubungan tersebut maka graph tersebut disebut graph berbobot.
Biasanya dalam masalah-masalah graph bobot tersebut merupakan "biaya"
dari keterhubungan ybs. Pengertian "biaya" ini menggeneralisasikan
banyak aspek: biaya ekonomis dari proses/aktifitas, jarak geografis/tempuh,
waktu tempuh, tingkat kesulitan, dan lain sebagainya. Dalam beberapa masalah
lain bisa juga bobot tersebut memiliki pengertian "laba" yang berarti
kebalikan dari "biaya" di atas. Dalam pembahasan algoritma-algoritma
graph nanti pengertian bobot akan menggunakan pengertian biaya sehingga apabila
diaplikasikan pada masalah yang berpengertian laba maka kuantitas-kuantitas
terkait adalah kebalikannnya. Misalnya mencari jarak tempuh minimum digantikan
dengan mencari laba maksimum.
Download disini
Dosen Pengampuh
Download disini
Dosen Pengampuh
Nama : M.Ropianto
Kunjungi Juga :
STT Ibnu Sina Batam
NIDN
: 102867804
Status
: Dosen Tetap YAPISTA / STT Ibnu Sina
Pengampuh
Mata kuliah
: Struktur Data
Kunjungi Juga :
STT Ibnu Sina Batam
Terimakasih atas informasinya
BalasHapusIzin copas gan..
BalasHapusLumayan
BalasHapusIzin copas masbro
BalasHapusterima kasih atas info nya...
BalasHapusGood gan
BalasHapus