SlideShare a Scribd company logo
Pohon Biner 
Algoritma dan 
Struktur Data 
Kuliahkita - Edwin Lunando
Pohon Biner 
Binary Tree adalah struktur data 
yang maksimal memiliki 2 cabang 
(kiri | kanan) 
Meski tidak seimbang, asalkan 
maksimal cabang pada tree adalah 2, 
tetap dikatakan pohon biner.
Sifat Pohon Biner 
Binary mungkin kosong atau terdiri dari sebuah akar dan 
dua anak dengan lebar maksimal 2 pada tiap levelnya, 
akan tetapi tidak memiliki batas kedalaman. 
Apabila sebuah pohon memiliki sub-tree pada salah satu 
sisi yang lebih banyak maka pohon tersebut disebut pohon 
condong - kiri atau kanan (skewed tree)
Contoh Struktur Pohon Biner 
left item right 
left item right left item right 
left item right left item right left item 
item 
Root 
Node 
Leaf / 
Node tanpa cabang
Contoh Penggunaan 
Pohon ekspresi matematika: (3 + 4 x 5) 
+ 
3 x 
4 5
TDA Pohon Biner 
{ Deklarasi Type } 
type node < info : infotype, 
left : address, 
right : address > 
type BinTree : address 
type Elmtnode < info : infotype, 
Next : address> 
type ListofNode : address { list linier yang elemennya Elmtnode }
Penjelasan TDA Pohon Biner 
Pohon biner memiliki konsep yang mirip dengan senarai 
atau list. 
Perbedaannya, pada list hanya dihubungkan tepat satu 
buah simpul sedangkan pohon biner menghubungkan dua 
buah simpul yaitu left dan right. 
Jika pohon biasa, maka simpul yang dihubungkan dapat 
berjumlah lebih dari dua.
Penjelasan TDA Pohon Biner - 2 
Simpul pada pohon biner terdapat info yang menyimpan 
informasi dengan tipe tertentu seperti list. 
Selain itu juga terdapat right dan left, yang menyimpan 
alamat dari simpul berikutnya. Dengan begitu sebuah 
simpul dapat terhubung dengan simpul. 
Terdapat juga sebuah parent yang menunjuk alamat dari 
induk simpulnya. Dengan parent, simpul dapat menelusuri 
ke dua arah yaitu ke anaknya dan induknya.
TDA Pohon Biner - Primitif 
{ Inisialisasi } 
procedure MakeTree (input Akar:infotype, input/output P: BinTree, L: 
BinTree, R:BinTree) 
{ I.S. sembarang } 
{ F.S. Menghasilkan sebuah pohon P } 
{Menghasilkan sebuah pohon biner P dari A, L dan R , jika alokasi 
berhasil} 
{Menghasilkan pohon P yang kosong (Nil) jika alokasi gagal } 
{ PRIMITIF } 
{ Selektor } 
function GetAkar (P: BinTree) → infotype 
{ Mengirimkan nilai Akar pohon biner P } 
function GetLeft (P: BinTree) → BinTree 
{ Mengirimkan Anak Kiri pohon biner P } 
function GetRight (P: BinTree) → BinTree 
{ Mengirimkan Anak Kanan pohon biner P }
TDA Pohon Biner - Operasi 
{ Search } 
function Pencarian (P: BinTree,X:infotype) → boolean 
{ Mengirimkan true jika ada node dari P yang bernilai X } 
{ fungsi lain }
Contoh Kode C++ 
#include <iostream> 
using namespace std; 
typedef char Infotype; // Infotype didefinisikan sebagai alias dari tipe karakter 
typedef struct tElmtTree *address; 
typedef struct tElmtTree { 
Infotype Info; // Info adalah informasi dari sebuah simpul pohon bertipe Infotype yang 
terdefinisi 
address Left; // Cabang kiri dari sebuah pohon bertipe alamat menuju ke sebuah simpul kiri 
address Right; // Cabang kanan juga memilikit tipe alamat menuju sebuah simpul 
address Parent; // Parent adalah alamat dari sebuah simpul yang posisinya di atas dirinya 
} ElmtTree; // Semua ini dibungkus dalam sebuah tipe dan merupakan definisi dari simpul 
#define Info(P) (P)->Info 
#define Left(P) (P)->Left 
#define Right(P) (P)->Right 
#define Parent(P) (P)->Parent
Contoh Kode C++ - Lanjutan 
... 
/* Pembuatan simpul baru */ 
ElmtTree buatSimpul(Infotype x) { 
ElmtTree elem; // definisikan ElmtList sebagai simpul 
elem.Info = x; // isi informasi pada simpul 
elem.Left = NULL; // alamat left dan right baru adalah kosong atau NULL 
elem.Right = NULL; // alamat next dari simpul yang baru adalah kosong atau NULL 
elem.Parent = NULL; // alamat next dari simpul yang baru adalah kosong atau NULL 
return elem; 
} 
...
Contoh Kode C++ - Lanjutan 
… 
/* Pembuatan dan inisialisasi pohon baru */ 
void MakeTree (Infotype akar, Tree *P, Tree L, Tree R) { 
*P = (address) malloc(sizeof(ElmtTree)); // definisikan pohon 
if (*P != NULL) { // jika berhasil, inisialisasikan 
Info(*P) = akar; // masukkan nilai dari akar 
Parent(*P) = NULL; // Pohon baru tidak memiliki induk karena dia adalah akar 
Left(*P) = L; // Jika terdapat upa-pohon sebagai anak di sisi kiri 
Right(*P) = R; // Jika terdapat upa-pohon sebagai anak di sisi kanan 
} 
} 
…
Contoh Kode C++ - Lanjutan 
… 
int main(){ 
ElmtTree akar = buatSimpul('X'); 
ElmtTree node1 = buatSimpul('A'); 
ElmtTree node2 = buatSimpul('B'); 
Tree T1,T2,T3; 
// Inisialisasi instan 
T2 = &node2; // menghasilkan null pada anak kiri dan kanan 
T3 = &node3; 
// Inisialisasi Lengkapnya dengan 
MakeTree('A', &T2, NULL, NULL); 
MakeTree('B', &T2, NULL, NULL); 
MakeTree('Z', &T1, T2, T3); 
cout << T1->Left->Info; 
return 0; 
}
Contoh Pencarian Pohon Biner 
Terdapat tree sebagai 
seperti pada gambar di 
samping. 
Kita akan mencari nilai 
apakah terdapat nilai 8 pada 
pohon. 
13 
8 18 
3 10 
9 11 
30
Contoh Pencarian Pohon Biner 
1. Lihat elemen pertama (13), apakah 9. 
Karena elemen pertama > 9, maka kita ke 
kiri. 
2. Lihat elemen ke-2 yang dibandingkan (8). 
Karena elemen kedua bukan 9 dan < 9, 
maka ke kanan. 
3. Lihat Elemen ke-3 yang dibandingkan 
(10). Karena elemen ketiga bukan 9 dan > 
9, maka ke kiri 
4. Lihat Elemen ke-4 (9). Karena tidak ada 
childnya, akan langsung mengembalikan 
false jika tidak ditemukan. Karena 9 = 9, 
maka kembalikan true 
13 
8 18 
3 10 
9 11 
30
Pencarian Pohon Biner 
Pencarian terhadap binary tree dilakukan secara rekursif. 
Berikut adalah pseudocodenya. 
function pencarianBinaryTree(key, node) 
/* Jika elemen pada node atau key = nilai yang dicari -> sebagai basis */ 
if node = Null or node.key = key then 
return node 
else if key < node.key then 
return pencarianBinaryTree(key, node.left) 
else 
return pencarianBinaryTree(key, node.right) 
end if
Pencarian Pohon Biner 
Berikut contoh implementasi sederhana dalam fungsi C++ 
node search(int key, node *leaf) { 
if(leaf != NULL) { 
if(key == leaf->Info) 
return leaf; 
if(key < leaf->Info) 
return search(key, leaf->Left); 
else 
return search(key, leaf->Right); 
} 
else return NULL; 
}

