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

tersebut

  e 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