Anda di halaman 1dari 18

HANDOUT

MATA KULIAH TEORI GRAPH

Oleh :
Fitri Nur Aini
18301241035

JURUSAN PENDIDIKAN MATEMATIKA


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI YOGYAKARTA
2021
A. Algoritma Dzikstra
Lintasan Terpendek dalam Grafik Terbatas
Pencarian rute terpendek termasuk ke dalam materi teori graf. Algorita yang
sangat terkenal untuk memecahkan persoalan ini adalah Algoritma Dzikstra.
Algoritma ini ditemukan oleh seorang ilmuwan komputer berkebangsaan Belanda
yang bernama Edsger Dijkstra. Algoritma Dijkstra dianggap cocok karena mudah
digunakan oleh user dalam penggunaannya hanya dengan menentukan titik awal dan
titik tujuan.

Misalkan 𝑮 = (𝑽, 𝑬, 𝒘) merupakan graf berbobot, dimana 𝑽 merupakan sebuah


simpul, 𝑬 merupakan sebuah sisi, dan 𝒘 merupakan fungsi dari 𝑬 ke himpunan
bilangan real positif.

CONTOH KASUS Misal 𝑉 sebagai kumpulan kota dan 𝐸 sebagai kumpulan jalan
raya yang menghubungkan kota-kota tersebut. Bobot sebuah sisi {𝑖, 𝑗}, 𝑤(𝑖, 𝑗), 𝑡
biasanya disebut sebagai panjang sisi {𝑖, 𝑗} yang mempunyai interpretasi yang jelas
sebagai jarak antara kota 𝑖 dan 𝑗 meskipun interpretasi lainnya seperti biaya tahunan
𝑡 pemeliharaan jalan raya, atau jumlah kecelakaan jalan raya yang mungkin dan
berarti pada setiap bulannya. Panjang lintasan di 𝐺 didefinisikan sebagai jumlah dari
panjang sisi di lintasan tersebut. Salah stau masalah yang menarik perhatian adalah
menentukan lintasan terpendek dari satu simpul ke simpul lain di 𝑉. Ada beberapa
perosedur terkenal untuk menyelesaikan soal ini, salah satunya adalah yang
ditemukan oleh 𝐸.W. Dijkstra. Penyajian ini merupakan grafik tidak berarah, meskipun
prosedurnya juga berlaku untuk grafik berarah.
Cara kerja algoritma Dzikstra memakai stategi greedy, dimana pada setiap
langkah dipilih sisi dengan bobot terkecil yang menghubungkan sebuah simpul yang
sudah terpilih dengan simpul lain yang belum terpilih. Misalkan kita menentukan
lintasan terpendek dari simpul 𝑎 ke simpul 𝑧 di 𝐺. Dalam prosedurnya, sebuah lintasan
terpendek dari 𝑎 ke simpul lain ditentukan, kemudian lintasan terpendek dari 𝑎 ke
simpul yang lain ditentukan, dan seterusnya. Bahkan akhirnya prosedur tersebut
berhenti ketika lintasan terpendek dari 𝑎 dan 𝑧 yang sudah ditentukan.
Prosedur kami didasarkan pada pengamatan berikut : Misalkan 𝑇
merupakan himpunan bagian dari simpul di 𝑉 dengan 𝑎 ∉ 𝑇. Misalkan P menunjukkan
himpunan bagian dari simpul 𝑉 − 𝑇. Sebuah lintasan terpendek dari 𝑎 ke salah satu
simpul di 𝑇 dapat ditentukan sebagai berikut :
• Untuk setiap simpul 𝑡 di 𝑇 misalkan 𝑙(𝑡) menunjukkan panjang lintasan terpendek
di antara semua lintasan dari 𝑎 ke 𝑡 yang tidak menyertakan simpul lain di 𝑇.
[perhatikan bahwa 𝑙(𝑡) belum tentu jarak terpendek dari 𝑎 ke 𝑡 karena mungkin
ada bagian yang lebih pendek dari 𝑎 ke 𝑡 yang meliputi simpul lain di 𝑇].
• Kita menyebut 𝑙(𝑡) sebagai indeks dari 𝑡 sehubungan dengan 𝑃. Di antara semua
simpul di 𝑇, misalkan 𝑡1 merupakan simpul yang memiliki indeks terkecil.
• Kita mengklaim bahwa jarak terpendek dari 𝑎 dan 𝑡1 memang sama dengan 𝑙(𝑡1).
• Untuk membuktikan klaim kita, mari kita asumsikan bahwa ada lintasan dari 𝑎 ke
𝑡1 yang panjangnya kurang dari 𝑙(𝑡1 ). Dalam hal ini lintasan seperti itu harus
menyertakan satu atau lebih simpul di 𝑇 − {𝑡1 }. Misalkan 𝑡2 menjadi simpul
pertama di 𝑇 − {𝑡1 } yang kita temui saat kita menelusuri lintasan ini dari 𝑎 ke 𝑡1 .
Oleh karena itu, 𝑙(𝑡2 ) lebih kecil dari 𝑙(𝑡1 ), yang merupakan kontradiksi.
Akibatnya, jika saat menghitung 𝑙(𝑡) untuk setiap 𝑡 di 𝑇, kita juga akan menentukan
lintasan terpendek dari 𝑎 ke 𝑡1 .
Misalnya, untuk grafik pada Gambar 5.13a, misalkan 𝑇 = {𝑐, 𝑑, 𝑒, 𝑧}. Kami
meminta pembaca untuk memeriksa bahwa 𝑙(𝑐) = 3, 𝑙(𝑑) = 8, 𝑙(𝑒) = 6, 𝑙(𝑧) =
∞ . Sehingga jarak terpendek dari 𝑎 ke 𝑐 adalah 3.
Kita juga harus menemukan cara yang efisien untuk menghitung 𝑙(𝑡) setiap 𝑡
di 𝑇. Sekali lagi, misalkan 𝑇 adalah himpunan bagian dari 𝑉 dan 𝑃 = 𝑉 − 𝑇. Misalkan
untuk setiap simpul 𝑝 di 𝑃, ada lintasan terpendek dari 𝑎 ke 𝑝 yang hanya mencakup
simpul di 𝑃. Kita asumsikan bahwa untuk setiap simpul 𝑡 di 𝑇 telah dihitung indeksnya
sehubungan dengan 𝑃, 𝑙(𝑡). Misalkan 𝑥 merupakan titik puncak di 𝑇. Misalkan 𝑃′
menjadi 𝑃 ∪ {𝑥} dan 𝑇′ menjadi 𝑇 − {𝑥}. Misalkan 𝑙′(𝑡) menunjukkan indeks dari
sebuah simpul 𝑡 di 𝑇′ terhadap 𝑃′. Maka, kita mengklaim bahwa :
𝑙′(𝑡) = 𝑚𝑖𝑛[𝑙(𝑡), 𝑙(𝑥) + 𝑤(𝑥, 𝑡)]

