Struktur Data Tree dan Graph
5. Tree
Tree adalah struktur data non-linear dan berhierarki di mana
elemennya diatur dalam struktur seperti pohon. Pada Tree, node paling
atas disebut node akar (root). Setiap node berisi beberapa data dan
bisa berupa tipe data apa saja.
Tree terdiri dari node pusat, node struktural, dan sub-node yang
dihubungkan dengan edge (garis penghubung). Struktur data tree
memudahkan akses ke data karena sifatnya non-linear. Tree memiliki berbagai
istilah seperti node, root, edge, tinggi tree, derajat
tree, dan lainnya.

Ada beberapa istilah yang terdapat pada tipe Tree, di antaranya:
- Node (Simpul): Setiap elemen dalam tree.
- Edge (Sisi): Hubungan antara dua node, menunjukkan orang tua dan anak.
- Root (Akar): Simpul teratas dalam tree, tidak memiliki simpul induk.
- Parent (Induk): Node yang memiliki satu atau lebih anak.
- Child (Anak): Node yang terhubung ke simpul induk.
- Leaf (Daun): Node yang tidak memiliki anak.
- Subtree: Bagian dari tree yang terdiri dari node dan anak-anaknya.
- Siblings (Saudara ) : node yang asalnya dari parent node yang sama
Penerapan Tree di kehidupan sehari-hari:
- Membantu
dalam proses pengindeksan di database.
- Sebagai
alat pembelajaran mesin yang efisien, terutama dalam analisis keputusan,
karena strukturnya yang menyerupai diagram alur yang mempermudah pemahaman
data.
- Domain Name Server juga
mengandalkan struktur data Tree dalam operasinya.
- Situs jejaring sosial

6. Graph
Graph adalah struktur data non-linier yang terdiri
dari vertex (node) dan edge (sisi). Graph
terbentuk dari himpunan vertex dan himpunan edge yang menghubungkan sepasang
node.
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}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)
Struktur data ini digunakan untuk memecahkan masalah
pemrograman yang paling kompleks. Beberapa istilah yang ada pada Graph
seperti path, derajat, vertex bersebelahan,
komponen terhubung, dan lainnya.
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.
Pengguna dapat mengunggah foto. Ketika telah diunggah, foto akan menjadi bagian dari album. Foto juga dapat dikomentari oleh pengguna lain dan mereka dapat saling berbalas komentar.
Semuanya terhubung satu sama lain, baik dalam bentuk relasi one-to-many, many-to-one, atau many-to-many.
![]() |
| Sumber: programiz.com |
Penerapan Graph di kehidupan sehari-hari:
- Digunakan
pada Google Maps, di mana kota-kota diwakili sebagai simpul dan jalur yang
menghubungkan mereka sebagai tepi grafik.
- Jejaring
sosial juga merupakan contoh grafik dunia nyata, di mana setiap anggota
jaringan merupakan simpul, dan hubungan pertemanan mereka menjadi tepi
grafik.
- Digunakan
dalam studi molekul dalam bidang fisika dan kimia sebagai cara untuk
memahami hubungan antar atom dan ikatan kimia.
Kelebihan dan Kekurangan Struktur Data
Setelah mengetahui mulai dari pengertian, jenis, hingga
contoh, kamu juga perlu tahu apa kelebihan dan kekurangan dari mempelajari
struktur data.
Kelebihan
- Penyimpanan
data yang lebih baik dan efisien.
- Pemulihan
dan manipulasi data yang lebih cepat.
- Mempermudah
dalam merancang algoritma untuk masalah yang kompleks.
- Mempermudah
tugas pembaruan dan pemeliharaan data.
- Memberikan
pemahaman yang lebih jelas tentang hubungan antar data.
- Meningkatkan
kemampuan penggunaan ulang kode.
- Meningkatkan
kemampuan dalam memecahkan masalah.
- Mengurangi
penggunaan memori.
- Meningkatkan
keamanan data.
Kekurangan
- Peningkatan
beban komputasi dan penggunaan memori
- Kesulitan
dalam merancang dan mengimplementasikan struktur data kompleks
- Skalabilitas
dan fleksibilitas yang terbatas
- Kesulitan
dalam debugging dan pengujian
- Sulit
memodifikasi struktur data yang sudah ada
- Dibutuhkan
tenaga ahli untuk membuat dan memelihara aplikasi dengan banyak struktur
data, sehingga meningkatkan biaya
- Semakin
banyak struktur data yang digunakan, semakin sulit dipahami dan dikelola
- Beberapa
struktur data memberikan performa akses data yang lebih lambat
- Perlu
perencanaan dan pengujian yang matang agar struktur data bekerja dengan
baik


Komentar
Posting Komentar