Anda di halaman 1dari 123

Dasar-Dasar Teori Graf

Sistem Informasi
Universitas Gunadarma
2012/2013
Teori Graf
 Teori Graf mulai dikenal saat
matematikawan kebangsaan Swiss
bernama Leonhard Euler, yang berhasil
mengungkapkan Misteri Jembatan
Koningsberg tahun 1736.
 Di kota Koningsberg mengalir sungai
Pregel, di sungai mengalir 2 pulau dan
diantaranya terdapat jembatan yang
menghubungkan, jumlah jembatan
tersebut sebanyak 7 buah.
Teori Graf

 Graf yang merepresentasikan jembatan


Konigsberg adalah :
1. Simpul (vertex), menyatakan daratan.
2. Sisi (edge), menyatakan jembatan.
Teori Graf
 Graf adalah bagan yang memuat informasi
yang diinterprestasikan secara tepat.
 Graf digunakan untuk merepresentasikan
objek-objek diskrit dan hubungan antara
objek-objek tersebut.
 Tujuan graf adalah untuk visualisasi objek
agar mudah dimengerti.
 Jenis graf yaitu graf berarah dan graf tidak
berarah.
 Graf terdiri dari 2 himpunan berhingga yaitu
v(G) dan e(G).
Teori Graf
 Titik dikatakan terhubung (Adjacent)
jika ada garis yang menghubungkan
keduanya.
 Graf Kosong : Graf yang tidak
mempunyai titik.
 Graf Berarah (Digraph) : Graf yang
semua garisnya berarah.
 Graf Tidak Berarah : Graf yang semua
garisnya tidak berarah.
Teori Graf
 Titik Ujung : Garis yang berhubungan
dengan satu atau dua titik.
 Loop : Garis yang berhubungan dengan
satu titik ujung.
 Garis Paralel : Dua garis berbeda
menghubungkan titik yang sama.
 Titik Terasing : Titik yang tidak
mempunyai garis yang berhubungan
dengannya.
Jenis-Jenis Graf
 Berdasarkan ada tidaknya gelang atau sisi
ganda pada suatu graf.
1. Graf sederhana (simple graph)
Graf yang tidak mengandung gelang
maupun sisi-ganda dinamakan graf sederhana.

2. Graf tak-sederhana (unsimple-graph)


Graf yang mengandung sisi ganda atau
gelang dinamakan graf tak-sederhana
(unsimple graph).
Jenis-Jenis Graf
 Berdasarkan jumlah simpul pada suatu graf.
1. Graf berhingga (limited graph)
Graf berhingga adalah graf yang jumlah
simpulnya n berhingga.

2. Graf tak-berhingga (unlimited graph)


Graf yang jumlah simpulnya n tidak
berhingga banyaknya disebut graf tak-
berhingga.
Jenis-Jenis Graf
 Berdasarkan orientasi arah pada sisi.
1. Graf tak-berarah (undirected graph)
Graf yang sisinya tidak mempunyai
orientasi arah disebut graf tak-berarah.

2. Graf berarah (directed graph atau


digraph)
Graf yang setiap sisinya diberikan
orientasi arah disebut sebagai graf berarah.
Subgraf
 Graf H dikatakan subgraf dari G jika semua titik dan
garis graf H merupakan titik dan garis dalam graf G.
 Misalkan G adalah suatu graf. Graf H dikatakan subgraf
dari G bila dan hanya bila :
1. V(H)  V(G)
2. E(H)  E(G)
3. Setiap garis dalam H memiliki titik ujung yang sama
dengan garis tersebut dalam G.
4. Di dalam subgraf posisi titik dan garis tidak
berpengaruh.
Derajat Graf
 Derajat graf adalah jumlah dari derajat simpul-simpulnya.
Derajat simpul adalah banyaknya ruas yang incidence
(terhubung) ke simput tersebut.

 Berdasarkan derajat simpul, sebuah simpul dapat disebut


:
1. Simpul Ganjil ; bila derajat simpulnya merupakan
bilangan ganjil.
2. Simpul Genap ; bila derajat simpulnya merupakan
bilangan genap.
3. Simpul Bergantung/Akhir ; bila derajat simpulnya
adalah 1.
4. Simpul Terpencil ; bila derajat simpulnya adalah 0.
Derajat Graf
 Misal titik v adalah suatu titik dalam graf G.
Derajat titik v (simbol d(v)) adalah jumlah garis
yang berhubungan dengan titik v.
Derajat titik yang berhubungan dengan sebuah
loop adalah 2 (garis suatu loop di hitung 2 kali).

 Derajat simpul v atau d(v) adalah banyaknya ruas


yang menghubungi v. Karena setiap ruas dihitung
dua kali ketika menentukan derajat suatu graf,
maka :
“ Jumlah derajat semua simpul suatu graf
(derajat) = dua kali banyaknya ruas graf
(size)”
Derajat Graf
 Derajat total suatu graf G adalah jumlah
derajat semua titik dalam G.
Derajat total suatu graf selalu genap.

 Dalam sembarang graf jumlah titik yang


berderajat ganjil selalu genap.

 Jumlah derajat semua simpul sama dengan genap


disebut dengan Euler Graf.

 Suatu simpul disebut genap/ganjil tergantung


apakah derajat simpul tersebut genap/ganjil.
Keterhubungan Graf
 Walk atau perjalanan dalam graf G adalah
barisan simpul dan ruas berganti-ganti :V1, e1,
V2, e2, . . . , en-1,Vn
 Ruas ei menghubungkan simpul Vi dan Vi+1.
 Banyaknya ruas disebut panjang walk. Walk
