Algoritma Struktur Data
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)
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
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
Bahasa C, Mit r a Wacana Media, 2009
ALGORI TMA
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/ busurGRAPH
• 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)
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
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
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
ISTILAH-ISTILAH GRAPH
1. Incident
2. Degree/ derajat , indegree dan
out degree
3. Adjacent
4. Successor dan Predecessor
5. Pat h
1. INCIDENT
•
Apabila e merupakan busur dengansimpul-simpulnya adalah v dan w yang dit ulis e=(v,w )
•
M aka v dan w disebut terletak pada e, dane disebut incident dengan v dan w
A
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=32. DEGREE, INDEGREE, OUTDEGREE
•
Indegree sebuah simpul pada graph berarah adalah jumlah busur yang kepalanya (head) incident pada simpul t ersebut atau dapatdikatakan jumlah busur masuk atau menuju simpul t ersebut
2. DEGREE, INDEGREE, OUTDEGREE
•
Outdedegree sebuah simpul pada graph berarah adalah jumlah busur yangbunt ut nya (tail) incident pada simpul tersebut atau dapat dikatakan jumlah
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 wapabila ada busur dari w ke v
–
Simpul v adjacent dgn simpul wA
B w e
A
B
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 vA
B
v
5. PATH
•
Sebuah pat h adalah serangkaian (asequence) 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 46. CYCLE
•
Cycle adalah pat h yang terdiri darisekurang-kurangnya 3 simpul sedemikian rupa simpul yang terakhir adjacent dengan simpul pertama
•
M enggambarkan cycle 4 buah simpul pada graph tak berarah2 1
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 direpresentasikanREPRESENTASI GRAPH
•
Representasi graph dalam bent uk mat rix1. 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 List1. Adjacency list
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
– char Z[5][5] = {“ 01010”,” 10101”,” 01011”,” 10101”,” 01110” };
• Unt uk menyatakan simpul dibuat sebut array yang berisi nama/ atau
ident itas simpul
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
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)