pohon biner - WordPress.com

advertisement
POHON BINER
1. Definisi pohon biner dan pohon biner lengkap
Misalkan T sebuah pohon dan v sebuah titik T. jika v berderajat tidak
lebih dari dua dan titik T yang lain berderajat tidak lebih dari tiga, maka T disebut
pohon biner dengan akar titik v.
Pohon biner T berakar di titik v dikatakan pohon biner lengkap jika derajat
titik v adalah dua atau nol dan setiap titik yang lain berderajat satu atau tiga atau
setiap simpulnya mempunyai tepat dua buah anak, kiri dan kanan. Selanjutnya titik
yang berderajat satu disebut titik terminal dan titik yang lain disebut titik internal.
Sebagai contoh perhatikan gambar graph dibawah ini :
v1
u1
v5
v6
v2
v3
v4
u2
u3
w1
w2
u4
w3
w5
w6
w8
T1
T2
w6
w7
w9
T3
Gambar 1. T1 pohon biner tak lengkap dengan akar v1
T2 pohon biner tak lengkap dengan akar u1
T3 pohon biner lengkap dengan akar w1
T1 adalah pohon biner dengan akar v1. titik-titik v2 dan v5 adalah titik-titik
internal, sedangkan titik-titik v3, v4, dan v6 adalah titik terminal. Pohon T2 adalah
pohon biner dengan akar titik u1, u2 disebut titik internal, dan titik-titik u3 dan u4
disebut titik terminal. Pohon T3 adalah pohon biner dengan akar w1. karena titik akar
berderajat dua dan setiap titik yang lain di T3 berderajat satu atau tiga, maka T3 adalah
pohon biner lengkap. Pohon biner T1 tidak lengkap karena titik internal v5 berderajat
dua, sedangkan pohon biner T2 tidak lengkap karena titik akarnya berderajat satu.
Sebagai akibat teorema jabat tangan dan definisi pohon biner lengkap, maka
banyaknya titik pohon biner lengkap selalu bilangan ganjil dan selisih antara
banyaknya titik terminal dan banyaknya titik internal adalah satu.
Pohon biner seimbang adalah pohon biner yang perbedaan tinggi antara anak kiri
dan anak kanan maksimal 1. Pada pohon biner seimbang dengan tinggi h, semua daun
berada pada aras h atau h – 1 . untuk membuat pohon seimbang, tinggi pohon secara
keseluruhan harus dibuat seminimal mungkin. Untuk memperoleh tinggi minimum,
setiap aras harus mengandung jumlah simpul sebanyak mungkin. Hal ini dapat dibuat
dengan menyebarkan setengah dari jumlah simpul di anak kiri dan setengah dari
jumlah simpul di anak kanan.
T1
T2
T3
Pohon T1 dan T2 pada gambar diatas adalah pohon seimbang, sedangkan T3 bukan
pohon seimbang karena perbedaan anak kiri dan anak kanan tidak maksimal 1.
Teorema 1. Jika T pohon biner lengkap dengan n titik, maka
i. n ganjil
ii. banyaknya titik terminal
n 1
2
iii. banyaknya titik internal
n 1
2
Bukti :
Misalkan T pohon biner lengkap dengan titik akar v. berdasarkan definisi, maka v
satu-satunya titik di T yang berderajat genap. Sedangkan sebanyak n-1 titik yang
lainnya masing-masing berderajat ganjil. Karena banyaknya titik yang berderajat
ganjil dalam graph adalah genap, maka n-1 genap. Akibatnya, n ganjil. Misalkan
banyaknya titik-titik terminal di T adalah t. maka terdapat n-t titik internal dan
sebanyak n-t-1 titik diantaranya masing-masing berderajat 3. sehingga jumlah derajat
semua titik T adalah
 d (u)  2  3(n  t  1)  t
……….. (1)
uV (T )
Karena T pohon dengan n titik, berdasarkan teorema 2.2
|E(T)| = n – 1
Berdasarkan teorem jabat tangan
 d (u)  2(n  1) …………. (2)
