Anda di halaman 1dari 186

PART 1

Dasar-Dasar
Teori Graf

Dosen : Ahmad Apandi, ST


Teori Graf

• Teori Graf mulai dikenal saat matematikawan kebangsaan Swiss


bernama Leonhard Euler, yang berhasil mengungkapkan Misteri
Jembatan Koningsberg tahun 1736.

• Di kota Koningsberg mengalir sungai Pregel, di sungai mengalir 2


pulau dan diantaranya terdapat jembatan yang menghubungkan,
jumlah jembatan tersebut sebanyak 7 buah.
Teori Graf

Gambar : Kota Koningsberg mengalir sungai Pregel


Teori Graf

Gambar : (a) Jembatan Konigsberg, dan (b) graf yang merepresentasikan jembatan Konisberg
Definisi Graf

• Graf adalah bagan yang memuat informasi yang diinterprestasikan


secara tepat.

• Graf digunakan untuk merepresentasikan objek-objek diskrit dan


hubungan antara objek-objek tersebut.

• Tujuan graf adalah untuk visualisasi objek agar mudah dimengerti.


Definisi Graf Secara Matematis
Istilah-istilah pada Graf
• Busur ganda (multiple edge) yaitu suatu busur yang menghubungkan
simpul yang sama
• Ketetanggaan (adjacent) : dua buah simpul dikatakan
bertetangga, jika terdapat busur e dengan ujung awal dan akhir
adalah v1 dan v2. ( e=(v1,v2) )
• Kehadiran (incident) : suatu busur dikatakan hadir pada suatu
simpul, jika busur tersebut menghubungkan simpul tersebut.
Istilah-istilah pada Graf

• Gelang (loop) yaitu busur yang berawal dan berakhir pada simpul
yang sama
• Derajat (degree) yaitu banyaknya busur yang ada pada suatu simpul v.
( d(v) )
• n = |V| = kardinalitas simpul
• m = |E| = kardinalitas busur
Jenis – jenis Graf

• Graf dapat dikelompokkan menjadi beberapa kategori (jenis)


bergantung pada sudut pandang pengelompokannya.
Pengelompokan graf dapat dipandang berdasarkan :
– Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf

– Berdasarkan jumlah simpul pada suatu graf

– Berdasarkan orientasi arah pada sisi


Jenis – jenis Graf
• Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf :
– Graf sederhana (simple graph).

Graf yang tidak mengandung gelang maupun sisi-ganda dinamakan graf


sederhana.

– Graf tak-sederhana(unsimple-graph).

Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-sederhana
(unsimple graph). Ada dua macam graf tak-sederhana, yaitu graf
ganda(multigraph) dan graf semu(pseudograph).
Jenis – jenis Graf

Gambar : Tiga buah graf (a) graf sederhana, (b) graf ganda, dan (c) graf semu
Jenis – jenis Graf

• Berdasarkan jumlah simpul pada suatu graf :


 Graf berhingga(limited graph)

Graf berhingga adalah graf yang jumlah simpulnya, n, berhingga.

 Graf tak-berhingga(unlimited graph)

Graf yang jumlah simpulnya, n, tidak berhingga.


Jenis – jenis Graf

Gambar : Graf tidak berhingga


Jenis – jenis Graf

• Berdasarkan orientasi arah pada sisi :


 Graf tak-berarah(undirected graph)

Graf yang sisinya tidak mempunyai orientasi arah

 Graf berarah(directed graphatau digraph)

Graf yang setiap sisinya diberikan orientasi arah


Jenis – jenis Graf

Gambar : Graf berarah


Subgraf dan Komplemen Subgraf

• Misalkan G= (V, E) adalah sebuah Graf. G1= (V1, E1) adalah subgraf dari
G jika V1 ⊆ V dan E1 ⊆ E.

• Komplemen dari subgraf G1 terhadap graf G adalah graf G2= (V2, E2)
sedemikian sehingga E2= E- E1dan V2adalah himpunan simpul yang
anggota-anggota E2 bersisian dengannya.
Subgraf dan Komplemen Subgraf
Derajat (Degree)

• Derajat suatu simpul d (v) adalah banyaknya ruas yang


menghubungkan suatu simpul.

• Sedangkan Derajat Graf G adalah jumlah derajat semua simpul Graf G.


Derajat (Degree)
Operasi Graf
Contoh Operasi Graf

• Diketahui
Operasi Gabungan dan Irisan
Operasi Selisih
Penjumlahan Ring G1 dan G2
Dekomposisi
Penghapusan (Deletion)
Penghapusan (Deletion)
PART 2

GRAF TIDAK BERARAH

Dosen : Ahmad Apandi, ST


Jenis Graf (berdasarkan orientasi arah)

 Graf tak berarah

 Graf berarah
Graf tak berarah

Graf yang sisinya tidak mempunyai orientasi arah disebut


graf tak berarah. Pada graf tak – berarah, urutan pasangan
simpul yang dihubungkan oleh sisi tidak di perhatikan. Jadi
(u,v) = (v,u) adalah sisi yang sama.
Graf Berarah

Graf yang setiap sisinya diberikan orientasi arah. Sisi berarah


disebut sebagai arch (busur). Pada graf berarah, (u,v) dan (v,u)
menyatakan dua buah busur yang berbeda. Untuk simpul (u,v),
simpul u dinamakan simpul asal dan simpul v disebut sebagai
Simpul Terminal.
Graf tak berarah

• Pada Graf tak berarah terdapat graf lengkap (complete graph)


• Graf Lengkap (Complete Graph) dengan n titik (simbol Kn)
adalah graf sederhana dengan n titik, di mana setiap 2 titik
berbeda dihubungkan dengan suatu garis.
• Banyaknya garis dalam suatu graf lengkap dengan n titik adalah
n(n-1)/2
Graf tak berarah

Contoh soal :

Gambarlah K2, K3, K4, K5, !


Graf tak berarah
Graf tak berarah

• Pada Graf tak berarah terdapat graf berlabel

• Graf G disebut berlabel jika ruas dan atau simpulnya dikaitkan dengan suatu
besaran tertentu. Khususnya jika setiap ruas e dari G dikaitkan dengan suatu
bilangan non negatif d(e), maka d(e) disebut bobot atau panjang dari ruas e.

• Bobot suatu garis dapat mewakili “jarak”, “biaya”, “panjang”, “kapasitas”,


dll.
Representasi Graf tak berarah

Matriks Ketetanggaan (adjacency matrix)

