branch and bound program linier

83
BAB I PENDAHULUAN Program linier merupakan suatu model umum yang dapat digunakan dalam pemecahan masalah pengalokasian sumber-sumber yang terbatas secara optimal. Masalah tersebut timbul apabila seseorang diharuskan untuk memilih atau menentukan tingkat setiap kegiatan yang akan dilakukannya, dimana masing- masing kegiatan membutuhkan sumber yang sama sedangkan jumlahnya terbatas. Banyak cara yang dapat dilakukan untuk menyelesaikan persoalan program linier, diantaranya dengan menggunakan metode grafik, simpleks, simpleks dua fase, antrian, penugasan, transportasi dan lain sebagainya. Setiap metode hanya dapat digunakan pada persoalan tertentu sesuai dengan karakteristik masing-masing metode. Seperti metode grafik yang hanya bisa digunakan untuk persoalan program linier yang hanya mempunyai dua buah variabel, apabila lebih, maka metode grafik tidak akan dapat menyelesaikannya. Sedangkan metode simpleks merupakan teknik yang paling berhasil dikembangkan untuk menyelesaikan persoalan program linier yang mempunyai jumlah variabel dan pembatas yang banyak. Contoh persoalan program linier yang terjadi : Pemilik dari toko jual beli mesin merencanakan untuk mengadakan perluasan dengan membeli beberapa mesin baru, yaitu mesin pencetak dan mesin bubut. Pemilik menganggarkan bahwa tiap mesin pencetak akan menaikkan keuntungan Rp 100.000,00 per hari dan tiap mesin bubut akan menaikkan

Upload: ndaru

Post on 13-Jul-2016

52 views

Category:

Documents


8 download

DESCRIPTION

Metode Branch and Bound

TRANSCRIPT

Page 1: Branch and Bound Program Linier

BAB I

PENDAHULUAN

Program linier merupakan suatu model umum yang dapat digunakan

dalam pemecahan masalah pengalokasian sumber-sumber yang terbatas secara

optimal. Masalah tersebut timbul apabila seseorang diharuskan untuk memilih

atau menentukan tingkat setiap kegiatan yang akan dilakukannya, dimana masing-

masing kegiatan membutuhkan sumber yang sama sedangkan jumlahnya terbatas.

Banyak cara yang dapat dilakukan untuk menyelesaikan persoalan

program linier, diantaranya dengan menggunakan metode grafik, simpleks,

simpleks dua fase, antrian, penugasan, transportasi dan lain sebagainya. Setiap

metode hanya dapat digunakan pada persoalan tertentu sesuai dengan karakteristik

masing-masing metode. Seperti metode grafik yang hanya bisa digunakan untuk

persoalan program linier yang hanya mempunyai dua buah variabel, apabila lebih,

maka metode grafik tidak akan dapat menyelesaikannya. Sedangkan metode

simpleks merupakan teknik yang paling berhasil dikembangkan untuk

menyelesaikan persoalan program linier yang mempunyai jumlah variabel dan

pembatas yang banyak.

Contoh persoalan program linier yang terjadi :

Pemilik dari toko jual beli mesin merencanakan untuk mengadakan

perluasan dengan membeli beberapa mesin baru, yaitu mesin pencetak dan mesin

bubut. Pemilik menganggarkan bahwa tiap mesin pencetak akan menaikkan

keuntungan Rp 100.000,00 per hari dan tiap mesin bubut akan menaikkan

Page 2: Branch and Bound Program Linier

2

keuntungan Rp 150.000,00 per hari. Banyaknya jumlah mesin yang dapat dibeli

dibatasi dengan biaya mesin dan tersedianya ruang dalam toko. Harga beli mesin

dan luas tempat yang diperlukan untuk masing-masing mesin adalah sebagai

berikut :

Mesin Luas Tempat ( m2

) Harga Beli

Pencetak 15 Rp 8.000.000,00

Bubut 30 Rp 4.000.000,00

Anggaran pembelian mesin adalah sebesar Rp 40.000.000,00, sedangkan tempat

yang tersedia adalah 200 m2. Pemilik ingin mengetahui berapa banyak tiap jenis

mesin yang dapat dibeli untuk memaksimumkan kenaikan keuntungan perhari.

Persoalan di atas dapat diselesaikan dengan metode grafik ataupun metode

simpleks. Solusi yang dihasilkan dari kedua metode tersebut adalah keuntungan

maksimum yang diperoleh sebanyak Rp 1.056.000,00 dengan membeli 2,22

mesin pencetak dan 5,56 mesin bubut. Namun dalam kehidupan nyata, tidaklah

mungkin membeli 2,22 atau 5,56 mesin, melainkan harus membeli mesin dengan

jumlah yang bulat, bukan berupa pecahan. Oleh karena itu, harus ditentukan,

apakah akan membeli 2 atau 3 mesin pencetak dan 5 atau 6 mesin bubut.

Pembulatan jumlah produksi yang dilakukan sangat mempengaruhi keuntungan

yang diperoleh dan biaya yang dikeluarkan. Persoalan di atas harus diselesaikan

sedemikian rupa sehingga solusi bilangan bulat optimal dijamin tercapai.

Berdasarkan uraian di atas, diperoleh suatu rumusan masalah. Teknik

apakah yang dapat digunakan untuk memperoleh solusi bilangan bulat yang

optimal dari persoalan program linier ?

Page 3: Branch and Bound Program Linier

3

Memperhatikan masalah tersebut, penulis ingin memperkenalkan salah

satu teknik yang dianggap efisien dan efektif untuk mencari solusi bilangan bulat

yang optimal dari persoalan program linier, yaitu teknik Branch and Bound.

Teknik ini merupakan suatu pendekatan solusi yang layak digunakan

dalam menyelesaikan permasalahan program linier, khususnya bilangan bulat,

dengan membagi daerah solusi yang layak menjadi subset yang lebih kecil, untuk

selanjutnya dilakukan evaluasi secara sistematis terhadap subset tersebut sampai

solusi yang terbaik ditemukan.

Dari uraian di atas, penulis mencoba untuk mengangkat teknik Branch and

Bound untuk mendapatkan solusi bilangan bulat yang optimal dari persoalan

program linier.

Page 4: Branch and Bound Program Linier

4

BAB II

MATERI PENDUKUNG

2.1 Metode Simpleks

Metode simpleks merupakan prosedur aljabar yang bersifat iteratif

(pengulangan), yang bergerak selangkah demi selangkah, dimulai dari suatu titik

ekstrem pada daerah fisibel (ruang solusi) menuju ke titik ekstrem yang optimum.

Secara matematis, permasalahan program linier dapat ditulis sebagai

berikut :

Maks. atau min. : nn xcxcxcz ...2211

Berdasarkan :

nix

bxaxaxa

bxaxaxa

bxaxaxa

i

mnmnmm

nn

nn

,...2,1,0

....

.

.

.

....

....

2211

22222121

11212111

Jika kita defenisikan :

mnmm

n

n

aaa

aaa

aaa

A

...

.

.

.

...

...

21

22221

11211

;

nx

x

x

X

.

.

.

2

1

;

mb

b

b

B

.

.

.

2

1

Maka pembatas dari model tersebut dapat dituliskan ke dalam bentuk sistem

persamaan BAX

Page 5: Branch and Bound Program Linier

5

2.1.1. Langkah-langkah Penyelesaian

Berikut ini langkah-langkah penyelesaian persoalan program linier dengan

menggunakan metode simpleks :

a. Mengubah fungsi tujuan dan batasan-batasan

Fungsi tujuan diubah menjadi fungsi implisit, artinya semua nn xc

digeser ke ruas kiri persamaan. Pada bentuk standar, semua batasan

mempunyai tanda . Ketidaksamaan ini harus diubah menjadi kesamaan.

Caranya dengan menambahkan slack variable, yaitu variabel tambahan

yang mewakili tingkat pengangguran atau kapasitas yang merupakan

batasan. Slack variable ini adalah ,, 21 nn xx . . . , mnx .

b. Menyusun persaman-persamaan di dalam tabel

Setelah fungsi tujuan dan batasan diubah, kemudian disusun ke

dalam tabel, dalam bentuk simbol seperti tampak pada tabel berikut :

Tabel Simpleks dalam Bentuk Simbol

Variabel

Dasar Z 1x 2x ... nx 1nx 2nx ... mnx NK

Z 1 -c1 -c2 ... -cn 0 0 ... 0 0

1nx 0 11a 12a ... na1 1 0 ... 0 1b

2nx 0 21a 22a ... na2 0 1 ... 0 2b

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

mnx 0 1ma 2ma ... mna 0 0 ... 1 mb

Keterangan :

m = jenis batasan-batasan sumber/fasilitas yang tersedia

Page 6: Branch and Bound Program Linier

6

n = jenis batasan-batasan kegiatan yang menggunakan sumber/fasilitas

tersebut

i = nomor setiap sumber/fasilitas yang tersedia (1 sampai dengan m)

j = nomor setiap jenis kegiatan yang menggunakan sumber/fasilitas

(1 sampai dengan n)

jx = tingkat kegiatan ke-j

ija = banyaknya sumber i yang diperlukan untuk menghasilkan setiap unit

keluaran/output kegiatan j

ib = banyaknya sumber/fasilitas yang tersedia untuk dialokasikan ke

setiap unit kegiatan (1 sampai dengan m)

Z = nilai yang dioptimalkan

Cj = kenaikan nilai Z apabila ada pertambahan kegiatan ( jx ) dengan satu

satuan/unit/merupakan sumbangan setiap satuan keluaran kegiatan

ke-j terhadap nilai Z

NK = nilai yang berada di sebelah kanan tanda sama dengan

c. Memilih kolom kunci

Cara menentukan kolom kunci adalah dengan memilih kolom yang

mempunyai nilai negatif dengan angka terbesar pada baris fungsi tujuan.

d. Menentukan nilai indeks pada tiap-tiap baris

Nilai indeks tiap-tiap baris ditentukan dengan cara membagi nilai-

nilai pada kolom NK dengan nilai yang sebaris dengan kolom kunci, atau :

kuncikolomnilai

NKkolomnilaiIndeks

Page 7: Branch and Bound Program Linier

7

e. Memilih baris kunci

Baris kunci adalah baris yang mempunyai indeks positif dengan

angka terkecil.

f. Menentukan angka kunci

Angka kunci adalah angka yang termasuk dalam kolom kunci dan

juga termasuk pada baris kunci dinamakan angka kunci.

g. Mengubah nilai-nilai baris kunci

Nilai baris kunci diubah dengan cara membaginya dengan angka

kunci.

h. Mengubah nilai-nilai selain pada baris kunci

Nilai-nilai baris yang lain, selain pada baris kunci dapat diubah

dengan rumus sebagai berikut :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris

kunci)

i. Melanjutkan perbaikan-perbaikan / perubahan-perubahan

Ulangi langkah-langkah perbaikan mulai langkah ke-c sampai

langkah ke-f untuk memperbaiki tabel yang telah diubah/diperbaiki

nilainya. Perubahan baru berhenti setelah pada baris pertama (baris fungsi

tujuan) tidak ada lagi yang bernilai negatif.

2.1.2. Bentuk-bentuk Penyimpangan

Pada penyelesaian persoalan program linier yang menggunakan metode

simpleks, terdapat beberapa penyimpangan dari bentuk standar, diantaranya

adalah sebagai berikut :

Page 8: Branch and Bound Program Linier

8

a. Batasan dengan tanda sama dengan (=)

Batasan dari persoalan program linier yang bertanda sama dengan

(=) harus diubah agar sesuai dengan bentuk standar, sehingga dapat

diselesaikan dengan menggunakan metode simpleks. Caranya adalah

dengan menambahkan variabel buatan (artivicial variable) yang bernilai

