inf202: struktur data graph & persiapan uas€¦ · v1 v2 v4 v5 v3 v terdiri dari v1, v2, …,...

28
Pertemuan 15: INF202: Struktur Data GRAPH & Persiapan UAS Dosen: Wayan Suparta, PhD

Upload: others

Post on 31-Oct-2020

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Pertemuan 15:

INF202: Struktur Data

GRAPH & Persiapan UAS

Dosen: Wayan Suparta, PhD

Page 2: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Informasi UAS dan TUGAS:

• Bahan UAS (close book): 100 menit

• Tugas 3:

1. Topik individu yang telah dipilih melalui undian.

2. Kumpulkan pada Waktu UAS (20 Mei 2019) dimana

softcopy (EDMODO) dan print Hardcopy.

• Ujian Praktek (salah satu):

1. STACK

2. QUEUE

3. TREE

• Ujian Teori: 1. Stack (Tumpukan)

2. Queue (Antrian)

3. Linked list (Senarai Berantai)

4. Tree (Pohon)

5. Graf

6. Ada penggalan program

Page 3: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

SOAL LATIHAN UAS 1. Buat fungsi menambah simpul/node dalam linked-list.

2. Buat fungsi menghapus data dalam antrian.

3. Buat fungsi preorder dalam pohon biner.

4. Tentukan traversal tree dari tree:

(a). A + B - ( C - D)^E + (F * G)

(b). A * B + C + D * (E + F) + (G - H / I) ^ J

5. Gambarkan pohon binernya dari traversal dari tree:

(a). Pre-Order: S E L A N G M U

(b). Post-Order: CENTURY

6. Gambarkan pohon binernya dari huruf/bilangan:

(a). DEWI ABG METU LORONG

(b). 90, 45, 55, 50, 40, 50, 60, 70, 40, 35, 30, 20, 80, 75, 85

Page 4: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

7. Implementasikan sebuah single linked list yang dapat

merepresentasikan data mahasiswa berupa NIM, Nama,

Alamat dan No HP. Buatlah fungsi-fungsi untuk menelusuri,

menambah simpul dan menghapus simpul.

8. Buat program untuk menyiapkan array dua dimensi yang

akan digunakan untuk mengisi Stack S sebanyak 5 elemen,

bertipe karakter.

9. Buatlah algoritma yang dapat menampilkan data antrian

pasien masuk rumah sakit.

10. Buatlah algoritma yang dapat menyisipkan data di belakang

dalam model linked list seperti antrian mobil di kapal

penyeberangan (ferry). Penyisipan data adalah serentak.

11. Sebuah graf dengan 6 simpul, berapakah minimum dan

maksimum jumlah busur?

12. Jika ada 5 kota yang saling berdekatan dan terhubung jalur

darat, berapa jalur lintasan terpendek yang dapat dilakukan.

Page 5: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

13. Buatlah program untuk menyetor simpanan ke bank dengan

menu pilihan: 1. Masukkan Antrian (nama, nomer rekening

dan jumlah setoran), 2. Proses Antrian, 3. Tampilkan Antrian

dan 4. EXIT. Input data adalah serentak.

14. Buatlah program yang dapat menentukan Pre-Order dan In-

Order jika nilai Post-Ordernya: 20 70 90 60 40 30 50

15. Buatlah program untuk menyimpan balok-balok kayu dalam

sebuah gudang berukuran panjang = 5 m, lebar 30 cm dan

tinggi 540 cm. Program harus dapat menampilkan menu : 1.

Masukkan data balok (kode balok, jenis balok dan jumlah

balok), 2. Proses, 3. View Balok dan 4. EXIT.

16. Buat program untuk (1) menyimpan, (2) menghapus dan

(3) cetak elemen dalam stack berupa huruf-huruf. Entry data

adalah secara serentak.

17. Ubahlah notasi aritmatika PREFIX berikut ke notasi

POSTFIX: + * A / B + C – D E F

Page 6: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

GRAPH

• Graph adalah kumpulan dari simpul dan busur

yang secara matematis dinyatakan sebagai:

G = (V, E)

Dimana

G = Graph

V = Vertex, atau Simpul, atau Node, atau Titik

E = Edge, atau Busur, atau arc

Page 7: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Contoh graph :

B

A C

D E

Gb. 1. Undirected graph

vertex

edge

e1 e3 e4

e7 e5 e2

e6

v1

v2

v4 v5

v3

V terdiri dari v1, v2, …, v5

E terdiri dari e1, e2, … , e7

• Sebuah graph mungkin hanya terdiri dari satu simpul

• Sebuah graph mungkin mempunyai simpul yang tak terhubung dengan simpul yang lain

• Sebuah graph mungkin semua simpulnya saling berhubungan

