Anda di halaman 1dari 102

MAKALAH MATEMATIKA DISKRIT

TREE

DISUSUN OLEH :

ATIKA MARLINDA (2004111010013)

EMA SARI (2004111010040)

ALLIFA CHILDA (2004111010072)

JURUSAN TEKNIK ELEKTRO DAN KOMPUTER

FAKULTAS TEKNIK

UNIVERSITAS SYIAH KUALA

TAHUN 2022
1. Pendahuluan

1. Latar Belakang

Tree merupakan sebuah struktur data yang mengikuti suatu


percabangan dari sebuah pohon. Teori tree ini sebenarnya merupakan
mekanisme pemecahan masalah yang memfasilitasi pencarian solusi
masalah dengan menganalogikan atau menggambarkannya sebagai
struktur pohon. Teori pohon dapat mempermudah pemecahan masalah
karena urutan kejadian tersusun rapi dalam suatu hierarki. Teori Tree ini
juga merupakan aplikasi atau implementasi dari konsep graf. Hal
tersebut dikarenakan ada hubungan antar suatu masalah dengan
turunannya.

Tree adalah sebuah graf yg tidak berarah & terhubung dan nir
mengandung sirkuit. Konsep Tree adalah keliru satu konsep graf & poly
dipakai pada bidang ilmu personal komputer & bidang lain yg menyelidiki
pohon menjadi objek matematika. Bentuk tree berakar yg spesifik &
gampang dikelola yaitu binary tree atau pohon binar.

Traversal adalah suatu proses kunjungan dalam pohon,


menggunakan setiap node nya hanya dikunjungi satu kali & ini diklaim
menggunakan traversal. Binary Tree Traversal yaitu sebuah proses
mengunjungi suatu node hanya sekali saja. Selain itu jua terdapat
spanning tree yg terdiri berdasarkan seluruh nodes atau cabang pada
graf & beberapa edges sebagai akibatnya semua nodes saling terkait
atau terhubung. Graf sendiri adalah himpunan yg meliputi nodes &
edges. Ada beberapa langkah untuk menentukan spanning tree. Di
dalam makalah ini akan dibahas mengenai tentang apa itu tree, aplikasi,
traversal dan spanning tree.

2. Rumusan Masalah
1. Apa itu Tree?

2. Bagaimana asal mula penggunaan teori Tree?

2. Apa itu Traversal?


3. Apa itu Spanning?

4. Apa itu Binary Tree?

5. Apa saja istilah dalam Tree?

6. Apa saja istilah pada Binary Tree?

7. Apa aplikasi dari Binary Tree?

8. Apa itu Rooted Tree?

3. Tujuan Penulisan
1. Mampu memahami definisi Tree, Traversal, Binary Tree dan
Spanning

2. Mampu memahami istilah pada Tree dan Binary Tree

3. Mampu memahami aplikasi pada Binary Tree

2. Pembahasan
1. Tree
A. Definisi Tree
Tree asal berdasarkan kata “tree” pada bahasa inggris ini diartikan
menjadi Pohon. Dalam susunan data, konsep dasar Tree seperti
misalnya pohon yg adalah sekumpulan node yg saling terhubung antara
satu sama lain ang membangun misalnya struktur berdasarkan sebuah
pohon. Tree pula adalah graf tak-berarah yg terhubung tanpa sirkuit
sederhana.

Pohon merupakan struktur data nonlinier atau nir linear yg dipakai


terutama buat mewakili interaksi data hierarkis antara elemen-
elemennya. Satu elemen disebut root dan elemen lainnya disebut node,
yang dibagi menjadi serangkaian set yang tidak saling berhubungan dan
disebut sebagai subpohon atau cabang.

Pohon pula bisa didefinisikan menjadi suatu bentuk struktur data


non-linier yg mendeskripsikan interaksi hierarkis (interaksi satu ke
banyak) antar elemen. Tree dianggap jua menjadi deretan simpul/node
menggunakan satu elemen spesifik yg dianggap Root & node lainnya.
Pohon juga merupakan graf asiklik, sederhana, terhubung yang tidak
berisi loop.

Pohon adalah bentuk struktur data non-linier dan menggambarkan


interaksi hierarkis (interaksi satu ke banyak) antara elemen. Pohon dapat
digambarkan sebagai rangkaia node / node menggunakan satu elemen
tertentu yang dianggap Root & node lainnya. Pohon juga merupakan graf
asiklik, sederhana, terhubung yang tidak mengandung loop.

Pohon pencarian biner (bst) adalah pohon biner nullable, setiap


node harus memiliki pengenal/nilai. Nilai semua simpul subpohon kiri
selalu lebih kecil dari nilai akarnya, dan nilai subpohon kanan adalah
Nilai yang sama dengan atau lebih besar dari akar, Masing-masing
subpohon (kiri & kanan) itu sendiri merupakan pohon pencarian biner.

Struktur data terkait sangat krusial pada struktur pencarian,


Misalnya pada hal pencarian pada daftar, bila daftar tadi telah terdapat
status pesanan, proses pencarian akan lebih cepat bila kita Namun,
menggunakan daftar yang berdekatan dan melakukan pencarian biner
Jika kita ingin mengubah isi daftar (masukkan atau hapus),

Menggunakan daftar contigue bisa lambat karena proses penyisipan


dan Menghapus dalam daftar berkelanjutan memerlukan pemindahan
daftar tertaut, untuk menjadi operasi penyisipan atau penghapusan,
Anda hanya perlu mengatur penunjuk, etapi dalam n-linked list, kita tidak
bisa melakukan pointer acak sepanjang waktu, kecuali hanya sekali
menggunakan istilah lain hanya berurutan.

Pohon adalah graf terhubung yang tidak memiliki arah dan juga
tidak mengandung sirkuit. Pohon adalah graf tanpa arah G & memiliki n
node yang harus diselesaikan :

- Setiap pasang nodes dalam G terhubung dengan path tunggal

- G terhubung, tidak memiliki sirkuit, dan mempunyai n-1 edges

- G tidak memiliki sirkuit, penambahan 1 edge dapat membentuk


1 sirkuit

- G terhubung, akan terputus jika salah satu dari ujung-ujungnya


dihilangkan
Struktur pohon adalah cara untuk merepresentasikan struktur
hierarki grafis yang seperti pohon, meskipun pohon dalah deretan node
berdasarkan atas ke bawah. Namun konsep Tree dalam satu struktur
data nonlinier ini mendeskripsikan interaksi yg hirarkis antara elemen –
elemennya.

Gambar 1.1 pembentukan awal dari Tree.

Sebuah simpul tunggal, N ----> N


Subpohon N1,N2, …., NK -----> N
N … N N
N
2 . k 1
.
Tree yang baru terbentuk dari node N (sebagai Root) dan node
N1, N2,….Nk

Tree atau pohon adalah struktur data yg nir linear yg dipakai buat
mempresentasikan data yg bersifat hirarki antara elemen-elemennya.
Definisi tree yaitu formasi elemen yg keliru satu elemennya dianggap
root (akar) & elemen yg lain dianggap simpul ( node) yg terpecah
sebagai sejumlah formasi yg nir saling bekerjasama satu sama lain yg
dianggap sub-tree atau cabang
Gambar 1.2 Ilustrasi Tree

B. Asal Mula Penggunaan Teori Tree


Teori Tree ini sudah dipakai sebelumnya sang beberapa ilmuwan.
Teori pohon sudah poly dikembangkan buat mendukung penerapan graf
pada banyak sekali ilmu. Kirchoff (1824-1887) berbagi teori pohon buat
jaringan listrik. Arthur Cayley (1821-1895) menggambar diagram buat
menghitung isomer hidrokarbon jenuh. Sejak waktu itu, tree sudah
dipakai buat memecahkan kasus pada banyak sekali bidang ilmu. Teori
mengenai pohon relatif poly dikembangkan buat mendukung
implementasi menurut suatu graf pada banyak sekali bidang ilmu.
Kirchoff (1824 –1887) berbagi teori-teori pohon buat diterapkan pada
bidang jaringan listrik. Arthur Cayley (1821-1895) berbagi sebuah graf
dalam waktu mencacah isomer hidrokarbon jenuh.

Tree sangat berguna dalam computer science, di mana mereka


digunakan dalam berbagai algoritma. Contohnya tree digunakan untuk
membangun algoritma untuk menemukan item dalam daftar. Tree bisa
digunakan untuk mempelajari permainan seperti catur untuk membantu
menentukan strategi kemenangan untuk memainkan permainan ini.

Tree dapat digunakan untuk memodelkan program yang dieksekusi


menggunakan urutan keputusan. Membangun model ini dapat
membantu menentukan kompleksitas komputasi algoritma berdasarkan
urutan keputusan, seperti algoritma pengurutan. Proses membangun
sebuah pohon yang berisi setiap simpul dari sebuah graf, termasuk
penelusuran kedalaman-pertama dan pelacakan luas-pertama, dapat
digunakan untuk menjelajahi simpul-simpul dari sebuah graf secara
sistematis.

C. Jenis – Jenis Tree

1. Pohon (tree)

Pohon (tree) merupakan raf tak-berarah terhubung yang tidak


mengandung siklus. Gambar 1.3 merupakan perbedaan antara
pohon dan non-pohon ditunjukkan di bawah ini.

Gambar 1.3 Contoh perbedaan pohon dan bukan pohon


TEOREMA (Sifat Pohon).

Misalnya G = (V, E) merupakan graf tak berarah sederhana


dengan n simpul. Oleh karena itu, semua pernyataan berikut
ekuivalen:

1. G adalah pohon.

2. Setiap pasangan simpul di G dihubungkan oleh suatu lintasan.

3. G terhubung dan memiliki m = n – 1 rusuk.

4. G tidak mengandung sirkuit dan memiliki m = n – 1 sisi.

5. G tidak mengandung sirkuit, menambahkan tepi ke grafik hanya


akan membuat sebuah sirkuit.

6. G terhubung dengan jembatan di semua sisi.


Teorema tersebut dapat dinyatakan sebagai pengertian lain
dari sebuah pohon.

2. Pohon Berakar (Rooted Tree)

Pohon Berakar (Rooted Tree) merupakan Sebuah pohon,


pada mana satu simpul dipercaya menjadi akar, & sisi-sisinya
berarah, sebagai akibatnya sebagai graf berarah. Tanda panah
dalam akar pada sebuah pohon bisa dihilangkan sebagai
akibatnya akar pohon selalu dimulai menurut simpul paling atas &
mempunyai jalur yg selalu berjalan menurut atas ke bawah atau
menurut akar ke simpul terendah pada pohon misalnya dalam
Gambar 1.4.

Gambar 1.4 Pohon Berakar (rooted tree)

3. Pohon m-ary

Pohon m-ary adalah pohon berakar di mana setiap simpul


cabang memiliki paling banyak poli m anak. jika m=2, pohon
diklaim pohon biner. Pohon biner adalah pohon yang setiap
simpulnya memiliki anak paling banyak 2, kiri & kanan. Gambar
ketiga adalah model pohon biner. Pohon m-ary dikatakan sebagai
pohon biasa atau pohon penuh jika setiap simpul cabang memiliki
m . yang sempurna anak. Sebuah pohon m-ary lengkap
menggunakan tinggi h mempunyai m h daun. Gambar 1.lima
menampakan pohon terner lengkap menggunakan jumlah daun =
32 = 9.

Gambar 1.5 Pohon biner (binary Tree)

Gambar 1.6. Pohon m-ary/3-ary penuh

4. Pohon keputusan

Sebuah pohon keputusan adalah pemetaan dari kasus ke


solusi alternatif untuk masalah. Contoh Pohon keputusan yang
mengurutkan tiga elemen adalah seperti pada gambar 1.7.
Gambar 1.7. Pohon Keputusan pengurutan 3 elemen

5. Graf

Graf mempunyai konsep pohon. Pohon merupakan graf


terhubung yg nir mengandung siklus. Konsep pohon sebagai
krusial lantaran konsep ini bisa dipakai buat mendukung
penerapan graf pada aneka macam bidang ilmu pengetahuan.
Sedangkan spanning tree merupakan pohon pada graf yg memuat
seluruh simpul, berdasarkan setiap graf paling sedikit satu pohon
merentang bisa dibuat menggunakan nilai kofaktor yg sama
menggunakan jumlah cabang yg berakar dalam simpul tersebut.
Arborescence on pula adalah spanning arborescence.

Graf adalah kumpulan node dan kumpulan garis nonlinier


(sisi), yang mungkin hierarkis atau tidak. Padahal pada global
nyata, grafik acapkalikali dipakai misalnya bundar pertemanan yg
darinya kita mampu memberitahuakn berdasarkan satu sahabat
ke sahabat lainnya.

Dibandingkan menggunakan pohon yg mempunyai sisi


sebesar simpul-1, pada graf jumlah sisi jauh lebih bebas lantaran
tepi bisa dari berdasarkan simpul mana pun, bahkan self-loop.
Graf bisa dibedakan berdasarkan sisi, terdapat yg mempunyai
arah (berarah) & terdapat yg nir mempunyai arah (nir berarah).
Grafik terkadang memiliki biaya (bobot) di setiap sisi,
beberapa tidak (tanpa bobot). Bertujuan untuk menggunakan
lateral untuk menemukan jalur terpendek dengan
mempertimbangkan bobot.

Hal berikutnya yang perlu diperhatikan tentang grafik adalah


adjacency (simpul yang dekat dengan simpul lain). Kedekatan bisa
dilakukan dengan dua cara, yaitu:

- Adjacency List

Digunakan bila jumlah sisi mendekati jumlah minimum sisi


yang dapat dibuat.

- Adjacency Matrix

Digunakan bila jumlah sisi mendekati jumlah maksimum sisi


yang dapat dibuat. Ada dua metode traversal dalam grafik, yaitu:

- DFS (Depth First Search), Kunjungi node dengan


mengunjungi node terdalam/paling bawah, lalu cari di tempat lain,
sistem menggunakan tumpukan

- BFS (Breadth First Search), Sistem menggunakan antrian


dengan mengunjungi node dengan memperluas ke tepi.Berikut
adalah kode untuk melintasi grafik:

class Node(object):

def __init__(self,data):

self.data = data

self.adjacents = []

self.visited = False

class DepthFirstSearch(object):

def dfs(self, node):

stack = []
stack.append(node)

node.visited = True

print(node.data)

while stack:

currentNode = stack.pop()

for adjacent in currentNode.adjacents:

if adjacent.visited is False:

self.dfs(adjacent)

def bfs(self, node):

queue = []

queue.append(node)

node.visited = True

print(node.data)

while queue:

currentNode = queue.pop(0)

for adjacent in currentNode.adjacents:

if adjacent.visited is False:

queue.append(adjacent)

adjacent.visited = True

print(adjacent.data)
Graf adalah kumpulan node dan edge. Grafik G = (N, E), di di
mana N adalah himpunan node yang tidak kosong dan E adalah
himpunan sisi yang menghubungkan sepasang node.

Grafik digunakan untuk menggambarkan objek dan hubungan


diskrit diantara mereka. Graf G dimaksudkan sebagai pasangan
himpunan (V,E) dalam hal ini:

V = himpunan simpul tak kosong = { V1 , V2 , … ,Vn)

E = Himpunan tepi (tepi atau busur) yang menghubungkan


pasangan simpul = { e1 , e2 , … ,en) atau dapat ditulis dengan
singkatan G . notasi = (V,E)

Definisi tersebut menyatakan bahwa V tidak bisa nol,


sedangkan E bisa nol. Jadi, sebuah graf mungkin tidak memiliki
sisi, tetapi harus memiliki satu titik, setidaknya satu. Graf yang
hanya memiliki satu titik dan tidak memiliki sisi disebut graf trivial.

Gambar 1.8 (G1) graph sederhana, (G2) graph ganda, dan


(G3) graph semu

G1 adalah graf dengan:

V={1,2,3,4}
E={(1,2),(1,3),(2,3),(2,4),(3,4)}

G2 adalah graf dengan:

V={ 1,2,3,4 }
E={(1,2),(2,3),(1,3),(1,3),(2,4),(3,4),(3,4)} =
{e1,e2,e3,e4,e5,e6,e7}

