Struktur Data Graph: Pengertian, Jenis, dan Kegunaannya
Struktur Data Graph: Pengertian, Jenis, dan Kegunaannya
Oleh Trivusi Diperbarui: 16 September 2022 1 komentar
Struktur data menyediakan cara dalam menyimpan data agar dapat dikelola dengan mudah, ditangani secara efektif, serta tertata dengan baik.
Adanya berbagai jenis struktur data bertujuan untuk mengelola beberapa jenis data yang berbeda. Biasanya ada data yang perlu penanganan khusus yang tidak dapat disimpan dalam format sederhana.
Kita sebagai seorang yang bergelut di bidang IT dituntut agar memahami berbagai jenis struktur data agar dapat memilih struktur data yang tepat sesuai dengan kasus yang dihadapi.
Nah, di kesempatan ini, kita akan belajar salah satu struktur data yang tak kalah penting, yaitu graph.
Pengertian Graph
Graph adalah jenis struktur data umum yang susunan datanya tidak berdekatan satu sama lain (non-linier). Graph terdiri dari kumpulan simpul berhingga untuk menyimpan data dan antara dua buah simpul terdapat hubungan saling keterkaitan.
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.
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.
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.
Karakteristik Graph
Graph memiliki beberapa karakteristik sebagai berikut:
Jarak maksimum dari sebuah simpul ke semua simpul lainnya dianggap sebagai eksentrisitas dari simpul tersebut.
Titik yang memiliki eksentrisitas minimum dianggap sebagai titik pusat dari graph.
Nilai eksentrisitas minimum dari semua simpul dianggap sebagai jari-jari dari graph terhubung.
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
Kelebihan Graph
Keunggulan dari struktur data graph adalah sbb:
Dengan menggunakan graph kita dapat dengan mudah menemukan jalur terpendek dan tetangga dari node
Graph digunakan untuk mengimplementasikan algoritma seperti DFS dan BFS.
Graph membantu dalam mengatur data.
Karena strukturnya yang non-linier, membantu dalam memahami masalah yang kompleks dan visualisasinya.
Kekurangan Graph
Adapun kekurangan dari struktur data graph di antaranya
Graph menggunakan banyak pointer yang bisa rumit untuk ditangani.
Memiliki kompleksitas memori yang besar.
Jika graph direpresentasikan dengan adjacency matrix maka edge tidak memungkinkan untuk sejajar dan operasi perkalian graph juga sulit dilakukan.
Penutup
Demikianlah penjelasan lengkap mengenai struktur data graph. Semoga bermanfaat.
Apabila suka dengan artikel seperti ini, Anda bisa mengunjungi rubrik Data Structure atau membaca artikel lainnya mengenai "Struktur Data Tree".
Komentar
Posting Komentar