Penggunaan Integer Linear Programming de

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)

1

Penggunaan Integer Linear Programming
dengan Metode Heuristik untuk Optimasi
Penjadwalan Paruh Waktu
Agri Kridanto, Ahmad Saikhu, dan Rully Soelaiman
Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember
(ITS)
Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia
e-mail: rully_soelaiman@if.its.ac.id
Abstrak—Permasalahan penjadwalan pegawai paruh waktu
sangatlah menarik untuk diselesaikan karena terdapat begitu
banyak batasan, terutama batasan dari segi pegawai yang
tersedia. Batasan tersebut antara lain perbedaan kemampuan
yang dimiliki oleh setiap pegawai, ketersediaan setiap pegawai
untuk bekerja pada waktu tertentu, dan target jam kerja yang
dimiliki oleh setiap pegawai dalam suatu periode penjadwalan.
Tujuan utama dari permasalahan penjadwalan pegawai paruh
waktu adalah untuk memenuhi tuntutan jam kerja (permintaan

pasar) dengan berbagai batasan yang ada. Selain itu,
penjadwalan pegawai paruh waktu harus dapat menghasilkan
penjadwalan yang efektif agar dapat meminimalkan kelebihan
pegawai (overstaff) dan juga meminimalkan total deviasi antara
jam kerja yang dijadwalkan dan target jam kerja setiap pegawai.
Permasalahan penjadwalan pegawai paruh waktu sangat
sulit untuk diselesaikan karena membutuhkan integer linear
programming (ILP) yang sangat besar. Oleh karena itu,
permasalahan ini akan dibagi menjadi 2 sub masalah yaitu:
menentukan shift yang baik dan memberikan shift yang telah
didapat kepada pegawai yang tersedia dengan menggunakan ILP
untuk menyelesaikan kedua sub masalah tersebut.
Kata Kunci— heuristik, integer linear programming , optimasi,
penjadwalan.

I. PENDAHULUAN

P

ERMASALAHAN penjadwalan adalah bagian yang

sangat penting dalam sebuah industri, sebagai contoh pada
perusahaan layanan jasa, seperti bank, restoran, call
center, dan lain sebagainya. Pada perusahaan layanan jasa,
biasanya mempekerjakan pegawai paruh waktu, karena
perusahaan memiliki tuntutan jam kerja yang tinggi sementara
para pegawai memiliki batasan berupa kemampuan serta jam
kerja mereka. Para pegawai paruh waktu tersebut, memiliki
kecenderungan untuk bekerja pada waktu tertentu, memiliki
kemampuan untuk melakukan tugas tertentu dan memilki
target jam kerja yang berbeda pula dalam suatu periode
penjadwalan. Sementara itu, perusahaan penyedia layanan
jasa, memiliki tuntutan kerja yang harus dipenuhi selama
periode kerja. Tuntutan jam kerja umumnya fluktuatif
terhadap waktu sesuai dengan permintaan konsumen.
Terdapat tiga langkah dalam melakukan permasalahan
penjadwalan seperti ini. Langkah pertama, untuk memprediksi
tuntutan kerja untuk setiap jam kerja selama periode
penjadwalan. Kedua, mewujudkan prediksi tuntutan kerja
tersebut pada kebutuhan pegawai untuk setiap jam kerja
supaya dapat memenuhi permintaan konsumen. Ketiga, untuk


mendapatkan ketersediaan setiap pegawai dengan menentukan
hari kerja dan shift pada setiap pegawai.
Tujuan utama dari proses penjadwalan ini untuk
menghasilkan penjadwalan pegawai yang dapat memenuhi
tuntutan kerja dengan meminimalkan total jam kerja para
pegawai serta memenuhi target jam kerja pegawai dalam suatu
periode penjadwalan.
Permasalahan penjadwalan seperti ini sangat sulit untuk
diselesaikan
karena
membutuhkan
Integer
Linear
Programming (ILP ) yang sangat besar sehingga penyelesaian
permasalahan ini membutuhkan waktu komputasi yang sangat
lama. Mehran Hojati dan Ashok S Patil [1] mengajukan
sebuah solusi untuk menyelesaikan permasalahan penjadwalan
ini yaitu dengan membagi permasalahan ini menjadi 2 sub
masalah, yaitu: menentukan shift yang baik dan memberikan

