Pembahasan
mengenai konsep ini salah satunya dapat didekati dari operasi himpunan. Hal ini
yang akan dilakukan dalam modul ini. Pembahasan ditekan pada pengenalan
terminology serta ketrampilan manipulasi matematika, bukan pada sifat-sifat maupun
analisisnya. Pembahasan mengenai fungsi mulai dari definisi sampai dengan operasi-
operasi fungsi maupun komposisi fungsi.
1 a
2 H={(1,a), (1,b)}
b
3
1 a
2 H={(1,a), (3,b)}
b
3
1 a
2 H={(1,a), (3,a)}
b
3
1 a
2 H={(1,a), (2,b), (3,b)}
b
3
5.3 Fungsi
Istilah fungsi dikenal juga dengan nama pemetaan. Fungsi dari A ke B adalah pemetaan
unsur-unsur A ke unsure di B. Dalam hal ini himpunan A dan B dapat saja sama.
Definisi :
Fungsi dari A ke B adalah himpunan bagian dari AxB, atau dengan kata lain
relasi dari A ke B, dengan sifat bahwa setiap anggota A dijamin mempunyai
tepat satu anggota B sebagai pasangannya.
Oleh karena itu, jika ukuran A dan B masing-masing adalah n(A) dan n(B), maka
banyaknya fungsi dari A ke B yang dapat dibuat adalah [n(B)]n(A). Kenapa?
Contoh :
A={1,2,3} dan B={a,b}, maka :
Banyaknya fungsi yang dapat dibuat dari A ke B adalah 23=8 buah. Berikut adalah
diagram dari beberapa fungsi dari A ke B yang dapat dibuat :
1 a
2 f={(1,a), (2,b), (3,b)}
b
3
1 a
2 f={(1,a), (2,a)(3,b)}
b
3
1 a
2 f={(1,a), (2,a), (3,a)}
b
3
1 a
2 f={(1,a), (2,b), (3,a)}
b
3
1 a Df={1, 2, 3}
2 Range={a}
b
3 Kodomain={a,b}
Jika pasangan anggota fungsi tersebut adalah bilangan, maka anggota fungsi ini dapat
digambarkan dalam suatu bidang X-Y sebagai himpunan titik-titik (koordinat). Sebagai
contoh adalah :
a. f={(1,2), (2,4), (3,4)}
4 • •
1 2
2 •
2
4
3
1 2 3
-1
Berdasarkan grafik dalam bidan X-Y, maka grafik tersebut merupakan grafik fungsi jika
garis vertical hanya memotong di satu titik. Sedangkan garis horizontal boleh memotong
di lebih dari satu titik.
Contoh :
Proyeksi grafik fungsi ke sumbu X merupakan daerah asal, sedangkan proyeksi ke sumbu
Y merupakan daerah hasil.
Contoh :
-1 6
1 a 1 a 1 a 1 a
2 2 2 2
b b b b
3 3 3 3
cc
d
e. f. g. h.
1 a 1 a 1 a 1 a
2 2 2 2
b b b b
3 3 3 3
c cd c
d
b. Fungsi identitas
Fungsi ini bernilai sama dengan inputnya.
Bentuk :
f(x)=x, dengan kDf
Contoh
f(x)=x, untuk x bilangan real
grafik fungsi ini adalah :
y=x
x 2 + 2x + 1
f ( x) = dalam hal ini Df={x|x-30, x adalah bilangan real}
x −3
e. Fungsi Akar
Nilai fungsi ini adalah tidak pernah negatif. Nilainya selalu nol atau positif.
Bentuk :
Contoh
1. f ( x) = ( x − 1)( x + 2)
Maka Df={x|(x-1)(x+2)0, x adalah bilangan real}
Karena (x-1)(x+2)0 x-2 atau x1, maka boleh ditulis juga :
Df={x| x-2 atau x1, x adalah bilangan real}
2. f ( x) = x 2 − 5 x − 6 , tentukan Df.
x −3
a) f ( x) =
( x − 1)( x + 2)
b) f ( x) = x 2 − 7 x + 12
( x − 2)( x + 1)
c) f ( x) =
x2 + x − 6
Contoh :
1. Misalkan f(x)=x-2 dan g(x)=|x+1|, maka :
a. (f+g)(x)=x-2+|x+1|
misal x=5, maka : f(5)+g(5)=(f+g)(5)=5-2+|5+1|=3+6=9
b. (f-g)(x)=x-2-|x+1|
misal x=5, maka : f(5)-g(5)=(f-g)(5)=5-2-|5+1|=3-6=-3
c. (f.g)(x)=(x-2).|x+1|
misal x=5, maka : f(5).g(5)=(f.g)(5)=(5-2).|5+1|=3 . 6=18
d. (f/g)(x)=(x-2)/|x+1|
misal x=5, maka : f(5)/g(5)=(f/g)(5)=(5-2)/|5+1|=3/6=1/2
2. Lakukan hal yang sama seperti di atas untuk : f(x)=x-1 dan g(x)=|x+1|, untuk -3x3
Komposisi Fungsi
Komposisi fungsi dikenal juga dengan fungsi majemuk. Dalam hal ini x sebagai input suatu fungsi
tertentu. Hasil dari fungsi dengan input x ini sebagai masukan bagi fungsi berikutnya, dan hasil dari fungsi ini
sebagai input bagi fungsi berikutnya lagi, dan begitu seterusnya. Simbol untuk komposisi fungsi adalah “ ”.
Bentuk :
(f g)(x)=f[g(x)]
artinya : x dimasukkan sebagai input untuk g, dan hasilnya sebagai input bagi f.
Contoh :
Misalkan f(x)=x-5 dan g(x)=|x+1|, maka :
Jika x=2, maka : (f g)(2)=f[g(4)]=f(3)=-2 juga (g f)(2)=g[f(2)]=g(-3)=2
Contoh :
1. perhatikan Diagram berikut :
1 a
2
b
3
c
Diagram tersebut merupakan diagram untuk fungsi bijektif, oleh karena itu mempunyai kebalikan
fungsi. Dalam hal ini :
f(1)=a, f(2)=c, f(3)=b. Juga bisa dikatakan f -1(a)=1, f-1(b)=3, f-1(c)=2
2. Jika f(x)=2x+10, maka :
y=2x+10
2x=y-10
x=(y-10)/2
maka dapat dirumuskan bahwa f -1(x)=(x-10)/2
x −3
3. Tentukan kebalikan fungsi berikut : f ( x) =
x −1
x 2 + 1 x<-1
f ( x) = 2 -1x4
1 − 2 x
x>4
4. Jika f(x) dan g(x) adalah sesuai dengan fungsi berikut, tentukan f[g(x)]
x2 + 2 x<2
x −1 x3
f ( x) = x − 1 2x<5 dan g ( x) =
x2 x 0x<5
x5
Maka tentukan f[g(x)].
5. Jika f(x)=2x+2 dan f[g(x)]=6x-4, tentukan g(x).
6. Jika f(x)=2x+2 dan g[f(x)]=6x-4, tentukan f(x).
7. Jika :
x 2 + 1 x<-1
dan g(x)=|x-4|
f ( x) = 2 -1x4
1 − 2 x
x>4
x−2
b. f ( x) = , juga hitung f--1(0)
4x + 8
c. f(x)=|x2+3x+1|, juga hitung f--1(1)
x
d. f ( x) = , juga hitung f--1(4)
x+2
6.1 Pengertian
Relasi rekursif merupakan barisan unsur-unsur, dimana nilai suatu unsur merupakan fungsi dari unsur-
unsur sebelumnya. Unsur ke n biasanya dituliskan sebagai an. Sebagai ilustrasi perhatikan contoh berikut :
a. 3an+1=2an+an-1
b. 3an+1=2an+an-1, untuk n1, a0=7, dan a1=3.
Pada contoh di atas terdapat dua perbedaan antara (a) dengan (b), yaitu :
- Pada bagian (a) kita belum dapat menentukan secara khusus relasi rekursif yang
dimaksud. Ada banyak sekali relasi rekursi yang memenuhi (a) di atas. Di antaranya
adalah :
1. 11, 3, 5 6/9, 4 21/27, …
2. 7, 3, 4 1/3, 3 8/9, 4 1/27, …
3. dsb.
- Pada bagian (b), relasi rekursif yang dimaksud sudah khusus, dan hanya ada satu buah
yang memenuhi, yaitu :
7, 3, 4 1/3, 3 8/9, 4 1/27, …
Relasi rekursif untuk contoh (a) disebut sebagai bentuk umum. Sedangkan untuk bagian (b) disebut bentuk
khusus. Terlihat bahwa bentuk khusus adalah bentuk umum yang sudah diberi nilai awal (nilai inisial).
Nilai inisial ini juga disebut sebagai nilai atau kondisi pembatas (boundary condition).
2 an=an-1+ an-2
1 1 + 5 1 − 5
n0, a0=0, dan a1=1 n n
an = −
5 2 2
3 2an+3=an+2+2an+1-an n0, a0=0, a1=1 dan a2=2 an = 5/2 + 1/6(-1)n – 8/3(1/2)n
• z=x+yi r= x2 + y 2
•
Oleh karena itu, bilangan kompleks tersebut dapat dinyatakan
y=r sin sebagai :
r
z = r cos + r sin . i
= r (cos + i sin )
x=r cos
Z = (1+ 3 i)10
Dalam hal ini :
r= 12 + ( 3 )2 = 2
Definisi :
Graph G=(V,E) adalah pasangan dari himpunan vertek-vertek V dan himpunan edge-edge E
yang menghubungkan antar dua vertek, atau dapat dituliskan EVxV. Jika arah
diperhatikan, disebut digraph,sedangkan jika arah tidak diperhatikan, disebut undigraph.
Contoh :
V={Jakarta, Bogor, Bandung, Cianjur, Tangerang, Cikampek}
E={{jakarta,bogor}, {jakarta,bandung}, {jakarta,tangerang}, {jakarta,cikampek}, {bogor,cianjur},
{cianjur,bandung}, {bogor,tangerang}, {cikampek,bandung}}.
tangerang
cikampek
jakarta
bogor
cianjur
bandung
e1
b • e2
• a e1
c
e3
• e1
• d
1. Jalur : a, e9, c, e5, d, e8, f, e7, e, e6, c, e5, d, e10, b adalah bukan trail
2. Jalur : e, e11, g, e3, h, e14, i, e13, g, e2, a adalah trail
3. Jalur : e, e11, g, e3, h, e14, i, e13, g, e2, a, e9, c, e6, e adalah circuit
4. Jalur : e, e11, g, e3, h, e14, i, e13, g, e2, a adalah bukan path
5. Jalur : e, e7, f, e15, h, e14, i, e13, g, e2, a adalah path.
6. Jalur : e, e7, f, e15, h, e14, i, e13, g, e2, a, e9, c, e6, e adalah cycle.
a b
c
d
e
f g
b •
• a
c
•
• d
f
•
• i
• j
• g • h
Banyaknya komponen graph ini adalah 4, (G)=4. Oleh karena itu termasuk dalam 4-graph
•b •c •d
•e
•f
•a
•a
•b •c •d
•b •c •d
•a •a
•d •f
• •b
• •c
•c d •g
b •e
Spanning Subgraph
spanning subgraph dari suatu graph G=(V,E) adalah G1=(V1,E1) dengan sifat :
a. G1 adalah subgraph dari G, serta
b. V1=V
Sebagai ilustrasi berikut disajikan beberapa spanning subgraph dari graph G=(V,E) di atas :
•a
•a
•b •c •d
•b •c •d
•e
•e •f
•f
(iii) (iv)
•a •a
•b •c •d •b •c •d
•e
•e
•f
•f
Sedangkan contoh berikut adalah bukan spanning subgraph dari graph G tersebut :
•b •c
•e
•f
bukan subgraph dan bukan spanning subgraph dari G
•a
•b •c •d
•e
•f
Pengurangan dengan vertek : Graph G=(V,E) dikurangi dengan himpunan beberapan vertek A,
ditulis G-A, adalah graph baru G1 yang merupakan graph G yang telah dihapuskan vertek-
vertek yang tercakup dalam A serta edge yang incident dengan vertek-vertek dalam A
tersebut. Sebagai ilustrasi perhatikan contoh berikut :
•a
•b •d
•b •c •d - {c,e,a} =
•f
•e
•f
Pengurangan graph dengan edge : Graph G=(V,E) dikurangi dengan himpunan beberapan edge B,
ditulis G-B, adalah graph baru G1 yang merupakan graph G yang telah dihapuskan edge-
edge yang ada dalam B. Sebagai ilustrasi perhatikan contoh berikut :
•a •a
e1 e3
e2
e4 - {e2,e4,e7,e5} =
•b •c •d •b •c •d
e5
e6
•e e7 •e
•f •f
Jika |V|=n, maka complete graph terhadap himpunan vertek V ditulis sebagai Kn. Sebagai ilustrasi
perhatikan contoh-contoh berikut :
K1 adalah : •a
K2 adalah : •a •b
K3 adalah : •a •b
•c
K4 adalah : •a •b
•c •c
•a
K1 adalah :
•b •c
•d •e
Komplemen suatu Graph : Komplemen suatu graph G=(V,E) dengan |V|=n adalah complete graph
Kn dengan sifat semua edge yang ada di G telah dihapus. Sebagai ilustrasi
perhatikan graph berikut :
•a
•b •c
•d
•e
•a
b• •c
b
d• •e
d
b •
e9 •a
e1
c e2
e1 e8
• e1
e4 • d
e1
f e3
• e1
• i
e6 e5
e1 e1 • j
• g • h
e7
e1
a. Mana saja dari yang berikut ini merupakan subgraph dari graph di atas :
(i) (ii) (iii)
b • b • b •
• a • a • a
c c c
• • d
• •
• d • d
b •
• a
c
•
• d
f
•
• i
• j
• g • h
deg(v) = 2 | E |
vV
•a
•d
•b •c
•e
•f
deg(a)=2
deg(b)=0 Sedangkan |E| = 5. Oleh karena itu terlihat
deg(c)=2
deg(d)=3 bahwa :
deg(e)=2
deg(f)=1
--------------------- deg(v) = 2 | E |
deg( v) = 10
v V
vV
Euler Circuit : Euler circuit adalah suatu circuit (tidak ada edge yang dilalui lebih dari seklai) yang
melalui seluruh edge. Jika jalur tersebut berupa jalur tertutup maka disebut euler trail.
Suatu undirected loop-free graph akan mempunyai euler circuit jika dan hanya jika derajad
setiap verteknya adalah genap. Oleh karena itu suatu undirected loop-free graph akan
mempunyai euler trail kalau tepat hanya ada vertek yang berderajad ganjil.
e8
Terlihat bahwa semua vertek berderajad genap, maka graph tersebut akan mempunyai euler
circuit. Salah satu euler circuitnya adalah :
c
e5 e6
b
e1 d
e4
a e7
e
e3
e2 e9
f
e8
Jalur : f, e2, a, e1, b, e5, c, e6, d, e7, e, e4, b, e3, f, e8, e adalah suatu trail.
Derajad vertek suatu directed graph : Ada dua jenis derajad suatu vertek dalam directed graph,
yaitu incoming degree, ditulis sebagai id(v) dan outgoing degree, ditulis sebagai od(v).
Incoming degree, id(v), adalah banyaknya edge yang incident ke vertek v. Sedangkan
outgoing degree, od(v), adalah banyaknya edge yang incident dari vertek v.
1. Graph G1=(V1,E1) :
e1
e2
a• •b
e3 e5
e4
c• d• • e e7
e6
Jalur : d, e4, a, e3, c, e7, b, e2, a, e1, a, e5, e, e6, d adalah suatu euler circuit.
2. Graph G2=(V2,E2) :
e1
e2
a• •b
e3 e5
e4
c• d• • e
e6 e7
Graph ini tidak mempunyai euler circuit, sebab pada vertek c id(v)=2od(v)=0. Juga
pada vertek b, id(b)=0od(b)2.
Graph yang tidak memenuhi sifat di atas dikatakan sebagai non planar graph. Sebagai ilustrasi
perhatikan graph-graph berikut :
•e
d• •a
c• •b
c• •b
h• •e
g• •f g• •f
Graph Bipartite : Suatu graph G=(V,E) dikatakan bipartite jika V=V1V2 dengan V1V2= dan
setiap edge pada G akan berbentuk {a,b} dengan aV1 dan bV2.
Sebagai ilustrasi, marilah kita lihat apakah graph berikut merupakan bipartite :
f
a
b g
c
h
d
i
V1 V2
2. G=(V,E) yang bipartite :
f •a
•
•l •g
e• •k •h •b
•j •i
d •c
•
f
a
b g
c
h
d
i
V1 V2
Contoh :
•a
b• •c
b
d• •e
d
Vertek a dan c harus mempunyai warna yang berlainan.
Vertek b dan c harus mempunyai warna yang berlainan.
Vertek d dan c harus mempunyai warna yang berlainan.
Vertek d dan e harus mempunyai warna yang berlainan.
Vertek a, b, dan d boleh mempunyai warna yang sama.
Chromatic Number dari graph G ((G)) : merupakan banyaknya warna paling sedikit yang
diperlukan agar supaya dapat dilakukan pewarnaan graph. Untuk graph di atas, maka nilai
chromatic number adalah 2. Sebab hanya perlu dua jenis warna yang berbeda supaya dapat
dilakukan pewarnaan. Misalkan : vertek a, b, dan d diberi warna hitam, sedangkan vertek c dan e
diberi warna putih.
•a
(-1)
b• • c (-1)
b
d• •e (-1)
d
(-1)
Jika kita mempunyai warna sebanyak 6 jenis, maka banyaknya pewarnaan yang dapat dibuat adalah
sebanyak : 6 x 5 x 5 x 5 x 5 = 3750.
Latihan Pertemuan 12
d g
e f
h k
i j
a. Tentukan derajad masing-masing verteks !
b. Apakah ada pendant vertek dalam graph tersebut ?
c. Tunjukan apakah berlaku : deg(v) = 2 |E| di dalam graph tersebut ?
d. Apakah ada Euler circuit di dalam graph tersebut. Jika ada tuliskan salah satunya.
a b c
d e f g
h i k
j
a. Tentukan incoming degree, id(v), dan outgoing degree, od(v), dari masing-masing graph tersebut !
b. Dengan memperhatikan jawaban nomor (a) di atas, apakah ada kemungkinan graph tersebut
mempunyai euler circuit. Kenapa ?
c. Sebutkan salah satu euler circuit dalam graph tersebut (kalau ada).
a b
c
d
e
f g
b b
c a
d
e f g
i c d f a
e
h g
k
j i
h
a. b. a
a b
h c
c
g d b d e
f e
f
c. a d. c
b
d
b
a
e
f
e g
f
c d
• • • •
• • • •
• •
• •
• •
• •
• • • •
• •
• •
• • • •
• •
• •
• •
• •
G1 G2 G3 G4
G1 : adalah Tree
G2 : adalah bukan Tree
G3 : adalah bukan tree. Karena setiap komponennya adalah tree, maka disetut sebagai Forest.
•
G4 : adalah bukan tree dan bukan forest
Dalil 1 : Jika a dan b adalah dua vertek yang berbeda di dalam T=(V,E) maka dijamin ada tepat satu path
yang menghubung dari vertek a ke vertek b.
Dalil2 : Jika G=(V,E) adalah graph undirected (tak berarah), maka G adalah connected (terubungkan)
jika dan hanya jika G mempunyai spanning tree. Spanning tree adalah tree yang merupakan
spanning graph dari graph G.
Dalil 3 : Pada sembarang tree T=(V,E) berlaku |V|=|E|+1.
Dalil 4 : Pada sembarang tree T=(V,E), jika |V|>1 maka tree tersebut akan mempunyai dua pendant
vertek.
Topik 8 Tree
8-1
Dalil 5 : Lima pernyataan berikut adalah equivalen untuk suatu graph tak berarah G=(V,E) yang tidak
mempunyai loop :
a. G adalah tree
b. G adalah terhubungkan, tetapi dengan menghapus salah satu edge akan menyebabkan
graph tersebut menjadi tidak terhubungkan (menjadi dua subgraph yang masing-masing
adalah tree)
c. G tidak mempunyai cycle dan |V|=|E|+1
d. G adalah terhubungkan dan |V|=|E|+1
e. G tidak mempunyai cycle, dan jika a, bV dengan {a,b}E, maka dengan
menambahkan edge {a,b} ke dalam graph G akan menghasilkan graph baru yang tepat
mempunyai satu cycle.
T1 T2 T3
T1 adalah bukan root tree, sedangkan T2 dan T3 adalah root tree (Coba anda tentukan, vertek mana
yang sebagai root).
Ada beberapa istilah di dalam root tree, untuk itu perhatikan tree berikut :
•a
•c •f
•b •d
•e
•g •h
•i •j •k •m
•l
•na •o •p
•q
Topik 8 Tree
8-2
Root : vertek a
Leaf/terminal : adalah vertek dengan id(v)=1 dan od(v)=0, contoh : b, j, m, n, p, dan q
Internal vertek : vertek lain selain leaf, yaitu a, c, d, f, e, g, h, i, k, l, dan o.
Level suatu vertek : panjang path dari root hingga vertek tersebut.
Level vertek a adalah 0
Level vertek g adalah 3
Level vertek q adalah 6
Dsb.
Parent (ayah) : vertek tepat di atasnya
Parent vertek c adalah a
Parent vertek k adalah h
Parent vertek n adalah i.
Dsb.
Child (anak) : vertek tepat di bawahnya
Child vertek a adalah c dan f
Child vertek h adalah k, l, dan m
Parent vertek i adalah n.
Dsb.
Ancestor : adalah vertek-vertek level atasnya yang berada dalam path dari root ke vertek tersebut.
Ancestor dari vertek i dan g adalag d, c, dan a
Ancestor dari vertek o adalah k, h, c, f, dan a
Dsb.
Descendent : adalah vertek-vertek di level bawahnya hingga ke leaf.
Descendent dari vertek g adalah vertek i, c, dan n.
Descendent dari vertek k adalah o dan q.
Dsb.
Sibling : adalah vertek-vertek yang mempunyai parent yang sama.
Vertek-vertek b dan d adalah sibling
Tinggi (height) suatu tree : adalah level tertinggi dari vertek dalam tree tersebut. Untuk tree di atas,
amka tingginya adalah 6.
Topik 8 Tree
8-3
• • • • •
• • • • • • • • • •
• • • • • • •
• •
• • • • • •
• •
T1 T2 T3 T4 T5
Latihan Pertemuan 13
1. Dari yang berikut, mana yang merupakan tree ?
a. b. c.
•
•
• •
• •
•
•
•
• •
• •
•
Topik 8 Tree
8-4
4. Mana di antara tree berikut yang merupakan rooted tree :
(i) (ii)
5. Untuk soal nomor (4), tentukan rootnya (untuk yang rooted tree).
6. Untuk rooted tree berikut :
a
b c
f g
d e
h
i ja
k l o
p
r q
s t
u v
Topik 8 Tree
8-5
Telah kita ketahui bersama bahwa penerapan graph maupun juga tree dalam bidang komputer
sangat banyak. Bagian ini membahas bagaimana metode untuk melakukan penelusuran unsure-
unsur (vertek-vertek) dari graph atau tree tersebut. Juga bagaimana membuat jalur dari satu vertek ke
vertek lain yang paling optimun. Beberapa algoritma yang akan dibahasa adalah BFS, DFS,
Algoritma Dijstra, Algoritma Kruskal, juga algoritma Prim.
a b
b. (a+b)*(d/c) dapat dinyatakan sebagai :
*
+ /
a b d c
( a b) c d
c.
(b * c) d /
+ +
^ d * d
-
c
b c
a b
+ +
^ d * d
-
c
b c
a b
Inorder : a-b^c+d/b*c+d
Preorder : /+^-abcd+*bcd
Postorder : ab-c^d+bc*d+/
g a
b f
c
j
i e
d
h
g a
b f
c
j
i e
d
h
BFS (Breadth-First Search Algorithm) merupakan algoritma untuk menelusuri vertek-vertek suatu
graph, sehingga akan terbentuk suatu spanning tree dari graph tersebut. Perbedaan dengan DFS adalah
bahwa pada BFS, pembacaan dilakukan pada seluruh level.yang sama. Oleh karena itu tree yang akan
terbentuk cenderung melebar. Algoritma DFS ini adalah :
1. Pilih satu vertek (r) sebagai root, dan masukkan vertek r ke dalam antraian Q. Serta
insialisasi tree T dengan T={r}.
2. Hapuskan vertek terdepan dari Q. Untuk setiap i terkecil, 2in, sedemikian sehingga
{v,vi}E dan vi belum pernah dikunjungi, masukkan edge {v,vi}ke dalam T.
3. Masukkan vertek yang adjacent dengan vertek v yang dihapus pada langkah (2) tersebut ke
dalam Q dengan urutan yang disesuaikan, dan kembali ke langkah 2.
Sebagai ilustrasi dari algoritma di atas, maka akan diterapkan untuk graph berikut :
g a
b f
c
j
i e
d
h
a
g
b f
c
j
i e
d
h
b c
g
d e f
h
i ja
k l o
p
r q
s t
u
v
ab
k
(b.c ) r
l
a. Buatlah binary tree untuk operasi aritmetika tersebut !
b. Tentukan notasi infiksnya
c. Tentukan notasi prefiksnya
d. Tentukan notasi postfiksnya
3. Suatu complete binary T=(V,E) dengan V={a, b, c, …, i, j, k} dan a sebagai root. Jika hasil penelusuran
postorder adalah : d, e, b, h, i, f, j, k, g, c, a. Gambarkan tree ini.
a. Jika tinggi tree ini adalah 3.
b. Jika tinggi subtree kiri dari tree ini adalah 3.
d g
e f
h k
i j
Jika vertek diurut dari a, b, …, j, k, tentukan spanning tree dari graph tersebut dengan menggunakan :
a. Depth-first search algorithm (DFS)
b. Bread-first search algorithm (BFS)
a
5. Soal seperti nomor (4) untuk graph :
c b
d
e f g
i
h
k
j
6. Soal seperti nomor (4) untuk graph : a
f
e g
c d
9.3 Optimisasi
Optimisasi berkaitan dengan beberapa operasi yang diterapkan pada graph yang terboboti, yaitu graph
dengan setiap edge mempunyai bobot yang tidak harus sama. Ada beberapa optimisasi di dalam graph
terboboti, yaitu :
1. Algoritma Dijkstra : untuk mencari path terpendek dari satu vertek ke vertek lainnya di
dalam graph tersebut.
2. Algoritma Kruskal : Algoritma ini untuk mencari spanning tree dari suatu graph dengan
panjang path antar vertek minimum. Hasil dari algoritma ini adalah minimum spanning tree.
3. Algoritma Prim : algortima ini bertujuan sama dengan algoritma Kruskal.
Algoritma Dijkstra
Algoritma Dikstra (Dikstra’s shortest path algorithm) merupakan algoritma untuk mencari lintasan
(path) terpendek dari suatu vertek ke vertek-vertek lainnya dalam suatu graph G=(V,E). Di dalam hal ini edge-
edge dalam graph G tersebut mempunyai bobot yang berbeda (disebut weighted graph).
Algoritma Dikstra ini adalah sebagai berikut :
1. Inisialisasi : i=0, S0={v0}. Beri label vertek v0 dengan (0,-) dan setiap vertek vv0 diberi label
(,-).
Jika n=1, V={v0} dan selesai.
Jika n>1, lanjutkan ke langkah 2.
2. Untuk setiap v Si , gantikan (jika mungkin) label pada v dengan (L(v), y), dengan :
3. Jika setiap vertek di Si (0in-2) berlabel (,-) maka selesai. Jika tidak, maka lakukan :
a. Pilih vertek vi+1 dengan label L( vi+1) minimum, lalu :
b. Si+1=Si{ vi+1}
c. i=i+1, jika i=n-1, maka selesai. Jika tidak, maka kembali ke langkah 2.
Sebagai ilustrasi algortima di atas, maka perhatikan contoh dengan graph berikut :
11 7
c f
6
11 9
6 4 11 4
9 g
b
4
3 7
a h 5
5
11
17
11 7
(0,-) c f (6,c)
6
11 9
(22,a)
6 4 11 4
9 g (14,h)
b
4
3 7
a (17,f) h 5
(10,f)
5
11
17
Latihan 9.2.
1. Perhatikan graph berikut :
a
5
10 4
c b
3
20 10
5 d
4 8
e f g 30
i
10 h 5 2
15 6
6 k
j
20
a. Lakukan operasi dengan algoritma Dijkstra untuk memperoleh jarak terpendek dari vertek a ke setiap
vertek lainnya.
2. Soal sama seperti nomor (1) untuk graph berikut : a
Diketahui bobot edge :
{a,c}=10 {a,d}=20
{a,e}=15 {a,g}=5 b
{b,c}=3 {b,d}=2
{b,f}=1 {c,d}=1 f
e g
{c,g}=1 {d,e}=2
{e,f}=3 {f,g}=2 d
c