Untuk menunjukkan hal ini, kita mengamati bahwa ada dua cara yang mungkin
untuk mendapatkan lintasan terpendek dari 𝑎 ke 𝑡 yang tidak menyertakan simpul
manapun di 𝑇′. Cara pertama adalah mempunyai lintasan yang tidak menyertakan
simpul di 𝑇′ maupun simpul 𝑥. Dalam hal ini, indeks 𝑡 terhadap 𝑃′ adalah 𝑙(𝑡). Cara
kedua adalah memiliki lintasan yang terdiri dari lintasan dari 𝑎 ke 𝑥 yang tidak
memiliki simpul di 𝑇, diikuti oleh sisi {𝑥, 𝑡}. Dalam hal ini, indeks dari 𝑡 terhadap 𝑃′
adalah 𝑙(𝑥) + 𝑤(𝑥, 𝑡). Kita harus menunjukkan bahwa kita tidak perlu
mempertimbangkan kemungkinan memiliki lintasan dari 𝑎 ke 𝑥, lalu ke beberapa 𝑝1 di
𝑃, dan kemudian ke 𝑡. Karena apabila ini masalahnya, sementara ada lintasan
terpendek dari 𝑎 ke 𝑝1 yang menyertakan 𝑥, ada juga yang tidak menyertakan 𝑥 yang
dapat menggantikannya. Oleh karena itu, ini direduksi menjadi kemungkinan pertama
yang dipertimbangkan di atas.

