Professional Documents
Culture Documents
PENDAHULUAN
1.1Latar Belakang
Graph merupakan suatu struktur data yang terdiri dari titik dan garis.
Penerapan graph dalam IPTEK sudah lama dikenal dan diterapkan dalam
berbagai bidang. Contoh contoh penerapan graph dalam IPTEK seperti
penyimpanan struktur bangunan, penerapan graph berwarna untuk
menentukan pembagian suatu daerah, penggunaan graph untuk menentukan
rute terpendek dan lain sebagainya. Untuk menerapkan graph kita harus
merepresentasikan graph tersebut.
Representasi graph dalam bentuk matriks merupakan representasi
graph dalam bentuk yang paling umum. Keuntungan representasi dalam
matriks menjanjikan akses yang lebih cepat dalam aplikasi tertentu namun
memakan memori yang jauh lebih besar. Selain representasi dalam bentuk
matriks, terdapat juga representasi dalam bentuk list. Representasi dalam
bentuk list sering digunakan pada sparse graI dengan jumlah simpul yang
jarang, karena struktur data ini membutuhkan memori dalam jumlah yang
lebih sedikit.
Dalam makalah ini kami akan membahas tentang representasi graph
dalam list. Dalam representasinya sebuah graph terdiri dari dua bagian yaitu:
bagian simpul yang disebut list simpul dan sisi yang disebut list sisi.
1.2#:2:8an Ma8alah
erdasarkan latar belakang di atas, rumusan masalah yang dapat
diangkat yaitu : agaimana menyimpan data dari sebuah graph dengan
struktur data list?
1.3%::an
Tujuan yang ingin dicapai dalam makalah ini adalah untuk mengetahui
cara menyimpan data dari sebuah graph dengan struktur data list.
BAB II
LANDASAN %EO#I
2.1raf
GraI dideIinisikan sebagai pasangan himpunan (J,E) ditulis notasi
G(J,E), yang dalam hal ini J adalah himpunan tidak kosong-kosong dari
simpul-simpul (vertices atau node) dan E adalah himpunan sisi (edges atau -
arcs) yang menghubungkan sepasang simpul.
Jenis-Jenis GraI
erdasarkan ada tidaknya gelang atau sisi ganda pada suatu graI, maka secara
umum graI dapat digolongkan menjadi dua jenis :
1) GraI sederhana (simple graph) : graI yang mengandung gelang maupun
sisi-ganda dinamakan graI sederhana. Pada graI sederhana, sisi adalah
pasangan tak terurut (unordered pairs). Jadi, menuliskan sisi (u,v) sama
saja dengan (v,u). deIinisi graI sederhana G(J,E) terdiri dari himpunan
tidak kosong simpul-simpul dan E adalah himpunan pasangan tak-terurut
yang berbeda yang disebut sisi
2) GraI tak sederhana (unsimple graph) : graI yang mengandung sisi ganda
atau gelang dinamakan graI tak sederhana. Ada dua macam graI tak
sederhana yaitu graI ganda dan graI semu.
Sisi graI dapat mempunyai orientasi arah. Secara umum berdasarkan orientasi
arah graI dibedakan menjadi 2 :
1) GraI tak berarah (undirected graph) : graI yang sisinya tidak mempunyai
orientasi arah disebut graI tak berarah. Pada graI tak berarah, urutan
pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi (u,v)
(v,u) adalah sisi yang sama
2) GraI berarah (directed graph) : graI yang sisinya diberikan orientasi arah
disebut sebagai graI berarah yang disebut busur (arc). Pada graI berarah,
(u,v) (v,u) menyatakan dua buah busur yang berbeda, dengan kata lain
(u,v) = (v,u). Untuk busur (u,v) simpul u dinamakan 825:l a8al (initial
vertex) dan simpul v dinamakan 825:l ter2nal (terminal vertex)
Terminologi Dasar
1. ertetangga (Adfacent)
2. ersisian (Incident)
. Simpul Terpencil (Isolated Jertex)
4. GraI Kosong (ull Graf atau Empty Graph)
5. Derajat (egree)
6. intasan (!ath)
7. Siklus (ycle) atau Sirkuit (ircuit)
8. Terhubung (onnected)
9. UpagraI ($ubgraph) dan komplemen UpagraI
10.UpagraI Merentang ($panning $ubgraph)
11.Cut-Set
12.GraI erbobot (eighted Graph)
2.2Str:kt:r Data raf
Dalam bidang ilmu komputer, sebuah graI dapat dinyatakan sebagai
sebuah struktur data, atau secara spesiIik dinamakan sebagai ADT(abstract
data type) yang terdiri dari kumpulan simpul dan sisi yang membangun
hubungan antar simpul. Konsep ADT graI ini merupakan turunan konsep graI
dari bidang kajian matematika.
Pokok bahasan sebelumnya menjelaskan bahwa graI menampilkan
visualisasi data dan hubungannya. Sedangkan jika berbicara masalah
implementasi struktur data graI itu sendiri, isu utama yang dihadapi adalah
bagaimana inIormasi itu disimpan dan dapat diakses dengan baik, ini yang
dapat disebut dengan representasi internal.
Secara umum terdapat dua macam representasi dari struktur data graI
yang dapat diimplementasi. Pertama, disebut adfacency list, dan
diimplementasi dengan menampilkan masing-masing simpul sebagai sebuah
struktur data yang mengandung senarai dari semua simpul yang saling
berhubungan.
Yang kedua adalah representasi berupa adfacency matrix dimana baris
dan kolom dari matriks (jika dalam konteks implementasi berupa senarai dua
BAB III
PEMBAHASAN
3.1#e5re8enta8 raf dala2 Lnked L8t
Dalam representasinya, sebuah graph dibagi menjadi 2 bagian, yaitu
bagian simpul yang disebut sebagai list simpul (vertex) dan bagian sisi yang
disebut dengan list sisi (edge).
ist simpul adalah list yang yang anggotanya merupakan elemen-
elemen simpul/nodes penyusun graI. Setiap titik akan direpresentasikan
menjadi sebuah elemen simpul. Elemen simpul tersebut akan dikaitkan
sehingga tersusun menjadi sebuah list simpul. Elemen Simpul terbagi menjadi
bagian, yaitu inIormasi, next dan list sisi. InIormasi merupakan bagian dari
elemen simpul yang akan menyimpan setiap inIormasi yang akan dikaitkan
dalam graI tersebut. InIormasi merupakan bagian inti dari sebuah graI yang
direpresentasikan. next, merupakan bagian untuk menyimpan inIormasi node
berikutnya, sedangkan list sisi adalah bagian untuk menyimpan elemen-
elemen yang direlasikan oleh elemen simpul tersebut.
ist sisi adalah kumpulan dari elemen yang yang merupakan
representasi dari relasi satu simpul dengan simpul yang lain. Elemen-elemen
yang tergabung dalam list sisi disebut sebagai elemen sisi. Setiap elemen pada
list elemen, memiliki satu list sisi, yang berarti bahwa elemen tersebut
memiliki keterkaitan dengan anggota list elemen yang lain.
Gambar .1 Representasi Graph dalam inked ist
};
typedeI struct vertex *pvertex;
typedeI struct edge
Iloat jarak;
char titik1|100|;
char titik2|100|;
edge * next;
};
typedeI struct edge * garis;
garis awalga NU, akhirga NU;
pvertex makeptree (Iloat x, Iloat y, char nama||)
pvertex baru;
baru(pvertex)malloc(sizeoI(struct vertex));
baru-~xx;
baru-~yy;
baru-~status0;
baru-~nextNU;
baru-~connectorNU;
strcpy(baru-~nama,nama);
}
void makevertex (pvertex *vertex,Iloat x,Iloat y,char nama||)
pvertex p , q ;
p makeptree(x,y,nama);
q *vertex;
iI(q NU)
*vertex p ;
else
Ior(;q-~next;qq-~next)
}
q-~next p;
}
}
void makeedge(garis * awalga, garis * akhirga, char titik1||, char titik2||, Iloat
jarak)
garis baru;
baru(garis)malloc(sizeoI(edge));
baru-~jarakjarak;
strcpy(baru-~titik1,titik1);
strcpy(baru-~titik2, titik2);
iI(*awalgaNU)
*awalgabaru;
*akhirgabaru;
}
else
(*akhirga)-~nextbaru;
(*akhirga)baru;
}
}
void cek(pvertex vertex, int jumlah)
pvertex awal,p,q;
Iloat jarak;
Iloat min ;
Iloat temp;
awal vertex;
p awal;
Ior(int i0;i
min 999;
p-~status 1;
Ior(qawal-~next;q!NU;qq-~next)
iI(q-~status!1)
jarak(((p-~x)-(q-~x))*((p-~x)-(q-~x)))(((p-~y)-(q-~y))*((p-~y)-(q-~y)));
jaraksqrt(jarak);
iI (min~jarak)
min jarak;
p-~jarak min;
p-~connector q;
}
makeedge(&awalga,&akhirga,p-~nama,q-~nama,p-~jarak);
}
}
p p-~connector;
}
temp(((p-~x)-(awal-~x))*((p-~x)-(awal-~x)))(((p-~y)-(awal-~y))*((p-~y)-
(awal-~y)));
p-~jarak sqrt(temp);
p-~connector awal;
}
void displayedge(pvertex vertex,int jumlah)
pvertex list vertex;
Iloat tot;
tot vertex-~jarak;
printI("\n\ts ke s\n", list-~nama,list-~connector-~nama);
list list-~connector;
Ior(int a0; a
printI("\n\ts ke s\n", list-~nama,list-~connector-~nama);
tot list-~jarak;
list list-~connector;
}
printI("\n");
}
BAB IV
PENU%UP
4.1S25:lan
erdasarkan rumusan masalah dan pembahasan diatas maka dapat
disimpulkan bahwa
DAF%A# PUS%AKA
Munir, Rinaldi. 2010. Matematika iskrit. Revisi Keempat. andung : Penerbit
InIormatika
Himawan, ondan dkk . 2008. Implementasi GraI Dalam Penyimpanan Data
Struktur angunan. Diseminarkan dalam Seminar Nasional Aplikasi
Teknologi InIormasi 2008 (SNATI 2008)
http://t4urusboy08.blogspot.com/ F diakses tanggal 25 November 2011 pukul
18.00 WITA