shift yang didapat pada pegawai yang tersedia dengan
menggunakan ILP untuk menyelesaikan setiap sub masalah
tersebut. ILP tahap pertama untuk menghasilkan shift yang
baik. Shift yang baik adalah shift yang meminimalkan total
jam kerja yang akan dijadwalkan serta memaksimalkan jumlah
pegawai yang bisa melaksanakannya. ILP tahap pertama ini
bertujuan untuk mereduksi kemungkinan shift yang ada. ILP
tahap kedua digunakan untuk memberikan shift yang telah
didapat sebelumnya kepada para pegawai yang tersedia .
Permasalahan penjadwalan yang diangkat pada artikel
ini adalah permasalahan penjadwalan pada restoran cepat saji.
Terdapat beberapa batasan tambahan yaitu pekerja harus
bekerja maksimal pada 5 hari kerja dalam seminggu dan
pekerja minimal bekerja minimal 3 jam dan maksimal 8 jam
pada hari kerja.
Dalam studi ini akan mengimplementasikan metode yang
diajukan oleh Mehran Hojati dan Ashok S Pathil [1] dengan
menggunakan data ujicoba untuk dapat membandingkan hasil
yang didapat serta beberapa data ujicoba acak untuk menguji
kebenaran model yang telah dibangun.

II. METODOLOGI PENELITIAN
A. Notasi

 h
Indeks jam kerja pada setiap hari kerja ( h  1,...,18 ).
 d
Indeks hari kerja dalam 1 minggu. ( d  1,...,7 ).
 e

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)
Indeks pegawai yang tersedia. ( e  1,...,40 ).

 s
Indeks dari shift yang memungkinkan setiap harinya
( s  1,...,81 ), dimana setiap indeks shift yang memiliki
durasi minimal 3 jam dan maksimal 8 jam, contoh: s=1
(1,2,3), s=2 (1,2,3,4)
 t
Indeks dari tugas yang ada serta kemampuan yang dimiliki
oleh pegawai, t=1(Grill/Gr ), 2(Drive Thru/DT), 3(French

Fries/FF ), 4(Bin Call/BC), 5(Counter/Co) .
 y std
Jumlah pegawai yang dijadwalkan pada shift s, untuk tugas
t pada hari d.
 a hstd
Bernilai 1 jika jam h terdapat dalam shift s. Jika tidak maka
bernilai 0.
 r htd
Jumlah pegawai yang dibutuhkan pada jam h untuk tugas t
pada hari d .
 hrs s
Durasi dalam jam pada shift s.
 h dr eq

Jumlah jam kerja yang dibutuhkan pada hari d.

 htd

r eq


Jumlah jam kerja yang dibutuhkan untuk tugas t pada hari
d.
 Trgte
Target jam kerja pegawai e dalam 1 minggu.
 Trgt w
Target jumlah shift yang dijadwalkan dalam 1 minggu.
 Trgtd
Target jumlah shift yang dijadwalkan dalam hari d.
 Trgttd
Target jumlah shift untuk tugas t yang dijadwalkan pada
hari d.
 E std
Jumlah pegawai yang tersedia dan memenuhi syarat untuk
shift s, tugas t, hari d.
 utd
Jumlah shift yang dibawah target Trgttd .

 otd
Jumlah shift yang diatas target Trgttd .


r
 S ed
Jumlah dari shift yang tersisa pada hari d, dimana pegawai e
tersedia dan memenuhi syarat untuk shift-shift tersebut.
 S er
Jumlah dari shift-shift yang tersisa dalam 1 minggu, dimana
pegawai e tersedia dan memenuhi syarat untuk shift-shift
r
tersebut. Ser  d Sed

r
 E ed

2

