Anda di halaman 1dari 18

RISET OPERASI

PROGRAM APLIKASI BIAYA TERKECIL

Kelompok 5 I Wayan Aditya Setiawan &i L'( P't' Ratna S)i Andi Yani !"#$"5"5% !"#$"5"$

PROGRAM ST*+I TEK&IK I&,ORMATIKA -*R*SA& ILM* KOMP*TER ,AK*LTAS MATEMATIKA +A& ILM* PE&GETA.*A& ALAM *&I/ERSITAS *+AYA&A B*KIT -IMBARA& !" 0

Metode T)an1po)ta1i Pada umumnya masalah transportasi berhubungan dengan distribusi suatu produk tunggal dari beberapa sumber, dengan penawaran terbatas, menuju beberapa tujuan, dengan permintaan tertentu, pada biaya transport minimum. Karena hanya ada satu macam barang, suatu tempat tujuan dapat memenuhi permintaanya dari satu atau lebih sumber. Asumsi dasar model ini adalah bahwa biaya transport pada suatu rute tertentu proporsional dengan banyaknya unit yang dikirimkan. Unit yang dikirimkan sangat tergantung pada jenis produk yang diangkut. Yang penting, satuan penawaran dan permintaan akan barang yang diangkut harus konsisten. Ada beberapa metode yang digunakan dalam metode transportasi, yaitu : 1. $. '. etode !orth "est #orner etode %iaya &erkecil etode Aproksimasi (ogel !amun pada pembahasaan laporan ini kami hanya menggunakan metode transportasi biaya terkecil pada pembuatan program aplikasi ini. Metode T)an1po)ta1i Biaya Te)ke2il )angkah*langkahnya adalah mengisi sel yang masih dapat diisi dengan biaya yang paling kecil. +umlah yang dialokasikan pada sel kosong tidak boleh melebihi jumlah suplai pada supply dan demand. #ontoh kasusnya: ,ebuah perusahaan berkepentingan mengangkut beras dari tiga pabrik ke tiga pasar. Kapasitas penawaran ketiga pabrik, permintaan pada ketiga pasar dan biaya transport perunit adalah sebagai berikut:

Pabrik Permintaan

1 $ '

1 1. ' 1.0

Pasar $ . 10 1 20

' / 1$ 10 /0

Penawaran 1$0 -0 -0 $-0

Kemudian &abel &tansportasi yang diperoleh:

Pabrik3Pasar 1 $ '
8 5 6 12 15 10 10 9 3

$ . 1. 10

' / 1$ 10

Penawaran 1$0 -0 -0 $-0

Permintaan

1.0

20

/0

)angkah*langkahnya adalah sebagai berikut: 1. Pilih 4ariable 5ij 6kotak7 dengan biaya transport 6cij7 terkecil dan alokasikan sebanyak mungkin. 8ni akan menghabiskan baris i atau kolom j. $. 9ari kotak*kotak sisanya yang layak 6yaitu yang tidak terisi atau dihilangkan7 pilih cij terkecil dan alokasikan sebanyak mungkin. '. )anjutkan proses ini sampai semua penawaran dan permintaan terpenuhi.

Pabrik3Pasar 1 $ '
8 5 6 10 12 15 3 10 9

$ 6$7 20

' 6'7 .0 6:7 10 10

Penawaran 1$0 -0 -0 $-0

6.7 20 617 -0 1.0 20

Permintaan

/0

9ari table 1.' diatas dapat diketahui bahwa biaya transport total adalah sebagai berikut: ; < 6' = -07 > 6. = 207 > 6/ = .07 > 61$ = 107 > 61. = 207 < $0/0 Implementa1i P)o3)am Al3o)itma Biaya Te)ke2il 6inisialisasi biaya < 07 1. 6mencari sel dengan cost terkecil7 i<0 j<0 min < cost?0@?0@ selama sel?i@?j@ A< !U)) dan iBjmlCbaris dan jBjmlCkolom 6i dan j increment 17 lakukan +ika min D cost?i@?j@, maka: in < cost?i@?j@

%arisCterkecil < i KolomCterkecil < j $. 6mengisi nilai sel7 +ika kapasitas?barisCterkecil@ B kebutuhan?kolomCterkecil@, maka: ,el?barisCterkecil@?kolomCterkecil@ < kapasitas?barisCterkecil@ Kapasitas?barisCterkecil@ < 0 Kebutuhan?kolomCterkecil@ kapasitas?barisCterkecil@ %iaya < biaya > sel?barisCterkecil@?kolomCterkecil@ E cost?barisCterkecil@ ?kolomCterkecil@ < kebutuhan?kolomCterkecil@ *

