Bagan pohon, atau sering disebut struktur data pohon (tree structure), adalah salah satu konsep fundamental dalam ilmu komputer dan matematika diskrit. Struktur ini sangat penting karena kemampuannya merepresentasikan data secara hierarkis, mirip seperti silsilah keluarga atau struktur organisasi perusahaan. Dalam konteks pemrograman dan algoritma, bagan pohon menawarkan cara yang efisien untuk menyimpan, mencari, dan mengelola data dalam skala besar.
Secara definisi formal, sebuah pohon adalah kumpulan simpul (node) yang terhubung oleh sisi (edge), di mana hanya ada satu jalur unik antara simpul mana pun, dan terdapat satu simpul khusus yang disebut akar (root). Berbeda dengan struktur data linier seperti array atau linked list, pohon memungkinkan navigasi yang lebih kompleks dan terstruktur ke bawah (dari akar ke daun) atau ke atas (dari daun ke akar).
Untuk memahami cara kerja bagan pohon, kita perlu mengenal beberapa terminologi kunci:
Representasi visual sangat membantu dalam memahami struktur pohon. Bagan pohon menunjukkan hubungan "satu ke banyak" secara eksplisit. Misalnya, dalam sistem berkas (file system) pada komputer, folder utama adalah akar, dan subfolder serta berkas di dalamnya adalah turunannya. Visualisasi ini memudahkan kita mengidentifikasi ketergantungan dan alur navigasi.
Representasi sederhana dari sebuah struktur data pohon.
Struktur pohon memiliki berbagai macam aplikasi penting. Salah satu yang paling umum adalah Pohon Pencarian Biner (Binary Search Tree/BST). BST adalah pohon di mana setiap simpul memiliki paling banyak dua anak, dan nilainya selalu lebih besar dari semua nilai di subpohon kiri, serta lebih kecil dari semua nilai di subpohon kanan. Ini memungkinkan operasi pencarian, penyisipan, dan penghapusan data dilakukan dengan kompleksitas waktu rata-rata O(log n), yang jauh lebih cepat daripada struktur linier O(n).
Selain BST, kita mengenal Heap (digunakan dalam algoritma antrian prioritas), Pohon AVL atau Red-Black Tree (yang merupakan BST yang seimbang untuk menjamin kinerja logaritmik), serta struktur yang lebih kompleks seperti Trie (digunakan untuk pencarian string) dan Forest (kumpulan dari beberapa pohon).
Bagan pohon tidak hanya terbatas pada ranah teori komputasi. Dalam praktik sehari-hari, kita melihat representasi pohon di mana-mana:
Kemampuan bagan pohon untuk memodelkan hubungan hierarkis secara alami menjadikannya alat yang sangat diperlukan dalam merancang sistem perangkat lunak modern yang kompleks. Pemahaman mendalam tentang cara menavigasi, memodifikasi, dan menyeimbangkan pohon adalah keterampilan esensial bagi setiap pengembang perangkat lunak.