penerapan metode simpleks untuk menentukan …

85
i 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 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2009

Upload: others

Post on 15-Oct-2021

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

i

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

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2009

Page 2: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

ii

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

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2009

Page 3: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …
Page 4: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …
Page 5: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …
Page 6: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

vi

HALAMAN PERSEMBAHAN

�������������� �������������������������������� �������������������������������� �������������������������������� ����������������������

����

������������������������������������������������������������������������������������������������������������������������������������������������������������

����������������� ����������������������� ����������������������� ����������������������� ����������������������� ����������������������� ����������������������� ����������������������� ������

�� ���������� ���������� ���������� ��������������������������������

����

����������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������

����������������������������������������������������������� ������ ���� ��������������� ������ ���� ��������������� ������ ���� ��������������� ������ ���� ��������

!����������!����������!����������!��������������������������������������������������������������������������������������������������������������������������������������������������

��������������� ����������������������� ����������������������� ����������������������� ����������������

Page 7: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

vii

MOTTO

������������� ������� ������� ��������� ����� � ������

������ ���� ��������������� ����� � ��� � � �� ��� ������� ��

����� ������� ��� ��������� ������ ����� � ��� � � ������� ������

��� ������� ������ ��� ��� ������ �������� ��������� !" #��

��� ���� ��������� ���� ����� � ��� �$%� �������� � ��

��� ��� ��� �

Page 8: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

viii

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

mudah digunakan karena pemakai tidak perlu membuat model matematikanya.

Page 9: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

ix

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.

Page 10: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …
Page 11: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xi

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.

3. Bapak Albertus Agung Hadhiatma, S.T. dan Bapak Eko Hari Parmadi, S.Si.,

M.Kom. selaku dosen penguji yang memberikan banyak masukan dan

inspirasi.

Page 12: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xii

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

Page 13: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xiii

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

1.5 Metodologi Penelitian ....................................................................... 2

1.6 Sistematika Penulisan ........................................................................ 3

BAB II DASAR TEORI .................................................................................... 4

2.1 Program Linier ................................................................................... 4

Page 14: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xiv

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.1 Tampilan Form Login.......................................................... 24

3.4.2 Tampilan Form Menu......................................................... 24

3.4.3 Tampilan Form Update Bahan............................................. 25

3.4.4 Tampilan Form Update Lilin Hias...................................... 26

Page 15: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xv

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

5.2 Saran................................................................................................. 66

DAFTAR PUSTAKA....................................................................................... 67

Page 16: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xvi

DAFTAR GAMBAR

GAMBAR KETERANGAN HALAMAN

2.1 Keterangan Tabel Simpleks 9

2.2 Keterangan Branch-Bound 11

2.3 Pemodelan Branch-Bound 16

3.1 Flow Chart 17

3.2 Use Case Diagram 18

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 20

3.7 Data Flow Diagram Level 1 Proses 3 21

3.8 E-R Diagram 21

3.9 Tampilan Form Login 24

3.10 Tampilan Form Menu 25

3.11 Tampilan Form Update Bahan 25

3.12 Tampilan Form Update Lilin Hias 26

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 30

4.2 Form Login 44

4.3 Form Menu 45

4.4 Form Administrator 46

4.5 Form Update Bahan 47

Page 17: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xvii

4.6 Form Update Lilin Hias 48

4.7 Form Perhitungan 49

4.8 Tanpilan Hasil Perhitungan 51

4.9 Pemodelan branch-bound untuk Penyelesaian

Ganda

59

4.10

Output Jika Inputan Bahan yang Tersedia Tidak

Memenuhi Kebutuhan untuk Membuat Satu Buah

Lilin Hias

60

Page 18: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

xviii

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

Page 19: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

1

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.

2. Bagaimana mengimplementasikan metode simpleks untuk menentukan jumlah

lilin hias yang harus diproduksi dalam suatu program.

3. Bagaimana mengimplementasikan metode branch-bound untuk membulatkan

hasil dari implementasi metode simpleks dalam suatu program.

Page 20: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

2

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

bilangan bulat terutama metode branch-bound.

2. Pembuatan rancangan dan implementasi program menggunakan siklus

waterfall.

Page 21: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

3

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.

Page 22: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

4

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

metode grafik sudah tidak dapat digunakan lagi, untuk itu diperlukan metode lain,

dalam hal ini adalah metode simpleks.

2.2.1 Bentuk Standar Metode Simpleks

Page 23: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

5

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.

2. Semua variabel keputusan tidak negatif (x1, x2, x3, ..., xn).

3. Fungsi tujuan dapat berupa memaksimalkan atau meminimumkan.

Bentuk standar program linier dapat dirumuskan sebagai berikut:

Fungsi Tujuan → Maks/Min Z =

Kendala → untuk i = 1, 2, …, m

xj ≥ 0, untuk j = 1, 2, …, n

Dengan adanya aturan di atas maka jika tedapat kendala yang berbentuk

pertidaksamaan maka harus dikonversikan menjadi persamaan dengan

memasukkan variabel slack atau surplus.

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 x3 dan x4.

Contoh :

Maksimumkan Z = x1 + x2

Kendala :

2 x1 + x2≤ 4

x1 + 5 x2 ≤ 5

x1, x2 ≥ 0

�n

j=1Cj xj

�n

j=1aij xj = bi

Page 24: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

6

Perubahan ke bentuk standar simpleks :

Maksimumkan Z = x1 + x2 + 0 x3 + 0x4

Kendala :

2 x1 + x2 + x3 = 4

x1 + 5x2 + x4 = 5

x1, x2, x3, x4 ≥ 0

Dengan bentuk standar simpleks di atas didapatkan variabel basis yaitu

vaiabel x3 dan x4.

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 x3 dan x4.

Contoh :

Minimumkan Z = 12x1 + 5 x2

Kendala

4 x1 + 2 x2 ≥ 80

2 x1 + 3 x2 ≥ 90 ; x1, x2 ≥ 0

Perubahan ke bentuk standar simpleks :

Minimumkan Z = 12x1 + 5 x2 + 0x3 + 0x4

Kendala

4 x1 + 2 x2 - x3 = 80

2 x1 + 3 x2 - x4 = 90 ; x1, x2, x3, x4 ≥ 0

Page 25: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

7

Dari persamaan di atas belum memiliki variabel basis sebab koefisien dari x3

dan x4 bernilai negatif. Untuk mendapatkan variabel basis maka diperlukan

penambahan variabel semu (untuk contoh di bawah variabel semu adalah x5, x6).

Bentuk standar simpleks menjadi sebagai berikut :

