20
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.

BAB II TINJAUAN PUSTAKA 2.1 Penjadwalan

  • Upload
    others

  • View
    2

  • 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].