Sebagai contoh, pada graf di gambar 5.13a di atas, misalkan 𝑃 = {𝑎, 𝑏} dan
𝑇 = {𝑐, 𝑑, 𝑒, 𝑧}. Misalkan kita sudah menghitung 𝑙(𝑐) = 3, 𝑙(𝑑) = 8, 𝑙(𝑒) = 6,
𝑙(𝑧) = ∞ . Misalkan 𝑃’ = {𝑎, 𝑏, 𝑐}, 𝑇’ = {𝑑, 𝑒, 𝑧}. Diperoleh
𝑙’(𝑑) = 𝑚𝑖𝑛(8, 3 + ∞) = 8
𝑙’(𝑒) = min(6,3 + 1) = 4
𝑙’(𝑧) = 𝑚𝑖𝑛(∞, 3 + ∞) = ∞
Observasi ini mengarahkan pada prosedur untuk menghitung jarak terpendek
dari 𝑎 ke setiap simpul yang ada di 𝐺 berikut :
1. Misalkan 𝑃 = {𝑎} dan 𝑇 = 𝑉 − {𝑎}. Untuk setiap simpul 𝑡 pada 𝑇, maka 𝑙(𝑡) =
𝑤(𝑎, 𝑡).
2. Pilih simpul di 𝑇 yang memiliki indeks terkecil terhadap 𝑃. Misalkan 𝑥
menyimbolkan simpul ini.
3. Apabila 𝑥 merupakan simpul yang ingin dijangkau dari 𝑎, berhenti. Jika tidak, maka
𝑃’ = 𝑃 ∪ {𝑥} 𝑑𝑎𝑛 𝑇’ = 𝑇 − {𝑥}. Untuk setiap simpul 𝑡 di 𝑇’, hitung indeksnya
terhadap 𝑃’ sesuai pada 𝑙′(𝑡) = 𝑚𝑖𝑛[𝑙(𝑡), 𝑙(𝑥) + 𝑤(𝑥, 𝑡)]
4. Ulangi langkah 2 dan 3 dengan 𝑃’ sebagai 𝑃 dan 𝑇’ sebagai 𝑇
Sebagai contoh, untuk grafik berbobot pada gambar 5.13a, langkah-langkah
berurutan untuk menentukan lintasan terpendek antara 𝑎 dan 𝑧 ditunjukkan pada
gambar 5.13b melalui gambar 5.13f, dimana simpul-simpul pada 𝑃 dilingkari.
Perhatikan bahwa simpul pada 𝑇 diberi nama dengan indikasi mereka. Bahkan, simpul
dengan indeks tidak terbatas juga diberi nama dengan barisan simpul-simpul yang
berhubungan pada lintasan dari 𝑎 ke simpulnya yang panjangnya sama dengan indeks
dari simpul tersebut.

B. Permasalahan Lintasan Terpendek


Lintasan terpendek (Shortest Path) merupakan lintasan minimum yang
diperlukan untuk mencapai suatu tempat dari tempat tertentu. Lintasan minimum
yang dimaksud dapat dicari dengan menggunakan graph.
CONTOH KASUS

Misalkan Ita mempunyai sebuah diagram yang berbentuk


seperti dalam gambar 2.35 di atas dimana huruf 𝐴 − 𝐿 mewakili kota-
kota yang dihubungkan oleh ruas-ruas jalan. Jika panjang ruas-ruas
jalan ini sebagaimana sudah dituliskan pada diagram, maka berapakah
jarak terpendek dari kota A ke kota L?

Bilangan yang sudah tertera pada diagram tidak hanya menyatakan panjang
ruas jalan, namun bisa juga sebagai waktu yang dibutuhkan untuk melewati ruas jalan
yang bersangkutan, atau pada biaya untuk melewatinya. Sehingga, jika kita memiliki
sebuah algoritma untuk memecahkan permasalahan ini dalam formulasi aslinya, maka
algoritma tersebut akan dapat digunakan pula untuk menemukan rute tercepat atau
rute termurah.
Kita dengan mudah dapat menentukan sebuah batas atas untuk jawaban yang
diinginkan dengan cara memilih sembarang lintasan 𝐴 ke 𝐿 dan menghitung
panjangnya. Misalkan kita mengambil lintasan :

