Recent Posts

9 Mei 2016

Program Linier : Metode Simpleks



Metode Simpleks

A.    Pengantar Metode Simpleks
Metode simpleks merupakan sebuah metode lanjutan dari metode grafik. Metode grafik tidak dapat menyelesaikan persoalan manajemen yang memiliki variabel keputusan yang cukup besar, sehingga untuk menyelesaikannya dibutuhkan sebuah metode yang lebih kompleks yaitu dengan menggunakan program komputer QSB ( Quantitative System For Business) atau menggunakan metode simpleks. Dalam kenyataanya penggunaan komputer lebih efisien, akan tetapi metode dasar yang digunakan dalam pengoperasian komputer tetap metode simpleks.
Metode simpleks adalah metode yang dapat digunakan untuk menyelesaikan persoalan manaterial yang telah diformulasikan terlebih dahulu ke dalam persamaan matematika program linear yang mempunyai variable keputusan mulai dari lebih besar atau sama dengan 2 (dua) sampai multivariable. Sedangkan metode grafik hanya dapat digunalan apabila jumlah variable keputusan maksimal 2 (dua) buah. Sehingga dapat disimpulkan bahwa suatu persoalan linear programing yang diselesaikan dengan metode grafik juga dapat diselesaikan dengan metode simpleks, sebaliknya suatu persoalan yang hanya bisa diselesaikan dengan metode simpleks tidak dapat diselesaikan dengan metode grafik. Ada beberapa istilah yang sangat sering digunakan dalam metode simpleks, diantaranya :
1.      Iterasi adalah tahapan perhitungan dimana nilai dalam perhitungan itu tergantung dari nilai tabel sebelumnya.
2.      Variabel non basis adalah variabel yang nilainya diatur menjadi nol pada sembarang iterasi. Dalam terminologi umum, jumlah variabel non basis selalu sama dengan derajat bebas dalam sistem persamaan.
3.      Variabel basis merupakan variabel yang nilainya bukan nol pada sembarang iterasi. Pada solusi awal, variabel basis merupakan variabel slack (jika fungsi kendala merupakan pertidaksamaan ≤ ) atau variabel buatan (jika fungsi kendala menggunakan pertidaksamaan ≥ atau =). Secara umum, jumlah variabel basis selalu sama dengan jumlah fungsi pembatas (tanpa fungsi non negatif).
4.      Solusi atau nilai kanan (NK)  merupakan nilai sumber daya pembatas yang masih tersedia. Pada solusi awal, nilai kanan atau solusi sama dengan jumlah sumber daya pembatas awal yang ada, karena aktivitas belum dilaksanakan. Ada beberapa hal yang perlu diperhatikan, yaitu:
1.      Nilai kanan (NK)  fungsi tujuan harus nol (0).
2.      Nilai kanan (NK) fungsi kendala harus positif.  Apabila negatif, nilai tersebut harusdikalikan –1.
5.      Variabel slack adalah variabel yang ditambahkan ke model matematik kendala untuk mengkonversikan pertidaksamaan ≤ menjadi persamaan (=). Penambahan variabel ini terjadi pada tahap inisialisasi. Pada solusi awal, variabel slack akan berfungsi sebagai variabel basis.
6.      Variabel surplus adalah variabel yang dikurangkan dari model matematik kendala untuk mengkonversikan pertidaksamaan ≥ menjadi persamaan (=). Penambahan ini terjadi pada tahap inisialisasi. Pada solusi awal, variabel surplus tidak dapat berfungsi sebagai variabel basis.
7.      Variabel buatan adalah variabel yang ditambahkan ke model matematik kendala dengan bentuk ≥ atau = untuk difungsikan sebagai variabel basis awal. Penambahan variabel ini terjadi pada tahap inisialisasi. Variabel ini harus bernilai 0 pada solusi optimal, karena kenyataannya variabel ini tidak ada. Variabel hanya ada di atas kertas.
8.      Kolom pivot (kolom kerja) adalah kolom yang memuat variabel masuk. Koefisien pada kolom ini akn menjadi pembagi nilai kanan untuk menentukan baris pivot (baris kerja).
9.      Baris pivot (baris kerja) adalah salah satu baris dari antara variabel basis yang memuat variabel keluar.
10.  Elemen pivot adalah elemen yang terletak pada perpotongan kolom dan baris pivot. Elemen pivot akan menjadi dasar perhitungan untuk tabel simpleks berikutnya.
11.  Variabel masuk adalah variabel yang terpilih untuk menjadi variabel basis pada iterasi berikutnya. Variabel masuk dipilih satu dari antara variabel non basis pada setiap iterasi. Variabel ini pada iterasi berikutnya akan bernilai positif.
12.  Variabel keluar adalah variabel yang keluar dari variabel basis pada iterasi berikutnya dan digantikan oleh variabel masuk. Variabel keluar dipilih satu dari antara variabel basis pada setiap iterasi. Variabel ini pada iterasi berikutnya akan bernilai nol.