Bernilai 1 jika pegawai e yang tersedia dan memenuhi
syarat setidaknya untuk 1 shift pada hari d. Jika tidak maka
bernilai 0
 E dr
Jumlah dari pegawai yang tersisa dimana pegawai tersebut

tersedia dan memenuhi syarat setidaknya untuk 1 shift pada
r
hari d. E dr  e pegawai tersisa E ed
 Er
Jumlah total dari hari kerja semua pegawai yang tersisa
dengan maksimal 5 hari kerja untuk tiap pegawai.
r
E r  e pegawai tersisa min(d Eed
,5)

r
 E std
Jumlah dari pegawai yang tersisa dimana para pegawai
tersebut tersedia dan memenuhi syarat untuk shift s, tugas t,
pada hari d
 E ldr
Jumlah minimum dari pegawai yang tersisa dimana para
pegawai tersebut tersedia dan memenuhi syarat untuk shift
yang
berdurasi

L
jam
pada
hari
d.
r
E ldr  min(E std
: hrs s  L)

 S dr
Jumlah dari shift yang tersisa pada hari d
  ur
Konstanta heuristik yang menyatakan total jam kerja yang
masih kurang dari target jam kerja mingguan selama
pencarian solusi berlangsung.
  or
Konstanta heuristik yang menyatakan total jam kerja yang
melebihi selama pencarian solusi berlangsung.
  ur
Total jam kerja yang masih kurang dari target jam kerja

mingguan pegawai ( Trgte ).
  ro
Total jam kerja yang melebihi target jam kerja mingguan
pegawai ( Trgte ).

 du

r

Sisa hari kerja pegawai terhadap batas maksimal hari kerja

 xLd

Bernilai 1 jika shift dengan durasi L jam tersedia dan cocok
untuk diberikan kepada pegawai e . Bernilai 0 jika shift
dengan durasi L jam tersebut tidak tersedia dan cocok untuk
diberikan kepada pegawai e.
B. Proses Menentukan Shift yang Baik Menggunakan ILP
Proses ini bertujuan untuk memilih shift-shift yang baik
yang dapat meminimalkan total jam kerja yang akan
dijadwalkan dan memaksimalkan jumlah pegawai yang dapat
melaksanakannya. Proses ini digunakan untuk mereduksi
jumlah shift yang nantinya akan diberikan kepada para
pegawai. Dalam proses ini tetap melibatkan para pegawai agar
shift-shift yang terpilih bisa diberikan kepada para pegawai
yang tersedia. Oleh karena itu, dalam menentukan shift yang
baik akan dihitung berapa jumlah pegawai yang dapat

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)
melaksanakan shift tersebut dan shift yang akan dipilih adalah
shift yang memiliki jumlah maksimal pegawai yang bisa
melaksanakan shift tersebut.
Terdapat 3 langkah dalam proses menentukan shift yang
baik, yaitu:
1. Tentukan target shift untuk setiap tugas t pada hari d.
Asumsikan, pegawai bekerja rata-rata dalam 4 hari kerja
seminggu. Sehingga, untuk 40 pekerja akan terdapat 160
target shift untuk periode penjadwalan 1 minggu.
(1)
Trgtw  4 * e



Target shift untuk setiap hari d didapatkan dengan
menghitung jumlah jam kerja yang dibutuhkan pada hari
d dibagi total jam kerja dalam 1 minggu dikali dengan
target shift per minggu.
hdr eq
* Trgtw , d
 hdr eq

Trgtd 

(2)

d

Target shift untuk tugas t pada hari d didapatkan dengan
menghitung jumlah jam kerja yang dibutuhkan untuk
tugas t pada hari d dibagi target shift pada hari tersebut.
(3)
h r eq
Trgttd  tdr eq * Trgtd , d , t
hd

2. Tentukan jumlah pegawai yang tersedia dan memenuhi
syarat untuk melaksanakan setiap shift s untuk tugas t
pada hari d.
3. Formulasikan ILP1 untuk setiap tugas t pada hari d.
Meminimalkan :
Z   hrss . ystd   0td    Estd .hrss . ystd

