PERBANDINGAN METODE SIMPLEX DAN REVISED SIMPLEX PADA PENYELESAIAN PROGRAM LINIER SKRIPSI Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Program Studi Teknik Informatika
PERBANDINGAN METODE SIMPLEX DAN REVISED SIMPLEX PADA PENYELESAIAN PROGRAM LINIER
SKRIPSI Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh : Putu Yunita Kusumawati NIM : 015314079
THE COMPARISON OF SIMPLEX METHOD AND
REVISED SIMPLEX METHOD IN FINISHING LINEAR PROGRAM
A Thesis
Presented as Partial Fulfillment of Requirements
to Obtain the Sarjana Teknik
Degree in Informatics Engineering
by :
Putu Yunita Kusumawati
Student number : 015314079
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya orang lain atau bagian karya orang lain, kecuali yang telah
disebutkan dalam kutipan daftar pustaka, sebagaimana layaknya karya ilmiah.Yogyakarta, 26 Agustus 2007 Penulis (Putu Yunita Kusumawati) Setulus Hati Kupersembahkan Karya Ini Kepada : ♦
Ida Sang Hyang Widi Waça yang telah memberikan banyak keajaiban dalam hidupku.
♣ Don’t wait tomorrow, what you can did yesterday
...................................
♣ You’ll never know till you have tried
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Ida Sang Hyang Widi Waça,
dengan tangan kasih-Nya yang senantiasa menuntun Penulis sehingga skripsi yang
berjudul “PERBANDINGAN METODE SIMPLEX DAN REVISED
SIMPLEX PADA PENYELESAIAN PROGRAM LINIER” ini dapat
diselesaikan.Skripsi ini secara khusus diajukan kepada Fakultas Sains Dan Teknologi
Jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta untuk
memenuhi sebagian syarat untuk memperoleh gelar Sarjana Teknik.Terwujudnya skripsi ini juga berkat bantuan dan dorongan dari beberapa
pihak. Untuk itu pada kesempatan ini Penulis ingin mengucapkan terima kasih
yang sebesar-besarnya atas segala bantuan dan jasa yang diberikan dalam
menyelesaikan skripsi ini, khususnya kepada :1. Romo Ir.Greg.Heliarko SJ.,S.S.,B.S.T.,M.A.,M.Sc., selaku Dekan Fakultas Sains Dan Teknologi Universitas Sanata Dharma Yogyakarta
2. Ibu A.M. Polina, S.Kom, M.Sc., selaku Ketua Jurusan Teknik Informatika
4. Bapak Drs. J. J. Siang, M.Sc., selaku pembimbing yang telah memberikan
bimbingan dan masukan sehingga skripsi ini dapat diselesaikan dengan baik.
5. Para dosen Fakultas Sains Dan Teknologi Jurusan Teknik Informatika
Universitas Sanata Dharma Yogyakarta yang sebelumnya telah membekali ilmu sebagai landasan dalam menyelesaikan skripsi ini.
6. Segenap staf dan karyawan Fakultas Sains Dan Teknologi atas bantuan
dan kerjasamanya.
7. Segenap staf dan karyawan perpustakaan Universitas Sanata Dharma
Yogyakarta.
8. Bapak dan Ibu tersayang dan tercinta, yang telah memberikan kasih
sayang, cinta, doa, dukungan dan biaya untuk kuliah.
9. Adik-adikku tersayang (Ayonk, Febi, Eca), yang selalu memberi semangat
dan doa.
10. Kekasihku Ok. Tri Setya Kurniawan, kebaikan, kesabaran dan
dukunganmu senantiasa menguatkan aku.
11. Saudara-saudaraku tercinta (Bali & Yogya) yang selalu memberi dukungan
13. Teman-teman TI ’01 (adri, anan, dami, oni, sigit, robin, ncep, wahyu, narko, danu, indra, tanto, theo, candra, mario, manu, putra, wawan, willy, eka, 3-r, ida, grace cemplung, tiwi, henny, helen, diana, alpons, ace, enjic, nia, vivi, aris, ucok, tina dll) buat keceriaan, kerjasama dan dukungannya.
14. Teman-teman KMHD “Swastika Taruna” Universitas Sanata Dharma Yogyakarta.
15. Serta semua pihak yang tidak dapat Penulis sebutkan satu persatu, yang
telah memberikan semangat sehingga skripsi ini dapat terselesaikan.
Penulis menyadari bahwa laporan skripsi ini belum sempurna, karena itu
penulis mengharapkan kritik dan saran yang membangun untuk kebaikan Penulis
di masa yang akan datang. Semoga skripsi ini dapat bermanfaat bagi kita semua.
Yogyakarta, 26 Agustus 2007 Penulis
ABSTRAKSI
Tujuan dari tugas akhir ini adalah mencoba membuat suatu programaplikasi yang dapat dipakai untuk mencari metode yang paling efisien dengan
membandingkan waktu komputasi yang terjadi dari dua metode pada program
linier. Adapun metode yang dibandingkan adalah Metode Simplex dan Revised
Simplex.Sebelum input data dan proses perhitungan dilakukan, soal program linier
yang akan diselesaikan harus sudah dalam bentuk standar simplex (=). Dan bahasa
pemrograman yang digunakan untuk implementasinya adalah MATLAB versi
6.5.1.Dari hasil percobaan yang sudah dilakukan, secara umum dapat
disimpulkan bahwa Metode Simplex memerlukan waktu yang relatif lebih singkat
daripada Revised Simplex..
ABSTRACT
This thesis aimed to try to make an application programm which could beused to find out the most efficient method by comparing the computation time
which occured from two methods in linear programm. The methods compared in
this thesis were Simplex Method and Revised Simplex.Before entering data and counting process were done, the problem of
linear programm which was to be accomplished should be in standard simplex
form (=). And the programming language used for the implementation was
MATLAB ver. 6.5.1The result of the trial showed that Simplex Method needs shorter time than Revised Simplex
DAFTAR ISI
HALAMAN JUDUL (Indonesia) ………………………………………................i
HALAMAN JUDUL (Inggris) .....……………………………………………......ii
HALAMAN PERSETUJUAN ...………………………………………………...iii
HALAMAN PENGESAHAN ................................................................................iv
PERNYATAAN KEASLIAN KARYA ................................................................v
HALAMAN PERSEMBAHAN ............................................................................vi
HALAMAN MOTTO ...........................................................................................vii
KATA PENGANTAR .........................................................................................viii
ABSTRAKSI..........................................................................................................xi
ABSTRACT.........................................................................................................xiii
DAFTAR ISI.........................................................................................................xiv
DAFTAR TABEL..................................................................................................xv
DAFTAR GAMBAR............................................................................................xvi
BAB I PENDAHULUAN ...................................................................................1
1.1 Latar Belakang ………………………………………………………1
1.2 Rumusan Masalah …………………………………………………...2
1.3 Batasan Masalah …………………………………………………….2
1.4 Tujuan ……………………………………………………………….2
1.5 Metode penelitian……………………………………… ………….…3
1.6 Sistematika Isi …….………………………………………………....3
BAB II DASAR TEORI........................................................................................5
BAB IV IMPLEMENTASI dan PEMBAHASAN ...........................................34
4.1 Implementasi dan Pengujian Program................................................34
4.2 Hasil Implementasi ..............................................................................38
4.3 Percobaan dan Analisa.........................................................................46
BAB V PENUTUP ..............................................................................................49
5.1 Kesimpulan .........................................................................................49
5.2 Saran …………………………………………………………………49
DAFTAR PUSTAKA …………………………………………………………50
DAFTAR TABEL
Tabel Keterangan Halaman Tabel 2-1 Tabel Simplex14 Tabel 4-1 Tabel Percobaan
45 Tabel 4-2 Tabel rata-rata waktu untuk jumlah variabel
46 Tabel 4-3 Tabel rata-rata waktu untuk jumlah kendala
47
DAFTAR GAMBAR Gambar Keterangan Halaman Gambar 3-1 Desain Halaman Home
40 Gambar 4-7 Kesalahan Jumlah Kendala
47 Gambar 4-13 Grafik waktu-jumlah kendala
44 Gambar 4-12 Grafik waktu-jumlah variabel
42 Gambar 4-11 Halaman Utama (Output)
42 Gambar 4-10 Peringatan Kesalahan Variabel
41 Gambar 4-9 Kesalahan Jumlah Variabel
41 Gambar 4-8 Peringatan Kesalahan Kendala
39 Gambar 4-6 Input Data Kendala
29 Gambar 3-2 Desain Halaman Utama
38 Gambar 4-5 Input Data Fungsi
37 Gambar 4-4 Halaman Utama
35 Gambar 4-3 Halaman Home
34 Gambar 4-2 Browser Folder
31 Gambar 4-1 Set path/path Browser
31 Gambar 3-3(b) Desain Input Data Kendala
30 Gambar 3-3(a) Desain Input Data Fungsi
48
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Pada perusahaan berskala besar maupun kecil ketepatan dalam mengambil suatu keputusan merupakan hal yang sangat penting. Jika kesalahan dalam pengambilan keputusan terjadi akan memberi dampak yang negatif bagi perusahaan yang bersangkutan. Dalam perusahaan seorang manajer dituntut untuk bisa mengambil sebuah keputusan yang tepat. Persoalan-persoalan yang dihadapi manajer dalam perusahaan pada umumnya adalah bagaimana cara yang tepat mengalokasikan sumber (resources) yang dimiliki agar diperoleh keuntungan yang maksimal dengan pemakaian biaya yang minimal.
Program linier merupakan satu model umum yang digunakan dalam pemecahan masalah pengalokasian sumber-sumber yang terbatas secara optimal dimana sumber-sumber yang ada diinputkan ke dalam variabel-variabel dan dikombinasikan untuk mencari solusi yang optimal. Ada beberapa cara untuk bisa menyelesaikan program linier yaitu dengan Metode Simplex dan Revised Simplex. Kedua metode tersebut merupakan teknik yang berhasil digunakan untuk mengatasi kelemahan dari metode grafis yaitu dapat menyelesaikan
Kemudian muncul Metode Simplex yang direvisi (Revised Simplex). Metode ini merupakan versi yang disempurnakan dari prosedur aslinya (Metode Simplex).
1.2 Rumusan Masalah
Berdasarkan latar belakang yang sudah dipaparkan maka dapat dirumuskan permasalahnnya yaitu menentukan metode yang terefisien antara Metode Simplex dan Revised Simplex.
1.3 Batasan Masalah
1. Perbandingan yang dilakukan adalah proses perbandingan kedua metode dalam hal waktu.
2. Bahasa pemrograman yang digunakan adalah Matlab versi 6.5.1
3. Program akan dibuat dengan batasan jumlah variabel dan jumlah kendala maksimal 10.
4. Program dibuat hanya untuk soal program linier memaksimumkan dengan kendala pertidaksamaan ( ).
5. Soal yang akan dihitung sudah dalam bentuk standar (=)
2. Dapat menentukan metode yang lebih efisien antara Metode Simplex dan Revised Simplex.
1.5 Metodologi Penelitian
Dalam pengerjaan skripsi ini, penulis menggunakan buku-buku atau referensi yang menyajikan informasi tentang materi yang dibahas, dalam hal ini tentang Metode Simplex dan Revised Simplex.
1.6 Sistematika Isi
BAB I PENDAHULUAN Pada bab ini akan dibahas tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan, metode penulisan dan sistematika isi. BAB II LANDASAN TEORI Pada bab ini akan diuraikan tentang dasar teori dan konsep dari Metode Simplex dan Revised Simplex. BAB III ANALISA dan DESAIN SISTEM Bab ini akan menjelaskan tahap-tahap perancangan program meliputi perancangan input, proses dan output yang akan mambantu pada tahap implementasi program.
BAB V PENUTUP Bab ini terdiri atas dua bagian yaitu kesimpulan dari hasil implementasi dan analisa pada bab IV dan saran pengembangan untuk program yang sudah ada. DAFTAR PUSTAKA
BAB II LANDASAN TEORI
2.1 Pengertian Umum Program Linier
Untuk pengalokasian sumber daya yang terbatas dalam melaksanakan kegiatan pada sebuah perusahaan dan industri dibutuhkan pemodelan. Pemodelan yang standar digunakan adalah model pemrograman linier. Model ini merupakan model matematis perumusan masalah umum pengalokasian sumber daya untuk berbagai kegiatan. Model ini digunakan dalam penyelesaian persoalan program linier.
Program linier adalah suatu cara untuk menyelesaikan persoalan pengalokasian sumber daya yang terbatas diantara beberapa aktivitas tertentu yang bersaing dalam hal penggunaan sumber daya langka yang dibutuhkan untuk melaksanakan aktivitas tersebut. Beberapa contoh antara lain : masalah pengalokasian penjadualan produksi, solusi pengiriman barang, solusi permaian dan masih banyak lagi. Ciri khas dari situasi tersebut adalah keharusan untuk mengalokasikan sumber daya terhadap aktivitas.
Program linier menggunakan model matematis untuk menjelaskan persoalan yang dihadapi. Sehingga dapat dikatakan bahwa program linier adalah kurang dari tiga variabel. Hal inilah yang menyebabkan bahwa metode grafik sangat jarang digunakan untuk menyelesaikan permasalahan pemrograman linier pada perusahan yang berskala besar dimana biasanya perusahaan akan mengunakan lebih dari tiga variabel.
2.2 Model Program Linier
Dalam program linier dikenal dua fungsi yaitu fungsi tujuan (objectives functions) dan fungsi kendala (constrain functions).
2.2.1 Fungsi Tujuan Fungsi tujuan menggambarkan tujuan di dalam permasalahan pemrograman linier yang berkaitan dengan peraturan secara optimal sumber- sumber daya untuk memperoleh keuntungan yang maksimal atau biaya yang minimum.
Bentuk standar dari fungsi tujuan : Maksimumkan /Minimumkan Z = C X +C X + C X +…+C
X
1
1
2
2
3 3 n n
2.2.2 Fungsi Kendala Fungsi kendala merupakan bentuk penyajian secara matematis kendala- kendala kapasitas yang tersedia yang akan dialokasikan secara optimal ke berbagai kegiatan. a m1 x
1 + a m2 x
2 + a m3 x
3 +…..+a mn x n = b n2.2.3 Variabel Slack Variabel slack ditambahkan jika kendala-kendala dari permasalahan program linier berbentuk pertidaksamaan (belum standar). Fungsi dari variabel slack adalah untuk mengkonversikan pertidaksamaan menjadi bentuk persamaan yang merupakan bentuk standar dari program linier. Variabel slack biasanya diberi nilai 0.
2.3 Metode Simplex
Metode simplex merupakan suatu metode secara matematis dimulai dari suatu pemecahan yang memungkinkan ke pemecahan dasar yang lainnya dan ini dilakukan secara berulang-ulang dengan jumlah ulangan yang terbatas sehingga tercapai suatu pemecahan dasar yang optimal. Pada setiap langkah menghasilkan nilai dan fungsi tujuan yang selalu lebih besar atau lebih kecil dari langkah- langkah sebelumnya.
2.4 Metode Revised Simplex
Metode Revised simplex menggunakan prinsip dasar yang sama dengan metode simplex . Yang berbeda hanya pada waktu menghitung data baru untuk
2.5 Bagan Alir
Soal Asli Jadikan soal bentuk standar
Tambah variabel semu : Ada
Maks : koef = -M
I
m
Tidak Min : koef = M
Ya Tabel awal simplex
Hitung zj Hitung nilai fungsi Z
Hitung cj-zj Maks : ada j cj-zj > 0
Revisi tabel Min : ada j cj-zj < 0
Ya Tidak
Soal tidak feasible sehingga fungsi Ada variabel semu a. Revisi tabel untuk Metode Simpleks Pilih variabel basis baru :
Program Maks : pilih m c -z = maks {c -z > 0}
m m m m
utama Min : pilih m c -z = min {c -z < 0}
m m m m
Tidak Penyelesaian tak
Ada terbatas a
jm
Ya = b ; a > 0
i i im
a
im
Pilih = Min { }
n i
(X ) = keluar dari basis
B n
a = elemen kunci
nm
Ganti (X ) dengan X
B n m
Ganti (C ) dengan C
B n m
- z
- z
dengan C
= elemen kunci Ganti (X
B
)
n
dengan X
m
Ganti (C
B
)
n
m
= keluar dari basis a
Perhitungan a
ij
baru : P
n
. P
n
; P
n
= vektor kolom dari x
j
Program utama Tidak
nm
n
Ya
i
b. Revisi tabel untuk Revised Simplex Program utama
Pilih variabel basis baru : Maks : pilih m c
m
m
= maks {c
m
m
> 0} Min : pilih m c m -z m = min {c m -z m < 0}
Ada a
jm
Penyelesaian tak terbatas
= b
)
i
; a
im
> 0 a
im
Pilih
n
= Min {
i
} (X
B
- 1
- = B
Matrik kendala dalam bentuk standar. A = A
j
Ko ef isie n ru as k anan k end al a P eng ecek an v ariab el yang k eluar d ari ba sis
]
ij
= [a
m*n
Z = Nilai fungsi (C B )i bi
Xn
1 X 2…………….
X
)i
B
(X
X
Zj Cj-Zj
i
)
B
(C
n
………..C
2
1 C
C
j
C
Sebagai contoh, pada soal : Maksimumkan : Z = 3x
Tabel 2-1 : Tabel Simplex
(Rat io )
- 2x
1
2 Kendala I = x
- 2x
1
2
20 Kendala II = 3x
- x
1
2
20 x
1
, x
2 A. Diselesaikan dengan Metode Simplex
Iterasi I
- Langkah 1
3 + 0x
4 Kendala : x + 2x + x = 20
1
2
3
: 3x + x + x = 20
1
2
4
x 0, x 0, x 0, x
1
2
3
4 Tabel awal Simplex:
(C ) C 3 2 0 0
B I j b i
X X
X X
X
j
1
2
3
4
(X )i
B
1
2
1
20 3 1 0 1
20 Zj Z = Cj-Zj
- Langkah 2 Ternyata feasible, jadi tidak perlu menentukan M buah variabel sebagai penyelesaian feasible awal. Langkah 3
(C ) C 3 2 0 0
B I j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X 1 2 1 0
20
3 X 3 1 0 1
20
4 Zj 0 0 0 0 Z = 0
Cj-Zj 3 2 0 0
- Langkah 4 Ternyata fungsi belum optimal karena masih terdapat nilai Cj-Zj > 0 sehingga perlu dicari nilai terbesar untuk mendapat kolom kunci.
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X 1 2 1 0
20
3 X 3 1 0 1
20
4 Zj 0 0 0 0 Z = 0
Cj-Zj 3 2 0 0
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X 1 2 1 0 20 20/1 = 20
3 X 3 1 0 1
20 20/3
4 Zj 0 0 0 0 Z = 0
Cj-Zj 3 2 0 0 Ternyata dimiliki oleh X dan kolom kunci berada pada X
min
4
1
sehingga X keluar dari basis dan digantikan X
4
1
- Langkah 6 Perhitungan a yang baru untuk membentuk tabel yang baru.
ij
a = 0
11
a = 2 – (1)(1) = 5/3
12
3 a = 1 – (0)(1) = 1
13
3 a
22 =1 : 3 = 1/3
a = 0 : 3 = 0
23
a = 1/3
14
b2 = 20/3 Sehingga diperoleh tabel simplex yang baru sebagai berikut :
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )I
B
X 0 5/3 1 -1/3 40/3
3
3 X 1 1/3 0 1/3 20/3
1 Zj Z =
Cj-Zj Iterasi
2
- Langkah 3
m
(C )i a
B ij
Menghitung nilai Zj, nilai fungsi (Z) dan Cj-Zj. Dimana Zj =
i =1
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
- Langkah 4 Ternyata fungsi belum optimal karena masih terdapat nilai Cj-Zj > 0 sehingga perlu dicari nilai terbesar untuk mendapat kolom kunci.
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X
3 0 5/3 1 -1/3 40/3
3 X 1 1/3 0 1/3 20/3
1 Zj 3 1 0 1 Z = 20
Cj-Zj 0 1 0 -1 positif terbesar
- Langkah 5 Hitung nilai ratio ( ) untuk menentukan variabel yang harus meninggalkan basis.
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B Ternyata min dimiliki oleh X
3 dan kolom kunci berada pada X
2
sehingga X keluar dari basis dan digantikan X
3
2
- Langkah 6 Perhitungan yang baru untuk membentuk tabel yang baru.
a ij
a = 0 : 5/3 = 0
11
a = 5/3 : 5/3 = 1
12
a = 1 : 5/3 = 3/5
13
a = -1/3 : 5/3 = -1/5
14
b = 40/3 : 5/3 = 8
1
a = 1 – (0)(1/3) = 1
21
5/3 a = 0
22
a = 0 – (1)(1/3) = -1/5
23
5/3 a = 1/3 – (-1/3)(1/3) = 2/5
24
5/3 b = 20/3 – (40/3)(1/3) = 4
2 Sehingga diperoleh tabel simplex yang baru sebagai berikut : (C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
2 X 0 1 3/5 -1/5
8
2
3 X 1 0 -1/5 2/5
4
1 Zj Z =
Cj-Zj Iterasi
3
- Langkah 3
m
(C )i a
B ij
Menghitung nilai Zj, nilai fungsi (Z) dan Cj-Zj. Dimana Zj =
i =1
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
2 X 0 1 3/5 -1/5
8
2
3 X 1 0 -1/5 2/5
4
1 Zj 3 2 3/5 4/5 Z = 28
Cj-Zj 0 0 3/5 -4/5
- Langkah 4 Ternyata fungsi sudah optimal. Hal ini dapat dilihat pada kolom Cj-Zj yang semuanya bernilai 0 atau negatif. Sehingga iterasi dapat dihentikan dan didapat nilai Z yang maksimum dengan nilai X =
1
4, X = 8, X = 0, X = 0 dan Z = 28
2
3
4 B. Diselesaikan dengan Revised Simplex
Iterasi 1
- Langkah 1 Nyatakan masalah program linier dalam bentuk standar dan masukkan ke dalam tabel awal simplex dan menentukan vektor kolom (Pn). Maksimumkan Z = 3x1 + 2x2 + 0x
3 + 0x
4 Kendala : x + 2x + x = 20
1
2
3
: 3x + x + x = 20
1
2
4
x 0, x 0, x 0, x
1
2
3
4 P = 1 ; P = 2 ; P = 1 ; P = 0 ; b = 20
1
2
3
4
3 1 0
1
20
- Langkah 3
m
(C )i a
B ij
Menghitung nilai Zj, nilai fungsi (Z) dan Cj-Zj. Dimana Zj =
i =1
(C ) C 3 2 0 0
B I j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X
3 1 2 1 0
20 X
4 3 1 0 1
20 Zj 0 0 0 0 Z = 0 Cj-Zj 3 2 0 0
- Langkah 4 Ternyata fungsi belum optimal karena masih terdapat nilai Cj-Zj > 0 sehingga perlu dicari nilai terbesar untuk mendapat kolom kunci.
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X 1 2 1 0
20
3 X 3 1 0 1
20
4
- Langkah 5 Hitung nilai ratio ( ) untuk menentukan variabel yang harus meninggalkan basis.
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X
3 1 2 1 0
20
20 X 3 1 0 1 20 20/3
4 Zj 0 0 0 0 Z = 0
Cj-Zj 3 2 0 0 Ternyata dimiliki oleh X dan kolom kunci berada pada X
min
4
1
sehingga X keluar dari basis dan digantikan X
4
1
- Langkah 6 Gunakan operasi matriks untuk mendapat tabel baru. B = [ P , P ]
3
1
= 1 1 0 3
- 1
p
2 = B . P 2 = 1 -1/3 2 = 5/3
0 1/3 1 1/3
- 1
p = B . P = 1 -1/3 1 = 1
3
3
0 1/3 0 0
- 1
p = B . P = 1 -1/3 0 = -1/3
4
4
0 1/3 1 1/3
- 1
b = B . bi = 1 -1/3 20 = 40/3 0 1/3 20 20/3 Sehingga diperoleh tabel simplex yang baru
(C B ) i C j 3 2 0 0
b i
X X
X X
X
j
1
2
3
4 (X )i B
X 0 5/3 1 -1/3 40/3
3
3 X 1 1/3 0 1/3 20/3
1 Zj Z =
Cj-Zj Iterasi 2
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4 (X )i B
X 0 5/3 1 -1/3 40/3
3
3 X 1 1/3 0 1/3 20/3
1 Zj 3 1 0 1 Z = 20
Cj-Zj 0 1 0 -1
- Langkah 4 Ternyata fungsi belum optimal karena masih terdapat nilai Cj-Zj > 0 sehingga perlu dicari nilai terbesar untuk mendapat kolom kunci.
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4 (X B )i
X 0 5/3 1 -1/3 40/3
3
3 X 1 1/3 0 1/3 20/3
1 Zj 3 1 0 1 Z = 20
Cj-Zj 0 1 0 -1 positif terbesar
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
B
X 0 5/3 1 -1/3 40/3
8
3
3 X 1 1/3 0 1/3 20/3
20
1 Zj 3 1 0 1 Z = 20
Cj-Zj 0 1 0 -1 Ternyata dimiliki oleh X dan kolom kunci berada pada X
min
3
2
sehingga X keluar dari basis dan digantikan X
3
2
- Langkah 6 Gunakan operasi matriks untuk mendapat tabel baru.
B = [P ,P ] = 2 1
2
1
1 3
- 1
B = 3/5 -1/5
- 1/5
- 1
p = B . P = 3/5 -1/5 1 = 0
1
1
- 1/5 2/5 3 1
- 1
p
4 = B . P
4 = 3/5 -1/5 0 = -1/5
- 1/5 2/5 1
- 1
bi = B . bi = 3/5 -1/5 20 = 8
- 1/5 2/5 20 4 Sehingga diperoleh tabel simplex yang baru yaitu :
(C ) C 3 2 0 0
B I j b i
X X
X X
X
j
1
2
3
4
(X )i
B
2 X 0 1 3/5 -1/5
8
2
3 X 1 0 -1/5 2/5
4
1 Zj Z =
Cj-Zj Iterasi 3
- Langkah 3
m
(C )i a
B ij
Menghitung nilai Zj, nilai fungsi (Z) dan Cj-Zj. Dimana Zj =
i =1
(C ) C 3 2 0 0
B i j b i
X X
X X
X
j
1
2
3
4
(X )i
- Langkah 4 Ternyata fungsi sudah optimal. Hal ini dapat dilihat pada kolom Cj-Zj yang semuanya bernilai 0 atau negatif. Sehingga iterasi dapat dihentikan dan didapat nilai fungsi Z yang optimal dengan nilai X
1
= 4, X = 8, X = 0, X = 0 dan Z = 28
2
3
4
BAB III ANALISA DAN DESAIN SISTEM Desain (perancangan) sistem merupakan tahap penting yang perlu
dilakukan sebelum melakukan tahap implementasi. Tahap perancangan dimaksudkan untuk mempermudah pada saat pembuatan program. Pada perancangan sistem akan dipersiapkan kebutuhan yang diperlukan pada proses implementasi.
Perancangan dilakukan dengan tujuan untuk memberi gambaran yang jelas tentang sistem yang akan dibangun sehingga akan mempermudah penggunaan sistem selanjutnya.
Pada tahap ini akan dilakukan beberapa perancangan yaitu :
1. Perancangan Input
2. Perancangan Output
3. Perancangan Proses Secara garis besar, program akan dimulai dengan menginputkan data baik data fungsi maupun data kendala. Dan untuk mempermudah user maka data tersebut akan ditampilkan pada layar. Setelah semua data diinputkan, maka proses perhitungan (pemecahan masalah program linier) dilakukan untuk mendapatkan
Flowchart berikut ini menggambarkan jalannya program secara umum. :
♦
Untuk revisi tabel
Soal standar Tabel awal Hitung Zj, nilai fungsi Z dan Cj-Zj
Maks : ada j cj-zj > 0 Min : ada j cj-zj < 0 Penyelesaian optimal Revisi tabel
Ya Tidak Program utama
Pilih variabel basis baru : Maks : pilih m c m -z m = maks {c m -z m > 0} Min : pilih m c m -z m
= min {c
m -z m < 0} i = b i ; a im> 0
a im Pilih n = Min { i}
(X B ) n = keluar dari basis a= elemen kunci Sebagai awal akan dibuat desain halaman Home yang merupakan judul dari program yang dibuat. Lalu dilanjutkan dengan perancangan input dan output yang akan ditampilkan pada halaman Utama.
- Halaman Home
Perbandingan Metode Simplex Dan Revised Simplex
Pada Penyelesaian Program Linier
Disusun Oleh :
Putu Yunita Kusumawati
01 5314 079
LanjutkanGambar 3-1 : Desain halaman Home
3.1 Perancangan Antar Muka
- Halaman Utama
Perbandingan Metode Simplex Dan Revised Simplex
Pada Penyelesaian Program Linier
Masukan
Simplek Revised Simplek Xn Z
Z bi bi Waktu
Waktu Gambar 3-2 : Desain halaman Utama Pada halaman Utama terlihat adanya penggabungan desain input dan output. a.
Masukan Data Data Fungsi[x x x -x ]
1
2
3
10 Jumlah Kendala
Jumlah Variabel OK Cancel
Gambar 3-3 (a) : Desain input data fungsi b. Masukan Data Data Kendala[x x x -x ]
1
2
3
10
bi OK
Cancel Gambar 3-3 (b) : Desain input data kendala yang berisi bahwa jumlah kendala atau variabel melebihi batas. Setelah semua data diinputkan lalu klik tombol “OK”.
Setelah tombol diklik maka program langsung menuju tampilan (b) untuk melakukan input data kendala dan bi. Setelah semua data terisi dan dilanjutkan dengan mengklik button “OK” maka data akan langsung diproses sehingga diperoleh solusi yang optimal dan output yang dihasilkan akan muncul pada halaman Utama untuk output.
Pada desain output akan ditampilkan untuk masing-masing metode yaitu
Xn merupakan indeks dari variabel fungsi, bi adalah koefisien ruas kanan kendala
yang akan menjadi nilai variabel dari fungsi, Z adalah nilai fungsi sasaran. Selain itu juga ditampilkan waktu proses dalam satuan detik selama proses perhitungan pada masing-masing metode.
3.2 Perancangan Proses
Sebelum dilakukan proses perhitungan, dipastikan dahulu soal / masalah program linier sudah dalam bentuk standar simplex (=). Jika soal masih dalam bentuk pertidaksamaan, maka diubsh ke dalam bentuk standar dengan menambahkan variabel slack.
Pada saat input data, yang diinputkan adalah koefisien variabel dari fungsi
Pada saat perhitungan, ada beberapa perhitungan penting yang dilakukan antara lain : perhitungan nilai Cj, Cj-Zj, ratio dan nilai fungsi sasaran Z. Selain itu perhitungan juga dilakukan untuk lamanya waktu yang diperlukan.
Pada perhitungan data / tabel baru, pada Revised Simplex menggunakan operasi matriks yaitu untuk menghitung invers. Dimana invers tersebut akan digunakan untuk menghitung data baru yaitu dengan mengalikan vektor kolom dari x dengan invers . Matriks yang digunakan untuk menghitung matrik adalah
j matrik yang dibentuk dari basis.
BAB IV IMPLEMENTASI DAN PEMBAHASAN
4.1 Implementasi dan Pengujian Program
4.1.1 Mempersiapkan Berkas Sumber
Sebelum mengaktifkan program terlebih dahulu mempersiapkan letak berkas sumber. Pada jendela perintah (command window) Matlab, masuk ke menu utam File lalu pilih set path.
Pada set path terdapat folder berkas, namun secara default biasanya berkas sumber banyak diletakkan pada folder C:\MATLAB6p5p1\work. Dan untuk mempermudah kerja, maka jika kita memiliki file yang akan dijalankan sebaiknya file tersebut diletakkan terlebih dulu pada berkas sumber dalam hal ini folder work.
Gambar 4-2 : Browser
4.1.2 Implementasi Program
Sebelum proses perhitungan dilakukan terlebih dahulu membentuk matrik data kendala (data xb dan data bi).
%ukur data xb end %salin data bi ke data bi awal for loop = 1:size_xb_baris-1 data_bi_awal(loop) = data_bi(loop); end
Setelah tabel terbentuk, langkah selanjutnya adalah menghitung nilai Zj, nilai Cj-Zj dan fungsi sasaran (Z), terlihat pada potongan program dibawah ini:
for loop = 1:size_xb_kolom data_zj(loop) = 0; end % cari nilai zj for loop = 1:size_xb_kolom for loop2 = 2:size_xb_baris data_zj(loop)=data_zj(loop)+(data_cb(loop21)* data_xb((loop2),loop)); temp_kali = temp_kali + 1; temp_plus = temp_plus + 1; end end %cari nilai cj-zj for loop = 1:size_xb_kolom data_cjzj(loop) = data_xb(1,loop) - data_zj(loop); temp_minus = temp_minus + 1; end % cari nilai fungsi sasaran(z) data_z = 0;
Kemudian cari nilai positif terbesar dari nilai cj-zj yang sudah dihitung, yang nantinya digunakan untuk menghitung nilai ratio.
%cari nilai terbesar cj-zj dan ratio [nilai_besar,indeks_besar] = max(data_cjzj); for loop = 1:(size_xb_baris -1) if data_xb(loop+1,indeks_besar) <= 0 data_rasio(loop) = 10000; else
data_rasio(loop) = data_bi(loop) / data_xb(loop+1,indeks_besar);
temp_bagi = temp_bagi +1; end end4.2 Hasil Implementasi
Pada jendela perintah ketik HalHome untuk mengaktifkan jendela figure HalHome sehingga pada layar akan tampak jendela figure.
Halaman Home merupakan awal dari program yang dibuat. Pada figure tersebut terdapat sebuah tombol aksi. Dan untuk memulainya terlebih dulu user menekan tombol ‘Lanjutkan’ yang kemudian akan langsung menuju halaman berikutnya yaitu halaman Utama. Dimana pada halaman ini merupakan gabungan antara input dan output. Input ditampilkan dengan tombol aksi “Masukan” seperti terlihat pada tampilan dibawah ini.
Gambar 4-4 : Halaman Utama
Soal : Maksimumkan : Z = 3x 1 + 2x
2 Kendala I : x + 2x
20
1
2
: 3x + 4x 20 ; x , x
1
2
1
2 Setelah diubah ke dalam bentuk standar,
Maksimumkan Z = 3x1 + 2x2 + 0x + 0x
3
4 Kendala : x + 2x + x = 20
1
2
3
: 3x + x + x = 20