Anda di halaman 1dari 10

LAPORAN PRAKTIKUM RESMI

BAB TREE
Bagian 2
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 Bagian 2
TEORI DASAR

A. Operasi Pada Pohon Biner

Dalam pembahsan pada bab 1kita telah belajar apa itutree (pohon)sebelumkita
melanjutkan pembahasan iniakita akan meriview kembali apaitu tree. 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). Sedang kan Operasi pada binary tree merupakan
suatu rangkaian proses yang dapat dibagi menjadi

beberapa bagian operasi (fungsi) seperti :

1. Inisialisasi

2. Pembuatan sebuah node

3. Pembuatan node akar

4. Penambahan node baru kedalam tree/men-insert node baru kedalam tree

5. Penghapusan dari sebuah node tree/men-delete node baru kedalam tree

6. Pembacaan atau penelusuran binary tree

Pembagian ini bukan berdasarkan urutan proses, namun hanya berdasarkan fungsi yang

berbeda. Sebelum proses diatas dapat dilakukan, tentunya segala sesuatu yang diperlukan

harus disiapkan terlebih dahulu.Berikut contoh deklarasi dari struktur node dansemua pointer

yang dibutuhkan.

struct node{

struct node *left;

struct node *right;

char info;

};

type def struct node simpul;

simpul *root, *p, *q, *r;

char x;

Struktur node

Left Right

*Root *P *Q *R

@ Pointer Root digunakan khusus menunjukan node akar

@ Pointer P digunakan khusus menunjuk node yang baru dibuat

@ Pointer Q dan R digunakan sebagai pointer pembantu

@ Pointer- pointer yang lain dapat ditambahkan apa bila diperlukan

B. Proses Inisialisasi

Inisialisasi yang dimaksud adalah pemberian nilai awal pada suatu variabel atau kondisi

yang dapat digunakan sebagai ciri suatu kondisi.

Intruksi dasar untuk inisialisasi

root = NULL;

p = NULL;

inisialisasi ditulis dalam sebuah fungsi

nama fungsi inisialisasi

void inisialisasi(){

root = NULL;

p = NULL;}

Fungsi ini harus dilaksnakan sebelum operasi yang lain. Pointer root ketika

dideklarasikan isinya sudah ada, tapi nilainya tidak diketahui. Pointer root perlu diisi dengan

NULL .


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

/*
* tree2.cpp
*
* Created on: Sep 18, 2014
* Author: Andi Raptor
*/
#include<iostream>
#include<malloc.h>
#include<conio.h>
#define Nil NULL
using namespace std;
struct node
{
struct node *left;
char data;
struct node *right;
};
typedef struct node nod;
typedef nod pokok;
nod *nodbaru(char item)
{
nod *n;
n=(nod *)malloc(sizeof(nod));
if (n!=Nil)
{
n->data=item;
n->left=Nil;
n->right=Nil;
}
return n;
}
void binapokok(pokok **t)
{
*t=Nil;
}
typedef enum{FALSE=0,TRUE=1} BOOL;
BOOL pokokkosong (pokok *t)
{
return ((BOOL)(t==Nil));
}
void tambahnod(nod **p,char item)
{
nod *n;
n=nodbaru(item);
*p=n;
}
void preorder(pokok *t)
{
if (!pokokkosong(t))
{
cout<<" "<<t->data;
preorder(t->left);
preorder(t->right);
}
}
void inorder(pokok *t)
{
if(!pokokkosong(t))
{
inorder(t->left);
cout<<" "<<t->data;
inorder(t->right);
}
}
void postorder(pokok *t)
{
if(!pokokkosong(t))
{
postorder(t->left);
postorder(t->right);
cout<<" "<<t->data;
}
}
int main()
{
pokok *kelapa;
char buah;
binapokok(&kelapa);
tambahnod(&kelapa, buah='m');
tambahnod(&kelapa->left, buah='e');
tambahnod(&kelapa->left->right, buah='i');
tambahnod(&kelapa->right, buah='l');
tambahnod(&kelapa->right, buah='o');
tambahnod(&kelapa->right->left, buah='d');
cout<<"tampilan secara preorder :";
preorder(kelapa);
cout<<endl;
cout<<"tampilan secara inorder :";
inorder(kelapa);
cout<<endl;
cout<<"tampilan secara postorder :";
postorder(kelapa);
cout<<endl;
cout<<endl;
//return 0;
getch();
}






Inputan program tree bagian 2