Ciri-Ciri Graph

Gb. 2. Ciri graph

Page 8: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Graph Berarah dan Graph Tak Berarah

B

A C

D E

B

A C

D E

Gb. 3. Directed graph Gb. 4. Undirected graph

e1 e3

e4

e7 e5 e2

e6

v1

v2

v4 v5

v3 v1

v2

v3

v5 v4

e1

e2

e3

e4

e5

e6

e7

e8 e9

e10

Dapat dilihat dari bentuk busur yang artinya urutan penyebutan pasangan 2

simpul.

Page 9: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

• Graph tak berarah (undirected graph atau non-directed graph) – Urutan simpul dalam sebuah busur tidak dipentingkan.

Misal busur e1 dapat disebut busur AB atau BA

• Graph berarah (directed graph) – Urutan simpul mempunyai arti. Misal busur AB adalah

e1 sedangkan busur BA adalah e8.

• Graph Berbobot (Weighted Graph) – Jika setiap busur mempunyai nilai yang menyatakan

hubungan antara 2 buah simpul, maka busur tersebut dinyatakan memiliki bobot.

– Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.

Page 10: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Graph Berbobot :

B

A C

D E

B

A C

D E

Gb. 5. Directed graph Gb. 6. Undirected graph

5 3

12

6 8 4

3

v1

v2

v4 v5

v3 v1

v2

v3

v5 v4

5

e2

3

12

8

3

6

4 7

10

Panjang busur (atau bobot) mungkin tidak digambarkan secara panjang

yang proposional dengan bobotnya. Misal bobot 5 digambarkan lebih

panjang dari 7.

Page 11: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Istilah pada graph

1. Incident

Jika e merupakan busur dengan simpul-simpulnya adalah v dan w yang ditulis e=(v,w), maka v dan w disebut “terletak” pada e, dan e disebut incident dengan v dan w.

2. Degree (derajat), indegree, dan outdegree

Degree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut.

Indegree sebuah simpul pada graph berarah adalah jumlah

busur yang kepalanya incident dengan simpul tersebut, atau

jumlah busur yang “masuk” atau menuju simpul tersebut.

Outdegree sebuah simpul pada graph berarah adalah jumlah

busur yang ekornya incident dengan simpul tersebut, atau

jumlah busur yang “keluar” atau berasal dari simpul tersebut.

Page 12: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

3. Adjacent

Pada graph tidah berarah, 2 buah simpul disebut

adjacent bila ada busur yang menghubungkan

kedua simpul tersebut. Simpul v dan w disebut

adjacent.

Pada graph berarah, simpul v disebut adjacent

dengan simpul w bila ada busur dari w ke v.

w e

v

v

e w

Gb. 7. Adjacent tak berarah

Gb. 8. Adjacent berarah

Predecessor

Successor

Page 13: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

4. Successor dan Predecessor

Pada graph berarah, bila simpul v adjacent dengan

simpul w, maka simpul v adalah successor simpul

w, dan simpul w adalah predecessor dari simpul v.

5. Path

Sebuah path adalah serangkaian simpul-simpul

yang berbeda, yang adjacent secara berturut-turut

dari simpul satu ke simpul berikutnya.

1

4 3

2

4

2

4

2

4

2 1

3

1

3

1

3

Gb. 9. Path berarah dan tak berarah

Page 14: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Representasi Graph dalam bentuk

matrix

• Adjacency Matrix Graph tak berarah

B

A C

D E

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

A B

A

0

B

C

1 2 4 3

C D E

D

E

0

1

2

4

3

Urut abjad

Degree simpul : 3

Gb. 10. Graf tak berarah

Page 15: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Representasi Graph dalam bentuk

matrix

• Adjacency Matrix Graph berarah

Gb. 11. Graph berarah

0 1 0 1 0

1 0 1 0 1

0 1 0 1 1

0 0 1 0 1

0 0 0 0 0

A B

A

0

B

C

1 2 4 3

C D E

D

E

0

1

2

4

3

B

A C

D E

ke

dari

out

in

(Baris)

(kolom)

Page 16: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

• Adjency List graph tak berarah

• Digambarkan sebagai sebuah simpul yang

memiliki 2 pointer.

• Simpul vertex : Simpul edge :

Representasi Graph dalam bentuk

Linked List

info info

Menunjuk ke simpul

vertex berikutnya,

dalam untaian simpul

yang ada

Menunjuk ke simpul

edge pertama Menunjuk ke

simpul edge

berikutnya, bila

masih ada

Menunjuk ke simpul

vertex tujuan yang

berhubungan dengan

simpul vertex asal

left right left right

Page 17: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Contoh : untuk vertex A, memiliki 2 edge yang

terhubung yaitu e1 dan e2.