Minimumkan Z = 12x1 + 5 x2 + 0x3 + 0x4 + Mx5 + Mx6

Kendala

4 x1 + 2 x2 - x3 + x5 = 80

2 x1 + 3 x2 - x4 + x6 = 90 ; x1, x2, x3, x4, x5, x6 ≥ 0

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

2.2.2 Langkah-Langkah Pemecahan Program Linier dengan Metode

Simpleks

Langkah-langkah penyelesaian metode simpleks adalah sebagai berikut :

1. Memformulasikan dan menstandarisasikan model simpleks.

2. Setelah menstandarisasikan model maka dapat dibentuk tabel awal simpleks

berdasarkan informasi model yang sudah dibuat. Di bawah ini adalah tabel

awal simpleks :

Page 26: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

8

Cj C1 C2 ... Cn

xj(xB)i(CB)i x1 x2 xn bi...

Ko

efisie

n

Va

ria

bel ba

sis

Va

ria

bel ba

sis

Matriks kendala dalam

bentuk standar

A = Amxn = [aij] Koefisie

n

ruas k

ana

n k

en

da

la

da

lam

be

ntu

k s

tand

ar

Peng

ece

kan

varia

bel

yang

kelu

ar

dari

basis

zj

Cj - zj

�m

i=1(CB)i aij

�m

i=1(CB)i bi

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 (cj-Zj)

paling positif unutk soal memaksimalkan atau yang mengandung nilai (cj-Zj)

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.

� = bi/aij

5. Kemudian setelah didapatkan baris kunci maka dapat dilakukan langkah

berikutnya yaitu memasukkan variabel basis baru (variabel pada kolom kunci)

ke dalam kolom variabel basis (variabel pada baris kunci) dan mengeluarkan

variabel pada baris kunci yang lama.

6. Kemudian barulah dapat dilakukan transformasi baris-baris variabel. Berikut

ini adalah rumus-rumus transformasinya :

Page 27: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

9

��

��

��

��

��

��

����

��� �

� ����

� �

��

��

���������

�� ��

� ��

������

� �

θθθθ

��

���� �

���

Calon basis

���� �����keluar dari basis

������ �����

Kolom kunci

� 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

Gambar 2.1 Keterangan Tabel Simpleks

7. Langkah terakhir adalah melakukan uji optimalitas. Jika semua koefisien pada

baris (cj-Zj) 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.

2.3 Program Bilangan Bulat

Hasil perhitungan dengan menggunakan metode simpleks bisa jadi berupa

bilangan pecahan. Maka untuk menghasilkan variabel-variabel keputusan yang

tidak dalam bentuk pecahan namun tetap optimal dapat menggunakan sebuah

Page 28: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

10

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 :

Page 29: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

11

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

o Jika f(X) > f(Xa) maka ada 2 kemungkinan :

o X baru sudah bulat maka X baru menjadi batas bawah baru

o X baru tidak bulat maka dicabangkan lagi.

f(a, b, c, d)= 171418, 67 a ≥ 35

f(34,1667 , 10 , 10 , 0)

a ≤ 34

1

2

3

Page 30: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

12

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 x1, x2, dan x3 maka dapat

dibuat pemodelannya sebagai berikut:

Maks/min Z = c1x1 + c2x2 + c3x3

Dengan kendala : a11x1 + a12x2 + a13x3 = b1

a21x1 + a22x2 + a23x3 = b2

...

am1x1 + am2x2 + am3x3 = bm

dengan x1, x2, x3 ≥ 0

Contoh :

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 :

Tabel 2.2 Tabel Bahan

Ben-

tuk

Keun-

tungan Max Min

Bahan

Para

-fin

Stearic

Acid

Whit

e Oile

Candle

Jell

Sumb

u

Juice Rp

4.300,00

- 10 122

gr 12 gr 26 gr 3 gr 12 cm

Tart Rp

1.350,00

10 - 37 gr 4 gr 1.8 gr 0.2 gr 3 cm

Ice Rp - 10 41 gr 4 gr 0.9 gr 0.1 gr 6 cm

Page 31: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

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

b ≤ 10

d ≤ 20 dengan a, b, c, d bulat ≥ 0

Page 32: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

14

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

Page 33: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

15

Untuk iterasinya adalah sebagai berikut :

Tabel 2.3 Tabel Contoh Iterasi

�����������

�� � � � � � � � � � � �

���� ���� ���� ��� � � � � � � � � � �� ��

��

��

��� �� �� � !

�� � � � �

�� � " � ! ��

� � � � � �

�� � � �

� � �

� � �

� � �

� � �

��

��

� �

�����

����

����

���

���

��

��

��

��

"� !�

��� ��

��� "�

���

�� ��

��

#�

�$� #�

�� ��� � � �� ��� � � �� � � �

����%� ���� ����%� ��� � � � �� �� � � ��� �����

��

����

�� �� � !

� � � �

� " � ! ��

� � � � �

� � �

� � �

� �

� �

� �

��

��

��

��

���

��

� �

���

���

��

���

����

"�"�

�""�

����

���

�"�

��

��

��

��

��� ��

����

���� ��

����

�� ��

��

#�

�$� #�

���� ��� ����� � ���� ��� � � �� � � �

� ���� ����%� ��� � � � �� ���� � ������� ��� �

������

���

����

����

�� � � !

� � � �

� " � ��

� � � �

� � �

� � �

� �

� �

� �

��

��

��

��

���

��

�&!

�&�

��

� �

���

���

��

���

����

��

��&!

��&�

��

���

"���

�"��

����

��!

���

��

��

��

��

�"&���

���&��

���&�

"!&���

��&���

#�

�$� #�

���� �� ����� � ���� �� � � �� � � �

� ���� ���� ��� � � � �� ���� �� ������� ��� �����

����

����

�&� � ���&�

� � ��&!

��&� � �

��&�� � ��&�

�&�� � �&�

�&�� � �&�

� �

� �

� �

�&�"��

��

��&���

��&��

���&��

�&�"��

��

��

���&�

��&�

�&�

�&�

���

� �

��

��&�

�&�

��&�

��&�

��

����&�

����

����&�

�"!

��&���

��&���

��

��

��

�"�&�"

����

���&��

���&��

��

#�

�$� #�

���� �������� � � � ������ � � ��"&������ � ���� �

� ��� � ����� � � � ���"&��� � � �� ����������� ���"���

����

����

����

� � ���&�

� � ��&!

� � �

� � ��&�

� � �&�

� � �&�

� �

� �

� �

�&�"��

��

��&���

��&��

���&��

�&�"��

��

��

���&�

��&�

�&�

�&�

���

��

�&�

�&��

��&��

��&��

