• Tidak ada hasil yang ditemukan

Penyelesaian Program Bilangan Bulat Campuran Dua Kriteria dengan Menggunakan Metode Branch and Cut

N/A
N/A
Protected

Academic year: 2016

Membagikan "Penyelesaian Program Bilangan Bulat Campuran Dua Kriteria dengan Menggunakan Metode Branch and Cut"

Copied!
121
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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.

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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: ≤, =, ≥

(21)

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

(22)

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

(23)

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: ≤, =, ≥

(24)

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.

(25)

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

(26)

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

(27)

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

(28)

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.

(29)

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)

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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.

(37)

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

(38)

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

(39)

+ 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:

(40)

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

(41)

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

(42)

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

(43)

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

(44)

Bagian D:

pembatasan bilangan bulat, adapun solusi optimumnya sebagai berikut:

(45)

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:

(46)

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

(47)

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

(48)

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:

(49)

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

(50)

36

(51)

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

(52)

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.

(53)

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

(54)

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 = −%

(55)

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.

(56)

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:

(57)

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

(58)

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:

(59)

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:

(60)

,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).

(61)

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,

(62)

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

Gambar

Gambar 2.1 Penyelesaian dengan Pendekatan Grafik
Tabel 2.3 Penambahan Kendala Gomory
Tabel 2.11 Solusi Optimum pada Bagian C
Tabel 2.13 Solusi Optimum pada Bagian E
+7

Referensi

Dokumen terkait

Metode branch and bound merupakan suatu metode yang digunakan untuk menyelesaikan masalah program linier yang menghasilkan penyelesaian dalam bentuk bilangan bulat

Penyelesaian masalah ini dengan metode branch-and-bound dilakukan dengan menggunakan software LINGO 8.0 dan data-data hipotetik yang dibangkitkan secara acak, yang

Untuk menyelesaikan Masalah program linear bilangan bulat Dengan solver prinsipnya sama dengan penyelesaian program linear, hanya ditambah syarat (constrain) yaitu

Akan diperlihatkan dari contoh (3.1) bahwa masalah program linear bilangan bulat yang sudah diperoleh penyelesaian optimum dapat dikerjakan kembali dengan metode bidang pemotong

Penyelesaian masalah pemrograman linier bilangan bulat murni dengan menggunakan metode reduksi variabel menghasilkan solusi optimal dengan semua variabel keputusan berupa bilangan

Algoritma branch and cut merupakan gabungan dari algoritma branch and bound dan cutting plane, Metode Branch and Cut merupakan salah satu metode yang digunakan untuk

Suatu pendekatan yang sederhana dalam menyelesaikan masalah integer programming adalah dengan membulatkan nilai variabel keputusan yang telah diperoleh pada penyelesaian

Penyelesaian dari masalah ini yaitu mengkonversi bilangan fuzzy trapesium pada koefisien fungsi kendala ke bentuk bilangan tegas menggunakan fungsiranking, lalu mengubah fungsi tujuan