positif, yang dilambangkan dengan ,1nx 2nx , …

Sebelum variabel buatan masuk, batasan sudah berbentuk

persamaan, setelah variabel buatan masuk, masih berbentuk persamaan.

Akibatnya, timbul syarat agar tetap sesuai dengan persamaan semula,

maka variabel buatan harus bernilai nol (0).

Variabel buatan yang ditambahkan hanya merupakan syarat supaya

algoritma metode simpleks dapat berjalan. Sebagai usaha agar variabel

buatan segera bernilai nol (0), maka disusunlah fungsi tujuan baru dengan

bentuk 1 nxMzz dimana M adalah bilangan positif yang sangat besar

tapi tak terhingga. Dengan demikian diharapkan agar variabel buatan

segera keluar dari kolom variabel dasar karena koefisiennya bernilai

negatif yang sangat besar.

b. Minimasi

Fungsi tujuan dari persoalan program linier yang bersifat minimasi

harus diubah menjadi maksimasi, agar sesuai dengan bentuk standar, yaitu

maksimasi., sehingga dapat diselesaikan dengan menggunakan metode

simpleks. Caranya adalah dengan mengganti tanda positif dan negatif pada

fungsi tujuan, sebagai berikut :

Page 9: Branch and Bound Program Linier

9

Minimumkan

n

j

jj xcZ1

berubah menjadi :

Maksimumkan

n

j

jj xcZ1

Contoh :

Minimumkan : 21 53 xxZ diubah menjadi :

Maksimumkan: 21 53 xxZ

c. Fungsi pembatas bertanda lebih dari atau sama dengan ( )

Bila suatu fungsi pembatas bertanda , maka harus diubah

menjadi agar sesuai dengan bentuk standar dengan pembata bertanda ,

sehingga metode simpleks dapat berjalan. Hal ini dilakukan dengan jalan

mengubah tanda tiap-tiap koefisien dari positif menjadi negatif dan

sebaliknya. Selanjutnya, pertidaksamaan diubah menjadi persamaan

(bertanda =) dengan menambahkan slack variable, agar dapat diselesaikan

dengan metode simpleks.

d. Bagian kanan persamaan bertanda negatif

Bila di bagian kanan persamaan bertanda negatif, maka harus

diubah menjadi positif, kemudian ditambah dengan variabel buatan

(artivicial variable). Variabel buatan yang ditambahkan haruslah bernilai

positif.

2.2 Program Linier Relaksasi

Program linier relaksasi adalah bentuk program linier yang diperoleh

dengan mengabaikan pembatas bilangan bulat. Contoh : Pemilik dari toko jual

Page 10: Branch and Bound Program Linier

10

beli mesin merencanakan untuk mengadakan perluasan dengan membeli beberapa

mesin baru, yaitu mesin pencetak dan mesin bubut. Pemilik menganggarkan

bahwa tiap mesin pencetak akan menaikkan keuntungan Rp 100.000,00 per hari

dan tiap mesin bubut akan menaikkan keuntungan Rp 150.000,00 per hari.

Banyaknya jumlah mesin yang dapat dibeli dibatasi dengan biaya mesin dan

tersedianya ruang dalam toko. Harga beli mesin dan luas tempat yang diperlukan

untuk masing-masing mesin adalah sebagai berikut :

Mesin Luas Tempat ( m2

) Harga Beli

Pencetak 15 Rp 8.000.000,00

Bubut 30 Rp 4.000.000,00

Anggaran pembelian mesin adalah sebesar Rp 40.000.000,00, sedangkan tempat

yang tersedia adalah 200 m2. Pemilik ingin mengetahui berapa banyak tiap jenis

mesin yang dapat dibeli untuk memaksimumkan kenaikan keuntungan perhari.

Pada persoalan di atas, tidak akan mungkin membeli mesin pencetak dan

mesin bubut dengan jumlah pecahan. Oleh karena itu, model matematis untuk

persoalan diatas adalah :

Memaksimumkan : 21 000.150000.100 xxz

Berdasarkan : 000.000.40000.000.4000.000.8 21 xx

2003015 21 xx

0, 21 xx ; 21 , xx bilangan bulat

Program linier relaksasi dari model matematis pada persoalan program linier di

atas adalah :

Maksimumkan: 21 000.150000.100 xxz

Page 11: Branch and Bound Program Linier

11

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

(3) 0, 21 xx

Page 12: Branch and Bound Program Linier

12

BAB III

PEMBAHASAN

Teknik Branch and Bound merupakan teknik solusi untuk persoalan

program linier yang mengharuskan variabelnya berupa bilangan bulat. Prinsip

yang mendasari teknik ini adalah bahwa total set solusi yang fisibel dapat dibagi

menjadi subset-subset solusi yang lebih kecil. Subset-subset ini selanjutnya dapat

dievaluasi secara sistematis sampai solusi yang terbaik ditemukan. Teknik Branch

and Bound pada persoalan program linier digunakan bersama-sama dengan

metode simpleks.

Teknik ini menggunakan suatu diagram yang terdiri dari node dan cabang

(branch) sebagai suatu kerangka dalam proses pemerolehan solusi optimal.

Masing-masing node memuat solusi program linier relaksasi sesuai dengan fungsi

tujuan dan batasannya. Node pertama akan memuat solusi program linier relaksasi

dari persoalan yang diberikan. Node kedua, ketiga, keempat, dan seterusnya

memuat solusi program linier relaksasi dari persoalan yang diberikan ditambah

dengan batasan yang terdapat pada masing-masing cabangnya.

3.1 Algoritma Teknik Branch and Bound

Langkah-langkah penggunaan teknik Branch and Bound adalah sebagai

berikut :

a. Dapatkan solusi simpleks optimal dari program linier relaksasi yang

bersangkutan.

Page 13: Branch and Bound Program Linier

13

b. Solusi yang dihasilkan pada langkah a dinyatakan sebagai batas atas

(upper bound) dan pembulatan ke bawah sebagai batas bawah (lower

bound) pada node 1

c. Pilihlah variabel dengan pecahan yang terbesar untuk pencabangan

(branch). Ciptakan dua batasan baru untuk variabel ini. Hasilnya adalah

sebuah batasan dan sebuah batasan .

d. Ciptakan dua node baru, satu dengan batasan dan satu dengan

batasan

e. Selesaikan model program linier relaksasi dengan batasan baru yang

ditambahkan pada tiap node

f. Solusi simpleks relaksasi adalah merupakan batas atas pada tiap node, dan

solusi bilangan bulat maksimum yang ada (pada node mana saja) adalah

merupakan batas bawah

g. Jika proses ini menghasilkan solusi bilangan bulat fisibel dengan nilai

batas atas pada akhir node mana saja, maka solusi bilangan bulat optimal

telah tercapai. Jika tidak muncul solusi bilangan bulat fisibel, lakukan

pencabangan dari node dengan batas atas terbesar

3.2 Contoh Penerapan

Persoalan :

Pemilik dari toko jual beli mesin merencanakan untuk mengadakan

perluasan dengan membeli beberapa mesin baru, yaitu mesin pencetak dan mesin

bubut. Pemilik menganggarkan bahwa tiap mesin pencetak akan menaikkan

keuntungan Rp 100.000,00 per hari dan tiap mesin bubut akan menaikkan

Page 14: Branch and Bound Program Linier

14

keuntungan Rp 150.000,00 per hari. Banyaknya jumlah mesin yang dapat dibeli

dibatasi dengan biaya mesin dan tersedianya ruang dalam toko. Harga beli mesin

dan luas tempat yang diperlukan untuk masing-masing mesin adalah sebagai

berikut :

Mesin Luas Tempat ( m2

) Harga Beli

Pencetak 15 Rp 8.000.000,00

Bubut 30 Rp 4.000.000,00

Anggaran pembelian mesin adalah sebesar Rp 40.000.000,00, sedangkan

tempat yang tersedia adalah 200 m2. Pemilik ingin mengetahui berapa banyak tiap

jenis mesin yang dapat dibeli untuk memaksimumkan kenaikan keuntungan

perhari.

Penyelesaian :

Model matematis untuk persoalan diatas adalah :

Memaksimumkan : 21 000.150000.100 xxz

Berdasarkan : 000.000.40000.000.4000.000.8 21 xx

2003015 21 xx

0, 21 xx ; 21 , xx bilangan bulat

Langkah 1. Mencari solusi optimal dari program linier relaksasi yang

bersangkutan

Persoalan di atas diubah menjadi program linier relaksasi sehingga :

Maksimumkan: 21 000.150000.100 xxz

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

Page 15: Branch and Bound Program Linier

15

(3) 0, 21 xx

Persoalan yang telah dinyatakan dalam bentuk model matematis seperti di atas

diselesaikan dengan menggunakan metode simpleks, yaitu :

a. mengubah fungsi tujuan dan batasan

Batasan (1) harus ditambah dengan sebuah slack variable x3, sehingga :

000.000.40000.000.4000.000.8 321 xxx

Batasan (2) harus ditambah dengan sebuah slack variable x4, sehingga :

2003015 421 xxx

Fungsi tujuan diubah menjadi :

0000.150000.100 21 xxz

b. menyusun persamanan-persamaan di dalam tabel

Fungsi tujuan dan batasan yang telah diubah disusun dalam tabel simpleks

berikut:

Tabel A. Solusi Simpleks Relaksasi pada Node 1

Varibel

Dasar z x1

x2 x3 x4 NK Indeks

z 1 -100.000 -150.000 0 0 0

x3 0 8.000.000 4.000.000 1 0 40.000.000 10

x4 0 15 30* 0 1 200 6,67

c. memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x2 dengan

nilai -150.000.

d. menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

Page 16: Branch and Bound Program Linier

16

- -25.000 0 0 49.500 1.000.500

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 40.000.000 : 4.000.000 = 10

Indeks baris x4 = 200 : 30 = 6,67

e. memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x4,

maka baris x4 dinyatakan sebagai baris kunci.

f. menentukan angka kunci

Angka kunci pada tabel di atas adalah 30, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

g. mengubah nilai-nilai baris kunci

Baris kunci x4 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (30)

Kolom x1 baris x4 = 15 : 30 = 0,5

Kolom x2 baris x4 = 30 : 30 = 1

Kolom x3 baris x4 = 0 : 30 = 0

Kolom x4 baris x4 = 1 : 30 = 0,033

Kolom NK baris x4 = 200 : 30 = 6,67

h. mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 -150.000 0 0 0

-150.000 0,5 1 0 0,33 6,67

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 17: Branch and Bound Program Linier

17

- 6.000.000 0 1 -1.320.000 13.320.000

Baris fungsi x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 4.000.000 1 0 40.000.000

4.000.000 0,5 1 0 0,33 6,67

i. melanjutkan perbaikan-perbaikan/perubahan-perubahan

Karena kolom kunci adalah kolom x2 dan baris kunci adalah baris x4, maka

x2 masuk ke dalam variabel dasar menggantikan x4, sehingga tabel A akan

berubah menjadi :

Tabel B. Solusi Simpleks Relaksasi pada Node 1

Varibel

Dasar z

x1 x2 x3 x4 NK Indeks

z 1 -25.000 0 0 49.500 1.000.500

x3 0 6.000.000* 0 1 -1.320.000 13.320.000 2,22

x2 0 0,5 1 0 0,033 6,67 13,34

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x1 dengan

nilai -25.000.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 13.320.000 : 6.000.00 = 2,22

Indeks baris x2 = 6,67 : 0,5 = 13,34

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 18: Branch and Bound Program Linier

18

-

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x3,

maka baris x3 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 6.000.000, karena merupakan nilai

yang termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x3 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (6.000.000)

Kolom x1 baris x3 = 6.000.000 : 6.000.000 = 1

Kolom x2 baris x3 = 0 : 6.000.000 = 0

