Anda di halaman 1dari 14

Jurusan Teknologi Informasi

Politeknik Negeri Malang

Tugas Job Sheet 09


Tree

10
Hilmy Zaky Mustakim
SIB-2E
10th November, 2023
Daftar Isi

Contents
Daftar Isi ........................................................................................................................... 1

Praktikum 1 ....................................................................................................................... 2

• Node.java ................................................................................................................ 2

• BinaryTree.java ........................................................................................................ 3

• BinaryTreeMain.java ................................................................................................. 4

PERTANYAAN ................................................................................................................. 5

Praktikum 2 ....................................................................................................................... 7

• BinaryTreeArray.java ................................................................................................ 7

• BinaryTreeArrayMain.java ......................................................................................... 7

PERTANYAAN ................................................................................................................. 8

TUGAS .............................................................................................................................. 9

• Class Node.java ....................................................................................................... 9

• Class BinaryTree.java ..............................................................................................10

• Class BinaryTreeMain.java........................................................................................11

• Class BinaryTreeArray.java .......................................................................................12

• Class BinaryTreeArrayMain.java ................................................................................13

• OUTPUT .................................................................................................................13

1
Praktikum 1
• Node.java

2
• BinaryTree.java

3
• BinaryTreeMain.java

4
PERTANYAAN

1. Mengapa dalam binary search tree proses pencarian data bisa lebih efektif dilakukan
dibanding binary tree biasa?
o Karena penempatan data didalam binary search tree disususun secara urut dimana
data yang ada disebelah kiri (left child) akan lebih kecil dari pada data induk dan
data yang disebelah kanan (right child) akan lebih besar dari pada data induk. Jadi
ketika dilakukan proses pencarian data, ini akan lebih efektif karena kita bisa
memprediksi posisi datanya ada dimana dengan membandingkan besar data yang
dicari dengan induk.
2. Apa fungsi atribut left dan right pada class Node?
o Fungsi dari atribut `left` adalah untuk menyimpan data yang ada disebelah kiri
atau bisa disebut dengan `left child` sedangkan atribut `right` akan
menyimpan data yang ada disebelah kanan atau bisa disebut `right child`.
3. Simak Pertanyaan berikut,
• Apa kegunaan dari atribut root di dalam class BinaryTree?
o Atribut root ini digunakan sebagai akar atau node induk, atau bisa juga disebut
sebagai akar dari Tree. Atribut root ini yang akan digunakan sebagai awalan untuk
mengakses data didalam Tree.
• Ketika objek tree pertama kali dibuat, apa nilai dari root?
o Ketika objek tree pertama kali dibuat data yang didalam root bernilai null. Ini
menandakan data didalam Tree masih belum ada isinya alias masih kosong.
4. Ketika tree masih kosong, dan akan ditambahkan sebuah node baru, proses apa yang
akan terjadi?
o Proses yang terjadi ketika tree masih kosong dan dilakukan penambahan yaitu,
data yang ditambahkan atau node baru tersebut akan disimpan pada atribut
`root`.

5
5. Perhatikan method add(), di dalamnya terdapat baris program seperti di bawah ini.
Jelaskan secara detil untuk apa baris program tersebut?
if(data < current.data) {
if(current.left != null) {
current = current.left;
} else {
current.left = new Node(data);
break;
}
}
o Disini akan dilakukan penambahan data. Jika data yang akan ditambahkan lebih kecil dari
data yang dijadikan pointer (current.data). Jika iya, maka akan dilakukan pengecekan lagi.
Jika left child dari posisi data yang dijadikan pointer saat ini bukan bersifat `null` maka
pointer akan diubah ke left child dari pointer saat ini, Jika left child dari pointer bernilai
`null` maka data akan ditambahkan pada left child pointer.

6
Praktikum 2
• BinaryTreeArray.java

• BinaryTreeArrayMain.java

7
PERTANYAAN

1. Apakah kegunaan dari atribut data dan idxLast yang ada di class BinaryTreeArray?
o Atribut `data` digunakan untuk menyimpan data bertipe data integer dalam
bentuk array. Sedangkan atribut `idxLast` digunakan untuk menyimpan batas
dari index.
2. Apakah kegunaan dari method populateData()?
o Method `populateData()` digunakan untuk mengisi data didalam array.
3. Apakah kegunaan dari method traverseInOrder()?
o Method `traverseInOrder()` untuk menampilkan data didalam tree secara in
order.
4. Jika suatu node binary tree disimpan dalam array indeks 2, maka di indeks berapakah
posisi left child dan rigth child masin-masing?
o Jika penambahan dilakukan pada indeks ke 0, maka posisi left child ada pada
indeks ke-5 dan right child ada pada indeks ke-6.
5. Apa kegunaan statement int idxLast = 6 pada praktikum 2 percobaan nomor 4?
o `idxLast = 6` digunakan untuk menyimpan batas dari indeks atau
menunjukkan batas dari indeks array sepanjang 6.

8
TUGAS
• Class Node.java

9
• Class BinaryTree.java

10
• Class BinaryTreeMain.java

11
• Class BinaryTreeArray.java

12
• Class BinaryTreeArrayMain.java

• OUTPUT

13

Anda mungkin juga menyukai