JURUSAN SISTEM INFORMASI SEKOLAH TING GI ILMU KOMPUTER YOS SUDARSO PURWOKERTO 2014
1 BAB I
LANDASAN TEORI
1. PENGANTAR
Tree merupakan struktur data non-linear. 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.
2. MEMBACA BINARY TREE LEVEL PER LEVEL URUT NOMOR NODE
2
Binary tree diatas jika dibaca dan dicetak node per node, dengan pembacaan level per level urut nomor node maka:
Untuk Tree pada Akan tercetak Gambar (1) A B C D E F G I J K L M N O P Q Gambar (2) A B C D E G I J K N Gambar (3) A B C E F G J K M N Gambar (4) A B C E J K
Untuk keperluan algoritma, maka diperlukan sebuah array (diberi nama Q) kerena digunakan sebagai queue (antrian) bertipe pointer node, untuk mencatat alamat node-node. Sebagai contoh, untuk binary tree yang diilustrasikan dengan Gambar (4), maka alamat node-nodenya tersimpan dalam array pointer seperti digambarkan pada gambar dibawah ini.
3 BAB II
PENJELASAN PROGRAM
Pada bab Membaca Binary Tree ini akan membahas latihan dan tugas pada Insert level per level
di dalam Eclipse C++
Latihan
Listing program Tree bagian 5
/* * Tree lima.cpp * * Created on: Oct 10, 2014 * Author: Admin */ #include <iostream> #include <malloc.h>
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler. 2. #include : Pengarah Praprocessor
Include adalah pengarah suatu library yang digunakan untuk suatu program.
3. Iostream : Library
Iostream adalah library untuk input dan output cin dan cout.
4. Tanda { dan } adalah tanda untuk mengawali dan mengakhiri program.
5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.
6. Cout : untuk menampilkan output program yang sudah dituliskan.
7. Cin : untuk menginputkan data yang dimasukkan oleh user.
8. include<malloc.h> : Library pada eclipse yang digunakan untuk mengalokasi memori.
9. Inisialisasi() : Pemanggilan prosedur Insialisasi pada main program.
Di gunakan untuk tipe data abstrak struct pada proses pembuatan node.
11. typedef struct Node Simpul: Tipe data abstrak typedef struct pada Node Simpul
12. void BuatSimpul(char X): Prosedur yang digunakan untuk membuat simpul baru pada program. 13. void Inisialisasi() : Prosedur yang digunakan untuk inisialisasi pada sebuah node root.
14. P=(Simpul*) malloc(sizeof(Simpul));
Fungsi malloc yang berguna untuk mengalokasi memori pada program.
15. if (P != NULL) { P->INFO=X; P- >Left=NULL; P- >Right=NULL; } Penggunaan if-else pada prosedur pembuatan simpul pada program.
16. Statement if-else : Digunakan untuk modul perulangan pada program.
17. Statement for : Digunakan untuk modul perulangan pada program.
18. BuatSimpul() : Pemanggilan fungsi BuatSimpul pada main program.
19. BuatAkar() : Pemanggilan prosedur BuatAkar pada main program.
Penggunaan while pada main program yang berfungsi untuk menginsertkan level per level tree secara urut.
8 Tugas
1. Listing program membaca binary tree level per level urut nomor node diatas ini menghasilkan out .? 2. Bagian listing program mana yang menunjukan pembuatan tree?
3. Kesalahan apa yang terdapat pada listing program tersebut, berikan solusinya.
Jawaban :
1.
2. void Inisialisasi() { Akar=NULL; P=NULL; }
Ini adalah proses Inisialisasi atau pembuatan node root pada program.
Yang jika dijalankan di eclipse hasilnya error , berikut ini adalah beberapa kesalahan dan
solusi untuk membetulkan listing program membaca Tree lima di atas.
12 kesalahan pada program Tree 5 adalah :
1. Arah pembuatan simpul pada main program. dimana seharusnya urutan yang benar adalah sebagai berikut :
BuatSimpul('A');
BuatAkar();
BuatSimpul('B');
Akar->Left=P;
BuatSimpul('C');
Akar->Right=P;
BuatSimpul('E');
Akar->Left->Left=P;
BuatSimpul('F');
Akar->Left->Right=P;
BuatSimpul('G');
Akar->Right->Left=P;
BuatSimpul('M');
Akar->Right->Left->Right=P;
Dikarenakan arah yang tidak benar , maka pembuatan tree pada main program tidak bisa memunculkan node sama sekali.
2. Kurangnya penulisan using namespace std; dibawah library , karena dalam eclipse harus di ketikkan using namespace std baru bisa berjalan program itu.
3. Penggunaan getche(); pada main program , getche() adalah bagian penutup sekaligus script program untuk memunculkan main program. getche() seharusnya tidak boleh digunakan di dalam eclipse C++ , namun hanya bisa digunakan di dalam borland C++. SOlusinya adalah penggunaan return 0 dalam eclipse C++.
4. dalam pendefinisian main program , seharusnya digunakan int main() dan bukan void main().
5. Dalam library eclipse C++ tidak perlu menggunakan <stdio.h> dan <conio.h> , karena tanpa ditulis pun library akan secara otomatis memunculkan tulisan pada main program. Dan juga lebih mudah menggunakan cout dan cin maka solusinya adalah memakai library <iostrea
13 BAB III
KESIMPULAN
1. Pada Bab Tree bagian lima ini , latihan program tidak bisa dijalankan di eclipse karena ada beberapa kesalahan pada program seperti , prosedur yang kurang lengkap , penggunaan library yang salah serta beberapa kesalahan lainnya
2. Pada tugas praktikum tree lima ini , kesalahan yang terjadi adalah :
Arah pembuatan node yang salah. Kurangnya using namespcace std dan return 0 pada program yang menyebabkan tidak berjalannya program. Penggunaan library <stdio.h> dan <conio.h> yang salah pada eclipse , seharusnya pada eclipse memakai <iostream>.
14 BAB IV
DAFTAR PUSTAKA
Ardhana. YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclipse Indigo C ++.
Yogyakarta: CAPS (Center of Academic Publishing Service).