More Related Content

What's hot

4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
Kelinci Coklat
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
Ratzman III
 
Bab 12-kode-huffman
Bab 12-kode-huffmanBab 12-kode-huffman
Bab 12-kode-huffman
Hendriyawan Achmad
 
Bab 6 adder
Bab 6 adderBab 6 adder
Bab 6 adder
personal
 
Normalisasi data - Basis Data
Normalisasi data - Basis DataNormalisasi data - Basis Data
Normalisasi data - Basis Data
Ayu_lestari
 
Queue
Queue Queue
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
BAIDILAH Baidilah
 
Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
KuliahKita
 
Pertemuan 10
Pertemuan 10Pertemuan 10
Pertemuan 10
Muhamad Edi.S
 
Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3
said zulhelmi
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
Siti Khotijah
 
Database minimarket-Garnis Q
Database minimarket-Garnis QDatabase minimarket-Garnis Q
Database minimarket-Garnis Q
G Nis
 
Program Input dan output data matrik
Program  Input dan output  data matrikProgram  Input dan output  data matrik
Program Input dan output data matrik
Simon Patabang
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
Zaldy Eka Putra
 
HALF AND FULL SUBTRACTOR
HALF AND FULL SUBTRACTOR HALF AND FULL SUBTRACTOR
HALF AND FULL SUBTRACTOR
Delmaqo Delmaqo
 
