Langsung ke konten utama

Graph

 

Graph


Pengertian

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.

Sebagai contoh, terdapat graph seperti berikut:



Graph di atas terdiri atas 4 buah verteks dan 4 pasang sisi atau edge. Dengan verteks disimbolkan sebagai V, edge dilambangkan E, dan graph disimbolkan G, ilustrasi di atas dapat ditulis dalam notasi berikut:

V = {0, 1, 2, 3}

E = {(0,1), (0,2), (0,3), (1,2)}
G = {V, E}

Manfaat

Graph banyak dimanfaatkan untuk menyelesaikan masalah dalam kehidupan nyata, dimana masalah tersebut perlu direpresentasikan atau diimajinasikan seperti sebuah jaringan. Contohnya adalah jejaring sosial (seperti Facebook, Instagram, LinkedIn, dkk)

Pengguna di Facebook dapat dimisalkan sebagai sebuah simpul atau verteks, sementara hubungan pertemanan antara pengguna tersebut dengan pengguna lain direpresentasikan sebagai edge. Tiap tiap verteks dapat berupa struktur yang mengandung informasi seperti id user, nama, gender, dll.

Tidak hanya data pengguna, data apapun yang ada di Facebook adalah sebuah simpul atau verteks.Termasuk foto, album, komentar, event, group, story, dll. 


Jenis-jenis Graph

1.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.

2.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.

3.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.


4.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.

Komentar

Postingan populer dari blog ini

POINTER

 POINTER Pengertian Pointer merupakan tipe data yang berisi alamat memori dari sebuah variabel, untuk lebih mudah memahami ini, Kita akan coba membahas terlebih dahulu bagaimana bahasa pemrograman lain menyimpan nilai dari sebuah variabel. Ketika kita akan mendeklarasikan sebuah variabel (misalkan variabel angka’), bahasa pemrograman akan menyiapkan sebuah tempat di memory komputer. Tempat ini memiliki alamat, yang berfungsi untuk menandai lokasi variabel tersebut. Cara Penggunaan Pointer Untuk dapat membuat pointer, kita harus menyesuaikan dengan variabel yang ingin kita akses Maksudnya seperti ini, Jika kita mendeklarasikan sebuah variabel ‘angka’ : Disini variabel ‘angka’ disiapkan untuk menampung tipe data integer.Disini variabel ‘angka’ Angka : integer disiapkan untuk menampung tipe data integer.Untuk bisa menampung alamat memori dari variabel ‘angka’ ini, kita harus membuat pointer yang juga di-set untuk menampung tipe data pointer integer. Berikut cara penulisannya pointer_a...

Queue

 QUEUE Pengertian Queue adalah salah satu struktur data yang sering digunakan dalam pemrograman. Queue merupakan antrian data yang hanya dapat diakses pada ujung depan atau ujung belakangnya. Data yang pertama kali dimasukkan ke dalam queue akan menjadi data yang pertama kali diambil atau dikeluarkan dari queue. Queue dapat diibaratkan seperti antrian orang yang menunggu untuk melakukan suatu tindakan. Karakteristik FIFO (First In First Out): Data yang pertama kali dimasukkan ke dalam queue akan menjadi data yang pertama kali diambil atau dikeluarkan dari queue. Enqueue: Menambahkan data ke dalam queue. Dequeue: Mengambil data dari queue. Front: Menunjukkan data yang berada pada ujung depan queue. Rear: Menunjukkan data yang berada pada ujung belakang queue. Queue sering digunakan dalam pemrograman untuk menyelesaikan masalah yang membutuhkan urutan data yang spesifik. Contoh penggunaan queue adalah dalam pengolahan data yang membutuhkan urutan waktu, seperti pengolahan data sensor...

Apa Itu Struktur Data

     Struktur Data Pengertian Struktur data adalah pengaturan data di dalam memori komputer. Struktur data adalah cara untuk menyimpan, mengambil, dan menyusun data dengan efisien di dalam komputer, Struktur data memungkinkan data yang ada di komputer lebih mudah diakses dan diperbarui. Apasih Manfaat Dan Fungsi Struktur Data? Manfaat Struktur Data adalah agar diperoleh sebuah pemograman lebih efisien,mudah,dan elegan.Dan supaya data yang disimpan lebih mudah/efisien dalam pengaksesan/pemrosesan data tersebut. Struktur data tidak hanya berfungsi sebagai penyusun data, tetapi juga memiliki peran penting dalam proses pengolahan, pengambilan, dan penyimpanan data. Struktur data bisa digunakan untuk mengelola database, melakukan kompres file, hingga mengolah data lainnya. Struktur data juga akan mempengaruhi ketepatan algoritma pemrograman. Macam-Macam Operasi Dalam Struktur Data 1.Record sebuah nilai yang berisi nilai-nilai lain, biasanya dengan banyak dan urutan nilai yang ...