1 I PENDAHULUAN 1.1 Latar Belakang Kamar darurat (Emergency Room/ER) adalah tempat yang sangat penting peranannya pada rumah sakit. Aktivitas yang cukup padat mengharuskan kamar darurat selalu dijaga oleh dokter setiap hari. Pada awalnya para dokter di kamar darurat bertugas selama 24 jam penuh setiap hari, sehingga mereka selalu merasa jenuh dan sangat letih. Oleh karena itu, pengelola kamar darurat menyarankan supaya dokter bertugas hanya beberapa jam saja dalam satu hari supaya mereka dapat beristirahat setelah bertugas. Kamar darurat yang harus selalu dijaga selama 24 jam dan dokter yang bertugas beberapa jam dalam satu hari, mengakibatkan perlunya suatu sistem penjadwalan untuk para dokter. Dewasa ini, sistem penjadwalan dokter kamar darurat adalah sistem penjadwalan pershift, di mana dokter yang bertugas beberapa jam dalam satu hari kemudian akan digantikan dengan dokter lainnya untuk melengkapi jam yang tersisa di hari yang sama dan akan berlanjut sampai hari berikutnya. Kamar darurat biasanya dijaga oleh beberapa dokter. Dokter-dokter tersebut bertugas sesuai dengan tugasnya masingmasing, tetapi kebanyakan kamar darurat dijaga hanya oleh satu dokter dengan maksud untuk meminimumkan pengeluaran dan mengoptimalkan dokter yang ada. Biasanya dokter yang telah dijadwalkan sering menukar hari kerja dengan dokter lain, sehingga kamar darurat kesulitan dalam menetapkan jadwal untuk setiap dokter. Oleh karena itu, keterbatasan dokter yang menjaga dan keinginan dokter yang berbeda-beda untuk bertugas merupakan masalah bagi penjadwalan kamar darurat, sedangkan pengelola kamar darurat menginginkan kenyamanan dan keteraturan dokter dalam bertugas. Permasalahan penjadwalan dokter kamar darurat ini akan dimodelkan sebagai masalah Pemrograman Linear Integer (PLI). PLI adalah masalah optimisasi dengan fungsi objektif dan kendala yang linear serta variabel yang integer. Model penjadwalan dokter kamar darurat diperoleh dengan beberapa modifikasi berdasarkan pada jurnal yang berjudul Schedulling Emergency Room Physicians ditulis oleh Michael W. Carter dan Sophie D. Lapierre tahun 2001. 1.2 Tujuan Tujuan dari karya ilmiah ini adalah memodelkan masalah penjadwalan dokter kamar darurat dalam bentuk PLI, serta menentukan penjadwalan dokter kamar darurat yang memberikan kenyamanan dokter. II LANDASAN TEORI Untuk membuat model penjadwalan dokter kamar darurat diperlukan pemahaman teori Pemrograman Linear (PL) atau Linear Programming (LP), Pemrograman Linear Integer (PLI) atau Integer Linear Programming (ILP), dan metode branch-andbound. 2.1 Pemrograman Linear Fungsi linear dan pertidaksamaan linear merupakan salah satu konsep dasar yang harus dipahami terkait dengan konsep pemrograman linear. Definisi 1 (Fungsi Linear) Suatu fungsi f dalam variabel-variabel,,, adalah suatu fungsi linear jika dan hanya jika untuk suatu himpunan konstanta,,,, f dapat ditulis sebagai f(,,, ) = + + +. Sebagai contoh, f(, ) = 5 +7 merupakan fungsi linear, sementara f(, ) = bukan fungsi linear. Definisi 2 (Pertidaksamaan dan Persamaan Linear) Untuk sembarang fungsi linear f dan sembarang bilangan c, pertidaksamaan f(,,, ) dan f(,,, ) adalah pertidaksamaan linear, sedangkan suatu persamaan f(,,, )= merupakan persamaan linear. Pemrograman linear (PL) adalah suatu masalah optimisasi yang memenuhi hal-hal berikut: a. Tujuan masalah tersebut adalah memaksimumkan atau meminimumkan suatu fungsi linear dari sejumlah variabel keputusan. Fungsi yang akan dimaksimumkan atau diminimumkan ini disebut fungsi objektif.
2 b. Nilai variabel-variabel keputusannya harus memenuhi suatu himpunan kendala. Setiap kendala harus berupa persamaan linear atau pertidaksamaan linear. c. Ada pembatasan tanda untuk setiap variabel dalam masalah ini. Untuk sembarang variabel, pembatasan tanda menentukan harus tak-negatif ( 0) atau tidak dibatasi tandanya (unrestricted in sign). Suatu PL mempunyai bentuk standar seperti yang didefinisikan sebagai berikut. Definisi 3 (Bentuk Standar PL) Misalkan diberikan suatu PL dengan m kendala dan n variabel (dilambangkan dengan,,, ). Bentuk standar dari PL tersebut adalah: max z = + + + (atau min) s. t. + + + = (1) + + + = (2) + + + = (3) 0,( =1,2,..., ) Jika didefinisikan:, =, A = =, maka kendala pada (1), (2), dan (3) dapat ditulis dengan sistem persamaan Ax = b. (4) Solusi Pemrograman Linear Suatu masalah PL dapat diselesaikan dalam berbagai teknik, salah satunya adalah metode simpleks. Metode ini dapat menghasilkan suatu solusi optimum bagi masalah PL dan telah dikembangkan oleh Dantzig sejak tahun 1947, dan dalam perkembangannya merupakan metode yang paling umum digunakan untuk menyelesaikan PL. Metode ini berupa metode iteratif untuk menyelesaikan PL berbentuk standar. Pada masalah PL (4), vektor x yang memenuhi kendala = disebut solusi PL (4). Misalkan matriks A dinyatakan sebagai A = (B N), dengan B adalah matriks taksingular berukuran m m yang elemennya berupa koefisien variabel basis dan N merupakan matriks berukuran m (n m) yang elemenelemennya berupa koefisien variabel nonbasis pada matriks kendala. Dalam hal ini matriks B disebut matriks basis untuk PL (4). Misalkan x dinyatakan sebagai vektor x =, dengan adalah vektor variabel basis dan adalah vektor variabel nonbasis, maka = dapat dinyatakan sebagai : =() = B + N = b. (5) Karena matriks B adalah matriks taksingular, maka B memiliki invers, sehingga dari (5) dapat dinyatakan sebagai: = N (6) Kemudian, fungsi objektifnya berubah menjadi: min z = + Definisi 4 (Daerah Fisibel) Daerah fisibel suatu PL adalah himpunan semua titik yang memenuhi semua kendala dan pembatasan tanda pada PL tersebut. Definisi 5 (Solusi Basis) Solusi basis adalah solusi pada PL yang didapatkan dengan mengatur variabel n m sama dengan nol dan nilai untuk penyelesaiannya adalah dari sisa variabel m. Hal ini dengan mengasumsikan bahwa mengatur variabel n m sama dengan nol akan membuat nilai yang unik untuk sisa variabel m atau sejenisnya, dan kolom-kolom untuk sisa dari variabel m merupakan bebas linear. Definisi 6 (Solusi Fisibel Basis) Solusi fisibel basis adalah solusi basis pada PL yang semua variabel-variabelnya taknegatif. Definisi 7 (Solusi Optimum) Untuk masalah maksimisasi, solusi optimum suatu PL adalah suatu titik dalam daerah fisibel dengan nilai fungsi objektif terbesar. Untuk masalah minimisasi, solusi optimum suatu PL adalah suatu titik dalam daerah fisibel dengan nilai fungsi objektif terkecil. Ilustrasi solusi basis dan solusi fisibel basis diberikan dalam Contoh 1.
3 Contoh 1 Misalkan diberikan PL berikut: min z = 2 3 dengan kendala +2 + =10 2 + + =2 2 + =3,,,, 0. (7) Dari PL tersebut diperoleh: 1 2 1 0 0 10 A = 2 1 0 1 0, b = 2. 2 0 0 0 1 3 Misalkan dipilih: =( ) dan =( ). Sehingga diperoleh: B =, 0 0 = 0 1 1, 1 2 0 0 N = 1 0, 0 1 =( ), =(), =(0 0), == 5. (8) = = 21. Solusi (8) merupakan solusi basis, karena memenuhi kendala pada PL (7) dan kolomkolom pada matriks kendala yang berpadanan dengan komponen taknol dari (8), yaitu B bebas linear (kolom yang satu bukan merupakan kelipatan dari kolom yang lain). Solusi (8) juga merupakan solusi fisibel basis, karena nilai-nilai variabelnya lebih dari atau sama dengan nol. 2.2 Pemrograman Linear Integer Pemrograman linear integer adalah suatu model pemrograman linear dengan variabel yang digunakan berupa bilangan bulat (integer). Jika semua variabel harus berupa integer, maka masalah tersebut dinamakan pure integer programming. Jika hanya sebagian yang harus berupa integer, maka disebut mixed integer programming (MIP). PLI dengan semua variabelnya harus bernilai 0 atau 1 disebut 0-1 PLI. (Garfinkel & Nemhauser 1972) Definisi 8 (Relaksasi Pemrograman Linear) Relaksasi pemrograman linear atau sering disebut relaksasi-pl merupakan suatu pemprograman linear yang diperoleh dari suatu PLI dengan menghilangkan kendala integer atau kendala 0-1 pada setiap variabelnya. Untuk masalah maksimisasi, nilai optimum fungsi objektif relaksasi-pl lebih besar atau sama dengan nilai optimum fungsi objektif PLI, sedangkan untuk masalah minimisasi, nilai optimum fungsi objektif relaksasi-pl lebih kecil atau sama dengan nilai optimum fungsi objektif PLI. 2.3 Metode Branch-and-Bound Dalam penulisan karya ilmiah ini, untuk memperoleh solusi optimum dari masalah PLI digunakan software LINGO 8.0, yaitu sebuah program yang dirancang untuk menentukan solusi model linear, nonlinear, dan optimisasi integer. Software LINGO 8.0 ini menggunakan metode branch-and-bound untuk menyelesaikan masalah PLI. Prinsip dasar metode branch-and-bound adalah memecah daerah fisibel dari masalah relaksasi-pl dengan membuat subproblemsubproblem. Terdapat dua konsep dasar dalam algoritma branch-and-bound. 1. Branch Branching (pencabangan) adalah proses membagi permasalahan menjadi subproblemsubproblem yang mungkin mengarah ke solusi. 2. Bound Bounding (pembatasan) adalah suatu proses untuk mencari atau menghitung batas atas (dalam masalah minimisasi) dan batas bawah (dalam masalah maksimisasi) untuk solusi optimum pada subproblem yang mengarah ke solusi. Metode branch-and-bound diawali dari menyelesaikan relaksasi-pl dari suatu pemrograman linear integer. Jika semua nilai variabel keputusan solusi optimum sudah berupa integer, maka solusi tersebut merupakan solusi optimum PLI. Jika tidak, dilakukan pencabangan dan penambahan batasan pada relaksasi-plnya kemudian diselesaikan. Winston (2004) menyebutkan bahwa untuk masalah maksimisasi nilai fungsi objektif optimum untuk PLI nilai fungsi objektif optimum untuk relaksasi-pl, sehingga nilai fungsi objektif optimum relaksasi-pl merupakan batas atas bagi nilai fungsi objektif optimum untuk masalah PLI. Diungkapkan pula dalam Winston (2004) untuk masalah maksimisasi bahwa nilai fungsi objektif optimum untuk suatu kandidat solusi
4 merupakan batas bawah nilai fungsi objektif optimum untuk masalah PLI asalnya. Suatu kandidat solusi diperoleh jika solusi dari suatu subproblem sudah memenuhi kendala integer pada masalah PLI, artinya fungsi objektif dan semua variabelnya sudah bernilai integer. Sebelummya akan dibahas terlebih dulu pengertian subproblem yang terukur. Menurut Winston (2004), suatu subproblem dikatakan terukur (fathomed) jika terdapat situasi sebagai berikut: a. Subproblem tersebut takfisibel, sehingga tidak dapat menghasilkan solusi optimum untuk PLI. b. Subproblem tersebut menghasilkan suatu solusi optimum dengan semua variabelnya bernilai integer. Jika solusi optimum ini mempunyai nilai fungsi objektif yang lebih baik daripada solusi fisibel yang diperoleh sebelumnya, maka solusi ini menjadi kandidat solusi optimum dan nilai fungsi objektifnya menjadi batas bawah (dalam masalah maksimisasi) dan batas atas (dalam masalah minimisasi) nilai fungsi objektif optimum bagi masalah PLI pada saat itu. Bisa jadi subproblem ini menghasilkan solusi optimum untuk masalah PLI. c. Nilai fungsi objektif optimum untuk subproblem tersebut tidak melebihi batas bawah saat itu (untuk masalah maksimisasi), maka subproblem ini dapat dieliminasi. Berikut ini adalah langkah-langkah penyelesaian suatu masalah maksimisasi dengan metode branch-and-bound. Langkah 0 Didefinisikan z sebagai batas bawah dari nilai fungsi objektif (solusi) PLI yang optimum. Pada awalnya ditetapkan z = dan i = 0. Langkah 1 Subproblem PL (i) dipilih sebagai bagian masalah berikutnya untuk diperiksa. Subproblem PL (i) diselesaikan dan diukur dengan kondisi yang sesuai. a) Jika PL (i) terukur, batas bawah z diperbarui jika solusi PLI yang lebih baik ditemukan. Jika tidak, bagian masalah (subproblem) baru i dipilih dan langkah 1 diulangi. Jika semua subproblem telah diperiksa, maka proses dihentikan. b) Jika PL (i) tidak terukur, proses dilanjutkan ke langkah 2 untuk melakukan pencabangan PL (i). Langkah 2 Dipilih salah satu variabel x j di mana nilai optimumnya adalah x j * yang tidak memenuhi batasan integer dalam solusi PL (i). Bidang +1 dipecah menjadi dua subproblem, yaitu dan +1, Dengan [ ] didefinisikan sebagai integer terbesar yang kurang dari atau sama dengan x * j. Jika PL (i) masih tidak terukur, maka kembali ke Langkah 1. (Taha 1996) Untuk memudahkan pemahaman metode branch-and-bound diberikan contoh sebagai berikut. Contoh 2 Misalkan diberikan PLI berikut: maksimumkan z = 4 +6 dengan kendala 3 +5 25 2 8 3 12, 0 dan integer (9) Solusi optimum relaksasi-pl dari masalah PLI (9) adalah = 4, = 2.6, dan z = 31.6 (lihat pada Lampiran 1). Batas atas nilai optimum fungsi objektif masalah ini adalah z = 31.6. Daerah fisibel masalah (9) ditunjukkan pada Gambar 1. Solusi optimum berada pada titik perpotongan dua garis yang berasal dari kendala pertidaksamaan masalah (9). Daerah = 4 = 2.6 Gambar 1 Daerah fisibel (daerah yang diarsir) untuk relaksasi-pl dari PLI (9). Langkah berikutnya adalah memartisi daerah fisibel relaksasi-pl menjadi dua bagian berdasarkan variabel yang berbentuk pecahan (tak-integer). Dipilih sebagai dasar pencabangan. Jika masalah relaksasi-pl diberi nama Subproblem 1, maka pencabangan tersebut menghasilkan 2 subproblem, yaitu: Subproblem 2: Subproblem 1 ditambah kendala 2, Subproblem 3: Subproblem 1 ditambah kendala 3, Hal ini diilustrasikan secara grafis pada Gambar 2.
5 Subproblem 3 Subproblem 4: Subproblem 3 ditambah kendala 3, Subproblem 5: Subproblem 3 ditambah kendala 4, Subproblem 2 Gambar 2 Daerah fisibel untuk Subproblem 2 dan Subproblem 3. Setiap titik (solusi) fisibel dari PLI (9) termuat dalam daerah fisibel Subproblem 2 atau Subproblem 3. Setiap subproblem ini saling lepas. Subproblem 2 dan Subproblem 3 dikatakan dicabangkan oleh. Kemudian dipilih subproblem yang belum diselesaikan. Misalkan dipilih Subproblem 2, kemudian diselesaikan. Solusi optimum untuk Subproblem 2 ini adalah = 4, = 2, dan z = 28 (lihat Lampiran 1). Semua variabel bernilai integer maka tidak perlu dilakukan pencabangan di Subproblem 2. Solusi dari Subproblem 2 menjadi batas bawah dari solusi PLI. Saat ini subproblem yang belum diselesaikan adalah Subproblem 3. Solusi optimum untuk Subproblem 3 adalah = 3,3, = 3, dan z = 31,3 (lihat Lampiran 1). Karena nilai z pada Subproblem 3 lebih besar dibandingkan dengan Subproblem 2, maka ada kemungkinan nilai z pada Subproblem 3 lebih optimum. Oleh karena itu, dipilih pencabangan pada Subproblem 3 atas, sehingga diperoleh dua subproblem lagi, yakni: Selanjutnya diselesaikan masalah Subproblem 4 dan Subproblem 5 satu per satu. Subproblem 5 takfisibel (lihat Lampiran 1 pada Subproblem 5), maka subproblem ini tidak dapat menghasilkan solusi optimum. Solusi optimum untuk Subproblem 4 adalah = 3, = 3.2, dan z = 31.2 (lihat Lampiran 1 bagian Subproblem 4). Karena nilai z pada Subproblem 4 lebih besar dibandingkan dengan Subproblem 2, maka dipilih pencabangan Subproblem 4 pada, sehingga diperoleh dua subproblem lagi, yaitu: Subproblem 6: Subproblem 4 ditambah kendala 3, Subproblem 7: Subproblem 4 ditambah kendala 4, Penyelesaian Subproblem 6 menghasilkan solusi optimum = 3, = 3, dan z = 30 (lihat Lampiran 1 bagian Subproblem 6). Semua variabel bernilai integer maka tidak perlu dilakukan pencabangan di Subproblem 6. Solusi dari Subproblem 6 menjadi batas bawah yang baru dari solusi PLI. Solusi optimum dari Subproblem 7 adalah = 1,6, = 4, dan z = 30.6 (Lihat Lampiran 1 bagian Subproblem 7). Karena solusi optimum Subproblem 7 lebih kecil atau sama dengan solusi optimum Subproblem 6 yaitu 30, maka tidak perlu lagi dilakukan pencabangan. Dengan demikian, solusi optimum pada PLI (9) adalah solusi optimum dari Subproblem 6. Pohon pencabangan yang menunjukkan penyelesaian masalah PLI (9) secara keseluruhan ditunjukkan pada Gambar 3.
6 Subproblem 1 =4, =2.6,dan =31.6 2 3 Subproblem 2 Subproblem 3 =4, =2,dan =28 =3.3, =3,dan =31.3 3 4 Subproblem 4 Subproblem 5 =3, =3.2,dan =31.2 Solusi takfisibel 3 4 Subproblem 6 Subproblem 7 =3, =3,dan =30 =1.6, =3,dan =30.6 Gambar 3 Seluruh pencabangan metode Branch-and-Bound pada penyelesaian masalah PLI Contoh 2. III PEMODELAN 3.1 Deskripsi Masalah Untuk mendeskripsikan masalah penjadwalan dokter kamar darurat di rumah sakit, pertama kalinya adalah harus diketahui berapa banyak dokter yang bertugas pada kamar darurat tersebut. Kemudian berapa banyak shift yang mereka tetapkan setiap harinya, dan bagaimana waktu liburan panjang dan hari libur diatur untuk para dokter. Banyaknya dokter kamar darurat bergantung pada keperluan kamar darurat itu sendiri. Rumah sakit yang cukup sibuk aktivitasnya biasanya memerlukan dokter yang banyak. Dalam bertugas dokter dibantu oleh beberapa calon dokter atau disebut dengan asisten dokter untuk meringankan tugas dokter. Dokter secara normal bertugas selama 48 jam per minggu. Dokter boleh menambah atau mengurangi jumlah jam tersebut sesuai dengan kesepakatan dokter dan pengelola kamar darurat. Dokter kamar darurat pada umumnya merupakan dokter yang bertugas sebagai dokter keluarga atau dokter spesialis di rumah sakit yang mereka tempati dan beberapa dari mereka secara pribadi membuka klinik. Oleh karena itu, selama mereka tidak bertugas, mereka dapat mengisi waktu dengan beristirahat atau melakukan aktivitas lain di rumah sakit dan klinik yang mereka punya. Pada kondisi tertentu suatu rumah sakit memiliki aturan di mana secara individu, dokter boleh memilih jadwal yang mereka inginkan. Sebagai contoh, permintaan libur pada hari atau jam tertentu dikarenakan kepentingan pribadi, hari raya, atau karena hal yang lainnya. Pada umumnya rumah sakit membolehkan dokter yang menginginkan hari libur dapat menukar hari kerjanya dengan hari kerja dokter yang lain, sesuai dengan kesepakatan mereka. Oleh karena itu, penjadwalan pada kamar darurat tidak mudah dilakukan karena bergantung pada kondisi keinginan dari para dokter dan keterbatasan yang dimiliki oleh kamar darurat. Berikut ini adalah gambaran dari suatu penjadwalan dokter kamar darurat, dengan empat orang dokter (D1, D2, D3, dan D4) yang bertugas di kamar darurat tersebut dan setiap dokter secara normal bertugas selama 48 jam per minggu. Dengan jumlah hari sebesar tujuh hari, pengelola kamar darurat menginginkan terdapat dua shift dalam satu hari yaitu shift 1 pada jam 08.00-19.00, shift 2