Matematika diskrit tree
Matematika diskrit  treeMatematika diskrit  tree
Matematika diskrit tree
Siti Khotijah
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
ahmad haidaroh
 
Erd dan contoh kasus
Erd dan contoh kasusErd dan contoh kasus
Erd dan contoh kasus
haniputriheryanti26
 
Rangkaian Adder
Rangkaian AdderRangkaian Adder
Rangkaian Adder
Iskandar Tambunan
 
Kecerdasan Buatan (AI)
Kecerdasan Buatan (AI)Kecerdasan Buatan (AI)
Kecerdasan Buatan (AI)
Farichah Riha
 

What's hot (20)

4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
 
Bab 12-kode-huffman
Bab 12-kode-huffmanBab 12-kode-huffman
Bab 12-kode-huffman
 
Bab 6 adder
Bab 6 adderBab 6 adder
Bab 6 adder
 
Normalisasi data - Basis Data
Normalisasi data - Basis DataNormalisasi data - Basis Data
Normalisasi data - Basis Data
 
Queue
Queue Queue
Queue
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 
Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
 
Pertemuan 10
Pertemuan 10Pertemuan 10
Pertemuan 10
 
Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Database minimarket-Garnis Q
Database minimarket-Garnis QDatabase minimarket-Garnis Q
Database minimarket-Garnis Q
 
Program Input dan output data matrik
Program  Input dan output  data matrikProgram  Input dan output  data matrik
Program Input dan output data matrik
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
HALF AND FULL SUBTRACTOR
HALF AND FULL SUBTRACTOR HALF AND FULL SUBTRACTOR
HALF AND FULL SUBTRACTOR
 
Matematika diskrit tree
Matematika diskrit  treeMatematika diskrit  tree
Matematika diskrit tree
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
 
Erd dan contoh kasus
Erd dan contoh kasusErd dan contoh kasus
Erd dan contoh kasus
 
Rangkaian Adder
Rangkaian AdderRangkaian Adder
Rangkaian Adder
 
Kecerdasan Buatan (AI)
Kecerdasan Buatan (AI)Kecerdasan Buatan (AI)
Kecerdasan Buatan (AI)
 

Similar to Algoritma dan Struktur Data - pohon biner

Algoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon BinerAlgoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon Biner
KuliahKita
 
Algoritma dan Struktur Data - List
Algoritma dan Struktur Data - ListAlgoritma dan Struktur Data - List
Algoritma dan Struktur Data - List
KuliahKita
 
Algoritma dan Struktur Data - list
Algoritma dan Struktur Data - listAlgoritma dan Struktur Data - list
Algoritma dan Struktur Data - list
Georgius Rinaldo
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
Noval C. Kesuma
 
Algoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian binerAlgoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian biner
Georgius Rinaldo
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
Citra Kapindo
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122
BintangWijaya5
 
Algoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary SearchAlgoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary Search
KuliahKita
 
Bab 9 tree
Bab 9 treeBab 9 tree
Bab 9 tree
arii_manroe
 
Biner
BinerBiner
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Setia Juli Irzal Ismail
 
Queue dan tree
Queue dan treeQueue dan tree
Queue dan tree
radar radius
 
Struktur affif
Struktur affifStruktur affif
Struktur affif
Sejahtera Affif
 
Pertemuan 9 ok
Pertemuan 9 okPertemuan 9 ok
Pertemuan 9 ok
eli priyatna laidan
 
Tugas kelompok mi d3_sore
Tugas kelompok mi d3_soreTugas kelompok mi d3_sore
Tugas kelompok mi d3_sore
tio_arkarna
 
Array statis if
Array statis ifArray statis if
Array statis if
ahmadmaurits
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 

Similar to Algoritma dan Struktur Data - pohon biner (20)

Algoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon BinerAlgoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon Biner
 
Tistrukdat10
Tistrukdat10Tistrukdat10
Tistrukdat10
 
