Upload
others
View
1
Download
1
Embed Size (px)
Citation preview
7
BAB II
TINJAUAN PUSTAKA
2.1 Penjadwalan
Pengertian jadwal menurut KBBI adalah pembagian waktu berdasarkan
rencana pengaturan urutan kerja, daftar atau tabel kegiatan atau rencana kegiatan
dengan pembagian waktu pelaksanaan yang terperinci. Sedangkan pengertian
penjadwalan adalah proses, cara, perbuatan menjadwalkan atau memasukkan ke
dalam jadwal. Penjadwalan adalah alokasi, tunduk pada batasan, sumber daya ke
objek ditempatkan di ruang-waktu, sedemikian rupa untuk meminimalkan biaya
total beberapa kumpulan sumber daya yang digunakan [5].
Terdapat dua batasan dalam penjadwalan mata kuliah yaitu batasan mutlak
(hard constraints) merupakan batasan yang bersifat harus dipenuhi dan batasan
lunak (soft constraints) merupakan batasan yang bersifat “preferensi” atau batasan
yang boleh untuk tidak dipenuhi [6].
Menurut [6], batasan mutlak yang wajib dipenuhi, yaitu:
1. Seorang dosen tidak dapat mengajar lebih dari satu mata kuliah pada waktu yang
sama
2. Mata kuliah mahasiswa dengan tingkatan/semester yang sama tidak dapat
dijadwalkan dalam waktu yang sama.
3. Ruang kuliah pada periode waktu tertentu, hanya dapat diselenggarakan untuk
satu mata kuliah saja.
4. Jumlah periode waktu perkuliahan harus sesuai dengan beban SKS setiap mata
kuliah tersebut.
5. Kapasitas ruang perkuliahan yang tersedia harus mampu menampung sejumlah
mahasiswa yang akan mengambil suatu mata kuliah.
6. Beberapa mata kuliah harus dijadwalkan pada ruang kuliah tertentu seperti
laboratorium komputer.
8
Sedangkan batasan lunak (soft constraints) yang bersifat “preferensi” atau
batasan yang tidak harus dipenuhi, yaitu:
1. Preferensi dosen pengajar mata kuliah dan preferensi mahasiswa seharusnya
dipertimbangkan.Preferensi ini dapat dinyatakan dengan bilangan numerik yang
merupakan tingkat ketidakpuasan mahasiswa atau dosen.
2. Mata kuliah yang memiliki beban 4 SKS sebaiknya dilaksanakan dalam satu
sesi atau dalam dua sesi untuk masing-masing 2 SKS, tergantung
preferensi/keinginan dosen.
3. Dosen sebaiknya memiliki hari libur mengajar.
Batasan lunak (soft constraints) adalah batasan yang diinginkan untuk
dipuaskan, tetapi tidak esensial. Dalam masalah penjadwalan di dunia nyata
biasanya tidak mungkin untuk memenuhi semua soft constraints. Kualitas jadwal
yang layak dapat dinilai berdasarkan seberapa baik soft constraints tersebut
dipenuhi. Namun, beberapa masalah sangat kompleks sehingga sulit untuk
menemukan solusi yang bahkan memungkinkan [7]
2.2 Program Linear
Program linear merupakan salah satu teknik optimisasi yang digunakan untuk
menyelesaikan masalah suatu model linear dengan menggunakan model
matematika untuk menggambarkan atau mediskripsikan masalah yang ingin
diselesaikan dari keterbatasan-keterbatasan yang dihadapi. Kata ‘program’ dalam
program linear merupakan sinonim dari perencanaan (planning) yang mana artinya
memuat suatu rencana kegiatan untuk menghasilkan hasil yang optimal [8].
Banyak masalah optimisasi yang dapat diselesaikan dengan program linear
seperti pada masalah optimisasi di dalam industri, perbankan, pendidikan dan
masalah-masalah lain yang dapat dinyatakan dalam bentuk linear. Formulasi
program linear secara umum terdiri dari satu fungsi tujuan (fungsi objektif) yang
digunakan untuk menentukan nilai optimum dari fungsi yang telah ditetapkan dan
satu atau beberapa fungsi kendala (constraints) yang merupakan keterbatasan
masalah yang dihadapi. Tujuan dari program linear adalah menentukan nilai
optimum (maksimal/minimal) dari fungsi yang telah ditetapkan, untuk
9
memecahkan permasalahannya yaitu dengan metode grafik, dan metode simpleks
[9].
2.2.1 Terminologi Program Linear
Menurut [8], suatu program linear terdiri dari tiga bagian:
1. Suatu fungsi linear yang merupakan fungsi tujuan (fungsi objektif) dari
variabel-variabel keputusan yang harus dioptimalkan (maksimum atau
minimum).
2. Suatu himpunan dari kendala (constraints), dengan kendala-kendala ini dapat
berupa persamaan ataupun pertidaksamaan linear yang memuat persyaratan-
persyaratan tertentu yang harus dipenuhi oleh variabel-variabel keputusan.
3. Persyaratan tanda dari peubah-peubah keputusan yang mensyaratkan apakah
suatu variabel keputusan bertanda non-negatif (≥ 0), atau non-positif (≤ 0),
ataupun tandanya bebas (positif,nol ataupun negatif).
2.2.2 Asumsi Program Linear
Dalam menggunakan model program linear, berdasarkan [10], diperlukan
asumsi-asumsi sebagai berikut:
1. Proportionality, asumsi ini berarti naik turunnya nilai Z (fungsi objektif) dan
penggunaan sumber atau fasilitas yang tersedia akan berubah secara sebanding
dengan perubahan tingkat kegiatan.
2. Additivity, berarti nilai tujuan tiap kegiatan tidak saling mempengaruhi, atau
dalam program linear dianggap bahwa kenaikan suatu kegiatan dapat
ditambahkan tanpa mempengaruhi bagian nilai fungsi objektif yang diperoleh
dari kegiatan lain.
3. Divisibility, asumsi ini berarti keluaran yang dihasilkan oleh setiap kegiatan
dapat berupa bilangan pecahan.
4. Deterministic (certainty), berarti bahwa semua paramater yang terdapat dalam
program linear dapat dipikirkan dengan pasti, meskipun dalam kenyataannya
tidak sama persis.
10
2.2.3 Model Program Linear
Secara umum bentuk standar dari program linear dapat dinyatakan sebagai
berikut:
dengan 𝑏𝑖 , 𝑐𝑖 dan 𝑎𝑖𝑗 adalah konsanta real dan 𝑥𝑖 adalah nilai yang akan
ditentukan. Dalam bentuk vektor, program linear di atas dapat dinyatakan sebagai
berikut :
2.2.4 Penyelesain Program Linear
Untuk menyelesaikan suatu masalah program linear dapat diselesaikan
dengan menggunakan metode grafik dan metode simpleks. Pada metode grafik
secara umum memang mudah dilakukan jika program linear yang ingin
diselesaikan merupakan program linear yang terdiri dari hanya dua peubah. Jika
program linear yang ingin diselesaikan tersebut terdiri dari tiga peubah, untuk
menggambarkannya cukup sulit, apalagi peubahnya lebih dari tiga,
menggambarkannya dalam bentuk grafik adalah suatu hal yang mustahil
dilakukan. Untuk itu, digunakan metode simpleks [8].
Dalam penyelesaian model program linear dengan metode simpleks
diperlukan untuk pengubahan model formulasi ke dalam bentuk kanonik. Bentuk
kanonik adalah bentuk sistem persamaan linear dan memuat variabel basis
(variabel yang memiliki koefisien 1). Untuk membentuk kendala menjadi bentuk
Obj. Min: 𝑐1𝑥1 + 𝑐2𝑥2 + … + 𝑐𝑛𝑥𝑛
Kendala : 𝑎11𝑥1 + 𝑎12𝑥2 + … + 𝑎1𝑛𝑥𝑛 = 𝑏1
𝑎21𝑥1 + 𝑎22𝑥2 + … + 𝑎2𝑛𝑥𝑛 = 𝑏2
. . . .
. . . .
. . . .
𝑎𝑚1𝑥1 + 𝑎𝑚2𝑥2 + … + 𝑎𝑚𝑛𝑥𝑛 = 𝑏m
dengan : 𝑥1 ≥ 0, 𝑥2 ≥ 0,…,𝑥𝑛 ≥ 0.
Obj. Min 𝒄𝑇𝒙
Kendala 𝑨𝒙 = 𝒃 dan 𝒙 ≥ 𝟎
Dengan 𝒄, 𝒙 ∈ 𝑹𝑛 , 𝒃 ∈ 𝑹𝑚 dan 𝑨 adalah matrik 𝑚 × 𝑛
11
kanonik diperlukan penambahan variabel baru. Variabel baru tersebut adalah
sebagai berikut: [9]
1. Variabel slack, yaitu variabel yang ditambahkan pada fungsi kendala yang
memuat hubungan kurang dari atau sama dengan (≤).
2. Variabel surplus, yaitu variabel yang ditambahkan pada fungsi kendala yang
memuat hubungan lebih dari atau sama dengan (≥).
3. Variabel artifisial, yaitu variabel yang ditambahkan pada fungsi kendala yang
belum memuat variabel basis pada poin kedua.
2.2.5 Solusi Program Linear
Solusi model program linear merupakan jawaban akhir dari suatu pemecah
masalah. Menurut [8], jika suatu model program linear diselesaikan, ada 4 kasus
yang mungkin terjadi:
1. Program linear mempunyai solusi optimal yang unik.
2. Program linear mempunyai solusi optimal lebih dari satu (ada solusi alternatif).
3. Program linear tidak mempunyai solusi yang layak. Ini berati bahwa daerah
yang layak tidak mempunyai titik-titik yang memenuhi persyaratan kendala-
kendala dan prasyarat peubah-peubah keputusan.
4. Program linear mempunyai nilai fungsi tujuan yang tidak terbatas
(unbounded).
2.3 Goal Programming
Istilah " goal programming " pertama kali muncul dalam sebuah artikel yang
ditulis oleh Charnes dan Cooper pada tahun 1961 untuk menangani masalah
program linear multi-objektif, yang mengasumsikan bahwa pengambil keputusan
dapat menentukan tujuan atau level yang diinginkan untuk fungsi tujuan. Kunci
dibalik goal programming adalah untuk meminimalkan penyimpangan dari tujuan
atau tingkat aspirasi yang ditetapkan oleh pengambil keputusan [11]. Dalam model
goal programming tersebut, Charnes dan Cooper memanipulasi dengan
menghadirkan sepasang variabel yaitu “variabel deviasional” yang berfungsi untuk
menampung penyimpangan-penyimpangan yang terjadi di atas target maupun di
12
bawah target. Model goal programming bertujuan untuk meminimalisasi variabel
deviasional diantara berbagai tujuan atau sasaran yang telah ditetapkan sebagai
targetnya, maksudnya nilai ruas kiri persamaan kendala sebisa mungkin mendekati
nilai ruas kanannya [9].
2.3.1 Terminologi Goal Programming
Berdasarkan [12], bahwa berikut ini merupakan istilah-istilah yang sering
digunakan dalam goal programming.
1. Pengambil Keputusan (decision maker) yaitu mengacu pada orang, organisasi,
atau pemangku kepentingan yang menjadi bagian dari masalah keputusan yang
sedang dipertimbangkan.
2. Variabel Keputusan (desicion variables) yaitu seperangkat variabel keputusan
didefinisikan sebagai faktor di mana pembuat keputusan memiliki kendali.
Variabel keputusan sepenuhnya ialah menggambarkan masalah dan
membentuk keputusan yang akan dibuat.
3. Objective yaitu sebagai kriteria dengan tambahan informasi arah
(maksimalkan atau minimalkan) di mana pengambil keputusan lebih suka pada
skala kriteria, misalnya meminimalkan biaya atau memaksimalkan kinerja
suatu sistem.
4. Tujuan (goal) yaitu mengacu pada kriteria dan level, yang dikenal sebagai level
target, yang ingin dicapai oleh pembuat keputusan pada kriteria tersebut.
5. Variabel deviasi (deviational variables) yaitu mengukur perbedaan antara level
target pada kriteria dan nilai yang dapat dicapai dalam solusi tertentu. Jika nilai
yang dicapai di atas level target maka selisihnya ditentukan oleh nilai variabel
deviasi positif. Jika nilai yang dicapai berada di bawah level target maka
selisihnya ditentukan oleh nilai variabel deviasi negatif.
6. Batasan (constraints) yaitu batasan pada variabel keputusan yang harus
dipenuhi agar solusi dapat diterapkan dalam praktik. Batasan biasanya
merupakan fungsi dari beberapa variabel keputusan dan dapat berupa
persamaan atau ketidaksamaan.
13
7. Tanda Pembatas (sign restriction) yaitu membatasi satu keputusan atau
variabel deviasi untuk hanya mengambil nilai tertentu dalam jangkauannya.
Pembatasan tanda yang paling umum adalah variabel menjadi non-negatif dan
kontinu.
8. Wilayah Layak (feasible region) yaitu himpunan solusi dalam ruang keputusan
yang memenuhi semua batasan dan tanda batasan dalam goal programming
dari wilayah yang memungkinkan.
9. Solusi Efisien Pareto (pareto-efficient solution) atau Pareto optimal/ dalam
ruang obyektif sebagai tidak didominasi, yaitu Solusi untuk masalah multi-
objektif adalah Pareto efisien jika tidak ada solusi lain yang layak yang
setidaknya sama baiknya dengan semua tujuan dan benar-benar lebih baik
sehubungan dengan setidaknya satu tujuan.
10. Solusi Pareto-Tidak Efisien (pareto-inefficient solution) atau dalam ruang
obyektif seperti didominasi, yaitu solusi untuk masalah multi-objektif adalah
Pareto tidak efisien jika ada solusi lain yang layak yang setidaknya sama
baiknya dengan semua tujuan dan benar-benar lebih baik sehubungan dengan
setidaknya satu tujuan.
11. Pareto Frontier yaitu himpunan dari semua solusi Pareto-efisien untuk
masalah keputusan. Pareto ini disebut juga Pareto front, Pareto set, dan dalam
ruang obyektif sebagai himpunan yang tidak didominasi.
Titik a dan b termasuk dalam Pareto front karena keduanya bukan nominasi
(tidak satupun lebih baik dari yang lain di kedua tujuan). Titik a lebih baik dari b
pada tujuan 1, tetapi a lebih buruk dari pada b pada tujuan 2 (untuk masalah
Gambar 2.1 Pareto front
14
minimisasi). Titik c lebih buruk dari titik a dan b pada tujuan 1 dan 2, sehingga
titik c didominasi oleh a dan b. Himpunan solusi nondominasi disebut pendekatan
himpunan Pareto, dalam ruang obyektif bahwa a dan b membentuk pendekatan
Pareto frontier [13].
2.3.2 Filosofi Goal Programming
Menurut [12], berikut filosofi yang mendasari goal programming:
1. Satisficing (memuaskan)
Semua model goal programming berisi sekumpulan nilai tujuan yang ingin
dicapai. Memenuhi tujuan ini sedekat mungkin adalah tujuan utama dari goal
programming. Dengan demikian, kepuasan dapat dengan tepat dianggap
sebagai filosofi utama yang mendasari goal programming.
2. Optimising (mengoptimalkan)
Arti mengoptimalkan dalam konteks pengambilan keputusan adalah
menemukan keputusan yang memberikan nilai terbaik dari beberapa ukuran
dari sekumpulan keputusan yang mungkin. Terdapat tiga situasi yang perlu
diperhatikan di mana filosofi pengoptimalan memiliki kepentingan khusus:
1) Jika level target tujuan ditetapkan dengan sangat optimis, sesuai dengan
nilai-nilai idealnya, maka filosofi yang mendasari dominan telah berubah
dari memuaskan menjadi optimal.
2) Jika deteksi dan pemulihan optimalitas Pareto berlangsung, maka goal
programming memiliki campuran filosofi yang memuaskan dan
mengoptimalkan.
3) Jika tujuan memiliki dua sisi (two-sided), yaitu nilai tertentu adalah optimal
daripada situasi 'lebih banyak lebih baik' atau 'kurang lebih baik’, maka
filosofi yang memuaskan dan mengoptimalkan dapat dianggap sesuai
dengan tujuan tersebut.
3. Ordering or Ranking (pengurutan atau pemeringkatan)
Falsafah dasar ini meminimalkan penyimpangan yang tidak diinginkan dari
tujuan berdasarkan menurut prioritas. Dalam goal programming, bahwa
15
penetapan gol-gol dalam urutan berdasarkan segi pentingnya setiap tujuan
yang telah diperkirakan oleh pembuat keputusan.
4. Balancing (menyeimbangkan)
Dalam masalah goal programming itu tidak cukup untuk mempertimbangkan
hanya tingkat rata-rata pencapaian tujuan, melainkan melihat keseimbangan
antara pencapaian tujuan.
2.3.3 Asumsi Goal Programming
Sebelum merumuskan model, perlu diperhatikan bahwa model goal
programming memerlukan sejumlah asumsi. Adapun menurut [12], berikut ini
asumsi-asumsi dalam model goal programming :
1. Proportionality
Aksioma ini mensyaratkan bahwa hukuman untuk penyimpangan yang tidak
diinginkan dari tingkat target berbanding lurus dengan jarak jauh dari tingkat
target yang ditetapkan.
2. Additivity
Aksioma ini mensyaratkan bahwa tingkat hukuman untuk penyimpangan yang
tidak diinginkan dari tingkat target tidak tergantung pada tingkat
penyimpangan yang tidak diinginkan dari tujuan lain.
3. Divisibility
Aksioma ini mensyaratkan bahwa semua variabel keputusan harus bebas untuk
mengambil nilai apa pun dalam rentang yang ditentukan (lebih besar atau sama
dengan nol secara default). Jadi variabel keputusan tidak dapat dipaksa untuk
mengambil bilangan bulat atau nilai diskrit.
4. Certainty
Aksioma ini mengharuskan semua koefisien data diketahui dengan pasti.
16
2.3.4 Bentuk Model Goal Programming
Bentuk model goal programming berikut diambil dari [11].
Seperti yang telah sudah dijelaskan sebelumnya, bahwa goal programming
merupakan salah satu metode yang dapat digunakan untuk menangani masalah
program linear multi-objektif. Program linear multi-objektif merupakan masalah
untuk mengoptimalkan beberapa fungsi tujuan linear yang saling bertentangan
secara bersamaan dibawah batasan linear yang diberikan.
Model multiobjective linear programming, dapat dibuat bentuk umumnya
sebagai berikut:
dengan
𝑐𝑖 = (𝑐𝑖1 , . . . , 𝑐𝑖𝑛), 𝑖 = 1,… , 𝑘.
𝑥 =
(
𝑥1𝑥2⋮𝑥𝑛)
, 𝐴 = [
𝑎11 𝑎12 ⋯ 𝑎1𝑛⋮ ⋮ ⋱ ⋮
𝑎𝑚1 𝑎𝑚1 ⋯ 𝑎𝑚𝑛
] , 𝑏 =
(
𝑏1𝑏2⋮𝑏𝑚)
Secara umum model multiobjective linear programming tersebut dapat
dirumuskan sebagai masalah minimisasi vektor berikut:
dengan 𝓏(𝑥) = (𝓏1(𝑥), 𝓏2(𝑥), . . . , 𝓏𝑘(𝑥))𝑇 = (𝑐1, . . . , 𝑐𝑘(𝑥))
𝑇 adalah
vektor k dimensional. Wilayah layak dari masalah yang dilambangkan dengan
𝑋 = {𝑥 ∈ ℝ𝑛|𝐴𝑥 ≤ 𝑏, 𝑥 ≥ 0} (2.3)
Meminimumkan 𝓏1(𝑥) = 𝑐1𝑥
} (2.1)
Meminimumkan 𝓏2(𝑥) = 𝑐2𝑥
⋮
Meminimumkan 𝓏𝑘(𝑥) = 𝑐𝑘𝑥
Subject to 𝐴𝑥 ≤ 𝑏,
𝑥 ≥ 0.
Meminimumkan𝑥∈𝑋
𝓏(𝑥) = (𝓏1(𝑥), 𝓏2(𝑥), . . . , 𝓏𝑘(𝑥))𝑇
}
(2.2)
Dengan syarat 𝐴𝑥 ≤ 𝑏,
𝑥 ≥ 0.
17
Untuk masalah linear goal programming, satu set goal k untuk fungsi
objektif 𝓏𝑖(𝑥), 𝑖 = 1,… , 𝑘 ditentukan oleh pembuat keputusan. Masalah
multiobjective linear programming dapat diubah menjadi masalah linear goal
programming dengan serangkaian tujuan tertentu yang mungkin tidak dapat
dicapai secara bersamaan. Rumus umum dari goal programming :
Meminimumkan𝑥∈𝑋
𝑑(𝓏(𝑥), �̂�) (2.4)
dengan �̂� = (�̂�1, . . . , �̂�𝑘) adalah vektor goal yang ditentukan oleh pembuat
keputuasan dan 𝑑(𝓏(𝑥), �̂�) mewakili jarak antara 𝑧(𝑥) dan �̂� dalam vektor norm
yang dipilih. Versi paling sederhana dari persamaan (2.4), dimana nilai absolut
atau ℓ1 digunakan, adalah
Meminimumkan𝑥∈𝑋
𝑑1(𝓏(𝑥), �̂�) = ∑ |𝑐𝑖𝑘𝑖=1 𝑥 − �̂�𝑖| (2.5)
dengan menggunakan bobot persamaannya menjadi
Meminimumkan𝑥∈𝑋
𝑑1𝑤(𝓏(𝑥), �̂�) = ∑ 𝑤𝑖|𝑐𝑖
𝑘𝑖=1 𝑥 − �̂�𝑖| (2.6)
dengan 𝑤𝑖 merupakan bobot non negatif terhadap fungsi tujuan ke-i.
Persamaan linear goal programming tersebut dapat dengan mudah diubah
menjadi masalah linear programming yang setara dengan memperkenalkan
variabel bantu sebagai berikut:
𝑑𝑖+ =
1
2{|𝓏𝑖(𝑥) − �̂�𝑖| + (𝓏𝑖(𝑥) − �̂�𝑖)} (2.7)
dan
𝑑𝑖− =
1
2{|𝓏𝑖(𝑥) − �̂�𝑖| − (𝓏𝑖(𝑥) − �̂�𝑖)} (2.8)
Untuk 𝑖 = 1, . . . , 𝑘.
18
Maka dengan demikian, rumus linear goal programming yang setara
dengan masalah (2.6) menjadi
dari definisi 𝑑𝑖+ dan 𝑑𝑖
−, dapat dengan mudah dipahami dengan melihat
persamaan berikut:
𝑑𝑖+ = {
𝓏𝑖(𝑥) − �̂�𝑖; jika 𝓏𝑖(𝑥) ≥ �̂�𝑖0; jika 𝓏𝑖(𝑥) < �̂�𝑖
(2.10)
dan
𝑑𝑖− = {
�̂�𝑖 − 𝓏𝑖(𝑥); jika �̂�𝑖 ≥ 𝓏𝑖(𝑥)
0; jika �̂�𝑖 < 𝓏𝑖(𝑥) (2.11)
Jadi, 𝑑𝑖+ dan 𝑑𝑖
− merupakan variabel penyimpangan (deviational variable)
yang mempresentasikan tingkat pencapaian melebihi target (over achievement)
dan pencapaian di bawah target (under achievement). Secara bersamaan, tidak
akan mungkin terjadi pencapaian melebihi target (over achievement) dan
pencapaian di bawah target (under achievement). Hal ini dapat dilihat pada
kendala ketiga, dimana untuk 𝑑𝑖+. 𝑑𝑖
− = 0, sehingga jika 𝑑𝑖+> 0, maka 𝑑𝑖
− = 0.
Secara otomatis pada persamaan (2.9) selalu terpenuhi setiap iterasi menggunkan
metode simplek linear programming, ini karena 𝑑𝑖+ dan 𝑑𝑖
− tidak pernah menjadi
variabel basic secara bersamaan, dan akibatnya, jelas bahwa metode simplek
dapat diterapkan untuk menyelesaikan masalah linear goal programming.
Meminimumkan ∑𝑤𝑖(
𝑘
𝑖=1
𝑑𝑖++𝑑𝑖
−)
} (2.9)
Dengan syarat : 𝓏𝑖(𝑥) − 𝑑𝑖+ + 𝑑𝑖
− = �̂�𝑖, 𝑖 = 1, . . . , 𝑘.
𝐴𝑥 ≤ 𝑏, 𝑥 ≥ 0.
𝑑𝑖+. 𝑑𝑖
− = 0, 𝑖 = 1, . . . , 𝑘.
𝑑𝑖+ ≥ 0, 𝑑𝑖
− ≥ 0, 𝑖 = 1, . . . , 𝑘.
19
Pada beberapa situasi, bagi pembuat keputusan terkadang hanya peduli
dengan pencapaian diatas target atau pencapaian di bawah target dari tujuan yang
ditentukan. Pada situasi seperti ini disebut dengan goal programming satu sisi
(one-side goal programming), dengan ditetapkan bobot yang berbeda, 𝑤𝑖+ dan
𝑤𝑖−pada setiap pencapaian, 𝑑𝑖
+ dan 𝑑𝑖−. Misalkan, jika setiap 𝓏𝑖(𝑥) adalah fungsi
tujuan tipe biaya dengan sasarannya 𝓏𝑖, dimana pencapaian target di atas sasaran
tidak diinginkan, dengan menetapkan 𝑤𝑖+ = 1 dan 𝑤𝑖
− = 0. Sehingga persamaan
(2.9) dapat ubah menjadi
Sebaliknya, jika pencapaian dibawah target tidak dinginkan, dapat
menetapkan 𝑤𝑖− = 1 dan 𝑤𝑖
+ = 0, sehingga:
Meminimumkan∑𝑤𝑖−
𝑘
𝑖=1
𝑑𝑖−
(2.13)
Model linear goal programming dapat dimodifikasi menjadi bentuk yang
lebih umum dengan memperkenalkan prioritas preemptive 𝑃𝑖 atau bersama
dengan bobot 𝑤𝑖+,𝑤𝑖
− ≥ 0. Ketika fungsi tujuan �̂� = (�̂�1, . . . , �̂�𝑘) dibagi beberapa
kelas peringkat (urutan) L ordinal yang memiliki prioritas preemptive
𝑃1, . . . , 𝑃𝐿 dalam urutan menurun atau dapat dengan mudah ditulis 𝑃1 ≫ 𝑃𝑙+1 , 𝑙 =
1, . . . , 𝐿 − 1. Artinya bahwa tidak ada bilangan real t, berapapun besarnya, yang
dapat menghasilkan 𝑡𝑃𝑙+1 ≥ 𝑃𝑙 , 𝑙 = 1, . . . , 𝐿 − 1, dengan 1 ≤ 𝐿 ≤ 𝑘.
Meminimumkan∑𝑤𝑖+
𝑘
𝑖=1
𝑑𝑖+
} (2.12) Dengan syarat: 𝓏𝑖(𝑥) − 𝑑𝑖
+ + 𝑑𝑖− = �̂�𝑖 , 𝑖 = 1, . . . , 𝑘.
𝐴𝑥 ≤ 𝑏, 𝑥 ≥ 0.
𝑑𝑖+. 𝑑𝑖
− = 0, 𝑖 = 1, . . . , 𝑘.
𝑑𝑖+ ≥ 0, 𝑑𝑖
− ≥ 0, 𝑖 = 1, . . . , 𝑘.
20
Model umum linear goal programming dengan menggabungkan prioritas
preemptive 𝑃𝑙 bersama dengan bobot pencapaian melebihi target (over
achievement) dan pencapaian di bawah target (under achievement) 𝑤𝑖+ dan 𝑤𝑖
−
dapat ditulis sebagai berikut:
dengan 𝐼𝑙(≠ ∅)adalah himpunan indeks dari fungsi tujuan di kelas prioritas ke-i.
Ketika ada k kelas peringkat ordinal yang berbeda dengan fungsi tujuan ke-i 𝑐𝑖(𝑥)
milik kelas prioritas ke-i. 𝐿 = 𝑘, dengan demikian, model umum goal
programming dengan urutan prioritas dapat dirumuskan dari fungsi tujuan (2.14)
menjadi sederhana sebagai berikut:
Meminimumkan∑𝑃𝑖 (𝑤𝑖+𝑑𝑖
++𝑤𝑖
−𝑑𝑖−)
𝑘
𝑖=1
(2.15)
Untuk solusi model goal programming tipe prioritas, memulainya dengan
mencoba mencapai tujuan dari semua fungsi tujuan di kelas prioritas pertama.
Setelah melakukan itu, mencoba memenuhi tujuan di kelas prioritas berikutnya,
menjaga agar tujuan di kelas pertama tetap terpenuhi. Proses ini diulangi hingga
solusi unik diperoleh pada beberapa tahap atau semua kelas prioritas
dipertimbangkan.
Meminimumkan ∑𝑃𝑙(∑(𝑤𝑖+
𝑘
𝑖=1
𝑑𝑖++𝑤𝑖
−𝑑𝑖−))
𝐿
𝑙=1
} (2.14)
Dengan syarat 𝓏𝑖(𝑥) − 𝑑𝑖+ + 𝑑𝑖
− = �̂�𝑖 , 𝑖 = 1,… , 𝑘.
𝐴𝑥 ≤ 𝑏, 𝑥 ≥ 0.
𝑑𝑖+. 𝑑𝑖
− = 0, 𝑖 = 1, . . . , 𝑘.
𝑑𝑖+ ≥ 0, 𝑑𝑖
− ≥ 0, 𝑖 = 1, . . . , 𝑘
21
2.3.5 Perumusan Masalah Goal Programming
Berdasarkan [14], langkah-langkah perumusan permasalahan goal
programming adalah sebagai berikut :
1. Menentukan variabel keputusan
Penentuan variabel keputusan merupakan dasar dalam pembuat model
keputusan untuk mendapatkan solusi yang dicari. Kuncinya adalah semakin
tepat menyatakan variabel keputusan (xj) maka akan mempermudah pengerjaan
permodelan yang dicari.
2. Menyatakan sistem kendala
Kuncinya pertama adalah menentukan nilai-nilai sisi kanan dan kemudian
menentukan koefisien teknologi yang cocok dan variabel keputusan yang
diikut sertakan dalam kendala. Juga perhatikan jenis penyimpangan yang
diperbolehkan dari nilai RHS (kuantitas). Jika penyimpangan diperbolehkan
dalam dua arah, tempatkan kedua variabel simpangan pada kendala itu. Jika
penyimpangan hanya diperbolehkan pada satu arah, tempatkan hanya satu
variabel simpangan yang tepat pada kendala yang bersangkutan.
3. Menentukan prioritas
Inti dari menentukan prioritas ini adalah membuat urutan-urutan pada masing-
masing tujuan. Jika persoalannya tidak memiliki urutan tujuan maka langkah
ini dapat dilewati.
4. Menentukan bobot
Menentukan bobot adalah membuat penilaian terhadap deviasi pada masing-
masing tujuan. Jika persoalannya tidak memiliki urutan tujuan maka langkah
ini dapat dilewati.
5. Menyatakan fungsi tujuan
Menyatakan fungsi tujuan disini adalah memilih variabel simpangan yang akan
dimasukkan kedalam fungsi tujuan. Jika diperlukan dapat ditambahkan
prioritas dan bobot yang tepat.
6. Menyatakan keperluan non negatif
Langkah ini merupakan bagian resmi dari perumusan masalah goal
programming.
22
2.3.6 Metode Pembobotan dalam Penyelesaian Model Goal Programming
Menurut [15], pada metode pembobotan (weights method), masing-masing
koefisien pada fungsi tujuan dapat diberikan bobot yang berbeda-beda sesuai
dengan kepentingan. Misalkan dalam model goal programming terdapat n tujuan
dan pada tujuan ke-i diberikan fungsi sebagai berikut:
Meminimumkan 𝐺𝑖, 𝑖 = 1,2,… , 𝑛.
Bentuk kombinasi dari fungsi tujuan dengan metode pembobotan adalah:
Meminimumkan 𝑍 = 𝑤1𝐺1 + 𝑤2𝐺2 +⋯+𝑤𝑛𝐺𝑛
Parameter 𝑤𝑖 , 𝑖 = 1,2,3,… , 𝑛, adalah bobot positif yang mencerminkan
preferensi pembuat keputusan mengenai kepentingan relatif dari setiap tujuan.
Misalnya, 𝑤𝑖= 1, untuk semua i, menandakan bahwa semua tujuan membawa
bobot yang sama. Penentuan nilai spesifik bobot bersifat subjektif atau sesuai
keinginan user.
Berdasarkan bentuk model goal programming sebelumnya adalah sebagai
berikut:
Dengan :
𝓏𝑖(𝑥) : koefisien fungsi tujuan ke-i.
�̂�𝑖 : tujuan atau target yang ingin dicapai ke-i.
𝑑𝑖+ : variabel penyimpangan yang mempresentasikan tingkat
pencapaian melebihi target (over achievement).
𝑑𝑖− : variabel penyimpangan yang mempresentasikan tingkat
pencapaian dibawah target (under achievement).
Meminimumkan ∑𝑤𝑖(
𝑘
𝑖=1
𝑑𝑖+ + 𝑑𝑖
−)
} (2.9)
Dengan syarat : 𝓏𝑖(𝑥) − 𝑑𝑖+ + 𝑑𝑖
− = �̂�𝑖, 𝑖 = 1, . . . , 𝑘.
𝐴𝑥 ≤ 𝑏, 𝑥 ≥ 0.
𝑑𝑖+. 𝑑𝑖
− = 0, 𝑖 = 1, . . . , 𝑘.
𝑑𝑖+ ≥ 0, 𝑑𝑖
− ≥ 0, 𝑖 = 1, . . . , 𝑘.
23
𝑤𝑖+ : bobot pencapaian melebihi target (over achievement)
terhadap fungsi tujuan ke-i.
𝑤𝑖− : bobot pencapaian dibawah target (under achievement).
terhadap fungsi tujuan ke-i.
2.3.7 Perangkat Lunak LINGO
Dalam menyelesaikan masalah goal programming dapat diselesaikan
dengan metode grafik, metode simplek ataupun dengan bantuan program
komputer. Pada penelitian ini penyelesainya masalah goal programming dengan
bantuan program komputer yaitu LINGO. LINGO adalah alat komprehensif yang
dirancang untuk membuat bangunan dan penyelesaian model pengoptimalan
Linear, Nonlinier (cembung & nonkonveks/ Global), Kuadratik, Dibatasi Kuadrat,
Kerucut Orde Kedua, Semi-Pasti, Stochastic, dan Integer lebih cepat, lebih
mudah, dan lebih efisien. LINGO menyediakan paket yang sepenuhnya
terintegrasi yang mencakup bahasa yang kuat untuk mengekspresikan model
pengoptimalan, lingkungan berfitur lengkap untuk membangun dan mengedit
masalah, dan satu set pemecah bawaan yang cepat [16].
Menurut [9], dalam mengunakan sofware LINGO ada beberapa tahapan
yang perlu dilakukan, yaitu :
1. Merumuskan masalah dalam kerangka program linier.
2. Menuliskan dalam persamaan matematika.
3. Merumuskan rumusan ke dalam LINGO dan mengeksekusinya.
4. Interpretasi keluaran LINGO.
24
2.3.8 Analisis Goal Programming
Menurut [12], berikut merupakan beberapa ukuran umum utama dari Goal
programming.
1. Nilai variabel keputusan (the value of the decision variables ). Ini memberikan
keputusan yang akan diambil dalam hal ruang keputusan aktual dari masalah
tersebut. Nilai variabel keputusan tidak secara langsung memberikan informasi
tentang pencapaian tujuan tetapi sangat penting dalam membantu pembuat
keputusan memvisualisasikan solusi, meningkatkan potensi kesulitan, dan
memastikan bahwa itu dapat diterapkan dalam praktik.
2. Tingkat pencapaian tujuan (the achievement levels of the goals). Apakah nilai-
nilai target di bawah/di atas pencapaian, atau terpenuhi dengan tepat?.
Informasi ini dapat disajikan secara langsung atau sebagai nilai variabel
deviasi. Penyimpangan dari tujuan di mana target tidak tercapai dapat
dinyatakan sebagai persentase atau nilai absolut. Tingkat pencapaian tujuan
dapat dianggap memberikan pandangan yang lebih strategis dari solusi
daripada pandangan praktis yang diberikan oleh nilai variabel keputusan.
3. Keseimbangan relatif antara tujuan (the relative balance between goals). Selain
melihat nilai absolut dari tujuan, pemilik masalah mungkin memerlukan
laporan tentang keseimbangan relatif di antara tujuan tersebut. Hal ini terutama
penting dalam situasi multi-pemangku kepentingan di mana pemangku
kepentingan memiliki pandangan yang bertentangan tentang pentingnya tujuan
tersebut.
4. Nilai fungsi pencapaian (the value of the achievement function). Ini akan
menjadi fungsi bernilai tunggal untuk varian berbobot serta vektor nilai optimal
tingkat prioritas untuk varian leksikografik. Ini dapat memberikan informasi
tentang tingkat total penyimpangan tujuan, terutama ketika normalisasi
persentase telah digunakan. Dalam kasus leksikografi, ini akan menunjukkan
jika semua tujuan di tingkat prioritas telah tercapai (dalam hal ini nilai optimal
akan menjadi nol).
5. Status kendala (the status of the constraints). Mirip dengan kasus program
linear, solusi akan menunjukkan tingkat slack atau surplus dalam kendala
ketidaksetaraan apapun dan menunjukkan kendala mana yang kritis karena
25
mengikat, di situlah tidak ada kelonggaran atau kelebihan karena sumber daya
yang mendasarinya digunakan sepenuhnya.
6. Informasi pemodelan teknis (technical modelling information). Informasi
mengenai redundansi leksikografik dari tingkat prioritas atau efisiensi Pareto
dari solusi juga dapat diekstraksi jika teknik tersebut telah dikodekan dengan
menggunakan paket goal programming khusus. Informasi ini akan membantu
menjaga dari kesalahan pemodelan goal programming.
2.3.9 Optimisasi Multi-Objektif
Goal Programming merupakan bentuk masalah dari multi-objektif. Dalam
masalah multi-objektif dikatakan sebagai solusi optimal yang lengkap jika sebuah
titik 𝑥∗ jika dan hanya jika ada 𝑥∗ ∈ 𝑋 dan 𝓏𝑖(𝑥∗) ≤ 𝓏𝑖(𝑥) untuk semua i dengan
𝑖 = 1,… , 𝑘 dan 𝑥 ∈ 𝑋, dimana 𝑋 adalah daerah layak (feasible region). Secara
umum, solusi optimal lengkap yang secara bersamaan meminimalkan semua
fungsi multiobyektif tidak selalu ada ketika fungsi tujuan bertentangan satu sama
lain. Jadi, alih-alih diperkenalkan dalam program linier multiobyektif yang
disebut optimalitas Pareto [11].
Solusi 𝑥∗ dikatakan optimal Pareto jika dan hanya jika tidak ada solusi lain
𝑥 ∈ 𝑋. Sehingga 𝓏𝑖(𝑥)≤ 𝓏𝑖(𝑥∗) untuk semua i dan 𝓏𝑗(𝑥) ≠ 𝓏𝑗(𝑥
∗) untuk paling
sedikit satu (j) [11].
2.3.10 Konsep Solusi Pareto Optimal Goal Programming
Pada goal programming (goal programming), Tamiz dan Jones pada
tahun 1996 memberikan definisi sebagai berikut [12]:
1. Tujuan adalah Pareto efisien jika dapat ditingkatkan tanpa memburuknya nilai
dari setiap tujuan lainnya.
2. Suatu tujuan adalah Pareto efisien jika tidak dapat ditingkatkan tanpa
memperburuk nilai tujuan lain.
3. Tujuan yang tidak efisien adalah Pareto tidak terbatas jika dapat ditingkatkan
ke nilai tinggi yang sewenang-wenang tanpa memperburuk tujuan lainnya.
26
Berikut definisi yang lebih umum dari efisiensi Pareto pada goal
programming [12]:
1. Goal programming adalah Pareto efisien jika setiap tujuan adalah Pareto
efisien.
2. Goal programming Pareto tidak efisien jika satu atau lebih tujuan Pareto tidak
efisien.
3. Goal programming adalah Pareto tidak terbatas jika satu atau lebih tujuan
adalah Pareto tidak terbatas.
2.3.11 Deteksi Efisiensi Pareto
Dalam model goal programming terdapat tiga jenis penyimpangan
hukuman dari target/sasaran.
1. Penyimpangan positif dan negatif dari target dihukum.
2. Hanya penyimpangan positif dari target yang dihukum.
3. Hanya penyimpangan negatif dari target yang dihukum.
Pada sasaran (1) dapat diklasifikasikan sebagai efisiensi pareto. Sedangkan
sasaran jenis (2) dan (3) dapat termasuk dalam salah satu dari tiga status pareto.
Setiap gol (tujuan) dengan pada model goal programming varian berbobot bukan
nol dasar pada solusi optimal adalah Pareto efisien. Nilai optimal dari suatu varian
model berbobot tidak akan pernah dapat diturunkan tanpa memperburuk tujuan
lain karena nilai tersebut telah diturunkan sebagai bagian dari solusi goal
programming. Oleh karena itu, tujuan apapun dengan varian model berbobot
adalah Pareto efisien [12].