uV (T )
Dari (1) dan (2) dieproleh,
2 + 3(n – t – 1) + t = 2 (n -1)
t=
n 1
terbukti
2
selanjutnya banyak titik internal T adalah
n–t=n-
n 1 n 1
=
terbukti
2
2
jadi teorema 1. terbukti
Misalkan T sebuah pohon biner dengan titik akar v. titik x di T dikatakan
mempunyai tingkat (level) l jika panjang lintasan dari titik v ke titik x di T adalah l.
tingkat titik x, dilambangkan dengan l(x). tinggi pohon T, dilambangkan dengan h(T),
dedefinisikan sebagai berikut :
h(T) = maksimum {l(x) | x є V(T)}
contoh :
Perhatikan pohon biner T3 pada Gambar 1. diatas. Titik akar w1 terletak pada level 0,
titik-titik w2 dan w3 pada level 1, titik-titik w4, w5, w6, dan w7 pada level 2, titik-titik
w8 dan w9 terletak pada level 3. sehingga tinggi pohon biner T3 adalah 3. pohon biner
T1 dan T2 masing-masing tingginya 2.
Teorema 2. Jika T pohon biner dengan n titik dan tinggi h, maka
h ≥ [log 2 (n + 1) – 1]
2. Terapan Pohon Biner
2.1. Pohon Pencarian Biner
Salah satu cara untuk menyimpan data agar data tersebut mudah untuk
dicari (ditemukan) kembali adalah dengan menggunakan tehnik “pohon pencarian
biner”. Pohon pencarian biner adalah pohon biner T yang berakar di titik v
sedemikian sehingga setiap data berkorespondensi dengan titik T. data dilabel
menggunakan bilangan asli, sesuai urutan alphabetic. Data diatur atau diletakkan pada
titik-titik pohon biner T, sedemikian sehingga jika suatu data dengan label tertentu
sudah diletakkan di titik u pada T, data yang berlabel lebih kecil harus diletakan
disebelah kiri titik u, dan data yang berlabel lebih besar diletakkan disebelah kanan
titik u.
Contoh :
Misalkan kita mempunyai data yang berupa kata-kata dalam kalimat berikut :
“ Old Programmers Never Die They Just Lose Their Memories”
Dalam kalimat ini terdapat 9 kata. Kata-kata : Die, Just, Lose, Memories, Never,
Old, Programmers, Their, They, secara berturut-turut dilabel dengan bilangan 1,
2, 3, 4, 5, 6, 7, 8, 9. jika kata “Old” berkorespondensi dengan akar pohon biner,
maka kata-kata dalam kalimat tersebut dapat ditempatkan dalam sebuah pohon
biner berikut
Old (6)
Never (5)
Programmers (7)
Die (1)
They (9)
Just (2)
Their (8)
Lose (3)
Memories (4)
Gambar 2.
Jika kata “Never” diletakkan pada akar pohon biner, maka didapat pohon pencarian
biner berikut :
Never (5)
Just (2)
Die (1)
Programmers (7)
Lose (3)
Old (6)
Memories (4)
Their (8)
They (9)
Gambar 3.
Mislnya, dari diagram yang terakhir ini, kita akan mencari kata “Old”. Karena label
kata “Old” adalah 6, dan lebih besar dari kata “Never” sebagai akar yaitu 5, maka dari
akar kita akan mencari ke arah kanan, kata pertama yang kita jumpai adalah
“Programmer” berlabel 7. karena label kata “Old” lebih kecil dari label kata
“Programmer”, maka kita lanjutkan ke arah kiri dan akhirnya kita jumpai kata “Old”
di titik tersebut. Jadi kita hanya perlu dua step untuk mendapatkan kta “Old” dimana
pencarian dimulai dari akar pohon biner tersebut.
Dari contoh diatas, karena banyaknya item data (banyaknya kata dalam kalimat)
adalah 9, maka tinggi pohon biner yang bisa dibuat adalah
= h ≥ [log 2 (9 + 1) – 1]
= h ≥ [log 2 9]
=h≥3
Karena pohon biner dengan cara yang kedua memiliki tinggi 3, maka cara yang
kedua diatas merupakan salah satu cara yang paling efisien.
2.2. Pohon Keputusan
Pohon keputusan digunakan untuk memodelkan persoalan yang terdiri dari
rangkaian keputusan yang mengarah ke solusi. Sebagai contoh, kita ingin
mengurutkan tiga buah bilangan N1, N2, N3. pohon keputusan untuk persoalan ini
ditunjukkan pada Gambar 4.
N1< N2
N2< N3
N1<N2<N3
N1< N3
N1< N3
N1<N3<N2
N1<N2<N3
N3<N1<N2
N2< N3
N2<N3<N1
N3<N2<N1
Simbol elips menandai tes, dan simbol kotak menandai keputusan. Dari elips dibuat
sisi ke kiri jika jawaban tes adalah “ya”, dan ke kanan jika jawaban tes adalah
“tidak”. Perhatikan bahwa titik terminal pohon, sedangkan setiap komparasi
berkorespondensi dengan titik internal pohon biner. Dalam contoh ini, terdapat 6
(=3!) keputusan yang mungkin.
Perhatikan bahwa, dalam setiap pohon keputusan T untuk mengurutkan n buah
bilangan berbeda, terdapat sebanyak n! titik terminal. Sehingga, berdasarkan Teorem.
1, banyaknya titik T adalah 2n! – 1. sehingga berdasarkan Teorema 2, tinggi pohon T
adalah h(T) dengan
h(T) ≥ [log2 (2n! – 1 + 1) – 1]
= [log2 (2n!) – 1]
= [log2 n!]
Karena untuk bilangan bulat positif n berlaku
n
n
 n 2
n! = 1,2,3,…  ......(n  1)n    , maka
2
2
n
n
log2 n! ≥ log 2
2
2
tetapi untuk n ≥ 4,
n
n
n
log 2 ≥ log 2 n
2
2
4
Teorema 3. :
a. setiap pohon keputusan untuk mengurut n bilangan berbeda mempunyai tinggi
minimal log2 n!.
b. algoritma mengurutkan n bilangan berbeda dengan cara komparasi,
memerlukan paling sedikit ¼ n log2 n komparasi.
2.3 Pohon Ekspresi
Pohon ekspresi adalah pohon biner dengan daun menyatakan operand dan
simpul dalam (termasuk akar) menyatakan operator. Perhatikan bahwa tanda kurung
tidak lagi diperlukan bila suatu ekspresi aritmetik dipresentasikan sebagai pohon
biner.
Contoh :
Pohon ekspresi aritmatika (a + b)*(c / (d + e))
*
+
a
/
b
c
+
d
e
Download