You are on page 1of 14

Modul 9.

PENELITIAN OPERASIONAL
PEMROGRAMAN DINAMIS
Oleh :
Eliyani
PROGRAM KELAS KARYAWAN
PROGRAM STUDI TEKNIK INDUSTRI
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS MERCU BUANA
JAKARTA
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 1
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
2007
Pendahuluan
Pemrograman dinamis (dynamic programming/DP) adalah
prosedur matematis yang terutama dirancang untuk memperbaiki efisiensi
perhitungan masalah pemrograman matematis tertentu dengan
menguraikannya menjadi bagian-bagian yang lebih kecil sehingga lebih
sederhana dalam perhitungan. Pemrograman dinamis pada umumnya
menjawab masalah dalam tahap-tahap dengan setiap tahap memiliki satu
variabel optimasi. Perhitungan di tahap yang berbeda dihubungkan
dengan perhitungan rekursif dengan cara yang menghasilkan pemecahan
optimal yang mungkin bagi seluruh masalah.
Dikatakan dinamis, karena penggunaan metode ini yang
melibatkan pengambilan keputusan yang berkaitan dengan waktu. Namun
tidak selalu pentahapan berbasis waktu yang dapat dilakukan dengan DP,
sehingga nama yang lebih tepat untuk kondisi yang demikian adalah
pemrograman multitahap (multistage programming).
Unsur-unsur model DP
Contoh : masalah penganggaran modal
Sebuah perusahaan mempunyai usulan dari ketiga pabriknya untuk
kemungkinan mengembangkan sarana produksi. Perusahaan tersebut
menyediakan anggaran $5 juta untuk alokasi pada ketiga pabrik. Setiap
pabrik diminta untuk menyampaikan usulannya yang memberikan jumlah
biaya (c) dan jumlah pendapatan (R) untuk setiap usulan. Tabel 1
meringkaskan biaya dan pendapatan (dalam jutaan dollar). Usulan biaya
nol diperkenalkan untuk memungkinkan tidak dialokasikannya dana pada
masing-masing pabrik. Sasaran dari perusahaan tersebut adalah untuk
memaksimumkan jumlah pendapatan yang dihasilkan dari alokasi $5 juta
pada ketiga pabrik.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 2
1
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
Tabel 1. Usulan Pengembangan Sarana Produksi
Usulan Pabrik 1 Pabrik 2 Pabrik 3
c
1
R
1
c
2
R
2
c
3
R
3
1 0 0 0 0 0 0
2 1 5 2 8 1 3
3 2 6 3 9 - -
4 - - 4 12 - -
Cara yang langsung untuk menjawab masalah ini adalah melalui
enumerasi lengkap. Masalah ini memiliki 3 x 4 x 2 = 24 kemungkinan
pemecahan, beberapa di antaranya tidak layak karena memerlukan
modal yang lebih besar dari $5 juta. Gagasan dari enumerasi yang
lengkap adalah menghitung jumlah biaya dari masing-masing kombinasi.
Jika tidak melebihi modal yang tersedia, pendapatan total diperhitungkan.
Pemecahan optimum adalah kombinasi yang mungkin yang menghasilkan
jumlah pendapatan tertinggi. Contoh, usulan 2, 3, dan 1 untuk pabrik 1, 2
dan 3 memerlukan biaya $4 juta (<$5 juta.) dan menghasilkan pendapatan
total $14 juta. Sebaliknya, kombinasi yang terdiri dari usulan 3, 4, dan 2
tidak layak karena biayanya adalah $7 juta.
Jadi, kekurangan enumerasi lengkap:
1. mencakup kombinasi dengan kemungkinan tidak layak.
2. penghitungan menjadi tidak efisien karena adanya kombinasi yang
tidak layak.
3. kombinasi-kombinasi yang tidak layak yang ditemukan di awal tetap
dipertimbangkan pada perhitungan kombinasi berikutnya.
Model DP
Konsep : penyelesaian masalah dibagi dalam beberapa tahap,
namun harus ada cara untuk menghubungkan tahap-tahap tersebut.
Setiap tahap memiliki penyelesaian optimal.
Pada masalah penganggaran modal di atas:
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 3
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
Masalah dapat diselesaikan dalam 3 tahap, sebab kita menginginkan
kombinasi biaya dari ketiga pabrik yang memberikan pendapatan atau
keuntungan maksimum.
Katakanlah pada tahap 1, kita berusaha mencari usulan terbaik dari
pabrik 1, pada tahap 2 kita berusaha mencari usulan terbaik dari
kombinasi antara pabrik 2 dan pabrik 1, dan pada tahap ketiga, kita
mencari kombinasi terbaik pabrik 1, 2 dan 3.
Usulan terbaik pada setiap tahap tentu akan menghabiskan
sejumlah modal, padahal jumlah modal yang tersedia terbatas yaitu $5
juta. Karena itu, jumlah modal yang telah dialokasikan pada tahap 1
menjadi pertimbangan pada tahap 2 dst. Jadi faktor pembatas kita adalah
modal.
Katakanlah :
x
1
= jumlah modal yang dialokasikan untuk tahap 1
x
2
= jumlah modal yang dialokasikan untuk tahap 1 dan 2
x
3
= jumlah modal yang dialokasikan untuk tahap 1, 2 dan 3
Tahap 1.
Pada tahap 1, pengunaan modal yang mungkin adalah dari $0 juta hingga
$5 juta
sehingga usulan optimal untuk masing-masing alternatif modal adalah
seperti disajikan pada Tabel 1.
Tabel 1. Alternatif penggunaan modal pada tahap 1.
Jika modal yang
tersedia x
1
=
Maka, usulan optimalnya
adalah:
Dan jumlah pendapatan
tahap 1 (R
1
) adalah :
0 1 0
1 2 5
2 3 6
3 3 6
4 3 6
5 3 6
x
1
> 2 mewakili pengeluaran yang berlebihan untuk tahap 1 sebab tidak
terjadi lagi penambahan pendapatan.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 4
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
Tahap 2. Pengunaan modal yang mungkin adalah dari $0 juta hingga $5
juta. Namun :
¹
¹
¹
¹
¹
)
¹
¹
¹
¹
¹
¹
'
¹