A

C

D

B

E

e2 e1 B

A C

D E

e1 e3

e4

e7 e5 e2

e6

Urut abjad

Gb. 12. Graph tak berarah

Page 18: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

1. Gambar graph dapat disusun dengan lebih sederhana:

A

C

D

B

E

D

A

B

A

B

C E

D E

C

C D

B

A C

D E

B

E

A

C

D

B

E

D

A

B

C

E

C

B

E

B

A C

D E

Gb. 13. Adjency List graph berarah

Page 19: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Graph berarah dan berbobot

B

A C

D E

5

3

2

14

12

6

7

13

0 5 0 2 0

6 0 3 0 0

0 0 0 0 9

0 0 13 0 7

0 14 0 0 0

A

A

0

B

C

1 2 4 3

D

E

0

1

2

4

3

B C D E

Perhatikan pemilihan nilai 0. Gb. 14. Graph berbobot

Page 20: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

• Define struct untuk sebuah simpul yang dapat

digunakan sebagai vertex maupun edge.

• Deklarasinya:

typedef struct tipeS

{

tipeS *Left;

int INFO;

tipeS *Right;

};

tipeS *FIRST, *PVertex, *PEdge;

Penyelesaian kasus Graph

Gambar 14:

• Define simpul untuk vertex dan

edge

• Mengidentifikasi Simpul pertama

sebagai vertex yang pertama

• Tambahkan vertex sisanya

• Tambahkan edge pada masing-

masing vertex yang telah terbentuk

• Tampilkan representasi graph

berikut bobotnya

Page 21: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

#include<stdio.h>

#include<iostream>

#include<conio.h>

using namespace std;

typedef struct tipeS {

struct tipeS *Left;

int INFO;

struct tipeS *Right;

};

typedef struct tipeS simpul;

simpul *P,*FIRST,*LAST,*PVertex,*PEdge,*Q,*R,*S;

simpul *PointS[5];

