Professional Documents
Culture Documents
POHON BINER
Gilang Maulana
ilovelymom@yahoo.com
gilang.mendozha@gmail./com
Manajamen Informatika
Akademik Bina Sarana Informatika
Salemba, Jakarta
INONESIA
2008
Pendahuluan
Pohon atau (tree) adalah salah satu bentuk graph terhubung yang tidak
mengandung sirkuit. Karena merupakan graoh terhubung, maka pada pohon (tree) selalau
terdapat path atau jalur yan menghubungkan setiap simpul dalam dua pohon.
Pohon (tree) dpat juga didefinisikan sebagai kumpulan element yang salah satu
elemennya disebut dengan akar (root) dan sisa elemen lain (simpul) yang terpecah
menjadi sebuah hmpuna yang saling tidak berhubungan yang disebut dengan subpohon
(subtree) atau cabang.
Penyajian Kait
Kalau tidak dinyatakan lain, suatu pohon binar T akan disimpan dalam memori secara
penyajian kait.
Penyajian ini menggunakan tiga array sejajar INFO, LEFT dan RIGHT, serta variabel
penuding ROOT.
Masing-masing simpul N dari pohon T berkorespondensi dengan suatu lokasi K,
sedemikan sehingga :
(1) INFO(K) berisi data pada simpul N.
(2) LEFT(K) berisi lokasi dari anak kiri simpul N.
(3) RIGHT(K) berisi lokasi dari anak kanan simpul N.
Contoh : Pohon Binar
A
B C
D E G H
F J K
Root •
• A •
• B • • C •
x D x • E x x G x • H •
x F x • J x x K x
x L x
Root Avail
Penyajian Sequential
Penyajian pada pohon binar T ini hanya menggunakan sebuah array linear tunggal TREE
sebagai berikut :
1. Akar R dari pohon T tersimpan sebagai TREE[1]
2. Jika simpul N menduduki TREE[K] maka anak kirinya tersimpan dalam TREE[2*K]
dan anak kanannya dalam TREE[2*K+1]
Contoh :
45
22 77
11 30 90
15 25 88
TREE
1 45
2 22
3 77
4 11 Dapat dilihat bahwa penyajian membutuhkan 14 lokasi dalam
5 30 array TREE, meskipun T hanya mempunyai 9 simpul.
6 Kenyataannya, bila kita memasukkan elemen nol sebagai suksesor
7 90 dari simpul terminal, dibutuhkan TREE[29] untuk suksesor kanan
8 dari TREE[14].
9 15
10 25
11 A. KUNJUNGAN PADA POHON BINER
12
Ada tida macam kunjungan pada pohon biner, yaitu
13
kunjungan PreOrder, InOrder, dan PostOrder. Selain itu ada
14 88
kunjungan LevelOrder, yaitu yang berdasarkan kedudukan tiap
15
simpul dalam pohon. Keempat kunjungan itu dibagi menjadi
. orientasi, yaitu left to right oriented (LRO) atau kunjungan
. dilakukan di cabang kiri dulu baru ke cabang kanan dan right to
. left oriented (RLO) atau kunjungan dilakukan di cabang kanan
dulu baru ke cabang kiri.
29
1. Kunjungan PreOrder
Kunjungan PreOrder LRO atau sering disebut dengan depth first order
menggunakan urutan sebagai berikut :
Cetak isi simpul yang dikunjungi.
Kunjungi cabang kiri.
Kunjungi cabang kanan.
Prosedur kunjungan PreOrder dapat dilakukan dengan cara rekursif atau non
rekursif. Prosedur kunjungan secara PreOrder LRO dengan rekursif disajikan berikut ini :
Procedure PreOrder (Root:Pohon);
Begin
If Root <> nil then
Begin
Write (Root^.Info);
PreOrder (Root^.kiri);
PreOrder (Root^.kanan);
End;
End;
2. Kunjungan InOrder
3. Kunjungan PostOrder
Seperti halnya PreOrde dan InOrder, prosedur kunjungan PostOrder juga dapat
dilakukan dengan cara rekursif atau non rekursif. Prosedur kunjungan secara PostOrder
LRO dengan rekursif disajikan berikut ini :
Procedure PostOrder (Root:Pohon);
Begin
If Root <> nil then
Begin
PostOrder (Root^.kiri);
PostOrder (Root^.kanan);
Write (Root^.Info);
End;
End;
B. SORTING
Sorting adalah sebuah proses merangkai benda dalam urutan tertentu dan/atau
dalam himpunan yang berbeda, dan oleh karena itu dia memiliki dua arti umum yang
berbeda:
1. Pengurutan: merangkai benda yang sejenis, sekelas, dll, dalam urutan yang
teratur,
2. Kategorisasi: pengelompokan dan pemberian label kepada benda dengan sifat
yang serupa.
Sorting (pengurutan) adalah operasi yang sangat banyak dilakukan dalam ’Bussines Data
Procesing’. Dalam hal ini pengurutan yang dilakukan adalah secara Ascepding
(menaik dari kecil ke besar).
Macam macam sorting (pengurutan) sebagai berikut :
SELECTION SORT
BUBLE SORT
MERGE SORT
QUICK SORT
INSERTION SORT
HEAP SORT
Salah satu cara sorting yang penting adalah mengatur benda informasi dalam
urutan alfabetik sesuai dengan hubungan penyusunan yang telah didefinisikan
sebelumnya, misal ketika seseorang mensortir buku-buku di perpustakaan berdasarkan
judul, subyek atau penulis (Biasanya diurutkan dalam urutan membesar). Urutan yang
dihasilkan dapat membesar atau mengecil, karena biasanya seluruh sorting adalah sorting
angka. Sorting dalam Ilmu Komputer adalah salah satu subjek riset yang paling luas
karena kebutuhan mempercepat operasi dalam ribuan atau jutaan data selama operasi
pencarian.
C. GRAPH
Graph merupakan struktur data yang paling umum. Jika struktur linear
memungkinkan pendefinisian keterhubungan sikuensial antara entitas data, struktur data
tree memungkinkan pendefinisian keterhubungan hirarkis, maka struktur graph
memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data.
1. Himpuna Graph dan Jenis Graph
a. Himpuna Graph
Suatu Graph terdiri dari himpunan verteks (node) dan himpunan sisi (edge, arc).
Verteks menyatakan entitas-entitas data dan sisi menyatakan keterhubungan antara
verteks.
Notasi matematis graph G adalah :
G = (V, E)
Sebuah sisi antara verteks x dan y ditulis {x, y}.
Subgraph : graph yang merupakan suatu subset (bagian) graph yang connected
Graph H = (V1, E1) disebut subgraph dari graph G jika V1 adalah himpunan bagian dari
V dan E1 himpunan bagian dari E.
b. Jenis Graph
Representasi data dengan struktur data linear ataupun hirarkis pada masalah ini
masih bisa digunakan namun akan membutuhkan pencarian-pencarian yang kurang
efisien. Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga
pencariannya langsung (straightforward) dilakukan pada strukturnya sendiri.
Masalah-masalah Graph
Masalah path minimum (Shortest mencari route dengan jarak terpendek dalam suatu
path problem) jaringan transportasi.
Masalah aliran maksimum menghitung volume aliran BBM dari suatu reservoir
(maximum flow problem) ke suatu titik tujuan melalui jaringan pipa.
Masalah pencariah dalam graph mencari langkah-langkah terbaik dalam program
(graph searching problem) permainan catur komputer.
menentukan urutan pengambilan mata-mata kuliah
Masalah pengurutan topologis
yang saling berkaitan dalam hubungan prasyarat
(topological ordering problem)
(prerequisite).
Masalah jaringan tugas (Task membuat penjadwalan pengerjaan suatu proyek yang
Network Problem) memungkinkan waktu penyelesaian tersingkat.
Masalah pencarian pohon rentang
mencari rentangan kabel listrik yang totalnya adalah
minimum (Minimum Spanning
minimal untuk menghubungkan sejumlah kota.
Tree Problem)
tukang pos mencari lintasan terpendek melalui semua
Travelling Salesperson Problem alamat penerima pos tanpa harus mendatangi suatu
tempat lebih dari satu kali.
dalam menggambar peta, memberikan warna yang
Four-color problem
berbeda pada setiap propinsi yang saling bersebelahan.
D. MATRIKS
Matriks adjacency dari graf G tanpa ruas sejajar adalah matriks A berukuran (N x N),
yang bersifat :
1, bila ada ruas (vi, vj)
aij =
0, dalam hal lain
Matriks Incidence dari graf G, tanpa self-loop didefinisikan sebagai matriks M berukuran
(N x M)
1, bila ruas ej berujung di simpul vi,
mij =
0, dalam hal lain
Contoh :
e5
v1 v4 v5
• • •
e4 e8
e1 e2 e6 e7
• •
v2 e3 v3
Matriks Ruas
1 1 1 1 2 3 3 4 atau 1 2
2 3 4 5 3 4 5 5 1 3
1 4
1 5
2 3
3 4
3 5
4 5
Matriks Adjacency : N x N
v1 v2 v3 v4 v5
v1 0 1 1 1 1
v2 1 0 1 0 0
v3 1 1 0 1 1
v4 1 0 1 0 1
v5 1 0 1 1 0
Matriks Incidence : N x M
e1 e2 e3 e4 e5 e6 e7 e8
v1 1 1 0 1 1 0 0 0
v2 1 0 1 0 0 0 0 0
v3 0 1 1 0 0 1 1 0
v4 0 0 0 1 0 1 0 1
v5 0 0 0 0 1 0 1 1
Notasi : D(V, A)
Simpul, anggota v, digambarkan sebagai titik (atau lingkaran kecil). Sedangkan arkus
a=(u,v), digambarkan sebagai garis dilengkapi dengan tanda panah mengarah dari simpul
u ke simpul v. Simpul u disebut titik pangkal, dan simpul v disebut titik terminal dari
arkus tersebut.
Contoh :
Graf berarah D (V, A) dengan :
1. V mengandung 4 smpul, yaitu : 1, 2, 3 dan 4
2. A mengandung 7 arkus, yaitu : (1,4), (2,1), (2,1), (2,2), (2,3), (2,4), (4,3).
1 4
• •
Arkus (2, 2) : gelung /
self loop
Arkus (2,1) : arkus sejajar
• • / arkus berganda
2 3