39
BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan Gambaran Umum Perusahaan PT Selat Anyar adalah perusahaan yang bergerak dalam bidang jasa las dan bubut, jasa reparasi alat berat dan peralatan pabrik dan pertambangan, dan juga produksi spare part alat berat dan peralatan pertambangan. Perusahaan ini didirikan oleh Bapak Darmawan pada tahun 1970. Pada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah bengkel las kecil bernama Selat Anyar di Jl. Sukamulya no. 7, Tangerang, yang mempekerjakan tiga orang pegawai dengan tiga mesin las sederhana, dan menerima jasa las untuk pekerjaan logam seperti perbaikan sepeda, pintu pagar, dan sebagainya. Namun, perusahaan ini terus berkembang dan menambah peralatan las dan bubut. Karyawannya lambat laun dapat menangani pekerjaan logam yang lebih bervariasi dan kompleks. Setelah putera keempat Bapak Darmawan, yaitu Bapak Abadi Darmawan ikut terjun dalam perusahaan pada tahun 1981, perusahaan ini berkembang lebih pesat lagi dan mampu menangani pekerjaan-pekerjaan dari pertambangan pasir, batu bara, dan biji besi; seperti reparasi peralatan pertambangan, hingga memproduksi spare partnya. Bengkel Selat Anyar itu berevolusi menjadi PT Selat Anyar. Pada tahun 1986, setelah ikut bergabungnya putera sulung dan ketiga Bapak Darmawan, yaitu Bapak Barkah Darmawan dan Bapak Slamet Darmawan, PT Selat Anyar memekarkan diri dan membuka cabang di Kawasan Industri Manis, yang memiliki spesialisasi menangani

BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

Embed Size (px)

Citation preview

Page 1: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Sejarah Singkat dan Gambaran Umum Perusahaan

PT Selat Anyar adalah perusahaan yang bergerak dalam bidang jasa las dan

bubut, jasa reparasi alat berat dan peralatan pabrik dan pertambangan, dan juga produksi

spare part alat berat dan peralatan pertambangan. Perusahaan ini didirikan oleh Bapak

Darmawan pada tahun 1970.

Pada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah bengkel

las kecil bernama Selat Anyar di Jl. Sukamulya no. 7, Tangerang, yang mempekerjakan

tiga orang pegawai dengan tiga mesin las sederhana, dan menerima jasa las untuk

pekerjaan logam seperti perbaikan sepeda, pintu pagar, dan sebagainya. Namun,

perusahaan ini terus berkembang dan menambah peralatan las dan bubut. Karyawannya

lambat laun dapat menangani pekerjaan logam yang lebih bervariasi dan kompleks.

Setelah putera keempat Bapak Darmawan, yaitu Bapak Abadi Darmawan ikut

terjun dalam perusahaan pada tahun 1981, perusahaan ini berkembang lebih pesat lagi

dan mampu menangani pekerjaan-pekerjaan dari pertambangan pasir, batu bara, dan biji

besi; seperti reparasi peralatan pertambangan, hingga memproduksi spare partnya.

Bengkel Selat Anyar itu berevolusi menjadi PT Selat Anyar. Pada tahun 1986, setelah

ikut bergabungnya putera sulung dan ketiga Bapak Darmawan, yaitu Bapak Barkah

Darmawan dan Bapak Slamet Darmawan, PT Selat Anyar memekarkan diri dan

membuka cabang di Kawasan Industri Manis, yang memiliki spesialisasi menangani

Page 2: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

38  

konstruksi besi dan produksi peralatan industri, yang ditangani oleh putera ketiga Bapak

Darmawan, yaitu Bapak Slamet Darmawan.

Setelah berhasil melewati krisis ekonomi pada tahun 1998, PT Selat Anyar terus

berkembang pesat, dan akhirnya membuka cabang baru pada tahun 2008 di Jl. Imam

Bonjol Gg. Usaha I no. 1, Karawaci, Tangerang, yang ditangani langsung oleh Bapak

Abadi Darmawan. Cabang ketiga ini mempunyai spesialisasi menangani reparasi

peralatan pertambangan pasir, batu bara, dan biji besi; juga memproduksi spare part alat

berat seperti excavator dan bulldozer. Walaupun memiliki nama yang sama, ketiga

cabang PT Selat Anyar ini memiliki manajemen yang terpisah dan juga spesialisasi yang

berbeda pula, namun masih menjalin kerjasama satu sama lain.

3.2 Struktur Organisasi

Setiap perusahaan perlu dimiliki struktur organisasi yang sesuai agar perusahaan

dapat berjalan dengan baik. Hal ini penting mengingat organisasi mencakup pembagian

kerja, wewenang, serta tanggung jawab untuk mencapai tujuan perusahaan yang telah

ditetapkan. Salah satu faktor yang mempengaruhi kinerja suatu perusahaan adalah

struktur organisasi dan batasan-batasan tanggung jawab semua pihak dalam perusahaan.

Dalam membentuk dan menetapkan suatu struktur organisasi, perlu diperhatikan

bahwa organisasi harus mempunyai tujuan dan merupakan alat bagi pimpinan dalam

melakukan pengawasan terhadap bawahannya. Pendelegasian tugas, wewenang, dan

tanggung jawab dari pimpinan harus jelas, tegas, dan berjalan menurut garis yang telah

ditentukan dan dapat dipahami oleh setiap personil yang berada dalam organisasi

tersebut. Untuk memilih personil yang berada dalam organisasi tersebut, perlu dilakukan

seleksi sesuai dengan keahliannya.

Page 3: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

 

m

K

y

w

Kare

maka struktu

Karawaci ya

yang dapat d

Berik

wewenang d

1. Pimp

Pimp

a. M

d

b. M

c. M

d. L

2. Keua

Bagi

Keuanga

Purchasindan 

Transporta

ena tiap cab

ur organisas

ang mempro

dilihat pada G

GSumber:

kut ini disa

dan tanggung

pinan

pinan memil

Mengawasi k

dilakukan de

Melakukan lo

Merancang s

Langsung me

angan

ian Keuanga

n

ng

asi Pe

bang dari PT

inya pun ter

oduksi spare

Gambar 3.1.

Gambar 3.1 : Hasil Waw

ajikan meng

g jawab dari

liki wewenan

kegiatan per

mi tercapain

obby dan ne

istem kerja u

enangani ope

an memiliki w

Pimpinan

Divisi engelasan

T Selat Any

rpisah satu d

e part alat b

.

Struktur Owancara den

genai uraia

setiap bagia

ng dan tangg

rusahaan sec

nya tujuan pe

gosiasi deng

untuk setiap

erasi perusah

wewenang d

n

DivisPembub

