GRAPH DALAM BAHASA PEMROGRAMAN KOMPUTER
Untuk Penjelasan lebih jelasnya secara poin pentingnya adalah sebagai berikut :
1. Simpul (Node):
Simpul pada graph disebut dengan verteks (V), sedangkan sisi
yang menghubungkan antar verteks disebut edge (E). Pasangan (x,y) disebut
sebagai edge, yang menyatakan bahwa simpul x terhubung ke simpul y.
Dalam graf sosial, simpul dapat mewakili pengguna media sosial. Dalam graf jalan, simpul bisa menjadi persimpangan atau kota.
2. Tepi (Edge):
Tepi adalah koneksi atau hubungan antara dua simpul dalam graf.
Contoh: Jika simpul adalah pengguna media sosial, tepi dapat mewakili koneksi pertemanan antar pengguna. Dalam graf jalan, tepi dapat menggambarkan jalan yang menghubungkan dua tempat.
3. Graf Berarah dan Tidak Berarah:
Graf berarah memiliki arah pada tepi, artinya koneksi antara dua simpul memiliki orientasi. Graf tidak berarah tidak memiliki arah spesifik pada tepi.
Contoh: Dalam graf sosial yang berarah, A berteman dengan B tidak sama dengan B berteman dengan A. Dalam graf jalan tidak berarah, jalan dari kota A ke kota B sama dengan dari kota B ke kota A.
4. Graf Berbobot dan Tidak Berbobot:
Definisi: Graf berbobot memiliki nilai terkait dengan tepi, sementara graf tidak berbobot tidak memiliki nilai tertentu.
Contoh: Dalam graf berbobot, tepi dapat memiliki bobot yang mewakili jarak, waktu, atau biaya antara simpul-simpul. Dalam graf tidak berbobot, tepi hanya menunjukkan adanya koneksi tanpa nilai tambahan.
5. Siklus (Cycle) dan Graf Acyclic:
Definisi: Siklus dalam graf adalah rangkaian tepi yang membentuk suatu lingkaran. Graf acyclic tidak memiliki siklus.
Contoh: Jika Anda dapat bergerak dari simpul A melalui beberapa tepi dan kembali ke A, graf tersebut memiliki siklus. Graf acyclic tidak memiliki kemungkinan untuk kembali ke simpul awal.
6. Contoh Penggunaan Graf:
Sosial Media: Graf digunakan untuk mewakili jaringan pertemanan di platform sosial.
Jaringan Transportasi: Graf dapat menggambarkan hubungan jalan, rel kereta, atau penerbangan antar lokasi.
Sirkuit Elektronik: Dalam teknologi, graf digunakan untuk merepresentasikan sirkuit elektronik.
Jenis-Jenis Graph
Graph dapat dibedakan berdasarkan arah jelajahnya dan ada tidaknya label bobot pada relasinya.
Berdasarkan arah jelajahnya graph dibagi menjadi Undirected
graph dan Directed graph.
- Undirected Graph
Pada undirected graph, simpul-simpulnya terhubung dengan
edge yang sifatnya dua arah. Misalnya kita punya simpul 1 dan 2 yang saling
terhubung, kita bisa menjelajah dari simpul 1 ke simpul 2, begitu juga
sebaliknya.
- Directed Graph
Kebalikan dari undirected graph, pada graph jenis ini
simpul-simpulnya terhubung oleh edge yang hanya bisa melakukan jelajah satu
arah pada simpul yang ditunjuk. Sebagai contoh jika ada simpul A yang terhubung
ke simpul B, namun arah panahnya menuju simpul B, maka kita hanya bisa
melakukan jelajah (traversing) dari simpul A ke simpul B, dan tidak berlaku
sebaliknya.
Selain arah jelajahnya, graph dapat dibagi menjadi 2
berdasarkan ada tidaknya label bobot pada koneksinya, yaitu weighted graph dan
unweighted graph.- Weighted Graph
Weighted graph adalah jenis graph yang cabangnya diberi
label bobot berupa bilangan numerik. Pemberian label bobot pada edge biasanya
digunakan untuk memudahkan algoritma dalam menyelesaikan masalah.
Contoh implementasinya misalkan kita ingin menyelesaikan
masalah dalam mencari rute terpendek dari lokasi A ke lokasi D, namun kita juga
dituntut untuk mempertimbangkan kepadatan lalu lintas, panjang jalan dll. Untuk
masalah seperti ini, kita bisa mengasosiasikan sebuah edge e dengan bobot w(e)
berupa bilangan ril.
- Unweighted Graph
Berbeda dengan jenis sebelumnya, unweighted graph tidak
memiliki properti bobot pada koneksinya. Graph ini hanya mempertimbangkan
apakah dua node saling terhubung atau tidak.
Fungsi dan Kegunaan Graph
Fungsi dan kegunaan graph di antaranya:
- Graph
digunakan untuk merepresentasikan aliran komputasi.
- Digunakan
dalam pemodelan grafik.
- Graph
dipakai pada sistem operasi untuk alokasi sumber daya.
- Google
maps menggunakan graph untuk menemukan rute terpendek.
- Graph
digunakan dalam sistem penerbangan untuk optimasi rute yang efektif.
- Pada
state-transition diagram, graph digunakan untuk mewakili state dan
transisinya.
- Di
sirkuit, graph dapat digunakan untuk mewakili titik sirkuit sebagai node
dan kabel sebagai edge.
- Graph
digunakan dalam memecahkan teka-teki dengan hanya satu solusi, seperti
labirin.
- Graph
digunakan dalam jaringan komputer untuk aplikasi Peer to peer (P2P).
- Umumnya
graph dalam bentuk DAG (Directed acyclic graph) digunakan sebagai
alternatif blockchain untuk cryptocurrency. Misalnya crypto seperti IOTA
Karakteristik Graph
Graph memiliki beberapa karakteristik Diantaranya sebagai berikut:- Jarak maksimum dari sebuah simpul ke semua simpul lainnya dianggap sebagai eksentritas dari simpul tersebut.
- Titik yang memiliki eksentritas minimum dianggap sebagai titik pusat dari graph
- Nilai eksentritas minimum dari semua sipul dianggap sebagai jari-jari dari graph terhubung.
Kelebihan Graph
Kelebihan dari graph diantaranya adalah sebagai berikut :- Dengan menggunakan graph kita dapat dengan mudah menemukan jalur terpendek dari tetangga dari node
- Graph digunakan untuk mengimplementasikan algoritma seperti DFS dan BFS
- Graph membantu dalam mengatur data.
- Dengan Struktur Graph yang non-linier, graph membantu dalam memahami masalah yang kompleks dan visualisasinya.
Kekurangan Graph
Adapun kekurangan dari graph diantaranya :- Graph menggunakan banyak pointer yang bisa rumit untuk ditangani
- Memliki kompleksitas memori yang besar.
- Jika graph direpresentasikan dengan adjacency matrix maka edge tidak memungkinkan untuk sejajar dan operasi perkalian graph juga sullit dilakukan.
Pada undirected graph, simpul-simpulnya terhubung dengan
edge yang sifatnya dua arah. Misalnya kita punya simpul 1 dan 2 yang saling
terhubung, kita bisa menjelajah dari simpul 1 ke simpul 2, begitu juga
sebaliknya.
- Directed Graph
- Weighted Graph
Weighted graph adalah jenis graph yang cabangnya diberi label bobot berupa bilangan numerik. Pemberian label bobot pada edge biasanya digunakan untuk memudahkan algoritma dalam menyelesaikan masalah.
Contoh implementasinya misalkan kita ingin menyelesaikan
masalah dalam mencari rute terpendek dari lokasi A ke lokasi D, namun kita juga
dituntut untuk mempertimbangkan kepadatan lalu lintas, panjang jalan dll. Untuk
masalah seperti ini, kita bisa mengasosiasikan sebuah edge e dengan bobot w(e)
berupa bilangan ril.
- Unweighted Graph
Berbeda dengan jenis sebelumnya, unweighted graph tidak memiliki properti bobot pada koneksinya. Graph ini hanya mempertimbangkan apakah dua node saling terhubung atau tidak.
Fungsi dan Kegunaan Graph
Fungsi dan kegunaan graph di antaranya:
- Graph
digunakan untuk merepresentasikan aliran komputasi.
- Digunakan
dalam pemodelan grafik.
- Graph
dipakai pada sistem operasi untuk alokasi sumber daya.
- Google
maps menggunakan graph untuk menemukan rute terpendek.
- Graph
digunakan dalam sistem penerbangan untuk optimasi rute yang efektif.
- Pada
state-transition diagram, graph digunakan untuk mewakili state dan
transisinya.
- Di
sirkuit, graph dapat digunakan untuk mewakili titik sirkuit sebagai node
dan kabel sebagai edge.
- Graph
digunakan dalam memecahkan teka-teki dengan hanya satu solusi, seperti
labirin.
- Graph
digunakan dalam jaringan komputer untuk aplikasi Peer to peer (P2P).
- Umumnya
graph dalam bentuk DAG (Directed acyclic graph) digunakan sebagai
alternatif blockchain untuk cryptocurrency. Misalnya crypto seperti IOTA
Karakteristik Graph
- Jarak maksimum dari sebuah simpul ke semua simpul lainnya dianggap sebagai eksentritas dari simpul tersebut.
- Titik yang memiliki eksentritas minimum dianggap sebagai titik pusat dari graph
- Nilai eksentritas minimum dari semua sipul dianggap sebagai jari-jari dari graph terhubung.
Kelebihan Graph
- Dengan menggunakan graph kita dapat dengan mudah menemukan jalur terpendek dari tetangga dari node
- Graph digunakan untuk mengimplementasikan algoritma seperti DFS dan BFS
- Graph membantu dalam mengatur data.
- Dengan Struktur Graph yang non-linier, graph membantu dalam memahami masalah yang kompleks dan visualisasinya.
Kekurangan Graph
- Graph menggunakan banyak pointer yang bisa rumit untuk ditangani
- Memliki kompleksitas memori yang besar.
- Jika graph direpresentasikan dengan adjacency matrix maka edge tidak memungkinkan untuk sejajar dan operasi perkalian graph juga sullit dilakukan.
Comments
Post a Comment