Struktur Data Hirarki (Tree, Graph, Hash Tables)
Algoritma Struktur Data 3 sks By. Sri Rezeki Candra Nursari
Materi Materi Pengantar Struktur Data Abstract Data Type (ADT) Rekursif : Fibonacci Sorting (Selection, Insertion, Bubble, Shell, Merge, Quick) Struktur Data Linier (Linked List, Stack, Queue) Struktur Data Hirarki (Tree, Graph, Hash Tables) Search (Sequential, Fibonacci, Interpolation, Binary)
3 sks 3 sks ALGORI TMA ALGORI TMA STRUKTUR STRUKTUR DATA DATA -- Lit erat ur :
1. H.M Deit el, P.J Deit el, Small J ava How t o Program-sixt h Edit ion, Pear son Pr ent ice Hall, 2005
2. Elliot B. Kof f man, Paul A.T. Wolf gang, Obj ect s, Abst ract ion, Dat a St ruct ures and Design Using J ava, J ohn Wiley & Sons.I nc, 2005 3.
Mar k Allen Weiss, Dat a St ruct ures & Algorit hm Analysis in J ava, Addison-Wesley, 1999 4.
Moh.Sj ukani, Algorit ma & St rukt ur Dat a dengan C, C++ dan J ava, Mit r a Wacana Media, Agust us 2005
5. Andr i Kr ist ant o, St rukt ur Dat a dengan C, Gr aha I lmu, 2003
6. Bambang Wahyudi, Pengant ar St rukt ur Dat a dan Algorit ma, Andi, 2004
7. Ema Ut ami, St rukt ur Dat a, Gr aha I lmu, 2007
8. Yat ini B, I ndr a, Pemrograman Terst rukt ur, J &J Lear ning Yogyakar t a, 2001
9. Wir t h, Niklaus, Algorit hmic + Dat a St ruct ures Programs, Pr ent ice-Hall, 1976 10.
Thompson Susabda Ngoen , Algorit ma dan St rukt ur Dat a
GRAPH
GRAPH
- Sekumpulan elemen yang saling berhubungan
- –
Sebuah elemen yang dapat t erhubung
dengan beberapa elemen lain - –
Beberapa elemen dapat t erhubung ke
beberapa elemen yang lain - Graph terdiri dari node/ vertex/ t it ik dan edges/ arc/ busur
- Graph t idak memiliki root node
GRAPH
- Graph, t ermasuk st rukt ur non linear
- Graph adalah kumpulan dari simpul dan busur yang secara mat emat is dapat dinyatakan sebagai berikut :
- – G = (V, E)
- G = Graph
- V = Sim pul/ vert ex/ node/ t it ik
- E = Busur/ edge/ arc
- Graph dibedakan menjadi 2 macam:
1. Graph t ak berarah (undirect graph/ non-direct graph)
2. Graph berarah(direct graph/ digraph)
GRAPH TAK BERARAH
- Graph t ak berarah (undirect graph/ non-direct ed graph)
- Urut an simpul pada busur e1, dapat disebut busur A,B
at au B,A
Diident ikkan dengan sebuah jalan yang menghubungkan
dua buah t it ik, yang dapat dilalui 2 arah
B
v
2 e e
1
3 e
4 v
3 C
A
v
1 e
5 e
7 e
2 D
E
e v
6
5 v
4
GRAPH TAK BERARAH
- Graph tak berarah biasa juga disebut t ipe data abst ract graph
- M erupakan sekumpulan node yang saling t erhubung melalui edges
- Set iap edge menghubungkan dua node. Tidak semua node harus saling t erhubung
GRAPH BERARAH
- Graph berarah (direct ed graph)
- Busur A,B adalah busur e1
- Busur B,A adalah busur e8
- Diident ikkan apabila dari A ke B dapat menggunakan jalan e1,
sedangkan dari B ke A hanya menggunakan jalan e8
e B e v
8
9
2 e e
1
3 e
4 v
3 C
A
v e
1
10 e
5 e
7 e
2 D
E
v e
5
6 v
4
ISTILAH-ISTILAH GRAPH
1. Incident
2. Degree/ derajat , indegree dan out degree
3. Adjacent
4. Successor dan Predecessor
5. Pat h
6. Cycle
1. INCIDENT
- Apabila e merupakan busur dengan simpul-simpulnya adalah v dan w yang dit ulis e=(v,w )
M aka v dan w disebut terletak pada e, dan
e disebut incident dengan v dan w
B
w e
A
v
2. DEGREE, INDEGREE, OUTDEGREE
- Degree sebuah simpul adalah jumlah busur yang incident dengan simpul t ersebut .
- Degree simpul A atau v1=2
- Degree simpul B atau v2=3
B v
2 e e
1
3 e
4 v
3 C
A
v
1 e
5 e
7 e
2 D
E
2. DEGREE, INDEGREE, OUTDEGREE
- Indegree sebuah simpul pada graph berarah
adalah jumlah busur yang kepalanya (head) incident pada simpul t ersebut atau dapat dikatakan jumlah busur masuk atau menuju simpul t ersebut
e e
B v B v
8
9
2
2 e e e e
1
3
1
3 e
4 e
4 v v
3
C A A
3 C
v v e
1
1
10 e e
5
5 e e
7
7 e e
2
D E E
2 D
v
2. DEGREE, INDEGREE, OUTDEGREE
- Outdedegree sebuah simpul pada graph
berarah adalah jumlah busur yang bunt ut nya (tail) incident pada simpul tersebut atau dapat dikatakan jumlah
busur yang keluar atau berasal dari simpul
tersebute e
B
v
8
9
2 B v
2 e e
1
3 e e
1
3 e
4 e
4 v
3 C v
3 C A v e
A
1
10 v
1 e
5 e
5 e
7 e
7 e
2 D e
2 D
E E
v e
5
6
3. ADJACENT
- Pada graph t ak berarah, dua simpul
t ersebut adjacent bila ada busur yang menghubungkan kedua simpul t ersebut
- – Simpul v dan simpul w disebut adjacent
- Pada graph berarah, sebuah simpul v
disebut adjacent dengan simpul w apabila ada busur dari w ke v
- – Simpul v adjacent dgn simpul w
B
w e
B w
e
A
v
4. SUCCESSOR dan PREDECESSOR
Pada graph berarah, bila simpul v adjacent
dengan simpul w- Simpul v adalah successor (penggant i/ pelanjut ) simpul w
Simpul w adalah predecessor (pendahulu)
dari simpul v
B w
e
5. PATH
- Sebuah pat h adalah serangkaian (a
sequence) simpul-simpul yang berbeda,
yang adjacent secara bert urut -t urut dari
simpul sat u ke simpul berikut nya - M enggambarkan pat h dari simpul 1 ke simpul 4
1
2
3
4
6. CYCLE
- Cycle adalah pat h yang terdiri dari sekurang-kurangnya 3 simpul sedemikian
rupa simpul yang terakhir adjacent dengan
simpul pertama M enggambarkan cycle 4 buah simpul pada
graph tak berarah
1
2
3
4
REPRESENTASI GRAPH
Agar data yang ada dalam grpah dapat
diolah, maka graph harus dinyatakan dalam suat u st rukt ur data yang dapat mewakili graph tersebut- Graph perlu direpresentasikan kedalam bent uk array dua dimensi yang sering juga disebut mat rix, atau
direpresentasikan dalam bent uk linked
list
REPRESENTASI GRAPH
- Representasi graph dalam bent uk mat rix
1. Adjacency mat rix
2. Inverse adjacency mat rix (hanya unt uk
graph berarah)3. Insidence mat rix
4. Vect or mat rix
- Representasi graph dalam bent uk Link List
1. Adjacency list
2. Inverse adjacency list (hanya unt uk graph
Representasi graph dalam bentuk matrix
1. Adjacency matrix graph tak berarah (undirected graph)
- M at rix yang terbent uk adalah mat rix bujur sangkar n* n, dimana n=jumlah simpul
yang ada dalam graph tersebut
- Angka 1 menyatakan ada hubungan (ada busur) atau adjacent antara dua buah
simpul
- M at rix yang terbent uk adalah mat rix syment ris dengan sumbu syment ris adalah
diagonal dari t it ikkiri atas ke t it ik kanan bawah
- Data yang terdapat baik dalam row maupun column, dapat menyatakan degree
sebuah simpul
- Unt uk mat rix dibuat
- – int Z[5][5] = {0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0};
- Bila menggunakan t ype karakter adalah
A B C D E
- – char Z[5][5] = {“ 01010”,” 10101”,” 01011”,” 10101”,” 01110” };
0 1 2 3 4
- Unt uk menyatakan simpul dibuat sebut array yang berisi nama/ atau
A
1
1 B ident itas simpul
B
1
1
1
1
- – char Nam aSim pul [5] = “ABCDE” ;
C
2
1
1
1 C A
3 D
1
1
1
Representasi graph dalam bentuk matrix
1. Adjacency matrix graph berbobot tak berarah
- Nilai yang ada dalam t iapelemen mat rix, menyat akan bobot busur yang menghubungkan dua buah simpul
- Unt uk dua buah simpul yang t idak berhubungan langsung at au t idak dihubungkan langsung oleh sebuah busur maka dianggap dihubungkan oleh sebuah busur yang nilai bobot nya t idak berhingga 999
1
4 999
5
4
3
6
7
2
8
3
5
8 E
2
4
A B C D E A B C D E
3 D
4
7
5 C 2 999
2 7 999
1
4 A 2 999 6 999 B
3
3 6 999
Representasi graph dalam bentuk matrix
1. Adjacency matrix graph berarah (directed graph)
M at rix yang t erbent uk adalah mat rix bujur sangkar n* n, dimana
n=jumlah simpul yang ada dalam graph t ersebut- Angka 1 menyat akan ada hubungan (ada busur) at au adjacent
ant ara dua buah simpul
- M at rix yang t erbent uk adalah mat rix syment ris dan t idak syment ris
- Dat a yang t erdapat dalam suat u row, dapat menyat akan
outdegree simpul (mis: simpul B)
- Dat a yang t erdapat dalam suat u kolom, dapat menyat akan
A B C D E indegree B
0 1 2 3 4 0 0 1 0 1 0 A
1 1 0 1 0 1 B C A C 2 0 1 0 1 1