G3 adalah graf dengan:

V={ 1,2,3,4 }
E={(1,2),(2,3),(1,3),(1,3),(2,4),(3,4),(3,4),(3,3)} =
{e1,e2,e3,e4,e5,e6,e7,e8}

Graf diklasifikasikan menjadi dua jenis menurut ada atau


tidaknya sisi dalam graf tersebut, yaitu:

a. Graf yang tidak terdapat lingkaran atau sisi disebut graf


sederhana. G1 pada Gambar 1.8 adalah contoh graf
sederhana.

b. Graf tak-sederhana (Unsimple Graph)

Graf yang setiap sisinya menunjuk pada satu arah disebut


graf tren. Gambar 1.8 adalah contoh graf berarah.

Grafik secara umum dapat dibagi menjadi dua jenis


berdasarkan arahnya samping, yaitu:

a. Graf Tak Berarah Graf yang tidak memiliki orientasi pada


sisi-sisinya dikatakan sebagai graf tak berarah. Tiga grafik pada
Gambar 1.8 adalah contoh graf tak berarah.

b. Graf berarah adalah graf yang setiap sisinya yang


menunjuk ke satu arah disebut graf berarah. Gambar 1.9 adalah
contoh graf berarah.
Gambar 1.9. Graph berarah dan graph ganda berarah

D. Definisi Binary Tree

Binary Tree adalah bentuk struktur data nonlinier yg


mendeskripsikan interaksi hierarkis (satu ke banyak) antar elemen.
Tree bisa didefinisikan menjadi formasi node, elemen eksklusif diklaim
root & node lain diklaim (diklaim subtree).

Dalam tree masih ada jenis-jenis tree yg mempunyai sifat khusus,


antara lain merupakan binary tree. Binary tree merupakan merupakan
pohon menggunakan kondisi setiap simpul (simpul) bisa mempunyai
sampai 2 subpohon, & ke 2 subpohon tadi wajib dipisahkan. Setiap
simpul dalam pohon biner dapat memiliki hingga dua anak, khususnya,
nama anak disebut kiri dan kanan.

Binary Tree adalah himpunan simpul yang terdiri dari dua subpohon
(berpisah), satu subpohon di sebelah kiri dan satu subpohon di sebelah
kanan. Urutan keluar maksimum untuk setiap node di pohon biner
adalah 2.

Binary Tree merupakan tree dengan syarat pada setiap simpul


dapat memiliki maksimal dua subpohon dan kedua subpohon tersebut
harus dipisahkan. Menurut definisi ini, setiap simpul dalam pohon biner
dapat memiliki hingga dua anak.

Implementasi Binary Tree dapat diterapkan dalam Pascal


menggunakan daftar tertaut ganda.
Gambar 1.10 Tree

Ada tiga jenis struktur Binary Tree, yaitu :

1. Strict Binary Tree dengan dua anak atau tanpa anak sama sekali

2. Completed Binary Tree dimana 2 anak tidak bisa menjumlahkan


anak di sebelah kanan, jika mereka memiliki 2 anak di sebelah
kanan mereka bisa menambahkan anak.

3. Perfect Binary Tree yang membutuhkan jumlah anak yang sama


di kiri dan kanan dan seimbang untuk semua segitiga.

Dalam Binary Tree mempunyai operasi yang perlu diketahui


sebelumnya, yaitu :

- Create : membuat pohon biner baru yang masih kosong.

- Clear : Menghapus pohon biner yang ada.

- Empty : Fungsi yang memeriksa apakah pohon biner masih


kosong.

- Insert : Menyisipkan simpul ke dalam pohon. Ada tiga opsi


tempel sebagai root, anak kiri, atau anak kanan. Pohon itu
harus kosong untuk ditempel sebagai batang.

- Find : Menemukan akar, induk, anak kiri, atau anak kanan dari
sebuah simpul. (Pohon tidak boleh kosong).
- Update : Mengubah konten simpul yang ditunjuk oleh penunjuk
saat ini. (Pohon tidak boleh kosong)

- Retrieve : Dapatkan konten simpul yang ditunjuk oleh penunjuk


saat ini. (Pohon tidak boleh kosong)

- DeleteSub : Menghapus subpohon (simpul dan semua turunan)


yang ditunjuk oleh arus. Pohon itu tidak boleh kosong. Pointer
saat ini kemudian dipindahkan ke induk dari node yang dihapus.

- Characteristic : Mengetahui ciri-ciri pohon, yaitu ukuran, tinggi,


dan panjang rata-ratanya. Pohon itu tidak boleh kosong..

- Traverse : Akses setiap node di pohon sekali. Akibatnya,


informasi yang disimpan di pohon berjalan secara linier.

Ada tiga jenis traversal, yaitu pre-order, in-order, dan post-order.


Langkah Lintas:

1. PreOrder : Cetak isi node yang dikunjungi, kunjungi Kiri Anak,


kunjungi Anak Kanan.

2. InOrder : Kunjungi Left Child, Cetak isi node dikunjungi, kunjungi


Anak Kanan.

3. PostOrder : Kunjungi Anak Kiri, Kunjungi Anak Kanan, mencetak


isi dari node yang dikunjungi.

Pohon biner adalah graf asiklik terhubung dimana setiap level


sesuai dengan penyusutan tidak lebih dari 3. Ini dapat ditunjukkan
bahwa di Pohon Biner apa pun, masih ada lebih banyak poli 2 atau
lebih node menggunakan level satu alih-alih yang masih ada
menggunakan tingkat tiga, namun sanggup masih ada nomor apa saja
menurut simpul menggunakan taraf 2. Sebuah Root Binary Tree adalah
sebuah graph yg memiliki satu menurut sudutnya menggunakan taraf
nir lebih menurut 2 menjadi akar.

Dengan akar yang dipilih, setiap sudut akan memiliki ayah yang
istimewa, & diatas 2 anak toh, sejauh ini masih ada Batasan informasi
untuk membedakan antara anak kiri atau anak kanan. ketika kita
singkirkan kebutuhan yang tidak terhubung, izinkan berbagai koneksi
ke komponen pada grafik, kita sebut struktur a Hutan.

Cara lain untuk mendefinisikan pohon biner adalah melalui definisi


rekursif dalam grafik hidup. Pohon biner dapat berarti:

- Satu sudut.

- Grafik yang dibuat dengan mengambil dua pohon biner,


menambahkan satu sudut, dan menambahkan satu panah langsung
dari sudut baru ke akar setiap pohon biner.

Pohon biner dapat dibangun sesuai dengan bahasa pemrograman


primitive dengan berbagai cara. Dalam bahasa yang menggunakan
catatan & huruf keterangan. Pohon biner secara khusus dibangun
menggunakan mencapai struktur simpul pohon yang berisi beberapa
data dan huruf informasi ke kiri dan kanan anak.

Terkadang pohon biner juga berisi pernyataan tertulis untuk ayah


khusus. jika sebuah simpul memiliki kurang dari 2 anak, beberapa
pointer anak diatur ke nilai nol tertentu atau ke node sentinel.

Pohon biner juga dapat disimpan sebagai struktur data implisit di


array, & jika pohonnya adalah pohon biner lengkap, metode ini tidak
membuang-buang tempat. Dalam pengaturan kedap air ini, jika simpul
memiliki indeks i, anak dapat ditemukan di indeks 2i+1 & 2i+2, bahkan
jika ayah (jika ada) ditemukan dalam indeks lantai ((i-1)/2).

Metode ini menguntungkan dalam hal poli penyimpanan tertutup


rapat dan memiliki sertifikat lokal yang lebih baik, terutama pada saat
perjalanan praorder.. Binary tree merupakan bentuk struktur data
nonlinier yg mendeskripsikan interaksi hierarkis (interaksi satu ke poly)
antar elemen. Sebuah pohon bisa didefinisikan menjadi gugusan node,
pada mana elemen eksklusif diklaim root & node lainnya (diklaim
subtree). Di antara pohon-pohon tadi masih ada beberapa pohon
menggunakan sifat khusus, termasuk pohon biner.

Pohon biner merupakan pohon menggunakan kondisi setiap simpul


(simpul) bisa mempunyai paling poly 2 subpohon & ke 2 subpohon tadi
wajib terpisah. Setiap node pada pohon biner bisa mempunyai paling
poly 2 anak, anak-anak eksklusif diklaim kiri & kanan.Pohon biner
dapat didefinisikan sebagai kumpulan node mungkin kosong atau
memiliki root dan subtree terpisah yang disebutdengan subpohon kiri
dan subpohon kanan.

Ciri-ciri pohon biner adalah:

- Setiap node memiliki paling banyak dua anak.

- Jumlah tertinggi dari sebuah node di pohon biner adalah dua.

- Jumlah maksimum simpul untuk level N = 2 n-1. Pohon biner


lengkap level 4 Banyaknya simpul yang memiliki daun = 8 dan
bukan daun termasuk akar = 7.

- Dalam pohon biner, mungkin tidak ada node.

Pohon biner lengkap tingkat-N adalah pohon apa saja biner, di


mana semua daun berada di level N dan semua node di atas kurang
dari N selalu memiliki cabang kiri dan kanan

Pohon biner adalah himpunan simpul yang terdiri dari 2 subpohon


(berpisah), satu subpohon kiri dan satu subpohon kanan. Derajat keluar
maksimum = 2 untuk setiap simpul dalam pohon biner.

Contoh :
Gambar 1.11 Contoh Pohon Biner

Binary tree merupakan graf asiklik yang terhubung di mana setiap


derajat kontraksi tidak lebih dari 3. Node sekunder. Root Binary Tree
adalah graf yang berakar pada sudut tidak lebih dari 2 derajat.

Dengan root yang dipilih, di setiap sudut akan mempunyai ayah


tertentu, tetapi lebih dari dua anak, dan sejauh ini ada informasi
terbatas untuk membedakan antara anak kiri dan kanan. Jika dihapus
persyaratan tidak terhubung, yang memungkinkan komponen dalam
grafik memiliki banyak koneksi, kami menyebut strukturnya sebagai
hutan.

Metode lainnya untuk mendeskripsikan pohon biner adalah melalui


definisi rekursif pada grafik waktu nyata. Pohon biner mungkin berarti:

 Sebuah sudut.

 Grafik yang terdiri dari dua pohon biner, tambahkan sudut, lalu
tambahkan panah ke akar setiap pohon biner pada sudut baru.
Binary tree bisa dibangun berdasarkan bahasa pemrograman
primitif pada beberapa cara. Gunakan bahasa catatan & surat
keterangan. Binary tree umumnya dibangun menggunakan merogoh
struktur simpul tree yg berisi beberapa data & surat keterangan ke
simpul anak kiri & kanan.

Terkadang binary tree jua berisi surat keterangan mengenai


ayahnya yg khas. apabila sebuah simpul mempunyai kurang
berdasarkan 2 child, atur beberapa penunjuk anak ke nilai nol spesifik
atau simpul sentinel.

Binary tree juga dapat disimpan dalam array sebagai struktur data
implisit, yang tidak memakan tempat jika pohonnya adalah pohon biner
penuh. Dalam pengaturan ketat ini, bila sebuah simpul mempunyai
indeks i, anak-anaknya bisa ditemukan dalam indeks 2i+1 & 2i+2,
meskipun induknya (bila ada) berada dalam level indeks ((i-1)/2 )
(menggunakan perkiraan akar mempunyai indeks kosong). Pendekatan
ini menerima manfaat berdasarkan poly penyimpanan kompak &
mempunyai surat keterangan lokal yg lebih baik, terutama selama
preorder traversal.

Gambar 1.12 Binary Tree


E. Binary Search Tree

Binary Search Tree (BST) Adalah Pohon Biner menggunakan


sifat bahwa semua anak kiri harus lebih kecil dari anak kanan &
orang tua. Juga semua anak benar harus lebih besar menurut
meninggalkan anak dan orang tua. Pohon pencarian biner dibuat
untuk dipecahkan kelemahan pada binary tree biasa yaitu kesulitan
dalam mencari/ pencarian titik eksklusif di pohon biner.

Robert C. Duvall, (2012) Pohon Pencarian Biner adalah


contoh penting setelah mengajarkan pengetahuan struktur. kami
memiliki kecenderungan untuk mengeksplorasi pendekatan baru
untuk memahami implementasi Pohon Pencarian Biner, ide-ide
viktimisasi dari Pemrograman Berorientasi Objek dan C++.

Pohon Pencarian Biner menggambarkan namun mengadopsi


pendekatan baru dan bahasa baru akan menyebabkan pendekatan
baru merenung tentang kerugian yang sudah dikenal. Michelle L.
Wynn, (2013) mempelajari tentang jaringan molekuler. Akibatnya,
ada kebutuhan penting untuk mengembangkan metodologi yang
masuk akal untuk membangun dan menganalisis jaringan molekuler
pada tingkat sistem.

Model matematika yang direkayasa dengan persamaan


diferensial kontinu metodologi yang sempurna karena mereka akan
memberikan gambaran yang dekat tentang dinamika jaringan.
Untuk menjadi kenabian, bagaimanapun, model persamaan
membutuhkan berbagai parameter yang apriori dan informasi ini
tidak pernah ada di pasaran.

Penyisipan dan penghapusan adalah tempat pohon


pencarian biner memiliki kesempatan untuk bersinar. Penyisipan
dan penghapusan efisien dalam pohon pencarian biner apakah itu
dibuat di awal, tengah, atau akhir daftar. Jelas, pohon pencarian
biner lebih unggul daripada array berurut atau tidak berurutan dalam
situasi yang memerlukan penyisipan dan penghapusan dalam posisi
acak. Tetapi operasi penyisipan dan penghapusan di pohon
pencarian biner memerlukan sedikit penjelasan jika Anda belum
pernah melihatnya sebelumnya. Untuk itulah bab selanjutnya, jadi
baca terus.

Pohon biner adalah "simpul eksternal" atau "simpul internal"


yang terhubung ke sepasang biner pohon yang disebut subpohon
kiri dan subpohon kanan simpul internal. Node internal sesuai
dengan gagasan kita tentang node, dan node eksternal secara
kasar sesuai dengan kiri atau kanan node yang kosong subpohon.
Istilah umum "simpul" mencakup simpul internal dan eksternal.

Setiap simpul internal selalu memiliki tepat dua anak,


meskipun anak-anak itu mungkin node eksternal, jadi kita juga
harus merevisi definisi yang bergantung pada jumlah anak node.
Kemudian, "daun" adalah simpul internal dengan dua anak simpul
eksternal dan "nonterminal" node” adalah node internal setidaknya
satu dari anak-anaknya adalah node internal. Akhirnya, sebuah
"pohon kosong" adalah pohon biner yang hanya berisi simpul
eksternal.

Diagram pohon dalam buku yang menggunakan definisi


formal ini menunjukkan baik internal maupun eksternal node.
Biasanya, node internal ditampilkan sebagai lingkaran, node
eksternal sebagai kotak persegi. Ketika pohon pencarian biner
diperkenalkan di bab terakhir, kami menggunakan indeks ke dalam
array untuk mereferensikan nilai item yang lebih kecil dan lebih
besar. Tapi di C, BST biasanya dibangun menggunakan petunjuk.
Ini adalah teknik yang lebih umum, karena petunjuk tidak terbatas
pada referensi dalam satu larik.
Contoh binary search tree umum :

Gambar , Binary Search Tree

Pada dasarnya operasi dalam binary search tree sama


dengan Binary tree biasa, pada binary tree menggunakan add,
peek, remove.

Pencarian biner cukup cepat. Misalkan kita ingin


mempercepatnya bagaimanapun caranya. Kemudian, yang jelas
target percepatan dalam h Pencarian biner dari array terurut 22 i di
atas adalah kondisi while dan perhitungan menentukan nilai i, min,
dan max . Jika kita bisa menghilangkan ini, kita akan memiliki teknik
yang lebih cepat secara bertahap, semuanya sama. Dan, ternyata,
kita bisa hilangkan keduanya, yang pertama dengan menggunakan
sentinel dan yang terakhir dengan perhitungan sebelumnya.

Mari kita pertimbangkan untuk menghitung i, min, dan max