Bab x tree (pohon)
Bab x   tree (pohon)Bab x   tree (pohon)
Bab x tree (pohon)
 
Algoritma dan Struktur Data - List
Algoritma dan Struktur Data - ListAlgoritma dan Struktur Data - List
Algoritma dan Struktur Data - List
 
Algoritma dan Struktur Data - list
Algoritma dan Struktur Data - listAlgoritma dan Struktur Data - list
Algoritma dan Struktur Data - list
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
 
Algoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian binerAlgoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian biner
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122
 
Algoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary SearchAlgoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary Search
 
Bab 9 tree
Bab 9 treeBab 9 tree
Bab 9 tree
 
Biner
BinerBiner
Biner
 
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
 
Queue dan tree
Queue dan treeQueue dan tree
Queue dan tree
 
8
88
8
 
Struktur affif
Struktur affifStruktur affif
Struktur affif
 
Pertemuan 9 ok
Pertemuan 9 okPertemuan 9 ok
Pertemuan 9 ok
 
Tugas kelompok mi d3_sore
Tugas kelompok mi d3_soreTugas kelompok mi d3_sore
Tugas kelompok mi d3_sore
 
Array statis if
Array statis ifArray statis if
Array statis if
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 

More from Georgius Rinaldo

Algoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methodsAlgoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methods
Georgius Rinaldo
 
Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur Data
Georgius Rinaldo
 
Algoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructorAlgoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructor
Georgius Rinaldo
 
Algoritma dan Struktur Data - object
Algoritma dan Struktur Data - objectAlgoritma dan Struktur Data - object
Algoritma dan Struktur Data - object
Georgius Rinaldo
 
Algoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adtAlgoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adt
Georgius Rinaldo
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
Georgius Rinaldo
 
Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
Georgius Rinaldo
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
Georgius Rinaldo
 
Algoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertionAlgoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertion
Georgius Rinaldo
 
Algoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selectionAlgoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selection
Georgius Rinaldo
 
Algoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan MergeAlgoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan Merge
Georgius Rinaldo
 
Algoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubbleAlgoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubble
Georgius Rinaldo
 
Algoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursiAlgoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursi
Georgius Rinaldo
 
Algoritma dan Struktur Data - set
Algoritma dan Struktur Data - setAlgoritma dan Struktur Data - set
Algoritma dan Struktur Data - set
Georgius Rinaldo
 
Algoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - LarikAlgoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - Larik
Georgius Rinaldo
 
Algoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi fileAlgoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi file
Georgius Rinaldo
 
Algoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compoundAlgoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compound
Georgius Rinaldo
 
Algoritma dan Struktur Data - fungsi dan prosedur c++
Algoritma dan Struktur Data -  fungsi dan prosedur c++Algoritma dan Struktur Data -  fungsi dan prosedur c++
Algoritma dan Struktur Data - fungsi dan prosedur c++
Georgius Rinaldo
 
Algoritma dan Struktur Data - loop pada c++
Algoritma dan Struktur Data -  loop pada c++Algoritma dan Struktur Data -  loop pada c++
Algoritma dan Struktur Data - loop pada c++
Georgius Rinaldo
 
Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++
Georgius Rinaldo
 

More from Georgius Rinaldo (20)

Algoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methodsAlgoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methods
 
Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur Data
 
Algoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructorAlgoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructor
 
Algoritma dan Struktur Data - object
Algoritma dan Struktur Data - objectAlgoritma dan Struktur Data - object
Algoritma dan Struktur Data - object
 
Algoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adtAlgoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adt
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
 
Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Algoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertionAlgoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertion
 
Algoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selectionAlgoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selection
 
Algoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan MergeAlgoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan Merge
 
Algoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubbleAlgoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubble
 
Algoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursiAlgoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursi
 
Algoritma dan Struktur Data - set
Algoritma dan Struktur Data - setAlgoritma dan Struktur Data - set
Algoritma dan Struktur Data - set
 
Algoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - LarikAlgoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - Larik
 
Algoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi fileAlgoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi file
 
Algoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compoundAlgoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compound
 
Algoritma dan Struktur Data - fungsi dan prosedur c++
Algoritma dan Struktur Data -  fungsi dan prosedur c++Algoritma dan Struktur Data -  fungsi dan prosedur c++
Algoritma dan Struktur Data - fungsi dan prosedur c++
 
