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 + 0x

  4

  • 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 i

Tabel 2.1 Tabel Awal Simpleks

  3. 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 Simpleks

  7. 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 Bahan

  Ada 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 m

  2 ...

  x

  21 x 1 + a 22 x 2 + a

23 x

3 = b

  a

  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 [ M

  I 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-Bound

BAB 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 Diagram

  3.2.2 Context Diagram Username, password

  3.2.3 Decompotition Diagram

Gambar 3.4 Decompotition Diagram

  3.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 2

  3.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 3

  3.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 Hias

  Nama 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 Bahan

  Nama 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 Hias

  Nama 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 Bahan

  Bahan 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 Login

  3.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 Menu

3.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 yang

  sudah ada, dan menghapus bahan.

Gambar 3.11 Tampilan Form Update Bahan

  3.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 hias

  yang sudah ada, dan menghapus lilin hias.

Gambar 3.12 Tampilan Form Update Lilin Hias

  3.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 Perhitungan

3.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 Perhitungan

3.4.7 Tampilan Form Administrator

Gambar 3.15 adalah tampilan form administrator yang berguna untuk mengupdate username.Gambar 3.15 Tampilan Form Administrator

BAB 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 adalah

  pendeskripsian 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; }