NIM : SIR200938
Dosen : Nahar Mardiyantoro, M. Kom
Hi, selamat pagi… disini pagi yang dingin, pagi ini saya akan memposting bagaimana menyelesaikan suatu program linear menggunakan metode simpleks kemudian dituangkan dalam program Visual Basic. Berikut adalah contoh kasusnya :
Multiband enterprises adalah suatu perusahaan yang memproduksi dua macam produk, yaitu radio portabel (PR) dan radio citizen band (CB). Manajer pemasaran menyatakan bahwa perusahaan selalu dapat menjual semua produk dihasilkan. Selanjutnya sang manajer pemasaran ini bertanya ke manajer operasi tentang besarnya kapasitas produksi/bulan. Manajer operasi menyatakan bahwa kapasitas output tergantung produk mana yang diproduksi. Selanjutnya manajer operasi menyatakan bahwa ada 3 jenis pekerjaan dilakukan dalam pembuatan produk radio tersebut, yaitu subbassembly, assembly dan inspeksi. Kedua produk tersebut membutuhkan waktu pengerjaan yang berbeda untuk setiap jenis pekerjaan tadi. Jadi kapasitas produksinya tergantung pada produk mana yang akan diproduksi.
Waktu yang tersedia untuk pekerjaan subassembly setiap bulannya adalah 326 jam, untuk assembly adalah 354 jam dan inspeksi adalah 62 jam. Sedangkan setiap unit radio CB membutuhkan 0,4 jam untuk pekerjaan subassembly, 0,5 jam untuk assemblya dan 0,05 jam untuk inspeksi. Radio portable untuk setiap unitnya membutuhkan waktu 0,5 jam untuk pekerjaan subassembly, 0,3 jam untuk assembly dan 0,1 jam inspeksi. Wakil direktur menyatakan bahwa untuk setiap CB yang terjual diperoleh keuntungan sebesar $50 dan untuk setiap PR didapat $40. Jadi beberapa kapasitas output dari multiband setiap bulannya (beberapa CB dan PR yang harus diproduksi) agar keuntungan yang diperoleh sebesar mungkin?
Cara penyelesaian :
Langkah pertama
Untuk menyelesaikan contoh kasus diatas, hal pertama yang dilakukan adalah membuat model matematikanya.
0,5 x1 + 2 x2
Sumber daya (z) adalah memaksimalkan jumlah produk
Max z = 50 x1 + 40 x2
Kendala =
0,4 x1 + 0,5 x2
≤326
0,5 x1 + 0,3 x2≤ 354
0,05 x1 + 0,1 x2≤ 62
x1, x2 ≥0
Langkah kedua
Pengubahan bentuk baku
Z = 50 x1 + 40 x2 + 0 S1 + 0 S2 + 0 S3
0,4 x1 + 0,5 x2 + S1 = 326
0,5 x1 + 0,3 x2 + S1= 354
0,05 x1 + 0,1 x2 + S1 = 62
Kolom kerja adalah nilai negative terbesar
Baris pivot adalah perbandingan nilai solusi dengan nilai pada kolom kerja.
Kemudian rubah nilai pada baris pivot dengan cara membaginya dengan 0,5 (nilai pivot/ perpotongan antara x dan S.
Lakukan iterasi sampai baris pertama pada tabel tidak ada nilai negative.
Berikut adalah perhitungannya dengan menggunakan VB.
Berikut source coding lengkapnya :
Private Sub Command1_Click()
'txt_cb.text = NK3
'txt_pr.text = NK2
If s2_cb.Caption = "CB" Then
txt_cb.Text = NK3.Text
End If
If s1_pr.Caption = "PR" Then
txt_pr.Text = NK2
End If
If Label19.Caption = "CB" Then
txt_cb.Text = NK4
End If
If Label19.Caption = "PR" Then
txt_pr.Text = NK4
End If
End Sub
'
Private Sub DISS_Click()
'kolom pivot
If Int(X1A) < Int(X2A) Then
kk1 = X1A
KK2 = X1B
KK3 = X1C
KK4 = X1D
Label21.Caption = "CB"
VGANTI_BP = "CB"
Else
kk1 = X2A
KK2 = X2B
KK3 = X2C
KK4 = X2D
Label22.Caption = "PR"
VGANTI_BP = "PR"
End If
'mencari baris pivot
If KK2 = 0 Then
a = 0
Else
a = NK2 / KK2
If KK3 = 0 Then
b = 0
Else
b = NK3 / KK3
If KK4 = 0 Then
c = 0
Else
c = NK4 / KK4
End If
End If
End If
'mencari baris baru
If a < b And b < c And a < c Then
x = a
f = KK2
P = Z2 / f
Q = X1B / f
R = X2B / f
s = S1B / f
T = S2B / f
U = S3B / f
V = NK2 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z3.Text = Z1 - (KK3 * P)
X1C.Text = X1C - (KK3 * Q)
X2C.Text = X2C - (KK3 * R)
S1C.Text = S1C - (KK3 * s)
S2C.Text = S2C - (KK3 * T)
S3C.Text = S3C - (KK3 * U)
NK3.Text = NK3 - (KK3 * V)
Z4.Text = Z4 - (KK4 * P)
X1D.Text = X1D - (KK4 * Q)
X2D.Text = X2D - (KK4 * R)
S1D.Text = S1D - (KK4 * s)
S2D.Text = S2D - (KK4 * T)
S3D.Text = S3D - (KK4 * U)
NK4.Text = NK4 - (KK4 * V)
Z2.Text = P
X1B.Text = Q
X2B.Text = R
S1B.Text = s
S2B.Text = T
S3B.Text = U
NK2.Text = V
s1_pr.Caption = VGANTI_BP
'menampilkan hasil akhir
'If s1_pr.Caption = "PR" Then
'txt_pr.text = NK2
'End If
'If a < b And b < c And a = c Then'
'tak mungkin'
ElseIf a < b And b > c And a > c Then
x = c
f = KK4
P = Z4 / f
Q = X1D / f
R = X2D / f
s = S1D / f
T = S2D / f
U = S3D / f
V = NK4 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z2.Text = Z2 - (KK2 * P)
X1B.Text = X1B - (KK2 * Q)
X2B.Text = X2B - (KK2 * R)
S1B.Text = S1B - (KK2 * s)
S2B.Text = S2B - (KK2 * T)
S3B.Text = S3B - (KK2 * U)
NK2.Text = NK2 - (KK2 * V)
Z3.Text = Z1 - (KK3 * P)
X1C.Text = X1C - (KK3 * Q)
X2C.Text = X2C - (KK3 * R)
S1C.Text = S1C - (KK3 * s)
S2C.Text = S2C - (KK3 * T)
S3C.Text = S3C - (KK3 * U)
NK3.Text = NK3 - (KK3 * V)
Z4.Text = P
X1D.Text = Q
X2D.Text = R
S1D.Text = s
S2D.Text = T
S3D.Text = U
NK4.Text = V
Label19.Caption = "CB"
ElseIf a < b And b > c And a < c Then
x = a
f = KK2
P = Z2 / f
Q = X1B / f
R = X2B / f
s = S1B / f
T = S2B / f
U = S3B / f
V = NK2 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z3.Text = Z1 - (KK3 * P)
X1C.Text = X1C - (KK3 * Q)
X2C.Text = X2C - (KK3 * R)
S1C.Text = S1C - (KK3 * s)
S2C.Text = S2C - (KK3 * T)
S3C.Text = S3C - (KK3 * U)
NK3.Text = NK3 - (KK3 * V)
Z4.Text = Z4 - (KK4 * P)
X1D.Text = X1D - (KK4 * Q)
X2D.Text = X2D - (KK4 * R)
S1D.Text = S1D - (KK4 * s)
S2D.Text = S2D - (KK4 * T)
S3D.Text = S3D - (KK4 * U)
NK4.Text = NK4 - (KK4 * V)
Z2.Text = P
X1B.Text = Q
X2B.Text = R
S1B.Text = s
S2B.Text = T
S3B.Text = U
NK2.Text = V
s1_pr.Caption = VGANTI_BP
'menampilkan hasil akhir
'f s1_pr.Caption = "PR" Then
'txt_pr.text = NK2
' End If
'ElseIf a < B And B > c And a = c Then'
'tak mungkin'
'ElseIf a < b And b = c And a > c Then
'tak mungkin'
ElseIf a < b And b = c And a < c Then
x = a
f = KK2
P = Z2 / f
Q = X1B / f
R = X2B / f
s = S1B / f
T = S2B / f
U = S3B / f
V = NK2 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z3.Text = Z1 - (KK3 * P)
X1C.Text = X1C - (KK3 * Q)
X2C.Text = X2C - (KK3 * R)
S1C.Text = S1C - (KK3 * s)
S2C.Text = S2C - (KK3 * T)
S3C.Text = S3C - (KK3 * U)
NK3.Text = NK3 - (KK3 * V)
Z4.Text = Z4 - (KK4 * P)
X1D.Text = X1D - (KK4 * Q)
X2D.Text = X2D - (KK4 * R)
S1D.Text = S1D - (KK4 * s)
S2D.Text = S2D - (KK4 * T)
S3D.Text = S3D - (KK4 * U)
NK4.Text = NK4 - (KK4 * V)
Z2.Text = P
X1B.Text = Q
X2B.Text = R
S1B.Text = s
S2B.Text = T
S3B.Text = U
NK2.Text = V
s1_pr.Caption = VGANTI_BP
'menampilkan hasil akhir
'If s1_pr.Caption = "PR" Then
' txt_pr.text = NK2
'End If
'ElseIf a < b And b = c And a = c Then
'tak mungkin'
ElseIf a > b And b < c And a > c Then
x = b
f = KK3
P = Z3 / f
Q = X1C / f
R = X2C / f
s = S1C / f
T = S2C / f
U = S3C / f
V = NK3 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z2.Text = Z2 - (KK2 * P)
X1B.Text = X1B - (KK2 * Q)
X2B.Text = X2B - (KK2 * R)
S1B.Text = S1B - (KK2 * s)
S2B.Text = S2B - (KK2 * T)
S3B.Text = S3B - (KK2 * U)
NK2.Text = NK2 - (KK2 * V)
Z4.Text = Z4 - (KK4 * P)
X1D.Text = X1D - (KK4 * Q)
X2D.Text = X2D - (KK4 * R)
S1D.Text = S1D - (KK4 * s)
S2D.Text = S2D - (KK4 * T)
S3D.Text = S3D - (KK4 * U)
NK4.Text = NK4 - (KK4 * V)
Z3.Text = P
X1C.Text = Q
X2C.Text = R
S1C.Text = s
S2C.Text = T
S3C.Text = U
NK3.Text = V
s2_cb.Caption = VGANTI_BP
'manampilkan hasil aKhir
'If s2_cb.Caption = "CB" Then
' txt_cb.text = NK3
'End If
ElseIf a > b And b < c And a < c Then
x = b
f = KK3
P = Z3 / f
Q = X1C / f
R = X2C / f
s = S1C / f
T = S2C / f
U = S3C / f
V = NK3 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z2.Text = Z2 - (KK2 * P)
X1B.Text = X1B - (KK2 * Q)
X2B.Text = X2B - (KK2 * R)
S1B.Text = S1B - (KK2 * s)
S2B.Text = S2B - (KK2 * T)
S3B.Text = S3B - (KK2 * U)
NK2.Text = NK2 - (KK2 * V)
Z4.Text = Z4 - (KK4 * P)
X1D.Text = X1D - (KK4 * Q)
X2D.Text = X2D - (KK4 * R)
S1D.Text = S1D - (KK4 * s)
S2D.Text = S2D - (KK4 * T)
S3D.Text = S3D - (KK4 * U)
NK4.Text = NK4 - (KK4 * V)
Z3.Text = P
X1C.Text = Q
X2C.Text = R
S1C.Text = s
S2C.Text = T
S3C.Text = U
NK3.Text = V
s2_cb.Caption = VGANTI_BP
'manampilkan hasil aKhir
'If s2_cb.Caption = "CB" Then
'txt_cb.text = NK3
'End If
ElseIf a > b And b < c And a = c Then
x = b
f = KK3
P = Z3 / f
Q = X1C / f
R = X2C / f
s = S1C / f
T = S2C / f
U = S3C / f
V = NK3 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z2.Text = Z2 - (KK2 * P)
X1B.Text = X1B - (KK2 * Q)
X2B.Text = X2B - (KK2 * R)
S1B.Text = S1B - (KK2 * s)
S2B.Text = S2B - (KK2 * T)
S3B.Text = S3B - (KK2 * U)
NK2.Text = NK2 - (KK2 * V)
Z4.Text = Z4 - (KK4 * P)
X1D.Text = X1D - (KK4 * Q)
X2D.Text = X2D - (KK4 * R)
S1D.Text = S1D - (KK4 * s)
S2D.Text = S2D - (KK4 * T)
S3D.Text = S3D - (KK4 * U)
NK4.Text = NK4 - (KK4 * V)
Z3.Text = P
X1C.Text = Q
X2C.Text = R
S1C.Text = s
S2C.Text = T
S3C.Text = U
NK3.Text = V
s2_cb.Caption = VGANTI_BP
'manampilkan hasil aKhir
'If s2_cb.Caption = "CB" Then
'txt_cb.text = NK3
'End If
ElseIf a > b And b > c And a > c Then
x = c
f = KK4
P = Z4 / f
Q = X1D / f
R = X2D / f
s = S1D / f
T = S2D / f
U = S3D / f
V = NK4 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NK1 - (kk1 * V)
Z2.Text = Z2 - (KK2 * P)
X1B.Text = X1B - (KK2 * Q)
X2B.Text = X2B - (KK2 * R)
S1B.Text = S1B - (KK2 * s)
S2B.Text = S2B - (KK2 * T)
S3B.Text = S3B - (KK2 * U)
NK2.Text = NK2 - (KK2 * V)
Z3.Text = Z1 - (KK3 * P)
X1C.Text = X1C - (KK3 * Q)
X2C.Text = X2C - (KK3 * R)
S1C.Text = S1C - (KK3 * s)
S2C.Text = S2C - (KK3 * T)
S3C.Text = S3C - (KK3 * U)
NK3.Text = NK3 - (KK3 * V)
Z4.Text = P
X1D.Text = Q
X2D.Text = R
S1D.Text = s
S2D.Text = T
S3D.Text = U
NK4.Text = V
Label19.Caption = VGANTI_BP
'ElseIf a > b And b > c And a < c Then
'tak mungkin'
'/ElseIf a > b And b > c And a = c Then
'tak mungkin'
'ElseIf a > b And b = c And a > c Then
'tak mungkin'
'ElseIf a > b And b = c And a < c Then
'tak mungkin'
'ElseIf a > b And b = c And a = c Then
'tak mungkin'
'ElseIf a = b And b < c And a > c Then
'tak mungkin'
'ElseIf a = b And b < c And a < c Then
'tak mungkin'
'ElseIf a = b And b < c And a = c Then
'tak mungkin'
Else
If a = b And b > c And a > c Then
x = c
f = KK4
P = Z4 / f
Q = X1D / f
R = X2D / f
s = S1D / f
T = S2D / f
U = S3D / f
V = NK4 / f
Z1.Text = Z1 - (kk1 * P)
X1A.Text = X1A - (kk1 * Q)
X2A.Text = X2A - (kk1 * R)
S1A.Text = S1A - (kk1 * s)
S2A.Text = S2A - (kk1 * T)
S3A.Text = S3A - (kk1 * U)
NK1.Text = NKZ2.Text = Z2 - (KK2 * P)
X1B.Text = X1B - (KK2 * Q)
X2B.Text = X2B - (KK2 * R)
S1B.Text = S1B - (KK2 * s)
S2B.Text = S2B - (KK2 * T)
S3B.Text = S3B - (KK2 * U)
NK2.Text = NK2 - (KK2 * V)
Z3.Text = Z1 - (KK3 * P)
X1C.Text = X1C - (KK3 * Q)
X2C.Text = X2C - (KK3 * R)
S1C.Text = S1C - (KK3 * s)
S2C.Text = S2C - (KK3 * T)
S3C.Text = S3C - (KK3 * U)
NK3.Text = NK3 - (KK3 * V)
Z4.Text = P
X1D.Text = Q
X2D.Text = R
S1D.Text = s
S2D.Text = T
S3D.Text = U
NK4.Text = V
Label19.Caption = VGANTI_BP
'ElseIf a = b And b > c And a < c Then
'tak mungkin '
'ElseIf a = b And b > c And a = c Then
'tak mungkin'
'ElseIf a = b And b = c And a > c Then
'tak mungkin'
'ElseIf a = b And b = c And a < c Then
'tak mungkin'
'ElseIf a = b And b = c And a = c Then
'tak mungkin'
'end blok yang benar
End If
End If
End Sub
Private Sub HSL_Click()
On Error GoTo salah
Z1.Text = 1
Z2.Text = 0
Z3.Text = 0
Z4.Text = 0
X1A.Text = (CB * -1)
X1B.Text = CB1
X1C.Text = CB2
X1D.Text = CB3
X2A.Text = (PR * -1)
X2B.Text = PR1
X2C.Text = PR2
X2D.Text = PR3
S1A.Text = 0
S1B.Text = 1
S1C.Text = 0
S1D.Text = 0
S2A.Text = 0
S2B.Text = 0
S2C.Text = 1
S2D.Text = 0
S3A.Text = 0
S3B.Text = 0
S3C.Text = 0
S3D.Text = 1
NK1.Text = 0
NK2.Text = TOTAL1
NK3.Text = TOTAL2
NK4.Text = TOTAL3
Exit Sub
salah:
MsgBox "ISI DULU YANG KOSONG!!!!", vbInformation
CB.SetFocus
End Sub
Private Sub KELUAR_Click()
Unload Me
End Sub
Private Sub ULANG_Click()
CB.Text = ""
PR.Text = ""
CB1.Text = ""
CB2.Text = ""
CB3.Text = ""
PR1.Text = ""
PR2.Text = ""
PR3.Text = ""
TOTAL1.Text = ""
TOTAL2.Text = ""
TOTAL3.Text = ""
Z1.Text = ""
Z2.Text = ""
Z3.Text = ""
Z4.Text = ""
X1A.Text = ""
X1B.Text = ""
X1C.Text = ""
X1D.Text = ""
X2A.Text = ""
X2B.Text = ""
X2C.Text = ""
X2D.Text = ""
S1A.Text = ""
S1B.Text = ""
S1C.Text = ""
S1D.Text = ""
S2A.Text = ""
S2B.Text = ""
S2C.Text = ""
S2D.Text = ""
S3A.Text = ""
S3B.Text = ""
S3C.Text = ""
S3D.Text = ""
NK1.Text = ""
NK2.Text = ""
NK3.Text = ""
NK4.Text = ""
txt_cb.Text = ""
txt_pr.Text = ""
CB.SetFocus
End Sub
Hew.. hew.. (^_^) mungkin sekian dulu nanti kita sambung lagi… disini dingin sekali rasanya ingin jadi beruang yang bisa hibernasi selama 6 bulan. Liburan ini mau ngapain ya.. Met liburan ya pak dosen, juga buat anak STMIK WUP 09..
boleh minta programnya
BalasHapusMina programnya dounks ,pkek ujian besok nihh
BalasHapuskirim aja lwat email eva.wijaya55@yahoo.co.id
minta donk teman programnya ke 02081986and@gmail.com ....yap teman besok ujian nih ...sama
BalasHapusminta donk teman programnya ke 02081986and@gmail.com ....yap teman besok ujian nih ...sama
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusminta programnya dong besok deadline tugas nih :( email dheaayuliya@gmail.com dong min, thx min.
BalasHapusminta programnya dong ka edimarhakim@gmail.com :))
BalasHapusboleh minta programnya kak windatryas@gmail.com
BalasHapuskak maaf mau tanya ,itu kk1 kk2 kk3 kk4 itu yg mana ya kak ??
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusBoleh minta programnya ngga ka? Untuk tugas teknik riset operasi. Terima kasih ya ka:)
BalasHapusboleh minta programnya ? untuk tugas kuliah..
BalasHapusfaiqafandiofficial@gmail.com
kk.Hadeh saya bingung inih.
BalasHapuserror selalu , kk....Tolong dong kk ku.mau belajar jugak dari program projek yang kk buat.biar bisa di kembangkan lagi..plis.GMAIL : mrobbywijaya00@gmail.com
WA:081377016902
ada link nya kah gan
BalasHapusboleh minta programya gk kak? soalya aku bingung label nya kan banyak dan aku gk tau di setiap label veriabel nya apa, mohon bantuannya kak....
BalasHapusKak minta programnya tolong buat tugas akhir semester kak🙏, kalau kakak berkenan tolong kirim ke email ini ya kak : boxerbig875@gmail.com
BalasHapus