Anda di halaman 1dari 5

Fakultas Teknologi Komunikasi dan Informatika

DASAR PEMROGRAMAN
Modul 14 – BINARY SEARCH TREE
WINARSIH, S.Si., MMSI

2022

Universitas Nasional
Binary Search Tree
Binary Tree ini memiliki sifat dimana semua left child harus lebih kecil dari pada right child

dan parentnya. Semua right child juga harus lebih besar dari left child serta parentnya.

Binary search tree dibuat untuk mengatasi kelemahan pada binary tree biasa, yaitu kesulitan

dalam searching / pendarian node tertentu dalam binary tree. Pada dasarnya operasi dalam

Binary Search Tree sama dengan Binary Tree biasa, kecuali pada operasi insert, update, dan

delete.

Insert

Pada Binary Search Tree insert dilakukan setelah lokasi yang tepat ditemukan (lokasi tidak

ditentukan oleh user sendiri ).

Update

Update ini seperti yang ada pada Binary Tree biasa, namun di sini update akan berpengaruh

pada posisi node tersebut selanjutnya. Bila update mengakibatkan tree tersebut bukan

Binary Search Tree lagi, harus dilakukan perubahan pada tree dengan melakukan rotasi

supaya tetap menjadi Binary Search Tree.

Delete

Seperti halnya update, delete dalam Binary Search Tree juga turut mempengaruhi struktur

dari tree tersebut.

AVL Tree

AVL Tree adalah Binary Search Tree yang memiliki perbedaan tinggi/ level maksimal 1

antara subtree kiri dan subtree kanan. AVL Tree muncul untuk menyeimbangkan Binary

Search Tree. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan

disederhanakan. Selain AVL Tree, terdapat pula Height Balanced n Tree, yakni Binary

Search Tree yang memiliki perbedaan level antara subtree kiri dan subtree kanan maksimal

adalah n sehingga dengan kata lain AVL Tree adalah Height Balanced 1 Tree.

Untuk memudahkan dalam menyeimbangkan tree, digunakan simbol-simbol Bantu :

- (tanda minus) : digunakan apabila Subtree kiri lebih panjang dari Subtree kanan.

+ (tanda plus) : digunakan apabila Subtree kanan lebih panjang dari Subtree kiri.

0 (nol) : digunakan apabila Subtree kiri dan Subtree kanan mempunyai height yang sama.

2022 Dasar Pemrograman


1 Winarsih, S.Si., MMSI
Praktikum
#include <iostream>
#include <conio.h>
#include<stdio.h>
using namespace std;

int binary_s(int array[], int size, int elemen)


{
int awal = 0;
int akhir = size-1;
int nilaiTengah;
while (nilaiTengah<=size && awal<=akhir)
{
nilaiTengah = (awal+akhir)/2;
if (array[nilaiTengah]==elemen)
return 1;
else if (elemen<array[nilaiTengah])
akhir = nilaiTengah-1;
else
awal = nilaiTengah+1;
}
return 0;
}

int main()
{
int size=10;
int data[10]={2, 3, 5, 6, 12, 44, 56, 65, 73 ,81} ;
cout<<"Data Array"<<endl;
int i, cari, hasil;

for(i=0;i<size;i++)
cout<<data[i]<<" ";
cout<<endl<<"masukkan data yang ingin anda cari: ";cin>>cari;
hasil = binary_s(data, size, cari);
if (hasil==0)
cout<<"Nilai tidak ditemukan";
else
cout<<"Nilai ditemukan";
getch();
}

Hasil Running:

2022 Dasar Pemrograman


2 Winarsih, S.Si., MMSI
2022 Dasar Pemrograman
3 Winarsih, S.Si., MMSI
Daftar Pustaka
1. Handout Algoritma Pemrograman Dan Struktur Data Program Studi Sistem Informasi
UKDW
2. Antony Pranata, Algoritma dan Pemrograman, J & J Learning, Yogyakarta, 2000
3. Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika
Bandung, 2007.
4. Elvina S. Kom, MM, Modul Perkuliahan Universitas Mercu Buana
5. Suryadi H.S., Agus Sumin, Pengantar Algoritma dan Pemrograman Teknik Diagram
Alur dan Bahasa Basic Dasar, Gunadarma, 1993
6. M. Fachrurrozi, MODUL PRAKTIKUM “STRUKTUR DATA”, LABORATORIUM DASAR
KOMPUTER PROGRAM ILMU KOMPUTER UNIVERSITAS SRIWIJAYA 2006

2022 Dasar Pemrograman


4 Winarsih, S.Si., MMSI

Anda mungkin juga menyukai