PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN
DUA KRITERIA DENGAN MENGGUNAKAN
METODE BRANCH AND CUT
SKRIPSI
TAUFIK HIDAYAT RITONGA
110803028
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN
DUA KRITERIA DENGAN MENGGUNAKAN
METODE BRANCH AND CUT
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat untuk mencapai gelar Sarjana Sains
TAUFIK HIDAYAT RITONGA
110803028
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : Penyelesaian Program Bilangan Bulat Campuran Dua Kriteria dengan Menggunakan Metode
Branch and Cut
Kategori : Skripsi
Nama : Taufik Hidayat Ritonga
Nomor Induk Mahasiswa : 110803028
Program Studi : Sarjana (S1) Matematika
Departemen : Matematika
Fakultas : Matematika Dan Ilmu Pengetahuan Alam (FMIPA) Universitas Sumatera Utara
Disetujui di Medan, Januari 2015
Komisi Pembimbing:
Pembimbing 2, Pembimbing 1,
Prof. Dr. Drs. Iryanto, M.Si Dr. Sawaluddin, M.IT
NIP. 19460404 197107 1 001 NIP. 19591231 199802 1 001
Disetujui oleh
Departemen Matematika FMIPA USU Ketua,
Prof. Dr. Tulus, M.Si
PERNYATAAN
PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN DUA KRITERIA DENGAN MENGGUNAKAN
METODE BRANCH AND CUT
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri. Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Januari 2015
PENGHARGAAN
Puji dan syukur penulis ucapkan kepada Allah SWT Yang Maha Esa dan Kuasa
atas limpahan rahmat dan karuniaNYA sehingga skripsi ini dapat diselesaikan.
Pada skripsi ini, penulis mengangkat judul Penyelesaian Program Bilangan Bulat
Campuran Dua Kriteria dengan Menggunakan Metode Branch and Cut.
Terimakasih penulis sampaikan kepada Bapak Dr. Sawaluddin, M.IT
selaku pembimbing 1 dan Bapak Prof. Dr. Drs. Iryanto, M.Si selaku pembimbing
2 yang berkenan dan rela mengorbankan waktu, tenaga dan pikiran guna
memberikan petunjuk dan bimbingannya dalam penulisan skripsi ini. Bapak Dr.
Suyanto, M.Kom dan Bapak Dr. Faigiziduhu Bu’ulolo, M.Si selaku dosen penguji
yang telah memberikan kritik dan saran yang membangun dalam penyempurnaan
skripsi ini. Terimakasih kepada Bapak Prof. Dr. Tulus, M.Si dan Ibu Dr.
Mardiningsih, M.Si selaku Ketua dan Sekretaris Departemen Matematika FMIPA
USU. Terimakasih kepada Bapak Dr. Sutarman, M.Sc selaku Dekan FMIPA
USU, Pembantu Dekan FMIPA USU, seluruh Staff dan Dosen Matematika
FMIPA USU, pegawai FMIPA USU, untuk orang–orang tersayang khususnya
sahabat penulis Franklin, Joe, Nana, Amik, Endang, Lely, Bang Andi, Kak
Rizkika, Kak Mila, Kak Retno, Kak Huide dan seluruh rekan-rekan Matematika
2011 yang tidak bisa diucapkan satu per satu serta semua abang dan kakak senior
stambuk 2010 keatas dan adik-adik junior stambuk 2012, stambuk 2013, stambuk
2014 yang selama ini selalu memberi semangat dan mendo’akan dalam
menyelesaikan skripsi ini. Akhirnya tidak terlupakan kepada Ayahanda tercinta
Zulkifli Ritonga, Ibunda tercinta Hj. Asmi Derimi Dongoran, serta saudara–
saudara penulis yang tersayang Erlina Ritonga, Amd, Safrizal Ritonga, Siti Paisah
Ritonga, Erwinsyah Rambe, Abdul Rahman Tambak, Hari Abdi Rambe dan
Habib Rahman Rambe serta keluarga dari Ayah dan Mama atas segala perhatian,
pengertian, kesabaran, do’a, dukungan dan kasih sayang yang telah diberikan
kepada penulis selama di bangku perkuliahan hingga akhirnya menyelesaikan
Penulis juga menyadari masih banyak kekurangan dalam skripsi ini, baik
dalam teori maupun penulisannya. Oleh karena itu, penulis mengharapkan saran
dari pembaca demi perbaikan bagi penulis. Semoga segala bentuk bantuan yang
telah diberikan kepada penulis mendapatkan balasan yang lebih baik dari Allah
SWT. Akhir kata penulis berharap semoga tulisan ini bermanfaat bagi para
PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN DUA KRITERIA DENGAN MENGGUNAKAN
METODE BRANCH AND CUT
ABSTRAK
Metode branch and cut merupakan suatu metode yang digunakan untuk menyelesaikan masalah linear programming yang menghasilkan berupa penyelesaian dalam bentuk bilangan bulat (integer), metode ini merupakan perpaduan metode branch and bound dengan metode cutting plane. Metode ini selalu digunakan dalam menyelesaikan permasalahan single objective linear
integer programming. Dalam tulisan ini akan ditunjukkan suatu permasalahan dua
kriteria (bicriteria) yang diselesaikan dengan metode branch and cut. Permasalahan tersebut disebut bicriteria linear programming. Dalam menyelesaikan permasalahan ini penulis menggunakan parametric simplex
algorithm kemudian diiringi dengan metode branch and cut apabila tidak
diperoleh suatu penyelesaian yang tidak berupa bilangan bulat (integer).
Kata Kunci: Branch and cut, branch and bound, cutting plane, bicriteria linear
programming, parametric simplex algorithm
SOLVING BICRITERIA MIXED INTEGER PROGRAMMING USING BRANCH AND CUT METHOD
ABSTRACT
Branch and cut method is a method that used to solve linear programming problems that deliver the solution in integer form, this method is a mix of branch and bound method with the cutting plane method. This method is always used in a single objective problem to solve integer linear programming. A bicriteria problems that solved by the branch and cut method will be shown in this paper. These problems are called bicriteria linear programming. The writer use simplex parametric algorithm to solving this problem then followed by the branch and cut method, if not obtained a solution that is not an integer.
DAFTAR ISI
2.1.2 Karakterisrik Program Linier 10
2.1.3 Asumsi dalam Program Linier 11
2.3 Metode Penyelesaian Masalah Program Bilangan Bulat 17
2.3.1 Metode Pendekatan Grafik 17
2.3.2 Metode Cutting Plane 18
dengan Menggunakan Metode Branch and Cut 40 3.4 Penyelesaian Contoh Kasus Program Bilangan Bulat
Dua Kriteria dengan Menggunakan Metode Branch and Cut 45
BAB 4 KESIMPULAN DAN SARAN 61
4.1 Kesimpulan 61
4.2 Saran 61
DAFTAR PUSTAKA 62
DAFTAR TABEL
Nomor Judul Halaman
Tabel
2.1 Bentuk Tabel Simpleks Program Linier 13
2.2 Solusi Optimum Masalah Program Linier 19
2.3 Penambahan Kendala Gomory 21
2.4 Solusi Optimum Contoh 2.2 22
2.5 Penambahan Kendala Gomory Pertama 23
2.6 Solusi Optimum dengan Penambahan Kendala Gomory
Pertama 23
2.7 Penambahan Kendala Gomory Kedua 24
2.8 Solusi Optimum dengan Penambahan Kendala Gomory
Kedua 24
3.1 Bentuk Tabel Simpleks Program Linier Dua Kriteria 38
3.2 Bahan Baku dan Jumlah Persediaan Bahan Baku 46
3.3 Bahan Baku Pembuatan Satu Bungkus dan Jumlah Persediaan
Bahan Baku Tipang 46
3.3 Waktu Proses Produksi Satu Jenis Tipang 47
3.3 Pendapatan Penjualan dan Biaya Produksi pada Pembuatan
DAFTAR GAMBAR
Nomor Judul Halaman
Gambar
2.1 Penyelesaian Program Bilangan Bulat dengan
Pendekatan Grafik 18
2.2 Diagram Prosedur Permasalahan dengan Metode
Branch and Bound 35
3.1 Diagram Penyelesaian Permasalahan Program Linier
Dua Kriteria dengan Metode Branch and Cut 45
3.2 Diagram Penyelesaian Contoh Kasus Permasalahan
Program Linier Dua Kriteria dengan
DAFTAR LAMPIRAN
Nomor Judul Halaman
Lamp
1 Pembahasan Masalah Program Linier Dua Kriteria
Menggunakan Parametric Simplex Algorithm 64
2 Pembahasan Masalah Program Linier Dua Kriteria
dengan Menerapkan Percabangan (Branch) 67
3 Pembahasan Masalah Program Linier Dua Kriteria
dengan Menerapkan Percabangan (Branch) 70
4 Pembahasan Masalah Program Linier Dua Kriteria
dengan Menerapkan Pemotongan (Cut) 73
5 Pembahasan Masalah Program Linier Dua Kriteria
dengan Menerapkan Pemotongan (Cut) 76
6 Pembahasan Contoh Kasus Program Linier Dua Kriteria
Menggunakan Parametric Simplex Algorithm 79
7 Pembahasan Contoh Kasus Program Linier Dua Kriteria
dengan Menerapkan Percabangan (Branch) 87
8 Pembahasan Contoh Kasus Program Linier Dua Kriteria
dengan Menerapkan Percabangan (Branch) 95
9 Pembahasan Contoh Kasus Program Linier Dua Kriteria
PENYELESAIAN PROGRAM BILANGAN BULAT CAMPURAN DUA KRITERIA DENGAN MENGGUNAKAN
METODE BRANCH AND CUT
ABSTRAK
Metode branch and cut merupakan suatu metode yang digunakan untuk menyelesaikan masalah linear programming yang menghasilkan berupa penyelesaian dalam bentuk bilangan bulat (integer), metode ini merupakan perpaduan metode branch and bound dengan metode cutting plane. Metode ini selalu digunakan dalam menyelesaikan permasalahan single objective linear
integer programming. Dalam tulisan ini akan ditunjukkan suatu permasalahan dua
kriteria (bicriteria) yang diselesaikan dengan metode branch and cut. Permasalahan tersebut disebut bicriteria linear programming. Dalam menyelesaikan permasalahan ini penulis menggunakan parametric simplex
algorithm kemudian diiringi dengan metode branch and cut apabila tidak
diperoleh suatu penyelesaian yang tidak berupa bilangan bulat (integer).
Kata Kunci: Branch and cut, branch and bound, cutting plane, bicriteria linear
programming, parametric simplex algorithm
SOLVING BICRITERIA MIXED INTEGER PROGRAMMING USING BRANCH AND CUT METHOD
ABSTRACT
Branch and cut method is a method that used to solve linear programming problems that deliver the solution in integer form, this method is a mix of branch and bound method with the cutting plane method. This method is always used in a single objective problem to solve integer linear programming. A bicriteria problems that solved by the branch and cut method will be shown in this paper. These problems are called bicriteria linear programming. The writer use simplex parametric algorithm to solving this problem then followed by the branch and cut method, if not obtained a solution that is not an integer.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Dalam kehidupan sehari-hari, ilmu mengenai operasi riset banyak digunakan dan
diterapkan oleh manusia, terutama diterapkan pada bidang ekonomi yaitu pada
dunia usaha. Setiap pelaku usaha atau pelaku ekonomi pasti melakukan apa yang
disebut dengan prinsip ekonomi, yaitu dengan usaha atau modal yang sedikit
mampu menghasilkan keuntungan yang banyak, sehingga muncullah masalah
optimisasi. Masalah optimisasi tersebut meliputi meminimumkan biaya atau
memaksimumkan keuntungan dengan kapasitas sumber daya yang ada agar
mampu mendapatkan hasil yang optimal.
Program linier klasik pertama kali diperkenalkan oleh George Dantzig
yang pada awalnya banyak dipakai pada bidang perencanaan militer, khususnya
dalam perang dunia II oleh angkatan bersenjata Amerika Serikat dan Inggris
metode pengerjaan program linier umumnya menggunakan metode grafik dan
metode simpleks. Program linier merupakan sebagai instrumen pengambilan
keputusan yang berkaitan dengan pengalokasian sumber daya dalam mencapai
tujuan tertentu. Sumber daya berupa uang, tenaga kerja, material, mesin, fasilitas,
ilmu pengetahuan, teknologi, keahlian, waktu dan ruang. Sumber daya ini sifatnya
terbatas. Dengan demikian, program linier berperan sebagai alat untuk membantu
dalam pengambilan keputusan manajemen dengan cara mengidentifikasi
kombinasi sumber daya yang tersedia sehingga tujuan yang diinginkan dapat
tercapai dengan optimal. Sejak diperkenalkan di akhir dasawarsa pada tahun 1940
program linier telah terbukti merupakan salah satu alat operasi riset yang efektif.
Keberhasilannya berakar dari keluasannya dalam menjabarkan berbagai situasi
Dalam pengambilan suatu keputusan, permasalahan dalam dunia nyata
memiliki lebih dari satu tujuan. Hal ini menandakan bahwa program linier standar
yang hanya mengoptimalkan satu tujuan atau satu kriteria (single-criteria) tidak
selalu efektif dalam pengambilan suatu keputusan.
Bicriteria Linear Programming (BLP) merupakan suatu kasus khusus dari
multi-objective linear programming di mana pada bicriteria linear programming
terdapat dua tujuan (biobjective), bicriteria disebut juga dengan biobjective.
Program bilangan bulat campuran dua kriteria (bicriteria mixed integer
programming) dapat dilihat sebagai bentuk pengembangan dari integer
programming yang dapat digunakan dalam pengambilan keputusan di dalam
kehidupan sehari-hari, misalnya perencanaan, logistik, alokasi barang,
penjadwalan, routing dan sebagainya. Program bilangan bulat campuran dua
kriteria (bicriteria mixed integer programming) memungkinkan si pembuat
keputusan untuk mempertimbangkan tidak hanya satu tujuan (single-objective)
melainkan dua tujuan (biobjective) secara bersamaan, seperti biaya pengeluaran,
keuntungan, kerusakan mesin, waktu kerja dan sebagainya.
Banyak metode yang bisa digunakan untuk menyelesaikan masalah
program bilangan bulat campuran dua kriteria (bicriteria mixed integer
programming) yang masing-masing mempunyai kelebihan dan kelemahan.
Memperhatikan hal ini maka penulis mencoba mempelajari metode branch and
cut dalam menyelesaikan masalah program bilangan bulat campuran dua kriteria
(bicriteria mixed integer programming).
1.2 Perumusan Masalah
Berdasarkan latar belakang di atas maka yang menjadi rumusan masalah yang
akan dibahas adalah bagaimana menyelesaikan persoalan program bilangan bulat
campuran dua kriteria (bicriteria mixed integer programming) dengan
1.3 Batasan Masalah
Dalam penulisan ini, penulis hanya membatasi pada persoalan program bilangan
bulat campuran dua kriteria (bicriteria mixed integer programming) dengan
menggunakan metode branch and cut.
1.4 Tinjauan Pustaka
Ernawati (2010) dalam makalahnya yang berjudul “Analisis Perubahan Koefisien
Fungsi Tujuan Secara Simpleks pada Masalah Program Linier Bilangan Bulat”
mengatakan bahwa program linier bilangan bulat merupakan suatu program linier
dengan variabel keputusannya merupakan bilangan bulat, sehingga pada bentuk
umum program linier terdapat tambahan syarat bahwa variabel keputusannya
harus bilangan bulat. Pada masalah program linier bilangan bulat untuk pola
memaksimumkan nilai tujuan dari program linier bilangan bulat tidak akan pernah
melebihi nilai tujuan dari program linier. Terdapat tiga macam permasalahan
dalam program linier bilangan bulat, yaitu sebagai berikut:
1. Program bilangan bulat murni (pure integer programming), yaitu program
linier bilangan bulat yang menghendaki semua variabel keputusan harus
merupakan bilangan bulat tidak negatif.
2. Program bilangan bulat campuran (mixed integer programming), yaitu program
linier bilangan bulat yang menghendaki beberapa variabel keputusan harus
merupakan bilangan bulat tidak negatif.
3. Program bilangan bulat biner (zero one integer programming), yaitu program
linier bilangan bulat yang menghendaki semua variabel keputusan harus
bernilai nol atau satu.
Genova dan Guliashki (2011) dalam jurnalnya yang berjudul “Linear
Integer Programming Methods and Approaches – A Survey” mengatakan bahwa
program linier bilangan bulat mengacu pada kelas permasalahan optimisasi
kombinatorial yang berkendala dengan memperoleh variabel keputusannya
kendalanya juga merupakan fungsi linier dengan tanda persamaan atau
pertidaksamaan. Program linier bilangan bulat pada permasalahan optimasi dapat
dinyatakan sebagai berikut:
Sari (2013) dalam tulisannya yang berjudul “Analisis Metode Branch and
Bound dalam Mengoptimalkan Jumlah Produksi Roti” menerangkan bahwa
metode branch and bound merupakan salah satu metode dari konsep integer
programming. Pada dasarnya adalah strategi “mencabangkan dan membatasi”.
Metode branch and bound adalah metode umum untuk mencari solusi optimal
dari berbagai permasalahan optimasi. Metode ini juga merupakan teknik solusi
yang tidak terbatas hanya untuk permasalahan integer programming saja. Tetapi
juga merupakan pendekatan solusi yang dapat diterapkan untuk berbagai macam
permasalahan yang berbeda. Prinsip yang mendasari metode branch and bound
yaitu total set solusi yang layak dapat dibagi menjadi subset solusi yang lebih
kecil. Subset ini selanjutnya dapat dievaluasi secara sistematis sampai solusi yang
terbaik ditemukan, penerapan metode branch and bound pada masalah integer
programming digunakan bersama-sama dengan metode simpleks.
Alannuariputri dan Sumarminingsih (2009) dalam jurnalnya yang berjudul
“Integer Programming dengan Pendekatan Metode Branch and Bound dan
Metode Cutting Plane untuk Optimasi Kombinasi Produk” menjelaskan bahwa
solusi optimal berupa bilangan bulat. Misalnya, tabel optimal terakhir untuk
program linier diperoleh, maka pilih sembarang baris tabel optimal simpleks yang
dalam kolom B (solusi) yang memuat pecahan. Misalkan baris ke-i adalah baris
yang terpilih, kemudian pisahkan dan menjadi bagian yang bulat dan bagian
pecah.
Sarkar (2010) dalam makalahnya yang berjudul ”Branch and Cut
Algorithms for Combinatorial Optimization Problems” mengatakan bahwa
metode branch and cut memodifikasi strategi dasar branch and bound dengan
mencoba menguatkan Linear Programming Relaxation (LPR) dari permasalahan
Integer Programming (IP) dengan pertidaksaman baru sebelum melakukan
mencabangan solusi bagian, branch and bound murni dapat dipercepat dengan
menggunakan cutting plane baik di awal diagram pohon branch and bound
maupun di tiap-tiap bagian percabangannya, karena cutting plane mampu
mengurangi banyak diagram pohon tersebut. Branch and cut dapat digunakan
dalam penyambungan dengan heuristic untuk memperoleh batas yang lebih
rendah pada nilai optimal dengan menggunakan metode branch and bound.
Albert (2011) dalam makalahnya yang berjudul “Solving Mixed Integer
Linear Programs Using Branch and Cut Method” menjelaskan bahwa metode
branch and cut menggabungkan keuntungan dari metode branch and bound murni
dan metode gomory cutting plane. Menyelesaikan masalah dengan metode branch
and cut akan lebih cepat dibandingkan dengan metode branch and bound saja.
Ralphs et al. (2005) dalam makalahnya yang berjudul “An Improved
Algorithm for Solving Biobjective Integer Programs” mengatakan bahwa bentuk
umum dari Bicriterion Integer Programming (BIP) dapat dituliskan sebagai
berikut:
min: % = &% , %' (
kendala: ≤, =, ≥
di mana: % = fungsi tujuan kriterianya () = 1, 2) = variabel keputusan
= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala
1.5 Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mendapatkan penyelesaian program
bilangan bulat campuran dua kriteria (bicriteria mixed integer programming)
dengan menggunakan metode branch and cut.
1.6 Manfaat Penelitian
Manfaat dari penelitian ini adalah sebagai berikut:
1. Bahan referensi dalam menambah wawasan penulis dan pembaca dalam
bidang operasi riset yang berhubungan dengan pembahasan program bilangan
bulat campuran dua kriteria (bicriteria mixed integer programming),
khususnya dalam metode branch and cut.
2. Informasi kepada pembaca bahwa permasalahan program bilangan bulat
campuran dua kriteria (bicriteria mixed integer programming) dapat
diselesaikan dengan menggunakan metode branch and cut.
3. Bahan pertimbangan bagi pembaca dalam menyelesaikan masalah program
bilangan bulat campuran dua kriteria (bicriteria mixed integer programming)
dengan menggunakan metode lainnya yang ada pada pembahasan program
1.7 Metodologi Penelitian
Penelitian ini adalah penelitian literatur yang disusun dengan langkah-langkah
sebagai berikut:
1. Mencari literatur dari beberapa buku, jurnal, situs dan karya tulis lainnya
yang berhubungan dengan metode branch and cut serta program bilangan
bulat campuran dua kriteria (bicriteria mixed integer programming).
2. Menjelaskan definisi linear programming dan klasifikasinya serta
memaparkan definisi integer programming, klasifikasinya dan metode yang
digunakan dalam menyelesaikannya.
3. Mejelaskan contoh penyelesaian single objective integer programming
dengan menggunakan metode grafik, metode cutting plane dan metode
branch and bound.
4. Menjelaskan definisi dari program linier dua kriteria (bicriteria linear
programming).
5. Memaparkan serta menjelaskan dalam penyelesaian program bilangan bulat
campuran dua kriteria (bicriteria mixed integer programming) menggunakan
parametric simplex algorithm diiringi dengan metode branch and cut.
6. Memberi contoh program bilangan bulat campuran dua kriteria (bicriteria
mixed integer programming) yang diambil dari buku, jurnal, situs ataupun
karya tulis lainnya untuk diselesaikan dengan metode branch and cut.
7. Menyimpulkan hasil dan informasi dari penyelesaian permasalahan yang
BAB 2
LANDASAN TEORI
2.1 Program Linier
Program linier adalah suatu cara untuk menyelesaikan persoalan pengalokasian
sumber-sumber yang terbatas di antara beberapa aktivitas yang bersaing, dengan
cara terbaik yang mungkin dilakukan. Pokok pikiran utama dalam menggunakan
program linier adalah merumuskan masalah dengan jelas dengan menggunakan
sejumlah informasi yang tersedia. Sesudah masalah terumuskan dengan baik,
maka langkah berikut ialah menerjemahkan masalah ke dalam bentuk model
matematika (Siagian, 2006).
Program linier berkaitan dengan maksimalisasi atau minimalisasi dari
fungsi tujuan linier dengan beberapa variabel yang memiliki kesamaan dan
ketaksamaan fungsi kendala. Program linier menggunakan model matematis untuk
menjelaskan persoalan yang dihadapinya. Sifat “linier” memberi arti bahwa
seluruh fungsi matematis dalam model merupakan fungsi yang linier, demikian
kata “program” merupakan sinonim untuk perencanaan. Dengan demikian
program linier adalah perencanaan aktivitas-aktivitas untuk memperoleh suatu
hasil yang optimum, yaitu suatu hasil yang mencapai tujuan terbaik di antara
alternatif yang fisibel (Dantzig & Thapa, 1997).
Formulasi model matematis dari persoalan pengalokasian sumber-sumber
pada permasalahan program linier adalah sebagai berikut (Sitorus, 1997):
maks/min: Z =
kendala: ≤, =, ≥
di mana: $ = fungsi tujuan
= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan
= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala
Dalam kehidupan sehari-hari, program linier merupakan bagian yang
sangat penting dalam area matematika yang disebut teknik optimasi. Program
linier umumnya diaplikasikan dalam permasalahan yang dapat dimodelkan ke
dalam suatu model matematika, misalnya dalam mencari keuntungan suatu usaha,
pengoptimalan persediaan, juga dalam beberapa masalah industri maupun
ekonomi. Adakalanya dalam situasi tertentu solusi yang diinginkan haruslah
dalam bilangan bulat, misalnya pada perusahaan manufaktur, perusahaan tidak
bisa memproduksi barang setengah, sepertiga, ataupun seperempat dan
sebagainya, jadi masalah ini disebut dengan integer linear programming
(Syahputra, 2012).
2.1.1 Syarat Utama Program Linier
Agar dapat menyusun dan merumuskan suatu persoalan atau permasalahan yang
dihadapi ke dalam model program linier, maka ada lima syarat yang harus
dipenuhi (Sitorus, 1997):
1. Tujuan
Apa yang menjadi tujuan permasalahan yang dihadapi yang ingin dipecahkan
dan dicari jalan keluarnya. Tujuan ini harus jelas dan tegas yang disebut
fungsi tujuan.
2. Alternatif Perbandingan
Harus ada sesuatu atau berbagai alternatif yang ingin diperbandingkan,
misalnya antara kombinasi waktu tercepat dan biaya tertinggi dengan waktu
terlambat dan biaya terendah.
Sumber daya yang dianalisis harus berada dalam keadaan yang terbatas.
4. Perumusan Kuantitatif
Fungsi tujuan dan kendala harus dapat dirumuskan secara kuantitatif sesuai
dengan yang disebut dalam model matematika.
5. Keterkaitan Peubah
Peubah-peubah yang membentuk fungsi tujuan dan kendala tersebut harus
memiliki hubungan fungsional atau hubungan keterkaitan.
2.1.2 Karakteristik Program Linier
Karakteristik-karakteristik dalam program linier yang biasa digunakan untuk
memodelkan suatu masalah dan memformulasikannya secara matematik, yaitu
(Siswanto, 2006):
1. Variabel Keputusan
Variabel keputusan adalah variabel yang secara lengkap menguraikan
keputusan-keputusan yang akan dibuat.
2. Fungsi Tujuan
Fungsi tujuan merupakan suatu hubungan linier dari variabel keputusan yang
berupa fungsi maksimum atau minimum.
3. Fungsi Kendala
Fungsi kendala merupakan batasan-batasan dalam penyelesaian program
linier yang harus diperhatikan. Kendala diekspresikan dalam persamaan dan
pertidaksamaan yang juga merupakan hubungan linier dari variabel keputusan
2.1.3 Asumsi dalam Program Linier
Dalam membangun model dari formulasi suatu persoalan akan digunakan
karakteristik-karakteristik yang biasa digunakan dalam persoalan program linier,
yaitu (Syahputra, 2012):
1. Linieritas (Linearity)
Fungsi tujuan (objective function) dan kendala – kendalanya (constraints ) dibuat
dalam fungsi linier. Sifat linearitas suatu kasus dapat ditentukan dengan
menggunakan beberapa cara, misalnya dengan menggunakan grafik.
2. Kesetaraan (Propotionality)
a. Kontribusi setiap variabel keputusan terhadap fungsi tujuan adalah
sebanding dengan nilai variabel keputusan.
b. Kontribusi suatu variabel keputusan terhadap ruas kiri dari setiap pembatas
juga sebanding dengan nilai variabel keputusan itu.
3. Penambahan (Addivity)
Sifat penambahan mengasumsikan bahwa tidak terdapat bentuk perkalian
silang pada model, baik bagi fungsi tujuan maupun kendala.
4. Pembagian (Divisibility)
Solusi dapat berupa bilangan bulat (integer) atau bilangan pecahan.
5. Ketidaknegatifan (Nonnegativity)
Nilai variabel keputusan harus lebih besar atau sama dengan nol.
6. Kepastian (Certainty)
Koefisien pada fungsi tujuan ataupun fungsi kendala merupakan suatu nilai
pasti, bukan merupakan suatu nilai dengan peluang tertentu.
Asumsi-asumsi di atas harus dipenuhi apabila ingin menyelesaikan
masalah model program linier. Jika asumsi-asumsi tersebut tidak dapat terpenuhi,
persoalan dapat diselesaikan dengan program matematika lain seperti integer
programming, nonlinear programming, goal programming dan dynamic
2.1.4 Metode Simpleks
Cara yang paling sederhana untuk menyelesaikan permasalahan program linier
adalah dengan pendekatan grafik. Namun cara tersebut hanya bisa diterapkan
untuk program linier dengan dua variabel keputusan. Pada kenyataannya sebagian
besar permasalahan program linier mempunyai lebih dari dua variabel keputusan.
Hal ini tentu sulit untuk menerapkan pendekatan grafik untuk memperoleh
penyelesaian dari permasalahan tersebut.
Oleh karen itu, pada tahun 1947 George Dantzig mengajukan suatu
metode yang tepat untuk menyelesaiakn permasalahan program linier yang
disebut metode simpleks. Metode simpleks merupakan prosedur aljabar yang
bersifat iteratif yang bergerak selangkah demi selangkah, dimulai dari titik ekstrim
pada daerah feasible menuju titik ekstrim optimum (Siagian, 2006).
Berikut langkah-langkah dalam menyelesaikan permasalahan program
linier dengan metode simpleks:
1. Konversikan formulasi persoalan ke dalam bentuk standar.
Agar persamaan garis batasan memenuhi persyaratan penyelesaian daerah
kelayakan (feasible) maka semua pertidaksamaan diubah menjadi persamaan
dengan cara menambahkan slack variable, surplus variable dan variabel
buatan (artifisial variabel) pada tiap batasan (constraint) serta memberi harga
nol pada setiap koefisien tujuannya. Batasan dapat dimodifikasi sebagai
berikut:
a. Untuk batasan bernotasi ≤ diubah ke dalam bentuk persamaan dengan menambahkan variabel slack.
b. Untuk batsan bernotasi ≥ atau = deselesaikan dengan menambahkan variabel surplus dan variabel buatan. Dengan penambahan variabel buatan
ini akan merusak sistem batasan, hal ini dapat diatasi dengan membuat
suatu bilangan penalty M (M bilangan positif yang sangat besar) sebagai
harga dari variabel buatan tersebut dalam fungsi tujuan. Untuk kasus
kasus minimasi dibuat +M sebagai harga dari variabel buatan. Cara
pendekatan ini dikenal dengan metode M besar (Big M method).
2. Susun persamaan-persamaan ke dalam tabel simpleks
Tabel 2.1 Bentuk Tabel Simpleks Program Linier positif untuk kasus maksimasi atau yang memiliki nilai 1$ − 0 2 yang paling negatif untuk kasus minimasi.
4. Pilih baris kunci yang memiliki nilai indeks terkecil. Nilai indeks adalah
perbandingan nilai kanan dengan kolom kunci,
5. Tentukan nilai elemen cell, yaitu nilai perpotongan antara kolom kunci dan
baris kunci.
6. Lakukan iterasi dengan menentukan baris kunci baru, baris Z baru dan baris
variabel-variabel slack baru.
a. Baris kunci baru ditentukan dengan membagi baris kunci lama dengan
elemen cell.
b. Baris Z baru dan baris-baris lainnya ditentukan dengan cara:
Baris lama – (nilai kolom kunci baris yang sesuai × baris kunci baru)
c. Letakkan nilai-nilai baris yang baru diperoleh ke dalam tabel.
ada lagi yang bernilai negatif (untuk kasus minimasi) berarti sudah optiamal.
Jika kriteria belum terpenuhi, diulangi dari langkah 3.
2.2 Program Bilangan Bulat
Program bilangan bulat (integer programming) merupakan bentuk perluasan dari
program linier. Persoalan program bilangan bulat menginginkan solusi yang
didapat berupa bilangan bulat, bukan berupa bilangan pecahan. Contoh persoalan
yang sering ditemui misalnya menentukan banyaknya mobil yang harus
diproduksi, banyaknya unit rumah yang akan dibangun pada suatu proyek
perumahan, banyaknya orang yang diperlukan untuk mengerjakan suatu proyek,
dan sebagainya. Program bilangan bulat memiliki model matematis yang sama
dengan model program linier pada umumnya, tetapi ditambah batasan bahwa
variabelnya harus bilangan bulat sebagai berikut (Syahputra, 2012):
maks/min: Z =
kendala: ≤, =, ≥
≥ 0, semua bilangan bulat di mana: $ = fungsi tujuan
= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan
= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala
Berdasarkan jenis keputusan yang akan diperoleh, persoalan integer
programming dapat dibedakan atas tiga jenis, yaitu:
1. Pemrograman Bilangan Bulat Murni (Pure Integer Programming)
2. Pemrograman Bilangan Bulat Campuran (Mixed Integer Programming)
2.2.1 Program Bilangan Bulat Murni (Pure Integer Programming)
Pure Integer Programming (PIP) merupakan pemrograman bilangan bulat di
mana semua nilai variabel keputusan haruslah bilangan bulat. Bentuk umum pure
integer programming yaitu (Syahputra, 2012):
2.2.2 Program Bilangan Bulat Campuran (Mixed Integer Programming)
Mixed Integer Programming (MIP) merupakan pemrograman bilangan bulat di
mana nilai variabel keputusannya berupa campuran antara bilangan bulat dan
bilangan desimal atau pecahan. Bentuk umum mixed nteger programming yaitu
di mana: $ = fungsi tujuan
= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan
= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala 45 = nilai kontribusi dari variabel keputusan 65
65 = variabel keputusan tidak harus berupa bilangan bulat
85 = koefisien dari variabel keputusan 69 dalam fungsi kendala
2.2.3 Program Bilangan Bulat Biner (Binary Integer Programming)
Bentuk lain dari masalah program bilangan bulat adalah binary integer
programming (BIP). Dalam persoalan binary integer programming nilai variabel
keputusannya berupa bilangan biner (0 atau 1). Dalam aplikasi sehari-hari,
masalah binary integer programming menyangkut masalah pengambilan
keputusan, di mana jika solusi yang didapat berupa angka 1 berarti menyatakan
“ya” atau angka 0 berarti menyatakan “tidak”. Bentuk umum dari binary integer
programming, yaitu (Syahputra, 2012):
maks/min: Z =
kendala: ≤, =, ≥
= 0 : ; 1 di mana: $ = fungsi tujuan
= koefisien dari variabel keputusan dalam fungsi tujuan = variabel keputusan
2.3 Metode Penyelesaian Masalah Program Bilangan Bulat
Dapat kita lihat bahwasanya cukup untuk mendapatkan solusi bulat dari masalah
program linier dengan menggunakan metode simpleks biasa dan kemudian
membulatkan nilai pecahan pada solusi optimum. Akan tetapi bukan tugas mudah
untuk membulatkan nilai pecahan dalam variabel basis yang menjamin tetap
memenuhi semua kendala dan tidak menyimpang cukup jauh dari solusi bulat
yang tepat. Akibatnya diperlukan prosedur yang sistematis untuk mendapatkan
solusi optimum yang berupa bilangan bulat terhadap suatu masalah. Beberapa
metode yang dapat digunakan untuk menyelesaikan masalah program bilangan
bulat antara lain (Syahputra, 2012):
1. Metode Pendekatan Grafik
2. Metode Cutting Plane
3. Metode Branch and Bound
2.3.1 Metode Pendekatan Grafik
Masalah program bilangan bulat yang melibatkan dua variabel dapat diselesaikan
dengan metode pendekatan grafik. Metode ini sama dengan metode grafik yang
biasa digunakan dalam program linier. Metode grafik relatif lebih mudah untuk
menyelesaikan masalah program bilangan bulat dengan dua variabel yaitu dengan
menggambar grafik di atas kertas grafik kemudian menggambarkan sekumpulan
titik-titik bilangan bulat dalam ruang solusi layak (Syahputra, 2012).
Dalam hal ini ada masalah berikut yang akan diselesaikan dengan
pendekatan grafik sebagai berikut:
contoh 2.1:
carilah nilai bilangan bulat dan ' dari ketentuan berikut (Wolff, 1985): maks: $ = 3 + 20 '
kendala: + 8 ' ≤ 32
2 + ' ≤ 14
Model ini serupa dengan model program linier biasa. Perbedaannya
terletak pada kendala terakhir yang menginginkan solusi bernilai bilangan bulat
positif, solusi grafik untuk masalah ini ditunjukkan pada gambar di bawah:
Gambar 2.1 Penyelesaian dengan Pendekatan Grafik
Solusi optimum masalah program linier di atas adalah = 5,3333,
' = 3,3333 dan $ = 82,6666. Untuk mencari solusi optimum yang bernilai
bilangan bulat pada masalah ini, garis Z digeser secara sejajar dari titik yang
menunjukkan solusi optimum menuju titik asal. Solusi optimum berupa bilangan
bulat adalah titik bilangan bulat pertama yang bersinggungan dengan garis Z yaitu
= 0, ' = 4 dan $ = 80.
2.3.2 Metode Cutting Plane
Metode cutting plane merupakan metode yang digunakan untuk menyelesaikan
program linier bilangan bulat, baik bilangan bulat murni maupun campuran
dengan penambahan batasan baru yang disebut gomory. Batasan gomory
diberikan jika nilai dari variabel keputusan belum bulat (bernilai pecahan).
Batasan-batasan tersebut secara efektif akan menyingkirkan beberapa ruang
penyelesaian yang tidak berisi titik bilangan bulat yang layak, tetapi tidak pernah
Metode cutting plane dikembangkan untuk menemukan solusi optimum
bagi program bilangan bulat. Metode ini dilakukan dengan menambahkan suatu
kendala yang dinamakan kendala gomory. Penambahan kendala gomory dilakukan
pada tabel optimal sehingga dapat mempersingkat perhitungan (Siagian, 2006).
Metode cutting plane digunakan untuk permasalahan yang variabel
keputusannya harus bulat. Program linier tidak efektif untuk menyelesaikan
permasalahan tersebut sehingga dikembangkan metode cutting plane yang lebih
efektif dan memberikan hasil yang lebih baik. Langkah-langkah prosedur gomory
diringkas seperti berikut:
1. Selesaikan masalah program bilangan bulat dengan menggunakan metode
simpleks. Jika masalah sederhana, gomory dapat diselesaikan dengan
pendekatan grafik, sehingga pendekatan gomory kurang efisien.
2. Periksa solusi optimum. Jika semua variabel basis memiliki nilai bilangan
bulat, solusi optimum yang berupa bilangan bulat telah diperoleh dan proses
solusi telah berakhir. Jika satu atau lebih variabel basis masih memiliki nilai
pecah, teruskan ke tahap 3.
3. Buatlah suatu batasan gomory dan cari solusi optimum melalui prosedur dual
Perhatikan persamaan ke A di mana variabel diasumsikan bernilai tidak
sehingga adapun kendala gomory yang diinginkan sebagai berikut:
,G − % , = −%
di mana: ,G = slack gomory variable
Pada umumnya, persamaan kendala yang berhubungan dengan solusi
pecah dipilih untuk menghasilkan suatu kendala gomory. Namun, sebagai aturan
main biasanya dipilih persamaan yang memiliki % maksimum. Adapun tabel baru setelah penambahan kendala gomory disajikan pada tabel berikut:
Tabel 2.3 Penambahan Kendala Gomory
Karena diperoleh solusi primal optimum tetapi tidak layak maka
digunakan metode dual simpleks. Proses pembentukan kendala gomory berakhir
jika solusi baru semua berupa bilangan bulat. Jika tidak, suatu kendala gomory
baru dibuat lagi dari tabel yang dihasilkan dan metode dual simpleks digunakan
lagi untuk mengatasi ketidaklayakan. Jika pada setiap iterasi metode dual
simpleks menunjukkan bahwa tidak ada solusi layak, berarti masalah itu tidak
memiliki solusi integer yang layak. Metode cutting plane ini mempunyai dua
kelemahan sebagai berikut:
1. Kesalahan pembulatan yang muncul dalam perhitungan otomatis akan
mendistorsi data semula terutama dengan bertambahnya ukuran masalah.
2. Solusi masalah tetap tidak layak, artinya tidak ada solusi integer yang dapat
diperoleh sampai solusi integer optimal dicapai. Ini berarti bahwa tidak ada
solusi integer yang baik jika perhitungan dihentikan sebelum mencapai solusi
integer yang optimal (Taha, 1996).
Kelemahan pertama dapat diatasi dengan penggunaan integer murni.
sesuai dengan metode dual simpleks. Kemudian dilakukan penambahan gomory
sehingga penambahannya ke tabel akan mempertahankan sifat integer dari semua
koefisien. Dan kelemahan kedua dapat menggunakan metode cutting plane yang
dimulai dengan integer dan layak, tetapi tidak optimal. Iterasi yang berlanjut tetap
layak dan integer sampai solusi optimum dicapai (Taha, 1996).
Dalam hal ini ada masalah diselesaikan dengan metode cutting plane
sebagai berikut:
contoh 2.2:
carilah nilai bilangan bulat dan ' dari ketentuan berikut (Syahputra,2012): maks: $ = 7 + 9 '
kendala: − + 3 ' ≤ 6
7 + ' ≤ 35
, ' ≥ 0 adalah bilangan bulat
dari permasalahan di atas maka diperoleh solusi optimumnya sebagai berikut
berikut:
karena solusi tidak diperoleh bilangan bulat, suatu kendala gomory ditambahkan
pada tabel tersebut. Kedua persamaan ( dan ') pada masalah ini memiliki nilai
% yang sama yaitu % = %' = 0,5000, sehingga salah satu dapat digunakan, misalkan yang digunakan persamaan ', maka dapat diperoleh sebagai berikut:
' + 0,3282, + 0,0455,' = 3,5000
kemudian kita pisahkan koefisien yang bernilai pecahan menjadi 2 bagian yaitu
yang bernilai bilangan bulat dan bilangan pecahan
sehingga kendala gomory menjadi
,81− 0,3282, − 0,0455,' = −0,5000
sehingga dapat dibentuk tabel baru setelah penambahan kendala gomory sebagai
berikut:
kemudian permasalahan di atas setelah penambahan kendala gomory diselesaikan
dengan memakai metode dual simpleks, maka diperoleh hasilnya sebagai berikut:
Tabel 2.6 Solusi Optimum dengan Penambahan Kendala Gomory Pertama
7 9 0 0 0
karena solusi tidak diperoleh bilangan bulat, suatu kendala gomory ditambahkan
kembali pada tabel tersebut. Dapat dilihat bahwa persamaan memiliki % =
0,5714, sehingga persamaan dapat diperoleh sebagai berikut:
+ 0,1428,'− 0,1428,G = 4,5714
kemudian kita pisahkan koefisien yang bernilai pecahan menjadi 2 bagian yaitu
+ 0 + 0,1428 ,' − 0 + 0,1428 ,G = 4 + 0,5714
sehingga kendala gomory menjadi
,82− 0,1428,'− 0,1428,81= −0,5714
sehingga dapat dibentuk tabel baru setelah penambahan kendala gomory yang
baru sebagai berikut:
kemudian permasalahan di atas setelah penambahan kendala gomory yang baru diselesaikan dengan memakai metode dual simpleks, maka diperoleh hasilnya sebagai berikut:
Tabel 2.8 Solusi Optimum dengan Penambahan Kendala Gomory Kedua
7 9 0 0 0 0
sehingga dapat diperoleh solusi optimum dengan bilangan bulat sebagai berikut:
2.3.3 Metode Branch and Bound
Metode branch and bound adalah salah satu metode untuk mendapatkan
penyelesaian optimal pada program linier yang menghasilkan variable-variabel
keputusan bilangan bulat. Metode ini membatasi penyelesaian optimum yang akan
menghasilkan bilangan pecahan dengan cara membuat cabang atas dan bawah
bagi masing-masing variabel keputusan yang bernilai pecahan agar bernilai bulat
sehingga setiap pembatasan akan menghasilkan cabang baru.
Metode branch and bound telah menjadi kode komputer standar untuk
program bilangan bulat dan penerapan-penerapan dalam praktek tampaknya
menyarankan bahwa metode ini lebih efisien dibanding dengan metode cutting
plane. Metode branch and bound dapat digunakan untuk menyelesaikan masalah
pure maupun mixed integer programming (Syahputra, 2012).
Adapun langkah-langkah penyelesaian masalah maksimasi dengan metode
branch and bound sebagai berikut (Syahputra, 2012):
1. Selesaikan masalah program linier biasa tanpa pembatasan bilangan bulat
dengan metode simpleks biasa.
2. Teliti solusi optimumnya. Jika semua variabel basis telah bernilai bulat, maka
solusi optimum telah tercapai dan proses berakhir. Jika satu atau lebih
variabel basis belum bernilai bulat, lanjut ke tahap 3.
3. Jadikan solusi pada penyelesaian tahap 1 (relaxed solution) menjadi batas
atas dan sebagai batas bawahnya digunakan solusi yang variabel basisnya
telah dibulatkan ke bawah (rounded down).
4. Pilih variabel yang mempunyai nilai pecahan yang terbesar untuk dijadikan
pencabangan ke dalam sub-sub masalah. Tujuannya adalah untuk
menghilangkan solusi kontinu yang tidak memenuhi persyaratan bulat dalam
masalah itu. Pencabangan dilakukan secara mutually exclusive untuk
memenuhi persyaratan bulat dengan jaminan tidak ada solusi bulat layak yang
tidak diikut sertakan.
5. Untuk setiap sub masalah, nilai solusi optimum kontinu fungsi tujuan
awalnya, ini adalah solusi kontinu yang dibulatkan ke bawah). Sub-sub
masalah yang memiliki batas atas kurang dari batas bawah yang ada, tidak
diikut sertakan pada analisa selanjutnya. Suatu solusi bulat layak adalah sama
baik atau lebih baik dari batas atas untuk setiap sub masalah yang dicari. Jika
solusi yang demikian terjadi, suatu sub masalah dengan batas atas terbaik
dipilih untuk dicabangkan. Kembali ke langkah 4.
Untuk masalah minimasi, solusi yang menjadi batas atas dibulatkan
keatas, atau dengan kata lain batas atas dan bawah pada kasus minimasi
berlawanan pada kasus maksimasi (Syahputa, 2012).
Dalam hal ini ada masalah berikut yang akan diselesaikan dengan metode
branch and bound sebagai berikut:
contoh 2.3:
carilah nilai bilangan bulat dan ' dari ketentuan berikut (Wolfe,1985): maks: $ = 5 + 2 '
kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24
, ' ≥ 0 adalah bilangan bulat
dari permasalahan tersebut maka diperoleh solusi optimumnya sebagai berikut
dan solusi tersebut belum diperoleh bilangan bulat maka diterapkan metode
branch and bound, kita ketahui bahwa dan ' belum berupa bilangan bulat, maka kita pilih variabel yang solusinya bernilai pecahan terbesar untuk
dicabangkan, yang dalam hal ini merupakan nilai pecahan terbesar, jadi
yang dicabangkan. Untuk menghilangkan bagian pecahan pada , dua kendala
baru dibuat. Nilai bulat terdekat terhadap 8,5000 yaitu 8 dan 9. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ≤ 8 dan
≥ 9, kendala-kendala baru tersebut secara efektif akan menghilangkan semua nilai pecah yang mungkin ada pada . Kemudian akan diuraikan permasalahan
tersebut kedalam bagian A dan bagian B sebagai berikut:
Bagian A:
maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8
, ' ≥ 0 Bagian B:
maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≥ 9
, ' ≥ 0
kemudian bagian A dan bagian B diselesaikan dengan metode simpleks tanpa
Tabel 2.10 Solusi Optimum pada Bagian A
belum diperoleh bilangan bulat maka diterapkan metode branch and bound, kita
ketahui bahwa ' belum berupa bilangan bulat maka 'yang dicabangkan. Untuk
menghilangkan bagian pecahan pada ', dua kendala baru dibuat. Nilai bulat
terdekat terhadap 2,1000 yaitu 2 dan 3. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ' ≤ 2 dan ' ≥ 3, kendala-kendala baru tersebut secara efektif akan menghilangkan semua nilai pecah yang mungkin ada
pada '. Kemudian akan diuraikan permasalahan bagian A kedalam bagian C dan
Bagian D:
pembatasan bilangan bulat, adapun solusi optimumnya sebagai berikut:
Tabel 2.12 Solusi Optimum pada Bagian D
bilangan bulat maka yang dicabangkan. Untuk menghilangkan bagian pecahan
pada , dua kendala baru dibuat. Nilai bulat terdekat terhadap 6,5000 yaitu 6 dan 7. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu
' ≤ 6 dan ' ≥ 7, kendala-kendala baru tersebut secara efektif akan menghilangkan semua nilai pecah yang mungkin ada pada . Kemudian akan
diuraikan permasalahan bagian D kedalam bagian E dan bagian F sebagai berikut:
Bagian F:
pembatasan bilangan bulat, adapun solusi optimumnya sebagai berikut:
Tabel 2.13 Solusi Optimum pada Bagian E
dari solusi pada bagian E belum diperoleh bilangan bulat maka diterapkan metode
branch and bound, kita ketahui bahwa ' belum berupa bilangan bulat maka
baru dibuat. Nilai bulat terdekat terhadap 3,3000 yaitu 3 dan 4. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ' ≤ 3 dan
' ≥ 4, kendala-kendala baru tersebut secara efektif akan menghilangkan semua
nilai pecah yang mungkin ada pada '. Kemudian akan diuraikan permasalahan
bagian E kedalam bagian G dan bagian H sebagai berikut:
Bagian G:
maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≤ 2 1 + 0 ' ≤ 6 0 + 1 ' ≤ 3
, ' ≥ 0 Bagian H:
Maks: $ = 5 + 2 ' kendala: 6 + 10 ' ≤ 69 3 + 10 ' ≤ 60 6 − 15 ' ≤ 24 1 + 0 ' ≤ 8 0 + 1 ' ≤ 2 1 + 0 ' ≤ 6 0 + 1 ' ≥ 4
bagian G dan bagian H diselesaikan dengan metode simpleks tanpa pembatasan
bilangan bulat, adapun solusi optimumnya sebagai berikut:
Tabel 2.14 Solusi Optimum pada Bagian G
5 2 0 0 0 0 0 0 0 0
Solusi Variabel
Basis
Harga
Basis ' , ,' ,J ,K ,L ,M ,N ,O
, 0 0 0 1 0 0 0 0 0 -6 -10 3
,' 0 0 0 0 1 0 0 0 0 -3 -10 12
,J 0 0 0 0 0 1 0 0 0 -6 15 33
,K 0 0 0 0 0 0 1 0 0 -1 0 2
' 5 0 1 0 0 0 0 0 0 0 1 3
2 1 0 0 0 0 0 0 0 1 0 6
,M 0 0 0 0 0 0 -1 1 0 1 0
$ − 0 0 0 0 0 0 0 0 0 5 2 36
sehingga dapat diperoleh solusi optimum sebagai berikut:
Tabel 2.15 Solusi Optimum pada Bagian H
5 2 0 0 0 0 0 0 0 0 0
Solusi Variabel Basis Harga
Basis ' , ,' ,J ,K ,L ,M ,N ,O ,P
5 1 0 0,1667 0 0 0 0 0 0 -1,6667 1,6667 4,8333
,' 0 0 0 -0,5000 1 0 0 0 0 0 -5 5 5,5000
,J 0 0 0 -1 0 1 0 0 0 0 25 -25 55
,K 0 0 0 -0,1667 0 0 1 0 0 0 1,6667 -1,6667 3,1667
' 2 0 1 0 0 0 0 0 0 0 1 -1 4
,M 0 0 0 -0,1667 0 0 0 0 0 1 1,6667 -1,6667 1,1667
,L 0 0 0 0 0 0 -1 1 0 1 -1 1
$ − 0 0 0 0,8333 0 0 0 0 0 0 -6,3333 6,3333 36,1670
sehingga dapat diperoleh solusi optimum sebagai berikut:
= 4,8333, ' = 4 dan $ = 32,1670 terlihat bahwa solusi optimum pada bagian H belum semua merupakan bilanagan bulat, kita
ketahui bahwa solusi optimum pada bagian G dan bagian H memiliki nilai fungsi tujuan yang lebih rendah (buruk) dibandingkan solusi
yang dihasilkan pada bagian E, maka proses pencabangan dihentikan. Sehingga solusi optimum yang menghasilkan berupa bilangan bulat
36
BAB 3
HASIL DAN PEMBAHASAN
3.1 Program Linier Dua Kriteria
Masalah pengoptimalan dengan banyak fungsi tujuan memperhitungkan beberapa
tujuan yang konflik secara simultan, secara umum multi-objective programming
(MOP) memiliki bentuk umum sebagai berikut:
maks/min: % = Q% , %' , … , %7 S
kendala: T
≤, =, ≥
≥ 0
di mana: % = fungsi tujuan yang disebut multi-objective linear programming = variabel keputusan
= koefisien dari variabel keputusan dalam fungsi kendala = sumber daya yang tersedia dalam fungsi kendala
Program linier dua kriteria (bicreteria linear programming) merupakan
kasus khusus dari bentuk umum diatas dengan U = 2, adapun bentuk umum program linier dua kriteria dapat ditulis sebagai berikut (Ehrgott, 2005):
min: %7 = &% , %' (
kendala: ≤, =, ≥
≥ 0
di mana: %7 = fungsi tujuan kriteria (U = 1, 2) = variabel keputusan
Kemudian bentuk umum dari program linier dua kriteria dimodelkan ke
dalam bentuk linear programming parametric yang memiliki bentuk umum
sebagai berikut (Ehrgott, 2005):
penyelesaian efisien dari program linier dua kriteria akan sama dengan
penyelesaian linear programming parametric (Ehrgott, 2005).
Definisi 3.1 Andaikan Y ∈ [ adalah solusi layak dari permasalahan program linier dua kriteria dan 6Y = 0 Y.
1. Solusi layak dari Y ∈ [ dikatakan efisien jika dan hanya jika tidak terdapat titik lain ∈ [ sehingga % ≤ % Y , jika Y adalah solusi efisien maka % Y dikatakan titik yang tidak terdominasi.
2. Solusi layak dari Y ∈ [ dikatakan efisien lemah atau jika dan hanya jika tidak terdapat titik lain ∈ [ sehingga % < % Y .
Langkah-langkah parametric simplex algorithm pada program linier dua
kriteria sebagai berikut (Ehrgott, 2005):
1. Memodelkan data permasalahan ke dalam bentuk program linier dua kriteria.
2. Menambah variable slack pada fungsi kendala dalam permasalahan program
linier dua kriteria.
Tabel 3.1 Bentuk Tabel Simpleks Program Linier Dua Kriteria
cE cE cE cE' ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
cE' cE' cE
'' ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Variabel Basis ' ⋯ , ,' ⋯ , Solusi
, ' ⋯ ⋯ ⋯ ⋯ ⋯
,' ' '' ⋯ ⋯ ⋯ ⋯ ⋯ ' '
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮
, ' ⋯ ⋯ ⋯ ⋯ ⋯
4. Menentukan nilai V dengan ketentuan dibawah:
V = ^ _A ∈ ` ∶ cE − cE−cE''b
5. Mendefinisikan variable nonbasis yang akan masuk (I) dengan ketentuan
dibawah:
, = ^ _A ∈ ` ∶ cE − cE−cE''b
di mana ` ≠ ∅ dan jika ` = ∅ maka berhenti.
6. Mendefinisikan variabel basis yang akan keuar (B) dengan ketentuan dibawah:
e = ^)f _), A ∈ g ∶ , > 0b
7. Kembali ke tahap 4 jika hasil belum merupakan solusi yang optimum.
3.2 Metode Branch and Cut
Metode branch and cut merupakan kombinasi metode cutting plane dengan
metode branch and bound. Prosedur metode branch and cut adalah
menyelesaikan rangkaian relaksasi program linier dari masalah bicriteria mixed
integer programming. Berikut langkah-langkah dalam menyelesaikan
permasalahan program linier bilangan bulat campuran (bicriteria mixed integler
1. Memodelkan permasalahan ke dalam bentuk BMIP dan misalkan titik-titik
aktif sebagai i = &gj`kl(.
2. Menyelesaikan LP relaksasi dari permasalahan BMIP. Jika i = ∅ maka nilai yang menghasilkan nilai m terbaik merupkan solusi optimum. Jika tidak diperoleh nilai maka BMIP tidak layak.
3. Jika nilai yang diperoleh tidak bernilai bilangan bulat lanjutkan ke langkah
4. Jika nilai yang diperoleh bernilai bilangan bulat maka solusi optimum
diperoleh.
4. Branching: Andaikan bahwa merupakan variabel yang disyaratkan bernilai
integer dan misalkan diperoleh nilai variabel pada solusi optimum yang
bernilai pecahan adalah ∗ maka ditambahkan kendala ≤ o ∗p atau
≥ o ∗p + 1 ke dalam permasalahan LP relaksasai dan kemudian
diselesaikan. Jika terdapat lebih dari satu variabel yang bernilai pecahan maka
dipilih variabel dengan nilai pecahan terbesar.
5. Jika nilai yang diperoleh belum bernilai bilangan bulat lanjutkan ke
langkah 6. Jika nilai yang diperoleh bernilai bilangan bulat maka solusi
optimum diperoleh.
6. Cutting: Andaikan bahwa merupakan variabel yang disyaratkan bernilai
integer dan misalkan diperoleh nilai variabel pada solusi optimum yang
bernilai pecahan adalah ∗ maka ditambahkan kendala gomory berdasarkan
tabel solusi optimum dengan ketentuan sebagai berikut:
IGq− % I = −%
3.3 Penyelesaian Masalah Program Bilangan Bulat Dua Kriteria dengan
Menggunakan Metode Branch and Cut
Pada contoh berikut akan diberikan permasalahan program bilangan bulat dua
kriteria (bicriteria linear programming) yang membutuhkan penyelesaian dalam
bilangan bulat. Penyelesaian akan dilakukan dengan metode branch and cut
sebagai berikut (Liu et al. 2011): kemudian permasalahan di atas kita buat ke dalam bentuk tabel simpleks program
linier dua kriteria (bicriteria linear programming) dan diselesaikan dengan
parametric simplex algorithm tanpa pembatasan bilangan bulat, Sehingga dapat
diperoleh solusi optimum sebagai berikut:
= 1,2000, ' = 1,3334, $ = 3,3334 dan $' = 4,1334.
Solusi tersebut belum diperoleh bilangan bulat maka diterapkan
percabangan (branch), kita ketahui bahwa dan ' belum diperoleh bilangan bulat, maka kita pilih variabel yang solusinya bernilai pecahan terbesar untuk
dicabangkan, yang dalam hal ini ' merupakan nilai pecahan terbesar, jadi
' yang dicabangkan. Untuk menghilangkan bagian pecahan pada ' dua kendala
baru dibuat. Nilai bulat terdekat terhadap 1,3444 yaitu 1 dan 2. Sehingga diperoleh dua kendala baru yang saling mutually exclusive, yaitu ' ≤ 1 dan
' ≥ 2, kendala-kendala baru tersebut secara efektif akan menghilangkan semua
nilai pecah yang mungkin ada pada '. Sekarang akan diuraikan permasalahan
tersebut ke dalam bagian A dan bagian B sebagai berikut:
Bagian A:
memodelkan bentuk program linier dua kriteria (bicriteria linear programming)
pada bagian A ke dalam bentuk linear programming parametric sebagai berikut:
kemudian permasalahan di atas kita buat ke dalam betuk tabel simpleks program
linier dua kriteria (bicriteria linear programming) dan diselesaikan dengan
parametric simplex algorithm tanpa pembatasan bilangan bulat, Sehingga dapat
diperoleh solusi optimum pada bagian A sebagai berikut:
= 1,2000, ' = 1,0000, $ = 4,0000 dan $' = 0,8000.
memodelkan bentuk program linier dua kriteria (bicriteria linear programming)
ke dalam bentuk linear programming parametric sebagai berikut:
min: λ −5 + 2 ' + 1 − V − 4 ' kemudian permasalahan di atas kita buat ke dalam bentuk tabel simpleks program
parametric simplex algorithm tanpa pembatasan bilangan bulat, sehingga dapat
diperoleh solusi optimum pada bagian B sebagai berikut:
= 1,2000, ' = 1,3444, $ = 3,3334 dan $' = 0,1334.
(proses penyelesaian terlampir)
Solusi pada bagian B juga belum diperoleh bilangan bulat, kita tahu bahwa
solusi optimum pada bagian A dan bagian B belum diperoleh bilangan bulat,
maka pada dua bagian tersebut kita tambahkan kendala yang disebut sebagai
kendala gomory, kendala tersebut ditambahkan pada tabel simpleks solusi
optimum program linier dua kriteria (bicriteria linear programming) pada bagian
A dan bagian B. Terlebih dahulu kita kerjakan penambahan kendala gomory pada
bagian A, dapat dilihat pada bagian A solusi yang belum bulat yaitu , terlihat
pada persamaan memiliki % = 0,2000, sehingga persamaan dapat diperoleh sebagai berikut:
+ ,J+ 0,2000,K = 1,2000
kemudian kita pisahkan koefisien yang bernilai pecahan menjadi 2 bagian yaitu
yang bernilai bilangan bulat dan bilangan pecahan
+ ,J+ 0 + 0,2000 ,K = 1 + 0,2000
sehingga kendala gomory menjadi
,G − 0,2000,K = −0,2000
jadi dapat diperoleh solusi optimum setelah penambahan kendala gomory pada
bagian A sebagai berikut:
= 0,0000, ' = 0,0000, $ = 6,0000 dan $' = 3,2000.
(proses penyelesaian terlampir)
Solusi pada bagian A setelah penambahan kendala gomory belum
diperoleh bilangan bulat, kemudian kita lanjut mengerjakan pada bagian B yang
ditambah dengan kendala gomory, dapat dilihat pada bagian B solusi yang belum
bulat yaitu dan ', terlihat pada ' merupakan bilangan pecahan terbesar, maka
yang kita pakai persamaan yang ada pada ', dimana ' memiliki %' = 0,3334, sehingga persamaan ' dapat diperoleh sebagai berikut:
kemudian kita pisahkan koefisien yang bernilai pecahan menjadi 2 bagian yaitu
yang bernilai bilangan bulat dan bilangan pecahan
' + 0 + 0,3334 ,K = 1 + 0,3334
sehingga kendala gomory menjadi
,G − 0,3334,K = −0,3334
jadi dapat diperoleh solusi optimum setelah penambahan kendala gomory pada
bagian A sebagai berikut:
= 0,0000, ' = 1,0000, $ = 2,0000 dan $' = −4,0000.
(proses penyelesaian terlampir)
Solusi pada bagian B setelah penambahan kendala gomory diperoleh
berupa bilangan bulat, karena terlihat bahwa pada bagian B sudah berupa bilangan
bulat pada dan ', maka prosesnya diberhentikan. Dan adapun solusi optimum
dari permasalahan di atas yaitu pada bagian B setelah penambahan kendala
gomory dengan nilai sebagai berikut:
,G − 0,2000,K = −0,2000 ,G − 0,3334,K = −0,3334
Gambar 3.1 Diagram Penyelesaian Permasalahan Program Linier Dua
Kriteria dengan Metode Branch and Cut.
3.4 Penyelesaian Contoh Kasus Program Bilangan Bulat Dua Kriteria
dengan Menggunakan Metode Branch and Cut
Pada bagian ini akan diberikan contoh kasus program bilangan bulat dua kriteria
(bicriteria linear programming) yang membutuhkan penyelesaian berupa
bilangan bulat, contoh kasus ini dimodifikasi pada permasalahannya, penyelesaian
akan dilakukan dengan metode branch and cut (Hidayat, 20103).
tipang warna coklat. Adapun bahan baku dan jumlah persediaan bahan baku yang
diperlukan untuk pembuatan setiap masing-masing jenis pakaian sebagai berikut:
Tabel 3.2 Bahan Baku dan Jumlah Persediaan Bahan Baku
No Jenis Bahan Baku
adapun pembagian komposisi pada bahan baku dalam pembuatan tipang sebanyak
satu bungkus sebagai berikut:
adapun waktu produksi untuk menghasilkan satu jenis tipang warna putih,
Tabel 3.4 Waktu Proses Produksi Satu Jenis Tipang
10 Pencetakan, Pemotongan, Penyusunan 0,5 0,5 0,5 10800
11 Pembungkusan 0,5 0,5 0,5 1800
adapun keuntungan dan jumlah polusi yang terjadi setiap masing-masing pakaian
yang dihaslikan sebagai berikut:
Tabel 3.5 Pendapatan Penjualan dan Biaya Produksi pada Pembuatan Jenis
Tipang
No Jenis Pakaian Pendapatan Penjualan
(Rp)
tujuan dari manager perusahaan MAKANAN RINGAN adalah memaksimumkan