ditulis dengan deretan ruas : e1, e2, . . . , en-1
atau deretan simpul :V1,V2, . . . , Vn
 Walk disebut tertutup bila V1= Vn
Dimana,V1= simpul awal
Vn = simpul akhir
Keterhubungan Graf
 Graf Terhubung dan Graf Tidak
Terhubung
 Misalkan G adalah suatu graf, titik v dan w
dalam graf G terhubung bila dan hanya bila
ada walk dari v ke w.
 Graf G dikatakan terhubung jika 2 titik di
dalam G saling terhubung dan dikatakan
tidak terhubung jika 2 titik di dalam G
tidak saling terhubung.
Keterhubungan Graf
 Dalam keterhubungan sebuah graf, dikenal
istilah seperti berikut :
1. Walk ; barisan simpul dan ruas.
2. Trail ; walk dengan semua ruas dalam
barisan adalah berbeda.
3. Path/Jalur ; walk yang semua simpul
dalam barisan adalah berbeda. Jadi suatu
Path pasti sebuah Trail.
4. Cycle/Sirkuit ; trail tertutup dengan
derajat setiap simpul = 2.
Operasi pada Graf
 Operasi-operasi di dalam graf. Bila diketahui 2
buah graf : G1(V1, E1) dan G2 (V2, E2) maka :
1. Gabungan G1 υ G2 adalah graf dengan himpunan
V nya = V1 υ V2 dan himpuna E nya = E1 υ E2
2. Irisan G1 ∩ G2 adalah graf dengan himpunanV
nya = V1 ∩ V2 dan himpunan E nya = E1 ∩ E2
3. Selisih G1-G2 adalah graf dengan himpunanV nya
= V1 dan himpunan E nya = E1-E2, Selisih G2-G1
adalah graf dengan himpunan V nya = V2 dan
himpunan E nya = E2-E1
4. Penjumlahan Ring G1G2 adalah graf yang
dihasilkan dari (G1 υ G2) – (G1 ∩ G2) atau (G1-
G2) υ (G2-G1)
Matriks dan Graf
 Graf dapat disajikan dalam bentuk matriks.
Matriks-matriks yang dapat menyajikan
model graf tersebut antara lain :
1. Matriks Ruas
2. Matriks Adjacency (Matriks
Ketetanggaan)
3. Matriks Incidence (Matriks Bersisian)
Matriks Ruas
 Setiap simpul dan ruas yang terhubung
menjadi baris atau kolom matriks.
 Hubungan setiap simpul dan ruas hanya
bernilai 1 tidak bisa bolak balik.
 Setiap hubungan simpul dan ruas yang
sudah menjadi matriks tidak dapat
didefinisikan lagi.
Matriks Adjacency
 Baris dan kolom menunjukkan urutan
simpul-simpul.
 Elemen matriks = 1 jika terdapat ruas
antara simpul baris dan simpul kolom.
 Elemen matriks = 0 jika tidak terdapat
ruas antara simpul baris dan simpul
kolom.
Matriks Adjacency
Matriks Incidence
 Baris menunjukkan simpul.
 Kolom menunjukkan ruas.
 Elemennya = 1 jika terdapat ruas yang
incident ke suatu simpul.
 Elemennya = 0 dalam hal lain.
TERIMA KASIH
GRAF TIDAK BERARAH

Sistem Informasi
Universitas Gunadarma
2012/2013
GRAF TIDAK BERARAH
 Graf Sederhana adalah graf yang tidak
memiliki Loop ataupun Garis Paralel.

 Graf Lengkap dengan n titik (simbol Kn) adalah


