Anda di halaman 1dari 9

VERSI 2.

0
JULI, 2019

ALGORITMA PEMROGRAMAN
BINARY TREE

TIM PENYUSUN: - DOSEN


- ILHAM SETIYO KANTOMO
- FIRMAN NOOR PRAADITA

PRESENTED BY: LAB. TEKNIK INFORMATIKA


UNIVERSITAS MUHAMMADIYAH MALANG
Laboratorium Teknik Informatika

ALGORITMA PEMROGRAMAN

CAPAIAN PEMBELAJARAN MATA KULIAH

1. Mahasiswa dapat menjelaskan dan menerapkan konsep Algoritma Binary Tree.


2. Mahasiswa mampu menganalisa kompleksitas dari Algoritma Binary Tree.

SUB CAPAIAN PEMBELAJARAN MATA KULIAH

1. Mahasiswa mampu membuat program Binary Tree dari algoritma dan flowchart yang ada
menggunakan bahasa pemrograman Java.

KEBUTUHAN HARDWARE & SOFTWARE


• Laptop/ PC
• Eclipse/ Netbeans/ dsb.

MATERI PRAKTIKUM
1. Binary Tree
Binary Tree merupakan Tree yang diurutkan berdasarkan properti berikut ini :

a. Setiap Node memiliki paling banyak dua child.


b. Setiap child dinamakan sebagai left child atau right child.
c. Nilai left child lebih kecil dibandingkan dengan nilai right child dalam urutan sebuah Node.

Sebagai tipe data abstrak, Binary Tree merupakan spesialisasi yang mendukung metode
penambahan aksesor.

T.left (p) : Mengembalikan posisi yang mewakili left child dari p, atau tidak ada jika p tidak
memiliki left child.

T.right (p) : Mengembalikan posisi yang mewakili right child dari p, atau tidak ada jika p
tidak memiliki right child.

Juli, 2019 ALGORITMA PEMROGRAMAN 1


Laboratorium Teknik Informatika

Tree Travelsals

• PreOrder

Saat menggunakan algoritma preorder, yang pertama kali dikunjungi adalah root terlebih
dahulu, lalu melewati subtree sebelah kiri setelah itu akan melewati subtree sebelah kanan.

Berikut algoritma serta contoh dari preorder :

1. algorithm Preorder(root)
2. Pre: root is the root node of the BST
3. Post: the nodes in the BST haae been aisited in preorder
4. if root ≠ ∅
5. yield root.Value
6. Preorder(root.Left)
7. Preorder(root.Right)
8. end if
9. end Preorder

Juli, 2019 ALGORITMA PEMROGRAMAN 2


Laboratorium Teknik Informatika

• PostOrder

Algoritma ini sangat mirip dengan yang dijelaskan pada algoritma preorder, namun nilai
dari node dihasilkan setelah melewati kedua subtree.

Berikut algoritma dari postorder beserta contohnya :

1. algorithm Postorder(root)
2. Pre: root is the root node of the BST
3. Post: the nodes in the BST haae been aisited in postorder
4. if root ≠ ∅
5. Postorder(root.Left)
6. Postorder(root.Right)
7. yield root.Value
8. end if
9. end Postorder

Juli, 2019 ALGORITMA PEMROGRAMAN 3


Laboratorium Teknik Informatika

• InOrder

Variasi lain dari algoritma traversal yang didefnisikan yaitu algoritma inorder, dimana nilai
dari node dihasilkan di antara traaersing subtree sebelah kiri dan subtree sebelah kanan.

Berikut algoritma inorder beserta chontoh :

1. algorithm Inorder(root)
2. Pre: root is the root node of the BST
3. Post: the nodes in the BST haae been aisited in inorder
4. if root ≠ ∅
5. Inorder(root.Left)
6. yield root.Value
7. Inorder(root.Right)
8. end if
9. end Inorder

Untuk penjelasan lebih lengkap mengenai materi ini, dapat dipelajari pada video berikut ini :
https://www.youtube.com/watch?v=oSWTXtMglKE

Juli, 2019 ALGORITMA PEMROGRAMAN 4


Laboratorium Teknik Informatika

LEMBAR KERJA

KEGIATAN PRAKTIKUM

Memahami konsep Binary Tree berdasarkan Algoritma dan Flowchart berikut ini :

1. Algoritma

1. Buat node baru (new)


2. Cek apakah root = null,
jika ya, maka root = new, lompat ke langkah 9
jika tidak, maka lakukan langkah selanjutnya
3. Menchari posisi yang tepat untuk new, tentukan P = root, Q = root
4. Kerjakan langkah 5 dan 6 selama Q <> null dan new → info <> P → info
5. Tentukan P = Q
6. Cek apakah new → info < P →info
jika ya, (teruskan ke chabang kiri), tentukan Q = P → kiri
jika tidak, (teruskan ke chabang kanan), tentukan Q = P → kanan
7. Cek apakah new → info = P → info
jika ya, (tidak perlu disisipkan), tampilkan pesan duplikasi, lompat ke langkah 9
jika tidak, (sisipkan), kerjakan langkah 8
8. Cek apakah new → info < P → info
jika ya, (sebagai chabang kiri) P → kiri = new
jika tidak, (sebagai chabang kanan) P → kanan = new
9. Selesai

2. Flowchart

Juli, 2019 ALGORITMA PEMROGRAMAN 5


Laboratorium Teknik Informatika

3. Program
1. Buatlah kelas Node.java untuk mendeklarasikan node-node yang akan dipakai dan ketikkan
source code seperti berikut.

2. Buatlah kelas BinaryTree.java untuk memproses node menjadi urutan binary tree sesuai
dengan 3 algoritma traversal (pre order, in order, dan post order). Ketikkan source code
seperti berikut.

Juli, 2019 ALGORITMA PEMROGRAMAN 6


Laboratorium Teknik Informatika

3. Membuat kelas utama DriverBT.java untuk mengisi nilai dari node dan menampilkan hasil
binary tree.

Juli, 2019 ALGORITMA PEMROGRAMAN 7


Laboratorium Teknik Informatika

TUGAS PRAKTIKUM

1. Melakukan modifikasi program di atas dengan mengganti inputan node menjadi sebuah kata inputan
user sehingga akan menampilkan output seperti berikut :

2. Menambah fitur yang dapat mengkonversi inputan kata dari user menjadi urutan kode ascii decimal
dari masing-masing huruf dan melakukan algoritma traversal seperti berikut :

RUBRIK PENILAIAN
1. Pemahaman terhadap materi yang telah dipelajari. (25 poin)
2. Menyelesaikan tugas praktikum 1 & 2 sesuai dengan ketentuan. (40 poin)
3. Menjelaskan program yang telah dibuat. (30 poin)
4. Kerapihan program yang dibuat. (5 poin)

Juli, 2019 ALGORITMA PEMROGRAMAN 8

Anda mungkin juga menyukai