PENJADWALAN DENGAN TEKNIK SISIPAN (INSERTION TECHNIQUE) IR. DINI WAHYUNI, MT. Fakultas Teknik Jurusan Teknik Industri Universitas Sumatera Utara 1. Konsep Penjadwalan Penjadwalan dapat didefinisikan sebagai pengalokasian sumber daya dalam jangka waktu tertentu untuk melakukan serangkaian tugas (Baker, 1974). Menurut Morton (1993), penjadwalan adalah proses pengorganisasian, pemilihan, dan penentuan waktu penggunaan sumber-sumber untuk mengerjakan semua aktivitas yang diperlukan yang memenuhi kendala aktivitas dan sumber daya. Menurut Baker (1974) yang juga sejalan dengan Morton (1993), terdapat dua jenis kendala yang seringkali ditemukan dalam masalah penjadwalan, yaitu: • Keterbatasan teknologi urutan pengerjaan job atau routing (kendala aktivitas) • Batas kapasitas sumberdaya yang tersedia (kendala sumberdaya) Dapat dikatakan bahwa solusi terhadap masalah penjadwalan adalah setiap solusi yang fisibel pada daerah yang memenuhi kedua kendala tersebut (feasible region). Dengan demikian, pemecahan masalah penjadwalan paling tidak harus menjawab dua bentuk pertanyaan: • Sumber daya mana yang akan dialokasikan untuk mengerjakan operasi • Kapan setiap operasi dimulai dan selesai. Aktivitas penjadwalan pada dasarnya dapat dibedakan menjadi lima tingkatan (Morton, 1993), yaitu: 1) long-range planning, yang berkaitan dengan antara lain ekspansi, tata letak, dan perancangan pabrik (horison waktu 2 sampai 5 tahun) 2) middle-range planning, yang berkaitan dengan antara lain logistik (horison waktu 1 - 2 tahun) 3) short-range planning, yang berkaitan dengan antara lain rencana kebutuhan (horison waktu 3 - 6 bulan) 4) penjadwalan, yang berkaitan dengan antara lain routing pada job shop, penyeimbangan lini perakitan, dan penentuan ukuran batch (horison waktu 2 - 6 minggu) 5) penjadwalan reaktif/kontrol, yang berkaitan dengan antara lain situasi darurat seperti berhentinya mesin, dan keterlambatan bahan (horison waktu 1 - 3 hari). 2.
Performansi Jadwal Terdapat tiga tujuan pembuatan keputusan yang umum dalam penjadwalan dan ketiganya menunjukkan ukuran dasar performansi jadwal, yaitu (Baker, 1974): • Pemanfaatan sumber daya yang efisien: minimum maksimum saat selesai, Cmax (makespan). • Respon yang cepat terhadap permintaan konsumen: minimum rata-rata saat selesai (completion time), C , minimum rata-rata waktu tinggal (flow time), F , atau minimum rata-rata waktu tunggu (waiting time), W . • Sesuai dengan batas waktu yang ditentukan: minimum rata-rata keterlambatan (tardiness), T , minimum maksimum keterlambatan, Tmax , dan minimum jumlah job yang terlambat, NT (the number of tardy jobs). Definisi ukuran-ukuran performansi tersebut adalah (Baker, 1974): • Saat selesai (completion time), Cj: menunjukkan saat selesai pemrosesan job j C j = r j + Wj + t j atau 2002 digitized by USU digital library
1
dengan rj menyatakan saat siap job j, Wj adalah waktu tunggu job j, dan tj menyatakan waktu proses job j. • Waktu tinggal (flow time), Fj: menunjukkan lamanya job j berada dalam sistem atau
Fj = Cj − rj
yang menunjukkan selang waktu antara saat siap (yang diasumsikan pada saat datang) job sampai job keluar dari sistem (yang diasumsikan sama dengan saat selesai). Waktu tinggal merupakan ukuran respon sistem terhadap permintaan konsumen dan berkaitan dengan masalah biaya work in process (Morton, 1993). • Lateness, Lj: menunjukkan perbedaan antara saat selesai dengan due date (mengukur kesesuaian antara jadwal dengan due date yang diberikan) atau
L j = Cj − d j • Tardiness, Tj atau posistive lateness: menunjukkan keterlambatan yang terjadi Tj = max( Lj ,0) atau • Earliness, Ej atau negative lateness: menunjukkan kondisi job selesai lebih awal dari due date atau E j = max(− Lj ,0) Ukuran performansi lainnya adalah berkaitan dengan ongkos, seperti lamanya mesin menganggur, lamanya job menunggu, ataupun ongkos karena terjadinya job lateness. 3. Pendekatan Penjadwalan Terdapat dua pendekatan dasar yang digunakan dalam merancang algoritma penjadwalan, yaitu pendekatan penjadwalan maju (forward scheduling) dan pendekatan penjadwalan mundur (backward scheduling). Pada penjadwalan maju, job dijadwalkan dari saat datang, atau saat siap atau saat nol (time zero) dan bergerak maju menuju ke arah due date. Sedangkan pada penjadwalan mundur, job dijadwalkan mundur mulai dari due date menuju ke arah saat nol. Pada penjadwalan maju, meskipun jadwal yang dihasilkan selalu layak, tetapi tidak menjamin job tidak mengalami keterlambatan. Sedangkan pada penjadwalan mundur, meskipun saat selesai job bisa tepat pada saat due date tetapi jadwal yang dihasilkan bisa tidak layak, yaitu jika saat mulai job lebih awal dari saat datang job (atau saat nol). Kombinasi dari dua penjadwalan di atas menghasilkan penjadwalan kompromi (compromized scheduling) dan penjadwalan paksa (forced scheduling). Penjadwalan kompromi ini dilakukan dua tahap (Santoso, 1994). Tahap pertama adalah menjadwalkan job dengan penjadwalan maju sehingga diperoleh saat selesai job. Pada tahap kedua, job dijadwalkan dengan penjadwalan mundur dimulai dari saat selesai job yang diperoleh dari hasil tahap pertama. Menurut Santoso (1994), jika terdapat sumber daya yang terpaksa hanya dapat digunakan pada interval waktu tertentu, maka penjadwalan paksa sesuai untuk diterapkan. Pada penjadwalan paksa, operasi-operasi yang dikerjakan pada sumber daya yang terbatas harus dijadwalkan terlebih dahulu. Sedangkan operasi yang mendahuluinya dijadwalkan dengan penjadwalan mundur, dan operasi sesudahnya dengan penjadwalan maju. 4. Penjadwalan Job Shop Secara fisik, tata letak peralatan yang bertipe job shop ditandai dengan pengelompokan peralatan yang memiliki fungsi yang sama di area yang sama
2002 digitized by USU digital library
2
(Fogarty, 1991). Penjadwalan adalah pengaturan saat mulai dan saat selesai job dan seringkali meliputi waktu kapan order datang dan meninggalkan lantai pabrik. Dalam penjadwalan job shop, jika ada n job yang akan diproses dalam m mesin maka ada (n!)m set jadwal, namun tidak semua jadwal tersebut layak digunakan. Sebuah jadwal dikatakan layak jika memenuhi kriteria sebagai berikut (Fogarty, 1991): • urutan pengerjaan operasi (routing) dalam suatu job tidak dilanggar • tidak terjadi overlap waktu pengerjaan operasi Jadwal-jadwal yang layak tersebut dapat dikasifikasikan menjadi (Jatmiko, 1995): 1. Set jadwal semi aktif (SA) Kumpulan jadwal dimana tidak satu pun operasi dapat dikerjakan lebih awal tanpa mengubah susunan beberapa operasi pada mesin. 2. Set jadwal aktif (A) Kumpulan jadwal dimana tidak satu operasi pun dapat dipindahkan lebih awal tanpa menunda operasi lain. 3. Set jadwal non delay (ND) Kumpulan jadwal dimana tidak satu pun mesin dibiarkan menganggur jika pada saat yang sama terdapat operasi yang membutuhkan mesin tersebut. 4. Set jadwal optimal (O) Kumpulan jadwal dimana tidak terdapat jadwal lain yang memiliki tingkat preferensi lebih tinggi dari set jadwal optimal. Dalam suatu jadwal dapat dilakukan local left shift yaitu pergeseran operasi ke kiri (lebih awal) tanpa mengubah susunan operasi pada mesin, serta global left shift yaitu pergeseran lebih awal dengan mengubah susunan operasi tanpa menunda operasi lain. 2. Penjadwalan dengan Teknik Sisipan Masalah job shop dengan setup time dapat diformulasikan sebagai berikut: n job dibagi menjadi g kelompok; yaitu G1,G2, …,Gg. Setiap job memiliki routing tersendiri dan diasumsikan setiap job diproses paling banyak sekali pada setiap mesin. Waktu yang diperlukan untuk memproses operasi job i pada mesin j adalah tij. Setup time, shj≥0, diberikan untuk kelompok Gh (h=1,2,…,g) pada mesin j (j=1,2,…,m). Setup dikerjakan pada mesin sebelum job pertama dari suatu kelompok mulai diproses di mesin, dan bila sebuah job harus diproses sesudah job dari kelompok lain. Setup dapat dimulai sebelum job tiba di mesin yang bersangkutan. Pemrosesan sebuah job pada mesin tertentu dapat dimulai bila: • mesin telah selesai memproses job yang dikerjakan sebelumnya, dan jika diperlukan, setup harus sudah dilakukan, dan • pemrosesan job tersebut di mesin sebelumnya telah selesai. Penelitian Sotskov et al. (1999) mempertimbangkan fungsi tujuan yang didasarkan pada saat selesai Ci, yaitu minimisasi makespan Cmax dan minimisasi jumlah terbobot saat selesai ΣwiCi pada penjadwalan maju, dengan wi adalah bobot yang diberikan untuk job i. Dalam hal ini jadwal dideskripsikan sebagai urutan operasi pada setiap mesin dan pemrosesan setiap operasi dimulai sesegera mungkin. Sedangkan pada penjadwalan mundur, fungsi tujuan sudah mempertimbangkan due date dengan meminimasi penalti tardiness dan earliness, yaitu minimisasi Σwi(Ci-di)2. Dalam penelitian ini, saat datang ri≥0, diberikan ke masing-masing job, yang berarti pemrosesan operasi pertama dari setiap job i tidak dapat dimulai sebelum saat ri. Saat datang diasumsikan diketahui.
2002 digitized by USU digital library
3
Untuk menggambarkan solusi parsial dalam penjadwalan maju digunakan digraph D=(V,E), dimana V menggambarkan set operasi (i,j) dan E menggambarkan routing. Digraph D dengan lengkap menggambarkan urutan pengerjaan operasi. Sebagai contoh dapat dilihat pada uraian berikut ini. Misal terdapat 6 buah job (n=6) dan 3 buah mesin (m=3). Routing masingmasing job adalah sebagai berikut: q2=(3,2,1) q3=(1,3,2) q1=(1,3,2) 4 5 q =(1,3,2) q6=(2,1,3) q =(1,2,3) Kombinasi dari routing dan urutan pengerjaan job di mesin digambarkan dalam digraph D=(V,E) dalam Gambar 2.1. Busur horizontal menggambarkan routing dan busur vertikal menggambarkan urutan pengerjaan job di mesin. Dari Gambar 2.1 urutan job adalah: p2 = (6,2,1,3,4,5) p3 = (2,1,3,5,6,4) p1 = (1,3,2,5,4,6) j dengan p menggambarkan urutan job di mesin j. Jadwal yang ditunjukkan dalam Gambar 1 adalah fisibel untuk masalah job shop karena semua routing dipenuhi dan digraph tidak berisi siklus. 1,1
1,2
1,3
2,1
2,2
2,3
3,1
3,2
3,3
4,1
4,2
4,3
5,1
5,2
5,3
6,1
6,2
6,3
Gambar 1. Digraph D = (V,E) Representasi jadwal dapat berupa rank matriks A dari digraph D=(V,E), yaitu matriks yang elemennya adalah jumlah maksimal verteks pada lintasan yang menuju ke verteks (i,j). Penggambaran ini dapat juga digunakan untuk jadwal parsial dimana hanya sebagian operasi terdapat dalam matriks. Dalam contoh pada Gambar 1 diasumsikan ada 3 kelompok job yaitu G1={1,2,3}, G2={4,5} dan G3={6}. Matriks A dari contoh ini adalah:
1 3 2 A= 5 4 6
3 2 4 6 7 1
2 1 3 8 5 7
2002 digitized by USU digital library
4
Sedangkan waktu proses T (baris menunjukkan job dan kolom menunjukkan mesin) dan waktu setup S (baris menunjukkan kelompok dan kolom menunjukkan mesin) adalah sebagai berikut:
6 4 6 4 6 7 3 2 7 T= 2 18 5 3 13 12 4 7 10
6 4 3 S = 7 3 2 5 2 5
Gambar 2 menunjukkan jadwal yang diberikan matriks menggunakan Gantt Chart. Terlihat bahwa C1=C2=23, C3=27, C4=67, C6=60. Sehingga diperoleh nilai fungsi tujuan Cmax=67 dan ΣCi=267. m3 m2
2
1
6
3
2
5
6
1
4
A dengan C5=66 dan
4
5
3
m1
1
3
2
5
6 4
10
Keterangan:
20
30
40
50
60
70
Gambar 2.Gantt Chart Jadwal n
=setup
=proses (n menunjukkan nomor job)
Diasumsikan bahwa rank matriks A untuk sebuah jadwal parsial telah ditentukan. Berdasarkan order penyisipan yang dipilih, operasi (i,j) harus disisipkan segera pada semua posisi yang mungkin di mesin j. Matriks hasil sesudah penyisipan operasi (i,j) haruslah juga berupa rank matriks, semua routing dipenuhi dan semua precedence relation yang sebelumnya telah ada diantara operasi tertentu tetap valid. Diasumsikan bahwa pada mesin j sekumpulan operasi telah diurutkan. Anggota kolom j pada matriks A adalah k1, k2, …,ku dengan k1
{
}
aij = max aiv operasi (i , v ) mendahului operasi (i, j) + 1 modifikasi anggota lainnya pada kolom j (operasi yang sudah diurutkan pada mesin j) dan anggota matriks yang berhubungan dengan semua operasi yang telah diurutkan di mesin j. Jika modifikasi ini menyebabkan modifikasi juga terhadap aij maka penyisipan operasi (i,j) yang telah dilakukan tidak fisibel. 2.
Proses job i
{
sebagai job ke-l pada mesin j
} + 1}
(2≤l≤u+1). Tentukan:
a ij = max max{a iv operasi (i, v) mendahului operasi (i, j); k l-1
2002 digitized by USU digital library
5
Kemudian fisibilitas jadwal parsial diuji analog dengan cara yang disebutkan di atas. Sehingga, semua operasi yang dimiliki kolom j memiliki anggota lebih besar dari kl dan operasi yang mengikutinya juga harus menjadi successor dari operasi yang disisipkan. Jika hal ini juga menyebabkan terjadinya siklus dalam digraph, maka penyisipan tersebut tidak fisibel. Sebagai ilustrasi, digunakan routing pada contoh di atas dan jadwal parsial digambarkan dalam matriks berikut:
1 . . A= . 3 2
. 2 . . 6 1
4 1 . . 5 3
Misalkan operasi (1,2) akan disisipkan berikut ini. Routing Job 1 adalah q1=(1,3,2). Matriks Al berikut menggambarkan matriks bila job i disisipkan pada posisi l dalam urutan pengerjaan job di mesin j.
1 . . A1 = . 8 7
5 9 7 1 . .
1 . . A3 = . 3 2
5 4 2 1 . . . . 6 5 1 3
. . 6
. . 8
1 . . A2 = . 3 2
5 4 6 1 . . . . 7 5 1 3
1 . . A4 = . 3 2
7 4 2 1 . . . . 6 5 1 3
Jika pada mesin 2 Job 1 diproses pertama sekali, diperoleh a12=5 karena operasi (1,2) adalah successor langsung dari operasi (1,3). Sekarang semua operasi sisa pada mesin 2 dan semua successornya harus juga menjadi successor operasi (1,2). Oleh karena itu dilakukan modifikasi terhadap nilai yang berkaitan dengan A dimulai dari nilai yang paling kecil. Sehingga diperoleh matriks A1 dengan a162=6, a161=7, a151=a163=8 dan akan diperoleh a113=9, yang kontradiksi dengan routing Job 1. Karenanya pemrosesan Job 1 sebagai job pertama di mesin 2 tidak menghasilkan jadwal parsial yang fisibel. Penyisipan pada posisi lainnya (matriks A2 sampai dengan A4) menghasilkan jadwal parsial yang fisibel. A. Penyisipan Operasi pada Penjadwalan Mundur
2002 digitized by USU digital library
6
Pada penjadwalan mundur, nilai fungsi tujuan bergantung pada saat selesai operasi terakhir suatu job. Berbeda dengan penjadwalan maju, pada penjadwalan mundur operasi tidak perlu dimulai sesegera mungkin. Setelah menjadwalkan operasi terakhir sebuah job, maka dijadwalkan semua operasi sisa (non last) dari job tersebut sedekat mungkin dengan due date. Hal tersebut adalah untuk menyisakan sebanyak mungkin waktu untuk memproses operasi-operasi pertama dari job yang masih belum dijadwalkan, yaitu untuk menghindari operasi yang sudah dijadwalkan harus mengalami pergeseran ke kanan. Berikut ini digambarkan sebuah jadwal parsial dalam matriks C=[cij] yang merupakan saat selesai operasi yang telah dijadwalkan, dimana cij adalah saat selesai job i pada mesin j. Untuk menggambarkan penyisipan yang telah dimodifikasi, dibedakan penyisipan operasi terakhir sebuah job dan penyisipan yang bukan operasi terakhir (non last operation). Berikut ini digambarkan penyisipan operasi terakhir job i. Diasumsikan bahwa operasi ini harus dilakukan pada mesin j dan k1, k2, …, ku adalah job yang telah dijadwalkan pada mesin j. Bila penyisipan job i di mesin j pada posisi h+1 dengan h>1 (yaitu diantara operasi (kh, j) dan (kh+1, j), periksa apakah: cih,j+ f.sgn[I],j+tij ≥ di …(1) dipenuhi, dimana f=1 jika job ih dan i memiliki kelompok job berbeda dan f=0 bila berasal dari kelompok yang sama, dan gn[i] menggambarkan indeks kelompok yang dimiliki job i. • Jika pertidaksamaan (1) dipenuhi, maka saat selesai tercepat job i yang diurutkan pada posisi h+1 di mesin j tidak lebih kecil dari due datenya. Dalam kasus ini (disebut late insertion) job i dijadwalkan secara langsung sesudah predecessor kh. Hal ini menyebabkan pergeseran ke kanan beberapa operasi (kh+1,j),…,(ku,j) dan sucessornya. • Jika pertidaksamaan (1) tidak dipenuhi (disebut early insertion), job i dijadwalkan pada mesin j sebelum job (kh+1,j) sedekat mungkin dengan due date di pada ini dapat mesin tersebut tanpa menunda memulai operasi (kh+1,j). Hal menyebabkan pergeseran ke kiri beberapa operasi (kh,j),…, (k1,j) dan predecessornya. Prosedur tersebut secara analog diterapkan jika job i diurutkan pada posisi pertama di mesin j. Operasi yang bukan terakhir disisipkan pada posisi yang mungkin dalam urutan yang dimulai dari kanan. Untuk mengurangi alternatif penyisipan, maka hasil penyisipan pertama segera diterima bila penyisipan tersebut tidak menambah nilai fungsi tujuan. Untuk menggambarkan algoritma sisipan dengan penjadwalan mundur diberikan contoh berikut. Terdapat n=5, m=3 dan job dibagi menjadi 3 kelompok, yaitu G1={1,2,3}, G2={4} dan G3={5}. Diasumsikan bahwa Job 1 dan 3 memiliki routing yang sama yaitu q1=q3=(1,2,3) dan Job 2, 4 dan 5 memiliki routing: q2=q4=q5=(2,1,3). Fungsi tujuan adalah minimisasi F=∑wi(Ci-di)2. Waktu setup dan waktu proses adalah sebagai berikut:
4 2 1 S = 1 3 4 5 6 2
4 6 2 2 5 3 T = 1 3 5 4 2 6 5 7 1
2002 digitized by USU digital library
7
Data saat datang, bobot dan due date masing-masing job ditunjukkan dalam Tabel 1. Tabel 1. Saat datang, bobot dan due date job i job 1 2 3 4 5 ri 0 4 8 3 12 wi 1 3 5 4 7 di 25 40 35 38 30 Dari Tabel 1. di atas diperoleh nilai saat paling awal mulai operasi (i,j) dengan mempertimbangkan hanya data job i dan setup kelompok.
4 8 4 9 R' = 8 9 5 3 19 12
24 14 11 12 9
Penyisipan dilakukan secara mundur berdasarkan bobot job yang tidak menaik. Job 5 adalah job yang pertama sekali dijadwalkan dan secara berturut diperoleh saat selesai c53=30, c51=29 dan c52=24. Berikutnya disisipkan Job 3. Operasi (3,3) dapat diurutkan sebelum atau sesudah operasi (5,3).
. . 1 C = . . 29
. . . . . 27 . . 24 30
Pada matriks C1operasi (3,3) dikerjakan mendahului operasi (5,3). Sedangkan dalam matriks C2 operasi (3,3) dikerjakan sesudah operasi (5,3). Matriks C2 adalah:
. . . . . . C 2 = . . 36 . . . 29 24 30
dengan F(C1)=320 dan F(C2)=5. Sehingga C2 dipilih sebagai basis penjadwalan selanjutnya. Kemudian disisipkan operasi lainnya dari Job 3, dan diperoleh jadwal parsial berikut:
. . 3 C = 19 . 29
. . . . 31 36 . . 24 30
dengan F(C3)=5. Penyisipan operasi terakhir Job 4 menghasilkan: 2002 digitized by USU digital library
8
. . . . 4 C = 19 31 . . 29 24 . . . . 6 C = 19 31 . . 29 24
. . . . . . 5 36 C = 19 41 46 . . 30 29 24 . . 36 27 30
. . 46 40 30
dimana pada C4 Job 4 dikerjakan sesudah Job 5 dan 3, pada C5 Job 4 dikerjakan sesudah Job 5 dan sebelum Job 3, sedangkan pada C6 Job 4 dikerjakan mendahului Job 5 dan 3, dengan F(C4)=261, F(C5)=621 dan F(C6)=489, sehingga dipilih C4, berarti pengerjaan Job 4 dilakukan sesudah pengerjaan Job 5 dan Job 3. Sekarang dilakukan penyisipan operasi sisa pada Job 4, semua operasi dari Job 2 dan operasi terakhir Job 1, sehingga diperoleh jadwal parsial berikut dengan F(C7)=388.
. 33 7 C = 16 40 26
. 31 26 36 21
24 36 33 46 27
Jadwal parsial di atas ditunjukkan dalam gantt chart seperti terlihat pada Gambar 3. m3
3 1
m2
5
3
m1
2
4
5 2
5
4
2
4
3
10
20
30
40
Gambar 3. Jadwal parsial sebelum operasi (1,2) dijadwalkan Untuk menyisipkan operasi (1,2), perlu dipertimbangkan penyisipan pada posisi 1 dan 2 (tidak diperlukan setup bila Job 1 disisipkan sebelum Job 3). Bila disisipkan pada posisi pertama (operasi (1,2) disisipkan di depan operasi (5,2)), maka diperoleh jadwal parsial C8 (dalam bentuk gantt chart ditunjukkan pada
2002 digitized by USU digital library
9
Gambar 4, sedangkan untuk penyisipan di posisi kedua diperoleh jadwal parsial C9 (ditunjukkan dalam gantt chart pada Gambar 5.
. 39 8 C = 22 46 32
. 38 9 C = 21 45 31
25 42 39 52 33
14 37 32 42 27
27 36 31 41 19
29 41 38 51 32
Dengan F(C8)=939 dan F(C9) =768. Operasi (1,3) telah digeser ke kanan pada C8 sebanyak 1 unit karena d1=25. Penyisipan operasi (1,1) pada C9 tidak merubah nilai fungsi tujuan.
m3
3 1
m2 m1
1
5
1
2
4
5 3
2
4
5
2
4
30
40
3
10
20
50
Gambar 4. Operasi (1,2) disisipkan di posisi pertama
m3
3
m2
5
m1
1
1
3
5
2
2
4
4
2
4
3 10
20
30
40
50
Gambar 5. Operasi (1,2) disisipkan di posisi kedua B. Penyisipan Operasi Secara Paralel Algoritma sisipan dapat diperbaiki dengan memasukkan prosedur pencarian seperti beam search ataupun branch and bound. Penelitian Sotskov et al. (1999) memberikan bentuk pendekatan berbeda. Untuk mendapatkan hasil yang lebih baik dari penyisipan operasi, direkomendasikan untuk menyisipkan beberapa operasi secara paralel yaitu dalam satu langkah sejumlah operasi secara serentak disisipkan kedalam jadwal parsial. Hal ini berarti dalam satu langkah pengaruh penyisipan k operasi baru sekaligus dievaluasi.
2002 digitized by USU digital library
10