Algoritma dan Struktur Data - loop pada c++
Algoritma dan Struktur Data -  loop pada c++Algoritma dan Struktur Data -  loop pada c++
Algoritma dan Struktur Data - loop pada c++
 
Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++
 

Recently uploaded

Perencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalanPerencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalan
MarvinPatrick1
 
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdfPROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
afifsalim12
 
Sistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu indukSistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu induk
ssuser0b6eb8
 
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptxBAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
ssuser5e48eb
 
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdfDAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
benediktusmaksy
 
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
ymikhael4
 
Paparan Pengawasan Bangunan Gedung.pptx
Paparan  Pengawasan Bangunan Gedung.pptxPaparan  Pengawasan Bangunan Gedung.pptx
Paparan Pengawasan Bangunan Gedung.pptx
RifkiAbrar2
 
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdfANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
narayafiryal8
 
PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV  PLNPROYEK PEMBANGUNAN TRANSMISI 150 KV  PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
tejakusuma17
 

Recently uploaded (9)

Perencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalanPerencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalan
 
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdfPROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
 
Sistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu indukSistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu induk
 
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptxBAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
 
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdfDAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
 
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
 
Paparan Pengawasan Bangunan Gedung.pptx
Paparan  Pengawasan Bangunan Gedung.pptxPaparan  Pengawasan Bangunan Gedung.pptx
Paparan Pengawasan Bangunan Gedung.pptx
 
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdfANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
 
PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV  PLNPROYEK PEMBANGUNAN TRANSMISI 150 KV  PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
 

