Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malan”

Jurusan : Teknik Informatika

1 Pengertian Linear Programming

Linear Programmin adalah suatu model umum yang dapat digunakan dalam pemecahan masalah pengalokasian sumber-sumber yang terbatas secara optimal Model yang digunakan dalam memecahkan masalah alokasi sumberdaya perusahaan adalah model matematis Semua fungsi matematis yang disajikan dalam model haruslah dalam bentuk fungsi linear.

2 Masalah maksiamasi

Masalah maksimasi merupakan upaya dalam menentukan cara untuk jumlah unit pada setiap jenis produk yang diproduksi setiap hariagar keuntungan yang diperoleh bisa maksimal. Maksimasi sendiri dapat berupa memaksimalkan keuntungan atau hasil. Contoh: PT. HARAPAN TEKSTIL memiliki sebuah pabrik yang akan memproduksi 2 jenis produk, yaitu kain sutera dan kain wol. Untuk memproduksi kedua produk diperlukan bahan baku benang sutera, bahan baku benang wol dan tenaga kerja. Maksimum penyediaan benang sutera adalah 60 kg per hari, benang wol 30 kg per hari dan tenaga kerja 40 jam per hari. Kebutuhan setiap unit produk akan bahan baku dan jam tenaga kerja dapat dilihat dalam tabel berikut:

alt text

Kedua jenis produk memberikan keuntungan sebesar Rp.40.000.000,- untuk kain sutera dan Rp.30.000.000,- untuk kain wol. Masalahnya adalah bagaimana menentukan jumlah unit setiap jenis produk yang akan diproduksi setiap hari agar keuntungan yang diperoleh bisa maksimal.

3 Langkah-langkah

  1. Menetukan Variabel X1 = kain sutera

X2 = kain wol

Fungsi Tujuan

Zmax = 40X1 + 30X2

library (lpSolve)
# Memasukkan koefisien dari fungsi tujuan pada f.obj
f.obj <- c(40, 30)
  1. Fungsi Kendala / batasan 1.2X1 + 3X2 ≤ 60 (benang sutera)

2.2X2 ≤ 30 (benang wol)

3.2X1 + X2 ≤ 40 (tenaga kerja)

# Memasukkan koefiesian fungsi kendala dalam bentuk matriks 
# Dengan nrow menunjukkan banyaknya kendala yaitu 3 dan angka yang 
# diinput disusun perbaris sehingga byrow = TRUE
f.con <- matrix(c(2, 3,
                  0, 2,
                  2, 1), nrow = 3, byrow = TRUE)
# Memasukkan tanda pertidaksamaan pada setiap kendala
f.dir <- c("<=",
           "<=",
           "<=")
# Memasukkan koefisien ruas kanan
f.rhs <- c(60,
           30,
           40)
  1. Mendapatkam solusi optimal
# Keuntungan Maksimum
lp("max", f.obj, f.con, f.dir, f.rhs)
## Success: the objective function is 900
# Nilai Variabel agar mencapai keuntungan maksimum
lp("max", f.obj, f.con, f.dir, f.rhs)$solution
## [1] 15 10
# Koefisien sensitivitas
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$sens.coef.from
## [1] 20 20
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$sens.coef.to
## [1] 60 60
# Bayangan/harga ganda dari kendala dan variabel keputusan
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals
## [1]  5  0 15  0  0
# Batas bawah batasan harga bayangan/ganda dan masing masing variabel keputusan
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals.from
## [1]  4e+01 -1e+30  3e+01 -1e+30 -1e+30
# Batas atas batasan harga bayangan/ganda dan masing masing variabel keputusan
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals.to
## [1] 7e+01 1e+30 6e+01 1e+30 1e+30

4 Kesimpulan

Nilai akhir maksimum yang diperoleh saat memenuhi kendala yang diberikan adalah 4500 di mana x = 37.5 dan y = 0. Koefisien sensitivitas berubah dari 7.5e+01 - 1.0e+30 menjadi 1.0e+30 1.2e+02. Harga ganda dari kendala adalah 60 dan -45. Sedangkan untuk masing-masing variabel keputusan adalah 0 dan 0. Batas bawah batasan harga ganda adalah -1.00e+30 dan 0.00e+00, sedangkan untuk variabel keputusan berturut-turut adalah -1.00e+30 dan -3.75e+00. Terakhir, batas atas batasan harga ganda adalah 1.00e+30 dan 8.00e+01, sedangkan untuk variabel keputusan masing-masing adalah 1.00e+30 dan 3.75e+01.