B.     Bentuk Baku
Sebelum melakukan perhitungan iteratif untuk menentukan solusi optimal, pertama sekali bentuk umum pemrograman linier dirubah ke dalam bentuk baku terlebih dahulu. Bentuk baku dalam metode simpleks tidak hanya mengubah persamaan kendala ke dalam bentuk sama dengan, tetapi setiap fungsi kendala harus diwakili oleh satu variabel basis awal. Variabel basis awal menunjukkan status sumber daya pada kondisi sebelum ada aktivitas yang dilakukan. Dengan kata lain, variabel keputusan semuanya masih bernilai nol. Dengan demikian, meskipun fungsi kendala pada bentuk umum pemrograman linier sudah dalam bentuk persamaan, fungsi kendala tersebut masih harus tetap berubah.  Ada beberapa hal yang harus diperhatikan dalam membuat bentuk baku, yaitu :
1.      Fungsi kendala dengan pertidaksamaan ≤ dalam bentuk umum, dirubah menjadi persamaan (=) dengan menambahkan satu variabel slack.
2.      Fungsi kendala dengan pertidaksamaan ≥ dalam bentuk umum, dirubah menjadi persamaan (=) dengan mengurangkan satu variabel surplus.
3.      Fungsi kendala dengan persamaan dalam bentuk umum, ditambahkan satu artificial variabel (variabel buatan).

Perhatikan pula kasus berikut :
Fungsi Tujuan :  Maksimumkan Z = 2X1 + 3 X2
Kendala :         10 X1 + 5 X2 ≤ 600
6 X1+ 20 X2 ≤ 600
8 X1 + 15 X2 ≤ 600
X1, X2 ≥ 0
Bentuk di atas juga merupakan bentuk umum. Perubahan ke dalam bentuk baku hanya membutuhkan variabel slack, karena semua fungsi kendala menggunakan bentuk pertidaksamaan ≤ dalam bentuk umumnya. Maka bentuk bakunya adalah sebagai berikut :
Maksimumkan   :        z = 2 X1+ 3X2 + 0S1 + 0S2+ 0S3
Fungsi Kendala :         10 X1 + 5 X2 + S1  = 300
6 X1 + 20 X2+ S2 = 700
8 X1 + 15 X2 + S3  = 600
X1, X2 , S1 , S2, S3 ≥ 0
S1 , S2, S3 merupakan variable slack.

C.    Pembentukan Tabel Simpleks
Dalam perhitungan iterative, kita akan bekerja menggunakan tabel. Bentuk baku yang sudah diperoleh, harus dibuat ke dalam bentuk tabel. Semua variabel yang bukan variabel basis mempunyai solusi (nilai kanan) sama dengan nol dan koefisien variabel basis pada baris tujuan harus sama dengan 0. Oleh karena itu kita harus membedakan pembentukan tabel awal berdasarkan variabel basis awal. Gunakan kasus di atas, maka tabel awal simpleksnya adalah :
VB
X1
X2
S1
S2
S3
NK
Z
-2
-3
0
0
0
0
S1
10
5
1
0
0
300
S2
6
20
0
1
0
700
S3
8
15
0
0
1
600