+ika kapasitas?barisCterkecil@ D kebutuhan?kolomCterkecil@, maka: ,el?barisCterkecil@?kolomCterkecil@ < kebutuhan?kolomCterkecil@ Kebutuhan?kolomCterkecil@ < 0 Kapasitas?barisCterkecil@ kebutuhan?kolomCterkecil@ %iaya < biaya > sel?barisCterkecil@?kolomCterkecil@ E cost?barisCterkecil@ ?kolomCterkecil@ +ika kapasitas?barisCterkecil@ < kebutuhan?kolomCterkecil@, maka: sel?barisCterkecil@?kolomCterkecil@ < kapasitas?barisCterkecil@ kapasitas?barisCterkecil@ < 0 kebutuhan?kolomCterkecil@ < 0 biaya < biaya > sel?barisCterkecil@?kolomCterkecil@ E cost?barisCterkecil@ ?kolomCterkecil@ '. 6mengecek kapasitas dan kebutuhan apakah sudah saling memenuhi7 +ika semua kapasitas?i@ < 0 dan semua kebutuhan?j@ < 0, maka: ke langkah :. +ika tidak, kembali ke langkah 1 :. cetak biaya < kapasitas?barisCterkecil@ *

So')2e Code P)o3)am 3E E &o change this license header, choose )icense Feaders in Project Properties. E &o change this template Gile, choose &ools H &emplates E and open the template in the editor. E3 package simpleleastcostI

import ja4a=.swing.table.9eGault&able odelI

3EE E E Jauthor ,uarbawa E3 public class #ost9ialog e=tends ja4a=.swing.+9ialog K

3EE E #reates new Gorm #ost9ialog E3 9eGault&able odel cost odelI pri4ate int dispose,tatusI

public #ost9ialog6ja4a.awt.Lrame parent, boolean modal7 K super6parent, modal7I init#omponents67I

this.cost odel < new 9eGault&able odel67I M

public 4oid set#ost odel69eGault&able odel cost odel8!7 K this.cost odel < cost odel8!I this.j&ableCcost&able.set odel6cost odel7I M

pri4ate boolean is8nput(alid67 K boolean 4alid < trueI Gor 6int i < 0I i B this.cost odel.getNow#ount67I i>>7 K Gor 6int j < 1I j B this.cost odel.get#olumn#ount67I j>>7 K iG6this.cost odel.get(alueAt6i, j7<<null7 K 4alid < GalseI Melse iG 66Athis.cost odel.get(alueAt6i, j7.to,tring67.matches6O?0*1@?0* 1@E?.@P?0*1@EO777 K 4alid < GalseI M M M return 4alidI M

3EE E &his method is called Grom within the constructor to initialiQe the Gorm.

E "AN!8!R: 9o !S& modiGy this code. &he content oG this method is always E regenerated by the Lorm Tditor. E3 J,uppress"arnings6OuncheckedO7 33 Beditor*Gold deGaultstate<OcollapsedO desc<ORenerated #odeOD pri4ate 4oid init#omponents67 K

j,crollPane1 < new ja4a=.swing.+,crollPane67I j&ableCcost&able < new ja4a=.swing.+&able67I j%utton1 < new ja4a=.swing.+%utton67I j%utton$ < new ja4a=.swing.+%utton67I

set9eGault#loseSperation6ja4a=.swing."indow#onstants.98,PS,TCS!C#)S, T7I

j&ableCcost&able.set odel6new ja4a=.swing.table.9eGault&able odel6 new Sbject ?@?@ K Knull, null, null, nullM, Knull, null, null, nullM, Knull, null, null, nullM, Knull, null, null, nullM M, new ,tring ?@ K O&itle 1O, O&itle $O, O&itle 'O, O&itle :O M

77I j,crollPane1.set(iewport(iew6j&ableCcost&able7I

j%utton1.set&e=t6OSKO7I j%utton1.addAction)istener6new ja4a.awt.e4ent.Action)istener67 K public 4oid actionPerGormed6ja4a.awt.e4ent.ActionT4ent e4t7 K j%utton1ActionPerGormed6e4t7I M M7I

j%utton$.set&e=t6O#ancelO7I j%utton$.addAction)istener6new ja4a.awt.e4ent.Action)istener67 K public 4oid actionPerGormed6ja4a.awt.e4ent.ActionT4ent e4t7 K j%utton$ActionPerGormed6e4t7I M M7I

ja4a=.swing.Rroup)ayout layout < new ja4a=.swing.Rroup)ayout6get#ontentPane677I get#ontentPane67.set)ayout6layout7I layout.setForiQontalRroup6 layout.createParallelRroup6ja4a=.swing.Rroup)ayout.Alignment.)TA98!R7 .addRroup6ja4a=.swing.Rroup)ayout.Alignment.&NA8)8!R, layout.create,eUuentialRroup67 .add#ontainerRap6':', ,hort. A5C(A)UT7