terlebih dahulu. Pikirkan tentang sifat pilihan yang dibuat oleh
pencarian biner pada setiap langkah. Secara khusus, dalam
pencarian biner h dari yang dipesan array 22 i di atas,
pertimbangkan ketergantungan min dan max pada i. Apakah
mungkin untuk min dan max memiliki nilai yang berbeda untuk i dan
n yang sama?

Jawabannya adalah tidak. Untuk setiap i dan n yang


diberikan, min dan maks adalah tetap. Ini penting karena itu berarti
bahwa kita dapat mewakili seluruh "keadaan" dari pencarian biner
dari elemen-n array dengan variabel tunggal i. Dengan kata lain, jika
kita tahu i dan n, kita tahu semua pilihannya yang telah dibuat
sampai saat ini dan kita tahu dua kemungkinan pilihan i untuk
selanjutnya melangkah.
Ini adalah wawasan kunci dalam menghilangkan perhitungan.
Kita dapat menggunakan array di mana item diberi label dengan
dua kemungkinan pilihan berikutnya. Sebuah contoh ditunjukkan.
Mari kita lanjutkan dengan contoh kita tentang array yang berisi 16
bilangan bulat 100 hingga 115. Kami mendefinisikan entri dalam
array untuk memuat nilai item dan array indeks item untuk diperiksa
selanjutnya untuk nilai pencarian yang lebih kecil dan lebih besar
dari item:
23 h Entri pohon pencarian biner 23 i
/∗ Satu entri dalam pohon pencarian biner disimpan dalam
array. /
struct entri pohon biner {
nilai int; /∗ Item ini di pohon pencarian biner. /
int lebih kecil ; /∗ Indeks array item berikutnya untuk target
yang lebih kecil. /
int lebih besar ; /∗ Indeks array item berikutnya untuk target
yang lebih besar. /
};

Tentu saja, perlu mengisi nilai untuk lebih kecil dan lebih
besar. Beberapa saat refleksi harus memungkinkan Anda untuk
mengetahui satu metode untuk melakukannya. Inilah susunan
lengkapnya, untuk referensi:
const struct bin entri pohon biner[16] = {
{100, 15, 15}, {101, 0, 2}, {102, 15, 15}, {103, 1, 5}, {104, 15,
15}, {105, 4, 6}, {106, 15, 15}, {107, 3, 11}, {108, 15, 15}, {109, 8,
10}, {110, 15, 15}, {111, 9, 13}, {112, 15, 15}, {113, 12, 14}, {114,
15, 15}, {0, 0, 0},
};

Untuk saat ini, pertimbangkan hanya 15 baris pertama


bins[]. Dalam baris ini, kolom pertama adalah nilai, nilai item, dan
kolom kedua dan ketiga masing-masing lebih kecil dan lebih
besar. Nilai 0 sampai 14 untuk yang lebih kecil dan lebih besar
menunjukkan indeks elemen bins[] berikutnya untuk memeriksa.
Nilai 15 menunjukkan “elemen tidak ditemukan”. Array elemen[15]
tidak digunakan untuk menyimpan data.

Coba cari key == 110 di bins[], mulai dari elemen 7, titik


tengahnya:
1. i == 7: 110 > bins[i].value == 107, so let i = bins[i] larger, or 11.
2. i == 11: 110 < bins[i].value == 111, so let i = bins[i]. smaller, or
10.
3. i == 10: 110 == bins[i].value == 110, so we’re done.

Kita dapat mengimplementasikan pencarian ini dalam kode C.


Fungsi ini menggunakan idiom C umum dari menulis untuk (;;)
untuk loop "tak terbatas": (Pencarian pohon pencarian biner
disimpan sebagai array 24) /∗ Mengembalikan i sedemikian rupa
sehingga array[i].value == key, atau -1 jika key tidak ada dalam
array[].

array[] adalah array dari n elemen yang membentuk pohon


pencarian biner, dengan akarnya di array[n / 2], dan spasi untuk
nilai (n + 1) di akhir. / int array pohon pencarian biner (struktur entri
pohon biner array [], int n, kunci int) {
int saya = n / 2;
array[n].nilai = kunci;
untuk (;;)
if (kunci > array[i].nilai) i = array[i].lebih besar ;
else if (kunci < array[i].nilai) i = array[i].smaller ;
lain kembali saya != n ? saya :
1;
}

Pemeriksaan kode di atas harus mengungkapkan tujuan


dari bins[15]. Ini digunakan sebagai nilai sentinel, memungkinkan
pencarian untuk selalu dihentikan tanpa menggunakan tes
tambahan pada setiap iterasi loop. Hasil pencarian biner
augmentasi dengan nilai "pointer" seperti lebih kecil dan lebih
besar adalah disebut pohon pencarian biner.

Gambar 1.13 Diagram Ilustrasi Binary Search Tree

Diagram ini menggambarkan contoh pohon pencarian biner


dari bab sebelumnya. Itu lingkaran atau simpul di bagian atas,
berlabel 107, adalah titik awal pencarian apa pun. Karena itu, ini
disebut akar pohon. Node yang terhubung dengannya di bawah ke
kiri, berlabel 103, adalah root's anak kiri, dan simpul 111 ke kanan
bawahnya adalah anak kanannya. Anak kiri nod berkorespondensi
menjadi lebih kecil dari BST berbasis array dari bab sebelumnya,
dan anak kanan sesuai untuk lebih besar.

Beberapa node, seperti 106 di sini, tidak memiliki anak.


Simpul seperti itu disebut daun atau simpul terminal. Meskipun
tidak ditampilkan di sini, node juga mungkin hanya memiliki satu
anak, baik di sisi kiri atau kanan. Sebuah node dengan setidaknya
satu anak disebut nonterminal simpul.
Setiap simpul dalam pohon pencarian biner, secar
konseptual, adalah akar dari pohonnya sendiri. Pohon seperti itu
disebut subpohon dari pohon yang memuatnya. Anak kiri dari
sebuah simpul dan secara rekursif semua dari anak-anak anak itu
adalah subpohon dari simpul, yang disebut subpohon kiri dari
simpul tersebut. Syarat subpohon kanan didefinisikan sama untuk
sisi kanan node. Misalnya, di atas, node 104, 105, dan 106 adalah
subpohon kanan dari simpul 103, dengan 105 sebagai akar
subpohon.
Sebuah BST tanpa node disebut pohon kosong. Kedua
subpohon dari semua bilangan genap node di BST di atas adalah
pohon kosong. Dalam pohon pencarian biner, anak kiri dari
sebuah simpul, jika ada, memiliki nilai yang lebih kecil dari node,
dan anak kanan dari node memiliki nilai yang lebih besar. Istilah
pohon biner yang lebih umum, di sisi lain, mengacu pada struktur
data dengan bentuk yang sama seperti pohon pencarian biner,
tetapi yang tidak selalu berbagi properti ini. Ada juga yang terkait,
tetapi berbeda, struktur hanya disebut "pohon".
Dalam buku ini, semua pohon biner kami adalah pohon
pencarian biner, dan buku ini tidak akan membahas pohon biasa
sama sekali. Akibatnya, kita akan sering agak longgar dalam
terminologi dan menggunakan istilah "pohon biner" atau "pohon"
ketika "pohon pencarian biner" adalah istilah yang tepat.

F. Balanced Tree
Sebuah pohon biner seimbang adalah satu set node yang
memiliki node yang seimbang atau satu perbedaan. Dengan Biner
Seimbang Cari Pohon, kita bisa membangun pohon menggunakan
ketinggian minimum. Untuk menentukan ketinggian, kita dapat
menggunakan rumus:

O(log n)
Gambar . Balanced Binary Tree

Contoh Pohon Pencarian Biner Seimbang adalah AVL.


Pohon AVL adalah Pohon Pencarian Biner yang memiliki perbedaan
tinggi/aporisme level 1 antara subpohon kiri & subpohon kanan. AVL
Pohon ada untuk menyeimbangkan Pohon Pencarian Biner. Dengan
AVL Tree, waktu pencarian data/node dapat dipercepat pada proses
AVL. 2 contoh pohon yang termasuk dalam biner seimbang pohon
pencarian, yaitu:

- AVL Tree

- Red Black Tree (RBT)

AVL adalah pohon pencarian biner self-balancing dengan selisih


maksimum 1 dalam jumlah node antara subpohon kiri dan subpohon
kanan (atau tingginya sama atau selisihnya 1).
Not AVL Tree, lantaran balance factor tertingginya dua, sedangkan
kondisi AVL merupakan selisihnya aporisma 1

Cara menentukan Height dan Balance Factor :

Height :

- Jika node (root) tidak memiliki subtree heightnya = 0

- Jika node adalah leaf, top = 1

- Jika simpul dalam, maka top = puncak tertinggi dari anak + 1

Faktor Keseimbangan:

selisih atas antara anak kiri dan kanan, jika tidak ada anak, dianggap 0.
Operasi Pohon AVL: Penyisipan

Memasukkan node dalam AVL sama dengan memasukkan node dalam


biner mencari pohon, di mana node baru diposisikan sebagai daun.
Setelah memasukkan node baru, itu harus diseimbangkan Kembali ke
arah sesuai dengan simpul baru di sisipan atau arah terdalam. Tapi
umumnya, arah terdalam adalah arah menurut simpul yang baru saja
dimasukkan.

Ada 4 hal yang umumnya terjadi saat operasi insert dilakukan, yaitu:

asumsikan T adalah simpul yang harus diseimbangkan kembali

- Kasus 1: simpul terdalam terletak di subpohon kiri berdasarkan anak kiri


T (kiri-kiri)

- Kasus 2: simpul terdalam terletak di subpohon kanan berdasarkan anak


kanan T (kanan-kanan)

- Kasus 3: simpul terdalam terletak di subpohon kanan berdasarkan anak


kiri T (kanan-kiri)

- Kasus 4: simpul terdalam terletak di subpohon kiri oleh anak kanan T


(kiri-kanan)

Ke 4 perkara tadi bisa diselesaikan menggunakan melakukan rotasi

- Kasus 1 & dua menggunakan unmarried rotation

- Kasus three & four menggunakan double rotation

Single Rotation

Single rotation dilakukan apabila searah, kiri-kiri atau kanan-kanan

Gambaran Single Rotation


Single Rotation

berdasarkan contoh diatas, kiri-kiri karena dari 30 ke 22 ke kiri, dan dari 22


ke 15 ke kiri juga

Double Rotation

Double rotation dilakukan apabila searah, kiri-kanan atau kanan-kiri.

Gambaran Double Rotation :

Step 1 (Rotasi pertama)

kasus diatas adalah left-right


Step 2 (Rotasi kedua)

kasus diatas, left-left

AVL Tree Operations : Deletion

Operasi penghapusan node sama misalnya di Binary Search Tree, yaitu


simpul yang dihapus digantikan oleh simpul terbesar di subpohon kiri atau
simpul terkecil di subpohon kanan. jika itu adalah daun yang dihapus,
maka pasti hapus saja. Namun jika node yang dihapus memiliki balita
kemudian anak menggantikannya. Tapi setelah operasi penghapusan
selesai, periksa kembali apakah pohon itu seimbang atau belum, jika
belum maka harus di rebalancing rumah. Metode keseimbangan itu sama
misalnya penyisipan.
delete node 60

Node fifty five nir seimbang, lantaran anak kiri zero & anak kanan dua,
selisih dua. diseimbangkan menggunakan unmarried rotation (left-left)
lantaran fifty five ke sixty five kiri & sixty five ke 70 kiri akan tetapi, node 50
sebagai nir seimbang, pada subtree kiri four & subtree kanan dua

diseimbangkan menggunakan double rotation (kiri-kanan) dikarenakan


berdasarkan 50 ke 25 kiri & 25 ke 40 kanan
AVL yang sudah balance

Red Black Tree (RBT)

Suatu tree dikatakan RBT apabila :

- setiap node memiliki warna (hitam atau merah)

- root berwarna hitam

- eksternal node berwarna hitam

- node merah tidak memiliki anak merah

- setiap route memiliki jumlah simpul hitam sama dengan route lainnya

Berikut contoh RBT :


RBT operations : Insertion

aturan insertion :

- node baru berwarna merah

- node merah tidak boleh memiliki anak merah

Apa yang harus dilakukan jika simpul merah memiliki simpul balita merah?
Memeriksa paman/paman berdasarkan simpul merah (anak)

a. jika paman berwarna merah, maka ubah warnanya menjadi jelas &
paman sebagai hitam, & agung membedakan merah.

b. jika paman berkulit hitam, lakukan rotasi tunggal/ganda, lalu


penyelesaian rotasi, membedakan hitam, anak merah
c. apabila nir mempunyai paman, maka defaulnya merupakan hitam
(dicermati berdasarkan outside nodenya). sebagai akibatnya mengikuti
anggaran kedua (uncle hitam)

RBT operations : Deletion

Deletion RBT sama misalnya deletion dalam AVL, aturannya : anggap M =

node yg pada delete & C = node yg menggantikan

a. jika M merah, diganti dengan C yang berwarna hitam

b. jika M hitam & C merah, maka M diganti C & C berubah warna menjadi
hitam

c. jika M hitam dan C hitam, kita lakukan pemisalan kembali :

C = N,

P = parent N,

S = sibling N,

Sl = left child S,

Sr = right child S

perhatikan siblingnya :

1. apabila S merah, ubah rona N & P (tukar rona), selanjutnya rotate pada
P

2. jika S hitam & Sl, Sr hitam, ubahlah S menjadi merah

3. jika S hitam & Sl atau Sr salah satunya adalah merah maka lakukan
single/double rotation

2-3 Tree
dua-tiga tree adalah sebuah struktur informasi dimana setiap inner
nodenya (bukan daun) merupakan 2-node atau 3-node & seluruh daunnya
berada pada degree yg sama

- dua-node adalah suatu node yg mempunyai 1 information & dua anak

- tiga-node adalah suatu node yg mempunyai dua information & three


anak

information-information yg disimpan setiap node dalam dua-three tree


harus telah berurutan.

contoh 2-3 Tree

2-3 Tree Operations : Search

Operasi looking dalam 2-three tree sama misalnya dalam BST, sebagai
akibatnya hanya perlu membandingkan information yg dicari
menggunakan information yg terdapat dalam node. Misalkan K adalah
simpul dicari & N adalah simpul yang akan dibandingkan menggunakan
pohon, maka jika K lebih kecil dari N, operasi pencarian berlanjut ke
subpohon kiri N tetapi jika K lebih besar dari N, maka operasi mencari
terus ke subpohon kanan N. Ini berlanjut sampai K = N, atau K ditemukan.
2-3 Tree Operations : Insertion

Aturan insertion :

1. anggap node yang di insert adalah key

2. kunci akan ditempatkan pada daun. a) jika daun adalah 2-simpul, maka
kunci dimasukkan ke dalam daun, sehingga daun menjadi tiga simpul
sebagai hasilnya. b) jika daunnya adalah tiga simpul, maka ambil nilai
tengah menurut A, B, & kunci (A adalah informasi-1 pada daun, & B
adalah informasi-2 pada daun) & Dorong nilai tengah ke induknya

3. jika pada saat aturan kedua induknya bukan 2-simpul, tetapi tiga-simpul,
tentukan pergi nilai tengah lalu tekan pergi ke orang tua

4. apabila dalam saat anggaran ke 2 & three nir mampu dilakukan karena
determine hingga ke rootnya merupakan three-node, maka tentukan
pulang median, lalu median tadi akan dibentuk root baru.

2-three Tree Operations : Deletion

Aturan deletion :

1. Misal node yang dihapus adalah key

2. Delete sama seperti BST, yaitu digantikan oleh leafnya

3. apabila leaf tiga-node, maka ambil keliru satu information untuk


menggantikan kunci, misal BST terbesar berdasarkan subtree left atau
terkecil berdasarkan subtree right

4. apabila leaf dua-node, maka :

- apabila figure berdasarkan leaf merupakan three-node, maka ambil satu


information berdasarkan figure. lalu kita perhatikan balik siblingnya. a)
apabila sibling threenode, maka ambil satu information lalu push dalam
figure, supaya figure balik sebagai three-node, b) apabila sibling dua-
node, maka abaikan figure sebagai dua-node, & satukan node tadi
menggunakan siblingnya