D.    Langkah-Langkah Penyelesaian
Langkah-langkah penyelesaian adalah sebagai berikut :
1.      Tentukan kolom pivot. Penentuan kolom pivot dilihat dari koefisien fungsi tujuan (nilai di sebelah kanan baris z) dan tergantung dari bentuk tujuan. Jika tujuan maksimisasi, maka kolom pivot adalah kolom dengan koefisien paling negatif. Jika tujuan minimisasi , maka kolom pivot adalah kolom dengan koefisien positif terbesar. Jika kolom pivot ditandai dan ditarik ke atas, maka kita akan mendapatkan variabel keluar. Jika nilai paling negatif (untuk tujuan maksimisasi) atau positif terbesar (untuk tujuan minimisasi) lebih dari satu, pilih salah satu secara sembarang.
2.      Tentukan baris pivot. Baris pivot ditentukan setelah membagi nilai solusi dengan nilai kolom pivot yang bersesuaian (nilai yang terletak dalam satu baris). Dalam hal ini, nilai negatif dan 0 pada kolom pivot tidak diperhatikan, artinya tidak ikut menjadi pembagi. Baris pivot adalah baris dengan rasio pembagian terkecil. Jika baris pivot ditandai dan ditarik ke kiri, maka kita akan mendapatkan variabl keluar. Jika rasio pembagian terkecil lebih dari satu, pilih salah sau secara sembarang.
3.      Tentukan elemen pivot. Elemen pivot merupakan nilai yang terletak pada perpotongan kolom dan baris pivot.
4.      Bentuk tabel simpleks baru. Tabel simpleks baru dibentuk dengan pertama sekali menghitung nilai baris pivot baru. Baris pivot baru adalah baris pivot lama dibagi dengan elemen pivot. Baris baru lainnya merupakan pengurangan nilai kolom pivot baris yang bersangkutan dikali baris pivot baru dalam satu kolom terhadap baris lamanya yang terletak pada kolom tersebut.
5.       Periksa apakah tabel sudah optimal. Keoptimalan tabel dilihat dari koefisien fungsi tujuan (nilai pada baris z) dan tergantung dari bentuk tujuan. Untuk tujuan maksimisasi, tabel sudah optimal jika semua nilai pada baris z sudah positif atau 0. Pada tujuan minimisasi, tabel sudah optimal jika semua nilai pada baris z sudah negatif atau 0. Jika belum, kembali ke langkah no. 2 , jika sudah optimal baca solusi optimalnya.

E.     Contoh Soal
Contoh   1
Maksimum z = 8 X1 + 9 X2+ 4 X3
Fungsi Kendala :         X1+ X2 + 2 X3 ≤ 2
2 X1 + 3 X2 + 4 X3 ≤ 3
7 X1+ 6 X2 + 2 X3≤ 8
X1, X2, X3  ≥ 0
Penyelesaian :
Untuk menyelesaikan masalah di atas dilakukan langkah-langkah dibawah ini :
1.      Mengubah fungsi tujuan
z = 8 X1 + 9 X2+ 4 X3+ 0S1 + 0S2 + 0S3     atau   
z - 8 X1 - 9 X2 - 4 X3 - 0S1 - 0S2 - 0S3 = 0
2.      Mengubah fungsi batasan
X1+ X2 + 2 X3 + S1  = 2
2X1 + 3 X2 + 4 X3  + S2 = 3
7X1+ 6 X2 + 2 X3 + S3    = 8
X1, X2, X3, S1, S2, S3 ≥ 0

3.      Masukkan setiap koefisien variabel ke dalam tabel simpleks. Sehingga :
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-8
-9
-4
0
0
0
0

S1
1
1
2
1
0
0
2

S2
2
3
4
0
1
0
3

S3
7
6
2
0
0
1
8


4.      Menentukan Kolom Kunci/Pivot.
Lihat baris Z lihat nilai yang terkecil.
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-8
-9
-4
0
0
0
0

S1
1
1
2
1
0
0
2

S2
2
3
4
0
1
0
3

S3
7
6
2
0
0
1
8

Pada contoh di atas nilai negatif yang tebesar adalah -9 pada kolom X2 jadi, kolom  Xadalah kolom kunci/Pivot, sehingga :

5.      Menentukan Baris Kunci/Pivot
Baris kunci diketahui dari nilai indeks (Rasio) yang terkecil. Rasio = NK/Kolom Pivot
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-8
-9
-4
0
0
0
0
0
S1
1
1
2
1
0
0
2
2
S2
2
3
4
0
1
0
3
1
S3
7
6
2
0
0
1
8
8/6
Jadi nilai rasio terkecil adalah 1 (selain Z), sehingga baris kuncinya / baris pivot ada pada S2
6.      Mencari angka Kunci/ Elemen Pivot
Angka kunci diperoleh dari perpotongan antara kolom kunci dan baris kunci. Jadi angka kunci diperoleh adalah 3
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-8
-9
-4
0
0
0
0
0
S1
1
1
2
1
0
0
2
2
S2
2
3
4
0
1
0
3
1
S3
7
6
2
0
0
1
8
8/6

