MATKUL ALGORITMA
TREE
Dalam konteks yang lebih umum, sebuah "tree" atau "pohon" adalah struktur
data yang terdiri dari simpul atau node yang terhubung secara hierarkis. Setiap simpul
dalam pohon dapat memiliki beberapa simpul anak yang terhubung kepadanya, kecuali
simpul yang berada di puncak pohon, yang disebut sebagai "akar" atau "root". Simpul
anak dari suatu simpul disebut "anak" simpul tersebut, dan simpul yang memiliki
simpul yang sama sebagai induk disebut sebagai "saudara" atau "sibling".
Pohon secara visual dapat digambarkan dengan menggunakan diagram yang terdiri
dari simpul-simpul yang terhubung dengan garis. Garis-garis ini mewakili hubungan
hierarkis antara simpul-simpul dalam pohon.
Dalam ilmu komputer, struktur data pohon memiliki banyak kegunaan. Beberapa
contoh aplikasi dari struktur data pohon adalah:
Pohon Penelusuran (Search Trees): Pohon biner pencarian (binary search tree) adalah
salah satu contoh pohon yang digunakan untuk menyimpan dan mencari data dengan
efisien. Pada pohon biner pencarian, setiap simpul memiliki nilai tertentu dan simpul-
simpul dengan nilai lebih kecil terhubung ke simpul kiri, sedangkan simpul-simpul
dengan nilai lebih besar terhubung ke simpul kanan.
Pohon Keputusan (Decision Trees): Pohon keputusan adalah metode analisis prediktif
yang menggunakan struktur pohon untuk membuat keputusan atau prediksi
berdasarkan serangkaian aturan yang diterapkan pada data input.
Struktur File Sistem (File System Structure): Banyak sistem operasi menggunakan
struktur pohon untuk mengatur dan menyimpan file dan direktori. Pohon direktori
memungkinkan pengorganisasian hierarkis dari file dan direktori dalam sistem file
komputer.
Pohon Hingga (Parse Trees): Dalam teori bahasa formal, pohon hingga (parse tree)
digunakan untuk mewakili struktur sintaksis suatu kalimat atau ungkapan dalam
bahasa pemrograman. Pohon hingga ini membantu dalam menganalisis dan memahami
struktur sintaksis dari sebuah ungkapan atau kalimat.
1.2 Jenis-Jenis Tree
A. Pohon Biner (Binary Tree): Pohon biner adalah jenis pohon di mana setiap simpul memiliki
paling banyak dua simpul anak, yaitu simpul kiri dan simpul kanan. Pohon biner sering
digunakan dalam implementasi struktur data seperti pohon pencarian biner (binary search
tree) dan pohon ekspresi (expression tree).
B. Full Binary Tree Full binary tree, juga dikenal sebagai pohon biner lengkap, adalah jenis
khusus dari pohon biner di mana setiap simpul, kecuali simpul daun pada tingkat terbawah,
memiliki tepat dua anak atau tidak sama sekali. Dalam sebuah full binary tree, semua
tingkatan pohon terisi penuh, kecuali mungkin tingkat terakhir yang dapat memiliki simpul-
simpul daun yang terletak dari kiri ke kanan secara berurutan.
C. Complete Binary Tree Complete binary tree adalah jenis pohon biner di mana semua level
diisi sepenuhnya, kecuali mungkin level terakhir yang diisi dari kiri ke kanan secara
berurutan. Dalam complete binary tree, setiap simpul memiliki dua anak kecuali pada level
terakhir, dimana simpul-simpul terletak dari kiri ke kanan secara berurutan.
D. Skewed Binary Tree Skewed binary tree, atau juga dikenal sebagai unbalanced binary tree,
adalah jenis pohon biner di mana semua simpul hanya memiliki anak di satu sisi (kiri atau
kanan), sedangkan anak di sisi yang lain tidak ada atau hanya ada satu simpul anak. Skewed
binary tree tidak seimbang karena ketinggian pohon pada salah satu sisi menjadi jauh lebih
besar daripada sisi yang lain.
1. Simpul Akar (Root Node): Ini adalah simpul teratas dalam sebuah pohon yang tidak memiliki
simpul induk. Semua simpul lain dalam pohon berasal dari simpul akar.
2. Simpul Anak (Child Node): Simpul anak adalah simpul yang langsung berasal dari simpul
tertentu. Setiap simpul dapat memiliki satu atau lebih simpul anak.
3. Simpul Induk (Parent Node): Simpul induk adalah simpul yang langsung menghasilkan
simpul tertentu. Dalam pohon, setiap simpul, kecuali simpul akar, memiliki satu simpul induk.
4. Simpul Daun (Leaf Node): Simpul daun, juga dikenal sebagai simpul terminal, adalah simpul
yang tidak memiliki simpul anak. Mereka terletak di level terbawah pohon dan tidak memiliki
anak yang berasal dari mereka.
5. Simpul Saudara (Sibling Node): Simpul saudara adalah simpul-simpul yang memiliki simpul
induk yang sama. Dalam pohon, simpul-simpul saudara berada pada tingkat yang sama dan
memiliki simpul induk yang sama.
6. Simpul Keturunan (Descendant Node): Simpul keturunan adalah semua simpul yang berasal
dari simpul tertentu, termasuk simpul anak, cucu, dan seterusnya.
7. Simpul Ayah (Ancestor Node): Simpul ayah adalah semua simpul yang menjadi induk dari
simpul tertentu, termasuk simpul induk, kakek, dan seterusnya.
8. Simpul Internal (Internal Node): Simpul internal adalah simpul yang memiliki minimal satu
anak. Mereka bukan simpul daun dan terletak di antara simpul akar dan simpul daun.
9. Simpul Level (Level Node): Simpul level adalah semua simpul yang berada pada tingkat
tertentu dalam pohon. Misalnya, simpul-simpul pada tingkat 1 adalah simpul level 1, simpul-
simpul pada tingkat 2 adalah simpul level 2, dan seterusnya.
10. Simpul Termanipulasi (Manipulated Node): Simpul termanipulasi adalah simpul yang diubah
atau dipindahkan selama operasi manipulasi pohon, seperti penyisipan, penghapusan, atau
rotasi.
1.4 Konsep Dasar Tree
Bagian awal dari pohon keputusan ini adalah titik akar (root), sedangkan setiap cabang
dari pohon keputusan merupakan pembagian berdasarkan hasil uji, dan titik akhir (leaf)
merupakan pembagian kelas yang dihasilkan.
class BinarySearchTree{
private:
struct tree_node{
tree_node* left;
tree_node* right;
int data;
};
tree_node* root;
public:
BinarySearchTree(){
root = NULL;
}
void BinarySearchTree::print_preorder(){
preorder(root);
}
int main(){
BinarySearchTree b;
int ch,tmp;
while(1){
cout<<endl<<endl;
cout<<" Binary Search Tree Operations "<<endl;
cout<<" ----------------------------- "<<endl;
cout<<" 1. Insertion/Creation "<<endl;
cout<<" 2. Pre-Order Traversal "<<endl;
cout<<" 3. Exit "<<endl;
cout<<" Enter your choice : ";
cin>>ch;
switch(ch){
case 1 : cout<<" Enter Number to be inserted : ";
cin>>tmp;
b.insert(tmp);
break;
case 2 : cout<<endl;
cout<<" Pre-Order Traversal "<<endl;
cout<<" -------------------"<<endl;
b.print_preorder();
break;
case 3 :
return 0;
}}}
Daftar Pusataka
Setiawati, Devi. Ichsan Taufik., Wildan Budiawan Z. 2016. Klasifikasi Terjemahan Ayat Al-Quran
Tentang Ilmu Sains Menggunakan Algoritma Decision Tree Berbasis Mobile. Bandung:
Universitas Islam Negeri Sunan Gunung Djati Bandung.
Ramadhani, Dwitha Fajri dan Ika Damayanti. 2016. Laporan Praktikum XII. Malang: Universitas
Negeri Malang.
Mengenal Algoritma Tree (Pohon). https://bundet.com/. 22 September 2020. 22 Juni 2023.
https://bundet.com/d/682-mengenal-algoritma-tree-pohon.
Nasrullah, Asmaul Husnah. 2021. Implementasi Algoritma Decision Tree Untuk Klasifikasi Produk
Laris. Gorontalo: Universitas AL Asyariah Mandar