��&�

� �

��

��&�

�&�

��&�

��&�

��

����&�

����

��"�&�

�!�&�

��&���

��&���

��

��

��

#�

�$� #�

���� �������� � ��� � ������ � � ��"&������ � ���� �

� � � ����� � � � ���"&��� � ���� �� ����������� �������

Page 34: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

16

Pemodelan Integer Programming :

��� ����&$��&$��&$��

'$($������ ��

���&$��&$�� ����&$��

�$

'$($������ ��

�$

���&$� ����&$��&$��

'$($������

���&$��&$��&$� �����

$

$

'$($���!��

��� ����&$��&$��&$��

'$($������ ��

���&$��&$��&$��

'$($������

��� ����&$��&$��&$��

'$($��!"��&��

��)�*$��+��

Gambar 2.3 Pemodelan Branch-Bound

Page 35: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

17

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Gambaran Umum Sistem

�����

������� �������������

���������������������

��������������������������

� ��������������������

� �� ���

� �������������

���

� ������� ������

����������� �������������

�����������������

����� �

!�

���� � �������

�"����������#�������

�����������������

� ������������������

Gambar 3.1 Flow Chart

Program bantu penentuan jumlah lilin hias yang harus diproduksi digunakan

untuk menghitung jumlah lilin hias yang harus diproduksi untuk menghasilkan

keuntungan maksimal. Program ini dimulai dengan inputan jenis lilin hias yang

akan diproduksi, maksimal atau minimal jumlah lilin hias tiap bentuk, serta

Page 36: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

18

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

Pemilik

0

Program Bantu

Penentuan Produksi

Lilin Hias

Username, password

nama lilin hias, jumlah lilin hias, keuntungan

maksimum, data lilin yang baru, data bahan yang baru

Gambar 3.3 Contex Diagram

Page 37: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

19

3.2.3 Decompotition Diagram

Gambar 3.4 Decompotition Diagram

3.2.4 Data Flow Diagram Level 0

Gambar 3.5 Data Flow Diagram Level 0

Page 38: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

20

3.2.5 Data Flow Diagram Level 1 Proses 2

Gambar 3.6 Data Flow Diagram Level 1 Proses 2

Page 39: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

21

3.2.6 Data Flow Diagram Level 1 Proses 3

� ����

$

%� ���&����'���

$()�������������������������������*����

����������������������������� �����+

�$ &����'���

������������������������������

*��������������� �����+

%"�����������������*�� ������������

��������������� �����+

,����-

���������

%"�������,����*�� �������

���������������

. �������,����/

����� �������������������

��������*�� ��������� �������������

%"������� �����������*�� �

�������� �������������+

%"����������������*�� ���������������������

�������������������������������

�����+

�����&����'%��

$(-������������������������� ����*���������

������������������������ �����+������������������������ ����*����

����������� �����+

%"�����������������*�� ������������

��������������� �����+

���������

%"�������,����*�� �������

���������������

����� ��������������������� ����

*�� ��������� �������������

%"������� �����������*�� �

�������� �������������+

%"����������������*�� ���������������������

�������������������������������

�����+

� � � �&����'%��

$($�������������������������������

*�������������+

������������������������������

*�������������+

%"�����������������*�� ������������

��������������� �����+

����� �������������������

��������*�� ����������+

%"������� �����������*�� �

�������� �������������+

�� �����

%"�����������*�� �������

���������������+

%"����������������*�� ���������������������

�������������������������������

�����+

Gambar 3.7 Data Flow Diagram Level 1 Proses 3

3.2.7 E-R Diagram

Gambar 3.8 E-R Diagram

Page 40: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

22

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

PK kode_bahan Varchar 5 Kode bahan

nama Varchar 25 Nama bahan

satuan Varchar 10 Satuan bahan

Page 41: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

23

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

Bentuk Keuntungan

Bahan

Parafin Stearic

Acid

White

Oile

Candle

Jell Sumbu

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

Cream Rp 1.100,00 41 gr 4 gr 0.9 gr 0.1 gr 6 cm

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

bulannya dapat mengirimkan lilin hias bentuk juice sekitar 120 buah, tart 700

buah, ice cream 600 buah dan jelly 1000 buah. Dari hasil penjualan tersebut

Perusahaan Lilin Hias Rindang mempunyai omset setiap bulannya sekitar Rp.

8.000.000,00.

Page 42: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

24

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.

��01����,���2

2� ����

����#���

3

3

&01%�

�4%�

������2���52�&�'�&%&%��'%���!��1��%��0�2.�%

������������

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 lilin

hias.

Page 43: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

25

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

Page 44: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

26

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

akan dibuat serta jumlah bahan yang tersedia.

Page 45: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

27

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.

Page 46: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

28

Gambar 3.14 Tampilan Hasil Perhitungan

3.4.7 Tampilan Form Administrator

Gambar 3.15 adalah tampilan form administrator yang berguna untuk

mengupdate username.

Page 47: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

29

Gambar 3.15 Tampilan Form Administrator

Page 48: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

30

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:

public static int iterate(){

NumIterations++;

pi();

calculateReducedCosts();

Page 49: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

31

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/(CB)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

tujuan. Kemudian dapat dilakukan pemilihan baris kunci pada fungsi

chooseLeavingVariable.

Berikut adalah pendefinisian fungsi calculateReducedCosts yang digunakan

untuk menghitung Cj-Zj:

Page 50: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

32

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;

reducedCost2[i] = cost[i]-result2;

}

}

}

Page 51: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

33

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;

}else if(reducedCost2[i]==maxValue2){

if(reducedCost[i]>reducedCost[maxIndex]){

maxIndex = i;

maxValue = reducedCost[i];

maxValue2 = reducedCost2[i];

}

Page 52: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

34

}

}

}

EnteringVariable = maxIndex;

}

Pada fungsi ChooseEnteringVariable di atas variabel maxIndex adalah

variabel yang nantinya akan digunakan untuk menentukan indeks kolom kunci.

Mula-mula dilakukan pengujian apakah reducedCost2 sama dengan 0. Jika

reducedCost2 tidak sama dengan 0 ini menandakan bahwa Cj-Zj tidak memiliki

nilai M. Jika reducedCost2 sama dengan 0 maka dilakukan pemilihan

reducedCost yang paling besar untuk menentukan indeks kolom kunci. Namun

jika reducedCost2 mengandung nilai M maka dilakukan pemilihan reducedCost2

yang paling besar untuk menentukan indeks kolom kunci. Jika reducedCost2

memiliki nilai yang sama maka dilakukan pemilihan nilai reducedCost2 yang

memiliki nilai reducedCost yang paling besar.