7.      Membuat Baris Baru Kunci (BBK)
Karena nilai kunci berada pada kolom X2, maka baris S2 kita ubah namanya menjadi X2, dan nilai-nilai pada baris S2 kita ubah pula dengan cara membagi nilai baris dengan angka kunci. Maka kita mendapat nilai baris kunci yang baru (baris x1) :
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z








S1








X2
2/3
3
4/3
0
1/3
0
1
1
S3












8.      Mencari baris baru selain baris kunci/pivot.
Baris baru : baris lama – (angka kolom kunci X nilai baru baris kunci)
Baris Z :
-8         -9         -4        0          0          0          0
-9     (   2/3        1         4/3      0        1/3         0           1    ) -
-2         0          8         0          3          0           9

Baris S1 :
1          1         2          1         0         0         2
1      (  2/3        1        4/3        0         1/3      0         1    ) -
1/3        0        2/3        1         -1/3      0         1

Baris S3:
7          6          2         0          0          1         8
6       ( 2/3        1          4/3      0          1/3       0          1   ) -
3          0          -6        0          -2          1          2

VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-2
0
8
0
3
0
9
-
S1
1/3
0
2/3
1
-1/3
0
1
3
X2
2/3
1
4/3
0
1/3
0
1
3/2
S3
3
0
-6
0
-2
1
2
2/3
9.      Masukkan nilai-nilai tersebut ke dalam tabel simpleks yang baru (iterasi 1)

VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-2
0
8
0
3
0
9
-
S1
1/3
0
2/3
1
-1/3
0
1
3
X2
2/3
1
4/3
0
1/3
0
1
3/2
S3
3
0
-6
0
-2
1
2
2/3
10.  Perhatikan kembali tabel di atas, bila pada baris Z masih ada variabel yang bernilai negatif, maka fungsi tujuan belum maksimal. Sehingga untuk menghilangkan nilai negatif kita ulangi lagi langkah-langkah sebelumnya. Ini kita lakukan terus-menerus hingga tiada variabel Z yang negatif.

Variabel masuk dengan demikian adalah X1, variabel keluar adalah S3   serta elemen pivot yaitu 3 . Hasil perhitungan iterasi ke 2 adalah sebagai berikut :
VB
X1
X2
X3
S1
S2
S3
NK
Z
0
0
4
0
5/3
2/3
31/3
S1
0
0
4/3
1
-1/9
-1/9
7/9
X2
0
1
8/3
0
5/3
-2/9
5/9
S3
1
0
-2
0
-2/3
1/3
2/3






Tabel sudah optimal, sehingga perhitungan iterasi dihentikan !
Perhitungan dalam simpleks menuntut ketelitian tinggi, khususnya jika angka yang digunakan adalah pecahan. Pembulatan harus diperhatikan dengan baik. Disarankan jangan menggunakan bentuk bilangan desimal, akan lebih teliti jika menggunakan bilangan pecahan. Pembulatan dapat menyebabkan iterasi lebih panjang atau bahkan tidak selesai karena ketidaktelitian dalam melakukan pembulatan.
Perhitungan iteratif dalam simpleks pada dasarnya merupakan pemeriksaan satu per satu titik-titik ekstrim layak pada daerah penyelesaian. Pemeriksaan dimulai dari kondisi nol (dimana semua aktivitas/variabel keputusan bernilai nol). Jika titik ekstrim berjumlah n, kemungkinan terburuknya kita akan melakukan perhitungan iteratif sebanyak n kali.
Sehingga dapat kita simpulkan bahwa untuk memperoleh hasil maksimum,
S1 =  2/3
X2= 7/9           
S3 = 5/9
Z = 31/3

Contoh 2 :
Selesaikan kasus berikut ini menggunakan metode simpleks :
Fungsi Tujuan : Maksimumkan Z = 50 X1 + 20 X2 + 30 X3.
Fungsi Kendala           :2X1 + 3X2 ≤ 1000
3 X1 + 2 X2 ≤ 2100
                                    X2 + 5 X3 ≤ 1500

Untuk menyelesaikan masalah di atas dilakukan langkah-langkah dibawah ini :
1.      Mengubah fungsi tujuan.
                        Z - 50 X1 - 20x2 - 30x3 = 0
2.      Mengubah fungsi batasan
2 X1+ 3 X2 + 0 X3+ S1 = 1000
3 X1 + 0X2+ 2 X3 + S2= 2100
0 X1+   X2 + 5 X3 + S3 = 1500

3.      Masukkan setiap koefisien variabel ke dalam tabel simpleks. Sehingga :
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-50
-20
-30
0
0
0
0