yar memilik

dengan yang

erat, memili

rganisasi PTngan Pimpin

an tugas (jo

an pada PT S

gung jawab s

cara umum d

erusahaan.

gan relasi dan

proyek dan

haan jika dir

dan tanggung

Operasiondan HRD

si butan

ki manajeme

g lain. PT Se

iki struktur o

T Selat Anynan PT Sela

ob descripti

Selat Anyar.

sebagai berik

dan memasti

n supplier.

order yang

rasa perlu.

g jawab seba

nal D

Divisi Pengeboran

en yang terp

elat Anyar ca

organisasi se

yar at Anyar

ion) yang b

kut.

ikan semua u

diterima.

agai berikut.

DPrep

dan F

39 

pisah,

abang

eperti

berisi

usaha

Divisi paring Finishing

Page 4: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

40  

a. Bertanggung jawab langsung kepada Pimpinan.

b. Mengawasi cash flow perusahaan dan menangani langsung segala jenis

transaksi dalam perusahaan termasuk relasi dengan bank.

c. Mengawasi penagihan invoice dan juga purchasing bahan baku.

3. Operasional dan HRD

Bagian Operasional dan HRD memiliki wewenang dan tanggung jawab sebagai

berikut.

a. Bertanggung jawab langsung kepada Pimpinan.

b. Mengawasi langsung kegiatan produksi dan operasional dalam perusahaan.

c. Menyeleksi dan mewawancarai calon karyawan baru.

d. Membayarkan gaji dan bonus untuk semua karyawan.

4. Purchasing dan Transportasi

Bagian Purchasing dan Transportasi memiliki wewenang dan tanggung jawab

sebagai berikut.

a. Bertanggung jawab langsung kepada Bagian Keuangan dan bertanggung

jawab secara tidak langsung kepada Pimpinan.

b. Melakukan pembelian bahan baku dan mendistribusikan barang hasil

produksi, termasuk penagihan dan penjemputan barang.

5. Divisi Pengelasan

Divisi Pengelasan memiliki wewenang dan tanggung jawab sebagai berikut.

a. Bertanggung jawab langsung kepada Bagian Operasional dan HRD, dan

bertanggung jawab secara tidak langsung kepada Pimpinan.

b. Melakukan semua pekerjaan yang memerlukan proses pengelasan.

Page 5: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

41  

6. Divisi Pembubutan

Divisi Pembubutan memiliki wewenang dan tanggung jawab sebagai berikut.

a. Bertanggung jawab langsung kepada Bagian Operasional dan HRD, dan

bertanggung jawab secara tidak langsung kepada Pimpinan.

b. Melakukan semua pekerjaan yang memerlukan proses pembubutan.

7. Divisi Pengeboran

Divisi Pengeboran memiliki wewenang dan tanggung jawab sebagai berikut.

a. Bertanggung jawab langsung kepada Bagian Operasional dan HRD, dan

bertanggung jawab secara tidak langsung kepada Pimpinan.

b. Melakukan semua pekerjaan yang memerlukan proses pengeboran.

8. Divisi Preparing dan Finishing

Divisi Preparing dan Finishing memiliki wewenang dan tanggung jawab sebagai

berikut.

a. Bertanggung jawab langsung kepada Bagian Operasional dan HRD, dan

bertanggung jawab secara tidak langsung kepada Pimpinan.

b. Melakukan semua persiapan untuk proses operasional seperti penghalusan

pada logam dan juga penyetelan ukuran dan posisi logam.

c. Melakukan semua pekerjaan finishing atau penyelesaian seperti perakitan

dan pengecatan.

3.3 Metode Pengumpulan Data

Unit dasar yang diteliti adalah produk yang yang bersifat kritis saja, yaitu spare

part bulldozer, yang memiliki daya serap tinggi terhadap modal perusahaan dan juga

Page 6: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

42  

memiliki tingkat permintaan yang relatif tinggi dan stabil setiap bulannya. Metode

pengumpulan data yang digunakan adalah sebagai berikut.

1. Wawancara / interview

Pada tahap ini data diperoleh dengan melakukan tanya jawab secara langsung

dengan pihak-pihak yang dapat memberikan penjelasan tentang data yang

diperlukan dalam penyusunan skripsi ini.

2. Observasi

Pada tahap ini data diperoleh dengan mengadakan pertemuan dan pencatatan

langsung terhadap data perusahaan.

3.4 Permasalahan yang Dihadapi PT Selat Anyar

PT Selat Anyar merupakan sebuah perusahaan yang memproduksi suku cadang

(spareparts) alat-alat berat yang mendukung industri pertambangan pasir dan batu bara.

Selama ini, ada dua jenis produk suku cadang yang selalu dipesan tiap bulannya, yaitu

jenis x dan y. Karena permintaan akan dua jenis produk ini cukup banyak dan

berfluktuasi tiap bulannya, yaitu Guard Track Bulldozer D85 dan Brace Bulldozer D85

yang selanjutnya akan diidentifikasi sebagai produk X1 dan X2, maka PT Selat Anyar

lebih memprioritaskan sumber daya yang dimiliki untuk memproduksi dua jenis produk

ini. Karena itu dapat disimpulkan bahwa kondisi keuangan PT Selat Anyar sangat

tergantung dari penjualan dua jenis produk ini.

Page 7: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

43  

               Gambar 3.2 Guard Track Bulddozer D85 (kanan) dan Brace Bulldozer D85 (kiri)

Namun, masalah yang dihadapi adalah permintaan akan dua jenis produk ini

tidaklah konstan tiap bulannya. Walaupun relatif stabil jika dibanding dengan produk

lain, namun permintaan tiap bulan produk ini cukup fluktuatif. Menurut pengalaman-

pengalaman sebelumnya, sering kali PT Selat Anyar tidak dapat mendapat keuntungan

yang maksimal akibat kelebihan memproduksi dua jenis produk ini. Kadang-kadang

jumlah produksi dua jenis produk ini kurang dari permintaan. Hal di atas terjadi, karena

selama ini prediksi jumlah yang akan diproduksi setiap bulannya hanya berdasarkan

pengalaman atau hanya perkiraan sederhana yang tidak memiliki landasan yang kuat.

Juga cash flow yang selama ini kurang dapat dikendalikan, karena PT Selat Anyar belum

dapat memprediksi seberapa besar jumlah keuntungan yang dapat diperoleh dari

produksi yang juga sudah dikendalikan dan diprediksi pada periode (bulan) selanjutnya.

Oleh sebab itu, skripsi ini membantu PT Selat Anyar dalam mengatasi

masalahnya tersebut sekaligus membuat sebuah program aplikasi untuk mengendalikan

Page 8: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

44  