Kolom x3 baris x3 = 1 : 6.000.000 = 0,00000017 = 0

Kolom x4 baris x3 = -1.320.000 : 6.000.000 = -0,22

Kolom NK baris x3 = 13.320.000 : 6.000.000 = 2,22

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-25.000 0 0 49.500 1.000.500

-25.000 1 0 0 -0,22 2,22

0 0 0 44.000 1.056.000

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 19: Branch and Bound Program Linier

19

- 0 1 0 0,143 5,56

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0,5 1 0 0,033 6,67

0,5 1 0 0 -0,22 2,22

Karena kolom kunci adalah kolom x1 dan baris kunci adalah baris x3, maka

x1 masuk ke dalam variabel dasar menggantikan x3, sehingga tabel B akan

berubah menjadi :

Tabel C. Solusi Optimal Simpleks Relaksasi pada Node 1

Varibel

Dasar Z x1 x2 x3 x4 NK Indeks

Z 1 0 0 0 44.000 1.056.000

x1 0 1 0 0 -0,22 2,22

x2 0 0 1 0 0,143 5,56

Pada tabel C, seluruh eleman pada baris fungsi tujuan telah bernilai positif.

Hal ini berarti bahwa perbaikan yang dilakukan sudah merupakan hasil optimal,

sehingga tidak perlu lagi dilakukan upaya perbaikan. Nilai optimal yang

dihasilkan adalah fungsi tujuan z yang maksimum yaitu 1.056.000 dengan

22,21 x dan 56,52 x .

Langkah 2. Mennyatakan solusi persoalan program linier relaksasi sebagai

batas atas (upper bound) dan pembulatan ke bawah sebagai

batas bawah (lower bound) pada node 1

Dari tabel C solusi optimal simpleks relaksasi pada node 1, diperoleh:

a. batas atas 1.056.000 dengan 22,21 x dan 56,52 x

b. batas bawah 950.000 dengan 21 x dan 52 x

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 20: Branch and Bound Program Linier

20

Langkah 3. Memilih variabel dengan pecahan yang terbesar untuk

pencabangan (branch) dan menciptakan dua batasan baru

Pada langkah 2, diketahui bahwa x1 memiliki pecahan sebesar 0,22 dan x2

memiliki pecahan sebesar 0,56. Bagian pecahan x2 lebih besar dari x1. Oleh karena

itu, x2 akan menjadi variabel yang diberi cabang sehingga diperoleh dua batasan

baru yang dikembangkan dari x2, yaitu : 52 x dan 62 x .

Langkah 4. Menciptakan dua node baru, satu dengan batasan dan satu

dengan batasan

Berdasarkan langkah 3, maka diperoleh dua node baru, seperti tampak pada

gambar berikut :

Langkah 5. Menyelesaikan model program linier relaksasi dengan batasan

baru yang ditambahkan pada tiap node

NODE 2

Maksimumkan: 21 000.150000.100 xxz

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

(3) 52 x

(4) 0, 21 xx

BA = 1.056.000 ( 22,21 x , 56,52 x )

BB = 950.000 ( 21 x , 52 x )

Node 1

1.056.000

Node 2 Node 3

52 x 62 x

Page 21: Branch and Bound Program Linier

21

Persoalan yang telah dinyatakan dalam bentuk model matematis seperti di

atas diselesaikan dengan menggunakan metode simpleks, yaitu :

a. mengubah fungsi tujuan dan batasan

Batasan (1) harus ditambah dengan sebuah slack variable x3, sehingga :

000.000.40000.000.4000.000.8 321 xxx

Batasan (2) harus ditambah dengan sebuah slack variable x4, sehingga :

2003015 421 xxx

Batasan (3) harus ditambah dengan sebuah slack variable x5 , sehingga :

552 xx

Fungsi tujuan diubah menjadi :

0000.150000.100 21 xxz

b. menyusun persamanan-persamaan di dalam tabel

Fungsi tujuan dan batasan yang telah diubah disusun dalam tabel simpleks

berikut:

Tabel A. Solusi Simpleks Relaksasi pada Node 2

Varibel

Dasar z x1 x2 x3 x4 x5 NK Indeks

z 1 -100.000 -150.000 0 0 0 0

x3 0 8.000.000 4.000.000 1 0 0 40.000.000 10

x4 0 15 30 0 1 0 200 6,67

x5 0 0 1* 0 0 1 5 5

c. memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x2 dengan

nilai -150.000.

Page 22: Branch and Bound Program Linier

22

d. menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 40.000.000 : 4.000.000 = 10

Indeks baris x4 = 200 : 30 = 6,67

Indeks baris x5 = 5 : 1 = 5

e. memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x5,

maka baris x5 dinyatakan sebagai baris kunci.

f. menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

g. mengubah nilai-nilai baris kunci

Baris kunci x5 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris x5 = 0 : 1 = 0

Kolom x2 baris x5 = 1 : 1 = 1

Kolom x3 baris x5 = 0 : 1 = 0

Kolom x4 baris x5 = 0 : 1 = 0

Kolom x5 baris x5 = 1 : 1 = 1

Kolom NK baris x5 = 5 : 1 = 5

Page 23: Branch and Bound Program Linier

23

-

- 8.000.000 0 1 0 -4.000000 20.000.000

- 15 0 0 1 -30 50

h. mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 -150.000 0 0 0 0

-150.000 0 1 0 0 1 5

-100.000 0 0 0 150.000 750.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 4.000.000 1 0 0 40.000.000

4.000.000 0 1 0 0 1 5

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 30 0 1 0 200

30 0 1 0 0 1 5

i. melanjutkan perbaikan-perbaikan/perubahan-perubahan

Karena kolom kunci adalah kolom x2 dan baris kunci adalah baris x5, maka

x2 masuk ke dalam variabel dasar menggantikan x5, sehingga tabel A akan

berubah menjadi :

Tabel B. Solusi Simpleks Relaksasi pada Node 2

Varibel

Dasar z

x1 x2 x3 X4 x5 NK Indeks

z 1 -100.000 0 0 0 150.000 750.000

x3 0 8.000.000* 0 1 0 -4.000.000 20.000.000 2,5

x4 0 15 0 0 1 -30 50 3,33

x2 0 0 1 0 0 1 5

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 24: Branch and Bound Program Linier

24

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x1 dengan

nilai -100.000.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 20.000.000 : 8.000.00 = 2,5

Indeks baris x4 = 50 : 15 = 3,33

Indeks baris x2 = 5 : 0 =

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x3,

maka baris x3 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 8.000.000, karena merupakan nilai

yang termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x3 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (8.000.000)

Kolom x1 baris x3 = 8.000.000 : 8.000.000 = 1

Kolom x2 baris x3 = 0 : 8.000.000 = 0

Kolom x3 baris x3 = 1 : 8.000.000 = 0,0000001 = 0

Page 25: Branch and Bound Program Linier

25

-

-

-

Kolom x4 baris x3 = 0 : 8.000.000 = 0

Kolom x5 baris x3 = -4.000.000 : 8.000.000 = -0,5

Kolom NK baris x3 = 20.000.000 : 6.000.000 = 2,5

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 0 0 0 150.000 750.000

-100.000 1 0 0 0 -0,5 2,5

0 0 0 0 100.000 1.000.000

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 0 0 1 -30 50

15 1 0 0 0 -0,5 2,5

0 0 0 1 -22,5 12,5

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 1 5

0 1 0 0 0 -0,5 2,5

0 1 0 0 1 5

Karena kolom kunci adalah kolom x1 dan baris kunci adalah baris x3, maka

x1 masuk ke dalam variabel dasar menggantikan x3, sehingga tabel B akan

berubah menjadi :

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 26: Branch and Bound Program Linier

26

Tabel C. Solusi Optimal Simpleks Relaksasi pada Node 2

Varibel

Dasar z x1 x2 x3 x4 x5 NK Indeks

z 1 0 0 0 0 100.000 1.000.000

x1 0 1 0 0 0 -0,5 2,5

x4 0 0 0 0 1 -22,5 12,5

x2 0 0 1 0 0 1 5

Pada tabel C, seluruh eleman pada baris fungsi tujuan tidak ada lagi yang

benilai negatif. Hal ini berarti bahwa perbaikan yang dilakukan sudah merupakan

hasil optimal, sehingga tidak perlu lagi dilakukan upaya perbaikan. Nilai optimal

yang dihasilkan adalah fungsi tujuan z yang maksimum yaitu 1.000.000 dengan

5,21 x dan 52 x .

Dari tabel C solusi optimal simpleks relaksasi pada node 2, diperoleh:

a. batas atas 1.000.000 dengan 5,21 x dan 52 x

b. batas bawah 950.000 dengan 21 x dan 52 x

NODE 3

Maksimumkan: 21 000.150000.100 xxz

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

(3) 62 x

(4) 0, 21 xx

Persoalan yang telah dinyatakan dalam bentuk model matematis seperti di

atas diselesaikan dengan menggunakan metode simpleks, yaitu :

Page 27: Branch and Bound Program Linier

27

a. mengubah fungsi tujuan dan batasan

Batasan (1) harus ditambah dengan sebuah slack variable x3, sehingga :

000.000.40000.000.4000.000.8 321 xxx

Batasan (2) harus ditambah dengan sebuah slack variable x4, sehingga :

2003015 421 xxx

Batasan (3) harus diubah menjadi :

6

6

6

52

52

2

xx

xx

x

Karena x5 bernilai negatif, maka bukanlah variabel dasar, sehingga perlu

ditambah artivicial variable 6x , maka :

6652 xxx

Dengan memperhatikan perubahan fungsi tujuan karena batasan (3), maka fungsi

tujuan diubah menjadi :

0000.150000.100 621 xMxxz

Untuk mengubah agar nilai 6x pada batasan menjadi 0, maka dilakukan

pengurangan-pengurangan sebagai berikut :

1 -100.000 -150.000 0 0 0 M 0

0 0 1 0 0 -1 1 6

1 -100.000 -150.000-M 0 0 M 0 -6M

Sehingga fungsi tujuan menjadi :

MMxxMxz 6000.150000.100 521

b. menyusun persamanan-persamaan di dalam tabel

Fungsi tujuan dan batasan yang telah diubah disusun dalam tabel simpleks

berikut:

-M

---- dikalikan dengan (-1)

…… ditambahkan slack variable x5

...... dikalikan dengan (-1)

Page 28: Branch and Bound Program Linier

28

Tabel A. Solusi Simpleks Relaksasi pada Node 3

Variabel

Dasar z x1

x2 x3 x4 x5 6x NK Indeks

z 1 -100.000 -150.000-M 0 0 M 0 -6M

x3 0 8.000.000 4.000.000 1 0 0 0 40.000.000 10

x4 0 15 30 0 1 0 0 200 6,67

6x 0 0 1* 0 0 -1 1 6 6

c. memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x2 dengan

nilai -150.000-M.

d. menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 40.000.000 : 4.000.000 = 10

Indeks baris x4 = 200 : 30 = 6,67

Indeks baris 6x = 6 : 1 = 6

e. memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris 6x ,

maka baris 6x dinyatakan sebagai baris kunci.

f. menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

Page 29: Branch and Bound Program Linier

29

-

- 8.000.000 0 1 0 4.000.000 -4.000.000 16.000.000

g. mengubah nilai-nilai baris kunci

Baris kunci 6x diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris 6x = 0 : 1 = 0

Kolom x2 baris 6x = 1 : 1 = 1

Kolom x3 baris 6x = 0 : 1 = 0

Kolom x4 baris 6x = 0 : 1 = 0

Kolom x5 baris 6x = -1 : 1 = -1

Kolom 6x baris

6x = 1 : 1 = 1

Kolom NK baris 6x = 6 : 1 = 6

h. mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 -150.000-M 0 0 M 0 -6M

-150.000-M 0 1 0 0 -1 1 6

-100.000 0 0 0 -150.000 150.00+M 900.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 4.000.000 1 0 0 0 40.000.000

4.000.000 0 1 0 0 -1 1 6

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 30: Branch and Bound Program Linier

30

- 15 0 0 1 30 -30 20

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 30 0 1 0 0 200

30 0 1 0 0 -1 1 6

i. melanjutkan perbaikan-perbaikan/perubahan-perubahan

Karena kolom kunci adalah kolom x2 dan baris kunci adalah baris 6x ,

maka x2 masuk ke dalam variabel dasar menggantikan 6x , sehingga tabel A akan

berubah menjadi :

Tabel B. Solusi Simpleks Relaksasi pada Node 3

Variabel

Dasar Z x1 x2 x3 x4 X5

6x NK Indeks

z 1 -100.000 0 0 0 -150.000 150.000+M 900.000

x3 0 8.000.000 0 1 0 4.000.000 -4.000.000 16.000.000 4

x4 0 15 0 0 1 30* -30 20 0,67

x2 0 0 1 0 0 -1 1 6 -6

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x5 dengan

nilai -150.000.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 16.000.000 : 4.000.00 = 4

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 31: Branch and Bound Program Linier

31

Indeks baris x4 = 20 : 30 = 0,67

Indeks baris x2 = 6 : -1 = -6

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x4,

maka baris x4 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 30, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x4 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (30)

Kolom x1 baris x4 = 15 : 30 = 0,5

Kolom x2 baris x4 = 0 : 30 = 0

Kolom x3 baris x4 = 0 : 30 = 0

Kolom x4 baris x4 = 1 : 30 = 0,033

Kolom x5 baris x4 = 30 : 30 = 1

Kolom 6x baris

6x = -30 : 30 = -1

Kolom NK baris x4 = 20 : 30 = 0,67

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

Page 32: Branch and Bound Program Linier

32

-

-

-

-100.000 0 0 0 - 150.000 150.000+M 900.000

-150.000 0,5 0 0 0,033 1 -1 0,67

-25.000 0 0 4.950 0 M 1.000.500

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 0 1 0 4.000.000 -4.000.000 16.000.000

4.000.000 0,5 0 0 0,033 1 -1 0,67

6.000.000 0 1 -132.000 0 0 13.320.000

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 -1 1 6

-1 0,5 0 0 0,033 1 -1 0,67

0,5 1 0 0,033 0 0 6,67

Karena kolom kunci adalah kolom x5 dan baris kunci adalah baris x4, maka

x5 masuk ke dalam variabel dasar menggantikan x4, sehingga tabel B akan

berubah menjadi :

Tabel C. Solusi Simpleks Relaksasi pada Node 3

Variabel

Dasar z x1 x2 x3 x4 X5 6x NK Indeks

z 1 -25.000 0 0 4.950 0 M 1.000.500

x3 0 6.000.0000 0 1 -132.000 0 0 13.320.000 2,22

x5 0 0,5* 0 0 0,033 1 -1 0,67 1,34

x2 0 0,5 1 0 0,033 0 0 6,67 13,34

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x1 dengan

nilai -25.000.

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 33: Branch and Bound Program Linier

33

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 13.500.000 : 6.000.000 = 2,25

Indeks baris x4 = 0,67 : 0,5 = 1,34

Indeks baris x2 = 6,67 : 0,5 = 13,34

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x5,

maka baris x5 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 0,5, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x5 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (0,5)

Kolom x1 baris x5 = 0,5 : 0,5 = 1

Kolom x2 baris x5 = 0 : 0,5 = 0

Kolom x3 baris x5 = 0 : 0,5 = 0

Kolom x4 baris x5 = 0,033 : 0,5 = 0,066

Kolom x5 baris x5 = 1 : 0,5 = 2

Kolom 6x baris x5 = -1 : 0,5 = -2

Kolom NK baris x4 = 0,67 : 0,5 = 1,34

Page 34: Branch and Bound Program Linier

34

-

-

-

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-25.000 0 0 4.950 0 M 1.000.500

-25.000 1 0 0 0,066 2 -2 1,34

0 0 0 6.600 50.000 M-50.000 1.034.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

6.000.000 0 1 -132.000 0 0 13.320.000

6.000.000 1 0 0 0,066 2 -2 1,34

0 0 1 -528.000 -12.000.000 12.000.000 5.280.000

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0,5 1 0 0,033 0 0 6,67

0,5 1 0 0 0,066 2 -2 1,34

0 0 0 0 -1 1 6

Karena kolom kunci adalah kolom x1 dan baris kunci adalah baris x5, maka

x1 masuk ke dalam variabel dasar menggantikan x5, sehingga tabel C akan

berubah menjadi :

Tabel D. Solusi Optimal Simpleks Relaksasi pada Node 3

Variabel

Dasar z X1 x2 x3 X4 x5 6x NK Indeks

z 1 0 0 0 6.600 50.000 M-50.000 1.034.000

x3 0 0 0 1 -528.000 -12.000.000 12.000.000 5.280.000

x1 0 1 0 0 0,066 2 -2 1.34

x2 0 0 0 0 0 -1 1 6

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Baris lama

Koefisien

Nilai baru

Baris kunci

Page 35: Branch and Bound Program Linier

35

Pada tabel D, seluruh eleman pada baris fungsi tujuan tidak ada lagi yang

bernilai negatif. Hal ini berarti bahwa perbaikan yang dilakukan sudah merupakan

hasil optimal, sehingga tidak perlu lagi dilakukan upaya perbaikan. Nilai optimal

yang dihasilkan adalah fungsi tujuan z yang maksimum yaitu 1.034.000 dengan

34,11 x dan 62 x .

Dari tabel D solusi optimal simpleks relaksasi pada node 3, diperoleh:

a. batas atas 1.034.000 dengan 34,11 x dan 62 x

b. batas bawah 1.000.000 dengan 11 x dan 62 x

Mengingat bahwa belum diperoleh suatu solusi bilangan bulat yang layak

dan optimal, maka harus dibuat cabang dari salah satu antara node 2 atau node 3.

Dengan memperhatikan tabel C solusi optimal simpleks relaksasi pada node 2

terlihat bahwa jika membuat cabang dari node 2, maka nilai maksimum yang

mungkin dapat dicapai adalah 1.000.000 (batas atas). Namun, jika membuat

cabang dari node 3, nilai maksimum yang mungkin dicapai adalah 1.034.000

(batas atas). Oleh karena itu, kita akan membuat cabang dari node 3.

Pertama, dipilih variabel yang memiliki bagian pecahan terbesar. Karena

x2 memiliki nilai berupa bilangan bulat, maka x1 dengan bagian pecahan sebesar

0,34 adalah satu-satunya variabel yang dipilih. Jadi, dua batasan baru

dikembangkan dari x1, yaitu : 11 x dan 21 x . Sehingga diperoleh dua node

baru yang merupakan cabang dari node 3, seperti tampak pada gambar berikut :

Page 36: Branch and Bound Program Linier

36

NODE 4

Maksimumkan: 21 000.150000.100 xxz

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

(3) 62 x

(4) 11 x

(5) 0, 21 xx

Persoalan yang telah dinyatakan dalam bentuk model matematis seperti di

atas diselesaikan dengan menggunakan metode simpleks, yaitu :

a. mengubah fungsi tujuan dan batasan

Batasan (1) harus ditambah dengan sebuah slack variable x3, sehingga :

000.000.40000.000.4000.000.8 321 xxx

Node 1

1.056.000

BA = 1.056.000 ( 22,21 x , 56,52 x )

BB = 950.000 ( 21 x , 52 x )

Node 2

1.000.000

Node 3

1.034.000

52 x 62 x

Node 4 Node 5

11 x 21 x

BA = 1.034.000 ( 34,11 x 62 x )

BB = 1.000.000 ( 11 x , 62 x )

BA = 1.000.000 ( 5,21 x 52 x )

BB = 950.000 ( 21 x 52 x )

Page 37: Branch and Bound Program Linier

37

Batasan (2) harus ditambah dengan sebuah slack variable x4, sehingga :

2003015 421 xxx

Batasan (3) harus diubah menjadi :

6

6

6

52

52

2

xx

xx

x

Karena x5 bernilai negatif, maka bukanlah variabel dasar, sehingga perlu

ditambah artivicial variable 6x , maka :

6652 xxx

Batasan (4) harus ditambah dengan sebuah slack variable x7, sehingga :

171 xx

Dengan memperhatikan perubahan fungsi tujuan karena batasan (3), maka fungsi

tujuan diubah menjadi :

0000.150000.100 621 xMxxz

Untuk mengubah agar nilai 6x pada batasan menjadi 0, maka dilakukan

pengurangan-pengurangan sebagai berikut :

1 -100.000 -150.000 0 0 0 M 0 0

0 0 1 0 0 -1 1 0 6

1 -100.000 -150.000-M 0 0 M 0 0 -6M

Sehingga fungsi tujuan menjadi :

MMxxMxz 6000.150000.100 521

b. menyusun persamanan-persamaan di dalam tabel

Fungsi tujuan dan batasan yang telah diubah disusun dalam tabel simpleks

berikut:

-M

…… ditambahkan slack variable x5

...... dikalikan dengan (-1)

...... dikalikan dengan (-1)

Page 38: Branch and Bound Program Linier

38

Tabel A. Solusi Simpleks Relaksasi pada Node 4

Variabel

Dasar z x1 x2 x3 x4 x5

6x x7 NK Indeks

z 1 -100.000 -150.000-M 0 0 M 0 0 -6M

x3 0 8.000.000 4.000.000 1 0 0 0 0 40.000.000 10

x4 0 15 30 0 1 0 0 0 200 6,67

6x 0 0 1* 0 0 -1 1 0 6 6

x7 0 1 0 0 0 0 0 1 1

c. memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x2 dengan

nilai -150.000-M.

d. menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 40.000.000 : 4.000.000 = 10

Indeks baris x4 = 200 : 30 = 6,67

Indeks baris 6x = 6 : 1 = 6

Indeks baris x7 = 1 : 0 =

e. memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris 6x ,

maka baris 6x dinyatakan sebagai baris kunci.

f. menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

Page 39: Branch and Bound Program Linier

39

-

-

g. mengubah nilai-nilai baris kunci

Baris kunci 6x diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris 6x = 0 : 1 = 0

Kolom x2 baris 6x = 1 : 1 = 1

Kolom x3 baris 6x = 0 : 1 = 0

Kolom x4 baris 6x = 0 : 1 = 0

Kolom x5 baris 6x = -1 : 1 = -1

Kolom 6x baris

6x = 1 : 1 = 1

Kolom x7 baris 6x = 0 : 1 = 0

Kolom NK baris 6x = 6 : 1 = 6

h. mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 -150.000-M 0 0 M 0 0 -6M

-150.000-M 0 1 0 0 -1 1 0 6

-100.000 0 0 0 -150.000 150.00+M 0 900.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 4.000.000 1 0 0 0 0 40.000.000

4.000.000 0 1 0 0 -1 1 0 6

8.000.000 0 1 0 4.000.000 -4.000.000 0 16.000.000

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 40: Branch and Bound Program Linier

40

-

-

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 30 0 1 0 0 0 2 00

30 0 1 0 0 -1 1 0 6

15 0 0 1 30 -30 0 20

Baris x7 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 1 1

0 0 1 0 0 -1 1 0 6

1 0 0 0 0 0 1 1

i. melanjutkan perbaikan-perbaikan/perubahan-perubahan

Karena kolom kunci adalah kolom x2 dan baris kunci adalah baris 6x ,

maka x2 masuk ke dalam variabel dasar menggantikan 6x , sehingga tabel A akan