graf sederhana dengan n titik di mana setiap 2
titik yang berbeda selalu dihubungkan dengan
suatu garis.
Banyaknya garis dalam suatu graf lengkap
n  1)
n(adalah
dengan n titik buah
2
GRAF TIDAK BERARAH
 Graf Bipartite adalah graf G yang himpunan
titiknya (V(G)) dapat dibagi menjadi 2 himpunan
yaitu Va dan Vb.
Setiap garis dalam G menghubungkan titik di Va
dengan titik di Vb.
Semua titik dalam Va atau Vb tidak saling
berhubungan.
Apabila setiap titik di Va berhubungan dengan
setiap titik di Vb maka disebut Graf Bipartite
Lengkap.
GRAF BERLABEL

 Graf G disebut berlabel jika ruas dan atau


simpulnya dikaitkan dengan suatu besaran
tertentu. Khususnya jika setiap ruas e dari G
dikaitkan dengan suatu bilangan non negatif
d(e), maka d(e) disebut bobot atau panjang
dari ruas e.
GRAF BERLABEL
 Graf Berlabel adalah graf tanpa garis paralel
yang setiap garisnya berhubungan dengan
bilangan riil positif yang menyatakan bobot
garis tersebut.
 Simbol graf berlabel adalah w(e).
 Total Bobot : jumlah bobot semua garis dalam
graf.
 Bobot suatu garis dapat mewakili “jarak”,
“biaya”, “panjang”, “kapasitas”, dll.
KASUS GRAF TIDAK BERARAH

 Masalah Lintasan Euler


 Masalah Pedagang Keliling (Travelling
Salesman Problem)
TERIMA KASIH
Sirkuit Euler & Sirkuit
Hamilton

SISTEM INFORMASI
UNIVERSITAS GUNADARMA
2012/2013
Sirkuit Euler

 Lintasan Euler ialah lintasan yang melalui


masing-masing sisi di dalam graf tepat satu
kali.
 Sirkuit Euler adalah sirkuit di mana setiap
titik dalam graf G muncul paling sedikit
satu kali dan setiap garis muncul tepat satu
kali.
 Sebuah perjalanan Euler (Euler cycle) pada
graph G adalah sebuah cycle sederhana yang
melalui setiap edge di G hanya sekali.
Latar Belakang Sirkuit Euler

 Masalah 7 Jembatan yang menghubungkan 4 kota (Problem jembatan


Königsberg).
Apakah mungkin seseorang berjalan mengunjungi kota yang dimulai
dan diakhiri pada tempat yang sama dengan melintasi 7 jembatan
masing-masing tepat satu kali ?
 Problem dapat dinyatakan dengan sebuah graph.
 Edge menyatakan jembatan dan setiap vertex menyatakan daerah
(region). A
j1

B j2
j3
j5
j4 j6

D
j7 C
Teorema Sirkuit Euler

 Graf G memiliki Sirkuit Euler bila


dan hanya bila G adalah graf yang
terhubung dan semua titik dalam
G mempunyai derajat genap.
Graf Euler
 Sebuah graph G adalah graph Euler
jika memiliki Euler cycle.
Teorema:
G adalah Graph Euler jika dan
hanya jika G terhubung dan semua
vertex memiliki derajat genap.
 Graph terhubung
merepresentasikan problem
jembatan Königsberg.
 Graph tersebut bukan Graph Euler.
 Berarti problem jembatan
Königsberg tidak memiliki solusi.
Sirkuit Hamilton

 Lintasan Hamilton ialah lintasan yang


melalui tiap simpul di dalam graf tepat satu
kali.
 Suatu graf terhubung G memiliki Sirkuit
Hamilton bila ada sirkuit yang mengunjungi
setiap titiknya tepat satu kali (kecuali titik
awal dan titik akhir).
 Graf yang memiliki sirkuit Hamilton
dinamakan graf Hamilton, sedangkan graf
yang hanya memiliki lintasan Hamilton disebut
graf semi-Hamilton.
Sirkuit Hamilton

 Traveling Salesman Problem


 Setiap simpul pada suatu graph G hanya dikunjungi satu kali
dengan sebuah simple cycle.
 Suatu cycle disebut juga suatu Hamiltonian cycle.

 Jika suatu graph G tehubung dan memiliki Hamiltonian cycle,


maka G disebut juga Hamiltonian graph.
Sirkuit Euler & Sirkuit Hamilton

 Perbedaan Sirkuit Euler dengan Sirkuit Hamilton :

1. Dalam Sirkuit Euler semua garis harus dilalui


tepat satu kali, sedangkan semua titiknya
boleh dikunjungi lebih dari sekali.
2. Dalam Sirkuit Hamilton semua titiknya
harus dikunjungi tepat satu kali dan tidak
harus melalui semua garis.
Path Berarah dan Sirkuit Berarah

 Dalam graf berarah, perjalanan harus


mengikuti arah garis.

 Suatu graf yang tidak memuat sirkuit


berarah disebut ASIKLIK.
Algoritma Shortest Path

 Graph yang digunakan adalah graph bobot. Bobot


biasanya merepresentasikan jarak, waktu, atau
biaya. Tujuan: Meminimumkan bobot. Algoritma
yang digunakan: Algoritma Dijkstra.
 Algoritma Dijkstra's untuk mencari panjang dari jalur
terpendek dari simpul tunggal (awal) ke simpul
lainnya pada graph berbobot dan terhubung.
 Algoritma Dijkstra’s memiliki memiliki worst-case run
time (n2) untuk graph sederhana, terhubung dan
berbobot dengan n simpul.
Shortest Path (Some Versions)

 Beberapa macam persoalan lintasan terpendek :

1. Lintasan terpendek antara dua buah simpul.


2. Lintasan terpendek antara semua pasang simpul.
3. Lintasan terpendek dari satu simpul ke semua
simpul yang lain.
Algoritma Disjkstra’s

1. Procedure Dijkstra's(w,a,z,L)
2. L(a) = 0
3. for semua simpul x  a do
4. L(x) = ~
5. T = himp. Semua simpul
6. while z  T do
7. begin
8. Pilih v  T dengan L(v) minimum
9. T = T – {v}
10. for setiap x  T adjacent ke v do
11. L(x) = min { L(x) , L(v) + w(v,x) }
12.end while
13.end Dijkstra's.
Algoritma Disjkstra

Misal lintasan terpendek dari A ke setiap simpul yang lain.


1. Buat L(A) = 0, L(v) = d(A,v) "v dengan d(a,v) adalah bobot
sisi yang menghubungkan simpul A dengan v.
2. T = V – {A}
3. While xÎT do
begin
3.1 Cari semua simpul yang adjacent dengan A, sebut y
3.2 Hitung L(y) = min{L(y), L(A) + d(A,y) }
3.3 Cari simpul dalam T dengan label terendah, sebut p
3.4 T = T – {p}
3.5 Anggap p sebagai A
end
TERIMA KASIH
Sistem Informasi
Universitas Gunadarma
2012/2013
 Suatu graph disebut planar jika dapat
digambarkan dalam bidang tanpa adanya ruas
berpotongan.

 Sebuah graf dikatakan graf planar bila graf


tersebut dapat disajikan (secara geometri) tanpa
adanya ruas yang berpotongan. Sebuah graf yang
disajikan tanpa adanya ruas yang berpotongan
disebut dengan penyajian planar/map/peta.
 Graf yang termasuk planar :
1. Tree/Pohon
2. Kubus
3. Bidang Empat
4. Bidang Delapan Beraturan

 Pada penyajian planar/map, dikenal istilah region. Derajat dari


suatu region adalah panjang walk batas region tersebut.

 Graf planar yang digambarkan dengan sisi-sisi yang tidak saling


berpotongan disebut graf bidang (plane graph).

 Sisi-sisi pada graf planar membagi bidang menjadi beberapa


wilayah (region) atau muka (face). Jumlah wilayah pada graf
planar dapat dihitung dengan mudah.
 Sebuah graf yang tidak dapat disajikan (secara
geometri) tanpa adanya ruas yang berpotongan
dikenal sebagai graf non-planar.
 Jika G adalah graph planar dengan
v = banyaknya simpul
e = banyaknya ruas
f = banyaknya bidang/region (termasuk bidang
yang terluar)
 Maka berlaku :
v–e+f=2
 Lintasan Euler ialah lintasan yang melalui masing-
masing sisi di dalam graf tepat satu kali.

 Sirkuit Euler ialah sirkuit yang melewati masing-


masing sisi tepat satu kali.

 Graf yang mempunyai sirkuit Euler disebut graf Euler


(Eulerian graph). Graf yang mempunyai lintasan Euler
dinamakan juga graf semi-Euler (semi-Eulerian
graph).
 Teorema Kuratoswki berguna untuk menentukan
dengan tegas keplanaran suat graf.
 Sifat graf Kuratowski adalah :
1. Kedua graf Kuratowski adalah graf teratur.
2. Kedua graf Kuratowski adalah graf tidak-planar.
3. Penghapusan sisi atau simpul dari graf Kuratowski
menyebabkannya menjadi graf planar.
4. Graf Kuratowski pertama adalah graf tidak-planar
dengan jumlah simpul minimum, dan graf
Kuratowski kedua adalah graf tidak-planar dengan
jumlah sisi minimum.
 Graf G bersifat planar jika dan hanya jika ia tidak
mengandung upagraf yang sama dengan salah satu
graf Kuratowski atau homeomorfik (homeomorphic)
dengan salah satu dari keduanya.
TERIMA KASIH
Pewarnaan Graf
Sistem Informasi
Universitas Gunadarma
2012/2013
 Pewarnaan graf adalah pemberian warna
terhadap simpul-simpul graf dimana 2
buah simpul yang berdampingan tidak
boleh mempunyai warna yang sama.
 G berwarna n artinya graf tersebut
menggunakan n warna.
 Bilangan kromatis dari G = K(G) adalah
jumlah minimum warna yang dibutuhkan.

Pewarnaan Graf
 Algoritma yang digunakan untuk
mendapatkan bilangan kromatis dari
suatu graf adalah Algoritma Welch-Powell,
langkah-langkahnya adalah :
1. Urutkan simpul-simpul berdasarkan
derajatnya, dari besar ke kecil.
2. Warnai.

Pewarnaan Graf
 Pewarnaan region dapat dilakukan dengan
cara membuat dual dari map.
 Pewarnaan daerah dilakukan dengan terlebih
dahulu membentuk graph tersebut menjadi
graph planar kemudian melakukan
pewarnaan untuk tiap daerah yang berbeda
pada daerah yang berdekatan. Jumlah warna
diambil yang paling minimum.
 Pewarnaan rusuk adalah mewarnai rusuk-
rusuk suatu graph, sedemikian hingga rusuk-
rusuk yang insiden warna berlainan dan
banyak warna minimum.

Pewarnaan Region
 Masalah Pewarnaan
graph (graph
coloring) adalah
masalah pemberian
warna pada setiap
daerah dari graph,
dengan daerah
yang berdampingan
tidak boleh diberi
warna yang sama
 Penggunaan warna
minimal

Masalah Pewarnaan Graf


Definisi:
 Pewarnaan sebuah graph sederhana
adalah pewarnaan setiap verteks pada
graph demikian sehingga tidak ada dua
verteks yang terhubung memiliki warna
yang sama
Bilangan Kromatik
 Adalah jumlah warna minimal yang
dibutuhkan untuk mewarnai sebuah graph

Masalah Pewarnaan Graf


Hijau Coklat
Hijau

Kuning

Coklat Merah
Kuning

Hijau
Coklat

Masalah Pewarnaan Graf


 Berapa banyak jadual UAS dapat dibuat
agar setiap mahasiswa dapat mengikuti
UAS tanpa pernah ada jadual yang
bentrok 1

7 2

6 3

5 4

Contoh Soal
TERIMA KASIH
Pohon (Tree)

Universitas Gunadarma
Sistem Informasi
2012/2013
Pohon (Tree)
• Pohon (Tree) didefinisikan sebagai graf terhubung
yang tidak mengandung sirkuit. Karena merupakan graf
terhubung, maka pohon selalu terdapat jalur (path) yang
menghubungkan setiap dua simpul dalam pohon.
• Hutan (Forest) adalah graf yang tidak mengandung
sirkuit.
• Maka, pohon adalah hutan yang terhubung.
• Sehingga perlu diingat :
1. Suatu graf G disebut terhubung apabila untuk setiap
dua simpul dari graf G selalu terdapat jalur yang
menghubungkan kedua simpul tersebut.
2. Sirkuit (Cycle) adalah suatu lintasan tertutup
dengan derajat setiap simpul dua.
Pohon (Tree)
• Struktur Pohon adalah salah satu kasus dalam
graf. Penerapannya pada Teori Struktur Data.
• Daun adalah titik di dalam Pohon yang
berderajat 1. Titik dalam Pohon yang berderajat
> 1 disebut Titik Cabang.
• Suatu pohon dengan n titik memiliki (n-1) garis.
Pohon Rentangan (Spanning Tree)
• Suatu pohon rentangan (Spanning Tree) adalah
suatu subgraf dari graf G yang mengandung semua
simpul dari G dan merupakan suatu pohon.
• Graf G : n simpul dan m ruas
Spanning Tree : n simpul dan n-1 ruas
• Karena pohon dengan n simpul memuat (n-1) sisi,
maka untuk mendapatkan spanning tree dari suatu
graph terhubung G dengan n simpul dan q sisi
dilakukan dengan cara menghapus (q-n+1) sisi.
Pohon Berakar (Rooted Tree)
• Pohon berakar (Rooted Tree) adalah pohon
yang satu buah simpulnya diperlakukan sebagai
akar dan sisi-sisinya diberi arah sehingga
menjadi graf berarah.
Pohon Berakar (Rooted Tree)
• Pohon berakar adalah graf berarah (digraf) T
yang mempunyai dua syarat, yaitu :
1. Bila arah sisi-sisi pada T diabaikan, hasil graf
tidak berarahnya merupakan sebuah pohon.
2. Ada titik tunggal R sedemikian hingga derajat
masuk R adalah 0 dan derajat masuk
sembarang titik lainya adalah 1. Titik R disebut
akar dari pohon berakar.
Terminologi Pohon Berakar
• Anak (Child atau Children) dan Orangtua
(Parent)
• Lintasan (Path)
• Saudara Kandung (Sibling)
• Upapohon (Subtree)
• Derajat (Degree)
• Daun (Leaf)
• Simpul Dalam (Internal Nodes)
• Aras (Level) atau Tingkat
• Tinggi (Height) atau Kedalaman (Depth)
Terminologi Pohon Berakar
• Derajat sebuah simpul adalah jumlah upapohon
(atau jumlah anak) pada simpul tersebut.
Derajat maksimum dari semua simpul merupakan
derajat pohon itu sendiri.
• Daun adalah simpul yang berderajat nol (atau tidak
mempunyai anak).
• Simpul dalam adalah simpul yang mempunyai
anak.
• Aras maksimum dari suatu pohon disebut tinggi
atau kedalaman pohon.
Pohon Biner (Binary Tree)
• Pohon Biner adalah pohon berakar yang setiap
titiknya memiliki paling banyak dua anak dan
setiap anak ditunjuk sebagai anak kiri dan anak
kanan.
• Pada pohon biner setiap titik mungkin memiliki
1 atau 2 anak. Anak kiri digambarkan disebelah
kiri dan dibawah orang tuanya, serta anak kanan
disebelah kanan dibawah orang tuanya.
• Pohon biner digunakan dalam ilmu komputer
untuk mengolah data.
Sifat Utama Pohon Biner
1. Jika pohon mempunyai simpul sebanyak n, maka
banyaknya ruas (edge) adalah (n-1).
2. Mempunyai simpul khusus yang disebut akar (root),
jika simpul tersebut memiliki derajat ke luar >= 0 dan
derajat masuk = 0.
3. Mempunyai simpul yang disebut sebagai daun (leaf),
jika simpul tersebut berderajat keluar = 0 dan
berderajat masuk = 1.
4. Setiap simpul mempunyai tingkatan (level), yang
dimulai dari root, yang levelnya = 0, sampai dengan
level n pada daun paling bawah. Simpul yang
mempunyai level yang sama disebut bersaudara
(brother/sibling).
5. Pohon mempunyai ketinggian/kedalaman (height),
yang merupakan level tertinggi + 1.
6. Pohon mempunyai berat (weight) yang merupakan
banyaknya daun pada pohon.
Pohon Biner
• Pohon biner memiliki akar (root), dan tree di
bawahnya disebut dengan subtree kiri dan
subtree kanan.
• Akar dari subtree merupakan successor bagi
root tree sehingga menjadi left successor dan
right successor.
• Sebarang node dalam pohon biner akan
mempunyai 0 atau 1 atau 2 buah successor,
sedangkan untuk node yang tidak mempunyai
successor dinamakan terminal node.
Terminologi Pohon Biner
• Similar
Dua buah tree dikatakan Similar jika keduanya
mempunyai struktur (bentuk) yang sama.
Terminologi Pohon Biner
• Complete Binary Tree
Sebuah tree dikatakan Complete Binary Tree
jika semua level (kecuali level terakhir)
mempunyai jumlah node maksimum (2r) dan
bila semua simpul pada tingkat terakhir muncul
dibagian kiri pohon.
Untuk setiap level r mempunyai paling banyak 2r
node.
Terminologi Pohon Biner
• Extanded Binary Tree : 2-tree
Sebuah binary tree T dikatakan sebagai 2-tree atau
Extanded Binary Tree jika setiap node N
mempunyai 0 atau 2 buah Child.
Node dengan 2 buah Child dikatakan internal node.
Node dengan o Child dikatakan external node.
Aplikasi 2-tree digunakan untuk menyajikan suatu
ekspresi aritmatik yang mengandung operasi biner.
External node digunakan untuk menyajikan
operand dan Internal node digunakan sebagai
operator yang bekerja terhadap 2 suppohon.
Pohon Biner Seimbang
• Dalam beberapa aplikasi, diinginkan tinggi
upapohon kiri dan tinggi upapohon kanan yang
seimbang yaitu berbeda maksimal 1.
• Terapan Pohon Biner
Pohon Ekspresi : Preorder (Prefix) - Inorder
(Infix) - Postorder (Postfix)
Pohon Terurut (Ordered Tree)
• Pohon terurut (Ordered Tree) adalah
pohon berakar yang urutan anak-anaknya
penting.
• Hutan adalah graf tanpa sirkuit.
• Titik Terminal adalah titik dengan derajat
keluar 0.
• Titik Internal adalah titik yang memiliki
derajat keluar yang tidak nol.
Pemodelan Masalah Graf Pohon
• Pohon Rentangan Minimal (Minimal Spanning
Tree)
Apabila G suatu Graf berbobot (Suatu Network),
maka pohon rentangan minimal dari graf adalah
pohon rentangan dengan jumlah bobot terkecil.
• Masalah : mencari pohon rentang dengan total
bobot seminimal mungkin.
• Algoritma untuk mencari pohon rentangan minimal
adalah :
1. Algoritma Solin.
2. A;goritma Kruskal.
3. Algoritma Prim’s.
Pemodelan Masalah Graf Pohon
• Algoritma Solin
1. Urutkan ruas dari G menurut bobotnya, dari
besar ke kecil.
2. Lakukan penghapusan ruas berdasarkan
urutan yang sudah dilakukan, dengan
ketentuan bahwa penghapusan ruas tersebut
tidak menyebabkan graf menjadi tidak
terhubung.
Pemodelan Masalah Graf Pohon
• Algoritma Kruskal
1. Urutkan ruas dari G menurut bobotnya, dari
kecil ke besar.
2. Lakukan penambahan ruas berdasarkan
urutan yang sudah dilakukan, dengan
ketentuan bahwa penambahan ruas tersebut
tidak menyebabkan adanya sirkuit.
Algoritma Kruskal (2)
1. Isi T dengan semua titik dalam G tanpa garis.
2. m = 0
3. Selama m < (n-1) lakukan :
a. Pilih garis e dalam E dengan bobot
terkecil. Jika ada beberapa garis, pilih salah
satu.
b. Hapus garis e dari E.
c. Jika garis e ditambahkan ke T tidak
menghasilkan sirkuit , maka :
* Tambahkan e ke T
*m=m+1
Algoritma Kruskal
Misal G adalah graph dengan n simpul. T pohon
dalam G.
• Urutkan sisi dalam graph berdasarkan bobotnya
(dari bobot terkecil ke bobot yang terbesar).
• T={}
• Pilih sisi (u,v) dengan bobot minimum yang
tidak membentuk sirkuit di T. Tambahkan (u,v)
ke dalam T.
• Ulangi Langkah 3 sebanyak (n -2) kali.
Pemodelan Masalah Graf Pohon
• Algoritma Prim’s
1. Kruskal + menjaga graf tetap terhubung.

Misal G adalah graph dengan n simpul. T pohon


dalam G.
• T={}
• Ambil sisi dalam G yang berbobot paling minimum,
masukkan ke T.
• Pilih sisi (u,v) yang berbobot minimum dan incident
dengan simpul di T tetapi tidak membentuk sirkuit .
Tambahkan (u,v) ke T.
• Ulangi langkah 2 sebanyak n-2 kali.
TERIMA KASIH
SISTEM INFORMASI
UNIVERSITAS GUNADARMA
2012/2013
Graf Berarah
Graf Berarah
 Suatu graf berarah (Direct Graf/Digraf) D terdiri
atas 2 himpunan :
1. Himpunan V, anggotanya disebut Simpul.
2. Himpunan A, merupakan himpunan pasangan
terurut, yang disebut ruas berarah atau arc.
Graf berarah ditulis sebagai D(V, A)
Apabila arc dan/atau simpul suatu graf berarah
menyatakan suatu bobot, naka graf berarah
tersebut dinamakan suatu Jaringan atau Network.
Definisi pada Graf Berarah
Misalkan D suatu Graf Berarah. Kita menyebut arc a =
(u, v) adalah mulai pada titik awal u, dan berakhir
pada titik terminal v.
 Derajat keluar (out degree) suatu simpul adalah
banyaknya arc yang mulai/keluar dari simpul tersebut.
 Derajat kedalam (in degree) suatu simpul adalah
banyaknya arc yang berakhir/masuk ke simpul
tersebut.
 Sumber (source) adalah simpul yang mempunyai
derajat kedalam = 0.
 Sink (muara) adalah simpul yang mempunyai derajat
keluar = 0.
Graf Berarah
 G disebut graph berarah atau directed
graph/digraph jika setiap ruas merupakan
pasangan terurut dari simpul (setiap ruasnya
memiliki arah).
Graf Berarah (Digraph)
 Contoh graf G berikut :
e1
v1 v2 v5
e2 v4
e3
e4
v3

 Titik v1 adalah titik awal e1, titik v2 adalah titik


akhir e1. Arah garis dari v1 ke v2.
Graf Berarah (Digraph)
e1
v1 v2 v5
e2 v4
e3
e4
v3
 Jumlah garis yang keluar dari titik v1 disebut derajat
keluar (out degree), simbol d  (v )
1
 Jumlah garis yang masuk ke titik v1 disebut derajat
masuk (in degree), simbol d  (v )
1

d
i

(vi )   d (vi )
i

Graf Berarah (Digraph)
 Titik terasing adalah titik dalam G di mana derajat
keluar dan derajat masuknya adalah 0.
 Titik pendan adalah titik dalam G di mana jumlah
derajat masuk dan derajat keluarnya adalah 1.
 Dua garis berarah dikatakan paralel jika keduanya
mempunyai titik awal dan titik akhir yang sama.
Path Berarah dan Sirkuit Berarah
 Dalam graf berarah, perjalanan harus
mengikuti arah garis.
 Suatu graf yang tidak memuat sirkuit berarah

disebut ASIKLIK.
Contoh : v3

v1

v4
v2
Keterhubungan Graf Berarah
 Walk, path dan sirkuit dalam graf berarah sama
dengan walk, path dan sirkuit dalam graf tidak
berarah. Dalam graf berarah perjalanan dilakukan
dengan mengikuti arah garis.
 Untuk membedakan dengan graf tidak berarah
maka walk, path dan sirkuit dalam graf berarah
disebut walk berarah, path berarah dan sikuit
berarah.
 Suatu graf berarah disebut terhubung jika ada
walk yang menghubungkan setiap 2 titiknya.
Keterhubungan Graf Berarah
 Berdasarkan arah garisnya, graf berarah ada 2
keterhubungan yaitu keterhubungan kuat dan
keterhubungan lemah.
 Misalkan G adalah suatu graf berarah dan v, w
adalah sembarang 2 titik dalam G.
1. G disebut terhubung kuat, jika ada path berarah
dari v ke w.
2. G disebut terhubung lemah, jika G tidak
terhubung kuat tetapi graf tidak berarah yang
bersesuaian dengan G terhubung.
Matriks dan Graf Berarah
 Matriks Hubung (Matriks Adjacency)
 Matriks Biner (Matriks Incidence)
 Matriks Sirkuit
Matriks Hubung (Matriks Adjacency)

 Digunakan untuk menyatakan graf dengan cara


menyatakannya dalam jumlah garis yang
menghubungkan titik-titiknya. Jumlah baris (dan
kolom) matriks hubung sama dengan jumlah titik
dalam graf.
 Matriks hubung adalah graf berarah yang terdiri
dari n titik tanpa garis paralel berupa matriks bujur
sangkar n x n, A = (aij) dengan :
1. aij = 1 ; Jika ada garis dari titik vi ke titik vj
2. aij = 0 ; Jika tidak ada garis dari titik vi ke titik vj
Matriks Biner (Matriks Incidence)
 Matriks biner (matriks incidence) disebut juga
dengan matriks (0-1) karena diambil dari sifat
matriks yang hanya berisi bilangan 0 dan 1 saja.
 Matriks biner berukuran n x k dengan elemen :
1. Aij = 1 ; Jika titik vi berhubungan dengan garis ej
2. Aij = 0 ; Jika titik vi tidak berhubungan dengan
garis ej
Matriks Sirkuit
 Matriks sirkuit A = (aij) adalah matriks yang terdiri
dari q baris dan e kolom dengan elemen :
1. Aij = 1 ; Jika sirkuit ke-i memuat garis ke-j
2. Aij = 0 ; Jika sirkuit ke-i tidak memuat garis ke-j
Masalah dengan Graf Berarah
 Masalah Jalur Terpendek (Shortest Path)
 Masalah Aliran Maksimal (Flow Maximum)
Jalur Terpendek (Shortest Path)
 Graph yang digunakan adalah graph bobot. Bobot
biasanya merepresentasikan jarak, waktu, atau
biaya. Tujuan: Meminimumkan bobot. Algoritma
yang digunakan: Algoritma Dijkstra.
 Algoritma Dijkstra's untuk mencari panjang dari
jalur terpendek dari simpul tunggal (awal) ke simpul
lainnya pada graph berbobot dan terhubung.
 Algoritma Dijkstra’s memiliki memiliki worst-case run
time (n2) untuk graph sederhana, terhubung dan
berbobot dengan n simpul.
Algoritma Disjkstra
1. Procedure Dijkstra's(w,a,z,L)
2. L(a) = 0
3. for semua simpul x  a do
4. L(x) = ~
5. T = himp. Semua simpul
6. while z  T do
7. begin
8. Pilih v  T dengan L(v) minimum
9. T = T – {v}
10. for setiap x  T adjacent ke v do
11. L(x) = min { L(x) , L(v) + w(v,x) }
12.end while
13.end Dijkstra's
Algoritma Disjkstra
Misal lintasan terpendek dari A ke setiap simpul yang lain.
1. Buat L(A) = 0, L(v) = d(A,v) "v dengan d(a,v) adalah bobot sisi
yang menghubungkan simpul A dengan v.
2. T = V – {A}
3. While xÎT do
begin
3.1 Cari semua simpul yang adjacent dengan A, sebut y
3.2 Hitung L(y) = min{L(y), L(A) + d(A,y) }
3.3 Cari simpul dalam T dengan label terendah, sebut p
3.4 T = T – {p}
3.5 Anggap p sebagai A
end
Mesin State Hingga
 Mesin State Hingga merupakan suatu struktur abstrak
yang didefinisikan terdiri atas :
1. Himpunan hingga A, berisi simbol input.
2. Himpunan hingga S, berisi internal state.
3. Himpunan hingga Z, berisi simbol output.
4. Sebuah fungsi f : S x A → S, disebut fungsi next-state.
5. Sebuah fungsi g : S x A → Z, disebut fungsi output.
M (A, S, Z, f, g)
M (A, S, Z, q0, f, g)
Input : Untai (Kalimat) ; Output : Untai (Kalimat)
Automata Hingga
 Automata Hingga merupakan suatu struktur abstrak
yang didefinisikan terdiri atas :
1. Himpunan hingga A, berisi simbol input.
2. Himpunan hingga S, berisi internal state.
3. Himpunan T (dimana T є S), elemennya disebut state
penerima.
4. State awal (q0), anggota S.
5. Fungsi next-state f : S x A → S
M(A, S, T, q0, f)
Input : Untai (Kalimat) ; Output : Diterima atau Ditolak
TERIMA KASIH
ALGORITMA

Sistem Informasi
Universitas Gunadarma
2012/2013
PENGERTIAN ALGORITMA
 Algoritma adalah urutan langkah yang tepat dan
pasti dalam memecahkan suatu masalah secara
logis.
 Cara menyelesaikan suatu proses yang terdiri
atas langkah-langkah yang terdefinisi dengan
baik.
 Bisa dihitung (computable) atau bisa diukur
(measurable) serta dapat menerima input dan
menghasilkan output.
 Algoritma dapat dianalisis efisiensi dan
kompleksitasnya.
KRITERIA ALGORITMA YANG BAGUS
 Sebuah algoritma dikatakan BENAR (correct)
jika algoritma tersebut berhasil mengeluarkan
output yang benar untuk semua kemungkinan
input.
 Penilaian algoritma didasarkan pada :

1. Waktu eksekusi.

2. Penggunaan memori/sumber daya.

3. Kesederhanaan dan kejelasan algoritma.


ANALISIS SUATU ALGORITMA
 Langkah-langkah analisis algoritma adalah :
1. Menentukan jenis/sifat data input.
2. Mengidentifikasi abstract operation dari data input.
3. Mengenalisis secara matematis untuk menentukan
average case atau worst case-nya.

 Faktor-faktor yang menyulitkan analisis algoritma


adalah :
1. Implementasi instruksi oleh bahasa pemrograman
yang berbeda.
2. Ketergantungan algoritma terhadap jenis data.
3. Ketidakjelasan algoritma yang diimplementasikan.
ANALISIS SUATU ALGORITMA
 Analisis algoritma tidak mudah dilakukan secara
pasti, maka hanya diambil :
1. Kondisi rata-rata (average case).
2. Kondisi terburuk (worst case).

 Waktu eksekusi dipengaruhi oleh :


1. Jenis data input.
2. Jumlah data input.
3. Pemilihan instruksi bahasa pemrograman.
NOTASI BIG-OH
 Notasi Big-Oh adalah fungsi yang lebih terkait
dengan kelajuan proses daripada kelajuan
pertambahan data.
 Contoh :

1. Jika f(n) = 2n maka T(n) = . . . .

2. Jika f(n) = 2n3 + 4n2 + 3n + 5 maka T(n) = . . . .

 Contoh Program :

sum = 0;
for (i=0; i<n; i++)
sum = sum + a[i];
maka T(n) = . . . .
TERIMA KASIH
Sistem Informasi
Universitas Gunadarma
2012/2013
 Teknikrekursif adalah salah satu cara
pembuatan algoritma dengan
pemanggilan procedure atau function
yang sama.

 Penerapan teknik rekursif


1. Perhitungan Nilai Faktorial
2. Pembentukan Barisan Fibonacci
3. Permutasi Sekelompok Karakter
4. Masalah Menara Hanoi
 Teknik rekursif pada algoritma untuk
menghitung faktorial dari bilangan bulat
positif n adalah :
Function FAK (n : integer) : integer
If n := 0 then FAK := 1
Else FAK := n*FAK(n-1)
 Barisan bilangan fibbonaci : 1, 1, 2, 3, 5, 8,
13, 21, . . .
Teknik rekursif pada algoritma untuk
menentukan suku ke-n dari barisan
bilangan fibbonaci adalah :
Procedure F(n : integer) : integer
If n <= 2 then F(n) = 1
else F(n) = F(n-1) + F(n-2)
Endif
End
 Penggunaan teknik rekursif adalah
permainan menara hanoi. Berdasarkan
legenda, pertama kali dimainkan secara
manual oleh pendeta Budha di Hanoi,
sehingga disebut Menara Hanoi.
 Dalam permainan ini, akan dipindahkan
sejumlah piringan yang tidak sama
besarnya dari satu tonggak ke tonggak
lainnya, dengan diperbolehkan
menggunakan (melewati) sebuah tonggak
bantuan.
 Teknik Iteratif adalah suatu teknik
pembuatan algoritma dengan
pemanggilan procedure beberapa kali
atau hingga suatu kondisi tertentu
terpenuhi.

 Penerapan teknik iteratif


1. Perhitungan Nilai Faktorial
2. Pembentukan Barisan Fibonacci
 Teknik iteratif pada algoritma untuk
menghitung faktorial dari bilangan bulat
positif n adalah :
Function FAK (n : integer) : integer
FAK = 1
For i = 1 TO n
FAK = FAK * i
NEXT i
END FAK
 Barisan bilangan fibbonaci : 1, 1, 2, 3, 5, 8, 13, 21, . . .
Teknik iteratif pada algoritma untuk menentukan
suku ke-n dari barisan bilangan fibbonaci adalah :
Set x, y, n, i, f : integer
x = 1 ;y = 1
If n > 2 then
begin
for i = 3 to n do
begin
F=x +y
x=y
y=F
end
else
F=x
Write(F)
End
Teknik Rekursif Teknik Iteratif
1. Ada variabel lokal baru. 1. Tidak ada variabel lokal baru.
2. Program menjadi lebih sederhana. 2. Program tidak sederhana.
TERIMA KASIH

Anda mungkin juga menyukai