SlideShare a Scribd company logo
1 of 58
Binary Tree==BST
Untuk mengetahui
apakah sebuah binary
tree adalah BST,
salah satu caranya adalah
dengan melakukan
print in order
BST : Binary Search Tree
Print in order, melakukan print
node sebelah kiri, kemudian
induknya, kemudian node
sebelah kanan.m
Jika tampilan tree dalam print in
order terurut dari kecil ke besar,
maka tree tersebut BST, jika tidak
maka tree tersebut bukan BST.
10
3 15
216
9
7
141
2
Binary Tree
Apakah
binary tree di
atas adalah
BST ?
Lakukan print in order
pada tree di atas
10
3 15
216
9
7
141
2
1
2
3
4
5
6
7
8
9
10
1 2 3 6 7 10 14 15 219
Hasil print in order sudah urut
dari kecil ke besar
Maka binary tree di atas adalah
BST
8
7
2
10
3 9 22
Binary Tree
Apakah
binary tree di
atas adalah
BST ?
8
7
2
10
3 9 22
Lakukan print in order
pada tree di atas
1
2
3
4
5
6
7
2 227 3 8 9 10
Hasil print in order tidak urut
dari kecil ke besar
Maka binary tree di atas bukan
BST
Tampilan Program
BST balance
Untuk mengetahui
apakah sebuah BST
balance dapat diketahui
dengan melakukan
pengecekkan tinggi
sebuah node
Mencari tinggi
(height)
sebuah node ?
Tinggi sebuah node :
Nilai terbesar antara tinggi node
kanan dan tinggi node kiri
ditambah 1.
Jika nodenya adalah NULL, maka
tingginya -1.
10
15
21
Tinggi Node 21
• Node kirinya NULL = -1
• Node kanannya NULL = -1
• Nilai terbesar di antara
keduanya adalah -1
• Tinggi node 21 adalah
-1+1=0
1
0
2
Tinggi Node 15
• Node kirinya NULL = -1
• Node kanannya = 0
• Nilai terbesar di antara
keduanya adalah 0
• Tinggi node 15 adalah
0+1=1
Tinggi Node 10
• Node kirinya NULL = -1
• Node kanannya = 1
• Nilai terbesar di antara
keduanya adalah 1
• Tinggi node 10 adalah
1+1=2
BST tidak balance jika:
Ada node yang
tinggi node kirinya
dikurang
tinggi node kanannya
tidak sama dengan
-1, 0, 1
10
3
15
21
14
1
-1-(-1)=0
-1-(0)=-1
-1-(1)=-2
-1-(-1)=0
1-2=-1
0-(-1)=1
Apakah BST berikut balance?
10, 3, 14, 15, 1, 21
Ada node yang tinggi kiri
dikurang tinggi kanannya
tidak sama dengan -1, 0 , 1.
Berarti BST ini tidak balance.
Tampilan Program
Apakah BST berikut balance?
8, 3 ,10, 22, 9, 2, 1, 7
8
3
2
1
10
7 9 22
-1-(-1)=0-1-(-1)=0-1-(-1)=0
-1-(-1)=0
0-0=0
0-(-1)=1
1-0=1
2-1=1
Tidak ada node yang
tinggi kirinya dikurang tinggi kanannya
di luar dari -1, 0 , 1.
Berarti BST ini balance.
Tampilan Program
Tree traversal BFS,
gunakan queue
Tree traversal dengan BFS
artinya menampilkan
semua isi node
Level 0  Level n-1
BFS : Breadth-first search
Langkah-langkah
tree traversal dengan
BFS
dengan bantuan
queue
•Inisialisasi isi node pertama queue dengan
root (front).
•Ulang selama queue tidak kosong.
oJika node (front) sebelah kiri tidak kosong,
masukkan datanya ke dalam queue.
oJika node (front) sebelah kanan tidak
kosong, masukkan datanya ke dalam queue.
oDequeue dan tampilkan node front.
8, 3 ,10, 22, 9, 2, 1, 7
8
3
2
1
10
7 9 22
Lakukan tree
traversal pada
tree di atas
32 1078 10
Isi queue dengan
root
8
Karena queue tidak kosong, maka :
Node sebelah kiri 8 tidak kosong, masukkan
queue
Node sebelah kanan 8 tidak kosong,
masukkan queue
Keluarkan dan tampilkan 8
8
3 10
8
3
2 7
72
Karena queue tidak kosong, maka :
Node sebelah kiri 3 tidak kosong, masukkan
queue
Node sebelah kanan 3 tidak kosong,
masukkan queue
Keluarkan dan tampilkan 3
3
10
9 22
Karena queue tidak kosong, maka :
Node sebelah kiri 10 tidak kosong, masukkan
queue
Node sebelah kanan 10 tidak kosong,
masukkan queue
Keluarkan dan tampilkan 10
9 2210
9 22
2
1
Karena queue tidak kosong, maka :
Node sebelah kiri 2 tidak kosong, masukkan
queue
Node sebelah kanan 2 kosong
Keluarkan dan tampilkan 2
1
2
Karena queue tidak kosong, maka :
Node sebelah kiri 7 kosong
Node sebelah kanan 7 kosong
Keluarkan dan tampilkan 7
7
7
9
Karena queue tidak kosong, maka :
Node sebelah kiri 9 kosong
Node sebelah kanan 9 kosong
Keluarkan dan tampilkan 9
9
22
Karena queue tidak kosong, maka :
Node sebelah kiri 22 kosong
Node sebelah kanan 22 kosong
Keluarkan dan tampilkan 22
22
1
Karena queue tidak kosong, maka :
Node sebelah kiri 1 kosong
Node sebelah kanan 1 kosong
Keluarkan dan tampilkan 1
1
Queue sudah kosong, maka proses traversal sudah selesai
Tampilan program
3
Tampilan Program
AVL Tree
1, 26, 2, 25, 3, 24, 4, 23, 5, 22, 6
AVL tree adalah
tree yang
balance
Bagaimana tree yang balance?
Setiap kali menginputkan
sebuah node baru, kita
akan periksa apakah
treenya sudah balance
atau belum,
Jika belum, maka :
Ada empat cara untuk
menyeimbangkan sebuah tree:
1.Rotate Left
2.Rotate Right
3.Rotate Right Left
4.Rotate Left Right
A
B
DC
Node
TMP
A
C
Node
Node
Seimbangkan BST berikut
Rotate LeftBST sudah balance
Seimbangkan BST berikut
Rotate Right
B
D
A
C
Node
TMP
D
A
Node
Node
BST sudah balance
1
26
2
25
3
24
4
23
5
22
6 Rotate Right LeftRotate Right
1
26
2
2
261
25
3
2
251
3 26
24
2 25
1
3
2624
4
23
Rotate Left Right
2 25
1
3
2623
4 24
5
2 23
1
3
254
5 2624
22
Rotate Left
2 23
1
3
255
4 262422
6
2
23
1
3
25
5
4
2624
22
6
Semua input sudah dimasukkan.
Tree di atas adalah hasilnya, berupa
AVL tree dan tentunya sudah balance
Tampilan Program
Path pencarian nilai
suatu BST
Langkah-langkah
mencari suatu nilai
pada BST dan
menampilkan path
pencariannya
• Tampilkan node yang diperiksa
• Jika nilai node sama dengan X, X ditemukan. Kalau
tidak,
• Jika nilai node lebih besar dari X dan node di
sebelah kiri adalah NULL, atau
Jika nilai node lebih kecil dari X dan node di sebelah
kanan adalah NULL, maka X tidak ditemukan, kalau
tidak,
• Jika nilai node lebih besar dari X, periksa node di
sebelah kiri. Kalau tidak,
• Jika nilai node lebih kecil dari X, periksa node di
sebelah kanan.
Sebut saja nilai yang dicari
adalah X
Node pertama yang
diperiksa adalah root.
20
11 24
5 18 22 30
root
20
11 24
5 18 22 30
3 9 21 23 27 27
10
20, 11, 5, 24, 18, 30, 35, 22, 3, 21, 9, 10, 27, 23
INI BST...!!
Cari angka
22
dari BST di atas
20
Node bukan NULL
Tampilkan nilai node
22 != 20
22 > 20 dan node sebelah kanan bukan NULL
22 > 20, maka periksa node sebelah kanan
20
24
Node bukan NULL
Tampilkan nilai node
22 != 24
22 < 24 dan node sebelah kiri bukan NULL
22 < 24, maka periksa node sebelah kiri
24
20
24
Pertama periksa root...
22
Node bukan NULL
Tampilkan nilai node
22 == 24, nilai ditemukan dan pencarian
dihentikan.
22
Tampilan program
Banyak node
Nilai yang dicari
Path pencarian
Cari angka
8
dari BST di atas
Node bukan NULL
Tampilkan nilai node
8 != 9
8 < 9 dan node sebelah kiri NULL,
maka nilai tidak dapat ditemukan dan
pencarian dihentikan.
Node bukan NULL
Tampilkan nilai node
8 != 5
8 > 5 dan node sebelah kanan bukan NULL
8 > 5, maka periksa node sebelah kanan
20
Pertama periksa root...
Node bukan NULL
Tampilkan nilai node
8 != 20
8 < 20 dan node sebelah kiri bukan NULL
8 < 20, maka periksa node sebelah kiri
20
11
Node bukan NULL
Tampilkan nilai node
8 != 11
8 < 11 dan node sebelah kiri bukan NULL
8 < 11, maka periksa node sebelah kiri
11
5
5
9
9
Tampilan program
Banyak node
Nilai yang dicari
Path pencarian
Langkah di atas hanya bisa dilakuakan jika :
•Tree yang digunakan
adalah BST
•Tidak ada dua nilai atau
lebih yang sama di
dalam tree
LCA pada BST
Lowest Common Ancestor (LCA)
Let T be a rooted tree with n
nodes. The lowest common
ancestor between two nodes v
and w is defined as the lowest
node in T that has both v and w
as descendants (where we allow
a node to be a descendant of
itself).
•Node yang pertama diperiksa adalah root
•Jika :
oa ≤ isi node dan b > isi node, atau
ob ≤ isi node dan a > isi node, atau
oa == isi node dan b < isi node, atau
ob == isi node dan a < isi node
Tampilkan isi node
•Kalau tidak, jika:
oa < isi node dan b < isi node
Periksa node sebelah kiri
•Kalau tidak, jika:
oa > isi node dan b > isi node
Periksa node sebelah kanan
10, 3, 15, 21, 6, 9, 7, 14, 1, 2
10
3 15
216
9
7
141
2
Cari LCA dari
1 dan 14
Periksa root
10
1 lebih kecil dari 10 dan 14 lebih
besar dari 10
Maka LCA dari 1 dan 14 adalah 10
Cari LCA dari
3 dan 9
Periksa root
10
9 lebih kecil dari 10 dan 3 lebih kecil
dari 10
Maka periksa node sebelah kiri
3
9 lebih besar dari 3 dan 3 sama
dengan 3 (node yang dicari)
Maka LCA dari 3 dan 9 adalah 3
Tampilan Program
Cara di atas hanya dapat digunakan jika :
• Tree yang digunakan adalah
BST
• Tidak ada dua buah atau lebih
isi node yang sama
• Dua buah node yang di cari
LCAnya harus ada di dalam
tree
Reference :
Mark Allen Weiss, “AVL Tree”, Data Structures
& Algorithm Analysis in C++, (2) 1999, 143-
155
Source Code :
https://www.dropbox.com/sh/7b6m3j7v3semk8
y/s987IXfj4j/SC
Oleh
Muhammad Fahrul Razi
5113100105
Teknik Informatika
Institut Teknologi Sepuluh November