berubah menjadi :

Tabel B. Solusi Simpleks Relaksasi pada Node 4

Variabel

Dasar z x1 x2 x3 x4 x5 6x x7 NK Indeks

z 1 -100.000 0 0 0 -150.000 150.000+M 0 900.000

x3 0 8.000.000 0 1 0 4.000.000 -4.000.000 0 16.000.000 4

x4 0 15 0 0 1 30* -30 0 20 0,67

x2 0 0 1 0 0 -1 1 0 6 -6

x7 0 1 0 0 0 0 0 1 1

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x5 dengan

nilai -150.000.

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 41: Branch and Bound Program Linier

41

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 16.000.000 : 4.000.00 = 4

Indeks baris x4 = 20 : 30 = 0,67

Indeks baris x2 = 6 : -1 = -6

Indeks baris x7 = 1 : 0 =

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x4,

maka baris x4 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 30, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x4 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (30)

Kolom x1 baris x4 = 15 : 30 = 0,5

Kolom x2 baris x4 = 0 : 30 = 0

Kolom x3 baris x4 = 0 : 30 = 0

Kolom x4 baris x4 = 1 : 30 = 0,033

Kolom x5 baris x4 = 30 : 30 = 1

Kolom 6x baris

6x = -30 : 30 = -1

Page 42: Branch and Bound Program Linier

42

-

-

-

-

Kolom x7 baris x7 = 0 : 30 = 0

Kolom NK baris x4 = 20 : 30 = 0,67

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 0 0 0 -150.000 150.00+M 0 900.000

-150.000 0,5 0 0 0,033 1 -1 0 0,67

-25.000 0 0 4.950 0 M 0 1.000.500

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 0 1 0 4.000.000 -4.000.000 0 16.000.000

4.000.000 0,5 0 0 0,033 1 -1 0 0,67

6.000.000 0 1 -132.000 0 0 0 13.320.000

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 -1 1 0 6

-1 0,5 0 0 0,033 1 -1 0 0,67

0,5 1 0 0,033 0 0 0 6,67

Baris x7 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 1 1

0 0,5 0 0 0,033 1 -1 0 0,67

1 0 0 0 0 0 1 1

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 43: Branch and Bound Program Linier

43

Karena kolom kunci adalah kolom x5 dan baris kunci adalah baris x4, maka

x5 masuk ke dalam variabel dasar menggantikan x4, sehingga tabel B akan

berubah menjadi :

Tabel C. Solusi Simpleks Relaksasi pada Node 4

Variabel

Dasar z

x1 x2 x3 x4 x5 6x x7 NK Indeks

z 1 -25.000 0 0 4.950 0 M 0 1.000.500

x3 0 6.000.000 0 1 -132.000 0 0 0 13.320.000 2,22

x5 0 0,5 0 0 0,033 1 -1 0 0,67 1,34

x2 0 0,5 1 0 0,033 0 0 0 6,67 13,34

x7 0 1* 0 0 0 0 0 1 1 1

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x1 dengan

nilai -25.000.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 13.320.000 : 6.000.00 = 2,22

Indeks baris x5 = 0,67 : 0,5 = 1,34

Indeks baris x2 = 6,67 : 0,5 = 13,34

Indeks baris x7 = 1 : 1 = 1

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x7,

maka baris x7 dinyatakan sebagai baris kunci.

Page 44: Branch and Bound Program Linier

44

-

menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x7 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris x7 = 1 : 1 = 1

Kolom x2 baris x7 = 0 : 1 = 0

Kolom x3 baris x7 = 0 : 1 = 0

Kolom x4 baris x7 = 0 : 1 = 0

Kolom x5 baris x7 = 0 : 1 = 0

Kolom 6x baris x7 = 0 : 1 = 0

Kolom x7 baris x7 = 1 : 1 = 1

Kolom NK baris x7 = 1 : 1 = 1

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-25.000 0 0 4.950 0 M 0 1.000.500

-25.000 1 0 0 0 0 0 1 1

0 0 0 4.950 0 M 25.000 1.025.500

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 45: Branch and Bound Program Linier

45

-

-

-

-

6.000.000 0 1 -132.000 0 0 0 13.320.000

6.000.000 1 0 0 0 0 0 1 1

0 0 1 -132.000 0 0 -6.000.000 7.320.500

Baris x5 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0,5 0 0 0,033 1 -1 0 0,67

0,5 1 0 0 0 0 0 1 1

0 0 0 0,033 1 -1 -0,5 0,17

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0,5 1 0 0,033 0 0 0 6,67

0,5 1 0 0 0 0 0 1 1

0 1 0 0,033 0 0 -0,5 6,17

Karena kolom kunci adalah kolom x1 dan baris kunci adalah baris x7, maka

x1 masuk ke dalam variabel dasar menggantikan x7, sehingga tabel C akan

berubah menjadi :

Tabel D. Solusi Optimal Simpleks Relaksasi pada Node 4

Variabel

Dasar z x1 x2 x3 x4 x5

6x x7 NK Indeks

z 1 0 0 0 4.950 0 M 25.000 1.025.500

x3 0 0 0 1 -132.000 0 0 -6.000.000 7.320.000

x5 0 0 0 0 0,033 1 -1 -0,5 0,17

x2 0 0 1 0 0,033 0 0 -0,5 6,17

x1 0 1 0 0 0 0 0 1 1

Pada tabel D, seluruh eleman pada baris fungsi tujuan tidak ada lagi yang

bernilai negatif. Hal ini berarti bahwa perbaikan yang dilakukan sudah merupakan

hasil optimal, sehingga tidak perlu lagi dilakukan upaya perbaikan. Nilai optimal

yang dihasilkan adalah fungsi tujuan z yang maksimum yaitu 1.025.500 dengan

11 x dan 17,62 x

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Nilai baru

Baris kunci

Baris lama

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 46: Branch and Bound Program Linier

46

Dari tabel D solusi optimal simpleks relaksasi pada node 4 diperoleh:

a. batas atas 1.025.500 dengan 11 x dan 17,62 x

b. batas bawah 1.000.000 dengan 11 x dan 62 x

NODE 5

Maksimumkan: 21 000.150000.100 xxz

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

(3) 62 x

(4) 21 x

(5) 0, 21 xx

Persoalan yang telah dinyatakan dalam bentuk model matematis seperti di

atas diselesaikan dengan menggunakan metode simpleks, yaitu :

a. mengubah fungsi tujuan dan batasan

Batasan (1) harus ditambah dengan sebuah slack variable x3, sehingga :

000.000.40000.000.4000.000.8 321 xxx

Batasan (2) harus ditambah dengan sebuah slack variable x4, sehingga :

2003015 421 xxx

Batasan (3) harus diubah menjadi :

6

6

6

52

52

2

xx

xx

x

…… ditambahkan slack variable x5

...... dikalikan dengan (-1)

...... dikalikan dengan (-1)

Page 47: Branch and Bound Program Linier

47

Karena x5 bernilai negatif, maka bukanlah variabel dasar, sehingga perlu

ditambah artivicial variable 6x , maka :

6652 xxx

Batasan (4) harus diubah menjadi :

2

2

2

71

71

1

xx

xx

x

Karena x7 bernilai negatif, maka bukanlah variabel dasar, sehingga perlu

ditambah artivicial variable 8x , maka :

2871 xxx

Dengan memperhatikan perubahan fungsi tujuan karena batasan (3) dan (4), maka

fungsi tujuan diubah menjadi :

0000.150000.100 8621 xMxMxxz

Untuk mengubah agar nilai 6x dan 8x pada batasan menjadi 0, maka dilakukan

pengurangan-pengurangan sebagai berikut :

1 -100.000 -150.000 0 0 0 M 0 M 0

0 0 1 0 0 -1 1 0 0 6

0 1 0 0 0 0 0 -1 1 2

1 -100.000-M -150.000-M 0 0 M 0 M 0 -8M

Sehingga fungsi tujuan menjadi :

MMxMxxMxMz 8000.150000.100 7521

b. menyusun persamanan-persamaan di dalam tabel

Fungsi tujuan dan batasan yang telah diubah disusun dalam tabel simpleks

berikut:

-M

-M

…… ditambahkan slack variable x7

...... dikalikan dengan (-1)

...... dikalikan dengan (-1)

Page 48: Branch and Bound Program Linier

48

Tabel A. Solusi Simpleks Relaksasi pada Node 5

Variabel

Dasar z

x1 x2 x3 x4 x5 6x x7

8x NK Indeks

z 1 -100.000

-M

-150.000

-M 0 0 M 0 M 0 -8M

x3 0 8.000.

000

4.000.

000 1 0 0 0 0 0

40.000.

000 10

x4 0 15 30 0 1 0 0 0 0 200 6,67

6x 0 0 1* 0 0 -1 1 0 0 6 6

8x 0 1 0 0 0 0 0 -1 1 2

c. memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x2 dengan

nilai -150.000-M.

d. menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 40.000.000 : 4.000.000 = 10

Indeks baris x4 = 200 : 30 = 6,67

Indeks baris 6x = 6 : 1 = 6

Indeks baris 8x = 1 : 0 =

e. memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris 6x ,

maka baris 6x dinyatakan sebagai baris kunci.

Page 49: Branch and Bound Program Linier

49

-

f. menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

g. mengubah nilai-nilai baris kunci

Baris kunci 6x diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris 6x = 0 : 1 = 0

Kolom x2 baris 6x = 1 : 1 = 1

Kolom x3 baris 6x = 0 : 1 = 0

Kolom x4 baris 6x = 0 : 1 = 0

Kolom x5 baris 6x = -1 : 1 = -1

Kolom 6x baris

6x = 1 : 1 = 1

Kolom x7 baris 6x = 0 : 1 = 0

Kolom x8 baris 6x = 0 : 1 = 0

Kolom NK baris 6x = 6 : 1 = 6

h. mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000-M -150.000-M 0 0 M 0 M 0 -8M

-150.000-M 0 1 0 0 -1 1 0 0 6

-100.000-M 0 0 0 -150.000 150.00+M M 0 -2M+900.000

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 50: Branch and Bound Program Linier

50

-

-

-

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 4.000.000 1 0 0 0 0 0 40.000.000

4.000.000 0 1 0 0 -1 1 0 0 6

8.000.000 0 1 0 4.000.000 -4.000.000 0 0 16.000.000

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 30 0 1 0 0 0 0 2 00

30 0 1 0 0 -1 1 0 0 6

15 0 0 1 30 -30 0 0 20

Baris 8x diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 -1 1 2

0 0 1 0 0 -1 1 0 0 6

1 0 0 0 0 0 -1 1 2

i. melanjutkan perbaikan-perbaikan/perubahan-perubahan

Karena kolom kunci adalah kolom x2 dan baris kunci adalah baris 6x ,

maka x2 masuk ke dalam variabel dasar menggantikan 6x , sehingga tabel A akan

berubah menjadi :

Tabel B. Solusi Simpleks Relaksasi pada Node 5

Variabel

Dasar z

x1 x2 x3 x4 x5 6x x7 8x NK Indeks

z 1 -100.000

-M 0 0 0

-150.

000

150.00

0+M M 0

-2M+

900.000

x3 0 8.000.

000 0 1 0

4.000.

000

-4.000.

000 0 0

16.000.

000 2

x4 0 15* 0 0 1 30 -30 0 0 20 1,33

x2 0 0 1 0 0 -1 1 0 0 6

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 51: Branch and Bound Program Linier

51

8x 0 1 0 0 0 0 0 -1 1 2 2

Page 52: Branch and Bound Program Linier

52

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x1 dengan

nilai -100.000-M.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 16.000.000 : 8.000.00 = 2

Indeks baris x4 = 20 : 15 = 1,33

Indeks baris x2 = 6 : 0 =