- apabila figure berdasarkan leaf adalah dua-node, diperhatikan siblingnya.


a) apabila sibling three-node, ambil satu information berdasarkan figure &
push satu.

b) jika sibling 2-node, maka satukan sibling dengan figure.

G. Istilah Pada Tree


1. Predesesor

Sebuah node di atas node tertentu. (Contoh: B adalah


predesesor dari E dan F)
2. Succesor

Sebuah node di bawah sebuah node. (Contoh: E dan F


adalah succesor dari B)

3. Ancestor

Semua node yang mendahului sebuah node dan berada pada


jalur yang sama. (Contoh: A dan B adalah nenek moyang dari F)

4. Descendant

Semua node pada jalur yang sama setelah node. (Contoh: F


dan B adalah nenek moyang dari A)

5. Parent

Predesor adalah satu tingkat lebih tinggi dari node. (Contoh:


B adalah induk dari F)

6. Child

Succesor level berikutnya dari sebuah node. (Contoh: F


adalah anak dari B)

7. Sibling
Sebuah simpul yang memiliki ayah yang sama dengan
sebuah simpul. (Contoh: E dan F bersaudara)

8. Subtree

Bagian dari pohon yang berupa node dan turunannya


(misalnya: subpohon B, E, F dan subpohon D, G, H)

9. Size

Jumlah node di pohon. (Contoh: ukuran gambar pohon di


atas = 8)

10. Height

Level/Jumlah level di tree. (Contoh: Tinggi = 3 untuk gambar


pohon di atas)

11. Root (Akar)

Sebuah simpul khusus di pohon yang tidak ada


pendahulunya (Contoh: A)

12. Leaf (Daun)

Sebuah node di pohon yang tidak memiliki daun. (Contoh:


Node E, F, C, G, H)

13. Degree (Derajat)

Jumlah node anak dari sebuah node. (Contoh: Node A


memiliki derajat 3 dan Node B memiliki derajat 2)

H. Operasi Tree

Operasi Operasi Tree dalam Struktur Data memiliki banyak


Operasi yang digunakan yaitu :

1.      Create()

2.      Clear()

3.      Empty()
4.      Insert()

5.      Traverse()

6.      PreOrder

7.      InOrder

8.      PostOrder

 Create()
Fungsi ini yaitu suatu fungsi yang menciptakan tree kosong baru,
yang biasanya berisi inisialisasi variabel pohon, nilainya Null
ditulis seperti ini:

Pohon = NULL;

 Clear()

Fungsi clear merupakan fungsi yang menghilangkan


semua elemen tree dalam pengaplikasiannya, cukup
menambahkan sintax tree=NULL; di fungsi Clear()

 Empty()

Fungsi ini mengetahui jika pohon dalam program kosong.


Sintaks Kosong dalam pemrograman C++ dapat ditulis sebagai
berikut:

int isEmpty(Tree *pohon){

if(pohon == NULL) return 1;

else return 0;
}

 Insert

Fungsi tersebut adalah fungsi yang secara otomatis


menambahkan node secara rekursif ke pohon. Jika datanya
akan dimasukkan lebih besar dari elemen root, itu akan
ditempatkan di node sebelah kanan, sebaliknya jika datanya
lebih kecil itu akan ditempatkan di node kiri. Sedangkan untuk
data pertama akan menjadi elemen root. Berikut gambar
ilustrasinya Sisipan:

 Transverse ()

Fungsi ini adalah operasi kunjungan (data kunjungan) ke


node di pohon di mana masing-masing node akan dikunjungi
sekali. Jenis Traverse di Pohon Konsep sebagai berikut, yaitu::

1. PreOrder

2. InOrder

3. PostOrder

 PreOrder
Melintasi proses yang melakukan tahap cetak simpul
dikunjungi, kunjungi simpul kiri, kunjungi simpul kanan. Mengikuti
Berikut ilustrasi PreOrder dan Algoritma pada TraverseFunction:

 InOrder

Proses Traverse yang melaksanakan tahapan kunjungi left


node, cetak node yang dikunjungi, kunjungi right node. Berikut
Ilustrasi InOrder dan Algoritma dalam Fungsi Traverse :
 PostOrder

Proses Traverse yang melakukan tahapan kunjungi simpul


kiri, kunjungi simpul kanan, cetak simpul yang dikunjungi. Berikut
Ilustrasi PostOrder dan Algoritma dalam Fungsi Traverse :

Berikut ini adalah Full Source Code Konsep Pohon pada


Struktur Data Bahasa Pemrograman Bahasa C++ :
I. Jenis – Jenis Binary Tree
A. Full Binary Tree
Pohon binari yang pada tiap simpul atau nodenya ( kecuali
daun) mempunyai dua anak dan setiap subtree nya harus
mempunyai panjang path yang sama.

B. Complete Binary Tree,


Hampir mirip dengan Full Binary Tree, akan tetapi tiap
subtree boleh mempunyai panjang path yang berbeda-beda.
Node atau simpul kecuali leaf memiliki 0 atau 2 anak.
C. Skewed Binary Tree
Pohon Binari yang semua simpul atau nodenya(kecuali
daun) hanya mempunyai satu anak.

D. Rooted Tree
Pohon berakar merupakan pohon pada mana simpul sudah
didefinisikan menjadi akar & setiap tepi memilih menjauh menurut
akar. Pohon berakar merupakan pohon yang simpulnya dipercaya
menjadi akar & tepinya diorientasikan sebagai akibatnya sebagai graf
berarah.

Pohon berakar adalah pohon dengan simpul khusus yang diberi


label sebagai "akar" pohon. Akar berfungsi sebagai titik referensi
untuk simpul lain di pohon. Dalam diagram, kita biasanya menyimpan
akar di atas dan membuat daftar simpul lain di bawahnya. Gagasan
ini sangat berguna dalam ilmu komputer untuk bekerja dengan
struktur data berbasis pohon.

Pada gambar, simpul akar ditunjukkan dengan batas hitam.Di


bawah ini adalah beberapa istilah berguna yang terkait dengan pohon
berakar. Cabang hanyalah nama lain yang diberikan untuk tepi
pohon. Kedalaman simpul adalah jumlah cabang dalam lintasan dari
akar ke simpul. Jadi kedalaman root itu sendiri adalah nol.

Level suatu simpul adalah jumlah simpul dalam lintasan dari akar
ke simpul. Ini hanya satu lebih dari kedalaman simpul. Tingkat akar
adalah 1.
Anak dari simpul v1 adalah setiap simpul v2 yang terhubung
dengannya sedemikian rupa sehingga d(v2)=d(v1)+1, di mana d(v)
menyatakan kedalaman simpul v. v1 disebut induk dari v2. Biasanya,
dalam diagram, kita menjaga simpul induk di atas simpul anaknya.

Pohon berakar adalah graf berarah T memiliki dua syarat, yaitu:

1. Jika arah sisi pada T diabaikan, hasil graf tak berarah adalah
pohon.

2. Hanya ada satu titik R sehingga input ke R adalah 0 dan


koordinat titik lainnya adalah 1. Titik R disebut akar dari pohon
berakar.

Ada beberapa terminologi pada pohon berakar yaitu :

 Anak (Child atau Children) dan Orangtua (Parent)

 Lintasan (Path)

 Saudara Kandung (Sibling)

 Subpohon (Subtree)

 Derajat (Degree)

 Daun (Leaf)

 Simpul Dalam (Internal Nodes)

 Aras (Level) atau Tingkat

 Tinggi (Height) atau Kedalaman (Depth)

Pohon berakar memiliki sifat-sifat utama yaitu;

 Jika pohon memiliki n simpul, maka jumlah rusuk atau rusuknya


adalah (n-1)
 Terdapat simpul khusus yang disebut akar, jika derajat simpul >=
0, dan derajat masuk = 0
 Ada simpul yang disebut daun, jika simpul tersebut memiliki
derajat = 0, derajat = 1.
 Setiap node rootedmemiliki level atau level, dimulai dari root
pada level = 0 hingga daun level ke-n terendah.
 Node dengan level yang sama disebut saudara kandung atau
Striblings.
 Pohon tertinggi dalam tinggi, kedalaman atau tinggi. Berat
tanaman atau weight adalah jumlah daun pada suatu pohon.
 Pohon mempunyai berat merupakan banyaknya daun pada
Pohon.

Pohon berakar adalah pohon di mana simpul ditentukan dari


semua simpul, simpul ini disebut akar, dan jalurnya jauh dari akar.
akar (Andhany, 2018:70).

Terminologi pada rooted tree yaitu :

1. Root, child atau children, parent


Mengetahui sifat dari teori ini adalah bahwa sifat pohon berakar
adalah jika suatu pohon memiliki banyak simpul, maka jumlah ruas
yang menghubungkan simpul-simpul tersebut adalah 1. Dari sifat
pertama, simpul yang dimiliki oleh graf pohon adalah tepat sebagai
akar dari suatu simpul Diagram pohon, mis. Suatu simpul disebut
root jika derajat masuknya 0 dan derajat keluar = 0, maka b, c, d
adalah anak atau anak dari simpul a (wardana, 2019: 3).
Gambar Rooted Tree

2. Lintasan (path)
Dalam suatu graph terdapat istilah graph, salah satunya
adalah lintasan, lintasan adalah sisi atau sisi dari suatu graph
yang menghubungkan himpunan titik-titik pada graph tersebut,
lintasan dari a ke m pada suatu graf adalah a-d-g-km.

3. Daun (leaf)
Maka graf T juga mempunyai simpul yaitu Disebut daun,
suatu simpul disebut daun kalau derajat masuknya = 1 dan tidak
ada derajat keluarnya, maka simpul tersebut adalah daun dalam
graf itu (Wardana, 2019: 3).

4. Upa Pohon
Gambar Upa-pohon

5. Derajat (degree)
Derajat suatu graph adalah total derajat simpul-simpulnya.
Derajat suatu simpul adalah jumlah titik yang terhubung ke simpul
tersebut. Misalnya, derajat simpul a atau simpul akar dari graf
pohon berakar adalah d(a) = 3, dan derajat itu sendiri dibagi
menjadi dua, derajat masuk dan derajat keluar.

6. Aras level atau tingkat

Gambar Aras
Ciri selanjutnya dari graf pohon berakar urutan-T adalah
memiliki hierarki atau hierarki, yang dimulai dari akar pada level 0
dan menuju ke simpul terendah, daun pada level ke-n. Jika
terdapat simpul yang sama derajatnya, maka kedua simpul
tersebut disebut bersaudara (Anak).

7. Tinggi (height) atau Kedalaman (depth)


Ketinggian atau kedalaman peta pohon yang di-root berasal
dari hierarki atau hierarki maka ketinggian atau kedalaman dari
graf digambar adalah 4 (wardana, 2019 : 3).

Contoh struktur data yang terdiri dari root dan subtree dalam
urutan hierarkis.

Jadi dari contoh level 0 diatas anda hanya bisa mengerjakan 1


simpul saja, karena jika memperhatikan rumus 2 pangkat ke-n maka
didapat 2 pangkat 0 = 1. Dan di level 1 hanya bisa membuat 2 node,
karena 2 pangkat 1 = 2. Cari tahu juga berapa banyak node dalam
sebuah pohon dari contoh di atas yaitu terdapat 3 level (0,1,2), maka
kita bisa mendapatkan jumlah semua node di pohon tersebut, yaitu 2
dari 3 -1 = 7.

E. Kunjungan Pada Binary Tree


Mengakses pohon biner adalah operasi yang biasanya dilakukan
hanya sekali pada pohon biner (traversal pohon biner). Operasi ini
dibagi menjadi 3 bentuk:

1. Kunjungan secara Preorder (Depth First Order) yaitu:

a. Cetak isi simpul yang dikunjungi(simpul akar)

b. Kunjungi cabang kiri

c. Kunjungi cabang kanan

2. Kunjungan secara Inorder (symetric Orde) yaitu :

a. Kunjungi cabang kiri

b. Cetak isi simpul yang dikunjungi (Simpul Akar)

c. Kunjungi cabang kanan

3. Kunjungan Secara Postorder, yaitu :

a. Kunjungi Cabang Kiri

b. Kunjungi Cabang Kanan

c. Cetak isi simpul yang dikunjungi (Simpul Akar)

Isi Ketiga metode akses di atas adalah dengan mengunjungi


cabang kiri terlebih dahulu, kemudian mengunjungi cabang kanan.
Dengan orientasi ini, ketiga akses di atas disebut left-to-right (LRO).
Jika cabang kanan dikunjungi terlebih dahulu, diikuti oleh cabang kiri,
orientasi ini disebut right-to-left orientation (RLO).
F. Aplikasi Dari Tree

1. Aplikasi Binary Search Tree

Mencari item dalam daftar adalah salah satu tugas terpenting yang
muncul dalam ilmu komputer. Tujuan utama kami adalah menerapkan
algoritme penelusuran yang menemukan item secara efisien saat
barang benar-benar dipesan. Hal ini dapat dicapai melalui
penggunaan pohon pencarian biner, yang merupakan pohon biner di
mana setiap anak dari suatu simpul ditetapkan sebagai anak kanan
atau kiri, simpul memiliki lebih dari satu anak kanan atau anak kiri, dan
setiap simpul diberi label dengan kunci, yang merupakan salah satu
item. Selanjutnya, simpul diberikan kunci sehingga kunci simpul
adalah keduanya lebih besar dari kunci semua simpul di subpohon
kirinya dan lebih kecil dari kunci semua simpul di subpohon kanannya.

Prosedur rekursif ini digunakan untuk membentuk pohon


pencarian biner untuk daftar item. Dimulai dari pohon yang hanya
berisi satu simpul, yaitu akar. Item pertama dalam daftar ditetapkan
sebagai kunci dari akar. Untuk menambahkan item baru, pertama-
tama bandingkan dengan kunci simpul yang sudah ada di pohon,
mulai dari akar dan bergerak ke kiri jika item kurang dari kunci dari
simpul masing-masing jika simpul ini memiliki anak kiri, atau bergerak
ke kanan jika item lebih besar dari kunci simpul masing-masing
apabila simpul ini memiliki anak yang tepat. Jika item tersebut lebih
kecil dari verteks yang bersangkutan dan verteks ini tidak memiliki
anak kiri, maka sebuah verteks baru dengan item ini sebagai kuncinya
dimasukkan sebagai anak kiri baru. Demikian pula, ketika item lebih
besar dari simpul masing-masing dan simpul ini tidak memiliki anak
kanan, maka simpul baru dengan item ini sebagai kuncinya
dimasukkan sebagai anak kanan baru. Kami mengilustrasikan
prosedur ini dengan Contoh 1.

Contoh 1 :
Bentuk pohon pencarian biner untuk kata-kata matematika, fisika,
geografi, zoologi, meteorologi, geologi, psikologi, dan kimia
(menggunakan urutan abjad).

Solusi :

Gambar 1. Constructing a Binary Search Tree

Gambar 1. menampilkan langkah-langkah yang digunakan untuk


membangun pohon pencarian biner ini. Kata matematika adalah kunci
dari akar kata. Karena fisika muncul setelah matematika (dalam urutan
abjad), tambahkan anak kanan dari akar dengan fisika kunci. Karena
geografi datang sebelum matematika, tambahkan anak kiri dari akar
dengan geografi kunci. Selanjutnya, tambahkan anak kanan dari
simpul dengan fisika kunci, dan tetapkan sebagai zoologi kunci,
karena zoologi muncul setelah matematika dan setelah fisika.
Demikian pula, tambahkan anak kiri dari simpul dengan fisika kunci
dan tetapkan simpul baru ini sebagai meteorologi kunci. Tambahkan
anak kanan dari simpul dengan geografi kunci dan tetapkan simpul
baru ini sebagai geologi kunci. Tambahkan anak kiri dari simpul
dengan zoologi kunci dan tetapkan sebagai psikologi kunci.
Tambahkan anak kiri dari simpul dengan geografi kunci dan tetapkan
kimia kuncinya. Untuk hasilnya adalah seperti gambar dibawah ini :
Setelah memiliki pohon pencarian biner, kita membutuhkan cara
untuk menemukan item di pohon pencarian biner, serta cara untuk
menambahkan item baru. Algoritma 1, sebuah algoritma penyisipan,
sebenarnya melakukan kedua tugas ini, meskipun tampaknya hanya
dirancang untuk menambahkan simpul ke pohon pencarian biner.
Artinya, Algoritma 1 adalah prosedur yang menempatkan item x dalam
pohon pencarian biner jika ada, dan menambahkan simpul baru
dengan x sebagai kuncinya jika x tidak ada.