Algoritma dan Struktur Data - pohon biner

  • 1. Pohon Biner Algoritma dan Struktur Data Kuliahkita - Edwin Lunando
  • 2. Pohon Biner Binary Tree adalah struktur data yang maksimal memiliki 2 cabang (kiri | kanan) Meski tidak seimbang, asalkan maksimal cabang pada tree adalah 2, tetap dikatakan pohon biner.
  • 3. Sifat Pohon Biner Binary mungkin kosong atau terdiri dari sebuah akar dan dua anak dengan lebar maksimal 2 pada tiap levelnya, akan tetapi tidak memiliki batas kedalaman. Apabila sebuah pohon memiliki sub-tree pada salah satu sisi yang lebih banyak maka pohon tersebut disebut pohon condong - kiri atau kanan (skewed tree)
  • 4. Contoh Struktur Pohon Biner left item right left item right left item right left item right left item right left item item Root Node Leaf / Node tanpa cabang
  • 5. Contoh Penggunaan Pohon ekspresi matematika: (3 + 4 x 5) + 3 x 4 5
  • 6. TDA Pohon Biner { Deklarasi Type } type node < info : infotype, left : address, right : address > type BinTree : address type Elmtnode < info : infotype, Next : address> type ListofNode : address { list linier yang elemennya Elmtnode }
  • 7. Penjelasan TDA Pohon Biner Pohon biner memiliki konsep yang mirip dengan senarai atau list. Perbedaannya, pada list hanya dihubungkan tepat satu buah simpul sedangkan pohon biner menghubungkan dua buah simpul yaitu left dan right. Jika pohon biasa, maka simpul yang dihubungkan dapat berjumlah lebih dari dua.
  • 8. Penjelasan TDA Pohon Biner - 2 Simpul pada pohon biner terdapat info yang menyimpan informasi dengan tipe tertentu seperti list. Selain itu juga terdapat right dan left, yang menyimpan alamat dari simpul berikutnya. Dengan begitu sebuah simpul dapat terhubung dengan simpul. Terdapat juga sebuah parent yang menunjuk alamat dari induk simpulnya. Dengan parent, simpul dapat menelusuri ke dua arah yaitu ke anaknya dan induknya.
  • 9. TDA Pohon Biner - Primitif { Inisialisasi } procedure MakeTree (input Akar:infotype, input/output P: BinTree, L: BinTree, R:BinTree) { I.S. sembarang } { F.S. Menghasilkan sebuah pohon P } {Menghasilkan sebuah pohon biner P dari A, L dan R , jika alokasi berhasil} {Menghasilkan pohon P yang kosong (Nil) jika alokasi gagal } { PRIMITIF } { Selektor } function GetAkar (P: BinTree) → infotype { Mengirimkan nilai Akar pohon biner P } function GetLeft (P: BinTree) → BinTree { Mengirimkan Anak Kiri pohon biner P } function GetRight (P: BinTree) → BinTree { Mengirimkan Anak Kanan pohon biner P }
  • 10. TDA Pohon Biner - Operasi { Search } function Pencarian (P: BinTree,X:infotype) → boolean { Mengirimkan true jika ada node dari P yang bernilai X } { fungsi lain }
  • 11. Contoh Kode C++ #include <iostream> using namespace std; typedef char Infotype; // Infotype didefinisikan sebagai alias dari tipe karakter typedef struct tElmtTree *address; typedef struct tElmtTree { Infotype Info; // Info adalah informasi dari sebuah simpul pohon bertipe Infotype yang terdefinisi address Left; // Cabang kiri dari sebuah pohon bertipe alamat menuju ke sebuah simpul kiri address Right; // Cabang kanan juga memilikit tipe alamat menuju sebuah simpul address Parent; // Parent adalah alamat dari sebuah simpul yang posisinya di atas dirinya } ElmtTree; // Semua ini dibungkus dalam sebuah tipe dan merupakan definisi dari simpul #define Info(P) (P)->Info #define Left(P) (P)->Left #define Right(P) (P)->Right #define Parent(P) (P)->Parent
  • 12. Contoh Kode C++ - Lanjutan ... /* Pembuatan simpul baru */ ElmtTree buatSimpul(Infotype x) { ElmtTree elem; // definisikan ElmtList sebagai simpul elem.Info = x; // isi informasi pada simpul elem.Left = NULL; // alamat left dan right baru adalah kosong atau NULL elem.Right = NULL; // alamat next dari simpul yang baru adalah kosong atau NULL elem.Parent = NULL; // alamat next dari simpul yang baru adalah kosong atau NULL return elem; } ...
  • 13. Contoh Kode C++ - Lanjutan … /* Pembuatan dan inisialisasi pohon baru */ void MakeTree (Infotype akar, Tree *P, Tree L, Tree R) { *P = (address) malloc(sizeof(ElmtTree)); // definisikan pohon if (*P != NULL) { // jika berhasil, inisialisasikan Info(*P) = akar; // masukkan nilai dari akar Parent(*P) = NULL; // Pohon baru tidak memiliki induk karena dia adalah akar Left(*P) = L; // Jika terdapat upa-pohon sebagai anak di sisi kiri Right(*P) = R; // Jika terdapat upa-pohon sebagai anak di sisi kanan } } …
  • 14. Contoh Kode C++ - Lanjutan … int main(){ ElmtTree akar = buatSimpul('X'); ElmtTree node1 = buatSimpul('A'); ElmtTree node2 = buatSimpul('B'); Tree T1,T2,T3; // Inisialisasi instan T2 = &node2; // menghasilkan null pada anak kiri dan kanan T3 = &node3; // Inisialisasi Lengkapnya dengan MakeTree('A', &T2, NULL, NULL); MakeTree('B', &T2, NULL, NULL); MakeTree('Z', &T1, T2, T3); cout << T1->Left->Info; return 0; }
  • 15. Contoh Pencarian Pohon Biner Terdapat tree sebagai seperti pada gambar di samping. Kita akan mencari nilai apakah terdapat nilai 8 pada pohon. 13 8 18 3 10 9 11 30
  • 16. Contoh Pencarian Pohon Biner 1. Lihat elemen pertama (13), apakah 9. Karena elemen pertama > 9, maka kita ke kiri. 2. Lihat elemen ke-2 yang dibandingkan (8). Karena elemen kedua bukan 9 dan < 9, maka ke kanan. 3. Lihat Elemen ke-3 yang dibandingkan (10). Karena elemen ketiga bukan 9 dan > 9, maka ke kiri 4. Lihat Elemen ke-4 (9). Karena tidak ada childnya, akan langsung mengembalikan false jika tidak ditemukan. Karena 9 = 9, maka kembalikan true 13 8 18 3 10 9 11 30
  • 17. Pencarian Pohon Biner Pencarian terhadap binary tree dilakukan secara rekursif. Berikut adalah pseudocodenya. function pencarianBinaryTree(key, node) /* Jika elemen pada node atau key = nilai yang dicari -> sebagai basis */ if node = Null or node.key = key then return node else if key < node.key then return pencarianBinaryTree(key, node.left) else return pencarianBinaryTree(key, node.right) end if
  • 18. Pencarian Pohon Biner Berikut contoh implementasi sederhana dalam fungsi C++ node search(int key, node *leaf) { if(leaf != NULL) { if(key == leaf->Info) return leaf; if(key < leaf->Info) return search(key, leaf->Left); else return search(key, leaf->Right); } else return NULL; }