Struktur Data
Modul [4]
[BINARY TREE & BINARY SEARCH
TREE (BST)]
Daftar Isi :
Pengampu :
[Nur Hayatin SST]
1. Deskripsi Praktikum
2. Perangkat Lunak
3. Teori Penunjang
4. Prosedur Pelaksanaan
Nama:
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
Daftar Isi
1. Deskripsi Praktikum .......................................................................................................... 3
2. Perangkat Lunak ............................................................................................................... 3
3. Teori Penunjang ................................................................................................................. 3
4. Prosedur Pelaksanaan ....................................................................................................... 3
5. Hasil Soal Latihan dan penjelasan.....14
6. Implementasi dan Hasil Praktikum ................................................................................. 3
7. Kesimpulan ....................................................................................................................... 13
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
1. Deskripsi Praktikum
Mahasiswa mampu :
1. Memahami struktur pohon tree sebagai model penyimpanan data.
2. Memahami cara menyimpan dan mengakses elemen dari sebuah struktur pohon
biner.
3. Memahami struktur pohon biner dalam versi linked list.
4. Memahami operasi-operasi standar yang terkait dengan pohon biner.
2. Perangkat Lunak
Editor java (Netbeans dan JDK)
3. Teori Penunjang
1. Tree adalah kumpulan element yang saling terhubung secara hirarki (one to
many). Tree terdiri dari root (akar), path (cabang), dan leaf (daun). Element pada
tree yaitu berupa node. Sebuah node hanya boleh memiliki satu induk/parent.
Kecuali root, tidak memiliki induk/parent. Setiap node dapat memiliki nol atau
banyak cabang anak (one to many). Node yang tidak memiliki cabang anak
disebut daun.
2. Root (Node Root) adalah node yang memiliki hirarki tertinggi, yang pertama kali
dibentuk sehingga tidak memiliki parent (node induk). Penelusuran path tiap node
dimulai dari root. Subtree adalah node-node lain dibawah root yang saling
terhubung satu sama lain secara hirarki.
3. Path merupakan percabangan dari satu node ke node lainnya. Setiap node dapat
memiliki lebih dari satu cabang node atau tidak sama sekali memiliki cabang.
4. Leaf adalah node pada tree yang terletak pada pangkal dan tidak memiliki cabang
ke element node lainnya. Dalam artian leaf terdapat pada hirarki terbawah pada
sebuah tree.
4. Prosedur Pelaksanaan
Prosedur pelaksanaan praktikum adalah sebagai berikut :
1. Mahasiswa mencoba latihan yang ada pada modul praktikum
2. Mahasiswa menganalisa hasil dari program pada latihan yang telah dijalankan
3. Mahasiswa mengerjakan tugas yang diberikan
4. Mahasiswa mendemonstrasikan program yang telah dikerjakan pada dosen/assisten
5. Mahasiswa membuat laporan dari tugas yang telah dikerjakan
6. Upload laporan melalui e-labit.umm.ac.i
5. Implementasi dan Hasil Praktikum
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
Tugas 1
package modul4;
public class ABTree {
// data members
static Object [] a; // array that contains the tree
static int last=0; // position of last element in array a
static int size=0;
/** visit method that prints the element in a[i] */
public static void visit(int i)
{
System.out.print(a[i] + " ");
}
/** inorder traversal */
public static void inOrder(Object [] theArray, int theLast)
{
// set static data members
a = theArray;
last = theLast;
if(!isEmpty())
{
// start the recursive traversal method at the root
theInOrder(1);
}
else
System.out.println("Binary Tree Kosong");
}
/** actual method to do the inorder traversal */
static void theInOrder(int i)
{// traverse subtree rooted at a[i]
if (i <= last && a[i]!=null)
{// root exists
theInOrder(2 * i); // do left subtree
visit(i); // visit tree root
theInOrder(2 * i + 1); // do right subtree
}
}
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
a = theArray;
last = theLast;
if(!isEmpty())
{
// start the recursive traversal method at the root
thePostOrder(1);
}
else
System.out.println("Binary Tree Kosong");
}
static void thePostOrder(int i)
{// traverse subtree rooted at a[i]
if (i <= last && a[i]!=null)
{// root exists
thePostOrder(2*i); // do left subtree
thePostOrder(2 * i +1); // do right subtree
visit(i); // visit tree root
}
}
public static void main(String[] args) { // method main
a = new Integer [10];
ABTree out = new ABTree();
out.addNode(1, 3);
out.addNode(2, 6);
out.addNode(3, 10);
out.addNode(4, 4);
out.addNode(5, 9);
out.addNode(6, 7);
out.addNode(8, 11);
System.out.print("inOrder
System.out.println();
System.out.print("preOrder
System.out.println();
System.out.print("postOrder
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
System.out.println();
//preoder dibaca atas kiri kanan contoh abc
//inoder dibaca kiri atas kanan bac
// potoder kiri kanan atas bca
}
}
Tugas 2
package modul4;
import java.util.*;
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
visit(a);
} else if
(anak.equalsIgnoreCase(theArray[4 * a + 1])) {
visit(a);
}
}
}
} catch (Exception e) {
}
}
public static void menu3(String ibu, String[] theArray,
int theLast) {
try {
a = theArray;
last = theLast;
int i = 0;
for (int a = 1; a <= last; a++) {
if (ibu.equalsIgnoreCase(theArray[a])) {
visit1(a);
}
}
} catch (Exception e) {
}
}
public static void menu4(String ibu, String[] theArray,
int theLast) {
try {
a = theArray;
last = theLast;
int i = 0;
int temp;
for (int a = 1; a <= last; a++) {
if (ibu.equalsIgnoreCase(theArray[a])) {
temp = 4 * a - 2;
visit1(temp);
temp = 4 * a - 1;
visit1(temp);
temp = 4 * a;
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
visit1(temp);
temp = 4 * a + 1;
visit1(temp);
}
}
} catch (Exception e) {
}
}
public static void menu5(String[] theArray, int theLast)
{
a = theArray;
last = theLast;
for (int a = 1; a <= last; a++) {
visit(a);
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean kondisi = true;
String a[] = new String[85];
a[1] = new String("siti");
a[2] = new String("nina");
a[3] = new String("budi");
a[4] = new String("sinta");
a[5] = new String("joko");
a[6] = new String("agus");
a[7] = new String("meri");
a[10] = new String("toni");
a[14] = new String("rina");
a[15] = new String("niko");
a[16] = new String("lori");
a[22] = new String("peni");
a[38] = new String("wenda");
a[58] = new String("dina");
while (kondisi) {
System.out.println("1. Anak ke-X dari orang tua
Y");
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma
Tugas 1
1.
2.
3.
4.
Tugas2
1.Pada program ArrayBinarySearchTree.
2. Lalu memilih apa yang kita ingin otput.
3. contoh kita pilih no 1) Anak ke-X dari orang tua maka muncul Nama Orangtua : lalu ketik nama
sinta, lalu muncul Anak nomor : lalu ketik nomor 2 maka hasil outpunya Anak ke-2 dari sinta adalah
niko.
6. Kesimpulan
Memahamistruktur pohon tree sebagai model penyimpanan data. Memahami cara
menyimpan dan mengakses elemen dari sebuah struktur pohon biner. Memahami struktur
pohon biner dalam versi linked list. Memahami operasi-operasi standar yang terkait dengan
pohon biner
Dokumen Laboratorium Teknik Informatika UMM @ 2016 Laporan Modul Praktikum Algoritma