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
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 (h1,...,18).
d
Indeks hari kerja dalam 1 minggu. (d1,...,7). e
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
Indeks pegawai yang tersedia. (e1,...,40). s
Indeks dari shift yang memungkinkan setiap harinya (s1,...,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) .
ystd
Jumlah pegawai yang dijadwalkan pada shifts, untuk tugas
t pada hari d.
a
hstdBernilai 1 jika jam h terdapat dalam shifts. Jika tidak maka bernilai 0.
rhtd
Jumlah pegawai yang dibutuhkan pada jam h untuk tugas t
pada hari d . hrs s
Durasi dalam jam pada shifts. req
d
h
Jumlah jam kerja yang dibutuhkan pada hari d.
req td
h
Jumlah jam kerja yang dibutuhkan untuk tugas t pada hari
d.
Trgt e
Target jam kerja pegawai e dalam 1 minggu. Trgt w
Target jumlah shift yang dijadwalkan dalam 1 minggu. Trgt d
Target jumlah shift yang dijadwalkan dalam hari d.
Trgt
tdTarget jumlah shift untuk tugas t yang dijadwalkan pada hari d.
Estd
Jumlah pegawai yang tersedia dan memenuhi syarat untuk
shifts, tugas t, hari d.
u td
Jumlah shift yang dibawah target Trgttd.
o td
Jumlah shift yang diatas target Trgttd.
r ed
S
Jumlah dari shift yang tersisa pada hari d, dimana pegawai e
tersedia dan memenuhi syarat untuk shift-shift tersebut. r
e
S
Jumlah dari shift-shift yang tersisa dalam 1 minggu, dimana pegawai e tersedia dan memenuhi syarat untuk shift-shift
tersebut. d r ed r e S S r ed E
Bernilai 1 jika pegawai e yang tersedia dan memenuhi syarat setidaknya untuk 1 shift pada hari d. Jika tidak maka bernilai 0
r d
E
Jumlah dari pegawai yang tersisa dimana pegawai tersebut tersedia dan memenuhi syarat setidaknya untuk 1 shift pada hari d. epegawai tersisa
r ed r d E E r E
Jumlah total dari hari kerja semua pegawai yang tersisa dengan maksimal 5 hari kerja untuk tiap pegawai.
epegawai tersisamin( d ,5) r ed r E E r std E
Jumlah dari pegawai yang tersisa dimana para pegawai tersebut tersedia dan memenuhi syarat untuk shifts, tugas t, pada hari d
r ld
E
Jumlah minimum dari pegawai yang tersisa dimana para pegawai tersebut tersedia dan memenuhi syarat untuk shift
yang berdurasi L jam pada hari d. ) : min(E hrs L E s r std r ld r d S
Jumlah dari shift yang tersisa pada hari d
r u
Konstanta heuristik yang menyatakan total jam kerja yang masih kurang dari target jam kerja mingguan selama pencarian solusi berlangsung.
r o
Konstanta heuristik yang menyatakan total jam kerja yang melebihi selama pencarian solusi berlangsung.
r u
Total jam kerja yang masih kurang dari target jam kerja mingguan pegawai (Trgte).
r o
Total jam kerja yang melebihi target jam kerja mingguan pegawai (Trgte).
r u
d
Sisa hari kerja pegawai terhadap batas maksimal hari kerja
x
LdBernilai 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
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)
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. (2) 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)
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 : (4) Batasan : (5) (6) (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: i. std s s y hrs . , (9)untuk meminimalkan total jam kerja dari pegawai yang akan dijadwalkan. ii. 0 td , (10)
untuk memperbolehkan adanya shift yang melebihi target shift untuk tugas t pada hari d (
Trgt
td) tetapi tetap menjaga untuk meminimalkan adanya shift yang melebihiTrgt
td. iii. s std s std y hrs E . . , (11)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
y
std 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
y
std. Shift yang akan digunakan adalah shift yang memiliki nilaiy
std yang positif. Jika nilaiy
std
2
maka perlu dilakukan replikasi sebanyak nilaiy
std sehingga akan terdapat shift sebanyak nilaiy
stduntuk 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,
ru
0
dan0
ro .
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,dapatkan nilai minimal dari nilai
E
stdr yang telah didapat sebelumnya.E
ldr
min
E
stdr:
hrs
s
L
. iii. Untuk setiap hari penjadwalan, hitung jumlahpegawai yang tersedia dan memenuhi syarat setidaknya untuk 1 shift pada hari tersebut (
E
dr). iv. Hitung jumlah total dari ketersediaan pegawai dalamperiode panjadwalan 1 minggu, dengan penjadwalan maksimal 5 hari kerja dalam 1 minggu (
E
r).
e Trgtw 4* d Trgt h h Trgt w d req d req d d
* , t d Trgt h h Trgt req d d req td td * , , std s s std td std s sy E hrs y hrs Z
. 0
. .h
r
y
a
htd s std hstd
.
,
,
0 td u td td s stdTrgt
y
s Integer nonNegatif ystd _ , 0 , 0 u td td
v. Hitung jumlah shift pada setiap hari d (
S
dr).vi. Selesaikan ILP2 untuk pegawai ei. Meminimalkan: (12) Batasan: (13) (14) (15) (16) (17) (18) vii.
Berikan shift yang terpilih (
x
Ld
1
) kepada pegawai ei. Hapus pegawai ei dari daftar pegawai dan hapusshift yang tepilih dari daftar shift. viii. Perbarui konstanta heuristik,
u e r u r u dan oe r o r o . (19)
Gunakan langkah 1, 2 hingga semua pegawai telah dijadwalakan dan tidak ada pegawai yang tersisa dalam daftar pegawai.
Koefisien yang digunakan dalam fungsi objektif pada model ILP2 ,
0
.
1
dan
1
2
3=3. Fungsi objektif ILP2 dalam persamaan 9 dapat dibagi menjadi 4 bagian, yaitu :i. (1ur)
ue (1er)
oe, (20) koefisien dari
ue dano e
akan meningkat seiring dengan meningkatnya
ru dan
or. Persamaan (20) diharapkan dapat menyeimbangkan antara
ru danr o
selama pencarian solusi berlangsung. Karena fungsi tujuannya meminimalkan, maka nilai
ue dano e
cenderung semakin mengecil sehingga dapat meminimalkan total deviasi deviasi antara
ue dano e
dari target jam kerja mingguan pegawai (Trgt
e).ii. d dr r u e S E d 1 , (21) Nilai d r d r S
E akan semakin mengecil ketika nilai
E
rmendekati nilai d r d
S . Sehingga koefisien dari
d
euakan semakin meningkat. Karena fungsi tujuan meminimalkan nilai variabel keputusanu e
d
, maka diharapkan nilaid
eu akan semakinmengecil sehingga solusi diharapkan akan semakin memenuhi target kerja mingguan pegawai (Trgte).
iii. d L Ldr Ld E x ) 1 ( 2 , (22)
Nilai ELdr (1) akan semakin mengecil ketika nilai ELdr mendekati nilai (1). Sehingga koefisien
dari
x
Ldakan menjadi bilangan negatif yang besar.Hal ini diharapkan dapat menjadikan pemilihan variabel
x
Ld menjadi lebih baik.iv. d r d r d L Ld S E x 3 , (23) Nilai dr r d S
E akan semakin mengecil ketika nilai
E
dr mendekati nilai Sdr. Sehingga koefisiendari
x
Ldakan menjadi bilangan negatif yang besar.Hal ini diharapkan dapat menjadikan pemilihan variabel
x
Ld 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
x
Ld 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 adalah variabel ELdr , 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 keputusanx
Ld adalah variabel biner. Batasan ILP2 pada (15) mengharuskan nilai dari variabel keputusan oeu e u e
d , , adalah bilangan non negatif.
d r d r d L Ld d L r Ld Ld d r d r u e o e r o u e r u S E x E x S E d Z 3 2 1 ) 1 ( ) 1 ( ) 1 ( d
x
L Ld
1
,
L d E xLd Ldr , ,L
d
biner
x
Ld
,
,
0 , , oe u e u e d e o e u e d L LdTrgt
L
x
L
d
d
x
eu d L Ld,
,
5
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.
Tabel 1 Perbandingan Hasil Uji Coba untuk Data Uji Coba Utama
Parameter perbandingan
Mehran Hojati dan Ashok S Pathil.
Hasil Uji Coba
Kelebihan jam kerja 4 jam 4 jam Total deviasi 20 jam 12 jam Waktu Komputasi 18 menit 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