S1
2
3
0
1
0
0
1000

S2
3
0
2
0
1
0
2100

S3
0
1
5
0
0
1
1500


4.      Menentukan kolom kunci/pivot.
Lihat baris Z lihat nilai yang terkecil.
Pada contoh di atas nilai negatif yang tebesar adalah -50 pada kolom X1 jadi, kolom  X1  adalah kolom kunci/pivot, sehingga
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-50
-20
-30
0
0
0
0

S1
2
3
0
1
0
0
1000

S2
3
0
2
0
1
0
2100

S3
0
1
5
0
0
1
1500


5.      Menentukan Baris Kunci (BK)
Baris kunci diketahui dari nilai indeks / Rasio yang terkecil. Rasio = NK/Kolom Pivot
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-50
-20
-30
0
0
0
0

S1
2
3
0
1
0
0
1000
500
S2
3
0
2
0
1
0
2100
700
S3
0
1
5
0
0
1
1500
Tak terhingga
Jadi nilai terkecil adalah 500, sehingga baris kuncinya ada pada S1

6.      Mencari angka Kunci/pivot
Angka kunci diperoleh dari perpotongan antara kolom kunci dan baris kunci. Jadi angka kunci diperoleh adalah 2.
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-50
-20
-30
0
0
0
0

S1
2
3
0
1
0
0
1000
500
S2
3
0
2
0
1
0
2100
700
S3
0
1
5
0
0
1
1500
Tak terhingga

7.      Membuat Baris Baru Kunci.
Karena nilai kunci berada pada kolom X1, maka baris S1 kita ubah namanya menjadi X1, dan nilai-nilai pada baris S1 kita ubah pula dengan cara membagi nilai baris dengan angka kunci.Maka kita mendapat nilai baris kunci yang baru (baris x1) :
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z








X1
1
3/2
0
1/2
0
0
500

S2








S3









8.      Mencari baris baru selain baris kunci.
Baris baru : baris lama – (angka kolom kunci X nilai baru baris kunci)
Baris Z :
-50       -20       -30        0        0          0          0
-50     ( 1          3/2         0       1/2       0          0           500   ) -
0          55        -30      25        0          0           25000

Baris S2 :
3          0          2         0         1         0         2100
3    (     1          3/2       0         1/2        0         0          500   ) -
0          -9/2     2/3        -3/2      1          0         600

Baris S3:
0          1          5         0          0          1         1500
0      (   1          3/2         0       1/2       0          0           500   ) –
0          1          5         0          0          1         1500

9.      Masukkan nilai-nilai tersebut ke dalam tabel simpleks yang baru (iterasi 1).
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
0
55
-30
25
0
0
25000

X1
1
3/2
0
1/2
0
0
500

S2
0
-9/2
2
-3/2
1
0
600

S3
0
1
5
0
0
1
1500





10.  Perhatikan kembali tabel di atas, bila pada baris Z masih ada variabel yang bernilai negatif, maka fungsi tujuan belum maksimal. Sehingga untuk menghilangkan nilai negatif kita ulangi lagi langkah-langkah sebelumnya. Ini kita lakukan terus-menerus hingga tiada variabel Z yang negatif.
VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
0
55
-30
25
0
0
25000
-83,333
X1
1
3/2
0
1/2
0
0
500
Tidak terdefinisi
S2
0
-9/2    
2
-3/2
1
0
600
300
S3
0
1
5
0
0
1
1500
300

Variabel masuk dengan demikian adalah X3, variabel keluar adalah S3  serta elemen pivot yaitu 5 . Hasil perhitungan iterasi ke 2 adalah sebagai berikut :

VB
X1
X2
X3
S1
S2
S3
NK
Z
0
61
0
25
0
6
34000
X1
1
3/2
0
½
0
0
500
S2
0
-49/10
0
-3/2
1
-2/5
0
X3
1/5
1/5
1
0
0
1/5
300

Tabel sudah optimal, sehingga perhitungan iterasi dihentikan !
Sehingga dapat kita simpulkan bahwa untuk memperoleh hasil maksimum,
X1 = 500
X2= 0
X3 = 300
Z = 34000

DAFTAR PUSTAKA


3 komentar:

Unknown mengatakan...

terima kasi banyaak

Unknown mengatakan...

terima kasih banyaaaak

adhie mengatakan...

mba mau tanya, misalkan soalnya seperti ini
maksimumkan Z ≤ 5X1 + 3X2
itu bagaimana ya cara perubahannya menjadi Z =