pengenalan graph

18
Algoritma dan Struktur Data Lanjut

Upload: brenna

Post on 20-Jan-2016

101 views

Category:

Documents


2 download

DESCRIPTION

Algoritma dan Struktur Data Lanjut. Ramos Somya. pengenalan graph. Defenisi Graf. Suatu graf G terdiri dari 2 himpunan yang berhingga , yaitu himpunan titik-titik tidak kosong ( simbol V(G)) dan himpunan garis-garis ( simbol E(G)). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: pengenalan  graph

Algoritma dan Struktur Data Lanjut

Page 2: pengenalan  graph

Defenisi Graf

Suatu graf G terdiri dari 2 himpunan yang berhingga, yaitu himpunan titik-titik tidak kosong (simbol V(G)) dan himpunan garis-garis (simbol E(G)).

Setiap garis berhubungan dengan satu atau dua titik. Titik-titik tersebut dinamakan Titik Ujung. Garis yang hanya berhubungan dengan satu titik ujung disebut Loop. Dua garis berbeda yang menghubungkan titik yang sama disebut Garis Paralel.

Page 3: pengenalan  graph

Defenisi Graf (Lanjut)

Kadang-kadang suatu graf dinyatakan dengan gambar. Gambar suatu graf G terdiri dari himpunan titik-titik V(G), himpunan garis-garis E(G) yang menghubungkan titik-titik tersebut (beserta arah garis pada graf berarah), dan label pada garisnya (jika ada). Panjang garis, kelengkungan garis, dan letak titik tidak berpengaruh dalam suatu graf.

Page 4: pengenalan  graph

Contoh

Ada 7 kota (A,...,G) yang beberapa di antaranya dapat dihubungkan secara langsung dengan jalan darat. Hubungan-hubungan langsung yang dapat dilakukan adalah sebagai berikut:

A dengan B dan D

B dengan D

C dengan B

E dengan F

Buatlah graf yang menunjukkan keadaan transportasi di 7 kota tersebut!

Page 5: pengenalan  graph

Contoh (Lanjut)

C

D

e1

e2

e3

e4

e5 GA

B

E

F

Page 6: pengenalan  graph

Penjelasan Contoh

Dalam graf tersebut e1 berhubungan dengan titik A dan B (keduanya disebut titik ujung e1). Titik A dan B dikatakan berhubungan, sedangkan titik A dan C tidak berhubungan karena tidak ada garis yang menghubungkannya secara langsung.

Titik G adalah titik terasing karena tidak ada garis yang berhubungan dengan G. dalam interpretasinya, kota G merupakan kota yang terasing karena tidak dapat dikunjungi dari kota-kota lain dengan jalan darat.

Page 7: pengenalan  graph

Penggunaan Graf (1): Shortest Path

Graf yang digunakan adalah graf berbobot : setiap sisinya diberikan nilai atau bobot.

Bobot menyatakan jarak antar kota atau waktu tempuh.

Misal ada kota A dan B, maka persoalan lintasan terpendek di sini adalah menentukan jarak terpendek atau waktu tersingkat dari kota A ke B.

Page 8: pengenalan  graph

Contoh

Misal ada graf G = (V, E) dan sebuah simpul/vertex awal a. Tentukan lintasan terpendek dari a ke setiap simpul lainnya di dalam graf G!

Page 9: pengenalan  graph

Gambar-nya:

1 2

3 4

5

6

20 10

4015

15 3

20 35

30

45

50 10

Page 10: pengenalan  graph

Lintasan vertex a ke semua vertex lain

Vertex Asal Vertex Tujuan

Lintasan Terpendek

Jarak

1 2 1, 3, 4, 2 45

1 3 1, 3 10

1 4 1, 3, 4 25

1 5 1, 5 45

1 6 Tidak ada -

Page 11: pengenalan  graph

Graf (Java)

Dengan Java Graf dapat dibuat menjadi sebuah bentuk objek.

Objek yang dapat kita bentuk adalah vertexnya. Lalu atribut-atribut yang dapat dimasukan ke dalam objek tersebut antara lain label, node-node yang berhubungan dengan vertex tersebut, dan jaraknya.

Karena setiap vertex dapat terhubung dengan banyak vertex, maka digunakan kelas Vector (bawaan java).

Page 12: pengenalan  graph

Langkah-langkah

Buat sebuah projek java application dengan nama GrafSederhana.

Kelas-kelas yang harus dibuat:Main (Utama)VertexXNode

Page 13: pengenalan  graph

Kelas Main

Dibuat langsung saat generate projek

Page 14: pengenalan  graph

Kelas XNode

Tambahkan atribut:

private Vertex vertex;

private int panjang;

Buat konstruktor XNode(Vertex vertex, int panjang)

Di dalam konstruktor beri perintah untuk inisialisasi atribut vertex dan panjang.

Tambahkan fungsi getVertex() dan getPanjang().

Page 15: pengenalan  graph

Kelas Vertex

Tambahkan atribut:

private String label.

private Vector<XNode> xnodes.

Buat konstruktor Vertex(String label)

Di dalam konstruktor beri perintah untuk inisialisasi atribut label dan xnodes.

Tambahkan fungsi getLabel() dan getXNode().

Page 16: pengenalan  graph

Coba Project

Di kelas main, buat sebuah objek vector dengan nama listV.

Setelah itu, tambahkan beberapa objek vertex ke dalamnya.

Kemudian buat perulangan untuk mencetak label dari vertex-vertex yang sudah dimasukkan ke dalam listV.

Page 17: pengenalan  graph

Latihan

Tambahkan sebuah method untuk membuat relasi antar vertex beserta dengan panjang edge antara vertex yang berelasi tersebut.

Misal terdapat himpunan vertex: A, B, C, D,E Relasi vertex:

A dan B dengan panjang edge 3 A dan D dengan panjang edge 5

Tampilkan relasi vertex

yang terjadi tersebut

dengan panjangnya:

Page 18: pengenalan  graph

See You Next WeekGod Bless