Anda di halaman 1dari 9

LAPORAN

PRAKTIKUM STRUKTUR DATA

“ IMPLEMENTASI BINARY SEARCH ”


Tree
Tanggal 17 Juni 2015

Oleh :

Wasis Basuki

NIM. 5302414091

PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS NEGERI SEMARANG

2015
A. Tujuan Pratikum

 Untuk Memahami algoritma pemograman Implementasi Binary Search Tree


dalam bahasa C.
 Dapat Mengiplementasikan konsep tree dalam suatu progam.

B. Soal Pratikum

1. Buatlah progam untuk mencari,memilih dan mengurutkan nilai data yang


lebih kecil : (8,-4,21,10,3,-9,5,17,24) dengan menggunakan konsep BST
dalam pemograman bahasa C?

( gambar ilustrasi Tree )

C. Implementasi di Dalam Progam (Bahasa C)

#include <stdio.h>
#include <stdlib.h>

struct bstree{
int value;
struct bstree*left;
struct bstree*right;
};
typedef struct bstree node;
node*bstree_createnode(int value){
node*temp=(node*)malloc(sizeof(node));
temp->left=temp->right=NULL;
temp->value=value;
return temp;
}

void bstree_insert(node**tree,int value){


printf("\n Alamat of tree=%p inserting = %d\n",(*tree),value);
if (!(*tree)){
*tree=bstree_createnode(value);
return;
}

if (value < (*tree)->value){


printf("\n KuRang : ");
return bstree_insert(&((*tree)->left),value);

}
else if (value > (*tree)->value){
printf("\n Lebih Dari : ");
return bstree_insert(&((*tree)->right),value);

}}

void bstree_inorder(struct bstree*tree){


if (tree !=NULL){
bstree_inorder(tree->left);
printf(" %d",tree->value);
bstree_inorder(tree->right);}
}
int main(void){
printf(" PENCARIAN BINER POHON \n");
printf("--------------------------\n\n");
node* root=NULL;
bstree_insert(&root,8);
bstree_insert(&root,-4);
bstree_insert(&root,21);
bstree_insert(&root,10);
bstree_insert(&root,3);
bstree_insert(&root,-9);
bstree_insert(&root,5);
bstree_insert(&root,17);
bstree_insert(&root,24);

printf("\n\n dalam rangka traversall : ");


bstree_inorder(root);
printf("\n\n sukses Dan Berhasil di Proses\n\n");
return 0; }
D. Analisis & Pembahasan

 Analisis Hasil

1. Hasil program Implementasi Binary Search Tree .


1. Create Node
Create node merupakan tahap awal dari operasi membentuk sebuah tree
baru yang masih kosong.seperti gambar di bawah ini dimana yang di
maksud create adalah langkah awal (1) yang pada gambar di tandai
dengan angka 12. yang pertama kali akan berposisi sebagai root.

2. Insert In Binary Tree


Insert merupakan Operasi untuk menambahkan 1 elemen ke
dalam tree, berdasarkan posisi yang diinginkan, seperti yang ditunjukkan
oleh parameter Rel.
 Pre – Jika rel = ROOT maka Binary TREE harus Empty
 Jika rel <> ROOT maka TREE harus tidak EMPT Post – e akan
ditambah kedalam TREE pada posisi tergantung pada rel. Setelah
di insert posisi current akan pindah ke e.

aturan insert :
Anggap node yang di insert adalah key, key akan ditempatkan pada leaf.

a) jika leaf adalah 2-node, maka key dimasukan kedalam leaf sehingga leaf
tersebut menjadi 3-node.
b) jika leaf adalah 3-node, maka ambil nilai tengah dari A, B, dan key (A
adalah data-1 pada leaf, dan B adalah data-2 pada leaf) dan push nilai
tengah tersebut pada parentnya
c) jika pada saat aturan kedua parentnya bukanlah 2-node, melainkan 3-
node, tentukan kembali nilai tengah lalu push kembali ke parentnya
d) jika pada saat aturan ke 2 dan 3 tidak bisa dilakukan karena parent
sampai ke rootnya adalah 3-node, maka tentukan kembali nilai tengah,
kemudian nilai tengah tersebut akan dibuat root baru.
Untuk dapat memahami tentang konsep Insert Bst perhatikan gambar di
bawa ini :

3. In Order
Penelusuran terhadap Tree secara InOrder akan melewati setiap node
dalam Tree setelah melewati subtree kirinya dan sebelum melewati subtree
kanannya. Dengan melihat gambar 10 maka dapat dijelaskan bahwa
InOrder dari TREE T adalah sub-tree T1, dalam bentuk InOrder, diikuti
oleh Root n,di ikuti T2 dalam bentuk InOrder, sampai Tn..contoh prisip
kerja dari in order ,data :
Keterangan: InOrder : 7 + 5 * 6 ( INFIX )

+ = parent

7 ,* ,5 ,6= children

5,6= level 2

7,* = sibling

Dari gambar diatas sangat jelas,bahwa simbol + bertindak sebagai parent atau root dan
untuk 7 berada pada posisi left dan * pada posisi right .turun lagi dari * yang berada pada
posisi left adalah 5 dan yang berada pada posisi right adalah 6.

 Pembahasan Progam
Langkah 1 : Menuliskan script code struct yang berfungsi untuk mengemas
variable yang berada di dalamnya.(bstree left dan right).

Langkah 2 : Menuliskan script code yang berfungsi untuk pengurutan


penyimpanan data.

Langkah 3 : Menuliskan script code yang berfungsi untuk logika if else sesuai
dengan soal (kasus).

Langkah 4 : Menuliskan script code yang berfungsi menentukan letak nilai yang
berpatokan pada root.

Langkah 5 : Menuliskan script code yang berfungsi menampilkan keterangan


progam.

Langkah 6 : Menuliskan script code yang berfungsi untuk mengisikan nilai yang
di inginkan .

Langkah 7 : Menuliskan script code yang berfungsi untuk menampilkan hasil


program.
E. Kesimpulan

Tree merupakan salah satu bentuk struktur data tidak linear yang
menggambarkan hubungan yang bersifat hirarkis (hubungan one to many) antara
elemen-elemen. Dalam pembuatan konsep program langkah dasar awal yang perlu
dilakukan adalah create yaitu operasi membentuk sebuah tree baru yang masih
kosong. untuk menentukan letak nilai berdasarkan besar atau kecilnya sebuah nilai
menggunakan insert.Insert merupakan Operasi untuk menambahkan 1 elemen ke
dalam tree, berdasarkan posisi yang diinginkan jika nilai lebih besar root maka
nilai itu berada di sebelah kanan dan sebaliknya jika nilai lebih kecil dari pada
root maka akan berada di sebelah kiri.untuk menelusuri tiap node ada 3 cara salah
satunya in order yaitu dimana cara mengeksekusi tree di mulai dari bagian left
menuju ke root baru menuju ke bagian right.

Anda mungkin juga menyukai