a

s

Batasan :

y

hstd

s

std

(4)

s

. ystd  rhtd , h

  0td  utd  Trgttd ,

ystd  nonNegatif _ Integer , s

(5)
(6)

s

0td , utd  0

(7)
(8)

Koefisien yang digunakan dalam fungsi objektif pada model
ILP1 ,  =1 dan  =0.1.
Fungsi objektif ILP1 pada (4), dapat dibagi menjadi 3 bagian,
yaitu:
(9)
i.  hrs s . ystd ,
s

untuk meminimalkan total jam kerja dari pegawai yang
akan dijadwalkan.
ii.  0td ,
(10)
untuk memperbolehkan adanya shift yang melebihi
target shift untuk tugas t pada hari d ( Trgttd ) tetapi
tetap menjaga untuk meminimalkan adanya shift yang
melebihi Trgttd .

iii.    E std .hrs s . ystd ,
s

(11)

3

untuk memaksimalkan jumlah pegawai yang tersedia
dan memenuhi syarat untuk shift yang terpilih.
Batasan ILP1 dalam (5) digunakan untuk memastikan
bahwa setiap shift yang terpilih nanti akan memiliki jumlah
pegawai minimal sebanyak pegawai yang dibutuhkan pada
jam kerja tersebut. Batasan ILP1 dalam (6) digunakan agar
jumlah shift yang terpilih ditambah shift yang melebihi target,
dikurangi shift yang dibawah target sama dengan target shift
untuk tugas t pada hari d Trgttd  . Batasan ILP1 dalam (7)
digunakan untuk memastikan bahwa nilai dari variabel
keputusan ystd adalah bilangan non negatif integer. Batasan
ILP1 dalam (8) digunakan untuk memastikan shift yang
melebihi target dan shift yang kurang dari target adalah
bilangan non negatif.
Pemodelan ILP1 yang telah dijelaskan diatas diharapkan
mencapai hasil yang optimal, sehingga kita bisa mendapat
nilai dari setiap variabel keputusan ystd . Shift yang akan
digunakan adalah shift yang memiliki nilai ystd yang positif.
Jika nilai ystd  2 maka perlu dilakukan replikasi sebanyak

nilai ystd sehingga akan terdapat shift sebanyak nilai ystd
untuk shift s, tugas t, pada hari d yang bisa dijadwalkan
kepada para pegawai dalam tahap selanjutnya. Hasil akhir
dari seluruh tahapan ini adalah daftar shift yang baik yang
akan digunakan pada tahapan selanjutnya.
C. Proses Pemberian Shift kepada Pegawai Menggunakan
ILP dengan Metode Heuristik
Pada proses pemberian shift kepada pegawai akan
digunakan ILP2 dengan metode heuristik untuk memberikan
shift yang telah didapat kepada pegawai yang tersedia. Berikut
ini adalah langkah-langkah untuk proses pemberian shift

kepada para pegawai. Sebagai inisialisai,  u  0 dan
r

 or  0 .

1. Cari pegawai dengan ketersediaan terendah pada daftar
shift (selanjutnya disebut ei).
2. Untuk setiap ei
i. Untuk setiap shift yang tersisa dalam daftar shift,
periksa apakah ei tersedia untuk shift tersebut,
jika ya, E std = jumlah pegawai yang bisa
melaksanakan shift tersebut. Jika tidak, E std  0 .

ii. Untuk setiap shift dengan durasi L jam pada hari d,





r

dapatkan nilai minimal dari nilai E std yang telah

didapat sebelumnya. Eld  min E std : hrss  L .
r

r

iii. Untuk setiap hari penjadwalan, hitung jumlah
pegawai yang tersedia dan memenuhi syarat
r

setidaknya untuk 1 shift pada hari tersebut ( E d ).
iv. Hitung jumlah total dari ketersediaan pegawai dalam
periode panjadwalan 1 minggu, dengan penjadwalan
maksimal 5 hari kerja dalam 1 minggu ( E r ).

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)

