Anda di halaman 1dari 12

LAPORAN PRAKTIKUM RESMI

BAB TREE
PENGANTAR PEMROGAMAN BAHASA C++








Disusun oleh :
Triyono
201301067
Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom




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


Tree Merupakan struktur data non-linier. Struktur data dalam bentuk pohon (tree) dapat
diartikan sebuah struktur data secara bentuk menyerupai pohon, yang terdiri dari serangkaian
simpul (node) yang saling berhubungan.Simpul-simpul atau node tersebut di hubungkan oleh
sebuah vektor.Setiap simpul bisa memiliki 0 atau lebih node anak (child).Sebuah node yg memiliki
anak di sebut node induk(parent).

Sebuah node anak hanya memiliki satu node induk.Sesuai konvensi ilmu komputer , tree
bertumbuh kebawah , dengan demikian node anak akan digambarkan berada dibawah node
induknya.Node yang berada dipangkal tree disebut node akar (root), sedangkan node yg berada
paling ujung pada piramida tree disebut node daun (leaf).


Node G adalah node induk dari H, I, J.
Node H, I, J adalah node anak dari G.













A

G

C

D

B
F

E

J

I

H


Akar (root) adalah simpul yang tidak memiliki superordinat.Untuk pohon yg dicontohkan
diatas, maka root adalah node A.Daun (leaf) adalah simpul yang tidak memiliki subordinat.
Untuk pohon yang dicontohkan di atas, maka leaf adalah node D, E, F, H, I, J.

1. Superordinat dan Subordinat



Node C merupakan superordinat node F dan node G.
Node F dan G mempunyai superordinat yang sama, yaitu node C.
Node B mempunyai subordinat, yaitu node F (left child) dan G (right child).
Node F dan node G merupakan subordinat dari simpul C.


















A

G

C

D

B

F

E

J

I

H

Level 0

Level 1

Level 2


Level 3

2. Tingkat (Level) dan Kedalaman (Depth)


a) Tingkat Level
Root dinyatakan berada pada level 0 (namun ada juga di beberapa buku literatur lain
menyebutkan level 1).
b) Kedalaman (Depth)
Tree yang mempunyai posisi paling atas atau level teratas .
c) Derajat (Degree)
Degree pada sebuah node menyatakan jumlah subordinat dari node tersebut.
Contohnya:
- Node A : degree = 3
- Node B : degree = 1
- Node C : degree = 2
- Node D : degree = 0

















A

G

C

D

B

F

E

J

I

H

Level 0

Level 1

Level 2


Level 3

Kedalaman (Depth = ) 3


BAB II
PENJELASAN PROGRAM
1. Latihan Praktikum
Listing Progambab tree (pohon)

/*
* tree_semester3.cpp
*
* Created on: Sep 17, 2014
* Author: Andi Raptor
*/

#include<iostream>
#include<conio.h>
using namespace std;
struct Node{
int data;
Node *kiri;
Node *kanan;
};
void tambah(Node **root,int databaru){
if((*root)==NULL){
Node *baru;
baru=new Node;
baru->data=databaru;
baru->kiri=NULL;
baru->kanan=NULL;
(*root)=baru;
(*root)->kiri=NULL;
(*root)->kanan=NULL;
cout<<"Data Bertambah!";
}
else if(databaru<(*root)->data)
tambah(&(*root)->kiri,databaru);
else if(databaru>(*root)->data)
tambah(&(*root)->kanan,databaru);
else if(databaru==(*root)->data)
cout<<"Data Sudah Ada!";
}
void preorder(Node *root){
if(root!=NULL){
cout<<" "<< root->data;
preorder(root->kiri);
preorder(root->kanan);
}
}
void inorder(Node *root)
{
if (root!=NULL){
inorder(root->kiri);
cout<<" "<<root ->data;
inorder(root->kanan);
}
}
void postorder(Node *root){
if(root!=NULL)
{
postorder(root->kiri);
postorder(root->kanan);
cout<<" "<<root ->data;
}
}
int main()
{
int pil,c;
Node *pohon,*t;
pohon=NULL;
do
{
int data;
cout<<"\nMENU\n";
cout<<"1.Tambah\n";
cout<<"2.LihatPre-Order\n";
cout<<"3.Lihat In-Order\n";
cout<<"4.Lihat Post-Order\n";
cout<<"5.Keluar\n";
cout<<"pilihan : ";
cin>>pil;
switch(pil)
{
case 1 : cout<<"Data baru : ";cin>>data;
tambah(&pohon,data);
break;
case 2 : if(pohon!=NULL) preorder(pohon);
else cout<<"Masih Kosong!";
break;
case 3 : if(pohon!=NULL) inorder(pohon);
else cout<<"Masih Kosong!";
break;
case 4 : if(pohon!=NULL) postorder(pohon);
else cout<<"Masih Kosong!";
break;
}
}while(pil!=5);
}