int main() {

int A[5][5] = {0,5,0,2,0, 6,0,3,0,0, 0,0,0,0,9, 0,0,12,0,7,

0,14,0,0,0};

char NmS[6] = "ABCDE";

int I, J;

//Simpul Vertex yang pertama

I=0;J=0;

P=new simpul;

P->INFO = NmS[0];

FIRST = P; LAST = P;

P->Left = NULL; P->Right = NULL;

PointS[0] = P;

printf("\n%c", P->INFO);

printf(" Alamat %d ", PointS[0]);

printf("\n");

//Simpul Vertex yang berikutnya

for (I=1;I<=4;I++) {

P = new simpul;

P->INFO = NmS[I];

LAST->Left = P;

LAST = LAST->Left;

P->Left = NULL;

P->Right = NULL;

PointS[I] = P;

printf("\n %c ", P->INFO);

printf("Alamat %d \n", PointS[I]);

}

Contoh 1: Dari Gambar 5*

Page 22: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

//Simpu2 Edge untuk semua Vertex Q = FIRST; for (I=0; I<=4; I++) { R=Q; printf("Vertex %c ...", Q->INFO); for (J=0; J<=4; J++) { if(A[I][J]!=0) { P = new simpul; P->INFO = A[I][J]; R->Right = P; P->Left = PointS[J]; printf("berhubungan dengan %c: ", P->Left->INFO); printf("bobot %d;", P->INFO); P->Right = NULL; R = P; } } printf("\n"); Q = Q->Left; } }

Outputnya:

Page 23: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Contoh 2: Hitung Jarak Antar Titik

B

A C

D E

5 3

2

14

12

6

7

13

Carilah jarak terpendek dari A ke E.

Algoritma: 1. Menentukan jumlah simpul

(vertex)

2. Pembentukan garis

3. Menentukan panjang busur

4. Hitung jarak-jarak dari A ke titik E.

Output:

(1)

(2)

(3)

(4)

Page 24: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Programnya adalah

#include <iostream>

#include <string>

using namespace std;

class graf{

public :

void masukan();

void keluaran();

private:

char kata1; //A

char kata2; //B

char kata3; //C

char kata4; //D

char kata5; //E

int a, b, c, d, e, f, g, h, i, j;

};

void graf::masukan (){

cout<<"Hitung Jarak pada Graf dengan 5

Titik Simpul"<<endl<<endl;

cout<<" Titik 1: ";cin>>kata1;

cout<<" Titik 2: ";cin>>kata2;

cout<<" Titik 3: ";cin>>kata3;

cout<<" Titik 4: ";cin>>kata4;

cout<<" Titik 5: ";cin>>kata5; cout<<endl;

cout<<"Garis yang dapat dibentuk: "<<endl;

cout<<kata1<<kata2<<", "; //AB = a

cout<<kata2<<kata3<<", "; //BC = b

cout<<kata3<<kata5<<", "; //CE = c

cout<<kata4<<kata3<<", "; //DC = d

cout<<kata4<<kata5<<“,”; //DE = e

cout<<kata1<<kata4<<", "; //AD = f

cout<<kata2<<kata1<<", "; //BA = g

cout<<kata5<<kata2<<endl<<endl; //EB = h

Page 25: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Sambungan ….#1 cout<<"Busur simpul "<<kata1<<" dengan "<<kata2<<" : ";cin>>a;

cout<<"Busur simpul "<<kata2<<" dengan "<<kata3<<" : ";cin>>b;

cout<<"Busur simpul "<<kata3<<" dengan "<<kata5<<" : ";cin>>c;

cout<<"Busur simpul "<<kata4<<" dengan "<<kata3<<" : ";cin>>d;

cout<<"Busur simpul "<<kata4<<" dengan "<<kata5<<" : ";cin>>e;

cout<<"Busur simpul "<<kata1<<" dengan "<<kata4<<" : ";cin>>f;

cout<<"Busur simpul "<<kata2<<" dengan "<<kata1<<" : ";cin>>g;

cout<<"Busur simpul "<<kata5<<" dengan "<<kata2<<" : ";cin>>h;

}

void graf::keluaran() {

cout<<"Jadi panjang jarak totalnya = "<<a+b+c+d+e+f+g+h<<endl<<endl;

cout<<"Mencari jalur terpendek dari "<<kata1<<" menuju "<<kata4<<" : "<<endl;

int j, k, l;

j=e+d; //Alternatif 1

k=a+b+c; //Alternatif 2

l=f+d+c; //Alternatif 3

cout<<"Alternatif Pertama : "<<kata1<<" -> "<<kata4<<" -> "<<kata5<<" = "<<kata1<<kata4<<" +

"<<kata4<<kata5<< " Jarak : "<<j<<endl;

cout<<"Alternatif Kedua : "<<kata1<<" -> "<<kata2<<" -> "<<kata3<<" -> "<<kata5<<" =

"<<kata1<<kata2<<" + "<<kata2<<kata3<<" + "<<kata3<<kata5<< "Jarak : "<<k<<endl;

cout<<"Alternatif Ketiga : "<<kata1<<" -> "<<kata4<<" -> "<<kata3<<" -> "<<kata5<<" =

"<<kata1<<kata4<<" + "<<kata4<<kata3<<" + "<<kata3<<kata5<<" Jarak : "<<l<<endl;

Page 26: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

Sambungan ….#2

//Pilihan jalur/laluan

if (j<e && j<f) cout<<"JALUR YANG DIPILIH ADALAH YANG JARAKNYA " <<j;

if (k<a && k<b && k<c) cout<<"JALUR YANG DIPILIH ADALAH YANG JARAKNYA " <<k;

if (l<c && l<d && n<f) cout<<"JALUR YANG DIPILIH ADALAH YANG JARAKNYA " <<l;

}

int main(int argc, char *argv[])

{

graf x;

x.masukan(); cout<<endl;

x.keluaran(); cout<<endl;

system("PAUSE");

return EXIT_SUCCESS;

return 0;

}

Page 27: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

LATIHAN 20

1. Perhatikan graph berarah berikut:

2. Seperti soal nomer 1, namun untuk graph yang tidak berarah.

3. Ada 7 kota (A,…,G) yang diantaranya dihubungkan langsung dengan

jalan darat. Hubungan antar kota didefinisikan sebagai A terhubung dg B

dan D; B terhubung dg D; C terhubung dg B, dan E terhubung dg F.

Buatlah graf yang menunjukkan keadaan transportasi di 7 kota tersebut !

P

R U

S T

4 5

3

20

10

8

9

15

Q 2

a. Carilah bobot graph tersebut

b. Buat linked listnya

c. Susun ke dalam matrik berbobot

d. Buatlah program graphnya yang dapat menampilkan keterhubungan antar simpul itu.

Page 28: INF202: Struktur Data GRAPH & Persiapan UAS€¦ · v1 v2 v4 v5 v3 V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 • Sebuah graph mungkin hanya terdiri dari satu

4. Gambar di bawah menyatakan peta kota A..G dan jalan-jalan

yang menghubungkan kota-kota tersebut. Seorang salesman akan

mengunjungi tiap kota masing-masing 1 kali dari kota F kembali

lagi ke kota F. Carilahlah (buat program) rute perjalanan yang

harus dilalui salesman tersebut.

5. Dari soal 4 di atas, tentukan path tak berarah terpendek dan

terpanjang dari titik E ke titik B !

A

B C

D

E F

G

4

12

6

3 10

5 5

13

7 9

8