dan memprediksi produksi, serta mengoptimalkan keuntungan yang akan diperoleh PT

Selat Anyar.

3.5 Penyelesaian Masalah

Setelah melakukan observasi, diperoleh data yang dimiliki oleh PT Selat Anyar.

Data ini kemudian dianalisis untuk dijadikan variabel fungsi batas optimalisasi. Data

yang akan digunakan adalah data ongkos produksi produk X1 dan X2 secara terpisah,

dan data hasil penjualan produk x dan y secara tergabung. Data penjualan kedua jenis

produk ini tergabung karena kedua jenis produk ini adalah produk komplementer satu

dengan yang lain dan merupakan suku cadang dari satu jenis alat berat yang sama

(Bulldozer D85). Oleh karena itu sebagian besar penjualannya tergabung.

Dari data itu (penjualan dan biaya produksi) dapat dilakukan peramalan dengan

menggunakan metode peramalan regresi. Setelah mendapatkan hasil peramalan, PT

Selat Anyar perlu menentukan budget untuk biaya produksi produk X1 dan X2 itu, juga

target penjualan kedua jenis produk itu per satuan terpisah. Budget dan target itu akan

menjadi konstanta dari fungsi kendala pada tahap optimalisasi. PT Selat Anyar perlu

menentukan target keuntungan yang ingin diraih per satuan produk tersebut secara

terpisah untuk menentukan fungsi tujuan (isoprofit line) dari tahap optimalisasi. Tahap

optimalisasi dilakukan dengan metode simpleks linear programming. Pada akhirnya,

akan diperoleh hasil prediksi keuntungan yang akan didapat oleh PT Selat Anyar untuk

periode (bulan) selanjutnya.

Page 9: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

45  

3.5.1 Analisis Pengendalian Produksi

Menurut teori yang tertulis pada bab 2, pengendalian produksi terhadap produk

tertentu dipengaruhi oleh struktur pasar, di mana di dalam struktur pasar itu ada

permintaan pasar akan produk tertentu di antaranya. Oleh sebab itu, dapat ditarik

kesimpulan bahwa salah satu faktor yang dapat mengendalikan produksi terhadap suatu

produk adalah permintaan pasar akan produk tersebut.

Untuk merepresentasikan permintaan itu sendiri, dapat dilihat pendapatan dari

penjualan suatu produk, dan secara tidak langsung dapat direpresentasikan oleh biaya

produksi produk tersebut. Dengan kata lain, untuk mengendalikan produksi produk X1

dan X2, maka PT Selat Anyar perlu melihat data hasil penjualan dan biaya produksi

kedua jenis produk itu. Dengan demikian jumlah permintaan terhadap kedua jenis

produk itu dapat diprediksi setiap bulannya.

3.5.2 Peramalan dengan Metode Regresi Linier

Menurut hasil observasi, data penjualan dan biaya produksi dari produk X1 dan

X2 yang akan diproduksi yang diperoleh oleh penulis adalah sebagai berikut.

Page 10: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

46  

Tabel 3.1 Data penjualan dan biaya produksi produk X1 dan X2 Sumber: Catatan Keuangan PT Selat Anyar Periode September 2008 – Oktober

2009 Penjualan X1 dan X2 Biaya produksi X1 Biaya produksi X2 Bulan (xi)

Revenue (yi)

Bulan (xi)

Cost (yi)

Bulan (xi)

Cost (yi)

1 97 1 28 1 12

2 103 2 37 2 14 3 117 3 34 3 17 4 121 4 51 4 18 5 129 5 47 5 22 6 143 6 39 6 24 7 151 7 34 7 31 8 130 8 35 8 26 9 127 9 38 9 19 10 123 10 36 10 17 11 125 11 38 11 20 12 124 12 39 12 22 13 125 13 41 13 21 14 125 14 37 14 23 Keterangan : revenue dan cost dalam ratusan ribu rupiah

Dari data yang diperoleh, maka dapat ditarik kesimpulan bahwa PT Selat Anyar

dapat meramalkan revenue, cost X1, dan cost X2 untuk bulan ke 15. Kemudian

dilakukan tiga peramalan dengan Metode Regresi Linier untuk tiga variabel yang

berbeda, yaitu Peramalan Revenue, Peramalan Cost X1, dan Peramalan Cost X2, dengan

variabel bulan (xi) sebagai variabel bebas (independent variable), dan variabel revenue

dan cost (yi) sebagai variabel terikat (dependent variable).

1. Peramalan Revenue

Peramalan Revenue dapat dihitung dari:

13.349; 105; 1.015

1740

Page 11: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

47  

Dengan:

∑14

7,5

∑14

124,2857

Maka:

∑ 14∑ 14

13.349 14 124,2857 7,51.015 14 7,5 1,3143

124,2857 1,3143 7,5 114,4285

Jadi perkiraan revenue dengan fungsi:

Karena peramalan dilakukan untuk bulan ke 15, maka nilai x disubstitusikan oleh 15

sehingga menjadi:

114,4285 1,3143 15 134,143

Jadi diperoleh bahwa perkiraan revenue di bulan ke 15 adalah 134,143 atau secara

nyata adalah Rp 13.414.300,-.

Page 12: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

48  

1. Peramalan cost X1

Peramalan cost X1 dapat dihitung dari:

4.034; 105; 1.015

534

Dengan:

∑14

7,5

∑14

38,1429

Maka:

∑ 14∑ 14

4.034 14 38,1429 7,51.015 14 7,5 0,1275

38,1429 0,1275 7,5 37,1867

Jadi perkiraan cost produk x dengan fungsi:

Karena peramalan dilakukan untuk bulan ke 15, maka nilai x disubstitusikan

oleh 15 sehingga menjadi:

Page 13: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

49  

37,1867 0,1275 15 39,0992

Jadi diperoleh bahwa perkiraan cost produk X1 di bulan ke 15 adalah

39,0992 atau secara nyata adalah Rp 3.909.920,-.

2. Peramalan cost X2

Peramalan cost X1 dapat dihitung dari:

2.262; 105; 1.015

286

Dengan:

∑14

7,5

∑14

20,4286

Maka:

∑ 14∑ 14

2.262 14 20,4286 7,51.015 14 7,5 0,5143

20,4286 0,5143 7,5 16,5714

Jadi perkiraan cost produk y dengan fungsi:

Page 14: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

50  

Karena peramalan dilakukan untuk bulan ke 15, maka nilai x disubstitusikan oleh 15

sehingga menjadi:

16,5714 0,5143 15 24,2859

Jadi diperoleh bahwa perkiraan cost produk X2 di bulan ke 15 adalah 24,2859 atau

secara nyata adalah Rp 2.428.590,-.

