Struktur Data Grafik dan Algorithms (Contoh)

โšก Ringkasan Cerdas

Struktur Data Graf adalah kumpulan simpul dan sisi non-linier di mana setiap sisi menghubungkan sepasang simpul. Graf memodelkan jaringan dunia nyata seperti peta, koneksi sosial, dan halaman web, serta mendukung banyak algoritma yang ampuh.

  • ๐Ÿ“ Struktur: Graf G = (V, E) memasangkan himpunan simpul (node) dengan himpunan sisi (link) di antara simpul-simpul tersebut.
  • ๐Ÿ”ค Terminologi: Istilah-istilah kunci meliputi simpul (vertex), sisi (edge), derajat (degree), derajat masuk (indegree), derajat keluar (outdegree), lingkaran diri (self-loop), dan kedekatan (adjacency).
  • ๏ธ Perwakilan: Graf disimpan menggunakan matriks kedekatan atau daftar kedekatan, masing-masing dengan pertimbangan ruang yang berbeda.
  • ๐Ÿงญ jenis: Graf dikategorikan berdasarkan strukturnya sebagai graf berarah, tak berarah, berbobot, siklik, asiklik, lengkap, bipartit, dan masih banyak lagi.
  • ๐ŸŒ aplikasi: Google Perutean peta, jejaring sosial, peringkat web, dan ketergantungan sumber daya semuanya bergantung pada grafik.

Struktur Data Grafik dan Algorithms

Apa itu Grafik dalam Struktur Data?

Graf adalah struktur data non-linier yang terdiri dari simpul dan sisi, di mana simpul berisi informasi atau data, dan sisi berfungsi sebagai penghubung antara sepasang simpul.

Metode ini digunakan untuk memecahkan masalah dunia nyata seperti menemukan rute terbaik ke lokasi tujuan dan rute untuk telekomunikasi serta jejaring sosial. Pengguna dianggap sebagai simpul dalam Graf, dan kabel adalah sisi yang menghubungkan pengguna.

Jika sisi direpresentasikan sebagai E dan simpul direpresentasikan sebagai V, maka graf G dapat ditulis sebagai himpunan simpul dan sisi, seperti G (V, E).

Contoh Grafik dalam Struktur Data

Berikut adalah contoh sederhana dari struktur data grafik:

Contoh Grafik dalam Struktur Data

Ini adalah graf tak berarah sederhana (salah satu jenis graf). Himpunan simpulnya adalah: {A, B, C, D, E, F}. Dua simpul membentuk sebuah sisi. Misalnya, A dan B dihubungkan dengan sebuah sisi. Namun, A dan F tidak dihubungkan dengan sisi apa pun.

Terminologi Grafik dalam Struktur Data

Berikut adalah beberapa istilah penting yang digunakan dalam struktur data graf:

IstilahDeskripsi
PuncakSetiap elemen data disebut simpul atau node. Pada gambar di atas, A, B, C, D & E adalah simpul-simpulnya.
Tepi (Busur)Hubungan yang menghubungkan dua simpul atau titik disebut sisi (busur). Sisi memiliki dua ujung dan direpresentasikan sebagai (titik awal, titik akhir).
Tepi Tidak TerarahIni adalah tepi dua arah.
Tepi TerarahIni adalah tepi satu arah.
Tepi TertimbangSisi yang memiliki nilai.
DerajatDalam sebuah graf, jumlah sisi yang terhubung ke suatu simpul disebut derajat.
derajat dalamJumlah total sisi masuk yang terhubung ke sebuah titik.
Derajat keluarJumlah total sisi keluar yang terhubung ke sebuah titik.
Putaran mandiriSuatu sisi disebut self-loop jika kedua titik ujungnya berimpit.
KedekatanTitik-titik sudut dikatakan bersebelahan jika terdapat sisi yang menghubungkan keduanya.

Jenis Grafik dalam Struktur Data