𝐴→𝐵→𝐷→𝐺→𝐽→𝐿
Lintasan tersebut mempunyai panjang total 18 maka panjang lintasan
terpendek yang dimaksud tidak mungkin melebihi 18.
Kita memandang diagram tersebut sebagai graf terhubung dimana semua
bilangan non negative dituliskan untuk tiap-tiap rusuknya. Artinya graf tersebut
mempunyai bobot/harga pada setiap sisinya. Graf semacam ini disebut graf berbobot
(weighted graph) dan bilangan yang diberikan untuk tiap-tiap rusuk e disebut bobot
(weight) dari 𝑒, dituliskan dengan notasi 𝑤(𝑒).
Pada sub bab kali ini permasalahannya adalah menemukan sebuah lintasan
terpendek dari 𝐴 ke 𝐿 dengan nilai bobot toal minimum. Terdapat beberapa metode
yang dapat kita gunakan untuk memecahkan persoalan ini. Salah satunya adalah
dengan membuat sebuah model peta dengan cara menyambungkan dan mengikatnya
dengan simpul-simpul, potongan-potongan tali atau benang yang panjangnya
sebanding dengan panjang ruas jalan yang diwakili tiap-tiap potong tali atau benang.
Untuk menemukan lintasan terpendek peganglah kedua simpul yang mewakili kota 𝐴
dan 𝐿 dan bentangkan. Selain itu, terdapat cara lain yang lebih matematis untuk
memecahkan persoalan ini dengan cara bergerak menjelajahi peta tersebut dari kiri
ke kanan, sambil memberi label pada setiap simpul 𝑉 yang kita lalui dengan sebuah
bilangan 𝑙(𝑉) yang menunjukkan jarak terpendek dari 𝐴 ke 𝑉.
Kita ambil contoh pada gambar 2.35, ketika kita tiba di sebuah simpul
semisal 𝐾, kita akan menulis pada simpul tersebut sebuah bilangan 𝑙(𝐾) yang adalah
penjumlahan 𝑙(𝐻) + 6 atau 𝑙(𝑙) + 2, mana yang bernilai lebih kecil diantara kedua
kemungkinan ini. Sasaran akhir kita adalah menemukan 𝑙(𝐿). Untuk menerapkan
algoritma ini, pertama-tama memberikan label 0 pada 𝐴 dan untuk masing-masing
dari 𝐵, 𝐸, dan 𝐶, kita memberikan label sementara 𝑙(𝐴) + 3, 𝑙(𝐴) + 9 𝑑𝑎𝑛 𝑙(𝐴) +
2 tepatnya 3, 9 dan 2 secara berturut-turut. Kita memilih yang terkecil di antara
ketiga kemungkinan ini, dan menuliskan 𝑙(𝐶) = 2. Simpul 𝐶 sekarang diberi label 2
secara permanen.
Selanjutnya, beralih ke simpul-simpul yang bertetangga dengan 𝐵. Kita
memberikan 𝐷 label sementara 𝑙(𝐵) + 2 = 5 dan kita dapat memperkecil lagi label
sementara di 𝐸 menjadi 𝑙(𝐵) + 4 = 7. Label terkecil sementara kini adalah 5 (di 𝐷)
dan karenanya kita menulisakan 𝑙(𝐷) = 5. 𝐷 sekarang diberi label 5 secara
permanen. Berikutnya kita memperhatikan simpul-simpul yang bertetangga dengan
𝐷. Satu-satunya simpul yang merupakan tetangga dengan 𝐷 adalah 𝐺, dan kita
memberikan simpul ini label sementara 𝑙(𝐷) + 3 = 8. Label sementara terkecil
sekarang adalah 7 (di 𝐸), sehingga kita menuliskan 𝑙(𝐸) = 7. 𝐸 sekarang diberi label
7 secara permanen.
Dengan meneruskan prosedur ini hingga kita tiba di L, kita akan mendapatkan
label-label permanen berikut ini secara berurutan
𝐿(𝐺) = 8, 𝑙(𝐻) = 9, 𝑙(𝐹) = 10, 𝑙(𝑙) = 12, 𝑙 (𝐽) = 13, 𝑙(𝐾) = 14, 𝑙(𝐿) = 17
yang diperlihatkan dalam gambar 2.36. Dengan demikian lintasan terpendek dari 𝐴
ke L panjangnya adalah 17.