Output Program tree (pohon)

Hasil output tambah adalah sebagai berikut :



Hasil output preorder adalah sebagai berikut :



Hasil output inorder adalah sebagai berikut :

Hasil output postorder adalah sebagai berikut :





Untuk lebih jelasnya ini print programnya







Penjelasan Program Tree
Berukut penjelasan dari Listing Program tree :
1. Struct node { }; adalah definisi tipe data struct.
2. Node *kiri; Node *kanan; adalah pendeklarasian kiri dan kanan bertipe data baru Node.
3. Void tambah adalah prototipe pendeklarasian penambahan data.
4. Node **root adalah pendeklarasian root bertipe data node.
5. if((*root)==NULL){ jika root dalam keadaan kosong.
6. Node *baru; baru=new Node; ditambah node baru.
7. baru->data=databaru;baru->kiri=NULL; baru->kanan=NULL; data baru akan diletakan
disebelah kiri atau kanan yang dimana lokasi masih NULL atau kosong.
8. (*root)=baru;(*root)->kiri=NULL;(*root)->kanan=NULL; lalu data baru diletakan atau
disimpan.
9. cout<<"Data Bertambah!"; adalah keluaran atau menampilkan bahwa data sudah
diletakkan atau disimpan.
10. } else if(databaru<(*root)->data) tambah(&(*root)->kiri,databaru);
elseif(databaru>(*root)->data) tambah(&(*root)->kanan,databaru); perintah ini akan
memeriksa lokasi data yang masih kosong dan akan meletakkan di tempat atau lokasi yang
masih kosong.
11. Else if(databaru==(*root)->data) cout<<"Data Sudah Ada!"; perintah ini akan
menampilkan jika tempat atau lokasi sudah terisi.
12. Void preorder adalah prototipe pendeklarasian menampilkan preorder.
13. Node *root adalah pendeklarasian root bertipe data node.
14. if(root!=NULL){ root bukan merupakan bilangan kosong atau masih kosong.
15. cout<<" "<< root->data; untuk menampilkan data preorder.
16. preorder(root->kiri);preorder(root->kanan); untuk menampilkan preorder lokasi kanan
dan kiri.
17. Void inorder adalah prototipe pendeklarasian menampilkan inorder.
18. Node *root adalah pendeklarasian root bertipe data node.
19. if(root!=NULL){ root bukan merupakan bilangan kosong atau masih kosong.
20. cout<<" "<< root->data; untuk menampilkan data inorder.
21. inorder (root->kiri); inorder (root->kanan); untuk menampilkan inorder lokasi kanan dan
kiri.
22. Void postorder adalah prototipe pendeklarasian menampilkan postorder.
23. Node *root adalah pendeklarasian root bertipe data node.
24. if(root!=NULL){ root bukan merupakan bilangan kosong atau masih kosong.
25. cout<<" "<< root->data; untuk menampilkan data postorder.
26. postorder (root->kiri); postorder (root->kanan); untuk menampilkan postorder lokasi
kanan dan kiri.
27. int pil,c; pendeklarasian pil dan c yang dimana mempunyai tipe data integer.
28. Node *pohon,*t; pendeklarasian pohon dan t yang mana mempunyai tipe data node.
29. pohon=NULL; pohon dimulai dari NULL atau kosong.






BAB III
KESIMPULAN


Kesimpulannya menurut definisi buku Struktur Data Dalam Ilustrasi Eclipse Indigo C++ ,
yang ditulis oleh Bp.YM Kusuma Ardhani,ST. Tree Merupakan struktur data nonlinier. Struktur
data dalam bentuk pohon (tree) dapat diartikan sebuah struktur data secara bentuk menyerupai
pohon, yang terdiri dari serangkaian simpul (node) yang saling berhubungan. Simpul-simpul atau
node tersebut di hubungkan oleh sebuah vektor.Didalam simpul mempunyai simpul 0 atau lebih
node anak. Node yang paling atas adalah node induk, sedangkan node bawahnya adalah node anak.
Untuk tingkat atau level pada tree ada yang memulai dari 0 dan ada pula yang memulai dari 1.

Anda mungkin juga menyukai