Anda di halaman 1dari 12

LAPORAN RESMI

MATKUL ALGORITMA

TREE

Dosen Pengampu : Indyah Harmatami Santi,


S.Kom,M.Kom Disusun Oleh :

1. M Firza Khoirudin (22104410067)


2. M Farhan Hani P (22104410084)
3. Yohan Yogi Setiawan(22104410125)
4. Rizky Pratama (22104410126)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI
INFORMASI UNIVERSITAS ISLAM
BALITAR
1.1 Definisi 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.3 Jenis Node Pada Tree

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.

1.5 Sifat-sifat dasar dari tree


Misalkan G = (V,E) adalah graf tak berarah sederhana dan jumlah simpulnya n. maka semua
pernataan di bawah ini adalah ekivalen:
1. G adalah pohon
2. Setiap pasang simpul pada G terhubung dengan lintasan tunggal
3. G terhubung dan memiliki m = n -1 buah sisi
4. G tidak memiliki sirkuit dan penambahan suatu sisi pada graf akan membuat 1 sirkuit
5. G terhubung dan semua sisinya adalah jembatan
Contoh:

Tree, karena graf tersebut terhubung dan tidak memiliki sirkuit


Bukan tree, (dan bukan forest) karena mengandung sirkuit v3, v4,v5

Hutan, karena merupakan kumpulan pohon


1.6 Istilah dalam rooted tree
 Anak : simpul y dikatakan anak dari simpul x jika terdapat jalur dari x ke y
 Orangtua : simpul x dikatakan orang tua dari simpul y jika tedapat jalur dari x ke y
 Lintasan : lintasan sederhana tunggal (Simpul-Jalur-Simpul) simpul u ke simpul v
sedemikian hingga simpul u adalah leluhur dari simpul v.lintasan mempunyai Panjang yaitu
banyaknya jalur yang di lalui dalam lintasan
 Leluhur : simpul u adalah leluhur dari simpul v jika terdapat lintasan dari simpul u ke
simpul v
 Keturunan : simpul v dalah keturunan dari simpul u jika terdapat lintasan dari simpul u ke v
 Saudara kandung : simpul-simpul yang mempunyai orangtua yang sama
 Derajat : derajat simpul u adalah banyaknya anak pada simpul v, derajat pohon berakar
adalah derajat maksumum dari simpul simpulnya, sebuah simpul pada graf berbeda dengan
derajat simpul pada pohon
 Daun : simpul yang berderajat nol atau simpul yang tidak memiliki anak
 Cabang : simpul u disebut cabang jika simpul itu mempunyai anak
 Aras(level) : aras dari simpul u adalah Panjang lintasan dari akar ke simpul v. aras dari
akar ke simpul v
 Tinggi (kedalaman) : aras maksimum dari sebuah pohon berakar
1.7 Contoh Coding

Contoh coding binary tree:


#include <iostream>
using namespace std;

class BinarySearchTree{
private:
struct tree_node{
tree_node* left;
tree_node* right;
int data;
};

tree_node* root;
public:
BinarySearchTree(){
root = NULL;
}

bool isEmpty() const { return root==NULL; }


void print_preorder();
void preorder(tree_node*);
void insert(int);
};

// Smaller elements go left


// larger elements go right
void BinarySearchTree::insert(int d){
tree_node* t = new tree_node;
tree_node* parent;
t->data = d;
t->left = NULL;
t->right = NULL;
parent = NULL;
// is this a new tree?
if(isEmpty()) root = t;
else{
//Note: ALL insertions are as leaf nodes
tree_node* curr;
curr = root;
// Find the Node's parent
while(curr){
parent = curr;
if(t->data > curr->data)
curr = curr->right;
else
curr = curr->left;
}
if(t->data < parent->data)
parent->left = t;
else
parent->right = t;
}}

void BinarySearchTree::print_preorder(){
preorder(root);
}

void BinarySearchTree::preorder(tree_node* p){


if(p != NULL){
cout<<" "<<p->data<<" ";
if(p->left) preorder(p->left);
if(p->right) preorder(p->right);
}
else return;
}

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

Anda mungkin juga menyukai