You are on page 1of 15

SIMPLEK Metode simpleks digunakan untuk memecahkan program-program linier yang melibatkan lebih dari 2 variabel, untuk memulai

metode simpleks ini, semua kendali ketidaksamaan harus ditransformasikan menjadi persamaan dan juga harus diketahui salah satu pemecahan yang layak dan tak-negatif.

Persyaratan Tak-Negatif
Semua variabel yang belum dikendala agar tak-negatif diganti dengan selisih dari 2 variabel baru yang telah terkendala. Contoh : Jika kendala x ! 2x2 " # $ 2x ! %x2 #2$ x & x2 &

'enyelesaian (
misal x2 ) x% ! x" disubstitusikan ke # $ dan #2$ menjadi ( x ! 2#x% * x"$ " x ! 2x% * 2x" " 2x ! %#x% * x"$ 2x ! %x% * %x" dan ( semua variabel tak-negatif

Variabel Kurang & Plus


Sebuah kendala linier yang berbentuk aj xj bi dapat diubah menjadi suatu persamaan dengan menambahkan sebuah variabel tak-negatif baru pada persamaan lainnya, variabel baru ini disebut variabel kurang #slack variabel$. Contoh : +engan kendala ( 2x ! %x2 , x ! x2 x , x2 & menjadi ( 2x ! %x2 ! S ), x ! x2 ! S2 ) dan semua variabel tak negatif

sebuah kendala linier yang berbentuk aij xj bi dapat diubah menjadi persamaan dengan mengurangkan ruas kirinya dengan sebuah variabel baru tak-negatif, variabel baru ini disebut variabel surplus #surplus variabel$.

Contoh : +engan kendala"x ! %x2 , x ! "x2 2 x , x2 & menjadi ( "x ! %x2 - S ), x ! "x2 - S2 ) dan semua variabel tak-negatif

Pemecahan Awal yang Layak


Setelah semua kendala linier #dengan ruas kanan yang tak-negatif$ ditransformasikan menjadi persamaan dengan memperkenalkan variabel-variabel kurang dan surplus bila perlu, tambahkan lagi sebuah variabel baru yang disebut variabel buatan #artificial variable - A$ dengan demikian tiap persamaan kendala akan mengandung variabel kurang dan variabel buatan.

Rangkuman
Jika pada kendala linier terdapat tanda # $ maka dalam fungsi kendala perlu ditambah variabel kurang # + S $. Jika pada kendala linier terdapat tanda # $ maka dalam fungsi kendala perlu ditambah variabel surplus # - S $ dan variabel buatan # A $. Jika pada kendala linier terdapat tanda # = $ maka dalam fungsi kendala perlu ditambah variabel buatan # A $.

Contoh : +engan kendala x ! 2x2 % "x ! ,x2 . /x ! 0x2 ) , x , x2 & menjadi ( x ! 2x2 ! S )% "x ! ,x2 - S2 ! 1 "x ! %x2 ! 12 dan semua variabel tak-negatif

) ,

Biaya Hukuman
'enambahan variabel kuarang dan variabel surplus tidak mengubah sifat kendala maupuntujuan, oleh karena itu, variabel-variabel tersebut diikutsertakan dalam fungasi tujuan dengan koefisien 234. Sedangkan variabel buatan mengubah sifat kendala, oleh karena itu, variabel buatan diikutsertakan dalam fungsi obyektif tetapi dengan koefisienkoefisien positif yang besar sekali (M) untuk program meminimumkan, atau koefisienkoefisien negatif yang besar sekali (-M) untuk program memaksimumkan.