,
_

¸
¸
+

,
_

¸
¸

,
_

¸
¸
·
1
1
1
1
1
1
]
1

¸

1
2
1
tan
2
tan
2
max
2
1
tan
x keadaan diketahui
dengan tahap untuk
terbesar pendapa
tahap untuk layak
yang alternatif
dari pendapa
x diketahui
dengan tahap
pada layak yang
alternatif semua
dan
tahap
untuk
terbesar
Pendapa
di mana x
1
= x
2
– modal yang dialokasikan pada alternatif tahap 2.
x
2
= 0
Maka usulan yang mungkin adalah usulan 1 baik untuk pabrik 1 maupun 2
dengan total pendapatan 0 + 0 = 0.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 5
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
x
2
= 1
Hanya ada satu kemungkinan yang layak, yaitu usulan 1 untuk pabrik 2
yang bernilai 0 dengan usulan 2 pabrik 1 yang memberikan pendapatan 5,
karena kombinasi lain menghasilkan biaya yang paling tidak 2. Sehingga:
Pendapatan terbesar dengan diket. x
2
= 1 = 0 + 5 = 5.
x
2
= 2
Di sini kita memiliki dua alternatif usulan pabrik 2 yang layak : usulan 1
dan usulan 2 dengan biaya 0 dan 2 yang masing-masing menghasilkan
pendapatan sebesar 0 dan 8. Jadi, nilai x
1
yang sesuai dengan usulan 1
dan 2 adalah sesuai dengan rumus : x
1
= x
2
- c
2
yaitu x
1
= 2 – 0 = 2 dan 2
– 2 = 0. Usulan optimal pabrik 1 yang memberikan x
1
= 2 dan x
1
= 0
berdasarkan Tabel 1 di atas adalah usulan 3 dan usulan 1 dengan
pendapatan masing-masing sebesar 6 dan 0, sehingga :
Pendapatan terbesar dengan diket. x
2
= 2 = max (0 + 6 = 6, 8 + 0 = 8) = 8
yang bersesuaian dengan usulan 2 untuk pabrik 2.
x
2
= 3
Di sini ada dua alternatif yang layak, yaitu usulan 1, 2 dan 3. Nilai x
1
yang
sesuai adalah 3 – 0 = 3 dan 3 – 2 = 1, dan 3 – 3 = 0. Jadi kita memperoleh
:
Pendapatan terbesar dengan diket. x
2
= 3 = max (0 + 6 = 6, 8 + 5 = 13, 9 +
0 = 9) = 13
yang bersesuaian dengan usulan 2 untuk pabrik 2.
x
2
= 4
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 6
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
Alternatif yang layak adalah usulan 1, 2, 3 dan 4. Nilai-nilai x
1
yang sesuai
masing-masing adalah 4 – 0 = 4, 4 – 2 = 2, 4 – 3 = 1 dan 4 – 4 = 0,
sehingga:
Pendapatan terbesar dengan diket. x
2
= 4 = max (0 + 6, 8 + 6, 9 + 5, 12 +
0) = 14
yang bersesuaian dengan usulan 2 atau 3.
x
2
= 5
Kita memiliki alternatif layak yang sama seperti dalam x
2
= 4. Nilai-nilai x
1
yang sesuai masing-masing adalah 5, 3, 2 dan 1. Jadi:
Pendapatan terbesar dengan diket. x
2
= 5 = max (0 + 6, 8 + 6, 9 + 6, 12 +
5) = 17
yang bersesuaian dengan usulan 4.
Ringkasan perhitungan tahap 2 disajikan pada Tabel 2.
Tabel 2. Alternatif penggunaan modal pada tahap 2.
Jika modal yang
tersedia x
1
=
Maka, usulan
optimalnya adalah:
Dan jumlah pendapatan
tahap 1 (R
1
) adalah :
0 1 0
1 1 5
2 2 8
3 2 13
4 2 atau 3 14
5 4 17
Tahap 3.
Rumus untuk menghitung pendapatan terbesar sama dengan tahap
2 kecuali bahwa x
2
dan x
1
digantikan oleh x
3
dan x
2
dan tahap 2 dan tahap
1 digantikan oleh tahap 3 dan tahap 2. Karena sudah tahap terakhir, maka
x
3
hanya memiliki satu nilai spesifik, yaitu x
3
= 5. Karena x
3
memiliki dua
usulan yang biayanya tidak mencapai $5 juta, maka kedua usulan
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 7
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
tersebut layak. Nilai-nilai x
2
yang sesuai dengan usulan 1 dan 2 yaitu 5 – 0
= 5 dan 5 – 1 = 4. Dengan menggunakan Tabel 2, kita memperoleh:
Pendapatan terbesar dengan diket. x
3
= 5 = max (0 + 17, 3 + 14) =
17 yang bersesuaian dengan usulan 1 atau 2.
Definisi Keadaan
Keadaan sistem mungkin merupakan konsep yang paling penting
dalam model pemrograman dinamis. Keadaan ini mewakili hubungan
antara tahap-tahap sehingga ketika setiap tahap dioptimumkan secara
terpisah, keputusan yang dihasilkan dengan sendirinya layak untuk
seluruh masalah.
Namun keadaan ini seringkali tidak jelas sehingga sulit ditemukan
cara menghubungkan tahap-tahap tersebut. Dua pertanyaan berikut dapat
menjadi cara untuk menemukan keadaan :
1. Hubungan apa yang mempersatukan tahap-tahap tersebut?
2. Informasi apa yang diperlukan untuk mengambil keputusan yang
layak pada tahap sekarang tanpa memeriksa kelayakan keputusan
tahap sebelumnya?
Perhatikan contoh-contoh berikut:
Contoh 1. Pada masalah penganggaran yang sudah dibahas sebelumnya,
keadaan yang menghubungkan antar tahap adalah alokasi modal.
Pertimbangannya adalah fakta bahwa semua pabrik (yang menjadi tahap)
bersaing untuk bagian modal yang terbatas.
Contoh 2. Pertimbangkan situasi penggantian peralatan di mana pada
akhir setiap tahun sebuah keputusan diambil untuk menggunakan mesin
pada tahun berikutnya atau menggantinya segera. Jika sebuah mesin
disimpan lebih lama, laba yang diperolehnya menurun. Sebaliknya
mengganti sebuah mesin mengeluarkan biaya penggantian. Masalahnya
adalah memutuskan kapan sebuah mesin harus diganti untuk
memaksimumkan jumlah laba bersih.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 8
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
Dalam masalah ini, tahap j mewakili tahun j. Alternatif pada setiap tahap
adalah mempertahankan mesin atau menggantinya. Untuk mendefinisikan
keadaan sistem : apa hubungan antara dua tahap berturut-turut?
Informasi apa yang diperlukan dari tahap-tahap sebelumnya untuk
mengambil keputusan (mempertahankan atau mengganti) dalam tahap
sekarang? Jawabannya adalah : usia mesin. Jadi keadaan sistem pada
suatu tahap ditentukan sebagai usia mesin pada awal periode yang
berkaitan. Jadi usia mesin akan menjadi x
1
, x
2
dan seterusnya.
PERSAMAAN REKURSIF
Perhitungan yang dilakukan pada pemrograman dinamis bersifat
rekursif, perhitungan pada suatu tahap didasarkan pada tahap sebelum
atau sesudahnya. Misalnya perhitungan pada tahap 2 tergantung pada
perhitungan tahap 1 dan perhitungan pada tahap 3 tergantung pada
perhitungan tahap 2. Dengan perkataan lain, perhitungan pada tahap
sekarang memanfaatkan ringkasan informasi tahap sebelumnya.
Ringkasan ini memberikan pendapatan optimal dari semua tahap dipilih
ambil secara optimal tanpa melihat keputusan yang diambil sebelumnya.
Sifat ini merupakan prinsip optimalitas yang merupakan daar bagi
keabsahan perhitungan DP.
Persamaan rekursif, secara matematis, dinyatakan dengan simbol-
simbol:
R
j
(k
j
) = pendapatan alternatif k
j
pada tahap j
f
j
(x
j
) = keuntungan optimal pada tahap 1, 2,… dan jika j keadaan x
j
c
j
(k
j
) = harga k
j
alternatif pada tahapj
Persamaan rekursif dapat ditulis sebagai:
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 9
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
{ }
[ ] { } 3 , 2 , ) ( ) ( max ) (
) ( max ) (
1
1 1 1 1
1 1 1
· − + ·
·



j k c x f k R x f
k R x f
j j j j j j
x k c
j j
x k c
j j j
Perhitungan persamaan rekursif dilakukan dalam bentuk tabel
standar seperti yang digambarkan pada perhitungan berikut. Tabel
standar kasus penganggaran modal adalah:
Tahap 1
{ } ) ( max ) (
1 1
3 , 2 , 1
1 1
1
1 1 1
k R x f
k
x k c
·

·
x
1
R
1
(k
1
) Pemecahan Optimal
k
1
=1 k
1
=2 k
1
=3 f
1
(x
1
)
*
1
k
0 0 - - 0 1
1 0 5 - 5 2
2 0 5 6 6 3
3 0 5 6 6 3
4 0 5 6 6 3
5 0 5 6 6 3
Tahap 2
[ ] { } ) ( ) ( max ) (
2 2 2 1 2 2
4 , 3 , 2 , 1
2 2
2
2 2 2
k c x f k R x f
k
x k c
− + ·
·

PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 10
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
x
2
[ ] ) ( ) (
2 2 2 1 2 2
k c x f k R − + Solusi Optimal
k
2
=1 k
2
=2 k
2
=3 k
2
=4 f
2
(x
2
)
*
2
k
0 0+0=0 - - - 0 1
1 0+5=5 - - - 5 1
2 0+6=6 8+0=8 - - 8 2
3 0+6=6 8+5=13 9+0=9 - 13 2
4 0+6=6 8+6=14 9+5=14 12+0=12 14 2 atau
3
5 0+6=6 8+6=14 9+6=15 12+5=17 17 4
Tahap 3
[ ] { } ) ( ) ( max ) (
3 3 3 3 3 3
2 , 1
3 3
3
3 3 3
k c x f k R x f
k
x k c
− + ·
·

x
3
[ ] ) ( ) (
3 3 3 3 3 3
k c x f k R − + Solusi Optimal
k
3
=1 k
3
=2 f
3
(x
3
)
*
3
k
5 0+17=17 3+14=17 17 1 atau
2
Pemecahan optimum dapat dibaca secara langsung dari tabel di atas
dimulai dengan tahap 3. Untuk x
3
= 5, usulan optimalnya adalah
*
3
k
=1
atau
*
3
k
=2. Pertimbangkan
*
3
k
=1 terlebih dahulu.Karena c
3
(1) = 0, hal ini
membuat x
2
=x
3
- c
3
(1)=5 untuk tahap 2 dan tahap 1. Tahap 2 menunjukkan
bahwa x
2
= 5 menghasilkan
*
2
k =4. Karena c
2
(4) = 4, maka x
1
= 5-4 = 1.
Dari tahap 1, x
1
= 1 memberikan
*
1
k =2. Jadi kombinasi optimal dari usulan
untuk tahap 1, 2 dan 3 adalah (2,4,1).
Persamaan Rekursif Mundur
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 11
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
Perhitungan di atas mencerminkan persamaan rekursif maju, dari tahap
awal menuju tahap akhir. Yang umum dilakukan adalah rekursif mundur,
dari tahap terakhir berlanjut ke belakang ke tahap 1. Perbedaan utama
antara kedua prosedur adalah dalam cara mendefinisikan keadaan
sistem. Contoh kasus penganggaran modal di atas, dapat diselesaikan
dengan metode rekursif mundur sebagai:
Keadaan sistem disimbolkan dengan y
j
sehingga:
y
1
= jumlah modal yang dialokasikan pada tahap 1, 2 dan 3.
y
2
= jumlah modal yang dialokasikan pada tahap 2 dan 3.
y
3
= jumlah modal yang dialokasikan pada tahap 3.
f
3
(y
3
) = pendapatan optimal untuk tahap 3 dengan diketahui y
3
f
2
(y
2
) = pendapatan optimal untuk tahap 2 dan 3 dengan diketahui y
2
f
1
(y
1
) = pendapatan optimal untuk tahap 1,2 dan 3 dengan diketahui y
1
Persamaan rekursif mundur dengan demikian ditulis sebagai:
{ }
[ ] { } 2 , 1 , ) ( ) ( max ) (
) ( max ) (
1
3 3 3 3
3 3 3
3
· − + ·
·
+


j k c y f k R y f
k R y f
j j j j j j
y k c
k
j j
x k c
k
j j j
j
Urutan perhitungan tahap dengan demikian adalah:
Tahap 3.
{ } ) ( max ) (
3 3
2 , 1
3 3
3 3 3
3
k R y f
x k c
k

·
·
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 12
f
3
f
3
f
3
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
y
3
R
3
(k
3
) Solusi Optimal
k
3
=1 k
3
=2 f
3
(y
3
)
*
3
k
0 0
0
0
0
0
0
- 0 1
1 3 3 2
2 3 3 2
3 3 3 2
4 3 3 2
5 3 3 2
Tahap 2.
[ ] { } ) ( ) ( max ) (
2 2 2 3 2 2
4 , 3 , 2 , 1
2 2
2
2 2 2
k c y f k R y f
k
x k c
− + ·
·

x
2
[ ] ) ( ) (
2 2 2 3 2 2
k c y f k R − + Solusi Optimal
k
2
=1 k
2
=2 k
2
=3 k
2
=4 f
2
(x
2
)
*
2
k
0 0+0=0 - - - 0 1
1 0+3=3 - - - 3 1
2 0+3=3 8+0=8 - - 8 2
3 0+3=3 8+3=11 9+0=9 - 11 2
4 0+3=3 8+3=11 9+3=12 12+0=12 12 3 atau
4
5 0+3=3 8+3=11 9+3=12 12+3=15 15 4
Tahap 1.
[ ] { } ) ( ) ( max ) (
1 1 1 2 1 1
3 , 2 , 1
1 1
1
1 1 1
k c y f k R y f
k
x k c
− + ·
·

[ ] ) ( ) (
1 1 1 2 1 1
k c y f k R − + Solusi Optimal
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 13
MODUL 9
RISET OPERASIONAL
PEMROGRAMAN DINAMIS
y
1 k
1
=1 k
1
=2 k
1
=3 f
1
(y
1
)
*
1
k
5 0+15=15 5+12=17 6+11=17 17 2 atau 3
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Eliyani
RISET OPERASIONAL 14