LAPORAN PRAKTIKUM RESMI 
TREE (BAGIAN 2) 
Disusun oleh : 
Nama Lengkap : Citra Aidha Kapindo 
NIM : 201301055 
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 
Struktur data dalam bentuk pohon (tree) dapat diartikan sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari serangkaian simpul (node) yang saling berhubungan. Node yang berada di pangkal tree disebut node akar (root), sedangkan node yang paling ujung pada piramida tree disebut node daun (leaf) .(Struktur Data Dalam Ilustrasi Eclipse Indigo C++, YM Kusuma Ardhana,ST) 
Kunjungan Pada Pohon Biner 
1. PreOrder 
Kunjungan secara Preorder mempunyai urutan, yaitu cetak isi simpul yang dikunjungi (simpul akar), kunjungi cabang kiri, dan yang terakhir kunjungi cabang kanan. 
2. InOrder 
Kunjungan secara InOrder mempunyai urutan, yaitu kunjungan cabang kiri, kemudian cetak isi simpul (simpul akar), dan terakhir kunjungi cabang kanan. 
3. PostOrder 
Kunjungan secara PosOrder, mempunyai urutan yaitu kunjungi cabang kiri, kemudian cabang kanan, lalu cetak isi simpul yang dikunjungi (simpul akar).
BAB II 
PENJELASAN PROGRAM 
A. Latihan Praktikum 
Pada bab ini akan membahas tentang listing program pada bagian modul yang telah digunakan untuk latihan pada pertemuan pertama. Latihan yang dilakukan mencakup pada Listing Program 1.2 
Listing Program 1.2 
/* 
* Prak2.cpp 
* 
* Created on: Sep 19, 2014 
* Author: STIKOM109 
*/ 
#include <iostream> 
#include <malloc.h> 
#include <conio.h> 
#define Nil NULL 
using namespace std; 
struct nod 
{ 
struct nod *left; 
char data; 
struct nod *right; 
}; 
typedef struct nod 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->left, buah='O'); 
TambahNod(&kelapa->right->left->right, 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(); 
} 
Output Program 1.2 
Hasil output dari Program 1.2 adalah sebagai berikut :
Left 
Left ->Right 
Right 
Right -> Left 
Right -> Left -> Right 
Penjelasan Program 1.2 
Berukut penjelasan dari Listing Program 1.2 : 
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler. 
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai 
3. voidtambah(Node **root,intdatabaru){ adalah inisialisasi bila ditulis dalam sebuah fungsi. Merupakan nilai baru yang ditampilkan. 
4. Preorder, inorder dan postorder merupakan kunjungan pada pohon biner. 
5. 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->left, buah='O'); 
TambahNod(&kelapa->right->left->right, buah='D'); 
Program diatas menerangkan tentang : 
Maka hasilnya akan muncul tulisan MEILOD 
KELAPA 
M 
E 
I 
L 
O 
D
BAB III 
KESIMPULAN 
Tree merupakan suatu struktur data yang non-linier . Tree merupakan struktur data yang mempunyai beberapa node atau simpul, setiap simpul dihubungkan oleh garis yang disebut vector. 
1. PreOrder 
Pada kunjungan ini dimulai dari sebelah kiri dan berlanjut di sebelah kanan . 
2. InOrder 
Pada kunjungan ini dimulai dari sebelah kiri lalu cetak ke simpul akar dan terakhir di sebelah kanan. 
3. PostOrder 
Pada kunjungan ini dimulai dari sebelah kiri lalu ke sebelah kanan dan terakhir cetak ke simpul akar .

Laporan resmi bab 1 (tree bag.2)

  • 1.
    LAPORAN PRAKTIKUM RESMI TREE (BAGIAN 2) Disusun oleh : Nama Lengkap : Citra Aidha Kapindo NIM : 201301055 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO 2014
  • 2.
    BAB I TEORIDASAR Struktur data dalam bentuk pohon (tree) dapat diartikan sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari serangkaian simpul (node) yang saling berhubungan. Node yang berada di pangkal tree disebut node akar (root), sedangkan node yang paling ujung pada piramida tree disebut node daun (leaf) .(Struktur Data Dalam Ilustrasi Eclipse Indigo C++, YM Kusuma Ardhana,ST) Kunjungan Pada Pohon Biner 1. PreOrder Kunjungan secara Preorder mempunyai urutan, yaitu cetak isi simpul yang dikunjungi (simpul akar), kunjungi cabang kiri, dan yang terakhir kunjungi cabang kanan. 2. InOrder Kunjungan secara InOrder mempunyai urutan, yaitu kunjungan cabang kiri, kemudian cetak isi simpul (simpul akar), dan terakhir kunjungi cabang kanan. 3. PostOrder Kunjungan secara PosOrder, mempunyai urutan yaitu kunjungi cabang kiri, kemudian cabang kanan, lalu cetak isi simpul yang dikunjungi (simpul akar).
  • 3.
    BAB II PENJELASANPROGRAM A. Latihan Praktikum Pada bab ini akan membahas tentang listing program pada bagian modul yang telah digunakan untuk latihan pada pertemuan pertama. Latihan yang dilakukan mencakup pada Listing Program 1.2 Listing Program 1.2 /* * Prak2.cpp * * Created on: Sep 19, 2014 * Author: STIKOM109 */ #include <iostream> #include <malloc.h> #include <conio.h> #define Nil NULL using namespace std; struct nod { struct nod *left; char data; struct nod *right; }; typedef struct nod 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) {
  • 4.
    *T=Nil; } typedefenum {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');
  • 5.
    TambahNod(&kelapa->left, buah='E'); TambahNod(&kelapa->left->right,buah='I'); TambahNod(&kelapa->right, buah='L'); TambahNod(&kelapa->right->left, buah='O'); TambahNod(&kelapa->right->left->right, 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(); } Output Program 1.2 Hasil output dari Program 1.2 adalah sebagai berikut :
  • 6.
    Left Left ->Right Right Right -> Left Right -> Left -> Right Penjelasan Program 1.2 Berukut penjelasan dari Listing Program 1.2 : 1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai 3. voidtambah(Node **root,intdatabaru){ adalah inisialisasi bila ditulis dalam sebuah fungsi. Merupakan nilai baru yang ditampilkan. 4. Preorder, inorder dan postorder merupakan kunjungan pada pohon biner. 5. 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->left, buah='O'); TambahNod(&kelapa->right->left->right, buah='D'); Program diatas menerangkan tentang : Maka hasilnya akan muncul tulisan MEILOD KELAPA M E I L O D
  • 7.
    BAB III KESIMPULAN Tree merupakan suatu struktur data yang non-linier . Tree merupakan struktur data yang mempunyai beberapa node atau simpul, setiap simpul dihubungkan oleh garis yang disebut vector. 1. PreOrder Pada kunjungan ini dimulai dari sebelah kiri dan berlanjut di sebelah kanan . 2. InOrder Pada kunjungan ini dimulai dari sebelah kiri lalu cetak ke simpul akar dan terakhir di sebelah kanan. 3. PostOrder Pada kunjungan ini dimulai dari sebelah kiri lalu ke sebelah kanan dan terakhir cetak ke simpul akar .