BAB 2 LANDASAN TEORI
2.1
Tinjauan Pustaka 2.1.1
Pengertian, Struktur, Kelebihan dan Kekurangan, serta Potensi Dynamic Programming Dynamic Programming adalah suatu teknik kuantitatif yang digunakan
untuk membuat suatu rangkaian keputusan yang saling berkaitan. (Hillier & Lieberman, Introduction To Operations Research, sixth edition) Dynamic Programming adalah prosedur matematis yang terutama dirancang untuk memperbaiki efisiensi perhitungan masalah pemrograman matematis tertentu dengan menguraikannya menjadi bagian-bagian masalah yang lebih kecil. (Hamdy.A Taha, Operations Research : An Introduction, seventh edition) Jadi dynamic programming berdasarkan kedua definisi di atas dapat juga didefinisikan sebagai suatu pendekatan matematik yang memiliki prosedur sistematis yang dirancang sedemikian rupa dengan tujuan untuk mengoptimalkan penyelesaian suatu masalah tertentu yang diuraikan menjadi sub-sub masalah yang lebih kecil yang terkait satu sama lain dengan tetap memperhatikan kondisi dan batasan permasalahan tersebut.
18
Struktur dynamic programming untuk dapat dimengerti secara lebih jelas dan lebih spesifik, umumnya dideskripsikan dengan suatu sistem notasi. Struktur dynamic programming disebut juga dengan model dynamic programming. Notasi dan simbol yang digunakan dalam model dynamic programming adalah beragam, namun secara umum dapat dinyatakan sebagai berikut :
i
= Tahap keputusan ke- i .
n
= Banyak tahap keputusan.
Xi
= Variabel keputusan pada tahap keputusan ke- i .
Si (Si − 1, Xi ) = Status pada tahap keputusan ke- i . ri (Si, Xi )
= Return pada tahap keputusan ke- i .
fi (Si, Xi )
= Nilai keputusan pada tahap keputusan ke- i , untuk status Si dan variabel keputusan Xi .
fi ∗ (Si )
= Nilai keputusan optimal pada tahap keputusan ke- i , untuk status Si .
Gambar 2.1 Struktur dan Sistem Notasi Dynamic Programming
19
Dynamic programming sebagai suatu teknik optimasi memiliki beberapa kelebihan, diantaranya : •
Proses pemecahan suatu masalah yang kompleks menjadi sub-sub masalah yang lebih kecil membuat sumber permasalahan dalam rangkaian proses masalah tersebut menjadi lebih jelas untuk diketahui.
•
Pendekatan dynamic programming dapat diaplikasikan untuk berbagai macam masalah pemrograman matematik, karena dynamic programming cenderung lebih fleksibel daripada teknik optimasi lain.
•
Prosedur perhitungan dynamic programming juga memperkenankan bentuk analisis sensitivitas terdapat pada setiap variabel status (state) maupun pada variabel yang ada di masing-masing tahap keputusan (stage).
•
Dynamic programming dapat menyesuaikan sistematika perhitungannya menurut ukuran masalah yang tidak selalu tetap dengan tetap melakukan perhitungan satu per satu secara lengkap dan menyeluruh. Disamping memiliki kelebihan, dynamic programming juga memiliki
beberapa kekurangan, diantaranya : •
Penggunaan dynamic programming jika tidak dilakukan secara tepat, akan mengakibatkan ketidakefisienan biaya maupun waktu. Karena dalam menggunakan dynamic programming diperlukan keahlian, pengetahuan, dan seni untuk merumuskan suatu masalah yang kompleks, terutama yang berkaitan dengan penetapan fungsi transformasi dari permasalahan tersebut.
20
•
Dynamic programming tidak memiliki suatu bentuk formulasi matematik yang baku untuk digunakan secara konsekuen, sehingga perhitungan untuk menghasilkan keputusan optimal yang dilakukan terbatas pada kondisi tertentu.
•
Hambatan
terbesar
pada
dynamic
programming
adalah
masalah
dimensionalitas, yaitu masalah dimana peningkatan variabel keadaan yang digunakan dalam perhitungan pemrograman dinamis akan menambah beban memori komputer serta menambah lama waktu perhitungan. Seiring dengan perkembangan zaman, potensi dynamic programming menjadi semakin penting karena ruang lingkup dynamic programming sangat luas
dan
penerapannya
mampu
dikembangkan
untuk
memecahkan
permasalahan yang selalu berubah dan semakin kompleks. Konsep dan prosedur dynamic programming memiliki dampak yang sangat berarti, bukan saja untuk perkembangan dunia akademik tetapi juga untuk perkembangan dunia industri –baik industri manufaktur maupun industri jasa-. Bahkan tidak tertutup kemungkinan, jika dynamic programming mampu memperbaiki kekurangannya terhadap hal-hal yang berkaitan dengan tuntutan adanya standar formulasi matematik yang baku maupun kemampuan untuk mengatasi hambatan dimensionalitas, maka dynamic programming akan memiliki potensi untuk menjadi suatu teknik super yang mampu memecahkan berbagai macam masalah optimasi.
21
2.1.2
Prinsip-prinsip Dynamic Programming
Dynamic programming sebagai suatu pendekatan matematik memiliki beberapa prinsip dasar yang terkait erat satu sama lain. Prinsip-prinsip dasar tersebut, yaitu : Prinsip pertama dalam model dynamic programming adalah bahwa masalah dapat dibagi menjadi bagian-bagian masalah yang lebih kecil. Masalah yang lebih kecil atau sub masalah ini disebut sebagai tahap keputusan (stage). Setiap masalah yang akan diselesaikan, terlebih dahulu dibagi-bagi menjadi beberapa masalah kecil dengan maksud memudahkan evaluasi masalah untuk mendapatkan keputusan optimal dari tiap-tiap tahap yang pada akhirnya akan menghasilkan satu set keputusan yang optimal. Oleh karena itu model dynamic programming disebut juga model multi stage
programming (model multi tahap). Proses urutan pembagian masalah dalam model dynamic programming ditunjukkan pada gambar berikut :
Gambar 2.2 Proses Urutan Pembagian Masalah Secara Mundur Prinsip kedua dalam model dynamic programming adalah tentang status (state). Pengertian status (state) dalam dynamic programming adalah arus informasi dari suatu tahap ke tahap berikutnya. Arus informasi yang
22
masuk ke suatu tahap disebut status input, sedangkan arus informasi yang keluar dari suatu tahap disebut status output. Status input penting, karena keputusan pada tahap berikutnya tergantung dari status input sebelumnya. Jadi, status input untuk tahap keputusan n-1 merupakan status output untuk tahap keputusan sebelumnya, yaitu tahap keputusan n. Sedangkan status output dari tahap keputusan n akan menjadi status input untuk tahap keputusan berikutnya, yaitu tahap keputusan n-1. (Lihat Gambar 2.3)
Gambar 2.3 Hubungan Status Input dengan Tahap Keputusan Prinsip ketiga dalam model dynamic programming adalah tentang variabel keputusan. Variabel keputusan dalam dynamic programming dinyatakan dalam berbagai bentuk keputusan alternatif yang dapat dipilih pada saat pengambilan keputusan pada tahap tertentu. Berbagai alternatif keputusan yang dapat diambil dalam setiap tahap keputusan dapat dibatasi dengan sejumlah persyaratan yang dikenakan dalam struktur masalah. Prinsip keempat dalam model dynamic programming adalah tentang fungsi transformasi. Fungsi transformasi memberikan penjelasan tentang bagaimana hubungan antara tahap keputusan yang satu dengan tahap
23
keputusan yang lain dalam dynamic programming diformulasikan. Selain itu, fungsi transformasi juga menyatakan tentang hubungan fungsional nilai status pada setiap tahap keputusan. Hubungan status dalam tahap keputusan yang berurutan bersifat berulang, artinya jika terdapat tahap keputusan n dalam hubungannya dengan tahap keputusan n-1 maka perhitungan untuk nilai status
n-1 menggunakan nilai status n dari keputusan pada tahap n.
2.1.3
Unsur-unsur Model Dynamic Programming 2.1.3.1 Tahap, Keadaan Sistem, dan Alternatif Keputusan Tahap keputusan (stage) sebagai salah satu unsur penting dalam model dynamic programming merupakan bagian-bagian masalah yang lebih sederhana. Serangkaian tahap keputusan yang berurutan dan terkait satu sama lain akan membentuk keseluruhan masalah. Karena itu model dynamic programming disebut juga model
multi stage programming (model multi tahap). Keadaan sistem merupakan salah satu konsep yang paling penting dalam suatu model dynamic programming, karena keadaan sistem mewakili hubungan antara tahap-tahap keputusan yang berurutan. Dimana ketika setiap tahap dioptimumkan secara terpisah, maka keputusan yang dihasilkan tersebut layak dan optimum untuk keseluruhan masalah. Lebih lanjut, hal tersebut memungkinkan pengambilan keputusan adalah optimum untuk tahap-tahap selanjutnya
24
tanpa harus melakukan pemeriksaan terhadap pengaruh keputusan yang telah diambil sebelumnya. Definisi keadaan biasanya adalah konsep yang paling tidak jelas dalam perumusan dynamic programming. Tidak ada jalan yang mudah untuk mendefinisikan keadaan, tetapi petunjuk untuk itu dapat ditemukan dengan mengajukan dua pertanyaan berikut : •
Hubungan apa yang mempersatukan tahap-tahap itu?
•
Informasi apa yang diperlukan untuk mengambil keputusan yang
layak pada tahap sekarang tanpa memeriksa kelayakan dari keputusan yang diambil pada tahap-tahap sebelumnya? Alternatif keputusan merupakan pilihan keputusan yang harus ditentukan agar keputusan pada tiap-tiap tahap optimum, sehingga keputusan akhir untuk keseluruhan masalah juga optimum. Alternatif keputusan dalam model dynamic programming dinyatakan dalam bentuk variabel keputusan yang memiliki batasan-batasan tertentu.
2.1.3.2 Persamaan Rekursif Maju dan Mundur Penyelesaian
masalah
dalam
pendekatan
dynamic
programming dapat dilakukan secara maju (forward recursive equation) ataupun secara mundur (backward recursive equation). Perbedaan utama antara forward recursive equation dengan backward
25
recursive equation terletak dalam cara mendefinisikan status (state) atau yang sering disebut dengan definisi keadaan. •
Forward recursive equation (perhitungan dari depan ke belakang) f 0 (X0 ) = 0 fj * (Xj) = opt {Rj (kj) @ fj * −1 (Xj @ kj)}
•
Backward recursive equation (perhitungan dari belakang ke depan) fn (Yn ) = 0 fj * (Yj) = opt {Rj (kj) @ fj * +1 (Yj @ kj)}, j = 1,2,.....n
Keterangan : f * (X ) atau f * (Y )
= optimum return function
X atau Y
= status (state)
X @ k atau Y @ k
= fungsi transisi
j
= tahap ke-
k
= variabel keputusan
@
= simbol atau lambang operasi matematik Pada umumnya, penyelesaian masalah dengan forward
recursive equation dan backward recursive equation akan mengarah kepada efisiensi perhitungan yang berbeda jika tahap-tahap keputusan dalam model dynamic programming-nya dikondisikan dalam uruturutan yang spesifik.
26
Secara umum, masalah optimasi dapat diselesaikan dengan prosedur forward recursive equation maupun backward recursive equation. Tetapi untuk masalah tertentu, khususnya masalah yang tahap-tahap keputusannya berhubungan dengan periode waktu, penyelesaian masalah tidak dapat menggunakan prosedur forward recursive equation namun harus menggunakan prosedur backward recursive equation.
2.1.4
Karakteristik Masalah Dynamic Programming
Konsep dasar dynamic programming yang diungkapkan oleh Richard Bellman dalam bukunya yang berjudul Principle of Optimality memiliki beberapa karakteristik. Karakteristik atau ciri-ciri pokok masalah dynamic programming tersebut adalah sebagai berikut, yaitu : •
Dalam masalah dynamic programming, keputusan tentang suatu masalah ditandai dengan optimasi pada tahap berikutnya. Artinya, jika suatu masalah diselesaikan dengan dynamic programming, maka masalah tersebut harus dipilah menjadi n sub masalah.
•
Dynamic programming berkaitan dengan masalah-masalah dimana keputusan dari berbagai alternatif pilihan ditentukan pada masing-masing tahap.
Semua
alternatif
pilihan
yang
mungkin
tersebut
harus
ditransformasikan ke dalam bentuk formulasi matematik tertentu sesuai dengan sistem status yang ada pada setiap tahap.
27
•
Terdapat return function yang berhubungan dengan setiap keputusan pada setiap tahap. Return function berfungsi untuk melakukan evaluasi terhadap keputusan yang ditentukan dalam arti apa yang diberikan untuk tujuan keseluruhan dari masalah tersebut.
•
Hubungan antara tiap tahap proses keputusan dengan tahap lain yang berdekatan disatukan melalui fungsi transisi. Fungsi transisi ini dapat berupa kuantitas yang diskrit atau kontinu, tergantung pada sifat-sifat masalah.
•
Menggunakan suatu hubungan rekursif untuk menghubungkan keputusan optimum pada tahap n dengan tahap n-1. Ada dua macam prosedur rekursif yaitu forward dan backward. (Lihat sub bab 2.1.3.2)
•
Penggunaan hubungan rekursif membuat prosedur penyelesaian terhadap masalah terus bergerak dari tahap awal ke tahap selanjutnya sampai keputusan optimum tahap terakhir didapatkan. Sekali keputusan optimum tahap n telah didapatkan, maka n komponen keputusan dapat ditemukan kembali dengan melacak balik melalui fungsi transisi tahap n.
2.1.5
Aplikasi Dynamic Programming
Pada sub bab ini akan disajikan dua contoh tentang model dynamic programming. Setiap contoh tersebut menggambarkan suatu aplikasi dynamic programming yang berbeda, hal ini dikarenakan karakteristik masalah dynamic programming yang tidak memiliki suatu formulasi matematik yang
28
baku. Perlu diketahui pula bahwa setiap contoh hanya merupakan suatu tipe penyelesaian masalah dengan dynamic programming, sedangkan aplikasi yang sesungguhnya sangat banyak untuk ditemukan.
2.1.5.1 Masalah Alokasi
Dalam model dynamic programming untuk masalah alokasi berikut, keputusan optimum pada setiap tahap dapat diperoleh dengan menggunakan metode optimasi klasik sederhana. Tabel 2.1 Masalah Alokasi Kegiatan Jam Kerja 0 1 2 3 4
1 0 1 3 6 9
2 0 2 5 8 11
3 0 3 7 10 12
4 0 2 5 8 10
Keuntungan pada empat macam kegiatan merupakan fungsi jam kerja yang dialokasikan pada masing-masing kegiatan. (Lihat tabel 2.1). Jika setiap hari tersedia 4 jam kerja, bagaimana alokasi waktu agar keuntungan per hari maksimum. Solusi : Misalkan Pj(Xj) adalah keuntungan dari alokasi X jam kerja kepada kegiatan j yang berbentuk fungsi linier. Masalah tersebut dapat diformulasikan sebagai suatu model linear programming sebagai berikut :
29
Maksimasi
Z = P1(X1) + P2(X2) + P3(X3) + P4(X4)
Batasan :
X1 + X2 + X3 + X4 = 4 X1, X2, X3, X4 ≥ 0
Karena permasalahan ini hanya memiliki satu kendala dan pendekatan linear programming hanya akan memberikan satu variabel dalam solusinya, maka pendekatan linear programming kurang tepat untuk
diterapkan
pada
permasalahan
ini.
Oleh
karena
itu,
permasalahan ini akan diselesaikan dengan pendekatan dynamic programming. Misalkan setiap kegiatan merupakan tahap (stage) dalam perumusan dynamic programming, sehingga disini ada 4 tahap. Variabel keputusan Xj (j = 1, 2, 3, 4) adalah banyaknya jam kerja yang dialokasikan pada tahap ke-j. Karena semua nilai variabel keputusan merupakan variabel diskrit, maka akan digunakan metode tabulasi dengan persamaan rekursif mundur (backward recursive equation). Misalkan status (state)-nya diberi simbol Yj, dimana : Y4
= jumlah jam kerja yang disediakan pada tahap
4
Y3
= jumlah jam kerja yang disediakan pada tahap
3, 4
Y2
= jumlah jam kerja yang disediakan pada tahap
2, 3, 4
Y1
= jumlah jam kerja yang disediakan pada tahap 1, 2, 3, 4
30
f 4 * (Y4 ) = optimum profit pada tahap 4
dengan Y4 tertentu
f 3 * (Y3 ) = optimum profit pada tahap 3 dan 4
dengan Y3 tertentu
f 2 * (Y2 ) = optimum profit pada tahap 2, 3, & 4 dengan Y2 tertentu f 1 * (Y1) = optimum profit pada tahap 1, 2, 3, & 4 dengan Y1 tertentu
Tabel 2.2 Perhitungan Dynamic Programming (Tahap 4) Y4 0 1 2 3 4
P4(X4) X4 = 0 0 -
1 2 -
2 5 -
3 8 -
4 10
f4*(Y4)
X4*
0 2 5 8 10
0 1 2 3 4
Tabel 2.3 Perhitungan Dynamic Programming (Tahap 3) Y3 0 1 2 3 4
P3(X3) + f4*(Y4) X3 = 0 0 2 5 8 10
1 3 5 8 11
2 7 9 12
31
3 10 12
4 12
f3*(Y3)
X3*
0 3 7 10 12
0 1 2 3 2,3,4
Tabel 2.4 Perhitungan Dynamic Programming (Tahap 2) Y2
P2(X2) + f3*(Y3) X2 = 0 0 3 7 10 12
0 1 2 3 4
1 2 5 9 12
2 5 8 12
3 8 11
4 11
f2*(Y2)
X2*
0 3 7 10 12
0 0 0 0 0,1,2
Tabel 2.5 Perhitungan Dynamic Programming (Tahap 1) Y1 0 1 2 3 4
P1(X1) + f2*(Y2) X1 = 0 0 3 7 10 12
1 1 4 8 11
2 3 6 10
3 6 9
4 9
f1*(Y1)
X1*
0 3 7 10 12
0 0 0 0 0
Tabel 2.6 Alternatif Alokasi untuk Keuntungan Maksimum Tahap 1 Kegiatan 1 0 0 0 0 0
Tahap 2 Kegiatan 2 0 0 0 2 1
32
Tahap 3 Kegiatan 3 4 3 2 2 3
Tahap 4 Kegiatan 4 0 1 2 0 0
2.1.5.2 Masalah Stagecoach
Masalah stagecoach adalah masalah penentuan rute perjalanan dari suatu titik awal hingga ke titik akhir perjalanan. Oleh karena rute perjalanan dari titik awal hingga titik akhir dapat ditempuh melalui banyak rute, maka yang menjadi masalah adalah rute perjalanan mana yang harus dipilih agar biaya, jarak, atau waktu perjalanan paling efisien. Masalah stagecoach disebut juga masalah shortest route atau masalah network. Aplikasi model dynamic programming dalam memecahkan masalah stagecoach ditunjukkan pada contoh berikut : Misalkan seseorang ingin menentukan waktu tercepat dari Jakarta menuju Malang. Jalur dan waktu perjalanan (menit) ditunjukkan pada gambar 2.4 berikut :
Gambar 2.4 Masalah Stagecoach
33
Gambar 2.4 di atas menunjukkan bahwa paling banyak ada 3 rantai untuk setiap kemungkinan alternatif jalur dari Jakarta ke Malang. Karena itu, masalah stagecoach ini dipecah dalam 3 tahap yang mewakili masing-masing rantai. Variabel keputusannya adalah jalur atau rute yang dipilih sedangkan statusnya adalah kota asal pada setiap tahap.
Tahap 3 : f3* (Status 3) = min { W3 (Jalur 3)} Tabel 2.7 Perhitungan Dynamic Programming (Tahap 3)
Tahap 2 : f2* (Status 2) = min { W2 (Jalur 2) + f3* (Status 3)} Tabel 2.8 Perhitungan Dynamic Programming (Tahap 2)
34
Tahap 1 : f1* (Status 1) = min { W1 (Jalur 1) + f2* (Status 2)} Tabel 2.9 Perhitungan Dynamic Programming (Tahap 1)
Perhitungan rekursif mundur dari tabel di atas menunjukkan bahwa waktu perjalanan minimum adalah 840 menit yang ditempuh melalui jalur atau rute Jakarta-Cirebon-Yogya-Malang.
2.2
Kerangka Pemikiran
Penyusunan skripsi dengan ruang lingkup penyelesaian masalah ini didasarkan atas pola pikir sebagai berikut : (Sumber : Konsep Six Sigma)
Gambar 2.5 Kerangka Pikir Pemecahan Masalah
35
Kerangka pemikiran ini menekankan pada integrasi kelima langkah pemecahan masalah, yaitu Define, Measure, Analyse, Improve, dan Control secara bertahap dan menyeluruh. Integrasi kelima langkah penyelesaian masalah tersebut harus mengikutsertakan aspek umpan balik (feed back) didalamnya. Tahap Define dapat dikategorikan sebagai tahap identifikasi terhadap objek yang akan dikaji. Identifikasi terhadap objek kajian mencakup identifikasi input, identifikasi proses, dan identifikasi output. Identifikasi terhadap objek kajian dilakukan dalam rangka menemukan fokus permasalahan yang dinilai penting untuk diselesaikan. Tahap Measure dan Analyse dikategorikan sebagai tahap karakterisasi. Karakterisasi dilakukan terhadap situasi dan kondisi permasalahan yang aktual. Tahap karakterisasi tersebut mengacu pada hal-hal berikut, yaitu : •
Kemampuan variabel-variabel terkait untuk dikuantifikasi.
•
Hubungan atau korelasi antara variabel input dan variabel proses terhadap variabel output.
•
Batasan-batasan tertentu yang harus dipenuhi dalam permasalahan. Tahap Improve dan Control dikategorikan sebagai tahap optimisasi.
Optimisasi diawali dengan melakukan pemilihan terhadap suatu pendekatan yang tepat untuk digunakan agar penyelesaian masalah yang dihadapi dapat optimal atau bahkan maksimal. Penekanan tahap optimisasi terletak pada pengembangan proses dan pengendalian terhadap input-input yang masuk supaya dapat menghasilkan suatu output yang baik.
36