Indeks baris 8x = 2 : 1 = 2

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x4,

maka baris x4 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 15, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x4 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (15)

Kolom x1 baris x4 = 15 : 15 = 1

Kolom x2 baris x4 = 0 : 15 = 0

Page 53: Branch and Bound Program Linier

53

-

-

-

Kolom x3 baris x4 = 0 : 15 = 0

Kolom x4 baris x4 = 1 : 15 = 0,067

Kolom x5 baris x4 = 30 : 15 = 2

Kolom 6x baris x4 = -30 : 15 = -2

Kolom x7 baris x4= 0 : 15 = 0

Kolom 8x baris x4 = 0 : 15 = 0

Kolom NK baris x4 = 20 : 15 = 1,33

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000-M 0 0 0 -150.000 150.00+M M 0 -2M+900.000

-100.000-M 1 0 0 0,067 2 -2 0 0 1,33

0 0 0 50.000+2M M 0

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 0 1 0 4.000.000 -4.000.000 0 0 16.000.000

8.000.000 1 0 0 0,067 2 -2 0 0 1,33

0 0 1 -536.000 12.000.000 0 0 5.360.000

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 -1 1 0 0 6

0 1 0 0 0,067 2 -2 0 0 1,33

0 1 0 0 -1 1 0 0 6

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

-50.000-M 6.700+0,067M -0,67M+1.033.000

-12.000.000

Page 54: Branch and Bound Program Linier

54

-

Baris 8x diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 -1 1 2

1 1 0 0 0,067 2 -2 0 0 1,33

0 0 0 -0,067 -2 2 -1 1 0,67

Karena kolom kunci adalah kolom x1 dan baris kunci adalah baris x4, maka

x1 masuk ke dalam variabel dasar menggantikan x4, sehingga tabel B akan

berubah menjadi :

Tabel C. Solusi Simpleks Relaksasi pada Node 5

Variabel

Dasar z x1 x2 x3 x4 x5 6x x7 8x NK Indeks

z 1 0 0 0 6.700+

0,067M

50.000

+2M

-50.000

-M M 0

-0,67M+

1.033.000

x3 0 0 0 1 -536.

000

-

12.000.

000

12.000.

000 0 0 5.360.000 0,44

x1 0 1 0 0 0,067 2 -2 0 0 1,33 -0,667

x2 0 0 1 0 0 -1 1 0 0 6 6

8x 0 0 0 0 -0,067 -2 2* -1 1 0,67 0,335

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom 6x dengan

nilai -50.000-M.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 5.360.000 : 12.000.00 = 0,45

Indeks baris x1 = 1,33 : -2 = -0,665

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 55: Branch and Bound Program Linier

55

Indeks baris x2 = 6 : 1 = 6

Indeks baris 8x = 0,67 : 2 = 0,335

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris 8x ,

maka baris 8x dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 2, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci 8x diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (2)

Kolom x1 baris 8x = 0 : 2 = 0

Kolom x2 baris 8x = 0 : 2 = 0

Kolom x3 baris 8x = 0 : 2 = 0

Kolom x4 baris 8x = -0,067 : 2 = -0,0335

Kolom x5 baris 8x = -2 : 2 = -1

Kolom 6x baris 8x = 2 : 2 = 1

Kolom x7 baris 8x = -1: 2 = -0,5

Kolom 8x baris 8x = 1 : 2 = 0,5

Kolom NK baris 8x = 0,67 : 2 = 0,335

Page 56: Branch and Bound Program Linier

56

-

-

-

-

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 0 0 6.700+0,067M 50.000+2M -50.000-M M 0 -0,67M+1.033.000

-50.000-M 0 0 0 -0,0335 -1 1 -0,5 0,5 0,335

0 0 0 5.025+0,0335M M 0 0,5M+25.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 0 1 -536.000 -12.000.000 12.000.000 0 0 5.360.000

12.000.000 0 0 0 -0,0335 -1 1 -0,5 0,5 0,335

0 0 1 -134.000 0 0 6.000.000 1.340.000

Baris x1 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0,067 2 -2 0 0 1,33

-2 0 0 0 -0,0335 -1 1 -0,5 0,5 0,335

1 0 0 0 0 0 -1 1 2

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 -1 1 0 0 6

1 0 0 0 -0,0335 -1 1 -0,5 0,5 0,335

0 1 0 0,0335 0 0 0,5 -0,5 5,665

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

0,5M-25.000 0,0335M+1.049.500

-6.000.000

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 57: Branch and Bound Program Linier

57

Karena kolom kunci adalah kolom 6x dan baris kunci adalah baris 8x ,

maka 6x masuk ke dalam variabel dasar menggantikan 8x , sehingga tabel C akan

berubah menjadi :

Tabel D. Solusi Optimal Simpleks Relaksasi pada Node 5

Variabel

Dasar z x1 x2 x3 x4 x5

6x x7 8x NK Indeks

z 1 0 0 0 5.025+

0,0335M M 0

0,5M-

25.000

25.000

+0,5M

783.750-

0,335M

x3 0 0 0 1 134.000 0 0 6.000.

000

-6.000.

000 1.340.000

x1 0 1 0 0 0 0 0 -1 1 2

x2 0 0 1 0 0,0335 0 0 0,5 -0,5 5,665

6x 0 0 0 0 -0,0335 -1 1 -0,5 0,5 0,335

Seluruh elemen pada baris fungsi tujuan tidak ada lagi yang bernilai

negatif, maka tidak perlu lagi dilakukan upaya perbaikan. Namun karena solusi

yang ditunjukkan tabel D Solusi Optimal simpleks relaksasi pada Node 5 masih

memuat artivicial variable, maka solusi tersebut tidak layak. Dengan demikian,

pada node 5 tidak terdapat solusi.

Mengingat bahwa belum diperoleh suatu solusi bilangan bulat yang layak

dan optimal, maka harus dibuat cabang dari salah satu antara node 2, node 4 atau

node 5. Karena solusi yang ditunjukkan tabel solusi optimal simpleks relaksasi

pada node 5 memuat artivicial variable, maka solusi tersebut tidak layak,

sehingga tidak perlu dilakukan perbandingan batas terhadap node 5. Melainkan

membandingkan batas antara node 2 dan 4, dan karena batas node 4 lebih besar

dari batas node 2, maka pencabangan dilakukan pada node 4. Berdasarkan tabel

solusi optimal simpleks relaksasi pada node 4, diketahui bahwa variabel x1 sudah

bernilai bilangan bulat dan x2 masih memiliki bagian yang bernilai pecahan, yaitu

Page 58: Branch and Bound Program Linier

58

0,17. Jadi, dua batasan baru dikembangkan dari x2, yaitu : 62 x dan 72 x .

Sehingga diperoleh dua node baru yang merupakan cabang dari node 3, seperti

tampak pada gambar berikut :

NODE 6

Maksimumkan: 21 000.150000.100 xxz

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

(3) 62 x

(4) 11 x

(5) 62 x

(6) 0, 21 xx

Node 1

1.056.000

BA = 1.056.000 ( 22,21 x , 56,52 x )

BB = 950.000 ( 21 x , 52 x )

Node 2

1.000.000

Node 3

1.034.000

52 x 62 x

Node 4

1.025.500

Node 5

Tidak layak

11 x 21 x

BA = 1.034.000 ( 34,11 x 62 x )

BB = 1.000.000 ( 11 x , 62 x )

BA = 1.000.000 ( 5,21 x 52 x )

BB = 950.000 ( 21 x 52 x )

Node 6

Node 7

62 x 72 x

BA = 1.025.500 ( 11 x 17,62 x )

BB = 1.000.000 ( 11 x 62 x )

Page 59: Branch and Bound Program Linier

59

Persoalan yang telah dinyatakan dalam bentuk model matematis seperti di

atas diselesaikan dengan menggunakan metode simpleks, yaitu :

a. mengubah fungsi tujuan dan batasan

Batasan (1) harus ditambah dengan sebuah slack variable x3, sehingga :

000.000.40000.000.4000.000.8 321 xxx

Batasan (2) harus ditambah dengan sebuah slack variable x4, sehingga :

2003015 421 xxx

Batasan (3) harus diubah menjadi :

6

6

6

52

52

2

xx

xx

x

Karena x5 bernilai negatif, maka bukanlah variabel dasar, sehingga perlu

ditambah artivicial variable 6x , maka :

6652 xxx

Batasan (4) harus ditambah dengan sebuah slack variable x7, sehingga :

171 xx

Batasan (5) harus ditambah dengan sebuah slack variable x8, sehingga :

682 xx

Dengan memperhatikan perubahan fungsi tujuan karena batasan (3), maka fungsi

tujuan diubah menjadi :

0000.150000.100 621 xMxxz

Untuk mengubah agar nilai 6x pada batasan menjadi 0, maka dilakukan

pengurangan-pengurangan sebagai berikut :

1 -100.000 -150.000 0 0 0 M 0 0 0

0 0 1 0 0 -1 1 0 0 6

…… ditambahkan slack variable x5

...... dikalikan dengan (-1)

...... dikalikan dengan (-1)

-M

Page 60: Branch and Bound Program Linier

60

1 -100.000 -150.000-M 0 0 M 0 0 0 -6M

Sehingga fungsi tujuan menjadi :

MMxxMxz 6000.150000.100 521

b. menyusun persamanan-persamaan di dalam tabel

Fungsi tujuan dan batasan yang telah diubah disusun dalam tabel simpleks

berikut:

Tabel A. Solusi Simpleks Relaksasi pada Node 6

Variabel

Dasar z

x1 x2 x3 x4 x5 6x x7

8x NK Indeks

z 1 -100.

000

-150.000

-M 0 0 M 0 0 0 -6M

x3 0 8.000.

000

4.000.

000 1 0 0 0 0 0 40.000.000 10

x4 0 15 30 0 1 0 0 0 0 200 6,67

6x 0 0 1* 0 0 -1 1 0 0 6 6

x7 0 1 0 0 0 0 0 1 0 1

8x 0 0 1 0 0 0 0 0 1 6 6

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x2 dengan

nilai -150.000-M.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 40.000.000 : 4.000.00 = 10

Indeks baris x4 = 200 : 30 = 6,67

Indeks baris 6x = 6 : 1 = 6

Indeks baris x7 = 1 : 0 =

Page 61: Branch and Bound Program Linier

61

Indeks baris 8x = 6 : 1 = 6

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris 6x ,

maka baris 6x dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci 6x diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris 6x = 0 : 1 = 0

Kolom x2 baris 6x = 1 : 1 = 1

Kolom x3 baris 6x = 0 : 1 = 0

Kolom x4 baris 6x = 0 : 1 = 0

Kolom x5 baris 6x = -1 : 1 = -1

Kolom 6x baris

6x = 1 : 1 = 1

Kolom x7 baris 6x = 0 : 1 = 0

Kolom 8x baris

6x = 0 : 1 = 0

Kolom NK baris 6x = 6 : 1 = 6

Page 62: Branch and Bound Program Linier

62

-

-

-

-

-

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 -150.000 0 0 M 0 0 0 -6M

-150.000-M 0 1 0 0 -1 1 0 0 6

-100.000 0 0 0 -150.000 150.000+M 0 0 900.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 4.000.000 1 0 0 0 0 0 40.000.000

4.000.000 0 1 0 0 -1 1 0 0 6

8.000.000 0 1 0 4.000.000 -4.000.000 0 0 16.000.000

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 30 0 1 0 0 0 0 200

30 0 1 0 0 -1 1 0 0 6

15 0 0 1 30 -30 0 0 20

Baris x7 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 1 0 1

0 0 1 0 0 -1 1 0 0 6

1 0 0 0 0 0 1 0 1

Baris 8x diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 0 0 0 1 6

1 0 1 0 0 -1 1 0 0 6

