Anda di halaman 1dari 6

LAPORAN PRAKTEK RESMI

TREE



















Disusun oleh:
Chris Febriyanto
201001017


Dosen pengampu:
Yosef Murya Kusuma Ardhana, S.T



JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014
BAB I
TEORI DASAR



A. Operasi Pada Pohon Biner
Operasi pada binary tree merupakan satu rangkaian proses yang dapat dibagi
menjadi beberapa bagian operasi (fungsi) seperti :

1. Inisialisasi.
2. Pembuatan sebuah node.
3. Pembuatan node akar.
4. Penambahan (insert) node baru ke dalam sebuah tree.
5. Penghapusan (delete) node dari sebuah tree.
6. Pembacaan atau penelusuran binary tree.
Pembagian ini bukan berdasarkan urutan proses, namun hanya berdasarkan fungsinya
yang berbeda. Sebelum proses di atas dapar dilakukan, tentunya segala sesuatu yang
diperlukan harus disiapkan terlebih dahulu, antara lain mendeklarasikan struktur node dan
semua pointer yang diperlukan sebagai berikut :
Listing program mendeklarasikan struktur Node:
Struct Node
{
struct Node *Left;
char INFO;
struct Node *Right;
Simpul *Root, *P, *Q, *R;
Char X;

Inisialisasi bila ditulis dalam sebuah fungsi.
Nama fungsi Inisialisasi
Void Inisialisasi(){
Root=NULL;
P=NULL;
}




Fungsi ini harus dilaksanakan sebelum operasi yang lain. Pointer root ketika
dideklarasikan isinya sudah ada, tapi nilainia tidak diketahui. Pointer root perlu diisi dengan
NULL karena pointer root ini akan dijadikan tanda. Bila isinya bukan NULL berarti tree
sudah ada, dimana node akar sedang ditunjuk oleh pointer root.














































BAB II
PENJELASAN PROGRAM


#include <iostream>
#include <conio.h>
#include <malloc.h>
using namespace std;

struct Node{
struct Node *Left; char INFO;
struct Node *Right;
};

typedef struct Node Simpul; Simpul *Root, *P;
char X;

void Inisialisasi()
{ Root=NULL; P=NULL;
}

void BuatSimpul(char X)
{

P=(Simpul*)malloc(sizeof(Simpul));
P->INFO=X;
P->Left=NULL;
P->Right=NULL;
}

void BuatAkar()
{ Root=P;
}

void Insert(int n, char X)
{
int S[20],Top,hasil;
int sisa,arah;
Simpul *Q;
Top=-1;
hasil=n;

while(hasil>1)
{
sisa=sisa%2;
Top++;
S[Top]=sisa;
hasil=hasil/2;
}
Q=Root;

while(Top>0)
{
arah=S[Top];
Top--;
if(arah==0){
Q=Q->Left;
}
else
{ Q=Q->Right;
}
}
arah=S[Top];
Top--;
if(arah==0){
Q->Left=P;
}
else
{
Q->Right=P;
}
}


void BacaUrutNomor()
{ int i,j;

Simpul *Q[129], *Current;
i=1;
j=1;
Q[i]=Root;
while (Q[i]!=NULL)
{
Current=Q[i];
cout<<Current->INFO;
if(Current->Left!=NULL)
{
j++; Q[j]=Current->Left;
}

if(Current->Right!=NULL)
{ j++; Q[j]=Current->Right;
}
i++;
}
}
int main()
{
int i,n;
char X;
int nom[20]={0,1,2,3,4,5,6,10,11,21};
char INFOx[20]="0ABCDEFJKU";
Inisialisasi();
X=INFOx[1];
BuatSimpul(X);

BuatAkar();
for(i=2;i<=9;i++)
{
n=nom[i];
X=INFOx[i];
BuatSimpul(X);
Insert(n,X);
}
BacaUrutNomor();
return 0;
}




Penjelasan program tree :

1. Tanda yang diawali dengan /* dan diakhiri */ adalah script untuk sebuah komentar
atau perintah /teks, namun jika program di run tidak akan dibaca oleh compiler, tidak
muncul di output.
2. #include adalah pengaruh preprocessor yang berfungsi untuk menginstruksikan
compiler.
3. <iostream> adalah penggunaan file inclusion pada standar C++ lama.
4. Using namespace adalah kita menggunakan namespace bernama std.
5. Int main( ) adalah fungsi utama dari sebuah kode bahasa C.

Anda mungkin juga menyukai