riset operasi algoritm -...

359
Riset Operasi dolom Pendekomn AlgOritm iS

Upload: dinhhanh

Post on 09-Mar-2019

394 views

Category:

Documents


23 download

TRANSCRIPT

Page 1: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

Riset Operasidolom Pendekomn AlgOritm iS

Page 2: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

KISET OPEKASiIdalam Pendekatan Algoritrms

IEM

Page 3: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

KISET OPERASIdalam Pendekatan Algoritnis

tr@

Jong Jek Slang

Penerblt ANDI Yoryakarta

Page 4: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

Ri.el OpeE3i ddlam P€ndekqton Alsorithi3Ol.h: Jong Jek tiang

Hok Cipto @ 2Oi l,2Ol4 pqdd Pcnulrs

Editor r Fl. Siqii Soyqnioro

Seftins : sri Mulqnro

D€soin Cover : Bowo

Koreklor :Amondo/Andons

Hok Cipro dilindunsi undong-undons.Dilordng mempe6dnyok orou monindohkon sebogion otou selu.uh iti buku ini dolom

behtuk opopun, bdik 5ecoro elekrronis mouPon mekdnis, termotuk memfoto.opv,

merekom otou dengdn sistem penyimPonon lqinnyd, tcnPo izin tedulL dori Penulis,

Penerbir: c.v ANDI oFrsET (Peberbit ANDI)ll. Beo 38-40, Telp. {0274) 56 I 88 I (Huntins), Fqx. (0274) 5882I2 Yoqvokorra

55281

Percerdkon: ANDI OFFSET

.ll. Beo 38-40, Telp. {O?74) 56 I 88 I (Hunrins ), Fox. (0 274) 5882I2 Yosvokorto

5528r

Pelpusldkoqr Noriondl: Kololos daldm Terbiton (KDT)

Riset Operdsi doldm Pendekotdn Alsornmk/

lons Jek Sions; - Ed. ll . _ Yosyokorro: ANDI,

23 22 2t 20 It 18 lz 16 15 14

xvi + 348 hln.r 16 x 23 Cm

109 A 7 6 5 4 3 2 I

lsBNr 9Z8 - 979 - 29 - 4354 - 2

L Operorions Reseorch

DDC'21 : 0O3

HidLvp akanbetarti

itha diJa:lani dengar, s1alegi

untuk rnmgoptimalkan isi

Ontuk or""ggangLukasihi d"" ncmbcr'lo ",ti hidup ,

Micn,Kcvin6Llva

Page 5: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

Risel Opecs doom Pendekoion Algofllrnis

laniutkan clengan contoh soal dan langkahJangkah penyelesaian menggu-

naian algoritma terscbut. Selain dad berbagai sumbcr dan hasjl penc-

litian. ma-teri dan urutan bab penyajian buku inijuga disusun berdasarkan

pengalaman' penulis mengajar mata kuliah Riset Opcrasi selama hanpir

20 tahun.

BuLu ini tcrdiri dari 10 bab Hrmpir semua materinya ldalah model dan

p€nyelcsaian Riset Opcrasi yang deleministik' sehingga sangat cocok

digunakan bagi mabasiswa yang baru pcrtama kali menrpelajari Riset

operasi.

Bab 1 bcrisi latar belakang dan sejarah ditcmukannya Riset Opel?si_ serta

pengenalan tentang cara pc buatan model matemalika

Bab 2 dan 3 membahas tentang Progran Linier, suatu model yang

menomt AndcNon (2005) adalah model paling sering digunakan dalam

dunia nyata. Bab 2 berisi pengcnalzm dan pembuatan model Program

Linier, serta penyelesaiannya dengan metode grafik. Bab 3 merupakan

kelanjutan dari bab 2, yaitu algoritma penyelesaian Program Linier

dengan metorlc Simplcks. Pembaca yang ingin rnenpelajari bab3

scbiiknya membaca dan menguasai birb2 tctlebih dahulu'

Bab 4 mcmbahas tentang Program bilangan Bulat' yang mcrupakan kasus

klusus Program Linier, yaitu jika model mcnsyaralkan penyclesaiannya

harLrs bilanlan bulat. Ada 2 algoritma penyelesaian yang dibahas, yaitu

metode Cabang dan Batas, serta metode Bidang Potong Pada bab'tjugadibahas tcntang Program 0_1, yang merupakan kasus khusus Program

Bilangan Bulat.

Bab 5 dan 6 membahas tentang masalah Transporti:rsi yang scbenamya

merupakan kasus khusus Program Linier' Meskipun prinsip penyclcsaian-

nya:sama dengan penycl€saian model Program Linier, namun detil

penyelesaiannyi agak berbeda. Pada bab 5 dibahas pcngertian dan contoh

masalah Transportasi serta penyelesaiannya, sedangkan bab 6 membahns

tentang masal;h Transshipment yang merupakan kasus khusus masalah

Tmnspodasi.

Bab 7 membahas tentang permasalahan Penugasan' yang sebcnarnyit mc-

rupakan kasus khusus masalah Transportasi. Algoritrna yang digunlkan

untuk mcnyelesaikan dikcnal dengan nanra atgoritrna I lungnriln lllnyakpcrmasalahan dunia nyata yang bisa dinyalak.rD dcngrrn rtllrsrr[rh I)crnr-

glsan, sepefti perrMsalahan pemasangan (matching), pemilihan karya-wan. dll

llirb 8 membahas tcntang model yang dapat digambarkan dengan suatu

l:ri'rgan (network). Banyak masalah yang dapat dinyatakan dengan suatu

;:r|ingan, namun di buku ini dibahas 3 diantaranya yaitu mencari pohon

r(r)lang mininum, mencari jalur terpendek, dan penjadwalan proyek.(irrcDa bcberapa permasalahan jaringan berhubungan dengan teod graf,rrr;rka padabab 8 didahului dengan pembahasan tentang dasar_dasar gral

llrb I nrembahas tentang Progam Tak Linier yang menrpakan perluasan

,|rI'r l'rogram Linicr. Ada 2 pendekatan yang dapat dipakai untuk menye-

lL siikln Program tak Linier yaitu secara analitik (Kalkulus) dan secam

rr.rrtill Dalam buku ini digunakan pendekatan pertama. Pembaca yang

,rlrrn mempelajari bab ini haruslah tcrlebih dahulu paham tentang,lrllrrcnsial parsial.

l|rb l0 merupakan modcl lain dari Riset Operasi yang dikenal dengan

rrrrr l)rogram Geometrik. Dalam bab ini dibahas tentang model ProgramI irollrclrik. seita tcknik penyelesaiannya. Juga dibahas bcbcrapa contoh,rt'lrIrsi dari bidang tcknik kimia maupun tcknik mesin.

lrirr l)cngalaman penulis mengajar, unluk mata kuliah 3 SKS hanya

rlrrl)u rrcncakup 3-5 bab saja. Untuk mahasiswa yang baru pertana kalirrr.rrr|claiari Riset Operasi, sebailoya dipilih l-5 bab dari 8 bab pertamn

l,rlr ill i. Tiap bab dapat dibedkan secarx indcpcnden, kecuali bab 3 yang

l, rrrr bisa dipclajari setelah bab 2, dan bab 6 yang harus dibahirs setelah

., lesri nrcmbahas bab 5. Bagi mahasiswa (tcrutamajurusan lcknik mesin/

Lrrrrrrr) ylng sudah mendalami Kalkulus bisa ncmpelajari bab 9 dan 10.

\r';r rcrrlsa Dlanlaatnya, ada baiknya mahasiswa diberi tugas mencari

I r.u\ (luni.r nyata yang bisa dimodelkan dan diselesaikan dcngan model

i.rrr11 rlipchjrri. Penulis pcmah mencobanya dan berhasil baik sewaktu

r! Drl)irhrs tcntrng Program Linier, jalur terpendek serta bcbcrapa model

I'r1,1 \etir't brb. dibclikan contoh soal dan laogkah penyclcsaian berda-.rl.rr rlrorilnn yang dibuhas. Pembahasan langkah penyelesaian soal

I'tLlr,rr (libull |ioci rlan divriikan dcngan bahasa sedcrhana sehingga di-lrr.rt,l,irr pcrrblcri (hpirt dcngrn nlrdah nrcrnahaminya. Tcrdapat lebih,1.!r lrr(l s(':rl hcse r l1!nyclcslliannyr ynng dllpr( dip kai untuk,,r'ri.rh,rrr rrirl.

Vi

Page 6: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

vii Riset Opqos doom Pendekolon A,lgodlmis

Di akhir bab diberikan latihan soal, yang bertujuan untuk melatih kembalipemahaman yang telah dibahas pada bab tersebut. Buku ini memuat lebihdari 200 soal latihan dengan berbagai tingkat kesulitan. Dari pengalamanpenulis, keinampuan menyelesaikan 70 % soal latihan dengan benarsudah dapal diLalegonlan mengua\al malen.

Banyak pihak yang telah bedasa selama penulis mengajar dan mcnulisbuku ini. Untuk itu dalam kesempatan ini penulis ingin bertetima kasihkepada :

L Bpk Drs B Susanta dan Ibu Dra Retno Wikan TA yang pertamakali memperkenalkan penulis pada Riset Opcrasi sewaktLr penuliskuliah di FMIPA UGM, sehingga penulis menjadi te arik danmendalaminya. Jasa kedua dosen ini tidak pemah penulislupakan. Bagian awal dalam buku ini pcnulis ambil dari matcrikuliah beliau berdua.

2. Keluarga penulis yang tclah mcmbcdkan motivasi, dulTnganmoril dan sernangat sehingga penulis mampu menyelesaikannya,setelah bebempa tahun tertunda.

3. SemtLa pihak yang tidak dnpat penulis sebutkan sntu persatu,yang tclah mcmbcrikan bantuan baik moril, sharing, sumberliteratur maupun banluan lain hingga buku ini dapat diselesaikan.Tuhan yang membalas semuanya

Akhir kata, penulis menyadari banyaknya kekurangan dalam buku ini.Untuk itu kitik dan saran yang membangun sangal penulis harapkan

Cloria in Excelsis Deo

i i siang@,yahoo.com

Prakata Edisi 2

\.r.hh melihat sambutan pembaca atas edisi pertama buku ini, penulis

[r'r;rsa pcrlu melaklrkan revisi pada edisi 2. Dengan berbagai pefiim-

lr rli r. dua bab temkhi pada cdisi I (berisi Program Tidak Linier,l( rfirr metode Kalkulus dan Program Geometrik) dihilangkan. Salah., rrr t)eiimbangannya adalah karena buku ini berisi dasar Riset Operasi-

k,rhrll h.rb yang riihilangkan dirasa terlalu teoritis dan seharusnya masuk

,l,,l,rIlr ltiset Operasi tingkat lanjut. Lagipula rMteri yang tercakup di,.|'r I pcnulis rasa lebih dali cukup untuk dibrLhas selama satu semester..,1'rr11:ri dasar pemahaman tentang konsep Risct operasi.

l'rIr t(lisi kedua buku ini ditambahkan filc animasi nnrk mempcrmudah

1*rrurhrrnran langkahJangkah penyelesaian soal-soal Animasi dibuat

irr rr1'grrnakan Power Poi . Bcrdasar pengalaman pcnulis mengajar Riselrrttrrsi. animasi yang digunakan selama mengajar sangal membantu

l" rrrrhlrnln materi, dan banyak digunakan nahasiswa untuk me-/cti4tt, r'l)irli Dr leri yang sudah diajarkan. File animasi dibual berdasatkan

lrr,1 l,rrI hngkah pcnyelesaian cottoh soal yang terdapat di buku Contoh

,,dl vlng dipilih untuk animasi adalah contoh yang mcmbahas teknik

,1,,.,r l)cnyclcs.lian masalah. l)engan menguasai teknik dasamya' maka

,,r1 rr:rl lain yang scjenis diharapkan dapat dipahami dengan lebih

r,rrrlrr1l lrile irnirnasi lcrscbut dapat juga digunakan doscn unluk mem-

;"'r"'rlrrlr I'cry i.rp.rr.l:rn n(rryrmfcian mrteri

lt.rr'r Irirhnsrswrt yang kLrliah cli jurusan yang mendalami komputasi dan

tUrr,t'r'rn n. btll) lcnl ng pcnyclcsaian Prcgram Linier dengan Melodc',|rt,lrks (hprt (librhls dcDsrrn orcndal m Akan tclapi bagi mahasiswa

'lr tInr\iIr yrr)N lcb'h nrcrr(lt'lt'lni rntrruicnrcn. disrrlnkan orcnrbahas bab

r, ,,r,,,,r1 trlrrrrnll (i,,rnk lct)cr)dck. irrltrr krris)

Page 7: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

Rlset Op€lc8i dolom Pendekoton Alqo{itnis

Agar lebih nyata dan dipahami penerapannya, mahasiswa sebaiknyadiberi tugas yal1g berhubungan langsung d€ngan penerapan metode yangdibicarakan. Misalnya, waktu membahas tentang program linier, maha-siswa diminta mencari data di kasus nyata dan membuat model pro$amlinier yang sesuai. Jika modelnya kompleks dan melibatkan banyakvariabel, penyelesaian dapat dilakukan dengan bantuan perangkat lunak.Sewaktu membahas tentang jalur terpendek, mahasiswa dapat diminrammgunduh peta dan mencari jalur terpendek artara 2 kottdaerah. Hasil-nya kemudian dibandingkan dengan keluaran perangkat hurak pencari

Jalur seperti, Google Map, Garmin, Igo Anigo, d1l

Penulis sangat berterima kasih pada penerbit Andi atas kerjasamanyayarg sangat baik selama ini. Tanpa bantuan peneftit Andi, buL:u ini tidakakan mencapai tujuannya. Penulis juga sangat ben)'ukur pada Tuhanr.ntuk kehadiran Kevin dan Elva yang selalu memberi sukacita dansemangat pada p€nulis unhrk menyelesaikan buku ini.

Akllir kata, penulis menghampkan kitik dan masukan dari pembacauntuk menyempumakan buku ini.

Gloria in Excelsis Deo

j _j [email protected]

DAFTAR ISI

Page 8: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

ni Risel Opsosr ddcm Pendel@lon Agodirnis

BAB 4 PROGRAM BTLANGAN BULAT ........................................1014.1 Progam Bilangan Bulat Sebagi Perluasan kogram Linier .101

4.2 Metode Cabang Batas ..........................................................105' 4.2.1Perrcabaigdn(banching)........................................ ..105

4.2.2 Pembatasan (Bounding)......-.....................................-....105

4.2.3 Pemilihan Titik dan Variabel yang DicadangkaD ........106

4.3 Metode Bidang Potong ................................. .-.....................1244.4 Program 0-l ............................ ..... . . .. ........ .. .. .. 135

4.4.1 Metode Enwnerasi knplisit ............-............................1354.4.2 Aplikasi Program 0 1 ........................................ ... 150

soAr,-soAl, LATIITAN .................. ..............169

BAB 5 TRA.NSPORTASI ..................................................................1735.1 Pendahuluan ........................-........173

5.2 Penyelesaian Fisibel Awal ...................................................1'765.2.1 Metode Barat Laut . ... .. ...1765.2.2 Metode Biaya Terendah ........................................... 180

5.2.3 Metode Vogel .....................182

5.3 Pengecekan Optirnalitas ............................... ......................186

5.4 Merevisi Tabel ................-....... ... 188

5.5 Kasus-kasus Masalal Transportasi ......................................194

5.5.1 Masalah Transportasi Tid4kSeimbang ......................194

5.5.2 Ada Jalar Rusak ...-............ 198

5.5.3 AltematifPenyelesaian .............................. .................202

5.5.4 Penalti Terh.dap Permintaan yang Tidak Terpenuhi 202

5.5.5 Soal Memaksimumkan ...............................................205

soAr,-soAl LATIHAN ..........,....... ..............211

BAB 6 TRANSSHIPMENT .....217

6.1 Transshipment Sebagai Perluasan Masalah TrarNportasi .217

6.2 Penyelesaian Masalah Transshipment .................................219

6.3 SoalTidak Seimbang ...........-.-..-.*-.-.-................ .. .. 227

6.4 Kasus-kasus Khusus ................ .229soAr-soAl LATIHAN ..................,..............230

BAB 7 PENUGASAN ........,........................2337.1 Permasalahan Penugasan ....................................................233

7.2 Penyelesaian Masalah Penugasan ........................................235

7.2.1 Menentukan Penyelesaian Fisibel Aw41.................... .235

nt

Page 9: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 11

PENDAHULUAN

1.1 Sejarah Riset Operasi

Masalah Riset Operasi (Operation Research) pertama kali muncul di Inggris selama Perang

Dunia II. Inggris mula-mula tertarik menggunakan metode kuantitatif dalam pemakaian radar

selama perng. Mereka menamakan pendekatan itu sebagai Operation Research karena mereka

menggunakan ilmuwan (scientist) untuk meneliti (research) masalah-masalah operasional selama

perang. Pendekatan tersebut sangat berhasil dalam memecahkan masalah-masalah operasi

konvoi, operasi anti kapal selam, strategi pengeboman, dan operasi pertambangan. Aplikasi ini

menyebabkan Riset Operasi didefinisikan sebagai : " Seni memenangkan perang tanpa

berperang " (Whitehouse (1976)).

Setelah perang usai, praktisi-praktisi Riset Operasi berkonsentrasi untuk memformalkan

ilmu/pendekatan yang mereka kembangkan selama perang dan mencari aplikasinya dalam sektor

industri. Beberapa pendekatan sudah dimulai dalam bidang industri oleh Frederick W Taylor,

yang menimbulkan ilmu tersendiri dalam bidang Teknik Industri. Taylor menyadari bahwa

sebelum revolusi industri, kebanyakan bisnis adalah bisnis kecil-kecilan yang dikelola oleh satu

orang saja. Akan tetapi dengan otomatisasi, manajemen dan spesialisasi dapat dikembangkan.

Otomatisasi tersebut menyebabkan timbulnya permasalahan baru dalam manajemen. Akibatnya,

muncul disiplin ilmu baru dalam Teknik Industri seperti Riset Pasar, Keuangan, dll. Masing-

masing disiplin ilmu mulai mencoba menyelesaikan permasalahannya sendiri-sendiri tanpa

memperhatikan organisasi secara keseluruhan.

Manajer harus menentukan hal terbaik bagi keseluruhan perusahaan, bukan pada masing-masing

bagian. Manajer harus menemukan penyelesaian optimum secara keseluruhan. Penyelesaian

optimum masing-masing bagian biasanya mudah dicari, tetapi optimum secara keseluruhan sulit

ditemukan. Riset Operasi mencoba membantu manajer dalam menyelesaikan masalah yang

Page 10: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

2 Riset Operasi : Suatu Tinjauan Algoritmis

menyangkut interaksi diantara obyek-obyek dengan mencari keputusan terbaik pada seluruh

sistem.

Riset operasi berhubungan dengan prinsip optimisasi, yaitu bagaimana cara menggunakan

sumber daya (waktu, tenaga, biaya, dll) untuk mengoptimalkan hasil. Mengoptimalkan hasil

dapat berarti meminimumkan sesuatu yang merugikan/dikeluarkan atau memaksimumkan

sesuatu yang menguntungkan/didapatkan.

Beberapa contoh kasus sehari-hari yang berhubungan dengan riset operasi antara lain :

Ada banyak jalur darat yang bisa dilalui dari Jakarta ke Jogja. Jalur mana yang paling

optimal dari segi jarak ? dari segi biaya ? dari segi waktu ?

Pembuatan kaleng untuk menyimpan makanan. Berapa ukuran kaleng (diameter dan

tinggi) agar dengan volume tertentu akan membutuhkan bahan yang seminimum

mungkin ?

Pengaturan lampu traffic light. Berapa lama lampu hijau/merah di tiap-tiap sisi harus

menyala agar panjang antrian kendaraan se minimum mungkin ?

Operations Research Society of America mendefinisikan Riset Operasi sebagai berikut :

" Riset Operasi berhubungan dengan keputusan ilmiah tentang bagaimana mengoptimalkan

rancangan dan operasi mesin maupun SDM, yang biasanya terjadi pada keadaan dimana sumber

daya dan alokasinya terbatas "

Beberapa masalah dalam industri sangat mirip dengan masalah-masalah yang ditemukan dalam

bidang militer selama Perang Dunia II. Riset Operasi hanyalah menambahkan matematika yang

sebelumnya tidak ada dalam pemecahan masalah. Metode Riset Operasi lebih banyak diterima

sejak ditemukannya komputer pada tahun 1950-an.

1.2 Aplikasi Riset Operasi

Beberapa masalah industri yang dapat dianalisa oleh Riset Operasi antara lain :

Keuangan

Analisa Cash Flow, Investasi Portofolio

Perkreditan

Page 11: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENDAHULUAN 3

Prosedur klaim dan complaint

Eksplorasi dan Purchasing

Aturan pembelian bahan dengan harga yang bervariasi

Penentuan kuantitas dan waktu pembelian

Strategi ekplorasi dan eksploitasi bahan mentah

Kebijakan penggantian barang

Distribusi

Lokasi dan ukuran gudang, pusat distribusi dan pengecer

Kebijakan distribusi

Logistik dan sistem distribusi

Perencanaan

Jumlah, ukuran dan lokasi pabrik, rumah sakit, dll beserta dengan interaksi di dalamnya.

Industri

Perencanaan produksi

Stabilisasi produksi dan karyawan, training, dll

Manajemen Konstruksi

Kebijakan maintenance, Jumlah karyawan maintenance

Pengaturan proyek, alokasi sumber daya

Marketing

Pemilihan produk, timing, perlakuan terhadap kompetitor

Penentuan jumlah salesman

Strategi periklanan

Personel

Pemilihan personel, gabungan antara umur dan ketrampilan

Page 12: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

4 Riset Operasi : Suatu Tinjauan Algoritmis

Kebijakan penerimaan karyawan, pembagian kerja

Aplikasi Riset Operasi juga mempunyai dampak yang kuat dalam studi masalah-masalah sosial

dan pekerjaan umum. Orang menjadi lebih sadar tentang bagaimana Riset Operasi dapat

membantu aktivitas pengambilan keputusan sehari-hari. Aplikasi-aplikasi dalam kesehatan

masyarakat, perencanaan kota dan sistem pendidikan kini sudah ditemukan.

1.3 Model

Riset Oprasi mencari keputusan/hasil terbaik pada penyelesaian suatu masalah yang memenuhi

beberapa kondisi yang ditentukan. Dalam prosesnya Riset Oprasi berhubungan dengan Model.

Model adalah interaksi/hubungan antara variabel-variabel yang mempengaruhi sistemnya.

Sistem yg sebenarnya

Asumsi/

Penyederhanaan

SistemModel

Gambar 1.1

Kompleksnya sistem yang dipelajari akan membuat penyesaian masalah menjadi sulit. Untuk itu

perlu untuk mereduksi "dimensi" sistem sehingga model (tiruan sistem) dapat dibuat seperti

gambar 1.1. Biasanya, diantara sekian banyak faktor/variabel yang mempengaruhi sistem, hanya

beberapa diantaranya saja yang penting dan memberi efek yang nyata terhadap sistem. Untuk

menyederhanakan sistem, faktor-faktor yang kurang penting dibuang/diasumsikan.

Perhatikan beberapa contoh model adalah sebagai berikut :

a. Model dalam fisika

Misalkan suatu benda dengan massa m ditarik dengan gaya sebesar F, dan menghasilkan

percepatan sebesar a. Hubungan antara ketiganya dapat dituliskan sebagai F = m.a

Page 13: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENDAHULUAN 5

Model F = m.a tersebut menyatakan penyederhanaan sistem yang sebenarnya. Sistem

sebenarnya tidaklah sesederhana hubungan tersebut. Beberapa faktor yang tidak berpengaruh

besar antara lain : gesekan yang timbul pada benda akibat tarikan, gaya gravitasi, dll sudah

dihilangkan (diasumsikan tidak ada). Model semacam ini seringkali kita kenal dengan

“rumus”

b. Model dalam Basis Data

Data Flow dalam proses pembuatan Sistem Informasi suatu perusahaan merupakan model

dari sistem yang sebenarnya. Data Flow hanya memuat variabel-variabel penting yang

mempengaruhi saja. Data-data seperti lokasi fisik perusahaan, personil yang duduk

didalamnya, perangkat keras yang dipakai dll dihilangkan.

1.4 Model-model Riset Operasi

Rao (1984) membagi model dalam Riset Operasi kedalam 3 bagian utama :

1. Teknik Pemrograman Matematika

Teknik Pemrograman Matematika berguna untuk mencari harga optimum fungsi

beberapa variabel yang memenuhi sekumpulan kendala. Beberapa model diantaranya

melibatkan penggunaan kalkulus dan metode numerik dalam penyelesaiannya.

Model-model yang termasuk dalam teknik ini antara lain : Metode Kalkulus,

Pemrograman Tak Linier, Pemrograman Geometri, Pemrograman Kuadratis,

Pemrograman Linier, Pemrograman Dinamis, Pemrograman Bilangan Bulat, Metode

Jaringan : CPM dan PERT, Teori Permainan, Pemrograman Terpisah, Pemrograman

Sasaran Ganda, dll

2. Teknik Pemrosesan Stokastik

Teknik Pemrosesan Stokastik dapat dipakai untuk menganalisa masalah yang

dinyatakan oleh variabel random yang diketahui distribusi probabilitasnya. Model

yang termasuk dalam teknik ini antara lain : Proses Markov, Teori Antrian, Simulasi,

Teori Reliabilitas, dll.

3. Metode Statistik

Page 14: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

6 Riset Operasi : Suatu Tinjauan Algoritmis

Metode Statistik berguna untuk menganalisa data eksperimental dan membuat model

empiris untuk mendapatkan representasi yang paling akurat tentang suatu sistem

fisis. Karena pemakaiannya yang sangat luas, metode Statistik kemudian menjadi

cabang ilmu tersendiri.

Model yang termasuk dalam bagian ini adalah : Analisa Regresi, Analisa Cluster,

Pengenalan Pola (Pattern Recognition), Rancangan Percobaan, Analisa Diskriminan,

dll.

1.5 Pembuatan Model Riset Operasi

Dalam Riset Operasi, pembuatan model melibatkan 3 komponen dasar yang penting :

a. Variabel Keputusan

Yaitu faktor-faktor yang mempengaruhi nilai tujuan

b. Tujuan

Adalah suatu fungsi atau persamaan yang menghubungkan variabel dan membentuk

kesatuan tentang apa yang ingin dicapai. Dalam Riset Operasi, kita akan

mengoptimalkan harga fungsi tujuan. Artinya kita akan mencari nilai - nilai variabel

yang akan meminimumkan / memaksimumkan fungsi tujuan.

c. Kendala

Adalah sekumpulan persamaan atau pertidaksamaan yang membatasi harga suatu

variabel. Harga variabel yang mengoptimumkan fungsi tujuan harus memenuhi

semua kendala yang ditetapkan.

Sebagai contoh perhatikanlah kasus berikut ini :

Sebuah perusahaan mebel akan membuat meja dan kursi. Setiap meja membutuhkan 5 m2 kayu

jati dan 2 m2 kayu pinus, serta membutuhkan waktu pembuatan selama 4 jam. Untuk membuat

sebuah kursi dibutuhkan 2 m2 kayu jati, 3 m

2 kayu pinus dan 2 jam kerja.

Dari penjualan sebuah meja didapat keuntungan sebesar Rp 12.000, sedangkan dari sebuah

kursi sebesar Rp 8.000.

Page 15: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENDAHULUAN 7

Ia ingin membuat sebanyak-banyaknya, tetapi kendalanya adalah keterbatasan bahan baku dan

tenaga kerja. Dalam seminggu, ia hanya mampu mendapatkan 150 m2 kayu jati, 100 m

2 kayu

pinus, serta hanya memiliki 80 jam kerja

Masalah : Berapa buah meja dan kursi yang harus ia buat mengingat kendala yang ada, supaya ia

memperoleh keuntungan yang sebanyak-banyaknya ?

Penyelesaian :

Keuntungan ditentukan oleh seberapa banyak meja dan kursi yang dibuat. Oleh karena itu dibuat

variabel keputusan sebagai berikut :

Misalkan x1 = Jumlah meja yang harus dibuat

x2 = Jumlah kursi yang harus dibuat

Tujuan :

Tujuan dari perusahaan tersebut adalah memaksimumkan keuntungan. Keuntungan sebuah meja

adalah Rp 12.000 dan sebuah kursi adalah Rp 8.000. Karena ia membuat x1 meja dan x2 kursi

(x1 dan x2 adalah besaran yang akan dicari), maka total keuntungan yang ia peroleh adalah

sebesar :

f(x1, x2) = 12.000 x1 + 8.000 x2

Fungsi inilah yang akan dioptimalkan (dalam kasus ini dimaksimalkan).

Jika tidak ada kendala yang harus dipenuhi, maka penyelesaian masalah ini menjadi mudah,

yaitu dengan membuat x1 dan x2 sebesar-besarnya. Dengan memperbanyak jumlah meja dan

kursi yang dibuat, maka perusahaan itu akan memperoleh keuntungan yang semakin besar.

Tetapi keadaan itu tidak dapat dicapai mengingat keterbatasan bahan baku (kayu jati dan pinus)

serta tenaga kerja.

Kendala :

Keterbatasan bahan baku dan tenaga kerja dapat dinyatakan dalam tabel di bawah ini :

Page 16: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

8 Riset Operasi : Suatu Tinjauan Algoritmis

Sumber Daya Meja Kursi Persediaan

Kayu Jati

Kayu Pinus

Jam Kerja

5

2

4

2

3

2

150

100

80

Dengan membuat x1 buah meja dan x2 buah kursi, maka kendala yang harus dipenuhi adalah :

5 x1 + 2 x2 150

2 x1 + 3 x2 100

4 x1 + 2 x2 80

x1, x2 0

(bisa juga ditambahkan syarat bahwa x1 dan x2 bilangan bulat

Dengan demikian, model yang sesuai untuk kasus perusahaan mebel di atas adalah :

Maksimumkan f (x1, x2) = 12.000 x1 + 8.000 x2

Kendala :

5 x1 + 2 x2 150

2 x1 + 3 x2 100

4 x1 + 2 x2 80

x1, x2 0

Page 17: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENDAHULUAN 9

LATIHAN SOAL

1. Apakah yang disebut dengan model ? Bagaimana kaitan model dengan Riset Operasi ?

2. Apakah setiap model dalam Riset Operasi dapat diselesaikan ?

3. Apakah perbedaan antara model deterministik dengan model stokastik ?

4. Sebuah perusahaan menjual 2 jenis ember plastik untuk kebutuhan rumah tangga. Pasar yang

potensial bagi ember produksinya tak terbatas.

Tiap ember harus diproses melalui 2 mesin yang berbeda. Data tentang kapasitas mesin,

waktu proses, dan keuntungan per unit tampak pada tabel di bawah ini.

Mesin

Waktu Proses per

unit (menit) Kapasitas waktu proses

yang tersedia (menit) A B

1 4 2 2000

2 3 5 3000

Keuntungan per unit

(ribu rupiah)

20 10

Buatlah model untuk menentukan campuran produksi yang paling optimal pada kondisi

berikut ini :

a. Untuk data tersebut di atas

b. Keuntungan ember A menjadi 15 ribu per unit

c. Ember A dan B memberikan keuntungan negatif (berarti kerugian) masing-masing

sebesar 10 dan 5 ribu rupiah.

d. Kapasitas mesin pertama naik menjadi 2500 menit.

5. Perusahaan mainan “Monde” mengembangkan 2 jenis permainan yang dijualnya ke toko-

toko. Meskipun permintaan pasar melebihi kemampuan produksinya, perusahaan tetap

membatasi jam kerjanya selama 50 jam per minggunya.

Permainan jenis pertama membutuhkan waktu pembuatan selama 3.5 jam, dan memberikan

keuntungan sebesar 28 (ribu) per unitnya. Permainan jenis kedua membutuhkan waktu

pembuatan selama 4 jam, tetapi memberikan keuntungan 31 (ribu). Buatlah model untuk

Page 18: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

10 Riset Operasi : Suatu Tinjauan Algoritmis

menentukan jumlah permainan dari masing-masing jenis harus dibuat setiap minggunya agar

keuntungan yang didapatnya menjadi maksimum ?

6. Sebuah pabrik mainan membuat 2 jenis kapal plastik. Data yang relevan pembuatan kapal

tersebut tampak pada tabel di bawah ini. Tentukan model program optimal bagi pembuatan

produk tersebut !

Proses Produk Waktu yang tersedia

X Y (menit)

Membuat Pola 10 5 80

Mengecat 6 6 66

Menggabungkan 5 6 90

Keuntungan per

unit

1200 1000

7. Pada waktu menyelesaikan perbaikan rumahnya, Bp Siang menemukan 100 m2 plywood

dan 80 m2 tripleks sisa yang bisa ia manfaatkan untuk membuat meja dan rak buku.

Untuk membuat sebuah meja diperlukan 16 m2 plywood dan 8 m

2 tripleks, sedangkan

untuk membuat rak buku dibutuhkan 12 m2 plywood dan 16 m

2 tripleks. Dengan menjual

hasil pembuatannya tersebut, Bp Siang mampu memperoleh keuntungan sebesar 5 (ribu)

untuk setiap meja dan 4 (ribu) untuk setiap rak buku.

Buatlah model yang optimal bagi Bp Siang dalam memanfaatkan plywood dan tripleks yang

tersisa tersebut

Page 19: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 22

PROGRAM LINIER : PENYELESAIAN GRAFIK

Seperti yang telah dibicarakan di bab 1, penyelesaian masalah Riset Operasi selalu didahului

dengan pembuatan model matematika. Dalam bab ini akan dibicarakan tentang model Program

Linier yang merupakan salah satu model yang paling banyak aplikasinya. Penyelesaian Program

Linier yang dibicarakan pada bab ini adalah dengan metode grafik

2.1 Model Program Linier

Masalah yang dapat diselesaikan dengan model program linier memiliki ciri-ciri sebagai berikut :

1. Semua variabel penyusunnya bernilai tidak negatif

2. Fungsi obyektif dapat dinyatakan sebagai fungsi linier variabel-variabelnya

3. Kendala dapat dinyatakan sebagai suatu sistem persamaan linier.

Secara matematis, bentuk standard model program linier adalah sebagai berikut :

Mencari 1 2, , ... , 0nX x x x yang memaksimumkan/meminimumkan

1 2 1 1 2 2, , ... , ...n n nf X f x x x c x c x c x

dengan kendala :

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

...

...

...

...

n n

n n

m m mn n m

a x a x a x b

a x a x a x b

a x a x a x b

Ciri pertama dipenuhi oleh banyak masalah karena pada umumnya variabel yang digunakan (x1,

x2, … , xn) menyatakan suatu kuantitas (misalnya jumlah barang, lama waktu, dll) yang hendak

dioptimalkan. Jelas bahwa nilai-nilai kuantitas tersebut tidak negatif. Akan tetapi bila diinginkan

ada variabel yang boleh bernilai negatif, model program linier tetap bisa diselesaikan dengan

suatu transformasi.

Page 20: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

12 Riset Operasi : Suatu Tinjauan Algoritmis

Ciri kedua berarti bahwa setiap variabel memiliki koefisien konstan. Tidak boleh ada variabel

yang berpangkat selain 1, dan tidak boleh ada pergandaan variabel. Ciri linier ini juga berlaku

pada semua kendalanya. Dalam beberapa kasus ada kemungkinan bentuk fungsi (atau kendala)

yang tidak linier dapat ditransformasikan ke bentuk linier. Apabila demikian, model program

linier dapat digunakan.

Contoh 2.1

Telitilah mana diantara model-model berikut ini yang dapat diseslesaikan dengan program linier

a. Maksimumkan 2

1 2 1 2, 5f x x x x

Kendala : 1 24 3x x

1 23 4 5x x

1 2, 0x x

b. Minimumkan 1 2 3 1 2 3, , 5 2f x x x x x x

Kendala : 1 1 22 4 3x x x

1 2 35 2 2x x x

1 2 3, , 0x x x

c. Minimumkan 1 2 1 2,f x x x x

Kendala : 1 24 2x x

1 23 1x x

d. Maksimumkan 1 2 3 1 2, , 3f x x x x x

Kendala : 1 2 32 1x x x

1 23 2x x

1 2 3, , 0x x x

e. Minimumkan 2 2

1 2 1 2,f x x x x

Page 21: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 13

Kendala : x x13

22 e

3

x x1 24 e

4

x x12

23 e

x1, x2 0

Penyelesaian

a. Bukan merupakan bentuk program linier karena fungsi sasarannya mengandung suku 2

2x

yang jelas bukan merupakan bentuk linier.

f. Bukan merupakan bentuk program linier meskipun fungsi sasarannya merupakan bentuk

linier dalam x1, x2 dan x3, tetapi ada kendala yang memuat bentuk pergandaan variabel (4

x1x2). Perhatikan disini bahwa meskipun fungsi sasaran maupun kendala lain sudah berbentuk

linier, namun jika ada satu kendala saja yang tidak berbentuk linier maka model tidak bisa

diselesaikan dengan program linier.

g. Model program linier. Tampak bahwa baik fungsi maupun kedua kendala merupakan bentuk

fungsi linier dalam x1 dan x2. Meskipun tidak ada syarat 1 2, 0x x , dengan sedikit

transformasi, bentuk tetap dapat diselesaikan dengan program linier

h. Model program linier dalam 3 variabel x1, x2 dan x3. Meskipun kendala berbentuk

pertidaksamaan, tapi dengan transformasi sederhana dapat dijadikan ke bentuk persamaan

(cara transformasi dibahas dalam bab 3). Perhatikan juga bahwa meskipun merupakan model

dalam 3 variabel x1, x2 dan x3, tapi tidak semua variabelnya muncul dalam fungsi sasaran

maupun kendalanya. Fungsi sasaran 1 2 3 1 2, , 3f x x x x x yang merupakan fungsi 2

variabel sama dengan fungsi 1 2 3 1 2 3, , 3 0f x x x x x x yang merupakan fungsi 3

variabel.

i. Meskipun tampak bahwa model bukan merupakan model program linier, tapi dengan suatu

transformasi dapat dijadikan bentuk program linier.

Fungsi ln(x) merupakan fungsi monoton sehingga meminimumkan f(x) sama dengan

meminimumkan ln (f(x)). Misalkan y1 = ln (x1), y2 = ln (x2). Dengan mengingat bahwa

Page 22: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

14 Riset Operasi : Suatu Tinjauan Algoritmis

ln (xy) = ln (x) + ln (y), ln (xa) = a ln (x) dan ln (e) = 1, fungsi sasaran dapat dituliskan

sebagai :

2 2 2 2

1 2 1 2 1 2 1 2, ln , ln ln lng y y f x x x x x x

= 1 2 1 22ln 2ln 2 2x x y y

Maka model hasil transformasi adalah

Minimumkan 1 2 1 2, 2 2g y y y y

Kendala 1 23 2 3y y

1 24 4y y

1 22 3 1y y

1 2, 0y y

Langkah-langkah pembuatan model program linier adalah sebagai berikut :

1. Tentukan variabel-variabel keputusan. Variabel keputusan adalah besaran yang harus

ditentukan nilainya agar optimalitas yang diinginkan tercapai

2. Buatlah fungsi sasaran, yaitu fungsi yang akan dioptimumkan. Fungsi ini harus merupakan

kombinasi linier variabel-variabel keputusan.

3. Tentukan kendala berdasarkan keterbatasan sumber daya atau karena kondisi yang harus

terpenuhi. Seperti halnya fungsi sasaran, fungsi tiap kendala harus merupakan fungsi linier

variabel keputusan. Kendala bisa berupa suatu persamaan atau pertidaksamaan.

Contoh 2.2

Seorang pengusaha bahan kimia membuat 2 macam cairan pembunuh serangga yaitu jenis

superior (C1) dan jenis standard (C2). Kedua jenis cairan dibuat dari 2 macam bahan yang sama

yaitu A dan B dengan komposisi yang berbeda.

Setiap liter cairan jenis superior dibuat dari campuran 1 unit bahan A dan 3 unit bahan B,

sedangkan setiap liter jenis standard dibuat dari campuran 2 unit bahan A dan 1 unit bahan B.

Page 23: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 15

Karena keterbatasan pasokan, setiap harinya ia hanya dapat memperoleh 20 unit bahan A dan 20

unit bahan B.

Untuk setiap liter cairan jenis superior yang ia buat, ia akan memperoleh keuntungan sebesar

30.000. Untuk setiap liter cairan jenis standard, ia akan memperoleh keuntungan sebesar 20.000.

Jika diasumsikan bahwa semua cairan yang dibuat akan laku terjual, berapa liter cairan masing-

masing jenis harus ia buat tiap harinya agar keuntungan yang didapatkan maksimum ?

Penyelesaian

Variabel keputusan yang harus ditentukan adalah jumlah (liter) cairan kedua jenis yang harus

dibuat (dengan keterbatasan bahan) agar keuntungan maksimum. Karena ada 2 macam cairan

penentu keuntungan, maka ada 2 variabel keputusan. Misalkan x1 = jumlah cairan jenis superior

dan x2 = jumlah cairan jenis standard yang dibuat. Jelas bahwa x1 dan x2 harus 0. Harga x1

dan x2 inilah yang akan dicari agar keuntungannya maksimum.

Fungsi sasaran yang hendak dimaksimumkan adalah keuntungan. Untuk tiap liter cairan C1,

keuntungan yang didapatkan adalah sebesar 30.000. Maka jika dibuat x1 liter C1, keuntungan

yang didapat adalah 30.000 C1. Secara analog, karena keuntungan dari pembuatan tiap liter C2

adalah 20.000, sedangkan yang dibuat adalah x2 liter, maka keuntungan yang didapat adalah

20.000 x2. Dengan demikian keuntungan yang didapat jika dibuat x1 liter C1 dan x2 liter C2 adalah

sebesar 30.000 x1 + 20.000 x2. Fungsi keuntungan inilah yang akan dimaksimumkan.

Fungsi sasaran : Maksimumkan 1 2 1 2, 30.000 20.000f x x x x

Apabila tidak ada kendala keterbatasan pasokan bahan maka supaya keuntungan maksimum,

pengusaha itu akan memproduksi cairan kedua jenis sebanyak-banyaknya. Akan tetapi dengan

adanya keterbatasan pasokan, maka jumlah cairan kedua jenis yang dapat dibuat (dengan

demikian juga keuntungan yang dapat ia peroleh) juga terbatas. Tabel 2.1 berikut ini menyatakan

ringkasan permasalahan yang dihadapi. Kolom paling kiri adalah bahan pembuat cairan kimia,

sedangkan kolom paling kanan adalah jumlah unit pasokan/persediaan maksimum yang tersedia

tiap harinya. Isi kolom di tengah menyatakan jumlah unit bahan A dan B yang dipakai untuk

membuat tiap liter cairan kedua jenis. Baris paling bawah menyatakan keuntungan yang

diperoleh dari penjualan tiap liter cairan kedua jenis.

Page 24: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

16 Riset Operasi : Suatu Tinjauan Algoritmis

Bahan Cairan jenis

Superior (C1)

Cairan jenis

Standard (C2)

Pasokan

Maksimum

A 1 2 20

B 3 1 20

Untung 30.000 20.000

Tabel 2.1

Perhatikan penggunaan bahan A dalam pembuatan kedua cairan. Setiap liter C1 membutuhkan 1

unit bahan A. Maka untuk membuat x1 liter C1 dibutuhkan 1.x1 = x1 unit bahan A. Secara analog,

untuk membuat seliter C2 dibutuhkan 2 unit C2. Karena yang dibuat adalah x2 liter C2, maka

dibutuhkan 2.x2 unit bahan A. Secara keseluruhan, untuk membuat x1 liter C1 dan x2 liter C2

dibutuhkan bahan A sejumlah x1 + 2 x2 unit. Karena persediaan bahan A hanya 20 unit, maka

jumlah bahan A yang digunakan untuk membuat C1 dan C2 tidak boleh melebihi 20 unit.

Didapatkan kendala : x1 + 2 x2 20.

Hal yang sama juga berlaku untuk bahan B. Untuk membuat x1 liter C1 dan x2 liter C2 dibutuhkan

bahan B sejumlah 3 x1 + x2. Karena bahan B juga hanya tersedia sejumlah 20 unit maka kendala

yang harus terpenuhi adalah 3x1 + x2 20

Model untuk masalah pengusahan kimia tersebut adalah sebagai berikut :

Maksimumkan 1 2 1 2, 30.000 20.000f x x x x

Kendala x1 + 2 x2 20

3x1 + x2 20 ; x1, x2 0.

Contoh 2.3

Perusahaan Adianto & Co memproduksi 3 buah model almari (A, B dan C). Ketiga model

membutuhkan jenis bahan baku dan tenaga kerja yang sama, tapi dengan jumlah yang berbeda-

beda. Waktu pembuatan (jam kerja) dan harga pembelian bahan baku (ratusan ribu rupiah) tiap

almari dapat dilihat pada tabel 2.2

Model Almari

A B C

Page 25: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 17

Waktu Pembuatan (jam) 7 3 6

Harga Bahan Baku (ratusan ribu) 4 4 5

Tabel 2.2

Karena keterbatasan modal, maka biaya pembelian bahan baku terbatas sebesar 200 (ratusan

ribu) rupiah dan waktu pembuatan juga terbatas selama 150 (jam kerja).

Hasil penjualan tiap almari model A, B, dan C memberikan keuntungan masing-masing sebesar

400.000, 200.000, dan 300.000.

Buatlah model program linier yang sesuai untuk menentukan jumlah almari tiap model yang

harus dibuat agar keuntungan maksimum.

Penyelesaian

Variabel keputusan yang hendak dicari nilainya adalah jumlah almari tiap jenis. Karena ada 3

jenis almari, maka ada 3 buah variabel keputusan, yaitu :

xA = jumlah almari model A yang dibuat

xB = jumlah almari model B yang dibuat

xC = jumlah almari model C yang dibuat

Jelas bahwa xA, xB dan xC 0

Keuntungan tiap almari model A adalah 400.000. Karena dibuat xA buah almari model A, maka

keuntungan dari almari model A sebesar 400.000 xA. Secara analog, keuntungan dari model B

dan C masing-masing adalah sebesar 200.000 xB dan 300.000 xC. Maka keuntungan total yang

didapat adalah 400.000 xA + 200.000 xB + 300.000 xC.

Fungsi sasaran :

Maksimumkan , , 400.000 200.000 300.000A B C A B Cf x x x x x x

Perhatikan waktu pembuatan almari pada tabel 2.2. Setiap almari model A, B dan C masing-

masing membutuhkan waktu pembuatan selama 7, 3 dan 6 jam kerja. Maka pembuatan xA

almari A, xB almari B dan xC almari C memerlukan waktu pembuatan selama 7 xA + 3 xB + 6

xC. Karena waktu yang tersedia untuk pembuatan ketiga almari adalah selama 150 jam maka

didapatkan kendala : 7 xA + 3 xB + 6 xC 150

Page 26: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

18 Riset Operasi : Suatu Tinjauan Algoritmis

Hal yang sama juga dilakukan pada pembelian bahan baku. Karena harga bahan baku almari A,

B dan C masing-masing adalah 4, 4 dan 5 (ratusan ribu), maka harga bahan baku pembuatan

xA almari A, xB almari B dan xC almari C adalah sebesar 4 xA + 4 xB + 5 xC. karena modal yang

tersedia hanya 200 (ratusan ribu), maka diperoleh kendala : 4 xA + 4 xB + 5 xC 200.

Model yang sesuai untuk perusahaan Adianto & Co adalah :

Maksimumkan , , 400.000 200.000 300.000A B C A B Cf x x x x x x

Kendala : 7 xA + 3 xB + 6 xC 150

4 xA + 4 xB + 5 xC 200

xA, xB dan xC 0

Contoh 2.4

Seorang kontraktor merencanakan membangun 3 tipe rumah (sederhana, menengah, dan

mewah) yang biaya pembuatan per unitnya adalah 20, 50 dan 80 (juta rupiah). Dana yang

tersedia adalah sebesar 4000 (juta rupiah).

Menurut peraturan pemerintah, dari keseluruhan rumah yang ia bangun, minimal 50 %

diantaranya harus rumah sederhana dan paling banyak 20 % diantaranya adalah rumah mewah.

Keuntungan yang diperoleh dari penjualan sebuah rumah tipe sederhana, menengah, dan mewah

masing-masing adalah sebesar 5, 15 dan 30 (juta rupiah).

Berapa jumlah rumah tiap tipe yang harus ia bangun (mengingat dana yang tersedia dan

peraturan pemerintah) agar keuntungan yang ia dapatkan maksimum ?

Penyelesaian

Variabel keputusan adalah jumlah rumah tipe sederhana, menengah dan mewah yang dibangun.

Misalkan

x1 = jumlah rumah tipe sederhana yang dibangun

Page 27: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 19

x2 = jumlah rumah tipe menengah yang dibangun

x3 = jumlah rumah tipe mewah yang dibangun

Jelas bahwa x1, x2 dan x3 0

Fungsi sasarannya adalah memaksimumkan keuntungan yang didapatkan. Karena keuntungan

tipe sederhana, menengah dan mewah maaing-masing adalah 5, 15 dan 30 maka fungsi

sasarannya dapat dinyatakn sebagai :

Maksimumkan 1 2 3 1 2 3, , 5 15 30f x x x x x x

Ada 2 macam kendala yang harus dipenuhi yaitu keterbatasan dana dan peraturan pemerintah.

Karena biaya pembuatan sebuah rumah tipe sederhana, menengah dan mewah masing-masing

sebesar 20, 50 dan 80 (juta), sedangkan dana yang dimiliki sebesar 4000 (juta), maka kendala

keterbatasan biaya dapat dinyatakan sebagai 20 x1 + 50 x2 + 80 x3 4000.

Jumlah keseluruhan rumah yang dibuat adalah x1 + x2 + x3. Kendala bahwa minimal 50 %

diantaranya harus rumah sederhana dapat dinyatakan sebagai x1 0.5 (x1 + x2 + x3). Kendala

bahwa maksimal 20 % diantaranya harus rumah mewah dapat dinyatakan sebagai x3 0.2 (x1 +

x2 + x3).

Jadi model yang sesuai adalah

Maksimumkan 1 2 3 1 2 3, , 5 15 30f x x x x x x

Kendala : 20 x1 + 50 x2 + 80 x3 4000

x1 0.5 (x1 + x2 + x3)

x3 0.2 (x1 + x2 + x3)

x1, x2 dan x3 0

Contoh 2.5

Seorang petani akan menanam 2 jenis pohon, yaitu A dan B pada area seluas 4400 m2. Sebuah

pohon A membutuhkan lahan seluas 25 m2, sedangkan pohon B membutuhkan lahan seluas 40

Page 28: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

20 Riset Operasi : Suatu Tinjauan Algoritmis

m2. Kebutuhan air pohon A adalah 30 unit dan pohon B sebanyak 15 unit untuk tiap

pohonnya. Air yang tersedia hanyalah 3300 unit.

Perbandingan pohon B dan pohon A yang harus ditanam tidak boleh kurang dari 6/19 dan

tidak boleh lebih dari 17/8.

Keuntungan yang didapat dari sebuah pohon A diperkirakan 1,5 kali pohon B. Berapa jumlah

pohon dari masing-masing jenis harus ditanam supaya keuntungannya maksimum ?

Penyelesaian

Variabel keputusan adalah jumlah pohon jenis A dan B yang harus ditanam. Misalkan

xA = jumlah pohon A yang ditanam

xB = jumlah pohon B yang ditanam

Jelas bahwa xA dan xB 0

Fungsi sasaran adalah memaksimumkan keuntungan. Misalkan keuntungan dari sebuah pohon B

= k. Maka keuntungan dari sebuah pohon A = 1.5 k. Keuntungan total yang didapat dengan

menanam xA pohon A dan xB pohon B adalah sebesar 1.5 k xA + k xB = k (1.5 xA + xB). Fungsi

sasaran :

Maksimumkan Ax , 1.5B A Bf x k x x

Karena pohon A dan B masing-masing memerlukan lahan seluas 25 dan 40 m2, sedangkan lahan

yang tersedia seluas 4400 m2, maka kendala keterbatasan lahan dapat dinyatakan sebagai 25

xA + 40 xB 4400

Kebutuhan air sebuah pohon A dan B masing-masing adalah 30 dan 15 unit, sedangkan

persediaan air sebanyak 3300 unit. Maka kendala keterbatasan air dapat dinyatakan sebagai 30

xA + 15 xB 3300

Kendala perbandingan jumlah pohon B dan A yang tidak boleh kurang dari 6/19 dapat

dinyatakan sebagai 6

19

B

A

x

x. Secara analog, kendala perbandingan jumlah pohon B dan A yang

tidak boleh lebih dari 17/8 dapat dinyatakan sebagai 17

8

B

A

x

x.

Model yang sesuai bagi petani adalah :

Page 29: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 21

Maksimumkan Ax , 1.5B A Bf x k x x

Kendala : 25 xA + 40 xB 4400

30 xA + 15 xB 3300

6

19

B

A

x

x atau 19 xB – 6 xA 0

17

8

B

A

x

x atau 8 xB – 17 xA 0

xA, xB 0

Contoh 2.6

Perusahaan alat rumah tangga “KAA” ingin mengiklankan produknya di 3 media yaitu TV

(siang dan malam hari), radio dan koran. Tujuannya adalah untuk menjangkau sebanyak

mungkin langganan potensial. Tabel 2.3 menunjukkan data hasil penelitian.

Media Iklan

TV

(siang)

TV

(malam)

Radio Koran

Biaya Iklan per tayang (juta) 4 7.5 3 1.5

Jumlah langganan (ribuan) potensial yang

dapat dijangkau untuk tiap tayangan

400 900 500 200

jumlah langganan wanita (ribuan) yang dapat

dijangkau tiap tayangan

300 400 200 100

Tabel 2.3

Anggaran yang disediakan untuk seluruh iklan adalah sebesar 80 juta, dan maksimum 50 juta

diantaranya untuk iklan di TV. Jumlah langganan wanita yang dijangkau harus paling sedikit 2

juta orang.

Disamping itu, jumlah iklan di TV siang hari harus paling sedikit 3 kali tayangan, dan paling

sedikit 2 kali tayangan waktu malam. Jumlah iklan di radio dan koran masing-masing harus

antara 5 – 10 kali.

Page 30: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

22 Riset Operasi : Suatu Tinjauan Algoritmis

Tentukan cara pengaturan iklan yang paling optimal.

Penyelesaian

Variabel keputusan dalam masalah ini adalah jumlah iklan di tiap media. Misalkan

x1 = jumlah iklan di TV siang hari

x2 = jumlah iklan di TV malam hari

x3 = jumlah iklan di radio

x4 = jumlah iklan di koran

Karena fungsi sasaran adalah untuk menjangkau sebanyak mungkin langganan potensial, maka

fungsi sasran yang sesuai adalah :

Maksimumkan 1 2 3 4 1 2 3 4, , , 400 900 500 200f x x x x x x x x (ribuan)

Kendala :

Anggaran maksimum = 80 juta dapat dinyatakan sebagai : 4 x1 + 7.5 x2 + 3 x3 + 1.5 x4

80

Anggaran maksimum 50 juta untuk iklan di TV dapat dinyatakan sebagai kendala : 4 x1

+ 7.5 x2 50

Jumlah langganan wanita yang dijangkau harus paling sedikit 2 juta orang dapat

dinyatakan sebagai kendala : 300 x1 + 400 x2 + 200 x3 + 100 x4 2000 atau 3 x1 + 4 x2

+ 2 x3 + x4 20

Jumlah iklan di TV siang hari harus paling sedikit 3 kali tayangan, dan paling sedikit 2

kali tayangan waktu malam dapat dinyatakan sebagai 2 buah kendala : x1 3 dan x2

2

Jumlah iklan di radio dan koran masing-masing harus antara 5 – 10 kali dapat dinyatakan

sebagai 4 buah kendala, masing masing : x3 5, x3 10, x4 5 dan x4 10.

Model yang sesuai untuk permasalahan di perusahaan “KAA” adalah sebagai berikut :

Maksimumkan 1 2 3 4 1 2 3 4, , , 400 900 500 200f x x x x x x x x

Kendala : 4 x1 + 7.5 x2 + 3 x3 + 1.5 x4 80

Page 31: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 23

4 x1 + 7.5 x2 50

3 x1 + 4 x2 + 2 x3 + x4 20

x1 3

x2 2

x3 5

x3 10

x4 5

x4 10

x1, x2, x3, x4 0

2.2 Penyelesaian Grafik

Ada 3 metode penyelesaian masalah program linier yang umum dipakai yaitu :

Metode grafik

Metode simpleks

Metode titik interior.

Sesuai dengan namanya, metode grafik menggunakan grafik kendala sebagai alat untuk mencari

titik optimumnya. Kendala dalam program linier selalu akan membentuk bidang datar segi–n

yang merupakan himpunan konveks sehingga titik optimum pasti terjadi pada titik sudut bidang

datar yang terbentuk. Metode ini relatif mudah dikerjakan secara manual, tetapi terbatas untuk 2

kendala saja. Kendala dalam model program linier menyatakan dimensi ruang. Ini berarti dengan

jumlah kendala 4, maka masalah tidak dapat digambarkan grafiknya sehingga metode grafik

tidak dapat dipakai. Meskipun secara teoritis dapat dikerjakan, namun masalah dengan 3 kendala

secara praktis sulit digambarkan (karena penggambaran dikerjakan dalam 3 dimensi) sehingga

sulit dikerjakan dengan metode grafik.

Metode simpleks mengatasi masalah yang ada pada metode grafik. Prinsip kerjanya sama yaitu

secara iteratif mencari titik sudut bidang datar yang menghasilkan nilai optimum. Akan tetapi

Page 32: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

24 Riset Operasi : Suatu Tinjauan Algoritmis

pencarian tidak dilakukan secara grafik, melainkan secara numerik sehingga dapat dilakukan

untuk berapapun jumlah variabel yang digunakan. Ini berarti bahwa keterbatasan bidang dimensi

yang dihadapi metode grafik dapat teratasi, meskipun proses yang harus dikerjakan relatif lebih

banyak. Akan tetapi dengan bantuan komputer, proses iteratif dapat dilakukan dengan cepat.

Berbeda dengan metode simpleks yang mencari titik optimal dengan menyelidiki titik sudut

bidang datar, metode titik interior memulai iterasinya dari titik dalam (bukan titik sudut) bidang

datar dan secara iteratif menuju pada titik sudut yang optimum.

Pada bab ini akan dibahas cara penyelesaian dengan metode grafik dan pada bab berikutnya

dibahas kedua metode yang lain.

Langkah-langkah penyelesaian program linier dengan metode grafik adalah sebagai berikut :

j. Buat model yang sesuai dengan masalah yang ada

k. Gambar grafik kendala-kendalanya

l. Tentukan daerah fisibel, yaitu daerah dalam grafik yang memenuhi semua kendala

m. Hitung nilai fungsi di titik-titik sudut segi-n daerah fisibel

n. Cari titik yang menghasilkan nilai fungsi yang paling optimal.

Untuk mengetahui lebih jelas tentang langkah-langkah yang harus dilakukan, perhatikan

beberapa contoh berikut ini.

Contoh 2.7

Selesaikan contoh 2.2

Penyelesaian

Model yang akan diselesaikan adalah :

Maksimumkan 1 2 1 2, 30.000 20.000f x x x x = 3 x1 + 2 x2 (puluhan ribu)

Kendala x1 + 2 x2 20

Page 33: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 25

3x1 + x2 20 ; x1, x2 0.

Langkah pertama yang harus dilakukan adalah menggambarkan grafik kendalanya (bukan grafik

fungsi sasaran). Karena hanya ada 2 variabel, maka berarti grafiknya digambarkan dalam bidang

2 dimensi. Syarat x1, x2 0 berarti bahwa titik yang diperhatikan hanyalah titik yang terletak

pada kuadran I.

Untuk menggambarkan grafik yang berbentuk pertidaksamaan, mula-mula gantilah

pertidaksamaan menjadi suatu persamaan. Grafiknya akan berupa suatu garis lurus. Garis ini

akan membagi bidang di kuadran I menjadi 2 bagian. Tentukan salah satu dari kedua bagian

yang merupakan daerah penyelesaian kendala.

Perhatikan kendala x1 + 2 x2 20. Jika dijadikan bentuk persamaan, akan didapat garis dengan

persamaan x1 + 2 x2 = 20. Teori dalam geometri menyatakan bahwa dari 2 titik berbeda (dalam

dimensi berapapun), kita hanya bisa menggambarkan satu garis lurus yang melalui kedua titik

tersebut.

x1

x2

A (0,10)

B (20,0)

x1+ 2x2 = 20

Gambar 2.1

Untuk menggambar garis x1 + 2 x2 = 20, cari 2 titik berbeda yang memenuhi persamaan.

Sebenarnya banyak sekali titik yang memenuhi persamaan yang dapat kita pilih. Namun yang

paling mudah adalah memilih titik yang salah satu variabelnya berharga = 0. Untuk x1 = 0, maka

0 + 2 x2 = 20, atau x2 = 10. Didapat titik A (0, 10). Untuk x2 = 0, maka x1 + 2 (0) = 20, atau x1

= 20. Didapat titik B (20, 0). Gambar 2.1 menunjukkan garis x1 + 2 x2 = 20 yang digambarkan

dengan cara menghubungkan titik A dan titik B. Sumbu horisontal adalah sumbu x1 dan sumbu

vertikal adalah sumbu x2.

Garis x1 + 2 x2 = 20 membagi kuadran I menjadi 2 bagian yaitu segitiga AOB dan bidang tak

terbatas di sisi kanan atas. Kendala x1 + 2 x2 20 merupakan salah satu bidang diantaranya.

Page 34: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

26 Riset Operasi : Suatu Tinjauan Algoritmis

Untuk memastikan bidang mana yang menyatakan kendala, diambil sembarang titik uji yang

tidak terletak pada garis x1 + 2 x2 = 20. Kemudian titik uji ini dicobakan ke kendala x1 + 2 x2

20. Jika pertidaksamaan benar, berarti bidang dimana titik uji berada merupakan bidang yang

memenuhi pertidaksamaan. Sebaliknya, jika pertidaksamaan bernilai salah, berarti bidang yang

memenuhi pertidaksamaan adalah bidang yang tidak memuat titik uji. Untuk mempermudah,

ambil titik (0, 0). Jika disubstitusikan, akan didapat 0 + 2 (0) 20. Pertidaksamaan ini bernilai

benar. Jadi bidang yang dibatasi segitiga AOB merupakan penyelesaian kendala x1 + 2 x2 20.

Daerah yang diarsir pada gambar 2.2 menyatakan penyelesaian kendala x1 + 2 x2 20.

x1

x2

A (0,10)

B (20,0)

x1+ 2x2 = 20

Gambar 2.2

x1

x2

A (0,10)

B (20,0)

x1+ 2x2 = 203x1+ x2 = 20

C (0, 20)

D (20/3, 0)

Gambar 2.3

Penggambaran bidang kendala 3x1 + x2 20 dilakukan dengan cara analog. Jika dijadikan

persamaan, didapatkan persamaan garis 3x1 + x2 = 20. Jika x1 = 0, maka x2 = 20. Didapat titik

C (0, 20). Jika x2 = 0, maka x1 = 20/3. Didapat titik D ( 203 , 0) (lihat gambar 2.3).

Page 35: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 27

Garis 3x1 + x2 = 20 membagi kuadran I menjadi 2 bagian yaitu segitiga COD dan bidang tak

berhingga di sisi kanan. Jika kembali diambil titik (0, 0) sebagai titik uji untuk menentukan

bidang yang memenuhi pertidaksamaan 3x1 + x2 20, maka didapat 3 (0) + 0 20 yang

merupakan pertidaksamaan yang benar. Jadi penyelesaian pertidaksamaan 3x1 + x2 20 adalah

segitiga COD.

x1

x2

A (0,10)

B (20,0)

x1+ 2x2 = 203x1+ x2 = 20

C (0, 20)

D (20/3, 0)

E

Gambar 2.4

Perpotongan bidang yang memenuhi semua kendala disebut daerah fisibel. Daerah fisibel dalam

kasus ini adalah perpotongan bidang AOB dan bidang COD. Daerah fisibel berupa segi-4

AEDO (bagian yang diarsir pada gambar 2.4).

Langkah berikutnya adalah mencari koordinat titik sudut daerah fisibel. Diantara keempat titik

sudutnya, yang belum diketahui koordinatnya adalah titik E. Karena titik E merupakan

perpotongan garis x1 + 2 x2 = 20 dan 3 x1 + x2 = 20, maka koordinatnya didapat dengan jalan

menyelesaikan kedua persamaan tersebut.

1 21 2

1 21 2

1

1

2 202 20 1

6 2 403 20 2

5 20

4

x xx x

x xx x

x

x

Dengan mensubstitusikan x1 = 4 ke persamaan x1 + 2 x2 = 20 didapat x2 = 8. Jadi E = (4, 8).

Langkah selanjutnya adalah menentukan nilai fungsi di titik-titik sudut daerah fisibel. Hasilnya

dapat dilihat pada tabel 2.4

Titik Sudut Daerah Fisibel Nilai Fungsi = f(x1, x2) = 3 x1 + 2 x2

O (0, 0) 3(0) + 2(0) = 0

Page 36: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

28 Riset Operasi : Suatu Tinjauan Algoritmis

A (0, 10) 3(0) + 2(10) = 20

E (4, 8) 3(4) + 2(8) = 28

D (20/3, 0) 3(20/3) + 2(0) = 20

Tabel 2.4

Dari tabel 2.4 tampak bahwa nilai fungsi maksimum terjadi pada titik E (4, 8) dengan nilai fungsi

28. Jika dikembalikan ke masalah semula, maka supaya keuntungannya maksimum, pengusaha

itu harus membuat 4 liter cairan C1 dan 8 liter cairan C2. Keuntungan yang didapat = 280.000

Contoh 2.8

Selesaikan contoh 2.5

Penyelesaian

Dari contoh 2.5, didapat model yang akan diselesaikan :

Maksimumkan Ax , 1.5B A Bf x k x x

Kendala : 25 xA + 40 xB 4400

30 xA + 15 xB 3300

6

19

B

A

x

x atau 19 xB – 6 xA 0

17

8

B

A

x

x atau 8 xB – 17 xA 0

xA, xB 0

Karena hanya ada 2 variabel xA dan xB, maka metode grafik dapat dipakai untuk menyelesaikan

permasalahan. Misalkan sumbu mendatar menyatakan sumbu xA dan sumbu tegak menyatakan

xB. Langkah pertama adalah mencari daerah fisibel.

Kendala 25 xA + 40 xB 4400

Page 37: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 29

Jadikan pertidaksamaan menjadi persamaan 25 xA + 40 xB = 4400 Perpotongan dengan

sumbu xA dicari dengan mengambil xB = 0. 25 xA + 40 (0) = 4400. Maka xA = 176. Didapat

titik A = (176, 0)

Perpotongan dengan sumbu xB dicari dengan mengambil xA = 0. 25 (0) + 40 (xB) = 4400.

Maka xB = 110. Didapat titik B = (0, 110). Grafik persamaan 25 xA + 40 xB = 4400

merupakan garis lurus yang menghubungkan titik A (176, 0) dan B (0, 110)

Karena titik (0, 0) tidak terletak pada garis 25 xA + 40 xB = 4400, maka titik (0, 0) dapat

dipakai sebagai titik uji untuk menentukan daerah penyelesaian pertidaksamaan 25 xA + 40

xB 4400. Jika titik (0, 0) disubstitusikan ke pertidaksamaan, didapat 25(0) + 40(0)

4400. Pertidaksamaan ini bernilai benar sehingga daerah dimana titik (0, 0) terletak, yaitu

segitiga AOB merupakan daerah penyelesaiannya.

Kendala 30 xA + 15 xB 3300

Jadikan pertidaksamaan menjadi persamaan 30 xA + 15 xB = 3300 Jika xB = 0, maka

persamaan menjadi 30 xA + 15 (0) = 3300. Maka xA = 110. Didapat titik C = (110, 0)

Sebaliknya, jika xA = 0, maka persamaan menjadi 30 (0) + 15 (xB) = 3300. Maka xB = 220.

Didapat titik D = (0, 220)

xA

xB

B (0,110)

A (176,0)

25xA+ 40xB = 4400

D (0,220)

C (110,0)

30xA+ 15xB = 3300

E

Gambar 2.5

Titik (0, 0) tidak terletak pada garis 30 xA + 15 xB = 3300, maka titik (0, 0) dapat dipakai

sebagai titik uji untuk menentukan daerah penyelesaian pertidaksamaan 30 xA + 15 xB

3300. Jika titik (0, 0) disubstitusikan ke pertidaksamaan, didapat 30(0) + 15(0) 3300.

Page 38: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

30 Riset Operasi : Suatu Tinjauan Algoritmis

Pertidaksamaan ini bernilai benar sehingga daerah dimana titik (0, 0) terletak, yaitu segitiga

COD merupakan daerah penyelesaiannya.

Irisan segitiga AOB dan COD (segi empat OBEC) merupakan daerah yang diarsir pada

gambar 2.5. Daerah ini bukanlah daerah fisibel karena masih ada 2 kendala lain yang harus

terpenuhi.

Kendala 19 xB – 6 xA 0

Jadikan pertidaksamaan menjadi persamaan 19 xB – 6 xA = 0. Jika xB = 0, maka xA = 0. Titik

yang lain harus dicari dengan mengambil xB selain 0. Misal xB = 60, maka xA = 190.

Didapat Grafik berupa garis yang menghubungkan titik (190, 60) dengan O.

Untuk mencari daerah penyelesaian pertidaksamaan 19 xB – 6 xA 0, titik (0, 0) tidak bisa

dipakai sebagai titik uji karena titik (0, 0) terletak pada garis 19 xB – 6 xA = 0. Untuk itu

dicari sembarang titik yang tidak terletak pada garis 19 xB – 6 xA = 0. Misal diambil titik

(10, 0). Jika disubstitusikan ke pertidaksamaan, didapat 19 (0) – 6 (10) 0, yang

merupakan pertidaksamaan yang salah. Maka daerah dimana titik (10, 0) berada bukanlah

daerah penyelesaian. Daerah penyelesaian adalah daerah di sisi kiri garis 19 xB – 6 xA = 0

Kendala 8 xB – 17 xA 0

Persamaan yang akan dicari garisnya adalah 8 xB – 17 xA = 0. Titik (0, 0) memenuhi

persamaan tersebut sehingga merupakan salah satu titik yang dicari. Titik yang lain didapat

dengan mengambil xA = 80. Maka xB = 170. Grafik berupa garis yang menghubungkan titik

O dengan titik (80, 170).

Misalkan titik uji yang diambil adalah kembali titik (10, 0). Jika disubstitusikan ke

pertidaksamaan maka didapat 8 (0) – 17 (10) 0 yang merupakan pertidaksamaan yang

benar. Maka daerah di sisi kiri (atas) garis 8 xB – 17 xA = 0 merupakan daerah penyelesaian

pertidaksamaan 8 xB – 17 xA 0.

Daerah fisibel yang merupakan perpotongan daerah yang didapat dari 4 kendala merupakan segi-

4 OFEG (lihat gambar 2.6).

Page 39: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 31

xA

xB

B (0,110)

A (176,0)

25xA+ 40xB = 4400

D (0,220)

C (110,0)

30xA+ 15xB = 3300

19xB - 6xA = 0

8xB - 17xA = 0

EF

G

Gambar 2.6

Langkah selanjutnya adalah menentukan koordinat titik E, F dan G. Dari gambar 2.6 tampak

jelas bahwa titik E, F dan G merupakan perpotongan 2 buah garis kendala. Penyelesaian kedua

persamaan akan menghasilkan koordinat titik yang sesuai. Selengkapnya dapat dilihat pada tabel

2.5.

Titik Persamaan garis yang berpotongan Koordinat titik

potong

E 25 xA + 40 xB = 4400 dengan 30 xA + 15 xB = 3300 (80, 60)

F 25 xA + 40 xB = 4400 dengan 8 xB - 17 xA = 0 (40, 85)

G 19 xB - 6 xA = 0 dengan 30 xA + 15 xB = 3300 (95, 30)

Tabel 2.5

Tabel 2.6 menunjukkan nilai fungsi di titik O, E, F, dan G. Tampak bahwa nilai maksimum

terjadi pada titik E (80, 60) dengan nilai maksimum = 180. Jika dikembalikan ke masalah

semula, maka supaya petani tersebut mendapatkan keuntungan maksimum, maka ia harus

menanam 80 pohon A dan 60 pohon B.

Titik Sudut

Daerah Fisibel Nilai Fungsi = f(x1, x2) = 1.5 xA + xB

O (0, 0) 1.5 (0) + (0) = 0

E (80, 60) 1.5 (80) + (60) = 180

F (40, 85) 1.5 (40) + (85) = 145

G (95, 30) 1.5 (95) + (30) = 172.5

Tabel 2.6

Page 40: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

32 Riset Operasi : Suatu Tinjauan Algoritmis

Dalam pencarian nilai optimum fungsi, evaluasi dilakukan di semua titik sudut daerah fisibel.

Adalah pendapat yang salah jika nilai optimum pasti selalu terjadi pada titik yang tidak terletak

pada sumbu-sumbu koordinat. Ada kalanya nilai fungsi optimum justru terletak pada titik di

sumbu koordinat (dalam contoh 2.8 terletak di titik F atau G). Akan tetapi, titik optimum pasti

berada pada titik sudut daerah fisibel.

Contoh 2.9

Minimumkan f (x1, x2) = 3 x1 + 2 x2

Kendala : x1 + x2 8

6 x1 + 4 x2 12

4 x1 + 8 x2 = 20

x1, x2 0

Penyelesaian

Kendala x1 + x2 8

Jika x1 = 0 maka x2 = 8. Didapat titik A (0, 8). Jika x2 = 0, maka x1 = 8. Didapat B (8, 0).

Garis x1 + x2 = 8 merupakan garis yang menghubungkan titik A dan B. Jika titik uji (0, 0)

dimasukkan dalam kendala, maka pertidaksamaan bernilai benar sehingga daerah

penyelesaian kendala adalah segitiga AOB.

Kendala 6 x1 + 4 x2 12

Jika x1 = 0 maka x2 = 3. Didapat titik C (0, 3). Jika x2 = 0, maka x1 = 2. Didapat D (2, 0).

Garis 6 x1 + 4 x2 = 12 merupakan garis yang menghubungkan titik C dan D. Jika titik uji (0,

0) dimasukkan dalam kendala, maka pertidaksamaan bernilai salah sehingga daerah

penyelesaian kendala adalah daerah tak berhingga di sisi kanan/atas garis CD.

Irisan daerah penyelesaian kendala – 1 dan kendala 2 berupa segi empat ABDC yang

tampak pada daerah berarsir pada gambar 2.7

Page 41: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 33

x1

x2

C (0,3)

B (8,0)

A (0,8)

D (2,0)

x1+ x2 = 8

6x1+ 4x2 = 12

Gambar 2.7

Kendala 4 x1 + 8 x2 = 20

Tidak seperti kendala yang lain, daerah penyelesaian kendala persamaan hanyalah berupa

suatu garis (bukan suatu bidang datar).

Jika x1 = 0, maka x2 = 2.5. Didapat E (0, 2.5). Sebaliknya, jika x2 = 0 maka x1 = 5. Didapat

F (5, 0). Garis EF adalah daerah penyelesaiannya.

Daerah fisibel pada soal ini adalah garis yang menghubungkan titik F dengan titik G

(perpotongan garis EF dan CD). Dalam gambar 2.8, daerah fisibel ditandai dengan garis tebal.

Perhatikan bahwa daerah fisibel tidak selalu berupa segi – n, tapi bisa berupa garis lurus, bahkan

hanya sebuah titik saja.

x1

x2

C (0,3)

B (8,0)

A (0,8)

D (2,0)

x1+ x2 = 8

F (5,0)

E

(0,2.5)

6x1+ 4x2 = 12 4x1+ 8x2 = 20

G

Gambar 2.8

Page 42: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

34 Riset Operasi : Suatu Tinjauan Algoritmis

Titik G adalah perpotongan garis 4x1 + 8x2 = 20 dengan garis 6x1 + 4x2 = 12. Penyelesaian

kedua persamaan menghasilkan G ( 12 , 9

4 ).

Nilai fungsi di titik F = f (5, 0) = 3 (5) + 2 (0) = 15. Nilai fungsi di titik G = f ( 12 , 9

4 ) = 3 ( 12 ) +

2 ( 94 ) = 6. Titik minimumnya adalah titik G ( 1

2 , 94 ) dengan nilai minimum = 6

2.4 Kejadian Khusus

2.4.1 Alternatif Penyelesaian

Suatu model Program Linier dikatakan memiliki alternatif penyelesaian apabila ada 2 titik atau

lebih yang memiliki nilai optimum yang sama. Jika 2 titik sudut daerah fisibel memiliki nilai

optimum yang sama, maka semua titik yang terletak diantaranya juga akan memiliki nilai

optimum yang sama pula. Jadi ada tak berhingga penyelesaian. Untuk lebih jelasnya, perhatikan

contoh 2.10 berikut ini.

Contoh 2.10

Perhatikan kembali contoh 2.2. Misalkan keuntungan yang didapat dari setiap liter cairan C2

adalah 10.000 (bukan 20.000). Tentukan jumlah cairan C1 dan C2 yang harus dibuat supaya

keuntungannya maksimum !

Penyelesaian

Model semula sudah diselesaikan dalam contoh 2.7 yang menghasilkan titik maksimum E (4, 8).

Jika keuntungan dari C2 berubah menjadi 10.000 per liter, maka model berubah menjadi :

Maksimumkan 1 2 1 2, 30.000 10.000f x x x x = 3x1 + x2 (puluhan ribu)

Kendala x1 + 2 x2 20

3x1 + x2 20

x1, x2 0

Page 43: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 35

Perhatikan bahwa kendala tidak berubah sehingga grafik dan daerah fisibelnya sama dengan

contoh 2.7 (ingat bahwa grafik adalah grafik kendala, bukan grafik fungsi sasaran). Karena

daerah fisibel tetap, maka titik sudutnyapun juga tetap. Namun nilai fungsi di tiap titik akan

berubah karena fungsi sasaran berubah. Nilai fungsi yang baru tampak pada tabel 2.7

Titik Sudut Daerah Fisibel Nilai Fungsi = f(x1, x2) = 3 x1 + x2

O (0, 0) 3(0) + (0) = 0

A (0, 10) 3(0) + (10) = 10

E (4, 8) 3(4) + (8) = 20

D (20/3, 0) 3(20/3) + (0) = 20

Tabel 2.7

Nilai maksimum fungsi adalah 20 yang terjadi pada titik E dan titik D (lihat kembali gambar

2.4). Ini berarti soal memiliki alternatif penyelesaian. Setiap titik diantara ruas garis DE

(persamaan garisnya 3x1 + x2 = 20 dengan 4 x1203 ) akan memiliki nilai fungsi = 20.

Sebagai contoh, jika x1 = 5, maka x2 = 5. f (5, 5) = 3 (5) + 5 = 20. Demikian pula titik (6,2) yang

terletak diantara DE memiliki nilai fungsi f (6, 2) = 3 (6) + 2 = 20 pula.

2.4.2 Daerah Fisibel Tak Terbatas

Daerah fisibel adalah daerah yang memenuhi semua kendala. Ada kalanya daerah fisibel

merupakan daerah yang tak terbatas seperti pada contoh 2.11. Meskipun daerah fisibelnya tak

terbatas, bukan berarti nilai optimumnya tak terbatas pula.

Contoh 2.11

Minimumkan f (x1, x2) = 2 x1 + 3 x2

Kendala x1 + x2 3

x1 – 2 x2 4

x1, x2 0

Page 44: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

36 Riset Operasi : Suatu Tinjauan Algoritmis

Penyelesaian

Dengan cara penggambaran grafik seperti pada contoh-contoh terdahulu, didapat gambar 2.9.

Perhatikan bahwa daerah fisibel merupakan daerah yang tak terbatas. Titik sudut yang terbentuk

adalah titik A (0, 3), B (3, 0) dan titik D (4, 0)

x1

x2

A (0,3)

B (3,0) D (4,0)

x1+ x2 = 3

x1 - 2x2 = 4

C (0,-2)

Gambar 2.9

f (A) = f (0, 3) = 2 (0) + 3 (3) = 9

f (B) = f (3, 0) = 2 (3) + 3 (0) = 6

f (C) = f (4, 0) = 2 (4) + 3 (0) = 8

Nilai minimum = 6 terjadi pada titik B (3, 0). Perhatikan bahwa meskipun daerah fisibelnya tak

terbatas, tapi nilai minimumnya ada.

2.4.3 Penyelesaian Tak Terbatas

Dalam contoh 2.11 tampak bahwa meskipun daerah fisibelnya tak terbatas, tapi titik

minimumnya tetap ada. Kasus seperti itu tidak selalu terjadi. Ada kalanya daerah fisibelnya tak

terbatas dan nilai optimumnyapun juga tak terbatas. Dalam hal ini soal dikatakan tidak memiliki

penyelesaian.

Contoh 2. 12

Ulangi contoh 2.11, tapi dengan fungsi memaksimumkan !

Page 45: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 37

Penyelesaian

Karena kendalanya sama dengan contoh 2.11, maka grafik dan daerah fisibelnya juga sama.

Titik-titik sudut yang terbentuk juga tetap sama. Akan tetapi, dengan fungsi memaksimumkan,

titik maksimumnya bukanlah titik D (4, 0) karena titik (5, 0) memiliki nilai fungsi = 2 (5) + 3 (0)

= 10 yang lebih besar dari f (D). Demikian seterusnya … Nilai maksimum terletak pada tempat

tak berhingga. Dalam kasus ini, penyelesaian adalah tak terbatas.

2.4.4 Soal Tak Fisibel

Kasus dimana daerah fisibel tidak ada disebut soal yang tidak fisibel. Penyelidikan titik optimum

fungsi dilakukan dengan mengecek nilai fungsi pada titik sudut daerah fisibel. Apabila daerah

fisibelnya tidak ada, maka jelas bahwa pengecekan tidak dapat dilakukan. Soal tidak memiliki

penyelesaian.

Contoh 2.13

Maksimumkan f (x1, x2) = 4 x1 + 3 x2

Kendala x1 + x2 3

2x1 – x2 3

x1 4

x1, x2 0

Penyelesaian

Gambar 2.10 menunjukkan grafik kendala. Daerah yang berarsir (segi empat OBFA)

merupakan daerah penyelesaian yang memenuhi kendala x1 + x2 3 dan 2x1 – x2 3. Irisan

daerah yang berarsir dengan kendala x1 4 merupakan himpunan kosong. Dengan demikian

tidak ada titik yang memenuhi semua kendala atau daerah fisibelnya tidak ada. Dikatakan bahwa

soalnya tidak fisibel, dan soal tidak memiliki penyelesaian.

Page 46: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

38 Riset Operasi : Suatu Tinjauan Algoritmis

x1

x2

A (0,3)

B (1.5,0) D (3,0)

x1+ x2 = 3

2x1 - x2 = 3C (0,-3)

E (4,0)

F

x1 = 4

Gambar 2.10

2.4.5 Soal Redundant

Suatu soal dikatakan redundant (kelebihan) apabila terdapat satu/lebih kendala yang tidak

berpengaruh terhadap daerah fisibelnya. Artinya, apabila kendala tersebut dihilangkan, maka

daerah fisibelnya tidak berubah (dengan demikian titik optimalnya juga tidak berubah)

Contoh 2.14

Selesaikan contoh 2.1 e.

Penyelesaian

Hasil transformasi model dengan yi = ln (xi) adalah :

Minimumkan 1 2 1 2, 2 2g y y y y

Kendala 1 23 2 3y y

1 24 4y y

1 22 3 1y y

1 2, 0y y

Page 47: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 39

Grafik garis-garis kendala tampak pada gambar 2.11. Daerah berarsir merupakan daerah

fisibelnya. Tampak bahwa kendala 2y1 + 3y2 1 tidaklah berpengaruh terhadap daerah

fisibelnya.

y1

y2

A (0,1.5)

D (0.5,0)B (1,0)

3y1+ 2y2 = 3 2y1 + 3y2 = 1

C (0,1/3)

F (4,0)

E (0,1)

y1 + 4y2 = 4

G

Gambar 2.11

Titik G merupakan perpotongan kendala y1 + 4y2 = 4 dengan 3y1 + 2y2 = 3. Penyelesaian kedua

persamaan menghasilkan titik G ( 25 , 9

10 ).

f (A) = f (0, 32 ) = 2(0) + 2( 3

2 ) = 3

f (G) = f ( 25 , 9

10 ) = 2( 25 ) + 2( 9

10 ) = 2.6

f (F) = f (4, 0) = 2(4) + 2(0) = 8

Nilai minimum terjadi pada titik A (0, 32 ). Jika dikembalikan ke soal aslinya (yi = ln (xi))

diperoleh persamaan :

0 = ln (x1). Maka x1 = e. 32 = ln (x2). Maka x2 =

32e

Jadi titik minimumnya adalah (e, 3

2e ) dengan nilai minimum : f (x1, x2) = 2 2

1 2x x = 3

22

2e e

= 2 3e e = 5e

Page 48: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

40 Riset Operasi : Suatu Tinjauan Algoritmis

SOAL-SOAL LATIHAN

Selesaikan soal no 1-9 berikut ini dengan metode grafik

1. Maksimumkan f = 6 x1 + 4 x2

Kendala :

x1 700

x2 900

3 x1 + x2 2400

x1 + 2 x2 1600

x1, x2 0

2. Maksimumkan f = x1 + x2

Kendala :

x1 + x2 1

5 x1 + 10 x2 50

x2 4

x1, x2 0

3. Maksimumkan f = 3 x1 + 2 x2

Kendala :

x1 + x2 1

-5 x1 + x2 0

- x1 + 5 x2 0

x1 + x2 6

x1, x2 0

Page 49: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 41

4. Maksimumkan f = -3 x1 + 4 x2

Kendala :

x1 - x2 0

- x1 + 2 x2 2

x1, x2 0

5. Maksimumkan f = 4 x1 + 3 x2

Kendala :

x1 + x2 10

2 x1 + 2 x2 40

x1, x2 0

6. Minimumkan f = 2.8 x1 + 3.25 x2

Kendala :

x1 8

x2 10

4 x1 + 3 x2 40

x1, x2 0

7. Maksimumkan f = 2 x1 + x2

Kendala :

11 x1 + 3 x2 33

8 x1 + 5 x2 40

7 x1 + 10 x2 70

x1, x2 0

8. Maksimumkan Z = x1 + 2 x2

Kendala :

-3 x1 + 3 x2 9

Page 50: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

42 Riset Operasi : Suatu Tinjauan Algoritmis

x1 - x2 2

x1 + x2 6

x1 + 3 x2 6

x1, x2 0

9. Minimumkan Z = 3 x1 - x2

Kendala :

x1 - 2 x2 4

x1 + x2 8

-4 x1 + 2 x2 20

x2 4

x1 4

x1 8

x1, x2 0

10. Sebuah perusahaan ingin membeli paling banyak 1800 unit produk. Ada 2 jenis produk yang

dapat dibeli yaitu M1 dan M2. Produk M1 membutuhkan ruangan sebesar 2 m2, berharga

12 (ribu) dan akan memberikan keuntungan sebesar 3 (ribu) pada perusahaan. Produk M2

membutuhkan ruangan sebesar 3 m2, berharga 15 (ribu) dan akan memberikan keuntungan

sebesar 4 (ribu).

Misalkan dana yang tersedia adalah 15.000 (ribu) dan perusahaan tersebut hanya

mempunyai gudang seluas 3000 m2 untuk menyimpan kedua jenis produk tersebut.

Nyatakan masalah tersebut di atas sebagai masalah Program Linier dan selesaikan !

11. Selesaikan masalah berikut secara grafik !

a. Max Z = 12 x1 + 5 x2

Kendala :

Page 51: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 43

5 x1 + 3 x2 15

7 x1 + 2 x2 14

x1, x2 0

b. Max Z = 10 x1 + 2 x2

Kendala sama dengan pertanyaan (a)

c. Max Z = x1 + x2

Kendala sama dengan pertanyaan (a)

d. Max Z = 3 x1 + 5 x2

Kendala :

x1 - x2 4

3 x1 - 2 x2 3

6 x1 + 7 x2 42

x1, x2 sembarang (tidak harus 0)

12. Suatu perusahaan elektronik membuat 2 model radio. Kapasitas harian radio jenis pertama

adalah 60 buah, sedangkan kapasitas harian jenis kedua adalah 75 radio. Tiap radio jenis

pertama menggunakan 10 buah komponen elektronik, sedangkan model kedua

membutuhkan 8 buah komponen yang sama. Komponen yang dapat disediakan per harinya

adalah sebanyak 800 buah.

Keuntungan per unit model pertama dan kedua masing-masing adalah 30 dan 20 (ribu).

Tentukan produksi optimum harian untuk tiap model.

13. Dua buah produk yang dihasilkan oleh pabrik diproses melalui 3 mesin secara sekuensial.

Waktu yang dialokasikan bagi produk tersebut tiap harinya hanya 10 jam tiap mesin.. Waktu

produksi dan keuntungan per unit dinyatakan dalam tabel di bawah ini. Carilah campuran

kedua produk yang optimal !

Page 52: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

44 Riset Operasi : Suatu Tinjauan Algoritmis

Waktu Produksi (Menit)

Produk Mesin - 1 Mesin - 2 Mesin - 3 Keuntungan

1 10 6 8 2000

2 5 20 15 3000

14. Sebuah perusahaan dapat mengiklankan produknya dengan menggunakan radio dan TV.

Dana yang tersedia untuk iklan adalah 1000 (ribu) per bulan. Biaya tiap menit iklan di radio

adalah 5 (ribu), sedangkan di TV adalah 100 (ribu). Perusahaan tersebut ingin

mengiklankan produknya di radio paling sedikit dua kali jumlah iklan di TV. Pengalaman

menunjukkan bahwa setiap menit iklan di TV akan meningkatkan penjualan 25 kali lebih

banyak dibandingkan setiap menit iklan di radio. Tentukan alokasi dana yang paling

optimum untuk iklan.

15. Sebuah perusahaan membuat 2 macam produk, yaitu A dan B. Volume penjualan produk

A paling sedikit 60 % dari total penjualan kedua produk. Kedua produk tersebut

menggunakan bahan baku yang sama. Persediaan bahan baku tersebut terbatas 100 kg per

harinya. Setiap unit produk A dan B masing-masing menggunakan bahan baku sebanyak 2

kg dan 4 kg. Harga penjualan produk A dan B masing-masing adalah 20 dan 40 (ribu)

per unitnya. Tentukan alokasi optimal bahan baku pada kedua produk !

16. Sebuah perusahaan memproduksi 2 jenis topi. Tiap topi jenis pertama membutuhkan waktu

pembuatan selama 2 kali waktu pembuatan topi jenis kedua. Jika hanya membuat topi jenis

kedua saja, perusahaan hanya mampu membuat 500 topi per harinya. Pasar penjualan topi

jenis pertama dan kedua masing-masing adalah 150 dan 200 topi.

Misalkan keuntungan penjualan topi jenis pertama adalah 8 (ribu) dan topi jenis kedua

adalah 5 (ribu). Tentukan jumlah topi tiap jenis yang harus dibuat untuk memaksimumkan

keuntungan !

17. Perhatikan masalah program linier berikut ini :

Max Z = 6 x1 - 2 x2

Kendala :

x1 - x2 1

Page 53: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : PENYELESAIAN GRAFIK 45

3 x1 - x2 6

x1, x2 0

Tunjukkan dengan grafik bahwa pada titik penyelesaian optimalnya, harga variabel x1 dan

x2 bisa dinaikkan sebesar-besarnya tanpa mengubah harga fungsi sasarannya.

18. Perhatikan masalah program linier berikut ini :

Max Z = 4 x1 + 4 x2

Kendala :

2 x1 + 7 x2 21

7 x1 + 2 x2 49

x1, x2 0

Carilah penyelesaian optimalnya dengan cara grafik. Berapa perubahan harga koefisien x2

titik optimalnya tetap ?

Selesaikan masalah program linier no 19 – 21 berikut ini dengan cara grafik

19. Max Z = 5 x1 + 6 x2

Kendala :

x1 - 2 x2 2

-2 x1 + 3 x2 2

x1, x2 sembarang

20. Max Z = 5 x1 + 2 x2

Kendala :

x1 + x2 10

x1 = 5

x1, x2 0

21. Minimumkan f = 30 x1 + 20 x2

Kendala :

Page 54: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

46 Riset Operasi : Suatu Tinjauan Algoritmis

x1 + x2 8

6 x1 + 4 x2 12

5 x1 + 8 x2 = 20

x1, x2 0

22. Perhatikan masalah program linier berikut ini :

Max Z = 3 x1 + 2 x2

Kendala :

2 x1 + x2 2

3 x1 + 4 x2 12

x1, x2 0

Tunjukkan dengan grafik bahwa masalah tersebut tidak mempunyai titik ekstrim yang

fisibel. Apa yang dapat anda simpulkan tentang penyelesaian masalah tersebut ?

23. Perusahaan Astra membuat 2 jenis truk yaitu tipe A dan B. Tipe A adalah truk seberat 50 ton,

sedangkan tipe B adalah truk seberat 40 ton. Perusahaan mempunyai pasar yang tak terbatas

bagi kedua jenis truk tersebut, akan tetapi bagian produksi membatasi jumlah pembuatannya.

Tiap-tiap truk harus melewati 3 bagian. Jam kerja yang dibutuhkan untuk tiap truk dan total

jam kerja yang tersedia dinyatakan dalam tabel di bawah ini.

Jam Kerja tiap truk

Departemen A B jam kerja yg tersedia

Mesin 30 40 1000

Perakitan 20 11 275

Pengecatan 4 5 335

Keuntungan dari tiap truk tipe A adalah 2 juta dan dari tipe B adalah 2.6 juta. Bagaimana

produksi harus diatur agar memaksimumkan keuntungannya ?

Page 55: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 33

PROGRAM LINIER : METODE SIMPLEKS

Pada bab 2 telah dipelajari tentang penyelesaian Program Linier dengan metode grafik. Masalah

utama dalam metode grafik adalah jumlah variabel penyusun yang dibatasi hanya 2 buah. Pada

bab ini akan dibahas tentang penyelesaian Program Linier menggunakan metode simpleks yang

merupakan perluasan metode grafik. Prinsip kerja metode simpleks dan grafik sebenarnya sama,

yaitu mencari nilai fungsi di titik ujung daerah fisibel. Hanya saja dalam metode simpleks,

pencarian iteratif dilakukan secara numerik sehingga terhindar dari keterbatasan jumlah variabel

seperti yang dialami oleh metode grafik.

3.1 Bentuk Standar Simpleks

Sebelum melakukan proses iterasi metode simpleks, masalah harus terlebih dahulu dibawa ke

bentuk standar metode simpleks. Bentuk standar metode simpleks adalah sebagai berikut :

Maksimumkan/Minimumkan 1 1 2 2 ... n nf X c x c x c x

Kendala :

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

...

...

...

...

n n

n n

m m mn n m

a x a x a x b

a x a x a x b

a x a x a x b

1 2, , ... , 0nX x x x dan 1 2, , ... , 0mb b b b

Dalam notasi vektor/matriks, bentuk standar simpleks dapat dinyatakan sebagai :

Maksimumkan/Minimumkan z = cx

Kendala Ax = b

x 0, b 0 dengan

Page 56: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

48 Riset Operasi : Suatu Tinjauan Algoritmis

A =

11 12 1

21 22 2

1 2

...

...

... ... ...

n

n

m m mn

a a a

a a a

a a a

; x =

1

2

...

n

x

x

x

; b =

1

2

...

m

b

b

b

; c = 1 2, , ... , nc c c

Perhatikan perbedaan bentuk standar program linier dan bentuk standar penyelesaian dengan

metode simpleks. Dalam bentuk standar metode simpleks, ada 2 hal yang harus diperhatikan :

1. Semua kendala harus berbentuk persamaan. Apabila kendala berbentuk pertidaksamaan,

maka harus diubah ke bentuk persamaan dengan penambahan variabel slack secukupnya

(lihat contoh 3.1). Koefisien variabel slack dalam fungsi sasaran = 0.

2. Semua ruas kanan kendala tidak boleh negatif. Apabila ada kendala yang ruas kanannya

negatif, maka harus diubah dulu menjadi tak negatif dengan mengalikan kendala tersebut

dengan (- 1).

Contoh 3.1

Jadikan bentuk berikut ini menjadi bentuk standar simpleks :

1. Maksimumkan 1 2z x x

Kendala : 1 25 5x x

1 22 4x x ; 1 2, 0x x

2. Minimumkan 1 2 32 4z x x x

Kendala : 1 2 35 2 3 7x x x

1 2 32 2 8x x x

1 2 3, , 0x x x

Penyelesaian

1. Karena kedua kendala berbentuk pertidaksamaan maka harus diubah ke bentuk persamaan

dengan menambahkan variabel slack.

Pada kendala pertama, karena kendala berbentuk , maka harus ditambah suatu variabel

baru x3 0 sehingga menjadi suatu persamaan. Didapat : 1 2 35 5x x x

Page 57: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 49

Secara analog, untuk menjadikan kendala kedua menjadi suatu persamaan, haruslah

ditambahkan suatu variabel baru x4 0. Didapat : 1 2 42 4x x x . Perhatikan disini

bahwa variabel yang ditambahkan pada kendala kedua haruslah berbeda dengan variabel

yang ditambahkan pada kendala pertama karena secara umum, nilai kedua variabel slack (x3

dan x4) berbeda.

Pada awalnya, fungsi sasaran hanya terdiri dari 2 variabel x1 dan x2. Akan tetapi dengan

perubahan kendala menjadi suatu persamaan, muncul variabel baru x3 dan x4. Kedua variabel

tambahan itu harus juga muncul dalam fungsi sasaran. Akan tetapi agar fungsi sasaran tidak

berubah, maka koefisien kedua variabel slack pada fungsi sasaran dibuat = 0.

Jadi bentuk standar simpleks adalah :

Maksimumkan 1 2 3 40 0z x x x x

Kendala : 1 2 35 5x x x

1 2 42 4x x x

1 2 3 4, , , 0x x x x

2. Ada 2 hal yang harus diubah untuk menjadikan soal menjadi bentuk standar simpleks.

Pertama adalah merubah kendala sehingga ruas kanan tidak ada yang negatif. Berikutnya

adalah merubah kendala menjadi suatu persamaan.

Untuk merubah kendala pertama sehingga ruas kanan tidak negatif, kalikan kedua ruas

dengan (-1). Didapat : 1 2 35 2 3 7x x x .

Langkah berikutnya adalah merubah pertidaksamaan menjadi suatu persamaan. Pada

kendala pertama, karena bentuk pertidaksamaan adalah , maka haruslah dikurangi dengan

x4. Didapat : 1 2 3 45 2 3 7x x x x .

Pada kendala kedua, karena pertidaksamaan berbentuk , maka harus ditambah dengan x5

sehingga menjadi persamaan. Didapat 1 2 3 52 2 8x x x x .

Penambahan variabel baru x4 dan x5 harus juga dilakukan pada fungsi sasaran dengan

koefisien = 0. Maka bentuk standar simpleks adalah :

Minimumkan 1 2 3 4 52 4 0 0z x x x x x

Page 58: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

50 Riset Operasi : Suatu Tinjauan Algoritmis

Kendala : 1 2 3 45 2 3 7x x x x

1 2 3 52 2 8x x x x

1 2 3 4 5, , , , 0x x x x x

3.2 Metode Simpleks

Setelah menjadi bentuk standar simpleks, soal siap dimasukkan dalam tabel simpleks untuk

selanjutnya diselesaikan.. Bentuk tabel awal simpleks tampak pada tabel 3.1.

zj

Matriks kendala dalam

bentuk standard

A = Amxn = [aij]

cj - zj

x1 bi

cj

xnx2(cB)i (xB)ixj

c1 c2 cn. . .

. . .

Koef ruas kanan kendala

dalam bentuk standard = bi

Pengecekan variabel

yg keluar dari basis

Nilai fungsi = 1

m

B iii

c b

Var

iabe

l bas

is

Koe

fisie

n

varia

bel b

asis

Koefisien fungsi sasaran

Hasil kali titik koef variabel

basis dengan elemen kolom-j

matriks A 1

m

B ijii

c a

Tabel 3.1

Beberapa bagian penting dalam tabel simpleks adalah sebagai berikut :

1. Koefisien-koefisien model program linier.

Koefisien fungsi sasaran 1 2, , ... , nc c c diletakkan pada baris paling atas. Matriks kendala

A = [aij] diletakkan pada bagian tengah. Di sebelah kanannya adalah nilai ruas kanan

Page 59: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 51

kendala 1 2, , ... ,t

mb b b 0. Perhatikan bahwa semua koefisien ini haruslah dalam bentuk

standar simpleks

Pada setiap iterasi, nilai matriks A dan vektor b akan selalu direvisi.

2. Variabel basis

Diantara variabel-variabel yang ada, beberapa diantaranya merupakan variabel basis (syarat

menjadi variabel basis akan dijelaskan pada contoh 3.2). Variabel basis inilah yang nantinya

akan menentukan penyelesaian program linier. Revisi tabel pada tiap iterasi dilakukan

dengan cara merubah variabel basisnya. Variabel basis diletakkan pada kolom-2.

Koefisiennya diletakkan pada kolom paling kiri.

3. Perhitungan nilai fungsi dan pengecekan optimalitas

Baris paling bawah dipakai untuk menentukan apakah tabel yang dibuat sudah optimal. Jika

sudah optimal maka iterasi dihentikan. Akan tetapi jika belum optimal, maka tabel perlu

direvisi dengan cara merubah variabel basisnya. Nilai fungsi pada setiap iterasi tampak pada

sel di ujung kanan bawah.

Bagan alir keseluruhan proses penyelesaian program linier dengan metode simpleks tampak pada

gambar 3.1. Gambar 3.2 menunjukkan bagan alir revisi tabel apabila tabel belum optimal.

Proses simpleks diawali dengan menjadikan masalah ke bentuk standar simpleks (lihat bab 3.1).

Berikutnya diuji apakah kendala dalam bentuk standar tersebut sudah mengandung matriks

identitas. Apabila belum, maka perlu ditambahkan variabel semu (lihat contoh 3.3). Matriks

identitas ini diperlukan untuk menentukan variabel basis.

Page 60: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

52 Riset Operasi : Suatu Tinjauan Algoritmis

Jadikan bentuk standard dengan

menambah variabel slack

Ada

Im

Tabel awal simpleks

Tambah variabel semu

Soal Maks : Koef = - M

Soal Min : Koef = M

tidak

Isi kolom :

xB dengan variabel basis

cB dengan koefisien variabel basis

Soal Maks : Ada j shg cj-zj > 0

Soal Min : Ada j shg cj-zj < 0

Ada variabel semu

yg bernilai positip

Revisi Tabel ya

ya

Hitung zj =

Hitung nilai fungsi

Hitung cj - zj

1

m

B ijii

c a

ya

tidak

tidak

Mulai

Soal Asli

Penyelesaian

Optimal

Soal tidak fisibel shg

tidak memiliki

penyelesaian optimal

Selesai

Gambar 3.1

Page 61: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 53

; 0ii ik

ik

ba

a

Pilih variabel basis baru :

Soal Maks : pilih k sedemikian hingga ck-zk = Maks {cj-zj ; cj-zj > 0}

Soal Min : pilih k sedemikian hingga ck-zk = Min {cj-zj ; cj-zj < 0}

xk merupakan calon basis

Ada

aik > 0tidak

Pilih r = Min { i}

(xB)r keluar dari basis

ark = elemen kunci

Ganti (xB)r dengan xk

Ganti (cB)r dengan ck

Perhitungan aij baru :

* *: ;rj ik r ik

ij ij i i

rk rk

a a b ai r a a b b

a a

* *: ;rj r

ij i

rk rk

a bi r a b

a a

ya

Mulai

Selesai

Penyelesaian

tak terbatas

Gambar 3.2

Untuk memperjelas langkah-langkah dalam bagan alir gambar 3.1 – 3.2, perhatikan contoh 3.2

Contoh 3.2

Selesaikan contoh 2.2 dengan metode simpleks

Penyelesaian

Model dalam contoh 2.2 adalah :

Page 62: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

54 Riset Operasi : Suatu Tinjauan Algoritmis

Maksimumkan 1 2 1 2, 3 2f x x x x (dalam puluhan ribu)

Kendala x1 + 2 x2 20

3x1 + x2 20

x1, x2 0

Merubah soal ke bentuk standar simpleks

Karena kendala masih berbentuk pertidaksamaan, maka diubah dulu ke persamaan dengan

menambahkan variabel slack x3 pada kendala pertama dan x4 pada kendala kedua. Didapat

model dalam bentuk standar simpleks :

Maksimumkan 1 4 1 2 3 4... 3 2 0 0f x x x x x x

Kendala x1 + 2 x2 + x3 = 20

3x1 + x2 + x4 = 20

x1, x2, x3, x4 0

Penentuan penyelesaian fisibel awal

Dalam bentuk matriks, ruas kiri kendala adalah 1 2 1 0

3 1 0 1A . Matriks A memuat matriks

identitas 2

1 0

0 1I yang terbentuk dari variabel x3 dan x4 sehingga pengisian tabel awal

simpleks dapat dimulai. Tabel awal simpleks yang berisi koefisien-koefisien terlihat pada tabel

3.2 a.

koefisien xi fungsi

sasaran3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

20

zj

1 0

3 11

2 1

0

cj - zj

20

Tabel 3.2 a

Page 63: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 55

Langkah berikutnya adalah menentukan variabel basis yang akan mengisi kolom (xB)i . Variabel

basis adalah variabel yang membentuk matriks identitas. Dari tabel tampak bahwa variabel yang

membentuk identitas adalah x3 dan x4 yang masing koefisiennya dalam fungsi sasaran adalah 0.

Koefisien variabel basis ini diletakkan pada kolom paling kiri (kolom (cB) i).

koefisien xi fungsi

sasaran

Variabel basis :

membentuk matriks

identitas di Aij

Koefisien variabel basis

pada fungsi sasaran 3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

20

zj

1 0

3 11x40

2 1

0

x30

cj - zj

20

Tabel 3.2 b

Perhatikan letak baris variabel basis. Letak variabel basis harus sesuai dengan baris yang

memiliki elemen = 1 pada matriks identitas variabel yang bersangkutan. Sebagai contoh,

perhatikan kolom variabel x3. Elemen = 1 terletak pada baris pertama. Maka variabel basis x3

juga terletak pada baris pertama. Hal yang sama juga terjadi pada variabel x4 yang memiliki

elemen = 1 yang terletak pada baris kedua sehingga variabel basis x4 diletakkan pada baris

kedua. Setelah pengisian variabel basis, tabel penyelesaian fisibel awalnya tampak pada tabel 3.2

b

Pengujian Optimalitas

Mengikuti bagan alir gambar 3.1, langkah berikutnya adalah menghitung besaran zj, nilai fungsi

dan kemudian menghitung selisih cj – zj.

1

m

j B ijii

z c a merupakan hasil kali titik antara koefisien variabel basis dengan elemen yang

terletak pada kolom ke-j matriks kendala A. Pada kolom-1, z1 = 0 (1) + 0 (3) = 0. Pada kolom-2,

z2 = 0 (2) + 0 (1) = 0. Pada kolom-3, z3 = 0 (1) + 0 (0) = 0, dan pada kolom-4, z4 = 0 (0) + 0 (1) =

0.

Perhitungan yang sama juga dilakukan untuk menghitung nilai fungsi. Nilai fungsi adalah hasil

kali titik antara koefisien variabel basis dengan kolom bi. Nilai fungsi = 0 (20) + 0 (20) = 0.

Page 64: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

56 Riset Operasi : Suatu Tinjauan Algoritmis

Harga cj – zj merupakan selisih antara koefisien fungsi sasaran cj (terletak pada baris paling atas)

dengan nilai zj. Didapat c1 – z1 = 3 – 0 = 3. c2 – z2 = 2 – 0 = 2. c3 – z3 = 0 – 0 = 0 dan c4 – z4 =

0 – 0 = 0. Hasil pengisian nilai–nilai ini tampak pada tabel 3.2 c.

3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

20

zj0

0 00

3 02

0

1 0

3 11x40

0

2 1

0

x30

cj - zj

20

Tabel 3.2 c

Langkah berikutnya adalah menguji apakah tabel 3.2 c sudah optimal. Karena fungsinya adalah

memaksimumkan, iterasi akan dihentikan jika cj – zj 0 untuk semua j. Dalam tabel 3.2 c

tampak bahwa c1 – z1 = 3 > 0 dan c2 – z2 = 2 > 0. Jadi tabel belum optimal sehingga perlu

direvisi. Bagan alir untuk merevisi tabel tampak dalam gambar 3.2

Revisi tabel

Revisi tabel simpleks dapat diilustrasikan sebagai seorang pelatih sepak bola yang akan

mengganti pemainnya yang kurang optimal penampilannya. Mula-mula ia akan memilih seorang

pemain cadangan yang menjadi calon pemain pengganti. Kemudian ia mengeluarkan seorang

pemain yang sedang bermain (yang menyebabkan timnya tidak bermain optimal) dan

menggantikannya dengan pemain pengganti yang ia siapkan.

Dalam tabel simpleks, pemain yang sedang bermain adalah variabel basis dan variabel bukan

basis merupakan pemain cadangannya. Dalam tabel 3.2 c, pemain yang sedang bermain adalah

x3 dan x4, dan pemain cadangannya adalah x1 dan x2. Ternyata tabel belum optimal (ditandai

dengan adanya elemen cj-zj yang positip untuk soal memaksimumkan).

Perhatikan bagan alir revisi tabel pada gambar 3.2. Pemain cadangan (variabel bukan basis) yang

akan bermain adalah elemen positip terbesar dalam kolom cj-zj. Elemen positip terbesarnya (= 3)

terletak pada kolom – 1 yang bersesuaian dengan kolom x1. Jadi xk = x1 menjadi calon basis. Ini

ditandai dengan kotak vertikal pada kolom – 1 tabel 3.2 d.

Page 65: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 57

Langkah berikutnya adalah menguji apakah ada elemen ai1 (elemen-elemen kendala pada kolom

pertama/berada pada kotak vertikal tabel 3.2 d) yang positip. Ternyata a11 = 1 > 0 dan a21 = 3 >

0.

Untuk elemen ai1 yang bernilai positip (dalam kasus ini kebetulan semua elemen ai1 bernilai

positip), hitung ii

ik

b

a. i merupakan hasil bagi antara elemen ruas kanan kendala (kolom

bi) dengan elemen matriks A pada kolom yang menjadi calon basis (yang ada dalam kotak

vertikal). 11

11

20

1

b

a= 20 dan 2

2

21

20

3

b

a.

Diantara nilai-nilai i yang ada, pilih yang paling minimum (tidak tergantung dari soal

memaksimumkan atau meminimumkan). Nilai i terkecil adalah 20/3 yang terletak pada baris

kendala kedua (pada basis x4). Jadi x4 merupakan basis yang akan dikeluarkan. Hal ini ditandai

dengan kotak horisontal pada baris variabel basis x4 tabel 3.2 d. Elemen yang terletak pada

perpotongan antara kotak horisontal dan vertikal (dalam iterasi ini adalah a21 = 3) disebut elemen

kunci

calon basis

keluar dari

basis

elemen kunci

20/3

201 0

3 11x40

2 1

0

x30

20

20/1 = 20

zj0

0 00

3 02

0

0cj - zj

3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

Tabel 3.2 d

Iterasi – 2

Revisi tabel simpleks dilakukan dengan mengganti variabel basis x4 (koefisien di fungsi sasaran

= (cB)2 = 0) dengan x1 (koefisien di fungsi sasaran = (cB)1 = 3). Perubahan ini juga dilakukan

pada matriks A dan vektor b.

Page 66: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

58 Riset Operasi : Suatu Tinjauan Algoritmis

Perhatikan perubahan aij baru dalam bagan alir gambar 3.2. Perubahan ini terdiri dari 2 bagian,

yaitu elemen pada baris dimana variabel basis keluar (elemen baris yang ada dalam kotak

horisontal) dan elemen yang tidak berada di kotak horisontal.

Untuk elemen yang berada di kotak horisontal, aij baru dibentuk dengan membagi elemen mula-

mula dengan elemen kunci (dalam iterasi pertama elemen kunci = a21 = 3). a21 baru = 3/3 = 1.

a22 baru = 1/3. a23 baru = 0/3 = 0. a24 baru = 1/3. b2 baru = 20/3.

Untuk elemen yang diluar kotak horisontal, perubahan aij dilakukan menurut persamaan :

* rj ik

ij ij

rk

a aa a

a. arj adalah elemen dalam kotak horisantal pada kolom-j. Sebaliknya, aik adalah

elemen dalam kotak vertikal pada baris – i. ark adalah elemen kunci.

Sebagai contoh, perhatikan perhitungan untuk menentukan a12 baru. a12 lama = 2. a12 merupakan

elemen yang terletak pada baris-1 kolom-2. Pada baris – 1, elemen yang berada di kotak vertikal

adalah a11 = 1. Pada kolom-2, elemen yang berada di kotak horisontal adalah a22 = 1. Elemen

kunci adalah a21 = 3. Jadi *

12

(1)(1) 52

3 3a . Hasil perhitungan aij baru selengkapnya tampak

dalam tabel 3.3

aij /bi lama

Elemen dalam kotak vertikal

Elemen dalam kotak horisontal

aij baru = *

ija

a11 = 1 1 3 *

11

(1)(3)1 0

3a

a12 = 2 1 1 *

12

(1)(1) 52

3 3a

a13 = 1 1 0 *

13

(1)(0)1 1

3a

a14 = 0 1 1 *

14

(1)(1) 10

3 3a

b1 = 20 1 20 *

1

(1)(20) 4020

3 3b

Tabel 3.3

Tabel 3.4 a (bagian bawah) adalah hasil iterasi – 2 setelah pergantian aij dan bi. Untuk

memperjelas bagaimana perubahan basis terjadi, iterasi – 1 (penyelesaian fisibel awal = tabel 3.2

c) diletakkan di sebelah atasnya.

Page 67: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 59

zj0

0 00

3 02

0

0cj - zj

20/3

201 0

3 11x40

2 1

0

x30

20

20/1 = 20

3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

0

1x13

1

0

x30 53

13

13

13

403

203

zj

cj - zj

ite

rasi -

2

ite

rasi -

1

(pe

nye

lesa

ian

fisib

el aw

al)

Tabel 3.4 a

Langkah berikutnya adalah menguji apakah tabel 3.4 a sudah optimal. Seperti pada iterasi – 1,

langkah yang harus dilakukan adalah menghitung nilai zj, cj-zj dan nilai fungsi

zj0

0 00

3 02

0

0cj - zj

20/3

201 0

3 11x40

2 1

0

x30

20

20/1 = 20

3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

0

1x13

1

0

x30 53

13

13

13

403

203

ite

rasi -

2

ite

rasi -

1

(pe

nye

lesa

ian

fisib

el aw

al)

zj20

3 11

0 -11

0

0cj - zj

Tabel 3.4 b

z1 = 0 (0) + 3 (1) = 3. z2 = 0 ( 53 ) + 3 ( 1

3 ) = 1. z3 = 0 (1) + 3 (0) = 0 dan z4 = 0 ( 13 ) + 3 ( 1

3 ) =

1. Nilai fungsi = 0 (40/3) + 3 (20/3) = 20

c1-z1 = 3 – 3 = 0. c2-z2 = 2 – 1 = 1. c3–z3 = 0 – 0 = 0 dan c4-z4 = 0 – 1 = -1

Tabel 3.4 b menunjukkan kelanjutan tabel 3.4 a dengan mengisi nilai zj dan cj-zj. Tampak

bahwa c2-z2 = 1 > 0 sehingga tabel 3.4 b belum optimal dan perlu direvisi.

Satu-satunya cj-zj yang bernilai > 0 adalah c2-z2. Ini berarti bahwa x2 menjadi satu-satunya calon

basis yang baru.

Page 68: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

60 Riset Operasi : Suatu Tinjauan Algoritmis

zj0

0 00

3 02

0

0cj - zj

3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

ite

rasi -

2

ite

rasi -

1

(pe

nye

lesa

ian

fisib

el aw

al)

zj20

3 11

0 -11

0

0cj - zj

0

1x13

1

0

x30 53

13

13

13

403

203

/ = 8403

53

/ = 20203

13

20/3

201 0

3 11x40

2 1

0

x30

20

20/1 = 20

Tabel 3.4 c

Berikutnya dilihat apakah ada elemen ai2 (elemen matriks A yang dikotak vertikal pada tabel 3.4

c) yang bernilai positip. Mengikuti bagan alir gambar 3.2, jika tidak ada ai2 yang positip berarti

soal memiliki penyelesaian tak terbatas. Ternyata a12 = 5/3 > 0 dan a22 = 1/3 > 0 sehingga proses

dilanjutkan dengan mencari variabel yang harus keluar dari basis. Caranya adalah dengan

menghitung nilai i yang merupakan hasil bagi bi dengan ai2

1 = 40

3

53

= 8 dan 2 = 20

3

13

= 20. Nilai terkecil adalah 1. Berarti variabel basis yang terletak

pada baris-1 (yaitu x3) harus keluar dari basis. Untuk menandai, beri kotak horisontal pada baris

pertama kendala. Elemen kunci untuk iterasi ini adalah a12 = 5/3

Perhitungan aij yang baru dilakukan sebagai berikut :

Elemen-elemen yang berada pada baris dimana variabel basis x3 keluar (kotak horisontal)

masing-masing dibagi dengan elemen kuncinya. Didapat a11 baru = 5

3

0 = 0. a12 baru =

53

53

= 1.

a13 baru = 5

3

1 = 3/5. a14 baru =

13

53

= -1/5. b2 baru = 40

3

53

= 8.

Untuk elemen yang tidak berada pada kotak horisontal, aij baru adalah aij lama dikurangi dengan

hasil kali elemen yang berada pada kotak horisontal dan vertikal elemen aij yang dibagi dengan

elemen kunci (= 5/3). Selengkapnya dapat dilihat pada tabel 3.5

Page 69: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 61

aij /bi lama

Elemen dalam kotak vertikal

Elemen dalam kotak horisontal

aij baru = *

ija

a21 = 1 1/3 0 1

* 3

215

3

( ) (0)1 1a

a22 = 1/3 1/3 5/3 51

* 3 3

225

3

1 ( )( )0

3a

a23 = 0 1/3 1 1

* 3

235

3

( ) (1) 10

5a

a24 = 1/3 1/3 -1/3 1 1

* 3 3

245

3

1 ( ) ( ) 2

3 5a

b2 = 20/3 1/3 40/3 401

* 3 3

25

3

20 ( ) ( )4

3b

Tabel 3.5

Iterasi – 3

Tabel simpleks iterasi – 3 tampak pada bagian terbawah tabel 3.6. Dalam tabel tersebut variabel

basisnya adalah x2 (menggantikan x3 dalam iterasi – 2) dengan koefisien = 2, dan x1 yang

memiliki nilai koefisien basis = 3. Pengujian optimalitas kembali dilakukan dengan menghitung

zj, cj-zj dan nilai fungsi

z1 = 2 (0) + 3 (1) = 3. z2 = 2 (1) + 3 (0) = 2. z3 = 2 ( 35 ) + 3 ( 1

5 ) = 35 dan z4 = 2 ( 1

5 ) + 3

( 25 ) = 4

5 . Nilai fungsi = 2 (8) + 3 (4) = 28

c1-z1 = 3 – 3 = 0. c2-z2 = 2 – 2 = 0. c3–z3 = 0 – 35 = 3

5 dan c4-z4 = 0 – 45 = 4

5 . Tampak

bahwa semua cj-zj 0 sehingga tabel sudah optimal.

Page 70: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

62 Riset Operasi : Suatu Tinjauan Algoritmis

zj0

0 00

3 02

0

0cj - zj

3 0

x1 bi

cj

x4x3x2

02

(cB)i (xB)ixj

ite

rasi -

2

ite

rasi -

1

(pe

nye

lesaia

n

fisib

el a

wal)

0

1x13

1

0

x30 53

13

13

13

403

203

/ = 8403

53

/ = 20203

13

20/3

201 0

3 11x40

2 1

0

x30

20

20/1 = 20

zj28

3 2

0 0cj - zj

35

35

45

45

0

1x13

1

0

x22 35

25

15

15

8

4

zj20

3 11

0 -11

0

0cj - zj

ite

rasi -

3

Tabel 3.6

Pada setiap iterasi, nilai variabel yang dicoba adalah variabel basis yang nilainya sama dengan

harga bi. Jadi pada titik optimal, variabelnya adalah x2 = 8 (= b1) dan x1 = 4 (= b2), dengan nilai

fungsi = 28 (elemen sel terbawah paling kanan).

x1

x2

D (0,10)

B (20,0)

x1+ 2x2 = 203x1+ x2 = 20

E (0, 20)

A (20/3, 0)

C (4,8)

Gambar 3.3

Perhatikan iterasi pada tabel 3.6. Iterasi dimulai dari x3 = 20 dan x4 = 20 (berarti x1 = 0 dan x2 = 0

karena x1 dan x2 tidak berada dalam variabel basis) dengan nilai fungsi = 0. Pada iterasi – 2, x3 =

Page 71: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 63

40/3 dan x1 = 20/3 (berarti x2 = 0 karena x2 bukan variabel basis) dengan nilai fungsi = 20. Iterasi

diakhiri pada iterasi – 3 dengan x1 = 4 dan x2 = 8 (nilai fungsi = 28). Tampak bahwa dalam setiap

iterasi, nilai fungsi selalu tidak pernah turun (karena soalnya adalah memaksimumkan).

Interpretasi geometris dari iterasi simpleks dapat dilihat pada gambar 3.3. Daerah fisibel adalah

segi-4 OACD. Iterasi simpleks diawali dengan menguji apakah titik O (0,0) merupakan titik

optimal. Ternyata titik O bukan titik optimal. Pada iterasi ke-2 diuji titik A (20/3, 0). Ternyata

titik A pun bukan titik optimal sehingga iterasi dilanjutkan dengan menguji titik C (4, 8) yang

ternyata merupakan titik optimal. Setelah memperoleh titik optimal, iterasi dihentikan tanpa

menguji titik D. Disini terlihat bahwa sebenarnya proses simpleks sama dengan penyelesaian

grafik, yaitu secara iteratif menguji titik ujung daerah fisibel yang merupakan titik optimal.

Bedanya, dalam penyelesaian grafik proses ini dilakukan dengan menentukan titik ujung daerah

fisibel secara analitik dan gambar. Sebaliknya dalam metode simpleks, proses tersebut dilakukan

secara numerik sehingga kendala keterbatasan jumlah variabel yang dialami oleh metode grafik

dapat ditanggulangi.

Contoh 3.3

Selesaikan contoh 2.4 !

Penyelesaian

Model dalam contoh 2.4 adalah :

Maksimumkan 1 2 3 1 2 3, , 5 15 30f x x x x x x

Kendala : 20 x1 + 50 x2 + 80 x3 4000

x1 0.5 (x1 + x2 + x3)

x3 0.2 (x1 + x2 + x3)

x1, x2 dan x3 0

Langkah pertama adalah menjadikan ke bentuk standar simpleks. Dengan sedikit

penyederhanaan, model mula-mula dapat dituliskan sebagai :

Maksimumkan 1 2 3 1 2 3, , 5 15 30f x x x x x x

Page 72: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

64 Riset Operasi : Suatu Tinjauan Algoritmis

Kendala : 2 x1 + 5 x2 + 8 x3 400

- x1 + x2 + x3 0

- x1 - x2 + 4 x3 0

x1, x2 dan x3 0

Karena kendala masih berbentuk pertidaksamaan, maka harus ditambahkan variabel slack x4, x5

dan x6 pada kendala-1, 2 dan 3. Didapat :

Maksimumkan 1 6 1 2 3 4 5 6... 5 15 30 0 0 0f x x x x x x x x

Kendala : 2 x1 + 5 x2 + 8 x3 + x4 = 400

- x1 + x2 + x3 + x5 = 0

- x1 - x2 + 4 x3 + x6 = 0

x1 … x6 0

Matriks kendala = A =

2 5 8 1 0 0

1 1 1 0 1 0

1 1 4 0 0 1

. Tampak bahwa A sudah memiliki sub

matriks identitas pada variabel x4, x5 dan x6 sehingga proses simpleks bisa dimulai. Tabel 3.7a

merupakan tabel awal simpleks dengan memasukkan koefisien fungsi sasaran, kendala dan ruas

kanan kendalanya.

Tampak bahwa matriks identitas terbentuk dari 3 variabel x4, x5 dan x6. Ketiga variabel inilah

yang dipilih sebagai variabel basis. Perhatikan kembali urut-urutan penempatan ketiga variabel

tersebut dalam daftar variabel basis. Variabel basis ditempatkan pada baris dimana elemen dalam

suatu kolom = 1 (ingat bahwa jika suatu variabel merupakan variabel basis, maka hanya satu

elemen dalam kolom tersebut yang bernilai = 1 dan sisanya adalah elemen 0). sebagai contoh,

pada kolom variabel basis x5, elemen = 1 terletak pada baris kedua. Maka dalam daftar variabel

basisnya, x5 juga diletakkan pada baris kedua. Tabel 3.7 b menunjukkan penyelesaian fisibel

awal masalah semula. Tabel 3.7 b didapat dari tabel 3.7 a dengan menambahkan variabel basis

(dan koefisiennya), serta perhitungan zj dan cj-zj, serta nilai fungsi.

Page 73: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 65

01

0

0

x4 x5

5 0

x1 bi

cj

x3x2

3015

(cB)i (xB)ixj

400

zj

2 1

-1 01

5 8

cj - zj

0

x6

0

0

1

4 1-1 0-1 0 0

Tabel 3.7 a

01

0

0

x4 x5

5 0

x1 bi

cj

x3x2

3015

(cB)i (xB)ixj

400

zj

2 1

-1 01x50

5 8x40

cj - zj

0

x6

0

0

1

0 x6 4 1-1 0-1 0 0

0 00 0 00

5 03015 000

Tabel 3.7 b

Dalam tabel 3.7 b tampak bahwa ada elemen cj - zj yang > 0. Karena soalnya memaksimumkan,

hal ini menunjukkan bahwa tabel belumlah optimal. cj-zj > 0 terbesar adalah 30 (kolom x3). Ini

berarti bahwa x3 merupakan calon basis (ditandai dengan kotak vertikal pada tabel 3.7 c).

01

0

0

x4 x5

5 0

x1 bi

cj

x3x2

3015

(cB)i (xB)ixj

400

zj

2 1

-1 01x50

5 8x40

cj - zj

0

x6

0

0

1

0 x6 4 1-1 0-1 0 0

0 00 0 00

5 03015 00

50

0

0

0

Tabel 3.7 c

Untuk menentukan variabel basis lama yang akan keluar (untuk digantikan x3), maka dihitung

elemen kolom . 1 = 400/8 = 50. 2 = 0/1 = 0 dan 3 = 0/4 = 0. terkecil terdapat pada 2 dan

3. Pilih salah satunya secara sembarang, misal 2. Maka berarti variabel x5 akan keluar dari basis

Page 74: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

66 Riset Operasi : Suatu Tinjauan Algoritmis

pada iterasi berikutnya (ditandai dengan kotak horisontal). Elemen kunci adalah perpotongan

kotak vertikal dan horisontal, yaitu a23 = 1.

Iterasi-2

Perhitungan aij (dan bi) baru dibagi menjadi 2 bagian yaitu elemen yang berada pada baris

dimana variabel basisnya keluar (elemen yang berada di kotak horisontal), dan elemen aij (dan bi)

yang tidak berada pada kotak horisontal.

Untuk elemen yang berada di kotak horisontal, masing-masing elemen tersebut dibagi dengan

elemen kunci. Karena elemen kunci = a23 = 1, maka pembagian ini tidak menghasilkan efek.

Untuk elemen yang tidak berada pada kotak horisontal, perhitungan aij baru didapatkan dari

pengurangan aij lama dengan perkalian elemen di kotak vertikal baris-i dan kotak horisontal

kolom-j, dibagi dengan elemen kunci. Selengkapnya dapat dilihat pada tabel 3.8

aij /bi lama

Elemen dalam kotak vertikal

Elemen dalam kotak horisontal

aij baru = *

ija

a11 = 2 8 -1 *

11

(8)( 1)2 10

1a

a12 = 5 8 1 *

12

(8)(1)5 3

1a

a13 = 8 8 1 *

13

(8)(1)8 0

1a

a14 = 1 8 0 *

14

(8)(0)1 1

1a

a15 = 0 8 1 *

15

(8)(1)0 8

1a

a16 = 0 8 0 *

16

(8)(0)0 0

1a

b1 = 400 8 0 *

1

(8)(0)400 400

1b

a31 = -1 4 -1 *

31

(4)( 1)1 3

1a

a32 = -1 4 1 *

32

(4)(1)1 5

1a

Page 75: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 67

a33 = 4 4 1 *

33

(4)(1)4 0

1a

a34 = 0 4 0 *

34

(4)(0)0 0

1a

a35 = 0 4 1 *

35

(4)(1)0 4

1a

a36 = 1 4 0 *

36

(4)(0)1 1

1a

b3 = 0 4 0 *

3

(4)(0)0 0

1b

Tabel 3.8

Tabel 3.9 menunjukkan iterasi – 2 setelah merubah aij dan bi lama. Perhitungan cj-zj

menunjukkan bahwa tabel 3.9 masih belum optimal juga karena c1-z1 = 35 > 0. Variabel x1

menjadi calon basis berikutnya. Untuk menentukan variabel yang keluar dari basis, dihitung .

Perhatikan bahwa 2 tidak dihitung karena a21 0 (ingat bahwa hanya dihitung untuk aik > 0).

1 = 400/10 = 40 dan 3 = 0/3 = 0. minimum adalah 3. Maka variabel basis yang terletak pada

baris ketiga (= x6) harus keluar dari basis. Elemen kunci adalah a31 = 3.

01

0

0

x4 x5

5 0

x1 bi

cj

x3x2

3015

(cB)i (xB)ixj

400

zj

10 1

-1 01x330

-3 0x40

cj - zj

0

x6

0

-8

1

0 x6 0 13 0-5 -4 0

-30 030 30 030

35 00-15 0-30

40

-

0

0

Tabel 3.9

Iterasi-3

Pembuatan tabel iterasi-3 sama dengan iterasi kedua. Mula-mula dihitung matriks A dan b yang

baru. Perhitungan ini dibagi menjadi 2 macam yaitu pada elemen-elemen baris-3 (yang dikotak

horisontal) dan yang diluar baris-3.

Pada perhitungan A (dan b) baris ke-3, semua elemennya dibagi dengan elemen kunci (= a31 =

3). Perhitungan semua elemen lain diluar baris-3 dilakukan dengan melibatkan elemen yang

Page 76: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

68 Riset Operasi : Suatu Tinjauan Algoritmis

terletak di baris-3 (kotak horisontal) dan kolom-1 (kotak vertikal), seperti pada tabel 3.8. Hasil

iterasi-3 tampak pada tabel 3.10. Untuk mengurangi kesalahan komputasi, maka semua

perhitungan masih dilakukan dalam bentuk pecahan. Cara ini juga memberikan keuntungan

dalam hal pengecekan hasil perhitungan manual. Perhatikan bahwa dalam satu tabel, umumnya

semua hasil yang berbentuk pecahan akan memiliki penyebut yang sama.

01

x4 x5

5 0

x1 bi

cj

x3x2

3015

(cB)i (xB)ixj

400

zj

0 1

0 0x330

0x40

cj - zj

0

x6

0

5 x1 01 0 0

5 030

0 00

-

-

0

413

23

53

163

13

43

103

13

13

120041

853

1303

503

503

353

353

Tabel 3.10

Tampak bahwa tabel 3.10 pun belum optimal karena masih ada 2 elemen pada baris cj-zj yang

bernilai positip. Elemen positip terbesar (130/3) terletak pada kolom ke-2, Ini berarti bahwa

variabel x2 akan masuk menjadi basis. Perhitungan menunjukkan bahwa satu-satunya calon

variabel yang keluar dari basis adalah variabel pada baris pertama (= x4). Kedua nilai yang lain

tidak dihitung karena elemen kolom-2 yang bersesuaian (kotak vertikal) bernilai negatif. Elemen

kunci adalah a12 = 41/3.

Iterasi-4

Tabel 3.11 merupakan perbaikan tabel 3.10. Tampak bahwa semua elemen cj-zj pada tabel 3.11

tidak ada yang positip sehingga tabel sudah optimal dengan nilai maksimum = 5200041

. Pada

titik optimal ini, nilai variabelnya ada pada kolom bi. Jadi x2 = 120041

, x3 = 80041

, x1 =

200041

. Karena x4, x5 dan x6 bukan merupakan variabel basis, maka nilainya = 0. Jika

dikembalikan ke soal aslinya, maka titik optimalnya adalah x1 = 200041

, x2 = 120041

dan x3

= 80041

. Nilai maksimum = z = 5200041

Page 77: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 69

1

x4 x5

5 0

x1 bi

cj

x3x2

3015

(cB)i (xB)ixj

zj

0

0x330

0x215

cj - zj

0

x6

0

5 x1 01

5 30

0 0

341

1

0

0

241

541

1641

341

2841

1041

341

741

120041

80041

200041

15

0

13041

1041

4541

13041

1041

4541

52.00041

Tabel 3.11

Tabel 3.12 merupakan ringkasan semua tabel iterasi yang dilakukan. Perhatikan bagaimana

pergantian basis dilakukan.

Contoh 3.3 diatas menunjukkan kelebihan metode simpleks dibandingkan dengan metode grafik.

Dengan 3 variabel penyusun, metode grafik tidak mampu menyelesaikannya. Akan tetapi

metode simpleks mampu memberikan penyelesaian optimal. Perhitungan tabel tampak rumit jika

dihitung manual. Akan tetapi jika perhitungan dilakukan dengan program komputer, masalah

kerumitan perhitungan dapat diatasi.

Tabel 3.12 menunjukkan keseluruhan iterasi yang dilakukan. Perhatikan perubahan variabel

basis dalam tiap iterasi. Tabel yang baru selalu lebih optimal dari tabel pada iterasi sebelumnya.

Untuk soal memaksimumkan, tabel yang baru tidak akan mempunyai nilai fungsi yang lebih

kecil dari tabel sebelumnya.

Page 78: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

70 Riset Operasi : Suatu Tinjauan Algoritmis

01

0

0

x4 x5

5 0

x1 bi

cj

x3x2

3015

(cB)i (xB)ixj

400

zj

2 1

-1 01x50

5 8x40

cj - zj

0

x6

0

0

1

0 x6 4 1-1 0-1 0 0

0 00 0 00

5 03015 00

50

0

0

0

01

0

0

400

zj

10 1

-1 01x330

-3 0x40

cj - zj

-8

1

0 x6 0 13 0-5 -4 0

-30 030 30 030

35 00-15 0-30

40

-

0

0

01

400

zj

0 1

0 0x330

0x40

cj - zj

5 x1 01 0 0

5 030

0 00

-

-

0

413

23

53

163

13

43

103

13

13

120041

853

1303

503

503

353

353

1

zj

0

0x330

0x215

cj - zj

5 x1 01

5 30

0 0

341

1

0

0

241

541

1641

341

2841

1041

341

741

120041

80041

200041

15

0

13041

1041

4541

13041

1041

4541

52.00041

Tabel 3.12

Contoh 3.4

Minimumkan 1 2 1 2, 12 5f x x x x

Kendala 4x1 + 2x2 80

2x1 + 3x2 90

x1, x2 0

Page 79: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 71

Penyelesaian

Mula-mula, jadikan masalah menjadi bentuk standar simpleks. Ruas kanan kendala sudah tidak

negatif. Maka yang perlu dilakukan adalah merubah kendala menjadi suatu persamaan. Karena

pertidaksamaan berbentuk , maka perlu kendala-1 dikurangi x3 dan kendala-2 dikurangi

dengan x4. Diperoleh :

Minimumkan 1 4 1 2 3 4... 12 5 0 0f x x x x x x

Kendala 4x1 + 2x2 - x3 = 80

2x1 + 3x2 - x4 = 90

x1, x2, x3, x4 0

Matriks kendala adalah A = 4 2 1 0

2 3 0 1. Dalam A tidak terdapat sub matriks identitas,

padahal matriks identitas ini diperlukan sebagai pembentuk variabel basis awal. Untuk itu perlu

ditambahkan variabel semu (x5 dan x6) lagi agar terbentuk identitas. Dengan penambahan ini,

kendala menjadi

4x1 + 2x2 - x3 + x5 = 80

2x1 + 3x2 - x4 + x6 = 90

x1, x2, x3, x4, x5, x6 0

Matriks kendala menjadi A = 4 2 1 0 1 0

2 3 0 1 0 1. A sudah memuat matriks identitas.

Perhatikan kendala sebelum dan sesudah ditambahi variabel semu x5 dan x6. Agar keduanya

sama (memang sebenarnya kendala-kendala sebelum dan setelah ditambah x5 dan x6 sama),

maka x5 dan x6 haruslah bernilai 0. Dengan kata lain, pada penyelesaian optimalnya, x5 dan x6

tidak boleh menjadi variabel basis. Variabel x5 dan x6 hanyalah berfungsi sebagai katalisator agar

proses simpleks bisa berjalan. Padahal pada penyelesaian fisibel awal, variabel x5 dan x6 inilah

yang membentuk matriks identitas sehingga menjadi variabel basis. Agar supaya x5 dan x6 cepat-

cepat keluar dari basis, maka pada fungsi sasaran diberi koefisien = M yang berupa suatu

bilangan positip besar (koefisien akan menjadi = - M jika soalnya memaksimumkan. Pembaca

Page 80: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

72 Riset Operasi : Suatu Tinjauan Algoritmis

harap melihat bagan alir pada gambar 3.1). Jadi model yang sudah siap dimasukkan dalam tabel

simpleks adalah :

Minimumkan 1 6 1 2 3 4 5 6... 12 5 0 0f x x x x x x M x M x

Kendala : 4x1 + 2x2 - x3 + x5 = 80

2x1 + 3x2 - x4 + x6 = 90

x1, x2, x3, x4, x5, x6 0

Tabel awal simpleks dapat dilihat pada tabel 3.13. Variabel basis mula-mula adalah x5 dan x6

(yang memiliki koefisien = M). c1-z1 = 12-6M dan c2-z2 = 5-5M bernilai negatif (ingat bahwa M

adalah bilangan positip yang sangat besar sehingga bilangan apapun yang dikurangi dengan M

akan menghasilkan nilai yang negatif). Karena soalnya meminimumkan, maka berarti tabel 3.13

belum optimal.

Diantara kuantitas cj-zj < 0, yang bernilai paling minimum adalah 12-6M (bukan 5-5M). Ingat

bahwa M adalah bilangan positip yang sangat besar, sehingga pengurangan dengan kuantitas

yang memiliki koefisien M yang lebih besar akan menghasilkan nilai yang lebih negatif. Maka x1

menjadi calon basis. 1 = 80/4 = 20 dan 2 = 90/2 = 45. Karena 1 adalah nilai yang paling

minimum, maka variabel basis di baris-1 (= x5) harus keluar dari basis. Elemen kunci = a11 = 4

20

900

0

1

x4 x5

12 0

x1 bi

cj

x3x2

05

(cB)i (xB)ixj

80

zj

4 0

2 -13x6M

2 -1x5M

cj - zj

M

x6

M

1

0

6M -M-M M M5M

12-6M MM5-5M 00

45

170 M

Tabel 3.13

Tabel 3.14 menunjukkan revisi tabel 3.13, dengan perhitungan yang sama seperti contoh-contoh

sebelumnya. Tabel 3.14 pun belum optimal karena c2-z2 dan c3-z3 masih bernilai negatif. Nilai

minimum terjadi pada c2-z2 sehingga x2 menjadi calon basis. Dengan melihat perhitungan ,

maka variabel yang harus keluar dari basis adalah x6.

Page 81: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 73

40

50

0

1

x4 x5

12 0

x1 bi

cj

x3x2

05

(cB)i (xB)ixj

20

zj

1 0

0 -1x6M

x112

cj - zj

M

x6

M

12 -M M2M+6

0 M-2M-1 0

25

50 M +

240

12

12

14

2 12

14

62

M

62

M

62

M

3 62

M

Tabel 3.14

Disini tampak bagaimana peranan koefisien M pada variabel semu. Dengan 2 kali iterasi maka

semua variabel semu sudah keluar dari basis. Namun ada kalanya hingga penyelesaian optimal,

variabel semu masih merupakan variabel basis. Dalam kasus ini berarti soal tidak fisibel (lihat

bagan alir gambar 3.1).

Tabel 3.15 merupakan revisi tabel 3.14. Tabel 3.15 pun belum optimal. Variabel basis x1 perlu

diganti dengan x4. Hasil revisi tabel 3.15 tampak pada tabel 3.16 yang sudah merupakan tabel

optimal.

30

25

x4 x5

12 0

x1 bi

cj

x3x2

05

(cB)i (xB)ixj

zj

1

0x25

x112

cj - zj

M

x6

M

12 5

0 0

-

215

14

38

1 12

38

134

134

4 134

M

0 14

14

14

12

152

12

12

134

12

2 12

M

Tabel 3.15

40

x4 x5

12 0

x1 bi

cj

x3x2

05

(cB)i (xB)ixj

zj

4

2x25

x40

cj - zj

M

x6

M

10 -5

2 10200

32

-1 12

32

52

52

2 52

M

0

12

52

0

1

0

-1 30

0

0

0

M

Tabel 3.16

Page 82: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

74 Riset Operasi : Suatu Tinjauan Algoritmis

40

zj

4

2x2

5

x4

0

cj - z

j

10 -5

2 10200

32

-1 12

32

52

52

2 52

M

0

12

52

0

1

0

-1 30

0

0

0

M

20

900

0

1

x4

x5

12 0

x1

bi

cj

x3

x2

05

(cB)i (x

B)i

xj

80

zj

4 0

2 -13x6

M

2 -1x5

M

cj - z

j

M

x6

M

1

0

6M -M-M M M5M

12-6M MM5-5M 00

45

170 M

40

50

0

1

20

zj

1 0

0 -1x6

M

x1

12

cj - z

j

12 -M M2M+6

0 M-2M-1 0

25

50 M +

240

12

12

14

2 12

14

62

M

62

M

62

M

3 62

M

30

25

zj

1

0x2

5

x1

12

cj - z

j

12 5

0 0

-

215

14

38

1 12

38

134

134

4 134

M

0 14

14

14

12

152

12

12

134

12

2 12

M

Tabel 3.17

Pada titik optimalnya, x1 = 0 (karena bukan merupakan variabel basis), x2 = 40, x3 = 0 (bukan

basis), x4 = 30, x5 = x6 = 0. Karena variabel semu x5 dan x6 bukan merupakan variabel basis,

maka soal memiliki penyelesaian optimal. Jika dikembalikan ke soal aslinya, maka titik optimal

adalah (x1, x2) = (0, 40) dengan nilai minimum = 200.

Tabel 3.17 merupakan ringkasan dari semua tabel iterasi yang dilakukan hingga mencapai titik

optimal. Tampak bahwa dalam setiap iterasi, nilai fungsi selalu turun (karena fungsinya adalah

meminimumkan)

Contoh 3.5

Minimumkan 4x + 6y + z

Kendala : x + 2 y 10

y + 4 z 20

Page 83: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 75

3 x + z 40

dengan x, y, dan z 0

Penyelesaian

Untuk menyelesaikan dengan metode simpleks, model terlebih dahulu dijadikan ke bentuk

standar. Karena kendala – 1 berbentuk , maka harus ditambah dengan variabel x4. Karena

kendala –2 dan 3 masing-masing berbentuk , maka harus dikurangi dengan variabel baru x5

dan x6. Koefisien x4, x5 dan x6 di fungsi sasaran = 0. Didapat :

Minimumkan 4x + 6y + z + 0 x4 + 0 x5 + 0 x6

Kendala :

x + 2 y + x4 = 10

y + 4 z - x5 = 20

3 x + z - x6 = 40

x, y, z, x4, x5, x6 0

Karena matriks kendala belum membentuk sub matriks identitas, maka pada baris/kendala kedua

dan ketiga harus ditambah variabel semu x7 dan x8. Karena soalnya meminimumkan, maka

koefisien x7 dan x8 pada fungsi sasaran = M (suatu bilangan positip besar). Didapatkan bentuk

yang siap dimasukkan dalam tabel awal simpleks

Minimumkan 4x + 6y + z + 0 x4 + 0 x5 + 0 x6 + M x7 + M x8

Kendala :

x + 2 y + x4 = 10

y + 4 z - x5 + x7 = 20

3 x + z - x6 + x8 = 40

x, y, z, x4, x5, x6, x7, x8 0

Hasil iterasi simpleks tampak pada tabel 3.18. Perhatikan cara penentuan variabel yang keluar

dan masuk dalam basis pada tiap iterasi (ditandai dengan kotak horisontal dan vertikal). Juga

perhatikan perubahan harga aij dan bi setelah dilakukan perubahan basis.

Page 84: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

76 Riset Operasi : Suatu Tinjauan Algoritmis

5

400M

x6 x7

0

0

M

0

-

204

0

x4 x5

4 0

x bi

cj

zy

16

(cB)i (xB)ixj

10

zj

1 1

0 01x7M

2 0x40

cj - zj

0

0

-1

3M 05M -M -MM

4 - 3M 01 - 5M6 - M M60 M

1

M

M

0

0

0

M

x8

M

0

-113 0x8 0 400 1

-

5M

0

0

M

-

51

0 10

zj

1 1

0 0z1

2 0x4

cj - zj

0

4 -3M+41 - M

0 3M-405M+45

0

0

M

0

-100 -3x8 1254

14

14

14

14

14

25 334M

25 94

M

14

M

14

M

14

M

5 14

M

20

-

35M

0

0

M

10

51

0 10

zj

1 1

0 0z1

2 0x40

cj - zj

0

3M 01 - M

-3M+4 00

35 M +

5

0

0

M

0

-103 0x8 114

14

14

14

14

14

353

14

M

234

M

14

M

14

M

14

M

5 14

M

-

20- 250

x6 x7

0

-1

1

0

10

101

0

x4 x5

4 0

x bi

cj

zy

16

(cB)i (xB)ixj

10

zj

1 1

0 -3-6z1

2 0x4

cj - zj

0

0

0

4 11 0 -12

0 -104 050

0

M

0

M

0

1

M

x8

1

M - 1

-400 -12x5 1 --1 4

1400

0

-1

1

401

0 10

zj

1 1

3 0z1

2 0x40

cj - zj

0

3 01 -1

1 0040

0

1

1

M - 1

-4012 0x5 4

0

-1

0

1

0

-1

0

6

0

0

0

M

Tabel 3.18

Semua variabel semu (x7 dan x8) tidak muncul sebagai variabel basis di tabel optimalnya.

Berarti soal tersebut memiliki penyelesaian optimal. Penyelesaian optimalnya x = 0, y = 0, z =

40, x4 = 10, x5 = 140, x6 = 0, x7 = 0, x8 = 0. Jika dikembalikan ke soal aslinya, maka

penyelesaian masalah mula-mula adalah x = 0, y = 0, z = 40

Page 85: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 77

Contoh 3.6

Maksimumkan f = 30 x1 + 20 x2

Kendala : x1 + x2 8

6 x1 + 4 x2 12

5 x1 + 8 x2 = 20

x1, x2 0

Penyelesaian

Untuk menjadikan bentuk standar, maka kendala – 1 dan –2 harus dijadikan persamaan. Untuk

itu ditambahkan variabel baru x3 dan x4. Didapat model :

Maksimumkan f = 30 x1 + 20 x2 + 0 x3 + 0 x4

Kendala : x1 + x2 + x3 = 8

6 x1 + 4 x2 - x4 = 12

5 x1 + 8 x2 = 20

x1, x2, x3, x4 0

Dalam kendalanya belum terbentuk matriks identitas. Untuk itu ditambahkan variabel semu pada

kendala ke-2 dan ke-3. Perhatikan bagaimana variabel semu ditambahkan. Penambahan variabel

semu harus dilakukan secukupnya saja agar terbentuk matriks identitas. Jadi tidak perlu semua

kendala ditambah variabel semu. Didapat :

Maksimumkan f = 30 x1 + 20 x2 + 0 x3 + 0 x4 - M x5 - M x6

Kendala :

x1 + x2 + x3 = 8

6 x1 + 4 x2 - x4 + x6 = 12

5 x1 + 8 x2 + x5 = 20

x1, x2, x3, x4, x5, x6 0

Page 86: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

78 Riset Operasi : Suatu Tinjauan Algoritmis

20

0

1

zj

0

-10x6-M

0 1x30

cj - zj

-M0 -M20

M00 0

-

2M+50

0 001x220

38

288

58

18

48

18

448

208

443

1628

4

28 1008

M

28 1408

M

4 208

M

12 208M

3

205

8

120

0

1

x4 x5

30 0

x1 bi

cj

x3x2

020

(cB)i (xB)ixj

8

zj

1 0

6 -14x6-M

1 1x30

cj - zj

-M

x6

-M

0

0

-11M M0 -M -M-12M

11M+30 -M012M+20 00-32M

0 008x5-M 1 52

0

zj

0x130

0 1x30

cj - zj

020

0060

01x220

328

828

528

628

428

228

14828

6028

1483

12

28 14028M

1

0

0

14028

14028

-M

0

528

828

328

14028

1628

-

30

0

120

40

0

0

4

zj

0 0

1 0x130

1x30

cj - zj

30 00 6 048

0 00-28 -M-M-6120

0 -11x40

35

85

285

15

15

65

Tabel 3.19

Tabel 3.19 merupakan hasil iterasi simpleks. Pada tabel terakhir, variabel semu (x5 dan x6) tidak

muncul sebagai basis. Ini berarti penyelesaian optimal tercapai. Penyelesaian optimal : x1 = 4,

x2 = 0, x3 = 4, x4 = 12, x5 = 0, x6 = 0. Jika dikembalikan ke soal aslinya, maka penyelesaian

optimalnya adalah x1 = 4, x2 = 0 dengan nilai maksimum fungsi = 120.

Page 87: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 79

3.3 Kejadian Khusus

Seperti pada penyelesaian dengan metode grafik (lihat bab 2.3), dalam bab ini akan dibahas

bagaimana kejadian khusus tersebut dideteksi dengan tabel simpleks.

3.3.1 Alternatif Penyelesaian

Alternatif penyelesaian berarti adanya 2 penyelesaian atau lebih yang menghasilkan nilai optimal

yang sama. Adanya alternatif penyelesaian dalam metode simpleks dapat dilihat pada tabel

optimalnya. Perhatikan elemen pada baris cj – zj yang bernilai 0 pada tabel optimal. Nilai 0 pada

baris cj – zj selalu bersesuaian dengan variabel basis. Jika ck – zk = 0 dalam tabel optimal,

sedangkan variabel pada kolom tersebut (= xk) bukanlah variabel basis, maka hal ini

menunjukkan adanya alternatif penyelesaian. Alternatif penyelesaian didapat dengan “memaksa”

variabel xk menjadi basis (meskipun sebenarnya tabelnya sudah optimal). Untuk lebih jelasnya,

perhatikan contoh 3.7 berikut ini

Contoh 3.7

Selesaikan soal berikut ini dengan metode simpleks !

Maksimumkan 1 2 1 2, 3f x x x x

Kendala x1 + 2 x2 20

3x1 + x2 20

x1, x2 0

Penyelesaian

Bentuk standar masalah tersebut adalah sebagai berikut :

Maksimumkan 1 4 1 2 3 4... 3 0 0f x x x x x x

Kendala x1 + 2 x2 + x3 = 20

3x1 + x2 + x4 = 20

x1, x2, x3, x4 0

Page 88: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

80 Riset Operasi : Suatu Tinjauan Algoritmis

Tabel iterasi simpleks tampak pada tabel 3.20. Tampak bahwa pada iterasi kedua, tabel tersebut

sudah optimal dengan penyelesaian optimal x1 = 203 dan x2 = 0 (karena bukan variabel basis

pada tabel optimal).

zj20

3 11

0 -10

0

0cj - zj

0

1x13

1

0

x30

13

53

13

13

403

203

zj0

0 00

3 01

0

0cj - zj

3 0

x1 bi

cj

x4x3x2

01

(cB)i (xB)ixj

20/3

201 0

3 11x40

2 1

0

x30

20

20

bukan basis tapi bernilai nol

Tabel 3.20

Tampak bahwa pada tabel optimalnya, c2 – z2 = 0 meskipun x2 bukan variabel basis. Ini

menunjukkan adanya alternatif penyelesaian yang bisa diperoleh dengan memaksa x2 untuk

menjadi basis.

Tabel 3.21 bagian bawah menunjukkan perubahan tabel 3.20 jika x2 dipaksa menjadi basis.

3 0

x1 bi

cj

x4x3x2

01

(cB)i (xB)ixj

zj20

3 11

0 -10

0

0cj - zj

0

1x13

1

0

x30

13

53

13

13

403

203

8

20

zj20

3 11

0 -10

0

0cj - zj

80

1 0x13

1x21

4

35

15

15

25

Tabel 3.21

Page 89: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 81

Tampak bahwa tabel sudah optimal dengan penyelesaian optimal x1 = 4 dan x2 = 8. Perhatikan

bahwa pada tabel 3.21 juga mengandung alternatif penyelesaian karena x3 bukan merupakan

variabel basis, tapi c3 – z3 = 0. Jika kemudian tabel direvisi lagi dengan cara memaksakan x3

untuk menjadi basis, maka akan diperoleh kembali tabel optimal pada tabel 3.20

3.3.2 Penyelesaian Tak Terbatas

Penyelesaian tak terbatas berarti f(X) bisa diperbesar (atau diperkecil) sampai titik tak

berhingga. Perhatikan kembali bagan alir untuk merevisi tabel yang belum optimal (gambar

3.2). Setelah mendapatkan calon basis, maka langkah berikutnya adalah menguji apakah ada

elemen aik (elemen dalam kotak vertikal) yang > 0. Jika ada maka langkah berikutnya adalah

menghitung nilai dan menentukan variabel yang harus keluar dari basis. Akan tetapi apabila

semua aik 0, maka berarti penyelesaiannya tak terbatas (bisa dikatakan juga bahwa soal tidak

memiliki penyelesaian). Untuk lebih jelasnya, perhatikan contoh 3.8 berikut ini.

Contoh 3.8

Selesaikan contoh soal 2.12 dengan metode simpleks !

Penyelesaian

Model dalam contoh 2.12 adalah

Maksimumkan f (x1, x2) = 2 x1 + 3 x2

Kendala x1 – 2 x2 4

x1 + x2 3

x1, x2 0

Bentuk standar simpleks :

Maksimumkan f (x1 … x5) = 2 x1 + 3 x2 + 0 x3 + 0 x4 - M x5

Kendala x1 – 2 x2 + x3 = 4

x1 + x2 - x4 + x5 = 3

x1 … x5 0

Page 90: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

82 Riset Operasi : Suatu Tinjauan Algoritmis

Tabel 3.22 adalah tabel iterasi simpleks. Pada iterasi kedua, c4 – z4 = 3 > 0. Karena satu-satunya

yang masih bernilai positip, maka x4 menjadi calon basis. Akan tetapi a14 = -2 < 0 dan a24 = -1

< 0 sehingga nilai tidak bisa dicari. Ini berarti bahwa soal memiliki penyelesaian tak terbatas.

x4 x5

2 0

x1 bi

cj

x3x2

03

(cB)i (xB)ixj

- M

3

zj

1

1x5- M

x30

cj - zj

- M - M

2+M 3+M- 3M

1

-2

-1

0 4

M

- M

1

0

0

1

0

- M

0

0

3

-

3

zj

3

1x23

x30

cj - zj

3 3

-1 09

1

0

-1

-2 10

-3

3

1

2

0

1

-3 - M

3

0

0

3

-

Tabel 3.22

3.3.3 Soal Tidak Fisibel

Seperti yang sudah dibahas pada bab 2.3.4, soal tak fisibel berarti soal tidak memiliki daerah

fisibel (tidak memiliki titik yang memenuhi semua kendala).

Dalam metode simpleks, variabel semu berfungsi sebagai katalisator agar muncul matriks

identitas sehingga proses simpleks dapat dilakukan. Pada iterasi yang pertama, variabel semu

akan dipakai sebagai variabel basis. Untuk mempercepat keluarnya variabel semu dari variabel

basis, maka pada fungsi sasarannya diberi koefisien = M atau -M (tergantung soal

meminimumkan atau memaksimumkan). Akan tetapi ada kalanya variabel semu tetap

merupakan variabel basis pada tabel optimalnya. Hal ini menunjukkan bahwa soalnya tidak

fisibel.

Pengecekan soal yang tidak fisibel terlihat pada bagian bawah bagan alir gambar 3.1. Setelah

tidak ada cj – zj > 0 (atau < 0 untuk soal meminimumkan), maka proses dilanjutkan dengan

meneliti apakah ada variabel semu yang masih bernilai positip. Jika tidak ada, maka penyelesaian

optimal didapatkan. Akan tetapi jika ada variabel semu yang masih bernilai positip, berarti

soalnya tidak fisibel Untuk lebih jelasnya, perhatikan contoh 3.9 berikut ini

Page 91: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 83

Contoh 3.9

Selesaikan contoh soal 2.13 dengan metode simpleks !

Penyelesaian

Model dalam contoh 2.13 adalah

Maksimumkan f (x1, x2) = 4 x1 + 3 x2

Kendala x1 + x2 3

2x1 – x2 3

x1 4

x1, x2 0

Bentuk standarnya :

Maksimumkan f (x1 … x6) = 4 x1 + 3 x2 + 0 x3 + 0 x4 + 0 x5 - M x6

Kendala x1 + x2 + x3 = 3

2x1 – x2 + x4 = 3

x1 - x5 + x6 = 4

x1 … x6 0

Tabel 3.23 adalah tabel simpleks yang sesuai. Pada tabel terakhir, semua cj – zj 0. Ini

menunjukkan bahwa tabel sudah optimal. Akan tetapi x6 yang merupakan variabel semu masih

tetap merupakan variabel basis. Berarti soalnya tidak fisibel sehingga tidak memiliki

penyelesaian optimal.

Page 92: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

84 Riset Operasi : Suatu Tinjauan Algoritmis

zj

cj - zj

-M 0

4+M 3-4M

0

0

-M

0

x4 3

1

20

x30

-1

1

1

0

0

-1

3

x6 41-M 0 0 1

1

0

0

0

0

0

32

3

4

0

0

M

-M

x4 x5

4 0

x1 bi

cj

x3x2

03

(cB)i (xB)ixj

-M

x6

0

zj

cj - zj

4 3

0 0

103

M -M

0

x1

0

14

x23

13

0

13

23

1

13

0

0

0

0

x6 0-M 0 13

13

-1 1

103

M

13M

13

M

M

-M

2

1

2

11-2M

zj

cj - zj

4 0

0 0

42

M -M

0

x1

0

14

x30

12

0

12

32

1

12

0

0

0

0

x6 0-M 0

12

12

-1 1

32

32

52

1

5

-

102

M

42M

42

M

M

-M

12 52

M

Tabel 3.23

3.3.4 Kemerosotan (Degeneracy)

Secara geometris, kemerosotan (degeneracy) berarti bahwa ada titik sudut daerah fisibel yang

terbentuk dari perpotongan 3 garis atau lebih (umumnya, suatu titik terbentuk dari perpotongan 2

garis). Dalam iterasinya, metode simpleks akan menentukan titik mana dalam daerah fisibel yang

berikutnya akan diuji optimalitasnya. Titik sudut tersebut dianggap merupakan perpotongan 2

buah garis. Hal ini ditandai dengan pemilihan yang paling minimum. Akan tetapi jika titik

yang dimaksud merupakan perpotongan 3 garis atau lebih, maka akan muncul beberapa

minimum yang sama.

Dalam hal ini boleh diambil sembarang. Akan tetapi pemilihan yang berbeda akan

menghasilkan jumlah iterasi yang berbeda pula, meskipun hasil akhirnya sama. Tidak ada

petunjuk tentang cara pemilihan agar jumlah iterasinya paling sedikit. Untuk lebih jelasnya,

perhatikan contoh 3.10 berikut ini

Page 93: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 85

Contoh 3.10

Selesaikan masalah program linier berikut ini dengan metode simpleks

Maksimumkan f (x1, x2) = 5 x1 + 3 x2

Kendala 4x1 + 2x2 12

4x1 + x2 10

x1 + x2 4

x1, x2 0

Penyelesaian

Bentuk standarnya :

Maksimumkan f (x1 … x5) = 5 x1 + 3 x2 + 0 x3 + 0 x4 + 0 x5

Kendala 4x1 + 2x2 + x3 = 12

4x1 + x2 + x4 = 10

x1 + x2 + x5 = 4

x1 … x5 0

Tabel simpleksnya tampak pada tabel 3.24. Pada iterasi ke-2, terdapat 2 buah nilai minimum

yang sama-sama bernilai 2. Untuk itu dipilih salah satunya (x3 atau x5) secara sembarang.

x4 x5

5 0

x1 bi

cj

x3x2

03

(cB)i (xB)ixj

0

312x3

10

4

4x40

0

1

2

1

0

0

0

0

1

zj

cj - zj

0 0

5 30

0

0 0

0

0

0

441x50 1 0 10

52

22x3

10

0

1x15

0 1 -1

0

0

0

1

zj

cj - zj

5

0 0

0

0

0

20x50 10

52

14

34

14

14

32

?

?

54

74

54

54

252

Tabel 3.24

Page 94: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

86 Riset Operasi : Suatu Tinjauan Algoritmis

Gambar 3.4 merupakan interpretasi geometris masalah tersebut. Ketiga kendala berpotongan

pada titik G (2, 2). Setelah mengecek titik (0, 0), tabel simpleks mengecek titik (5/2, 0) dan

kemudian (2,2). Terjadi alternatif pilihan, apakah titik (2,2) dianggap perpotongan kendala-1 dan

2 atau kendala-2 dan 3

x1

x2

A (0,4)

E (3,0)

B (0, 6)

D (5/2,0)

G (2,2)

C (0, 10)

F (4,0)

Gambar 3.4

Tabel 3.25 a adalah kelanjutan iterasi jika x3 keluar dari basis, sedangkan tabel 3.25 b adalah

kelanjutan iterasi jika x5 yang keluar dari basis. Perhatikan bahwa meskipun jumlah iterasi

hingga mencapai optimal pada tabel 3.25 a dan 3.25 b tidak sama, namun keduanya

menghasilkan penyelesaian optimal yang sama yaitu x1 = 2 dan x2 = 2

Page 95: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 87

x4 x5

5 0

x1 bi

cj

x3x2

03

(cB)i (xB)ixj

0

2

x2 0

1x15

3 1

0

0

01 -

zj

cj - zj

5

0 0

3

0

0

0x50

012

12

74

74

12

12

14

34

2

0

16

-1

1

4

0

2

x2 0

1x15

3 1

0

0

2

zj

cj - zj

5

0 0

3

-1

1

0x40

-112

12

32

2

0

16

0

2

0

1

-1

1

0

0

22x3

10

0

1x15

0 1 -1

0

0

0

1

zj

cj - zj

5

0 0

0

0

0

20x50 10

52

14

34

14

14

32

54

74

54

54

252

Tabel 3.25 a

x4 x5

5 0

x1 bi

cj

x3x2

03

(cB)i (xB)ixj

0

2

x3 0

1x15

0

1

0

0

0

1

zj

cj - zj

5

0 0

3

0

0

0x23 0 43

13

13

73

73

23

23

23

43

13

2

0

16

22x3

10

0

1x15

0 1 -1

0

0

0

1

zj

cj - zj

5

0 0

0

0

0

20x50 10

52

14

34

14

14

32

54

74

54

54

252

Tabel 3.25 b

Page 96: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

88 Riset Operasi : Suatu Tinjauan Algoritmis

3.3.5 Variabel Penyusun Tak Bersyarat

Dalam bentuk standar program linier, disyaratkan bahwa semua variabel penyusunnya harus

0. Apabila ada variabel penyusunnya yang bernilai bebas (boleh negatif), maka sebelum masuk

ke proses simpleks, masalah harus terlebih dahulu ditransformasi sehingga semua variabel

penyusunnya 0. Caranya adalah dengan menyatakan variabel yang bernilai bebas sebagai

selisih 2 variabel baru yang keduanya 0. Untuk lebih jelasnya perhatikan contoh 3.11

Contoh 3.10

Maksimumkan f (x1, x2, x3) = 3 x1 + 2 x2 + x3

Kendala 2x1 + 5x2 + x3 12

6x1 + 8x2 22

x2, x3 0

Penyelesaian

Perhatikan bahwa yang disyaratkan hanyalah x2 dan x3 saja, sedangkan x1 boleh bernilai

sembarang. Untuk menjadikan ke bentuk standar program linier, maka x1 dinyatakan sebagai

selisih dua variabel baru x4 dan x5.

x1 = x4 – x5.

Dengan mensubstitusi x1 ke model didapatkan :

Maksimumkan f (x2, x3, x4, x5) = 3 (x4 – x5) + 2 x2 + x3

Kendala 2 (x4 – x5) + 5x2 + x3 12

6 (x4 – x5) + 8x2 22

x2, x3, x4, x5 0

Bentuk standarnya :

Maksimumkan f (x2, x3, x4, x5) = 2 x2 + x3 + 3x4 – 3x5 + 0x6

Kendala 5x2 + x3 + 2x4 – 2x5 + x6 = 12

8x2 + 6x4 – 6x5 + x7 = 22

x2 … x7 0

Page 97: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 89

Tabel simpleks tampak pada tabel 3.26. Perhatikan bahwa variabel basis awal boleh diambil x3

ataupun x6

Penyelesaian optimal x2 = 0, x3 = 28 146 3 , x4 = 22 11

6 3 , x5 = x6 = x7 = 0. Jika dikembalikan ke

soal aslinya, maka x1 = x4 – x5 = 113 - 0 = 11

3 . maka penyelesaian soal aslinya adalah x1 = 113 , x2

= 0 dan x3 = 143 . Perhatikan disini bahwa x1 yang bernilai sembarang tidak berarti harus bernilai

negatif. Akan tetapi juga tidak boleh diasumsikan 0 sehingga proses simpleks juga tidak dapat

langsung digunakan.

x3

x4

3

1

0

1

-1

0

1

0

zj

cj - z

j

1

0

-3

00

3

146

86

266

386

286

226

946

26

16

16

16

0

1

1

-1

x5

x6

2 -3

x2

bi

cj

x4

x3

31

(cB)i (x

B)i

xj

0

612x3

22

5

8x7

0

1

0

1

-6

-2

6

2

zj

cj - z

j

5 1

-3 012

-2

-11

2

226

x7

0

1

0

0

0

0

1

1

0

Tabel 3.26

Page 98: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

90 Riset Operasi : Suatu Tinjauan Algoritmis

SOAL-SOAL LATIHAN

1. Selesaikan masalah berikut ini dengan metode simpleks

Maksimumkan Z = 3 x1 + 4 x2 + 2 x3

Kendala :

x1 + x2 + x3 + x4 30

3 x1 + 6 x2 + x3 - 2 x4 0

x2 4

x1, x2, x3, x4 0

2. Gunakan metode simpleks untuk membuktikan bahwa masalah berikut ini tidak mempunyai

penyelesaian optimal

Maksimumkan Z = x1 + 2 x2

Kendala :

-2 x1 + x2 + x3 2

- x1 + x2 - x3 1

x1, x2, x3 0

3. Gunakan metode simpleks untuk menyelesaikan masalah berikut ini !

a. Max Z = x1 + x2

Kendala :

x1 + 5 x2 5

2 x1 + x2 4

x1, x2 tak negatif

b. Max Z = 3 x1 + 4 x2

Kendala :

2 x1 + x2 6

2 x1 + 3 x2 9

x1, x2 tak negatif

Page 99: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 91

4. Sebuah perusahaan membuat 3 jenis produk, yang masing-masing harus melalui 3 macam

proses. Perusahaan tersebut dapat menjual semua produksinya, tetapi kemampuan

produksinya terbatas. Data yang berhubungan dengan perusahaan tersebut tampak pada tabel

di bawah ini. Bagaimana campuran produksi yang harus dibuat ?

Waktu Proses (Jam/Unit)

Produk Proses - 1 Proses - 2 Proses - 3 Biaya Harga Jual

A 1 3 2 11 15

B 3 4 1 12 20

C 2 2 2 10 16

Waktu Proses yang tersedia

160 120 80

5. Minimumkan 4x + 6y + z

Kendala :

x + 2 y 10

y + 4 z 20

3 x + z 40

dengan x, y, dan z 0

6. Perusahaan konstruksi ABC sedang membangun jalan di sisi bukit. Dibutuhkan bom untuk

meledakkan lapisan bawah tanah agar didapatkan permukaan yang diinginkan. Ada 3 jenis

cairan bahan peledak (A, B, dan C) yang dapat dipakai dalam pembuatan bom.

Diketahui bahwa paling sedikit 10 ons bahan peledak harus dipergunakan. Jika digunakan

lebih dari 20 ons bahan peledak, maka ledakan akan terlalu besar dan merusak. Agar terjadi

ledakan yang baik, paling sedikit 1/4 ons bahan C harus dipakai untuk setiap ons bahan A,

dan paling sedikit 1 ons bahan B harus dipakai untuk setiap ons bahan C.

Harga bahan A, B, dan C masing-masing adalah 6, 18 dan 20 (ribu) per ons. Tentukan

campuran peledak yang paling murah untuk medapatkan ledakan yang aman.

Page 100: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

92 Riset Operasi : Suatu Tinjauan Algoritmis

7. Selesaikan masalah program linier berikut dengan metode simpleks, lalu bandingkanlah

hasilnya dengan metode grafik !

a. Maksimumkan f = x1 + x2

Kendala :

x1 + x2 1

5 x1 + 10 x2 50

x2 4

x1, x2 0

b. Maksimumkan f = -3 x1 + 4 x2

Kendala :

x1 - x2 0

- x1 + 2 x2 2

x1, x2 0

c. Maksimumkan Z = 3 x1 + 2 x2 + 8 x3

Kendala :

4 x1 - 3 x2 + 12 x3 12

x1 + 4 x3 6

x2 - x3 = 2

x1, x2, x3 0

d. Minimumkan f = 30 x1 + 20 x2

Kendala :

x1 + x2 8

6 x1 + 4 x2 12

5 x1 + 8 x2 = 20

x1, x2 0

e. Minimumkan f = x1 - 2 x2 + 3 x3

Kendala :

-2 x1 + x2 + 3 x3 = 2

2 x1 + 3 x2 + 4 x3 = 1

x1, x2, x3 0

Page 101: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 93

8. Gunakan metode simpleks untuk membuktikan bahwa masalah berikut ini tidak fisibel

Minimumkan Z = 2 y1 + 4 y2

Kendala :

2 y1 - 3 y2 2

- y1 + y2 3

y1, y2 0

9. Minimumkan f = -2 x1 + x2

Kendala :

x1 + x2 4

x1 - x2 6

x1 0, x2 sembarang

Pada soal no 10 – 19 berikut ini, buatlah model Program Linier yang sesuai. Kemudian gunakan

perangkat lunak untuk menyelesaikannya

10. Rilex adalah sebuah perusahaan pengembang sedang mengembangkan area di sisi danau

untuk perumahan. Untuk keperluan pemasaran, mereka merencanakan penggunaan media

TV, radio dan koran. Data yang didapat meliputi jumlah pelanggan potensial yang bisa

dijangkau, biaya per iklan, jumlah maksimum pemakaian media per bulan dan exposure

quality unit untuk tiap media. Data yang relevan tampak pada tabel berikut.

Anggaran untuk promosi adalah 300.000 (ribuan) untuk bulan pertama. Ada beberapa

persyaratan yang diinginkan oleh Rilex. Jumlah iklan di TV paling sedikit sebanyak 10

kali, tapi anggaran seluruh iklah di TV tidak boleh melebihi 180.000 (ribuan). Paling

sedikit 50.000 pelanggan potensial harus terjangkau. Bagaimana perencanaan iklan

yang akan membuat exposure quality unit maksimum ?

Media Iklan Juml Pelanggan Potensial yang

terjangkau

Biaya per iklan

(ribuan)

Jumlah iklan yang tersedia

per bulan

Exposure Quality Unit

TV siang hari 1000 1500 15 65

TV sore hari 2000 3000 10 90

Koran harian 1500 400 25 40

Koran Minggu 2500 1000 4 60

Radio 300 100 30 20

Page 102: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

94 Riset Operasi : Suatu Tinjauan Algoritmis

11. TopRiset adalah sebuah lembaga survei melakukan jasa penelitian untuk mengetahui

karakteristik, attitude dan kesukaan konsumen terhadap produk baru, pelayanan dan iklan

yang dilakukan.

Sebuah perusahaan langganan yang menggunakan jasanya untuk melakukan survei door to

door terhadap 1000 pelanggan, dengan beberapa spesifikasi tambahan sbb :

Wawancara minimum terhadap 400 pelanggan yang memiliki anak

Wawancara minimum terhadap 400 pelanggan yang tidak memiliki anak

Jumlah pelanggan yang diwawancarai malam hari paling sedikit harus sama dengan

jumlah pelanggan yang diwawancarai pada siang hari

Paling sedikit 40 % wawancara terhadap pelanggan yang memiliki anak harus

dilakukan pada malam hari

Paling sedikit 60 % wawancara terhadap pelanggan yang tidak memiliki anak harus

dilakukan pada malam hari

Biaya interview untuk tiap karakteristik pelanggan dan waktu berbeda-beda seperti tampak

pada tabel berikut ini

Biaya Survei (ribuan)

Keluarga Siang Malam

Dengan anak 200 250

Tanpa Anak 180 200

Bagaimana TopRiset harus mengatur survei agar memenuhi permintaan pelanggan tapi

dengan biaya minimum ?

12. Baja Hitam adalah sebuah perusahaan konstruksi baru saja mendapatkan dana penjualan

saham sebesar 1000 (juta rupiah) dan sekarang hendak mengalihkan ke investasi lain.

Untuk itu ia menyerahkan pengaturannya pada Indodana, sebuah perusahaan investasi yang

sudah lama dikenalnya. Indodana merekomendasikan 4 industri yang bergerak di bidang

Page 103: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 95

industri minyak, industri baja atau obligasi pemerintah. Untuk tiap-tiap investasi, imbal hasil

yang diperkirakan akan diperoleh tampak pada tabel berikut ini.

Investasi Imbal hasil (%)

Indika Oil 7.3

Berau Oil 10.3

Krakatau Steel 6.4

Sumatra Steel 7.5

Obligasi 4.5

Manajemen Baja Hitam memberikan beberapa syarat investasinya :

Tidak boleh ada industri (baik minyak maupun baja) yang mendapatkan lebih dari 500

juta rp

Obligasi pemerintah harus menerima paling sedikit 25 % dari dari investasi di industri

baja

Investasi di Berau Oil tidak boleh melebihi 60 % dari total investasi di bidang minyak.

Bagaimana portofolio yang harus dibuat oleh Valbury agar memperoleh pendapatan sebesar-

besarnya tapi tetap memenuhi permintaan manajemen Baja Hitam ?

13. PastiLaku adalah sebuah perusahaan event organizer yang sedang membuah perencanaan

promosi. Media yang dapat dipilih antara lain melalui TV, radio dan koran. Perkiraan

konsumen, biaya dan jumlah maksimum pemanfaatan media tampak pada tabel berikut.

Komponen TV Radio Koran

Jumlah pelanggan yang

terjangkau per iklan 100.000 18.000 40.000

Biaya per iklan (ribuan rp) 2.000 300 600

Maksimum iklan 10 20 10

Untuk memberikan keseimbangan penggunaan media, penggunaan radio tidak boleh

melebihi 50 % dari total jumlah iklan. Disamping itu, iklan di TV paling sedikit harus 10 %

dari total jumlah iklan yang dilakukan.

Page 104: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

96 Riset Operasi : Suatu Tinjauan Algoritmis

Jika anggaran promosi terbatas sebesar 18.200 (ribuan rp), bagaimana cara promosi yang

harus dilakukan agar pelanggan yang terjangkau sebesar-besarnya ?

14. Manajemen perusahaan parcel makanan ingin menentukan jumlah kedua produk yang

dihasilkannya untuk persiapan hari raya. Tabel di bawah ini menunjukkan informasi yang

diperlukan. Buatlah model program linier yang sesuai untuk perusahaan parcel makanan

tersebut. Carilah penyelesaiannya

Waktu pembuatan sebuah

Produk (jam) Waktu yang

tersedia Pekerjaan 1 2

A 1.00 0.35 100

B 0.3 0.2 36

C 0.2 0.5 50

Keuntungan per unit (ribu rp)

30 15 80

15. LautanDana adalah sebuah perusahaan pembiayaan merencanakan untuk mengalokasikan

sejumlah dana untuk dipinjam nasabahnya. Disamping itu LautanDana juga ingin

menempatkan sebagian dananya pada deposito bank. Bunga pinjaman adalah sebagai

berikut :

Jenis pinjaman untuk nasabah Bunga yg diperoleh

(% per tahun)

Pembelian Mobil 8

Pembelian alat rumah tangga 10

Pembelian rumah 11

Pengembangan Usaha 12

Deposito 9

Ada beberapa keputusan manajemen LautanDana yang harus dipenuhi :

Jumlah dana yang ditanamkan di deposito tidak boleh melebihi 30 % dari total dana

yang dimiliki

Karena beresiko tinggi, dana yang dipinjam nasabah untuk pengembangan usaha tidak

boleh melebihi 10 % dari seluruh pinjaman (mobil, alat rumah tangga, rumah dan

pengembangan usaha)

Page 105: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 97

Kredit untuk pembelian alat rumah tangga ditambah kredit pembelian rumah tidak boleh

melebihi kredit untuk pembelian mobil.

Kredit pembelian rumah ditambah dengan kredit pengembangan usaha tidak boleh

melebihi deposito.

Jika LautanDana memiliki dana sebesar 2000 (juta rupiah), berapa besar kredit untuk tiap-

tiap keperluan agar return yang dihasilkan maksimum ?

16. Total Oil sedang mengembangkan additive baru untuk campuran bahan bakar pesawat

terbang. Additive tersebut merupakan campuran dari 3 bahan dasar yaitu A, B, dan C.

Untuk menghasilkan performance yang optimal, jumlah total additive yang dicampurkan ke

bahan bahaka haruslah minimum 10 ml per liter bahan bakar. Akan tetapi agar tidak

membahayakan, jumlah total additive tidak boleh melebihi 15 ml per liter bahan bakar.

Komposisi ketiga bahan dasar additive merupakan hal yang penting. Paling sedikit 1 ml

bahan A haruslah digunakan untuk tiap ml bahan B. Jumlah bahan C paling sedikit harus 1,5

kali bahan A.

Jika harga tiap ml bahan A, B dan C masing-masing adalah Rp 1000, Rp 300 dan Rp 900,

carilah komposisi bahan additive yang paling baik !

17. Seorang penasehat keuangan di MaxiDana ingin mengembangkan model yang dapat dipakai

untuk mengalokasikan dana investasi diantara 4 kemungkinan : saham, deposito, obligasi,

dan tabungan. MaxiDana sudah memperkirakan faktor resiko dan imbal hasil untuk tahun

depan berdasarkan kondisi ekonomi. Resiko diukur berdasarkan indeks antara 0 dan 1 (0

menyatakan tanpa resiko).

Jenis Investasi Imbal Hasil (%) Resiko

Saham 10 0.8

Deposito 3 0.2

Obligasi 4 0.3

Tabungan 1 0.0

Model yang dikembangkan bertujuan untuk menentukan portofolio investasi agar diperoleh

imbal hasil yang maksimum, dengan memenuhi tingkat resiko yang diinginkan.

Page 106: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

98 Riset Operasi : Suatu Tinjauan Algoritmis

Total resiko adalah umlah resiko untuk semua investasi yang dilakukan. Sebagai contoh,

seseorang yang menginvestasikan dananya masing-masing 40 % untuk saham, 30 % untuk

deposito, 20 % untuk obligasi dan 10 % untuk tabungan memiliki total resiko sebesar

0.4(0.8) + 0.3(0.2) + 0.2(0.3) + 0.1(0.0) = 0.44. Maksimum Total resiko yang lebih kecil

dari 0.3 menunjukkan investor yang konservatif, Nilai maksimum total resiko antara 0.3

hingga 0.5 menunjukkan investor yang menengah, dan nilai maksimum total resiko lebih

dari 0.5 menunjukkan investor yang agresif.

Ada beberapa aturan yang ditetapkan oleh MaxiDana sbb :

Investasi di saham tidak boleh lebih dari 75 % dari total investasi

Jumlah investasi di obligasi paling sedikit harus sama jumlahnya dengan jumlah

investasi di di deposito

Jumlah tabungan paling sedikit harus 10 % dari total investasi, tapi tidak boleh lebih

dari 30 %

a. Misalkan maksimum total resiko seorang klien adalah 0.4. Bagaimana alokasi investasi

yang optimal ? Berapa imbal hasilnya ?

b. Misalkan klien yang konservatif memiliki maksimum nilai resiko = 0.18. Bagaimana

portofolio optimal baginya ? Berapa imbal hasil baginya ?

18. Perusahaan IndoTurbin membeli 2 jenis komponen mesin dari 3 supplier berbeda. Tiap

supplier memiliki kapasitas terbatas, dan tidak ada satupun yang dapat memenuhi semua

kebutuhan perusahaan. Untuk tiap komponen, IndoTurbin dapat membelinya dari beberapa

supplier berbeda. Harga penawaran mesin di tiap suppllier berbeda-beda seperti yang tampak

pada tabel berikut ini. Baris terbawah adalah kemampuan supplier untuk mensupply barang

yang dibutuhkan

Supplier

Komponen 1 2 3

1 $ 12 $ 13 $ 14

2 $ 10 $ 11 $ 10

Kapasitas 600 1000 800

Page 107: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM LINIER : METODE SIMPLEKS 99

Jika IndoTurbin membutuhkan komponen 1 dan 2 masing-masing sebanyak 1000 dan 800

unit, bagaimana cara pembelian yang disarankan agar total biaya pembelian seminimum

mungkin ? Berapa jumlah total biaya pembelian ?

19. Dua Kertas adalah perusahaan kertas yang memproduksi kertas berbentuk gulungan selebar

20 cm yang biasa dipakai untuk cash register. Ada 3 jenis kertas gulungan yang dibuat,

masing-masing dengan lebar 3, 5 dan 7 cm. Karena kertas aslinya memiliki lebar 10

cm, maka kertas tersebut harus dipotong-potong agar memenuhi kebutuhan. Ada 7

kemungkinan pemotongan sbb :

Jumlah gulungan

Alternatif potongan

3 cm 5 cm 7 cm Sisa potongan

(cm)

1 6 0 0 2

2 0 4 0 0

3 2 0 2 0

4 0 1 2 1

5 1 3 0 2

6 1 2 1 0

7 4 0 1 1

Kebutuhan 1000 2000 4000

a. Jika perusahaan tersebut ingin meminimumkan jumlah gulungan yang akan dibuat,

berapa buah gulungan yang harus dibuat untuk tiap alternatif ? Berapa jumlah gulungan

yang dipotong dan berapa sisa potongannya ?

b. Jika perusahaan tersebut ingin meminumkan jumlah sisa potongan, berapa potongan

untuk tiap-tiap alternatif ? Berapa jumlah gulungan yang dipotong dan berapa sisa

potongannya ?

Apakah perbedaan diantara soal (a) dan (b) diatas ? Pada situasi apa masing-masing tujuan

tersebut dipilih ?

Page 108: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 44

PROGRAM BILANGAN BULAT

Dalam bab 2 dan 3 telah dibahas tentang Program Linier. Dalam beberapa kasus variabel

keputusan harus bernilai bulat, misalnya jumlah mobil, jumlah rumah, dll. Oleh karena itu, dalam

bab ini dibahas tentang Program Bilangan Bulat, yang merupakan kasus khusus Program Linier,

untuk menyelesaikan masalah Program Linier yang penyelesaiannya harus bilangan bulat

4.1 Program Bilangan Bulat Sebagai Perluasan

Program Linier

Secara umum, penyelesaian program linier bukanlah bilangan bulat. Apabila variabel

keputusannya merupakan kuantitas yang harus bulat (misalkan jumlah mobil, jumlah almari, dll),

maka model program linier tidak dapat dipakai. Untuk lebih melihat perbandingannya,

perhatikan contoh 4.1 dan 4.2

Contoh 4.1

Suatu perusahaan obat nyamuk memproduksi 2 macam obat pembunuh nyamuk cair, yaitu jenis

“super” dan jenis “biasa”. Keduanya dibuat dari bahan dasar yang sama yaitu cairan A dan B,

namun dengan komposisi yang berbeda-beda.

Untuk membuat 1 liter jenis super dibutuhkan 10 cc bahan A dan 4 cc bahan B, sedangkan 1 liter

jenis biasa membutuhkan 2 cc bahan A dan 2 cc bahan B.

Penjualan tiap liter obat nyamuk jenis super memberikan keuntungan sebesar Rp 5000,

sedangkan jenis biasa sebesar Rp 2000. Perusahaan tersebut ingin membuat sebanyak-

banyaknya, namun ia memiliki keterbatasan dalam hal penyediaan bahan pembuatnya. Tiap

minggu ia hanya mampu menyediakan 100 cc bahan A dan 50 cc bahan B. Tentukan jumlah

obat yang harus dibuat (dengan kendala yang ada) agar keuntungan yang didapatkannya

maksimum !

Page 109: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 101

Penyelesaian

Misalkan x1 = jumlah cairan jenis super dan

x2 = jumlah cairan jenis biasa yang dibuat.

Model yang sesuai adalah :

Maksimumkan 1 2 1 2, 5 2f x x x x (ribuan)

Kendala 10x1 + 2x2 100

4x1 + 2x2 50 ; x1, x2 0.

Gambar 4.1 menunjukkan daerah fisibel dengan titik sudut masing-masing : O (0, 0) dengan

f(O) = 0, A (0, 25) dengan f(A) = 50, E 1 13 3

8 , 8 dengan f(E) = 13

58 dan D (10,0) dengan f(D)

= 50.

x1

x2

A (0,25)

B (25/2,0)

x1+ 2x2 = 20

3x1+ x2 = 20

C (0, 50)

D (10, 0)

E 1 13 3

8 , 8

Gambar 4.1

Titik maksimumnya adalah E 1 13 3

8 , 8 dengan f(E) = 13

58 . Jika dikembalikan ke soal aslinya,

berarti pengusaha tersebut harus memproduksi 13

8 liter cairan super dan 13

8 liter cairan biasa.

Contoh 4.2

Seorang tukang jahit membuat baju dan rok yang keduanya dibuat dari bahan dasar yang sama

yaitu A dan B.

Page 110: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

102 Riset Operasi : Suatu Tinjauan Algoritmis

Untuk membuat satu set baju dibutuhkan 10 m bahan A dan 4 m bahan B, sedangkan pembuatan

satu set rok membutuhkan 2 m bahan A dan 2 m bahan B.

Penjualan tiap set baju memberikan keuntungan sebesar Rp 5000, sedangkan tiap set rok sebesar

Rp 2000. Tukang jahit tersebut ingin membuat sebanyak-banyaknya, namun ia memiliki

keterbatasan dalam hal penyediaan bahan pembuatnya. Tiap minggu ia hanya mampu

menyediakan 100 m bahan A dan 50 m bahan B. Tentukan jumlah baju dan rok yang harus

dibuat (dengan kendala yang ada) agar keuntungan yang didapatkannya maksimum !

Penyelesaian

Misalkan x1 = jumlah baju dan

x2 = jumlah rok yang dibuat.

Model yang sesuai adalah :

Maksimumkan 1 2 1 2, 5 2f x x x x (ribuan)

Kendala 10x1 + 2x2 100

4x1 + 2x2 50 ; x1, x2 0.

Perhatikan bahwa model tersebut sama persis dengan model pada contoh 4.1. Ini berarti

penyelesaian optimalnyapun sama, yaitu (x1, x2) = ( 13

8 , 13

8 ). Jika dikembalikan ke soal aslinya,

berarti tukang jahit tersebut harus membuat 13

8 baju dan 13

8 rok.

Pada contoh 4.1, penyelesaian optimal dapat diaplikasikan karena jumlah cairan obat nyamuk

dapat berupa pecahan. Akan tetapi penyelesaian contoh 4.2 tidak dapat dilakukan karena jumlah

baju maupun rok yang dibuat haruslah merupakan bilangan bulat.

Pembulatan/pemotongan hasil yang didapat dari penyelesaian optimal program linier secara

umum tidak dapat dilakukan karena mungkin terdapat beberapa penyelesaian pembulatan dan

pembulatan/pemotongan tersebut belum tentu tetap merupakan penyelesaian optimalnya. Dalam

contoh 4.2, ada beberapa pembulatan penyelesaian antara lain (8, 8), (8, 9), (9, 8), (9, 9). Tidak

jelas mana yang merupakan titik yang terletak di daerah fisibel sehingga tidak dapat ditentukan

titik mana yang merupakan penyelesaian optimalnya.

Penyelesaian program linier yang mensyaratkan semua variabelnya bulat dilakukan dengan

model Program Bilangan Bulat. Program bilangan bulat merupakan perluasan program linier

Page 111: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 103

dengan penambahan kendala semua variabel penyusunnya harus merupakan bilangan bulat.

Dalam bentuk matematika, model program bilangan bulat adalah sebagai berikut :

Maksimumkan/minimumkan 1 2 1 1 2 2, , ... , ...n n nf x x x c x c x c x

dengan kendala :

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

...

...

...

...

n n

n n

m m mn n m

a x a x a x b

a x a x a x b

a x a x a x b

1 2, , ... , 0nx x x bulat

Metode yang sering dipakai untuk menyelesaikan model Program Bilangan Bulat adalah metode

Cabang – Batas (Branch – Bound). Secara umum, algoritma penyelesaian model program

bilangan bulat adalah sebagai berikut :

1. Selesaikan model program bilangan bulat dengan program linier (grafik ataupun simpleks).

Abaikan syarat semua variabel penyusunnya bilangan bulat.

2. Jika penyelesaian langkah (1) merupakan bilangan bulat, maka penyelesaian tersebut

merupakan penyelesaian program bilangan bulat. Jika tidak, lanjutkan ke langkah (3)

3. Ubah soal semula dengan menambahkan kendala/variabel baru sesuai dengan algoritma

Cabang – Batas

4. Kembali ke langkah (1)

4.2 Metode Cabang – Batas

Prinsip kerja metode Cabang – Batas (Branch & Bound) adalah mencabangkan soal yang tidak

memiliki penyelesaian bulat. Percabangan dilakukan terus hingga diperoleh penyelesaian bulat.

Pencabangan (Branching)

Percabangan berarti memecah soal menjadi 2 soal baru (masing-masing ditambah dengan

kendala baru) dan menyelesaikan keduanya

Page 112: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

104 Riset Operasi : Suatu Tinjauan Algoritmis

Misalkan penyelesaian optimal program bilangan bulat memuat variabel xj yang tidak bulat

dengan i1 < xj < i2 (i1 dan i2 merupakan 2 bilangan bulat berurutan). Maka program

dicabangkan menjadi 2 soal baru. Cabang kiri ditambah dengan kendala xj i1, sedangkan

cabang kanan ditambah dengan kendala xj i2. Perhatikan penambahan kendalanya agar tidak

terbalik.

Pembatasan (Bounding)

Misalkan soal adalah memaksimumkan.

Pencabangan dilakukan terus hingga ditemukan penyelesaian bilangan bulat (misal X* dengan

nilai maksimum f(X*)). X* menjadi batas bawah. X* belum tentu merupakan penyelesaian

optimal masalah mula-mula. Akan tetapi apabila Xa adalah penyelesaian lain (bulat ataupun

tidak) dengan f(Xa) < f(X*) maka pencabangan dari titik Xa pasti tidak akan menghasilkan

penyelesaian bilangan bulat yang optimal sehingga percabangan tidak perlu dilakukan.

Jika masalahnya adalah meminimumkan maka penyelesaian bulat X* yang pertama kali

ditemukan menjadi batas atas. Semua penyelesaian lain (bulat ataupun tidak) yang memiliki nilai

fungsi lebih besar dari f(X*) diabaikan dan tidak perlu dicabangkan.

Logikanya adalah sebagai berikut. Dalam soal memaksimumkan, misalkan titik X memiliki nilai

fungsi f(X) = A. Semua pencabangan dari titik X pasti memberikan nilai fungsi yang lebih kecil

dari A (ingat bahwa pencabangan dilakukan dengan penambahan kendala baru. Semakin banyak

kendala, nilai fungsinya semakin kecil). Jika X merupakan penyelesaian bulat dan Xa adalah

penyelesaian lain dengan f(Xa) < f(X), maka Xa pastilah bukan penyelesaian optimal masalah

semula. Apalagi jika Xa memiliki cabang Xb, maka pastilah f(Xb) < f(Xa) < f(X) sehingga Xb

pasti lebih tidak optimal lagi. Ini berarti bahwa pencabangan Xa percuma jika dilakukan.

Kasusnya berbeda jika X merupakan penyelesaian bulat dan Xa adalah penyelesaian lain dengan

f(Xa) > f(X). pencabangan dari Xa perlu dilakukan karena mungkin saja pencabangan dari Xa

akan menghasilkan Xb dengan f(Xa) > f(Xb) > f(X).

Page 113: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 105

Pemilihan titik dan variabel yang dicabangkan

Misalkan Xa dan Xb merupakan 2 titik yang penyelesaian optimalnya bukan merupakan bilangan

bulat sehingga keduanya perlu dicabangkan. Apabila soalnya memaksimumkan, pilihlah titik

yang nilai fungsinya lebih besar. Sebaliknya jika soalnya meminimumkan, pilihlah titik yang

nilai fungsinya lebih kecil.

Misalkan X = (x1, x2, …, xn) adalah penyelesaian soal dengan beberapa diantara x1, x2, …, xn

bukan merupakan bilangan bulat sehingga perlu dicabangkan. Untuk mempercepat proses,

percabangan dilakukan pada variabel xj yang pecahannya paling dekat dengan 0,5 (paling jauh

dari bilangan bulat). Jika ada beberapa xj yang pecahannya sama dekatnya dengan 0,5 maka

pilihlah salah satunya secara sembarang.

Untuk memberikan gambaran bagaimana metode cabang – batas bekerja, perhatikan contoh 4.3

Contoh 4.3

Maksimumkan z = 3 x1 + 4 x2

Kendala 2 x1 + x2 6

2 x1 + 3 x2 9

x1, x2 bilangan bulat tidak negatif

Penyelesaian

Karena soal terdiri dari 2 variabel maka penyelesaian akan dilakukan dengan metode grafik.

Program I (masalah mula-mula)

Gambar 4.2 menunjukkan grafik kendala soal mula-mula. Titik-titik dalam daerah fisibel adalah

penyelesaian bulatnya. Titik E merupakan titik perpotongan kedua kendala. Daerah fisibelnya

adalah segi empat OAED yang titik sudut dan nilai fungsinya adalah :

O (0, 0) dengan f(O) = 3 (0) + 4 (0) = 0

A (0, 3) dengan f(A) = 3 (0) + 4 (3) = 12

D (3, 0) dengan f(D) = 3 (3) + 4 (0) = 9

E (2,25 , 1,5) dengan f(E) = 3 (2,25) + 4 (1,5) = 12,75

Page 114: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

106 Riset Operasi : Suatu Tinjauan Algoritmis

x1

x2

A (0,3)

B (9/2, 0)

2x1+ x2 = 6

2x1+ 3x2 = 9

C (0,6)

D (3,0)

E (2,25 , 1,5)

Gambar 4.2

Titik maksimumnya adalah titik E = (x1, x2) = (2,25 , 1,5) dengan f(E) = 12,75. Baik x1 maupun

x2 bukan merupakan bilangan bulat sehingga proses percabangan harus dilakukan. Pecahan x1

adalah 0,25 sedangkan pecahan x2 adalah 0,5. Pencabangan dilakukan pada titik xj yang

pecahannya paling dekat dengan pecahan 0,5, yaitu pada x2.

Karena x2 = 1,5 terletak antara 1 dan 2, maka pencabangan pertama dilakukan dengan

menambahkan kendala x2 1 (program 2) sedangkan pencabangan kedua dilakukan dengan

menambahkan kendala x2 2 (program 3)

Program I I (Program I + kendala x2 1)

Maksimumkan z = 3 x1 + 4 x2

Kendala 2 x1 + x2 6

2 x1 + 3 x2 9

x2 1

x1, x2 bilangan bulat tidak negatif

Gambar 4.3 merupakan grafik penyelesaian program II. Daerah fisibel adalah segi empat OFGD

yang titik sudut dan nilai fungsinya adalah

O (0, 0) dengan f(O) = 3 (0) + 4 (0) = 0

F (0, 1) dengan f(F) = 3 (0) + 4 (1) = 4

D (3, 0) dengan f(D) = 3 (3) + 4 (0) = 9

Page 115: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 107

G (2,5 , 1) dengan f(G) = 3 (2,5) + 4 (1) = 11,5

x1

x2

A (0,3)

B (9/2, 0)

C (0,6)

D (3,0)

E (2,25 , 1,5)

x2 = 1

G (2,5 , 1)F (0,1)

Gambar 4.3

Nilai maksimum terletak pada titik G = (x1, x2) = (2,5 , 1) dengan f(G) = 11,5. Penyelesaian

program 2 belum merupakan bilangan bulat sehingga bukanlah batas bawah penyelesaiannya.

Program I II (Program I + kendala x2 2)

Maksimumkan z = 3 x1 + 4 x2

Kendala 2 x1 + x2 6

2 x1 + 3 x2 9

x2 2

x1, x2 bilangan bulat tidak negatif

x1

x2

A (0,3)

B (9/2, 0)

C (0,6)

D (3,0)

E (2,25 , 1,5)

x2 = 2

I (1,5 , 2)

H (0,2)

Gambar 4.4

Page 116: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

108 Riset Operasi : Suatu Tinjauan Algoritmis

Gambar 4.4 merupakan grafik penyelesaian program II. Daerah fisibelnya adalah segitiga AHI

dengan titik sudut dan nilai fungsi :

A (0, 3) dengan f(A) = 3 (0) + 4 (3) = 12

H (0, 2) dengan f(H) = 3 (0) + 4 (2) = 8

I (1,5 , 2) dengan f(I) = 3 (1,5) + 4 (2) = 12,5

Nilai maksimum terletak pada titik I = (x1, x2) = (1,5 , 2) dengan f(I) = 12,5. Penyelesaian

program 3 juga belum merupakan bilangan bulat sehingga bukanlah batas bawah

penyelesaiannya. Percabangan program 1 menjadi program 2 dan program 3 dapat digambarkan

dalam gambar 4.5.

Tampak dalam gambar 4.5 bahwa baik titik 2 maupun 3 (menyatakan program 2 dan program

3) belumlah menghasilkan penyelesaian bulat sehingga keduanya memiliki kemungkinan untuk

dicabangkan. Karena soalnya memaksimumkan, maka titik yang terlebih dahulu dicabangkan

adalah titik yang nilai fungsinya lebih tinggi yaitu titik 3

x2 2

x2 1

1

2

3

z* = 12,75

(2,25 , 1,5)

z* = 11,5(2,5 , 1)

z* = 12,5(1,5 , 2)

Gambar 4.5

Dalam penyelesaian program 3, satu-satunya variabel yang tidak bulat adalah x1 = 1,5 yang

terletak antara 1 dan 2. Maka percabangan dilakukan dengan menambah kendala x1 1

(program 4) dan x1 2 (program 5)

Program IV (Program III + kendala x1 1)

Page 117: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 109

Maksimumkan z = 3 x1 + 4 x2

Kendala 2 x1 + x2 6

2 x1 + 3 x2 9

x2 2

x1 1

x1, x2 bilangan bulat tidak negatif

Daerah berarsir pada gambar 4.6 (segi empat AJKH) menunjukkan daerah fisibel program 4

dengan koordinat dan nilai fungsi sebagai berikut :

A (0, 3) dengan f(A) = 3 (0) + 4 (3) = 12

J (1, 7/3) dengan f(J) = 3 (1) + 4 (7/3) = 12,33

K (1, 2) dengan f(K) = 3 (1) + 4 (2) = 11

H (0, 2) dengan f(H) = 3 (0) + 4 (2) = 8

Titik maksimumnya adalah titik J (1, 7/3) dengan f(J) = 12,33.

x1

x2

A (0,3)

B (9/2, 0)

C (0,6)

D (3,0)

K (1 , 2)

x2 = 2

J (1 , 7/3)

H (0,2)

x1 = 1

Gambar 4.6

Program V (Program III + kendala x1 2)

Maksimumkan z = 3 x1 + 4 x2

Kendala 2 x1 + x2 6

2 x1 + 3 x2 9

x2 2

Page 118: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

110 Riset Operasi : Suatu Tinjauan Algoritmis

x1 2

x1, x2 bilangan bulat tidak negatif

Kendala dalam program 5 tidak menghasilkan daerah fisibel sehingga tidak memiliki

penyelesaian. Keadaan ini dapat digambarkan dalam gambar 4.7. Tampak bahwa ada 2 titik yang

mungkin dicabangkan yaitu titik 2 (dengan nilai fungsi 11,5) dan titik 4 (dengan nilai fungsi

12,33). Keduanya bukan batas bawah penyelesaian karena keduanya tidak memiliki

penyelesaian bulat. Akan tetapi titik 4 memiliki nilai fungsi yang lebih besar sehingga titik 4

lebih dahulu dicabangkan.

x1 2

x2 2 x1 1

x2 1

1

2

3

4

5

z* = 12,75

(2,25 , 1,5)

z* = 11,5(2,5 , 1)

diabaikan

krn z2* < z7*

z* = 12,5(1,5 , 2)

z* = 12,33(1 , 7/3)

tidak fisibel

Gambar 4.7

Variabel yang tidak bernilai bulat pada titik 4 adalah x2 = 7/3 (terletak antara 1 dan 2). Maka

percabangan dilakukan dengan menambahkan kendala x2 2 (program 6) dan x2 3

(program 7)

Program VI (Program IV + kendala x2 2)

Maksimumkan z = 3 x1 + 4 x2

Kendala 2 x1 + x2 6

2 x1 + 3 x2 9

x2 2

x1 1

x2 2

Page 119: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 111

x1, x2 bilangan bulat tidak negatif

Perhatikan bahwa kendala ketiga dan terakhir dapat digabungkan menjadi kendala x2 = 2 yang

berupa sebuah garis horisontal. Dalam gambar 4.6, daerah fisibelnya berupa garis HK dengan

koordinat dan nilai fungsi :

K (1, 2) dengan f(K) = 3 (1) + 4 (2) = 11

H (0, 2) dengan f(H) = 3 (0) + 4 (2) = 8

Nilai maksimum fungsi adalah titik K (1, 2) dengan nilai fungsi = 11. Karena koordinat titik K

merupakan bilangan bulat maka titik K merupakan batas bawah dari soal semula. Semua titik

(penyelesaian bulat ataupun tidak) yang memiliki nilai fungsi lebih kecil dari f(K) = 11 akan

diabaikan dan tidak perlu dicabangkan.

Perhatikan bahwa hingga titik K ditemukan, satu-satunya titik yang belum dicabangkan adalah

titik 2 dengan nilai fungsi 11,5. Karena nilai fungsi ini lebih besar dari f(K) maka titik 2 belum

dapat diabaikan.

Berikutnya harus dihitung terlebih dahulu cabang kedua dari titik 4 (dengan penambahan

kendala x2 3 (program 7)

Program VII (Program IV + kendala x2 3)

Maksimumkan z = 3 x1 + 4 x2

Kendala 2 x1 + x2 6

2 x1 + 3 x2 9

x2 2

x1 1

x2 3

x1, x2 bilangan bulat tidak negatif

Perhatikan bahwa kendala 2 dan kendala 5 bersama-sama dapat diringkas sebagai x2 3. Revisi

kendala ini dalam gambar 4.6 menghasilkan sebuah titik fisibel yaitu titik A (0, 3) dengan nilai

fungsi = 3(0) + 4(3) = 12. Percabangan selengkapnya dapat dilihat pada gambar 4.8

Page 120: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

112 Riset Operasi : Suatu Tinjauan Algoritmis

x1 2

x2 3x2 2

x2 2

x1 1

x2 1

1

2

3

4

5

7

6

z* = 12,75

(2,25 , 1,5)

z* = 11,5(2,5 , 1)

diabaikan

krn z2* < z7*

z* = 12,5(1,5 , 2)

z* = 12,33(1 , 7/3)

tidak fisibel

diabaikan

krn z6* < z7*

z* = 11

(1 , 2)

z* = 12

(0 , 3)

Penyelesaian

optimal

Gambar 4.8

Karena program 7 menghasilkan penyelesaian bulat dengan nilai fungsi yang lebih besar dari

nilai fungsi program 6, maka sekarang penyelesaian program 7 menjadi batas bawah

penyelesaian soal mula-mula. Titik yang belum dicabangkan (titik 2 dan titik 6) memiliki nilai

fungsi yang lebih kecil dibanding nilai fungsi program 7 sehingga bisa diabaikan. Berarti titik 7

merupakan penyelesaian optimal soal mula-mula.

Contoh 4.4

Selesaikan program bilangan bulat berikut ini :

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1, x2 bilangan bulat tidak negatif

Penyelesaian

Gambar 4.9 merupakan grafik daerah fisibel soal semula jika syarat bilangan bulat ditiadakan.

Titik-titik pada daerah fisibel menunjukkan penyelesaian bulatnya.

Page 121: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 113

x1

x2

1

1

3

2

32 4

-10x1+20x2 =

22

5x1+10x2 = 49

8x 1

- x 2

= 3

6

Gambar 4.9

Dengan meneliti nilai fungsi di ke-4 titik sudut daerah fisibel, didapat penyelesaian optimal di

titik (3,8 , 3) dengan z1* = -3,8 + 4 (3) = 8,2.

Karena x1 = 3,8 bukan merupakan penyelesaian bulat, maka soal harus dicabangkan dengan

menambah kendala x1 3 (program 2) dan x1 4 (program 3).

Program 2 (Program 1 + kendala x1 3)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 3

x1, x2 bilangan bulat tidak negatif

Gambar 4.10 menunjukkan daerah fisibelnya. Penyelesaian optimalnya adalah titik (3, 2,6)

dengan z2* = 7,4

x1

x2

1

1

3

2

32 4

Page 122: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

114 Riset Operasi : Suatu Tinjauan Algoritmis

Gambar 4.10

Program 3 (Program 1 + kendala x1 4)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 4

x1, x2 bilangan bulat tidak negatif

Gambar 4.11 menunjukkan daerah fisibelnya. Penyelesaian optimalnya adalah titik (3, 2,6)

dengan z2* = 7,4

x1

x2

1

1

3

2

32 4

Gambar 4.11

Percabangan yang dilakukan dapat dinyatakan dalam gambar 4.12. Karena kedua titik cabang

(titik 2 dan titik 3) bukan merupakan penyelesaian bulat, maka percabangan berikutnya

dilakukan pada titik 3 yang memiliki nilai fungsi yang lebih besar (ingat, soalnya

memaksimumkan).

Page 123: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 115

x1 4

x1 3

1

2

3

z1* = 8,2

(3,8 , 3)

(3, 2,6)

(4 , 2,9)

z2* = 7,4

z3* = 7,6

Gambar 4.12

Pada titik 3, variabel yang tidak bernilai bulat adalah x2 = 2,9. Maka Percabangan titik 3

dilakukan dengan menambahkan kendala x2 2 (program 4) dan x2 3 (program 5)

Program 4 (Program 3 + kendala x2 2)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 4

x2 2

x1, x2 bilangan bulat tidak negatif

Gambar 4.13 merupakan grafik daerah fisibelnya. Penyelesaian optimal terjadi pada titik (4, 2)

dengan z4* = 4. Karena penyelesaian optimalnya program 4 merupakan bilangan bulat, maka

z4* = 4 merupakan batas bawah penyelesaian optimal soal mula-mula. Jika kemudian didapatkan

titik lain dengan nilai fungsi kurang dari z4*, maka titik tersebut pastilah bukan penyelesaian

optimal soal semula dan tidak perlu dicabangkan lagi.

Page 124: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

116 Riset Operasi : Suatu Tinjauan Algoritmis

x1

x2

1

1

3

2

32 4

Gambar 4.13

Program 5 (Program 3 + kendala x2 3)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 4

x2 3

x1, x2 bilangan bulat tidak negatif

Soal dalam program 5 tidak fisibel sehingga tidak memiliki penyelesaian optimal.

Gambar 4.14 menunjukkan percabangan yang dilakukan pada titik 3. Karena z2* = 7,4 > z4*,

maka titik 2 tetap perlu dicabangkan. Percabangan titik 2 dilakukan dengan menambahkan

kendala x2 2 (program 6) dan x2 3 (program 7)

x2 3

x1 4x2 2

x1 3

1

2

3

4

z1* = 8,2

(3,8 , 3)

(3, 2,6)

(4 , 2,9)

z4* = 4

(4 , 2)

tidak fisibel5

z2* = 7,4

z3* = 7,6

Gambar 4.14

Page 125: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 117

Program 6 (Program 2 + kendala x2 2)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 3

x2 2

x1, x2 bilangan bulat tidak negatif

Titik optimal program 6 adalah (1,8 , 2) dengan nilai fungsi z6* = 6,2 (lihat gambar 4.15)

x1

x2

1

1

3

2

32 4

Gambar 4.15

Program 7 (Program 2 + kendala x2 3)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 3

x2 3

x1, x2 bilangan bulat tidak negatif

Program 7 bukan merupakan soal yang fisibel sehingga tidak memiliki penyelesaian.

Satu-satunya titik yang penyelesaiannya tidak bulat adalah titik 6. Karena z6* = 6,2 > z4* (batas

bawah penyelesaian), maka titik 6 perlu dicabangkan lagi.

Page 126: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

118 Riset Operasi : Suatu Tinjauan Algoritmis

Percabangan titik 6 dilakukan dengan menambahkan kendala x1 1 (program 8) dan x1 2

(program 9)

Program 8 (Program 6 + kendala x1 1)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 3

x2 2

x1 1

x1, x2 bilangan bulat tidak negatif

Perhatikan bahwa kendala 4 pada program 7 sebenarnya dapat dihilangkan karena sudah

tercakup dalam kendala terakhir. Program 8 menghasilkan penyelesaian optimal di titik (1, 1,6)

dengan nilai fungsi z8* = 5,4 (lihat gambar 4.16)

x1

x2

1

1

3

2

32 4

Gambar 4.16

Program 9 (Program 6 + kendala x1 2)

Maksimumkan z = - x1 + 4 x2

Kendala - 10 x1 + 20 x2 22

5 x1 + 10 x2 49

8 x1 - x2 36

x1 3

Page 127: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 119

x2 2

x1 2

x1, x2 bilangan bulat tidak negatif

Penyelesaian optimal program 9 adalah titik (2,2) dengan nilai fungsi z9* = 6 (lihat gambar 4.17)

x1

x2

1

1

3

2

32 4

Gambar 4.17

Karena penyelesaian program 9 bulat dan z9* > z4* (batas bawah sebelumnya) maka z9*

menjadi batas bawah baru.

Satu-satunya titik yang mungkin dicabangkan adalah titik 8. Akan tetapi karena z9* > z8* (=

5,4), maka percabangan tidak perlu dilakukan. Penyelesaian program 9 menjadi penyelesaian

masalah semula. Gambar 4.18 menunjukkan secara lengkap percabangan yang dilakukan hingga

diperoleh penyelesaian optimal.

Page 128: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

120 Riset Operasi : Suatu Tinjauan Algoritmis

x2 2

x2 3

x2 3

x1 2

x1 4

x1 1

x2 2

x1 3

1

2

3

4

9

8

z1* = 8,2

(3,8 , 3)

(3, 2,6)

(4 , 2,9)

z4* = 4

(4 , 2)

tidak fisibel

(1,8 , 2)

Penyelesaian

optimal

5

6

z2* = 7,4

z3* = 7,6

7

z6* = 6,2

tidak fisibel

(1 , 1,6)

z8* = 5,4

(2 , 2)

z9* = 6

Gambar 4.18

Contoh 4.5

Selesaikan maslaah program bilangan bulat berikut ini dengan metode cabang – batas

Minimumkan z = x1 - 2 x2

Kendala 2 x1 + x2 5

- 4 x1 + 4 x2 5

x1, x2 bilangan bulat 0

Penyelesaian

Gambar 4.19 menunjukkan daerah fisibel soal semula jika kendala bilangan bulat dihilangkan.

Titik minimum terletak pada titik (1,25 , 2,5) dengan nilai fungsi z1* = - 3,75.

x1

x2

1

1

2

2 3

2x1 + x2 5

-4x1 + 4x2 5

Gambar 4.19

Page 129: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 121

Karena penyelesaiannya belum merupakan bilangan bulat, maka soal semula perlu dicabangkan.

Baik x1 maupun x2 dalam penyelesaian optimal soal semula bukanlah bilangan bulat. Pilih

variabel yang terjauh dari bilangan bulat yaitu x2 = 2,5. Percabangan dilakukan dengan

menambahkan kendala x2 2 (program 2) dan kendala x2 3 (program 3). Kedua

percabangan dapat digambarkan pada gambar 4.20 dan 4.21

Program 2 (Program 1 + kendala x2 2)

Minimumkan z = x1 - 2 x2

Kendala 2 x1 + x2 5

- 4 x1 + 4 x2 5

x2 2

x1, x2 bilangan bulat 0

x1

x2

1

1

2

2 3

Gambar 4.20

Gambar 4.20 menunjukkan grafik penyelesaian program 2. Didapat titik optimal (0,75 , 2)

dengan nilai minimum z2* = - 3,25

Program 3 (Program 1 + kendala x2 3)

Minimumkan z = x1 - 2 x2

Kendala 2 x1 + x2 5

- 4 x1 + 4 x2 5

x2 3

x1, x2 bilangan bulat 0

Page 130: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

122 Riset Operasi : Suatu Tinjauan Algoritmis

Program 3 merupakan soal yang tidak fisibel sehingga tidak memiliki penyelesaian optimal.

Maka program 2 adalah satu-satunya yang harus diproses lebih lanjut.

Penyelesaian program 2 bukanlah merupakan penyelesaian bulat sehingga perlu dicabangkan.

Karena x1 = 0,75, maka percabangan dilakukan dengan menambahkan kendala x1 0

(program 4) dan x1 1 (program 5).

Program 4 (Program 2 + kendala x1 0)

Minimumkan z = x1 - 2 x2

Kendala 2 x1 + x2 5

- 4 x1 + 4 x2 5

x2 3

x1 0

x1, x2 bilangan bulat 0

Perhatikan bahwa kendala terakhir program 4 (x1 0) bersama-sama dengan syarat tidak negatif

(x1 0) berarti bahwa x1 = 0. Ini berarti daerah fisibelnya terletak sepanjang sumbu x2 antara x2

= 0 hingga x2 = 1,25 (lihat gambar 4.21). Penyelesaian optimalnya adalah titik (0 , 1,25)

dengan nilai minimum = z4* = -2,5.

Penyelesaian program 2 belum merupakan penyelesaian bulat sehingga batas atas penyelesaian

belum diperoleh.

x1

x2

1

1

2

2 3

Gambar 4.21

Page 131: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 123

Program 5 (Program 2 + kendala x1 1)

Minimumkan z = x1 - 2 x2

Kendala 2 x1 + x2 5

- 4 x1 + 4 x2 5

x2 3

x1 1

x1, x2 bilangan bulat 0

Gambar 4.22 merupakan grafik penyelesaian program 5. Titik minimumnya terletak pada (1 , 2)

dengan nilai minimum = z5* = - 3. Karena merupakan penyelesain bulat, maka nilai minimum

ini merupakan batas atas penyelesaian masalah semula.

Karena z5* < z4* maka program 4 tidak perlu dicabangkan lagi (ingat soalnya meminimumkan

sehingga kalaupun program 4 dicabangkan maka nilai minimum hasil percabangan pasti > z4*)

Karena tidak ada titik lain yang dapat dicabangkan, maka penyelesaian masalah semula adalah

pada titik (1 , 2) dengan z minimum = - 3. Proses seluruh percabangan dapat dilihat pada

gambar 4.23

x1

x2

1

1

2

2 3

Gambar 4.22

Page 132: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

124 Riset Operasi : Suatu Tinjauan Algoritmis

x1 0

x1 1

x2 3

x2 2

1

2

3

z1* = -3,75

(1,25 , 2,5)

(0,75, 2)

z5* = - 3

(1 , 2)

tidak fisibel

(0, 1,25) 4

z2* = -3,25

5

z4* = -2,5

Gambar 4.23

4.3 Metode Bidang Potong

Misalkan penyelesaian soal program bilangan bulat mula-mula tidak menghasilkan penyelesaian

bulat. Metode Bidang Potong (Cutting Plane) menambahkan sejumlah kendala sehingga

diperoleh daerah fisibel baru yang penyelesaiannya merupakan bilangan bulat.

titik optimum tanpa

kendala bulatx2

1

1

2

2 3

3

4

titik optimum

program bilangan

bulatx1

x2

1

1

2

2 3

3

4

kendala tambahan

(a) (b)

Gambar 4.24

Gambar 4.24 (a) merupakan daerah fisibel dari program mula-mula. Gambar 4.24 (b)

menunjukkan daerah fisibel baru setelah ditambahkan beberapa kendala tambahan. Daerah

fisibel baru ini akan memiliki penyelesaian optimal yang merupakan bilangan bulat.

Misalkan [a] menyatakan bilangan bulat terbesar yang lebih kecil atau sama dengan a. Sebagai

contoh, [3,2] = 3, [2] = 2, [-3,4] = -4. Maka a – [a] menyatakan bagian pecahan dalam

bilangan a. 3,2 – [3,2] = 3,2 – 3 = 0,2 ; 2 – [2] = 2 – 2 = 0 ; -3,4 – [-3,4] = -3,4 – (-4) = 0,6.

Algoritma bidang potong adalah sebagai berikut :

Page 133: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 125

1. Selesaikan program bilangan bulat dengan mengabaikan kendala semua penyelesaian adalah

bilangan bulat. Jika penyelesaian tersebut menghasilkan penyelesaian bulat, maka

penyelesaian tersebut merupakan penyelesaian program bilangan bulat mula-mula.

2. Jika penyelesaian langkah (1) memuat variabel yang bernilai pecahan, lakukan langkah-

langkah berikut :

a. Pilih sembarang baris tabel optimal simpleks yang dalam kolom bi nya memuat pecahan.

Jika ada beberapa baris yang demikian, kadang-kadang baris yang memuat pecahan

terbesar dipilih agar iterasi lebih cepat.

b. Misalkan baris ke – i adalah baris yang terpilih dan persamaan yang terbentuk dalam baris

ke – i adalah ij j i

j

a x b . Maka tambahkan kendala ij j i

j

f x f pada soal mula-

mula dengan

ijf = [ ]ij ija a = bagian pecahan dalam ija

if = [ ]i ib b = bagian pecahan dalam ib

3. Kembali ke langkah (1).

Pada metode cabang – batas, penyelesaian program linier yang sesuai dapat dilakukan dengan

metode grafik (jika 2 variabel) maupun dengan metode simpleks. Akan tetapi penyelesaian

program bilangan bulat dengan metode bidang potong haruslah dilakukan dengan metode

simpleks, meskipun terdiri dari 2 variabel. Hal ini disebabkan karena dalam iterasinya

membutuhkan kendala baru yang dibentuk dari komponen pecahan variabel slack.

Untuk memahami bagaimana cara kerja metode bidang potong, perhatikan contoh 4.6 berikut ini

Contoh 4.6

Selesaikan contoh 4.3 dengan metode bidang potong !

Penyelesaian

Dengan menambahkan variabel slack x3 dan x4 didapat bentuk standar simpleks contoh 4.3 :

Maksimumkan z = 3 x1 + 4 x2 + 0 x3 + 0 x4

Kendala 2 x1 + x2 + x3 = 6

Page 134: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

126 Riset Operasi : Suatu Tinjauan Algoritmis

2 x1 + 3 x2 + x4 = 9

x1 .. x4 bilangan bulat tidak negatif

0

1x24

1

0

x13 34

24

24

14

zj

cj - zj

64

14

14

4

0

3

0

54

54

94

514

0

1x24

1

0

x30 43

23

13

13

zj

cj - zj

3

3

94

92

83

13

4

0

0

0

43

43

12

zj0

0 00

3 04

0

0cj - zj

3

62 0

2 13x40

1 1

0

x30

9

6

3 0

x1 bi

cj

x4x3x2

04

(cB)i (xB)ixj

Tabel 4.1

Tabel 4.1 merupakan tabel iterasi simpleksnya. Penyelesaian optimalnya adalah (x1, x2)

= 9 6,4 4

= 1 12 ,14 2

dengan nilai fungsi 514

. Tampak bahwa baik x1 maupun x2 bukan

merupakan penyelesaian bulat sehingga bukanlah penyelesaian masalah mula-mula.

Perhatikan tabel optimal tabel 4.1. Persamaan yang sesuai adalah :

x1 + 34 x3 -

14 x4 = 9

4

x2 - 24 x3 + 2

4 x4 = 64

Misalkan diambil baris pertama pada penyelesaian optimal sebagai dasar untuk menambah

kendala. Jika diambil yang berbentuk pecahan saja maka didapatkan persamaan 34 x3 -

14 x4 =

94 atau (0 + 3

4 ) x3 + (-1 + 34 ) x4 = (2 + 1

4 ).

Maka kendala yang ditambahkan pada iterasi berikutnya adalah :

34 x3 + 3

4 x4 14 . Jadikan bentuk standar simpleks dengan menambahkan variabel slack dan

semu. Didapat 34 x3 + 3

4 x4 – x5 + x6 = 14

Page 135: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 127

Program 2

Maksimumkan z = 3 x1 + 4 x2 + 0 x3 + 0 x4 + 0 x5 - M x6

x1 + 34 x3 -

14 x4 = 9

4

x2 - 24 x3 + 2

4 x4 = 64

34 x3 + 3

4 x4 – x5 + x6 = 14

x1 .. x6 bilangan bulat tidak negatif

Perhatikan bahwa pada program 2, model yang terbentuk bukanlah model asli program 1, tapi

model pada penyelesaian optimalnya.

Tabel 4.2 menunjukkan hasil iterasi program 2

Penyelesaian optimalnya adalah (x1, x2) = (2, 53 ) = (2, 2

31 ) dengan nilai fungsi 2

312 .

Tampak bahwa x2 belum merupakan bilangan bulat sehingga perlu ditambah kendala baru

berdasarkan persamaan dimana variabel basis berada (baris kedua dalam tabel optimal tabel 4.2).

Jika hanya diambil bagian pecahan pada persamaan kedua (tanpa mengambil variabel semunya)

diperoleh : - 23 x5 = 5

3 atau (-1 + 13 ) x5 = (1 + 2

3 ). Maka kendala yang ditambahkan adalah 13 x5

23

Dengan penambahan variabel slack dan semu didapat 13 x5 – x6 + x7 = 2

3

Page 136: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

128 Riset Operasi : Suatu Tinjauan Algoritmis

x4 x5

3 0

x1 bi

cj

x3x2

04

(cB)i (xB)ixj

-M

x6

0

x2

10 0x30 1

0

0

zj

1

0 14

0x13

cj - zj

-1

1

3 4

0 0

23

23

43

13

53

3 13M

1 -1

43

2

0 1

0 -1

13

13

13 2

312

x2 -

10 0x6-M -1

30

0

zj

1

0 14

0x13

cj - zj

0

0

3 M -M4

0 0 0-M

34

24

24

34

14

34

94

14

64

13

3 14M

3 54

M

3 54M

3 14

M

514

M

Tabel 4.2

Program 3

Revisi model dalam program 2 adalah persamaan yang terbentuk dari tabel optimal tabel 4.2

(dengan menghilangkan variabel semu) ditambah kendala tambahannya

Maksimumkan z = 3 x1 + 4 x2 + 0 x3 + 0 x4 + 0 x5 + 0 x6 - M x7

x1 - x4 + x5 = 2

x2 + x4 - 23 x5 = 5

3

x3 + x4 – 43 x5 = 1

3

13 x5 - x6 + x7 = 2

3

x1 .. x6 bilangan bulat tidak negatif

Page 137: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 129

x6

0

x4 x5

3 0

x1 bi

cj

x3x2

04

(cB)i (xB)ixj

-M

x7

0

-M

1

x2 -

10 0x30 1

20

0

zj

1

0 14

0x13

cj - zj

-1

1

3 04

0 0 -10

23

43

13

53

13

M

13

M

2 263

M

00

0

0

0

0

-MM

0-M

00 0x7 0 13

23

1-1

1 2

-

2

0

1

x2

10 0x30 1

0

0

zj

1

0 14

0x13

cj - zj

-1

1

3 04

0 0 -10

4-4

-3

2

3

-2

-11

-M+1-1

00 0x5 0 3-3

0 0

0

0

0

0

1

3

12

2

3

Tabel 4.3

Penyelesaian optimal program 3 adalah (x1, x2) = (0, 3) dengan nilai fungsi = 12. Karena

semua variabelnya sudah merupakan bilangan bulat, maka penyelesaian program 3 merupakan

penyelesaian soal mula-mula.

Tafsiran geometris proses penyelesaian program bilangan bulat dengan metode bidang potong

adalah sebagai berikut :

Perhatikan tambahan kendala 34 x3 + 3

4 x4 14 pada program 2.

Dari bentuk standar sebelum dimasukkan ke tabel simpleks tabel 4.1, persamaannya adalah

2 x1 + x2 + x3 = 6 atau x3 = 6 - 2 x1 - x2

2 x1 + 3 x2 + x4 = 9 atau x4 = 9 - 2 x1 - 3 x2

Apabila kedua persamaan tersebut disubstitusikan ke tambahan kendala program 2 maka

didapatkan 34 (6 - 2 x1 - x2) + 3

4 (9 - 2 x1 - 3 x2) 14 atau 4x1 + 4x2 14 2

3 .

Gambar 4.25 (a) menunjukkan daerah fisibel mula-mula (dengan titik optimal (2,25 , 1,5)) dan

gambar 4.25 (b) menunjukkan daerah fisibel dengan adanya tambahan kendala 4x1 + 4x2

14 23 (dengan titik optimal (2 , 1,67))

Page 138: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

130 Riset Operasi : Suatu Tinjauan Algoritmis

x1

x2

3

3

6

4,5

(2,25 , 1,5)

x1

x2

3

3

6

4,5

(2 , 1,67)(2,25 ,

1,5)

4x1 + 4x2 14 23

x1

x2

3

3

6

4,5

(2 , 1,67)(2,25 ,

1,5)

4x1 + 4x2 14 23

x1 + x2 3

(a) (b) (c)

Gambar 4.25

Penambahan kendala pada program 3 (dengan mengabaikan variabel semu x6) adalah 13 x5 2

3

atau x5 2.

Penambahan kendala pada program 2 (abaikan variabel semu x6) adalah 34 x3 + 3

4 x4 - x5 = 14

atau x5 = 14 (3x3 + 3x4 - 1)

Padahal dari persamaan penambahan kendala sebelumnya, x3 = 6 - 2x1 - x2 dan x4 = 9 - 2 x1

- 3 x2. Substitusikan kedua persamaan ini ke x5. Didapat x5 = 11 - 3x1 - 3x2 . Maka penambahan

kendala pada program 3 adalah 11 - 3x1 - 3x2 2 atau x1 + x2 3. Gambar 4.25 (c)

menunjukkan daerah fisibel setelah dilakukan penambahan kendala x1 + x2 3. Titik

optimalnya adalah (0, 3)

Contoh 4.7

Selesaikan soal program bilangan bulat berikut ini dengan metode bidang potong !

Maksimumkan z = 18 x1 + 12 x2

Kendala 2 x1 - x2 5

2 x1 + 3 x2 13

x1 .. x2 bilangan bulat tidak negatif

Penyelesaian

Bentuk standar simpleksnya adalah sebagai berikut :

Page 139: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 131

Maksimumkan z = 18 x1 + 12 x2 + 0 x3 + 0 x4

Kendala 2 x1 - x2 + x3 = 5

2 x1 + 3 x2 + x4 = 13

x1 .. x4 bilangan bulat tidak negatif

Tabel 4.4 adalah tabel iterasi simpleks soal mula-mula. Titik maksimumnya adalah (3,5 , 2)

dengan nilai fungsi 87

0

1x212

1

0

x118 38

14

14

18

zj

cj - zj

154

154

12

0

18

0

214

214

72

2

87

0

1x40

1

0

x118 12

12

zj

cj - zj

8

52

-9

21

9

-945

4 -1 2

-

18

0

0

0

zj0

0 00

18 012

0

0cj - zj

52 0

2 13x40

-1 1

0

x30

13

52

132

18 0

x1 bi

cj

x4x3x2

012

(cB)i (xB)ixj

Tabel 4.4

Pada tabel optimal tabel 4.4, didapat persamaan

x1 + 38 x3 + 1

8 x4 = 72

x2 - 14 x3 + 1

4 x4 = 2

Karena x1 merupakan penyelesaian yang tidak bulat, maka penambahan kendala didasarkan atas

persamaan pertama tabel optimal tabel 4.4. Peramaan tersebut dapat ditulis sebagai x1 + (0 +

38 ) x3 + (0 + 1

8 ) x4 = (3 + 12 ).

Page 140: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

132 Riset Operasi : Suatu Tinjauan Algoritmis

Kendala baru dibuat berdasarkan bagian pecahannya, yaitu 38 x3 +

18 x4 1

2 . Penambahan

variabel slack dan semu menghasilkan persamaan 38 x3 +

18 x4 - x5 + x6 = 1

2 . Maka model yang

baru adalah :

Program 2

Maksimumkan z = 18 x1 + 12 x2 + 0 x3 + 0 x4 + 0 x5 - M x6

Kendala x1 + 38 x3 + 1

8 x4 = 72

x2 - 14 x3 + 1

4 x4 = 2

38 x3 + 1

8 x4 - x5 + x6 = 12

x1 .. x6 bilangan bulat tidak negatif

Tabel 4.5 menunjukkan iterasi penyelesaiannya. Penyelesaian optimal adalah (3, 73 ) dengan

nilai fungsi 82

x2

10 0x30

0

0

zj

1

0 112

0x118

cj - zj

0

18 12

0 0

23

23

83

43

73

1 -1

83

3

0 4

0 -4

13

13

10 -10

-10 -M+1082

x2 -

10 0x6-M -1

0

0

zj

1

0 112

0x118

cj - zj

0

0

18 M -M12

0 0 0-M

38

14

14

38

18

18

72

12

43

3 308

M 428

M

1742

M

2

283

3 308

M 428

M

x4 x5

18 0

x1 bi

cj

x3x2

012

(cB)i (xB)ixj

-M

x6

0

Tabel 4.5

Bidang potong yang ditambahkan pada program 2 dapat dijelaskan sebagai berikut :

Kendala soal asli adalah 2 x1 - x2 + x3 = 5 dan 2 x1 + 3 x2 + x4 = 13. Maka x3 = 5 - 2 x1 +

x2 dan x4 = 13 - 2 x1 - 3 x2

Page 141: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 133

Kendala yang ditambahkan pada program 2 adalah

38 x3 +

18 x4 1

2 .

38 (5 - 2 x1 + x2) +

18 (13 - 2 x1 - 3 x2) 1

2 . Didapat x1 3.

Jadi program 2 adalah program 1 ditambah dengan bidang potong yang dibatasi oleh x1 3.

Penyelesaian optimal program 2 belum merupakan bilangan bulat sehingga harus direvisi dengan

menambah sebuah bidang potong lagi. Perhatikan persamaan yang terbentuk pada tabel optimal

tabel 4.5 (dengan menghilangkan variabel semunya)

x1 + x5 = 3

x2 + 13 x4 -

23 x5 = 7

3

x3 + 13 x4 -

83 x5 = 4

3

Diantara basis x1 dan x2 pada tabel optimal 4.5, yang memiliki penyelesaian bukan bulat adalah

x2 (bernilai 73 ). Persamaan pada baris x2 dapat dituliskan sebagai x2 + (0+ 1

3 ) x4 + (-1+ 13 ) x5 =

(2+ 13 ). Kendala yang ditambahkan adalah bagian pecahannya yaitu 1

3 x4 + 13 x5 1

3 .

Penambahan variabels slack dan semu menghasilkan persamaan 13 x4 + 1

3 x5 - x6 + x7 = 13

Program 3

Maksimumkan z = 18 x1 + 12 x2 + 0 x3 + 0 x4 + 0 x5 + 0 x6 - M x7

Kendala x1 + x5 = 3

x2 + 13 x4 -

23 x5 = 7

3

x3 + 13 x4 -

83 x5 = 4

3

13 x4 + 1

3 x5 - x6 + x7 = 13

x1 .. x7 bilangan bulat tidak negatif

Tabel 4.6 menunjukkan iterasi penyelesaiannya. Penyelesaian optimal adalah (3, 2) dengan nilai

fungsi 78. Karena semua penyelesaiannya sudah bulat, maka penyelesaian tersebut merupakan

penyelesaian masalah mula-mula.

Page 142: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

134 Riset Operasi : Suatu Tinjauan Algoritmis

0

0

x2

10 0x30 -3

0

0

zj

1

0 112

0x118

cj - zj

1

-1

18 012

0 0 00

-11

0

-1

0

1

-1212

-M+12-12

00 0x4 1 3-3

0 3

0

0

6

-6

1

1

78

1

2

-M

x2

-

x30

7

zj

12

x118

cj - zj

43

73

2463

M

00

0

0

0

0

-MM

0-M

x713

1-1

3

4

1

10 0

0

0

1

0 1

0 0

18 12

0 0

23

1

83

0

0

13

13

00 0 13

13

303

M

303

M

123

M

123

M

x6x4 x5x1 bi

cj

x3x2(cB)i (xB)ixj

-M

x7

018 0012 0

Tabel 4.6

Interpretasinya adalah sebagai berikut :

Program 3 dibuat dengan menambahkan kendala 13 x4 + 1

3 x5 13 atau x4 + x5 1.

Kendala yang ditambahkan pada program 2 adalah 38 x3 +

18 x4 - x5 = 1

2 atau 3x3 + x4 - 8x5 =

4. Padahal dari program mula-mula, x3 = 5 - 2x1 + x2 dan x4 = 13 - 2x1 - 3x2. Substitusi

harga x3 dan x4 ini ke kendala program 2 tersebut akan menghasilkan 3 (5 - 2x1 + x2) + (13 -

2x1 - 3x2) - 8x5 = 4 atau x5 = 3 – x1

Jadi kendala yang ditambahkan pada program 3 adalah (13 - 2x1 - 3x2) + (3 – x1) 1 atau

x1 + x2 5

Gambar 4.26 (a) menunjukkan daerah fisibel soal mula-mula, gambar (b) menunjukkan

perubahan daerah fisibel setelah ditambahkan kendala x1 3 (program 2). Gambar (c)

menunjukkan daerah fisibel setelah ditambahkan kendala x1 + x2 5 (program 3)

Page 143: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 135

x1

x2

2

2

4

3

(3,5 , 2)

1

3

1

2

4

3

1

x1

x2

2 3

(3 , 3,3)

1

bidang

potong 1

2

4

3

1

x1

x2

2 3

(3 , 2)

1

bidang

potong 1

bidang

potong 2

(a) (b) (c)

Gambar 4.26

Pada gambar 4.26 (c) diperoleh penyelesaian optimal bulat sehingga tidak diperlukan

penambahan bidang potong lagi.

4.4 Program 0 – 1

Program 0–1 merupakan kasus khusus program bilangan bulat, dimana xi = {0, 1} untuk semua

i. Dibandingkan dengan metode penyelesaian terdahulu (cabang-batas ataupun bidang potong),

penyelesaian program 0-1 sebenarnya lebih mudah dilakukan dengan menguji semua

kemungkinannya mengingat semua variabelnya hanya dapat bernilai 0 atau 1. Akan tetapi

pengujian tersebut dapat memakan waktu yang lama jika jumlah variabelnya cukup besar. Secara

umum, jika ada n buah variabel, maka ada 2n kemungkinan penyelesaian.

Penyelesaian program 0-1 yang lebih efisien dilakukan dengan metode enumerasi implisit.

Sebenarnya metode enumerasi implisit mirip dengan metode cabang-batas, hanya saja aturan

percabangan, pembatasan dan penghentian cabang diubah lebih sederhana karena setiap

variabelnya hanya bisa bernilai 0 atau 1.

4.4.1 Metode Enumerasi Implisit

Dasar metode enumerasi implisit adalah mengenumerasi sebagian kecil dari semua

kemungkinan penyelesaian (yang kalau dicoba semuanya akan berjumlah 2n buah).

Page 144: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

136 Riset Operasi : Suatu Tinjauan Algoritmis

Penyelesaian yang tidak fisibel atau akan menghasilkan nilai yang tidak lebih optimal dari nilai

penyelesaian yang sudah didapat sebelumnya dapat diabaikan.

xi = 0 xi = 1

B

A

C

Gambar 4.27

Seperti halnya metode cabang-batas, iterasi dalam metode enumerasi implisit dapat digambarkan

sebagai pohon biner. Percabangan dilakukan dengan lebih sederhana, yaitu dengan mengambil

nilai suatu variabel = 1 atau 0 (lihat gambar 4.27). Kita berpindah dari satu titik (misal titik A

pada gambar 4.27) ke titik cabangnya (titik B atau C pada gambar 4.27) dengan menetapkan nilai

xi = 1 atau 0.

Variabel yang sudah ditetapkan nilainya (1 atau 0) disebut variabel tetap (fixed variable).

Sebaliknya, variabel yang belum ditetapkan nilainya disebut variabel bebas (free variable)

Algoritma Enumerasi Implisit untuk menyelesaikan program 0-1 adalah sebagai berikut :

1. Langkah Maju (forward step) :

Ujilah apakah suatu titik iterasi perlu dicabangkan. Jika perlu, cabangkan titik tersebut ke kiri

dengan memberi nilai = 1 pada suatu variabel bebas. Lakukan terus hingga sampai pada

suatu titik yang tidak perlu dicabangkan lagi.

2. Langkah Balik (backtracking) :

a. Carilah titik terdekat di atasnya yang hanya memiliki sebuah cabang kiri (misal titik vk).

Apabila semua titik di atasnya sudah memiliki 2 cabang, hentikan proses

b. Cabangkan titik vk ke kanan dengan mengambil xk = 0

c. Kembali ke langkah (1)

Iterasi dengan metode enumerasi implisit mirip dengan proses Depth First Search. Gambar 4.28

menunjukkan proses percabangan yang dilakukan dengan algoritma enumerasi implisit pada 3

variabel x1, x2 dan x3. Nomer titik menunjukkan urutan dimana titik tersebut diproses.

Page 145: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 137

Dari titik-0, lakukan percabangan ke kiri dengan mengambil x1 = 1. Pada titik-1, lakukan

percabangan ke kiri lagi dengan mengambil x2 = 1 hingga diperoleh titik-2.

Misalkan berikutnya titik-2 tidak perlu dicabangkan lagi, maka lakukan proses backtracking.

Titik terdekat di atas titik-2 yang belum memiliki cabang kanan adalah titik-1. Cabangkan titik-1

ke kanan dengan mengambil x2 = 0 sehingga didapat titik-3. Berikutnya cabangkan lagi titik-3 ke

kiri dengan mengambil x3 = 1 sehingga dihasilkan titik-4.

Karena sudah mencabangkan ketiga variabel, berikutnya lakukan backtracking dengan

mencabangkan titik-3 ke kanan sehingga diperoleh titik-5.

Karena titik-5 tidak bisa dicabangkan lagi, maka proses backtracking berikutnya adalah

mencabangkan titik-0 ke kanan sehingga diperoleh titik-6

x3 = 1

x2 = 1

x3 = 0

x2 = 0

x1 = 0 x1 = 1

1

0

6

54

32

Gambar 4.28

Untuk kemudahan proses, program 0-1 dapat dinyatakan dalam bentuk standar sebagai berikut :

Minimumkan 1 1 2 2 ... n nz c x c x c x dengan 0jc j

dengan kendala :

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

...

...

...

...

n n

n n

m m mn n m

a x a x a x b

a x a x a x b

a x a x a x b

1 2, , ... , 0,1nx x x

Page 146: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

138 Riset Operasi : Suatu Tinjauan Algoritmis

Perhatikan perbedaan bentuk standar program 0-1 di atas dengan bentuk standar program linier /

program bilangan bulat yang sudah dibahas sebelumnya. Dalam bentuk standar program 0-1, bi

tidak disyaratkan 0. Tapi justru cj yang harus 0.

Apabila semua bi 0, maka penyelesaian optimalnya adalah x1 = x2 = … = xn = 0.

Penyelesaian ini akan optimal karena cj 0.

Perubahan soal ke bentuk standar program 0-1 dilakukan dengan cara sebagai berikut :

1. Jika soal memaksimumkan, jadikan ke soal meminimumkan dengan mengalikan cj di fungsi

sasaran dengan (-1).

Sebagai contoh, soal Memaksimumkan z = 2x1 + 3x2 dapat diubah menjadi

Meminimumkan z = -2x1 – 3x2

2. Jika ada kendala berbentuk pertidaksamaan , ubah ke bentuk pertidaksamaan dengan

mengalikan kedua ruasnya dengan (-1)

3. Jika ada kendala berbentuk persamaan, ubahlah menjadi 2 buah kendala yang masing-

masing berupa pertidaksamaan dan .

Sebagai contoh, kendala x1 - 2x2 = 4 diubah menjadi 2 buah kendala x1 - 2x2 4 dan x1 -

2x2 4

4. Jika ada ck < 0, gantilah xk dengan (1 – xk), baik pada fungsi sasaran maupun pada

kendalanya.

Sebagai contoh, pada model

Minimumkan z = 2x1 – 3x2

Kendala x1 – 2x2 - 1

3x1 + x2 2 x1, x2 = { 0, 1}

diubah ke bentuk standar program 0-1 dengan mengambil x2 = 1 – x’2. Jika disubstitusikan

ke model akan menghasilkan :

Minimumkan z = 2x1 – 3 (1 – x’2) = -2 + 2x1 + 3x’2

Kendala x1 – 2 (1 – x’2) - 1 atau x1 + 2x’2 1

Page 147: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 139

3x1 + (1 – x’2) 2 atau 3x1 - x’2 1

x1, x’2 = { 0, 1}

Untuk mengurangi jumlah titik iterasi, maka pada setiap titik dilakukan proses uji penyelesaian

nol (zero completion) dan uji infisibilitas (infeasibility test). Kedua uji ini digunakan untuk

menentukan apakah titik tersebut perlu dicabangkan atau tidak. Jika perlu, lakukan percabangan

kiri dengan mengambil xi = 1. Jika tidak perlu dicabangkan, lakukan proses backtracking.

Uji Penyelesaian Nol

Penyelesaian nol adalah pemberian nilai nol pada semua variabel bebas. Ini disebabkan karena

koefisien fungsi sasaran semua variabel bebas (cj) 0 sehingga pemberian nilai nol pada semua

variabel bebas tersebut akan menyebabkan nilai fungsinya menjadi minimum.

Beri nilai 0 pada semua

variabel bebas

Hitung nilai fungsi z

z zU

Hentikan proses pada titik-k.

Lakukan Backtracking untuk

memproses titik diatasnya

ya

titik-k memenuhi

semua kendala

tidak

z menjadi batas atas baru

Lakukan uji InfisibilitasLakukan Backtracking untuk

memproses titik diatasnya

ya

tidak

Mulai

Selesai

Gambar 4.29

Page 148: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

140 Riset Operasi : Suatu Tinjauan Algoritmis

Akan tetapi harus dicek juga apakah pemberian nilai nol pada semua variabel bebas tersebut

merupakan penyelesaian fisibel (memenuhi semua kendala). Jika penyelesaian nol tersebut

merupakan penyelesaian yang fisibel, maka akan diperoleh batas atas penyelesaian. Sebaliknya,

jika penyelesaian nol tersebut tidak fisibel (ada kendala yang tidak terpenuhi), maka titik tersebut

perlu dicabangkan ke kiri dengan mengambil nilai variabel bebas berikutnya = 1.

Misalkan sebelum proses pada titik-k dilakukan, telah diperoleh batas atas zU. Bagan alir proses

uji penyelesaian nol tampak pada gambar 4.29

Pada awal proses belum ditemukan batas atas penyelesaian sehingga zU diambil +

Uji Infisibilitas

Uji infisibilitas digunakan untuk menentukan apakah dalam proses berikutnya nanti akan

mungkin memperoleh penyelesaian fisibel. Jika mungkin maka dilakukan percabangan untuk

memperoleh penyelesaian lainnya. Sebaliknya jika tidak mungkin maka titik tersebut tidak perlu

dicabangkan lagi.

Uji infisibilitas dilakukan dengan mengevaluasi besarnya nilai maksimum variabel longgar

(variabel slack) pada tiap kendala. Perhatikan bahwa dalam bentuk standarnya, semua kendala

berbentuk pertidaksamaan sehingga diperlukan penambahan variabel longgar (= s) untuk

menjadikannya menjadi kendala persamaan. Karena ruas kanan kendala tidak disyaratkan positip

maka variabel longgar juga mungkin bernilai negatif.

Jika nilai maksimum variabel longgar pada suatu kendala adalah negatif (s < 0), berarti tidaklah

mungkin memperoleh penyelesaian fisibel sehingga titik tersebut tidak perlu dicabangkan.

Sebaliknya, jika nilai maksimum s untuk semua kendala 0, berarti titik tersebut perlu

dicabangkan.

Sebagai contoh, perhatikan kendala 4x1 – 2x2 + 3x3 + x4 – x5 + 3x6 2. Misalkan pada suatu

titik iterasi, variabel tetapnya adalah x1 = 1 dan x3 = 1. Maka kendala tersebut menjadi 4(1) –

2x2 + 3(1) + x4 – x5 + 3x6 2 atau – 2x2 + x4 – x5 + 3x6 - 5

Untuk merubah menjadi bentuk persamaan tambahkan variabel longgar s

– 2x2 + x4 – x5 + 3x6 + s = - 5. Maka s = - 5 + 2x2 - x4 + x5 - 3x6

Page 149: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 141

Karena semua xi hanya mungkin bernilai 0 atau 1, maka nilai maksimum s akan dicapai jika

semua variabel yang memiliki koefisien positip (x2 dan x5) diberi nilai = 1 dan yang berkoefisien

negatif (x4 dan x6) diberi nilai = 0.

smak = - 5 + 2(1) – (0) + (1) – 3(0) = -2 < 0

Gambar 4.30 menunjukkan bagan alir uji infisibilitas pada titik-k

Hitung smak semua kendala

Ada

smak < 0

Titik-k tidak perlu dicabangkan.

Lakukan Backtracking untuk

memproses titik diatasnya

ya

tidak

cabangkan titik k ke kiri

Mulai

Ulangi Proses Pengujian

Selesai

Gambar 4.30

Contoh 4.8

Selesaikan program 0-1 berikut ini :

Minimumkan z = 4x1 + 5x2 + 6x3 + 2x4 + 3x5

Kendala - 4x1 – 2x2 + 3x3 - 2x4 + x5 -1

- x1 – 5x2 - 2x3 + 2x4 - 2x5 -5 x1, … , x5 = { 0, 1}

Penyelesaian

Tampak bahwa soal sudah dalam bentuk standar, yaitu soal meminimumkan dengan semua cj

0, dan semua kendala berbentuk . Tampak pula bahwa ruas kanan kendalanya negatif

sehingga penyelesaian optimalnya bukan xi = 0 untuk semua I

Page 150: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

142 Riset Operasi : Suatu Tinjauan Algoritmis

Program 0 (program mula-mula)

Karena pada awalnya belum ditemukan penyelesaian fisibel maka diambil batas atas

penyelesaiannya = + . Pada program 0, belum ada variabel yang diberi nilai sehingga semua

variabelnya merupakan variabel bebas.

Uji Penyelesaian Nol

Ambil xi = 0 untuk semua variabel bebas (berarti x1 = x2 = x3 = x4 = x5 = 0). Maka z = 4(0) +

5(0) + 6(0) + 2(0) + 3(0) = 0

Karena z < zU maka selanjutnya diuji apakah pengambilan xi = 0 tersebut merupakan

penyelesaian fisibel (memenuhi semua kendala)

Kendala-1 : - 4(0) – 2(0) + 3(0) - 2(0) + 0 = 0 -1. Jadi penyelesaian dengan xi = 0

tersebut tidak fisibel sehingga selanjutnya dilakukan uji infisibilitas. Perhatikan bahwa kendala-2

tidak perlu diuji lagi.

Uji Infisibilitas

Untuk menjadikan kendala menjadi bentuk persamaan, perlu ditambahkan variabel longgar s1

dan s2 pada kendala-1 dan kendala-2.

Kendala-1 : - 4x1 – 2x2 + 3x3 - 2x4 + x5 + s1 = -1

s1 = - 1 + 4x1 + 2x2 - 3x3 + 2x4 - x5

Maka s1 maks = - 1 + 4(1) + 2(1) - 3(0) + 2(1) – (0) = 7 > 0

Kendala-2 : - x1 – 5x2 - 2x3 + 2x4 - 2x5 + s2 = -5

s2 = - 5 + x1 + 5x2 + 2x3 - 2x4 + 2x5

x1 = 1

1

0

Gambar 4.31 a

Page 151: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 143

Maka s2 maks = - 5 + (1) + 5(1) + 2(1) – 2(0) + 2(1) = 5 > 0

Karena s1 maks 0 dan s2 maks 0 maka titik-1 perlu dicabangkan. Gambar 4.31 a

Ambil sembarang variabel untuk dijadikan variabel tetap (misal ambil x1). Percabangan

dilakukan dengan mengambil x1 = 1 (lihat gambar 4.31 a)

Program 1 (x1 = 1)

Dengan mensubstitusi x1 = 1 pada model program 0 maka diperoleh :

Minimumkan z = 4 + 5x2 + 6x3 + 2x4 + 3x5

Kendala – 2x2 + 3x3 - 2x4 + x5 3

– 5x2 - 2x3 + 2x4 - 2x5 -4 x2, … , x5 = { 0, 1}

Uji Penyelesaian Nol

Variabel bebasnya adalah { x2, .. , x5 }. Dengan mengambil x2 = x3 = x4 = x5 = 0 maka didapat

z = 4. Karena z = 4 < zU = + maka selanjutnya diuji apakah penyelesaian nol tersebut

memenuhi semua kendala.

Pada kendala-1 : – 2(0) + 3(0) - 2(0) + (0) = 0 3 tapi

pada kendala-2 : – 5(0) - 2(0) + 2(0) - 2(0) = 0 -4 sehingga perlu dilakukan uji

infisibilitas.

Uji Infisibilitas

Slack kendala-1 : s1 = 3 + 2x2 - 3x3 + 2x4 - x5 sehingga s1 maks = 7 > 0

Slack kendala-1 : s2 = – 4 + 5x2 + 2x3 - 2x4 + 2x5 sehingga s2 maks = 5 > 0

Karena keduanya 0, maka titik-1 perlu dicabangkan lagi dengan mengambil x2 = 1 (program

2). Gambar 4.31 b menunjukkan percabangan yang dilakukan.

Page 152: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

144 Riset Operasi : Suatu Tinjauan Algoritmis

x2 = 1

x1 = 1

1

0

2

Gambar 4.31 b

Program 2 (x1 = 1, x2 = 1)

Dengan mensubstitusi x2 = 1 pada program-1 didapat :

Minimumkan z = 9 + 6x3 + 2x4 + 3x5

Kendala 3x3 - 2x4 + x5 5

– 2x3 + 2x4 - 2x5 1 x3, … , x5 = { 0, 1}

Uji penyelesaian Nol

Dengan mengambil x3 = x4 = x5 = 0 akan didapat z = 9 < zU (= + ). Pengujian penyelesaian

nol pada kedua kendala akan menghasilkan :

Kendala-1 : 3 (0) - 2(0) + (0) = 0 5

Kendala-2 : – 2(0) + 2(0) - 2(0) = 0 1

Semua kendala terpenuhi oleh penyelesaian nol. Maka z menjadi batas atas baru. didapat zU =

9. Uji infisibilitas tidak perlu dilakukan.

Perhatikan cara pengujian apakah penyelesaian nol merupakan penyelesaian fisibel. Tidak ada

kostanta di sisi kiri kendala. Berarti sustitusi xi = 0 untuk semua i akan menghasilkan nilai 0 di

sisi kiri kendala. Jadi apabila sisi kanan suatu kendala 0, maka pertidaksamaan kendala

pastilah bernilai benar. Sebaliknya jika sisi kanan kendala < 0, maka pertidaksamaan kendala

bernilai salah. Berarti penyelesaian nol tidaklah fisibel sehingga dilakukan uji infisibilitas.

Pada program-0, kedua sisi kendala < 0 sehingga penyelesaian nol tidak fisibel sehingga

dilakukan uji infisibilitas. Demikian pula dengan program-1. Ruas kanan kendala-2 < 0 sehingga

Page 153: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 145

dilakukan uji infisibilitas. Akan tetapi pada program-2 tidak perlu dilakukan uji infisibilitas

karena semua ruas kanan kendala 0.

x2 = 1 x2 = 0

x1 = 1

1

0

32

zU = 9

Gambar 4.31 c

Setelah mendapatkan zU baru (= 9), lakukan backtracking ke node terdekat diatasnya, yaitu titik-

1. Cabangkan titik-1 ke kanan dengan mengambil x2 = 0 (program-3)

Program 3 (x1 = 1, x2 = 0)

Dengan mensubstitusi x2 = 0 pada program-1 didapat :

Minimumkan z = 4 + 6x3 + 2x4 + 3x5

Kendala 3x3 - 2x4 + x5 3

– 2x3 + 2x4 - 2x5 - 4 x3, … , x5 = { 0, 1}

Uji penyelesaian Nol

Jika x3 = x4 = x5 = 0 maka z = 4 < zU (=9)

Ruas kanan kendala-2 = -4 < 0. Maka perlu dilakukan uji infisibilitas

Uji infisibilitas

Slack kendala-1 = s1 = 3 - 3x3 + 2x4 - x5 . Maka s1 maks = 5 > 0

Slack kendala-2 = s2 = -4 + 2x3 - 2x4 + 2x5 . Maka s2 maks = 0

Karena tidak ada smaks yg negatif, maka titik-3 harus dicabangkan dengan mengambil x3 = 1

(program-4)

Page 154: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

146 Riset Operasi : Suatu Tinjauan Algoritmis

x3 = 1

x2 = 1 x2 = 0

x1 = 1

1

0

4

32

zU = 9

Gambar 4.31 d

Program 4 (x1 = 1, x2 = 0, x3 = 1)

Dengan mensubstitusi x3 = 1 pada program-3 didapat :

Minimumkan z = 10 + 2x4 + 3x5

Kendala - 2x4 + x5 0

2x4 - 2x5 - 2

Uji penyelesaian Nol

Jika x4 = x5 = 0 maka z = 10 > zU (=9). Ini berarti bahwa titik-4 tidak akan menghasilkan

penyelesaian yang lebih optimal dibandingkan penyelesaian yang sudah ditemukan (=9). Jadi

titik-4 tidak perlu dicabangkan lagi.

Backtracking terdekat berikutnya adalah dengan mengambil x3 = 0 pada titik-3 (program-5)

Page 155: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 147

x3 = 1

x2 = 1

x3 = 0

x2 = 0

x1 = 1

1

0

54

32

zU = 9

Gambar 4.31 e

Program 5 (x1 = 1, x2 = 0, x3 = 0)

Dengan mensubstitusi x3 = 0 pada program-3 didapat :

Minimumkan z = 4 + 2x4 + 3x5

Kendala - 2x4 + x5 3

2x4 - 2x5 - 4 x3, … , x5 = { 0, 1}

Uji penyelesaian Nol

Jika x4 = x5 = 0 maka z = 4 < zU (=9)

Ruas kanan kendala-2 = -4 < 0. Maka perlu dilakukan uji infisibilitas

Uji infisibilitas

s1 = 3 + 2x4 - x5 . Maka s1 maks = 5 > 0

s2 = -4 - 2x4 + 2x5 . Maka s2 maks = - 2 < 0

Karena s2 < 0 maka dilakukan proses backtracking untuk mencabangkan titik di atasnya. Titik

terdekat yang dapat dicabangkan adalah titik-0 (lihat gambar 4.31 f). Percabangan dilakukan

dengan mengambil x1 = 0 (program-6)

Page 156: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

148 Riset Operasi : Suatu Tinjauan Algoritmis

x3 = 1

x2 = 1

x3 = 0

x2 = 0

x1 = 0 x1 = 1

1

0

6

54

32

zU = 9

Gambar 4.31 f

Program 6 (x1 = 0)

Dengan mensubstitusi x1 = 0 pada program mula-mula (program-0) diperoleh :

Minimumkan z = 5x2 + 6x3 + 2x4 + 3x5

Kendala – 2x2 + 3x3 - 2x4 + x5 -1

– 5x2 - 2x3 + 2x4 - 2x5 -5 x2, … , x5 = { 0, 1}

Uji penyelesaian Nol

Jika x2 = x3 =x4 = x5 = 0 maka z = 0 < zU (=9)

Ruas kanan kedua kendala < 0. Maka perlu dilakukan uji infisibilitas

Uji infisibilitas

s1 = -1 + 2x2 - 3x3 + 2x4 - x5 . Maka s1 maks = 3 > 0

s2 = – 5 + 5x2 + 2x3 - 2x4 + 2x5 . Maka s2 maks = 4 > 0

Karena tidak ada smaks < 0 maka titik 6 perlu dicabangkan dengan mengambil x2 = 1 (program-7)

Page 157: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 149

x2 = 1

x3 = 1

x2 = 1

x3 = 0

x2 = 0

x1 = 0 x1 = 1

1

0

6

54

32 7

zU = 9

Gambar 4.31 g

Program 7 (x1 = 0, x2 = 1)

Substitusi x2 = 1 pada program-6 menghasilkan :

Minimumkan z = 5 + 6x3 + 2x4 + 3x5

Kendala 3x3 - 2x4 + x5 1

- 2x3 + 2x4 - 2x5 0 x3, … , x5 = { 0, 1}

Uji penyelesaian Nol

Jika x3 =x4 = x5 = 0 maka z = 5 < zU (=9)

Ruas kanan kedua kendala tidak ada yang negatif. Maka diperoleh batas atas baru yaitu zU = 5.

Backtracking akan mencabangkan titik-6 ke kanan dengan mengambil x2 = 0 (program-8)

Page 158: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

150 Riset Operasi : Suatu Tinjauan Algoritmis

x2 = 1 x2 = 0

x3 = 1

x2 = 1

x3 = 0

x2 = 0

x1 = 0 x1 = 1

1

0

6

54

32 87

zU = 5zU = 9

Gambar 4.31 h

Program 8 (x1 = 0, x2 = 0)

Substitusi x2 = 0 pada program-6 menghasilkan :

Minimumkan z = 6x3 + 2x4 + 3x5

Kendala 3x3 - 2x4 + x5 -1

- 2x3 + 2x4 - 2x5 -5 x3, … , x5 = { 0, 1}

Uji penyelesaian Nol

Dengan mengambil x3 =x4 = x5 = 0 maka z = 0 < zU (= 5)

Ruas kanan kedua kendala < 0. Maka perlu dilakukan uji infisibilitas

Uji infisibilitas

s1 = -1 - 3x3 + 2x4 - x5 . Maka s1 maks = 1 > 0

s2 = – 5 + 2x3 - 2x4 + 2x5 . Maka s2 maks = - 1 < 0

Karena s2 maks < 0 maka titik 8 tidak perlu dicabangkan lagi. Proses backtracking juga tidak

menghasilkan titik baru karena semua titik di atas titik-8 sudah memiliki 2 cabang. Ini berarti

Page 159: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 151

proses iterasi selesai dengan penyelesaian optimal di titik-7 (dengan semua variabel bebasnya =

0).

PO : x1 = 0, x2 = 1, x3 =x4 = x5 = 0 dengan zmin = 5

Perhatikan bahwa untuk mencapai titik optimal dalam contoh 4.8 hanya dibutuhkan 9 kali

pengujian (program-0 … program-8). Pencarian seluruh kemungkinan penyelesaian

mengharuskan kita menguji 25 = 32 buah titik penyelesaian. Secara umum, jika soal semula

terdiri dari n variabel, maka pencarian seluruh kemungkinan penyelesaian mengharuskan kita

menguji 2n buah titik

4.4.2 Aplikasi Program 0-1

4.4.2.1 Masalah Knapsack

Masalah knapsack (= ransel) muncul jika kita memiliki n buah item yang tidak semuanya dapat

dimasukkan dalam suatu tempat (misal tas/ransel). Masing-masing item memiliki faktor

utilitas/manfaat yang berbeda-beda. Masalahnya adalah memilih barang-barang yang dibawa

(dengan keterbatasan tempat) agar total utilitas yang dihasilkannya maksimum.

Misalkan ai = berat/volume barang ke-i (i = 1, 2, … , n)

ci = nilai utilitas/manfaat barang ke-i (i = 1, 2, … , n)

W = daya tampung tas/ransel pembawa barang

Didefinisikan variabel xi sebagai berikut :

1 jika item ke-i dibawa

0 jika item ke-i tidak dibawaix

Masalah knapsack dapat dinyatakan dalam model program 0-1 sebagai berikut :

Page 160: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

152 Riset Operasi : Suatu Tinjauan Algoritmis

Maksimumkan z = 1

n

i i

i

c x

Kendala 1

n

i i

i

a x W

xi = 0,1

Masalah knapsack dapat ditransformasikan menjadi bentuk standar program 0-1 dan diselesaikan

dengan enumerasi implisit. Untuk lebih jelasnya, perhatikan contoh 4.9 berikut ini.

Contoh 4.9

Seseorang yang hendak bepergian dengan pesawat memiliki sisa bagasi seberat 11 kg. Ada 4

jenis barang yang dapat ia bawa. Berat dan tingkat kegunaan masing-masing barang adalah

sebagai berikut :

Barang Berat (kg) Tingkat Manfaat

Pakaian

Buku

Mainan

Radio Tape

4

6

2

3

4

8

1

2

Tentukan jenis barang yang harus ia bawa agar total manfaat yang diperoleh maksimum !

Penyelesaian

Sebelum membuat model, barang-barang tersebut diurutkan berdasarkan rasio manfaat/berat.

Semakin besar rasionya, semakin besar pula kemungkinan terpilih sehingga diletakkan lebih

depan agar titik pohon yang terbentuk lebih sedikit.

Barang Berat (kg) Tingkat

Manfaat

Rasio =

Manfaat/Berat

Pakaian

Buku

Mainan

Radio Tape

4

6

2

3

4

8

1

2

1

4/3

½

2/3

Page 161: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 153

Dengan mengurutkan rasio dari yang terbesar, ambil :

x1 = Buku, x2 = Pakaian, x3 = Radio Tape dan x4 = Mainan

Model program 0-1 yang sesuai adalah :

Maksimumkan z = 8x1 + 4x2 + 2x3 + x4

Kendala 6x1 + 4x2 + 3x3 + 2x4 11 x1, … , x4 = { 0, 1}

Jadikan ke bentuk standar program 0-1 sebagai berikut :

1. Ubah fungsi sasaran menjadi meminimumkan dengan mengalikan koefisien fungsi sasaran

dengan (-1). didapat :

Minimumkan z = - 8x1 - 4x2 - 2x3 - x4

Kendala 6x1 + 4x2 + 3x3 + 2x4 11 x1, … , x4 = { 0, 1}

2. Ubah fungsi sasaran sehingga semua koefisiennya tidak negatif. Karena semua fungsi

sasaran < 0, maka lakukan transformasi :

x1 = 1 – y1, x2 = 1 – y2, x3 = 1 – y3, x4 = 1 – y4

Substitusi ke fungsi sasaran dan kendala. Didapat :

Minimumkan z = - 8 (1 - y1) - 4 (1 - y2) - 2 (1 - y3) - (1 -y4)

Kendala 6 (1 - y1) + 4 (1 - y2) + 3 (1 - y3) + 2 (1 - y4) 11

y1, … , y4 = { 0, 1}

Sederhanakan menjadi :

Program 0

Minimumkan z = - 15 + 8y1 + 4y2 + 2y3 + y4

Kendala - 6y1 – 4y2 - 3y3 – 2y4 -4 y1, … , y4 = { 0, 1}

Pada awal iterasi semua variabel adalah variabel bebas dan zU = +

Uji penyelesaian Nol

Dengan mengambil y1 = … = y4 = 0 maka z = -15 < zU (= + )

Page 162: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

154 Riset Operasi : Suatu Tinjauan Algoritmis

Ruas kanan kendala = -4 < 0. Maka perlu dilakukan uji infisibilitas

Uji infisibilitas

s = -4 + 6y1 + 4y2 + 3y3 + 2y4 . Maka smaks = 11 > 0

Karena smaks > 0, maka titik-0 harus dicabangkan dengan mengambil y1 = 1 (program-1)

y1 = 1

1

0

Gambar 4.32 a

Program 1 (y1 = 1)

Substitusi y1 = 1 ke program-0. Didapat :

Minimumkan z = - 7 + 4y2 + 2y3 + y4

Kendala – 4y2 - 3y3 – 2y4 2 y2, y3, y4 = { 0, 1}

Uji penyelesaian Nol

Jika y2 = y3 = y4 = 0 maka z = -7 < zU (= + )

Ruas kanan kendala = 2 > 0 sehingga penyelesaian nol memenuhi kendala. Ini berarti diperoleh

batas atas baru zU = z = -7.

y1 = 0 y1 = 1

1

0

2

zU = -7

Gambar 4.32 b

Backtracking ke atas. Cabangkan titik-0 ke kanan dengan mengambil y1 = 0 (program-2)

Page 163: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 155

Program 2 (y1 = 0)

Substitusi y1 = 0 ke program-0. Didapat :

Minimumkan z = - 15 + 4y2 + 2y3 + y4

Kendala – 4y2 - 3y3 – 2y4 -4 y2, y3, y4 = { 0, 1}

Uji penyelesaian Nol

Jika y2 = y3 = y4 = 0 maka z = -15 < zU (= -7)

Ruas kanan kendala = -4 < 0 sehingga perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s = -4 + 4y2 + 3y3 + 2y4 . smaks = 5 > 0 sehingga titik-2 perlu dicabangkan ke kiri dengan

mengambil y2 = 1 (program-3)

y2 = 1

y1 = 0 y1 = 1

1

0

2

3

zU = -7

Gambar 4.32 c

Program 3 (y1 = 0, y2 = 1)

Substitusi y2 = 1 ke program-2. Didapat :

Minimumkan z = - 11 + 2y3 + y4

Kendala - 3y3 – 2y4 0 y3, y4 = { 0, 1}

Page 164: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

156 Riset Operasi : Suatu Tinjauan Algoritmis

Uji penyelesaian Nol

Jika y3 = y4 = 0 maka z = -11 < zU (= -7)

Ruas kanan kendala = 0 sehingga diperoleh zU baru = -11. Backtracking dan cabangkan titik-2

ke kanan dengan mengambil y2 = 0

y2 = 1 y2 = 0

y1 = 0 y1 = 1

1

0

2

43

zU = -11

zU = -7

Gambar 4.32 d

Program 4 (y1 = 0, y2 = 0)

Substitusi y2 = 0 ke program-2. Didapat :

Minimumkan z = - 15 + 2y3 + y4

Kendala – 3y3 – 2y4 -4 y3, y4 = { 0, 1}

Uji penyelesaian Nol

Jika y3 = y4 = 0 maka z = -15 < zU (= -11)

Ruas kanan kendala = -4 < 0 sehingga perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s = -4 + 3y3 + 2y4 . smaks = 1 > 0 sehingga titik-4 perlu dicabangkan ke kiri dengan mengambil

y3 = 1 (program-5)

Page 165: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 157

y2 = 1 y2 = 0

y3 = 1

y1 = 0 y1 = 1

1

0

2

5

43

zU = -11

zU = -7

Gambar 4.32 e

Program 5 (y1 = 0, y2 = 0, y3 = 1)

Substitusi y3 = 1 ke program-4. Didapat :

Minimumkan z = - 13 + y4

Kendala – 2y4 - 1 y4 = { 0, 1}

Uji penyelesaian Nol

Jika y4 = 0 maka z = -13 < zU (= -11)

Ruas kanan kendala = -1 < 0 sehingga perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s = - 1 + 2y4 . smaks = 1 > 0 sehingga titik-5 perlu dicabangkan ke kiri dengan mengambil y4 = 1

(program-6)

Page 166: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

158 Riset Operasi : Suatu Tinjauan Algoritmis

y2 = 1 y2 = 0

y4 = 1

y3 = 1

y1 = 0 y1 = 1

1

0

2

6

5

43

zU = -11

zU = -7

Gambar 4.32 f

Program 6 (y1 = 0, y2 = 0, y3 = 1 y4 = 1)

Substitusi y4 = 1 ke program-5. Didapat :

Minimumkan z = - 12

Kendala – 2 - 1

Uji penyelesaian Nol

Karena sudah tidak ada vaiabel bebas maka z = -12 < zU (= -11)

Tampak bahwa kendala bernilai benar sehingga jita memperoleh batas atas baru yaitu zU = - 12.

Backtracking ke atas untuk mencabangkan titik-5 ke kanan dengan mengambil y4 = 0

(program-7)

Page 167: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 159

y2 = 1 y2 = 0

y4 = 1

y3 = 1

y4 = 0

y1 = 0 y1 = 1

1

0

2

76

5

43

zU = -12

zU = -7

zU = -11

Gambar 4.32 g

Program 7 (y1 = 0, y2 = 0, y3 = 1, y4 = 0)

Dengan mensubstitusi y4 = 0 ke program-5 didapat :

Minimumkan z = - 13

Kendala 0 - 1

Uji penyelesaian Nol

Karena tidak ada lagi variabel babas maka z = -13 < zU (= -12)

Kendala bernilai salah sehingga perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s = - 1 maka smaks = -1 < 0. Lakukan backtracking dengan mencabangkan titik-4 ke kanan

dengan mengambil y3 = 0 (program-8)

Page 168: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

160 Riset Operasi : Suatu Tinjauan Algoritmis

y2 = 1 y2 = 0

y4 = 1

y3 = 1

y4 = 0

y3 = 0

y1 = 0 y1 = 1

1

0

2

76

85

43

zU = -12

zU = -11

zU = -7

Gambar 4.32 h

Program 5 (y1 = 0, y2 = 0, y3 = 0)

Substitusi y3 = 0 ke program-4. Didapat :

Minimumkan z = - 15 + y4

Kendala – 2y4 - 4 y4 = { 0, 1}

Uji penyelesaian Nol

Jika y4 = 0 maka z = -15 < zU (= -12)

Ruas kanan kendala = -4 < 0 sehingga perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s = - 4 + 2y4 . smaks = -2 < 0. Titik-8 tidak perlu dicabangkan. Backtracking tidak dapat

dilakukan karena semua titik di atas titik-8 sudah memiliki 2 cabang. Iterasi selesai dengan

penyelesaian optimal di titik 6 : y1 = 0, y2 = 0, y3 = 1, y4 = 1. Jika dikembalikan ke masalah

semula maka

x1 = 1 – y1 = 1 – 0 = 1

Page 169: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 161

x2 = 1 – y2 = 1 – 0 = 1

x3 = 1 – y3 = 1 – 1 = 0

x4 = 1 – y4 = 1 – 1 = 0

dengan nilai fungsi maksimum = zU = 12.

Jadi supaya utilitasnya maksimum, ia harus membawa buku (x1) dan pakaian (x2) saja.

4.4.2.2 Masalah Investasi

Masalah investasi mucul ketika ada beberapa investasi/pekerjaan/ metode berbeda dapat dipilih.

tiap-tiap investasi/pekerjaan/metode membutuhkan biaya dan akan menghasilkan keuntungan

yang berbeda-beda. Masalahnya adalah memilih beberapa investasi (dengan keterbatasan modal)

agar keuntungan totalnya maksimum.

Masalah investasi dapat dinyatakan sebagai masalah knapsack. Keuntungan investasi dapat

dianalogikan sebagai faktor manfaat pada masalah knapsack, dan biaya tiap pekerjaan

dianalogikan dengan berat/volume barang dalam masalah knapsack. Penyelesaian masalah

investasi dilakukan dengan cara yang sama seperti masalah knapsack.

Misalkan bi = biaya pengambilan investasi ke-i (i = 1, 2, … , n)

ui = keuntungan yang didapat dari investasi ke-i

A = Total anggaran yang tersedia

Didefinisikan variabel xi sebagai berikut :

1 jika investasi ke-i dipilih

0 jika investasi ke-i tidak dipilihix

Model masalah investasi adalah sebagai berikut :

Maksimumkan z = 1

n

i i

i

u x

Page 170: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

162 Riset Operasi : Suatu Tinjauan Algoritmis

Kendala 1

n

i i

i

b x A ; xi = 0,1

Contoh 4.10

Seorang pengusaha memiliki dana sebesar 100 (juta) untuk diinvestasikan ke usaha konstruksi,

komputer atau valuta asing.

Usaha konstruksi, komputer dan valuta asing masing-masing membutuhkan investasi sebesar

48, 39 dan 25 (juta) dan diperkirakan akan menghasilkan keuntungan sebesar 13, 10 dan 5

(juta).

Bagaimana pengusaha tersebut harus mengalokasikan dana yang dimiliki agar keuntungan yang

diperolehnya semaksimum mungkin ?

Penyelesaian

Misal x1, x2 dan x3 masing-masing adalah usaha konstruksi, komputer dan valuta asing.

1 jika investasi ke-i dipilih

0 jika investasi ke-i tidak dipilihix

Model yang sesuai adalah

Maksimumkan z = 13x1 + 10x2 + 5x3

Kendala 48x1 + 39x2 + 25x3 100 x1, … , x3 = { 0, 1}

Penyelesaian model dilakukan dengan cara yang sama seperti contoh 4.9.

4.4.2.3 Masalah Penutup Himpunan (Set Covering)

Misalkan ada n lokasi berbeda yang mungkin digunakan untuk mendirikan fasilitas pelayanan.

Biaya pendirian fasilitas-j adalah cj. Jika fasilitas-j berdiri, maka ia dapat melayani (atau

menutup) mj buah area. Masalahnya adalah menentukan fasilitas mana saja yang harus didirikan

agar semua area terlayani tapi dengan biaya sekecil-kecilnya.

Untuk memodelkan masalah penutup himpunan, didefinisikan variabel keputusan :

Page 171: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 163

1 jika fasilitas-j didirikan

0 jika fasilitas-j tidak didirikanjx

Didefinisikan juga variabel

1 jika fasilitas-j dapat menutup area-i

0 jika sebaliknyaija

Model yang sesuai adalah :

Minimumkan z = 1

n

j j

j

c x

Kendala 1

1n

ij j

j

a x i = 1, 2, … , m

xj = 0,1

Perhatikan bahwa jumlah kendala sama dengan jumlah area yang hendak dilayani/ditutupi.

Kendala-I mengharuskan salah satu dari xj bernilai = 1. Ini berarti bahwa area-i pasti terlayani

oleh minimal salah satu tempat pelayanan

Contoh 4.11

Sebuah perusahaan elektronika hendak mendirikan pusat servis yang diharapkan dapat melayani

5 propinsi di pulau Jawa (DKI Jakarta, Jawa Barat, Jawa Tengah, DI Jogjakarta dan Jawa

Timur). Ada 3 calon lokasi yang dapat dipilih (Bandung, Semarang, dan Solo), yang masing-

masing membutuhkan biaya sebesar 100, 150 dan 75 (puluhan juta) untuk mendirikannya.

Daerah yang dapat terlayani dengan berdirinya pusat servis di masing-masing kota adalah

sebagai berikut :

Bandung Semarang Solo

DKI Jakarta

Jawa Barat

Jawa Tengah

DI Jogjakarta

Jawa Timur

Page 172: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

164 Riset Operasi : Suatu Tinjauan Algoritmis

Tentukan dimana tempat servis harus didirikan agar kelima propinsi tersebut terlayani tapi

dengan biaya semurah-murahnya ?

Penyelesaian

Misalkan x1, x2 dan x3 masing-masing menyatakan pendirian tempat servis di Bandung,

Semarang dan Solo. Model yang sesuai adalah :

Minimumkan z = 100x1 + 150x2 + 75x3

Kendala x1 1 (melayani DKI Jakarta)

x1 + x2 1 (melayani Jawa Barat)

x1 + x2 + x3 1 (melayani Jawa Tengah)

x2 + x3 1 (melayani DI Jogjakarta)

x2 + x3 1 (melayani Jawa Timur)

x1, … , x3 = { 0, 1}

Perhatikan bahwa kedua kendala terakhir sama (DIJ dan Jawa Timur sama-sama dapat dilayani

jika tempat servis didirikan di Semarang dan Solo), sehingga dapat dihilangkan salah satunya.

Jadikan bentuk standar program 0-1 dengan mengalikan semua kendalanya dengan (-1). Didapat

:

Program 0

Minimumkan z = 100x1 + 150x2 + 75x3

Kendala - x1 -1 (melayani DKI Jakarta)

- x1 - x2 -1 (melayani Jawa Barat)

- x1 - x2 - x3 -1 (melayani Jawa Tengah)

- x2 - x3 -1 (melayani DI Jogjakarta)

- x2 - x3 -1 (melayani Jawa Timur)

x1, … , x3 = { 0, 1}

Pada program-0 semua variabelnya merupakan variabel bebas. zU = +

Page 173: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 165

Uji Penyelesaian Nol

Jika x1 = x2 = x3 = 0 maka z = 0 < zU (= + )

Ruas kanan semua kendala < 0 sehingga perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s1 = -1 + x1. s1 maks = 0

s2 = -1 + x1 + x2. s2 maks = 1 > 0

s3 = -1 + x1 + x2 + x3. s3 maks = 2 > 0

s4 = -1 + x2 + x3 . s4 maks = 1 > 0

Karena tidak ada s maks < 0 maka titik-0 dicabangkan dengan mengambil x1 = 1 (program-1)

x1 = 1

1

0

Gambar 4.33 a

Program 1 (x1 = 1)

Jika x1 = 1 disubstitusikan ke program-0, didapat :

Minimumkan z = 100 + 150x2 + 75x3

Kendala - 1 -1

- x2 0

-x2 - x3 0

-x2 - x3 -1 x2, x3 = { 0, 1}

Uji Penyelesaian Nol

Jika x2 = x3 = 0 maka z = 100 < zU (= + )

Page 174: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

166 Riset Operasi : Suatu Tinjauan Algoritmis

Kendala-1 selalu benar sehingga dapat diabaikan dalam uji penyelesaian nol. Ruas kanan

kendala-4 = -1 < 0 sehingga perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s1 = 0 s1 maks = 0

s2 = x2 s2 maks = 1 > 0

s3 = x2 + x3 s3 maks = 2 > 0

s4 = -1 + x2 + x3 . s4 maks = 1 > 0

Karena tidak ada s maks < 0 maka titik-1 dicabangkan dengan mengambil x2 = 1 (program-2)

x2 = 1

x1 = 1

1

0

2

Gambar 4.33 b

Program 2 (x1 = 1, x2 = 1)

Jika x2 = 1 disubstitusikan ke program-1, didapat :

Minimumkan z = 250 + 75x3

Kendala - 1 -1

- 1 0

- x3 1

- x3 0 x3 = { 0, 1}

Page 175: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 167

Uji Penyelesaian Nol

Jika x3 = 0 maka z = 250 < zU (= + )

Kendala-1 dan 2 selalu benar sehingga dapat diabaikan dalam uji penyelesaian nol. Ruas kanan

kendala kendala 3 dan 4 0. Berarti penyelesaian nol merupakan penyelesaian fisibel. Jadi

didapat batas atas baru zU = 250. Backtracking dan cabangkan titik-1 ke kanan dengan

mengambil x2 = 0 (program-3)

x2 = 1 x2 = 0

x1 = 1

1

0

32

zU = 250

Gambar 4.33 c

Program 3 (x1 = 1, x2 = 0)

Dengan mensubstitusikan x2 = 0 ke program-1, didapat :

Minimumkan z = 100 + 75x3

Kendala - 1 -1

0 0

- x3 0

- x3 -1 x3 = { 0, 1}

Uji Penyelesaian Nol

Jika x3 = 0 maka z = 100 < zU (= 250)

Penyelesaian nol tidak fisibel karena meskipun kendala-1 dan 2 selalu benar tapi ruas kanan

kendala-4 < 0. Maka perlu dilakukan uji infisibilitas.

Page 176: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

168 Riset Operasi : Suatu Tinjauan Algoritmis

x3 = 1

x2 = 1 x2 = 0

x1 = 1

1

0

4

32

zU = 250

Gambar 4.33 d

Uji Infisibilitas

s1 = 0 s1 maks = 0

s2 = 0 s2 maks = 0

s3 = x3 s3 maks = 1

s4 = -1 + x3 . s4 maks = 0

Tidak ada s maks < 0. Maka titik-3 dicabangkan dengan mengambil x3 = 1 (program-4). Lihat

gambar 4.33 d

Program 4 (x1 = 1, x2 = 0, x3 = 1)

Jika x3 = 1 disubstitusikan ke program-3, didapat :

Minimumkan z = 175

Kendala - 1 -1

0 0

- 1 0

- 1 -1

Page 177: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 169

x3 = 1

x2 = 1

x3 = 0

x2 = 0

x1 = 1

1

0

54

32

zU = 175

zU = 250

Gambar 4.33 e

Uji Penyelesaian Nol

Karena tidak ada variabel bebas lagi maka z = 175 < zU (= 250)

Tampak bahwa semua kendala bernilai benar sehingga penyelesaian nol merupakan

penyelesaian fisibel. Berarti didapat batas atas baru zU = 175. Backtracking dan cabangkan titik-

3 ke kanan dengan mengambil x3 = 0 (program-5)

Program 5 (x1 = 1, x2 = 0, x3 = 0)

Dengan mensubstitusikan x3 = 0 ke program-3, didapat :

Minimumkan z = 100

Kendala - 1 -1

0 0

0 0

0 -1

Uji Penyelesaian Nol

Karena tidak ada variabel bebas, maka z = 100 < zU (= 175)

Page 178: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

170 Riset Operasi : Suatu Tinjauan Algoritmis

Penyelesaian nol tidak fisibel karena kendala-4 bernilai salah. Maka perlu dilakukan uji

infisibilitas.

Uji Infisibilitas

s1 = 0 s1 maks = 0

s2 = 0 s2 maks = 0

s3 = 0 s3 maks = 0

s4 = -1 s4 maks = -1

s4 maks < 0. Maka titik-5 tidak perlu dicabangkan. Lakukan backtracking. Cabangkan titik-0 ke

kanan dengan mengambil x1 = 0 (program-6).

x3 = 1

x2 = 1

x3 = 0

x2 = 0

x1 = 0 x1 = 1

1

0

6

54

32

zU = 175

zU = 250

Gambar 4.33 f

Program 6 (x1 = 0)

Jika x1 = 0 disubstitusikan pada program-0, maka didapat :

Minimumkan z = 150x2 + 75x3

Kendala 0 -1

- x2 -1

- x2 - x3 -1

- x2 - x3 -1 x2, x3 = { 0, 1}

Page 179: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 171

Uji Penyelesaian Nol

Jika x2 = x3 = 0 maka z = 0 < zU (= 175)

Penyelesaian nol tidak fisibel karena kendala-1 bernilai salah, dan ruas kanan semua kendala

sisanya < 0. Jadi perlu dilakukan uji infisibilitas.

Uji Infisibilitas

s1 = -1 s1 maks = -1

s2 = -1 + x2. s2 maks = 0

s3 = -1 + x2 + x3. s3 maks = 1

s4 = -1 + x2 + x3 . s4 maks = 1

s1 maks < 0. Maka titik-0 tidak perlu dicabangkan. Backtracking juga tidak menghasilkan titik

baru karena semua titik sudah memiliki 2 cabang. Maka didapat penyelesaian optimal pada titik-

4, yaitu x1 = 1, x2 = 0, dan x3 = 1 dengan zmin = 175

Jika dikembalikan ke soal aslinya, maka agar semua propinsi terlayani dengan biaya minimum,

maka perusahaan tersebut harus mendirikan tempat servis di Bandung dan Solo dengan biaya

minimum = 175 (puluhan juta)

Page 180: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

172 Riset Operasi : Suatu Tinjauan Algoritmis

SOAL-SOAL LATIHAN

Selesaikan masalah program bilangan bulat berikut ini dengan metode Cabang-Batas.

1. Minimumkan f = 2 x1 + 3 x2

Kendala :

x1 + 3 x2 6

x1 + x2 3

x1, x2 0 dan bulat

2. Maksimumkan f = x1 + 2 x2

Kendala :

x1 + x2 5

x1 - x2 0

2 x1 + 6 x2 21

x1, x2 0 dan bulat

3. Minimumkan f = x1 + x2

Kendala :

4 x1 + 10 x2 12

10 x1 + 4 x2 12

x1, x2 0 dan bulat

4. Maksimumkan f = x1 + x2

Kendala :

- x1 + 4 x2 10

5 x1 + 2 x2 10

-3 x1 + 4 x2 6

Page 181: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PROGRAM BILANGAN BULAT 173

x1, x2 0 dan bulat

5. Maksimumkan f = x1 + x2

Kendala :

2 x1 + 5 x2 16

6 x1 + 5 x2 30

x1, x2 0 dan bulat

6. Maksimumkan f = x1 + 2x2 + x3

Kendala :

x1 + 4 x2 + 2 x3 7

- x1 + 3 x2 4

x1, x2, x3 0 dan bulat

7. Maksimumkan f = 4 x1 + 5 x2 + 3 x3

Kendala :

3 x1 - 2 x2 + x3 14

x1 + 2 x2 + x3 8

x1, x2, x3 0 dan bulat

8. Selesaikan soal no 1-3 dengan menggunakan metode bidang potong dan bandingkan

hasilnya dengan penyelesaian yang didapat dengan metode cabang batas. Apakah kedua

metode menghasilkan penyelesaian yang sama ?

9. Sebuah perusahaan roti merencanakan membuat 3 jenis roti (A, B, dan C). Ketiganya

menggunakan 2 mesin yang sama yaitu mesin I (mesin pengaduk) dan mesin II (mesin

pembakar/oven).

Setiap roti jenis A rata-rata membutuhkan mesin I selama 12 menit dan mesin II selama 9

menit. Setiap roti jenis B membutuhkan pemakaian mesin I selama 10 menit mesin I dan 10

Page 182: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

174 Riset Operasi : Suatu Tinjauan Algoritmis

menit mesin II. Setiap roti jenis C membutuhkan 13 menit mesin I dan 11 menit mesin II.

Dalam seminggunya, mesin I dan II masing-masing hanya dapat dipakai selama 40 jam.

Biaya pembuatan tiap roti jenis A, B dan C masing-masing adalah sebesar 32, 20 dan 24

(ribuan rupiah). Penjualan tiap roti jenis A, B dan C akan menghasilkan keuntungan sebesar

8, 7 dan 9 (ribuan). Apabila perusahaan tersebut hanya menyediakan dana 5000 (ribuan) tiap

minggunya, tentukan pengaturan produksi yang akan memaksimumkan keuntungannya.

10. Revisilah algoritma cabang-batas untuk menyelesaikan program bilangan bulat campuran,

dimana hanya sebagian saja diantara variabel-variabelnya yang diharuskan merupakan

bilangan bulat.

Maksimumkan/minimumkan 1 2 1 1 2 2, , ... , ...n n nf x x x c x c x c x

dengan kendala :

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

...

...

...

...

n n

n n

m m mn n m

a x a x a x b

a x a x a x b

a x a x a x b

1 2, , ... , 0kx x x bulat , k n

Page 183: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 55

TRANSPORTASI

5.1 Pendahuluan

Masalah transportasi merupakan masalah yang sering dihadapi dalam pendistribusian barang.

Misalkan ada m buah gudang (sumber) yang memiliki masing-masing a1, a2, …, am buah barang

yang sama. Barang-barang tersebut hendak dikirimkan ke n buah toko (tujuan) yang masing-

masing membutuhkan b1, b2, … , bn buah barang. Diasumsikan a1 + a2 + … + am = b1 + b2 + …

+ bn. Biasanya karena letak geografis/jarak yang berbeda-beda, maka biaya pengiriman dari

suatu sumber ke suatu tujuan tidaklah sama. Misalkan cij adalah biaya pengiriman sebuah

barang dari sumber ai ke tujuan bj. Masalahnya adalah bagaimana menentukan pendistribusian

barang dari sumber sehingga semua kebutuhan tujuan terpenuhi tapi dengan biaya yang se

minimum mungkin.

Contoh 5.1

Misalkan TV yang diproduksi disimpan di 3 gudang yaitu Jakarta, Semarang dan Surabaya,

yang masing-masing memiliki daya tampung sebesar 150, 200 dan 100 unit. TV tersebut hendak

dikirim ke 3 distributor yang berada di Bandung, Jogjakarta dan Malang. Biaya pengiriman per

unit TV (dalam puluhan ribuan rupiah) dari gudang ke distributor tampak dalam tabel 5.1

DISTRIBUTOR

GUDANG Bandung Jogjakarta Malang Persediaan

Jakarta 3 5 7 150

Semarang 6 4 10 200

Surabaya 8 10 3 100

Kebutuhan 100 300 50

Tabel 5.1

Jumlah TV yang ada di ketiga gudang adalah sebanyak 150 + 200 + 100 = 450 unit. Jumlah

permintaan di ketiga distributor juga sebesar 450 unit. Distribusi pengiriman TV yang berbeda

Page 184: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

168 Riset Operasi : Suatu Tinjauan Algoritmis

akan menghasilkan biaya pengiriman yang berbeda. Perhatikan 2 macam cara pengiriman yang

berbeda berikut ini.

DISTRIBUTOR

GUDANG Bandung Jogjakarta Malang Persediaan

Jakarta 100 50 150

Semarang 150 50 200

Surabaya 100 100

Kebutuhan 100 300 50

Tabel 5.2 (a)

DISTRIBUTOR

GUDANG Bandung Jogjakarta Malang Persediaan

Jakarta 100 50 150

Semarang 200 200

Surabaya 100 100

Kebutuhan 100 300 50

Tabel 5.2 (b)

Jumlah biaya pengiriman adalah jumlah unit yang dikirimkan dikalikan dengan biaya

pengiriman per unit. Pada distribusi tabel 5.2 (a), total biaya pengiriman sebesar 100 (3) + 50 (5)

+ 150 (4) + 50 (10) + 100 (10) = 2650. Sebaliknya biaya pengiriman distribusi barang dalam

tabel 5.2 (b) adalah sebesar = 100 (5) + 50 (7) + 200 (4) + 100 (8) = 2450. Biaya pengiriman

sesuai dengan tabel 5.2 (b) lebih murah dibandingkan dengan distribusi tabel 5.2 (a). Akan tetapi

biaya pengiriman sebesar 2450 seperti pada tabel 5.2 (b) belum tentu merupakan biaya

pengiriman yang termurah.

Pencarian cara pengiriman yang paling murah dengan coba-coba akan terlalu lama dan tidak

efisien, apalagi jika tabelnya cukup besar. Dalam bab ini akan dibahas cara pengiriman yang

paling optimal.

Misalkan xij adalah jumlah unit barang yang dikirim dari sumber-i ke tujuan-j. Masalah

transportasi dapat diringkas dalam tabel 5.3.

Page 185: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 169

x11

c11

x12

c12

... x1n

c1n

x21

c21

x22

c22

... x2n

c2n

... ... ... ...

xm1

cm1

xm2

cm2

... xmn

cmn

a1

am

a2

b1 bnb2

1

2

m

1 n2

Tujuan

Su

mbe

r

Persediaan

Permintaan

Tabel 5.3

Masalah transportasi dapat dinyatakan dalam program bilangan bulat sebagai berikut :

Meminimumkan Z = 1 1

m n

ij ij

i j

c x

Kendala 1

n

ij i

j

x a i = 1, 2, … , m

1

m

ij j

i

x b j = 1, 2, … , n

xij bulat 0

Dengan pendekatan program bilangan bulat, maka akan terdapat m.n buah variabel (belum

termasuk variabel tambahan untuk simpleks). Ini berakibat penyelesaian iterasinya akan terlalu

lama. Untuk itu dilakukan pendekatan lain yang lebih mudah.

Algoritma penyelesaian masalah transportasi adalah sebagai berikut :

a. Tentukan penyelesaian fisibel awal.

b. Uji, apakah penyelesaian yang didapatkan pada langkah (1) sudah optimal.

c. Jika belum optimal, tingkatkan keoptimalan penyelesaian

d. Ulangi langkah (1) – (3) hingga didapatkan penyelesaian optimal.

Page 186: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

170 Riset Operasi : Suatu Tinjauan Algoritmis

5.2 Penyelesaian Fisibel Awal

Penyelesaian fisibel awal digunakan untuk menentukan penyelesaian awal dalam masalah

transportasi. Ada beberapa metode yang biasa digunakan antara lain metode barat laut, metode

Vogel dan metode biaya terendah. Masing-masing metode memiliki keuntungan yang berbeda-

beda. Metode barat laut merupakan metode yang paling mudah, akan tetapi biasanya dibutuhkan

lebih banyak iterasi lagi untuk mencapai penyelesaian optimal dibandingkan dengan metode

Vogel atau biaya terendah. Tidak ada teori yang akan menjamin bahwa penyelesaian awal

merupakan penyelesaian optimal.

Jika tabel transportasi terdiri dari m baris dan n kolom, maka penyelesaian awal harus

menghasilkan m+n-1 buah variabel basis (sel yang terisi). Jika penyelesaian awalnya berisi

kurang dari m+n-1 buah variabel basis, maka harus ditambahkan variabel dummy agar proses

pengecekan keoptimalan dan iterasi dapat dilakukan

5.2.1 Metode Barat Laut

Sesuai dengan namanya, metode barat laut mengisi tabel awal transportasi dari sisi barat laut (kiri

atas) dengan kuantitas sebanyak-banyaknya. Pengisian dilakukan terus menerus hingga semua

sumber dihabiskan.

Contoh 5.2

Alat-alat rumah tangga akan dikirim dari 4 buah distributor (A, B, C, D) ke 3 toko (1, 2, dan 3).

Jumlah barang yang siap dikirim dari distributor A, B, C dan D masing-masing adalah 300,

200, 600, dan 500 unit. Kebutuhan toko 1, 2, dan 3 masing-masing adalah 200, 1000 dan

400 unit. Biaya pengiriman (ribuan) dari distributor ke toko tampak dalam tabel 5.4. Tentukan

penyelesaian fisibel awal dengan metode barat laut.

Ke Toko

Distributor 1 2 3

A 5 3 6

B 2 9 4

Page 187: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 171

C 3 7 8

D 6 1 4

Tabel 5.4

Penyelesaian

Jumlah seluruh barang yang tersedia di distributor adalah 300 + 200 + 600 + 500 = 1600 unit,

sedangkan jumlah permintaan seluruh toko adalah 200 + 1000 + 400 = 1600 unit juga. Karena

keduanya sama maka proses iterasi dapat dimulai. Kondisi transportasi tampak pada tabel 5.5.

Biaya pengiriman per unit barang tampak pada ujung kiri atas pada tiap sel. Di sisi kanan tampak

jumlah persediaan barang dari tiap distributor, sedangkan di sisi bawah tabel adalah jumlah

permintaan tiap toko.

5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

A

B

D

1 32

Toko

Dis

trib

uto

r

Persediaan

Permintaan

3 7 8

C 600

Tabel 5.5

Ujung barat laut tabel adalah sel dengan c11 = 5. Sel ini diisi dengan kuantitas sebanyak mungkin.

Distributor – A memiliki 300 unit barang sedangkan toko – 1 membutuhkan 200 unit. Maka x11

diisi sebanyak-banyaknya yaitu 200 unit (perhatikan jika x11 diisi lebih dari 200 unit maka

terdapat kelebihan permintaan). Dengan mengisi x11 = 200 maka otomatis permintaan toko – 1

sudah terpenuhi sehingga x21, x31 dan x41 tidak boleh terisi (ditandai dengan arsiran pada tabel 5.6

a).

Sekarang ujung barat laut adalah sel dengan c12 = 3 yang akan diisi dengan barang semaksimal

mungkin. Distributor – A hanya memiliki 300 unit barang dan sudah dikirimkan ke toko – 1

Page 188: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

172 Riset Operasi : Suatu Tinjauan Algoritmis

sebanyak 200 unit sehingga tersisa 100 unit. Di sisi lain, toko – 2 membutuhkan sebanyak 1000

unit. Maka x12 = 100. Dengan pengisian ini, maka distributor – A sudah kehabisan barang

sehingga x13 tidak boleh diisi lagi (lihat tabel 5.6 b).

B

D

2

300

200

600

5 3 6

2 9 4

6 1 4

500

200 4001000

A

1 3

Toko

Dis

trib

uto

r

3 7 8

C

200 100

5

200

3 6

2 9 4

6 1 4

300

500

200

200 4001000

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C 600

Tabel 5.6 (a) Tabel 5.6 (b)

Karena barang di distributor – A sudah habis, maka sekarang ujung barat lautnya terletak pada

sel dengan c22 = 9. Distributor – B memiliki 200 unit barang sedangkan toko – 2 tinggal

membutuhkan 900 unit barang lagi (kebutuhannya 1000 unit tetapi 100 unit diantaranya sudah

disuplai dari distributor – A). Maka x22 = 200 dan x23 tidak boleh diisi lagi.

Demikian seterusnya sehingga semua barang terdistribusi. Hasil penyelesaian fisibel awal

dengan metode barat laut tampak pada tabel 5.6 c. Biaya total pengiriman adalah sebesar 200 (5)

+ 100 (3) + 200 (9) + 600 (7) + 100 (1) + 400 (4) = 9000 (ribuan)

Tampak bahwa jumlah basis (sel yang terisi) = 6 sel yang sama dengan jumlah baris+ jumlah

kolom - 1 = 4 + 3 – 1 = 6. Jadi jumlah basisnya mencukupi dan tidak diperlukan variabel basis

dummy.

Page 189: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 173

5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

A

B

D

1 32

Toko

Dis

trib

uto

r3 7 8

C 600

200 100

200

100

600

400

Tabel 5.6 (c)

Contoh 5.3

Buatlah penyelesaian fisibel awal masalah transportasi yang biaya pengirimannya tampak dalam

tabel 5.7 dengan metode barat laut.

TOKO

GUDANG 1 2 3 Persediaan

A 4 2 8 100

B 1 5 3 200

Kebutuhan 100 150 50

Tabel 5.7

Penyelesaian

Pengisian dengan metode barat laut dimulai dari sel dengan c11 = 4. Maksimum barang yang

dapat dikirimkan adalah sebanyak 100 unit. akan tetapi dengan pengiriman ini gudang A akan

kehabisan barang dan sekaligus toko - 1 akan terpenuhi permintaannya. Jika diteruskan maka

penyelesaian basisnya akan kurang karena satu sel yang terisi akan menghilangkan baris

sekaligus kolomnya. Untuk itu perlu ditambahkan variabel basis dummy yang berharga 0 pada

x12 atau x21. Misalkan diambil x12 = 0.

Page 190: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

174 Riset Operasi : Suatu Tinjauan Algoritmis

Pengisian berikutnya akan menghasilkan x22 = 150 dan x23 = 50 (lihat tabel 5.8). Dengan

penambahan variabel dummy tersebut maka jumlah variabel basisnya adalah 4 buah yang

mencukupi.

4 2 8

1 5 3

100

200

100 50150

A

B

1 32

Toko

Gu

da

ng 100 0

150 50

Tabel 5.8

5.2.2 Metode Biaya Terendah

Prinsip dasar penyelesaian fisibel awal dengan metode biaya terendah tidak jauh berbeda dengan

metode barat laut. Hanya saja pengisian tidak dilakukan dari sisi barat laut, tetapi dari sel yang

biaya pengirimannya terendah. Pada sel itu kita isi dengan barang sebanyak mungkin. Jika ada

beberapa sel yang biaya terendahnya sama, maka dipilih sembarang.

Metode biaya terendah sering juga disebut metode greedy karena sifatnya yang selalu memulai

penyelesaian dari biaya yang terkecil tanpa memperhitungkan efeknya terhadap keseluruhan

proses. Meskipun selalu dimulai dari sel yang biayanya terkecil, namun metode biaya terendah

belum tentu menghasilkan penyelesaian optimal.

Secara logika, hasil yang didapat dengan metode biaya terendah akan lebih baik dibandingkan

dengan metode barat laut karena pengisian dengan metode barat laut tidak mempertimbangkan

biaya pengiriman pada sel yang bersangkutan. Akibatnya total biaya pengiriman akan cenderung

lebih tidak optimal.

Contoh 5.4

Selesaikan soal 5.2 dengan metode biaya terendah.

Penyelesaian

Page 191: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 175

Biaya terkecil adalah pengiriman dari distributor D ke toko – 2 dengan c42 = 1. Pada sel ini diisi

dengan kuantitas sebanyak-banyaknya yaitu sebesar x42 = 500. Dengan pengisian ini maka

distributor – D sudah kehabisan barang sehingga x41 dan x43 tidak bisa terisi lagi (ditandai dengan

arsiran pada tabel 5.9 a).

5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C 600

500

B

D

2

300

200

600

5 3 6

2 9 4

6 1 4

500

200 4001000

A

1 3

Toko

Dis

trib

uto

r

3 7 8

C

200

0

500

Tabel 5.9 (a) Tabel 5.9 (b)

Dari sisa sel yang masih bisa terisi (yang tidak terarsir pada tabel 5.9 a), pengiriman dengan

biaya terendah adalah dari distributor – B ke toko – 1 dengan biaya c21 = 2. Jumlah maksimum

barang yang dapat diisikan pada sel ini adalah sebanyak x21 = 200. Dengan pengisian ini maka

distributor – B akan kehabisan barang dan sekaligus toko – 1 sudah terpenuhi permintaannya.

Jika demikian maka nantinya akan terjadi kekurangan variabel basis. Untuk itu ditambahkan

variabel basis semu pada sembarang sel di kolom toko – 1 atau distributor – B. Misal x31 = 0

(lihat tabel 5.9 b) .

Proses dilanjutkan dengan sel terkecil berikutnya yang belum terarsir. Hasil akhir penyelesaian

fisibel awal dengan metode biaya terendah tampak pada tabel 5.9 c. Biaya total pengiriman

adalah sebesar 300 (3) + 200 (2) + 0 (3) + 200 (7) + 400 (8) + 500 (1) = 6400 (ribuan).

Page 192: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

176 Riset Operasi : Suatu Tinjauan Algoritmis

5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

A

B

D

1 32

Toko

Dis

trib

uto

r3 7 8

C 600

200

300

200

500

0 400

Tabel 5.9 (c)

5.2.3 Metode Vogel

Perhitungan penyelesaian awal dengan metode Vogel lebih rumit dibandingkan dengan kedua

metode terdahulu. Akan tetapi biasanya lebih mendekati penyelesaian optimalnya.

Algoritma Vogel untuk menentukan penyelesaian fisibel awal masalah transportasi adalah

sebagai berikut :

1. Pada tiap baris dan kolom, hitunglah selisih 2 sel dengan biaya yang terkecil.

2. Tentukan baris/kolom hasil langkah (1) yang selisihnya terbesar. Jika terdapat lebih dari

1, pilihlah sembarang.

3. Pada baris/kolom yang terpilih, isikan barang semaksimum mungkin pada sel dengan

biaya terkecil. Hapuskan baris/kolom yang dihabiskan karena pengisian tersebut pada

perhitungan berikutnya. Jika baris dan kolom terhapus bersamaan, tambahkan sebuah

variabel dummy

4. Ulangi langkah 1-3 hingga semua permintaan/persediaan habis

Contoh 5.5

Page 193: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 177

Selesaikan contoh 5.2 dengan metode Vogel

Penyelesaian

Pada baris – 1, dua sel yang biayanya terkecil adalah c12 = 3 dan c11 = 5. Selisihnya adalah = 5 –

3 = 2. Pada baris – 2, dua sel yang biayanya terkecil adalah c21 = 2 dan c23 = 4. Selisihnya

adalah = 4 – 2 = 2.

Demikian seterusnya dihitung selisih 2 sel dengan biaya terkecil pada tiap baris dan kolom.

Hasilnya tampak pada tabel 5.10

Baris/Kolom 2 sel dengan biaya terkecil Selisih

Baris – 1 c12 = 3 dan c11 = 5 5 – 3 = 2

Baris - 2 c21 = 2 dan c23 = 4 4 – 2 = 2

Baris – 3 c31 = 3 dan c32 = 7 7 – 3 = 4*

Baris – 4 c42 = 1 dan c43 = 4 4 – 1 = 3

Kolom - 1 c21 = 2 dan c31 = 3 3 – 2 = 1

Kolom – 2 c42 = 1 dan c12 = 3 3 – 1 = 2

Kolom - 3 c23 = 4 dan c43 = 4 4 – 4 = 0

Tabel 5.10

A5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C 600200

Selisih 2 sel dengan

biaya terkecil

2

3

4*

2

Selisih 2 sel dengan

biaya terkecil1 02

Tabel 5.11 (a)

Selisih terbesar (= 4) terjadi pada baris ke – 3. Biaya terkecil pada baris ke – 3 adalah c31 = 3.

Pada sel ini diisikan barang sebanyak-banyaknya yaitu 200 unit. Jadi x31 = 200. Dengan

Page 194: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

178 Riset Operasi : Suatu Tinjauan Algoritmis

pengisian ini maka toko – 1 sudah terpenuhi permintaannya sehingga sel lain pada kolom – 1

tidak diikutkan pada iterasi berikutnya (lihat tabel 5.11 a).

Proses perhitungan selisih 2 sel yang biayanya terkecil dilanjutkan tetapi dengan menghilangkan

kolom – 1 dari perhitungan. Didapat

Baris/Kolom 2 sel dengan biaya terkecil Selisih

Baris – 1 c12 = 3 dan c13 = 6 6 – 3 = 3

Baris – 2 c23 = 4 dan c22 = 9 9 - 4 = 5*

Baris – 3 c32 = 7 dan c33 = 8 8 - 7 = 1

Baris – 4 c42 = 1 dan c43 = 4 4 – 1 = 3

Kolom – 1 tidak dihitung lagi -

Kolom – 2 c42 = 1 dan c12 = 3 (tetap) 3 – 1 = 2

Kolom – 3 c23 = 4 dan c43 = 4 (tetap) 4 – 4 = 0

A5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C 600200

Selisih 2 sel dengan

biaya terkecil

2

3

4*

2

Selisih 2 sel dengan

biaya terkecil1 02

3

3

1

5*

- 02

200

Tabel 5.11 (b)

Selisih terbesar (= 5) terjadi pada baris ke – 2. Biaya terkecil pada baris ke – 3 adalah c23 = 4.

(sebenarnya biaya terkecil adalah c21 = 2. Akan tetapi sel ini sudah tidak boleh diisi lagi). Pada

sel ini diisikan barang sebanyak-banyaknya yaitu 200 unit. Jadi x23 = 200. Dengan pengisian ini

maka distributor – 2 sudah kehabisan barang sehingga sel lain pada baris – 2 tidak boleh diisi lagi

(lihat tabel 5.11 b).

Page 195: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 179

Pada iterasi berikutnya, selisih 2 sel dengan biaya terkecil pada baris 1, 3, dan 4 (baris 2 tidak

boleh diisi lagi) masing-masing adalah 3, 1 dan 3. Selisih pada kolom 2 dan 3 (kolom – 1 tidak

boleh diisi lagi) masing-masing adalah 2 dan 2. Nilai maksimum terjadi pada baris – 1 dan baris

– 4 yang selisihnya = 3. Dipilih sembarang. Misal dipilih baris 4. Maka x42 = 500 dan baris – 4

tidak boleh diisi lagi .

Secara analog, pada iterasi berikutnya selisih terbesar terjadi pada kolom – 2 yang selisihnya = 4.

Maka x12 = 300 (lihat tabel 5.11 (c)).

32

A5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

B

D

1

Toko

Dis

trib

uto

r

3 7 8

C 600200

Selisih 2 sel dengan

biaya terkecil

2

3

4*

2

Selisih 2 sel dengan

biaya terkecil1 02

3

3

1

5*

- 02

200

3

3*

1

-

- 22

500

3003

-

1

-

- 24*

Tabel 5.11 (c)

Karena sekarang sisanya tinggal sel pada satu baris, maka diisikan mulai dari sel yang biayanya

terkecil yaitu x32 = 200 dan x33 = 200 (lihat tabel 5.11 (d)). Biaya total pengirimannya adalah

sebesar 300 (3) + 200 (4) + 200 (3) + 200 (7) + 200 (8) + 500 (1) = 5800 (ribuan).

Page 196: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

180 Riset Operasi : Suatu Tinjauan Algoritmis

32

A5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

B

D

1

Toko

Dis

trib

uto

r

3 7 8

C 600200

Selisih 2 sel dengan

biaya terkecil

2

3

4*

2

Selisih 2 sel dengan

biaya terkecil1 02

3

3

1

5*

- 02

200

3

3*

1

-

- 22

500

3003

-

1

-

- 24*

200 200

Tabel 5.11 (d)

5.3 Pengecekan Optimalitas

Setelah tabel awal transportasi dibuat (dengan sembarang metode), langkah berikutnya adalah

mengecek apakah tabel tersebut sudah optimal. Jika sudah optimal, maka proses dihentikan dan

tabel awal menjadi tabel optimal. Akan tetapi jika belum optimal maka dilakukan perbaikan tabel

untuk meningkatkan optimalitas (langkah-langkah perbaikan tabel dijelaskan pada bab 5.4).

Langkah-langkah pengecekan optimalitas tabel (sering disebut metode u-v) adalah sebagai

berikut :

1. Pada penyelesaian fisibel awal, tambahkanlah kolom ui (i = 1, 2, … , m) dan baris vj (j =

1, 2, … , n)

2. Isi salah satu baris ui atau kolom vj dengan 0 (biasanya baris/kolom yang dipilih adalah

baris/kolom yang memuat variabel basis paling banyak).

Page 197: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 181

3. Isi baris ui dan kolom vj lainnya dengan aturan : untuk setiap sel basis berlakulah

persamaan ui + vj = cij.

4. Isi sel-sel sisanya (bukan basis) dengan kuantitas cij – ui – vj. Jika ada sel dengan nilai cij

– ui – vj < 0 maka berarti tabel tersebut belum optimal.

Contoh 5.6

Ujilah apakah tabel penyelesaian fisibel awal dengan metode Vogel (contoh 5.5) sudah optimal.

Penyelesaian

Perhatikan penyelesaian fisibel awal dengan metode Vogel yang ada pada tabel 5.11 (d). dengan

metode u-v, misalkan diambil u3 = 0 (pada tabel 5.12 a ditandai dengan anak panah kecil

disampingnya). Perhatikan bahwa disini ada 6 variabel basis masing-masing x12, x23, x31, x32, x33

dan x42 yang berturut-turut biayanya adalah 3, 4, 3, 7, 8, dan 1.

Karena x31 merupakan variabel basis maka berlakulah persamaan u3 + v1 = c31. Karena u3 = 0

dan c31 = 3, maka didapat v1 = 3.

32

A5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

B

D

1

Toko

Dis

trib

uto

r

3 7 8

C 600200

0

Vj 3 87

200

500

300

200 200

ui

Tabel 5.12 (a)

Page 198: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

182 Riset Operasi : Suatu Tinjauan Algoritmis

Secara analog, karena x32 basis, maka u3 + v2 = c32. Didapat v2 = 7. Karena x33 basis, maka u3 +

v3 = c33 sehingga v3 = 8 (lihat tabel 5.12 (a))

x12 merupakan variabel basis. Maka berlakulah u1 + v2 = c12. c12 = 3, dan dari langkah

sebelumnya, v2 = 7. Maka u1 = -4. Secara analog, karena x23 basis (dengan c23 = 4) dan v3 = 8,

maka u2 = -4. Karena x42 basis (dengan c42 = 1) dan v2 = 7 maka u4 = -6 (lihat tabel 5.12 (b))

32

A5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

B

D

1

Toko

Dis

trib

uto

r

3 7 8

C 600200

0

Vj 3 87

200

500

300

200 200

ui

- 6

- 4

- 4

Tabel 5.12 (b)

Harus diperhatikan bahwa pengisian nilai-nilai ui dan vj didasarkan pada nilai biaya variabel

basis (baik variabel basis yang sebenarnya maupun variabel basis dummy). Jika pengisian tabel

awalnya benar, maka dapatlah dipastikan bahwa semua nilai-nilai ui dan vj adalah tunggal dan

dapat dihitung.

Selanjutnya, dihitung nilai cij – ui – vj pada sel-sel yang bukan basis (sel yang kosong). Pada sel

x11, c11 – u1 – v1 = 5 – (-4) – 3 = 6. Pada sel x13 = 6 – (-4) – 8 = 2. Pada sel x21, x22, x41 dan x43,

nilai cij – ui – vj masing-masing adalah 3, 6, 9, dan 2. Nilai cij – ui – vj untuk semua sel bukan

basis tampak pada sisi kanan atas sel yang bersangkutan pada tabel 5.12 c. Semua nilai-nilai ini

positip. Maka tabel awal tersebut sudah optimal dengan biaya pengiriman total sebesar 5800.

Page 199: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 183

32

A5 3 6

2 9 4

6 1 4

300

500

200

200 4001000

B

D

1

Toko

Dis

trib

uto

r

3 7 8

C 600200

0

Vj 3 87

200

500

300

200 200

ui

- 6

- 4

- 46 2

29

63

Tabel 5.12 c

5.4 Merevisi Tabel

Tabel optimal jika untuk setiap sel bukan basis, nilai cij – ui – vj 0. Jika ada salah satu sel saja

yang nilai cij – ui – vj negatif, maka tabel tidak optimal dan perlu ditingkatkan optimalitasnya.

Untuk merevisi tabel, digunakan loop, yaitu barisan sel basis dengan sifat :

1. Setiap pasangan sel yang berurutan teretak pada baris/kolom yang sama

2. Tidak ada 3 (atau lebih) sel berurutan yang terletak pada baris/kolom yang sama

3. Sel pertama dan terakhir barisan terletak pada baris/kolom yang sama

4. Tidak ada sel yang muncul lebih dari satu kali dalam barisan

Algoritma untuk merevisi tabel adalah sebagai berikut :

1. Pilih variabel bukan basis (sel kosong) dengan nilai cij – ui – vj < 0 yang paling minimum.

2. Isi sel tersebut dengan kuantitas sebanyak mungkin

Page 200: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

184 Riset Operasi : Suatu Tinjauan Algoritmis

3. Sesuaikan kuantitas xij pada sel-sel lain dalam loop

4. Cek apakah penyelesaian baru sudah optimal. Jika belumlakukan kembali langkah 1-4.

Contoh 5.7

Carilah penyelesaian optimal contoh 5.2 dengan metode barat laut sebagai penyelesaian fisibel

awalnya.

Penyelesaian

Penyelesaian fisibel awal dengan metode barat laut tampak dalam tabel 5.6 c. Langkah pertama

adalah mengecek apakah tabel 5.6 c merupakan tabel optimal. Dengan menggunakan cara seperti

dalam bab 5.3 (dengan mengambil v2 = 0), maka akan didapatkan nilai u1 = 3, u2 = 9, u3 = 7, u4 =

1, v1 = 2 dan v3 = 3 (lihat tabel 5.13 a). Berikutnya nilai cij – ui – vj untuk variabel bukan basis

tampak pada sisi kanan atas sel dalam tabel 5.13 b.

5 3 6

2 9 4

6 1 4

3

1

9

2 30

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C 7

200 100

200

100

600

400

ui

vj

0

3

- 2- 6

- 8- 9

5 3 6

2 9 4

6 1 4

3

1

9

2 30

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C 7

200 100

200

100

600

400

ui

vj

Tabel 5.13 a Tabel 5.13 b

Nilai negatif pada kuantitas kij = cij – ui – vj menunjukkan bahwa jika sel tersebut diisi dengan

sebuah barang, maka biaya total transportasi akan menurun sebesar kij. Sebagai contoh jika x23

diisi dengan 1 barang maka biaya transportasi akan turun sebesar 8. Untuk mempercepat revisi

Page 201: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 185

tabel maka dipilih sel dengan nilai kij terkecil dan pada sel tersebut diisi dengan kuantitas

sebanyak-banyaknya. Dengan demikian maka total biaya transportasi akan turun sebesar kij .cij.

Dalam tabel 5.13 b, sel dengan cij – ui – vj terkecil adalah sel x21. Untuk mencari loop yang

berhubungan dengan sel x21, maka dicari sel-sel basis yang berhubungan sambung menyambung

secara vertikal/horisontal (tidak boleh diagonal) dengan sel x21. Dengan sedikit pengamatan,

maka didapatkan loop x21 – x22 – x12 – x11 – x21.

Jika sel x21 diisi dengan suatu kuantitas sebesar q, maka, nilai x22 harus berkurang sebesar q

juga. Hal ini dilakukan agar jumlah barang yang dikirim dari distributor – B tetap sebesar 200.

Jika x22 berkurang sebesar q, maka x12 harus bertambah sebesar q (agar kebutuhan toko – 2 tetap

1000). Selanjutnya jika x12 berkurang sebesar q maka x11 harus bertambah sebesar q. Hal ini

dapat dilihat pada tabel 5.13 c. Tanda (+) dalam suatu sel menunjukkan bahwa sel tersebut harus

ditambah dengan suatu kuantitas, dan sebaliknya, tanda (-) menunjukkan bahwa kuantitas sel

tersebut harus dikurangi.

5 3 6

2 9 4

6 1 4

3

1

9

2 30

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C 7

200 100

200

100

600

400

ui

vj

+ -

+-

Tabel 5.13 c

Perhatikan loop pada sel-sel yang dihubungkan dengan garis patah-patah pada tabel 5.13 c. Nilai

xij terkecil pada sel yang bertanda (-) menunjukkan nilai maksimum q yang bisa diisikan pada sel

x21. Jadi x21 = 200. Jika x21 diisi dengan kuantitas > 200 maka x11 dan x22 akan bernilai negatif.

Page 202: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

186 Riset Operasi : Suatu Tinjauan Algoritmis

Dengan mengisi x21 = 200 maka x22 = 200 – 200 = 0 (menjadi bukan sel basis), x12 = 100 + 200

= 300, dan x11 = 200 – 200 = 0 (menjadi bukan sel basis). Dengan kata lain, dengan membuat x21

menjadi basis (dengan nilai 200) akan menyebabkan 2 sel lain yaitu x22 dan x11 menjadi sel

bukan basis. Jika demikian maka akan terjadi degeneracy (kekurangan sel basis). Untuk

menghindari hal tersebut, cukup salah satu dari sel x22 atau x11 saja yang dijadikan sel bukan

basis. Misalkan dipilih x22 yang bukan basis (lihat tabel 5.14).

5 3 6

2 9 4

6 1 4

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C

200

3000

100

600

400

Tabel 5.14

Perhatikan bahwa dengan revisi ini, jumlah setiap baris dan setiap kolom tidak berubah

dibandingkan dengan tabel sebelumnya. Perhatikan pula perbedaan sel x11 dengan sel bukan

basis. Meskipun artinya sama-sama tidak mengirimkan barang, tetapi sel x11 merupakan sel basis

(yang berharga 0). Ini akan terasa manfaatnya sewaktu melakukan iterasi berikutnya.

Dengan perbaikan ini, maka total biaya pengiriman akan turun sebesar x21 . c21 = 200 (2) = 400.

Langkah berikutnya adalah mengecek apakah tabel 5.14 sudah optimal. Dengan mengambil v2 =

0 akan didapat harga-harga ui, vj dan kuantitas cij – ui – vj seperti tampak pada tabel 5.15 a.

Tampak bahwa masih ada beberapa sel dengan cij – ui – vj yang bernilai negatif. Ini berarti tabel

belum optimal. Sel dengan harga cij – ui – vj terkecil adalah x31. Sel x31 akan diisi dengan

kuantitas sebanyak-banyaknya.

Page 203: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 187

5 3 6

2 9 4

6 1 4

A

B

D

1 32

TokoD

istr

ibu

tor

3 7 8

C

200

3000

100

600

400

2

30

3

- 2- 6

19

0

7

1

ui

vj 30

5 3 6

2 9 4

6 1 4

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C

200

3000

100

600

400

2

30

3

- 2- 6

19

0

7

1

ui

vj 30

+ -

+-

Tabel 5.15 a Tabel 5.15 b

5 3 6

2 9 4

6 1 4

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C

200

300

0

100

600

400

Tabel 5.16

Loop yang sesuai dengan x31 adalah x31 – x32 – x12 – x11 – x31 yang ditandai dengan garis patah-

patah pada gambar 5.15 b. Tanda (-) terkecil pada loop adalah x11 = 0. Maka semua sel bertanda

(+) ditambah dengan 0 dan sebaliknya semua sel bertanda (-) dalam loop akan dikurangi dengan

0. Hasilnya tampak pada tabel 5.16. Perhatikan disini bahwa meskipun biaya totalnya tidak

berubah, tetapi terjadi perubahan basis. Variabel basis yang berharga 0 berpindah tempat dari x11

ke x31.

Page 204: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

188 Riset Operasi : Suatu Tinjauan Algoritmis

5 3 6

2 9 4

6 1 4

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C

200

300

0

100

600

400

- 4

30

9

- 2

6

- 53

6

7

1

ui

vj 30

+-

+ -

-+

5 3 6

2 9 4

6 1 4

A

B

D

1 32

TokoD

istr

ibu

tor

3 7 8

C

200

300

0

100

600

400

- 4

30

9

- 2

6

- 53

6

7

1

ui

vj 30

Tabel 5.17 a Tabel 5.17 b

Hasil pengujian tabel 5.16 tampak dalam tabel 5.17 a. Karena belum optimal, maka perubahan

basis dilakukan dengan mengisi sel x23 sebesar 200 unit barang sesuai dengan loop x23 – x21 –

x31 – x32 – x42 – x43 – x23 (lihat tabel 5.17 b). Hasil revisi tampak pada tabel 5.18 a. Tabel 5.18 b

menunjukkan hasil pengujian optimalitas tabel 5.18 a dengan mengambil v2 = 0. Ternyata tabel

5.18 b juga belum optimal dan sel x33 perlu diisi dengan kuantitas sebesar 200 unit barang sesuai

dengan loop x33 – x32 – x42 – x43 – x33.

5 3 6

2 9 4

6 1 4

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C

200

300

200

300

400

200

5 3 6

2 9 4

6 1 4

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C

200

300

200

300

400

200

- 4

30

9

- 2

6

5 8

1

7

1

ui

vj 30

+-

-+

Tabel 5.18 a Tabel 5.18 b

Page 205: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 189

Hasil revisi tabel 5.18 b tampak pada tabel 5.19. Perhatikan bahwa tabel 5.19 sama dengan tabel

penyelesaian awal dengan metode Vogel (tabel 5.12 c) yang merupakan penyelesaian optimal

masalah transportasi.

5 3 6

2 9 4

6 1 4

A

B

D

1 32

Toko

Dis

trib

uto

r

3 7 8

C

200

300

200

500

200 200

Tabel 5.19

5.5 Kasus-Kasus Masalah Transportasi

5.5.1 Masalah Transportasi Tidak Seimbang

Kadang-kadang terjadi keadaan dimana jumlah persediaan tidak sama dengan jumlah

permintaan. Dalam penyelesaian optimalnya pasti ada permintaan yang tidak terpenuhi (jika

jumlah permintaan lebih besar dari jumlah persediaan) atau persediaan yang tidak terkirim (jika

jumlah persediaan lebih besar dari jumlah permintaan).

Pada kasus yang tidak seimbang, sebelum membuat penyelesaian fisibel awal, tabel transportasi

terlebih dahulu diseimbangkan dengan cara menambah sebuah sumber/tujuan semu (tergantung

mana yang jumlah barangnya lebih sedikit). Besarnya persediaan/permintaan sumber/tujuan

semu merupakan selisih antara jumlah persediaan dan jumlah permintaan mula-mula. Setelah

tabel menjadi seimbang, langkah berikutnya adalah menyelesaikan masalah transportasi dengan

cara seperti pada bab 5.2 – 5.4.

Page 206: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

190 Riset Operasi : Suatu Tinjauan Algoritmis

Contoh 5.8

Sebuah perusahaan persewaan mobil menghadapi masalah dalam hal mengalokasikan mobil

untuk memenuhi permintaan langganan. Ada 2 garasi tempat menyimpan mobil yang hendak

disewa (semua mobil bertipe sama), yang masing-masing mampu menampung 15 dan 13 mobil.

Ada 4 penyewa yang masing-masing membutuhkan 9, 6, 7, dan 9 buah mobil. Biaya perjalanan

mobil (ribuan rupiah) dari garasi ke tempat penyewa tampak pada tabel 5.20. Buatlah alokasi

pengiriman mobil yang akan meminimumkan total biaya pengiriman ! Gunakan metode biaya

terendah sebagai penyelesaian awalnya.

Tujuan

Garasi 1 2 3 4

A 45 17 21 30

B 14 18 19 31

Tabel 5.20

Penyelesaian

Total mobil yang ada = 15 + 13 = 28 buah, sedangkan total permintaan mobil = 9 + 6 + 7 + 9 =

31. Jadi jumlah permintaan > jumlah persediaan. Untuk menyeimbangkan tabel, ditambahkan

sebuah persediaan semu (garasi C) yang memiliki persediaan 31 – 28 = 3 buah mobil.

45 17 21

14 18 19

30

31

0

15

13

9 76

A

B

1 32

Tujuan

Ga

rasi

Persediaan

Permintaan

0 0 0

C 3

4

9

Tabel 5.21 a

Page 207: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 191

Biaya pengiriman dari garasi semu ke semua tujuan = 0 (karena memang tidak ada mobil yang

dikirimkan). Tabel 5.21 a menunjukkan tabel awal transportasi.

Dengan metode biaya terendah, mula-mula dicari sel dengan biaya terendah. Ada 4 sel dengan

biaya = 0 masing-masing x31, x32, x33, dan x34. Pilih salah satunya secara sembarang, misal x31.

Maksimum mobil yang bisa dialokasikan di sel x31 adalah sebanyak 3 mobil (persediaan garasi –

C dihabiskan).

Setelah menghapus garasi – C, sel dengan biaya terendah berikutnya adalah x21 dengan biaya =

c21 = 14. Maksimum mobil yang bisa dialokasikan di sel ini adalah 6 mobil. Dengan alokasi ini,

tujuan – 1 sudah terpenuhi dan dihapuskan dari perhitungan berikutnya.

Sel yang berikutnya diisi adalah x12 = 6, kemudian x23 = 7. Pada waktu mengisi x23, maka

sekaligus garasi – B dihabiskan dan tujuan – 3 terpenuhi. Ini akan menyebabkan kurangnya

variabel basis. Untuk mengatasi, maka ditambahkan sebuah variabel basis semu bernilai 0 di x24 .

Sel terakhir yang diisi adalah x14 = 9.

Tabel 5.21 b menunjukkan hasil penyelesaian awal dengan metode biaya terendah.

45 17 21

14 18 19

30

31

0

15

13

9 76

A

B

1 32

Tujuan

Ga

rasi

Persediaan

Permintaan

0 0 0

C 3

4

9

0

3

6

96

7

Tabel 5.21 b

Langkah berikutnya adalah menguji apakah tabel fisibel awal (tabel 5.21 b) sudah optimal. Hasil

pengujian dengan metode u – v (dengan mengambil u2 = 0) tampak pada tabel 5.22 a. Ternyata

tabel belum optimal. Sel yang harus diisi adalah sel x34 sesuai dengan loop x34 – x31 – x21 – x24 –

x34 sebesar 0 unit.

Page 208: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

192 Riset Operasi : Suatu Tinjauan Algoritmis

45 17 21

14 18 19

30

31

0

- 1

0

14 1918

A

B

1 32

Tujuan

Ga

rasi

ui

0 0 0

C - 14

4

31

0

3

6

96

7

vj

+

-

-

+

332

- 4 - 5 -17

0

Tabel 5.22 a

Hasil revisi tabel dan sekaligus pengujian optimalitas berikutnya tampak pada tabel 5.22 b. Tabel

5.22 b juga belum optimal. Sel x13 harus diisi dengan kuantitas sebesar 3 unit sesuai dengan loop

x13 – x14 – x34 – x31 – x21 – x23 – x13. Hasilnya tampak pada tabel 5.22 c.

45 17 21

14 18 19

30

31

0

16

0

14 191

A

B

1 32

Tujuan

Ga

rasi

ui

0 0 0

C - 14

4

14

03

6

96

7

vj

+

-

-

+

-1415

13 - 5

1717

+ -

Tabel 5.22 b

Pengujian menunjukkan bahwa tabel 5.22 c (dengan mengambil u1 = 0) sudah optimal. Jadi

didapatkan penyelesaian optimal x12 = 6, x13 = 3, x14 = 6, x21 = 9, x23 = 4 dan x34 = 3.

Page 209: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 193

Karena garasi – C merupakan sumber semu, maka pada titik minimumnya, permintaan dari

tujuan ke-4 tidak dapat terpenuhi sebesar 3 mobil. Biaya minimumnya = 6 (17) + 3 (21) + 6 (30)

+ 9 (14) + 4 (19) = 547 (ribuan) (lihat tabel 5.22 d)

45 17 21

14 18 19

30

31

0

0

-2

16 2117

A

B

1 32

TujuanG

ara

si

ui

0 0 0

C -30

4

30

3

3

9

66

4

vj

14

29

13 9

33

Tabel 5.22 c

45 17 21

14 18 19

30

31

15

13

9 76

A

B

1 32

Tujuan

Ga

rasi

Persediaan

Permintaan

4

9

6

9

63

4

Tabel 5.22 d

5.5.2 Ada Jalan Rusak

Misalkan pada suatu masalah transportasi, ada jalur dari sumber – i ke tujuan – j yang tidak dapat

dilalui sama sekali. Ini berarti bahwa dalam penyelesaian optimalnya, xij harus merupakan

variabel bukan basis (yang berarti bahwa tidak ada barang yang dikirim dari sumber – i ke tujuan

– j). Untuk menjamin agar hal ini terjadi, maka biaya transportasi dari sumber – i ke tujuan – j

dibuat tak berhingga.

Page 210: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

194 Riset Operasi : Suatu Tinjauan Algoritmis

Contoh 5.9

Sebuah perusahaan lokal membuat produknya di 3 cabang (A, B, C) untuk dijual ke 4 toko

berbeda (1, 2, 3, 4). Biaya pengiriman 1 unit produk dari cabang-i ke toko-j tampak dalam tabel

5.23

TOKO

CABANG 1 2 3 4

A 18 - 4 5

B 3 9 4 1

C 6 2 - 4

Tabel 5.23

Permintaan masing-masing toko adalah 220, 240, 125 dan 200. Kapasitas produksi tiap-tiap

cabang adalah 360, 120, dan 400. Toko-2 tidak mau menerima produk dari cabang A, dan

toko-3 tidak mau menerima produk dari cabang C. Selesaikan masalah transportasi tersebut

dengan menggunakan metode Vogel sebagai penyelesaian awalnya !

Penyelesaian

Total barang yang diproduksi di ketiga cabang adalah 360 + 120 + 400 = 880 unit, sedangkan

total permintaan di 4 toko adalah 220 + 240 + 125 + 200 = 785 unit. Ini berarti terdapat

kekurangan permintaan barang sebesar 880 – 785 = 95 unit. Agar seimbang, terlebih dahulu

dibuat sebuah toko semu (toko – 5) yang membutuhkan barang sebesar 95 unit. Biaya

pengiriman dari semua cabang ke toko – 5 = 0.

Karena toko – 2 tidak mau menerima barang dari cabang – A dan toko – 3 tidak mau menerima

barang dari cabang C, maka c12 = c33 = M (M adalah suatu bilangan positif sangat besar) (lihat

tabel 5.24 a).

Page 211: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 195

18 M 4

3 9 4

5

1

4

360

120

220 125240

A

B

1 32

Toko

Ca

ba

ng

Persediaan

Permintaan

6 2 M

C 400

4

200

0

0

0

5*

95

Tabel 5.24 a

Hasil pengisian penyelesaian fisibel awal dengan metode Vogel tampak pada tabel 5.24 b

(algoritma dapat dilihat kembali pada bab 5.2.3). Selisih minimum pada iterasi – 1 terjadi pada

kolom-2 sebesar 7. Pada kolom-2 ini, biaya terendah adalah c32, sehingga diambil x32 = 240 unit

dan kolom-2 dihapuskan dari iterasi berikutnya.

18 M 4

3 9 4

5

1

4

4

1

3 07*

A

B

1 32

Toko

Ca

ban

g

Selisih 2 kolom dgn

biaya terendah

6 2 M

C 2

4

3

0

0

0

5*

0

Se

lisih

2 b

aris d

eng

an

bia

ya

te

ren

da

h

60

240160

9580125

120

4*

1

4

1

2

2

13*

-

2

1

-

2

3 0- 3 0

3 0- 3* -

12 M-4*- 1 -

12 -- 1 -

Tabel 5.24 b

Page 212: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

196 Riset Operasi : Suatu Tinjauan Algoritmis

Pada iterasi-2, ada 2 selisih terbesar yang sama-sama bernilai 4 yaitu pada baris-1 dan baris 3.

Pilih salah satunya secara sembarang, misal pada baris-1. x15 = 95, dan kolom-5 dihapuskan dari

iterasi berikutnya. Pilihan sembarang juga terjadi pada iterasi-3, yaitu pada kolom-1 dan kolom-4

yang keduanya memiliki selisih terbesar yaitu = 3. Misalkan dipilih kolom – 4. Didapatkan x24 =

120 dan kolom-4 dihapuskan dari iterasi berikutnya.

Iterasi berikutnya berturut-turut menghasilkan x13 = 125 (ingat bahwa M adalah bilangan positip

yang sangat besar), x14 = 80. Karena yang tersisa tinggal kolom-1, maka diisikan x31 = 160 dan

x11 = 60.

Tabel 5.24 c menunjukkan pengujian optimalitas tabel 5.24 b dengan mengambil u1 = 0. Tampak

bahwa tabel belum optimal dan x21 harus diisi dengan 60 unit sesuai dengan loop x21 – x24 – x14 –

x11.

18 M 4

3 9 4

5

1

4

0

-4

18 414

A

B

1 32

Toko

Ca

ba

ng

ui

6 2 M

C -12

4

5

0

0

0

5*

0

60

240160

9580125

120

vj

M-14

-11

M+8

44-1

1211

Tabel 5.24 c

Tabel 5.24 d adalah revisi tabel 5.24 c dan hasil pengujian optimalitasnya dengan mengambil u1

= 0. Tampak bahwa tabel 5.24 d sudah optimal. Jika dikembalikan ke soal aslinya, maka kolom-

5 dihapus (lihat tabel 5.24 e) dan permintaan toko –1 tidak dapat dipenuhi 95 unit. Biaya

minimum = 125 (4) + 140 (5) + 60 (3) + 60 (1) + 160 (6) + 240 (2) = 2880

Page 213: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 197

18 M 4

3 9 4

5

1

4

0

-4

7 43

A

B

1 32

Toko

Ca

ba

ng

ui

6 2 M

C -1

4

5

0

0

0

5*

0

60

240160

95140125

60

vj

M-311

M-3

4410

10

Tabel 5.24 d

18 M 4

3 9 4

5

1

4

360

120

220 125240

A

B

1 32

Toko

Ca

ba

ng

Persediaan

Permintaan

6 2 M

C 400

4

200

60

140125

240160

60

Tabel 5.24 e

Perhatikan bahwa dengan pengisian c12 = c33 = M, maka x12 dan x33 dalam setiap iterasi pasti

bukan merupakan variabel basis.

5.5.3 Alternatif Penyelesaian

Perhatikan sel x34 pada tabel 5.24 d yang merupakan tabel optimal. Pada sel x34, nilai c34 – u3 –

v4 = 0. Artinya, jika sel x34 dijadikan basis (diisi dengan suatu kuantitas), maka penurunan biaya

transportasi = 0 (berarti tidak terjadi penurunan). Tabel 5.25 merupakan revisi tabel optimal 5.24

d dengan “memaksa” x34 menjadi basis yang nilainya 60 sesuai dengan loop x34 – x31 – x21 – x24

– x34.

Page 214: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

198 Riset Operasi : Suatu Tinjauan Algoritmis

Tampak bahwa tabel 5.25 pun merupakan penyelesaian optimal juga dengan biaya minimum

yang sama (= 2880). Nilai c24 – u2 – v4 = 0. Jika dipaksakan diisi, maka akan kembali

menghasilkan tabel 5.24 d.

Jadi jika dalam tabel transportasi optimal, ada sel bukan basis dengan nilai cij – ui – vj = 0,

berarti masalah tersebut memiliki alternatif penyelesaian. Alternatif penyelesaiannya diperoleh

dengan cara “memaksa” sel xij menjadi basis.

18 M 4

3 9 4

5

1

4

0

-4

7 43

A

B

1 32

Toko

Ca

ba

ng

ui

6 2 M

C -1

4

5

0

0

0

5*

0

120

240100

95140125

60

vj

M-311

M-3

4410

1

0

Tabel 5.25

5.5.4 Penalti Terhadap Permintaan Yang Tidak Terpenuhi

Tabel optimal 5.22 c dan 5.24 d merupakan tabel optimal masalah yang tidak seimbang. Pada

penyelesaian optimal itu terjadi kekurangan permintaan atau kelebihan persediaan. Akan tetapi

kekurangan permintaan tidak berpengaruh terhadap biaya transportasi karena tidak ada denda

akibat barang yang diminta tidak terpenuhi. Apabila tidak terpenuhinya permintaan dikaitkan

dengan suatu denda yang besarnya sebanding dengan jumlah barang yang tidak dikirim, maka

denda yang dikenakan dapat dinyatakan sebagai biaya pengiriman. Dengan demikian seolah-

olah ada biaya pengiriman (yang sebenarnya denda) bagi barang yang tidak terkirim.

Contoh 5.10

Page 215: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 199

Selesaikan masalah transportasi yang terdiri dari 3 sumber dan 3 tujuan yang tampak pada tabel

5.25 berikut ini, jika kerugian per unit barang akibat tidak dipenuhinya permintaan tujuan 1, 2,

dan 3 masing-masing adalah 5, 3 dan 2 !

5 1 7 10

6 4 6 80

3 2 5 15

75 20 50

Tabel 5.25

Penyelesaian

Jumlah persediaan = 10 + 80 + 15 = 105, sedangkan jumlah permintaan adalah sebesar = 75

+ 20 + 50 = 145. Maka ditambahkan sumber semu (sumber – 4) yang memiliki 145 – 105 = 40

unit barang.

5 1 7

6 4 6

5 3 2

10

40

80

75 5020

1

2

4*

1 32

Tujuan

Su

mb

er

3 2 5

3 15

Tabel 5.26 a

Pada penyelesaian optimalnya, sel semu (baris – 4) yang merupakan variabel basis menunjukkan

adanya barang yang tidak terkirim. Karena ada kerugian akibat tidak terkirimnya barang, maka

kerugian tersebut dinyatakan dalam biaya pengiriman. Jadi c41 = 5, c42 = 3 dan c43 = 2 (lihat

tabel 5.26 a).

Page 216: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

200 Riset Operasi : Suatu Tinjauan Algoritmis

Langkah berikutnya adalah menyelesaikan masalah transportasi tersebut dengan cara yang sudah

dibahas pada sub bab sebelumnya. Misalkan digunakan metode biaya terendah untuk membuat

penyelesaian fisibel awalnya, maka berturut-turut diisikan sel x12 = 10, x32 = 10 (dipilih

sembarang antara x32 atau x43), x43 = 40, x31 = 5, x21 = 70 dan x23 = 10 (lihat tabel 5.26 b)

5 1 7

6 4 6

5 3 2

10

40

80

75 5020

1

2

4*

1 32

Tujuan

Su

mb

er

3 2 5

3 15

10

5

1070

10

40

5 1 7

6 4 6

5 3 2

- 4

- 4

0

6 65

1

2

4*

1 32

Tujuan

Su

mb

er

3 2 5

3 - 3

10

5

1070

10

40

+

-

-

+

ui

vj

5

-1

2

3

23

Tabel 5.26 b Tabel 5.26 c

Tabel 5.26 c menunjukkan hasil pengujian optimalitas tabel 5.26 b (dengan mengambil u2 = 0).

5 1 7

6 4 6

5 3 2

- 3

- 4

0

6 64

1

2

4*

1 32

Tujuan

Su

mb

er

3 2 5

3 - 3

10

15

1060 10

40

ui

vj

2 4

1

33

2

Tabel 5.26 d

Page 217: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 201

Tampak bahwa tabel 5.26 c belum optimal dan sel x22 harus diisi sebesar 10 unit sesuai dengan

loop x22 – x21 – x31 – x32 – x22. Diperoleh tabel 5.26 d. Pengujian tabel 5.26 d menunjukkan

bahwa tabel tersebut sudah optimal. Tujuan –3 tidak terpenuhi sebesar 40 unit. Biaya pengiriman

dan kerugian sebesar = 10 (1) + 60 (6) + 10 (4) + 10 (6) + 15 (3) + 40 (2) = 595.

5.5.5 Soal Memaksimumkan

Algoritma penyelesaian masalah transportasi yang dibahas dalam sub bab terdahulu memiliki

tujuan meminimumkan total biaya. Kadang-kadang besaran cij dalam tabel transportasi

menyatakan sesuatu yang harus dimaksimumkan (misalnya keuntungan). Untuk itu ada 2 cara

penyelesaian yang bisa dilakukan.

1. Mengubah soal yang memaksimumkan menjadi soal meminimumkan. Caranya ialah dengan

mengambil cij’ = - cij atau cij’ = 1/cij. Langkah berikutnya adalah menyelesaikannya dengan

cara seperti yang dibahas pada bab sebelumnya.

2. Mengubah algoritma

Mengubah penyelesaian fisibel awal. Dengan metode barat laut, tidak ada perubahan

yang dilakukan. Dengan metode biaya terendah, pengisian dilakukan dari sel yang

biayanya tertinggi. Dengan metode Vogel (lihat bab 5.2.3), langkah – 1 diubah menjadi

selisih 2 sel dengan biaya terbesar. Pada langkah – 3 kuantitas diisikan pada sel yang

memiliki biaya terbesar.

Pengecekan optimalitas. Dalam kasus memaksimumkan, tabel optimal jika untuk semua

sel cij – ui – vj 0 (kebalikan dari soal meminimumkan). Jika tabel belum optimal,

pengisian kuantitas dilakukan pada sel yang memiliki nilai cij – ui – vj > 0 yang terbesar.

Cara pertama lebih sederhana dan mudah (terutama jika dikerjakan dengan program komputer)

karena tidak mengubah algoritma sama sekali.

Page 218: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

202 Riset Operasi : Suatu Tinjauan Algoritmis

Contoh 5.11

Sebuah perusahaan mempunyai 3 pabrik yang membuat produk yang sama, serta 5 agen yang

akan menerima produk tersebut. Biaya produksi berbeda untuk tiap pabrik, dan harga jual ke tiap

agen juga berbeda-beda. Carilah pengaturan produksi dan distribusi yang paling menguntungkan

bagi perusahaan tersebut, jika diketahui data dalam tabel 5.27

Agen Biaya Kapasitas

Pabrik 1 2 3 4 5 Produksi

1 3 1 5 7 4 20 150

2 9 7 8 3 6 22 200

3 4 5 3 2 7 18 125

Harga Jual 30 32 31 34 29

Permintaan 80 100 75 45 125

Tabel 5.27

Penyelesaian

Untuk menentukan biaya distribusi yang paling menguntungkan, haruslah dihitung keuntungan

yang dihasilkan dari pengiriman produk.

Keuntungan = harga jual – biaya produksi – biaya transportasi

Sebagai contoh, pengiriman 1 unit barang dari pabrik – 1 ke agen –1 akan memberikan

keuntungan sebesar = 30 – 20 – 3 = 7. Dari pabrik – 2 ke agen – 1 menghasilkan keuntungan

sebesar = 30 – 22 – 9 = -1 (rugi). Tabel 5.28 a menunjukkan keuntungan yang diperoleh

dengan mengirimkan barang dari pabrik ke agen. Tampak bahwa tabel belumlah seimbang

karena jumlah persediaan adalah 80 + 100 + 75 + 45 + 125 = 425 unit sedangkan jumlah

persediaan sebesar 150 + 200 + 125 = 475 unit. Untuk itu perlu ditambahkan agen semu yang

membutuhkan barang sebesar 50 unit. Besarnya keuntungan pengiriman barang ke agen semu

adalah 0.

Page 219: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 203

Pa

bri

k7 11 6

-1 3 1

7

9

14

150

200

80 75100

1

2

1 32

Agen

Persediaan

Permintaan

8 9 10

3 125

4

45

5

1

4

5

125

0

0

0

6

50

Tabel 5.28 a

Tabel tersebut harus dimaksimumkan. Untuk itu, tabel 5.28 a terlebih dahulu dijadikan tabel

kerugian (yang harus diminimumkan) dengan cara mengambil negatif dari keuntungan. Hasil

pengisian penyelesaian fisibel awal dengan metode biaya terendah menghasilkan tabel 5.28 b.

Pa

bri

k

-7 -11 -6

1 -3 -1

-7

-9

-14

150

200

80 75100

1

2

1 32

Agen

Persediaan

Permintaan

-8 -9 -10

3 125

4

45

-5

-1

-4

5

125

0

0

0

6

50

50

4575

100

5

25 50125

Tabel 5.28 b

Tabel 5.28 c menunjukkan hasil pengujian optimalitas tabel 5.28 b dengan mengambil v1 = 0.

Tampak bahwa tabel belum optimal dan sel x24 harus diisi dengan kuantitas sebesar 25 unit

sesuai dengan loop x24 – x34 – x31 – x21 – x24

Page 220: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

204 Riset Operasi : Suatu Tinjauan Algoritmis

Pa

bri

k-7 -11 -6

1 -3 -1

-7

-9

-14

-7

1

0 -2-4

1

2

1 32

Agen

ui

-8 -9 -10

3 -8

4

-6

-5

-1

-4

5

-2

0

0

0

6

-1

50

4575

100

5

25 50125+

-

-

+

vj

3 6

963

-400

84

Tabel 5.28 c

Tabel 5.28 d merupakan revisi dari tabel 5.28 c dan sekaligus pengecekan optimalitasnya.

Tampak bahwa tabel 5.28 d sudah optimal dengan keuntungan maksimum = 50 (7) + 30 (8) +

100 (11) + 75 (10) + 25 (9) + 20 (14) + 125 (1) = 3070. Pabrik – 2 memiliki sisa 50 unit barang.

Pa

bri

k

-7 -11 -6

1 -3 -1

-7

-9

-14

-7

-3

0 -2-4

1

2

1 32

Agen

ui

-8 -9 -10

3 -8

4

-6

-5

-1

-4

5

2

0

0

0

6

3

50

2075

100

30

25 50125

vj

3 6

523

4 44

40

Tabel 5.28 d

Perhatikan bahwa dalam tabel optimal 5.28 d, c15 – u1 – v5 = 0 sehingga tabel memiliki

alternatif penyelesaian dengan cara mengisi sel x15 dengan kuantitas sebesar 20 unit sesuai

dengan loop x15 – x25 – x24 – x34 – x31 – x11 – x15.

Page 221: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 205

Contoh 5.12

Selesaikan contoh 5.11 tanpa harus mengubah soal menjadi masalah meminimumkan terlebih

dahulu. Gunakan metode Biaya Terendah dan Vogel sebagai penyelesaian awalnya !

Penyelesaian

Dengan metode biaya terendah

Tabel awal transportasi tampak pada tabel 5.28 a. Untuk membuat penyelesaian fisibel awal

dengan metode biaya terendah, pengisian dimulai dari sel yang keuntungannya maksimum yaitu

sel x34 = 45. Berikutnya berturut-turut diisikan x12 = 100, x33 = 75, x31 = 5, x11 = 50, x25 = 125,

x26 = 50 dan x21 = 25. Tabel 5.29 menunjukkan hasil pengisian tabel 5.28 a dengan metode biaya

terendah dan sekaligus pengujian optimalitasnya. Ternyata tabel 5.29 belum optimal karena

masih ada sel x24 dengan c24 – u2 – v4 > 0.

Pabrik

7 11 6

-1 3 1

7

9

14

7

-1

0 24

1

2

1 32

Agen

ui

8 9 10

3 8

4

6

5

1

4

5

2

0

0

0

6

1

50

4575

100

5

25 50125+

-

-

+

vj

-3 -6

-9-6-3

400

-8-4

150

200

Persediaan

125

Permintaan 80 75100 45 125 50

Tabel 5.29

Tampak bahwa pengisian tabel dengan cara langsung (tabel 5.29) memberikan hasil yang sama

dengan pengisian tabel dengan cara meminimumkan fungsinya terlebih dahulu (tabel 5.28 b). Ini

berarti revisi tabel maupun tabel optimalnya juga akan sama.

Page 222: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

206 Riset Operasi : Suatu Tinjauan Algoritmis

Dengan metode Vogel

Selisih 2 baris dan kolom dengan keuntungan terbesar tampak pada tabel 5.30 a. Sebagai contoh,

pada baris pertama, dua sel dengan keuntungan terbesar masing-masing adalah c12 = 11 dan c11 =

7. Selisihnya = 11 – 7 = 4. Selisih yang diberi tanda (*) menunjukkan selisih yang terpilih.

Sebagai contoh, pada perhitungan selisih yang pertama, selisih terbesar terjadi pada baris – 2

(selisih = 6). Kuantitas sebanyak-banyaknya diisikan pada sel di baris – 2 yang memiliki

keuntungan terbesar, yaitu x24 = 45. Demikian seterusnya.

Pab

rik

7 11 6

-1 3 1

7

9

14

4

1

1

2

1 32Agen Selisih 2 elemen dgn

keuntungan maks

8 9 10

3

4

5

1

4

5

0

0

0

6

30 20

75

100

50

45 50105

150

200

Perse-

diaan

125

Permin

taan80 75100 45 125 50

6*

4

4*

2

1

1

0

2

2

1

4*

2

1

-

5*

1

-

Se

lisih

2 4 015

1 2 4 01-

1 - 4* 01-

1 - - 01-

8* - - 04-

- - - 04-

Tabel 5.30 a

Tabel 5.30 b menunjukkan uji optimalitas tabel 5.30 a dengan mengambil u2 = 0. Tampak bahwa

tabel sudah optimal dengan keuntungan maksimum = 30 (7) + 50 (8) + 100 (11) + 75 (10) + 45

(9) + 20 (5) + 105 (1) + 50 (0) = 3070.

Tampaknya penyelesaian optimal tabel 5.30 b berbeda dengan tabel 5.28 d (meskipun

keuntungan totalnya sama). Akan tetapi pembaca dapat mengecek bahwa tabel 5.30 b

merupakan alternatif penyelesaian tabel 5.28 d dengan memaksa mengisi sel x15 dengan

kuantitas sebanyak-banyaknya (ingat kembali bahwa penyelesaian pada tabel 5.28 d memiliki

alternatif penyelesaian di x15). Hal yang sebaliknya juga berlaku. Tabel 5.30 b juga memiliki

Page 223: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 207

alternatif penyelesaian dengan mengisi x34. Jika ini dilakukan maka akan didapat kembali tabel

5.28 d

Pa

bri

k

7 11 6

-1 3 1

7

9

14

41

2

1 32Agen

8 9 10

3

4

5

1

4

5

0

0

0

6

30 20

75

100

50

45 50105

150

200

Perse-

diaan

125

Permintaan 80 75100 45 125 50

0

5

ui

vj 3 5 1 07 9

-3

-3

-4-4-4

-4-6

0 -2 -5

Tabel 5.30 b

Page 224: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

208 Riset Operasi : Suatu Tinjauan Algoritmis

SOAL-SOAL LATIHAN

1. Perusahaan sepatu Kevin & Co telah membuat pabrik di Jakarta, Bandung, Semarang dan

Surabaya. Permintaan pasar mereka berasal dari distributor di Purwokerto, Jogjakarta, Solo,

Malang dan Banyuwangi. Matriks di bawah ini menyatakan maksimum kapasitas produksi

masing-masing pabrik dan kebutuhan pada distributor di beberapa kota tersebut. Angka-

angka dalam tiap sel menunjukkan biaya pengiriman 1 unit barang dari pabrik ke distributor.

DISTRIBUTOR

PABRIK P J S M B Kapasitas Pabrik

Jakarta 1 2 6 2 3 500

Bandung 3 4 5 8 1 600

Semarang 3 1 1 2 6 200

Surabaya 4 7 3 5 4 400

KEBUTUHAN 400 100 700 300 500

a. Carilah pengaturan pengiriman barang yang paling murah dengan metode Barat Laut dan

Metode Vogel.

b. Carilah distribusi pengiriman yang paling menguntungkan

2. Diketahui matriks biaya transportasi di bawah ini.

TUJUAN

SUMBER D1 D2 D3 KAPASITAS

O1 3 2 4 100

O2 0 4 2 300

O3 2 1 3 400

O4 5 2 3 200

O5 1 4 0 300

O6 4 1 2 300

O7 1 6 4 400

KEBUTUHAN 700 900 400

a. Minimumkanlah biaya transportasi total yang memenuhi kapasitas sumber dan kebutuhan

tujuannya.

Page 225: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 209

b. Misalkan bahwa angka dalam sel tabel diatas menyatakan keuntungan. Bagaimanakah

pengiriman yang paling optimal ?

3. Apa yang terjadi jika sel yang terisi pada waktu pemberian harga awal pada tabel transportasi

kurang dari m+n-1 buah ? (m = jumlah sumber ; n = jumlah tujuan). Bagaimanakah kita

mengatasi situasi semacam itu ?

4. Perusahaan alat musik Tala membuat radio di 2 pabriknya dan mengirimkannya ke 3

distributor. Biaya pengiriman (dalam ribuan) adalah sebagai berikut :

KE

DARI Distributor 1 Distributor 2 Distributor 3

Pabrik - 1 5 7 6

Pabrik - 2 1 8 4

Pabrik-1 mempunyai kapasitas 200 buah tiap bulan, dan pabrik-2 mempunyai kapasitas 150

buah per bulan. Permintaasn dari distributor 1, 2, dan 3 masing-masing adalah 120, 130, dan

120.

a. Buatlah penyelesaian awal dengan metode Barat Laut dan Vogel

b. Carilah penyelesaian optimal.

5. Sebuah perusahaan mempunyai 3 buah pabrik dan produknya dikirimkan ke 4 penyalur.

Biaya produksi (dalam ribuan) dan kapasitas produksi mingguan tampak pada tabel di

bawah ini :

Pabrik Biaya Produksi Kapasitas Mingguan

1 40 210

2 43 330

3 39 440

Kebutuhan mingguan penyalur-1, 2,3 dan 4 masing-masing adalah 180, 280, 150, dan 200

unit. Biaya transportasi per unit dari pabrik ke penyalur tampak dalam tabel di bawah ini :

PENYALUR

PABRIK W1 W2 W3 W4

F1 49 59 58 53

F2 51 58 59 58

Page 226: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

210 Riset Operasi : Suatu Tinjauan Algoritmis

F3 47 65 60 61

a. Carilah alokasi optimalnya !

b. Misalkan perusahaan hanya bisa mengirimkan 80 unit dari pabrik F3 ke penyalur W1,

dan 100 unit dari pabrik F1 ke penyalur W4. Apakah penyelesaian yang anda dapatkan

pada (a) tetap optimal ? Jika tidak, berapa penyelesaian optimalnya ?

6. Sebuah perusahaan roti dapat membuat roti di dua pabriknya dengan data sbb :

Pabrik Kapasitas Produksi (roti) Biaya Produksi (ribuan)

A 2500 23

B 2100 25

Ada 4 restoran yang bersedia membeli roti tersebut. Kebutuhan dan harga yang mereka

setujui tampak dalam tabel berikut ini :

Restoran

Maksimum Permintaan (Roti)

Harga yg Diinginkan (Ribuan)

1 1800 39

2 2300 37

3 550 40

4 1750 36

Biaya pengiriman (dalam rupiah) sebuah roti dari pabrik ke restoran tampak dalam tabel

berikut ini :

Restoran - 1

Restoran - 2

Restoran - 3

Restoran - 4

Pabrik - A 6 8 11 9

Pabrik - B 12 6 8 5

Tentukan rencana pengiriman roti yang akan memaksimumkan total keuntungan !

7. Tiga kilang minyak dengan kapasitas harian maksimum masing-masing 6, 5 dan 8 juta

liter bensin mensuplai 3 daerah distribusi yang permintaannya masing-masing 4, 8, dan 7

juta liter bensin setiap harinya. Bensin dikirimkan ke ketiga daerah tersebut melalui jaringan

pipa. Biaya pengiriman per juta liter bensin tampak pada tabel di bawah ini (dalam ratusan

Page 227: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSPORTASI 211

ribu rupiah). Tabel tersebut menunjukkan bahwa kilang minyak pertama tidak terhubung

dengan daerah distribusi ketiga.

Daerah Distribusi

1 2 3

1 12 18 -

Kilang Minyak

2 30 10 8

3 20 25 12

a. Nyatakan masalah tersebut dalam model transportasi dan selesaikanlah !

b. Misalkan kapasitas kilang minyak ke-3 diturunkan menjadi 6 juta liter. Disamping itu,

daerah distribusi-1 harus menerima semua permintaannya, dan setiap satu juta liter

kekurangan permintaan bensin ke daerah - 2 dan 3 akan menyebabkan terjadinya

kerugian sebesar 5 (ratusan ribu rupiah). Nyatakan masalah tersebut dalam model

transportasi dan selesaikanlah !

c. Misalkan permintaan di daerah-3 turun menjadi 4 juta liter. Setiap kelebihan pengiriman

bensin ke daerah-3 dapat dimanfaatkan untuk keperluan di daerah tersebut sehingga tidak

menyebabkan adanya biaya tambahan. Akan tetapi, kelebihan pengiriman ke daerah-1

dan 2 harus dikirimkan ke daerah lain (diluar ketiga daerah tersebut). Akibatnya,

dibutuhkan biaya transportasi tambahan sebesar 15 dan 20 (ratusan ribu) rupiah dari per

juta liternya untuk mengirimkan bensin tersebut dari daerah-1 dan 2. Selesaikanlah

masalah transportasi tersebut !

8. Dalam masalah transportasi di bawah ini, total permintaan melebihi total persediaan.

Misalkan tidak ada kerugian karena permintaan tidak terpenuhi, tetapi permintaan tujuan-3

harus terpenuhi seluruhnya. Carilah penyelesaian optimalnya !

Tujuan

Sumber I II III Persediaan

A 5 1 7 10

B 6 4 6 80

C 3 2 5 15

Permintaan

Page 228: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

212 Riset Operasi : Suatu Tinjauan Algoritmis

9. Selesaikan masalah transportasi untuk meminimumkan total biaya pengiriman apabila biaya

pengiriman, permintaan dan persediaan barang tampak dalam tabel di bawah ini

D1 D2 D3 D4

O1 1 2 -2 3 70

O2 2 4 0 1 38

O3 1 2 -2 5 32

40 28 30 42

10. Selesaikan masalah transportasi berikut ini untuk meminimumkan total biaya pengiriman,

jika dimulai dari penyelesaian awal x12 = 30, x21 = 40, x32 = 20, x43 = 60

D1 D2 D3

O1 4 5 2 30

O2 4 1 3 40

O3 3 6 2 20

O4 2 3 7 60

40 50 60

11. Seorang petani mempunyai 3 ladang A, B, C yang masing-masing membutuhkan 100, 300

dan 50 unit air. Bendungan air dapat memberikan 150 unit, sedangkan sumur dapat

memberikan 200 unit air. Kebutuhan air sisanya diharapkan dari turunnya hujan.

Tabel berikut ini menunjukkan biaya per unit air pada waktu musim kemarau dari

bendungan dan sumur, sedangkan baris ketiga menunjukkan kerugian akibat tidak turunnya

hujan. Tentukan bagaimana air dalam bendungan dan sumur diatur untuk meminimumkan

total biayanya !

A B C

Bendungan 3 5 7 150

Sumur 6 4 10 200

Tdk Turun Hujan 8 10 3 100

100 300 50

Page 229: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 66

TRANSSHIPMENT

Dalam bab 5 telah dibahas masalah transportasi, yaitu cara pengiriman sejumlah barang dari

sumber ke tujuan agar total biayanya minimum. Dalam bab ini dibahas masalah transshipment,

yaitu pengiriman barang dari sumber ke tujuan melalui perantara (junction).

6.1 Transshipment Sebagai Perluasan Masalah

Transportasi

Masalah Transshipment (pengapalan) adalah perluasan dari masalah transportasi. Dalam

masalah transportasi, barang dikirimkan langsung dari sumber ke tujuan untuk meminimumkan

total biaya pengiriman. Dalam transshipment, pengiriman tidak harus dilakukan secara langsung,

tapi boleh dilewatkan ke satu/beberapa tempat perantara (junction). Untuk lebih jelasnya,

perhatikan contoh 6.1 berikut ini

Contoh 6.1

Misalkan 10 unit barang ada di Jakarta dan 10 unit lainnya di Malang, hendak dikirimkan ke

Semarang dan Jogjakarta, yang masing-masing membutuhkan 10 unit barang. Pengiriman dapat

dilakukan secara langsung, atau melewati cabangnya di kota Surabaya. Biaya pengiriman satu

unit barang dari sumber ke tujuan maupun perantara tampak pada label garis dalam gambar 6.1.

Dalam gambar 6.1, titik yang bertanda (+) menunjukkan titik sumber dan titik yang bertanda (-)

menunjukkan titik tujuan.

Page 230: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

224 Riset Operasi : Suatu Tinjauan Algoritmis

5

62

3

4

21

3

Jakarta Semarang

MalangJogjakarta

Surabaya

+10

+10

-10

-10

Gambar 6.1

Baik titik sumber maupun titik tujuan dapat bertindak pula sebagai perantara. Sebagai contoh,

barang bisa dikirimkan dari Malang ke Semarang secara langsung atau melewati Surabaya yang

merupakan titik perantara.

(10)

62

1

2

5

4

3

+10

+10 -10

-10

(10)

(5)

2

3

21

3

1

2

5

4

3

+10

+10 -10

-10(10)

(5)

(5)

(5)

(a) (b)

(5)

6

3

4

21

1

2

5

4

3

+10

+10 -10

-10

(5)

(5)

(10)

(5)

(10) 4

21

3

1

2

5

4

3

+10

+10 -10

-10

(10)

(10)

(10)

(c) (d)

Gambar 6.2

Beberapa penyelesaian yang mungkin tampak dalam gambar 6.2 a – d (titik 1, 2, 3, 4, dan 5

masing-masing menyatakan kota Jakarta, Jogjakarta, Surabaya, Malang dan Semarang). Angka

dalam kurung di sisi garis menyatakan jumlah barang yang dikirim Masing-masing penyelesaian

Page 231: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSSHIPMENT 225

memiliki total biaya pengiriman yang berbeda-beda. Pengiriman seperti gambar 6.2 a

membutuhkan biaya = 10 (2) + 10 (6) = 80, sedangkan biaya pengiriman sesuai gambar 6.2 b – d

masing-masing adalah 65, 85, dan 100. Disamping beberapa penyelesaian yang tampak dalam

gambar 6.1 a - d tersebut, masih banyak lagi kemungkinan penyelesaian yang bisa dilakukan.

6.2 Penyelesaian Masalah Transshipment

Seperti masalah transportasi, tujuan masalah transshipment adalah bagaimana mengatur

pengiriman agar total biayanya seminimum mungkin. Penyelesaian dilakukan dengan cara

mengubah masalah transshipment menjadi masalah transportasi, dan kemudian

menyelesaikannya dengan algoritma transportasi (cara penyelesaian masalah transportasi dapat

dilihat pada bab 5). Transformasi masalah transshipment ke masalah transportasi meliputi

beberapa bagian

1. Menyeimbangkan tabel. Telitilah apakah jumlah persediaan barang (node bertanda (+)) sama

dengan jumlah permintaan (node bertanda (-)). Jika belum sama, maka tabel harus

diseimbangkan dengan menambahkan sumber/tujuan semu.

2. Tentukan titik yang merupakan titik sumber, titik tujuan dan titik perantara. Titik sumber

adalah titik yang hanya bisa mengirimkan barang dan tidak bisa menerima barang.

Sebaliknya, titik tujuan adalah titik yang hanya bisa menerima barang dan tidak bisa

mengirimkan barang. Titik perantara adalah titik yang bisa mengirimkan sekaligus menerima

barang.

Dalam gambar, titik sumber ditandai dengan adanya garis keluar dari titik tersebut tanpa

adanya garis masuk. Sebaliknya, titik tujuan ditandai dengan adanya garis masuk tanpa ada

garis keluar dari titik tersebut. Jika ada garis yang masuk dan keluar dari suatu titik, maka

titik tersebut merupakan titik perantara.

Sumber dalam masalah transportasi yang sesuai adalah gabungan dari sumber dan titik

perantara, sedangkan tujuan merupakan gabungan dari tujuan dan titik perantara dalam

masalah transshipment

Page 232: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

226 Riset Operasi : Suatu Tinjauan Algoritmis

3. Tentukan jumlah persediaan dan permintaan tiap titik.

Misalkan dalam masalah transshipment mula-mula, Si adalah persediaan titik-i dan Dj adalah

permintaan titik-j. T = i

i

S = j

j

D . Maka dalam masalah transportasinya, titik sumber

memiliki persediaan sebesar S’i = Si dan titik tujuan memiliki kebutuhan sebesar D’j = Dj.

Titik perantara memiliki persediaan sebesar P’i = Si + T (atau permintaan sebesar Dj + T).

4. Tentukan biaya pengiriman dari Si ke Dj.

'

i j

i j

jika ada jalur langsung dari S ke D

jika tidak ada jalur langsung dari S ke D

jika i = j0

ij

ij

c

c

Contoh 6.2

Selesaikan masalah transshipment dalam contoh 6.1

Penyelesaian

Jumlah persediaan = 10 + 10 = 20 unit, dan jumlah permintaan = 10 + 10 = 20 unit. Berarti

masalah sudah seimbang. T = 20

Tampak dari gambar 6.1 bahwa titik yang menjadi sumber adalah Jakarta (titik – 1) dan yang

menjadi tujuan adalah Semarang (titik – 5). Titik-titik lain merupakan titik perantara karena ada

garis yang masuk dan sekaligus keluar dari titik-titik tersebut. Jadi masalah transportasi yang

sesuai memiliki 4 sumber (masing-masing titik 1, 2, 3, dan 4) serta memiliki 4 tujuan (masing-

masing titik 2, 3, 4 dan 5). Perhatikan disini bahwa titik 2, 3 dan 4 menjadi sumber sekaligus

tujuan.

Jumlah persediaan titik – 1 = 10 karena merupakan titik sumber. Persediaan titik – 2 = 0 (karena

titik-2 tidak menghasilkan barang) + 20 (karena titik-2 merupakan titik perantara) = 20.

Persediaan titik – 3 = 0 + 20 = 20 dan persediaan titik – 4 = 10 (awalnya titik-4 memang

memiliki 10 unit barang) + 20 (karena titik-4 merupakan perantara) = 30.

Page 233: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSSHIPMENT 227

Jumlah permintaan titik – 2 = 10 (awalnya titik-2 membutuhkan 10 unit barang) + 20 (karena

titik-2 adalah perantara) = 30. Permintaan titik – 3 = 0 + 20 = 20. Permintaan titik – 4 = 0 + 20 =

20 dan permintaan titik – 5 = 10 (titik-5 merupakan tujuan sehingga tidak perlu ditambah

dengan 20).

Tabel 6.1 a menunjukkan tabel transportasi yang sesuai untuk masalah transshipment contoh 6.1.

Baris S2 berarti titik – 2 berfungsi sebagai sumber dan kolom D2 berarti titik – 2 sebagai tujuan.

10

0+20 = 20

10+20

= 30

0+20

= 20

0+20

= 20

S1

Tujuan

Su

mb

er

Persediaan

Permintaan 10

S2

S4

S3

D2 D5D4D3

0+20 = 20

10+20 = 30

Tabel 6.1 a

2 4 M

0 M 5

3

M

3

10

20

30 2020

S1

Tujuan

Sum

be

r

Persediaan

Permintaan

1 0 M

20

10

6M 2 0

30

S2

S4

S3

D2 D5D4D3

Tabel 6.1 b

Page 234: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

228 Riset Operasi : Suatu Tinjauan Algoritmis

Masalah berikutnya adalah menentukan biaya transportasi masing-masing sel. Untuk jalur

langsung yang ada (misal dari S2 ke D3), biaya transportasi adalah biaya yang tertera pada

gambar 6.1. Jika tidak ada jalur langsung (misal dari S1 ke D4) maka biaya transportasinya = M

(M = bilangan positip besar). Biaya transportasi ke titik itu sendiri (misal dari S2 ke D2) = 0.

Tabel lengkap masalah transportasinya tampak pada tabel 6.1 b.

Setelah terbentuk tabel transportasi, langkah berikutnya adalah menyelesaikannya dengan

algoritma transportasi (algoritma transportasi selengkapnya dapat dilihat pada bab 5). Misalkan

digunakan metode biaya terendah sebagai penyelesaian awalnya. Maka berturut-turut diisikan

x21 = 20 (pilih sembarang diantara x21, x32 dan x43), x43 = 20 (pilih sembarang antara x32 dan x43),

x32 = 20 dan sekaligus x42 = 0 (karena kekurangan basis), x11 = 10 dan sekaligus x31 = 0 (karena

kekurangan basis) dan terakhir x44 = 10.

Tabel 6.2 menunjukkan penyelesaian fisibel awal dan sekaligus uji optimalitasnya dengan

mengambil u4 = 0. Tampak bahwa tabel 6.2 belum optimal dan sel x14 harus diisi dengan

kuantitas sebesar 10 unit sesuai dengan loop x14 – x44 – x42 – x32 – x31 – x11 – x14.

2 4 M

0 M 5

3

M

3

10

20

30 2020

S1

Tujuan

Sum

be

r

Persediaan

Permintaan

1 0 M

20

10

6M 2 0

30

S2

S4

S3

D2 D5D4D3

10

0

20

20

0 1020

Ui

0

-2

-3

-1

Vj 3 0 62

+

-

+

+

-

-

3

-1

8

-2M+1

M-3M+1

M-3

M+2

Tabel 6.2

Hasil revisi dan sekaligus uji optimalitasnya (dengan v1 = 0) tampak pada tabel 6.3, yang

merupakan tabel optimal.

Page 235: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSSHIPMENT 229

2 4 M

0 M 5

3

M

3

S1

Tujuan

Sum

be

r

1 0 M

6M 2 0

S2

S4

S3

D2 D5D4D3

100

20

10

10

10

20

Ui

3

1

0

2

Vj 0 -3 1-1

3

1

8

2

M+1

M-1M+1

M-3

M+2

Tabel 6.3

Jika dikembalikan ke masalah semula, maka supaya biaya pengirimannya optimal, maka

dilakukan pengiriman barang dari S1 – D5 = 10, S3 – D2 = 10, dan S4 – D3 = 10 (lihat gambar

6.3). Biaya totalnya = 10 (3) + 10 (1) + 10 (2) = 60.

3

21

1

2

5

4

3

+10

+10 -10

-10(10)

(10)

(10)

Gambar 6.3

Contoh 6.3

Suatu perusahaan akan mengirimkan 70 unit produk dari lokasi – 1 ke lokasi – 2 (membutuhkan

45 unit) dan ke lokasi – 3 (membutuhkan 25 unit). Pengiriman bisa dilakukan secara langsung

atau melalui lokasi lain terlebih dahulu. Biaya pengiriman per unit produk antar 2 lokasi tampak

dalam tabel 6.4 .

Page 236: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

230 Riset Operasi : Suatu Tinjauan Algoritmis

KE LOKASI

DARI 1 2 3 4

1 - 38 56 34

2 38 - 27 -

3 56 27 - 19

4 34 - 19 -

Tabel 6.4

Tentukan cara pengiriman yang akan meminimumkan total biaya pengiriman !

Penyelesaian

Pengiriman dapat digambarkan dalam gambar 6.4 a. Jumlah sumber = 70 dan jumlah permintaan

= 45 + 25 = 70. Jadi masalahnya sudah seimbang

Tampak dalam gambar 6.4 a bahwa satu-satunya sumber adalah titik – 1 sehingga biaya

pengiriman tidak akan optimal apabila barang yang keluar dari titik-1 kembali lagi ke titik – 1.

Dengan kata lain, semua garis menuju titik-1 dapat dihilangkan.

38

56

34

1

4

2

3

+70 -4538

3456

27 27

19

19-25

Gambar 6.4 a

Gambar 6.4 b menunjukkan revisi model transshipment setelah semua garis menuju titik-1

dihilangkan.

Dalam gambar 6.4 b tampak bahwa titik yang menjadi sumber adalah titik-1, dan tidak ada titik

yang menjadi tujuan. Titik 2, 3 dan 4 semuanya merupakan titik perantara. Jadi dalam tabel

transportasi yang sesuai, ada 4 sumber (baris) masing-masing titik – 1, 2, 3 dan 4 dan ada 3

tujuan (kolom) yaitu titik 2, 3 dan 4.

Page 237: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSSHIPMENT 231

1

4

2

3

+70 -4538

34 56 27 27

19

19-25

Gambar 6.4 b

Jumlah persediaan titik-1 adalah 70 unit. Jumlah persediaan titik 2, 3 dan 4 semuanya = 0 + 70 =

70 (karena ketiganya titik perantara sehingga harus ditambah dengan total barang). Jumlah

permintaan titik – 2 = 45 + 70 = 115, titik – 3 = 25 + 70 = 95, dan permintaan titik – 4 = 0 + 70 =

70. Perhatikan disini bahwa sesudah dijadikan masalah transportasi, tabel harus tetap seimbang

(jumlah permintaan = jumlah persediaan).

Biaya pengiriman disesuaikan dengan tabel 6.4. Biaya pengiriman antara 2 titik yang tidak

berhubungan langsung = M (M = bilangan positip besar) dan biaya pengiriman antara 2 titik

yang sama = 0.

38 56 34

0 27 M

70

70

115 7095

S1

Tujuan

Sum

be

r

Persediaan

Permintaan

27 0 19

70

M 19 0

70

S2

S4

S3

D2 D4D3

45 25

70

70

0 70

Ui

19

0

18

56

Vj -18 -190

+

+

-

-

9

-3

M+1

M-1

3845

Tabel 6.5 a

Tabel 6.5 a menunjukkan tabel awal transportasi, sekaligus penyelesaian awal dengan metode

biaya terendah, dan hasil uji optimalitasnya. Pada pengisian variabel basis, berturut-turut diisikan

x21 = 70 (dipilih sembarang antara x21, x32 atau x43), x32 = 70 (dipilih sembarang antara x32 atau

Page 238: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

232 Riset Operasi : Suatu Tinjauan Algoritmis

x43), x43 = 70 dan sekaligus x42 = 0 (karena kekurangan basis), x11 = 45 dan terakhir x12 = 25.

Hasil pengujian optimalitas (dengan mengambil v2 = 0) menunjukkan bahwa tabel 6.5 a belum

optimal dan sel x13 perlu diisi dengan kuantitas sebesar 25 unit sesuai dengan loop x13 – x43 – x42

– x12 – x13.

Tabel 6.5 b menunjukkan hasil revisi tabel 6.5 a dengan mengambil u1 = 0. Tampak bahwa tabel

6.5 b sudah optimal. Jika dikembalikan ke masalah semula, maka didapatkan gambar 6.5. Biaya

pengiriman minimumnya = 45 (38) + 25 (34) + 25 (19) = 3035

38 56 34

0 27 M

S1

Tujuan

Sum

be

r

27 0 19

M 19 0

S2

S4

S3

D2 D4D3

45

70

70

25

25

45

Ui

-34

-53

-38

0

Vj 38 3453

3

12 M+4

M-4

3842

Tabel 6.5 b

1

4

2

3

+70 -4538

34

19 -25

(45)

(25)

(25)

Gambar 6.5

Page 239: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSSHIPMENT 233

6.3 Soal Tidak Seimbang

Sama seperti penyelesaian masalah transportasi, kasus tidak seimbang dalam masalah

transshipment diselesaikan dengan cara menambahkan sumber/tujuan semu. Biaya pengiriman

dari sumber semu (atau ke tujuan semu) = 0.

Contoh 6.4

Tentukan cara pengiriman barang pada keadaan yang digambarkan pada gambar 6.6 supaya

memenuhi semua permintaan tapi dengan total biaya se minimum mungkin.

1

2

3

4

3

8

7

5

6

3

2

4

2 4

+95

+70

+15

-30-45

-30

Gambar 6.6

Penyelesaian

Jumlah persediaan = 95 + 70 + 15 = 180 unit, sedangkan jumlah permintaan = 30 + 45 + 30 =

105 unit. Maka terdapat kekurangan permintaan sebesar 180 – 105 = 75 unit. Untuk

menyeimbangkan tabel, maka ditambahkan permintaan semu (titik – 7) sebesar 75 unit.

Dari gambar 6.6, tampak bahwa titik yang merupakan sumber adalah titik – 1 dan 2, tujuan

adalah titik – 5, 6 serta 7 (semu). Titik 3 dan 4 adalah titik perantara. Maka dalam tabel

transportasinya ada 4 baris (S1, S2, S3, dan S4) dan 5 kolom (D3, D4, D5, D6 dan D7).

Jumlah persediaan S1 dan S2 masing-masing adalah 95 dan 70. Persediaan titik perantara S3 = 15

+ 180 = 195, dan S4 = 0 + 180 = 180. Jumlah permintaan D3 = 0 + 180 = 180, D4 = 30 + 180 =

210. Permintaan titik tujuan D5, D6 dan D7 masing-masing adalah 30, 45 dan 75 unit.

Biaya pengiriman antar 2 titik ditentukan seperti pada contoh 6.2 dan 6.3 dengan biaya

pengiriman ke tujuan semu = 0. Tabel 6.6 menunjukkan tabel awal transportasi dan

penyelesaian awal dengan metode Vogel (cara pengisian dengan metode Vogel dapat dilihat

Page 240: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

234 Riset Operasi : Suatu Tinjauan Algoritmis

kembali pada bab 5.2.3). Tanda (*) pada selisih 2 baris/kolom menunjukkan baris/kolom dengan

selisih terbesar. Pada iterasi – 1, diambil x33 = 30. Pada iterasi – 2, diambil x42 = 180 (dipilih

sembarang antara kolom-2 atau baris-1). Berikutnya berturut-turut diambil x34 = 45, x32 = 30, x15

= 75. Setelah hanya tersisa kolom-1, diambil x31 = 90, x21 = 70 dan terakhir x11 = 20.

Persediaan

3 M 8

2 7 M

95

70

180 30210

S1

Tujuan

Su

mb

er

0 3 4

195

M 0 M

180

S2

S4

S3

D3 D5D4

20

30

70

90

180

30

2

M

M

45

4

2

D6

45

0

0

75

0

0

D7

75

0 43 4 -3

-3

0

3

ui

M-6

M-1M+3

M-6M-6

M-71

61

3

12

vj

Tabel 6.6

Persediaan

3 M 8

2 7 M

95

70

0+180

= 18030

30+180

= 210

S1

Tujuan

Sum

be

r

Permin-

taan

0 3 415+180 =

195

M 0 M0+180 =

180

S2

S4

S3

D3 D5D4

20

30

70

90

180

30

2

2 4*3

M

M

45

4

2

D6

45

2

0

0

75

0

0

D7

75

0

2 -3* 2 0

2 -4 M-4* 0

2 -4* - 0

2 -- - 0

2

3

0

0

3

0

0

2

3

0

-

2

3

0

-

2

3*

0

-

Selisih 2 baris

Se

lisih

2 k

olo

m

Tabel 6.7

Page 241: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSSHIPMENT 235

Tabel 6.7 menunjukkan uji optimalitas tabel 6.6 dengan mengambil u3 = 0. Ternyata

penyelesaian awal sudah optimal sehingga tidak perlu direvisi lagi. Jika dikembalikan ke

masalah semula, maka didapatkan distribusi pengiriman barang seperti pada gambar 6.7. Di titik

– 1 barang tersisa 75 unit (dikirim ke tujuan semu).

1

2

3

4

3 5

6

3

4

2 4

+95

+70

+15

-30 -45

-30

(20)

(70) (30)

(30)

(45)

Gambar 6.7

6.4 Kasus-kasus Khusus

Pada prinsipnya setelah masalah transshipment dijadikan tabel transportasi, maka semua kasus

khusus yang terjadi pada masalah transportasi juga berlaku pada masalah transshipment.

Alternatif penyelesaian terjadi jika pada tabel optimalnya ada sel dengan nilai cij – ui – vj =

0. Alternatif didapatkan dengan cara “memaksa” sel tersebut menjadi basis (diisi dengan

kuantitas).

Untuk menyelesaikan soal memaksimumkan, maka masalah terlebih dahulu dikembalikan

ke masalah meminimumkan dengan cara mengubah biaya pengiriman dengan negatifnya

(kecuali biaya = M yang tidak dinegatifkan). Pembaca dapat mencoba contoh 6.2 – 6.4

dengan mengganti soal meminimumkan menjadi soal memaksimumkan.

Page 242: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

236 Riset Operasi : Suatu Tinjauan Algoritmis

SOAL-SOAL LATIHAN

1. Diketahui masalah pengangkutan yang mengirimkan 10 dan 15 unit barang pada titik 1

dan 3, serta permintaan sebesar 15 dan 10 unit pada titik 2 dan 4. Diagram

pengirimannya tampak pada gambar di bawah ini. Selesaikan masalah pengangkutan

tersebut melalui penyelesaian masalah transportasi.

1

2

3

4

5

4

1

3

3

2

3

6

3

2

2. Diketahui masalah pengangkutan yang mengirimkan 8 unit barang di titik 1 dan 6 unit di

titik 3 dan 4, serta permintaan sebesar 7 unit di titik 5 dan 6 unit di titik 7. Diagram

pengirimannya tampak pada gambar di bawah ini. Selesaikan masalah pengangkutan

tersebut melalui penyelesaian masalah transportasi.

1

2

5

6

3

5

4

4

1

3

3

2

3

4 7

4

65

12

3. Tentukan pengangkutan dengan biaya minimum untuk masalah pengangkutan yang

digambarkan dalam gambar di bawah ini

Page 243: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

TRANSSHIPMENT 237

1

5

2

6

4

3

6

5

4

8

3

3

15

3

1410

+20

+20

+30

-25

-35

4. Suatu perusahaam mobil mendapatkan pesanan dari lokasi 5, 6, dan 7 masing-masing

sejumlah 75, 60, dan 80 unit mobil jenis tertentu. Proses produksi yang dilakukan meliputi

pembuatan body di lokasi 1 atau 2. Body mesin yang sudah dibuat kemudian dikirim ke

lokasi 3 atau 4 untuk dirakit dengan mesinnya, barulah kemudian dikirim ke

langganannya.

Biaya produksi per body adalah 533 (ribu) di lokasi 1 dan 550 (ribu) di lokasi 2. Perakitan

di lokasi 3 dan 4 masing-masing membutuhkan biaya 2256 dan 2239 (ribu). Biaya

pengiriman diantara lokasi adalah sebagai berikut :

LOKASI 3 4 LOKASI 5 6 7

1 45 59 3 72 65 79

2 65 52 4 81 74 63

Kapasitas produksi di lokasi 1 dan 2 masing-masing adalah 150 dan 170 body. Lokasi 3

dan 4 dapat merakit berapapun mobil yang masuk ke lokasinya. Tentukan pengaturan

produksi dan pengangkutan yang memenuhi semua permintaan dengan biaya minimum.

Page 244: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 77

PENUGASAN

Dalam bab ini dibahas masalah Assignment (penugasan), yang merupakan kasus khusus dari

masalah transportasi, dimana setiap sumber dan setiap tujuan hanya memiliki 1 unit barang. Ini

berarti bahwa setiap sumber hanya bisa mengalokasikan barang ke satu tujuan saja.

7.1 Permasalahan Penugasan

Kasus penugasan lebih mudah dipahami dengan mengandaikannya sebagai sejumlah pekerjaan

(sumber) yang akan didistribusikan ke sejumlah pekerja (tujuan). Masing-masing pekerja dapat

mengerjakan semua jenis pekerjaan tetapi dengan bobot (waktu, upah, dll) yang berbeda-beda.

Masalah yang dihadapi adalah bagaimana mendistribusikan pekerjaan ke pekerja sehingga total

bobotnya minimum.

Contoh 7.1

Seorang pelatih renang memiliki 4 orang perenang yang akan diterjunkan dalam lomba 400

meter gaya ganti perseorangan. Dalam lomba itu masing-masing perenang akan berenang sejauh

100 meter dalam salah satu gaya dari 4 gaya yang diwajibkan (gaya punggung, dada, kupu-kupu

dan gaya bebas) .

Semua perenang dapat berenang dalam setiap gaya. Akan tetapi karena spesialisasi yang

berbeda-beda, maka waktu yang dibutuhkannyapun juga berbeda-beda. Tabel 7.1 menunjukkan

waktu (dalam detik) yang dibutuhkan perenang dengan gaya yang ditentukan.

GAYA

PERENANG Punggung Dada Kupu-kupu Bebas

1 65 73 62 57

2 67 70 65 58

3 68 72 69 55

4 71 69 75 57

Page 245: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

240 Riset Operasi : Suatu Tinjauan Algoritmis

Tabel 7.1

Beberapa kemungkinan yang dapat dipilih pelatih dapat dilihat dalam tabel 7.2.

Perenang Total Waktu

Kemungkinan 1 2 3 4

1 Punggung Dada Kupu-kupu Bebas 261

2 Bebas Kupu-kupu Punggung Dada 259

3 Dada Kupu-kupu Punggung Bebas 263

Tabel 7.2

Tampak bahwa pemilihan perenang yang berbeda akan menghasilkan total waktu yang berbeda.

Masalahnya adalah menentukan alokasi perenang yang menghasilkan total waktu seminimum

mungkin.

Penyelesaian masalah penugasan dengan metode biaya terendah tidak menjamin total waktunya

paling kecil. Sebagai contoh, perhatikan masalah penugasan yang melibatkan 2 pekerja (A dan

B) dan 2 pekerjaan (1 dan 2) yang waktunya sebagai berikut :

Pekerjaan

Pekerja 1 2

A 3 2

B 7 4

Penyelesaian dengan biaya terendah akan mengalokasikan pekerja A dengan pekerjaan – 2

(waktu terendah = 2). Akibatnya, pekerja B harus dialokasikan ke pekerjaan – 1. Toal waktunya

= 2 + 7 = 9. Sebaliknya, alokasi pekerja A ke pekerjaan – 1 dan pekerja B ke pekerjaan – 2

memiliki total waktu yang lebih sedikit, yaitu = 3 + 4 = 7

7.2 Penyelesaian Masalah Penugasan

Masalah penugasan m pekerja ke m buah pekerjaan dapat dinyatakan sebagai masalah program

linier sebagai berikut :

Minimumkan Z = 1 1

m m

ij ij

i j

c x

Page 246: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 241

Kendala 1

1m

ij

j

x ; i = 1, 2, … , m

1

1m

ij

i

x ; j = 1, 2, … , m

xij = 0 atau 1, i = 1, 2, … , m ; j = 1, 2, … , m

Penyelesaian dengan program linier akan membutuhkan m2 buah variabel, belum termasuk

variabel longgar dalam metode simpleks. Jumlah variabel yang besar ini akan menyebabkan

biaya komputasi sangat tinggi.

Masalah penugasan juga dapat diselesaikan dengan metode transportasi. Untuk itu paling sedikit

harus ditambahkan (m-1) buah variabel semu. Permasalahannya adalah jumlah perhitungan

yang harus dilakukan relatif banyak untuk setiap iterasinya. Algoritma lain yang lebih sederhana

dan sering dipakai adalah algoritma Hungarian.

Prinsip dasar algoritma hungarian sama dengan metode transportasi yaitu

1. Tentukan penyelesaian fisibel awal.

2. Uji optimalitasnya. Jika sudah optimal, proses dihentikan. Jika belum optimal lakukan

langkah 3.

3. Revisi tabel untuk meningkatkan optimalitas. Kembali ke langkah 2.

Menentukan penyelesaian fisibel awal.

Algoritma untuk membuat penyelesaian fisibel awal adalah sebagai berikut :

1. Dalam setiap baris, tentukan sel yang bobotnya terkecil. Kurangkan seluruh sel pada baris

tersebut dengan sel yang bobotnya terkecil.

2. Ulangi langkah 1 untuk setiap kolom.

Dengan menyelesaikan langkah 1-2, maka setiap baris dan setiap kolom tabel pasti tidak ada

yang negatif dan memuat paling sedikit sebuah nol. Elemen nol inilah yang merupakan

variabel basis.

Page 247: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

242 Riset Operasi : Suatu Tinjauan Algoritmis

Uji optimalitas

Tutup semua variabel basis (nol) dalam penyelesaian fisibel awal dengan kombinasi garis

horisontal dan vertikal sesedikit mungkin. Jika tabel terdiri dari n baris (dan n kolom) maka

paling banyak akan dibutuhkan n garis. Jika garis yang dibutuhkan untuk menutup semua nol

dalam tabel < n, maka tabel belum optimal dan harus direvisi.

Merevisi Tabel

Perhatikan sel-sel tabel hasil uji optimalitas. Ada 3 jenis sel : Jenis pertama adalah sel yang tidak

tertutup garis. Semua sel tersebut pasti bernilai positip (karena yang bernilai nol pasti sudah

tertutup garis pada pengujian optimalitas). Jenis kedua adalah sel yang tertutup dengan sebuah

garis dan jenis ketiga adalah sel yang tertutup oleh perpotongan 2 buah garis horisontal dan

vertikal. Sel jenis kedua dan ketiga pasti mengandung nol.

Dalam merevisi tabel, sel yang berpengaruh dan nilainya harus direvisi adalah sel jenis pertama

dan ketiga. Revisi dilakukan dengan menambah variabel basis (nol) dari sel jenis pertama dan

kalau perlu mengurangi variabel basis dari sel jenis ketiga.

Algoritma untuk merevisi tabel adalah sebagai berikut

1. Tentukan sel yang tidak tertutup garis dengan bobot terkecil. Misal bobotnya adalah c.

2. Kurangkan setiap sel yang tidak tertutup garis dengan c.

3. Tambahkan setiap sel yang tertutup 2 garis dengan c.

Perhatikan bahwa dalam langkah 2, pasti akan terjadi penambahan sel yang berbobot nol.

Akan tetapi belum tentu ada sel yang tertutup oleh 2 garis yang bernilai nol. Oleh sebab itu

belum tentu ada pengurangan basis dalam langkah 3.

Lakukan langkah pengujian dan revisi berulang-ulang hingga tabel optimal. Alokasi optimal

ditunjukkan dengan elemen 0 pada tabel optimal. Untuk menentukan alokasi optimal, lakukan

langkah-langkah sebagai berikut :

1. Carilah baris/kolom yang hanya memuat sebuah nol. Kemudian ambillah sel tersebut sebagai

alokasi optimalnya.

Page 248: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 243

2. Hapuslah baris dan kolom yang sesuai dengan sel terpilih tersebut.

3. Ulangi langkah 1-2 untuk elemen 0 lainnya hingga semua baris/kolom dialokasikan.

Untuk memperjelas langkah-langkah metode hungarian, pandang contoh 7.2

Contoh 7.2

Selesaikan masalah pelatih renang dalam contoh 7.1

Penyelesaian

Menentukan penyelesaian fisibel awal

Dari tabel mula-mula, elemen terkecil baris 1, 2, 3 dan 4 masing-masing adalah 57, 58, 55, 57.

Kurangkan semua elemen pada baris –1 dengan 57, semua elemen baris – 2 dengan 58, semua

elemen baris – 3 dengan 55 dan semua elemen baris – 4 dengan 57. Hasilnya tampak pada tabel

7.3 a (P = gaya punggung, D = gaya dada, K = gaya kupu-kupu dan B = gaya bebas).

0

8

13

7129

516

14

1417

0

0

0

1812

P BKD

1

3

2

4

Gaya

Pe

ren

an

g

0

0

5

201

04

6

95

0

0

0

130

P BKD

1

3

2

4

Gaya

Pe

ren

an

g

(a) (b)

Tabel 7.3 a - b

Berikutnya cari elemen terkecil untuk tiap kolom tabel 7.3 a. Didapatkan elemen terkecil kolom

1, 2, 3 dan 4 berturut-turut adalah 8, 12, 5 dan 0. Kurangkan tiap elemen pada kolom – 1 dengan

8, kolom – 2 dengan 12, kolom – 3 dengan 5 dan kolom – 4 dengan 0. Didapatkan tabel 7.3 b.

Page 249: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

244 Riset Operasi : Suatu Tinjauan Algoritmis

Pengujian Optimalitas

Setiap baris dan setiap kolom tabel 7.3 b pasti mengandung elemen 0. Tutup semua elemen 0

dalam tabel 7.3 b dengan kombinasi garis horisontal dan vertikal (tidak boleh diagonal) sesedikit

mungkin. Tidak ada algoritma untuk menentukan apakah garis yang sudah kita buat merupakan

garis yang jumlahnya paling sedikit. Akan tetapi penutupan bisa dilakukan dengan membuat

garis (horisontal atau vertikal) yang akan menutup elemen nol sebanyak-banyaknya.

0

0

5

201

04

6

95

0

0

0

130

P BKD

1

3

2

4

Gaya

Pe

ren

an

g

0

0

4

100

05

5

85

0

0

1

120

P BKD

1

3

2

4

Gaya

Pe

ren

an

g

(c) (d)

Tabel 7.3 c -d

Dalam tabel 7.3 b, mula-mula ambil garis vertikal di kolom – 4. Ada 4 buah nol yang belum

tertutup, yaitu x11. x13, x22, dan x42. Diambil garis horisontal pada baris – 1 dan garis vertikal pada

kolom – 2. Tabel 7.3 c menunjukkan penutupan garis yang dilakukan pada tabel 7.3 b. Dengan

ketiga garis ini semua nol sudah tertutup. Karena jumlah garis yang dibutuhkan = 3 < 4, berarti

bahwa tabel belum optimal .

Revisi Tabel

Perhatikan elemen-elemen yang tidak tertutup garis dan elemen-elemen yang tertutup

perpotongan 2 garis. Elemen terkecil yang tidak tertutup garis adalah 1. Kurangkan semua

elemen yang tidak tertutup garis dengan 1 dan sebaliknya, tambahkan semua elemen yang

tertutup 2 garis (sel x12 dan x14) dengan 1. Hasilnya tampak pada tabel 7.3 d.

Page 250: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 245

Uji optimalitas kembali dilakukan pada tabel 7.3 d. Bagaimanapun juga caranya, pasti

dibutuhkan 4 garis untuk menutup semua nol. Ini berarti tabel 7.3 d sudah optimal.

Untuk menentukan alokasi optimalnya, perhatikan elemen-elemen 0 pada tabel 7.3 d. Pada baris

– 1 ada 2 buah elemen 0 sehingga kita tidak bisa menentukan sel mana yang harus kita pilih.

Elemen 0 yang tunggal pada baris/kolom ada pada baris – 3 (sel x34) dan kolom – 3 (sel x13).

Ambillah kedua sel ini sebagai alokasi optimal. Kemudian hapuskanlah baris-3 dan kolom-4

(karena sel x34 sudah dipilih sehingga semua elemen 0 di baris-3 dan kolom-4 tidak boleh ada

yang dipilih lagi) serta baris –1 dan kolom-3 (karena sel x13 sudah dipilih sehingga semua elemen

0 di baris-1 dan kolom-3 tidak boleh ada yang dipilih lagi). Hasilnya tampak pada tabel 7.3 e

(elemen yang dilingkari adalah alokasi yang dipilih dan baris/kolom yang diarsir adalah

baris/kolom yang sudah tidak boleh dialokasikan lagi).

0

0

4

100

05

5

75

0

0

1

110

P BKD

1

3

2

4

Gaya

Pe

ren

an

g

0

0

4

100

05

5

75

0

0

1

110

P BKD

1

3

2

4

Gaya

Pe

ren

an

g

(e) (f)

Tabel 7.3 e - f

Dari sel yang tidak diarsir di tabel 7.3 e, alokasi 0 yang tunggal terjadi pada baris – 4 (sel x42).

Ambillah x42 sebagai alokasi dan hilangkanlah baris-4 dan kolom-2 (lihat tabel 7.3 f). Satu-

satunya elemen yang tersisa adalah x21 yang diambil sebagai alokasi terakhir. Jadi alokasi

optimalnya adalah : perenang – 1 : gaya kupu-kupu (62 detik), perenang – 2 : gaya punggung

(67 detik), perenang – 3 : gaya bebas (55 detik) dan perenang – 4 : gaya dada (69 detik). Total

waktunya = 62 + 67 + 55 + 69 = 253 detik.

Page 251: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

246 Riset Operasi : Suatu Tinjauan Algoritmis

7.3 Kasus-Kasus Khusus

7.3.1 Kasus Tidak Seimbang

Kasus tidak seimbang terjadi jika jumlah pekerja tidak sama dengan jumlah pekerjaan. Sebelum

menggunakan algoritma penugasan, soal harus terlebih dahulu diseimbangkan dengan cara

menambahkan sejumlah pekerja atau pekerjaan semu (mana yang lebih sedikit) hingga menjadi

seimbang. Biaya pada sel semu = 0

Contoh 7.3

Tabel 7.4 menunjukkan biaya yang harus dikeluarkan suatu perusahaan untuk mengalokasikan 4

orang pekerja pada 3 buah pekerjaan berbeda. Masing-masing pekerja bisa melakukan semua

pekerjaan tersebut tapi dengan biaya yang berbeda-beda. Carilah siapa yang harus melakukan

tiap-tiap pekerjaan untuk meminimumkan biaya keseluruhan.

Pekerjaan

Pekerja 1 2 3

1 7 3 5

2 2 2 1

3 6 5 3

4 3 4 7

Tabel 7.4

Penyelesaian

Karena jumlah pekerja lebih banyak dari jumlah pekerjaan, maka tambahkan sebuah pekerjaan

semu (pekerjaan – 4) sehingga soal menjadi seimbang. Biaya pekerjaan – 4 untuk semua pekerja

= 0. Hasilnya tampak pada tabel 7.5 a.

Berikutnya algoritma penugasan dapat diterapkan pada tabel 7.5 a. Elemen terkecil dalam tiap

baris = 0. Maka pengurangan terhadap elemen terkecil tiap baris tidak menghasilkan perubahan

tabel.

Page 252: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 247

Elemen terkecil pada kolom 1, 2, 3 dan 4 masing-masing adalah 2, 2, 1 dan 0. Kurangkan semua

elemen kolom –1 dengan 2, kolom – 2 dengan 2, kolom – 3 dengan 1 dan kolom – 4 dengan 0.

Didapat tabel 7.5 b.

0

5

4

000

41

1

23

0

0

0

62

1 4*32

1

3

2

4

Pekerjaan

Pe

ke

rja0

7

6

122

53

3

35

0

0

0

74

1 4*32

1

3

2

4

Pekerjaan

Pe

ke

rja

(a) (b)

0

5

4

000

41

1

23

0

0

0

62

1 4*32

1

3

2

4

Pekerjaan

Pe

ke

rja 1

4

3

000

30

0

12

0

0

0

51

1 4*32

1

3

2

4

Pekerjaan

Pe

ke

rja

(c) (d)

Tabel 7.5 a - d

Uji optimalitas dilakukan dengan menutup semua nol pada tabel 7.5 b dengan garis horisontal

dan vertikal sesedikit mungkin. Melihat posisi sel nol pada tabel 7.5 b, jelas hanya dibutuhkan 2

garis, yaitu pada kolom – 4 dan baris – 2 (lihat 7.5 c). Tabel harus direvisi. Elemen tidak tertutup

garis yang terkecil pada tabel 7.5 c adalah 1. Kurangkan semua elemen tidak tertutup garis

dengan 1 dan tambahkan semua elemen yang tertutup 2 garis dengan 1. Hasilnya tampak pada

tabel 7.5 d. Semua nol pada tabel 7.5 d hanya dapat ditutup dengan 4 garis sehingga tabel 7.5 d

sudah optimal.

Page 253: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

248 Riset Operasi : Suatu Tinjauan Algoritmis

Elemen 0 yang tunggal terdapat pada kolom 3 (x23) dan baris 3 (x34). Maka kedua sel ini dipilih.

Baris-2 dan kolom-3 (karena x23 sudah dipilih) serta baris-3 dan kolom-4 (karena x34 sudah

dipilih) dihilangkan dari proses pemilihan berikutnya (lihat tabel 7.5 e).

1

4

3

000

30

0

12

0

0

0

51

1 4*32

1

3

2

4

Pekerjaan

Pe

ke

rja

Tabel 7.5 e

Dari sisa nol yang belum terarsir jelas bahwa alokasi yang dipilih adalah sel x12 dan x41. Jadi

alokasi optimalnya adalah : pekerja–1 mengerjakan pekerjaan-2 (biaya = 3), pekerja-2

mengerjakan pekerjaan-3 (biaya = 1), pekerja-3 tidak mendapatkan pekerjaan (mengerjakan

pekerjaan semu) dan pekerja-4 mengerjakan pekerjaan-1 (biaya = 3). Total biaya = 3 + 1 + 3 =

7.

7.3.2 Alternatif Penyelesaian

Sama seperti pada masalah transportasi, alternatif penyelesaian dalam masalah penugasan terjadi

jika terdapat lebih dari satu alokasi penugasan yang memiliki total biaya yang sama. Cirinya

dapat dilihat pada tabel optimal yang tidak memiliki elemen nol tunggal pada semua baris/kolom

tersisa. Untuk lebih jelasnya, perhatikan contoh 7.4

Contoh 7.4

Selesaikanlah masalah penugasan dalama tabel 7.6 berikut ini dengan tujuan untuk

meminimumkan biaya.

Pekerjaan

Pekerja 1 2 3 4 5

A 10 10 5 6 7

Page 254: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 249

B 8 8 2 7 6

C 9 9 3 4 8

D 7 6 4 5 5

E 9 10 3 7 6

Tabel 7.6

Penyelesaian

Masalah penugasan dalam tabel 7.6 sudah seimbang. Hasil pengurangan setiap baris dalam tabel

7.6 dengan sel terkecil dalam baris tersebut tampak dalam tabel 7.7 a. Hasil pengurangan setiap

kolom tabel 7.7 a dengan elemen terkecil dalam kolom tersebut tampak pada tabel 7.7 b.

Penutupan elemen 0 tabel 7.7 b dengan garis tampak pada tabel 7.7 c. Untuk menutup semua nol,

cukup digunakan 3 garis, sehingga tabel 7.7 c belum optimal.

Elemen terkecil yang tidak tertutup garis dalam tabel 7.7 c adalah 1. Hasil revisi tabel 7.7 c

(dengan mengurangi setiap elemen tidak tertutup garis dengan 1 dan menambah setiap elemen

yang tertutup 2 garis dengan 1) tampak pada tabel 7.7 d.

5

5

6

066

05

3

06

1

1

1

02

1 432

A

C

B

D

076

4

2

1

34

5

5

E

4

2

3

043

03

0

04

0

0

0

00

1 432

A

C

B

D

053

3

1

0

23

4

5

E

(a) (b)

Page 255: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

250 Riset Operasi : Suatu Tinjauan Algoritmis

4

2

3

043

03

0

04

0

0

0

00

1 432

A

C

B

D

053

3

1

0

23

4

5

E

4

1

2

032

02

0

03

1

0

0

10

1 432

A

C

B

D

042

2

0

0

13

3

5

E

(c) (d)

Tabel 7.7 a - d

Tabel 7.7 d juga belum optimal karena jumlah minimal garis penutupnya = 4 (lihat tabel 7.7 e).

Perhatikan disini bahwa garis penutup tabel 7.7 d tidak harus seperti tabel 7.7 e (misal garis pada

baris-1 bisa diganti dengan garis pada kolom-5). Yang penting adalah jumlahnya minimal

(dalam hal ini = 4). Jika garis penutupnya berbeda, maka hasil iterasi juga akan berbeda. Namun

alokasi elemen 0 pada tabel optimalnya akan tetap sama, meskipun angka-angka bukan 0

mungkin berbeda. Hasil revisi tabel 7.5 e tampak pada tabel 7.5 f

4

1

2

032

02

0

03

1

0

0

10

1 432

A

C

B

D

042

2

0

0

13

3

5

E

4

1

1

021

12

0

02

2

0

1

20

1 432

A

C

B

D

031

1

0

0

03

2

5

E

(e) (f)

Page 256: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 251

4

1

1

021

12

0

02

2

0

1

20

1 432

A

C

B

D

031

1

0

0

03

2

5

E

3

0

1

010

11

0

12

2

0

0

30

1 432

A

C

B

D

020

1

0

1

02

3

5

E

(g) (h)

Tabel 7.7 e - h

Hasil pengujian optimalitas tabel 7.7 f tampak pada tabel 7.7 g. Jumlah garis penutupnya masih =

4 sehingga tabel belum optimal. Hasil revisi tabel 7.7 g tampak pada tabel 7.7 h. Bagaimanapun

caranya, untuk menutup semua nol dalam tabel 7.7 h, selalu dibutuhkan 5 buah garis. Maka tabel

7.7 h sudah optimal.

Alokasi pekerja/pekerjaan yang tunggal terjadi pada baris-3 (x34) dan kolom-2 (x42). Setelah

baris-3, 4 dan kolom 2, 4 dihilangkan maka akan didapatkan tabel 7.7 i. Tampak bahwa sudah

tidak ada alokasi elemen 0 yang tunggal lagi karena dalam tiap baris dan kolomnya selalu

terdapat > 1 buah elemen 0. Ini berarti soal memiliki alternatif penyelesaian. Untuk memperoleh

penyelesaian-penyelesaiannya, diambil sembarang elemen 0 yang belum terarsir (untuk

mempermudah, ambillah salah satu 0 dari baris/kolom yang memuat 2 buah nol).

3

0

1

010

11

0

12

2

0

0

30

1 432

A

C

B

D

020

1

0

1

02

3

5

E

Tabel 7.7 i

Page 257: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

252 Riset Operasi : Suatu Tinjauan Algoritmis

Misalkan diambil elemen 0 yang terletak pada baris – 1. Ada 2 buah nol yaitu pada kolom-1 (x11)

atau pada kolom 5 (x15). Jika diambil x11, maka akan didapat tabel 7.7 j. Jika diambil x15 akan

didapat tabel 7.7 k.

3

0

1

010

11

0

12

2

0

0

30

1 432

A

C

B

D

020

1

0

1

02

3

5

E

3

0

1

010

11

0

12

2

0

0

30

1 432

A

C

B

D

020

1

0

1

02

3

5

E

(j) (k)

Tabel 7.7 j - k

Karena kedua alternatif itu memungkinkan, maka akan dilacak satu persatu alokasi sisanya.

Perhatikan tabel 7.7 j. Dari alokasi yang tersisa harus diambil x23 dan x55.

Sebaliknya, jika yang diambil x15 (tabel 7.7 k), maka masih ada 2 kemungkinan lagi yaitu x21

dan x53, atau x23 dan x51. Jadi seluruhnya ada 3 alternatif yang mungkin diambil yaitu :

Alternatif –1 : D-2, C-4, A-1, B-3 dan E-5

Alternatif – 2 : D-2, C-4, A-5, B-1 dan E-3

Alternatif – 3 : D-2, C-4, A-5, B-3 dan E-1

Semua alternatif ini dapat digambarkan dalam gambar 7.1. Angka dalam kurung pada gambar

7.1 menunjukkan biaya yang dibutuhkan untuk alokasi yang diambil. Semua alternatif tersebut

memiliki total biaya = 28

D-2 (6) ; C-4 (4)

A-1 (10) ; B-3 (2) ; E-5

(6)

B-1 (8) ; E-3 (3)

B-3 (2) ; E-1 (9)

A-5 (7)

Alokasi tunggal :

Gambar 7.1

Page 258: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 253

7.3.3 Alokasi Terlarang

Kadang-kadang ada suatu sel tertentu dalam tabel penugasan yang tidak mungkin diisi (dalam

aplikasinya, misalkan ada seorang pekerja yang tidak bisa mengerjakan salah satu pekerjaan).

Untuk membuat agar sel terlarang tidak mungkin terisi, maka biaya pada sel terlarang dibuat

sebesar-besarnya (ingat fungsinya adalah meminimumkan), yaitu dengan M = suatu bilangan

positip besar.

Contoh 7.5

Perhatikan masalah untuk menempatkan 4 operator ke 4 mesin. Biaya penempatan (dalam

ribuan) tampak pada tabel 7.8. Operator-1 tidak dapat ditempatkan ke mesin-3. Demikian juga,

operator-3 tidak dapat ditempatkan ke mesin-4. Carilah penempatan yang optimal !

Mesin

Operator 1 2 3 4

1 5 5 - 2

2 7 4 2 3

3 9 3 5 -

4 7 2 6 7

Tabel 7.8

Penyelesaian

Untuk menjamin bahwa sel x13 dan x34 (penempatan yang tidak mungkin dilakukan) tidak

menjadi alokasi yang diambil, maka pada sel tersebut diisi dengan M = suatu bilangan positip

besar. Tabel awal masalah penugasan tampak pada tabel 7.9 a.

Page 259: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

254 Riset Operasi : Suatu Tinjauan Algoritmis

3

5

9

247

M5

7

53

7

M

2

62

1 432

1

3

2

4

Mesin

Op

era

tor

Tabel 7.9 a

1

3

6

025

M-23

5

20

5

M-3

0

40

1 432

1

3

2

4

Mesin

Op

era

tor

1

0

3

022

M-23

2

20

5

M-3

0

40

1 432

1

3

2

4

Mesin

Op

era

tor

(b) (c)

Tabel 7.9 b – c

Tabel 7.9 b merupakan hasil pengurangan tiap baris tabel 7.9 a dengan elemen terkecilnya. Tabel

7.9 c merupakan pengurangan tabel 7.9 b dengan elemen terkecil tiap kolom, sekaligus garis

penutup pada pengujian optimalitasnya. Tampak bahwa hanya dibutuhkan 3 garis penutup

sehingga tabel belum optimal.

1

0

1

042

M-25

0

00

3

M-5

0

20

1 432

1

3

2

4

Mesin

Op

era

tor

0

0

1

0

1

42

M-25

0

00

3

M-5

20

1 432

1

3

2

4

Mesin

Op

era

tor

(d) (e)

Tabel 7.9 d - e

Page 260: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 255

Hasil revisi tabel 7.9 c tampak pada tabel 7.9 d. Karena untuk menutup semua elemen nolnya

membutuhkan 4 buah garis maka tabel 7.9 d merupakan tabel optimal. Baris/kolom yang

memiliki elemen nol tunggal adalah baris-2 dan kolom-4 (sel x23 dan x14).

Dari sel yang tidak terarsir sisanya, jelas bahwa alokasi yang diambil adalah x32 dan x41. Jadi

alkoasi optimalnya adalah : Operator-1 – mesin-4 (biaya = 2) ; operator-2 – mesin-3 (biaya = 2)

; operator-3 – mesin-2 (biaya = 3) ; operator-4 – mesin-1 (biaya = 7). Total biaya yang

dibutuhkan = 2 + 2 + 3 + 7 = 14 (ribuan). Tampak bahwa dalam setiap tabel, sel x13 dan sel x34

selalu terisi dengan biaya yang merupakan fungsi M sehingga tidak mungkin terpilih pada tabel

optimalnya.

Contoh 7.6

Perhatikan kembali permasalahan pada contoh 7.5. Misalkan ada mesin ke-5 yang tersedia.

Biaya penempatan operator 1, 2, 3, dan 4 pada mesin ke-5 masing-masing adalah 2, 1, 2, dan

8. Mesin yang baru ini dapat menggantikan salah satu mesin yang lama jika dipandang lebih

ekonomis. Rumuskanlah kembali masalah tersebut sebagai masalah penugasan dan carilah

penyelesaian optimalnya. Apakah dipandang lebih ekonomis untuk mengganti salah satu mesin

yang sudah ada ? Jika demikian, mesin manakah yang diganti ?

Penyelesaian

Dengan adanya 5 buah mesin, maka terjadi kekurangan operator sehingga perlu ditambahkan

seorang operator semu. Pada penyelesaian optimalnya, mesin yang dikerjakan oleh operator

semu menunjukkan mesin yang tidak ditempatkan. Jika mesin yang tidak ditempatkan (tidak

memiliki operator) tersebut adalah mesin – 5 (mesin baru), berarti bahwa penempatan mesin

baru tidak lebih ekonomis. Akan tetapi jika mesin yang tidak memiliki operator tersebut adalah

mesin-i (i = 1, 2, 3, 4), maka mesin-i merupakan mesin yang harus digantikan oleh mesin – 5.

Page 261: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

256 Riset Operasi : Suatu Tinjauan Algoritmis

3

5

9

247

M5

7

53

7

M

2

62

1 432

1

3

2

4

Mesin

Op

era

tor 1

8

2

2

5

0 0005* 0

Tabel 7.10 a

Tabel 7.10 a menunjukkan biaya penempatan yang baru dengan masuknya mesin-5. Biaya

penempatan operator semu ke tiap mesin = 0. Tabel 7.10 b merupakan pengurangan tabel

berdasarkan elemen terkecil baris. Karena semua elemen pada baris-5 = 0, maka pengurangan

dengan elemen terkecil tiap kolom tidak menghasilkan perubahan tabel.

Tabel 7.10 c menunjukkan garis penutup yang dibutuhkan untuk menutup semua nol pada tabel

7.10 b. Tampak hanya dibutuhkan 4 buah garis sehingga tabel perlu direvisi.

2

3

7

136

M-23

5

31

5

M-2

0

40

1 432

1

3

2

4

Mesin

Op

era

tor 0

6

0

0

5

0 0005* 0

2

3

7

136

M-23

5

31

5

M-2

0

40

1 432

1

3

2

4

Mesin

Op

era

tor 0

6

0

0

5

0 0005* 0

(b) (c)

Tabel 7.10 b - c

Tabel 7.10 d adalah hasil revisi tabel 7.10 c, yang merupakan tabel optimalnya. Baris/kolom

yang memiliki elemen 0 tunggal adalah baris 3, 4 (sel x34 dan x42) dan kolom 1, 4 (sel x51 dan

x14). Karena hanya tersisa sebuah sel (lihat tabel 7.10 e), maka x23 juga diambil sebagai alokasi

optimalnya.

Page 262: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 257

0

0

0

Mesin

2

2

6

035

M-33

4

21

5

M-2

3

1 432

1

3

2

4

Op

era

tor 0

6

0

5

1015* 1

0

2

2

6

035

M-33

4

21

5

M-2

0

30

1 432

1

3

2

4

Mesin

Op

era

tor 0

6

0

0

5

0 1015* 1

(d) (e)

Tabel 7.10 d - e

Jadi alokasi optimalnya adalah : operator-1 – mesin-4 (biaya = 2) ; operator-2 – mesin-3 (biaya

= 2) ; operator-3 – mesin-5 (biaya = 2) ; operator-4 – mesin-2 (biaya = 2). Mesin – 1 tidak

dijalankan (karena dialokasikan ke operator semu). Total biaya yang dibutuhkan = 2 + 2 + 2 + 2

= 8 (ribuan). Tampak bahwa dengan mengganti mesin-1 dengan mesin-5 maka biaya turun dari

14 menjadi 8. Caranya adalah dengan mengganti mesin – 1 dengan mesin – 5.

7.3.4 Fungsi Memaksimumkan

Seperti pada masalah transportasi (bab 5), untuk menyelesaikan fungsi yang memaksimumkan

dalam masalah penugasan, soal terlebih dahulu dijadikan fungsi meminimumkan dengan cara

menegatifkan semua biaya. Setelah menjadi masalah meminimumkan, langkah selanjutnya

dilakukan seperti pada contoh-contoh terdahulu.

Contoh 7.7

Sekelompok mahasiswa yang terdiri dari 4 pria dan 4 wanita merencanakan suatu rekreasi

bersama. Tingkat kebahagiaan antara pria ke-i dan wanita ke-j jika mereka berpacaran

dinyatakan dalam tabel 7.11 (data diambil dari sifat-sifat mereka)

Page 263: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

258 Riset Operasi : Suatu Tinjauan Algoritmis

Wanita

Pria 1 2 3 4

1 11 1 5 8

2 9 9 8 1

3 10 3 5 10

4 1 13 12 11

Masalah yang dihadapi adalah menentukan pasangan pria dan wanita selama rekreasi agar

memaksimumkan jumlah total kebahagiaan semua pasangan. Nyatakan masalah ini dalam

masalah penugasan dan selesaikanlah.

Penyelesaian

Mula-mula tabel kebahagiaan (yang harus dimaksimumkan) diubah menjadi tabel kesedihan

(yang harus diminimumkan) dengan cara menegatifkan semua isi tabel 7.11. Didapatkan tabel

7.12 a.

Hasil pengurangan tabel 7.12 a dengan elemen terkecil tiap baris tampak pada tabel 7.12 b.

Perhatikan bahwa hasil pengurangan ini selalu menghasilkan tabel dengan semua elemen yang

tidak negatif. Pengurangan tiap kolom tampak pada tabel 7.12 c.

-1

-11

-10

-8-9-9

-5-1

-1

-5-3

-11

-10

-8

-12-13

1 432

1

3

2

4

Wanita

Pri

a

Tabel 7.12 a

Jumlah garis minimum yang dibutuhkan untuk menutup semua nol pada tabel 7.12 c adalah

sebanyak 4 buah. Ini berarti bahwa tabel 7.12 c sudah optimal.

Page 264: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 259

8

0

0

100

610

12

57

2

0

3

10

1 432

1

3

2

4

Wanita

Pri

a

8

0

0

000

510

12

47

2

0

3

00

1 432

1

3

2

4

Wanita

Pri

a

(b) (c)

Tabel 7.12 b-c

8

0

0

000

510

12

47

2

0

3

00

1 432

1

3

2

4

Wanita

Pri

a

Tabel 7.12 d

Pasangan yang diasosiasikan secara tunggal adalah pria-3 dengan wanita-4 (dengan kebahagiaan

= 10) dan pria-1 dengan wanita-1 (kebahagiaan = 11). Jika baris 1, 3 dan kolom 1, 4 dihilangkan

tampak bahwa ada 2 alternatif penyelesaian (lihat tabel 7.12 d)

Alternatif – 1 : Pria-2 dengan wanita-2 (kebahagiaan = 9) dan pria-4 dengan wanita-3

(kebahagiaan = 12)

Alternatif – 2 : Pria-2 dengan wanita-3 (kebahagiaan = 8) dan pria-4 dengan wanita-2

(kebahagiaan = 13)

Untuk semua alternatif tersebut, total kebahagiaan = 42

Page 265: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

260 Riset Operasi : Suatu Tinjauan Algoritmis

7.4 Masalah Penjaja Keliling (Travelling Salesman

Problem)

Masalah penjaja keliling dapat dinyatakan sebagai berikut :

Diberikan beberapa kota dan jalan yang menghubungkan kota-kota tersebut. Seseorang hendak

mengunjungi tiap kota tepat satu kali, dimulai dan diakhiri pada kota yang sama. Masalahnya

adalah menentukan urut-urutan kota yang harus dikunjungi sehingga total jarak (atau waktu)

yang ia tempuh seminimum mungkin.

Masalah penjaja keliling dapat diselesaikan dengan menganggapnya sebagai masalah penugasan

dengan pekerja dan pekerjaan sama-sama menyatakan kota-kota yang hendak dikunjungi. Biaya

tiap pasang kota adalah jarak (atau waktu) yang hendak diminimumkan. Supaya tidak langsung

kembali ke kota yang sama maka biaya cii = M untuk semua i

Misalkan perjalanan dimulai dari kota-1. Jika pasangan kota penyelesaian masalah penugasan

meliputi semua kota sebelum kembali ke kota-1, maka berarti penyelesaian masalah penugasan

adalah penyelesaian masalah penjaja keliling. Akan tetapi jika sebelum mengunjungi semua

kota, ia sudah kembali ke kota-1, maka terjadi subtour. Dalam keadaan ini masalah penugasan

harus dipecah menjadi 2 bagian dengan menggunakan pendekatan branch & bound dengan

memutuskan salah satu jalur subtour. Masing-masing bagian diselesaikan dengan algoritma

hungarian. Untuk lebih jelasnya, perhatikan contoh 7.8 dan 7.9 berikut ini.

Contoh 7.8

Seorang salesman hendak mengunjungi 4 kota berbeda (A, B, C dan D) seperti yang tampak

dalam gambar 7.2 berikut ini. Angka di samping garis menunjukkan waktu tempuh (jam) satu

kota dengan yang lainnya. Tentukan urutan perjalanan yang harus ia lalui agar total waktunya

minimum !

Page 266: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 261

2

A

DC

B

1

1

2

5

4

Gambar 7.2

Penyelesaian

Masalah penugasan yang sesuai terdiri dari 4 baris dan 4 kolom seperti yang tampak pada tabel

7.13. Biaya menyatakan waktu tempuhnya.

1

M

2

1M4

24

2

M1

M

5

2

51

A DCB

A

C

B

D

Kota Tujuan

Ko

ta A

sa

l

Tabel 7.13

0

M

1

0M3

02

1

M0

M

4

0

40

A DCB

A

C

B

D

Kota Tujuan

Ko

ta A

sa

l

0

M

0

0M2

02

0

M0

M

4

0

40

A DCB

A

C

B

D

Kota Tujuan

Ko

ta A

sa

l

(a) (b)

Tabel 7.14 a – b

Page 267: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

262 Riset Operasi : Suatu Tinjauan Algoritmis

Hasil pengurangan baris dan kolom tampak pada tabel 7.14 a dan b. Untuk menyingkat

penulisan, maka pengurangan terhadap sel dengan biaya M tetap ditulis M karena pengurangan

tersebut tidak berpengaruh terhadap pemilihan sel tersebut sebagai alokasi optimal.

Tampak bahwa tabel 7.14 b sudah optimal. Ada 4 alternatif penyelesaian, masing- masing adalah

(angka dalam kurung menyatakan waktu yang dibutuhkan) :

Alternatif – 1 Alternatif – 2 Alternatif – 3 Alternatif – 4

A – C (2)

B – D (1)

C – A (2)

D – B (1)

Total = 6

Subtour :

A-C ; C-A

B-D ; D-B

A – C (2)

B – D (1)

C – B (1)

D – A (2)

Total = 6

Tour :

A-C-B-D-A

A – D (2)

B – C (1)

C – A (2)

D – B (1)

Total = 6

Tour :

A-D-B-C-A

A – D (2)

B – C (1)

C – B (2)

D – A (1)

Total = 6

Subtour :

A-D ; D-A

B-C ; C-B

Karena ada alternatif yang merupakan tour murni (mulai dari A, mengunjungi semua kota lain

sebelum kembali ke A lagi) maka penyelesaian masalah penugasan tersebut juga sekaligus

merupakan penyelesaian masalah penjaja keliling.

Ada 2 tour optimal yang bisa dilakukan yaitu pada alternatif – 2 dan alternatif – 3. Perhatikan

bahwa sebenarnya kedua tour tersebut marupakan perjalanan yang bolak balik saja. Ini terjadi

karena graf pada gambar 7.2 bersifat simetris.

Contoh 7.9

Ulangi contoh 7.8 jika salesman tersebut harus mengunjungi 5 kota yang jaraknya (km) tampak

pada gambar 7.3.

Page 268: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 263

20

8

6

30

20

16 22

29

11

13

A

D C

BE

Gambar 7.3

Penyelesaian

Sub problem - 1

20

M

22

29M13

2213

16

M29

M

11

16

1120

A DCB

A

C

B

D

8

20

30

6

E

6 20308E M

12

M

6

16M0

110

5

M11

M

0

10

07

A DCB

A

C

B

D

0

14

19

0

E

0 19240E M

(a) (b)

Tabel 7.15 a - b

Tabel 7.15 a adalah tabel masalah penugasan yang sesuai dengan masalah salesman pada gambar

7.3. Setelah pengurangan per baris dan per kolom, ternyata tabel belum optimal dan perlu

direvisi sekali lagi. Revisi dilakukan dengan mengambil garis penutup nol pada kolom 4, 5 serta

baris 4, 5. Tabel 7.15 b merupakan tabel optimalnya.

Ada 2 penyelesaian (keduanya memiliki total jarak 49), yaitu :

C-D (11) ; D-C (11) ; A-B (13) ; E-A (6) ; B-E (8).

C-D (11) ; D-C (11) ; A-E (6) ; B-A (13) ; E-B (8).

Page 269: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

264 Riset Operasi : Suatu Tinjauan Algoritmis

Keduanya memiliki 2 buah sub tour yaitu : C-D-C dan A-B-E-A (atau sebaliknya). Berarti

penyelesaian masalah penugasan bukan merupakan penyelesaian masalah salesman tersebut

karena ia harus kembali ke kota awal sebelum mengunjungi semua kota.

Ambil sembarang subtour, misal C-D (atau D-C). Percabangan masalah dilakukan dengan

melarang penggunaan jalur C-D (sub problem – 2) atau melarang penggunaan jalur D-C (sub

problem – 3). Ini bisa dilakukan dengan mengambil cCD = M (atau cDC = M).

Sub problem – 2 = sub problem – 1 + cCD = M

2

M

0

21M5

165

5

M5

M

M

0

07

A DCB

A

C

B

D

0

9

8

0

E

0 4240E M

20

M

22

29M13

2213

16

M29

M

M

16

1120

A DCB

A

C

B

D

8

20

30

6

E

6 20308E M

(a) (b)

Tabel 7.16 a - b

Tabel 7.16 a adalah tabel awal sub problem 2. Sel yang diarsir adalah perubahan yang dilakukan

dari tabel 7.15 a, yaitu dengan melarang jalur C-D. Dengan pengurangan baris dan kolom

ternyata tabel sudah optimal. Tabel 7.16 b merupakan tabel optimalnya

Tabel 7.16 b memiliki penyelesaian tunggal yaitu A-D (16) ; B-E (8) ; C-A (22) ; D-C (11)

; E-B (8) dengan total jarak = 65. Tampak bahwa penyelesaian inipun masih mengandung 2

buah sub tour yaitu A-D-C-A dan B-E-B. Jadi percabangan harus dilakukan lagi hingga

didapat penyelesaian yang tidak mengandung sub tour. Misalkan dipilih salah satu tour secara

bebas, yaitu B-E. Percabangan dilakukan dengan melarang jalur B-E (sub problem 4) dan

melarang jalur E-B (sub problem 5)

Page 270: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 265

Sub problem – 3 = sub problem – 1 + cDC = M

Tabel 7.17 a adalah tabel awal sub problem 3 dan tabel 7.17 b adalah penyelesaian optimalnya.

20

M

22

29M13

2213

16

M29

MM

16

11

20

A DCB

A

C

B

D

8

20

30

6

E

6 20308E M

12

M

11

5M5

05

0

M16

M

10

0

2

A DCB

A

C

B

D

0

4

19

0

E

0 1480E M

M

(a) (b)

Tabel 7.17 a – b

Tabel 7.17 b juga memiliki penyelesaian tunggal yaitu A-C (22) ; B-E (8) ; C-D (11) ; D-A (16)

; E-B (8) dengan jarak total = 65. Penyelesaian ini masih mengandung sub tour yaitu A-C-D-A

dan B-E-B sehingga perlu dilakukan pencabangan. Misalkan percabangan dilakukan pada jalur

B-E dengan cara melarang penggunaan jalur B-E (sub problem 6) atau jalur E-B (sub problem

7).

Sub Problem - 1

Sub Tour :

C - D - C

A - B - E - A

Jarak = 49

Sub Problem - 2

Sub Tour :

A - D - C - A

B - E - B

Jarak = 65

Sub Problem - 3

Sub Tour :

A - C - D - A

B - E - B

Jarak = 65

CCD = M CDC = M

Gambar 7.4

Percabangan masalah semula ke sub problem 2 dan 3 dapat digambarkan dalam gambar 7.4.

Perhatikan bahwa pada setiap cabang yang lebih bawah, total jaraknya akan semakin besar

Page 271: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

266 Riset Operasi : Suatu Tinjauan Algoritmis

Sub problem – 4 = sub problem – 2 + cBE = M

Percabangan dari sub problem 2 dilakukan dengan memutuskan jalur B-E (sub problem 4) dan

jalur E-B (sub problem 5).

Tabel 7.18 a menunjukkan tabel penugasan awal dari sub problem 4 dan tabel 7.17 b adalah tabel

optimalnya.

Tampak bahwa pada tabel optimalnya tidak terbentuk sub tour. Yang terjadi adalah tour optimal

A – E – B – D – C – A dengan total jarak 67. Karena merupakan tour pertama yang didapatkan,

maka tour sub problem 4 disimpan sebagai calon penyelesaian optimal. Ada kemungkinan

bahwa pada sub problem lain akan didapatkan tour lain yang memiliki total jarak yang lebih

kecil. Akan tetapi jika sub problem lain tidak memiliki tour atau memiliki tour dengan total jarak

lebih dari 67, maka tour sub problem 4 menjadi penyelesaian masalah salesman.

20

M

22

29M13

2213

16

M29

M

M

16

M

20

A DCB

A

C

B

D 11 20

30

6

E

6 20308E M

0

M

0

16M0

165

5

M5

M

3

M

7

A DCB

A

C

B

D

M

9

8

0

E

0 7240E M

0

(a) (b)

Tabel 7.18 a – b

Sub problem – 5 = sub problem – 2 + cEB = M

Tabel 7.19 a dan b merupakan tabel awal dan tabel optimal sub problem 5. Seperti juga pada sub

problem 4, sub problem 5 juga menghasilkan tour optimal A – D – C – B – E – A dengan total

jarak 70. Karena total jarak yang dihasilkan lebih besar dari sub problem 4 (= 67), maka tour sub

problem 5 tidak dipakai.

Page 272: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 267

20

M

22

29M13

2213

16

M29

M

M

16

M

20

A DCB

A

C

B

D 11 20

30

6

E

6 2030

8

E M

2

M

0

21M5

160

5

M0

M

0

M

2

A DCB

A

C

B

D

0

9

8

0

E

0 424ME M

0

(a) (b)

Tabel 7.19 a - b

Sub Problem - 1

Sub Tour :

C - D - C

A - B - E - A

Jarak = 49

Sub Problem - 2

Sub Tour :

A - D - C - A

B - E - B

Jarak = 65

Sub Problem - 3

Sub Tour :

A - C - D - A

B - E - B

Jarak = 65

Sub Problem - 5

Tour :

A-D-C-B-E-A

Jarak = 70

(diabaikan karena

jarak > 67)

Sub Problem - 4

Tour :

A-E-B-D-C-A

Jarak = 67

(menjadi calon

solusi optimal)

CEB = MCBE = M

CCD = M CDC = M

Gambar 7.5

Gambar 7.5 menunjukkan percabangan yang dilakukan pada sub problem 2. Meskipun tour

calon penyelesaian optimal sudah diperoleh, proses tidak dapat dihentikan dan percabangan tetap

harus dilakukan pada sub problem 3 karena ada kemungkinan cabang dari sub problem 3

memberikan tour dengan total jarak lebih kecil dari 67.

Page 273: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

268 Riset Operasi : Suatu Tinjauan Algoritmis

Sub problem – 6 = sub problem – 3 + cBE = M

Sub problem 6 merupakan pencabangan sub problem 3 dengan menutup jalur E – B. Tabel 7.20

a dan b masing-masing merupakan tabel awal dan tabel optimal sub problem –6.

Pada tabel 7.20 b tampak bahwa terdapat tour A – E – B – C – D – A dengan total jarak = 70.

Perhatikan bahwa sebenarnya tour ini merupakan kebalikan tour pada sub problem 5. Karena

total jaraknya > 67, maka tour pada sub problem inipun diabaikan.

A DCB E

20

M

22

29M13

2213

16

M29

M

M

16

11

20

A

C

B

D M 20

30

6

6 20308E M

7

M

11

0M0

05

0

M16

M

10

0

2

A DCB

A

C

B

D

M

4

19

0

E

0 1480E M

M

(a) (b)

Tabel 7.20 a – b

Sub problem – 7 = sub problem – 3 + cEB = M

Sub problem 7 merupakan percabangan sub problem 3 dengan menutup jalur E-B. Tabel 7.21 a

dan b merupakan tabel awal dan tabel optimalnya. Penyelesaian optimal sub problem 7

menghasilkan tour A – C – D – B – E – A dengan total jarak 67. Perhatikan bahwa tour yang

dihasilkan sub problem 7 adalah kebalikan tour yang dihasilkan sub problem 4. Ini terjadi karena

jalur antar 2 kota merupakan jalur yang bolak-balik dengan jarak yang sama. Secara umum, jika

jalur antar kota adalah jalur searah (atau 2 arah tetapi dengan jarak berbeda), maka tour optimal

yang dihasilkanpun juga tidak akan bolak-balik.

Karena sudah tidak ada lagi sub tour yang terjadi pada sub problem 4-7, maka proses

percabangan dihentikan. Tour yang menghasilkan total jarak terpendek diambil sebagai

penyelesaian masalah salesman, yaitu tour A – E – B – D – C – A (atau sebaliknya) dengan

total jarak = 67

Page 274: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 269

A DCB E

20

M

22

29M13

2213

16

M29

M

M

16

11

20

A

C

B

D M 20

30

6

6 2030

8

E M

12

M

11

5M5

03

0

M14

M

10

0

0

A DCB

A

C

B

D

0

4

19

0

E

0 148ME M

M

(a) (b)

Tabel 7.21 a – b

Seluruh proses percabangan capat digambarkan dalam gambar 7.6. Calon solusi optimal pada

sub problem 4 akhirnya diambil sebagai penyelesaian optimal karena tidak ada cabang yang

memiliki total jarak < 67.

Page 275: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

270 Riset Operasi : Suatu Tinjauan Algoritmis

Sub Problem - 1

Sub Tour :

C - D - C

A - B - E - A

Jarak = 49

Sub Problem - 2

Sub Tour :

A - D - C - A

B - E - B

Jarak = 65

Sub Problem - 3

Sub Tour :

A - C - D - A

B - E - B

Jarak = 65

Sub Problem - 5

Tour :

A-D-C-B-E-A

Jarak = 70

(diabaikan karena

jarak > 67)

Sub Problem - 4

Tour :

A-E-B-D-C-A

Jarak = 67

(menjadi calon

solusi optimal)

CEB = MCBE = M

CCD = M CDC = M

Sub Problem - 7

Tour :

A-C-D-B-E-A

(kebalikan SP-4)

Jarak = 67

(optimal)

Sub Problem - 6

Tour :

A-E-B-C-D-A

(kebalikan SP-5)

Jarak = 70

(diabaikan krn >67)

CEB = MCBE = M

Gambar 7.6

Page 276: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 271

SOAL-SOAL LATIHAN

1. Matriks di bawah ini menunjukkan biaya penempatan suatu pekerjaan ke mesin tertentu.

Mesin

Pekerjaan A B C

1 380 610 330

2 210 380 415

3 260 210 300

a. Selesaikanlah masalah penugasan tersebut agar total biayanya minimum

b. Misalkan angka dalam tabel diatas merupakan keuntungan. Apakah penyelesaian

optimalnya berubah ?

2. Perusahaan garmen Simon Corp mempunyai masalah dalam mengalokasikan pesanan

produksi yang diterimanya untuk bulan depan di beberapa departemennya. Perusahaan

mengetahui besarnya biaya pengadaan setiap produksi yang dipesan di tiap departemen,

seperti yang tampak pada tabel di bawah ini. Selanjutnya perusahaan tersebut harus

menentukan biaya termurah untuk semua produksinya karena tiap departemen hanya mampu

mengerjakan satu pekerjaan saja.

Departemen

Pesanan A B C D E

1 120 150 75 90 100

2 140 80 90 85 170

3 50 40 40 70 110

4 75 65 45 70 90

5 110 90 140 115 100

3. Selesaikanlah masalah penugasan berikut ini dengan tujuan untuk meminimumkan biaya.

a.

-3 2 1

1 3 4

1 2 6

Page 277: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

272 Riset Operasi : Suatu Tinjauan Algoritmis

b.

3 8 2 10 3

8 7 2 9 7

6 4 2 7 5

8 4 2 3 5

9 10 6 9 10

c.

3 9 2 3 7

6 1 5 6 6

9 4 7 10 3

2 5 4 2 1

9 6 2 4 6

4. Selesaikanlah masalah penugasan berikut ini dengan algoritma Hungarian. Carilah siapa

yang harus melakukan tiap-tiap pekerjaan untuk meminimumkan biaya keseluruhan. Berapa

efektifitas keseluruhan yang paling minimum ?

Pekerjaan

Pekerja 1 2 3 4

1 - 2 2 5

2 2 - 4 4

3 1 2 - 2

4 2 4 3 -

5. Untuk meningkatkan rasa tertarik dan untuk memberikan lingkungan diskusi ilimiah,

fakultas teknik memutuskan untuk mengadakan seminar tentang 4 topik utama yaitu

Ekologi, Energi, Transportasi dan Bioteknik. Seminar tersebut dilakukan dalam satu minggu

pada siang hari. Akan tetapi pengaturan seminar (satu seminar untuk setiap topik dan satu

seminar dalam sehari) harus dilakukan secara hati-hati sehingga jumlah mahasiswa yang

tidak dapat mengikuti seminar (karena bersamaan dengan jadwal kuliah) sesedikit mungkin.

Setelah diteliti, jumlah mahasiswa yang tidak dapat hadir pada hari tertentu adalah sebagai

berikut :

Page 278: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

PENUGASAN 273

Topik Seminar

Hari Ekologi Energi Transportasi Bioteknik

Senin 50 40 60 20

Selasa 40 30 40 30

Rabu 60 20 20 30

Kamis 30 30 10 30

Jumat 10 20 10 30

a. Tunjukkan bahwa masalah untuk menentukan jadwal seminar yang optimal ekuivalen

dengan masalah penugasan.

b. Dengan menggunakan (a), carilah pengaturan jadwal seminar yang paling optimal !

6. Empat buah pekerjaan dalam dilakukan oleh 5 buah mesin berbeda. Waktu pemanasan

(setup) setiap pekerjaan pada berbagai mesin tampak pada tabel berikut ini :

Mesin

Pekerjaan 1 2 3 4 5

1 10 11 4 2 8

2 7 11 10 14 12

3 5 6 9 12 14

4 5 6 9 12 14

Carilah pengaturan pekerjaan pada mesin yang akan meminimumkan total waktu setup.

7. Perhatikan kembali soal latihan #3 b - c. Misalkan matriks yang ada merupakan jarak tempuh

antar 2 kota. Seorang sales hendak berkunjung ke tiap kota masing-masing satu kali.

Tentukan urut-urutan kota yang harus ia kunjungi supaya total perjalanan yang ia lakukan

sependek mungkin. Berapa total jarak yang ia tempuh ?

8. Suatu kelompok pemuda/i yang terdiri dari 6 pria dan 6 wanita menyukai satu sama lain

dan ingin saling berpacaran dengan teman dalam kelompoknya. Tujuannya adalah untuk

memaksimumkan total kebahagiaan. Tiap wanita ke-i menentukan tingkat kesukaannya

terhadap pria ke-j sebagai aij, dan setiap pria menentukan tingkat kesukaannya terhadap

Page 279: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

274 Riset Operasi : Suatu Tinjauan Algoritmis

wanita sebagai bij. Besaran cij = aij + bij dipakai sebagai ukuran tingkat kebahagiaan

pasangan pria-i dengan wanita-j jika mereka menikah nantinya. Dengan tabel cij berikut

ini, bagaimana pasangan-pasangan harus dipilih ?

Wanita

Pria 1 2 3 4 5 6

1 5 0 -6 8 7 -4

2 -5 2 -3 0 6 -7

3 3 -4 4 3 -5 2

4 3 4 9 7 -2 3

5 0 -1 -3 2 -1 2

6 4 3 2 -1 0 4

Page 280: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

BBaabb 88

MODEL JARINGAN

Jaringan adalah suatu sistem yang terdiri dari titik dan garis-garis yang menghubungkan titik-titik

tersebut. Dalam dunia nyata, titik bisa dipandang sebagai lokasi (kota, daerah, dll) dan garis

adalah hubungan antara lokasi-lokasi tersebut (misal jaringan listrik, jalan yang menghubungkan

kota, jariangan pipa air, dll).

Pada bab ini dibahas tentang beberapa permasalahan yang dapat dinyatakan dalam model

jaringan, antara lain menentukan pohon rentang minimum, pencarian jarak terdekat, serta

penjadwalan proyek

8.1 Graf Sebagai Representasi Jaringan

Beberapa contoh permasalahan yang dapat dinyatakan dalam model jaringan antara lain :

1. Suatu perusahaan air minum hendak menghubungkan beberapa daerah dengan pipa. Jika

diketahui biaya pengadaan pipa air, bagaimana jaringan pipa air yang harus dibuat agar

semua daerah teraliri air, tetapi total panjang piapa yang digunakan seminimum mungkin ?

2. Suatu barang hendak dikirimkan dari kota A ke kota B. Jika diketahui kota-kota diantara A

dan B beserta jaraknya, kota-kota manakah yang harus dilewati agar jalurnya terpendek ?

3. Suatu proyek melibatkan sejumlah aktivitas yang harus dilakukan dalam urutan tertentu.

Bagaimana manajer proyek menentukan penjadwalan proyek agar proyek dapat diselesaikan

secepat-cepatnya ?

Jaringan dapat direpresentasikan dengan baik melalui graf. Untuk itu sebelum membicarakan

dan menyelesaikan masalah jaringan, terlebih dhulu kita bicarakan tentang graf, mulai dari

definisi-definisi dasar, graf-graf khusus, dan struktur data penyimpanan graf dalam komputer.

Page 281: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

276 Riset Operasi : Suatu Tinjauan Algoritmis

8.1.1 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.

Dua titik dikatakan berhubungan (adjacent) jika ada garis yang menghubungkan keduanya.

Titik yang tidak mempunyai garis yang berhubungan dengannya disebut Titik Terasing

(Isolating Point)

Graf yang tidak mempunyai titik (sehingga tidak mempunyai garis) disebut Graf Kosong.

Berdasarkan jenis garisnya, graf dapat dibagi menjadi 2 yaitu Graf Berarah (directed graph) dan

Graf Tak Berarah (undirected graph). Dalam graf berarah, semua garisnya memiliki arah yang

menunjukkan titik asal dan tujuan garis yang bersangkutan. Jika semua garisnya tidak memiliki

arah, maka grafnya disebut Graf Tak Berarah. Jika hanya disebutkan graf saja, maka yang

dimaksud adalah graf tak berarah.

Berdasarkan label garisnya, graf dapat dibagi menjadi 2 macam yaitu graf tak berlabel dan graf

berlabel. Dalam graf tak berlabel, garis yang menghubungkan kedua titik (baik dalam graf

berarah maupun tak berarah) tidak menyatakan bobot/kualitas hubungan tersebut. Garis hanyalah

sekedar menunjukkan bahwa kedua titik berhubungan. Sebaliknya, dalam graf berlabel, setiap

garis diasosiasikan dengan suatu bilangan riil yang menunjukkan bobot hubungan antara kedua

titik. Dalam dunia nyata, bobot garis menyatakan jarak, waktu, biaya, dll

Graf akan lebih mudah terbaca jika dinyatakan dengan gambarnya. 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). Perhatikan

bahwa panjang, kelengkungan, ketebalan, bentuk garis serta letak titik tidak berpengaruh dalam

suatu graf. Yang dipentingkan adalah titik-titik mana yang berhubungan.

Page 282: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 277

Contoh 8.1

Ada 7 kota (A, ... , G) yang beberapa diantaranya 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.

Penyelesaian

Misalkan kota-kota dianggap sebagai titik-titik. Dua titik/kota dihubungkan dengan garis bila dan

hanya bila ada jalan yang menghubungkan langsung kedua kota tersebut. Maka keadaan

transportasi di 7 kota dapat dinyatakan dalam gambar 8.1

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.

e2e3

e4

e1

e5

B

A

C

D

E

F

G

Gambar 8.1

Page 283: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

278 Riset Operasi : Suatu Tinjauan Algoritmis

Contoh 8.2

Ada 4 macam golongan darah, masing–masing A, B, AB dan O. Darah gol O dapat diberikan

kesemua golongan. Darah golongan A dan B dapat diberikan ke golongannya sendiri atau ke

golongan O. Darah golongan AB hanya dapat diberikan pada pasien dengan golongan AB.

Gambarlah graf untuk menyatakan keadaan tersebut.

Penyelesaian

AB

A B

O

Gambar 8.2

Graf untuk menyatakan transfusi darah merupakan graf berarah karena transfusi hanya dapat

dilakukan searah. Titik dalam graf menyatakan golongan darah. garis dari titik vi ke vj

menunjukkan transfusi dari golongan darah vi ke golongan darah vj. Gambar 8.2 menyatakan

keadaan tranfusi darah yang mungkin dilakukan.

Contoh 8.3

Dalam suatu propinsi, ada 8 kota (v1, v2, ..., v8) yang akan dihubungkan dengan jaringan listrik.

Biaya pemasangan jaringan listrik yang mungkin dibuat antar 2 kota adalah sebagai berikut :

Page 284: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 279

Garis Kota yang dihubungkan Biaya per satuan

e4

e7

e2

e8

e9

e1

e3

e10

e5

e11

e6

v2 – v3

v4 – v6

v1 – v7

v3 – v4

v3 – v5

v1 – v2

v1 – v4

v6 – v8

v7 – v8

v5 – v6

v6 – v7

3

4

5

5

5

15

15

15

15

15

18

Nyatakan masalah tersebut dalam suatu graf

Penyelesaian

Dalam graf, kota dinyatakan dengan titik dan garis antar 2 titik menyatakan bahwa antara kedua

kota dapat dihubungkan dengan jaringan listrik secara langsung. Mengingat terdapat biaya

pemasangan antar 2 kota, maka graf yang paling tepat digunakan adalah graf berlabel. Label

suatu titik menyatakan biaya pemasangan tersebut.

Gambar 8.3 menyatakan graf yang sesuai dengan permasalahan. Angka dalam kurung di setiap

garis menyatakan bobot/biaya pemasangan listrik antar 2 kota.

v2

v3v4

v5v8v6

v1

v7

e1 (15)

e2 (5) e3 (15) e4 (3)

e5 (15)e6 (18)

e7 (4)

e8 (5)

e9 (5)

e10 (15) e11 (15)

Gambar 8.3

Graf Sederhana (Simple Graph) adalah graf yang tidak mempunyai loop ataupun garis paralel.

Page 285: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

280 Riset Operasi : Suatu Tinjauan Algoritmis

Graf Lengkap (Complete Graph) dengan n titik (simbol Kn) adalah graf sederhana dengan

n titik, dimana setiap 2 titik berbeda dihubungkan dengan suatu garis. Banyaknya garis dalam

suatu graf lengkap dengan n titik adalah ( 1)

2

n n buah

Contoh 8.4

Gambarlah K2, K3, K4, K5, dan K6 !

Penyelesaian

K2 K3 K4 K5 K6

Gambar 8.4

8.1.2 Subgraf

Konsep subgraf sama dengan konsep himpunan bagian. Dalam teori himpunan, himpunan A

dikatakan merupakan himpunan bagian B bila dan hanya bila setiap anggota A merupakan

anggota B. Karena graf merupakan himpunan yang terdiri dari titik dan garis maka H dikatakan

subgraf G jika semua titik dan garis H juga merupakan titik dan garis dalam G.

Misalkan G adalah suatu graf. Graf H dikatakan subgraf G bila dan hanya bila :

a. V (H) V (G)

b. E (H) E (G)

c. Setiap garis dalam H mempunyai titik ujung yang sama dengan garis tersebut dalam G.

Contoh 8.5

Page 286: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 281

Dalam gambar 8.5 (a) – (b), apakah H merupakan subgraf G ?

a.

b.

Gambar 8.5

Penyelesaian

a. V (H) = { v2, v3 } dan V (G) = { v1, v2, v3 }, sehingga V (H) V (G).

E(H) = { e4 } dan E(G) = { e1, e2, e3, e4 } sehingga E(H) E(G). Garis e4 di H merupakan

loop pada v2 dan garis e4 juga merupakan loop pada v2 di G. Maka H merupakan subgraf G.

b. H bukan merupakan subgraf G karena meskipun V(H) = V(G) = { v1, v2, v3 } dan E(H) =

E(G) = { e1, e2, e3, e4 }, tetapi garis e4 dalam H tidak menghubungkan titik yang sama dengan

garis e4 dalam G. Dalam H, garis e4 merupakan loop di v3, sedangkan dalam G, garis e4

merupakan loop dalam v2.

8.1.3 Derajat

Misalkan v adalah titik dalam suatu graf G. Derajat titik v (simbol d(v)) adalah jumlah garis

yang berhubungan dengan titik v dan garis suatu loop dihitung dua kali. Derajat total G adalah

jumlah derajat semua titik dalam G.

v2

e4

v3

HG

e2

e3

e4

e1

v1 v

3

v2

e2

e3

e1

v1

v3

v2

G

e4

e2

e3

e1

v1

v3

v2

H

e4

Page 287: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

282 Riset Operasi : Suatu Tinjauan Algoritmis

Perhatikan bahwa derajat total G adalah 2 kali jumlah garisnya. Ini berarti bahwa derajat total

suatu graf selalu genap. Akibatnya jumlah titik yang berderajat ganjil selalu genap.

Contoh 8.6

Tentukan derajat tiap-tiap titik dalam graf pada gambar 8.6. Berapa derajat totalnya ?

e2 e3

e1

v1

v3

v2

e4v5

v6

v4

e5

Gambar 8.6

Penyelesaian

d(v1) = 4 karena garis yang berhubungan dengan v1 adalah e2, e3 dan loop e1 yang dihitung dua

kali

d(v2) = 2 karena garis yang berhubungan dengan v2 adalah e2 dan e3.

d(v3) = d(v5) = 1 karena garis yang berhubungan dengan v3 dan v5 adalah e4

d(v4) = 2 karena garis yang berhubungan dengan v4 adalah loop e5 yang dihitung 2 kali.

d(v6) = 0 karena tidak ada garis yang berhubungan dengan v6.

Derajat total = 6

1

( )i

i

d v = 4 + 2 + 1 + 2 + 1 + 0 = 10.

8.1.4 Sirkuit Euler dan Sirkuit Hamilton

Misalkan G adalah suatu graf. Misalkan pula v dan w adalah 2 titik dalam G

Page 288: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 283

Suatu Walk dari v ke w adalah barisan titik-titik berhubungan dan garis secara berselang-seling,

diawali dari titik v dan diakhiri pada titik w.

Walk dengan panjang n dari v ke w dituliskan sebagai berikut : v0 e1 v1 e2 v2 … vn-1 en vn dengan

v0= v ; vn= w ; vi-1 dan vi adalah titik-titik ujung garis ei.

Path dengan panjang n dari v ke w adalah walk dari v ke w yang semua garisnya berbeda. Path

dari v ke w dituliskan sebagai v = v0 e1 v1 e2 v2 … vn-1 en vn = w dengan ei ej untuk i j.

Path sederhana dengan panjang n dari v ke w adalah Path dari v ke w yang semua titiknya

berbeda. Path sederhana dari v ke w berbentuk v = v0 e1 v1 e2 v2 … vn-1 en vn = w dengan ei

ej untuk i j dan vk vm untuk k m.

Sirkuit dengan panjang n adalah Path yang dimulai dan diakhiri pada titik yang sama. Sirkuit

adalah path yang berbentuk v0 e1 v1 e2 v2 … vn-1 en vn dengan v0 = vn.

Sirkuit sederhana dengan panjang n adalah Sirkuit yang semua titiknya berbeda. Sirkuit

sederhana berbentuk v0 e1 v1 e2 v2 … vn-1 en vn dengan ei ej untuk i j dan vk vm untuk k

m kecuali v0 = vn.

Relasi antara walk, path dan sirkuit dapat digambarkan dalam gambar 8.7

semua garis berbeda

Walk v w

v = v0 e1 v1 e2 v2 ... vn-1 en vn = w

vi-1 dan vi adalah titik-titik ujung garis ei

Sirkuit

semua titik

berbeda

titik awal dan akhir

sama (v0 = vn)

Sirkuit Sederhana

titik awal dan akhir

sama (v0 = vn)

semua titik berbeda

kecuali v0 = vn

Path v w

Path sederhana v w

Gambar 8.7

Page 289: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

284 Riset Operasi : Suatu Tinjauan Algoritmis

Contoh 8.7

Tentukan mana diantara barisan titik dan garis pada gambar 8.8 yang merupakan walk, path, path

sederhana, sirkuit dan sirkuit sederhana.

a. v1 e1 v2 e3 v3 e4 v3 e5 v4

b. v1 e1 v2 e3 v3 e5 v4 e5 v3 e6 v5

c. v2 e3 v3 e5 v4 e10 v5 e6 v3 e7 v6 e8 v2

d. v2 e3 v3 e5 v4 e10 v5 e9 v6 e8 v2

e. v1

v1

v5v6

v3 v4

v2

e4

e2

e1

e6

e3

e5

e7

e8

e9

e10

Gambar 8.8

Penyelesaian

a. Semua garis berbeda (e1, e3, e4 dan e5 masing-masing muncul sekali). Ada titik yang

berulang (v3 muncul 2 kali). Titik awal dan titik akhir tidak sama (titik awal = v1 dan titik

akhir v4). Disimpulkan bahwa barisan tersebut merupakan Path dari v1 ke v4 dengan panjang

4.

b. Ada garis yang muncul lebih dari sekali, yaitu e5 (muncul 2 kali) berarti barisan tersebut

merupakan walk dari v1 ke v5 dengan panjang 5.

c. Semua garisnya berbeda. Ada titik berulang (v3 muncul 2 kali). Titik awal dan akhirnya

sama, yaitu v2. Berarti barisan tersebut merupakan sirkuit dengan panjang 6. Barisan

tersebut bukan merupakan sirkuit sederhana karena ada 2 titik ditengah yang muncul lebih

dari 1 kali, yaitu v3

d. Semua garis dan titiknya berbeda. Barisan diawali dan diakhiri pada titik yang sama yaitu v3.

Disimpulkan bahwa barisan tersebut merupakan sirkuit sederhana dengan panjang 5.

Page 290: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 285

e. Karena barisan hanya memuat satu titik saja, berarti tidak ada garis yang sama. Barisan

diawali dan diakhiri pada titik yang sama serta tidak mempunyai titik yang sama diantaranya.

Maka disimpulkan bahwa barisan merupakan sirkuit sederhana (seringkali disebut sirkuit

trivial).

Misalkan G adalah suatu graf.

Dua titik v dan w dalam graf G dikatakan terhubung bila dan hanya bila ada walk dari v ke w

Graf G dikatakan terhubung bila dan hanya bila setiap 2 titik dalam G terhubung. Graf G

dikatakan tidak terhubung bila dan hanya bila ada 2 titik dalam G yang tidak terhubung.

Sirkuit Euler G adalah sirkuit dimana setiap titik dalam G muncul paling sedikit sekali dan setiap

garis dalam G muncul tepat satu kali.

Suatu graf terhubung G disebut Sirkuit Hamilton bila ada sirkuit yang mengunjungi setiap

titiknya tepat satu kali (kecuali titik awal yang sama dengan titik akhirnya)

Perhatikan perbedaan sirkuit Euler dan sirkuit Hamilton. Dalam sirkuit Euler, semua garis harus

dilalui tepat satu kali, sedangkan semua titiknya boleh dikunjungi lebih dari satu kali. Sebaliknya,

dalam sirkuit Hamilton semua titik harus dikunjungi tepat satu kali dan tidak harus melalui

semua garisnya. Dalam sirkuit Euler, yang dipentingkan adalah garisnya. Sebaliknya dalam

sirkuit Hamilton, yang dipentingkan adalah kunjungan pada titiknya.

Sirkuit Euler dapat dideteksi dengan mudah. Graf G adalah sirkuit Euler bila dan hanya bila

setiap titiknya memiliki derajat genap. Sebaliknya, tidak ada implikasi 2 arah yang menjelaskan

syarat tentang adanya sirkuit Hamilton.

Penerapan sirkuit Hamilton yang sering dijumpai adalah masalah penjaja keliling (travelling

salesperson problem). Diketahui beberapa kota beserta dengan jalan dan jarak antar kota.

Seseorang hendak berkeliling mengunjungi setiap kota tepat satu kali, dimulai dan diakhiri dari

kota yang sama. Masalahnya adalah jalur mana yang harus ia lalui agar total jarak perjalanannya

seminimum mungkin.

Page 291: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

286 Riset Operasi : Suatu Tinjauan Algoritmis

Pengertian walk, path, sirkuit dalam graf berarah sama dengan walk, path dan sirkuit dalam graf

tak berarah. Hanya saja dalam graf berarah, perjalanan yang dilakukan harus mengikuti arah

garis. Untuk membedakan dengan graf tak berarah, maka walk, path dan sirkuit dalam graf

berarah disebut walk berarah, path berarah dan sirkuit berarah.

Suatu graf berarah yang tidak memuat sirkuit berarah disebut Graf Berarah tanpa Sirkuit

(Directed Acyclic Graph = DAG), atau kadang-kadang disebut Asklik saja.

8.1.5 Representasi Graf Dalam Matriks

Matriks/array merupakan struktur data yang mudah dan tepat untuk menyatakan suatu graf. Hal

ini sangat membantu untuk membuat program komputer yang berhubungan dengan graf.

Dengan menyatakan graf sebagai suatu matriks, maka perhitungan–perhitungan yang diperlukan

dapat dilakukan dengan mudah. Matriks yang umum dipakai untuk merepresentasikan graf

adalah matriks hubung (adjacency matrix)

Misalkan G adalah graf tak berarah dengan titik–titik v1 v2 ... vn (n berhingga). Matriks hubung

yang sesuai dengan graf G adalah matriks Anxn = (aij) dengan aij = jumlah garis yang

menghubungkan titik vi dengn titik vj ; i, j = 1, 2, ... , n.

Perhatikan bahwa matriks hubung selalu merupakan matriks bujur sangkar karena jumlah baris =

jumlah kolom = jumlah titik dalam G. Apabila grafnya tak berarah maka jelas bahwa matriks

hubung selalu merupakan matriks yang simetris (aij = aji i, j).

Apabila grafnya merupakan graf sederhana berlabel, maka elemen matriks hubung menyatakan

bobot garis, bukan jumlah garis.

Contoh 8.8

Nyatakan graf dalam contoh 8.1 – 8.3 dalam matriks hubung

Penyelesaian

Page 292: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 287

A1 =

0 1 0 1 0 0 0

1 0 1 1 0 0 0

0 1 0 0 0 0 0

1 1 0 0 0 0 0

0 0 0 0 0 1 0

0 0 0 0 1 0 0

0 0 0 0 0 0 0

A B C D E F G

A

B

C

D

E

F

G

A2 =

1 1 1 1

0 1 0 1

0 0 1 1

0 0 0 1

O A B AB

O

A

B

AB

A3 =

1 2 3 4 5 6 7 8

1

2

3

4

5

6

7

8

0 15 15 5

15 0 3

3 0 5 5

15 5 0 4

5 0 15

4 15 0 18 15

5 18 0 15

15 15 0

v v v v v v v v

v

v

v

v

v

v

v

v

Perhatikan bahwa matriks hubung dalam contoh 8.1 merupakan matriks yang simetris karena

grafnya tak berarah. Akan tetapi matriks contoh 8.2 bukanlah matriks yang simetris.

8.1.6 Pohon

Misalkan G adalah suatu graf sederhana (tidak memiliki garis paralel dan loop).

G disebut Pohon bila dan hanya bila G tidak memuat sirkuit dan terhubung. Pohon semu (Trivial

Tree) adalah Pohon yang hanya terdiri dari sebuah titik. Pohon Kosong (Empty Tree) adalah

Pohon yang tidak mempunyai titik.

Page 293: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

288 Riset Operasi : Suatu Tinjauan Algoritmis

G disebut Hutan (Forest) bila dan hanya bila G tidak memuat sirkuit

Contoh 8.9

Tentukan mana diantara graf pada gambar 8.9 yang merupakan Pohon atau Hutan

v1

v3v2

v4 v8v7v6v5

v2

v3

v4

v5

v7

v1

v6

v8

(a) (b)

v2

v3

v4 v5

v7

v1

v6

v8

v9

v2

v3

v4

v5

v7v1

v6

v8

(c) (d)

Gambar 8.9

Penyelesaian

a. Merupakan pohon karena terhubung dan tidak memuat loop

b. Merupakan pohon karena terhubung dan tidak memuat loop.

Perhatikan bahwa sebenarnya graf pada gambar 8.9 (a) sama dengan graf pada gambar 8.9

(b), meskipun tampaknya berbeda. Suatu Pohon tidak harus mempunyai bentuk graf yang

menyerupai tanaman (ada akar dan cabang–cabang)

c. Bukan merupakan pohon karena walk v3 v4 v5 v3 merupakan suatu sirkuit.

Page 294: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 289

d. Merupakan suatu hutan karena tidak memuat sirkuit dan tidak terhubung. Hutan tersebut

terdiri dari 2 komponen yang masing-masing merupakan suatu pohon.

Pohon berakar (Rooted Tree) adalah suatu pohon dimana ada satu titik yang dikhususkan dari

yang lain. Titik tersebut disebut Akar (Root).

Tingkat (Level) suatu titik adalah banyaknya garis antara titik tersebut dengan akar. Tinggi

(height) pohon adalah tingkat maksimum yang dimiliki oleh titik-titik pohon.

Anak (Children) dari titik v adalah semua titik yang berhubungan langsung dengan v, tapi

mempunyai tingkat yang lebih tinggi dari v. Jika w adalah anak dari v, maka v disebut orang tua

(parent) dari w. Dua titik yang mempunyai orang tua yang sama disebut saudara (Sibling).

Pohon Biner (Binary Tree) adalah pohon berakar yang setiap titiknya mempunyai paling banyak

2 anak, yang disebut Anak Kiri (Left Child) dan Anak Kanan (Right Child).

Pohon Biner Penuh (Full Binary Tree) adalah Pohon Biner yang setiap titiknya mempunyai tepat

2 anak.

Pohon Rentang suatu graf terhubung G adalah subgraf G yang merupakan pohon dan memuat

semua titik dalam G. Setiap graf terhubung pasti memiliki paling sedikit sebuah pohon rentang.

Contoh 8.10

Carilah semua pohon rentang yang mungkin dibuat dari graf G yang tampak pada gambar 8.10

v2 v3

v4 v5

v1

v6

Gambar 8.10

Penyelesaian

Page 295: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

290 Riset Operasi : Suatu Tinjauan Algoritmis

Graf G mempunyai satu sirkuit yaitu v1 v2 v5 v4. Untuk membuat pohon rentang, salah atu garis

dalam sirkuit ini harus dihilangkan agar merupakan pohon.

Karena satu-satunya sirkuit adalah v1 v2 v5 v4 yang memuat 4 garis, sedangkan untuk menjadikan

pohon cukup dihilangkan satu garis, maka ada 4 pohon rentang yang mungkin dibuat. Keempat

pohon rentang tersebut tampak pada gambar 8.11 (a) – (d)

v2 v3

v4 v5

v1

v6

v2 v3

v4 v5

v1

v6

v2 v3

v4 v5

v1

v6

v2 v3

v4 v5

v1

v6

(a) (b) (c) (d)

Gambar 8.11

8.2 Pohon Rentang Minimum

Misalkan G adalah graf berlabel. Pohon rentang minimum adalah pohon rentang G dengan total

bobot seminimum mungkin.

Dalam contoh 8.3, jika semua jaringan listrik dibuat (sehingga jaringannya seperti pada gambar

8.3), maka akan memboroskan biaya. Beberapa jalur yang menghubungkan 2 kota secara

langsung tidak perlu dibuat karena kota-kota tersebut tetap dapat teraliri listrik secara tidak

langsung, tetapi dengan melalui kota lain. Sebagai contoh, jalur yang menghubungkan v6 dan v7

secara langsung (garis e6) dapat dihapus. Dengan penghapusan jalur tersebut, v6 dan v7 tetap

terhubung melalui v8. Masalahnya adalah mencari jalur yang menghubungkan semua kota

(dengan menghapus beberapa garis dalam graf) sedemikian hingga total biaya pemasangan

jaringan listrik seminimum mungkin. Atau dengan kata lain, mencari pohon rentang dengan total

bobot seminimum mungkin.

Cara yang paling sederhana adalah dengan mendaftarkan semua pohon rentang yang mungkin

dibuat dan menghitung total bobot tiap-tiap pohon rentang. Selanjutnya dipilih pohon rentang

Page 296: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 291

dengan total bobot yang paling kecil. Metode ini tidak efisien, terutama pada graf yang cukup

besar karena terdapat banyak sekali pohon rentang yang dapat dibuat.

Ada beberapa algoritma untuk mencari pohon rentang minimum, yaitu algoritma Kruskall dan

algoritma Prim. Keduanya merupakan algoritma greedy, karena pada tiap langkahnya selalu

mencari garis yang memiliki bobot terkecil yang dapat dipilih.

8.2.1 Algoritma Kruskall

Untuk mencari pohon rentang minimum dari graf G dengan algoritma yang ditemukan Kruskal,

mula-mula semua garis dalam G diurutkan berdasarkan bobotnya dari kecil ke besar. Kemudian

pilih garis dengan bobot terkecil. Pada setiap langkah, dipilih garis dengan bobot terkecil, tetapi

tidak membentuk loop dengan garis-garis yang sudah dipilih terdahulu.

Misalkan G adalah graf mula-mula dengan n titik, T adalah Pohon Rentang Minimum. E adalah

himpunan semua garis G

Algoritma pembuatan pohon rentang minimum dengan algoritma Kruskal adalah sebagai

berikut

1. Isi T dengan semua titik-titik G tanpa garis.

2. m = 0

3. Selama m < (n-1) lakukan :

a. Tentukan garis e E dengan bobot minimum. Jika ada beberapa e dengan sifat tersebut,

pilih salah satu secara senbarang

b. Hapus e dari E

c. Jika e ditambahkan ke T tidak menghasilkan sirkuit, maka

i. tambahkan e ke T

ii. m = m + 1

Page 297: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

292 Riset Operasi : Suatu Tinjauan Algoritmis

Contoh 8.11

Carilah pohon rentang minimum contoh 8.3 dengan menggunakan algoritma Kruskal. Berapa

bobot minimum totalnya?

Penyelesaian

G mula-mula tampak pada gambar 8.3 dan himpunan semua garis dalam G (= E) dalam keadaan

urut (kecil ke besar) tampak pada tabel penyelesaian contoh 8.3

v2

v3v4

v5v8v6

v1

v7

e4 (3)

Gambar 8.12 (a)

Mula-mula T adalah graf yang berisi semua titik dalam G tanpa garis. Ambil garis dalam E

dengan bobot minimum. Diperoleh garis e4 dengan bobot = 3. Pohon rentang T yang mula-mula

tanpa garis menjadi graf seperti gambar 8.12 (a)

Dalam iterasi selanjutnya ditambahkan garis satu persatu pada T selama penambahan garis

tersebut tidak membentuk loop dengan garis yang sudah ada sebelumnya. Tambahkan garis e7

(bobot 4).

Selanjutnya ada 3 garis dengan bobot terkecil, yaitu e2, e8, dan e9 yang semuanya mempunyai

bobot = 5. Pilih sembarang garis, misalnya berturut-turut e2, e8, dan e9. Karena penambahan

ketiga garis tersebut tidak menghasilkan loop, maka ketiganya ditambahkan dalam graf T.

Didapat graf pada gambar 8.12 (b).

Page 298: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 293

v2

v3v4

v5v8v6

v1

v7

e2 (5)e4 (3)

e7 (4)

e8 (5)

e9 (5)

Gambar 8.12 (b)

Selanjutnya, ada 5 garis yang mempunyai bobot sama yaitu 15. Pilih salah satu sembarang,

misalnya e1. Dengan penambahan garis e1 maka T menjadi graf seperti pada gambar 8.12 (c).

v2

v3v4

v5v8v6

v1

v7

e1 (15)

e2 (5)e4 (3)

e7 (4)

e8 (5)

e9 (5)

Gambar 8.12 (c)

Dari 4 garis yang mempunyai bobot 15 sisanya, misalkan dipilih garis e3. Jika garis e3

ditambahkan pada T, maka akan terbentuk loop v1 v2 v3 v4 v1. Maka garis e3 tidak boleh dipilih.

Selanjutnya, dari 3 garis yang mempunyai bobot terkecil (= 15) lainnya, misalkan dipilih garis

e10. Dengan graf penembahan garis e10, maka T menjadi graf seperti pada gambar 8.12 (d).

v2

v3v4

v5v8v6

v1

v7

e1 (15)

e2 (5)e4 (3)

e7 (4)

e8 (5)

e9 (5)

e10 (15)

Gambar 8.12 (d)

Karena graf G terdiri dari 8 titik dan 7 garis, maka iterasi dihentikan dan T yang tampak pada

gambar 8.12 (d) adalah pohon rentang minimumnya.

Bobot total = 3 + 4 + 5 + 5 + 5 + 15 + 15 = 52.

Page 299: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

294 Riset Operasi : Suatu Tinjauan Algoritmis

Perhatikan bahwa mungkin ada beberapa pohon rentang minimum berbeda untuk suatu graf

tertentu. Akan tetapi semua pohon rentang minimum mempunyai total bobot yang sama. Seperti

misalnya pada contoh 8.11, jika pada langkah terakhir ditambahkan garis e5 (bukan e10 seperti

pada penyelesaian contoh 8.11) maka didapat pohon rentang minimum yang berbeda, tetapi

dengan bobot total yang sama, yaitu 52.

8.2.2 Algoritma Prim

Metode lain untuk mencari pohon rentang minimum ditemukan oleh Robert C.Prim. Berbeda

dengan algoritma Kruskal yang dimulai dengan graf tanpa garis, algoritma Prim dimulai dari graf

yang kosong sama sekali. Untuk mencari pohon rentang minimum T dari graf G dengan

algoritma Prim, mula-mula dipilih satu titik sembarang (misal v1). Kemudian ditambahkan satu

garis yang berhubungan dengan v1 dengan bobot yang paling minimum (misal e1) dan titik ujung

lainnya ke T sehingga T terdiri dari sebuah garis e1 dan 2 buah titik-titik ujung garis e1 (salah

satunya adalah v1). Pada setiap langkah selanjutnya, dipilih sebuah garis dalam E(G) yang bukan

angggota E(T) dengan sifat :

Garis tersebut berhubungan dengan salah satu titik V(T).

Garis tersebut mempunyai bobot yang paling kecil

Langkah tersebut diulang-ulang hingga diperoleh (n-1) garis dalam E(T) (n adalah jumlah titik

dalam G).

Misalkan G adalah graf berlabel dengan n titik dan T adalah Pohon Rentang Minimum yang

akan dibentuk (mula-mula kosong). Algoritma Prim adalah sebagai berikut :

0. Inisialisasi : Mula-mula T adalah graf kosong.

1. Ambil sembarang v V(G). Masukkan v kedalam V(T).

2. V(G) = V(G) – {v}.

3. Untuk i = 1, 2, ... , n-1, lakukan :

a. Pilihlah garis e E(G) dan e E (T) dengan syarat :

Page 300: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 295

i. e berhubungan dengan satu titik dalam T

ii. e mempunyai bobot terkecil dibandingkan dengan semua garis yang berhubungan

dengan titik–titik dalam T

Misalkan w adalah titik ujung e yang tidak berada dalam T

b. Tambahkan e ke E(T) dan w ke V(T)

c. V(G) = V(G) – {w}

Algoritma Prim mungkin menghasilkan pohon rentang yang berbeda dengan pohon rentang

yang dihasilkan melalui algoritma Kruskal. Tetapi pohon rentang yang dihasilkan oleh kedua

algoritma tersebut merupakan pohon rentang minimum yang mempunyai jumlah bobot yang

sama.

Contoh 8.12

Gunakan algoritma Prim untuk mencari pohon rentang minimum contoh 8.3, dimulai dari titik

v1.

Penyelesaian

Misalkan G adalah graf mula-mula seperti yang tampak pada gambar 8.13, dan T adalah pohon

rentang minimum yang akan dibuat. Mula-mula V(T) = {v1} dan E(T) = { }.

Pada iterasi pertama, pilih garis ei E(G) dan ei E(T) yang berhubungan dengan v1 dengan

bobot terkecil. Ada 3 garis yang berhubungan dengan v1 masing-masing garis e1 (dengan bobot

15), e2 (bobot 5) dan e3 (bobot 15). Pilih garis dengan bobot terkecil yaitu e2. Tambahkan e2 ke

E(T) dan titik ujung e2 (= v7) ke V(T)

Sekarang V(T) = { v1,v7 } dan E(T) = { e2 }.

Pada iterasi kedua, pilih garis ej E(G) dan ej E(T) yang berhubungan dengan titik-titik dalam

V(T) dengan bobot terkecil. Garis-garis diluar E(T) yang berhubungan dengan titik-titik dalam

V(T) adalah : e1 (bobot 15), e3 (bobot 15), e5 (bobot 15) dan e6 (bobot 18). Ada 3 garis dengan

Page 301: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

296 Riset Operasi : Suatu Tinjauan Algoritmis

bobot terkecil yang sama, yaitu 15. Pilih salah satu sembarang, misalnya e1. Tambahkan e1 ke

E(T) dan titik ujung e1 (= v2) ke V(T).

Sekarang V(T) = {v1, v7, v2} dan E(T) = {e2, e1}.

Proses iterasi yang sama diulang-ulang hingga V(T) memuat semua titik dalam G (atau jumlah

iterasi adalah (n-1), dengan n adalah jumlah titik dalam G). Didapatkan hasil sebagai berikut

(angka di dalam kurung pada kolom kedua menyatakan bobot garis yang terpilih) :

Iterasi Garis yang terpilih

Titik yang ditambahkan

Keterangan

Mula-mula

1

2

3

4

5

6

7

-

e2 (5)

e1 (15)

e4 (3)

e8 (5)

e7 (4)

e9 (5)

e10 (15)

v1

v7

v2

v3

v4

v6

v5

v8

-

-

pilih antara e1, e3, e5

-

pilih antara e8 dan e9

-

-

pillih antara e5 dan e10

Pohon rentang yang terbentuk setelah semua iterasi dilalui adalah pohon rentang minimum yang

sama dengan pohon rentang minimum hasil algoritma Kruskal yang tampak pada gambar 8.12

(d). Namun secara umum, pohon rentang yang dihasilkan oleh kedua metode berbeda, meskipun

bobot totalnya sama.

Secara manual, tampaknya algoritma Prim lebih sulit dan membutuhkan proses yang lebih lama.

Akan tetapi jika diimplementasikan dalam suatu program, algoritma Prim akan memiliki waktu

proses yang lebih cepat dibandingkan algoritma Kruskall. Hal ini disebabkan karena dalam

algoritma Kruskall, setiap kali akan menambahkan sebuah garis, haruslah dicek dahulu apakah

penambahan tersebut tidak akan membentuk sirkuit. Pengecekan ini tidak perlu dilakukan dalam

algoritma Prim. Pengecekan terjadi atau tidaknya sirkuit cukup dilakukan dengan melihat apakah

kedua ujung garis merupakan anggota V(T). Jika ya, berarti penambahan tersebut menghasilkan

sirkuit.

Page 302: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 297

8.2.3 Pohon Steiner

Pohon Steiner merupakan perluasan dari pohon rentang minimum. Dalam pohon rentang

minimum, kita mencari pohon yang menghubungkan semua titik dalam graf dengan bobot

minimum. Semua titik dalam pohon rentang minimum haruslah merupakan titik dalam graf

mula-mula. Dalam pohon Steiner, selain titik-titik dalam graf semula, diperbolehkan menambah

sejumlah titik tambahan agar total bobot pohon rentang yang dihasilkan minimum.

Untuk lebih jelasnya, perhatikan contoh 8.13 berikut ini. Untuk lebih memudahkan visualisasi,

panjang garis dalam graf sebanding dengan jarak yang sebenarnya.

Contoh 8.13

Diketahui graf gambar 8.13 (panjang garis sebanding dengan jarak antara 2 titik).

v1

v3

v2

8

6

8

6

v4

Gambar 8.13

Gambar 8.14 (a) merupakan pohon rentang minimumnya dengan total jarak = 6+8+6 = 20.

Gambar 8.14 (b) merupakan pohon steiner dengan penambahan 2 buah titik (s1 dan s2). Jarak v1

ke s1 adalah 3 2 . Maka total jaraknya = 4*3 2 + 2 = 18,97.

Perhatikan bahwa pohon steiner juga menghubungkan semua titik dalam graf semula. Akan

tetapi dengan penambahan beberapa titik tambahan akan menyebabkan total jaraknya lebih kecil

dibanding pohon rentang biasa.

Titik s1 dan s2 yang ditambahkan sering disebut dengan titik Steiner.

Page 303: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

298 Riset Operasi : Suatu Tinjauan Algoritmis

v1

v3

v2

8

66

v4

v1

v3

v2

2

v4

3 2

3 2

3 2

3 2

s1 s2

(a) (b)

Gambar 8.14

Aplikasi pohon steiner antar lain : penentuan topologi jaringan, jaringan komunikasi,

penjadwalan multiprosesor, dll.

Hingga sekarang belum ada algoritma yang dapat menyelesaikan masalah pohon steiner secara

lengkap. Masalah utamanya adalah menentukan berapa banyak titik steiner yang perlu

ditambahkan dan dimana posisinya. Beberapa penyelesaian yang sudah dicoba antara lain

dengan metode cabang-batas (branch-bound), cabang-potong (branch-cut), enumerasi pohon

rentang, pemrograman dinamik, dll. Metode lain yang sedang dikembangkan akhir-akhir ini

adalah pendekatan penyelesaiannya dengan metode heuristik (misal pencarian lokal, simulated

anealing, dll).

8.3 Jalur Terpendek

Permasalahan jalur terpendek merupakan masalah klasik dalam Riset Operasi. Sebagai contoh,

misalkan graf gambar 8.3 menyatakan 8 buah kota yang dihubungkan dengan jalan darat (bukan

jaringan listrik). Label garis menyatakan jarak antar 2 kota Misalkan seseorang hendak bepergian

dari titik v7 ke v5. Terdapat banyak jalur yang dapat ia lalui, misalnya v7-v1-v2-v3-v5 (total jarak

28), v7-v6-v4-v3-v5 (total jarak 32), dll. Permasalahannya adalah menemukan jalur (path) yang

total jaraknya paling minimum.

Ada beberapa jenis permasalahan jalur terpendek :

a. Jalur terpendek antara 2 buah titik

Page 304: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 299

b. Jalur terpendek antara semua pasangan titik dalam graf

c. Jalur terpendek dari suatu titik ke semua titik lainnya

Ada beberapa variasi permasalahan jalur terpendek, misalnya lajur terpendek antara 2 buah titik

dengan tambahan syarat harus melalui suatu titik lainnya, jalur “terpendek” kedua, ketiga, dst

8.3.1 Algoritma Dijkstraa

Algoritma yang ditemukan oleh Dijkstraa merupakan algoritma untuk mencari jalur terpendek

antara 2 titik. Misalkan G adalah graf berlabel (berarah atau tidak berarah) dengan titik-titik V(G)

= {v1, v2, ..., vn} dan path terpendek yang dicari adalah dari v1 ke vn. Algoritma Dijkstraa dimulai

dari titik v1. Dalam iterasinya, algoritma akan mencari satu titik yang jumlah bobotnya dari titik 1

terkecil. Titik-titik yang terpilih dipisahkan (disebut titik permanen), dan titik-titik tersebut tidak

diperhatikan lagi dalam iterasi berikutnya.

Misalkan :

V(G) = { v1,v2,.., vn }.

L = Himpunan titik-titik V(G) yang sudah terpilih (titik permanen) dalam jalur path

terpendek.

D(j) = Jumlah bobot path terkecil dari v1 ke vj.

w(i,j) = Bobot garis dari titik vi ke titik vj.

w*(1,j) = Jumlah bobot path terkecil dari v1 ke vj

Algoritma Dijkstraa untuk mencari path terpendek adalah sebagai berikut :

1. Inisialisasi : L = { } ; V = {v2, v3, ... , vn}

2. Untuk i = 2, ... , n, lakukan D(i) = W(1,i)

3. Selama vn L (vn belum merupakan titik permanen), lakukan :

a. Pilih titik vk V-L (titik tidak permanen) dengan D(k) terkecil.

L = L { vk } (jadikan vk menjadi titik permanen)

Page 305: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

300 Riset Operasi : Suatu Tinjauan Algoritmis

b. Untuk setiap vj V-L lakukan :

Jika D(k) + W(k,j) < D(j) maka ganti D(j) dengan D(k) + W(k,j)

Menurut algoritma diatas, jalur terpendek dari titik v1 ke vn adalah melalui titik-titik dalam L

secara berurutan, dan jumlah bobot path terkecilnya adalah D(n).

Contoh 8.14

Carilah jalur terpendek dari titik v1 ke v7 dalam graf berarah berlabel gambar 8.15

v2v6

v4

v3 v5

v7

2

4

8

5

9

4

2

1

7

7

3

9

v1

Gambar 8.15

Penyelesaian

Matriks hubung W untuk menyatakan graf gambar 8.15 adalah sebagai berikut :

W =

1 2 3 4 5 6 7

1

2

3

4

5

6

7

3 9

7 1

2 7 4

2 8

5 9

4

v v v v v v v

v

v

v

v

v

v

v

I = 0

Mula-mula L = { } dan V = { v2, v3, ... , v7 }.

Page 306: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 301

D(2) = W(1,2) = 3 ; D(3) = W(1,3) = 9

D(4) = W(1,4) = ; D(5) = W(1,5) =

D(6) = W(1,6) = ; D(7) = W(1,7) =

Pada iterasi pertama, D(1) = 0 dan diambil sebagai titik permanen pertama. L = { v1 }. Iterasi

selengkapnya tampak pada tabel 8.1.

I = 1

Harga D(j) yang mungkin berubah adalah pada titik-titik yang dapat dicapai secara langsung dari

titik permanen terakhir (dalam iterasi ini adalah dari titik v1 dengan nilai D(1) = 0). Titik yang

dapat dicapai langsung dari v1 adalah titik v2 dan v3.

D(2) adalah harga minimum dari nilai D(2) sebelumnya (= ) dibandingkan dengan D(titik

permanen sebelumnya) + jarak dari titik permanen sebelumnya ke titik v2 secara langsung =

min ( , D(1) + W(1, 2) ) = min ( , 0+3) = 3.

Secara analog, D(3) adalah harga minimum dari nilai D(3) sebelumnya (= ) dibandingkan

dengan D(titik permanen sebelumnya) + jarak dari titik permanen sebelumnya ke titik v2 secara

langsung = min ( , D(1) + W(1, 3) ) = min ( , 0+9) = 9.

Jadi diperoleh nilai baru D(2) = 3 dan D(3) = 9. Nilai D(j) yang lain tetap karena tidak dapat

dicapai secara langsung dari v1. Karena titik tujuan (v7) belum merupakan titik permanen, maka

iterasi dilanjutkan. Nilai D(j) terkecil pada iterasi ini adalah D(2) = 3. Maka titik v2 dijadikan titik

permanen untuk iterasi berikutnya. Dalam tabel 8.11, hal ini ditandai dengan arsiran pada sel

kolom D(2) pada I=1

I = 2

Pada iterasi ini titik permanen yang didapat sebelumnya adalah v2 dengan D(2) = 3. Titik yang

dapat dicapai secara langsung dari titik permanen v2 adalah v4 (dengan D(4) = ) dan v5

(dengan D(5) = ). Maka

D(4) = min ( , 3 + W(2, 4)) = min ( , 3 + 7) = 10

D(5) = min ( , 3 + W(2, 5)) = min ( , 3 + 1) = 4

Pada iterasi ini, nilai D(j) yang lain adalah (lihat tabel 8.1 pada I = 2) :

Page 307: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

302 Riset Operasi : Suatu Tinjauan Algoritmis

D(1) = 0 (sudah permanen)

D(2) = 3 (sudah permanen)

D(3) = 9 (tetap seperti iterasi sebelumnya),

D(6) = D(7) = (tetap seperti iterasi sebelumnya).

Nilai D(j) paling minimum adalah D(5) = 4. Maka titik v5 kita jadikan titik permanen pada iterasi

berikutnya.

I = 3

Pada iterasi sebelumnya (I = 2), titik permanen adalah v5 dengan D(5) = 4. Titik yang dapat

dicapai langsung dari v5 adalah v4 (D(4) = 10) dan v6 (D(6) = )

D(4) = min (10, 4 + W(5, 4)) = min (10, 4 + 5) = 9

D(6) = min ( , 4 + W(5, 6)) = min ( , 4 + 9) = 13

Pada iterasi ini, nilai D(j) yang lain adalah (lihat tabel 8.1 pada I = 3) :

D(1) = 0 (sudah permanen)

D(2) = 3 (sudah permanen)

D(3) = 9 (tetap seperti iterasi sebelumnya),

D(5) = 4 (sudah permanen)

D(7) = (tetap seperti iterasi sebelumnya).

Nilai D(j) minimum adalah D(3) = D(4) = 9. Pilih salah satunya secara sembarang, misal D(3).

Maka titik v3 dijadikan titik permanen pada iterasi berikutnya.

Page 308: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 303

I = 4

Titik permanen sebelumnya adalah v3 dengan D(3) = 9. Titik yang dapat dicapai langsung dari v3

adalah v4 dan v5. Akan tetapi v5 sudah merupakan titik permanen sehingga yang mungkin

mengalami perubahan hanyalah D(4) saja. Maka

D(4) = min (9, 9 + W(3, 4)) = min (9, 9+7) = 9

Pada iterasi ini harga D(j) minimum adalah D(4) = 9

I = 5

Titik permanen sebelumnya adalah v4 dengan D(4) = 9. Titik yang dapat dicapai secara langsung

dari v4 adalah v6 dan v7 (keduanya bukan merupakan titik permanen). Maka :

D(6) = min (13, 9 + W(4, 6)) = min (13, 9+2) = 11

D(7) = min ( , 9 + W(4, 7)) = min ( , 9+8) = 17

Nilai D(j) minimum adalah D(6) = 11. Titik v6 dijadikan titik permanen. Karena v7 belum

merupakan titik permanen maka iterasi perlu dilanjutkan.

I = 6

Satu-satunya titik yang belum permanen adalah v7. Maka

D(7) = min (17, 11 + W(6, 7)) = min (17, 11+4) = 15.

Disini iterasi dihentikan karena satu-satunya titik yang tersisa adalah v7 sehingga otomatis akan

menjadi titik permanen.

Jarak minimum v1 ke v7 adalah 15. Perhatikan bagaimana iterasi ini dikerjakan dalam tabel 8.1.

Iterasi dihentikan pada I = 6 karena titik tujuan (v7) sudah menjadi titik permanen

Page 309: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

304 Riset Operasi : Suatu Tinjauan Algoritmis

Interpretasi :

Pada setiap langkah, algoritma Dijkstraa menguji apakah jarak ke suatu titik akan lebih pendek

apabila jalurnya dilakukan melalui titik permanen yang didapat sebelumnya. Titik permanen

merupakan titik yang jaraknya dari titik sumber (= v1) terpendek. Jadi sudah tidak perlu

dievaluasi lagi dalam iterasi berikutnya.

Sebagai contoh, pada I=1 di titik v4. Perjalanan tidak mungkin dilakukan langsung dari titik v1 ke

v4 (tidak ada garis dari v1 ke v4 langsung), sehingga jaraknya . Pada iterasi I=2, diuji apakah

jalur akan lebih pendek (dibanding ) apabila perjalanan dilakukan melalui v2 (titik permanen

pada I=2). Jadi jalurnya v1 v2 v4. Ternyata jalurnya lebih pendek yaitu sebesar 3+7 = 8.

Hal yang sama juga terjadi pada titik v5. Perjalanan dari v1 ke v5 lewat v2 lebih pendek

dibandingkan jarak sebelumnya (= ).

Selanjutnya pada I=3 diuji lagi apakah perjalanan ke v4 akan lebih pendek lagi jika dilakukan

lewat titik permanen pada I=2 (= v5). Ternyata perjalanan ke v4 lewat v5 (jalur v1 v2 v5

v4) memiliki jarak 4+5 = 9 yang lebih pendek dari jarak sebelumnya (= 10), sehingga jalur

baru ini diambil sebagai jalur baru.

i D(1) D(2) D(3) D(4) D(5) D(6) D(7) L

0 0 { v1 }

1 - min ( ,0+3)

= 3

min ( ,0+9)

= 9

{ v1, v2 }

2 - - 9 min ( ,3+7)

= 10

min ( ,3+1)

= 4

{ v1, v2, v5 }

3 - - 9 min (10,4+5)

= 9

- min ( ,4+9)

= 13

{ v1, v2, v5, v3 }

4 - - - min (9,9+7)

= 9

- 13 { v1, v2, v5, v3, v4 }

5 - - - - - min (13,9+2)

= 11

min ( ,9+8)

= 17

{ v1, v2, v5, v3, v4, v6 }

6 - - - - - - min (17,11+4) = 15

{ v1, v2, v5, v3, v4, v6, v7 }

Tabel 8.1

Page 310: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 305

Untuk mencari jalur yang menghasilkan jarak terpendek, maka perhatikan tabel 8.1 dari bawah

ke atas, dimulai dari titik permanen terakhir (v7). Perhatikan titik permanen vj pada iterasi ke-i.

Apabila D(j) pada iterasi ke-I mengalami penurunan dibandingkan D(j) pada iterasi ke I-1 (sel di

atasnya dalam tabel 8.1), maka titik permanen pada iterasi ke I-1 merupakan jalur yang harus

dilalui.Perhatikan iterasi pada I=6 (dengan titik permanen v7) tabel 8.1. Nilai D(7) pada I=6

mengalami penurunan dibandingkan dengan nilai D(7) pada I=5 (sel di atasnya). Maka titik

permanen pada I=5 (v6) merupakan jalur yang harus dilalui sebelum v7.

Sekarang perhatikan titik permanen v6 pada I=5. D(6) pada I=5 mengalami penurunan

dibandingkan dengan D(6) pada I=4. Ini berarti titik permanen pada I=4 (yaitu v4) menjadi titik

yang harus dilalui sebelum v6.

Berikutnya, perhatikan titik yang dilalui terakhir (v4 yang merupakan titik permanen pada I=4).

D(4) pada I=4 tidak mengalami penurunan dibandingkan dengan D(4) pada I=3. Ini berarti titik

permanen pada I=3 (= v3) tidak menjadi jalur yang dilalui. Naik lagi pada I=2. Disini terjadi

penurunan nilai D(4) pada I=2 dibandingkan dengan nilai D(4) dibawahnya. Berarti titik

permanen pada iterasi I=2 (v5) menjadi titik yang harus dilalui.

Secara analog, nilai D(5) juga mengalami penurunan pada I=1 dibandingkan dengan I=2. Berarti

titik permanen pada I=1 (= v2) menjadi titik yang dilalui. Demikian juga pada D(2), penurunan

terjadi pada I=1 dibandingkan dengan I=2. Jadi titik permanen pada I=1 (v1) menjadi titik yang

dilalui.

Jadi jalur optimalnya adalah : v7 v6 v4 v5 v2 v1

Contoh 8.15

Carilah jarak terpendek dari titik a ke titik z pada graf gambar 8.14 dengan algoritma Dijkstraa

Page 311: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

306 Riset Operasi : Suatu Tinjauan Algoritmis

a

b

c

2

f

e

d

z

2

4

1

3

1

3

4

2 7

5

Gambar 8.16

Penyelesaian

Langkah pencarian jalur terpendek sama dengan langkah yang dilakukan pada contoh 8.14.

Bedanya, dalam kasus ini, semua garisnya tak berarah. Jadi semua jalurnya dipandang sebagai

jalur 2 arah. Hasil iterasi selengkapnya tampak dalam tabel 8.2

i D(a) D(b) D(c) D(d) D(e) D(f) D(z) L

0 0 { a }

1 - min ( ,0+2)

= 2

min ( ,0+1)

= 1

min ( ,0+4)

= 4

{ a, c }

2 - min (2,1+2)

= 2

- min (4,1+2)

= 3

min ( ,1+5)

= 6

min ( ,1+7)

= 8

{ a, c, b }

3 - - - 3 min (6,2+3)

= 5

8 { a, c, b, d }

4 - - - - 5 min (8,3+4)

= 7

{ a, c, b, d, e }

5 - - - - - 7 min ( ,5+1)

= 6

{ a, c, b, d, e, z }

Tabel 8.2

Perhatikan bahwa dalam iterasinya, tidak perlu semua titik diuji. Iterasi akan berhenti jika titik

tujuan sudah menjadi titik permanen. Dalam contoh 8.15, Iterasi tetap dihentikan setelah titik

tujuan (= z) menjadi permanen meskipun titik f belum menjadi titikpermanen.

Page 312: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 307

8.3.2 Algoritma Warshall

Algoritma Dijkstraa bertujuan untuk mencari jarak terpendek dari suatu titik ke titik lain. Apabila

diinginkan untuk mencari jarak terpendek dari semua titik ke semua titik, maka algoritma

Dijkstraa harus dilakukan berulang-ulang sebanyak jumlah titiknya. Jika demikian maka

efisiensinya menjadi buruk. Algoritma Warshall merupakan algoritma yang lebih efisien untuk

mencari jarak terpendek dari semua titik ke semua titik.

Algoritma Warshall untuk mencari path terpendek merupakan algoritma yang sederhana dan

mudah implementasinya. Prinsip dasarnya tidak jauh berbeda dengan algoritma Dijkstraa. Pada

iterasi ke-I, dihitung jarak terpendek dari semua titik ke semua titik apabila pathnya melalui titik

vi

Misalkan W(0)

adalah matriks hubung graf berarah berlabel mula-mula.

W* adalah matriks hubung minimal dengan wij* = path terpendek dari titik vi ke vj.

Algoritma Warshall untuk mencari path terpendek adalah sebagai berikut :

1. W = W(0)

2. Untuk k = 1 hingga n, lakukan : { pengujian jarak lewat titik vk }

Untuk i = 1 hingga n, lakukan :

Untuk j = 1 hingga n lakukan :

Jika Wi,j > Wi,k + Wk,j maka tukar Wi,j dengan Wi,k + Wk,j

3. W* = W

Meskipun waktu prosesnya bukanlah yang tercepat, algoritma Warshall sering dipergunakan

untuk menghitung path terpendek karena kesederhanaan algoritmanya. Disamping itu, program

implementasi algoritma Warshall sangat mudah dibuat.

Algoritma Warshall di atas hanyalah menghitung jarak terpendek dari semua titik ke semua titik,

tapi tidak menjelaskan bagaimana path terpendeknya. Untuk menentukan path yang

menghasilkan jarak terpendek, tambahkan matriks bujur sangkar (ukuran nxn) Z yang disusun

sebagai berikut :

Page 313: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

308 Riset Operasi : Suatu Tinjauan Algoritmis

Inisialisasi : Z(0)

i, j =

(0),

(0),

jika W

0 jika W

i j

i j

j

Dalam iterasi ke-k, apabila titik vk disisipkan antara titik-I dan titik-j (berarti menukar Wi,j

dengan Wi,k + Wk,j ), maka ganti Zij dengan Zik. Agar lebih efisien, penggantian matriks Z

dilakukan bersama-sama dengan iterasi pencarian jarak terpendeknya.

Jarak terpendek dari titik vi ke titik vj dilakukan melalui titik v1, v2, …, vq yang didapat dari Z

optimalnya sebagai berikut :

v1 = Zij

v2 = Zv1,j

v3 = Zv2, j

….

vj = Zvq, j

Revisi algoritma Warshall dengan melibatkan path terpendeknya adalah sebagai berikut :

1. W = W(0)

; Z = Z(0)

2. Untuk k = 1 hingga n, lakukan : { pengujian jarak lewat titik vk }

Untuk i = 1 hingga n, lakukan :

Untuk j = 1 hingga n lakukan :

Jika Wi,j > Wi,k + Wk,j maka

a. tukar Wi,j dengan Wi,k + Wk,j

b. Ganti Zij dengan Zik

3. W* = W

Contoh 8.16

Carilah path terpendek dari titik vi ke titik vj (i, j = 1, 2, ... , 6) graf berarah berlabel pada gambar

8.17

Page 314: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 309

v1 v3

v2

v4

v5

v6

4

3

1

1

24

2

2

7

Gambar 8.17

Penyelesaian :

Matriks hubung graf gambar 8.15 adalah

W = W(0)

=

1 2 3 4 5 6

1

2

3

4

5

6

7 2

4 1

3

4

2 2

1

v v v v v v

v

v

v

v

v

v

Matriks path Z(0)

dibuat dengan aturan

Z(0)

=

(0),

(0),

jika W

0 jika W

i j

i j

j

Ini berarti bahwa jika titik vi dihubungkan langsung dengan titik vj, maka elemen matriks Zi, j

sama dengan nilai kolom (= j)

Diperoleh Z(0)

=

1 2 3 4 5 6

1

2

3

4

5

6

0 2 0 4 0 0

0 0 3 0 5 0

0 0 0 0 0 6

0 2 0 0 0 0

1 0 3 0 0 0

0 2 0 0 0 0

v v v v v v

v

v

v

v

v

v

Page 315: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

310 Riset Operasi : Suatu Tinjauan Algoritmis

Iterasi untuk k = 1

Untuk setiap titik diuji apakah jarak antara 2 titik akan lebih pendek jika perjalanan dilakukan

melalui titik v1. Dalam setiap sel matriks W dicek apakah Wi, j > Wi, 1 + W1, j. Jika ya, maka Wi,j

diganti dengan Wi, 1 + W1, j. Sebagai contoh :

W1,2 = 7, sedangkan W1,1 + W1,2 = + 7 = . Karena W1,2 W1,1 + W1,2 maka harga

W1,2 tidak diubah.

W5,4 = , sedangkan W5,1 + W1,4 = 2 + 2 = 4. Karena W5,4 > W5,1 + W1,4, maka harga W5,4

diubah menjadi 4.

Ini berarti bahwa ada path dari v5 ke v4 melalui v1 yang mempunyai bobot lebih kecil (yaitu

path v5 v1 v4 dengan jumlah bobot 4) dibandingkan dengan path dari v5 ke v4 secara

langsung (bobot = karena tidak ada path dari v5 ke v4 secara langsung)

Dengan cara yang sama, harga Wi,j dihitung untuk setiap i dan j. Didapatkan matriks W(1)

.

Elemen matriks W(1)

yang diberi kotak menunjukkan nilai yang berubah dibandingkan dengan

matriks W(0)

. Ini berarti bahwa perjalanan dari titik vi ke vj pada elemen yang diberi kotak akan

lebih optimal jika dilakukan melewati titik v1. Sel dengan nilai W(1)

yang berubah akan

menghasilkan perubahan pula pada matriks path Z(1)

Z(1)

i, j = Z(0)

i, k = Z(0)

i, 1. Maka

Z(1)

5, 2 = Z(0)

5, 1 = 1. Z(1)

5, 4 = Z(0)

5, 1 = 1.

W(1)

=

1 2 3 4 5 6

1

2

3

4

5

6

7 2

4 1

3

4

2 9 2 4

1

v v v v v v

v

v

v

v

v

v

; Z(1)

=

1 2 3 4 5 6

1

2

3

4

5

6

0 2 0 4 0 0

0 0 3 0 5 0

0 0 0 0 0 6

0 2 0 0 0 0

1 1 3 1 0 0

0 2 0 0 0 0

v v v v v v

v

v

v

v

v

v

Perhatikan bahwa dalam iterasi ke-k, maka semua elemen matriks W maupun Z dalam kolom-k

tidak berubah

Page 316: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 311

Iterasi untuk k = 2

Iterasi untuk k = 2 dilakukan dengan cara yang sama seperti iterasi untuk k = 1, hanya titik

perantaranya adalah titik v2. Pengujian dilakukan apakah perjalanan yang dilakukan melewati

titik v2 akan menghasilkan jarak yang lebih pendek. Sebagai contoh :

W6,5 = , sedangkan W6,2 + W2,5 = 1+1 = 2. Karena W6,5 > W6,2 + W2,5 maka harga W6,5

diganti dengan 2. Ini berarti bahwa path dari v6 ke v5 melalui v2 (v6 v2 v5) lebih pendek

dibandingkan path dari v6 ke v5 secara langsung ataupun melalui v1

Proses yang sama dilakukan untuk semua elemen matriks. Didapatkan matriks W(2)

. Sama

seperti matriks W(1)

, elemen yang diberi kotak menunjukkan elemen yang mengalami

perubahan dibandingkan dengan matriks W(1)

. Untuk semua elemen matriks W yang berubah

akan menyebabkan perubahan pada matriks Z di sel yang sama.

W(2)

=

1 2 3 4 5 6

1

2

3

4

5

6

7 11 2 8

4 1

3

4 8 5

2 9 2 4 10

1 5 2

v v v v v v

v

v

v

v

v

v

; Z(2)

=

1 2 3 4 5 6

1

2

3

4

5

6

0 2 2 4 2 0

0 0 3 0 5 0

0 0 0 0 0 6

0 2 2 0 2 0

1 1 3 1 1 0

0 2 2 0 2 0

v v v v v v

v

v

v

v

v

v

Dengan cara yang sama, untuk iterasi k = 3, 4, 5, 6, diperoleh matriks

W(3)

=

1 2 3 4 5 6

1

2

3

4

5

6

7 11 2 8 14

4 1 7

3

4 8 5 11

2 9 2 4 10 5

1 5 2 8

v v v v v v

v

v

v

v

v

v

; Z(3)

=

1 2 3 4 5 6

1

2

3

4

5

6

0 2 2 4 2 2

0 0 3 0 5 3

0 0 0 0 0 6

0 2 2 0 2 2

1 1 3 1 1 3

0 2 2 0 2 2

v v v v v v

v

v

v

v

v

v

Page 317: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

312 Riset Operasi : Suatu Tinjauan Algoritmis

W(4)

=

1 2 3 4 5 6

1

2

3

4

5

6

6 10 2 7 13

4 1 7

3

4 8 5 11

2 8 2 4 9 5

1 5 2 8

v v v v v v

v

v

v

v

v

v

; Z(4)

=

1 2 3 4 5 6

1

2

3

4

5

6

0 4 4 4 4 4

0 0 3 0 5 3

0 0 0 0 0 6

0 2 2 0 2 2

1 1 3 1 1 3

0 2 2 0 2 2

v v v v v v

v

v

v

v

v

v

W(5)

=

1 2 3 4 5 6

1

2

3

4

5

6

9 6 9 2 7 12

3 9 3 5 1 6

3

7 4 7 9 5 10

2 8 2 4 9 5

4 1 4 6 2 7

v v v v v v

v

v

v

v

v

v

; Z(5)

=

1 2 3 4 5 6

1

2

3

4

5

6

4 4 4 4 4 4

5 5 5 5 5 5

0 0 0 0 0 6

2 2 2 2 2 2

1 1 3 1 1 3

2 2 2 2 2 2

v v v v v v

v

v

v

v

v

v

W*= W(6)

=

1 2 3 4 5 6

1

2

3

4

5

6

9 6 9 2 7 12

3 7 3 5 1 6

7 4 7 9 5 3

7 4 7 9 5 10

2 6 2 4 7 5

4 1 4 6 2 7

v v v v v v

v

v

v

v

v

v

; Z(6)

=

1 2 3 4 5 6

1

2

3

4

5

6

4 4 4 4 4 4

5 5 5 5 5 5

6 6 6 6 6 6

2 2 2 2 2 2

1 3 3 1 3 3

2 2 2 2 2 2

v v v v v v

v

v

v

v

v

v

W* merupakan matriks jarak terpendek dari semua titik ke semua titik, dan Z(6)

merupakan path

yang harus dilalui. Sebagai contoh, jarak dari v1 ke v6 adalah 12. Path yang harus dilalui adalah :

Z(6)

1,6 = 4

Z(6)

4,6 = 2

Z(6)

2,6 = 5

Z(6)

5,6 = 3

Z(6)

3,6 = 6

Jadi path terpendek dari v1 ke v6 adalah v1 v4 v2 v5 v3 v6 dengan jarak

terpendek = 12

Page 318: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 313

Dalam contoh 8.15, W* bukan merupakan matriks simetris karena grafnya merupakan graf

berarah sehingga secara umum jarak terpendek dari vi ke vj berbeda dengan jarak dari vj ke vi.

Jika pada W* ada wij denngan harga berarti tidak ada path dari vi ke vj baik langsung maupun

tidak langsung.

8.3.3 Jalur Terpendek pada Graf Berarah Tanpa Sirkuit

Apabila grafnya berarah dan tidak memuat sirkuit, maka graf tersebut dapat “diurutkan” secara

topologi sebagai { v1, v2, … , vn } sedemikian hingga semua garis berarahnya adalah dari titik vi

ke vj dengan i < j. Dengan pengurutan ini maka pencarian jarak terpendek dari suatu titik ke

semua titik lainnya akan lebih efisien.

Misalkan W adalah matriks hubung graf berarah. Didefinisikan matriks biner B sebagai

B i, j =

,

,

1 jika W

0 jika W

i j

i j

Ti adalah matriks graf yang diurutkan secara topologi

Algoritma pengecekan apakah suatu graf berarah memiliki sirkuit berarah adalah sebagai berikut

Untuk i = 1 hingga n, lakukan :

Jika semua elemen kolom ke-k = 0 maka

a. hapus elemen kolom Bi, k dan baris Bk, j

b. Tambahkan vk ke vektor T

Jika tidak ada elemen dalam satu kolom yang semuanya bernilai nol,

maka hentikan iterasi. Return G memuat sirkuit

Misal Ti = { i1, i2, … , in }, maka urutan titik-titik graf secara topologi adalah { vi1, vi2, … , vin }.

Contoh 8.17

Ujilah apakah graf berarah pada gambar 8.15 memuat sirkuit berarah

Page 319: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

314 Riset Operasi : Suatu Tinjauan Algoritmis

Penyelesaian

Matriks hubung W untuk menyatakan graf gambar 8.15 adalah sebagai berikut :

W =

1 2 3 4 5 6 7

1

2

3

4

5

6

7

3 9

7 1

2 7 4

2 8

5 9

4

v v v v v v v

v

v

v

v

v

v

v

Maka matriks biner yang sesuai adalah :

B(0)

=

1 2 3 4 5 6 7

1

2

3

4

5

6

7

0 1 1 0 0 0 0

0 0 0 1 1 0 0

0 1 0 1 1 0 0

0 0 0 0 0 1 1

0 0 0 1 0 1 0

0 0 0 0 0 0 1

0 0 0 0 0 0 0

v v v v v v v

v

v

v

v

v

v

v

Tampak bahwa elemen kolom ke-1 semuanya = 0. Maka T1 = { v1 }.

Hapus kolom v1 dan baris v1. Matriks B menjadi :

B(1)

=

2 3 4 5 6 7

2

3

4

5

6

7

0 0 1 1 0 0

1 0 1 1 0 0

0 0 0 0 1 1

0 0 1 0 1 0

0 0 0 0 0 1

0 0 0 0 0 0

v v v v v v

v

v

v

v

v

v

Semua elemen pada kolom-2 (v3) = 0. Maka T = { v1, v3 }. Hapus kolom v3 dan baris v3.

Didapat

Page 320: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 315

B(2)

=

2 4 5 6 7

2

4

5

6

7

0 1 1 0 0

0 0 0 1 1

0 1 0 1 0

0 0 0 0 1

0 0 0 0 0

v v v v v

v

v

v

v

v

Berikutnya berturut-turut didapatkan matriks B(3), B(4), B(5), B(6) dengan menghapus titik v2,

v5, v4, dan v6.

B(3)

=

4 5 6 7

4

5

6

7

0 0 1 1

1 0 1 0

0 0 0 1

0 0 0 0

v v v v

v

v

v

v

; B(4)

=

4 6 7

4

6

7

0 1 1

0 0 1

0 0 0

v v v

v

v

v

;

B(5)

=

6 7

6

7

0 1

0 0

v v

v

v

; B(6)

= (0)

Karena tingal sebuah titik v7, maka iterasi dihentikan. T = { v1, v3, v2, v5, v4, v6, v7 }. Graf

gambar 8.15 dapat digambarkan dalam bentuk terurut topologi sebagai gambar 8.18. Tampak

disini bahwa semua titik seolah-olah dapat diurutkan sedemikian hingga semua garisnya

mengarah ke kanan

v2

v6

v4

v3 v5

v72 42 1 59v1

3

47

7

9

8

Gambar 8.18

Contoh 8.18

Ujilah apakah graf berarah pada gambar 8.17 memuat sirkuit berarah

Page 321: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

316 Riset Operasi : Suatu Tinjauan Algoritmis

Penyelesaian

Matriks hubung W dan matriks Biner B graf gambar 8.17 adalah sebagai berikut :

W(0)

=

1 2 3 4 5 6

1

2

3

4

5

6

7 2

4 1

3

4

2 2

1

v v v v v v

v

v

v

v

v

v

; B(0)

=

1 2 3 4 5 6

1

2

3

4

5

6

0 1 0 1 0 0

0 0 1 0 1 0

0 0 0 0 0 1

0 1 0 0 0 0

1 0 1 0 0 0

0 1 0 0 0 0

v v v v v v

v

v

v

v

v

v

Tampak disini bahwa tidak ada satu kolompun yang semua nilainya = 0. Berarti grafnya memuat

sirkuit berarah. Tidak ada satu titikpun yang semua garisnya mengarah keluar. Pasti selalu ada

garis yang masuk ke titik tersebut. Hal ini secara jelas dapat dilihat pada graf gambar 8.17. Di

titik v1, ada garis masuk dari v5. Di titik v2, ada garis yang masuk dari v4 dan v6, …. dan

seterusnya.

Jika titik-titik dalam graf dapat diurutkan secara topologi, maka pencarian jarak terpendek dari

satu titik ke semua titik lain dapat dilakukan dengan lebih cepat.

Misal G adalah graf berarah tanpa sirkuit yang diurutkan dalam urutan topologi T = { v1, v2, … ,

vn }. D(i) = jarak terpendek titik v1 ke titik vi, dan W(i, j) adalah jarak titik vi ke vj. Algoritma

pencarian jarak terpendek adalah sebagai berikut :

Inisialisasi : D(1) = 0 ; D(2) = D(3) = … = D(n) =

For I = 1 to n-1

Jika D(I) + W(I, j) < D(j) maka D(j) = D(I) + W(I, j)

Contoh 8.19

Carilah jarak terpendek dari titik v1 ke semua titik lain pada graf gambar 8.18

Penyelesaian

Urutan topologi titik-titik pada gambar 8.18 adalah T = { v1, v3, v2, v5, v4, v6, v7 }. Iterasi

pencariannya tampak pada tabel 8.3. Urut-urutan letak titik pada tabel 8.3 disesuaikan dengan

Page 322: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 317

urut-urutan topologi titiknya. Perhatikan bahwa pada iterasi ke-I, kita mencari jarak terpendek

yang bisa dicapai dari titik-i.

Sebagai contoh, pada I = 1, kita mencari kemungkinan jarak terpendek yang bisa dicapai dari

titik v1. Karena titik v1 hanya terhubung dengan titik v3 dan v2, maka hanya D(3) dan D(2) saja

yang mungkin berubah. D(3) (nilainya = ) dibandingkan dengan nilai D(1) + W(1,3) = 0 + 9 =

9. Karena 9 < maka D(3) diganti dengan 9. D(2) (nilainya = ) dibandingkan dengan nilai

D(1) + W(1,2) = 0 + 3 = 3. Karena 3 < maka D(3) diganti dengan 3

Secara analog, pada iterasi I=2, kita mencari jarak terpendek dari titik v3. Titik v3 terhubung ke

titik v2, v5 dan v4. Maka D(2), D(5) dan D(4) (yang pada iterasi sebelumnya nilainya adalah 3,

dan ) masing-masing dibandingkan dengan D(3)+W(3,2), D(3)+W(3,5), dan

D(3)+W(3,4).

i D(1) D(3) D(2) D(5) D(4) D(6) D(7) Ket

0 0 Inisialisas

i

1 - Min ( ,

0+9) = 9

Min ( ,

0+3) = 3

jarak dari

v1

2 - - Min (3,

9+2) = 3

Min ( ,

9+4) = 13

Min ( ,

9+7) = 16

jarak dari

v3

3 - - - Min (13,

3+1) = 4

Min (16,

3+7) = 10

jarak dari

v2

4 - - - - Min (10,

4+5) = 9

Min ( ,

4+9) = 13

jarak dari

v5

5 - - - - - Min (13,

9+2) = 11

Min ( ,

9+8) = 17

jarak dari

v4

6 - - - - - - Min (17,

11+4) = 15

jarak dari

v6

Tabel 8.3

Jadi jarak terpendek dari v1 ke v3 = 9, ke v2 = 3, ke v5 = 4, ke v4 = 9, ke v6 = 11 dan ke v7 = 15.

Pencarian jalur terpendeknya sama dengan algoritma Dijkstraa. Sebagai contoh, path terpendek

dari v1 ke v7 dicari secara mundur dari I=6. Jika terjadi penurunan jarak dibandingkan dengan

Page 323: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

318 Riset Operasi : Suatu Tinjauan Algoritmis

nilai D(I) pada iterasi sebelumnya, berarti titik vi dilalui. Sebagai contoh, karena pada I = 5, nilai

D(7) = 17 dan pada I = 6, nilai D(7) = 15 (berarti terjadi penurunan jarak), maka titik v6 dilalui

sebelum mencapai titik v7. Sebaliknya, tidak terjadi penurunan nilai D(2) pada I=1 ke I = 2.

Maka v3 tidak dilalui dalam path terpendeknya. Dengan membuat iterasi mundur, maka titik

yang harus dilalui adalah v1 v2 v5 v4 v6 v7

8.3.4 Masalah Penggantian Peralatan

Pada kebanyakan peralatan, biaya operasional dan perawatan akan meningkat seiring dengan

bertambahnya umur peralatan. Sebagai contoh, semakin lama umur mobil, biaya

servis/perawatan dan konsumsi bahan bakar serta komponen-komponennya akan semakin boros.

Penggantian peralatan lama dengan alat yang baru akan menurunkan biaya perawatan dan

operasional. Akan tetapi penggantian (replacement) peralatan lamapun juga membutuhkan biaya.

Masalah yang dihadapi disini adalah kapan peralatan harus diganti agar total biaya

(perawatan/operasional dan penggantian) yang dikeluarkan selama kurun waktu tertentu menjadi

seminimum mungkin.

Masalah penggantian alat dapat diselesaikan dengan merubahnya menjadi masalah pencarian

jarak/path minimum. Dalam hal ini titik vj dalam graf menyatakan awal tahun ke-j. Label garis

berarah dari titik vi ke titik vj menyatakan total biaya yang dikeluarkan jika alat yang dibeli pada

awal tahun ke-i dijual pada awal tahun ke-j (i < j). Gambar 8.19 menunjukkan keadaan masalah

penggantian alat selama 5 periode. Perhatikan bahwa jumlah titiknya adalah (5+1) buah.

v2v6v4v3 v5

v1

d13

d14

d15

d16

d12 d23 d34 d45 d56

d24

d25

d26

d35

d36

d46

Gambar 8.19

Misalkan

Page 324: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 319

Kj = harga pembelian alat baru pada tahun ke-j

cj = biaya perawatan dan operasional selama pengoperasian tahun ke-j. cj+1 > cj karena biaya

operasional meningkat seiring dengan lamanya pemakaian alat. Diasumsikan bahwa biaya ini

hanya dipengaruhi oleh berapa lama alat dipakai, dan tidak dipengaruhi oleh kapan pembelian

dilakukan.

Si,j = harga penjualan kembali alat lama yang dibeli pada tahun ke-i dan sudah dipakai selama j

tahun

Jarak antara titik vi ke vj (= dij) menyatakan total biaya yang harus dikeluarkan apabila alat

yang dibeli pada awal tahun ke-i dijual pada awal tahun ke-j. Total biaya ini adalah harga

pembelian alat baru pada awal tahun ke-i dikurangi dengan harga penjualan alat lama (yang

dibeli pada awal tahun ke-i) setelah dipakai selama (j-i) periode, dan ditambah dengan jumlah

biaya operasional/perawatan pada tahun pertama hingga tahun ke (j-i) pemakaian.

, ,

1

j i

i j i i j i t

t

d K S c

Sebagai contoh pada gambar 8.19, d23 = K2 – S2,1 + c1. d23 menyatakan total biaya yang

dikeluarkan jika alat yang dibeli pada tahun-2 dijual lagi pada tahun-3 (lihat gambar 8.19). Total

biaya yang dikeluarkan adalah harga pembelian alat pada tahun ke-2 (= K2) – harga penjualan

alat yang dibeli pada tahun ke-2 setelah dipakai 1 tahun (= S2,1) + biaya operasional selama 1

tahun pemakaian (= c1).

Secara analog, d25 = K2 – S2,3 + (c1 + c2 + c3) menyatakan biaya yang dikeluarkan jika alat yang

dibeli pada tahun ke-2 dijual kembali pada tahun ke-5 (setelah dipakai selama 3 tahun). Biaya ini

adalah harga pembelian pada tahun ke-2 – harga jual kembali alat (yang dibeli pada tahun ke-2

tersebut) setelah dipakai selama 3 tahun + biaya perawatan/operasional pada tahun ke-1, 2 dan 3.

Setiap path dari titik v1 ke titik v6 pada gambar 8.19 menyatakan keputusan penggantian alat

yang mungkin dibuat.

Path v1 v2 v3 v4 v5 v6 menyatakan keputusan untuk membeli alat baru setiap tahun.

Biaya totalnya = d12 + d23 + d34 + d45 + d56

Page 325: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

320 Riset Operasi : Suatu Tinjauan Algoritmis

= (K1 – S1,1 + c1) + (K2 – S2,1 + c1) + (K3 – S3,1 + c1) + (K4 – S4,1 +

c1) + (K5 – S5,1 + c1) = 5

,1

1

5i i i

i

K S c

Path v1 v2 v5 v6 menyatakan bahwa pembelian alat baru dilakukan 3 kali yaitu pada

awal tahun ke-1, awal tahun ke-2 (setelah pemakaian selama 1 tahun) dan awal tahun ke-5

(setelah 3 tahun pemakaian). Biaya = d12 + d25 + d56 = (K1 – S1,1 + c1) + (K2 – S2,3 + c1+ c2+ c3)

+ (K5 – S5,1 + c1)

Path v1 v6 menyatakan keputusan untuk melakukan 1 kali pembelian alat saja yaitu pada

awal tahun. Biaya totalnya = K1 – S1,5 + c1+ c2+ c3+ c4+ c5.

Contoh 8.20

Pada tahun 2000, sebuah perusahaan pengangkutan memiliki masalah dalam penggantian

armada mobilnya untuk pemakaian 5 tahun ke depan. Perkiraan harga sebuah mobil baru tampak

pada tabel 8.4 a.

Awal

Tahun Harga Beli

(juta) Lama

Pemakaian Biaya Operasional & Perawatan (juta)

2001

2002

2003

2004

150

160

180

200

1

2

3

4

30

35

50

60

Tabel 8.4 a Tabel 8.4 b

Tabel 8.4 b menunjukkan biaya operasional dan perawatan untuk lama pemakaian 1-4 tahun.

Biaya ini hanya dipengaruhi oleh lama pemakaian, dan tidak dipengaruhi oleh kapan mobil

dibeli.

Apabila mobil lama dijual, maka harga jualnya tergantung dari tahun pembelian dan lama

pemakaiannya. Harga jual tersebut tampak pada tabel 8.4 c. Tanda (-) pada tabel 8.4 c

menunjukkan bahwa penjualan tidak mungkin dilakukan karena waktu penjualannya melebihi

batas waktu (tahun 2005).

Page 326: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 321

Tahun Beli Lama Pemakaian (tahun)

1 2 3 4

2001

2002

2003

2004

130

140

150

170

110

130

140

-

100

125

-

-

90

-

-

-

Tabel 8.4 c

Tentukan kapan pembelian mobil baru harus dilakukan agar total biaya yang dikeluarkan pada

tahun 2005 seminimum mungkin.

Penyelesaian

Misalkan tahun ke-1 adalah tahun 2001. Penggantian mobil pada tahun ke-i dapat digambarkan

pada gambar 8.20.

v2

v4v3 v5

v1

d13

d14

d15

d12 d23 d34 d45

d24

d25

d35

Gambar 8.20

Titik vi menyatakan pembelian mobil baru dilakukan pada tahun ke-i. Garis dari titik vi ke vj (i <

j) menyatakan total biaya yang dikeluarkan apabila mobil yang dibeli pada tahun vi dijual lagi

pada tahun vj (berarti tahun vj melakukan pembelian mobil baru lagi). Label garis dij

menunjukkan biaya total yang harus dikeluarkan apabila penggantian mobil yang dibeli pada

tahun ke-i dilakukan pada tahun ke-j. Biaya ini adalah biaya pembelian mobil baru pada tahun

ke-i dikurangi harga penjualan mobil bekas pada tahun ke-j (setelah dipakai (j-i) tahun)

ditambah biaya perawatan selama (j-i) tahun pemakaian.

, ,

1

j i

i j i i j i t

t

d K S c

d12 = biaya total yang dikeluarkan apabila pembelian mobil dilakukan pada tahun 2001 dan

dijual lagi tahun 2002 = harga mobil tahun 2001 – harga jual kembali mobil pada tahun 2002

(setelah dipakai 1 tahun) + biaya operasional dan perawatan selama 1 tahun (2001 - 2002).

Page 327: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

322 Riset Operasi : Suatu Tinjauan Algoritmis

d12 = K1 – S1,1 + c1 = 150 – 130 + 30 = 50

d13 = K1 – S1,2 + c1 + c2 = 150 – 110 + 30 + 35 = 105

... dan seterusnya

d25 = K2 – S2,3 + c1 + c2 + c3 = 160 – 125 + 30 + 35 + 50 = 150

Dengan perhitungan-perhitungan yang sama, maka didapat matriks biaya yang merupakan

matriks jarak d =

1 2 3 4 5

1 50 105 165 235

2 50 95 150

3 60 105

4 60

5

Karena grafnya jelas tidak memiliki sirkuit (semua garis vi ke vj jika i < j), maka pencarian jarak

terpendek pada graf berarah tanpa sirkuit (lihat sub bab 8.3.3) lebih mudah dilakukan. Tabel 8.5

adalah tabel iterasi pencarian jarak terpendek dari titik v1 ke titik v5

i D(1) D(2) D(3) D(4) D(5)

0 0

1 - Min ( , 0+50) =

50

Min ( , 0+105)

= 105

Min ( , 0+165)

= 165

Min ( , 0+235)

= 235

2 - - Min (105, 50+50)

= 100

Min (165, 50+95)

= 145

Min (235,

50+150) = 200

3 - - - Min (145,

100+60) = 145

Min (200,

100+105) = 200

4 - - - - Min (200,

145+60) = 200

Tabel 8.5

Jarak terpendek dari titik v1 ke titik v5 adalah 200 dengan path v1 v2 v5. Jika

diinterpretasikan ke soal aslinya, agar total biayanya minimum, maka pembelian mobil dilakukan

pada awal tahun ke-1 dan awal tahun ke-2

Page 328: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 323

8.4 Manajemen Proyek

8.4.1 Proyek

Proyek adalah sembarang pekerjaan yang memiliki awal dan akhir, terdiri dari beberapa

pekerjaan/aktivitas yang harus dilaksanakan dengan urutan tertentu. Tiap-tiap pekerjaan

membutuhkan sumber daya (biaya, tenaga, waktu) yang berbeda-beda.

Contoh 8.21

Pembangunan sebuah gedung dapat dipandang sebagai suatu proyek yang terdiri dari beberapa

pekerjaan, antara lain :

1. Penggalian tanah untuk pondasi

2. Pembuatan pondasi

3. Mendirikan tiang untuk tembok

4. Pembuatan dinding

5. Konstruksi atap

6. Pembuatan jaringan listrik

7. Pembuatan sistem pembuangan air

8. Pembuatan pintu dan jendela

9. Pengecatan

Pekerjaan-pekerjaan tersebut harus dilakukan berurutan. Ini berarti bahwa suatu pekerjaan tidak

mungkin dilakukan sebelum suatu pekerjaan lain selesai. Urutan pekerjaan tidaklah sepenuhnya

serial. Beberapa pekerjaan mungkin dapat dilakukan secara paralel, misalnya pembuatan

pintu/jendela dapat dilakukan jauh-jauh hari sebelum pemasangannya. Berarti pembuatan pintu

jendela dapat dilakukan paralel dengan pekerjaan sebelumnya (misalkan pembuatan dinding).

Page 329: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

324 Riset Operasi : Suatu Tinjauan Algoritmis

Ada 2 masalah yang muncul dalam penyelesaian proyek :

1. Menentukan urut-urutan pekerjaan (kapan suatu pekerjaan harus dimulai) sehingga

keseluruhan pekerjaan selesai dengan secepat-cepatnya.

2. Menentukan jalur kritis, yaitu pekerjaan-pekerjaan yang jika pelaksanaannya ditunda akan

menyebabkan penyelesaian keseluruhan proyek mundur. Selanjutnya, misalkan tersedia dana

tambahan untuk mempercepat pekerjaan, pekerjaan mana saja yang penyelesaiannya dapat

dipercepat tanpa merubah jalur kritis, tapi dengan biaya tambahan yang semurah-murahnya.

8.4.2 Pembuatan Jaringan Proyek

Proyek dapat dinyatakan dalam suatu graf berarah yang disebut jaringan proyek. Titik

menyatakan kejadian selesainya suatu aktivitas dan dimulainya aktivitas yang lain. Garis dalam

graf berarah menyatakan pekerjaan-pekerjaan yang harus dilakukan. Label garis menunjukkan

lama waktu penyelesaian pekerjaan

Contoh 8.22

Misalkan suatu proyek pembuatan alat dari logam terdiri dari beberapa aktivitas. Mula-mula ada

3 komponen logam (A, B, dan C) yang harus dicairkan di tempat pengecoran logam (lokasi-1).

Setelah itu, ketiga komponen tersebut akan digabungkan di tempat pencetakan (lokasi-2) dan

kemudian dikirimkan ke tempat penyimpanan (lokasi-5)

Komponen A dapat dikirim langsung dari tempat pengecoran ke tempat pencetakan, lalu ke

tempat penyimpanan.

Sebaliknya, komponen B dan C yang keluar dari tempat pengecoran harus dikirim dulu ke

tempat pembubutan (lokasi-3). Dari tempat pembubutan, komponen B langsung dikirim ke

tempat pencetakan. Akan tetapi komponen C harus dibawa ke tempat penggilingan (lokasi-4)

terlebih dahulu sebelum bisa dibawa ke tempat pencetakan.

Buatlah jaringan yang menyatakan aktivitas proyek tersebut.

Page 330: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 325

Penyelesaian

Misalkan titik-i menyatakan lokasi-i, dengan

lokasi-1 adalah tempat pengecoran logam,

lokasi-2 adalah tempat pencetakan

lokasi-3 adalah tempat pembubutan

lokasi-4 adalah tempat penggilingan dan

lokasi-5 adalah tempat penyimpanan

Garis dari titik-i ke titik-j menyatakan aktivitas pengiriman komponen dari lokasi-i ke lokasi-j.

Sebagai contoh, garis berarah dari titik-3 ke titik-2 menyatakan aktivitas pengiriman (komponen

B) dari tempat pembubutan ke tempat pencetakan. Graf berarah yang menyatakan proyek dapat

dilihat pada gambar 8.21.

1

43

52

Gambar 8.21

Ada beberapa hal yang harus diperhatikan dalam pembuatan jaringan proyek :

Tiap aktivitas harus dinyatakan dengan sebuah garis berarah. Ini berarti bahwa suatu aktivitas

tidak boleh muncul lebih dari satu kali.

Tidak boleh ada 2 atau lebih aktivitas yang dimulai dan diakhiri pada titik yang sama (lihat

gambar 8.22 a). Kasus ini timbul jika ada 2 aktivitas yang dapat dimulai serentak. Untuk

menghindari kondisi seperti itu, maka dibuat suatu aktivitas dummy dengan waktu

pelaksanaan = 0 (gambar 8.22 b).

Page 331: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

326 Riset Operasi : Suatu Tinjauan Algoritmis

1 2

akt-2

akt-11 2

akt-2

akt-1

3

akt dummy

Gambar 8.22 a Gambar 8.22 b

Jaringan tidak boleh memuat sirkuit (graf berarahnya harus asiklik). Jadi jaringan yang

memuat graf gambar 8.23 tidak diperbolehkan karena tidak jelas aktivitas mana yang

menjadi prasyarat.

1 3akt-2

akt-1

2

akt-3

Gambar 8.23

Jaringan harus memiliki titik awal dan titik akhir yang tunggal. Titik awal merupakan awal

dari keseluruhan rangkaian kegiatan. Titik akhir merupakan akhir dari semua kegiatan.

Visualisasi graf berarah tidaklah penting. Untuk soal yang sama, beberapa orang mungkin

membuat graf yang tampak berbeda, meskipun sebenarnya sama.

Pembuatan graf umumnya tidak “sekali jadi”. Kita mungkin perlu berkali-kali menggambar

ulang untuk mengatur posisi titik agar graf yang kita gambar tidak terlalu “ruwet”. Ini

disebabkan karena graf akhir yang terbentuk harus memenuhi semua kondisi yang

ditetapkan, sedangkan penggambaran graf harus dilakukan tahap demi tahap.

Contoh 8.23

Buatlah jaringan aktivitas A, B, ... , L yang memenuhi kondisi-kondisi berikut ini :

1. A, B dan C adalah aktivitas awal yang bisa dimulai bersamaan

Page 332: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 327

2. A, B harus dikerjakan sebelum D

3. B harus dikerjakan sebelum E, F dan H

4. F dan C harus dikerjakan sebelum G

5. E dan H harus dikerjakan sebelum I dan J

6. C, D, F dan J harus dikerjakan sebelum K

7. K harus dikerjakan sebelum L

8. I, G dan L adalah aktivitas akhir proyek.

Penyelesaian

Graf berarah jaringan proyek tampak pada gambar 8.24. Perhatikan beberapa hal yang muncul

dalam pembuatan jaringan proyek.

1. Untuk memulai penggambaran graf, tentukan aktivitas awal, yaitu aktivitas yang tidak

memiliki prasyarat (aktivitas lain yang harus dilakukan terlebih dahulu). Dalam contoh 8.23,

aktivitas awalnya adalah A, B dan C.

2. Perhatikan kapan kita harus menambahkan aktivitas dummy. Penambahan aktivitas dummy

harus dilakukan secukupnya untuk mengurangi kompleksitas graf yang terbentuk.

Aktivitas dummy D1 perlu ditambahkan karena baik A maupun B menjadi prasyarat bagi

D. Hal yang sama muncul pada D2, yang harus ditambahkan karena H dan E menjadi

prasyarat bagi I dan J.

Aktivitas dummy D3 ditambahkan karena D dan J tidak menjadi prasyarat bagi G. Apabila

aktivitas C berupa garis dari titik-1 langsung ke titik-7 dan F dari titik-2 langsung ke titik-7

(titik-6 digabungkan ke titik-7), berarti G berupa garis dari titik-7 ke titik-9. Jika demikian

maka aktivitas C, F, D, dan J menjadi prasyarat bagi K dan G. Padahal yang menjadi

prasyarat G hanyalah F dan C saja (kondisi 4)

Page 333: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

328 Riset Operasi : Suatu Tinjauan Algoritmis

G

L

K

I

D3

F

J

D

C

HD2

D1

E

A

B 5

4

3

21

6

7

9

8

Gambar 8.24

8.4.3 Metode Jalur Kritis (CPM)

Dalam jaringan proyek, ada beberapa aktivitas yang pelaksanaannya dapat ditunda, dan ada

beberapa aktivitas lain yang penyelesaiannya tidak dapat ditunda lagi. Sebagai contoh, dalam

penyelesaian proyek bangunan (contoh 8.21), aktivitas pembuatan jendela dan pintu bisa dimulai

sejak pembuatan pondasi dilakukan (meskipun pemasangannya menunggu selesainya

pembuatan dinding). Pembuatan jendela dan pintu umumnya membutuhkan waktu yang lebih

cepat dibandingkan penyelesaian seluruh kegiatan dari awal proyek hingga semua dinding

selesai dibuat. Ini berarti bahwa pembuatan pintu dan jendela merupakan aktivitas yang

penyelesaiannya dapat ditunda. Sebaliknya, pembuatan dinding merupakan aktivitas yang

penyelesaiannya tidak dapat ditunda lagi karena pembuatan atap, jaringan listrik, pemasangan

pintu, dll baru dapat dimulai setelah dinding selesai didirikan. Berarti aktivitas pembuatan

dinding merupakan aktivitas yang tidak dapat ditunda pelaksanaannya. Penundaan pembuatan

dinding akan mengakibatkan penyelesaian keseluruhan proyek mundur.

Aktivitas yang tidak dapat ditunda pelaksanaannya disebut aktivitas kritis. Sebaliknya, aktivitas

yang dapat ditunda pelaksanaannya disebut aktivitas yang tidak kritis. Masalah yang harus

diselesaikan dalam jaringan proyek adalah menentukan jalur kritis, yaitu urut-urutan aktivitas

kritis, beserta total waktu tercepat untuk menyelesaikan seluruh proyek. Salah satu metode yang

sering dipakai untuk menentukan jalur kritis adalah metode jalur kritis (critical path method =

CPM)

Misalkan tij adalah waktu yang dibutuhkan untuk menyelesaikan aktivitas dari titik-i ke titik-j.

Untuk mencari jalur kritis, ada 2 ukuran yang dihitung untuk setiap titik :

Page 334: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 329

1. ESj (= Earliest Start kegiatan j) yaitu waktu tercepat untuk memulai pekerjaan di titik-j.

Pekerjaan yang dimulai dari titik-j baru dapat dimulai apabila semua kegiatan prasyaratnya

sudah selesai.

maxj i iji

ES ES t

Perhitungan ES dimulai dari titik awal hingga titik akhir (perhitungan maju). Nilai ES untuk

titik awal = 0. ES di titik-j dapat dihitung bila semua ES di titik prasyaratnya sudah diketahui.

Dalam gambar 8.24, ES titik-7 dapat dihitung apabila ES di semua titik prasyaratnya (yaitu

titik 3, 5 dan 6) sudah diketahui.

2. LCi (= Latest Completion kegiatan i) yaitu waktu terlama untuk memulai kegiatan di titik-i.

Apabila ditunda lagi maka penyelesaian keseluruhan proyek akan mundur.

mini j ijj

LC LC t

Perhitungan LC dilakukan mundur, yaitu dari titik akhir ke titik awal. Nilai LC di titik akhir

sama dengan nilai ES di titik tersebut. LC di titik-i dapat dihitung jika LC di semua titik

penerusnya (titik-titik yang menggunakan titik-i sebagai prasyarat) sudah diketahui. Dalam

gambar 8.24, LC di titik-2 dapat dihitung jika LC di titik-3, 4, 5 dan 6 sudah diketahui.

Waktu tercepat penyelesaian seluruh proyek adalah ES di titik akhirnya. Jalur kritis jaringan

proyek adalah path dari titik awal ke titik akhir yang melalui semua titik dengan ES = LC

Contoh 8.24

Perhatikan kembali contoh 8.22. Misalkan waktu (hari) yang dibutuhkan untuk tiap aktivitas

tampak pada label graf gambar 8.25.

1

3 21

43

52

52 3

Gambar 8.25

Page 335: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

330 Riset Operasi : Suatu Tinjauan Algoritmis

a. Berapa waktu tercepat untuk menyelesaikan seluruh proyek ?

b. Manakah jalur kritisnya ?

Penyelesaian

Pertama-tama dicari ES untuk setiap titik dahulu. Titik awal proyek adalah titik-1. Maka ES1 =

0. Titik berikutnya yang dapat dicari ESnya adalah titik-3. Karena satu-satunya prasyarat titik-3

adalah titik-1 yang merupakan titik awal, maka ES3 = ES1 + t13 = 0 + 2 = 2.

Perhatikan bahwa sampai disini ES2 belum dapat dihitung karena ES4 belum diketahui (ingat

bahwa ES suatu titik dapat dihitung setelah ES semua titik prasyaratnya diketahui. Prasyarat

titik-2 adalah titik-1, 3, dan 4).

Titik yang berikutnya dapat dicari adalah titik-4. Satu-satunya prasyarat titik-4 adalah titik-3

sehingga ES4 = ES3 + t34 = 2 + 1 = 3.

Karena ES semua prasyarat titik-2 sudah diketahui, maka sekarang ES2 dapat dihitung. ES2 =

max (ES1+t12, ES3+t32, ES4+t42) = max (0+3, 2+5, 3+3) = 7. Jadi aktivitas yang dimulai dari

titik-2 (pengiriman dari tempat pencetakan ke tempat penyimpanan) baru dapat dilakukan setelah

hari ke 7. Pelaksanaan tidak dapat dilakukan lebih cepat karena harus menunggu selesainya

pengiriman dari tempat pembubutan (aktivitas dari titik-3 ke titik-2).

Berikutnya, ES5 = ES2 + t25 = 7+2 = 9.

Gambar 8.26 menunjukkan jaringan proyek yang dilengkapi dengan nilai ES untuk tiap titik

(dinyatakan dengan angka dalam kotak di sisi setiap titik).

1

3 21

43

52

52 3

0

2

9

7

3

= ES

Gambar 8.26

Page 336: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 331

Karena titik-5 adalah titik akhir jaringan proyek, maka berarti waktu tercepat penyelesaian

seluruh proyek adalah 9 hari.

Berikutnya, untuk mencari jalur kritisnya, dihitung LC untuk tiap titik, dimulai dengan titik akhir

(titik-5). LC titik-i dapat dihitung apabila semua titik yang memiliki prasyarat titik-i sudah

diketahui LCnya. Sebagai contoh, titik-2 dan titik-4 memiliki prasyarat titik-3. Maka LC3 baru

dapat dihitung setelah LC2 dan LC4 dihitung.

LC5 = ES5 = 9.

LC2 = LC5 – t25 = 9 – 2 = 7

Perhatikan pada saat ini, satu-satunya LC yang dapat dicari adalah LC4 karena titik-4 hanya

memiliki prasyarat titik-2 saja. LC3 belum dapat dihitung karena LC4 belum diketahui. LC1 juga

belum dapat dihitung karena LC3 belum diketahui.

LC4 = LC2 – 3 = 7 – 3 = 4

LC3 = min (LC2 – t32, LC4 – t34) = min (7–5, 4–1) = min (2, 3) = 2

LC1 = min (LC2 – t12, LC3 – t13) = min (7–3, 2–2) = min (4, 0) = 0.

Nilai LC dinyatakan dengan angka pada segitiga di sebelah tiap titik pada gambar 8.27

1

3 21

43

52

52 3

0

2

9

7

3

0

7

9

2 4

= LC

= ES

Gambar 8.27

Jalur kritis adalah jalur yang melalui semua titik dimana ES = LC. Dalam contoh ini melalui titik

1 – 3 – 2 - 5 (digambarkan dengan garis tebal pada gambar 8.27

Contoh 8.25

Page 337: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

332 Riset Operasi : Suatu Tinjauan Algoritmis

Carilah jalur kritis jaringan proyek gambar 8.28. Berapa waktu tercepat penyelesaian seluruh

proyek ?

1

4

5

3

2

7

6

2 0

4

3 16

4

83

9

5

Gambar 8.28

Penyelesaian

Perhatikan bahwa graf jaringan proyek merupakan graf yang tidak memiliki sirkuit sehingga

pasti memiliki titik awal dan titik akhir. Titik awal adalah suatu titik dimana tidak ada garis yang

masuk ke titik tersebut. Sebaliknya, titik akhir adalah titik dimana tidak ada garis yang keluar

dari titik tersebut.

Jaringan proyek gambar 8.28 memiliki titik awal pada titik-1 dan titik akhir pada titik-7. ES1 = 0.

ES titik lainnya dihitung dengan urut-urutan sebagai berikut :

ES2 = ES1 + t12 = 0 + 2 = 2

ES3 = ES2 + t23 = 2 + 4 = 6

ES4 = max (ES2+t24, ES3+t34) = max (2+3, 6+0) = 6

ES5 = max (ES4+t45, ES3+t35) = max (6+6, 6+3) = 12

ES6 = max (ES4+t46, ES5+t56) = max (6+4, 12+1) = 13

ES7 = max (ES6+t67, ES5+t57, ES3+t37) = max (13+5, 12+8, 6+9) = 20

Berarti waktu tercepat untuk menyelesaikan seluruh proyek adalah ES7 = 20

LC dihitung mundur dari titik akhir (titik-7). LC7 = ES7 = 20. LC titik-titik lainnya dihitung

dengan urut-urutan sebagai berikut :

LC6 = LC7 – t67 = 20 – 5 = 15

Page 338: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 333

LC5 = min (LC7 – t57, LC6 – t56) = min (20 – 8, 15 – 1) = 12

LC4 = min (LC5 – t45, LC6 – t46) = min (12 – 6, 15 – 4) = 6

LC3 = min (LC4 – t34, LC5 – t35, LC7 – t37) = min (6 – 0, 12 – 3, 20 – 9) = 6

LC2 = min (LC3 – t23, LC4 – t24) = min (6 – 4, 6 – 3) = 2

LC1 = LC2 – t12 = 2 – 2 = 0

Titik-titik dengan ES = LC adalah titik 1, 2, 3, 4, 5, dan 7. Maka jalur kritis adalah jalur yang

melewati titik-titik tersebut. Gambar 8.29 menunjukkan ES dan LC setiap titik beserta jalur

kritisnya (garis tebal)

1

4

5

3

20

20

6

0

6

20

= LC

= ES

7

6

2 0

4

3 16

4

83

9

5

2

2

6

6

13

15

12

12

Gambar 8.29

Perhatikan bahwa jalur kritis harus melewati semua titik dengan ES = LC, termasuk aktivitas

dummy. Jadi jalur kritisnya bukan titik 1 - 2 – 3 – 5 - 7, tetapi 1 - 2 – 3 – 4 – 5 - 7 karena titik 4

juga harus masuk dalam jalur kritis.

Agar keseluruhan penyelesaian seluruh kegiatan tidak mundur, maka semua aktivitas di jalur

kritis harus diselesaikan tepat waktu. Ini berarti tidak ada kelonggaran waktu sama sekali bagi

kegiatan-kegiatan tersebut. Sebaliknya, aktivitas yang tidak berada di jalur kritis memiliki waktu

longgar (slack) dan tidak harus dimulai tepat waktu. Aktivitas tersebut masih dimungkinkan

untuk ditunda. Ada 2 macam waktu longgar yang dikenal, yaitu total slack dan free slack.

Page 339: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

334 Riset Operasi : Suatu Tinjauan Algoritmis

Total slack (= TS) adalah total waktu luang yang tersedia untuk melakukan aktivitas =

maksimum waktu yang tersedia untuk melakukan aktivitas dikurangi waktu penyelesaian

aktivitas.

TSij = LCj – ESi - tij

Free Slack (= FS) adalah waktu luang yang masih tersedia jika semua aktivitas dimulai secepat-

cepatnya

FSij = ESj – ESi - tij

Untuk semua aktivitas di jalur kritis, TS dan FS = 0

Sebagai contoh, perhatikan aktivitas 4-6 (dengan t46 = 4) pada gambar 8.29

titik 4 titik 6

LC 6 15

ES 6 13

Maka TS46 = LC6 – ES4 – t46 = 15 – 6 – 4 = 5

FS46 = ES6 – ES4 – t46 = 13 – 6 – 4 = 3

Gambar 8.30 menunjukkan diagram interpretasi kedua jenis slack

156 121110987 1413

total waktu yang dimiliki = 15 - 6 = 9

waktu yang dimiliki jika semua kegiatan

dilakukan secepat-cepatnya = 13 - 6 = 7

3 4t46 = 4Free Slack =

7 - 4 = 3

3 4t46 = 4Total Slack =

9 - 4 = 5

ES4 =

LC4 = 6ES6 = 13 LC6 = 15

Gambar 8.30

Page 340: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 335

Contoh 8.26

Carilah slack (total slack dan free slack) tiap garis pada jaringan proyek contoh 8.25

Penyelesaian

Tabel 8.6 adalah hasil perhitungan TS dan FS (dengan indeks i adalah titik sumber dan indeks j

menyatakan titik tujuan) untuk tiap garis gambar 8.29

Aktivitas ESi ESj LCj tij TSij FSij

1 2 0 2 2 2 2-0-2 = 0 2-0-2 = 0

2 3 2 6 6 4 6-2-4 = 0 6-2-4 = 0

2 4 2 6 6 3 6-2-3 = 1 6-2-3 = 1

3 4 6 6 6 0 6-6-0 = 0 6-6-0 = 0

3 5 6 12 12 3 12-6-3 = 3 12-6-3 = 3

3 7 6 20 20 9 20-6-9 = 5 20-6-9 = 5

4 5 6 12 12 6 12-6-6 = 0 12-6-6 = 0

4 6 6 13 15 4 15-6-4 = 5 13-6-4 = 3

5 6 12 13 15 1 15-12-1 = 2 13-12-1 = 0

5 7 12 20 20 8 20-12-8 = 0 20-12-8 = 0

6 7 13 20 20 5 20-13-5 = 2 20-13-5 = 2

Tabel 8.6

Gambar 8.31 merupakan penyempurnaan gambar 8.29 setelah dilengkapi dengan nilai TS dan

FS untuk setiap garis

Page 341: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

336 Riset Operasi : Suatu Tinjauan Algoritmis

1

4

5

3

20

20

6

0

6

20

= LC

= ES

7

6

2 0

4

3 16

4

83

9

5

2

2

6

6

13

15

12

12

TS = 0

FS = 0

TS = 0

FS = 0

TS = 1

FS = 1

TS = 5

FS = 3

TS = 0

FS = 0

TS = 0

FS = 0

TS = 2

FS = 0

TS = 3

FS = 3

TS = 0

FS = 0

TS = 2

FS = 2

TS = 5

FS = 5 Gambar 8.31

Contoh 8.27

Carilah ES, LC, TS dan FS jaringan proyek yang tampak pada gambar 8.32

0

4

5

1

2

6

3

0

2

3

7

2

5

6

3

2

2

3

Gambar 8.32

Penyelesaian

ES0 = 0

ES1 = ES0 + t01 = 0 + 2 = 2

ES2 = ES0 + t02 = 0 + 3 = 3

ES3 = max (ES1+t13, ES2+t23) = max (2+2, 3+3) = 6

ES4 = max (ES2+t24, ES3+t34) = max (3+2, 6+0) = 6

Page 342: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 337

ES5 = max (ES3+t35, ES4+t45) = max (6+3, 6+7) = 13

ES6 = max (ES3+t36, ES4+t46, ES5+t56) = max (6+2, 6+5, 13+6) = 19

Berarti waktu tercepat untuk menyelesaikan seluruh proyek adalah ES6 = 19

LC dihitung mundur dari titik-6). LC6 = ES6 = 19. LC titik-titik lainnya dihitung dengan urut-

urutan sebagai berikut :

LC6 = LC7 – t67 = 20 – 5 = 15

LC5 = min (LC7 – t57, LC6 – t56) = min (20 – 8, 15 – 1) = 12

LC4 = min (LC5 – t45, LC6 – t46) = min (12 – 6, 15 – 4) = 6

LC3 = min (LC4 – t34, LC5 – t35, LC7 – t37) = min (6 – 0, 12 – 3, 20 – 9) = 6

LC2 = min (LC3 – t23, LC4 – t24) = min (6 – 4, 6 – 3) = 2

LC1 = LC2 – t12 = 2 – 2 = 0

Jalur kritis : 0 – 2 – 3 – 4 – 5 – 6. Dengan mengetahui ES dan LC di tiap titik, maka FS dan TS

untuk tiap garis bisa dihitung. Perhitungan selengkapnya ada pada tabel 8.7. Gambar 8.33 adalah

jaringan proyek yang sudah dilengkapi dengan ES, LC, FS dan TS.

0

4

5

1

2

013

6

0

6

13

= LC

= ES

6

3

0

2

3

7

2

5

6

3

2

2

3

3

2

4

19

19

TS = 0

FS = 0

TS = 2

FS = 2

TS = 0

FS = 0

TS = 2

FS = 0

TS = 0

FS = 0

TS = 1

FS = 1

TS = 8

FS = 8

TS = 4

FS = 4

TS = 0

FS = 0

TS = 11

FS = 113

6

6

TS = 0

FS = 0

Gambar 8.33

Page 343: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

338 Riset Operasi : Suatu Tinjauan Algoritmis

Aktivitas ESi ESj LCj tij TSij FSij

0 1 0 2 4 2 4-0-2 = 2 2-0-2 = 0

0 2 0 3 3 3 3-0-3 = 0 3-0-3 = 0

1 3 2 6 6 2 6-2-2 = 2 6-2-2 = 2

2 3 3 6 6 3 6-3-3 = 0 6-3-3 = 0

2 4 3 6 6 2 6-3-2 = 1 6-3-2 = 1

3 4 6 6 6 0 6-6-0 = 0 6-6-0 = 0

3 5 6 13 13 3 13-6-3 = 4 13-6-3 = 4

3 6 6 19 19 2 19-6-2 = 11 19-6-2 = 11

4 5 6 13 13 7 13-6-7 = 0 13-6-7 = 0

4 6 6 19 19 5 19-6-5 = 8 19-6-5 = 8

5 6 13 19 19 6 19-13-6 = 0 19-13-6 = 0

Tabel 8.7

Contoh 8.28

Untuk membuat anggaran tahun depan, sebuah perusahaan harus mengambil informasi dari

bagian penjualan, produksi, dan keuangan. Tabel 8.8 adalah aktivitas yang harus dilakukan,

aktivitas prasyarat serta waktu penyelesaian. Buatlah model jaringan yang sesuai dan tentukan

jalur kritisnya. Berapa waktu tercepat untuk menyelesaikan seluruh proyek ?

Aktivitas Uraian Aktivitas Aktivitas

Prasyarat

Waktu

(hari)

A Memprediksi volume penjualan - 10

B Studi pasar - 7

C Merancang item produk dan fasilitas A 5

D Mempersiapkan jadwal produksi C 3

E Memperkirakan biaya produksi D 2

F Menentukan harga jual barang B, E 1

G Mempersiapkan anggaran E, F 14

Tabel 8.8

Page 344: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 339

Penyelesaian

Gambar 8.34 adalah jaringan proyek yang sesuai. Waktu tercepat penyelesaian seluruh proyek

adalah 35 hari dengan jalur kritis 1 – 2 – 3 – 4 – 5 – 6 – 7.

Perhatikan bahwa prasyarat kegiatan G (yaitu E dan F) dapat diringkas menjadi F saja karena E

sudah merupakan prasyarat untuk F

= LC

= ES

0

0

TS = 0

FS = 0

TS = 0

FS = 0

TS = 0

FS = 0

TS = 0

FS = 0

TS = 13

FS = 13

TS = 0

FS = 0

1 765

432

A = 10

C = 5 D = 3

E = 2

G = 14F = 12

TS = 0

FS = 0

35

35

21

21

20

20

10

1015

15

18

18

Gambar 8.34

8.4.4 Optimisasi Jalur Kritis

Dalam suatu proyek, biasanya lama pengerjaan suatu aktivitas berhubungan dengan biaya. Biaya

proyek dapat dibagi menjadi 2 macam :

1. Biaya Langsung

Biaya ini berhubungan langsung dengan suatu aktivitas, misalnya upah pekerja. Biaya

langsung akan meningkat apabila waktu pengerjaan proyek diturunkan. Akan tetapi tetap ada

waktu minimum dimana waktu pelaksanaan aktivitas dapat diturunkan. Waktu minimum

tersebut titik crash. Gambar 8.35 adalah grafik waktu penyelesaian aktivitas versus biaya

langsung yang dikeluarkan. Titik normal adalah waktu pengerjaan normal, sedangkan titik

crash adalah waktu penyelesaian tercepat yang dapat dilakukan

Page 345: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

340 Riset Operasi : Suatu Tinjauan Algoritmis

waktu penyelesaian

proyek

biaya langsung

tc tn

cc

cn

titik crash

titik normal

tc = waktu penyelesaian pada titik crash

tn = waktu penyelesaian normal

cc = biaya titik crash

cn = biaya normal

Gambar 8.35

2. Biaya Tidak Langsung

Biaya tak langsung berhubungan dengan biaya overhead seperti biaya administrasi, ijin,

supervisi, dll. Umumnya biaya tidak langsung akan meningkat jika waktu pengerjaan proyek

dinaikkan.

Biaya langsung biasanya lebih diperhatikan karena secara langsung dapat mempengaruhi waktu

penyelesaian proyek. Misalkan terdapat dana tambahan untuk mempercepat penyelesaian

proyek. Masalahnya adalah memilih kegiatan-kegiatan yang dapat dipercepat penyelesaiannya

(tanpa merubah jalur kritis) dengan biaya yang semurah-murahnya.

Kegiatan yang dapat dipercepat adalah kegiatan yang berada di jalur kritis karena kegiatan inilah

yang menentukan lama pengerjaan suatu proyek. Pekerjaan di jalur kritis dianalisa dan waktu

penyelesaiannya diturunkan. Pekerjaan yang diprioritaskan untuk dipercepat adalah pekerjaan

yang penurunan waktunya tidak membutuhkan banyak biaya tambahan.

Slope/kemiringan garis gambar 8.35 dapat ditentukan dengan persamaan : c n

n c

c cm

t t. Slope

menyatakan besarnya kenaikan biaya untuk penurunan satu unit waktu pengerjaan. Semakin

kecil slope, berarti penurunan waktu pengerjaan hanya membutuhkan tambahan biaya yang

sedikit, sehingga pekerjaan ini diprioritaskan untuk dipercepat.

Algoritma pengoptimalan metode CPM adalah sebagai berikut :

1. Cari jalur kritis untuk biaya normal

Page 346: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 341

2. Tentukan slope tiap pekerjaan di jalur kritis

3. Tentukan slope terkecil (misal mk)

4. Turunkan waktu penyelesaian aktivitas-k sekecil-kecilnya tanpa mengubah jalur kritis

5. Ulangi langkah 3-4 hingga tidak ada lagi aktivitas yang dapat dipercepat tanpa merubah

jalur kritis

6. Percepat waku pengerjaan untuk tiap aktivitas dengan slope terkecil berikutnya, tapi dengan

memperhatikan efeknya pada jalur non kritis.

Page 347: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

342 Riset Operasi : Suatu Tinjauan Algoritmis

SOAL-SOAL LATIHAN

1. Hitunglah jumlah titik, jumlah garis dan derajat masing-masing titik graf berikut ini. Jika ada,

tentukan titik terasing dan titik pendan.

a

e d

cb

f

a

e d c

b

(a) (b)

a

e

dcb

i h g

(c)

2. Perhatikan graf G berikut ini

a

d

c

b

e

Tentukan mana diantara graf (a)-(f) di bawah ini yang merupakan subgraf G

a

e

a

d

c

b

e

a

d

c

b

ed

c

b

(a) (b) (c)

Page 348: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 343

a

d

c

b

e

a

d

c

b

e

a

d

c

b

e

(d) (e) (f)

3. Berapa jumlah titik yang dimiliki oleh suatu graf G jika G memiliki :

a. 16 garis dan semuanya berderajat 2

b. 21 garis, 3 titik berderajat 4, dan sisanya berderajat 3

c. 24 garis dan semuanya berderajat sama

4. Misalkan G adalah graf dengan 12 garis. Misalkan pula G memiliki 6 titik berderajat 3 dan

sisanya berderajat kurang dari 3. Tentukan jumlah minimum titik dalam G !

5. Dalam graf di bawah ini, tentukan apakah barisan berikut ini merupakan walk, path, path

sederhana, sirkuit atau sirkuit sederhana.

e2

e3

e4e

1

e5

v4

v3

v2 e

7

v5

e6

v0

e8

e9

e10

a. v0 e1 v1 e10 v5 e9 v2 e2 v1

b. v4 e7 v2 e9 v5 e10 v1 e3 v2 e9 v5

c. v2

d. v5 v2 v3 v4 v4 v5

e. e5 e8 e10 e3

6. Dalam graf di bawah ini, tentukan apakah barisan berikut ini merupakan walk, path, path

sederhana, sirkuit atau sirkuit sederhana

Page 349: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

344 Riset Operasi : Suatu Tinjauan Algoritmis

e2

e3

e4

e1

e5

v4

v3

v2e

7

v5 e

6

v0

e8

e9e

10

a. v1 e2 v2 e3 v3 e4 v4 e5 v2 e2 v1 e1 v0

b. v2 v3 v4 v5 v2

c. v4 v2 v3 v4 v5 v2 v4

d. v0 v5 v2 v3 v4 v2 v1

e. v5 v4 v2 v1

7. Perhatikan graf berikut ini :

v1

v2 v3

v4

e1

e2

e3

e4

e5

a. Berapa jumlah path sederhana dari v1 ke v4 ?

b. Berapa jumlah path dari v1 ke v4 ?

c. Berapa jumlah walk dari v1 ke v4 ?

8. Tentukan mana diantara graf-graf berikut ini yang memiliki sirkuit Euler. Carilah sirkuit

Euler graf yang memilikinya.

e

d

c

bat v

u

s

xyzr

w

f

c

e

b

d

a

(a) (b) (c)

Page 350: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 345

9. Seseorang hendak berjalan mengelilingi kota yang petanya tampak pada gambar berikut ini.

Mungkinkah ia memulai dan mengakhiri perjalanannya dari titik yang sama dan melalui

setiap jembatan tepat satu kali ? Jika mungkin, bagaimana caranya ?

A

D

C

B

E

10. Carilah matriks adjacency (matriks hubung) untuk graf berikut ini

v3

v2

v1

e3

e2

e1

v4 v

3

v2

v1

e3

e2

e1

e4

e5

e6

(a) (b)

e3

e5

e2e

1

e4

v1

v4 v

3

v2

e6

e3 e

5

e2

e1

e4

v1

v4

v3

v2

(c) (d)

11. Perhatikan pohon berikut ini dengan akar titik a

a. Berapakah level titik n ?

b. Berapakah level titik a ?

c. Berapa tinggi pohon berakar tersebut ?

Page 351: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

346 Riset Operasi : Suatu Tinjauan Algoritmis

d. Apakah anak titik n ?

e. Apakah orang tua titik g ?

f. Apakah saudara titik j ?

g. Apakah turunan titik f ?

a

dc

b

q

lkj

e

r

hg

yx

ts

m

fi

u w

pn

v

z

o

(a) (b)

12. Berapa banyak pohon rentang yang bisa dibuat dari graf berikut ini ?

d c

ba

e

d

cb

a

f

a

d

c

b ef

(a) (b) (c)

a

d c

b v1

v3

v0

v2

(d) (e)

13. Tentukan pohon rentang minimum graf berikut ini dengan algoritma Kruskal. Ulangi lagi

dengan algoritma Prim. Apakah hasilnya sama ?

Page 352: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 347

1

3

10

13

14

15

5

11

2

12

6

4

9

7

4d

c

b

a f

g

h

e

e

d

cb

a

f

5

9

10

5

46 4

46

10

2

(a) (b)

ed

g

c

a

h

b

f

13

7

10

12

8

4

15 19

20

2

18

5

d

c

b

a

f

e

4

8

9

16

11

7

5

10

3 2

(c) (d)

14. Sebuah perusahaan ingin membangun sistem telekomunikasi yang menghubungkan 7

cabangnya. Jarak antar cabang dinyatakan dalam tabel berikut ini :

a b c d e f g

a

b

c

d

e

f

g

0 20

0

42

25

0

31

35

41

0

28

29

33

34

0

29

24

22

36

41

0

33

31

38

40

32

25

0

Misalkan biaya pembuatan jaringan sebanding dengan jaraknya. Tentukan jaringan

termurah untuk menghubungkan 7 cabang tersebut. Berapa biaya termurahnya ?

15. Sebuah universitas membeli lahan untuk taman. Perancang taman sedang mengatur tempat

untuk pondok, taman kecil, kursi taman, dan lain-lain. Lokasinya dinyatakan dengan node

pada jaringan gambar di bawah ini. Garis pada jaringan menyatakan jalan yang mungkin

dilalui diantara tempat-tempat tersebut. Bagaimana cara membangun jalan yang

menghubungkan tempat-tempat tersebut, tapi dengan total panjang jalan yang minimum ?

Page 353: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

348 Riset Operasi : Suatu Tinjauan Algoritmis

2

8

1

6

5

8

2

3

3

9

4

11

4

6

5

3

3

1

8

12

4

9 2

3

4

6

6

5

7

7

6

3

4

2

4

3

5

1

2

7

6

9

8 10

11

13

12

14

15

16. Buatlah pohon bentang minimum untuk jaringan komunikasi darurat berikut ini

2

2

5

4

3

2

7

4

3

2 1

3

4

6

5

7

8

5

3

2

17. Di sebuah pabrik sabun, petugas pengawas kualitas mengambil sampel produk dari berbagai

area produksi dan mengirimkannya ke laboratorium untuk dianalisa. Manajer merasa bahwa

proses ini terlalu lambat sehingga ia merencanakan membuat tabung conveyor (alat

pembawa barang) otomatis untuk menggantikan peran petugas untuk membawa sampel dari

berbagai area produksi ke lab. Gambar berikut ini menunjukkan jaringan conveyor yang bisa

dibuat. Bagaimana cara pembuatan conveyor yang mampu menghubungkan semua area

dengan lab (node 1) tapi dengan panjang total yang minimum ?

6

5

7 4

6

3

5

8 2

4

8 6

5

6

4

2

1 3

4

5

6

7

8

Page 354: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 349

18. Di sebuah universitas sedang dibangun sistem jaringan komunikasi elektronik. Jaringan di

bawah ini menunjukkan hubungan yang mungkin dibuat antara kantor-kantornya. Jarak antar

kantor (ratusan meter) dinyatakan dengan angka pada garis. Buatlah rancangan komunikasi

antar kantor yang memungkinkan semua kantor berkomunikasi tapi dengan total jarak

pembuatan yang paling minimum !

2

1.6

3

1.2

1

1

4

4

0.5

3

0.5 1.5

3

2 1

2

1 3

4

5

6

8

7 2.5

19. Sebuah perusahaan TV kabel baru saja mendapat persetujuan untuk membangun jaringan

pelayanan TV kabel yang menghubungkan 3 kota. Titik-titik pada gambar jaringan di bawah

ini adalah titik distribusi yang harus terhubung oleh jaringan TV. Angka pada garis

menunjukkan jarak antara 2 titik distribusi (km). Tentukan jaringan yang memungkinkan

perusahaan untuk menjangkau semua titik distribusi dengan total jarak kabel yang paling

minimum.

2 3

2

3

7

2

5

3

3

4

6

2

1 3

4

5

6

8

7

9

10

11

3

2

4

4

4

4

3 4 5

4

4

20. Gunakan algoritma Dijkstraa untuk mencari jarak terpendek dari a ke z pada graf berikut

ini :

Page 355: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

350 Riset Operasi : Suatu Tinjauan Algoritmis

a

b

c

2

f

e

d

z

2

4

1

3

1

3

4

2 7

5

2

2

5

3

2

4

5

1a z

(a) (b)

3

55

2

3

4 7

2

56

1

4

a z1

2 6

6

7

8

2

5

5

5

67

7

8

10

1

5

224

33

1

4a

z

(c) (d)

21. Sebuah perusahaan pengantaran paket yang berpusat di kota Jogja mengadakan program

spesial pengantaran langsung ke 10 kota tujuan (kota 1 .. 10). Paket dengan tujuan salah satu

dari 10 kota tersebut akan langsung dikirim setiap kali order diterima. Gambar berikut ini

menunjukkan 10 kota (jarak dalam km) yang dapat dilayani untuk pengantaran. Tentukan

rute terpendek dari Jogja ke 10 kota lainnya

13

15

8

5

15

4

3

5

9

2 7

2

Jogja

4

3

6 10

7

9

8

5

10

4

5

4

5

4

5

6

12

Page 356: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 351

22. Sebuah perusahaan harus memutuskan kapan waktu yang paling tepat untuk mengganti

komponen, dan berapa lama komponen baru akan digunakan.. Gambar di bawah ini

menunjukkan waktu dan biaya penggantian komponen. Node 0, …, 4 menyatakan tahun

penggantian komponen. Label garis dari node x ke node y menunjukkan biaya yang

dibutuhkan untuk penggantian yang dilakukan pada tahun x dan komponen baru digunakan

hingga tahun ke y. Sebagai contoh, garis dari node 0 ke node 2 berarti bahwa komponen

lama tetap dipakai dan baru diganti pada akhir tahun 2. Tentukan jadwal penggantian yang

harus dilakukan untuk meminimumkan total biaya selama 4 tahun tersebut.

600 500 800 700

1000

2000

2800

1400

4 3 0 1 2

1600

2100

23. Sebuah perusahaan ingin melakukan pelatihan untuk karyawannya. Relasi prasyarat harus

dilakukan pada sesi pelatihan. Aktivitas berikut ini adalah pekerjaan yang harus diselesaikan

setiap peserta program pelatihan. Buatlah jaringan proyek untuk masalah ini

Aktivitas A B C D E F G H

Aktivitas Prasyarat - - A A, B A, B C D, F E, G

24. Sebuah pengembang mengkoordinasikan konstruksi kompleks perkantoran. Sebagai bagian

dari proses perencanaan, perusahaan membuat daftar aktivitas di bawah ini. Gambarlah

jaringan proyek yang dapat dipakai untuk membantu penjadwalan aktivitas proyek

Aktivitas A B C D E F G H I J

Aktivitas Prasyarat - - - A, B A, B D E C C F, G, H, I

25. Diketahui aktivitas proyek sbb. Proyek selesai jika aktivitas F dan G selesai

Aktivitas A B C D E F G

Aktivitas Prasyarat - - A A C, B C, B D, E

Waktu (bulan) 4 6 2 6 3 3 5

a. Buatlah jaringan proyek

b. Carilah jalur kritis

c. Apakah mungkin menyelesaikan proyek dalam 1,5 tahun ?

26. Selesaikan jaringan proyek di bawah ini !

Page 357: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

352 Riset Operasi : Suatu Tinjauan Algoritmis

Aktivitas A B C D E F G H I J

Aktivitas Prasyarat - - - B A B C, D B, E F, G H

27. Diketahui jaringan proyek dan waktu (minggu) sbb

Start

A

B

C

D

E

F

G

H

Finish

Aktivitas A B C D E F G H

Waktu 5 3 7 6 7 3 10 8

a. Tentukan jalur kritisnya

b. Berapa lama waktu untuk menyelesaikan seluruh proyek ?

c. Bisakah aktivitas D ditunda tanpa menyebabkan keseluruhan proyek mundur ? Jika bisa,

berapa lama aktivitas tersebut dapat ditunda ?

d. Bisakah aktivitas C ditunda tanpa menyebabkan keseluruhan proyek mundur ? Jika bisa,

berapa lama aktivitas tersebut dapat ditunda ?

28. Manajer kondominium sedang merenovasi bangunan utamanya. Waktu yang tersedia adalah

17 minggu dengan aktivitas sbb :

Aktivitas A B C D E F G H

Aktivitas Prasyarat - - - A, B, C C, D A D, F E

Waktu (minggu) 3 1 2 4 5 3 6 4

a. Gambarkan jaringan proyek

b. Aktivitas mana saja yang kritis ?

c. Aktivitas apa yang memiliki waktu slack (tunda) paling besar ?

d. Bisakah seluruh proyek selesai dalam 17 minggu ?

29. Suatu perguruan tinggi merencanakan akan menbangun kompleks olahraga multi fungsi di

dalam kampus. Aktivitas yang berhubungan adalah sebagai berikut :

Akt Uraian Prasyarat Waktu (mg)

Page 358: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

MODEL JARINGAN 353

A Survei posisi bangunan - 6

B Perancangan bangunan induk - 8

C Memperoleh persetujuan yayasan A, B 12

D Memilih arsitek C 4

E Membuat anggaran C 6

F Finalisasi rancangan D, E 15

G Mengusahakan dana E 12

H Memilih kontraktor F, G 8

a. Gambarkan jaringan proyek

b. Tentukan jalur kritis

c. Susunlah penjadwalan aktivitas-aktivitas proyek

d. Bisakah seluruh proyek selesai dalam 1 tahun ?

30. Perencana tata kota merencanakan membangun taman rekreasi baru. Pekerjaan di dalamnya

meliputi membersihkan area piknik dan bermain, membangun jalan, membangun tempat

berteduh, membeli peralatan taman, dll. Berikut ini adalah gambar jaringan proyek dan

waktu penyelesaian (minggu) tiap pekerjaan.

Start

A

B

D

C

F

E

G

H

Finish I

Aktivitas A B C D E F G H I

Waktu 9 6 6 3 0 3 2 6 3

a. Tentukan jalur kritisnya

b. Tentukan penjadwalan tiap aktivitas dalam proyek

c. Yayasan ingin agar taman rekreasi dibuka 6 bulan lagi. Bisakan manajer proyek

melakukannya ?

d. Bisakah aktivitas C ditunda tanpa menyebabkan keseluruhan proyek mundur ? Jika bisa,

berapa lama aktivitas tersebut dapat ditunda ?

Page 359: Riset Operasi AlgOritm - eprints.stiperdharmawacana.ac.ideprints.stiperdharmawacana.ac.id/84/1/_Riset_Operasi_Edisi_2_-_all.pdf · laniutkan clengan contoh soal dan langkahJangkah

Daftar Pustaka

Anderson, D.R., Sweeney, D.J., William, T.A.(2005), an Introduction to Management Science,

Quantitative Approaches to Decision Making, 11th ed, South-Western.

Bronson, R. (1983), Theory and Problems of Operations Research, Schaum’s Outline Series,

McGraw-Hill

Deo, N. (1986), Graph Theory with Applications to Engineering and Computer Science,

McGraw-Hill

Gillett, B.E. (1976), Introduction to Operations Research, A Computer-Oriented Algorithmic

Approach, McGraw-Hill

Hillier, F.S., Lieberman, G.J. (1986), Introduction to Operations Research, 4th ed, McGraw-Hill

Ignizio, J.P., Cavalier, T.M. (1994), Linear Programming, Prentice Hall Int

Jong Jek Siang. (2009), Matematika Diskrit dan Aplikasinya pada Ilmu Komputer, ed 4, Andi

Offset

Loomba, N.P. (1979), Linear Programming, An Introductory Analysis, McGraw-Hill

Mital, K.V. (1979), Optimization Methods in Operations Research and Systems Analysis, Wiley

Eastern Limited

Ravindran, A., Phillips, D.T., Solberg, J.J. (1987), Operations Research, Principles and Practice,

2nd ed, John Wiley & Sons

Susanta, B. (1986), Diktat Kuliah Program Linier, FMIPA UGM

Taha, H.A. (1987), Operations Research, an Introduction, 3rd ed, MacMillan Publishing Co,

Inc

Takaoka, T. (1998), Shortest path algorithm for Nearly acyclic directed graph, Theoretical

Computer Science, 203 (1) pages 143-150

Takaoka, T. (2001), Improved Shortest Path Algorithm for Nearly Acyclic Directed Graph,

TElectronic Notes in theoretical Computer Science 42 (2001),

www.elsevier.nl/locate/entcs/volume42.html

Terry L Dennis, Laurie B Dennis (1991), Management Science, West Publication Company.

Thie, P.R. (1979), An Introduction to Linear Programming and Game Theory, John Wiley &

Sons

Wu, N, Coppins, R. (1981), Linear Programming and Extensions, McGraw-Hill