4

v. Hitung jumlah shift pada setiap hari d ( Sd ).

oe

vi. Selesaikan ILP2 untuk pegawai ei.

meminimalkan total deviasi deviasi antara

r



Meminimalkan:
Z 

(1   ur )ue  (1   or )oe 

 1 d eu

E  d S  
r

r
d

ii.

dari target jam kerja mingguan pegawai ( Trgte ).

 1d eu

E r  d S dr  

nilai

,

(21)

E r mendekati nilai

d S d   .
r

Sehingga

u
e

koefisien dari d akan semakin meningkat. Karena

  xLd 

 3 d  r L r
 E d  Sd   



fungsi tujuan meminimalkan nilai variabel keputusan

d eu , maka diharapkan nilai d eu akan semakin
mengecil sehingga solusi diharapkan akan semakin
memenuhi target kerja mingguan pegawai ( Trgte ).

u
  xLd  d e  5, d , L

(13)



x
,
iii.   2    r Ld
(22)
 d L E  (1 ) 
Ld


r
Nilai E Ld
 (1 ) akan semakin mengecil ketika

u
o
  xLd L  e  e  Trgte

dari xLd akan menjadi bilangan negatif yang besar.

 xLd  1, d

(14)
(15)

Hal ini diharapkan dapat menjadikan pemilihan
variabel xLd menjadi lebih baik.

xLd 

(16)

(12)
Batasan:

d L

d L

L

r
,d , L
E Ld

xLd  biner ,d , L

d eu , ue , oe

0

(19)

dalam persamaan 9 dapat dibagi menjadi 4 bagian, yaitu :
(20)
i. (1   ur )ue  (1   er )oe ,
dan

oe

akan meningkat seiring

dengan meningkatnya  u dan  o . Persamaan (20)
r

r

diharapkan dapat menyeimbangkan antara 

r
u

ue

dan

selama pencarian solusi berlangsung. Karena

fungsi tujuannya meminimalkan, maka nilai

(23)

Nilai E dr  Sdr   akan semakin mengecil

ketika

  . Sehingga koefisien

dari xLd akan menjadi bilangan negatif yang besar.

Koefisien yang digunakan dalam fungsi objektif pada model
ILP2 ,  0.1 dan  1   2   3 =3. Fungsi objektif ILP2

ue


,

 E d  Sd   

nilai E mendekati nilai

Gunakan langkah 1, 2 hingga semua pegawai telah
dijadwalakan dan tidak ada pegawai yang tersisa dalam daftar
pegawai.

koefisien dari


x
iv.  3 d  r L Ld
r


(18)

ei. Hapus pegawai ei dari daftar pegawai dan hapus
shift yang tepilih dari daftar shift.
viii. Perbarui konstanta heuristik,

 ur   ur  ue dan  or   or  oe .

r
nilai E Ld
mendekati nilai (1 ) . Sehingga koefisien

(17)

vii. Berikan shift yang terpilih ( xLd  1 ) kepada pegawai



dan

Nilai E r  d Sdr   akan semakin mengecil ketika





xLd
 
 2   r



E
(
1
)
d
L
Ld



r
o

o
e

ue

cenderung semakin mengecil sehingga dapat

dan

r
d

S dr

Hal ini diharapkan dapat menjadikan pemilihan
variabel xLd menjadi lebih baik.
Batasan ILP2 dalam (13) mengharuskan solusi yang
dihasilkan harus memenuhi target maksimal 5 hari kerja.
Batasan ILP2 dalam (14) mengharuskan bahwa solusi yang
dihasilkan memenuhi target jam kerja pegawai. Batasan ILP2
dalam (15) mengharuskan hanya ada satu shift yang terpilih
setiap harinya. Batasan ILP2 pada (16) mengharuskan nilai
dari variabel keputusan xLd sama dengan 0, jika pegawai ei
tidak tersedia dan memenuhi syarat untuk setiap shift dengan
durasi L jam pada hari d. Karena batas atas dari batasan ini
r
adalah variabel E Ld
, akan memiliki nilai 0 jika pegawai ei
tidak tersedia dan memenuhi syarat untuk setiap shift dengan
durasi L jam pada hari d. Batasan ILP2 pada (17)
mengharuskan nilai variabel keputusan xLd adalah variabel
biner. Batasan ILP2 pada (15) mengharuskan nilai dari
variabel keputusan d eu , ue , oe adalah bilangan non negatif.

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)
Tabel 1 Perbandingan Hasil Uji Coba untuk Data Uji Coba Utama