Untuk menemukan lintasan terpendek semacam ini kita dapat membatasi


perhatian kita hanya pada rusuk-rusuk yang panjangnya merupakan selisih label-label
di kedua ujungnya. Semisal 𝐾𝐿 dan 𝑙𝐾 (karena 𝑙(𝐿) – 𝑙(𝐾) = 17 − 14 = 3 dan
𝑙(𝐾) – 𝑙(𝐿) = 2 Dengan memanfaatkan label-label untuk membantu kita, kita dapat
menelusuri balik dari 𝐿 melewati 𝐾 & 𝑙 untuk mendapatkan lintasan
𝐿→𝐾→𝐼→𝐹→𝐻→𝐸→𝐵→𝐴
Maka, lintasan terpendek yang dalam kasus ini hanya satu-satunya dari A ke L adalah
𝐴→𝐵→𝐸→𝐻→𝐹→𝐼→𝐾→𝐿
CONTOH SOAL ALGORITMA DZIKSTRA DAN
LINTASAN TERPENDEK

AYO BERLATIH!

Tentukan lintasan terpendek dari A ke Z dan tentukan bobotnya!

Pembahasan :
• Mulai dari simpul A sebagai simpul awal, lingkari simpul A.
• Tentukan jalur dengan bobot terpendek yang menghubungkan A
dengan simpul yang lain.
• Jika jalurnya lebih dari satu, pilih jalur dengan bobot terendah.

• Lingkari simpul C, tentukan jalur berbobot terpendek yang


menghubungkan C dengan simpul lain.
• Apabila jalurnya lebih dari satu, pilih jalur dengan bobot terendah
• Lakukan hal yang sama pada simpul B, D, dan E
Jadi, lintasan terpendek dari A ke Z adalah A – C – B – D – E – Z dengan
bobot 2 + 1 + 5 + 2 + 3 = 13

C. Permasalahan Lintasan Kritis


Setelah membahas permasalahan lintasan terpendek, sekarang kita
membahas bagaimana algoritma dapat dimodifikasi untuk menghasilkan lintasan
terpanjang pada sebuah digraf dan kita akan mengilustrasikan penggunaannya dalam
permasalahan lintasan kritis yang terkait dengan penjadwalan serangkaian kegiatan.

CONTOH KASUS

Misalkan kita sedang membangun sebuah rumah, pekerjaan ini


dapat dibagi menjadi sejumlah kegiatan, misalnya meletakkan fondasi,
memasang atap, memasang instalasi kabel, dsb. Sebagian di antara
kegiatan-kegiatan ini dapat dilakukan secara bersamaan, sedangkan
sebagian lainnya mungkin harus diselesaikan lebih dulu sebelum
kegiatan-kegiatan lain dapat dilakukan. Dapatkah kita menemukan
sebuah metode yang efesien untuk menentukan bagaimana kita
dapat menjadwalkan kegiatan-kegiatan tersebut sehingga seluruh
pekerjaan dapat diselesaikan dalam waktu yang paling singkat?
Untuk memecahkan permasalahan tersebut, kita membuat sebuah digraf
berbobot dimana tiap busur dalam digraf mewakili panjang waktu yang dibutuhkan
untuk menyelesaikan sebuah kegiatan. Jaringan kegiatan tersebut dapat digambarkan
pada gambar di bawah ini.

Simpul 𝐴 mewakili awal pekerjaan, dan simpul 𝐿 mewakili akhir akhir


pekerjaan. Karena seluruh pekerjaan tidak dapat selesai sebelum setiap lintasan dari
𝐴 dan 𝐿 telah dilintasi, permasalahan kita tersederhanakan menjadi persoalan
menemukan lintasan terpanjang dari 𝐴 ke 𝐿. Permasalahan ini dapat diselesaikan
dengan menggunakan sebuah teknik yang dinamakan teknik pemeriksaan dan
evaluasi program yang serupa dengan metode yang kita gunakan untuk memecahkan
masalah lintasan terpendek di atas.
Kita akan bergerak menjelajahi digraf dari kiri ke kanan, dan kita memberikan
pada tiap-tiap simpul 𝑉 [yang kita lewati] sebuah label 𝑙(𝑉) yang menunjukkan
panjang lintasan terpanjang dari 𝐴 ke 𝑉. Namun, berbeda dengan permasalahan
sebelumnya, di sini tidak terdapat gerakan ‘zig-zag’ karena semua busur di dalam
digraf mengarah dari kiri ke kanan, sehingga kita dapat langsung memberikan label
permanen setelah kita melewati sebuah simpul. Sebagai contoh, untuk digraf dalam
Gambar 2.37, kita memberikan :
• untuk simpul 𝐴, bilangan ;
• untuk simpul 𝐵, bilangan 𝑙(𝐴) + 3 −yaitu, 3;
• untuk simpul 𝐶, bilangan 𝑙(𝐴) + 2 −yaitu, 2;
• untuk simpul 𝐷, bilangan 𝑙(𝐵) + 2 −yaitu, 5;
• untuk simpul 𝐸, yang terbesar di antara bilangan 𝑙(𝐴) + 9, 𝑙(𝐵) + 4, dan 𝑙(𝐶) +
6 −yaitu, 9;
• untuk simpul 𝐹, bilangan 𝑙(𝐶) + 9 −yaitu, 11;
• untuk simpul 𝐺, yang terbesar di antara bilangan 𝑙(𝐷) + 3 dan 𝑙(𝐸) + 1 −yaitu,
10;
• untuk simpul 𝐻, yang terbesar di antara bilangan 𝑙(𝐸) + 2 dan 𝑙(𝐹) + 1 −yaitu,
12;
• untuk simpul 𝐼, bilangan 𝑙(𝐹) + 2 −yaitu, 13;
• untuk simpul 𝐽, yang terbesar di antara bilangan 𝑙(𝐺 ) + 5 dan 𝑙(𝐻) + 5 −yaitu,
17;
• untuk simpul 𝐾, yang terbesar di antara bilangan 𝑙(𝐻) + 6 dan 𝑙(𝐼) + 2 −yaitu,
18;
• untuk simpul 𝐿, yang terbesar di antara bilangan 𝑙(𝐻) + 9, 𝑙(𝐽) + 5, dan 𝑙(𝐾) +
33 −yaitu, 22;

Label-label ini diperlihatkan dalam gambar di bawah ini. Dengan demikian,


lintasan terpanjang yang kita temukan memiliki panjang 22, dan karenanya pekerjaan
dimaksud tidak dapat diselesaikan sebelum waktu 22.

Gambar 2.38

Untuk menemukan sebuah lintasan terpanjang, kita dapat menelusuri kembali


dari 𝐿, seperti yang kita lakukan dalam permasalahan lintasan terpendek. Dalam kasus
ini, lintasan terpanjang satu-satunya dari 𝐴 ke 𝐿 adalah
𝐴→𝐶→𝐹→𝐻→𝐽→𝐿
Lintasan ini seringkali disebut juga lintasan kritis (critical path) karena tertundanya
satu kegiatan saja akan mengakibatkan tertundanya seluruh pekerjaan. Kita dapat pula
menghitung waktu paling lambat yang diperbolehkan untuk menyelesaikan suatu
kegiatan agar seluruh pekerjaan tidak tertunda. Dengan sekali lagi menelusuri balik
mulai dari 𝐿, kita dapat mengetahui bahwa kita harus tiba di
𝐾 pada waktu 22 − 3 = 19,
𝐽 pada waktu 22 − 5 = 17,
𝐻 pada waktu min {17 − 5, 22 − 9, dan 19 − 6} = 12,
Dan demikian seterusnya.

CONTOH SOAL

AYO BERLATIH!

Dari graf di atas, jalur manakah yang merupakan lintasan kritis/jalur kritis?

Pembahasan :
• Jalur 1 = 𝟏 − 𝟐 − 𝟓 − 𝟔 − 𝟕 (𝒂 − 𝒅 − 𝒈 − 𝒉) = 𝟐𝟎
• Jalur 2 = 𝟏 − 𝟐 − 𝟑 − 𝟓 − 𝟔 − 𝟕 (𝒂 − 𝒆 − 𝒈 − 𝒉) = 𝟏𝟗
• Jalur 3 = 𝟏 − 𝟑 − 𝟓 − 𝟔 − 𝟕 (𝒃 − 𝒆 − 𝒈 − 𝒉) = 𝟏𝟕
• Jalur 4 = 𝟏 − 𝟒 − 𝟔 − 𝟕 (𝒄 − 𝒇 − 𝒉) = 𝟏𝟔
Jadi, jalur kritis adalah jalur 1 karena mempunyai lama penyelesaian yang
lama.
D. Permasalahan Petugas Pos Cina
Permasalahan petugas pos cina pertama kali dikemukakan oleh Mei Gan yang
berasal dari Cina pada tahun 1962. Permasalahan tersebut bermula dari seorang
tukang pos akan mengantar surat ke alamat-alamat sepanjang jalan di suatu daerah.
Bagaimana ia merencanakan rute perjalannya agar ia melewati jalan tepat sekali dan
kembali lagi ke tempat awal keberangkatannya. Persoalan ini tak lain merupakan
persoalan untuk menentukan sirkuit Euler dalam graf. Jika peta jalan tempat tukang
pos bekerja adalah graf genap, sirkut Euler akan mudah ditemukan. Jika tidak, maka
harus di cari rute terpendek yang harus di ulangi oleh tukang pos.
Permasalahan ini dapat dirumsukan kembali dengan bantuan sebuah graf
berbobot dimana graf ini merepresentasikan jejaring jalan, dan bobot tiap-tiap
rusuknya adalah panjang ruas jalan yang diwakili. Dengan rumusan ini, persoalannya
sekarang adalah menemukan sebuah walk tertutup dengan bobot total minimum
yang mencakup setiap rusuk paling sedikit satu kali. Jika graf tersebut adalah graf
Euler, maka setiap jejak Euler di dalamnya adalah walk tertutup dengan sifat yang kita
inginkan; jejak Eiler semacam ini dapat ditemukan dengan bantuan algoritma Fleury.
Jika graf tersebut bukan graf Euler, maka persoalannya menjadi jauh lebih sukar,
walaupun diketahui terdapat sebuah algoritma yang efisien untuk memecahkannya.
Untuk mengilustrasikan gagasan tersebut, kita dapat melihat pada sebuah
kasus khusus dimana terdapat tepat dua simpul berderajat ganjil pada gambar di
bawah ini
Dari gambar tersebut kita tahu bahwa simpul B dan E mempunyai simpul berderajat
ganjil. Kita dapat menemukan jejak semi Euler dari B ke E yang mempunyai lintasan
setiap rusuk persis satu kali. Untuk dapat kembali ke titik awal keberangkatan kita
dengan menempuh jarak terpendek, kita sekarang dapat menemukan lintasan
terpendek dari E ke B dengan menggunakan algoritma yang telah kita pelajari di atas.
Solusi permasalahan petugas pos cina dengan demikian dapat diperoleh dengan
menggabungkan lintasan terpendek berikut ini.
𝐸→𝐹→𝐴→𝐵
Dengan jejak semi Euler yang kita temukan lebih dulu, yang menghasilkan jarak total
sebesar 13 + 64 = 77. Perhatikan bahwa, kita menggabungkan lintasan terpendek
tersebut dengan jejak semi Euler ini, kita mendapatkan sebuah graf Euler.

Aplikasi Permasalahan Tukang Pos Cina


Penentuan rute mobil pembersih salju
Perencanaan pemeliharaan jalan raya
Analisis DNA
Routing robot
Pengecekan website
CONTOH SOAL

AYO BERLATIH!

Tentukan lintasan yang dapat dilalui tukang pos (menggunakan sirkuit Euler)!
Pembahasan :
𝐴→𝐵→𝐶→𝐷→𝐸→𝐹→𝐶→𝐸→𝐵→𝐹→𝐴

E. Permasalahan Penjual Keliling


Pada sub bab ini, permasalahan bermula dari seorang agen penjualan
(salesman) keliling hendak mengunjungi beberapa kota tertentu dan kemudian
kembal ke lokasi awal keberangkatannya dengan menempuh jarak terpendek yang
mungkin. Rute yang ia tempuh haruslah merupakan sebuah siklus.
Sebagai contoh, jika terdapat lima kota 𝐴, 𝐵, 𝐶, 𝐷 dan 𝐸, dan jika jarak di antara
kelima kota ini adalah sebagaimana diberikan dalam gambar di bawah ini, maka
terdapat dua rute yang mungkin bagi si penjual keliling adalah
siklus 𝐴 → 𝐵 → 𝐶 → 𝐷 → 𝐸 → 𝐴 dan diklus 𝐴 → 𝐷 → 𝐵 → 𝐶 → 𝐸 → 𝐴, dengan jarak
total masing-masingnya 2 + 7 + 9 + 5 + 6 = 29 dan 4 + 3 + 7 + 8 + 6 = 24,
Namun tak satupun dari kedua siklus ini merupakan jarak paling pendek. Melalui
pengamatan lebih lanjut, kita dapat menemukan jarak terpendek dimaksud, yaitu
𝐴→𝐵→𝐷→𝐸→𝐶→𝐴
dengan jarak total 26.
Permasalahan ini dapat dirumuskan kembali dengan bantuan graf terbobot.
Dalam kasus ini, persoalannya sekarang adalah menemukan sebuah siklus Hamilton
dengan bobot total paling kecil (minimum) di dalam sebah graf lengkap terbobot. Kita
juga dapat menggunakan sebuah algoritma yang efisien untuk memecahkan
permasalahan penjual keliling. Salah satu kemungkinan algoritma adalah [dengan]
menghitung jarak total untuk semua siklus Hamilton yang mungkin, namun hal ini
terlalu memakan waktu bila jumlah kotanya lebih dari lima. Sebagai contoh, jika
1
terdapat 10 kota, maka jumlah siklus yang mungkin adalah 2 (9!).

CONTOH SOAL

AYO BERLATIH!

a. Graf di atas mempunyai berapa sirkuit Hamilton?


b. Berapakah jarak total dari sirkuit Hamilton terpendek?
Pembahasan :
(4 – 1)!
a. Graf di atas memiliki = 3 sirkuit Hamilton
2

b. I1 = (a, b, c, d, a) bobot = 10 + 12 + 8 + 15 = 45
I2 = (a, c, d, b, a) bobot = 12 + 5 + 9 + 15 = 41
I3 = (a, c, b, d, a) bobot = 10 + 5 + 9 + 8 = 32
Sirkuit Hamilton terpendek I3 dengan bobot = 10 + 5 + 9 + 8 = 32
DAFTAR PUSTAKA

Adhiguna Surya. 2010. https://docplayer.info/47072694-Aplikasi-dan-algoritma-


penyelesaian-optimal-dari-persoalan-tukang-pos-cina.html. Diakses pada 8 Maret
2021.
Erna dan Vianti. 2010. rary.um.ac.id/free-contents/index.php/pub/detail/penyelesaian-
masalah-lintasan-terpendek-shortest-path-menggunakan-algoritma-a-a-star-search-
erna-vianti-46181.html. Diakses pada 7 Maret 2021.
Elsa Kusuma dkk. 2019. Aplikasi Perhitungan dan Visualisasi Jarak Terpendek Berdasarkan
Data Coordinate dengan Algoritma Dijkstra dalam kasus Pengantaran Barang di
Kawasan Jabodetabek. SISFOKOM. 08(01) : 14-23.
Raharjo, Jajo Firman dkk. 2017. Matematika Diskrit Buku Ajar Mahasiswa.
Yuri Anri Gani. 2007. https://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2007-
2008/Makalah2008/MakalahIF2251-2008-066.pdf. Diakses pada 7 Maret 2021.
soalujian-08.blogspot.com. Diakses pada 8 Maret 2021.

Anda mungkin juga menyukai