0 0 0 0 1 -1 0 1 0

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 63: Branch and Bound Program Linier

63

Karena kolom kunci adalah kolom x2 dan baris kunci adalah baris 6x ,

maka x2 masuk ke dalam variabel dasar menggantikan 6x , sehingga tabel A akan

berubah menjadi :

Tabel B. Solusi Simpleks Relaksasi pada Node 6

Variabel

Dasar z x1 x2 x3

x4 x5 6x x7

8x NK Indeks

z 1 -100.

000 0 0 0

-150.

000

150.000

+M 0 0 900.000

x3 0 8.000.

000 0 1 0

4.000.

000

-4.000.

000 0 0 16.000.000 4

x4 0 15 0 0 1 30 -30 0 0 20 0,67

x2 0 0 1 0 0 -1 1 0 0 6 -6

x7 0 1 0 0 0 0 0 1 0 1

8x 0 0 0 0 0 1* -1 0 1 0 0

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x5 dengan

nilai -150.000.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 16.000.000 : 4.000.00 = 4

Indeks baris x4 = 20 : 30 = 0,67

Indeks baris x2 = 6 : -1 = -6

Indeks baris x7 = 1 : 0 =

Indeks baris 8x = 0 : 1 = 0

Page 64: Branch and Bound Program Linier

64

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris 8x ,

maka baris 8x dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci 8x diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris 8x = 0 : 1 = 0

Kolom x2 baris 8x = 0 : 1 = 0

Kolom x3 baris 8x = 0 : 1 = 0

Kolom x4 baris 8x = 0 : 1 = 0

Kolom x5 baris 8x = 1 : 1 = 1

Kolom 6x baris

8x = -1 : 1 = -1

Kolom x7 baris 8x = 0 : 1 = 0

Kolom 8x baris

8x = 1 : 1 = 1

Kolom NK baris 8x = 0 : 1 = 0

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Page 65: Branch and Bound Program Linier

65

-

-

-

-

-

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 0 0 0 -150.000 150.000+M 0 0 900.000

-150.000 0 0 0 0 1 -1 0 1 0

-100.000 0 0 0 0 M 0 150.000 900.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 0 1 0 4.000.000 -4.000.000 0 0 16.000.000

4.000.000 0 0 0 0 1 -1 0 1 0

8.000.000 0 1 0 0 0 0 -4.000.000 16.000.000

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 0 0 1 30 -30 0 0 20

30 0 0 0 0 1 -1 0 1 0

15 0 0 1 0 0 0 -30 20

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 -1 1 0 0 6

-1 0 0 0 0 1 -1 0 1 0

0 1 0 0 0 0 0 1 6

Baris x7 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 1 0 1

0 0 0 0 0 1 -1 0 1 0

1 0 0 0 0 0 1 0 1

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 66: Branch and Bound Program Linier

66

Karena kolom kunci adalah kolom x5 dan baris kunci adalah baris 8x ,

maka x5 masuk ke dalam variabel dasar menggantikan 8x , sehingga tabel B akan

berubah menjadi :

Tabel C. Solusi Simpleks Relaksasi pada Node 6

Variabel

Dasar z

x1 x2 x3 x4 x5 6x x7

8x NK Indeks

z 1 -100.

000 0 0 0 0 M 0 150.000 900.000

x3 0 8.000.

000 0 1 0 0 0 0 -4.000.000 16.000.000 2

x4 0 15 0 0 1 0 0 0 -30 20 1,33

x2 0 0 1 0 0 0 0 0 1 6

x7 0 1* 0 0 0 0 0 1 0 1 1

x5 0 0 0 0 0 1 -1 0 1 0

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x1 dengan

nilai -100.000.

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 16.000.000 : 8.000.00 = 2

Indeks baris x4 = 20 : 15 = 1,33

Indeks baris x2 = 6 : 0 =

Indeks baris x7 = 1 : 1 = 1

Indeks baris x5 = 0 : 0 =

Page 67: Branch and Bound Program Linier

67

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x7,

maka baris x7 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x7 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris x7 = 1 : 1 = 1

Kolom x2 baris x7 = 0 : 1 = 0

Kolom x3 baris x7 = 0 : 1 = 0

Kolom x4 baris x7 = 0 : 1 = 0

Kolom x5 baris x7 = 0 : 1 = 0

Kolom 6x baris x7 = 0 : 1 = 0

Kolom x7 baris x7 = 1 : 1 = 1

Kolom 8x baris x7 = 0 : 1 = 0

Kolom NK baris 6x = 1 : 1 = 1

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Page 68: Branch and Bound Program Linier

68

-

-

-

-

-

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 0 0 0 0 M 0 150.000 900.000

-100.000 1 0 0 0 0 0 1 0 1

0 0 0 0 0 M 100.000 150.000 1.000.000

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 0 1 0 0 0 0 -4.000.000 16.000.000

8.000.000 1 0 0 0 0 0 1 0 1

0 0 1 0 0 0 -8.000.000 -4.000.000 8.000.000

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 0 0 1 0 0 0 -30 20

15 1 0 0 0 0 0 1 0 1

0 0 0 1 0 0 -15 -30 5

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 0 0 0 1 6

0 1 0 0 0 0 0 1 0 1

0 1 0 0 0 0 0 1 6

Baris x5 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 0 0 0 1 -1 0 1 0

0 1 0 0 0 0 0 1 0 1

0 0 0 0 1 -1 0 1 0

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 69: Branch and Bound Program Linier

69

Karena kolom kunci adalah kolom x1 dan baris kunci adalah baris x7,

maka x1 masuk ke dalam variabel dasar menggantikan x7, sehingga tabel C akan

berubah menjadi :

Tabel D. Solusi Optimal Simpleks Relaksasi pada Node 6

Variabel

Dasar z x1 x2 x3 x4 x5

6x x7 8x NK Indeks

z 1 0 0 0 0 0 M 100.000 150.000 1.000.000

x3 0 0 0 1 0 0 0 -

8.000.000 -4.000.000 8.000.000

x4 0 0 0 0 1 0 0 -15 -30 5

x2 0 0 1 0 0 0 0 0 1 6

x1 0 1 0 0 0 0 0 1 0 1

x5 0 0 0 0 0 1 -1 0 1 0

Pada tabel D, seluruh eleman pada baris fungsi tujuan tidak ada lagi yang

bernilai negatif. Hal ini berarti bahwa perbaikan yang dilakukan sudah merupakan

hasil optimal, sehingga tidak perlu lagi dilakukan upaya perbaikan. Nilai optimal

yang dihasilkan adalah fungsi tujuan z yang maksimum yaitu 1.000.000 dengan

11 x dan 62 x .

Dari tabel solusi optimal simpleks relaksasi pada node 6 diperoleh:

a. batas atas 1.000.000 dengan 11 x dan 62 x

b. batas atas 1.000.000 dengan 11 x dan 62 x

NODE 7

Maksimumkan: 21 000.150000.100 xxz

Berdasarkan :

(1) 000.000.40000.000.4000.000.8 21 xx

(2) 2003015 21 xx

(3) 62 x

Page 70: Branch and Bound Program Linier

70

(4) 11 x

(5) 72 x

(6) 0, 21 xx

Persoalan yang telah dinyatakan dalam bentuk model matematis seperti di

atas diselesaikan dengan menggunakan metode simpleks, yaitu :

a. mengubah fungsi tujuan dan batasan

Batasan (1) harus ditambah dengan sebuah slack variable x3, sehingga :

000.000.40000.000.4000.000.8 321 xxx

Batasan (2) harus ditambah dengan sebuah slack variable x4, sehingga :

2003015 421 xxx

Batasan (3) harus diubah menjadi :

6

6

6

52

52

2

xx

xx

x

Karena x5 bernilai negatif, maka bukanlah variabel dasar, sehingga perlu

ditambah artivicial variable 6x , maka :

6652 xxx

Batasan (4) harus ditambah dengan sebuah slack variable x7, sehingga :

171 xx

Batasan (5) harus diubah menjadi :

7

7

7

82

82

2

xx

xx

x

Karena x8 bernilai negatif, maka bukanlah variabel dasar, sehingga perlu

ditambah artivicial variable 9x , maka :

7982 xxx

…… ditambahkan slack variable x5

...... dikalikan dengan (-1)

...... dikalikan dengan (-1)

…… ditambahkan slack variable x8

...... dikalikan dengan (-1)

...... dikalikan dengan (-1)

Page 71: Branch and Bound Program Linier

71

Dengan memperhatikan perubahan fungsi tujuan karena batasan (3) dan (5), maka

fungsi tujuan diubah menjadi :

0000.150000.100 9621 xMxMxxz

Untuk mengubah agar nilai 6x dan 9x pada batasan menjadi 0, maka dilakukan

pengurangan-pengurangan sebagai berikut :

1 -100.000 -150.000 0 0 0 M 0 0 M 0

0 0 1 0 0 -1 1 0 0 0 6

0 0 1 0 0 0 0 0 -1 1 7

1 -100.000 -150.000-2M 0 0 M 0 0 M 0 -13M

Sehingga fungsi tujuan menjadi :

MMxMxxMxz 132000.150000.100 8521

b. menyusun persamanan-persamaan di dalam tabel

Fungsi tujuan dan batasan yang telah diubah disusun dalam tabel simpleks

berikut:

Tabel A. Solusi Simpleks Relaksasi pada Node 7

Variabel

Dasar z

x1 x2 x3 x4 x5 6x x7 x8 9x NK Indeks

z 1 -100.

000

-150.000

-2M 0 0 M 0 0 M 0 -13M

x3 0 8.000.

000

4.000.

000 1 0 0 0 0 0 0

40.000.

000 10

x4 0 15 30 0 1 0 0 0 0 0 200 6,67

6x 0 0 1* 0 0 -1 1 0 0 0 6 6

x7 0 1 0 0 0 0 0 1 0 0 1

9x 0 0 1 0 0 0 0 0 -1 1 7 7

memilih kolom kunci

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x2 dengan

nilai -150.000-M.

-M

-M

Page 72: Branch and Bound Program Linier

72

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 40.000.000 : 4.000.00 = 10

Indeks baris x4 = 200 : 30 = 6,67

Indeks baris 6x = 6 : 1 = 6

Indeks baris x7 = 1 : 0 =

Indeks baris 9x = 7 : 1 = 7

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris 6x ,

maka baris 6x dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 1, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci 6x diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (1)

Kolom x1 baris 6x = 0 : 1 = 0

Kolom x2 baris 6x = 1 : 1 = 1

Kolom x3 baris 6x = 0 : 1 = 0

Page 73: Branch and Bound Program Linier

73

-

-

-

Kolom x4 baris 6x = 0 : 1 = 0

Kolom x5 baris 6x = -1 : 1 = -1

Kolom 6x baris

6x = 1 : 1 = 1

Kolom x7 baris 6x = 0 : 1 = 0

Kolom x8 baris 6x = 0 : 1 = 0

Kolom 9x baris

6x = 0 : 1 = 0

Kolom NK baris 6x = 6 : 1 = 6

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 -150.000-2M 0 0 M 0 0 M 0 -13M

-150.000-2M 0 1 0 0 -1 1 0 0 0 6

-100.000 0 0 0 -150.000-M 150.000+2M 0 M 0 900.000-M

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 4.000.000 1 0 0 0 0 0 0 40.000.000

4.000.000 0 1 0 0 -1 1 0 0 0 6

8.000.000 0 1 0 4.000.000 -4.000.000 0 0 0 16.000.000

Baris x4 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

15 30 0 1 0 0 0 0 0 200

30 0 1 0 0 -1 1 0 0 0 6

15 0 0 1 30 -30 0 0 0 20

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 74: Branch and Bound Program Linier

74

-

-