Dalam pseudocode, v adalah simpul yang sedang diperiksa dan


label(v) mewakili kunci dari simpul ini. Algoritma dimulai dengan
memeriksa root. Jika x sama dengan kunci v, maka algoritma telah
menemukan lokasinya dari x dan berakhir; jika x lebih kecil dari kunci
v, kita pindah ke anak kiri v dan ulangi prosedurnya; dan jika x lebih
besar dari kunci v, kita pindah ke anak kanan v dan ulangi prosedur.
Jika pada setiap langkah kita mencoba untuk pindah ke anak yang
tidak ada, kita tahu bahwa x tidak ada di pohon, dan kita
menambahkan simpul baru sebagai anak ini dengan x sebagai
kuncinya.

ALGORITHM 1 Locating an Item in or Adding an Item to a Binary


Search Tree.

procedure insertion(T : binary search tree, x: item)

v := root of T

{a vertex not present in T has the value null}

while v ≠ null and label(v) ≠ x

if x < label(v) then

if left child of v ≠ null then v := left child of v

else add new vertex as a left child of v and set v := null

else

if right child of v ≠ null then v := right child of v


else add new vertex as a right child of v and set v := null

if root of T = null then add a vertex v to the tree and label it with x

else if v is null or label(v) ≠ x then label new vertex with x and let v be
this new vertex

return v {v = location of x}

Mengilustrasikan penggunaan Algoritma 1 untuk menyisipkan item


baru ke dalam pohon pencarian biner.

Contoh 2 :

Gunakan Algoritma 1 untuk memasukkan kata oseanografi ke dalam


pohon pencarian biner pada Contoh 1.

Solusi : Algoritma 1 dimulai dengan v, simpul yang diperiksa, sama


dengan akar T , jadi label(v) = matematika. Karena v = nol dan label(v)
= matematika < oseanografi, kita selanjutnya periksa anak kanan dari
root. Anak kanan ini ada, jadi kami menetapkan v, simpul di bawah
pemeriksaan, untuk menjadi anak yang tepat ini. Pada langkah ini kita
memiliki v = nol dan label(v) = fisika > oseanografi, jadi kami
memeriksa anak kiri dari v.

Anak kiri ini ada, jadi kami menetapkan v, simpul di bawah


pemeriksaan, untuk anak kiri ini. Pada langkah ini, kita juga memiliki v
= null dan label(v) = metereology < oseanografi, jadi kami mencoba
memeriksa anak kanan dari v. Namun, anak kanan ini tidak ada, jadi
kami menambahkan simpul baru sebagai anak kanan dari v (yang
pada titik ini adalah simpul dengan kunci metereology) dan kami
menetapkan v := null. Kita sekarang keluar dari perulangan while
karena v = null. Karena root dari T tidak null dan v = null, kami
menggunakan pernyataan else if di akhir algoritma untuk beri label
simpul baru kita dengan oseanografi kunci.

Kami sekarang akan menentukan kompleksitas komputasi dari


prosedur ini. Misalkan kita memiliki pohon pencarian biner T untuk
daftar n item. Kita dapat membentuk pohon biner lengkap U dari T
dengan menambahkan simpul yang tidak berlabel kapan pun
diperlukan sehingga setiap simpul dengan kunci memiliki dua anak.
Ini diilustrasikan pada Gambar 2. Setelah kita melakukan ini, kita
dapat dengan mudah menemukan atau menambahkan item baru
sebagai kunci tanpa menambahkan titik.

Perbandingan yang paling dibutuhkan untuk menambahkan item


baru adalah panjang jalur terpanjang di U dari akar menjadi daun.
Simpul dalam dari U adalah simpul dari T. Oleh karena itu U memiliki
n simpul internal. Kita sekarang dapat menggunakan bagian (ii) dari
Teorema 4 dalam Bagian 11.1 untuk menyimpulkan bahwa U memiliki
n + 1 daun. Menggunakan Akibat wajar 1 dari Bagian 11.1, kita
melihat bahwa tinggi U lebih besar dari atau sama dengan h = log(n +
1) . Akibatnya, perlu untuk melakukan setidaknya perbandingan log(n
+ 1) untuk menambahkan beberapa item. Perhatikan bahwa jika U
seimbang, tingginya adalah log(n + 1) (menurut Akibat wajar 1 dari
Bagian 11.1).

Jadi, jika pohon pencarian biner seimbang, mencari atau


menambahkan item tidak memerlukan lebih dari perbandingan log(n
+ 1). Pohon pencarian biner bisa menjadi tidak seimbang saat item
ditambahkan ke dalamnya. Karena pohon pencarian biner yang
seimbang memberikan kompleksitas kasus terburuk yang optimal
untuk pencarian biner, algoritma telah dirancang untuk
menyeimbangkan kembali pohon pencarian biner saat item
ditambahkan. Pembaca yang tertarik dapat berkonsultasi dengan
referensi tentang struktur data untuk deskripsi algoritma tersebut.
Gambar 1. Menambahkan Vertikal Tidak Berlabel untuk
Membuat Pohon Pencarian Biner Penuh.

2. Aplikasi Decision Trees

Pohon berakar dapat digunakan untuk memodelkan masalah


di mana serangkaian keputusan mengarah ke solusi. Misalnya,
pohon pencarian biner dapat digunakan untuk menemukan item
berdasarkan serangkaian perbandingan, di mana setiap
perbandingan memberi tahu kami apakah kami telah menemukan
item tersebut, atau apakah kami harus pergi kanan atau kiri dalam
subpohon.

Sebuah pohon berakar di mana setiap simpul internal sesuai


dengan keputusan, dengan subpohon di simpul-simpul ini untuk
setiap kemungkinan hasil keputusan, disebut keputusan pohon.
Solusi yang mungkin dari masalah ini sesuai dengan jalur ke daun
dari akar ini pohon. Contoh 3 mengilustrasikan aplikasi pohon
keputusan

Contoh 3 :
Misalkan ada tujuh koin, semuanya dengan berat yang sama, dan
koin palsu yang beratnya kurang dari yang lain. Berapa
penimbangan yang diperlukan dengan menggunakan timbangan
untuk menentukan mana dari delapan uang logam yang palsu?
Berikan algoritma untuk menemukan koin palsu ini.

Solusi : Ada tiga kemungkinan untuk setiap penimbangan pada


timbangan. Dua panci bisa memiliki berat yang sama, panci
pertama bisa lebih berat, atau panci kedua bisa lebih berat.
Akibatnya, pohon keputusan untuk urutan penimbangan adalah
pohon 3-ary.

Setidaknya ada delapan daun di pohon keputusan karena


ada delapan hasil yang mungkin (karena masing-masing dari
delapan koin dapat menjadi koin pemantik palsu), dan setiap hasil
yang mungkin harus diwakili oleh setidaknya satu daun. Jumlah
penimbangan terbesar yang diperlukan untuk menentukan koin
palsu adalah tinggi pohon keputusan. Dari Akibat wajar 1 Bagian
11.1 dapat disimpulkan bahwa ketinggian pohon keputusan
setidaknya log3 8 = 2. Oleh karena itu, setidaknya diperlukan dua
penimbangan. Dimungkinkan untuk menentukan koin palsu
menggunakan dua penimbangan. Pohon keputusan yang
menggambarkan bagaimana hal ini dilakukan ditunjukkan pada
Gambar 3.

Gambar 1. Pohon Keputusan untuk Menemukan Koin


Palsu. Koin palsu ditampilkan dalam warna di bawah
setiap penimbangan akhir
Contoh 4 : Kami menampilkan pada Gambar 1. pohon keputusan
yang mengurutkan elemen daftar a, b, c.

Gambar 1. Sebuah Pohon Keputusan untuk Menyortir Tiga


Elemen Berbeda

Kompleksitas pengurutan berdasarkan perbandingan biner


diukur dari segi jumlah perbandingan yang digunakan. Jumlah
perbandingan biner terbesar yang pernah dibutuhkan untuk
mengurutkan daftar dengan n elemen memberikan kinerja
terburuk dari algoritma. Perbandingan yang paling banyak
digunakan sama dengan panjang jalur terpanjang di pohon
keputusan yang mewakili prosedur pengurutan. Di lain kata-kata,
jumlah perbandingan terbesar yang pernah dibutuhkan sama
dengan tinggi keputusan pohon. Karena ketinggian pohon biner
dengan n! daun setidaknya log n! (menggunakan Corollary 1 in
Bagian 11.1), setidaknya diperlukan perbandingan log n!, seperti
yang dinyatakan dalam Teorema 1.

Teorema 1 :

Algoritma pengurutan berdasarkan perbandingan biner


membutuhkan setidaknya perbandingan [log n!].
Kita dapat menggunakan Teorema 1 untuk memberikan
perkiraan Omega besar untuk jumlah perbandingan yang
digunakan dengan algoritma pengurutan berdasarkan
perbandingan biner.

Coolary 1: Jumlah perbandingan yang digunakan oleh algoritma


pengurutan untuk mengurutkan n elemen berdasarkan biner
perbandingannya adalah (n log n).

Konsekuensi dari Corollary 1 adalah bahwa algoritma pengurutan


berdasarkan perbandingan biner yang menggunakan (n log n)
perbandingan, dalam kasus terburuk, untuk mengurutkan n
elemen adalah optimal, dalam arti bahwa tidak ada algoritma lain
yang memiliki kompleksitas kasus terburuk yang lebih baik.
Jumlah rata-rata perbandingan yang digunakan oleh algoritma
pengurutan berdasarkan perbandingan biner adalah kedalaman
rata-rata daun di pohon keputusan yang mewakili algoritma
pengurutan.

 Implementasi Binary Tree :


a. Array
b. Linked List

 Implementasi BT pada array :


- Indeks pada array menyatakan nomor kode
- Node root mempunyai indeks array = 1
- Leftchild suatu node dengan nomor p adalah (2p)
- Rightchild suatu node dengan nomor p adalah (2p+1)
- Parent dari suatu node dengan nomor p adalah (p div 2)

 Implementasi Binary Tree dengan Linked List


Uses crt;
Type
Pointer =^Cell;
Cell = Record
Kiri : Pointer;
Info : Char; (* boleh diganti dg integer / tipe data lain *)
Kanan : Pointer;
End;
BST = Pointer;

Misalkan Node N berada pada lokasi K, maka


 DATA [K] adalah isi data dari N
 LEFT [K] adalah lokasi left Child dari N
 RIGHT [K] adalah lokasi right Child dari N

2. Traversal
A. Definisi Traversal
Traversal adalah sebuah proses melakukan kunjungan pada
setiap node pada suatu binary tree tyaitu paripurna satu kali. Dengan
melakukan kunjungan secara lengkap, maka akan diperoleh urutan
berita secara linier yang tersimpan dalam sebuah binary tree.

Traversal adalah proses menelusuri satu persatu elemen-


elemen data pada struktur.Penelusuran ini tentunya disertai suatu
proses eksklusif dalam node yg didatangi contohnya pencetakan,
pencarian, komputasi, atau lain sebagainya. Proses-proses apa pun
itu secara generik bisa kita sebut proses “mengunjungi”.

Cara-cara Penelusuran

- Penelusuran preorder:
Pertama mengunjungi root berdasarkan tree (subtree) tadi
lalu secara rekursif penelusuran preorder node-node subtree kiri
& secara rekursif penelusuran preorder node-node subtree
kanan.

- Penelusuran postorder:
Pertama secara rekursif penelusuran postorder node-node
subtree kiri, lalu secara rekursif penelusuran postorder node-node
subtree kanan, & mengunjungi root berdasarkan tree (subtree)
tadi.

- Penelusuran inorder:
Pertama secara rekursif penelusuran preorder node-node
subtree kiri lalu mengunjungi root berdasarkan tree (subtree) tadi
& secara rekursif penelusuran preorder node-node subtree
kanan.

B. Traversal Pada Binary Tree


Traversal pohon adalah proses mengevaluasi simpul pohon
secara sistematis menggunakan model pohon. Berbagai jenis
traversal pohon, termasuk model traversal depth-first dan breadth-
first, membantu insinyur, ilmuwan data, dan lainnya memahami
tentang struktur pohon.

Pohon parse dapat mengevaluasi node dengan cara tertentu


menggunakan opsi traversal pohon preorder, inorder, atau
postorder. Sebagai contoh, katakanlah seseorang membangun
pohon biner dengan kedalaman tiga simpul dan satu simpul penuh
di setiap titik.

Dengan traversal pohon berurutan, program akan mengatur


jumlah node dalam output menggunakan instruksi termasuk traversal
kiri, evaluasi, dan traversal kanan. Dalam format ini, personal
komputer akan pindah ke ujung pohon & mencatat node bawah
terlebih dahulu, lalu pulang ke taraf tengah atau ke 2 & merekam
node tersebut, & akhirnya mengakhiri cabang pada node tunggal
teratas loka seluruh node lainnya. merupakan.

Traversal pohon merupakan utilitas generik pada pengaturan


teknologi digital menggunakan struktur pohon, termasuk jaringan
saraf yg bisa dijalankan menggunakan memakai pohon keputusan.

Penggunaan lain berdasarkan traversal pohon merupakan apa yg


dianggap model "hutan acak", pada mana aneka macam pohon
membentuk "hutan" kolektif buat analisis statistik yg kuat. Demikian
juga, traversal pohon bekerja menggunakan menganalisis simpul
berdasarkan pohon eksklusif & mengusut isinya.
Traversal pohon biner adalah proses mengunjungi setiap simpul
berdasarkan pohon secara sistematik masing-masing satu kali,
dimana dalam setiap simpul yg dikunjungi dilakukan suatu proses
pengolahan data

Ada tiga cara traversal :


a. Traversal postorder (LRS)
Proses pertama kali beranjak kearah subpohon bagian kiri,
selanjutnya subpohon sebelah kanan & terakhir simpul (simpul root)
b. Traversal inorder (LSR)
Proses dimulai berdasarkan subpohon sebelah kiri selanjutnya
simpul root & selanjutnya subpohon sebelah kanan.
c. Traversal preorder ( SLR )
Proses dimulai berdasarkan simpul (root) kearah subpohon kiri,
selanjutnya beranjak ke subpohon kanan (SLR).
S = proses mengunjungi simpul.
L = bergerak kearah subpohon bagian kiri.
R = bergerak kearah subpohon bagian kanan.

Traversal lain (traversal level order)


Kunjungan simpul dimulai dari simpul bertingkat satu, hingga
simpul bertingkat n.Traversal dalam binary tree adalah proses
mengikuti pohon biner, dan setiap simpul dikunjungi hanya sekali.

Ada 3 aktivitas dalam arah horizontal pohon biner:


1. Akses root
2. Lintasi subpohon kiri
3. Lintasi subpohon kanan

Beberapa pola pencarian dalam Binary Tree Traversal:

1. Pre - Order - Traversal


Sebuah traversal preorder adalah pencarian yang dimulai dengan
semua node induk, kemudian berlanjut pada node anak mulai dari
node anak kiri, kemudian node anak kanan.
2. In – Order - Transversal
Agar lateral, pencarian dimulai pada simpul anak di sebelah kiri,
kemudian berlanjut pada simpul induk, dan akhirnya pada simpul
anak di sebelah kanan.

3. Post – Order - Transversal


Post Order Transversal memulai pencarian dari node anak kiri,
kemudian node anak kanan, dan pencarian terakhir adalah untuk
node induk.

C. Metode Traversal
Ada 3 metode pada traversal, seperti berikut :
1. INORDER
 Inorder Traversal