Contoh : Min ( 5 ) x ! %x2 +engan kendala2x ! "x2 , %x ! ,x2 2 x ! 2x2 " x , x2 & menjadi ( Min ( 5 ) x ! %x2 ! &S ! &S2 ! &S% ! M1 +engan kendala2x ! "x2 ! S ), %x ! ,x2 ! S2 )2 x ! 2x2 - S % ! 12 ) " dan semua variabel tak-negatif

Bentuk im!leks
4angkah-langkah penyelesaian dengan metode simpleks adalah sebagai berikut ( . Mengubah fungsi tujuan dan batasan Setelah semua fungsi tujuan dan batasan diubah ke bentuk satndard, maka fungsi tujuan diubah menjadi fungsi implisit, yaitu semua 6j 7ij digeser ke kiri. 6ontoh ( 5 ) %x ! ,x2 5 - %x ! ,x2 ) & 2. Menyusun persamaan-persamaan ke dalam tabel simpleks 8ar dasar 5 7n! 7n!2 2ilai kanan #2:$ & b b2

7 -6 a a2

72 - 62 a2 a22

7% - 6% a% a2%

9 9 9 9 9 9

xn - 6n an a2n

7n! & &

7n!2 & &

9 9 9 9 9 9

7n!m & & &

& &

7n!m

8ar dasar ) var. kurang dan var buatan

%. Memilih kolom kunci 6aranya dengan memilih kolom yang mempunyai nilai pada garis fungsi tujuan yang bernilai negatif dengan angka terbesar.

". Memilih baris kunci 'ilih baris yang mempunyai limit ratio dengan angka terkecil.

9 &

9 an

9 an2

9 an%

9 anm

9 &

9 &

9 bn

4imit ratio )

2ilai kolom 2: 2ilai kolom kunci

,. Mengubah nilai-nilai baris kunci 2ilai baris kunci diubah dengan cara membaginya dengan angka kunci. ;antilah variabel dasar pada baris kunci dengan variabel yang terdapat di bagian atas kolom kunci. .. Mengubah nilai-nilai selain pada baris kunci <ntuk mengubahnya menggunakan rumus ( =aris baru ) baris lama * # koefisien per kolom kunci > nilai bari baris kunci $ /. Melanjutkan perbaikan-perbaikan atau perubahan-perubahan <langi langkah % s-d ., sampai semua nilai pada fungsi tujuan berharga positif.

"#nt#h #al $et#%e im!leks