Baris x7 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 1 0 0 1

0 0 1 0 0 -1 1 0 0 0 6

1 0 0 0 0 0 1 0 0 1

Baris 9x diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 0 0 0 -1 1 7

1 0 1 0 0 -1 1 0 0 0 6

0 0 0 0 1 -1 0 -1 1 1

Karena kolom kunci adalah kolom x2 dan baris kunci adalah baris 6x ,

maka x2 masuk ke dalam variabel dasar menggantikan 6x , sehingga tabel A akan

berubah menjadi :

Tabel B. Solusi Simpleks Relaksasi pada Node 7

Variabel

Dasar z x1 x2 x3 x4 x5 6x x7 x8 9x NK Indeks

z 1 -100.

000 0 0 0

-150.000

-M

150.000

+2M 0 M 0

900.000

-M

x3 0 8.000.

000 0 1 0

4.000.

000

-4.000.

000 0 0 0

16.000.

000 4

x4 0 15 0 0 1 30* -30 0 0 0 20 0,67

x2 0 0 1 0 0 -1 1 0 0 0 6 -6

x7 0 1 0 0 0 0 0 1 0 0 1

9x 0 0 0 0 0 1 -1 0 -1 1 1 1

memilih kolom kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 75: Branch and Bound Program Linier

75

Kolom kunci pada tabel di atas adalah kolom yang mempunyai nilai

negatif dengan angka terbesar pada baris fungsi tujuan, yaitu kolom x5 dengan

nilai -150.000-M.

Page 76: Branch and Bound Program Linier

76

menentukan nilai indeks pada tiap-tiap baris

Nilai indeks pada masing-masing baris ditentukan dengan rumus :

kuncikolomnilai

NKkolomnilaiIndeks

Indeks baris x3 = 16.000.000 : 4.000.00 = 4

Indeks baris x4 = 20 : 30 = 0,67

Indeks baris x2 = 6 : -1 = -6

Indeks baris x7 = 1 : 0 =

Indeks baris 9x = 7 : 1 = 7

memilih baris kunci

Karena nilai indeks positif dengan angka terkecil terdapat pada baris x4,

maka baris x4 dinyatakan sebagai baris kunci.

menentukan angka kunci

Angka kunci pada tabel di atas adalah 30, karena merupakan nilai yang

termasuk kolom kunci sekaligus baris kunci.

mengubah nilai-nilai baris kunci

Baris kunci x4 diubah dengan cara membagi angka-angkanya dengan

angka kunci yang telah ditentukan (30)

Kolom x1 baris x4 = 15 : 30 = 0,5

Kolom x2 baris x4 = 0 : 30 = 0,

Kolom x3 baris x4 = 0 : 30 = 0

Kolom x4 baris x4 = 1 : 30 = 0,033

Kolom x5 baris x4 = 30 : 30 = 1

Page 77: Branch and Bound Program Linier

77

- Nilai baru

Baris kunci

-

-

1.000.500-0,33M

Kolom 6x baris x4 = -30 : 30 = -1

Kolom x7 baris x4 = 0 : 30 = 0

Kolom x8 baris x4 = 0 : 30 = 0

Kolom 9x baris x4 = 0 : 30 = 0

Kolom NK baris x4 = 20 : 30 = 0,67

mengubah nilai-nilai selain pada baris kunci

Angka-angka pada kolom z tidak mengalami perubahan

Baris fungsi tujuan z diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

-100.000 0 0 0 -150.000-M 150.000+2M 0 M 0 900.000-M

-150.000-M 0,5 0 0 0,033 1 -1 0 0 0 0,67

25.000+0,5M 0 0 4.950+0,33M 0 M 0 M 0

Baris x3 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

8.000.000 0 1 0 4.000.000 -4.000.000 0 0 0 16.000.000

4.000.000 0,5 0 0 0,033 1 -1 0 0 0 0,67

6.000.000 0 1 -132.000 0 0 0 0 0 13.320.000

Baris x2 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 1 0 0 -1 1 0 0 0 6

-1 0,5 0 0 0,033 1 -1 0 0 0 0,67

0,5 1 0 0,033 0 0 0 0 0 6,67

Koefisien

Baris lama

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 78: Branch and Bound Program Linier

78

-

-

Baris x7 diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

1 0 0 0 0 0 1 0 0 1

0 0,5 0 0 0,033 1 -1 0 0 0 0,67

1 0 0 0 0 0 1 0 0 1

Baris 9x diubah dengan rumus :

Baris baru = baris lama – (koefisien pada kolom kunci x nilai baru baris kunci)

0 0 0 0 1 -1 0 -1 1 1

1 0,5 0 0 0,033 1 -1 0 0 0 0,67

-0,5 0 0 -0,033 0 0 0 -1 1 0,33

Karena kolom kunci adalah kolom x5 dan baris kunci adalah baris x4, maka

x5 masuk ke dalam variabel dasar menggantikan x4, sehingga tabel A akan

berubah menjadi :

Tabel C. Solusi Optimal Simpleks Relaksasi pada Node 7

Variabel

Dasar z x1 x2 x3 x4 x5 6x x7 x8 9x NK Indeks

z 1 -25.000

+0,5M 0 0

4.950+

0,033M 0 M 0 M 0

1.000.500

-0,33M

x3 0 6.000.

000 0 1

-132.

000 0 0 0 0 0

13.320.

000

x5 0 0,5 0 0 0,033 1 -1 0 0 0 0,67

x2 0 0,5 1 0 0,033 0 0 0 0 0 6,67

x7 0 1 0 0 0 0 0 1 0 0 1

9x 0 -0,5 0 0 -0,033 0 0 0 -1 1 0,33

Seluruh elemen pada baris fungsi tujuan tidak ada lagi yang benilai

negatif. Namun karena solusi yang ditunjukkan tabel C Solusi Optimal simpleks

relaksasi pada Node 7 masih memuat artivicial variable, maka solusi tersebut

tidak layak. Dengan demikian, pada node 5 tidak terdapat solusi.

Koefisien

Baris lama

Nilai baru

Baris kunci

Koefisien

Baris lama

Nilai baru

Baris kunci

Page 79: Branch and Bound Program Linier

79

Gambar di atas menunjukkan bahwa solusi bilangan bulat optimal telah

tercapai pada node 6, yaitu 000.000.1z untuk 11 x dan 62 x . Suatu

perbandingan antara solusi-solusi pada node 2, 5, 6, dan 7 memperlihatkan bahwa

tidak memungkinkan memperoleh solusi yang lebih baik. Batas atas pada node 2

adalah 1.000.000, sama dengan yang diperoleh pada node 6. Sedangkan solusi

pada node 5 dan 7 tidak layak

Langkah 6. Solusi simpleks relaksasi adalah merupakan batas atas pada tiap

node, dan solusi bilangan bulat maksimum yang ada (pada node

mana saja) adalah merupakan batas bawah

Berdasarkan uraian pada langkah 5, maka diperoleh :

a. batas atas 1.056.000 dengan 22,21 x dan 56,52 x

b. batas bawah 1.000.000 dengan 11 x dan 62 x

Node 1

1.056.000

BA = 1.056.000 ( 22,21 x , 56,52 x )

BB = 950.000 ( 21 x , 52 x )

Node 2

1.000.000

Node 3

1.034.000

52 x 62 x

Node 4

1.025.500

Node 5

Tidak layak

11 x 21 x

BA = 1.034.000 ( 34,11 x 62 x )

BB = 1.000.000 ( 11 x , 62 x )

BA = 1.000.000 ( 5,21 x 52 x )

BB = 950.000 ( 21 x 52 x )

Node 6

1.000.000

Node 7

Tidak Layak

62 x 72 x

BA = 1.025.500 ( 11 x 17,62 x )

BB = 1.000.000 ( 11 x 62 x )

BA = 1.000.000 ( 11 x , 62 x )

BB = 1.000.000 ( 11 x , 62 x )

Page 80: Branch and Bound Program Linier

80

Langkah 7. Jika proses ini menghasilkan solusi bilangan bulat fisibel dengan

nilai batas atas pada akhir node mana saja, maka solusi bilangan

bulat optimal telah tercapai. Jika tidak muncul solusi bilangan

bulat fisibel, lakukan pencabangan dari node dengan batas atas

terbesar

Berdasarkan langkah 1 sampai dengan 6, telah diperoleh solusi bilangan

bulat optimal, yaitu z = 1.000.000 dengan x1 = 1 dan x2 = 6. Oleh karena itu, tidak

perlu lagi dilakukan pencabangan. Jadi, solusi optimal dari persoalan program

linier untuk toko jual beli mesin adalah membeli 1 unit mesin cetak dan 6 unit

mesin bubut, sehingga akan diperoleh keuntungan maksimum sebesar Rp

1.000.000,00 setiap harinya.

Page 81: Branch and Bound Program Linier

81

BAB IV

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Teknik Branch and Bound merupakan teknik solusi yang sesuai digunakan

untuk menyelesaikan persoalan program linier yang mengharuskan setiap

variabelnya bernilai bilangan bulat dan dikembangkan dengan prinsip bahwa total

set solusi yang fisibel dapat dibagi menjadi subset-subset solusi yang lebih kecil.

Subset-subset ini selanjutnya dapat dievaluasi secara sistematis sampai solusi

yang terbaik ditemukan. Teknik Branch and Bound pada persoalan program linier

digunakan bersama-sama dengan metode simpleks. Teknik ini menggunakan

suatu diagram yang terdiri dari node dan cabang sebagai suatu kerangka dalam

proses pemerolehan solusi optimal.

Langkah-langkah penggunaan teknik Branch and Bound adalah sebagai

berikut :

a. Dapatkan solusi simpleks optimal dari program linier relaksasi yang

bersangkutan.

b. Solusi yang dihasilkan pada langkah a dinyatakan sebagai batas atas

(upper bound) dan pembulatan ke bawah sebagai batas bawah (lower

bound) pada node 1

c. Pilihlah variabel dengan pecahan yang terbesar untuk pencabangan

(branch). Ciptakan dua batasan baru untuk variabel ini. Hasilnya adalah

sebuah batasan dan sebuah batasan .

Page 82: Branch and Bound Program Linier

82

d. Ciptakan dua node baru, satu dengan batasan dan satu dengan

batasan

e. Selesaikan model program linier relaksasi dengan batasan baru yang

ditambahkan pada tiap node

f. Solusi simpleks relaksasi adalah merupakan batas atas pada tiap node, dan

solusi bilangan bulat maksimum yang ada (pada node mana saja) adalah

merupakan batas bawah

g. Jika proses ini menghasilkan solusi bilangan bulat fisibel dengan nilai

batas atas pada akhir node mana saja, maka solusi bilangan bulat optimal

telah tercapai. Jika tidak muncul solusi bilangan bulat fisibel, lakukan

pencabangan dari node dengan batas atas terbesar

4.2 Saran

Untuk menyelesaikan program linier yang mengharuskan setiap

variabelnya bernilai bilangan bulat, sangat sesuai bila menggunakan teknik

Branch and Bound. Teknik ini dapat dipadukan dengan metode simpleks, metode

dua fase ataupun dengan metode grafik. Oleh karena itu, bagi pembaca dapat

menerapkan teknik Branch and Bound ini dengan menggunakan metode grafik

atau metode dua fase.

Page 83: Branch and Bound Program Linier

83

DAFTAR PUSTAKA

Dimyati, T. dan Dimyati, A.,1994, Operations Research Model-model

Pengambilan Keputusan, Sinar Baru Algesindo, Bandung.

Subagyo, P., Asri, M. dan Handoko, H., 1992, Dasar-dasar operations research,

BPFE, Yogyakarta.

Taylor III, B., 1996, Sains Manajemen Pendekatan Matematika untuk Bisnis,

Salemba Empat, Jakarta.