Output Program tree (pohon) bagian 2

Hasil output tambah adalah sebagai berikut :






Penjelasan Program Tree Bagian 2
Berikut penjelasan dari Listing Program tree bagian 2 :


1. <malloc.h> merupakan fungsi standar untuk mengalokasikan memori.

2. <conio.h> berfungsi berkas header pada bahasa pemrograman C yang kebanyakan

digunakan pada compiler berbasis MS-DOSuntuk membuat antarmuka konsol.

3. #define Nil NULL untuk mendefinisikan perubahan nil ke NULL.


4. fungsi/class/file yang terdapat dalam namespace std. namespace sendiri memiliki

kesamaan dengan paket pada bahasa Java yang berisi pengelompokan fungsi, class

dan yang sejenis. Pada C++ library- library umumnya disimpan dalam namespace std, seperti
perintah cin dan cout.

5. Struct nod{ }; adalah deklarasi tipe data struct nod.

6. Char data ; adalah sebagai data bertipe data caharacter.

7. Nod *left; Nod *right; adalah pendeklarasian left dan right variabel yang menunjuk ke data baru
Nod.

8. Typedef struct nod NOD; untuk mendeklarasian perubahan tipe data nod menjadi NOD.

9. Typedef NOD POKOK; untuk mendeklarasian perubahan tipe data NOD menjadi POKOK.

10. NOD *n; n variabel yang menunjukan ke tipe data NOD.

11. n=(NOD *)malloc(sizeof(NOD)) merupakan memori yang disiapkan untuk menyimpan node.

12. If(n!=nil) yaitu jika kondisi n bukan nil.

13. n->data=item; n menunjuk data dan data sama dengan item.

14. n->left=Nil; n menunjuk left dan left sama dengan nil.

15. n->right=Nil;n menunjuk right dan right samadengan nil.

16. Return n; dikembalikan ke n.

17. POKOK **T yaitu T variabel pointer yang menunjuk ke tipe data POKOK.

18. *T = nil ; T sama dengan nil.

19. BOLL digunakan saat data berupa true dan false.

20. POKOK *T yaitu T variabel yang menunjuk ke tipe data POKOK.


21. return ((BOOL)(T==Nil)); kembali ke BOLL dan T sama dengan nil.

22. . NOD **p yaitu p variabel pointer yang menunjuk ke tipe data NOD.
23. If(!pokokkosong(T)) yaitu dimana jika T bernilai bukan kosong.
24. preOrder(T->left); nilai preorder di tunjuk ke left.

25. preOrder(T->right); nilai preorder di tunjuk ke right.

26. inOrder(T->left); nilai inOrder di tunjuk ke left.

27. inOrder(T->right); nilai inOrder di tunjuk ke right.

28. postOrder(T->left); nilai postOrder di tunjuk ke left.

29. postOrder(T->right); nilai postOrder di tunjuk ke right.

30. cout<<" "<<T->data; untuk menampilkan data.

31. POKOK *kelapa; pendeklarasian kelapa variabel yang menunjuk tipe data POKOK.

32. Char buah ; pendeklarasian buah bertipe data character.

33. BinaPokok(&kelapa); untuk menyimpan atau menunjuk tempat penimpanan kelapa.

34. TambahNod(&kelapa,buah='M'); menambahkan huruf atau character M kedalam buah.

35. TambahNod(&kelapa->left,buah='E'); menambahkan huruf atau character E kedalam buah.

36. TambahNod(&kelapa->left->right,buah='I'); menambahkan huruf atau character I kedalam
buah.

37. TambahNod(&kelapa->left->right->left,buah='L'); menambahkan huruf atau character L
kedalam buah.

38. TambahNod(&kelapa->right,buah='O'); menambahkan huruf atau character Okedalam buah.

39. TambahNod(&kelapa->right->left,buah='D'); menambahkan huruf atau character D kedalam
buah.



BAB III
KESIMPULAN
Kesimpulandaripenjelasan diatas bahwa binary tree merupakan suatu rangkaian proses Inisialisasi,
Pembuatan sebuah node, Pembuatan node akar, Penambahan node baru kedalam tree/men-insert
node baru kedalam tree, Penghapusan dari sebuah node tree/men-delete node baru kedalam tree,
Pembacaan atau penelusuran binary tree.pemberian nilai awal pada suatu variabel atau kondisi yang
dapat digunakan sebagai ciri suatu kondisi.

Anda mungkin juga menyukai