1. Cetak semua data secara rekursif di subpohon kiri
2. Cetak data di root
3. Cetak semua data secara rekursif di subpohon kanan pesan terlebih
dahulu

Hasil :
5 7 8 10 12 15 16 18
Implementasi Bahasa C :

void inOrder(IntBSTree * pBST) {


if(pBST!=NULL) {
inOrder(pBST->left);
printf("%d->",pBST->data);
inOrder(pBST->right);
}
printf("\n");
}
INORDER ( BSTNodePTR pointer)
if pointer != NULL
INORDER( LChild(pointer))
VISIT (pointer)
INORDER( Rchild(pointer))

2. PREORDER
 Preorder Traversal
1. Cetak data di root
2. Cetak semua data secara rekursif di subpohon kiri
3. Cetak semua data secara rekursif di subpohon kanan pesanan pos

Hasil :
10 8 5 7 16 12 15 18
Implementasi Bahasa C :
PREORDER ( BSTNodePTR pointer)
if pointer != NULL
VISIT (pointer)
PREORDER( LChild(pointer))
PREORDER( Rchild(pointer))

3. POSTORDER
 Postorder Traversal
1. Cetak semua data secara rekursif di subpohon kiri
2. Cetak semua data secara rekursif di subpohon kanan
3. Cetak data di root

Hasil :
7 5 8 15 12 18 16 10

Implementasi Bahasa C :
POSTORDER ( BSTNodePTR pointer)
if pointer != NULL
POSTORDER( LChild(pointer))
POSTORDER( Rchild(pointer))
VISIT (pointer)
D. Algoritma Binary Tree Traversal
Konsep algoritma yang digunakan adalah :
 Kurangi dan taklukkan: pendekatan desain algoritmik dengan
mengurangi masalah menjadi beberapa submasalah yang lebih kecil,
tetapi hanya menangani Hanya bekerja pada submasalah.
Dibandingkan dengan membagi dan menaklukkan yang menangani
semua submasalah masalah dan menggabungkan semua solusi
untuk setiap submasalah.

 Reduction dan Conquest terdiri dari dua fase:


1. Reduksi: Mengurangi beberapa masalah menjadi jumlah masalah
yang lebih kecil (b dua sub-pertanyaan).
2. Conquest: Memproses subproblem secara rekursif. tidak ada fase
Bersama dalam pengurangan dan penaklukan.

 Tiga varian reduksi dan penaklukan:


1. Kurangi konstanta: terbitkan ukuran instans dikurangi konstanta.
Setiap iterasi dari algoritma adalah sama. Biasanya konstan = 1.
2. Dikurangi dengan faktor konstan: ukuran instance masalah
berkurang. Setiap iterasi dari algoritma menggunakan konstanta
yang sama. Biasanya faktor konstan = 2
3. Turunkan menurut variabel: ukuran instance masalah berkurang
menurut variable Iterasi algoritma.

 Kurangi dan taklukkan algoritma:


1. Bagilah kumpulan koin menjadi dua subkelompok masing-
masing [n /2] koin. jika tidak ganjil, maka tidak ada bagian yang
berisi koin.
2. Timbang kedua subkelompok pada neraca.
3. Jika beratnya sama, berarti sisa uang logam tersebut palsu.
4. Jika bobotnya tidak sama, ulangi proses untuk himpunan bagian
yang berbeda. Lebih ringan (salah satu koin di dalamnya palsu).

Ukuran persoalan selalu berkurang dengan sebuah faktor setengah


dari ukuran awal mulanya. Hanya setengahnya saja diproses,
setengah bagian lainnya tidak diproses.

 Jumlah penimbangan yang dilakukan adalah:


0, n=1
T(n) =
1+T(n/2) , n>1

 Penyelesaian relasi rekurens T(n) mirip seperti binary


search:
T(n) = 1 + T(n/2) = …. + O ( 2 log n)

Terdapat tiga cara untuk melakukan Binary Tree Traversal,


yaitu:
1. Traversal preorder (depth first order)
Yang dilaksanakan dengan mencetak isi node yang dikunjungi
lalu melakukan kunjungan ke subtree kiri dan ke subtree kanan.
Algoritma umum traversal preorder adalah sebagai berikut:
- Jika tree kosong, maka keluar
- Proses node root.
- Traverse subtree kiri secara preorder.
- Traverse subtree kanan secara preorder.

2. Traversal inorder (symmetric order)


Yang dilaksanakan dengan jalan melakukan kunjungan ke
subtree kiri, mencetak isi titik yang dikunjungi, lalu melakukan
kunjungan ke subtree kanan. Adapun algoritma umum traversal
inorder adalah sebagai berikut:
- Jika tree kosong, maka keluar.
- Traverse subtree kiri secara inorder.
- Proses node root.
- Traverse subtree kanan secara inorder.

3. Traversal postorder
Yang dilaksanakan dengan jalan melakukan kunjungan ke
subtree kiri, kemudian ke subtree kanan, dan selanjutnya mencetak
isi titik yang dikunjungi. Adapun algoritma umum traversal inorder
adalah sebagai berikut:
- Jika tree kosong, maka keluar.
- Traverse subtree kiri secara postorder.
- Lintasi subpohon di sebelah kanan menggunakan metode
pasca-pemesanan.
- Proses simpul akar.

Semua algoritma jalur di atas (preorder, inorder, postorder) ini


adalah algoritma rekursif yang sebenarnya dapat dieksekusi
berulang kali menggunakan tumpukan.

Contoh: Diberikan rumus ((A * B) (C ^ D)) + (E / F)


Bentuk pohon biner. Jika Anda mengakses pohon biner di
atas:
• Buat pre-order: + * A B ^ C D / E F
• Dihasilkan dalam urutan berikut: A * C C ^ D + E / F
• Backorder yang dihasilkan: A B + C D ^ E F / +

E. Contoh Percobaan Binary Tree Traversal


Dalam percobaan dan latihan ini, terdapat kelas TNode, sebuah
kelas, seperti yang ditunjukkan pada Gambar 2. Pohon biner dan kelas
menguji pohon biner. Kelas TNode mewakili simpul di atas Pohon biner.
Kelas Pohon Biner memiliki metode berikut:

- preorderDisplay (TNode t): Untuk traversal pohon dengan


preorder
- inorderDisplay (TNode t): Untuk traversal pohon melalui
pesanan
- postorderDisplay (TNode t): Untuk traversal pohon melalui
postorder
- metode buildTreeExample (), buildTree0 (), buildTree1 (),
buildTree2 (), buildTree3 (): Bangun pohon berdasarkan studi
kasus.
- copyTree (TNode t): Salin pohon biner
- clearTree (TNode t): Menghapus pohon biner
- tinggi (TNode t): Menghitung kedalaman pohon biner

Class Test BinaryTree untuk menguji class Binary Tree yang sudah
dibuat.
Gambar 2. Class Diagram dari praktikum Binary Tree

Percobaan 1 : Pembacaan Binary Tree dengan Traversal Inorder

Percobaan 2 : Pembacaan Binary Tree dengan Traversal Preorder


Percobaan 3: Pembacaan Binary Tree dengan Traversal Postorder

Selanjutnya ujilah method inorderDisplay(TNode<T> t),


preorderDisplay(TNode<T> t), postorderDisplay(TNode<T> t).

3. Spanning
A. Definisi Spanning
Spanning tree terdiri berdasarkan seluruh node & beberapa
edge pada graf, sebagai akibatnya seluruh node terhubung satu
sama lain. Pohon merentang merupakan graf terhubung yg
diperoleh menggunakan memutus sirkuit pada graf tersebut.
Bobot spanning tree adalah jumlah dari bobot edge, dan
spanning tree dari graf G adalah spanning tree minimum, yaitu
spanning tree dengan total bobot edge terkecil di graf G.

Langkah-langkah membuat spanning tree adalah sebagai


berikut:

a. Langkah pertama adalah mencari nilai biaya terkecil.


Biayanya rendah dan biaya yang dibutuhkan lebih murah.
Karena biaya di atas minimal 2 maka harus didahulukan
sebelumnya.

b. Langkah ke 2 merupakan mencari nilai porto terkecil.


Memiliki tiga nilai batas mini merupakan antara CE, DE, &
AF. Kita bisa memakai keliru satu tepi ini. aku ambil tepi
antara DE.

c. Langkah ketiga, tepi dengan biaya paling rendah sekarang


menjadi CE dan AF. Untuk mencari nilai spanning tree wajib
menciptakan branch/tree, jadi aku memakai AF edge
lantaran bila aku merogoh edge CE, spanning tree
menciptakan cycle. Secara teori, bila spanning tree
menciptakan loop, biayanya akan lebih besar. melewati
Makanya aku pilih edge AF, izin biayanya murah.

d. Langkah keempat merupakan mencari nilai porto yg lebih


murah. Lantaran nilai cos 4 telah nir ada, aku mencari cara
lain porto yg lebih murah. Ada rusuk BC, BE, FE. Jadi aku
sewenang-wenang merogoh sisi BC, FE atau BE. Saya
menentukan Edge BC.

e. Langkah 5, hasil akhir dari spanning tree terlihat, yaitu yang


harus Anda lakukan adalah menghubungkan tepi FE. Karena
nilai biayanya paling murah jika dibandingkan dengan nilai
dari biaya lainnya.

f. Kesimpulannya, apabila kita akan menciptakan rute spanning


tree kita, yg wajib kita lakukan merupakan menemukan nilai
porto terkecil & lalu nir mengulang lantaran akan boros.

2. Jumlahkan nilai semua biaya menggunakan rumus untuk


menghitung total biaya di atas:

Σ Cost = cost1 + cost2 + cost3 + cost4 + cost5

= 2 + 4 + 4 + 5 +5

= 20

Dalam pohon konsep, ada banyak jenis yang dapat


digunakan untuk menemukan solusi dari masalah nyata. Salah
satunya adalah pohon merentang yang telah diterapkan pada
berbagai bidang kehidupan sehari-hari, menurut Saxena & Urooj
(2018), pohon merentang minimum dalam graf berarah dapat
digunakan untuk menyelesaikan masalah yang berkaitan dengan
salesman keliling.

Spanning tree digunakan untuk desain jaringan, analisis


cluster, analisis jaringan otak dan penyimpanan data asam amino
dari struktur protein (Lakshmi & Meyyappan, 2017; Kumar &
Kumar, 2015). Penelitian Wayangkau (2015) menunjukkan bahwa
diagram dapat digunakan untuk menggambarkan pemasangan
jaringan distribusi air. Penelitian Anggraeni (2015) menunjukkan
bahwa pohon merentang minimum dapat dicari menggunakan
algoritma Sollin.

Penelitian Arifanti (2017) menunjukkan bahwa penggunaan


pohon merentang maksimum dengan bobot terkait dapat
memfasilitasi visualisasi efek perubahan penggunaan lahan.
Seperti yang ditunjukkan oleh Aziza, dkk (2014), pohon matriks
dapat digunakan untuk menentukan jumlah pohon merentang
untuk graf Roda W dan Kipas F.

Pada gambar, menggunakan algoritma Prim untuk


membangun pohon merentang minimum menghemat 222 km
kabel (Sam & Yuliani)., 2016; Hayu, Yuliani, & Sam (2017).
Penjelasan di atas menunjukkan banyak aplikasi graf terkait
pohon merentang dalam kehidupan sehari-hari. Pohon
merentang dalam graf adalah pohon yang memuat semua simpul
di G yang memuat seluruh titik pada G.

Penelitian Raharjo (2009) menunjukkan bahwa metode edge


exchange digunakan untuk menentukan jumlah spanning tree
untuk graf berarah sederhana, yang juga dapat dicari dengan
menggunakan matriks in-degree.
Dari hasil dan pembahasan penelitian sebelumnya, peneliti
menyimpulkan bahwa langkah yang dilakukan untuk membangun
pohon merentang untuk graf berarah kurang efisien. Dapat
diterapkan pada berbagai masalah yang sudah dijelaskan. Dalam
pembahasan ini, saya hanya terbatas pada menentukan jumlah
pohon merentang pada graf berarah sederhana, yaitu seperti
pohon.

Sebuah pohon di yang memuat seluruh titik disebut pohon


pembangun atau spanning-tree. Pada spanning-tree terdapat
sebuah branch danchord. Branch adalah sebuah sisi yang
terdapat pada sebuah spanning-tree. Sedangkan chord adalah
sebuah sisi yang tidak dapat ditemukan dalam sebuah spanning-
tree, tetapi berada dalam graf .

Gambar 3.1 Spanning – tree dari Graf G

B. Minimum Spanning Tree


Pohon merentang minimal adalah pohon yang dapat
diidentifikasi secara grafis. Graf berarah dan tidak berarah
merupakan subgraf yang setiap simpul/simpulnya saling
terhubung. Suatu graf dapat memiliki pohon merentang yang
berbeda. Di setiap tepi, dapat mengatur bobot untuk memilih nilai.

Masing-masing bobot ini akan dibandingkan menggunakan


bobot lain yang menunjuk ke node berikutnya, dan kemudian
bobot terkecil akan dipilih. Hal ini akan terus dilakukan hingga
mencapai node tujuan. Minimum spanning tree adalah teknik
untuk mencari jalur koneksi yang secara bersamaan dapat
menghubungkan semua titik jaringan hingga tercapai jarak
minimum.

Masalah pohon rentang minimum mirip dengan kasus rute


terpendek, kecuali bahwa tujuannya adalah untuk
menghubungkan semua node dalam jaringan sehingga panjang
total cabang minimal.Jaringan yang didapatkan
merentangkan(menghubungkan) seluruh titik pada jaringan tadi
dalam total jeda (panjang) minimum.mendeteksi terjadinya
kesalahan, namun nir bisa mendeteksi kesalahan apa yg terjadi.
Lebihlanjut bila terdapat 2 bit dipertukarkan, parity cek nir bisa
mendeteksi error.

Pohon merentang minimum juga termasuk model masalah


optimasi jaringan, yang merupakan varian dari masalah jalur
terpendek, perbedaannya adalah jalur yang dicari, yaitu
menentukan tepi yang menghubungkan titik-titik pada jaringan
untuk mendapatkan panjang tepi total minimum dan tidak
memuat loop atau loop apa pun.

Minimum Spanning Tree merupakan graf terhubung yang


diperoleh dari memutus sirkuit dalam graf, tidak memiliki arah,
dan memiliki bobot paling minimal.
Gambar 3.2 Minimum Spanning Tree Berbobot 20

Ada berbagai macam algoritma untuk memperoleh


Minimum Spanning Tree, yaitu :

1. Prim’s
Langkah-langkahnya yaitu :
 Mengambil edge (T) dengan bobot terkecil pada tree.
 Mengambil edge atau tepi yang bersisian dengan
node/simpul di T dengan bobot minimum yang
menambah node/simpul baru yang tidak
membentuksirkuit pada Tree.
 Dan ulangi langkah 2 diatas sebanyak n-2 kali.
Gambar 3.3 Langkah – langkah minimum spanning tree dengan prim’s

2. Kruskal
Langkah-langkahnya yaitu :
 Graf pada awalnya hanya terdiri dari nodes saja.
 Tambahkan edges/tepi berdasarkan bobot yang
paling rendah dan yang ditambahkan tidak
membentuk sirkuit.
 Dan ulangi langkah kedua sebanyak n-1 kali.
Gambar 3.4 Langkah – Langkah minimum spanning tree dengan
kruskal

C. Contoh Spanning Tree


Perhatikan gambar berikut :

Bagaimanakah cara membuat minimum spanning tree


pada jaringan diatas :

Langkah-langkah dalam membangun spanning tree adalah


sebagai berikut:

a. Langkah pertama, cari nilai cost yang terkecil. Dengan cost yang
kecil maka biaya yang dibutuhkan lebih murah. Karena cost
diatas yang terkecil nilainya 2 maka harus didahulukan terlebih
dahulu.

b. Langkah kedua, mencari nilai cost yang terkecil pula. Terdapat 3


nilai edge yang kecil yaitu antara CE, DE, & AF. boleh
mempergunakan keliru satu dari edge tersebut. Contohnya
diambil edge antara DE.

c. Langkah ketiga, sekarang edge yang costnya terkecil tinggal CE


