pertemuan 13 treec2a0
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
T R E E
Pertemuan 13
Waktu
:
menit
Tujuan Pembelajaran
: Mahasiswa mampu menjelaskan teknik pemrograman
Substansi Materi
: Tree
menggunakan Tree.
Tabulasi Kegiatan Perkuliahan
No
Tahap
Kegiatan
Pendahuluan
Penyajian
Materi
Penutup
Kegiatan Pengajar
. Membuka pertemuan
. Mengulang materi pertemuan
sebelumnya
. Pengertian Tree
. Jenis Tree
. Binary Tree
. Contoh program
. Contoh soal Tree
. Menyimpulkan materi pertemuan
. Memberikan tugas kecil
. Menutup pertemuan
Kegiatan
Mahasiswa
Menyimak
Bertanya
Menyimak
Bertanya
Menjawab
Pertanyaan
Menyimak
Media & Alat
Waktu
Papan Tulis
Menit
Papan Tulis
8 Menit
Papan tulis
Menit
M A T E R I K U L I A H
TREE
Sebelumnya kita sudah mengenal struktur data list, yang berupa obyek‐obyek yang saling
terkait. Dalam list, satu obyek hanya terkait dengan satu obyek berikutnya melalui sebuah
pointer. List dapat dikembangkan menjadi struktur data yang lebih kompleks, misalnya
dengan menambah jumlah pointer dalam obyek. Misal dengan penambahan satu pointer
lagi. Artinya bahwa jika masing‐masing obyek memiliki dua pointer, ada dua obyek lain
yang ditunjuknya. Struktur yang demikian dikenal sebagai binary tree atau dikenal juga
sebagai Tree Node.
V3/2009‐2010 1
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
T R E E
Gambar . )lustrasi Binary Tree
)stilah‐istilah umum dalam Binary Tree :
•
•
•
Successor
•
jalur yang sama
•
jalur yang sama
•
: seluruh node yang terletak sebelum node tertentu dan terletak pada
Descendant : seluruh node yang terletak sesudah node tertentu dan terletak pada
Parent
: predecessor satu level diatas suatu node
Subtree
: bagian dari tree yang berupa suatu node beserta descendantnya dan
•
•
memiliki semua karakteristik dari tree tersebut
•
•
•
Ancestor
: node yang berada dibawah node tertentu
Child
•
Predecessor : node yang berada di atas node tertentu
Size
: successor satu level diatas suatu node
: Banyaknya node dalam suatu tree
(eight
: Banyaknya tingkatan / level dalam suatu tree
Leaf
: Node‐node dalam tree yang tak memiliki successor
Root
Degree
: Satu‐satunya node khusus dalam tree yang tak punya predecessor
: Banyaknya child yang dimiliki suatu node
V3/2009‐2010 2
DIKTA
AT KULIAH
ALLGORITMA d
dan STRUKTU
UR DATA II
T R E E
Contoh :
Subtree
A
B
C
D
E
F
G
Jenisjen
nis Tree
. Binary Tree
B
B
Binary
Tree adalah treee dengan syarat bah
hwa tiap no
ode hanya boleh mem
miliki
m
maksimal
du
ua subtree dan kedua subtree tersebut haru
us terpisah. Sesuai dengan
definisi terseebut, makaa tiap node dalam binaary tree haanya boleh memiliki paling
banyak dua cchild.
Jeenis‐jenis Biinary Tree ::
•
Full B
Binary Tree
Binarry Tree yan
ng tiap nod
denya kecu
uali leaf memiliki duaa child dan tiap
subtree harus meempunyai p
panjang path
h yang samaa.
•
Comp
plete Binary
y Tree
Mirip dengan Fu
ull Binary Tree,
T
namun
n tiap subtrree boleh memiliki
m
pan
njang
path y
yang berbed
da. Node kecuali leaf m
memiliki attau child.
•
Tree
Skewed Binary T
Yaknii Binary Tree yang sem
mua noden
nya kecualii leaf hany
ya memiliki satu
child.
V3/200
09‐2010 3
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
T R E E
Deklarasi Binary Tree
Node = record
Isi : TipeData;
Left, Right : Tree;
End;
Type Tree = ^node;
Operasi‐operasi pada Binary Tree
•
•
•
•
Create
: Membuat binary tree baru yang masih kosong
Clear
: Mengosongkan binary tree yang sudah ada
)nsert
: Memasukan sebuah node ke dalam tree. Ada tiga pilihan
Empty
: Function untuk memeriksa apakah binary tree masih kosong.
insert, yaitu ROOT, LEFT C()LD, atau R)G(T C()LD. Khusus insert sebagai
•
ROOT, TREE harus dalam keadaan kosong.
•
node. Tree tidak boleh dalam kedaan kosong.
•
Tree tidak boleh dalam keadaan kosong.
•
Tree tidak boleh dalam kedaan kosong.
Find
: Mencari root, parent, left child, atau right child dari suatu
Update
: Mengubah isi dari node yang ditunjuk oleh pointer current.
Retrieve
: Mengetahui isi dari node yang ditunjuk oleh pointer kosong.
DeleteSub
: Menghapus sebuah subtree
node beserta seluruh
descendant‐nya yang ditunjuk oleh current. Tree tidak boleh kosong.
Setelah itu pointer current akan berpindah ke parent dari node yang telah di
•
hapus.
Characteristic: Mengetahui karakteristik dari suatu tree, yakni : size, height,
serta average dari length‐nya. Tree tidak boleh kosong.
V3/2009‐2010 4
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
T R E E
•
Traverse
: Mengunjungi seluruh node‐node pada tree, masing‐masing
sekali. (asilnya adalah urutan informasi secara linier yang tersimpan dalam
tree. Ada tiga cara traverse : Pre Order, )n Order, dan Post Order.
Langkah melakukan traverse :
¾ PreOrder
: cetak isi node yang dikunjungi, kunjungi Left Child,
¾ )nOrder
: Kunjungi Left Child, cetak isi node yang dikunjungi,
¾ PostOrder
: Kunjungi Left Child, kunjungi Right Child, cetak isi
kunjungi Right Child.
kunjungi Right Child.
node yang dikunjungi.
V3/2009‐2010 5
ALGORITMA dan STRUKTUR DATA II
T R E E
Pertemuan 13
Waktu
:
menit
Tujuan Pembelajaran
: Mahasiswa mampu menjelaskan teknik pemrograman
Substansi Materi
: Tree
menggunakan Tree.
Tabulasi Kegiatan Perkuliahan
No
Tahap
Kegiatan
Pendahuluan
Penyajian
Materi
Penutup
Kegiatan Pengajar
. Membuka pertemuan
. Mengulang materi pertemuan
sebelumnya
. Pengertian Tree
. Jenis Tree
. Binary Tree
. Contoh program
. Contoh soal Tree
. Menyimpulkan materi pertemuan
. Memberikan tugas kecil
. Menutup pertemuan
Kegiatan
Mahasiswa
Menyimak
Bertanya
Menyimak
Bertanya
Menjawab
Pertanyaan
Menyimak
Media & Alat
Waktu
Papan Tulis
Menit
Papan Tulis
8 Menit
Papan tulis
Menit
M A T E R I K U L I A H
TREE
Sebelumnya kita sudah mengenal struktur data list, yang berupa obyek‐obyek yang saling
terkait. Dalam list, satu obyek hanya terkait dengan satu obyek berikutnya melalui sebuah
pointer. List dapat dikembangkan menjadi struktur data yang lebih kompleks, misalnya
dengan menambah jumlah pointer dalam obyek. Misal dengan penambahan satu pointer
lagi. Artinya bahwa jika masing‐masing obyek memiliki dua pointer, ada dua obyek lain
yang ditunjuknya. Struktur yang demikian dikenal sebagai binary tree atau dikenal juga
sebagai Tree Node.
V3/2009‐2010 1
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
T R E E
Gambar . )lustrasi Binary Tree
)stilah‐istilah umum dalam Binary Tree :
•
•
•
Successor
•
jalur yang sama
•
jalur yang sama
•
: seluruh node yang terletak sebelum node tertentu dan terletak pada
Descendant : seluruh node yang terletak sesudah node tertentu dan terletak pada
Parent
: predecessor satu level diatas suatu node
Subtree
: bagian dari tree yang berupa suatu node beserta descendantnya dan
•
•
memiliki semua karakteristik dari tree tersebut
•
•
•
Ancestor
: node yang berada dibawah node tertentu
Child
•
Predecessor : node yang berada di atas node tertentu
Size
: successor satu level diatas suatu node
: Banyaknya node dalam suatu tree
(eight
: Banyaknya tingkatan / level dalam suatu tree
Leaf
: Node‐node dalam tree yang tak memiliki successor
Root
Degree
: Satu‐satunya node khusus dalam tree yang tak punya predecessor
: Banyaknya child yang dimiliki suatu node
V3/2009‐2010 2
DIKTA
AT KULIAH
ALLGORITMA d
dan STRUKTU
UR DATA II
T R E E
Contoh :
Subtree
A
B
C
D
E
F
G
Jenisjen
nis Tree
. Binary Tree
B
B
Binary
Tree adalah treee dengan syarat bah
hwa tiap no
ode hanya boleh mem
miliki
m
maksimal
du
ua subtree dan kedua subtree tersebut haru
us terpisah. Sesuai dengan
definisi terseebut, makaa tiap node dalam binaary tree haanya boleh memiliki paling
banyak dua cchild.
Jeenis‐jenis Biinary Tree ::
•
Full B
Binary Tree
Binarry Tree yan
ng tiap nod
denya kecu
uali leaf memiliki duaa child dan tiap
subtree harus meempunyai p
panjang path
h yang samaa.
•
Comp
plete Binary
y Tree
Mirip dengan Fu
ull Binary Tree,
T
namun
n tiap subtrree boleh memiliki
m
pan
njang
path y
yang berbed
da. Node kecuali leaf m
memiliki attau child.
•
Tree
Skewed Binary T
Yaknii Binary Tree yang sem
mua noden
nya kecualii leaf hany
ya memiliki satu
child.
V3/200
09‐2010 3
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
T R E E
Deklarasi Binary Tree
Node = record
Isi : TipeData;
Left, Right : Tree;
End;
Type Tree = ^node;
Operasi‐operasi pada Binary Tree
•
•
•
•
Create
: Membuat binary tree baru yang masih kosong
Clear
: Mengosongkan binary tree yang sudah ada
)nsert
: Memasukan sebuah node ke dalam tree. Ada tiga pilihan
Empty
: Function untuk memeriksa apakah binary tree masih kosong.
insert, yaitu ROOT, LEFT C()LD, atau R)G(T C()LD. Khusus insert sebagai
•
ROOT, TREE harus dalam keadaan kosong.
•
node. Tree tidak boleh dalam kedaan kosong.
•
Tree tidak boleh dalam keadaan kosong.
•
Tree tidak boleh dalam kedaan kosong.
Find
: Mencari root, parent, left child, atau right child dari suatu
Update
: Mengubah isi dari node yang ditunjuk oleh pointer current.
Retrieve
: Mengetahui isi dari node yang ditunjuk oleh pointer kosong.
DeleteSub
: Menghapus sebuah subtree
node beserta seluruh
descendant‐nya yang ditunjuk oleh current. Tree tidak boleh kosong.
Setelah itu pointer current akan berpindah ke parent dari node yang telah di
•
hapus.
Characteristic: Mengetahui karakteristik dari suatu tree, yakni : size, height,
serta average dari length‐nya. Tree tidak boleh kosong.
V3/2009‐2010 4
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
T R E E
•
Traverse
: Mengunjungi seluruh node‐node pada tree, masing‐masing
sekali. (asilnya adalah urutan informasi secara linier yang tersimpan dalam
tree. Ada tiga cara traverse : Pre Order, )n Order, dan Post Order.
Langkah melakukan traverse :
¾ PreOrder
: cetak isi node yang dikunjungi, kunjungi Left Child,
¾ )nOrder
: Kunjungi Left Child, cetak isi node yang dikunjungi,
¾ PostOrder
: Kunjungi Left Child, kunjungi Right Child, cetak isi
kunjungi Right Child.
kunjungi Right Child.
node yang dikunjungi.
V3/2009‐2010 5