PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN JUMLAH LILIN HIAS YANG DIPRODUKSI BERDASARKAN JUMLAH DAN KOMPOSISI BAHAN
PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN JUMLAH
LILIN HIAS YANG DIPRODUKSI BERDASARKAN JUMLAH DAN
KOMPOSISI BAHAN
(STUDI KASUS : PERUSAHAAN LILIN HIAS RINDANG)
TUGAS AKHIR
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika Oleh:
Tammyana Ranas 045314015
APLICATION OF SIMPLEX METHOD FOR DETERMINING THE
AMOUNT OF DECORATIVE CANDLES TO PRODUCE BASED ON THE
AMOUNT AND COMPOSITION OF MATERIAL
(CASE STUDY : RINDANG DECORATIVE CANDLE COMPANY)
FINAL PROJECT
Presented as Partial Fulfillment of The Requirements to Obtain Sarjana Teknik Degree in Informatics Engineering
By : Tammyana Ranas
045314015
INFORMATICS ENGINEERING STUDY PROGRAM
HALAMAN PERSEMBAHAN
7XJDV $NKLU LQL NXSHUVHPEDKNDQ XQWXN
7XJDV $NKLU LQL NXSHUVHPEDKNDQ XQWXN
7XJDV $NKLU LQL NXSHUVHPEDKNDQ XQWXN
7XJDV $NKLU LQL NXSHUVHPEDKNDQ XQWXN
$OODK 6:7 \DQJ WHODK PHPEHULNDQ DQXJHUDK
$OODK 6:7 \DQJ WHODK PHPEHULNDQ DQXJHUDK $OODK 6:7 \DQJ WHODK PHPEHULNDQ DQXJHUDK
$OODK 6:7 \DQJ WHODK PHPEHULNDQ DQXJHUDK
NHDMDLEDQ VHUWD OLPSDKDQ NDVLK VD\DQJ \DQJ WDQSD KHQWL
NHDMDLEDQ VHUWD OLPSDKDQ NDVLK VD\DQJ \DQJ WDQSD KHQWL NHDMDLEDQ VHUWD OLPSDKDQ NDVLK VD\DQJ \DQJ WDQSD KHQWL
NHDMDLEDQ VHUWD OLPSDKDQ NDVLK VD\DQJ \DQJ WDQSD KHQWL
NHSDGD KDPED NHSDGD KDPED NHSDGD KDPED NHSDGD KDPED 1\D 1\D 1\D 1\D
,EXNX \DQJ WHUFLQWD 7LRQJ $\ 1LR ,EXNX \DQJ WHUFLQWD 7LRQJ $\ 1LR ,EXNX \DQJ WHUFLQWD 7LRQJ $\ 1LR ,EXNX \DQJ WHUFLQWD 7LRQJ $\ 1LR
$\DKNX \DQJ WHUFLQWD 1DVUXO $\DKNX \DQJ WHUFLQWD 1DVUXO $\DKNX \DQJ WHUFLQWD 1DVUXO $\DKNX \DQJ WHUFLQWD 1DVUXO
$ $ $ $GLNNX \DQJ GLNNX \DQJ GLNNX \DQJ GLNNX \DQJ WHUVD\DQJ 5LQGDQJ 5D\R 5DQDV WHUVD\DQJ 5LQGDQJ 5D\R 5DQDV WHUVD\DQJ 5LQGDQJ 5D\R 5DQDV WHUVD\DQJ 5LQGDQJ 5D\R 5DQDV
.DOLDQ \DQJ.DOLDQ \DQJ .DOLDQ \DQJ
.DOLDQ \DQJ VHODOX PHPEHULNDQ NDVLK VD\DQJ GRD
VHODOX PHPEHULNDQ NDVLK VD\DQJ GRD
GXNXQJDQ GDQ NHSHUFD\DDQ GXNXQJDQ GDQ NHSHUFD\DDQ GXNXQJDQ GDQ NHSHUFD\DDQ GXNXQJDQ GDQ NHSHUFD\DDQ
VHODOX PHPEHULNDQ NDVLK VD\DQJ GRD
MOTTO
.X UHQJNXK ELQWDQJ GL ODQJLW NDNL NX WHWDS PHQDSDN EXPL
%ROHK MDGL NDPX PHPEHQFL VHVXDWX SDGDKDO LD DPDW EDLN EDJLPX 'DQ
EROHK MDGL SXOD NDPX PHQ\XNDL VHVXDWX SDGDKDO LD DPDW EXUXN EDJLPX
$OODK PHQJHWDKXL VHGDQJNDQ NDPX WLGDN PHQJHWDKXL 46
$OODK WLGDN PHPEHULNDQ FREDDQ NHSDGD XPDW 1\D PHOHELKL EDWDV
NHPDPSXDQQ\D
ABSTRAKSI
Dalam kesehariannya, Perusahaan Lilin Hias Rindang memproduksi lilin hias dengan menggunakan bahan-bahan yang sudah tersedia. Bahan-bahan yang sudah tersedia ini kemudian digunakan semaksimal mungkin untuk membuat beberapa macam bentuk lilin hias. Perusahaan Lilin Hias Rindang tidak pernah memperhitungkan keuntungan optimal yang akan didapat dalam menggunakan bahan-bahan yang tersedia tersebut. Hal ini menyebabkan perusahaan mendapatkan keuntungan, namun belum semaksimal mungkin.
Dalam tugas akhir ini, penulis membuat program bantu untuk menentukan jumlah lilin hias yang harus diproduksi untuk menghasilkan keuntungan yang semaksimal mungkin menggunakan metode simpleks dan branch-bound. Program bantu ini dibuat menggunakan bahasa pemrograman Java dan MySQL sebagai
database-nya. Inputan dari program ini berupa bentuk lilin hias yang akan
diproduksi, kendala minimum ataupun maksimum untuk tiap bentuk lilin hias serta bahan-bahan yang tersedia. Kemudian hasil outputnya berupa jumlah lilin hias yang harus diproduksi serta keuntungan maksimal yang akan didapat.
Output program menunjukkan hasil yang sama dengan QMForWindows 2 akan tetapi Program Bantu Penentuan Lilin Hias yang Harus Diproduksi lebih
ABSTRACT
Rindang Decorative Candle Company produces decorative candles using given materials each day. Those materials will be used as maximal as possible in production of various shapes of decorative candles. Rindang Decorative Candle Company had never calculate the optimal profits of it. That’s why this company hasn’t get a maximal profit yet.
In this final project, the author make an application for determining the amount of decorative candle of which should be produced to get a maximal profit by using simplex method and branch-bound. This application is implemented using Java programming language and MySQL as its database. The input of this program is decorative candle shape to produce, the minimum or maximum constraints for every shape of decorative candles and given materials. The output is the amount of decorative candle of which should be produced and the maximal profit.
Output from this application program has same result with QMForWindows 2, but “The Aplication Program for Determining How Many Decorative Candle Should Be Produced” is easier to use because user doesn’t need to make mathematic model.
KATA PENGANTAR
Puji dan syukur penulis ucapkan kepada Alloh SWT yang telah melimpahkan kasih sayang serta anugerah-Nya, sehingga dapat terselesaikannya tugas akhir ini dengan judul PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN JUMLAH LILIN HIAS YANG DIPRODUKSI BERDASARKAN JUMLAH DAN KOMPOSISI BAHAN. Penulisan tugas akhir ini ditujukan untuk memenuhi salah satu syarat memperoleh gelar sarjana Sains dan Teknologi Jurusan Teknik Informatika.
Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta beberapa pihak, baik secara langsung maupun tidak langsung. Oleh karena itu penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut membantu dalam penulisan tugas akhir ini, baik dalam memberi bimbingan, petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada :
1. Alloh SWT, yang telah melimpahkan kasih sayang serta anugerah-Nya yang telah diberikan kepada penulis sehingga dapat menyelesaikan Tugas Akhir ini.
2. Dosen Pembimbing, Bapak Drs. Jong Jek Siang, M.Sc yang telah meluangkan waktu, tenaga dan pikiran untuk membimbing penulis dari awal sampai terselesaikannya penulisan tugas akhir ini.
4. Kedua orang tua, ayah dan ibu serta Rindang, yang selalu mendoakan, memberi spirit dan dorongan kepada saya untuk dapat menyelesaikan penulisan laporan tugas akhir ini.
5. Seluruh dosen, staf, dan karyawan Universitas Sanata Dharma khususnya Fakultas Sains dan Teknologi Jurusan Teknik Informatika.
6. Teman-teman jurusan Teknik Informatika Angkatan 2004 terkhusus Ratih Dewi Yulianti, Hylda Yusticianti dan Aldegonda Yulia Meriana.
7. Teman-teman FKM Budi Utama yang selalu memberi dukungan, semangat serta doa.
Yogyakarta, 16 September 2009 Penulis
DAFTAR ISI
HALAMAN JUDUL ……………………………………………………….... i HALAMAN PERSETUJUAN. ........................................................................ iii HALAMAN PENGESAHAN .......................................................................... iv HALAMAN PERNYATAAN .......................................................................... v HALAMAN PERSEMBAHAN ....................................................................... vi MOTTO ............................................................................................................ vii ABSTRAKSI .................................................................................................... viii HALAMAN PERSETUJUAN ......................................................................... x KATA PENGANTAR ...................................................................................... xi DAFTAR ISI .................................................................................................... xiii DAFTAR GAMBAR........................................................................................ xvi DAFTAR TABEL............................................................................................. xviii BAB I PENDAHULUAN ................................................................................
1 1.1 Latar Belakang Masalah ....................................................................
1 1.2 Rumusan Masalah .............................................................................
1 1.3.Batasan Masalah ................................................................................
2 1.4 Tujuan dan Manfaat Penelitian .........................................................
2
2.2 Metode Simpleks ...............................................................................
4 2.2.1 Bentuk Standar Metode Simpleks ........................................
4
2.2.2 Langkah-Langkah Pemecahan Program Linier dengan Metode Simpleks ................................................................
7 2.3 Program Bilangan Bulat ...................................................................
9 2.4 Pemodelan Sistem ............................................................................
12 BAB III ANALISIS DAN PERANCANGAN SISTEM ................................
16 3.1 Gambaran Umum Sistem .................................................................
17 3.2 Perancangan Sistem .........................................................................
18 3.2.1 Use Case Diagram ..............................................................
18 3.2.2 Context Diagram .................................................................
18 3.2.3 Decompotition Diagram ………………………………......
19 3.2.4 Data Flow Diagram level 0 .................................................
19 3.2.5 Data Flow Diagram Level 1 Proses 2……………………..
20 3.2.6 Data Flow Diagram Level 1 Proses 3……………………..
21
3.2.7 E-R Diagram………………………………………………
21 3.2.8 Tabel Hasil Mapping E-R Diagram.....................................
22 3.3 Studi Kasus .....................................................................................
23 3.4 Perancangan Antar Muka Produsen.................................................
24
3.4.5 Tampilan Form Perhitungan...............................................
26 3.4.6 Tampilan Form Hasil Perhitungan.......................................
27 3.4.7 Tampilan Form Administrator ............................................
28 BAB IV IMPLEMENTASI SISTEM……………………………………….
30 4.1 Algoritma Metode Simpleks............................................................
30 4.2 Algoritma Metode Branch and Bound............................................
35 4.3 Hasil Implementasi………………………………………………..
44
4.3.1 Login………………………………………………………
44
4.3.2 Menu………………………………………………………
45 4.3.3 Administrator ……………………………………………..
46 4.3.4 Update Bahan……………………………………………..
47
4.3.5 Update Lilin Hias…………………………………………
48 4.3.6 Perhitungan………………………………………………..
49 4.3.7 Hasil……………………………………………………….
51 4.4 Analisa Hasil Implementasi………………………………………..
51 4.4.1 Kelebihan Program Bantu....................................................
63 4.4.2 Kekurangan Program Bantu.................................................
63 BAB V PENUTUP.........................................................................................
65 5.1 Kesimpulan.......................................................................................
65
DAFTAR GAMBAR
GAMBAR KETERANGAN HALAMAN
3.12 Tampilan Form Update Lilin Hias
21
3.9 Tampilan Form Login
24
3.10 Tampilan Form Menu
25
3.11 Tampilan Form Update Bahan
25
26
21
3.13 Tampilan Form Perhitungan
27
3.14 Tampilan Form Hasil Perhitungan
28
3.15 Tampilan Form Administrator
29
4.1 Hubungan Antar Fungsi Simpleks
3.8 E-R Diagram
3.7 Data Flow Diagram Level 1 Proses 3
2.1 Keterangan Tabel Simpleks
3.2 Use Case Diagram
9
2.2 Keterangan Branch-Bound
11
2.3 Pemodelan Branch-Bound
16
3.1 Flow Chart
17
18
20
3.3 Contex Diagram
18
3.4 Decompotition Diagram
19
3.5 Data Flow Diagram Level 0
19
3.6 Data Flow Diagram Level 1 Proses 2
30
4.6 Form Update Lilin Hias
48
4.7 Form Perhitungan
49
4.8 Tanpilan Hasil Perhitungan
51 Pemodelan branch-bound untuk Penyelesaian
4.9
59 Ganda Output Jika Inputan Bahan yang Tersedia Tidak
4.10
60 Memenuhi Kebutuhan untuk Membuat Satu Buah Lilin Hias
DAFTAR TABEL
TABEL KETERANGAN HALAMAN
2.1 Tabel Awal Simpleks
8
2.2 Tabel Bahan
12
2.3 Tabel Contoh Iterasi
15
3.1 Tabel Lilin Hias
22
3.2 Tabel Kebutuhan Bahan
22
3.3 Tabel Lilin Hias
22
3.4 Tabel Bahan
23
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Dalam keseharian memproduksi lilin hias, perusahaan lilin hias Rindang menggunakan bahan-bahan yang sudah tersedia. Bahan-bahan yang sudah tersedia ini biasanya akan diproduksi semaksimal mungkin dan setelah selesai dalam pembuatannya barulah hasilnya dibagikan dan dikirimkan kepada pelanggan.
Bentuk-bentuk lilin hias yang dikirimkan oleh perusahaan Rindang kepada para pelanggannya ada 4 macam yaitu, juice, tart, ice cream dan jelly. Keempat macam bentuk lilin hias tersebut membutuhkan bahan yang sama namun berbeda komposisinya. Bahan-bahan yang dibutuhkan adalah parafin, stearic acid, candle
jell dan white oile.
1.2 Rumusan Masalah
Dari latar belakang masalah di atas dapat dirumuskan menjadi beberapa masalah sebagai berikut:
1. Bagaimana menentukan jumlah lilin hias yang akan diproduksi agar menghasilkan keuntungan maksimal dengan bahan yang tersedia.
1.3 Batasan Masalah
Agar sistem yang penulis buat tidak keluar dari inti dan tujuan serta menjadi luas, maka penulis memberikan batasan-batasan sebagai berikut:
1. Masalah diasumsikan dapat diselesaikan dengan menggunakan program bilangan bulat dengan menggunakan metode branch-bound.
2. Program bantu digunakan untuk menghitung jumlah lilin hias yang akan dikirimkan ke pelanggan.
3. Bahasa pemrograman yang digunakan untuk mengimplementasikan metode simpleks dan branch-bound adalah bahasa pemrograman Java dan untuk pengelolaan data menggunakan MySQL.
1.4 Tujuan dan Manfaat Penelitian
Dalam tugas akhir ini tujuan yang dicapai penulis adalah membuat program bantu untuk menentukan jumlah lilin hias yang akan diproduksi dengan keterbatasan bahan yang tersedia agar mendapatkan keuntungan yang maksimal.
1.5 Metodologi Penelitian
Metodologi penelitian yang digunakan untuk membuat program bantu ini adalah sebagau berikut:
1. Studi pustaka tentang program linier terutama metode simpleks dan program
1.6 Sistematika Penulisan
Sistematika penulisan laporan tugas akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN Bab ini berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan dan manfaat penelitian, metode penelitian, dan sistematika penulisan laporan.
BAB II DASAR TEORI Bab ini berisi landasan teori yang akan dipakai untuk pembahasan laporan BAB III ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi tentang analisis dan perancangan program yang akan diimplementasikan. BAB IV IMPLEMENTASI SISTEM Bab ini berisi tentang proses implementasi sesuai dengan rancangan program serta berisi analisa program yang telah berhasil dibuat. BAB V KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dari apa yang dikerjakan dalam tugas akhir dan merupakan jawaban untuk masalah yang telah dirumuskan di depan serta saran yang dirasa berguna bagi para pembaca terkait dengan program bantu yang dibangun.
BAB II DASAR TEORI
2.1 Program Linier
Program linier adalah salah satu teknik pada Riset Operasi/Operations
Research yang bersifat analisis yang analisisnya menggunakan model matematika,
yang bertujuan untuk menemukan penyelesaian optimal terhadap suatu masalah.Model program linier memliki 3 unsur utama, yaitu:
1. Variabel Keputusan : variabel persoalan yang akan mempengaruhi nilai tujuan yang akan dicapai.
2. Fungsi Tujuan : tujuan yang akan dicapai dirumuskan dalam sebuah fungsi matematika linier
3. Fungsi Kendala : digambarkan sebagai pembatas terhadap kumpulan keputusan yang mungkin dibuat dan harus dituangkan ke dalam fungsi matematika linier.
2.2 Metode Simpleks
Jika suatu masalah program linier hanya mengandung dua variabel keputusan saja, maka dapat dipecahkan dengan metode grafik. Namun jika suatu masalah program linier mengandung tiga atau lebih variabel keputusan maka Di bawah ini merupakan aturan bentuk standar metode program linier yang diperlukan untuk pemecahan masalah dalam menggunakan metode simpleks.
1. Semua kendala adalah persamaan dengan sisi kanan dan sisi kiri yang tidak negatif.
Maksimumkan Z = x
= b
ij x j
a
n j=1
¦
j
x
j
C
n j =1
¦
2
1 + x
dan x 4. Contoh :
2. Semua variabel keputusan tidak negatif (x
3
Kendala dengan pertidaksamaan lebih kecil sama dengan “≤” dapat diubah dengan menambahkan pertidaksamaan dengan variabel slack pada sisi kiri dan menjadikan tanda “≤” menjadi “=”. Pada contoh di bawah ini yang merupakan variabel slack adalah variabel x
Dengan adanya aturan di atas maka jika tedapat kendala yang berbentuk pertidaksamaan maka harus dikonversikan menjadi persamaan dengan memasukkan variabel slack atau surplus.
≥ 0, untuk j = 1, 2, …, n
Bentuk standar program linier dapat dirumuskan sebagai berikut: Fungsi Tujuan → Maks/Min Z = Kendala → untuk i = 1, 2, …, m x j
3. Fungsi tujuan dapat berupa memaksimalkan atau meminimumkan.
n ).
, ..., x
3
, x
2
x
1,
i Perubahan ke bentuk standar simpleks : Maksimumkan Z = x + x + 0 x + 0x
1
2
3
4 Kendala :
2 x
1 + x 2 + x 3 = 4
x + 5x + x = 5
1
2
4
1 , x 2 , x 3 , x
≥ x
4 Dengan bentuk standar simpleks di atas didapatkan variabel basis yaitu
vaiabel x
3 dan x 4 .
Kendala dengan pertidaksamaan lebih besar sama dengan “≥” dapat diubah dengan mengurangkan pertidaksamaan dengan variabel surplus pada sisi kiri.dan menjadikan tanda “≥” menjadi “=”. Pada contoh di bawah ini yang merupakan variabel surplus adalah variabel x
3 dan x
4.
Contoh : Minimumkan Z = 12x
1 + 5 x
2 Kendala
≥ 4 x + 2 x
80
1
2
1 + 3 x 2 ≥ 90 ; x 1 , x
≥ 2 x
2 Perubahan ke bentuk standar simpleks :
Minimumkan Z = 12x
1 + 5 x
2 + 0x
3 + 0x4
- 5 x
- 0x
- 0x
- Mx
- Mx
6 Kendala
Langkah-langkah penyelesaian metode simpleks adalah sebagai berikut : 1. Memformulasikan dan menstandarisasikan model simpleks.
2.2.2 Langkah-Langkah Pemecahan Program Linier dengan Metode
Simpleks≥ Untuk soal meminimumkan koefisien pada fungsi sasaran untuk variabel semu adalah M (bilangan positif besar). Sedangkan untuk soal memaksimumkan koefisien pada fungsi sasaran untuk variabel semu adalah –M (bilangan negative besar).
6
1 + 3 x 2 - x 4 + x 6 = 90 ; x 1 , x 2, x 3, x 4, x 5, x
= 80 2 x
5
3
2
1
4 x
5
4
3
2
1
Bentuk standar simpleks menjadi sebagai berikut : Minimumkan Z = 12x
6 ).
bernilai negatif. Untuk mendapatkan variabel basis maka diperlukan penambahan variabel semu (untuk contoh di bawah variabel semu adalah x 5, x
4
dan x
3
Dari persamaan di atas belum memiliki variabel basis sebab koefisien dari x
- 2 x
- x
- x
2. Setelah menstandarisasikan model maka dapat dibentuk tabel awal simpleks berdasarkan informasi model yang sudah dibuat. Di bawah ini adalah tabel awal simpleks :
1 C
ș
P e n g e c e k a n v a ri a b e l y a n g k e lu a r d a ri b a s is
z
j
C
j
j ¦ m i=1
(C B ) i
a ij ¦ m i=1 (C B ) i b iTabel 2.1 Tabel Awal Simpleks3. Setelah membuat tabel awal simpleks dapat ditentukan kolom kunci di antara kolom-kolom variabel yang ada, yaitu kolom yang mengandung nilai (c j -Z j ) paling positif unutk soal memaksimalkan atau yang mengandung nilai (c
]
j
j
) paling negatif untuk soal meminimumkan.
4. Setelah menentukan kolom kunci maka dapat dilakukan perhitungan ș untuk menentukan baris kunci, yaitu baris yang memiliki rasio kuantitatif dengan nilai positif terkecil.
Ĭ = b
i /a ij
5. Kemudian setelah didapatkan baris kunci maka dapat dilakukan langkah berikutnya yaitu memasukkan variabel basis baru (variabel pada kolom kunci)
K o e fi s ie n ru a s k a n a n k e n d a la d a la m b e n tu k s ta n d a r
ij
C
)
j
C
2
... C
n x j (x B ) i
(C
B
i
= [a
x
1 x 2 x n b i ...
K o e fi s ie n
V a ri a b e l b a s is
V a ri a b e l b a s is
Matriks kendala dalam bentuk standar A = A
mxn
- z
- -Z
Baris baru selain baris kunci = baris lama – (rasio kunci x baris kunci lama) Barus kunci baru = baris kunci lama/angka kunci Keterangan : Rasio kunci = unsur kolom kunci/angka kunci
Calon basis Kolom kunci
F M [ θ θ θ θ
M F [ [ [ [ E [ % L L % L [ [ ] M F ] M M
keluar dari basis (OHPHQ .XQFL %DULV .XQFL
Gambar 2.1 Keterangan Tabel Simpleks7. Langkah terakhir adalah melakukan uji optimalitas. Jika semua koefisien pada baris (c j -Z j ) sudah tidak ada lagi yang bernilai positif (untuk soal memaksimalkan) atau sudah tidak ada lagi yang bernilai negatif (untuk soal meminimalkan), berarti tabel sudah optimal.
8. Jika pada langkah 7 belum terpenuhi maka dilakukan pengulangan pada langkah ke-3 sampai ke-7. Hingga terpenuhi kriteria pada langkah 7. program. Program yang digunakan untuk membulatkan hasil dari kasus pemrograman linier disebut program bilangan bulat atau dapat juga disebut
integer programming.
Metode branch and bound merupakan salah satu metode pemrograman bilangan bulat yang menghasilkan penyelesaian optimal pada masalah pemrograman linier yang pada akhirnya menghasilkan variabel-variabel keputusan berupa bilangan bulat.
Berikut adalah langkah-langkah dalam memecahkan masalah integer programming menggunakan metode branch-bound.
1. Setelah ditemukan penyelesaian hasil dari program linier maka dapat dilakukan pembulatan hasil dengan cara menentukan salah satu hasil variabel keputusan yang komanya paling mendekati 0,5.
2. Setelah menentukan variabel keputusan yang nilai komanya paling mendekati 0,5 maka dapat dilakukan percabangan.
3. Percabangannya ditentukan dengan membuat 2 buah batasan yaitu bilangan bulat yang berada diantara variabel keputusan yang telah ditentukan pada langkah nomor 1 di atas. Contoh :
2 a ≤ 34 f(34,1667 , 10 , 10 , 0)
1 f(a, b, c, d)= 171418, 67 a ≥ 35
3 Gambar 2.2 Keterangan Branch-Bound Pada contoh di atas telah dibuat 2 buah cabang yaitu cabang 2 dan 3. Cabang 2 mempunyai batasan a ≤ 34. Sedangkan cabang 3 mempunyai batasan a ≥ 35.
4. Kemudian batasan tersebut dimasukkan ke dalam kendala dalam model simpleks.
Pada contoh di atas cabang 2 ditambahkan kendala a ≤ 34, sedangkan untuk cabang 3 ditambahkan kendala a ≥ 35.
5. Lakukan perhitungan simpleks dengan tambahan masing-masing kendala.
6. Jika salah satu cabang sudah memperoleh penyelesaian bulat (missal Xa), maka hasil cabang tersebut f(Xa) dijadikan batas bawah (untuk soal memaksimumkan) atau batas atas (untuk soal meminimumkan) dan dibandingkan dengan cabang lainnya f(X).
7. Untuk soal memaksimumkan : o Jika f(X) < f(Xa) maka cabang tersebut diabaikan
Untuk soal meminimumkan : o Jika f (X) > f(Xa) maka cabang tersebut diabaikan. o
Jika f(X) < f(Xa) maka ada 2 kemungkinan: o X baru sudah bulat maka X baru tersebut menjadi batas atas baru o X baru tidak bulat maka dicabangkan lagi.
2.4 Pemodelan Sistem
Jika terdapat 3 buah variabel keputusan yaitu x
1
, x
2
, dan x
3
maka dapat dibuat pemodelannya sebagai berikut: Maks/min Z = c
1 x 1 + c 2 x 2 + c 3 x
3 Dengan kendala : a
x
- a
- a
12
a m1 x
11
Tabel 2.2 Tabel BahanAda 4 buah bentuk lilin hias yaitu juice, tart, ice cream dan jelly. Masing- masing bentuk tersebut membutuhkan bahan-bahan, keuntungan dan batasan- batasan yang dinyatakan dalam tabel dibawah ini :
≥ Contoh :
3
1 , x 2 , x
dengan x
1 + a m2 x
2 + a m3 x
3 = b m2 ...
x
21 x 1 + a 22 x 2 + a
23 x
3 = ba
1
= b
3
x
1
2
13 Cream 1.100,00 Jelly
Rp 600,00 20 -
0.9 gr 0.1 gr 14 gr 1 gr 6 cm
Bahan yang tersedia
1000 0 gr 5000 gr
4000 gr 300gr
500c m Maka untuk pemodelan contoh di atas agar didapatkan keuntungan yang maksimum adalah sebagai berikut : Variabel-variabel keputusan : a = jumlah lilin hias berbentuk juice b = jumlah lilin hias berbentuk tart c = jumlah lilin hias berbentuk ice cream d = jumlah lilin hias berbentuk jelly Fungsi tujuan : memaksimumkan Z = 4300a + 1350b + 1100c + 600d Kendala : 122a + 37b + 41c + 0.9d ≤ 10000
12a + 4b + 4c + 0.1d ≤ 5000 26a + 1.8b + 0.9c + 14d ≤ 4000 3a + 0.2b + 0.1c + d ≤ 300 12a + 3b + 6c + 6d ≤ 500 a ≥ 10 c ≥ 10 Bentuk Standar Simpleks : Memaksimumkan Z = 4300a + 1350b + 1100c + 600d + 0e + 0f + 0g + 0h +
0i + 0j + 0k + 0l + 0m - Mn - Mo Kendala : 122a + 37b + 41c + 0.9d + e =10000 12a + 4b + 4c + 0.1d + f = 5000 26a + 1.8b + 0.9c + 14d + g = 4000 3a + 0.2b + 0.1c + d + h = 300 12a + 3b + 6c + 6d + i = 500 a –j + n = 10 c – k + o = 10 b +l = 10 d + m = 20
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o bulat ≥ 0
Untuk iterasinya adalah sebagai berikut :
Tabel 2.3 Tabel Contoh Iterasi F D E F G H % L [ % L F H M [ MI J K L M N O P Q R E L J K
I R Q L F M ] M ] P H I O M 0 0 R D K J O L F ] M M P ] M J I H P F D K O L F M ] M ] H I J K M ] M P F D O M F ] M M K J I H M Pemodelan Integer Programming :
= %DWDV %DZDK = F
= D F =
= D
=
=Gambar 2.3 Pemodelan Branch-BoundBAB III ANALISIS DAN PERANCANGAN SISTEM
3.1 Gambaran Umum Sistem 67$57
0DVXNNDQ MHQLV OLOLQ KLDV \DQJ DNDQ GLSURGXNVL PDNV GDQ PLQ MXPO OLOLQ KLDV WLDS EHQWXN MXPODK EDKDQ \DQJ
WHUVHGLD
3HUKLWXQJDQ 6LPSOHN
0HQDPSLONDQ
7LGDN )LVLEHO" LQIRUPDVL EDKZD OLOLQ
WLGDN GDSDW GLEXDW
<D
3HUKLWXQJDQ %UDQFK %RXQG
0HQDPSLONDQ NHXQWXQJDQ GDQ MXPODK MHQLV OLOLQ KLDV \DQJ DNDQ GLSURGXNVL (1'
Gambar 3.1 Flow Chart jumlah bahan yang tersedia. Dengan inputan tersebut dilakukan perhitungan simpleks yang kemudian hasil perhitungan simpleks tersebut digunakan untuk perhitungan branch-bound agar didapat hasil dalam bentuk bilangan bulat. Hasil perhitungan yang akan ditampilkan kepada user adalah jumlah lilin hias yang harus diproduksi dan keuntungan maksimal yang akan didapat.3.2 Perancangan Sistem
3.2.1 Use Case Diagram
Gambar 3.2 Use Case Diagram3.2.2 Context Diagram Username, password
3.2.3 Decompotition Diagram
Gambar 3.4 Decompotition Diagram3.2.4 Data Flow Diagram Level 0
3.2.5 Data Flow Diagram Level 1 Proses 2
Gambar 3.6 Data Flow Diagram Level 1 Proses 23.2.6 Data Flow Diagram Level 1 Proses 3
3HPLOLN ,QVHUW /LOLQ +LDV OLOLQ KLDV QDPD EDKDQ MXPODK NHXQWXQJDQ 3 'DWD OLOLQ KLDV \DQJ DNDQ GLPDVXNNDQ QDPD ' /LOLQ +LDV 'DWD OLOLQ KLDV \DQJ DNDQ GLPDVXNNDQ QDPD OLOLQ KLDV NHXQWXQJDQ ,QIRUPDVL OLOLQ KLDV NRGH OLOLQ KLDV QDPD OLOLQ KLDV NHXQWXQJDQ %DKDQ ' 1DPD EDKDQ ,QIRUPDVL %DKDQ NRGH EDKDQ QDPD EDKDQ VDWXDQ .HEXWXKDQ %DKDQ ' 'DWD NHEXWXKDQ EDKDQ \DQJ DNDQ GLPDVXNNDQ NRGH OLOLQ NRGH EDKDQ MXPODK ,QIRUPDVL NHEXWXKDQ EDKDQ NRGH OLOLQ NRGH EDKDQ MXPODK ,QIRUPDVL OLOLQ KLDV NRGH OLOLQ KLDV QDPD OLOLQ KLDV QDPD EDKDQ VDWXDQ MXPODK NHXQWXQJDQ (GLW /LOLQ +,DV KLDV QDPD EDKDQ MXPODK NHXQWXQJDQ 3 'DWD OLOLQ KLDV \DQJ DNDQ GLHGLW QDPD OLOLQ 'DWD OLOLQ KLDV \DQJ DNDQ GLHGLW QDPD OLOLQ KLDV NHXQWXQJDQ ,QIRUPDVL OLOLQ KLDV NRGH OLOLQ KLDV QDPD OLOLQ KLDV NHXQWXQJDQ 1DPD EDKDQ ,QIRUPDVL %DKDQ NRGH EDKDQ QDPD EDKDQ VDWXDQ 'DWD NHEXWXKDQ EDKDQ \DQJ DNDQ GLHGLW NRGH OLOLQ NRGH EDKDQ MXPODK ,QIRUPDVL NHEXWXKDQ EDKDQ NRGH OLOLQ NRGH EDKDQ MXPODK ,QIRUPDVL OLOLQ KLDV NRGH OLOLQ KLDV QDPD OLOLQ KLDV QDPD EDKDQ VDWXDQ MXPODK NHXQWXQJDQ 'HOHWH /LOLQ +,DV QDPD OLOLQ KLDV 3 'DWD OLOLQ KLDV \DQJ DNDQ GLKDSXV 'DWD OLOLQ KLDV \DQJ DNDQ GLKDSXV QDPD OLOLQ KLDV ,QIRUPDVL OLOLQ KLDV NRGH OLOLQ KLDV QDPD OLOLQ KLDV NHXQWXQJDQ 'DWD NHEXWXKDQ EDKDQ \DQJ DNDQ GLKDSXV NRGH OLOLQ KLDV ,QIRUPDVL NHEXWXKDQ EDKDQ NRGH OLOLQ NRGH EDKDQ MXPODK NRGH EDKDQ ,QIRUPDVL EDKDQ NRGH EDKDQ QDPD EDKDQ VDWXDQ ,QIRUPDVL OLOLQ KLDV NRGH OLOLQ KLDV QDPD OLOLQ KLDV QDPD EDKDQ VDWXDQ MXPODK NHXQWXQJDQ
Gambar 3.7 Data Flow Diagram Level 1 Proses 33.2.7 E-R Diagram
3.2.8 Tabel Hasil Mapping E-R Diagram Tabel Lilin Hias
Nama file Data : lilin_hias.sql Primary Key : kode_lilin
Tabel 3.1 Tabel Lilin HiasNama Field Tipe Panjang Keterangan PK kode_lilin Varchar
5 Kode lilin hias nama Varchar
25 Nama bentuk lilin hias
- keuntungan double Keuntungan tiap bentuk
Tabel Kebutuhan Bahan
Nama file Data : kebutuhan_bahan.sql Primary Key : -
Tabel 3.2 Tabel Kebutuhan BahanNama Field Tipe Panjang Keterangan kode_lilin Varchar
5 Kode lilin hias kode_bahan varchar
5 Kode bahan
- jumlah Double Jumlah bahan yang dibutuhkan tiap bentuk
Tabel Bahan
Nama file Data : bahan.sql Primary Key : kode_bahan
Tabel 3.3 Tabel Lilin HiasNama Field Tipe Panjang Keterangan
3.3 Studi Kasus
Data yang diperoleh dan digunakan dalam program bantu penentuan jumlah lilin hias yang harus diproduksi merupakan hasil praktek dan perhitungan secara langsung pada Perusahaan Lilin Hias Rindang yang terletak di Jalan Ketandan Kulon No.1 Yogyakarta. Data yang diperoleh dari hasil praktek dan perhitungan adalah sebagai berikut :
Tabel 3.4 Tabel BahanBahan Bentuk Keuntungan
Stearic White Candle Parafin Sumbu
Acid Oile Jell Juice Rp 4.300,00 122 gr 12 gr 26 gr 3 gr 12 cm
Tart Rp 1.350,00 37 gr 4 gr 1.8 gr 0.2 gr 3 cm Ice
Rp 1.100,00 41 gr 4 gr 0.9 gr 0.1 gr 6 cm Cream
Jelly Rp 600,00 0.9 gr 0.1 gr 14 gr 1 gr 6 cm Untuk mendapatkan jumlah bahan pada tiap bentuk lilin hias di atas penulis melakukan penimbangan atau pengukuran pada tiap satuan bentuk lilin hias.
Sedangkan untuk mendapatkan keuntungan tiap lilin hias dilakukan dengan mengurangkan harga jual dengan biaya kebutuhan bahan serta biaya aksesoris- aksesoris yang dibutuhkan dengan mengabaikan biaya lain.
Dengan data kebutuhan bahan di atas Perusahaan Lilin Hias Rindang tiap
3.4 Perancangan Antar Muka
3.4.1 Tampilan Form Login
Tampilan form login dari program bantu yang akan dibuat tampak pada
gambar 3.9. Form ini berfungsi sebagai sistem keamanan yang digunakan oleh pemilik perusahaan lilin hias.
352*5$0 %$178
3(1(178$1 -80/$+ /,/,1 +,$6 <$1* ',352'8.6,
8VHU1DPH
3DVVZRUG $GPLQLVWUDWRU /2*,1
(;,7
Gambar 3.9 Tampilan Form Login3.4.2 Tampilan Form Menu
Gambar 3.10 adalah tampilan form menu yang akan digunakan oleh pemilik perusahaan untuk memilih menu perhitungan, update bahan, atau update lilinGambar 3.10 Tampilan Form Menu3.4.3 Tampilan Form Update Bahan
Gambar 3.11 merupakan form yang digunakan untuk melakukan update data bahan. Dalam form ini dapat dilakukan insert bahan baru, edit data bahan yangsudah ada, dan menghapus bahan.
Gambar 3.11 Tampilan Form Update Bahan3.4.4 Tampilan Form Update Lilin Hias
Gambar 3.12 merupakan form yang digunakan untuk melakukan update data lilin hias. Dalam form ini dapat dilakukan insert lilin hias baru, edit data lilin hiasyang sudah ada, dan menghapus lilin hias.
Gambar 3.12 Tampilan Form Update Lilin Hias3.4.5 Tampilan Form Perhitungan
Setelah melakukan klik pada menu perhitungan maka akan tampil form seperti gambar 3.13 di bawah ini. Form ini digunakan untuk memilih bentuk- bentuk lilin hias yang akan diproduksi, batasan minimal dan maksimal lilin yang
Gambar 3.13 Tampilan Form Perhitungan3.4.6 Tampilan Hasil Perhitungan
Gambar 3.14 adalah tampilan dari hasil perhitungan untuk tiap bentuk lilin hias yang akan dibuat.Gambar 3.14 Tampilan Hasil Perhitungan3.4.7 Tampilan Form Administrator
Gambar 3.15 adalah tampilan form administrator yang berguna untuk mengupdate username.Gambar 3.15 Tampilan Form AdministratorBAB IV IMPLEMENTASI SISTEM DAN ANALISA HASIL
4.1 Algoritma Metode Simpleks
Gambar 4.1 Hubungan Antar Fungsi Simpleks Perhitungan simpleks ini dilakukan dalam metode iterate. Berikut adalahpendeskripsian metode iterate: if (!testForOptimality()) { ChooseEnteringVariable(); resetReducedCost(); } else { objectiveValue = calculateObjective(); return Optimal; } for (int i = 0; i < numConstraints; i++) yB[i] = A[i][EnteringVariable]; if (!testUnboundedness()) { chooseLeavingVariable(); updateSolution(); return Continue; } else return Unbounded; }
Fungsi pi di atas digunakan untuk memberi nilai pada variabel pi berupa
koefisien variabel basis/(C B )j. Setelah menentukan pi maka dilakukan perhitungan
reducedCost/(Cj-Zj) pada fungsi calculateReducedCosts. Kemudian dapat
dilakukan uji optimalisasi pada fungsi testForOptimality. Jika belum optimal
maka dilakukan pemilihan kolom kunci pada ChooseEnteringVariable. Namun
jika sudah optimal maka akan dilakukan perhitungan nilai maksimum dari fungsi public static void calculateReducedCosts() { for (i = 0; i < numVariables; i++) { for (j = 0; j < numConstraints; j++) colOfA[j] = A[j][i]; reduceCost(i, colOfA); } } private static void reduceCost(int i, double[] colOfA) { double result = 0; double result2 = 0; for (int j = 0; j < numConstraints; j++){ if(typePi[j]==0){ result += pi[j] * colOfA[j]; }else if(typePi[j] == 1){ result2 += pi[j] * colOfA[j]; } } if(result2 == 0){ if(typeCost[i]==0){ reducedCost[i] = cost[i] - result; }else{ reducedCost[i] = -result; reducedCost2[i] = cost[i]; } } else{ if(typeCost[i]==0){ reducedCost[i] = cost[i] - result; reducedCost2[i] = -result2; }else{ reducedCost[i] = -result;
Pada fungsi calculateReducedCosts di atas terdapat fungsi reduceCost yang
digunakan untuk menghitung Cj-Zj pada tiap kolom. Pada fungsi reduceCost
terdapat variabel result dan result2. Variabel-variabel tersebut digunakan untuk
menyimpan data hasil Zj. Kemudian setelah mendapatkan hasil result dan result2
dapat dilanjutkan menghitung variabel reducedCost dan reducedCost2. Variabel
reducedCost dan reducedCost2 digunakan untuk menyimpan Zj-Cj.Berikut adalah pendefinisian fungsi ChooseEnteringVariable yang digunakan untuk menentukan kolom kunci : public static void ChooseEnteringVariable() { int maxIndex = 0; double maxValue = 0; double maxValue2 = 0; boolean reduced2 = false; for (i = 0; i < numVariables;i++){ if(reducedCost2[i]==0 && reduced2==false){ if (reducedCost[i] > 0 && reducedCost[i] > maxValue) { maxIndex = i; maxValue = reducedCost[i]; } }else{
if (reducedCost2[i] > 0 && reducedCost2[i] > maxValue2){
maxIndex = i; maxValue2 = reducedCost2[i]; reduced2 = true;} } } EnteringVariable = maxIndex; }