& AF. Untuk mencari nilai spanning tree harus membangun
cabang/pohon maka mempergunakanlah edge yang AF, karena
bila mengambil edge CE maka spanning tree akan membangun
sebuah loop. Secara teori bila spanning tree membangun sebuah
loop maka costnya menjadi lebih besar. Oleh karenanya diambil
edge AF agar costnya menjadi murah.

d. Langkah keempat, mencari nilai cost yang lebih murah. Karena


nilai cosnya bernilai 4 sudah tidak ada, maka saya dicari
alternative cost yang lebih murah. Terdapat edge BC, BE, FE.
Maka diambil edge BC, FE, atau BE secara sembarang. Misalnya
mengambil edge BC.

e. Langkah kelima, hasil akhir dari spanning tree sudah terlihat yaitu
tinggal menghubungkan edge FE. Karena nilai costnya yang
paling murah dibandingkan memakai nilai cost yang lainnya.

f. Kesimpulan, bila ingin membangun route spanning tree, yang


harus dilakukan adalah mecari nlai cost yang terkecil, lalu jangan
membangun suatu loop karena akan terjadi pemborosan.
Menghitung total cost diatas memakai cara menambahkan nilai
semua cost memakai rumus :
Σ Cost = cost1 + cost2 + cost3 + cost4 + cost5
= 2 + 4 + 4 + 5 +5
= 20

D. Spanning Tree Protocol


Pada RouterOS v6.41 dalam mikrotik telah dibubuhi
fitur MSTP (Multiple Spanning Tree Protocol) pada interface
bridge yg mana menggunakan fitur ini kita sanggup
mencegah adanya trafik looping pada jaringan layer2.
Sebenarnya telah terdapat teknologi yg serupa yaitu (R)STP
tetapi menggunakan MSTP ini kita sanggup pakai buat
management trafik looping dalam VLAN & selain itu MSTP
pula sanggup dipakai buat Layer2 Redudancy dan Load-
balance buat jaringan VLAN.

Secara generik prosedur sistem menurut MSTP nir


jauh tidak sama menggunakan (R)STP & pula konsep
menurut (R)STP sanggup diterapkan pula dalam MSTP. Oleh
karenanya direkomendasikan buat memeriksa terlebih dahulu
perihal (R)STP sebelum mencoba implementasi MSTP ini.
Untuk (R)STP sanggup dilhat dalam artikel sebelumnya
disini.

Pada implementasi (R)STP, buat BPDU akan dikirim


ke seluruh physical interface buat mendeteksi adanya trafik
looping & bila terdeteksi maka akan melakukan 'Blocking'
trafik agar nir melewatkan trafik. Namun, bila masih ada trafik
looping dalam VLAN maka (R)STP nir akan sanggup
mendeteksinya. Dengan penggunaan MSTP ini nantinya kita
akan memakai parameter 'MST Instance' buat menciptakan
sebuah class VLAN (VLAN Mapping) yg bisa dipakai buat
loadbalancing & redundant.

- MSTP Instance (MSTI)

Pada MSTP buat management VLAN kita mampu membagi


VLAN pada beberapa class. Dan menggunakan VLAN class kita
mampu menciptakan Load balancing & mentukan Root Bridge
pada sebuah topologi MSTP. apabila dalam (R)STP kita hanya
memiliki satu Root Bridge, tetapi dalam MSTP kita mampu
memiliki lebih menurut satu Root Bridge. Misal, buat 1 VLAN
Group masih ada perangkat Root Bridge & VLAN Group yg lain
masih ada Root Bridge dalam perangkat yg lain.

Untuk VLAN Group ini dianggap sebagai 'MSTP Instance'.


Nantinya MSTP Instance pula mempunyai kiprah relatif krusial
apabila kita telah melakukan management poly Core Switch, &
nantinya pula akan dibagi ke beberapa MSTP Region. Dengan
adanya MSTP Instance pula lebih memperingan resource
menurut perangkat switch buat memproses MSTP nya.
Pengaturan VLAN Group dalam MSTP Instance pula dikenla
menggunakan istilah 'VLAN Mapping'.

Spanning Tree Protocol (STP) yg mencegah loop pada


jaringan. Dan akan membahas redundansi pada jaringan,
broadcast storm, prosedur pemecahan stp, dan cara
menciptakan root bridge & mengkonfigurasinya pada vlan &
membahas root bridge, BPDU & pembuatan root bridge vlan, vtp,
intervlan routing, DHCP, topologi stp.

Spanning Tree Protocol (STP) merupakan protokol


manajemen tautan Layer 2 yg menyediakan redundansi jalur ad
interim buat menghindari perkara iterasi pada jaringan &
Bagaimana STP sebagai protokol yg bisa menggunakan cepat
mengetahui port mana yg dipakai buat memblokir jaringan Tidak
terdapat duplikasi kemudian lintas dari VLAN. Algoritma STP
Spanning Tree memakai prosedur pemecahan Spanning Tree
(STA) buat memilih port switch mana dalam jaringan yg wajib
dikonfigurasi buat memblokir buat mencegah loop.

Algoritma pohon rentang STP memakai Algoritma Spanning


Tree (STA) buat memilih port switch on Jaringan wajib
dikonfigurasi buat memblokir buat mencegah loop terjadi. ATS
tetapkan satu sakelar sebagai jembatan akar dan gunakan
sebagai titik referensi untuk semua perhitungan jalur.

Spanning Tree Protocol berperan sebagai pencegah


interferensi pada jaringan karena memiliki dua jalur aktif,
interferensi tersebut meliputi loop dan Badai siaran dapat
menjatuhkan jaringan komputer.

STP adalah teknologi yang memungkinkan jembatan untuk


berkomunikasi satu sama lain untuk menemukan loop fisik dalam
jaringan. Protokol akan menentukan algoritme yang dapat
digunakan jembatan untuk membuat topologi logis tanpa loop.
Dengan kata lain, STP membuat pohon bercabang dengan daun
dan cabang tertutup
Seluruh lapisan jaringan 2. Kegunaan STP diperlukan karena
dalam setiap implementasi jaringan redundan, risiko terjadinya
trafik loop yang dapat membebani jaringan sehingga trafik baru
tidak dapat melewatinya adalah signifikan. Menggunakan STP
mencegah perulangan lalu lintas. STP menggunakan Spanning
Tree Algorithm (STA) untuk menentukan port switch.

Dan perlu mengonfigurasi paket pemblokiran untuk


mencegah loop lalu lintas. STA memilih sakelar sebagai jembatan
akar dan menggunakannya sebagai titik referensi untuk
menghitung semua jalur. Semua switch yang berpartisipasi dalam
STP bertukar frame BPDU untuk menentukan switch mana yang
mempunyai bridge ID terendah pada network.

Bridge di jaringan menggunakan BPDU untuk bertukar


informasi tentang statusnya. BID yang ada di masing-masing
BPDU Identifikasi sakelar yang mengirim BPDU. BID berisi nilai
prioritas, alamat MAC dari sakelar pengirim, dan ID sistem
tambahan opsional. BID minimum ditentukan oleh kombinasi
ketiganya bidang itu.

Setelah root bridge ditentukan, STA mengkalkulasikan jeda


terpendek menuju ke root bridge. Tiap switch memakai STA buat
memilih port mana saja yg wajib diblok. Pada ketika STA memilih
jalur terbaik buat menuju ke root bridge buat seluruh tujuan pada
broadcast domain, seluruh traffic dicegah buat melakukan
forwarding melalui network. STA mempertimbangkan jalur dan
jumlah hop dalam ketika memilih jalur mana yg akan dibiarkan
terbuka.

Menurut Lewis (2008:244), Spanning Tree Protocol (STP)


dikembangkan sang Radia Perlman & diterbitkan pada baku IEEE
802.1D dalam tahun 1990. STP dipakai buat menghindari loop
pada jaringan menggunakan beberapa topologi. Masih dari Lewis
(2008:244), STP bekerja menurut bukti diri bridge/switch. ID
jembatan (BridgeID) terdiri menurut nilai prioritas sakelar &
alamat MAC, & BridgeID dipakai buat menentukan galat satu
sakelar menjadi jembatan akar. Setelah jembatan akar dipilih,
sakelar lain wajib menilik port mana yg mempunyai jalur terbaik
ke jembatan akar. Langkah-langkah yg dilakukan dalam prosedur
pemecahan Spanning Tree Protocol merupakan menjadi berikut
ini:

a. Melakukan pemilihan root bridge

Gambar 3.4 . Pemilihan Root Bridge Berdasarkan


Priority yang Paling Kecil
Dikutip dari Lewis (2008). LAN Switching and Wireless,
hlm.249

Gambar 3.4 menggambarkan proses pemilihan


jembatan akar. Semua sakelar menukar BridgeID
masing-masing. Switch dengan BridgeID terkecil akan
menjadi root bridge.

b. Melakukan pemilihan root port


Setelah galat satu berdasarkan switch sebagai root
bridge, maka proses setelahnya merupakan pemilihan root
port. Pemilihan root port yg dijelaskan dalam Gambar 3.lima,
dilakukan dari dalam port yg mem punyai jalur menggunakan
porto terendah menuju switch yg sebagai root bridge.
Gambar 3.5 Pemilihan Root Port, Designated Port dan
Non-designated Port
Dikutip dari Lewis (2008). LAN Switching and Wireless,
hlm.264.

c. Melakukan pemilihan designated port


Pemilihan designated port dilaksanakan menggunakan
memakai prosedur bahwa setiap segmen pada jaringan hanya
mempunyai designated port. Parameter yg dipakai pada memilih
designated port merupakan jalur yg mempunyai porto terendah
menuju root bridge. Pada Gambar 3.lima menyebutkan mengenai
proses pemilihan designated port. apabila port dalam setiap switch
mempunyai porto yg sama maka switch akan memakai MAC Address
yg paling mini buat memilih port yg akan sebagai designated port.

d. Melakukan pemilihan non-designated port


Pemilihan non-designated port dalam Gambar 3.lima
dilaksanakan dari dalam port yg bukan adalah root port & designated
port. Status port ini akan sebagai blocking buat mencegah loop.

Peran berdasarkan forwarding state adalah buat meneruskan


frame yg merambat didalam topologi loop, sedangkan kiprah
berdasarkan blocking state adalah buat nir meneruskan frame buat
mencegah terjadinya loop (Lewis, 2008).

Ada beberapa status port selain forwarding & blocking, status


port tadi yaitu :
STP umumnya dipakai apabila switch mempunyai 2 jalur atau
lebih buat menuju ke satu tujuan yg sama.

Contoh penggunaan spanning tree protocol

STP akan memblokir satu atau lebih port menjadi hasil yang
nantinya hanya akan ada satu jalur digunakan untuk mengirimkan
data, sedangkan yang lainnya akan menjadi jalur cadangan.

Saat jalur yang digunakan untuk mengirim data turun, maka


STP akan membuka port yang diblokir itu. Transmisi data akan
dialihkan ke jalur cadangan sampai jalur utama kembali normal.
Spanning Tree Protocol bekerja di layer 2 OSI. STP biasa
digunakan pada sakelar, mode menjalankan router bridge, & sakelar
multilayer yang berfungsi sebagai sakelar.

Jembatan Akar dan Jembatan Non-Akar

Pada perangkat yang menjalankan protokol spanning tree, itu


akan tetap ada dua role yang berbeda yaitu Root Bridge & Non-Root
Menjembatani. Root Bridge adalah sakelar yang semua portnya
aktif/menyala. Sementara Non-Root Bridge adalah sakelar selain
Jembatan Akar.
Jika hanya ada dua sakelar, maka Jembatan Non-Root adalah
sakelar yang memiliki kesalahan bahwa satu atau lebih port mati
(mengalami pemblokiran) yang bertujuan untuk mencegah terjadinya
loop.

Dalam jaringan pohon rentang, hanya akan ada satu sakelar


yang menjadi Jembatan Root & lainnya akan menjadi Non-Root. Mari
kita lihat gambar dalam bawah ini :

spanning tree
Dari gambar di atas, terlihat bahwa Switch1 adalah
Jembatan Root karena semua port dalam keadaan aktif (berwarna
hijau), sedangkan Switch0 adalah Non-Root Bridge karena pada
switch0 ada satu port yang dalam status pemblokiran (berwarna
oranye).

Port yang diblokir ini akan menjadi jalur cadangan. Jadi, jika
salah satu port yang dalam di atas down, maka tautan dalam di
bawahnya akan digunakan sebagai jalur pengganti pengiriman
data.

Prioritas
Pemilihan Root Bridge dari prioritas yang dimiliki oleh setiap
saklar. Sakelar yang memiliki nilai prioritas terbanyak rendah akan
menjadi Root Bridge. jika nilai prioritas dari beberapa sakelar
sama, maka pemilihan Jembatan Akar akan menjadi dilihat dari
nilai MAC Address terendah. Sakelar yang memiliki nilai MAC.

Alamat terkecil akan menjadi Root Bridge. Biarkan kami


lihat berita protokol pohon rentang dari setiap sakelar di atas. Kita
dapat menggunakan perintah show spanningtree pada setiap
sakelar untuk melihat informasi detailnya.

Berikut adalah informasi spanning tree pada switch0 :

Informasi spanning tree pada switch1 :


Berdasarkan berita di atas, dapat diketahui bahwa Switch0
(SW0) memiliki nilai prioritas yang sama menggunakan Sakelar1
(SW1) adalah 32769.

Lalu bagaimana cara mengetahui bahwa SW1 adalah Root


Jembatan? Karena kedua sakelar memiliki nilai prioritas yang
sama, maka Pemilihan Root Bridge dilihat berdasarkan nilai MAC
Address terkecil di antara 2 sakelar di atas.

Lihatlah bagian Bridge ID. SW0 memiliki alamat


00E0.F9CC.5BE3 sementara SW1 memiliki alamat
0060.4764.57E1.

Karena alamat MAC SW1 lebih kecil dari menggunakan


SW0, kemudian SW1 sebagai Root Bridge. Perhatikan juga bahwa
di SW1 masih ada tulisan "Jembatan ini" root" ad interim di SW0
tidak ada.
Jenis Port pada STP
Dalam protokol spanning tree masih ada beberapa jenis
pelabuhan antara lain sebagai berikut:
- Designated Port, adalah port yang digunakan untuk mengirim
data (memiliki alamat MAC terkecil).
- Root Port, adalah port pada switch yang terhubung ke Jembatan
Akar.
- Blocking Port, adalah port yang diblokir sebagai Akibatnya, tidak
aktif dan tidak digunakan untuk mengirim data.
-

Biasanya port pemblokiran dipilih berdasarkan nilai alamat


MAC terbesar, nilai port terbesar, atau port yang menggunakan
bandwidth terkecil.

Jenis port Spanning Tree Protocol

Lihat kembali berita spanning tree di Switch0 & Switch1 di


bagian Antarmuka. Pada status Switch0 port Fa0/1 FWD (maju)
yang berarti port tersebut port yang ditunjuk & digunakan untuk
mengirimkan data.
Sedangkan pada port Fa1/1 berstatus BLK yang artinya port
dalam keadaan memblokir & tidak digunakan untuk mengirim data.
Port digunakan sebagai port alternatif atau dianggap backup &
akan aktif ketika port di atasnya mati.

Saat berada di Switch1, port port Fa0/1 & Fa1/1 status


FWD. Ini karena Switch1 adalah Root Bridge akibatnya semua
portnya dalam keadaan aktif. Port Fa1/1 akan tetap aktif meskipun
tidak digunakan untuk mengirim data.

3. Penutup

1. Kesimpulan
Tree merupakan sebuah struktur linier, umumnya dipakai
buat mendeskripsikan interaksi yg bersifat hirarkis antara elemen-
elemen yg ada. Ada beberapa kata pada tree ini, yg mana masing-
masing kata memiliki arti pada kaitannya menggunakan hirarki antar
elemen pada tree tadi, misalnya sibling, descendant dsb.

Teori pohon sudah poly dikembangkan buat mendukung