A = [aij],
1, jika simpul i dan j bertetangga
aij = {
0, jika simpul i dan j tidak bertetangga
Representasi Graf tak berarah

Matriks Ketetanggaan (adjacency matrix)


Representasi Graf tak berarah

Matriks Bersisian (incidency matrix)

A = [aij],

1, jika simpul i bersisian dengan sisi j


aij = {
0, jika simpul i tidak bersisian dengan sisi j
Representasi Graf tak berarah

Matriks Bersisian (incidency matrix)


Representasi Graf tak berarah

Senarai Ketetanggaan (adjacency list)


Kasus pada graf tak berarah

 Masalah Lintasan Euler

 Masalah Pedagang Keliling (Travelling Salesman Problem)


Lintasan Euler

• Lintasan Euler ialah lintasan yang melalui masing-masing sisi di dalam


graf tepat satu kali.

• Sirkuit Euler ialah sirkuit yang melewati masing-masing sisi tepat satu
kali

• Graf yang mempunyai sirkuit Euler disebut graf Euler (Eulerian graph).
Graf yang mempunyai lintasan Euler dinamakan juga graf semi-Euler
(semi-Eulerian graph).
Lintasan Euler (Graf Semi Euler)

Lintasan Euler pada graf Gambar tsb adalah :


1, 2, 3, 4, 1, 3
Sirkuit Euler (Graf Euler)

Sirkuit Euler pada graf Gambar tsb adalah :


1, 2, 3, 4, 7, 3, 5, 7, 6, 5, 2, 6, 1
Contoh bukan graf euler maupun semi euler

Tidak mempunyai lintasan maupun sirkuit


Euler
Lintasan dan Sirkuit Hamilton

• Lintasan Hamilton ialah lintasan yang melalui tiap simpul di dalam graf
tepat satu kali.

• Sirkuit Hamilton ialah sirkuit yang melalui tiap simpul di dalam graf
tepat satu kali, kecuali simpul asal (sekaligus simpul akhir) yang dilalui
dua kali.

• Graf yang memiliki sirkuit Hamilton dinamakan graf Hamilton, sedangkan


graf yang hanya memiliki lintasan Hamilton disebut graf semi-Hamilton.
Lintasan dan Sirkuit Hamilton

(a) graf yang memiliki lintasan Hamilton

(misal: 3, 2, 1, 4)

(b) graf yang memiliki lintasan Hamilton (1, 2, 3, 4, 1)

(c) graf yang tidak memiliki lintasan maupun sirkuit

Hamilton
Perbedaan Sirkuit Euler dengan Sirkuit Hamilton

 Dalam Sirkuit Euler semua garis harus dilalui tepat satu


kali, sedangkan semua titiknya boleh dikunjungi lebih dari
sekali.

 Dalam Sirkuit Hamilton semua titiknya harus dikunjungi


tepat satu kali dan tidak harus melalui semua garis.
Travelling Salesman Problem (TSP)

 TSP adalah problem untuk mengoptimasi dan menemukan perjalanan (tour) yang paling
terpendek.
 TSP adalah problem untuk menentukan urutan dari sejumlah kota yang harus dilalui oleh
salesman, setiap kota hanya boleh dilalui satu kali dalam perjalanannya, dan perjalanan
tersebut harus berakhir pada kota keberangkatannya dimana salesman tersebut memulai
perjalananya, dengan jarak antara setiap kota satu dengan kota lainnya sudah diketahui.
 Salesman tersebut harus meminimalkan pengeluaran biaya, dan jarak yang harus ditempuh
untuk perjalanannya tersebut.
Algoritma Exhaustive pada TSP

Algoritma exhaustive, yaitu dengan mencari semua kombinasi


yang mungkin terjadi, kemudian memilih kombinasi perjalanan
dengan jarak terdekat, algoritma ini mempunyai kompleksitas
n!/2n.
Algoritma Exhaustive Search pada TSP

 Enumerasikan (list) semua sirkuit Hamilton dari graf lengkap


dengan n buah simpul.

 Hitung (evaluasi) bobot setiap sirkuit Hamilton yang


ditemukan pada langkah 1.

 Pilih sirkuit Hamilton yang mempunyai bobot paling terkecil.


Implementasi TSP pada Kota (3 Kota)

TSP dengan 3 kota (1, 2, 3) hanya mempunyai satu kemungkinan


seperti gambar dibawah ini :
Implementasi TSP pada Kota (4 Kota)

Graf tsb memiliki 4!/2(4) = 3 sirkuit Hamilton


Misalkan simpul a adalah kota tempat dimulainya
perjalanan (starting city). Enumerasikan semua
sirkuit hamilton sebagai berikut :

I1 = (a, b, c, d, a) atau (a, d, c, b, a) ==> panjang = 10 + 12 + 8 + 15 = 45


I2 = (a, c, d, b, a) atau (a, b, d, c, a) ==> panjang = 12 + 5 + 9 + 15 = 41
I3 = (a, c, b, d, a) atau (a, d, b, c, a) ==> panjang = 10 + 5 + 9 + 8 = 32
Jadi, sirkuit Hamilton terpendek adalah I3 = (a, c, b, d, a) atau (a, d, b, c, a) dengan
panjang sirkuit = 10 + 5 + 9 + 8 = 32.
Implementasi TSP pada Kota (5 Kota)

Graf tsb memiliki 5!/2(5) = 12 sirkuit Hamilton


Misalkan simpul a adalah kota tempat dimulainya
perjalanan (starting city). Enumerasikan semua
sirkuit hamilton sebagai berikut :

I1 = (1, 2, 3, 4, 5,1) atau (1, 5, 4, 3, 2,1)


I2 = (1,2,5,4,3,1) atau (1,3,4,5,2,1)
I3 = (1,2,3,5,4,1) atau (1,4,5,3,2,1 )
:
:
I12 =………………………………………
Kesimpulan TSP

 Travelling salesman problem adalah suatu permasalahan dalam


menentukan sirkuit terpendek dari suatu simpul ke seluruh simpul lain
tepat satu kali dan kembali ke simpul asal.
 Algoritma exhaustive, yaitu dengan mencari semua kombinasi yang
mungkin terjadi, kemudian memilih kombinasi perjalanan dengan jarak
terdekat, algoritma ini mempunyai kompleksitas n!/2n.
GRAF PLANAR
DAN
PEWARNAAN GRAF
 Mampu mengenali sebuah graph planar
 Mampu memberikan penyajian planar dari sebuah graph planar
 Mengenal dan memahami pewarnaan simpul pada sebuah graph
 Mampu menentukan bilangan kromatik dari sebuah graph
 Memahami pewarnaan region pada graph planar
Sebuah graf dikatakan graf planar bila graf tersebut dapat disajikan (secara
geometri) tanpa adanya ruas yang berpotongan. Sebuah graf yang
disajikan tanpa adanya ruas yang berpotongan disebut dengan penyajian
planar/map/peta. Contoh :
Graf yang termasuk planar antara lain :

 Tree / Pohon

 Kubus

 Bidang Empat

 Bidang Delapan Beraturan


Pada penyajian planar/map, dikenal istilah region. Derajat dari suatu region

adalah panjang walk batas region tersebut.

Contoh :

Region dengan batasnya gelung, maka d (r) = 1


Region dengan batasnya ruas sejajar, maka d (r) = 2
Untuk Graf Planar berlaku Formula Euler berikut :

V–E+R=2

Dimana :

V = jumlah simpul,

E = jumlah ruas,

R = jumlah region
 Pewarnaan Simpul

 Pewarnaan Region
 Pemberian warna terhadap simpul-simpul graf dimana 2 buah simpul

yang berdampingan tidak boleh mempunyai warna yang sama.

 G berwarna n artinya graf tersebut menggunakan n warna.

 Bilangan kromatis dari G =K(G) adalah jumlah minimum warna yang

dibutuhkan.
Algoritma yang dapat digunakan untuk mendapatkan bilangan kromatis dari
sebuah graf
Adapun langkah-langkahnya adalah :
1. Urutkan semua simpul berdasarkan derajatnya, dari derajar besar ke derajat kecil.

2. Ambil warna pertama (misalnya merah), warnai simpul pertama yang sudah kita urutkan

berdasarkan derajatnya tadi. Kemudian warnai simpul berikutnya yang tidak berdampingan

dengan simpul pertama tadi dengan warna yang masih sama (merah).

3. Kemudian kita lanjutkan dengan warna kedua, dan seterusnya, sampai semua simpul telah diberi

warna.
Berapakah bilangan kromatis dari pewarnaan vertex graf berikut ?
Langkah 1 :
Urutkan vertex berdasarkan derajatnya dari besar ke kecil :
E, C, A, B, D, G, F, H
Langkah 2 :
mewarnai :
Ambil warna ke-1, misalnya hijau untuk E dan A yang tersisa adalah C, B, D, G, F, H
Ambil warna ke-2, misalnya merah untuk C, H, D yang tersisa adalah B, G, F
Warna ke-3 misalnya putih, Selesai.

Sehingga bilangan kromatis graf K(G) di atas adalah 3.


Pewarnaan region dari suatu graf planar (graf bidang) G adalah suatu

pemetaan warna –warna ke region - region dari graf G sedemikian

sehingga region - region yang bertetangga mempunyai warna yang

berbeda.
Berapakah bilangan kromatis dari pewarnaan region graf berikut ?
Langkah 1 :
Urutkan region berdasarkan derajatnya dari besar ke kecil :
r6, r2, r3, r5, r4, r1
Langkah 2 :
mewarnai :
Ambil warna ke-1, misalnya biru untuk r6 yang tersisa adalah r2, r3, r5, r4, r1
Ambil warna ke-2, misalnya merah untuk r2, r4, r1 yang tersisa adalah r3, r5
Warna ke-3 misalnya putih, Selesai.

Sehingga bilangan kromatis graf K(G) di atas adalah 3.


Dari suatu permasalahan pewarnaan region pada graf bidang, bisa kita

bawa ke permasalahan pewarnaan simpul dengan membangun sebuah

graf dual dari graf bidang tersebut.


 Misal terdapat sebuah graf bidang M. Dalam setiap region dari M, pilih sebuah titik.

 Jika dua buah region mempunyai sebuah sisi bersama, maka titik-titik yang terkait dapat

dihubungkan dengan sebuah garis melalui sisi bersama tersebut.

 Garis-garis ini akan membentuk kurva. Kurva-kurva ini digambarkan sedemikian hingga

agar tidak bersilangan. Dengan demikian kurva-kurva tersebutmembentuk sebuah graf

yang disebut sebagai graf dual dari M.


Berapakah bilangan kromatis dari pewarnaan region graf berikut

menggunakan graf dual?


Bentuk Graf Dual nya terlebih dahulu
PART 4

TREE (POHON)

Dosen : Ahmad Apandi, ST


OBJECTIVE

• Mengenal bentuk graph pohon (tree) & jenis-jenisnya


• Memahami beberapa sifat graph pohon
• Memahami pengertian pohon rentangan, pohon berakar dan
pohon biner
• Mengenal beberapa masalah dalam konteks graph pohon
• Mampu membuat model masalah ke dalam bentuk masalah
DEFINISI

• Pohon (Tree) adalah graf tak-berarah terhubung yang tidak mengandung


sirkuit
DEFINISI

• Hutan (forest) adalah kumpulan pohon yang saling lepas, atau graf tidak
terhubung yang tidak mengandung sirkuit. Setiap komponen di dalam
graf terhubung tersebut adalah pohon
SIFAT – SIFAT POHON

Teorema. Misalkan G = (V, E) adalah graf tak-berarah sederhana dan jumlah simpulnya n. Maka,
semua pernyataan di bawah ini adalah ekivalen:

• G adalah pohon.
• Setiap pasang simpul di dalam G terhubung dengan lintasan tunggal.
• G terhubung dan memiliki m = n – 1 buah sisi.
• G tidak mengandung sirkuit dan memiliki m = n – 1 buah sisi.
• G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya
satu sirkuit.
• G terhubung dan semua sisinya adalah jembatan.

Teorema di atas dapat dikatakan sebagai definisi lain dari pohon.


TERMINOLOGI (1)

 Anak (child atau children) & Orangtua (parent)


• b, c, dan d adalah anak-anak simpul a,
• a adalah orangtua dari anak-anak itu
 Lintasan (path)
• Lintasan dari a ke j adalah a, b, e, j.
• Panjang lintasan dari a ke j adalah 3.
 Saudara kandung (sibling)
• f adalah saudara kandung e,
• g bukan saudara kandung e, karena orangtua mereka berbeda.
 Subgrapgh
TERMINOLOGI (2)
 Derajat (degree)
• Derajat sebuah simpul adalah jumlah subgraph(atau jumlah anak) pada simpul
tersebut.
• Deg(a)= 3, Deg(b)= 2, Deg(d)= 1 dan Deg(c)= 0.
• Derajat maksimum dari semua simpul merupakan derajat pohon itu sendiri. Pohon di
samping berderajat 3
 Daun (leaf)
Simpul yang berderajat nol (atau tidak mempunyai anak) disebut daun. Simpul h, i, j, f,
c, l, dan m adalah daun.
 Simpul Dalam (internal nodes)
Simpul yang mempunyai anak disebut simpul dalam. Simpul b, d, e, g, dan k adalah
simpul dalam.
TERMINOLOGI (3)
 Aras (level) atau Tingkat

 Tinggi (height) atau Kedalaman (depth)


Aras maksimum dari suatu pohon disebut tinggi atau kedalaman pohon tersebut.
Pohon di atas mempunyai tinggi 4
POHON MERENTANG (SPANNING TREE)

 Pohon merentang dari graf terhubung adalah subgraph merentang yang


berupa pohon
 Pohon merentang diperoleh dengan memutus sirkuit di dalam graf

 Setiap graf terhubung mempunyai paling sedikit satu buah pohon


merentang
POHON BERAKAR (ROOTED TREE)
 Definisi : Pohon yang satu buah simpulnya diperlakukan sebagai akar
dan sisi-sisinya diberi arah sehingga menjadi graf berarah
 Contoh:

 Tanda panah pada tree bisa dihilangkan


POHON BINER (BINARY TREE)
 Pohon biner Adalah pohon yang maksimum memiliki 2 cabang

 Pohon Biner penuh adalah pohon biner yang semua cabangnya terisi
PEMODELAN MASALAH GRAF POHON

 Masalah Pohon Rentangan Minimal (Minimum Spanning Tree)


 Penyelesaian Masalah Pohon Rentangan Minimal
menggunakan Algoritma Solin dan Algoritma Kruskal
 Penerapan Pohon pada Sintaksis Kalimat
MINIMUM SPANNING TREE (MST)

 Graf terhubung-berbobot mungkin mempunyai lebih dari 1


pohon merentang

 Pohon rentang yang berbobot minimum – dinamakan pohon


merentang minimum (minimum spanning tree)

 Untuk mendapatkan Minimum Spanning Tree, dapat


digunakan algoritma : Algoritma Solin & Algoritma Kruskal
MINIMUM SPANNING TREE (MST)

 Contoh
Ini adalah graf berbobot awal. Angka-
angka dekat garis penghubung/ruas
adalah bobotnya. Nilai bobot dari Graf
tesebut adalah : 86

 Kita akan mencari MST dengan menggunakan Algoritma Solin dan


Kruskal untuk Graf diatas.
ALGORITMA SOLIN

 Urutkan ruas dari Graf G menurut bobotnya, dari besar ke kecil.

 Lakukan penghapusan ruas berdasarkan urutan yang sudah dilakukan,


dengan ketentuan bahwa penghapusan ruas tersebut tidak
menyebabkan graf menjadi tidak terhubung atau membentuk sirkuit.
ALGORITMA KRUSKAL

 Urutkan ruas dari G menurut bobotnya, dari kecil ke besar.

 Lakukan penambahan ruas berdasarkan urutan yang sudah dilakukan,


dengan ketentuan bahwa penambahan ruas tersebut tidak menyebabkan
adanya sirkuit.
IMPLEMENTASI POHON BINER

Untuk menyajikan pohon binar, simpul akar adalah simpul yang


digambar pada bagian paling atas. Sedangkan suksesor kiri (left
successor) digambarkan sebagai garis ke kiri bawah dan
suksesor kanan (right successor) sebagai garis ke kanan bawah.
MEMBUAT POHON BINER (1)

Contoh :
Jika kita akan membentuk pohon biner dari untai ’HKACBLJ’
maka pohon biner yang dihasilkan adalah sebagai berikut :
MEMBUAT POHON BINER (2)

Diketahui nilai-nilai sbb : 50, 32, 18, 40, 60,52, 5, 25, 70


Gambarkan Binary Tree yang dihasilkan !!!
KUNJUNGAN PADA POHON BINER (1)

Sebuah pohon biner memiliki operasi traversal yaitu suatu kunjungan pada
suatu simpul tepat satu kali. Dengan melakukan kunjungan lengkap
kita akan memperoleh urutan informasi secara linier yang tersimpan di
dalam pohon biner. Terdapat tiga jenis kunjungan pada pohon biner, yaitu :
 PREORDER
 INORDER
 POSTORDER
KUNJUNGAN PADA POHON BINER (2)
 Preorder : R, T1, T2
• kunjungi R
• kunjungi T1 secara preorder
• kunjungi T2 secara preorder
 Inorder : T1, R, T2
• kunjungi T1 secara inorder
• kunjungi R
• kunjungi T2 secara inorder
 Postorder : T1, T2, R
• kunjungi T1 secara postorder
• kunjungi T2 secara postorder
• kunjungi R
KUNJUNGAN PADA POHON BINER (3)
Contoh Soal
GRAF BERARAH / DIGRAPH

PART 5 DOSEN : AHMAD APANDI, ST


OBJECTIVE

 Mengenal konsep graph berarah


 Mampu menyajikan sebuah graph berarah
 Mampu menyajikan graph berarah dalam bentuk matriks dan dapat
mengenali graph berarah yang disajikan dalam bentuk matriks
 Mampu menyelesaikan masalah Jalur Terpendek menggunakan
algoritma Dijkstra
GRAF BERARAH (1)

Suatu graf berarah (Direct Graf/Digraf) D terdiri atas 2 himpunan :


 Himpunan V, anggotanya disebut Simpul.
 Himpunan E, merupakan himpunan pasangan terurut, yang disebut ruas
berarah atau edge.
Graf berarah ditulis sebagai D(V, E)
GRAF BERARAH (2)
GRAF BERARAH (3)
MATRIKS DAN GRAF BERARAH

 Matriks Hubung (Matriks Adjacency)


 Matriks Biner (Matriks Incidence)
 Matriks Sirkuit
MATRIKS HUBUNG (ADJACENCY)

Misalkan G adalah graf berarah yang terdiri dari n titik


tanpa garis paralel. Matriks hubung yang sesuai dengan
Graf G adalah matriks bujur sangkar n x n A=(aij)
MATRIKS HUBUNG (ADJACENCY)

Contoh soal:
Nyatakan graf dibawah ini kedalam matriks hubung.
MATRIKS HUBUNG (ADJACENCY)

Penyelesaian:
Graf tersebut terdiri dari 6 titik (v1 ... v6) sehingga matriks hubungnya adalah
matriks bujur sangkar 6 x 6. jadi bentuk matriksnya adalah :
MATRIKS BINER (INCIDENCE)

Contoh soal:
Nyatakan graf dibawah ini kedalam matriks biner.
MATRIKS BINER (INCIDENCE)

Penyelesaian: Ada 6 titik dan 8 garis dalam graf tersebut, maka


matriksnya terdiri dari 6 baris dan 8 kolom. Matriksnya adalah
sebagai berikut:
MATRIKS SIRKUIT

Misalkan G adalah graf berarah dengan e buah garis dan


q buah sirkuit atau sirkuit berarah. Sembarang arah
orientasi (searah / berlawanan dengan arah jarum jam)
diberikan ke tiap – tiap sirkuit.
MATRIKS SIRKUIT
Contoh soal :
Nyatakan Graf di bawah ini kedalam sebuah matriks sirkuit!
Jika orientasi pada s2 dan s3 sesuai dengan arah jarum jam, sedangkan pada s1 dan s4 berlawanan
dengan arah jarum jam.
MATRIKS SIRKUIT

Penyelesaian
Graf tersebut terdapat 8 garis dan terdapat 4 buah sirkuit sederhana,
yaitu :
MASALAH DENGAN GRAF BERARAH

 Masalah Jalur Terpendek (Shortest Path)


 Masalah Aliran Maksimal (Maximum Flow)
MASALAH JALUR TERPENDEK (1)

 Shortest path adalah pencarian rute atau path terpendek antara


node yang ada pada graph. Biaya (cost) yang dihasilkan adalah
minimum.
MASALAH JALUR TERPENDEK (2)

Contoh Kasus

Rute yang “terpercaya” tidak ada hambatan.


terpercaya  tidak macet
 tidak kena tilang
Seseorang mengendarai mobil dari 1 ke 7 dengan alternatif rute dan
kemungkinan untuk tidak terkena macet sbb:
MASALAH JALUR TERPENDEK (3)
Algoritma Dijkstra

Ui jarak terpendek dari titik 1 ke titik i. dij (≥ 0) panjang dari (i,j).


Label untuk titik j didefinisikan sebagai :
[ui,j] = (ui + dij, i) , dij ≥ 0
Label (Sementara, Permanen)
 Label Sementara diganti dengan label lain jika ditemukan rute lain yang lebih
pendek.
 Jika tak ada rute lain yang lebih baik, status  tetap (permanen)
Contoh

Cari Jalur Terpendek dari titik 1 ke titik 5 menggunakan algoritma


Dijkstra, buat dalam bentuk tabel !
Jawab
PART 6

DOSEN : AHMAD APANDI, ST


• Memahami apa yang dimaksud dengan algoritma

• Memahami apa yang dimaksud dengan analisis algoritma

• Memahami kriteria algoritma yang baik


• Algoritma adalah urutan langkah yang tepat dan pasti dalam
memecahkan suatu masalah secara logis.
• Cara menyelesaikan suatu proses yang terdiri atas langkah-langkah
yang terdefinisi dengan baik.
• Bisa dihitung (computable) atau bisa diukur(measurable) serta dapat
menerima input dan menghasilkan output.
• Algoritma dapat dianalisis efisiensi dan kompleksitasnya.
• Sebuah algoritma dikatakan BENAR (correct) jika algoritma tersebut
berhasil mengeluarkan output yang benar untuk semua kemungkinan
input.
• Penilaian algoritma didasarkan pada :
1. Waktu eksekusi.
2. Penggunaan memori/sumber daya.
3. Kesederhanaan dan kejelasan algoritma.
Langkah-langkah analisis algoritma adalah :

 Menentukan jenis/sifat data input.


 Mengidentifikasi abstract operation dari data input.
 Mengenalisis secara matematis untuk menentukan best case, average
case atau worst case-nya.
Faktor-faktor yang menyulitkan analisis algoritma adalah :

 Implementasi instruksi oleh bahasa pemrograman yang berbeda.


 Ketergantungan algoritma terhadap jenis data.
 Ketidakjelasan algoritma yang diimplementasikan.
Analisis algoritma tidak mudah dilakukan secara pasti, maka hanya diambil :

 Kondisi rata-rata (average case).


 Kondisi Terbaik (best case).
 Kondisi terburuk (worst case).

Waktu eksekusi dipengaruhi oleh :

 Jenis data input.


 Jumlah data input.
 Pemilihan instruksi bahasa pemrograman.
 Besaran yang dipakai untuk menerangkan model abstrak
pengukuran waktu/ruang

 Ada dua macam kompleksitas algoritma, yaitu: kompleksitas


waktu dan kompleksitas ruang.
 Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi
yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari
ukuran masukan n.

 Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh


struktur data yang terdapat di dalam algoritma sebagai fungsi
dari ukuran masukan n.
PART 7

TEKNIK
REKURSIF

DOSEN : AHMAD APANDI, ST


OBJECTIVE

 Memahami teknik rekursif

 Memahami teknik iteratif

 Mampu membedakan teknik rekursif dan teknik iteratif

 Mampu mengenali algoritma yang menggunakan teknik rekursif maupun yang

menggunakan teknik iteratif

 Mengenal beberapa penerapan teknik rekursif dalam penyusunan algoritma

 Mengenal penerapan teknik iteratif dalam penyusunan algoritma


TEKNIK REKURSIF

PENGERTIAN

 Teknik Rekursif merupakan salah satu cara pembuatan algoritma


dengan pemanggilan procedure atau function yang sama

 Contoh penerapan teknik rekursif

1. Perhitungan Nilai Faktorial


2. Pembentukan Barisan Fibonacci
3. Masalah Menara Hanoi
FAKTORIAL

 Teknik rekursif pada algoritma untuk menghitung faktorial


dari bilangan bulat positif n adalah :
FIBBONACI

 Barisan bilangan fibbonaci : 1, 1, 2, 3, 5, 8, 13, 21, . . .

 Teknik rekursif pada algoritma untuk menentukan suku ke-n


dari barisan bilangan fibbonaci adalah :
MENARA HANOI

 Berdasarkan legenda, pertama kali dimainkan secara


manual oleh pendeta Budha di Hanoi, sehingga disebut
Menara Hanoi.

 Dalam permainan ini, akan dipindahkan sejumlah


piringan yang tidak sama besarnya dari satu tonggak ke
tonggak lainnya, dengan diperbolehkan menggunakan
(melewati) sebuah tonggak bantuan.
MENARA HANOI
TEKNIK ITERATIF

PENGERTIAN

 Teknik Iteratif adalah suatu teknik pembuatan algoritma


dengan pemanggilan procedure beberapa kali atau hingga
suatu kondisi tertentu terpenuhi.

 Contoh penerapan teknik iteratif

1. Perhitungan Nilai Faktorial


2. Pembentukan Barisan Fibonacci
TEKNIK ITERATIF

PENGERTIAN

 Teknik Iteratif adalah suatu teknik pembuatan algoritma


dengan pemanggilan procedure beberapa kali atau hingga
suatu kondisi tertentu terpenuhi.

 Contoh penerapan teknik iteratif

1. Perhitungan Nilai Faktorial


2. Pembentukan Barisan Fibonacci
FAKTORIAL

 Teknik iteratif pada algoritma untuk menghitung faktorial


dari bilangan bulat positif n adalah :
FIBBONACI

 Teknik iteratif pada algoritma untuk menentukan suku ke-n


dari barisan bilangan fibbonaci adalah :
PERBEDAAN

Perbedaan Teknik Rekursif dan Teknik Iteratif


Algoritma Bactracking, BFS dan DFS

A. Algoritma Backtracking
Algoritma Backtracking pertama kali diperkenalkan oleh DH Lehmer (1950), dirumuskan
dalam suatu algortima oleh RJ Walker (1960), aplikasinya dikembangkan oleh Golomb dan
Baumert. Dasar dari teknik Backtracking adalah searching.
Backtracking merupakan salah satu algotritma yang didasarkan pada pencarian ruang
solusi. Pencarian ruang solusi dalam algoritma backtracking menggunakan teknik pencarian
Depth First Search (DFS).
Masalah-masalah yang dapat diselesaikan dengan menggunakan algoritma Backtracking
adalah :
 The 8-Queen Problem
 The 4-Queen Problem
 Sum of Subsets
 Graph Coloring
 Hamilton Cycles
 Knapsack Problem
 The Travelling Salesman Problem

1. Penyelesaian Sum of Subsets dengan Menggunakan Algoritma Backtracking


Masalah utama dari SUM of SUBSETS adalah jika terdapat n bilangan real dan ingin
dihitung semua kombinasi yang mungkin dari himpunan bilangan tersebut. Kombinasi yang
didinginkan adalahkombinasi yang jumlah seluruh elemen-elemennya sama dengan M
(tertentu).

2. Algoritma Sum of Subset

procedure sumofsub(s,k,r)
global integer M,n
global real w(1:n)
real r,s

Ahmad Apandi, ST., MMSI. Page 1


integer k,j
x(k) = 1
if s + w(k) = M then
print(x(j),j  1 to k)
else
if s + w(k) + w(k+1) ≤ M then
call sumofsub(s+w(k), k+1, r-w(k))
endif
endif
if s + r-w(k) ≥ M and s + w(k+1) ≤ M then
x(k)  0
call sumofsub(s, k+1, r-w(k))
endif
end sumofsub

Permasalahan :
Suatu himpunan terdiri dari 6 bilangan yaitu {5, 10, 12, 13, 15, 18} yang disusun secara
tidak turun. Akan ditentukan himpunan-himpunan bagiannya yang jumlah seluruh elemennya
adalah 30

Penyelesaian :
n=6
W(1:6) = {5,10,12,13,15,18}
M = 30
Diasumsikan bahwa w(1) ≤ M dan ∑ w(i) ≥ M
Dalam hal ini w(1)= 5 ≤ 30 dan ∑ w(i) = 73 ≥ 30,

k-1
dan nilai s diperoleh dari ∑ w(j)x(j)
j=1
n
nilai r diperoleh dari ∑w(j)
j=k

Ahmad Apandi, ST., MMSI. Page 2


Diperoleh himpunan penyelesaian :

A = {1,1,0,0,1} = 5+10+15=30
B = {1,0,1,1} = 5+12+13 = 30
C = {0,0,1,0,0} = 12+18 = 30

Ahmad Apandi, ST., MMSI. Page 3


B. Algoritma BFS dan DFS

1. Pengertian BFS
Breadth-first search adalah algoritma yang melakukan pencarian secara melebar yang
mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi
semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul
yang belum dikunjungi dan bertetangga dengan simpul-simpul yang tadi dikunjungi , demikian
seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi
lebih dahulu sebelum simpul-simpul pad aras d+1.
Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang telah
dikunjungi. Simpul-simpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul yang
bertetanggaan dengannya. Tiap simpul yang telah dikunjungu masuk ke dalam antrian hanya
satu kali. Algoritma ini juga membutuhkan table Boolean untuk menyimpan simpul yang te lah
dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.

2. Cara kerja Algoritma BFS


Dalam algoritma BFS, simpul anak yang telah dikunjungi disimpan dalam suatu antrian.
Antrian ini digunakan untuk mengacu simpul-simpul yang bertetangga dengannya yang akan
dikunjungi kemudian sesuai urutan pengantrian.
Untuk memperjelas cara kerja algoritma BFS beserta antrian yang digunakannya, berikut
langkah-langkah algoritma BFS:
 Masukkan simpul ujung (akar) ke dalam antrian.
 Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.
 Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
 Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul
tersebut (simpul anak) ke dalam antrian.
 Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan
mengembalikan hasil solusi tidak ditemukan.
 Ulangi pencarian dari langkah kedua.

Ahmad Apandi, ST., MMSI. Page 4


Contohnya terlihat dibawah ini:

Maka penyelesaiannya adalah:


Gambar (a) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1.
Gambar (b) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1
Gambar (c) BFS(1): 1, 2, 3, 4, 5, 6, 7, 8, 9

3. Contoh pencarian lintasan terpendek dengan BFS


Adapun contoh untuk mencari lintasan terpendek dengan menggukan algoritma BFS
adalah sebagai berkut:
Diketahui sebuah kota, dengan memiliki inisial seperti yang ditunjukkan dibawah ini.
Jarak antar kota dibentuk dengan sebuah graph terlihat dibawah:

Pertanyaan: sebutkan rute yang akan ditempuh untuk mencapai kota no. 8. Titik awal
perjalanan adalah kota no. 1. Gunakan algoritma BFS!

Ahmad Apandi, ST., MMSI. Page 5


Maka dengan menggunakan algoritma BFS, rute tercepat yang didapat adalah sebagai berikut:
1–2–3–4–5–6–7–8
Rute tersebut didapat dari pencarian secara melebar. Hal; tersebut dapat dijabarkan sebagai
berikut:
 Pertama-tama, pointer menunujuk pada daun yang ada sebelah kanan, yaitu no.2 (1 – 2)
 Setelah itu, proses dilanjutkan pada tetangga no.2 yaitu no.3 (1-2-3) dan selanjutnya
mengarah pada tetangga terdekat, yakni no.4 (1-2-3-4).
 Pointer mencari teteangga no.4, namun karna tidak ada, maka pointer kembali ke kota
no.2 dan masuk ke daun berikutnya, yakni no.5.
 Proses diulang hingga pointer menunjuk angka 8

4. Algoritma DFS
Algoritma DFS (Depth First Search) adalah salah satu algoritma yang digunakan untuk
pencarian jalur. Contoh yang dibahas kali ini adalah mengenai pencarian jalur yang melalui
semua titik.
Algoritma ini mirip dengan Algoritma BFS (Breadth First Search) yang sudah dijelaskan
sebelumnya. Jika Algoritma BFS (Breadth First Search) melakukan perhitungan secara terurut
dari urutan pertama sampai urutan terakhir, maka algoritma ini melakukan kebalikannya, yaitu
melakukan perhitungan secara terurut dari urutan terakhir. Setelah menghabiskan semua
kemungkinan dari titik terakhir, barulah mundur ke titik-titik sebelumnya sampai pada titik
pertama.
Di dalam DFS, pencarian dilakukan pada suatu struktur pohon yaitu kumpulan semua
kondisi yang mungkin yang diimplementasikan dalam sebuah struktur pohon. Paling atas adalah
akar (root) yang berisi kondisi awal pencarian (initial state) dan di bawahnya adalah kondisi -
kondisi berikutnya sampai kepada kondisi tujuan (goal state).

Ahmad Apandi, ST., MMSI. Page 6


Untuk melakukan pencarian, DFS menggunakan cara sebagai berikut :
1. Masukkan Initial State pada Tumpukan.
2. Periksa apakah ada data di tumpukan.
3. Jika tidak, maka solusi tidak ditemukan, dan proses berhenti.
4. Jika ya, Ambil state pada tumpukan paling atas.
5. Bandingkan State tersebut apakah sama dengan Goal State.
6. Jika sama, maka solusi ditemukan dan proses berakhir.
7. Jika tidak, ekspansikan state tersebut.
8. Masukkan seluruh state hasil ekspansi ke dalam tumpukan.
9. Kembali ke langkah 2.

Pada prinsipnya, DFS ini menggunakan tumpukan untuk menyimpan seluruh state yang
ditemukan atau bisa dikatakan bahwa DFS menggunakan metode LIFO (Last In First Out).

Ahmad Apandi, ST., MMSI. Page 7


1/25/2021 Post Test: Attempt review

Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 13 / Post Test

Started on Monday, 25 January 2021, 11:30 AM


State Finished
Completed on Monday, 25 January 2021, 11:39 AM
Time taken 9 mins 25 secs
Marks 5.00/5.00
Grade 10.00 out of 10.00 (100%)

Question 1 Berikut merupakan langkah algoritma BFS adalah, kecuali :


Correct

Mark 1.00 out of Select one:


1.00
a. Ambil simpul dari akhir antrian, lalu cek apakah simpul merupakan solusi. 

b. Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.

c. Masukkan simpul ujung (akar) ke dalam antrian.

d. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke
dalam antrian.

Question 2 Berikut merupakan pernyataan yang benar mengenai BFS, kecuali :


Correct

Mark 1.00 out of Select one:


1.00
a. Pada BFS jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi lebih dahulu sebelum
simpul-simpul pada aras d-1. 

b. Tiap simpul yang telah dikunjungui masuk ke dalam antrian hanya satu kali.

c. Algoritma BFS memerlukan sebuah antrian q untuk menyimpan simpul yang telah dikunjungi.

d. Agoritma BFS melakukan pencarian secara melebar yang mengunjungi simpul secara preorder.

Question 3 Algoritma DFS adalah singkatan dari :


Correct

Mark 1.00 out of Select one:


1.00
a. Deep First Search

b. Deep Freez Search

c. Depth Freez Search

d. Depth First Search 

Question 4 Algoritma yang melakukan pencarian secara mendalam adalah algoritma :


Correct

Mark 1.00 out of Select one:


1.00
a. DFS 

b. BFS

c. Backtracking

d. Greedy

Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249987&cmid=472415 1/2
1/25/2021 Post Test: Attempt review

Question 5 Berikut merupakan pernyataan yang benar mengenai DFS, kecuali :


Correct

Mark 1.00 out of Select one:


1.00
a. Paling atas adalah tujuan (goal) yang berisi kondisi awal pencarian (initial state) dan di bawahnya adalah kondisi-
kondisi berikutnya sampai kepada kondisi akar (root). 

b. DFS merupakan algoritma yang digunakan untuk pencarian jalur.

c. DFS merupakan algoritma pencarian mendalam.

d. Di dalam DFS, pencarian dilakukan pada suatu struktur pohon yaitu kumpulan semua kondisi yang mungkin yang
diimplementasikan dalam sebuah struktur pohon.

◄ Forum Jump to...

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249987&cmid=472415 2/2
1/25/2021 Pre Test: Attempt review

Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 13 / Pre Test

Started on Monday, 25 January 2021, 11:27 AM


State Finished
Completed on Monday, 25 January 2021, 11:29 AM
Time taken 1 min 35 secs
Marks 5.00/5.00
Grade 10.00 out of 10.00 (100%)

Question 1 Masalah-masalah yang dapat diselesaikan dengan menggunakan algoritma Backtracking adalah :
Correct

Mark 1.00 out of Select one:


1.00
a. Jawaban benar semua 

b. Sum of Subsets

c. The 8-Queen Problem

d. Graph Coloring

Question 2 Urutan langkah yang tepat dan pasti dalam memecahkan suatu masalah secara logis adalah pengertian dari :
Correct

Mark 1.00 out of Select one:


1.00
a. Logartima

b. Rekursif

c. Iteratif

d. Algoritma 

Question 3 Dasar dari teknik backtracking adalah :


Correct

Mark 1.00 out of Select one:


1.00
a. Rekursif

b. Iteratif

c. Searching 

d. Taging

Question 4 Algoritma yang melakukan pencarian secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu
Correct simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu adalah :
Mark 1.00 out of
1.00 Select one:
a. Backtracking

b. Greedy

c. BFS 

d. DFS

Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249967&cmid=472412 1/2
1/25/2021 Pre Test: Attempt review

Question 5 Algoritma Backtracking pertama kali diperkenalkan oleh DH Lehmer pada tahun :
Correct

Mark 1.00 out of Select one:


1.00
a. 1950 

b. 1945

c. 1960

d. 1951

◄ Soal UTS Jump to... Materi ►

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2249967&cmid=472412 2/2
1/28/2021 1 pesan baru

Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 14 / Post Test

Started on Thursday, 28 January 2021, 1:26 PM


State Finished
Completed on Thursday, 28 January 2021, 1:30 PM
Time taken 4 mins 11 secs
Marks 5.00/5.00
Grade 10.00 out of 10.00 (100%)

Question 1 Berikut merupakan pernyataan yang benar mengenai algoritma floyd-warshall, kecuali :
Correct

Mark 1.00 out of Select one:


1.00
a. Algoritma Floyd-Warshall lebih banyak memakan waktu daripada algoritma dijkstra

b. Algoritma Floyd-Warshall merupakan salah satu algoritma program dinamis

c. Algoritma Floyd-Warshal merupakan algoritma yang mengambil jarak minimal dari suatu titik ketitik lainnya

d. Algoritma Floyd-Warshall lebih sedikit memakan aktu daripada algoritma dijkstra 

Question 2 Contoh penerapan program dinamis diantaranya :


Correct

Mark 1.00 out of Select one:


1.00
a. Menghitung koefisien binomial

b. Benar semua 

c. Salah semua

d. Menghitung angka fibonacci

Question 3 Salah satu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu
Correct keputusan yang saling terkait adalah :
Mark 1.00 out of
1.00 Select one:
a. Algoritma Floyd-Warshall 

b. Algoritma Kruskal

c. Algoritma Welch-Powell

d. Algotitma Backtracking

Question 4 Prinsip yang dipakai program dinamis untuk perhitungan angka fibonacci, kecuali :
Correct

Mark 1.00 out of Select one:


1.00
a. Mengimplementasikan iteratif

b. Inisialisasi matriks dengan terkecil dari instansiasi persoalan

c. Nilai akhir hasil perhitungan adalah solusi dari persoalan

d. Mengimplementasikan rekursif 

Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276300&cmid=477686 1/2
1/28/2021 1 pesan baru

Question 5 Bilangan-bilangan yang muncul dari hasil pen-jabaran penjumlahan dua peubah yang dipangkatkan adalah :
Correct

Mark 1.00 out of Select one:


1.00
a. Tidak ada jawaban yang benar

b. Aljabar

c. Koefisien Binomial 

d. Floyd-warshall

◄ Materi Jump to... Forum ►

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276300&cmid=477686 2/2
1/28/2021 Pre Test: Attempt review

Dashboard / My courses / PTA 2020 / 2021 | 3KA22 | Graf & Analisis Algoritma | AHMAD APANDI / VClass Minggu ke 14 / Pre Test

Started on Thursday, 28 January 2021, 1:22 PM


State Finished
Completed on Thursday, 28 January 2021, 1:25 PM
Time taken 3 mins 21 secs
Marks 5.00/5.00
Grade 10.00 out of 10.00 (100%)

Question 1 Program dinamis dibuat dengan prinsip :


Correct

Mark 1.00 out of Select one:


1.00
a. Iteratif

b. Overlap

c. Minimalitas

d. Optimalitas 

Question 2 Berikut merupakan pernyataan yang benar mengenai program dinamis, kecuali :
Correct

Mark 1.00 out of Select one:


1.00
a. Program Dinamis merupakan metode penyelesaian masalah di mana solusi persoalan dapat dipandang sebagai
serangkaian keputus yang salaing tidak terkait 

b. Program Dinamis pertamakali ditemukan oleh Richard Bellman

c. Digunakan untuk menyederhanakan perosalan-persoalan rekursif

d. Digunakan untuk menyelesaikan masalah optimasi

Question 3 Suatu metode penyelesaian masalah di mana solusi persoalan dapat dipandang sebagai serangkaian keputusan yang
Correct saling berkaitan adalah :
Mark 1.00 out of
1.00 Select one:
a. Program Statis

b. Algoritma

c. Program Dinamis 

d. Pemrograman Terstruktur

Question 4 Program Dinamis ditemukan oleh :


Correct

Mark 1.00 out of Select one:


1.00
a. Dennis Ritche

b. Euler

c. Richard Bellman 

d. Richard Freeman 1

Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276267&cmid=477684 1/2
1/28/2021 Pre Test: Attempt review

Question 5 Berikut merupakan karakteristik penyelesaian masalah dengan algoritma program dinamis, kecuali :
Correct

Mark 1.00 out of Select one:


1.00
a. Solusi pada setiap tahap dibangun dari hasil solusi tahap selanjutnya. 

b. Menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yangharus dipertimbangkan
pada satu tahap.

c. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya.

d. Terdapat sejumlah berhingga pilihan yang mungkin

◄ Post Test Jump to... Materi ►

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=2276267&cmid=477684 2/2
Program Dinamis

A. Program Dinamis
Program dinamis adalah salah satu teknik matematika yang digunakan untuk
mengoptimalkan proses pengambilan keputusan secara bertahap ganda. Inti dari teknik ini
ialah membagi satu persoalan atas beberapa bagian persoalan (tahap), kemudian memecahkan
tiap tahap sampai seluruh persoalan telah terpecahkan. Penggunanan program dinamis untuk
mencari bobot minimum dari suatu pohon merentang merupkan salah satu alternatif selain
penggunaan algoritma greedy.

Prosedur pemecahan persoalan dalam program dinamis dilakukan secara rekursif. Ini
berarti bahwa setiap kali diambil keputusan, diperhatikan keadaan yang dihasilkan oleh
keputusan sebelumnya.

Program Dinamis (Dynamic Programming) adalah metode pemecahan masalah dengan


cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian
sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling
berkaitan. Karakteristik penyelesaian masalah dengan algoritma program Dinamis :

1. Terdapat sejumlah berhingga pilihan yang mungkin


2. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya.
3. Kita menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan
yangharus dipertimbangkan pada satu tahap.

Program dinamis (dynamic programming) yang ditemukan oleh Richard Bellman pada
tahun 1953 merupakan suatu metode penyelesaian masalah di mana solusi persoalan dapat
dipandang sebagai serangkaian keputusan yang saling berkaitan. Program dinamis merupakan
salah satu metode yang mangkus yang biasanya digunakan untuk menyederhanakan persoalan-
persoalan rekursif.

Seperti halnya algoritma greedy, program dinamis juga merupakan suatu ancangan
untuk menyelesaikan masalah optimasi. Hanya saja, pada metode greedy hanya satu rangkaian

Ahmad Apandi, ST., MMSI. Page 1


keputusan yang pernah dihasilkan,sedangkan dengan program dinamis lebih dari satu
rangkaian keputusan.

Program dinamis fokus pada bagian permasalahan yang tumpang-tindih (overlapping


subproblems).Rangkaian keputusan dibuat dengan prinsip optimalitas (optimal substructure), di
mana solusi optimal dari bagian solusi permasalahan bisa digunakan untuk menemukan solusi
optimal untuk masalah secara keseluruhan.

Penerapan program dinamis ini sangat luas. Di antaranya, yang sederhana, adalah untuk
menghitung angka Fibonacci dan koefisien binomial.

B. Program dinamis untuk menghitung koefisien binomial


1. Koefisien Binomial
Dalam matematika, terutama kombinatorial, koefisien binomial dari suatu bilangan asli
n dan bilangan integer k adalah jumlah kombinasi yang ada.Dengan kata lain, jika diberi kan n
buah benda, jumlah cara memilih k buah bola yang berbeda sama dengankoefisien binomial.
Koefisien binomial didefinisikan sebagai berikut.

untuk n ≥ k ≥ 0 dan

untuk k < 0 atau k > n.


Untuk nilai n dan k non-negatif, diperoleh

Ahmad Apandi, ST., MMSI. Page 2


Koefisien binomial dituliskan dengan notasi Notasi ini diperkenalkan oleh Albert von
Ettinghausen pada tahun 1826, meskipun bilangan ini telah dikenal berabad-abad sebelumnya.
Notasi lainnya yang biasa digunakan seperti C(n, k), nCk atau Cn k (C untuk combination).

2. Penerapan Program Dinamis


Dari definisi koefisien binomial, kita bisa membuat suatu algoritma seperti berikut.

Kompleksitas algoritma di atas adalah


T(n,k) = T(n – 1, k – 1) + T(n – k, k) atau T(n,k) = O(nk)

Dengan algoritma di atas, banyak komputasi yang sama yang dilakukan berulang-ulang.
Sebagai contoh,perhitungan C(5,3) digambarkan dengan pohon seperti berikut.

Ahmad Apandi, ST., MMSI. Page 3


Seperti halnya pada penghitungan angka Fibonacci,kita bisa memperbaiki algoritma di atas
dengan program dinamis. Prinsip yang dipakai yaitu:

a. Buat matriks berukuran (n+1) × (k+1) untuk menyimpan hasil perhitungan.


b. Inisialisasi matriks dengan terkecil dari instansiasi persoalan
c. Set elemen matriks (tentunya dengan urutan yang tepat) menggunakan hasil yang
telahdihitung sebelumnya. Setiap elemen itu tepat dihitung satu kali saja.
d. Nilai akhir hasil perhitungan adalah solusi dari persoalan.
e. Di sini kita mengimplementasikan iteratif, bukan rekursif.

C. Algoritma Floyd-Warshall

Algoritma Floyd-Warshall adalah salah satu varian dari pemrograman dinamis, yaitu
suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan
diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk
dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu.

Hal yang membedakan pencarian solusi menggunakan pemrograman dinamis dengan


algoritma greedy adalah bahwa keputusan yang diambil pada tiap tahap pada algoritma greedy
hanya berdasarkan pada informasi yang terbatas sehingga nilai optimum yang diperoleh pada
saat itu Jadi pada algoritma greedy, kita tidak memikirkan konsekuensi yang akan terjadi
seandainya kita memilih suatu keputusan pada suatu tahap.

Algoritma Floyd-Warshall adalah algoritma shorter path lain yang lebih singkat dan akan
bekerja dengan jalan yang ditempuh sangat negatif (tetapi tidak putaran negatif). " tetapi ini
akan mengambil banyak waktu daripada algoritma dijkstra” kata Yasith Vidanaarachchi .
"Namun, dalam praktiknya Algoritma ini lebih cepat karena singkatnya dan kesederhanaannya".

Ahmad Apandi, ST., MMSI. Page 4


Dengan kata lain ini jalan yang sangat efisien, dalam memecahkan mas alah jalan yang paling
singkat.

Algoritma warshal merupakan algoritma yang mengambil jarak minimal dari suatu titik
ketitik lainnya.pada algoritma ini menerapkan suatu algoritma dinamis yang menyebabkan akan
mengambil jarak lintasan terpendek secara benar.

contoh apabila kita berada dari suatu tempat di titik A akan menuju tempat yang berada
di titik E di mana kita harus melewati minimal satu titik titik antara b, c, d dan f

apabila kita memakai floyd warshall maka kita harus mentotalkan jumlah jaraknya, Seperti

a-b-d-e = 10 + 15 + 10 = 35 km

a-d-e = 20 + 5 =25 km

a-c-e = 30 + 25 = 55km

a-f-e = 20 + 25 = 45 km

dll,,

apabila semua nya telah terjumlah, maka jarak minimalnya ada d lintasan a-d-e dengan 25
km,,sesuai dengan algoritma floyd warshall.

( diambil dari : http://mathworld.wolfram.com/Floyd-WarshallAlgorithm.html)

Ahmad Apandi, ST., MMSI. Page 5


DASAR-DASAR
TEORI GRAF

Dosen : Ahmad Apandi


Pokok Bahasan

• Teori Graf

• Definisi Graf

• Istilah-istilah pada Graf

• Jenis-jenis Graf

• Operasi pada Graf


Teori Graf

• Teori Graf mulai dikenal saat matematikawan kebangsaan Swiss


bernama Leonhard Euler, yang berhasil mengungkapkan Misteri
Jembatan Konigsberg tahun 1736.

• Di kota Konigsberg mengalir sungai Pregel, di sungai tersebut


terdapat jembatan yang menghubungkan, jumlah jembatan tersebut
sebanyak 7 buah.
Teori Graf

Gambar : Kota Konigsberg mengalir sungai Pregel


Teori Graf

Gambar : (a) Jembatan Konigsberg, dan (b) graf yang merepresentasikan jembatan Konigsberg
Definisi Graf

• Graf adalah bagan yang memuat informasi yang diinterpretasikan


secara tepat.

• Graf digunakan untuk merepresentasikan objek-objek diskrit dan


hubungan antara objek-objek tersebut.

• Tujuan graf adalah untuk visualisasi objek agar mudah dimengerti.


Definisi Graf Secara Matematis
Istilah-istilah pada Graf
• Busur ganda (multiple edge) yaitu suatu busur yang menghubungkan
simpul yang sama
• Ketetanggaan (adjacent) : dua buah simpul dikatakan
bertetangga, jika terdapat busur e dengan ujung awal dan akhir
adalah v1 dan v2. ( e=(v1,v2) )
• Kehadiran (incident) : suatu busur dikatakan hadir pada suatu
simpul, jika busur tersebut menghubungkan simpul tersebut.
Istilah-istilah pada Graf

• Gelang (loop) yaitu busur yang berawal dan berakhir pada simpul
yang sama
• Derajat (degree) yaitu banyaknya busur yang ada pada suatu simpul v.
( d(v) )
• n = |V| = kardinalitas simpul
• m = |E| = kardinalitas busur
Jenis – jenis Graf

• Graf dapat dikelompokkan menjadi beberapa kategori (jenis)


bergantung pada sudut pandang pengelompokannya.
Pengelompokan graf dapat dipandang berdasarkan :
– Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf

– Berdasarkan jumlah simpul pada suatu graf

– Berdasarkan orientasi arah pada sisi


Jenis – jenis Graf
• Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf :
– Graf sederhana (simple graph).

Graf yang tidak mengandung gelang maupun sisi-ganda dinamakan graf


sederhana.

– Graf tak-sederhana(unsimple-graph).

Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-sederhana
(unsimple graph). Ada dua macam graf tak-sederhana, yaitu graf
ganda(multigraph) dan graf semu(pseudograph).
Jenis – jenis Graf

Gambar : Tiga buah graf (a) graf sederhana, (b) graf ganda, dan (c) graf semu
Jenis – jenis Graf

• Berdasarkan jumlah simpul pada suatu graf :


➢ Graf berhingga(limited graph)

Graf berhingga adalah graf yang jumlah simpulnya, n, berhingga.

➢ Graf tak-berhingga(unlimited graph)

Graf yang jumlah simpulnya, n, tidak berhingga.


Jenis – jenis Graf

Gambar : Graf tidak berhingga


Jenis – jenis Graf

• Berdasarkan orientasi arah pada sisi :


➢ Graf tak-berarah(undirected graph)

Graf yang sisinya tidak mempunyai orientasi arah

➢ Graf berarah(directed graphatau digraph)

Graf yang setiap sisinya diberikan orientasi arah


Jenis – jenis Graf

Gambar : Graf berarah


Subgraf dan Komplemen Subgraf

• Misalkan G= (V, E) adalah sebuah Graf. G1= (V1, E1) adalah subgraf dari
G jika V1 ⊆ V dan E1 ⊆ E.

• Komplemen dari subgraf G1 terhadap graf G adalah graf G2= (V2, E2)
sedemikian sehingga E2= E- E1dan V2adalah himpunan simpul yang
anggota-anggota E2 bersisian dengannya.
Subgraf dan Komplemen Subgraf
Derajat (Degree)

• Derajat suatu simpul d (v) adalah banyaknya ruas yang


menghubungkan suatu simpul.

• Sedangkan Derajat Graf G adalah jumlah derajat semua simpul Graf G.


Derajat (Degree)
Operasi Graf
Contoh Operasi Graf

• Diketahui
Operasi Gabungan dan Irisan
Operasi Selisih
Penjumlahan Ring G1 dan G2
Dekomposisi
Penghapusan (Deletion)
Penghapusan (Deletion)

Anda mungkin juga menyukai