Berikut adalah pendefinisian fungsi chooseLeavingVariable yang digunakan

untuk menentukan baris kunci :

public static void chooseLeavingVariable() {

double Ratio;

int minIndex = -1;

NumMinRatio = 0;

for (i = 0; i < numConstraints; i++) {

if (yB[i] > 0) {

Ratio = x[i]/yB[i];

if (NumMinRatio == 0) {

Page 53: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

35

MinRatio = Ratio;

minIndex = i;

NumMinRatio = 1;

} else if (Ratio < MinRatio) {

MinRatio = Ratio;

minIndex = i;

NumMinRatio = 1;

} else if (Ratio == MinRatio)

NumMinRatio++;

}

}

LeavingVariable = minIndex;

}

Pada fungsi di atas variabel minIndex merupakan variabel yang digunakan

untuk menentukan indeks baris kunci. Variabel yB adalah kolom kunci yang harus

berupa bilangan lebih besar dari 0. Sedangkan x adalah variabel yang digunakan

untuk menyimpan nilai bi seperti pada teori BAB II. Fungsi ini digunakan untuk

mencari Ratio yang paling kecil untuk menentukan indeks baris kunci pada

minIndex.

4.2 Algoritma Metode Branch and Bound

Hasil dari perhitungan simpleks yang semula bilangan pecahan digunakan

kembali dalam perhitungan ini. Mula-mula hasil dicek dalam fungsi cekBilBul,

jika hasil merupakan bilangan pecahan maka akan dilakukan perhitungan branch-

bound dalam metode ReadDataAndBranchBound. Kemudian dicek apakah

hasilnya infisibel. Jika fisibel maka hasil dari perhitungan pada

ReadDataAndBranchBound disimpan dalam variabel baru yang nantinya

Page 54: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

36

digunakan kembali dalam perhitungan sampai ditemukan hasil bilangan bulat.

Jika cabang merupakan bilangan ganjil maka akan dilakukan pengecekan apakah

nilai_dbl[i] yang merupakan nilai cabang ganjil lebih besar dari nilai_dbl[i-1]

yang merupakan nilai cabang sebelumnya atau cabang genap. Jika nilai_dbl[i-1]

lebih besar maka dilakukan penyimpanan hasil dari cabang genap yang nantinya

digunakan untuk perhitungan dalam fungsi ReadDataAndBranchBound. Namun

jika nilai_dbl[i-1] lebih kecil maka dilakukan penyimpanan hasil dari cabang

ganjil.

Jika hasil metode ReadDataAndBranchBound infisibel dan cabang

merupakan bilangan ganjil maka akan dilakukan cek apakah cabang sebelumnya

atau cabang genap infisibel. Jika cabang genap tidak infisibel maka data pada

cabang genaplah yang akan digunakan untuk percabangan berikutnya. Namun jika

cabang genap juga infisibel maka akan dilakukan pencarian cabang yang belum

dicabang dengan nilai yang paling besar. Kemudian data cabang hasil pencarian

tersebut yang nantinya digunakan sebagai percabangan lagi.

