1
I PENDAHULUAN 1.1 Latar Belakang Salah satu tujuan dari industri atau perusahaan adalah menciptakan laba yang maksimal. Salah satu bentuk usahanya adalah dengan memaksimumkan hasil produksi atau meminimumkan jumlah keterlambatan produksi yang akan didistribusikan. Tetapi sebuah perusahaan memiliki sumber daya yang terbatas sehingga diperlukan bermacam-macam metode untuk mencapai tujuan tersebut. Salah satu cara atau metode yang digunakan adalah dengan membuat sebuah penjadwalan produksi yang efektif dan efisien. Salah satu perusahaan yang memiliki permasalahan penjadwalan produksi yang efektif dan efisien adalah PT Nippon Indosari Corpindo, sebuah perusahaan berskala besar yang memproduksi makanan ringan, khususnya roti dan kue yang berlokasi di Kawasan Industri Jababeka, Cikarang. PT Nippon Indosari Corpindo memproduksi roti dengan label SariRoti dan Boti dalam berbagai macam rasa. Secara garis besar, PT Nippon Indosari Corpindo memproduksi roti manis, roti tawar, dan kue dengan total 37 jenis rasa. Penelitian ini dikhususkan pada produksi roti manis. PT Nippon Indosari Corpindo memproduksi 23 jenis roti manis berlabel SariRoti. Dalam memproduksi berbagai jenis roti manis tersebut, PT Nippon Indosari Corpindo memiliki banyak pilihan untuk
membuat sebuah penjadwalan produksi. Penjadwalan tersebut bergantung pada kapasitas dan waktu, yaitu roti apa yang akan diproduksi dan jumlah roti yang harus diselesaikan untuk dikirimkan sesuai dengan permintaan yang telah ditetapkan. Pada awalnya, PT Nippon Indosari Corpindo menjadwalkan produksi roti secara manual sehingga terdapat beberapa kesulitan dalam membuat penjadwalan. Oleh karena itu, diperlukan sebuah penjadwalan produksi yang efektif dengan tujuan agar pesanan roti manis yang ada dapat dipenuhi dan juga dapat meningkatkan kapasitas produksi roti. Penjadwalan produksi yang efektif tersebut ternyata dapat diselesaikan dengan salah satu bidang ilmu matematika, yaitu riset operasi yang dibahas dalam Sequencing and Scheduling: An Introduction to the Mathematics of the Job-Shop [French,1982]. 1.2 Tujuan Secara umum tulisan ini bertujuan untuk menunjukkan bahwa pemodelan riset operasi dapat digunakan untuk menyelesaikan salah satu permasalahan nyata. Secara khusus tulisan ini ditujukan untuk menentukan jadwal optimal produksi roti manis dengan menggunakan metode heuristik. Hasil dari penjadwalan ini diharapkan dapat menghasilkan jadwal dengan waktu kerja minimum untuk memenuhi pesanan roti. Kasus yang diambil adalah pada produksi roti manis SariRoti.
II LANDASAN TEORI 2.1 Penjadwalan 2.1.1 Definisi Penjadwalan Penjadwalan merupakan proses pengorganisasian, pemilihan, dan penetapan penggunaan sumber daya dalam rangka melaksanakan semua aktivitas yang diperlukan untuk menghasilkan luaran (output) yang diinginkan pada saat yang telah direncanakan, dengan pembatas waktu dan hubungan antara aktivitas dan sumber daya tertentu (Morton & Pentico, 1993). Definisi di atas mengimplikasikan bahwa jika jumlah sumber daya tidak terbatas, maka masalah penjadwalan tidak akan ada. Morton & Pentico (1993) juga mendefinisikan penjadwalan sebagai pengambilan keputusan tentang penyesuaian aktivitas dan sumber daya dalam rangka
menyelesaikan sekumpulan job tepat pada waktunya. Keputusan yang diambil dalam penjadwalan meliputi pengurutan (sequencing), penetapan waktu (timing), dan penghubung antarproses (routing). 2.1.2 Tujuan Penjadwalan Bedworth (1982) menyatakan beberapa tujuan penjadwalan yang penting, yaitu: 1. meningkatkan utilitas atau kegunaan sumber daya, 2. mengurangi total waktu proses seluruh pekerjaan (makespan), 3. mengurangi rata-rata jumlah pekerjaan yang menunggu untuk diproses oleh suatu sumber daya, 4. meminimumkan keterlambatan pemenuhan suatu job.
2
2.1.3 Elemen Penjadwalan Elemen-elemen yang perlu diketahui dalam proses penjadwalan produksi adalah sebagai berikut: 1. Job Job didefinisikan sebagai suatu pekerjaan untuk yang harus diselesaikan memperoleh suatu produk atau hasil. Job umumnya terdiri atas satu atau beberapa proses. 2. Proses Proses merupakan suatu kegiatan yang dilakukan untuk meningkatkan nilai tambah sebuah job. Setiap job minimal terdiri atas satu proses. Setiap proses memiliki deskripsi, waktu proses, waktu set-up, tempat, dan alat pemrosesan. 3. Sumber daya Sumber daya dapat berupa mesin, tool, atau pekerja yang digunakan untuk menyelesaikan proses suatu job. Setiap mesin hanya dapat mengerjakan satu job pada satu waktu tertentu. 2.1.4 Informasi Dasar Penjadwalan Menurut Dinarwan (1998), terdapat tiga informasi dasar dalam penjadwalan, yaitu: 1. Waktu proses (tj): jumlah waktu yang dibutuhkan oleh job j. 2. Ready time (rj): titik waktu di mana job j dapat diproses. Pada waktu kedatangan job, dapat diasumsikan bahwa rj bernilai nol untuk setiap job. 3. Due date (dj): titik waktu di mana proses pengerjaan job j harus selesai. 2.1.5 Permasalahan dalam Penjadwalan Masalah penjadwalan seringkali muncul jika terdapat sekumpulan job yang harus dikerjakan tetapi terdapat pertanyaan mengenai job yang mana yang harus dikerjakan terlebih dahulu, bagaimana urutan proses dari job-job berikutnya, serta pengalokasian proses pada mesin, sehingga diperoleh suatu proses produksi yang terjadwal dengan waktu yang minimum. Secara umum permasalahan penjadwalan dapat dinyatakan sebagai berikut: 1. misalkan α adalah risiko yang ditanggung jika mengerjakan tugas A lebih dahulu daripada tugas B, 2. misalkan β adalah risiko yang ditanggung mengerjakan tugas B lebih dahulu daripada tugas A, 3. jika α lebih besar daripada β, maka tugas B dikerjakan lebih awal, kemudian diikuti oleh tugas A.
Pemilihan α dan β dapat dikaitkan dengan pemilihan kriteria optimalitas yang ditetapkan oleh pengambil keputusan. 2.1.6 Kriteria Optimalitas Pemilihan kriteria optimalitas merupakan tahap di mana seseorang harus memilih output yang bagaimanakah yang diinginkan keputusan dalam oleh pengambil pelaksanaan penjadwalan produksi. Kriteria optimalitas yang biasa digunakan adalah sebagai berikut: 1. Minimasi waktu proses, yaitu waktu yang diperlukan untuk menyelesaikan suatu proses di dalam suatu job. 2. Minimasi makespan, yaitu total waktu untuk proses yang dibutuhkan menyelesaikan semua job. 3. Minimasi waktu tunggu (waiting time), yaitu waktu menunggu seluruh proses dari suatu job. 4. Minimasi rata-rata flow time, yaitu waktu yang dibutuhkan sejak suatu job mulai masuk sampai semua proses selesai (termasuk waktu menunggu). 5. Minimasi waktu keterlambatan (tardiness), yaitu keterlambatan waktu penyelesaian suatu job dari waktu yang telah ditentukan (due date). Secara umum, kriteria optimalitas dalam proses penjadwalan dapat dikelompokkan menjadi tiga bagian: 1. Berkaitan dengan waktu Beberapa kriteria yang terkait dengan waktu adalah minimasi rata-rata flow time¸ minimasi makespan, dan minimasi tardiness. 2. Berkaitan dengan biaya Kriteria ini lebih menekankan pada unsur biaya, dan kurang atau bahkan tidak memperhatikan kriteria waktu yang ada sehingga dengan suatu penjadwalan produksi tertentu diharapkan ongkos yang minimal. 3. Kriteria gabungan Beberapa kriteria optimalitas tersebut dapat digabungkan dan dapat dikombinasikan sehingga menjadi multi kriteria. 2.2 Job-Shop Scheduling Problem (JSP) Job-Shop Scheduling Problem (JSP) merupakan suatu permasalahan khusus dari scheduling yang melibatkan m mesin dengan n jobs yang mungkin untuk diproses di mana setiap job terdiri dari k proses. Setiap proses tersebut memerlukan mesin yang spesifik di mana beberapa tipe dari setiap proses bisa
3
dilakukan tetapi hanya satu proses yang dapat diproses di dalam mesin tersebut. Masalah utama dari JSP ini adalah bagaimana membuat jadwal yang feasible dan efektif dengan waktu yang minimal untuk setiap job dikerjakan pada mesin yang ada dari waktu proses nol sampai dengan proses tersebut selesai. [K.R. Baker, 1974] 2.2.1 Kondisi Umum dan Asumsi dalam JSP Beberapa kondisi umum di dalam JSP adalah sebagai berikut: 1. suatu proses dalam sebuah job tidak bisa dimulai sampai proses sebelumnya dari job tersebut selesai, 2. suatu proses dalam sebuah job tidak bisa dimulai sampai mesin yang akan digunakan kosong atau selesai digunakan, 3. suatu proses tidak bisa dimulai sampai proses tersebut telah memenuhi urutan dari job tersebut. Permasalahan JSP dikatakan feasible jika telah memenuhi kondisi di atas. Sementara itu, beberapa asumsi yang biasa dipakai dalam JSP adalah: 1. beberapa job memiliki proses yang berbeda sebanyak m buah di mana satu proses untuk satu mesin, 2. tidak ada job yang bisa dibatalkan dan semua job harus diproses, 3. suatu proses diizinkan untuk menunggu proses sebelumnya selesai, 4. setiap mesin memiliki tipe yang berbeda, 5. suatu mesin mungkin akan kosong, 6. tidak ada mesin yang melakukan lebih dari satu proses pada waktu yang bersamaan, 7. tidak ada mesin yang rusak dan semua mesin available untuk digunakan. Untuk memudahkan menyelesaikan JSP, para ahli membuat suatu notasi yang mudah dimengerti untuk merepresentasikan tipe dari JSP. Permasalahan ini dapat ditulis dengan: N/M/A/B yang dijelaskan dalam tabel sebagai berikut:
Tabel 1. Notasi dari JSP Jumlah jobs Jumlah mesin Jenis dari JSP, yaitu : F menunjukkan kasus flow-shop O menunjukkan kasus open-shop G menunjukkan kasus job-shop secara umum B Fungsi objektif yang akan diminimumkan dalam JSP
N M A
2.2.2 Tipe Umum JSP Secara umum, JSP dapat dibagi menjadi 3 (tiga) tipe, yaitu: 1. Flow-Shop JSP bertipe flow-shop memiliki permasalahan di mana urutan proses dari suatu job berurut sesuai dengan jumlah mesin. Pola aliran pada flow-shop untuk semua job cenderung memiliki urutan proses yang sama. Flow-shop yang terdiri atas tiga mesin (M1,M2,M3) dan tiga job yang masing-masing memiliki tiga proses yang dinotasikan dengan Oi,k sebagai proses ke-k dari job ke-i dapat digambarkan sebagai berikut:
Gambar 1. Visualisasi JSP tipe Flow-shop 2. Job-Shop JSP bertipe job-shop memiliki permasalahan di mana urutan proses dari suatu job tidak harus mengikuti urutan dari mesin yang ada. Pola aliran job-shop untuk masing-masing job memiliki urutan proses yang unik. Setiap proses bergerak dari satu mesin ke mesin lainnya dengan pola yang acak (random). Job-shop yang terdiri atas tiga mesin (M1,M2,M3) dan tiga job yang masingmasing memiliki tiga proses yang dinotasikan dengan Oi,k sebagai proses
4
ke-k dari job ke-i dapat digambarkan sebagai berikut:
Gambar 2. Visualisasi JSP tipe Job-Shop 3. Open-Shop Tipe open-shop memiliki permasalahan yang tidak berbeda jauh dengan jobshop. Perbedaannya adalah urutan proses pada tipe open-shop tidak harus teratur seperti pada tipe job-shop bergantung kepada fungsi objektif yang akan ditentukan. 2.2.3 Metode Pemecahan Masalah JSP JSP merupakan salah satu permasalahan yang termasuk dalam kategori sulit. Metode pemecahan masalah telah banyak dikembangkan untuk menjadwalkan JSP. Secara umum, metode tersebut dibagi dalam tiga bentuk, yaitu: 1. Metode optimum yang efisien Metode ini menghasilkan jadwal optimum dalam waktu yang relatif singkat. Algoritma yang dikembangkan biasanya untuk permasalahan yang tidak terlalu besar. Termasuk dalam metode ini misalnya: Algoritma Johnson. Algoritma ini digunakan untuk memecahkan permasalahan dengan kasus 2 mesin. 2. Metode optimal enumeratif Metode ini menghasilkan jadwal optimal berdasarkan formulasi matematis. Contohnya adalah metode branch and bound, Mixed Integer Linear Programming (MILP), dan dynamic programming. 3. Metode pendekatan heuristik Metode heuristik melakukan pendekatan untuk solusi optimal. Contoh metode heuristik adalah sebagai berikut: a. Priority dispatching. b. Sampling. c. Probabilistik dispatching.
2.3 Pemrograman Linear Pemrograman Linear (Linear Programming) merupakan suatu metodologi untuk memperoleh hasil yang optimal dari tujuan yang diinginkan dengan adanya kendala tertentu. Model linear programming (LP) meliputi pengoptimuman suatu fungsi linear terhadap kendala linear. Bentuk standar dari suatu LP didefinisikan sebagai berikut: Definisi 1 (Bentuk Standar LP) Suatu LP mempunyai bentuk standar sebagai berikut: Minimumkan fungsi objektif z cT x terhadap Ax b x0
dengan b 0 (1) dengan x dan c berupa vektor berukuran n, vektor b berukuran m, sedangkan A berupa matriks berukuran m x n yang disebut juga sebagai matriks kendala. (Nash & Sofer, 1996) Solusi suatu Linear Programming Dalam menyelesaikan suatu masalah linear programming (LP), Dantzig (1947) mengembangkan sebuah algoritma yang dapat menghasilkan solusi optimum. Algoritma tersebut dikenal dengan algoritma simpleks. Hingga kini algoritma simpleks merupakan salah satu algoritma yang lazim digunakan untuk menyelesaikan suatu masalah linear programming (LP). Algoritma simpleks merupakan prosedur perhitungan yang berulang (iteratif) di mana setiap pengulangan (iterasi) berkaitan dengan satu pemecahan dasar (solusi basis). Bentuk standar dari algoritma simpleks adalah: Pada LP (1), vektor x yang memenuhi kendala Ax b disebut sebagai solusi fisibel dari LP (1). Misalkan matriks A dapat dinyatakan sebagai A = (B N), dengan B adalah matriks yang elemennya berupa koefisien variabel basis dan N merupakan matriks yang elemennya berupa koefisien variabel nonbasis pada matriks kendala. Matriks B disebut matriks basis untuk LP (1). Jika vektor x dapat dinyatakan sebagai vektor x xB , dengan xB adalah vektor xN variabel basis dan xN adalah vektor variabel nonbasis, maka Ax = B dapat dinyatakan sebagai:
5
x N B xN = BxB + NxN = b (2) Karena B adalah matriks taksingular, maka B memiliki invers, sehingga dari (2) xB dapat dinyatakan sebagai: (3) xB = B-1b – B-1NxN Ax B
Definisi 2 (Solusi Basis) Solusi dari suatu LP disebut solusi basis jika: 1. Solusi tersebut memenuhi kendala pada LP. 2. Kolom-kolom dari matriks koefisien yang berpadanan dengan komponen taknol adalah bebas linear. (Nash & Sofer, 1996) Definisi 3 (Solusi Basis Fisibel) Vektor x disebut solusi basis fisibel jika x merupakan solusi basis dan x ≥ 0. (Nash & Sofer, 1996) Ilustrasi untuk solusi basis dan solusi basis fisibel dapat dilihat dalam contoh berikut: Contoh 1 Misalkan diberikan LP berikut: Minimumkan z = -2x1 - 3x2 terhadap -2x1 + x2 + x3 = 4 -x1 + 2x2 + x4 = 11 x1 + x5 = 5 x1, x2, x3, x4, x5 ≥ 0
(4)
Dari LP tersebut didapatkan: 2 1 1 0 0 4 A 1 2 0 1 0 , b 11 1 0 0 0 1 5 Misalkan dipilih T T xB x3 x4 x5 dan xN x1 x2 maka matriks basis 1 0 0 B 0 1 0 0 0 1 Dengan menggunakan matriks basis tersebut, diperoleh xN = (0 0)T, (5) xB = B-1b = (4 11 5)T Solusi (5) merupakan solusi basis, karena solusi tersebut memenuhi kendala pada LP (4) dan kolom-kolom pada matriks kendala yang berpadanan dengan komponen taknol dari (5) yaitu adalah bebas linear (kolom yang satu bukan merupakan kelipatan dari
kolom yang lain). Solusi (5) juga merupakan solusi basis fisibel, karena nilai-nilai variabelnya lebih dari atau sama dengan nol. (Nash & Sofer, 1996) 2.4 Pemrograman Nonlinear Integer Pemrograman Nonlinear Integer (INLP) merupakan suatu model pemrograman matematika di mana decision variable merupakan bilangan integer tetapi fungsi objektif dan kendalanya tidak linear. (Ecker & Kupferschmid, 1998) 2.5 Metode Heuristik Metode heuristik adalah suatu cara pendekatan permasalahan yang kompleks ke dalam komponen-komponen yang lebih sederhana untuk mendapatkan hubungan dalam permasalahan yang dikaji. Metode heuristik digunakan jika metode yang ada, seperti branch and bound, tidak dapat memberikan hasil terbaik untuk masalah JSP. Metode heuristik digunakan dengan harapan didapatkan suatu hasil yang baik dan mendekati rata-rata meskipun tidak optimal. Menurut Eriyatno (2003), tidak ada metode yang baku digunakan untuk metode heuristik, sehingga untuk setiap permasalahan menggunakan metode heuristik yang spesifik. Eriyatno (2003) menjelaskan bahwa metode heuristik merupakan pengembangan dari proses aritmatika dan matematika logika. Ciri-ciri metode heuristik secara umum adalah sebagai berikut: 1. adanya operasi aljabar, yaitu penjumlahan, pengurangan, perkalian, dan pembagian, 2. adanya suatu perhitungan yang bertahap, 3. mempunyai tahapan yang terbatas sehingga dapat dibuat dengan algoritma komputer. Pemecahan masalah dengan metode heuristik dapat dikategorikan menjadi tiga bagian, yaitu: 1. Penjadwalan dilakukan setiap mesin selesai melakukan proses atau setiap pekerjaan datang. Contoh metode ini adalah aturan prioritas. 2. Mendefinisikan struktur neighborhood dan solusi diperoleh berdasarkan struktur tersebut. Contoh metode ini adalah tabu search, simulated annealing, dan genetic algorithm. 3. Penjadwalan dilakukan pada setiap mesin. Contoh pendekatan ini adalah shifting bottleneck procedure.
6
Salah satu metode heuristik yang digunakan untuk memecahkan JSP adalah Algoritma Giffler and Thompson . Metode ini digunakan memecahkan permasalahan JSP dengan tujuan meminimumkan makespan. Bentuk metode ini dapat diuraikan sebagai berikut: Notasi: m indeks untuk mesin. (i,j) indeks proses ke-j pada job i. P(i,j) waktu proses yang dibutuhkan untuk (i,j). M(i,j) mesin yang dibutuhkan untuk (i,j). N(i) jumlah proses yang dibutuhkan untuk melengkapi job i. I(m) list dari proses yang sekarang terjadwal di m. I kumpulan dari semua (i,j) yang telah terjadwal, yaitu I = {I(1),I(2),….,I(m)}. C(m) waktu selesai untuk proses terakhir yang telah terjadwal di mesin m (completion time). T(i,j) waktu mulai (ready time) dari jadwal (i,j). σ(i,j) ready time tercepat dari (i,j), yaitu σ(i,j) = max{C(M(i,j)), T(i,j-1)+P(i,j-1)}. φ(i,j) completion time tercepat dari (i,j), yaitu φ(i,j) = σ(i,j)+P(i,j). σ*(m) ready time tercepat pada mesin m, yaitu σ*(m) = miniєI(m) σ(i,j). σ* ready time tercepat dari semua job yang telah terjadwal, yaitu σ* = minm σ*(m). φ*(m) completion time tercepat di mesin m, yaitu φ*(m) = miniєI(m) φ(i,j). φ* completion time tercepat dari semua job yang telah terjadwal, yaitu φ* = minm φ*(m). δ [0,1]
Algoritme: 0. Inisiasi Kondisi Awal: I(m) = {(i,1):M(i,1) = m} untuk semua job i, σ(i,1) = 0 untuk semua job i, φ(i,1) = P(i,1) untuk semua job i, C(m) = 0 untuk semua m, σ*(m) = 0 untuk semua m, σ* = 0, φ*(m) = miniєI(m) φ(i,1), φ* = minm φ*(m). 1. Jadwalkan job berikutnya di mesin m dengan waktu komplet tercepat: Tentukan m yang memenuhi φ*(m) = φ*. 2. Tentukan set S dengan kemungkinan proses untuk dijadwalkan: S = {(i,j) I(m):σ(i,j) ≤ σ*(m) + δ(φ*(m) – σ*(m))}. 3. Pilih proses (s,j) dari set S untuk jadwal selanjutnya. T(s,j) = σ(i,j), C(m) = T(s,j) + P(s,j), hapus (s,j) dari I(m). 4. Ubah σ dan φ untuk proses di I(m): σ(i,j) = max (σ(i,j) , C(m)), φ(i,j) = σ(i,j) + P(i,j), ubah σ*(m), φ*(m), σ*, dan φ* jika diperlukan. 5. Jika job s belum selesai, tambahkan proses berikutnya ke list dari job yang telah terjadwal untuk mesin tersebut. if j < N(s), maka tambah (s,j+1) ke I(M(s,j+1)), σ(s,j+1)=max(T(s,j)+P(s,j), C(M(s,j+1))), φ(s,j+1) = σ(s,j+1) + P(s,j+1), ubah σ*(M(s,j+1)), φ(M(s,j+1)), σ*, dan φ* jika dibutuhkan. 6. Jika proses telah terjadwal, kembali ke Langkah 1.
III METODE PENELITIAN 3.1 Persiapan Penelitian Persiapan yang dilakukan sebelum melakukan penelitian ini adalah dengan studi literatur. Studi literatur ini dilakukan untuk mencari topik dan permasalahan yang terkait sebagai acuan dalam pelaksanaan penelitian, baik berupa jurnal maupun dasar teoritis yang berkaitan dengan permasalahan yang akan dihadapi. Tujuan dari studi literatur ini adalah agar mendapatkan bayangan mengenai permasalahan yang akan dihadapi.
Langkah selanjutnya adalah berkunjung ke lokasi penelitian yang dilakukan di PT Nippon Indosari Corpindo yang berlokasi di Kawasan Industri Jababeka, Cikarang. Pemilihan lokasi ini sesuai dengan permasalahan yang direkomendasikan oleh dosen pembimbing penelitian.