3.5.3 Optimalisasi dengan Metode Simpleks Linear Programming

Setelah melakukan peramalan terhadap data penjualan dan biaya produksi, maka

perlu ditentukan target penjualan dan budget biaya produksi per satuan pada tiap jenis

produk untuk menentukan konstanta pada setiap fungsi kendala. Target keuntungan yang

ingin diraih PT Selat Anyar adalah fungsi tujuan (isoprofit line) yang akan digunakan

pada tahap optimalisasi dengan metode simpleks linear programming.

Dalam skripsi ini, kondisi ekonomi, politik, dan lain-lain telah dikondisikan

stabil, namun budget biaya produksi per satuan tiap jenis setiap bulan, target penjualan

per satuannya, dan target keuntungan per satuan pada tiap jenis produk yang dapat

diubah-ubah tergantung pada seberapa besar keuntungan yang ingin diraih dan budget

PT Selat Anyar di masa tertentu. Namun pada bulan ke 15, PT Selat Anyar menentukan

kalau target keuntungan yang ingin diraih per satuan produk X1 adalah Rp 150.000,-,

dan produk X2 adalah Rp 270.000,-.

Dari observasi, diperoleh bahwa selama 14 bulan terakhir budget untuk biaya

produksi produk X1 per satuan adalah Rp 370.000,- dan untuk produk X2 adalah Rp

200.000,-. Dengan target harga jual satuan produk X1 adalah Rp 900.000,- dan untuk

produk X2 adalah Rp 700.000,-. Dengan demikian target dan budget untuk bulan ke 15

Page 15: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

51  

tetap sama dengan 14 bulan sebelumnya. Dengan target keuntungan bersih per satuan

yang telah ditetapkan oleh PT Selat Anyar untuk produk X1 adalah Rp 150.000,- dan

untuk produk X2 adalah Rp 270.000,-. Hasil-hasil di atas menjadi tidak pasti antara

budget dan target per satuan dengan total penjualan dan total biaya produksi karena

dipengaruhi faktor-faktor seperti diskon, efisiensi produksi, biaya lain yang tidak

termasuk biaya produksi, dan lain sebagainya.

Fungsi tujuan: Z = 1,5x1 + 2,7x2

Fungsi kendala 1: 9x1 + 7x2 ≥ 134,143

Fungsi kendala 2: 3,7x1 ≤ 39,0992

Fungsi kendala 3: 2x2 ≤ 24,2859

dengan x1, x2 ≥ 0

Fungsi kendala 1 bertanda lebih besar sama dengan ( ≥ ), karena PT Selat Anyar

ingin penjualan selanjutnya akan berada di atas hasil peramalan yang sudah dilakukan.

Sedangkan pada fungsi kendala 2 dan 3 bertanda kurang dari sama dengan ( ≤ ), karena

PT Selat Anyar ingin biaya produksi sejanjutnya di bawah hasil peramalan. Variabel-

variabel x1, x2 ≥ 0 menunjukkan bahwa kedua jenis produk (X1 dan X2) harus

diproduksi, sehingga tidak mungkin bernilai nol atau negatif.

A. Penyelesaian

Bentuk bakunya adalah sebagai berikut.

Maksimum Z = 1,5x1 + 2,7x2 + 0S1 + MR1 + 0S2 + 0S3 atau

Page 16: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

52  

Z - 1,5x1 - 2,7x2 + 0S1 + MR1 + 0S2 + 0S3 = 0 dengan kendala-kendala sebagai

berikut.

9x1 + 7x2 – S1 + R1 ≥ 134,143

3,7x1 + S2 ≤ 39,0992

2x2 + S3 ≤ 24,2859

x1,x2,s1 , s2 , s3 ≥ 0

Dan untuk Baris Z dilakukan operasi sebagai berikut.

-1,5 -2,7 0 M 0 0 0

-M ( 9 7 -1 1 0 0 134,143) +

-1,5-9M -2,7-M -M 0 0 0 -134,143M

Solusi / table awal simpleks:

Tabel 3.2 Tahap Awal Simpleks VB X1 X2 S1 R1 S2 S3 NK Rasio

Z -1,5-9M -2,7-M -M 0 0 0 -134,143M

R1 9 7 -1 1 0 0 134,143

S2 3,7 0 0 0 1 0 39,0992

S3 0 2 0 0 0 1 24,2859

Karena nilai negatif terbesar ada pada kolom X1, maka kolom X1 adalah

kolom pivot dan X1 adalah variabel masuk. Rasio pembagian nilai kanan dengan

kolom pivot terkecil adalah 10,5674 bersesuaian dengan baris S2, maka baris S2

adalah baris pivot dan S2 adalah variabel keluar. Elemen pivot adalah dua.

Page 17: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

53  

Tabel 3.3 Penentuan Baris dan Kolom Pivot pada Iterasi Pertama

VB X1 X2 S1 R1 S2 S3 NK Rasio

Z -1,5-9M -2,7-M -M 0 0 0 -134,143M

R1 9 7 -1 1 0 0 134,143 14,9048

S2 3,7 0 0 0 1 0 39,0992 10,5674

S3 0 2 0 0 0 1 24,2859 ~

Nilai pertama yang dimiliki adalah nilai baris pivot baru (baris X1). Semua

nilai pada baris S2 pada tabel solusi awal dibagi dengan dua (elemen pivot).

Tabel 3.4 Baris Pivot Baru VB X1 X2 S1 R1 S2 S3 NK Rasio

Z

R1

X1 1 0 0 0 0,2703 0 10,5674

S3

Perhitungan nilai barisnya:

Baris Z:

-1,5-9M -2,7-M -M 0 0 0 -134,143M

-1,5-9M (1 0 0 0 0,2703 0 10,5674 ) -

0 -2,7-M -M 0 0,4055+2,4327M 0 15,8511-39,0364M

Page 18: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

54  

Baris R1:

9 7 -1 1 0 0 134,143

9 ( 1 0 0 0 0,2703 0 10,5674 ) -

0 7 -1 1 -2,4327 0 39,0364

Baris S3:

0 2 0 0 0 1 24,2859

0 ( 1 0 0 0 0,2703 0 10,5674 ) -

0 2 0 0 0 1 24,2859

Maka tabel iterasi 1 ditunjukkan tabel di bawah. Selanjutnya diperiksa

apakah tabel sudah optimal atau belum. Karena nilai baris Z di bawah variabel X2

dan S1 masih negatif, maka tabel belum optimal. Kolom dan baris pivotnya ditandai

pada tabel berikut ini.

Tabel 3.5 Penentuan Baris dan Kolom Pivot pada Iterasi Kedua

VB X1 X2 S1 R1 S2 S3 NK Rasio