public static double[] hasilBulat() { int jmlKendala = simpleks.jmlKendala(); indCbg=4; cabang = 0; double[] value = new double[300]; for(int i=0; i<jmlVariabel; i++){ hasil[i] = simpleks.hasil[i]; } for(int i=2; i<=300; i++){ cabang =i; if(cabang == 2 || cabang == 3){ aras = cabang/2; }else{ aras = arasAray[indukCabang[cabang]] +1;

Page 55: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

37

} boolean cekBilBul = cekBilanganBulat(cabang, simpleks.hasil, hasil_cek);

if(!cekBilBul){ setNull();

ReadDataAndBranchBound(jmlVariabel, jmlKendala+aras, cabang, hasil);

if(!simpleks.infisibel){ for(int j=0; j<jmlVariabel; j++){ dataCabang[i][j] = simpleks.hasil[j]; hasil_cek[j] = simpleks.hasil[j]; } arasAray[cabang] = aras; nilai[i] = simpleks.value; nilai_dbl[i] = Double.parseDouble(nilai[i]); kendalaBranchBound(i, jmlKendala+aras); rhsAndRowType(i, jmlKendala+aras); if(i%2!=0){ double temp=0; if(levelBawah){ if(nilai_dbl[i-1]>=nilai_dbl[i]){ temp = nilai_dbl[i-1]; }else{ temp = nilai_dbl[i]; } int maxBatasBawah = maxBatasBawah(); if(nilai_dbl[maxBatasBawah]>=temp){ int cabangMax = cekSemuaCabang(cabangBlmDicabang); maxBatasBawah = maxBatasBawah();

if(nilai_dbl[cabangMax]>nilai_dbl[maxBatasBawah]){

levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } else{ hasilAkhir(maxBatasBawah); break; } }else{ if(nilai_dbl[i-1]>=nilai_dbl[i]){ hasilBerikutnya(i); indukCabang(i-1, indCbg);

Page 56: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

38

indCbg=indCbg+2; }else{ hasilBerikutnya2(i); indukCabang(i, indCbg); indCbg = indCbg+2; } } }else{ if(nilai_dbl[i-1]>=nilai_dbl[i]){ if(!nilaiLebihBesar(nilai_dbl[i-1])){ hasilBerikutnya(i); indukCabang(i-1, indCbg); indCbg=indCbg+2; }else{ int cabangMax = cekSemuaCabang(cabangBlmDicabang); int maxBatasBawah = maxBatasBawah();

if(nilai_dbl[cabangMax]>nilai_dbl[maxBatasBawah]){

levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; }else{ hasilAkhir(maxBatasBawah); break; } } }else{ if(!nilaiLebihBesar(nilai_dbl[i])){ hasilBerikutnya2(i); indukCabang(i, indCbg); indCbg = indCbg+2; }else{ int cabangMax=cekSemuaCabang(cabangBlmDicabang); int maxBatasBawah = maxBatasBawah();

if(nilai_dbl[cabangMax]>nilai_dbl[maxBatasBawah]){

levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; }else{ hasilAkhir(maxBatasBawah); break;

Page 57: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

39

} } } } } }else{ cabangInFisible[cbgInFsble] = i; cbgInFsble++; if(i%2!=0){ double temp=0; if(levelBawah){ if(inFisible(i-1)){ int maxBatasBawah = maxBatasBawah();

if(nilai_dbl[maxBatasBawah]>=nilai_dbl[i-1]){

int cabangMax = cekSemuaCabang(cabangBlmDicabang); if(nilai_dbl[maxBatasBawah]>=nilai_dbl[cabangMax]){

hasilAkhir(maxBatasBawah); break; }else{ levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } }else{ for(int j=0; j<jmlVariabel; j++){ hasil[j] = dataCabang[i-1][j]; } indukCabang(i-1, indCbg); indCbg=indCbg+2; } }else{ if(!inFisible(i-1)){ if(btsBwh!=0){ int maxBatasBawah = maxBatasBawah(); int cabangMax = cekSemuaCabang(cabangBlmDicabang);

if(nilai_dbl[maxBatasBawah]>=nilai_dbl[cabangMax]){

hasilAkhir(maxBatasBawah);

break; }else{ levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } }else{

Page 58: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

40

int cabangMax = cekSemuaCabang(cabangBlmDicabang); levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } } } else{ if(inFisible(i-1)){ if(!nilaiLebihBesar(nilai_dbl[i-1])){ for(int j=0; j<jmlVariabel; j++){ hasil[j] = dataCabang[i-1][j]; } indukCabang(i-1, indCbg); indCbg=indCbg+2; }else{ int cabangMax = cekSemuaCabang(cabangBlmDicabang); int maxBatasBawah = maxBatasBawah();

if(nilai_dbl[cabangMax]>nilai_dbl[maxBatasBawah]){

levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; }else{ hasilAkhir(maxBatasBawah); break; } } }else if(!inFisible(i-1)){ if(btsBwh!=0){ int maxBatasBawah = maxBatasBawah(); int cabangMax = cekSemuaCabang(cabangBlmDicabang);

if(nilai_dbl[maxBatasBawah]>=nilai_dbl[cabangMax]){

hasilAkhir(maxBatasBawah); break; }else{ levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } }else{ int cabangMax = cekSemuaCabang(cabangBlmDicabang); for(int j=0; j<jmlVariabel; j++){ hasil[j] = dataCabang[cabangMax][j]; hasil_cek[j] = dataCabang[cabangMax][j];

Page 59: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

41

} indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } } } } } }else if(cekBilBul){ batasBawah[btsBwh] = i-1; btsBwh++; if(i%2!=0){ setNull();

ReadDataAndBranchBound(jmlVariabel, jmlKendala+aras, cabang, asil);

if(!simpleks.infisibel){ for(int j=0; j<jmlVariabel; j++){ dataCabang[i][j] = simpleks.hasil[j]; hasil_cek[j] = simpleks.hasil[j]; } arasAray[cabang] = aras; nilai[i] = simpleks.value; nilai_dbl[i] = Double.parseDouble(nilai[i]); kendalaBranchBound(i, jmlKendala+aras); rhsAndRowType(i, jmlKendala+aras); if(nilai_dbl[i-1]<nilai_dbl[i]){ if(!nilaiLebihBesar(nilai_dbl[i])){ for(int j=0; j<jmlVariabel; j++){ hasil[j] = dataCabang[i][j]; } indukCabang(i, indCbg); indCbg=indCbg+2; } else{ int cabangMax = cekSemuaCabang(cabangBlmDicabang); int maxBatasBawah = maxBatasBawah();

if(nilai_dbl[cabangMax]>nilai_dbl[maxBatasBawah]){

levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; }else{ hasilAkhir(maxBatasBawah); break; } } }else{

Page 60: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

42

cabangMax = cekSemuaCabang(cabangBlmDicabang); if(nilai_dbl[cabangMax]>nilai_dbl[i-1]){ levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; }else{ hasilAkhir(i-1); break; } } } else{ cabangInFisible[cbgInFsble] = i; cbgInFsble++; if(inFisible(i-1)){ int maxBatasBawah = maxBatasBawah(); cabangMax = cekSemuaCabang(cabangBlmDicabang);

if(nilai_dbl[maxBatasBawah]>=nilai_dbl[cabangMax]){

hasilAkhir(maxBatasBawah); break; }else{ levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } } } }else{ if(nilai_dbl[i-1]>=nilai_dbl[i-2]){ int maxBatasBawah = maxBatasBawah(); cabangMax = cekSemuaCabang(cabangBlmDicabang);

if(nilai_dbl[maxBatasBawah]>=nilai_dbl[cabangMax]){

hasilAkhir(maxBatasBawah); break; }else{ levelBawah(cabangMax); indukCabang(cabangMax, indCbg); indCbg=indCbg+2; } } else{ for(int j=0; j<jmlVariabel; j++){ hasil[j] = dataCabang[i-2][j]; }

Page 61: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

43

setNull();

ReadDataAndBranchBound(jmlVariabel, jmlKendala+aras, cabang, hasil);

if(!simpleks.infisibel){ for(int j=0; j<jmlVariabel; j++){ dataCabang[i][j] = simpleks.hasil[j]; hasil_cek[j] = simpleks.hasil[j]; } arasAray[cabang] = aras; nilai[i] = simpleks.value; nilai_dbl[i] = Double.parseDouble(nilai[i]); kendalaBranchBound(i, jmlKendala+aras); rhsAndRowType(i, jmlKendala+aras); } else{ cabangInFisible[cbgInFsble] = i; cbgInFsble++; } } } } } return null; }

Page 62: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

44

4.3 Hasil Implementasi

4.3.1 Login

Gambar 4.2 Form Login

Pada form Login, user diminta untuk memasukkan username dan password.

Form login ini diperlukan sebagai sistem keamanan agar data tidak diubah oleh

orang-orang yang tidak berkepentingan. Form Login ini akan tertutup jika user

menekan tombol Login.

Page 63: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

45

4.3.2 Menu

Gambar 4.3 Form Menu

Pada form Menu, user diminta untuk menentukan form yang akan digunakan

dengan menekan salah satu tombol. Tombol Perhitungan digunakan untuk

menampilkan form Perhitungan yang nantinya digunakan untuk perhitungan

jumlah lilin hias. Tombol Update Bahan digunakan untuk menampilkan form

Update Bahan yang nantinya form ini digunakan untuk mengubah data bahan.

Tombol Update Lilin Hias digunakan untuk menampilkan form Update Lilin Hias

yang nantinya form ini digunakan untuk mengubah data lilin hias. Tombol

Administrator digunakan untuk menampilkan form Administrator yang nantinya

digunakan untuk update username. Setelah user menekan salah satu tombol maka

form Menu ini akan tertutup.

Page 64: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

46

4.3.3 Administrator

Gambar 4.4 Form Administrator

Form Administrator ini digunakan untuk mengubah data username. Admin

dapat menambah data username, mengeditnya ataupun menghapusnya. Untuk

menambah username maka admin diminta untuk menekan tombol ”ADD”.

Setelah ditekan tombol ”ADD” maka form dibawahnya akan aktif dan user dapat

memasukkan data username yang ingin ditambahkan. Untuk mengedit data

username maka admin sebelumnya diminta memilih/select baris username mana

yang ingin diedit pada tabel username kemudian admin dapat menekan tombol

”EDIT”. Tombol ”EDIT” ini akan mengaktifkan form yang berada dibawahnya

dan admin dapat mengedit data username. Sedangkan untuk menghapus data

username admin diminta untuk memilih/select baris username mana yang ingin

Page 65: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

47

dihapus pada tabel username, kemudian admin dapat menekean tombol

”DELETE”.

4.3.4 Update Bahan

Gambar 4.5 Form Update Bahan

Form Update Bahan ini digunakan untuk mengubah data bahan. User dapat

menambah data bahan, mengeditnya ataupun menghapusnya.Untuk menambah

data bahan maka user diminta untuk menekan tombol ”ADD”. Setelah ditekan

tombol ”ADD” maka form dibawahnya akan aktif dan user dapat memasukkan

data bahan yang ingin ditambahkan. Untuk mengedit data bahan maka user

sebelumnya diminta memilih/select baris bahan mana yang ingin diedit pada tabel

Page 66: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

48

bahan kemudian user dapat menekan tombol ”EDIT”. Tombol ”EDIT” ini akan

mengaktifkan form yang berada dibawahnya dan user dapat mengedit data bahan.

Sedangkan untuk menghapus data bahan user diminta untuk memilih/select baris

bahan mana yang ingin dihapus pada tabel bahan, kemudian user dapat menekean

tombol ”DELETE”.

4.3.5 Update Lilin Hias

Gambar 4.6 Form Update Lilin Hias

Form Update Lilin Hias ini digunakan untuk mengubah data lilin hias. User

dapat menambah data lilin hias, mengeditnya ataupun menghapusnya.Untuk

menambah data lilin hias maka user diminta untuk menekan tombol ”ADD”.

Setelah ditekan tombol ”ADD” maka user dapat memasukkan nama bahan baru,

Page 67: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

49

memilih bahan baru yang dibutuhkan, serta keuntungan yang diperoleh. Untuk

mengedit data lilin hias, user diminta untuk memilih lilin hias yang ingin diedit

berdasarkan nama lilin kemudian user dapat menekan tombol ”EDIT” untuk

mengedit data lilin. Sedangkan untuk menghapus data lilin hias, user diminta

untuk memilih lilin hias yang ingin diedit berdasarkan nama lilin kemudian user

dapat menekan tombol ”DELETE”.

4.3.6 Perhitungan

Gambar 4.7 Form Perhitungan

Form Perhitungan digunakan untuk memasukkan data-data yang dibutuhkan

agar dapat dilakukan perhitungan simpleks. Pada form ini user diminta untuk

Page 68: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

50

memilih/select bentuk-bentuk lilin hias yang akan diproduksi pada tabel sebelah

kiri kemudian nama-nama bentuk lilin hias yang dipilih dipindahkan ke tabel

sebelah kanan dengan menekan tombol ”>>”. Kemudian user diminta mengisi

data kendala minimal dan maksimal pada kolom minimal atau maksimal jika.

Kemudian user dapat menekan tombol ”OK” untuk mendapatkan bahan-bahan

yang dibutuhkan oleh bentuk-bentuk lilin hias yang telah dipilih serta satuannya.

Setelah ditampilkan nama-nama bahan yang telah dipilih maka user dapat

mengisikan jumlah data bahan yang masih tersedia. Selanjut user dapat menekan

tombol ”OK” yang berada di bawah tabel bahan yang tersedia.

Page 69: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

51

4.3.7 Hasil

Gambar 4.8 Tampilan Hasil Perhitungan

Tampilan di atas merupakan tampilan informasi hasil perhitungan.

Tampilannya di atas berupa informasi dalam bentuk text. Informasi yang

ditampilkan berupa jumlah lilin hias yang harus di produksi beserta bahan yang

tersisa.

4.4 Analisa Hasil Implementasi

Untuk mengetahui bahwa hasil dari Program Bantu Penentuan Jumlah Lilin

Hias yang Harus Diproduksi benar maka dilakukan berbagai uji coba dengan

menggunakan Program Bantu Penentuan Jumlah Lilin Hias yang Harus

Diproduksi. Salah satunya adalah dengan membandingkan hasil output dengan

Page 70: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

52

menggunakan program lain. Dalam hal ini penulis menggunakan program QM for

Windows 2 sebagai perbandingannya.

Berikut ini adalah beberapa perbandingan yang telah dilakukan antara

Program Bantu Penentuan Jumlah Lilin Hias yang Harus Diproduksi dengan

program QM for Windows 2:

1. Inputan Tanpa Kendala Maksimum dan Kendala Minimum

Berikut ini adalah contoh pemodelan masalah jika tidak menggunakan kendala

maksimum dan kendala minimum:

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 dengan a, b, c, d bulat ≥ 0

Hasil dari Program Bantu : Hasil dari QM for Windows 2:

a = Juice = 0.00 a = 0

b = Tart = 166.00 b = 166

c = Ice Cream = 0.00 c = 0

d = Jelly = 0.00 d = 0

Keuntungan = 224100.00 Solution Value = 224100

Page 71: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

53

Dari hasil di atas dapat dilihat bahwa keduanya memiliki hasil yang

sama. Dengan ini dapat dibuktikan bahwa perhitungan dari program bantu

benar untuk permasalahan tanpa kendala maksimum dan minimum.

2. Inputan dengan Kendala Minimum

Berikut adalah kendala minimum yang digunakan :

a = Juice = 10

b = Tart = 10

c = Ice Cream = 10

d = Jelly = 10

Dari kendala minimum di atas maka pemodelannya adalah sebagai

berikut :

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

b ≥ 10

c ≥ 10

d ≥ 10 dengan a, b, c, d bulat ≥ 0

Hasil dari Program Bantu : Hasil dari QM for Windows 2:

Page 72: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

54

a = Juice = 10.00 a = 10

b = Tart = 86.00 b = 86

c = Ice Cream = 10.00 c = 10

d = Jelly = 10.00 d = 10

Keuntungan = 176100.00 Solution Value = 176100

Dari hasil di atas juga dapat dilihat bahwa hasil perhitungan memenuhi

syarat yaitu setiap hasilnya harus lebih besar atau sama dengan 10. Dengan

ini dapat dibuktikan bahwa perhitungan dari program bantu benar untuk

permasalahan dengan kendala minimum.

3. Inputan dengan Kendala Maksimum

Berikut adalah kendala maksimum yang digunakan :

a = Juice = 10

b = Tart = 10

c = Ice Cream = 10

d = Jelly = 10

Dari kendala maksimum di atas maka pemodelannya adalah sebagai

berikut :

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

Page 73: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

55

3a + 0.2b + 0.1c + d ≤ 300

12a + 3b + 6c + 6d ≤ 500

a ≤ 10

b ≤ 10

c ≤ 10

d ≤ 10 dengan a, b, c, d bulat ≥ 0

Hasil dari Program Bantu : Hasil dari QM for Windows 2:

a = Juice = 10.00 a = 10

b = Tart = 10.00 b = 10

c = Ice Cream = 10.00 c = 10

d = Jelly = 10.00 d = 10

Keuntungan = 73500.00 Solution Value = 73500

Dari hasil di atas dapat dilihat bahwa hasil perhitungan memenuhi syarat

yaitu setiap hasilnya lebih kecil atau sama dengan 10. Dengan ini dapat

dibuktikan bahwa perhitungan dari program bantu benar untuk permasalahan

dengan kendala maksimum.

4. Inputan dengan Kendala Maksimum dan Minimum

Kendala minimum yang digunakan :

a = Juice = 5

c = Ice Cream = 5

Kendala minimum yang digunakan :

Page 74: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

56

b = Tart = 5

d = Jelly = 10

Dari kendala maksimum dan minimum di atas maka pemodelannya

adalah sebagai berikut :

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 ≥ 5

b ≤ 5

c ≥ 5

d ≤ 10 dengan a, b, c, d bulat ≥ 0

Hasil dari Program Bantu : Hasil dari QM for Windows 2:

a = Juice = 38.00 a = 38

b = Tart = 4.00 b = 4

c = Ice Cream = 5.00 c = 5

d = Jelly = 0.00 d = 0

Keuntungan = 174300.00 Solution Value = 174300

Page 75: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

57

Dari hasil di atas dapat dilihat bahwa seluruh hasil memenuhi syarat

kendala maksimum dan minimum. Sehingga dapat dibuktikan bahwa

perhitungan dari program bantu benar untuk permasalahan dengan kendala

maksimum dan kendala minimum.

5. Uji coba jika salah satu bahan yang tersedia hanya dapat membuat satu buah

lilin hias.

Berikut ini adalah contoh pemodelan masalah jika data bahan parafin

yang tersedia adalah 0.9 gram :

Fungsi tujuan : memaksimumkan Z = 4300a + 1350b + 1100c + 600d

Kendala : 122a + 37b + 41c + 0.9d ≤ 0.9

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 dengan a, b, c, d bulat ≥ 0

Hasil dari Program Bantu : Hasil dari QM for Windows 2:

a = Juice = 0.00 a = 0

b = Tart = 0.00 b = 0

c = Ice Cream = 0.00 c = 0

d = Jelly = 1.00 d = 1

Keuntungan = 600.00 Solution Value = 600

Page 76: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

58

Dari seluruh bentuk lilin hias, lilin jelly yang paling sedikit memerlukan

parafin, sehingga dari seluruh bahan yang tersedia hanya satu lilin jelly yang

dapat dibuat. Dari hasil di atas dapat dibuktikan bahwa hasil perhitungan

dengan menggunakan program bantu benar yaitu hanya satu lilin jelly yang

harus diproduksi dengan keuntungan maksimum Rp 600,00.

6. Jika suatu permasalahan simpleks mempunyai penyelesaian ganda.

Berikut ini adalah contoh pemodelan suatu permasalahan simpleks yang

mempunyai penyelesaian ganda:

Fungsi tujuan : memaksimumkan Z = 2X1 + 4X2

Kendala : X1 + 2X2 ≤ 5

X1 + X2 ≤ 4 dengan X1, X2 bulat ≥ 0

Hasil dari Program Bantu : Hasil dari QM for Windows 2:

X1 = 1.00 X1 = 1

X2 = 2.00 X2 = 2

Keuntungan = 10.00 Solution Value = 10

Dari hasil di atas dapat dilihat baik menggunakan program bantu

maupun program QM for Windows 2 memiliki hasil yang sama.

7. Jika permasalahan branch-bound mempunyai penyelesaian ganda.

Berikut ini adalah contoh pemodelan permasalahan branch-bound yang

mempunyai permasalahan ganda:

Page 77: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

59

Fungsi tujuan : memaksimumkan Z = X1 + X2

Kendala : X1 + 2X2 ≤ 20

3X1 + X2 ≤ 24 dengan X1, X2 bulat ≥ 0

Berikut adalah pemodelan branch-bound dari masalah di atas :

Gambar 4.9 Pemodelan branch-bound untuk Penyelesaian Ganda

Hasil dari Program Bantu : Hasil dari QM for Windows 2:

X1 = 5.00 X1 = 5

X2 = 7.00 X2 = 7

Keuntungan = 12.00 Solution Value = 12

Dari hasil di atas dapat dilihat bahwa untuk masalah yang memiliki

penyelesaian ganda baik menggunakan program bantu maupun program QM

for Windows 2 memiliki hasil yang sama yaitu mengambil cabang nomer 4.

Page 78: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

60

Setelah melakukan perbandingan dengan menggunakan program QM for

Windows 2, penulis juga melakukan beberapa uji coba sebagai berikut :

1. Uji coba jika bahan yang tersedia tidak memenuhi kebutuhan untuk membuat

satu buah lilin hias sama sekali.

Berikut ini adalah contoh pemodelan masalah jika bahan yang tersedia

tidak memenuhi kebutuhan untuk membuat satu bua lilin hias sama sekali :

Fungsi tujuan : memaksimumkan Z = 4300a + 1350b + 1100c + 600d

Kendala : 122a + 37b + 41c + 0.9d ≤ 0.9

12a + 4b + 4c + 0.1d ≤ 0.1

26a + 1.8b + 0.9c + 14d ≤ 0.9

3a + 0.2b + 0.1c + d ≤ 0.1

12a + 3b + 6c + 6d ≤ 3 dengan a, b, c, d bulat ≥ 0

Hasil dari program bantu :

Page 79: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

61

Gambar 4.10 Output Jika Inputan Bahan yang Tersedia Tidak Memenuhi

Kebutuhan untuk Membuat Satu Buah Lilin Hias

Dari gambar 4.10 dapat dilihat bahwa bahan-bahan yang diinputkan tidak

dapat membuat satu buah lilin hias pun. Dari gambar tersebut warna abu-abu

merupakan tanda bahwa kebutuhan minimum bahan tidak terpenuhi. Dengan

adanya kekurangan bahan ini maka perhitungan tidak dapat dilanjutkan.

2. Uji coba jika koefisien fungsi tujuan di ganti dengan prosentasi keuntungan.

Berikut ini adalah pemodelan masalah yang akan digunakan untuk

perbandingan jika menggunakan prosentase keuntungan:

Fungsi tujuan : memaksimumkan Z = 4300a + 1350b + 1100c + 600d

¯ ¯ ̄ ̄

Koefisien tujuan dalam prosentase : 34.4 58.7 40 9.6

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 ≥ 5

b ≤ 5

Page 80: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

62

c ≥ 5

d ≤ 10 dengan a, b, c, d bulat ≥ 0

Hasil program bantu bukan prosentase: Hasil program bantu dalam prosentase:

a = Juice = 38.00 a = 5.00

b = Tart = 4.00 b = 5.00

c = Ice Cream = 5.00 c = 70.00

d = Jelly = 0.00 d = 0.00

Keuntungan = 174300.00 Keuntungan = 105250.00

Dari perbandingan di atas dapat diambil kesimpulan bahwa koefisien

tujuan dengan menggunakan prosentase keuntungan ternyata menghasilkan

keuntungan maksimum yang lebih kecil maka koefisien fungsi tujuan dengan

menggunakan prosentase sebaiknya tidak digunakan.

Dibandingkan dengan QM for Windows 2, program bantu penentuan jumlah

lilin hias yang harus diproduksi dapat digunakan oleh orang awam yang sama

sekali tak mengerti tentang pemodelan simpleks, karena user program bantu ini

tidak perlu memasukkan satu persatu koefisien kendala serta koefisien tujuan satu

persatu seperti pada QM for Windows 2.

Dari hasil seluruh uji coba diketahui bahwa dibandingkan dengan

menggunakan program QM for Windows 2, program bantu ini akan lebih

mempermudah user untuk menginputkan data. User tidak perlu menginputkan

kebutuhan bahan lilin hias setiap akan melakukan perhitungan. Dengan

Page 81: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

63

menggunakan program bantu ini, data kebutuhan bahan tiap lilin hias telah

disimpan dalam database. Demikian pula dengan inputan kendala maksimum dan

kendala minimum, dengan menggunakan program bantu ini akan mempermudah

user karena user tidak perlu memahami terlebih dahulu bagaimana memasukkan

formula kendala dalam metode simpleks.

Program bantu ini juga telah diujicobakan pada perusahaan lilin hias

Rindang yang hasilnya adalah program bantu ini membantu produsen untuk

menentukan jumlah lilin hias yang akan diproduksi.

4.4.1 Kelebihan Program Bantu

Program bantu yang telah berhasil dibuat ini memiliki beberapa kelebihan

antara lain :

1. Data kebutuhan bahan disimpan di dalam database sehingga user tidak perlu

memasukkan data kebutuhan bahan satu per satu.

2. Program bantu dapat digunakan untuk update lilin hias dan update bahan.

3. Output program bantu dapat memberikan informasi sisa bahan yang tersedia

setelah digunakan.

4.4.2 Kekurangan Program Bantu

Disamping kelebihan yang berhasil ditunjukkan, program bantu juga

memiliki beberapa kekurangan. Kekurangan program bantu yang telah dibuat

antara lain :

Page 82: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

64

1. Data lilin hias yang dimasukkan belum mencakup seluruh lilin hias yang ada

dipasaran. Data lilin hias hanya diperoleh dari perusahaan lilin hias Rindang

saja.

2. Belum ada penanganan stok bahan yang tersedia.

3. Inputan/Output tidak dapat disimpan dalam file.

Page 83: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

65

BAB V

PENUTUP

5.1 Kesimpulan

Berdasarkan data yang diperoleh, analisa dan perancangan sistem serta

implementasi program yang tercantum pada BAB III dan BAB IV, maka dapat

ditarik kesimpulan antara lain:

1. Setelah dibandingkan dengan program QM for Windows 2, Program Bantu

Penentuan Jumlah Lilin Hias yang Harus Diproduksi lebih mudah digunakan

oleh produsen lilin hias karena tidak perlu menginputkan data kebutuhan

bahan satu persatu serta dengan program bantu ini user tidak perlu memahami

tentang perhitungan simpleks maupun branch-bound untuk melakukan

perhitungan.

2. Dari hasil perbandingan dengan program QM for Windows 2, Program Bantu

Penentuan Jumlah Lilin Hias yang Harus Diproduksi memiliki output yang

sama sehingga dapat dibuktikan bahwa hasil perhitungan dari program bantu

sudah benar.

3. Algoritma simpleks dan branch-bound dapat diterapkan pada Program Bantu

Penentuan Jumlah Lilin Hias yang Diproduksi. Algoritma simpleks digunakan

untuk menghitung jumlah lilin hias yang diproduksi serta keuntungan

maksimum yang akan diperoleh. Sedangkan algoritma branch-bound

digunakan untuk membulatkan hasil dari perhitungan simpleks yang berupa

bilangan pecahan.

Page 84: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

66

5.2 Saran

1. Program Bantu Penentuan Jumlah Lilih Hias yang Diproduksi belum

mencakup seluruh bentuk lilin hias yang ada di pasaran.

2. Dalam Program Bantu Penentuan Jumlah Lilin Hias yang Diproduksi tidak

hanya dapat diselesaikan dengan menggunakan metode simpleks saja.

Program ini juga dapat diselesaikan dengan menggunakan metode lain yang

dapat menghasilkan perhitungan optimal.

Page 85: PENERAPAN METODE SIMPLEKS UNTUK MENENTUKAN …

67

DAFTAR PUSTAKA

Aminudin, 2005, Prinsip-Prinsip Riset Operasi, Jakarta, Erlangga.

Irwanto, Djon., S.Kom., MM, 2005, Perancangan Object Oriented Software

dengan UML, Yogyakarta, Andi Offset.

Kadir, Abdul, Dasar Pemrograman Java 2, Andi, Yogyakart, 2003

Khannedy, Eko Kurniawan, Mengubah Warna Background JTable Agar Warna-

Warni,

http://eecchhoo.wordpress.com/2008/11/10/mengubah-warna-background-

jtable-agar-warna-warni/

Siang, J.J. Drs., 2006, Riset Operasi.

Siswanto, Drs., M.Sc., 2007, Operation Research, Jakarta, Erlangga.

Whitten, 2004, System Analysis and Design Methods 6th edition.

Yu, Wei, This is the Simplex Java Applet!,

http://www-

new.mcs.anl.gov/otc/Guide/CaseStudies/simplex/applet/SimplexTool.html