III. HASIL UJI COBA
Dalam uji coba ini model dibangun pada lingkungan
pemodelan MATLAB dengan TOMLAB Optimization untuk
menyelesaikan ILP. Data uji coba berasal dari paper [1] . Data
uji coba terdiri dari data uji coba utama dan data uji coba acak.
Dalam bagian ini akan diberikan perbandingan antara hasil
penjadwalan dari model yang telah dibangun dan hasil dari
penulis. Sebagai informasi tambahan, Mehran Hojati dan
Ashok S Pathil (2008) menggunakan Excel VBA dengan
Standard Solver untuk menyelesaikan ILP.
Dalam data uji coba utama terdapat 40 pegawai yang
tersedia dengan jam kerja tertentu, 5 jenis tugas dan
kemampuan pegawai serta tuntutan jam kerja yang ada. Proses
menetukan shift yang baik membutuhkan 35 ILP1 (7 hari
kerja, 5 tugas). Proses memberikan shift kepada menggunakan
40 ILP2 yang digunakan dalam 40 kali iterasi karena terdapat
40 pegawai yang tersedia. Perbandingan untuk data uji coba
utama dapat dilihat pada Tabel 1.
Uji coba juga dilakukan untuk 10 data uji coba acak [1].
Dari data tersebut didapatkan hasil yaitu: rata-rata kelebihan
jam kerja hanya 0,3 jam untuk setiap data uji coba, rata-rata
total deviasi antara target jam kerja dan jam kerja yang
dijadwalkan adalah 6,4 jam untuk setiap data uji coba atau
hanya 0,16 jam untuk setiap pegawai, dan rata-rata waktu
komputasi
yang
dibutuhkan
untuk
menyelesaikan
permasalahan penjadwalan yaitu 3,5 detik untuk setiap data uji
coba.
IV. KESIMPULAN/RINGKASAN
Berdasarkan hasil uji coba, keseluruhan model yang telah
dibangun dapat menyelesaikan permasalahan penjadwalan
paruh waktu dengan waktu komputasi yang cukup singkat.
Model ILP1 dapat menghasilkan shift yang baik, dimana shift
tersebut dapat memaksimalkan jumlah pegawai yang
melaksanakannya sehingga shift tersebut dapat diberikan
kepada pegawai yang tersedia. Model ILP2 dengan
menggunakan metode heuristik dapat memberikan shift yang
telah didapat kepada pegawai yang tersedia dengan
meminimalkan total deviasi antara jam kerja yang dijadwalkan
dan target jam kerja mingguan pegawai. Keseleruhan proses
penjadwalan pegawai paruh waktu dapat memberikan hasil
yang cukup baik, dengan memenuhi tuntutan jam kerja yang
ada, dan mampu meminimalkan adanya kelebihan jam kerja
(overstaff).
UCAPAN TERIMA KASIH
Penulis A.K. mengucapkan terima kasih kepada dosen
pembimbing yang telah banyak memberikan bantuan dan
bimbingan kepada penulis dalam melakukan penelitian ini.

5

Parameter
perbandingan
Kelebihan jam kerja
Total deviasi
Waktu Komputasi

Mehran Hojati dan
Ashok S Pathil.
4 jam
20 jam
18 menit

Hasil Uji Coba
4 jam
12 jam
5,44 detik

DAFTAR PUSTAKA
[1]

Hojati, M., Patil A. S. “An integer linear programming-based heuristic
for scheduling heterogeneous part-time service employees” European
Journal of Operational Research 209, 37-50, 2011