More Related Content

Recently uploaded

703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
arisvanrush
 
Metode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptxMetode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptx
HeriGeologist
 
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Obat Aborsi Samarinda ( Asli Ampuh No.1 ) Samarinda
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli
 
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Obat Aborsi Jakarta ( Ampuh _ No. 1 ) Kandungan Jakarta
 
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di DepokKlinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953
 
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Obat Aborsi Jakarta ( Ampuh _ No. 1 ) Kandungan Jakarta
 
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Cytotec Asli Di jakarta
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang 082223109953 Jual obat aborsi
 

Recently uploaded (15)

2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
 
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
 
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptxSTRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
 
Metode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptxMetode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptx
 
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
 
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptxPROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
 
Pengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS GeodetikPengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS Geodetik
 
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
 
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di DepokKlinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
 
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
 
Perencanaan Pelabuhan perikanan id.pptx
Perencanaan Pelabuhan perikanan  id.pptxPerencanaan Pelabuhan perikanan  id.pptx
Perencanaan Pelabuhan perikanan id.pptx
 
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Tree dan Kawan-kawan (Programming)

  • 2. Untuk mengetahui apakah sebuah binary tree adalah BST, salah satu caranya adalah dengan melakukan print in order BST : Binary Search Tree
  • 3. Print in order, melakukan print node sebelah kiri, kemudian induknya, kemudian node sebelah kanan.m Jika tampilan tree dalam print in order terurut dari kecil ke besar, maka tree tersebut BST, jika tidak maka tree tersebut bukan BST.
  • 6. Lakukan print in order pada tree di atas 10 3 15 216 9 7 141 2 1 2 3 4 5 6 7 8 9 10 1 2 3 6 7 10 14 15 219 Hasil print in order sudah urut dari kecil ke besar Maka binary tree di atas adalah BST
  • 9. 8 7 2 10 3 9 22 Lakukan print in order pada tree di atas 1 2 3 4 5 6 7 2 227 3 8 9 10 Hasil print in order tidak urut dari kecil ke besar Maka binary tree di atas bukan BST
  • 12. Untuk mengetahui apakah sebuah BST balance dapat diketahui dengan melakukan pengecekkan tinggi sebuah node
  • 14. Tinggi sebuah node : Nilai terbesar antara tinggi node kanan dan tinggi node kiri ditambah 1. Jika nodenya adalah NULL, maka tingginya -1.
  • 15. 10 15 21 Tinggi Node 21 • Node kirinya NULL = -1 • Node kanannya NULL = -1 • Nilai terbesar di antara keduanya adalah -1 • Tinggi node 21 adalah -1+1=0 1 0 2 Tinggi Node 15 • Node kirinya NULL = -1 • Node kanannya = 0 • Nilai terbesar di antara keduanya adalah 0 • Tinggi node 15 adalah 0+1=1 Tinggi Node 10 • Node kirinya NULL = -1 • Node kanannya = 1 • Nilai terbesar di antara keduanya adalah 1 • Tinggi node 10 adalah 1+1=2
  • 16. BST tidak balance jika: Ada node yang tinggi node kirinya dikurang tinggi node kanannya tidak sama dengan -1, 0, 1
  • 17. 10 3 15 21 14 1 -1-(-1)=0 -1-(0)=-1 -1-(1)=-2 -1-(-1)=0 1-2=-1 0-(-1)=1 Apakah BST berikut balance? 10, 3, 14, 15, 1, 21 Ada node yang tinggi kiri dikurang tinggi kanannya tidak sama dengan -1, 0 , 1. Berarti BST ini tidak balance.
  • 19. Apakah BST berikut balance? 8, 3 ,10, 22, 9, 2, 1, 7 8 3 2 1 10 7 9 22 -1-(-1)=0-1-(-1)=0-1-(-1)=0 -1-(-1)=0 0-0=0 0-(-1)=1 1-0=1 2-1=1 Tidak ada node yang tinggi kirinya dikurang tinggi kanannya di luar dari -1, 0 , 1. Berarti BST ini balance.
  • 22. Tree traversal dengan BFS artinya menampilkan semua isi node Level 0  Level n-1 BFS : Breadth-first search
  • 24. •Inisialisasi isi node pertama queue dengan root (front). •Ulang selama queue tidak kosong. oJika node (front) sebelah kiri tidak kosong, masukkan datanya ke dalam queue. oJika node (front) sebelah kanan tidak kosong, masukkan datanya ke dalam queue. oDequeue dan tampilkan node front.
  • 25. 8, 3 ,10, 22, 9, 2, 1, 7 8 3 2 1 10 7 9 22
  • 27. 32 1078 10 Isi queue dengan root 8 Karena queue tidak kosong, maka : Node sebelah kiri 8 tidak kosong, masukkan queue Node sebelah kanan 8 tidak kosong, masukkan queue Keluarkan dan tampilkan 8 8 3 10 8 3 2 7 72 Karena queue tidak kosong, maka : Node sebelah kiri 3 tidak kosong, masukkan queue Node sebelah kanan 3 tidak kosong, masukkan queue Keluarkan dan tampilkan 3 3 10 9 22 Karena queue tidak kosong, maka : Node sebelah kiri 10 tidak kosong, masukkan queue Node sebelah kanan 10 tidak kosong, masukkan queue Keluarkan dan tampilkan 10 9 2210 9 22 2 1 Karena queue tidak kosong, maka : Node sebelah kiri 2 tidak kosong, masukkan queue Node sebelah kanan 2 kosong Keluarkan dan tampilkan 2 1 2 Karena queue tidak kosong, maka : Node sebelah kiri 7 kosong Node sebelah kanan 7 kosong Keluarkan dan tampilkan 7 7 7 9 Karena queue tidak kosong, maka : Node sebelah kiri 9 kosong Node sebelah kanan 9 kosong Keluarkan dan tampilkan 9 9 22 Karena queue tidak kosong, maka : Node sebelah kiri 22 kosong Node sebelah kanan 22 kosong Keluarkan dan tampilkan 22 22 1 Karena queue tidak kosong, maka : Node sebelah kiri 1 kosong Node sebelah kanan 1 kosong Keluarkan dan tampilkan 1 1 Queue sudah kosong, maka proses traversal sudah selesai Tampilan program 3
  • 29. AVL Tree 1, 26, 2, 25, 3, 24, 4, 23, 5, 22, 6
  • 30. AVL tree adalah tree yang balance Bagaimana tree yang balance?
  • 31. Setiap kali menginputkan sebuah node baru, kita akan periksa apakah treenya sudah balance atau belum, Jika belum, maka :
  • 32. Ada empat cara untuk menyeimbangkan sebuah tree: 1.Rotate Left 2.Rotate Right 3.Rotate Right Left 4.Rotate Left Right
  • 34. Seimbangkan BST berikut Rotate Right B D A C Node TMP D A Node Node BST sudah balance
  • 35. 1 26 2 25 3 24 4 23 5 22 6 Rotate Right LeftRotate Right 1 26 2 2 261 25 3 2 251 3 26 24 2 25 1 3 2624 4 23 Rotate Left Right 2 25 1 3 2623 4 24 5 2 23 1 3 254 5 2624 22 Rotate Left 2 23 1 3 255 4 262422 6 2 23 1 3 25 5 4 2624 22 6 Semua input sudah dimasukkan. Tree di atas adalah hasilnya, berupa AVL tree dan tentunya sudah balance
  • 38. Langkah-langkah mencari suatu nilai pada BST dan menampilkan path pencariannya
  • 39. • Tampilkan node yang diperiksa • Jika nilai node sama dengan X, X ditemukan. Kalau tidak, • Jika nilai node lebih besar dari X dan node di sebelah kiri adalah NULL, atau Jika nilai node lebih kecil dari X dan node di sebelah kanan adalah NULL, maka X tidak ditemukan, kalau tidak, • Jika nilai node lebih besar dari X, periksa node di sebelah kiri. Kalau tidak, • Jika nilai node lebih kecil dari X, periksa node di sebelah kanan. Sebut saja nilai yang dicari adalah X
  • 40. Node pertama yang diperiksa adalah root. 20 11 24 5 18 22 30 root
  • 41. 20 11 24 5 18 22 30 3 9 21 23 27 27 10 20, 11, 5, 24, 18, 30, 35, 22, 3, 21, 9, 10, 27, 23 INI BST...!!
  • 43. 20 Node bukan NULL Tampilkan nilai node 22 != 20 22 > 20 dan node sebelah kanan bukan NULL 22 > 20, maka periksa node sebelah kanan 20 24 Node bukan NULL Tampilkan nilai node 22 != 24 22 < 24 dan node sebelah kiri bukan NULL 22 < 24, maka periksa node sebelah kiri 24 20 24 Pertama periksa root... 22 Node bukan NULL Tampilkan nilai node 22 == 24, nilai ditemukan dan pencarian dihentikan. 22 Tampilan program Banyak node Nilai yang dicari Path pencarian
  • 45. Node bukan NULL Tampilkan nilai node 8 != 9 8 < 9 dan node sebelah kiri NULL, maka nilai tidak dapat ditemukan dan pencarian dihentikan. Node bukan NULL Tampilkan nilai node 8 != 5 8 > 5 dan node sebelah kanan bukan NULL 8 > 5, maka periksa node sebelah kanan 20 Pertama periksa root... Node bukan NULL Tampilkan nilai node 8 != 20 8 < 20 dan node sebelah kiri bukan NULL 8 < 20, maka periksa node sebelah kiri 20 11 Node bukan NULL Tampilkan nilai node 8 != 11 8 < 11 dan node sebelah kiri bukan NULL 8 < 11, maka periksa node sebelah kiri 11 5 5 9 9 Tampilan program Banyak node Nilai yang dicari Path pencarian
  • 46. Langkah di atas hanya bisa dilakuakan jika : •Tree yang digunakan adalah BST •Tidak ada dua nilai atau lebih yang sama di dalam tree
  • 48. Lowest Common Ancestor (LCA) Let T be a rooted tree with n nodes. The lowest common ancestor between two nodes v and w is defined as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).
  • 49. •Node yang pertama diperiksa adalah root •Jika : oa ≤ isi node dan b > isi node, atau ob ≤ isi node dan a > isi node, atau oa == isi node dan b < isi node, atau ob == isi node dan a < isi node Tampilkan isi node •Kalau tidak, jika: oa < isi node dan b < isi node Periksa node sebelah kiri •Kalau tidak, jika: oa > isi node dan b > isi node Periksa node sebelah kanan
  • 50. 10, 3, 15, 21, 6, 9, 7, 14, 1, 2 10 3 15 216 9 7 141 2
  • 51. Cari LCA dari 1 dan 14
  • 52. Periksa root 10 1 lebih kecil dari 10 dan 14 lebih besar dari 10 Maka LCA dari 1 dan 14 adalah 10
  • 54. Periksa root 10 9 lebih kecil dari 10 dan 3 lebih kecil dari 10 Maka periksa node sebelah kiri 3 9 lebih besar dari 3 dan 3 sama dengan 3 (node yang dicari) Maka LCA dari 3 dan 9 adalah 3
  • 56. Cara di atas hanya dapat digunakan jika : • Tree yang digunakan adalah BST • Tidak ada dua buah atau lebih isi node yang sama • Dua buah node yang di cari LCAnya harus ada di dalam tree
  • 57. Reference : Mark Allen Weiss, “AVL Tree”, Data Structures & Algorithm Analysis in C++, (2) 1999, 143- 155 Source Code : https://www.dropbox.com/sh/7b6m3j7v3semk8 y/s987IXfj4j/SC
  • 58. Oleh Muhammad Fahrul Razi 5113100105 Teknik Informatika Institut Teknologi Sepuluh November