Berikut adalah daftar yang paling umum jenis grafik dalam struktur data:

  • Grafik Sutradara
  • Grafik Tidak Berarah
  • Grafik Tertimbang
  • Grafik Dua Arah
  • Grafik Tak Terbatas
  • Grafik Nol
  • Grafik Sepele
  • Multi Grafik
  • Grafik Lengkap
  • Grafik Terhubung
  • Grafik Siklik
  • Grafik Asiklik Terarah (DAG)
  • Grafik Siklus
  • Graf Bipartit
  • Grafik Euler
  • Grafik Hamilton

Bagaimana cara merepresentasikan graf dalam struktur data?

Graf umumnya disimpan dalam memori menggunakan salah satu dari dua representasi. Pilihan ini memengaruhi seberapa banyak memori yang digunakan graf dan seberapa cepat operasi umum dijalankan.

  • Matriks Kedekatan: Sebuah array dua dimensi V ร— V di mana sel [i][j] bernilai 1 (atau bobot tepi) jika terdapat tepi antara simpul i dan simpul j, dan 0 jika tidak. Array ini memungkinkan pencarian tepi O(1) tetapi menggunakan ruang O(Vยฒ), sehingga paling cocok untuk graf padat.
  • Daftar Kedekatan: Sebuah array berisi daftar di mana setiap simpul menyimpan daftar simpul tetangganya. Array ini menggunakan ruang O(V + E) dan efisien untuk graf jarang (sparse graph), itulah sebabnya sebagian besar graf di dunia nyata menggunakannya.

Anda dapat membaca lebih lanjut tentang hal ini di Daftar keterkaitan dan representasi matriks dari sebuah graf. tutorial.

Penerapan Struktur Data Grafik

Graf memiliki banyak kegunaan. Ada banyak algoritma yang menggunakan graf. Berikut beberapa aplikasi graf:

  • Google Aplikasi peta menggunakan grafik untuk menemukan titik persimpangan dua jalan dan menghitung jarak antara dua lokasi. Misalnya, Dijkstrauntuk menemukan jarak terpendek antara lokasi sumber dan tujuan.
  • Facebook menggunakan Graph untuk menemukan teman bersama antar pengguna. Algoritma yang digunakannya menganggap setiap pengguna sebagai simpul (node) dalam sebuah graph.
  • Untuk alokasi sumber daya, digunakan DAG (Directed Acyclic Graph). DAG memeriksa ketergantungan antar sumber daya.
  • The Google Mesin pencari menggunakan grafik untuk membuat peringkat situs web.
  • Sebuah petaping Perangkat ini menggunakan struktur data grafik.
  • A router dan protokolnya menggunakan Graph untuk mempelajari jalur ke tujuan.

Pertanyaan Umum Demo Slot

Jaringan Neural Graf (Graph Neural Networks) belajar dari data terstruktur graf untuk deteksi penipuan, rekomendasi, dan penemuan obat. Graf pengetahuan mendukung tanya jawab AI, dan kerangka kerja pembelajaran mendalam memodelkan setiap komputasi sebagai graf operasi.

Ya. Asisten AI seperti GitHub Copilot dapat menghasilkan implementasi BFS, DFS, Dijkstra, dan pengurutan topologi dari deskripsi biasa. Anda tetap harus menguji kasus-kasus ekstrem seperti node yang terputus, siklus, dan grafik kosong sebelum menggunakan kode tersebut.

Pohon adalah jenis graf khusus yang terhubung dan tidak memiliki siklus, dengan tepat satu jalur antara dua simpul mana pun. Graf lebih umum: ia dapat berisi siklus, bagian yang terputus, dan sisi berarah atau berbobot.

Dua metode penelusuran utama adalah Breadth-First Search (BFS), yang menjelajahi level demi level menggunakan antrian, dan Depth-First Search (DFS), yang menjelajahi sedalam mungkin menggunakan tumpukan atau rekursi sebelum kembali.tracraja.

Ringkaslah postingan ini dengan: