BLOGGER TEMPLATES - TWITTER BACKGROUNDS

Jumat, 18 Juni 2010

MATRIKS PENYAJIAN GRAPH

Matriks Penyajian Graph
Matriks Adjacency dari Graph G, yaitu Matriks yang menghubungkan Vertex dengan Vertex, tanpa ruas sejajar adalah Matriks A berukuran (NxN).
Matriks Adjacency merupakan matriks simetri.
Matriks Incidence dari Graph, yaitu Matriks yang menghubungkan Vertex dengan edge, tanpa self-loop diefinisikan sebagai matriks M berukuran (NxM).

Graph Terarah (Directed Graph / Digraph)
Graph terarah adalah grap yang dapat menghubungkan V1 ke V2 saja (1 arah).
Maksimum jumlah busur dari n simpul adalah :



Graph Tak Terarah (Undirected Graph)
Graph tak terarah adalah graph yang menghubungkan 2 vertex V1 ke V2 dan V2 ke V1 (2 arah). Bila Vertex = n, maka Graph tak terarah komplit akan mempunyai busur edge sama dengan :


Penelusuran graph
Dapat dilakukan dengan 2 cara, yaitu :
1. Depth First Search (DFS)
Penelusuran dengan DFS pada graph tak berarah dengan melakukan pengecekan pada node dengan kedalaman pertama dari node yang ditinjau.
2. Breadh First Searh (BFS)
Berbeda dengan cara BFS, dengan BFS penelusuran akan diawasi dari node-1, kemudian melebar pada Adjacent Node dari Node-1 dan diteruskan pada Node-2, Node-3 dan seterusnya.

GRAPH

Graph
Suatu graph mempunyai 2 himpunan, yaitu :
Himpunan V yang elemennya disebut simpul (Vertex atau Point atau Node atau Titik)
Himpunan E yang merupakan pasangan tak urut dari simpul. Anggotanya disebut Ruas (Edge atau rusuk atau sisi)
Graph seperti dimaksud diatas, ditulis sebagai sebagai G(E,V).
Banyak simpul (vertex) disebut Order, sedangkan banyaknya ruas (edge) disebut Size dari graph.
Graph sederhana atau simple graph : Suatu graph yang tidak mengandung ruas sejajar ataupun self-loop.
Graph Berlabel
Graph G disebut berlabel jika ruas dan atau simpulnya dikaitkan dengan suatu besaran tertentu.
Derajat Graph
Derajat simpul V, ditulis d(v) adalah banyaknya ruas yang menghubungi v. Karena setiap ruas dihitung dua kali ketika menentukan derajat suatu Graph.
Bila jumlah derajat semua simpul sama dengan genap, maka disebut EULER GRAPH.

KETERHUBUNGAN
Walk atau perjalanan dalam graph G adalah barisan simpul dan ruas berganti-ganti : V1,e1,V2,e2,……,e n-1,Vn
Disini ruas ei menghubungkan simpul Vi dan Vi+1.
Banyaknya ruas disebut Panjang Walk.
Walk disebut terbuka, yang menghubungkan V1 dan Vn, yaitu setiap ruas menghubungkan Simpul Awal dan Akhir.
Trail adalah Walk dengan semua ruas dalam barisan adalah berbeda.
Path atau jalur adalah Walk yang semua simpul dalam barisan adalah berbeda. Jadi suatu Path pastilah sebuah Trail.
Cycle atau sirkuit adalah suatu trail tertutup dengan derajat setiap simpul =2. Cycle dengan panjang k disebut dengan k-cycle. Demikian pula jalur dengan panjang k disebut k-jalur.
Grap yang tidak mengandung Cycle disebut Acyclic.
Contoh dari Graph Acyclic adalah pohon atau Tree.
Subgraph yang terhubung pada suatu Graph disebut komponen dari G bila Subgraph tersebut tidak terkandung dalam Subgraph terhubung lain yang lebih besar.

STRUKTUR SEARCHING SEQUENTIAL SEARCH

• Suatu teknik pencarian data dalam array dimensi 1 yang akan menelusuri semua elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu (acak).
• Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di index array terdepan sehingga waktu yang dibutuhkan untuk pencarian data sangat singkat (waktu minimal).
• Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di index array terakhir sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (waktu maksimal).

BINARY SEARCHING
Merupakan metode terbaik dalam search (pencarian), karena memulai pencarian dari lokasi tengah (m).

FIBONANCY SEARCHING
Pencarian yang menggunakan deret Fibonancy sebagai dasar pencarian.
Deret Fibonancy : 0,1,1,2,3,5,8,13,21,….......

SORTING

SORTING

Sorting adalah operasi yang sangat banyak dilakukan dalam ‘ Bussiness dta Processing’. Dalam hal ini pengurutan yang di lakukan adalah secara ascending ( menarik dari kecil ke besar)
Macam-macam sorting ( pengurutan)
1. SELECTION SORT
Metode pengurutan selection sort, prosedur atau Algoritmanya adalah sbb:
• Pengecekan dimulai dari data ke-1 samping dengan data ke-n
• Tentukan bilangan dengan index terkecil dari data bilangan tersebut
• Tukar bilangan dengan index terkecil tersebut tersebut dengan bilangan pertama (I=1) dari data bilangan tersebut
• Lakukan langkah 2 dan 3 untuk bilangan berikut (I = I+1) sampai didapatkan urutan yang pertama
2. BUBBLE SORT
Metode pengurutan bubble sort mempunyai algoritma atau prosedur sebagai berikut:
• Pengecekan dimulai sampai dengan data ke-n
• Bandingkan data ke-n dengan data sebelumnya (n-1), jika lebih kecil maka tukar bil. Tsb dengan data yang ada didepanya ( sebelumnya ) satu persatu (n-,1 n-2,n-3…..dst)
• Lakukan langkah ke-2 sampai didapatkan urutan yang optimal
3. MERGE SORT
Menggunakan motode iterative marge sort mempunyai algoritma atau prosedur sebagai berikut
• Kelompok deret bilangan kedalam 1 bagian, 4 bagian, 8 bagian …..dst…..
• Urutkan secara langsung bilangan dalam kelompok tersebut
• Lakukan langkah diatas untuk kondisi bilangan yang lain sampai didapatkan urutan yang optimal

4. QUICK SORT
Sangat baik untuk table data yang sangat besar. Algoritma atau purosedur Quick sort adalah sbb:
• Tentukan bilangan yang dinyatakan sebagai batas bawah (lower bound (I =1)) dan bilangan yang dinyatakan sebagai batas atas (Upper bound (I=N))
• Syarat pemindahan adalah LB>UB,dengan melihat perbandingan antara UB (awal bilangan ) dan LB (akhir bilangan)
• Jika LB > UB lakukan pertukaran antara dua bilangan tersebut, jika tidak dilakukan permindahan LB (I=IA+1,I=1+2…..) Ke bilangan selanjutnya dan bandingkan kembali dengan UB (I=N,I =N-1,I=N-2………)

KUNJUNGAN PADA POHON BINER

Kunjungan pada pohon biner merupakan salah satu operasi yang sering dilakukan pada suatu pohon binary tepat satu kali (Binary Tree Traversal). Operasi ini terbagi menadi 3 bentuk :

1. Kunjungan secara preorder (Depth First Order),
Mempunyai urutan :
• Cetak isi simpul yang dikunjungi (Simpul Akar)
• Kunjungi Cabang Kiri
• Kunjungi Cabang Kanan
2. Kunjungi secara Postorder, mempunyai urutan :
• Kunjungi Cabang Kiri
• Cetak isi simpul yang dikunjungi (Simpul Akar)
• Kunjungi Cabang Kanan
3. Kunjungan secara Postorder, mempunyai urutan :
• Kunjungi Cabang Kiri
• Kunjungi Cabang Kanan
• Cetak isi simpul yang dikunjungi (Simpul Akar)

Pada ketiga cara kunjungan diatas, kunjungan ke cabang kiri dilakukan terlebih dahulu, baru kemudian kunjungan ke cabang kanan.
Ketiga kunjungan diatas disebut Left To Right Oriented (LRO).
Jika kunjungan ke cabang kanan dilakukan lebih dahulu baru kemudian kunjungan ke cabang kiri, maka orientasi semacam ini disebut Right To Left Oriented (RLO).




Kunjungan LevelOrder
Merupakan kunjngan yang dimulai dari simpul yang ada pada tingkat 1 (Akar), diteruskan pada simpul di tingkat 2, tingkat 3 dan seterusnya.

APLIKASI PADA POHON BINER
Notasi Prefix, Infix dan Postfix
Pada bagian ini akan dibahas tentang bagaimana menyusun sebuah pohon binary yang apabila dikunjungi secara Preorder akan menghasilkan Notasi Prefix, kunjungan secara Inorder menghasilkan Notasi Infix, dan kunjungi PostOrder menghasilkan Notasi Postfix.

STRUKTUR POHON ( TREE)

STRUKTUR POHON ( TREE)

ISTILAH-ISTILAH DASAR
Pohon atao tree adalah satu bentuk satu bentuk graph terhubung yang tidak mengandung sirkuit.
Karena merupakan graph terhubung , maka pada pohon ( tree) selalu terdapat path atau jalur yang menghubungkan setiap simpul dalam dua pohon.
Pohon (tree) dapat juga didenfinisikan sebagai kumpulan elemen yang salah satu elemennya disebut dengan akar (Root) dan sisa elemen lain (simpul)yang terpecah menjadi sejumlah himpunan yang saling tidak terhubung yang disebut dengan Subpohon (subtree) atau cabang.
Sifat Utama Pohon Berakar
1. jika pohon mempunyai simpul sebanyak n, maka banyaknya ruas atau adge adalah ( n-1)
2. mempunyai simpul khusus yang di sebut rood.
3. mempunyai simpul yang disebut sebagai daun atau leaf
4. setiap simpul mempunyai tingkayan atau level yang dimulai dari root yang level nya =1 sampai dengan levek ke-n pada daun paling bawah. Simpul yang mempunyai level sama disebut bersaudara atu brother atau stribling
5. pohon mempunyai ketinggian atau kedalaman atau height, yang merupakan lever tertinggi.
6. pohon memepunyai weight atau berat atau bobot , yang banyaknya daun (leaf) pada pohon .
7. banyaknya simpul maksimum sampai level n adalah:


8. banyaknya simpul untuk setiap level 1 adalah :




Hutan (Forest) adalah kumpulan pohon yang tidak saling berhubungan

POHON BINAR (BINARY TREE)
Pohon binary (Binary Tree) adalah kumpulan simpul yang mungkin kosong atau mempunyai akar dan dua subpohon yang saling terpisah yang disebut dengan subpohon kiri / cabang kiri (Left Subtree) dan Subpohon Kanan / cabang kanan (Right Subtree).
Karakteristik Pohon Binar (Binary Tree) :
1. Setiap simpul banyak hanya memiliki dua buah anak
2. Derajat Tertinggi dari setiap simpul adalah dua
3. Dibedakan antara Cabang kiri dan Cabang kanan
4. Dimunginkan tidak mempunyai simpul

Istilah pada pohon biner
• Pohon Biner Penuh (Full Binary Tree)
• Pohon Biner Lengkap (Complete Binary Tree)
• Pohon Biner Similer
• Pohon Biner Ekivalent
• Pohon Biner Miring (Skewad Tree)

QUEUE ( ANTREAN )

QUEUE ( ANTREAN )

PENGERTIAN QUEUE (ANTREAN)
Suatu data Antrean (queue)adalah suatu bentuk khusus dari list linier dengan operasi pemasukan data hanya diperbolehkan pada salah satu sisi, yang tersebut sisi belakang /ekor (tail)dan operasi penghapus hanya diperolehkan pada sisi lainnya ang disebut sisi depan / kepala (Head) dari linkedlist.

OPERASI QUEUE
CREATE
• Untuk menciptakan dan menginisialisasi Queue dengan cara membuat Head dan TAIL =-1
ISEMPTY
• Untuk memeriksa apakah queue kosong
ISFULL
• Untuk memeriksa apakah queue sudah penuh
ENQUEUE
• Untuk menambah item pada posisi paling belakang
DEQUEUE
• Untuk menghapus item dari posisi palng depan
CLEAR
• Untuk mengosokan queue

Fungsi IsFULL
• Untuk mengecek apakah antrian sudah penuh atau belum
• Dengan Cara
Mengecek nilai Tail jika tail = MAX=-1 berarti antrian sudah penuh (MAX-1 adalah batas elemen array dalam program C++)

Fungsi Enqueue
• Untuk menambah elemen ke dalamAntrian, penamahan elemen selalu dilakukan pada elemen paling belakang
• Penambahan elemen selalu menggerakan variable tail dengan cara menambahkan tail terlalu dahulu
Fungsi Dequeue
• Digunakan untuk menghapus elemen terdepan (head)dari antrian
• Dengan Cara
Menggeser semua elemen antrian kedepan dan mengurangi tail dengan 1. penggeseran dilakukan dengan menggunakan looping
Fungsi Clear
• Untuk menghaous elemen-elemen antrian dengan cara membuat tail dan head-1
• Penghapus elemen-elemen antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nyake nilai-1 sehingga elemen-elemen antrian tidak lagi terbaca sehingga mengembalikan antrian seperti keadaan semula

STACK atau TUMPUKAN

STACK (TUMPUKAN)
Merupakan bentuk khusus dari linier yang pemasukan dan penghapus elemennya hanya dapat dilakukan pada posisi akhir dari list ( Top ).

OPERASI STACK
• ISEMPTY
Untuk memeriksa apakah stack kosong
• ISFULL
Untuk memeriksa apakah stack sudah penuh
• PUSH
Untuk menambah item pada posisi paling atas ( Top )
• POP
Untuk menghapus item paling atas ( Top )
• CLEAR
Utuk mengosongkan stack

Fungsi ISEMPTY
• Digunakan untuk memeriksa apakah stack masih dakam keadaan kondisi kosong
• Dengan cara memeriksa TOP of STACK jika stack masih kosong
Fungsi ISFULL
• Di gunakan untuk memeriksa apakah kondisi stack sudah penuh
• Dengan cara memeriksa TOP of STACK jika TOP of STACK = MAX_STACK-1 maka FULL (penuh). Jika TOP of STACK



Fungsi PUSH
• Digunakan untuk memasukan elemen ke dalam stack dan selalu menjadi elemen teratas stack
• Dengan Cara
1. Menambah 1satu ( increment )nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh
2. Isikan nilai baru ke stack berdasarkan indeks TOP of STACK setelah ditambah (diincrement )
Fungsi POP
• Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari stack
• Dengan Cara
1. Ambil dahulu nilai elemen teraras stack dengan mengakses TOP of STACK
2. Tampil nilai yang akan dating
3. lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
FUNSI CLEAR
• Digunakan utuk mengosokan stack / membuat stack hampa sehingga Top pada stack berada kembali di posisi Top =-1

SINGLE LINKED LIST (Lanjutan)

Single Linked List non Circular
Menggunakan Head dan Tail
Dibutuhkan dua variable pointer : head dan tail
Head selalu menunjuk pada node pertama, sedangkan tail menunjuk pada node terakhir.
Kelebihan Linked List dengan Head & Tail adalah pada penambahan data di belakang, hanya dibutuhkan tail yang mengikat node baru saja tanpa harus menggunakan perulangan pointer Bantu.
Menambah Node di depan dengan head dan tail
Menambah node di belakang dengan head dan tail
Menghapus node di depan (Dengan head dan tail)
• Penghapusan node tidak boleh dilakukan jika keadaan node sedaang ditunjuk oleh pointer.
• Jika tail masih NULL maka berarti list masih kosong!
Menghapus nod di belakang (Dengan Head dan tail)
• Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer.
• Jika tail masih NULL maka berarti list masih kosong!

SINGLE LINKED LIST ( Non Circular )

SINGLE LINKED LIST
( Non Circular )

KONSEP POINTER DAN LINKED LIST
Untuk Mengola data yang banyaknya tidak bias ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinkan untuk menggunakan suatu perubah yang disebut dengan perubah dinamis ( dynamic Variabel)
Linked List : Pengolahan data yang kita lakukan menggunakan computer seringkali mirip dengan ilustrasi di atas yang antara lain berupa penyimpanan data dan pengolahan lain dari sekelompok data yang telah terorganisir dalam sebuah urutan tertentu.
Single Linked List : Single linked list atau biasa disebut linked list terdiri dari elemen-elemen individu, dimana masing-masing dihubngkan dengan pointer tunggal.
Perubah Dinamis (Dinamic variable)
Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.
Perbedaan Karakteristik
Array dan Linked List
ARRAY LINKED LIST
Statis Dinamis
Penambahan atau penghapusan data terbatas Penambahan/ penghapusan data tidak terbatas
Random access Sequental access
Penghapusan array tidak mungkin Penghapusan linked list mudah



Setiap simpul linked list terbagi menjadi 2 yaitu:
• Medan Informasi
Berisi informasi yang akan disimpan dan diolah.
• Medan Penyambung (Linked Field)
Berisi alamat berikutnya
Bentuk Node
Single Linked List non Circular
Single : field pointer hanya satu arah, pada akhir node pointernya menunjuk NULL
Linked List : node-node tersebut saling terhubungnsatu sama lain.
Single Linked List non Circular Menggunakan Head
Dibutuhkan satu buah variable pointer : head yang akan selalu menunjuk pada node pertama

Array

Array atau lirik : Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.
Turutut : Dapat di artikan bahwa elemen tersebut dapat di indentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n.
Homongen : Adalah bahwa setiap elemen dari sebuah Array tertentu haruslah mempunyai type data yang sama.

Karakteristik Array
• Mempunyai batasan dari pemesanan alokasi memory ( bersifat Statis)
• Mempunyai type data sama ( bersifat Homegen)
• Dapat diakses secara acak
3 Hal yang harus dilakukan dalam mendeklarasikan Array:
• Type data array
• Nama Variabel array
• Subskrip/ indek array
Jenis array (yang akan di pelajari ) adalah
• Array dimensi satu (One Dimensional Array )
• Array dimensi dua ( Two Dimensional Array)
• Array dimensi Tiga ( Three Dimensional Array)


ARRAY DIMENSI SATU (One Dimensional Array )
Seklrasi : Type_data nama_Variabel [index]
Misalnya :
Int A[5]:


RUMUS untuk menentukan jumlah elemen dalam Array :

Л = Perkalian dari index sebelumnya
( Untuk Array dimensi dua & tiga )

Contoh :
Suatu Array A dideklarasikan sbb :
Int A[10]; Maka jumlah elemen array dimensi satu tersebut adalah = 10

PEMETAAN (MAPPING)ARRAY DIMENSI SATU KE STORE


Dimana : @ A[i]: Posisi aray yang dicari
B: Posisi index di memori computer
i : Subkrip atau indeks Array yang dicari
L : Ukurann / besar memory suatu type data

ARRAY DIMENSI DUA (Two Dimensional Array )
Deklarasi : Type_Data Nama_Variabel [Index1] [Index2];
Misal : int A[3][2];

ARRAY DIMENSI TIGA (Three dimensional Array )
Deklarasi : Type_Data Nama_Variabel [index1] [index2] [index3];