penerapan graf pada banyak sekali ilmu. Kirchoff (1824-1887)
berbagi teori pohon buat jaringan listrik. Arthur Cayley (1821-1895)
menggambar diagram buat menghitung isomer hidrokarbon jenuh.
Sejak waktu itu, tree sudah dipakai buat memecahkan kasus pada
banyak sekali bidang ilmu. Teori mengenai pohon relatif poly
dikembangkan buat mendukung implementasi menurut suatu graf
pada banyak sekali bidang ilmu. Kirchoff (1824 – 1887)
membagikan teori pohon untuk diterapkan pada bidang jaringan
listrik. Arthur Cayley (1821-1895) membagikan grafik dalam
menghitung waktu isomer hidrokarbon jenuh.

Dalam ilmu komputer, pohon adalah struktur data berbentuk


seperti pohon, terdiri dari serangkaian node yang saling
berhubungan. Node sebelumnya dihubungkan oleh sebuah vektor.
Setiap simpul dapat memiliki 0 atau lebih node anak. Sebuah node
yg mempunyai node anak dianggap node induk (parent). Sebuah
node anak hanya mempunyai satu node induk.

Sesuai kesepakatan ilmu komputer, tree bertumbuh ke


bawah, nir misalnya pohon pada global konkret yg tumbuh ke atas.
Dengan demikian simpul anak akan digambarkan berada di bawah
simpul induk.

Binary Tree merupakan Suatu tree menggunakan kondisi


bahwa tiap node ( boleh mempunyai aporisma 2 subtree & ke 2
subtree tadi wajib te Tiap node pada binary tree hanya boleh
mempunyai paling poly 2 chil simpul), Secara spesifik anaknya
dinamakan kiri dan kanan.

Terdapat 3 jenis binary tree antara lain pertama merupakan


Full Binary seluruh node atau simpul (kecuali leaf) niscaya
mempunyai dua anak d mempunyai panjang path yag sama,ke 2
merupakan Complete Binary Tree yaitu dasarnya seperti
menggunakan full binary tree, akan tetapi tiap subtree boleh memilik
path yg tidak sinkron & tiap node ((kecuali left ) mempunyai dua
anak. Dan y merupakan Skewed Binary Tree yaitu binary tree yg
seluruh nodenya (kecuali hanya mempunyai satu anak.

Terdapat beberapa operator-operator yg bekerja pada


binarytree yaitu search,delete,insert,transverse,create,clear & masih
poly yang lain, terakhir adalah Implementasi acara yaitu bisa
dibentuk menggunakan memakai linked list rekursif & linked list yg
dipakai merupakan double linked list non rekursif

Tree dalam bahasa Inggris berarti pohon. Dalam Struktur


Data pohon konsep, seperti pohon, adalah kombinasi dari node
yang terhubung satu sama lain dalam satu kesatuan membangun
seperti struktur pohon. Struktur Pohon adalah cara untuk mewakili
struktur hierarkis (satu – ke banyak) secara grafis seperti pohon
pohon sepertinya menjadi campuran – simpul – simpul berdasarkan
atas ke bawah. Konsep pohon dalam struktur data yang non-linier
yang menggambarkan interaksi hierarkis (satu ke banyak) dan tidak
ada linier antar elemen. Dalam struktur Data Pohon Konsep terbagi
menjadi dua yaitu :
1. Pohon Statis

2. Pohon Dinamis

Pohon statis adalah konsep struktur pohon yang berisi node.


Node bersifat permanen karena bentuk pohon telah ditentukan.
Dinamika pohon adalah konsep struktur pohon yang berisi node
berubah karena proses penambahan (insert) & penghapusan /
penghapusan ( hapus ).

Di Pohon Konsep di Node ada nama Node Akar. Node akar


pada pohon yang dimaksud adalah simpul yang memiliki hierarki
tertinggi dan juga dapat memiliki node anak atau apa yang dianggap
sebagai node anak. jadi semua node dapat ditelusuri berdasarkan
root node tadi. Node akar ditandai adalah node tertentu yang dibuat
pertama kali.

Sementara node lain di bawah node root terhubung satu


sama lain satu sama lain dianggap sebagai Subpohon

Dari pemahaman konsep pohon yang telah dijelaskan untuk


mengimplementasikannya dalam Program, Pohon dapat dibentuk
menggunakan daftar tertaut secara rekursif. Rekursif adalah proses
yang memanggil dirinya sendiri. Untuk Daftar tertaut yang
digunakan adalah daftar tertaut ganda yang tidak melingkar.

Proses didasarkan pada Implementasi Program terkait


dengan Konsep Pohon misalnya berikut ini:

1. Entri data pertama adalah Node Root.

2. Data yang lebih kecil berdasarkan node root akan masuk &
menempati simpul kiri berdasarkan simpul Root

3. jika ada data yang lebih besar berdasarkan Node

Root kemudian akan masuk & menempati node kanan oleh


Node Root.

Traversal adalah proses mengunjungi pohon, menggunakan


setiap node hanya dikunjungi satu kali dengan sempurna. Jadi,
traversal pohon biner adalah proses mengunjungi node sempurna
sekali & setiap simpul hanya dapat memiliki kata-kata Mutiara dua
subpohon yang mengklaim sebagai subpohon & subpohon kiri
pohon kanan (subtree kanan).

Dengan melakukan kunjungan lengkap, itu akan urutan linier


informasi yang dihasilkan yang disimpan dalam a pohon biner. Ada
tiga teknik rekursif untuk traversal pohon biner, yaitu :

1. Mengunjungi simpul akar (root),

2. Melakukan traversal subpohon kiri (left subtree), &

3. Melakukan traversal subpohon kanan (right subtree).

Yang membedakan antara teknik satu menggunakan yg lain


merupakan proses pengurutan tugas mereka. Terdapat 3 macam
binary tree traversal, yaitu:

Preorder Traversal

1. Mengunjungi simpul akar (root),

2. Melakukan traversal subpohon kiri (left subtree),

3. Melakukan traversal subpohon kanan (right subtree).

Inorder Traversal

1. Melakukan traversal subpohon kiri (left subtree),

2. Mengunjungi simpul akar (root),

3. Melakukan traversal subpohon kanan (right subtree).

Postorder Traversal

1. Melakukan traversal subpohon kiri (left subtree),

2. Melakukan traversal subpohon kanan (right subtree),

3. Mengunjungi simpul akar (root).


Spanning Tre Protocol atau biasa disingkat STP works untuk
mencegah perulangan di segmen jaringan yang menggunakan
redundansi. Dengan protokol STP ini, satu Switch / Jembatan
tersebut akan ditunjuk sebagai jembatan yang ditunjuk. Hanya
ditunjuk bridge yang dapat meneruskan paket, sedangkan Switch /

Jembatan lainnya akan menjadi cadangan. Sederhananya,


STP ini akan mencegah loop menggunakan pemblokiran pada satu
port Switch kesalahan, akibatnya tidak akan ada loop atau badai
siaran.

Cara kerja STP:

- Pilih satu jembatan akar.

Saat STP aktif, setiap sakelar akan menjamin itu sendiri


menjadi jembatan akar & akan secara otomatis mengirim bingkai
khusus satu sama lain yang diklaim Unit Data Protokol Jembatan
(BPDU). Metode STP memilih sakelar mana yang root Bridge
menggunakan bandingkan Bridge ID di BPDU. Prioritas jembatan
akan dibandingkan terlebih dahulu, defaultnya sama, yaitu 32768.
jika sama, maka yang akan dibandingkan adalah MAC-address.
Karena setiap switch memiliki alamat MAC yang berbeda, maka
switch yang memiliki Alamat MAC terkecil adalah yang akan
menjadi root menjembatani.

- Pilih satu port root untuk setiap port non-root.

Port root adalah port terdekat untuk menggunakan root


jembatan, port root mana yang berfungsi untuk mendapatkan BDPU
menggunakan biaya terendah menurut jembatan akar. Untuk setiap
non- Jembatan akar harus memiliki setidaknya satu port akar. STP
gunakan perhitungan tautan untuk memilih port root & port non-root.

- Pilih port yang ditunjuk & port yang tidak ditunjuk untuk
setiap segmen.
Port yang ditunjuk digunakan untuk meneruskan lalu lintas.
Dengan kondisi dalam hal ini saklar yang bertindak sebagai root
bridge adalah saklar yang bertindak sebagai pelabuhan yang
ditunjuk. Sementara port lainnya akan seperti non port yang ditunjuk
& akan diblokir. Padahal port di block & nir dapat mengirim lalu
lintas, port itu masih bisa mendapatkan BDPU.
Daftar Pustaka

Aldivian, M. 2015. Struktur data. 1-20.


https://www.academia.edu/21897481/Makalah_Tree_Struktur_Data
[diakses pada 28 Februari 2022].

Anonim. 2015. Struktur data tree traversal. 1-15.


https://sixv.com/struktur-data/struktur-data-tree-traversal/ [ diakses
pada 25 Februari 2022].

Atduhri, F. 2015. Pengertian tree. 1-10.


http://firmanatduhri.blogspot.com/2015/03/pengertian-tree-dalam-
bahasa-pemrograman.html?m=1 [diakses pada 28 Februari 2022].

Bali, D. 2020. Memahami konsep tree dalam struktur data


lengkap dengan source code programnya. 1-15.
https://daismabali.com/artikel_detail/67/1/Memahami-Konsep-Tree-
dalam-Struktur-Data-Lengkap-dengan-Source-Code-
Programnya.html [diakses pada 28 Februari 2022].

Hidayatullah, S. 2016. Pengantar matematika dikstrit. 1-15.


https://www.coursehero.com/file/47579070/BAB-9-Teori-Treedocx/
[diakses pada 28 Februari 2022].

Luthfi, M.F., L. Hakim dan A. Hakim. 2015. Konsep dasar tree


sebagai metode pengolahan data dala sumber data. 1-9.
https://www.coursehero.com/file/61519962/Konsep-Dasar-Tree-
Sebagai-Metode-Pengolahan-Data-Dalam-Struktur-Datadocx/
[diakses pada 27 Februari 2022].

Nurrahman, S. 2018. Pengertian tree pada struktur data. 1-5.


http://bocahngoding.blogspot.com/2018/01/pengertian-tree-pada-
struktur-data.html?m=1 [diakses pada 27 Februari 2022]

Latifah, F. (2016) ‘PENYIMPANAN DATA DALAM TEKNIK


PEMROGRAMAN ( kajian algorithma pohon pada teknik
pemrograman )’, XIII(2), pp. 23–32. Available at:
http://ejournal.nusamandiri.ac.id/ejurnal/index.php/techno/article/
view/357/287.
Tunggal, S. (2018) ‘Tree (pohon)’, pp. 1–11.

Berlinski, D. (2015) Mathematics and its applications, Mathematics,


Substance and Surmise: Views on the Meaning and Ontology of
Mathematics. doi:10.1007/978-3-319-21473-3_6.

JES-MAT(Objetivos et al., 2014)(Nurdiyanto and Susanti,


2019)Nurdiyanto, T. and Susanti, E. (2019) ‘Efisiensi Penggunaan
Matriks in-Degree Untuk’, Jes-Mat, 5(1), pp. 1–15. Available at:
http://journal.uniku.ac.id/index.php/JESMath/article/view/1650.

JAM, E. (no date) ‘Penerapan Metode Usability Testing Pada’,


Katalog.Ukdw.Ac.Id [Preprint], (1). Available at:
https://katalog.ukdw.ac.id/1695/

Achmad, N., D. Ulya dan S. Yusuf. 2012. Binary tree. 1-13.


https://dokumen.tips/documents/makalah-binary-tree.html?page=17
[diakses pada 11 Mei 2022].

Ariya, I. 2015. Tree dan metode traversal. 2-22.


https://www.academia.edu/11372796/MAKALAH_TREE_DAN_MET
ODE_TRAVERSAL_v1_2 [diakses pada 13 Mei 2022].

Kusuma, S.M dan Haqqu N. 2020. Minimum spanning tree.


https://omahti.web.id/post/minimum-spanning-tree#:~:text=Spanning
%20Tree%20merupakan%20graf%20tehubung,adalah%20jumlahan
%20dari%20bobot%20edges.&text=Dengan%20demikian%2C
%20Minimum%20Spanning%20Tree,dan%20memiliki%20bobot
%20paling%20minimal [diakses pada 12 Mei 2022].

Mansyur, I. 2018. Materi dan pengertian jenis jenis iperasi (Binary


Tree) dalam struktur data.
https://t-edukasi.blogspot.com/2018/01/materi-dan-pengertian-jenis-
jenis.html?m=1 [diakses pada 12 Mei 2022].

Mardiani, E. 2010. Kunjungan pada pohon biner. 1-9.


https://docplayer.info/46168200-Kunjungan-pada-pohon-biner.html
[diakses pada 13 Mei 2022].

Moelyadi, A. 2015. Struktur data. 1-20.


https://www.academia.edu/21897481/Makalah_Tree_Struktur_Data
[diakses pada 12 Mei 2022].
Setiawan, C. Spanning tree protocol. 1-15.
https://ejournal.unsri.ac.id/index.php/jit/article/view/336/102
[diakses pada 11 Mei 2022]

Surbakti, S.A., J. Purwadi dan N.A Haryono. Penerapan metode


usability testing pada visualisasi pembelajaran protokol soanning
tree. 1-10.

Yoga, R. 2017. Apa itu spanning tree protocol.


https://www.diaryconfig.com/2017/08/apa-itu-spanning-tree-
protocol.html?m=1 [diakses pada 13 Mei 2022].

Nurdiyanto, T dan E. Susanti. 2019. EFISIENSI Penggunaan


matriks in-degree untuk mengkontruksi spanning tree pada graft
berarah. JES-MAT 1(5): 1-15.

Pfaff, B. 2002. An introduction to binary search trees and balanced


trees. 1-432

Prasetyo, F. 2018. Struktur data.


https://medium.com/@fahmiprasetiiio/struktur-data-2de34750df89
[diakses pada 13 Mei 2022].

Suparta, W. INF202: Struktur data. 1-30.


https://ocw.upj.ac.id/files/Handout-INF202-INF202-Struktur-Data-
Wayan-Pertemuan-13-14.pdf [diakses pada 12 Mei 2022].

Abidin, T.F. Struktur data dan algoritma binary search tree. 1-30.
https://docplayer.info/39607009-Binary-search-tree-bst.html
[diakses pada 13 Mei 2022].

Andreas. 2018. Penerapan metode usabilty testing pada evaluasi


antarmuka situs kaya jam. 1-33. https://katalog.ukdw.ac.id/1695/
[diakses pada 12 Mei 2022].

Septiandi, N.E., M.Z. Arifin dan A. Rahman. 2020. Efektifitas


pendekatan teori ordered rooted tree matematika dalam
pembelajaran tassrif lughowi di PP Al-Bidayah. 1-10.
http://sunankalijaga.org/prosiding/index.php/kiiis/article/view/384
[diakses pasa 14 Mei 2022].
English Academy. 2022. Apa itu traversal pohon? - definisi
dari techopedia Pengembangan
https://id.theastrologypage.com/tree-traversal [ diakses pada 13
Mei 2022 ]

https://ocw.upj.ac.id/files/Handout-INF202-INF202-Struktur-
Data-Wayan-Pertemuan-13-14.pdf

Anonim. 29 Maret 1999. Struktur Data Hirarkis: Heaptree,


Binary Tree Traversal
http://aren.cs.ui.ac.id/sda/archive/1998/handout/handout15.html
[diakses pada 13 Mei 2022]

Tito Nurdiyanto, Ely Susanti. 2019. Spanning-Tree pada Graf


Berarah dengan Matriks In-Degree. 20/4
https://journal.uniku.ac.id/index.php/JESMath/article/view/1650
[diakses pada 13 Mei 2022]

Andikafisma. 2012. Spanning Tree.


https://andikafisma.wordpress.com/spanning-tree/ [diakses pada 13
Mei 2022]

Irsan Mansyur. 10 januari 2018. Materi dan Pengertian Jenis


Jenis Operasi (Binary Tree) dalam struktur data. https://t-
edukasi.blogspot.com/2018/01/materi-dan-pengertian-jenis-
jenis.html 28/3 [diakses pada 13 Mei 2022]

Anda mungkin juga menyukai