Z 0 -2,7-M -M 0 0,4055+2,4327M 0 15,8511-39,0364M 

-

R1 0 7 -1 1 -2,4327 0 39,0364  15,5766

X1 1 0 0 0 0,2703 0 10,5674 ~

S3 0 2 0 0 0 1 24,2859 12,143

Variabel masuk dengan demikian adalah X2 dan variabel keluar adalah S3 . Hasil

perhitungan iterasi kedua adalah sebagai berikut.

Page 19: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

55  

Tabel 3.6 Hasil Iterasi Kedua VB X1 X2 S1 R1 S2 S3 NK Rasio

Z 0 0 M 0 0,4055+2,4327M 1,35+M 48,6372

R1 0 0 -1 1 -2,4327 -3,5 -45,9646 

X1 1 0 0 0 0,2703 0 10,5674

X2 0 1 0 0 0 0,5 12,143

Tabel sudah optimal, sehingga perhitungan iterasi dihentikan.

B. Membaca Tabel Optimal

Membaca tabel optimal adalah bagian penting bagi pengambil keputusan.

Ada beberapa hal yang dapat dibaca dari table optimal, yaitu:

1. Solusi optimal variable keputusan

2. Status sumber daya

3. harga bayangan (dual/shadow prices).

Menggunakan tabel optimal:

Tabel 3.7 Hasil Solusi Optimal VB X1 X2 S1 R1 S2 S3 NK

Z 0 0 M 0 0,4055+2,4327M 1,35+M 48,6372

X2 0 0 -1 1 -2,4327 -3,5 -45,9646 

X1 1 0 0 0 0,2703 0 10,5674

S3 0 1 0 0 0 0,5 12,143

Page 20: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

56  

C. Solusi optimal

Lalu diperoleh keuntungan yang optimal (maksimal) pada (x; y) = (10,5674;

12,143) dengan keuntungan 48,6372. Jadi dengan pembulatan secara nyata, pada

bulan ke 15 PT Selat Anyar perlu memproduksi 11 unit produk X1 dan 12 unit

produk X2, agar mendapat keuntungan yang maksimal, yaitu mendekati Rp

4.863.720,-. Pembulatan dilakukan karena PT Selat Anyar tidak mungkin

memproduksi kedua jenis produk tersebut dalam bentuk pecahan. Jadi keuntungan

maksimal yang akan diperoleh hanya akan mendekati angka Rp 4.863.720,- yang

merupakan hasil optimalisasi yang dilakukan.

3.6 Perancangan Program Optimalisasi Prediksi dengan Metode Regresi Linier

dan Metode Simpleks

Untuk merancang program Optimalisasi Prediksi dengan Metode Linier Regresi

dan Metode Simpleks, digunakan Microsoft Visual Studio for C#, yang akan

dioperasikan pada sistem operasi Microsoft Windows Vista.

Algoritma untuk perhitungan Optimalisasi Prediksi dengan Metode Regresi

Linier dan Metode Simpleks adalah sebagai berikut.

1. Buka database dengan nama file localhost.sql

2. Baca dan ambil data xi dan yi dari setiap kolom revenue, cost X1, dan cost X2.

3. Masukkan data xi dan yi pada kolom revenue ke rumus-rumus.

; ;

Page 21: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

57  

4. Cari rata-rata dari variabel xi dan yi dengan rumus-rumus.

5. Masukkan hasil dari langkah 3 dan 4 ke rumus.

∑∑

6. Masukkan hasil dari langkah 4 dan 5 ke rumus.

7. Masukkan hasil dari langkah 5 dan 6 ke rumus.

8. Mengulangi langkah 3 sampai 7 untuk Cost X1 dan Cost X2.

9. Masukkan tiga hasil peramalan Regresi Linier di atas ke fungsi-fungsi kendala

sebagai koefisien hasil untuk Metode Simpleks.

10. Masukkan koefisien variabel pada fungsi tujuan dan fungsi kendala.

11. Masukkan semua koefisien dari fungsi-fungsi simpleks ke tabel simpleks.

12. Menentukan kolom pivot dengan melihat nilai koefisien baris Z yang paling

negative, lalu menentukan baris pivot dengan membagi masing-masing nilai kanan

dengan masing-masing elemen kolom pivot dan memilih hasil bagi paling kecil

sebagai baris pivot.

13. Membagi semua angka pada baris pivot dengan nilai irisan antara kolom dan baris

pivot untuk menentukan baris pivot baru.

14. Mengurangi elemen-elemen semua baris pada tabel simpleks, kecuali baris pivot,

dengan hasil kali antara masing-masing elemen kolom pivot tiap baris dengan baris

pivot yang baru, untuk mengisi tabel simpleks yang baru.

Page 22: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

58  

15. Mengulangi langkah 21 sampai 23 sampai koefisien pada baris Z tidak memiliki

nilai negatif yang berarti fungsi sudah optimal.

3.7 Perancangan Program Aplikasi

Pada tahap perancangan ini, akan dibuat rancangan data, rancangan proses, dan

rancangan layar dari program aplikasi yang akan dibuat. Untuk aplikasi digunakan

bahasa pemrograman C#, sedangkan untuk databasenya digunakan MySQL.

3.7.1 Perancangan Input

Pada tahap perancangan input, akan dibuat rancangan data input yang akan

diproses pada program. Data input akan diambil dari file database yang berisikan tiga

data, yaitu data revenue, cost X1, dan cost X2 yang masing-masing terdiri dari variabel xi

dan yi yang berbentuk integer. Setelah diproses secara regresi linier akan dihasilkan tiga

data baru yang berbentuk float yang akan menjadi data yang diinput secara otomatis ke

fungsi kendala untuk proses simpleks.

Untuk melengkapi koefisien pada fungsi kendala proses simpleks, tidak lagi

diperlukan input secara manual oleh user yang bertipe data float, karena program akan

member input secara default yang dapat diupdate secara manual oleh user. Setelah

melewati proses iterasi simpleks, maka dihasilkan output akhir berupa nilai X1, X1, dan

Z yang bertipe float yang merupakan hasil akhir tujuan pembuatan program ini.

3.7.2 Perancangan Proses

Proses yang digunakan dalam aplikasi ini dijelaskan dalam flowchart pada

Gambar 3.3 dan Gambar 3.4.

Page 23: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

59  

 

 

   

            Done 

                    Not Done 

          

 

 

                Done 

               

                       Not Done  

 

 

 

 

         

 

                          Not Done               Done  

 

Gambar 3.3 Flowchart Proses Kerja Program

Welcome Screen 

Check Data 

Check Update 

Start 

Input Update 

∑∑

y* = a + bx

Check Requirement 