. Seorang tukang kue mempunyai ? kg telur dan , kg terigu. @a akan membuat % macam kue isi dengan ketentuan sebagai berikut ( :ue isi nanas memerlukan kg telur dan % kg terigu. :ue isi keju memerlukan 2 kg telur dan 2 kg terigu. :ue isi coklat memerlukan % kg telur dan 2 kg terigu. Aarga dari ketiga macam kue isi tersebut adalah B , B? dan B . =erapa jumlah kue masing-masing yang harus diproduksi agar pendapatan dapat maksimalC Jawaban : Maksimumkan ( D ) x ! ?x2 ! x% +engan kendala ( x ! 2x2 ! %x% E ? %x ! 2x2 ! 2x% E , dan ( semua variabel tak * negatif 'enyelesaian ( Fungsi Gujuan ( D ) x ! ?x2 ! x% ! &S ! &S2 Fungsi @mplisit ( D - x - ?x2 - x% - &S - &S2 ) & Fungsi :endala ( x ! 2x2 ! %x% ! S )? %x ! 2x2 ! 2x% ! S2 ) , Iterasi ke - 1 8ar. dasar 5 5 S S2 & & %

x -

x -!
>

x% % 2

S &

S2 & &

2k & ? ,

4imit Hatio & ?-2 ,-2 baris kunci

&

:olom kunci > ( angka kunci

2k didapat dari nilai yang paling kanan dari fungsi kendala. 4imit Hatio didapat dari 2k dibagi dengan koefisien kolom kunci 'ada iterasi ke- , terdapat nilai yang negatif pada 5 #fungsi tujuan $ dan yang paling besar negatifnya terdapat di kolom x sehingga dijadikan kolom kunci. +an baris kunci di dapat dari limit ratio yang paling kecil. 'erpotongan baris dan kolom kunci adalah angka kunci. 8ariabel baris kunci diubah menjadi variabel kolom kunci #lihat iterasi ke-2$. 2ilai baris kunci dirubah dengan cara membagi nilai tiap elemen baris kunci dengan angka kunci. 2ilai pada baris lainnya diubah dengan cara ( =aris baru ) baris lama * # koefsien per kolom kunci > nilai baru baris kunci $ Iterasi ke 8ar dasar 5 x2 S2 & & 5 x /-2 -2 2 & x2 & x% 2,-2 %-2 S S2 2k 0 -2 ?-2 .

?-2 & -2 &

'ada itersi ke-2 tidak terdapat nilai negatif pada 5 #fungsi tujuan $, maka hasil yang diperoleh telah optimal, dengan hasil ( 5 ) 0 -2 I x 2 ) ?-2 I x ) x% ) &. :arena x dan x% tidak terdapat pada variabel dasar maka bernilai 234. Maka nilai optimal ) 5 ) 0 -2 ) "&., 2. Seorang tukang perabot mempunyai . unit kayu dan Jaktu luang ? jam. @a akan membuat 2 model tirai * tirai hiasan dgn ketentuan sbb ( Model @ perlu 2 unit kayu dan Jaktu 2 jam. Model @@ perlu unit kayu dan Jaktu % jam. Aarga dari kedua model itu adalah B% dan B". =erapa jumlah tirai dari tiap * tiap model yang harus di buat jika ia ingin memaksimumkan pendapatannyaC JaJaban ( Max ( 5 ) %x ! "x2 +engan kendala ( 2x ! x2 . 2x ! %x2 ? x , x2 &

'enyelesaian ( Max ( 5 ) %x ! "x2 ! &S ! &S2 +engan kendala ( 2x ! x2 ! S ). 2x ! %x2 ! S2 ) ? dan ( semua variabel tak negatif fungsi implisit ( 5 - %x - "x2 - &S - &S2 ) & 8ar dasar 5 7 " S S2 2:

Iterasi ke-1

5 S S 5

& $

-% 2

-# 1 %& & $

&

& & 1 "-% - 1'% -% ,-" - -" 2-%

& . ! 2 % % , -" ?-" %-2

). = %

Iterasi ke-

S1 72 5 7 72

$ & & &

1'% #'%& '% &

$ & 1 & K L -M

= !'# ) ?-2

Iterasi ke-%

& &

&

Aasil optimal ( 5> ) , -" I x > ) ?-" I x2> ) %-2 2ilai optimal ( 5 ) , -"

L#gika Pr#gram
. Gentukan jumlah variable yang digunakan 2. Gentukan koefisien fungsi objektif dan koefisien fungsi kendala %. =uat tabel simpleks dan uji sesuai rumus simpleks # Jika nilai fungsi objektif masih ada yang negatif $ ". Jika nilai fungsi objektif positif, maka hasil telah optimal ,. 2ilai optimal ) nilai objektif yang terakhir. Aanya untuk mencari nilai (aksi(a)isasi, dan data maksimal 1$$*

Listing Program
'rogram MNG3+NOS@M'4N7I <SNS 6HGI GP'N 1HH1POHN14 ) 1HH1P Q .. &&R 3F HN14I 1HH1PO@2G ) 1HH1P Q .. &&R 3F @2GN;NHI 81HOHN6 ) HN63H+ :olom ( @2GN;NHI =aris ( @2GN;NHI N2+I 81H 6j 8arO=as 5j ( 1HH1P Q .. &&R 3F HN14I ( 1HH1P Q .. &&R 3F 1HH1POHN14I ( 1HH1P Q .. &&R 3F HN14I

6jO5j ( 1HH1P Q .. &&R 3F HN14I Gemp ( 1HH1P Q .. &&R 3F HN14I 8arO:oor ( 1HH1P Q .. &&R 3F 81HOHN6I :euntungan ( 1HH1P Q .. &&R 3F HN14I varObasic,varOnonbasic,fungsiOkendala ( @2GN;NHI brs,kol (@2GN;NHI indexOkuantitas ( integerI @ndexOvarOkoor ( integerI 5 ( HN14I countOiterasi ( @2GN;NHI 'H36N+<HN =ikin;aris#x,y,count(@2GN;NHIkar(6A1H$I 81H i(integerI =N;@2 F3H i()& G3 count- +3 =N;@2 ;3G37P#x!i,y$I SH@GN#kar$I N2+I N2+I 'H36N+<HN 6etak#ke(integer$I 81H i,j(@2GN;NHI =N;@2 clrscrI SH@GN42#T@terasi Gabel :e-T,ke$I brs()SANHNPI =ikin;aris# ,brs,/?,T)T$I ;3G37P# ,brs! $ISH@GN#T6jT$I F3H i() G3 varObasic +3 =N;@2 ;3G37P#0>i,brs! $I SH@GN#6jQiR( (2$I N2+I ;3G37P# ,brs!2$ISH@GN#T8ar=scT$I kol()&I F3H i() G3 varOnonbasic +3 =N;@2 inc#kol,0$I ;3G37P#kol,brs!2$I SH@GN#T7T,i$I N2+I F3H i() G3 fungsiOkendala +3 =N;@2 inc#kol,0$I ;3G37P#kol,brs!2$I SH@GN#TST,i$I N2+I inc#kol,0$I

;3G37P#kol,brs!2$ISH@GN#T:uantitasT$I =ikin;aris# ,brs!%,/?,T-T$I F3H i() G3 fungsiOkendala +3 =N;@2 ;3G37P# ,brs!i!%$ISH@GN#TST,i$I kol()&I For j() G3 varObasic +3 =N;@2 inc#kol,0$I ;3G37P#kol,brs!i!%$ISH@GN#8arO=asQi,jR( (2$I N2+I inc#kol,0$I ;3G37P#kol,brs!i!%$ISH@GN#8arO=asQi,j! R( (2$I N2+I brs()brs!i!"I =ikin;aris# ,brs,/?,T-T$I ;3G37P# ,brs! $ISH@GN#T5jT$I ;3G37P# ,brs!2$ISH@GN#T6j-5jT$I F3H i() G3 varObasic +3 =N;@2 ;3G37P#0>i,brs! $ISH@GN#5jQiR( (2$I ;3G37P#0>i,brs!2$ISH@GN#6jO5jQiR( (2$I N2+I =ikin;aris# ,brs!%,/?,T-T$I ;3G37P# ,brs!"$ISH@GN#T5T$I ;3G37P#0,brs!"$ISH@GN#5( (2$I =ikin;aris# ,brs!,,/?,T)T$I SH@GN42ISH@GN42#T'ress 1ny keys to continues....UT$I N2+I F<26G@32 FindMaxMin6jO5j ( @2GN;NHI 81H i,max(@ntegerI temp(realI =N;@2 i() I temp()&.&I max()&I Hepeat if#6jO5jQiRVtemp$ then =egin temp()6jO5jQiRI max()iI NndI inc#i$I <ntil iV)varObasicI FindMaxMin6jO5j()maxI N2+I

F<26G@32 FindMin=asic(@2GN;NHI 81H min,i(integerI aJal(realI =N;@2 min() I aJal()GempQ RI F3H i()2 G3 fungsiOkendala +3 =N;@2 @F GempQiRWaJal then begin aJal()GempQiRI min()iI endI endI FindMin=asic()minI N2+I 'H36N+<HN @si:euntungan8ar=asicI 81H @(@ntegerI =N;@2 F3H i() G3 && +3 :euntunganQiR()&I For i() Go indexO8arO:oor +3 :euntunganQ8arO:oorQiR.=arisR()6jQ8arO:oorQiR.:olomRI N2+I 'H36N+<HN 'rosesI 81H get=rs,get:ol,i,j(integerI elemen(realI get:olOtemp(integerI =N;@2 6etak#countOiterasi$I HeadlnI get:olOtemp()&I get:ol()FindMaxMin6jO5jI SA@4N#get:olV&$ +3 =N;@2 F3H i() G3 fungsiOkendala +3 =N;@2 @f 8arO=asQi,get:olRWV& Ghen GempQiR()8arO=asQi,indexOkuantitasR-8arO=asQi,get:olR else

GempQiR() ./e%0I N2+I get=rs()FindMin=asicI elemen()8arO=asQget=rs,get:olRI F3H i() G3 varObasic! +3 =N;@2 8arO=asQget=rs,iR()8arO=asQget=rs,iR-elemenI N2+I F3H i() G3 fungsiOkendala +3 =N;@2 @F i)get=rs GAN2 6ontinueI elemen()8arO=asQi,get:olRI F3H j() G3 varObasic! +3 8arO=asQi,jR()8arO=asQi,jR-#elemen>8arO=asQget=rs,jR$I N2+I @f get:olWVget:olOtemp then @26#indexOvarOkoor$I 8arO:oorQindexOvarOkoorR.:olom()get:olI 8arO:oorQindexOvarOkoorR.=aris()get=rsI get:olOGemp()get:olI @si:euntungan8ar=asicI For i() G3 varObasic +3 =N;@2 5jQiR()&I For j() G3 fungsiOkendala +3 5jQiR()5jQiR!#8arO=asQj,iR>:euntunganQjR$I 6jO5jQiR()6jQiR-5jQiRI N2+I 5()&I For i() G3 fungsiOkendala +3 5()5!#8arO=asQi,indexOkuantitasR>:euntunganQiR$I inc#countOiterasi$I 6etak#countOiterasi$I readlnI get:ol()FindMaxMin6jO5jI N2+I SH@GN42#TAasil Maksimasi +ari @terasi @ni 1dalah (T$I For i() Go fungsiOkendala +3 =egin For j() to indexOvarOkoor +3 begin if i)8arO:oorQjR.=aris Ghen begin SH@GN42#TAasil7T,8arO:oorQjR.:olom,T)T,8arO=asQi,indexOkuantitasR( (2$I endI NndI

NndI SH@GN42#T+engan Aasil :euntungan Maksimal ) T,5( (2$I SH@GN42#T'roses Maksimalisasi Selesai...................T$I N2+I 'H36N+<HN @nputI 81H i,j(integerI =N;@2 64HS6HI SH@GN42I SH@GN#TMasukan Jumlah 8ariabel 2on =asic (T$IHN1+42#varOnonbasic$I F3H i() G3 varOnonbasic +3 =N;@2 SH@GN#T@nput 2ilai 8ariabel 7T,i,T ) T$IHN1+42#6jQiR$I N2+I SH@GN#TMasukan Jumlah Fungsi :N2+141 ( T$IHN1+42#fungsiOkendala$I XMengisi 6j dengan variabel non basic #S$Y F3H i() G3 fungsiOkendala +3 6jQvarOnonbasic!iR()&I varObasic()fungsiOkendala!varOnonbasicI

F3H i() G3 fungsiOkendala +3 =N;@2 SH@GN42#TMengisi 8ariabel ST,i,T(T$I F3H j() G3 varObasic +3 =N;@2 SH@GN#T@nput 2ilai ST,i,T kolom ke-T,j,T ) T$I HN1+42#8arO=asQi,jR$I N2+I SH@GN#T@nput 2ilai :uantitasnya ) T$IHN1+42#8arO=asQi,j! R$I N2+I indexOkuantitas()j! I F3H i() Go varObasic +3 =N;@2 5jQiR()&I 6jO5jQiR()6jQiRI N2+I N2+I var

tombol(charI =N;@2 Hepeat indexOvarOkoor()&I

countOiterasi() I @2'<GI 'rosesI Jrite#T1nda ingin @nput 4agi QP-GR ( T$I readln#tombol$I until tombol in QTGT,TtTRI Nnd.

Lay#ut Pr#gram
Lihat +ari ,ontoh soa) no 1- .nt.k (e(as.kkan /ariab)e- koe0isien 0.n1si ob2ekti0koe0isien 0.n1si ken+a)a* (Lihat tabe) si(3)eks .nt.k 3en1isian) Masukan Jumlah 8ariabel 2on =asic ( % @nput 2ilai 8ariabel 7 ) @nput 2ilai 8ariabel 72 ) ? @nput 2ilai 8ariabel 7% ) Masukan Jumlah Fungsi :N2+141 (2 Mengisi 8ariabel S ( @nput 2ilai S kolom ke- ) @nput 2ilai S kolom ke-2 ) 2 @nput 2ilai S kolom ke-% ) % @nput 2ilai S kolom ke-" ) @nput 2ilai S kolom ke-, ) & @nput 2ilai :uantitasnya ) ? Mengisi 8ariabel S2( @nput 2ilai S2 kolom ke- ) % @nput 2ilai S2 kolom ke-2 ) 2 @nput 2ilai S2 kolom ke-% ) 2 @nput 2ilai S2 kolom ke-" ) & @nput 2ilai S2 kolom ke-, ) @nput 2ilai :uantitasnya ) ,

@terasi Gabel :e))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6j .&& ?.&& .&& &.&& &.&& 8ar=sc 7 72 7% S S2 :uantitas ------------------------------------------------------------------------------S .&& 2.&& %.&& .&& &.&& ?.&& S2 %.&& 2.&& 2.&& &.&& .&& ,.&& ------------------------------------------------------------------------------5j &.&& &.&& &.&& &.&& &.&& 6j-5j .&& ?.&& .&& &.&& &.&& ------------------------------------------------------------------------------5 &.&& ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 'ress 1ny keys to continues....U

@terasi Gabel :e-2 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6j .&& ?.&& .&& &.&& &.&& 8ar=sc 7 72 7% S S2 :uantitas -----------------------------------------------------------------------S &.,& .&& .,& &.,& &.&& ".,& S2 2.&& &.&& - .&& - .&& .&& ..&& -----------------------------------------------------------------------5j ".,& ?.&& %.,& ".,& &.&& 6j-5j -%.,& &.&& - 2.,& -".,& &.&& -----------------------------------------------------------------------5 "&.,& ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 'ress 1ny keys to continues....U Aasil Maksimasi +ari @terasi @ni 1dalah ( Aasil 72 ) ".,& +engan Aasil :euntungan Maksimal ) "&.,& 'roses Maksimalisasi Selesai................... 1nda ingin @nput 4agi QP-GR (

4irt.a) Lab A5A

$$6 7

$$8

5eknik 9iset :3erasiona) ( 59: )

1. 2.

6obalah program diatas dan jelaskan per function Z per procedure program 'erusahaan =luberry =akery memproduksi 2 jenis kue yang berbeda yaitu kue 1 dan kue =. =ahan baku utama kedua kue itu sama, yaitu tepung terigu, gula dan mentega. :ue 1 membutuhkan .& gram tepung terigu, 2& gram gula dan 2 gram mentega untuk setiap potongnya. Sedangkan . :ue = membutuhkan ,& gram tepung terigu, 2, gram gula dan & gram mentega untuk setiap potongnya. +iasumsikan permintaan konsumen sesuai dengan jumlah produksi. Gentukan jumlah kue 1 dan kue = yang harus diproduksi untuk mendapatkan keuntungan yang maksimal, bila ( Aarga jual kue 1 Hp. 2,&&,- per-potong Aarga jual kue = Hp. 20&&,- per-potong Gepung terigu yang tersedia & :g ;ula pasir yang tersedia " :g Mentega yang tersedia 2 :g

;unakanlah Metode Simpleks U 3. 'erusahaan =akso Jago memproduksi 2 jenis bakso yang berbeda yaitu bakso :ecil dan bakso =esar. =ahan baku utama kedua bakso itu sama, yaitu tepung sagu dan daging sapi. =akso :ecil membutuhkan ? gram tepung sagu dan . gram daging sapi untuk setiap baksonya. Sedangkan bakso =esar membutuhkan & gram tepung sagu dan 2 gram daging sapi untuk setiap baksonya. +iasumsikan permintaan konsumen sesuai dengan jumlah produksi. Gentukan jumlah bakso :ecil dan bakso =esar yang harus diproduksi untuk mendapatkan keuntungan yang maksimal, bila (

Aarga jual bakso :ecil Hp. 0&&,- per-bakso Aarga jual bakso =esar Hp. 2,&,- per-bakso Gepung sagu yang tersedia 2 :ilogram +aging sapi yang tersedia . :ilogram

;unakanlah Metode Simpleks U

( 5era3kan soa) no* ; % ke +a)a( a3)ikasi 3ro1ra( +iatas* Jika +ata-+ata <an1 akan +iin3.t berni)ai )ebih +ari 1$$- )ak.kan 3e(b.)atan ni)ai* Contoh : .nt.k ni)ai = 1$$ ni)ai = 1 (+a)a( rat.san)) Keteran1an : . Gugas +iatas dikumpulkan dalam bentuk print dan di jilid.

2. Gugas ini adalah tugas 'eorangan bukan tugas kelompok %. =isa dikumpulkan perkelas atau perorangan # 2anti akan mendapatkan tanda - bukti mengumpulkan tugas $

You might also like