.add#omponent6j%utton$, ja4a=.swing.Rroup)ayout.PNTLTNNT9C,8;T, 2:, ja4a=.swing.Rroup)ayout.PNTLTNNT9C,8;T7 .addRap61-, 1-, 1-7 .add#omponent6j%utton1, ja4a=.swing.Rroup)ayout.PNTLTNNT9C,8;T, 2/, ja4a=.swing.Rroup)ayout.PNTLTNNT9C,8;T7 .addRap6$1, $1, $177 .add#omponent6j,crollPane1, ja4a=.swing.Rroup)ayout.Alignment.&NA8)8!R, ja4a=.swing.Rroup)ayout.9TLAU)&C,8;T, .'$, ,hort. A5C(A)UT7 7I layout.set(erticalRroup6 layout.createParallelRroup6ja4a=.swing.Rroup)ayout.Alignment.)TA98!R7 .addRroup6ja4a=.swing.Rroup)ayout.Alignment.&NA8)8!R, layout.create,eUuentialRroup67 .add#omponent6j,crollPane1, ja4a=.swing.Rroup)ayout.9TLAU)&C,8;T, '01, ,hort. A5C(A)UT7 .addRap6'-, '-, '-7 .addRroup6layout.createParallelRroup6ja4a=.swing.Rroup)ayout.Alignment.%A, T)8!T7 .add#omponent6j%utton17 .add#omponent6j%utton$77 .addRap62, 2, 277 7I

pack67I M33 B3editor*GoldD

10

pri4ate 4oid j%utton1ActionPerGormed6ja4a.awt.e4ent.ActionT4ent e4t7 K 33 &S9S add your handling code here: iG 6this.is8nput(alid67 << true7 K this.dispose,tatus < 1I this.dispose67I M else K ja4a=.swing.+SptionPane.show essage9ialog6rootPane, OSne or more input is in4alidO, OTrrorO, ja4a=.swing.+SptionPane.TNNSNC T,,ART7I M M

pri4ate 4oid j%utton$ActionPerGormed6ja4a.awt.e4ent.ActionT4ent e4t7 K this.dispose,tatus < 0I this.dispose67I M

public int get9ispose,tatus67 K return this.dispose,tatusI M public 9eGault&able odel get#ost odel67 K return this.cost odelI M 3EE

11

E Jparam args the command line arguments E3 public static 4oid main6,tring args?@7 K 3E ,et the !imbus look and Geel E3 33Beditor*Gold deGaultstate<OcollapsedO desc<O )ook and Geel setting code 6optional7 OD 3E 8G !imbus 6introduced in +a4a ,T /7 is not a4ailable, stay with the deGault look and Geel. E Lor details see http:33download.oracle.com3ja4ase3tutorial3uiswing3lookandGeel3plaG.html E3 try K Gor 6ja4a=.swing.U8 anager.)ookAndLeel8nGo inGo : ja4a=.swing.U8 anager.get8nstalled)ookAndLeels677 K iG 6O!imbusO.eUuals6inGo.get!ame6777 K ja4a=.swing.U8 anager.set)ookAndLeel6inGo.get#lass!ame677I breakI M M M catch 6#lass!otLoundT=ception e=7 K ja4a.util.logging.)ogger.get)ogger6#ost9ialog.class.get!ame677.log6ja4a.util.log ging.)e4el.,T(TNT, null, e=7I M catch 68nstantiationT=ception e=7 K ja4a.util.logging.)ogger.get)ogger6#ost9ialog.class.get!ame677.log6ja4a.util.log ging.)e4el.,T(TNT, null, e=7I M catch 68llegalAccessT=ception e=7 K

12

ja4a.util.logging.)ogger.get)ogger6#ost9ialog.class.get!ame677.log6ja4a.util.log ging.)e4el.,T(TNT, null, e=7I M catch 6ja4a=.swing.Unsupported)ookAndLeelT=ception e=7 K ja4a.util.logging.)ogger.get)ogger6#ost9ialog.class.get!ame677.log6ja4a.util.log ging.)e4el.,T(TNT, null, e=7I M 33B3editor*GoldD

3E #reate and display the dialog E3 ja4a.awt.T4entVueue.in4oke)ater6new Nunnable67 K public 4oid run67 K #ost9ialog dialog < new #ost9ialog6new ja4a=.swing.+Lrame67, true7I dialog.add"indow)istener6new ja4a.awt.e4ent."indowAdapter67 K JS4erride public 4oid window#losing6ja4a.awt.e4ent."indowT4ent e7 K ,ystem.e=it607I M M7I dialog.set(isible6true7I M M7I M

33 (ariables declaration * do not modiGy pri4ate ja4a=.swing.+%utton j%utton1I pri4ate ja4a=.swing.+%utton j%utton$I
13

pri4ate ja4a=.swing.+,crollPane j,crollPane1I pri4ate ja4a=.swing.+&able j&ableCcost&ableI 33 Tnd oG 4ariables declaration M

14

Pen3'4ian %erikut ini adalah beberapa screenshoot ketika program dijalankan: &ampilan awal source code yang sudah dijalankan :

Pertama pada kali ini kita menggunakan compiler netbeans , dimana untuk menguji program ini berhasil atau tidak kita harus menjalankan source code yang telah diselesaikan, pertama inputkan jumlah supply yang anda jumlah demand yang anda inginkan , seperti gambar berikut : inginkan dan

15

8nputkan nilai nilai supply dan demand sehingga seperti gambar dibawah ini :

16

)alu masukan cost dari masing*masing sel seperti dibawah ini

,etelah penginputan cost berhasil muncullah gamabr seperti dibawah ini :

17

,ehingga di peroleh biaya yang dikeluarkan pada bagian bawah

18