TRIGULAR ARRAY (ARRAY SEGITIGA)
Tringular Array dapat merupakan Upper Trigular (Seluruh elemen dibawah diagonal utama = 0 ), ataupun lower trigular (seluruh elemen di atas diagonal utama =0).

DATA DAN STRUKTUR DATA

DATA DAN STRUKTUR DATA

Struktur Data : Suatu koleksi atau kelompok data yang dapat dikarakteristik oleh organisasi serta operasi yang didefinsikan terhadapnya.
Pada garis besarnya, Data dapat dikategorikan menjadi :
A. Type Data Sederhana / Data Sederhana
Terdiri dari:
1. Data Sederhana Tunggal
a. Misal : Integer, Real/Float,Boolean, dan character
2. Data Sederhana Majemuk
b. Misal : String
B. Struktur Data
Terdiri dari:
1. Struktur Data Sederhana
Misal : Array dan Record
2. Struktur Data Majemuk
Terdiri dari :
a. Linier
Misal: Stack, Queue dan Linear Linked List
b. Non Linear
Misal: Pohon (Tree), Pohon Biner(Binary Tree), Pohon Cari Biner(Binary Search Tree, General Tree serta Graph

TYPE DATA SEDERHANA
Integer
Merupakan bilangan bulat dan tidak mengandung pecahan.
Contoh : …,-3,-2,-1,0,1,2,3,….



Real / Floating Point
Type data yang merupakan bilangan pecahan.
Contoh : 0.32 4.35 -131.128
Rumus type Real


M = Pecahan, R = Radix,
e = Exponen, X = Hasil Bilangan

Boolean atau Logical
Type data yang hanya mempunyai dua bentuk keluaran nilai True dan False (Benar dan Salah) yang dinyatakan dengan 1 dan 0, sehingga satuan data yang terpakai cukup satu bit saja. Operator yang digunakan adalah : And, Or, Not, Xor

Character
Type data yang terdiri dari aksara (symbol) yang meliputi dgit numeric,character alfabetik dan special character. Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik tunggal (‘)
Contoh :
‘A’ : karakter berupa huruf A
‘1’ : karakter berupa angka 1
‘*’ : karakter symbol *

Sring
Merupakan type data majemuk yang terbentuk dari kumpulan character sebanyak 256 (default) dengan jangkauan nilai 0-255. Kumpulan character yang digunakan untuk membentuk String dinamakan alphabet. Pemerian nilai String diapit dengan tanda petik ganda (“)
Bentuk umum penulisan tipe data ini adalah :
Tipe_data pengenal [panjang] ;
Pengenal = nama variable
Panjang = bilangan bulat yg menujukan jumlah karakter
Contoh: char nama[15]

Rabu, 16 Juni 2010

Struktur Data

Struktur Data

�� Kelompok item data yang terorganisasi yang
dianggap sebagai suatu unit
�� Disebut juga sebagai jenis data kompleks
(complex data type) atau data aggregates
�� Beberapa struktur data :
�� Array (larik)
�� String
�� Record
�� List (daftar)
�� Tree

A R R A Y

 Array atau Larik
Array atau Larik adalah sekumpulan data yang mempunyai tipe data sejenis. Misalnya numerik atau string, dan diidentifikasikan dengan sebuah nama variable array.
Di dalam sebuah array, setiap rinci data disebut dengan komponen atau elemen array, ditentukan oleh suatu besaran yang disebut dengan subskrib atau index yang menunjukkan letak sebuah elemen dalam array.
Berdasarkan banyaknya subskrib yang menentukan letak suatu elemen dalam larik dikenal adanya array dimensi satu, arary dimensi dua dan array dimensi banyak.

 Array Dimensi Satu
Array dimensi satu disebut juga dengan vector, adalah sebuah array yang terdiri dari sejumlah elemen data, dan poisis setiap elemen ditentukan oleh sebuah subskrib.
Setiap array harus dideklarasikan terlebih dahulu, hal ini digunakan untuk mengalokasikan ruang memori yang akan digunakan dan juga menentukan tipe data dari elemen array.

Bentuk umum deklarasi array dimensi satu adl :
DIM namavar ({cacah | awal to akhir}) [As tipe]

Dengan cacah : banyaknya elemen array
Awal : nomor awal subskrib
Akhir : nomor akhir subskrib
Tipe : tipe data elemen array.


 Array Dimensi Dua
Array dimensi dua, lebih dikenal dengan matriks atau tabel, adalah sekumpulan elemen yang sejenis, dan posisi setiap elemennya ditentukan oleh dua buah subskrib yaitu nomor baris dan nomor kolom.

graph pada struktur data

Struktur Data Graph
Struktur data yang berbentuk network/jaringan, hubungan antar elemen adalah many-to-many Keterhubungan dan jarak tidak langsung antara dua kota = data keterhubungan langsung dari kota-kota lainnya yang memperantarainya. Penerapan struktur data linear atau hirarkis pada masalah graph dapat dilakukan tetapi kurang efisien. Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga pencariannya langsung (straight forward) dilakukan pada strukturnya sendiri. 1.

Struktur Data Linear = keterhubungan sekuensial antara entitas data 2.

Struktur Data Tree = keterhubungan hirarkis 3.

Struktur Data Graph = keterhubungan tak terbatas antara entitas data. Contoh graph
Informasi topologi jaringan dan keterhubungan antar
Graph terdiri dari himpunan verteks (node) dan himpunan sisi (edge, arc). Verteks menyatakan entitas-entitas data dan sisi menyatakan keterhubungan antara verteks. Notasi matematis graph G adalah :
G = (V, E)
Sebuah sisi antara verteks x dan y ditulis {x, y}. Subgraph : graph yang merupakan suatu subset (bagian) graph yang connected Graph H = (V1, E1) disebut subgraph dari graph G jika V1 adalah himpunan bagian dari V dan E1 himpunan bagian dari E.
Jenis Graph
a. Directed Graph (Digraph)
Jika sisi-sisi graph hanya berlaku satu arah. Misalnya : {x,y} yaitu arah x ke y, bukan dari y ke x; x disebut origin dan y disebut terminus. Secara notasi sisi digraph ditulis sebagai vektor (x, y).
Contoh Digraph G = {V, E} :
V = {A, B, C, D, E, F, G, H, I,J, K, L, M} E = {(A,B),(A,C), (A,D), (A,F), (B,C), (B,H), (C,E), (C,G), (C,H), (C,I), (D,E), (D,F), (D,G), (D,K), (D,L), (E,F), (G,I), (G,K), (H,I), (I,J), (I,M), (J,K), (J,M), (L,K), (L,M)}.
b. Graph Tak Berarah (Undirected Graph atau Undigraph)
Setiap sisi {x, y} berlaku pada kedua arah: baik x ke y maupun y ke x. Secara grafis sisi pada undigraph tidak memiliki mata panah dan secara notasional menggunakan kurung kurawal.
Contoh Undigraph G = {V, E}
V = {A, B, C, D, E, F, G, H, I,J, K, L, M} E = { {A,B},{A,C}, {A,D}, {A,F}, {B,C}, {B,H}, {C,E}, {C,G}, {C,H}, {C,I}, {D,E}, {D,F}, {D,G}, {D,K}, {D,L}, {E,F}, {G,I}, {G,K}, {H,I}, {I,J}, {I,M}, {J,K}, {J,M}, {L,K}, {L,M}}. Khusus graph, undigraph bisa sebagai digraph (panah di kedua ujung edge berlawanan) Struktur data linear maupun hirarkis adalah juga graph. Node-node pada struktur linear ataupun hirarkis adalah verteks-verteks dalam
ngertian graph dengan sisi-sisinya menyusun node-node tersebut secara linear atau hirarkis. Struktur data linear adalah juga tree dengan pencabangan pada setiap node hanya satu atau tidak ada. Linear 1-way linked list (digraph), linear 2-way linked list (undigraph)