To Simplex Method Process 

Input Data 

DisplayData 

Display Result 

Page 24: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

60  

No 

Yes 

Note Done            

Yes 

Done  No

Gambar 3.4 Flowchart Proses Kerja Program (Lanjutan)

Dan pada Gambar 3.5 berikut ini akan ditampilkan State Transition Diagram dari

proses pada program aplikasi.

Start 

Input Update of the Coefficient 

Check Validation 

Convert Functions into the system 

Convert the system into a table

Any Negatives in bottom row? 

Pick the most negative for pivot column 

Any Positives in bottom row? 

Find ratios between RHS and Pivot Column 

Choose the smallest ratio for pivot row 

Pivot 

LinReg results feed to Simplex, put coefficients as default 

Display the Simplex Functions and Coefficients 

Stop process, display results

End 

Page 25: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

61  

button “NEXT” diklik

button “Update” diklik button “Tampilkan data” diklik

button button “SAVE”

“PREVIOUS” diklik button “NEXT” diklik

diklik

` button “UPDATE”diklik button “NEXT” diklik

button “SAVE” diklik button “NEXT” diklik

button “FINISH” diklik

Gambar 3.5 State Transition Diagram

Menampilkan tampilan awal program 

Menampilkan hasil akhir 

Menampilkan fungsi‐fungsi simpleks 

Menunggu untuk ke langkah simpleks 

Menunggu peramalan dilakukan 

Menunggu untuk menampilkan database 

Menunggu update dilakukan 

Mengubah  koefisien simpleks 

Page 26: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

62  

3.7.3 Perancangan Layar

Dalam perancangan program optimalisasi prediksi keuntungan dengan Metode

Regresi Linier dan Metode Simpleks, layar-layar antarmuka yang diperlukan dirancang

pada Microsoft Visual Studio for C#.

Pada Gambar 3.6 dapat dilihat rancangan tampilan awal program saat program

baru dijalankan. Tampilan dibuat sederhana, namun user friendly agar dapat

mempermudah penggunaan oleh pengguna program ini, pimpinan perusahaan, yang

bukan pengguna komputer secara rutin. Pada tampilan awal, pengguna hanya perlu

mengklik NEXT untuk melanjutkan program ke tahap selanjutnya.

Gambar 3.6 Rancangan tampilan awal program

Pada tampilan berikutnya hanya akan ada button yang bertuliskan “Tampilkan

Database” untuk diklik untuk langsung menampilkan database dari file localhost.sql

yang akan diolah oleh program. Karena program ini dirancang untuk lebih dinamis,

             

                  PT SELAT ANYAR 

 

            Program Optimalisasi Prediksi Keuntungan 

    Dengan Metode Linier Regresi dan Metode Simpleks 

 

Created by: 

Agung / 0900801245 

Jurusan Matematika dan Teknik Informatika 

Bina Nusantara University NEXT 

Page 27: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

63  

setelah button “Tampilkan Database” diklik maka langsung akan muncul tabel seperti

pada Gambar 3.7. Tabel menampilkan data revenue, cost X1, dan cost X2 berdasarkan

waktu ke waktu, di mana variabel waktu dapat disesuaikan dengan database yang ada

(sampai periode Okt 09). Lalu, button “Tampilkan Database” tetap ada di pojok kiri atas

untuk mengantisipasi bila ada pembaharuan data pada tabel di file localhost.sql. Button

UPDATE yang ada di pojok kanan atas diperlukan untuk melakukan pembaharuan data,

yang akan menghubungkan ke tampilan update. Button NEXT ada di pojok kanan

bawah untuk melanjutkan ke proses peramalan secara regresi linier untuk periode

selanjutnya, yaitu Nov 09.

Gambar 3.7 Rancangan tampilan database

Bila button UPDATE diklik maka akan ditampilkan tampilan seperti pada Gambar

3.8, di mana program secara otomatis menambahkan satu baris data yang menyesuaikan

kolom Periode. Setelah itu, pada baris baru, user diwajibkan mengisi data-data di kolom-

 

 

Periode  Revenue  Cost X1  Cost X2 Sept 08                                                 Okt 09       

 

Klik UPDATE untuk memperbarui Database 

Klik NEXT untuk meramal bulan ke n+1 

Tampilkan Database 

NEXT 

UPDATE 

Page 28: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

64  

kolom revenue, cost X1, dan cost X2. Lalu, button SAVE diklik untuk menyimpan data

yang baru ke file database. Button NEXT ada di pojok kanan bawah untuk melanjutkan

ke proses peramalan secara regresi linier untuk periode selanjutnya, yaitu Des 09.

Gambar 3.8 Rancangan tampilan update database

Selanjutnya, proses peramalan secara regresi linier dilakukan. Lalu, hasil

peramalan langsung ditampilkan dengan menambahkan satu baris tambahan pada tabel

pada periode Des 09 ramalan dengan hasil peramalan xxx1, xxx2, dan xxx3; seperti pada

Gambar 3.9. Pada tampilan layar ini terdapat button PREVIOUS di pojok kiri atas untuk

kembali ke tampilan sebelumnya untuk mengantisipasi update pada database, dan

button NEXT di pojok kanan bawah untuk melanjutkan ke proses selanjutnya, yaitu

proses optimalisasi dengan metode simpleks.

 

 

Periode  Revenue  Cost X1  Cost X2 Sept 08                                                 Okt 09       Nov 09       

 

Klik SAVE untuk menyimpan Database 

Klik NEXT untuk meramal periode (*selanjutnya) NEXT 

SAVE 

Page 29: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

65  

Gambar 3.9 Rancangan tampilan hasil peramalan

Selanjutnya, akan ada tampilan seperti pada Gambar 3.10 akan ada tampilan

fungsi tujuan dan tiga fungsi kendala untuk proses simpleks. Pada tiap fungsi telah

disiapkan tiga variabel agar program lebih dinamis. Hasil peramalan pada tampilan

sebelumnya, yaitu xxx1, xxx2, dan xxx3 akan langsung dimasukkan sebagai nilai kanan

ke masing-masing fungsi kendala. Pengisian koefisien fungsi tujuan dan fungsi kendala

lainnya dilakukan otomatis oleh sistem sesuai dengan hasil observasi, namun dapat

disesuaikan dengan kasus yang dihadapi dengan mengklik button UPDATE. Setelah

proses pengisian selesai, pengguna diharapkan mengklik button NEXT untuk menuju

tampilan hasil akhir.

 

 

Periode  Revenue  Cost X1  Cost X2 Sept 08                                                 Nov 09       Des 09  xxx1  xxx2  xxx3 

 

  Klik NEXT untuk menuju proses optimalisasi keuntungan  NEXT 

PREVIOUS 

Page 30: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

66  

Gambar 3.10 Rancangan tampilan input untuk proses simpleks Pada Gambar 3.11, ditampilkan layar UPDATE pada koefisien variabel fungsi

simpleks. Untuk menyimpan nilai koefisien-koefisien dengan mengklik button SAVE.

Max Z = c1x1 + c2x2 + c3x3 

a11x1 + a12x2 + a13x3 <= ‐xxx1 

a21x1 + a22x2 + a23x3 <= xxx2 

a31x1 + a32x2 + a33x3 <= xxx3 

Masukkan nilai c1 (target keuntungan per satuan produk X1)  = q 

Masukkan nilai c2 (target keuntungan per satuan produk X2)  = w 

Masukkan nilai c3 (target keuntungan per satuan produk X3)  = e 

Masukkan nilai a11 (harga jual per satuan produk X1)    = f 

Masukkan nilai a12 (harga jual per satuan produk X2)    = g 

Masukkan nilai a13 (harga jual per satuan produk X3)    = h 

Masukkan nilai a21 (budget produksi 1 per satuan produk X1)  = z 

Masukkan nilai a22 (budget produksi 1 per satuan produk X2)  = x 

Masukkan nilai a23 (budget produksi 1 per satuan produk X3)  = c 

Masukkan nilai a31 (budget produksi 2 per satuan produk X1)  = v 

Masukkan nilai a32 (budget produksi 2 per satuan produk X2)  = b 

Masukkan nilai a33 (budget produksi 2 per satuan produk X3)  = n 

Klik NEXT untuk melihat hasil  NEXT 

UPDATE 

Page 31: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

67  

Setelah button SAVE diklik, maka akan tampil tampilan sebelumnya seperti Gambar

3.10 dengan koefisien-koefisien fungsi simpleks sudah diperbaharui.

Max Z = c1x1 + c2x2 + c3x3 

a11x1 + a12x2 + a13x3 <= ‐xxx1 

a21x1 + a22x2 + a23x3 <= xxx2 

a31x1 + a32x2 + a33x3 <= xxx3 

Masukkan nilai c1 (target keuntungan per satuan produk X1)  =  

Masukkan nilai c2 (target keuntungan per satuan produk X2)  =  

Masukkan nilai c3 (target keuntungan per satuan produk X3)  =  

Masukkan nilai a11 (harga jual per satuan produk X1)    =  

Masukkan nilai a12 (harga jual per satuan produk X2)    =  

Masukkan nilai a13 (harga jual per satuan produk X3)    =  

Masukkan nilai a21 (budget produksi 1 per satuan produk X1)  =  

Masukkan nilai a22 (budget produksi 1 per satuan produk X2)  =  

Masukkan nilai a23 (budget produksi 1 per satuan produk X3)  =  

Masukkan nilai a31 (budget produksi 2 per satuan produk X1)  =  

Masukkan nilai a32 (budget produksi 2 per satuan produk X2)  =  

Masukkan nilai a33 (budget produksi 2 per satuan produk X3)  =  

Klik SAVE untuk menyimpan UPDATE 

Gambar 3.11 Tampilan UPDATE fungsi Simpleks

Setelah proses iterasi dan telah ditemukan hasil yang optimal, maka tampilan

akan berubah. Seperti pada Gambar 3.12. Bila hasil sudah optimal maka hasil-hasil

perhitungan seperi nilai-nilai variabel z, xa, xb, dan xc akan ditampilkan. Juga

ditampilkan kesimpulan perhitungan proses program dari awal hingga akhir. Pengguna

SAVE 

Page 32: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

68  

diharapkan mengklik button FINISH untuk mengakhiri program dan program secara

otomatis akan ditutup setelah button FINISH diklik.

Gambar 3.12 Rancangan tampilan akhir program dengan hasil akhir

3.8 Pseudocode

Dalam perancangan program optimalisasi prediksi keuntungan dengan Metode

Regresi Linier dan Metode Simpleks, diperlukan fungsi-fungsi yang menjadi pendukung

utama dalam proses berjalannya program. Berikut ini adalah peudocode dari fungsi-

fungsi utama pada program yang dirancang.

Fungsi Metode Linier Regresi: namespace SelatAnyar

public partial class FormLinearRegressionScreen : Form

Jadi dengan target keuntungan per satuan produk X1, X2, dan X3 = q, w, dan e; harga jual per satuan produk X1, X2, dan X3 = f, g, dan h; budget produksi 1 per satuan produk X1, X2, dan X3 = z, x, dan c; dan budget produksi 2 per satuan produk X1, X2, dan X3 = v, b, dan n.    Maka : xa = j; xb = k; xc = l; Max z = asd jadi perlu memproduksi j unit produk X1, k unit produk X2, dan l unit produk X3 agar diperoleh keuntungan maksimal Rp. Asd,‐  ket : X1 : Guard Track Bulldozer D85 X2 : Brace Bulldozer D85 

          FINISH 

Page 33: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

69  

public FormLinearRegressionScreen()

InitializeComponent()

private void buttonPrevious_Click(object sender,

EventArgs e)

this.Close()

private void buttonRegresiNext_Click(object sender,

EventArgs e)

FormInputScreen a = new FormInputScreen()

this.Hide()

a.ShowDialog()

this.Close()

private void Regresi(int limit,decimal [] rev, decimal

[] x1, decimal [] x2,string nowyear, int nowmonth)

decimal [] xiyi = new decimal[3]

decimal [] xi = new decimal[3]

decimal [] xi2 = new decimal[3]

decimal [] yi = new decimal[3]

decimal [] yi2 = new decimal[3]

decimal[] xbar = new decimal[3]

decimal[] ybar = new decimal[3]

decimal[] a = new decimal[3]

decimal[] b = new decimal[3]

decimal[] ans = new decimal[3]

for(int i=0;i<3;i++) xiyi[i] = xi[i] = xi2[i] =

yi[i] = yi2[i] = 0

for (int i = 0; i < limit; i++)

xiyi[0] += (i + 1) * rev[i]

xiyi[1] += (i + 1) * x1[i]

xiyi[2] += (i + 1) * x2[i]

xi[0] += (i+1)

xi[1] += (i+1)

xi[2] += (i+1)

Page 34: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

70  

xi2[0] += (i+1)*(i+1)

xi2[1] += (i+1)*(i+1)

xi2[2] += (i+1)*(i+1)

yi[0] += rev[i]

yi[1] += x1[i]

yi[2] += x2[i]

yi2[0] += rev[i] * rev[i]

yi2[1] += x1[i] * x1[i]

yi2[2] += x2[i] * x2[i]

for (int i = 0; i < 3; i++)

xbar[i] = Convert.ToDecimal(xi[i] / limit)

ybar[i] = Convert.ToDecimal(yi[i] / limit)

b[i] = Convert.ToDecimal((xiyi[i] -

limit*xbar[i]*ybar[i])/(xi2[i]-limit*xbar[i]*xbar[i]))

a[i] = ybar[i] - b[i] * xbar[i]

ans[i] = Convert.ToDecimal(a[i] + b[i] * (limit

+ 1))

string[] ansStr = new string[3]

for (int i = 0; i < 3; i++)

ansStr[i] = ans[i].ToString("#.####")

Function.xxx[i] = ans[i]

string[] add = Function.getMonth((nowmonth % 12) +

1) + Function.getYear(nowyear, nowmonth), ansStr[0], ansStr[1],

ansStr[2]}

dataGridViewDatabase.Rows.Add(add)

private void FormLinearRegressionScreen_Load(object

sender, EventArgs e)

DatabaseConnection cnt = new DatabaseConnection()

if (cnt.OpenConnection() == true)

string query = "select * from data order by

tahun, bulan asc"

MySqlCommand cmd = new MySqlCommand(query,

cnt.getConnection())

Page 35: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

71  

MySqlDataReader dataReader = cmd.ExecuteReader()

dataGridViewDatabase.Rows.Clear()

decimal[] rev = new decimal[1000]

decimal[] x1 = new decimal[1000]

decimal[] x2 = new decimal[1000]

string nowyear=""

int nowmonth = 0

int len = 0

while (dataReader.Read())

string tahun = dataReader[0].ToString()

int bulan = (int)dataReader[1]

string revenue = dataReader[2].ToString()

string costx1 = dataReader[3].ToString()

string costx2 = dataReader[4].ToString()

rev[len] = Convert.ToDecimal(dataReader[2])

x1[len] = Convert.ToDecimal(dataReader[3])

x2[len] = Convert.ToDecimal(dataReader[4])

string[] add = Function.getMonth(bulan) +

tahun, revenue, costx1, costx2

dataGridViewDatabase.Rows.Add(add)

len++

nowyear = tahun

nowmonth = bulan

Regresi(len,rev,x1,x2,nowyear,nowmonth)

dataReader.Close()

cnt.CloseConnection()

private void

FormLinearRegressionScreen_FormClosed(object sender,

FormClosedEventArgs e)

Fungsi Metode Simpleks: namespace SelatAnyar

Page 36: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

72  

class Function

public static decimal [] xxx = new decimal[3];

public static decimal[] c = new decimal[6];

public static decimal[,] a= new decimal[6,6];

public static decimal[] temp = new decimal[6];

public static decimal result;

public static void calctemp( int [] basic )

int i = 0, j = 0;

for (i = 0; i < 6; i++)

temp[i] = 0;

for (j = 0; j < 3; j++)

temp[i] = temp[i] + c[basic[j]] * a[j,i]

temp[i] = temp[i] - c[i]

public static void minimum(decimal[] arr,ref int

arrminpos, int n)

int i = 0

decimal arrmin = 0

arrmin = arr[0]

arrminpos = 0

for (i = 0; i < n; i++)

if (arr[i] < arrmin)

arrmin = arr[i]

arrminpos = i

public static void SimplexMethod()

for (int abc = 3; abc < 6;abc++) c[abc] = 0

a[0, 3] = 1

a[0, 4] = 0

a[0, 5] = 0

a[1, 3] = 0

a[1, 4] = 1

a[1, 5] = 0

a[2, 3] = 0

Page 37: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

73  

a[2, 4] = 0

a[2, 5] = 1

xxx[0] = -xxx[0]

const decimal INFINITY = 1000000000

int tempminpos = 0

decimal[] miniratio = new decimal[3]

int miniratiominpos = 0

decimal key=0,z=0

int gooutcol=0

int i=0, j=0

decimal[] x = new decimal[6]

int[] basic = new int[3]

int[] nonbasic = new int[3]

int flag = 0

for (i = 0; i < 6; i++) temp[i] = 0

for (i = 0; i < 3; i++)

basic[i] = (i + 3)

nonbasic[i] = i

while (flag == 0)

z = 0

calctemp(basic)

minimum(temp,ref tempminpos, 6)

for (i = 0; i < 3; i++)

x[basic[i]] = xxx[i]

x[nonbasic[i]] = 0

for (i = 0; i < 3; i++)

z = z + c[i] * x[i]

result = z

for (i = 0; i < 3; i++)

if (a[i,tempminpos] == 0)

miniratio[i] = INFINITY

continue

if (a[i,tempminpos] < 0)

miniratio[i] = INFINITY

continue

Page 38: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

74  

miniratio[i] = xxx[i] / a[i,tempminpos]

minimum(miniratio, ref miniratiominpos, 3)

for (i = 0; i < 3; i++)

if (miniratiominpos == i) gooutcol =

basic[i]

basic[miniratiominpos] = tempminpos

nonbasic[tempminpos] = gooutcol

key = a[miniratiominpos,tempminpos]

xxx[miniratiominpos] = xxx[miniratiominpos] /

key

for (i = 0; i < 6; i++)

a[miniratiominpos,i] = a[miniratiominpos,i]

/ key

for (i = 0; i < 3; i++)

if (miniratiominpos == i) continue

key = a[i,tempminpos]

for (j = 0; j < 6; j++)

a[i,j] = a[i,j] - a[miniratiominpos,j] *

key

xxx[i] = xxx[i] - xxx[miniratiominpos] * key

for (i = 0; i < 6; i++)

flag = 1

if (temp[i] < 0)

flag = 0

break

for (i = 0; i < 3; i++) xxx[i] = x[i]

public static string getMonth(int month)

string[] months = { "Jan ", "Feb ", "Mar ", "Apr ",

"Mei ", "Jun ", "Jul ", "Agu ", "Sep ", "Okt ", "Nov ", "Des " }

return months[month - 1]

public static string getYear(string year, int month)

string nowyear = year

if (month > 12)

Page 39: BAB 3 ANALISIS DAN PERANCANGAN 3.1 Sejarah Singkat dan ...thesis.binus.ac.id/doc/Bab3/2010-1-00502-mtif bab 3.pdfPada awal berdirinya, perusahaan keluarga ini hanya merupakan sebuah

75  

int temp = Convert.ToInt32(year)

temp += 1

nowyear = Convert.ToString(temp)

return nowyear

public static bool isnumber(char c)

if (c >= '0' && c <= '9') return true;

return false

public static bool getInput(string str)

if (str == "" || str.Length == 0 ) return false

bool number = true

try

decimal.Parse(str)

catch

number = false

return number