Custom Search

Solusi Rencana Produksi Terhadap Harga Pokok Produksi dengan Linier Programming

Pembuatan rencana produksi harus disesuaikan dengan berbagai macam batasan, misalnya : kapasitas mesin produksi, kapasitas gudang, ketersediaan bahan baku, tingkat harga pokok produksi, dan lain – lainnya.

Saya mencoba memberikan sebuah contoh solusi terhadap batasan harga pokok produksi dengan menggunakan linear programming. Saya mencoba menentukan batasan Harga Pokok Produksi (HPP) karena batasan mesin produksi dan gudang penyimpanan sudah masuk di dalam komponen HPP. Selain itu, perusahaan yang berani bersaing adalah perusahaan yang mengutamakan efisiensi, sehingga biasanya sensitif terhadap kenaikan HPP, tanpa harus mengorbankan demand atau permintaan konsumen.

Rencana produksi dengan Linear Programming

Ada sebuah permintaan barang selama 6 bulan kedepan di perusahaan setelahXbukanY sebagai berikut :

permintaan barang

permintaan barang

HPP pada contoh ini diasumsikan berbeda setiap bulannya. Asumsi yang kita gunakan adalah sebagai berikut (kondisi perusahaan setelahXbukanY):

  1. Kapasitas mesin produksi adalah 1400 kartonperbulan
  2. Biaya penyimpanan adalah Rp 20/bulan/karton
  3. Barang memiliki masa exp 1 tahun, sehingga permintaan bisa dipenuhi pada bulan yang sama atau bulan sebelumnya.
  4. Kapasitas gudang tidak boleh melebihi 2000 karton
  5. Perusahaan menginginkan adanya stok awal selalu diatas atau sama dengan 200 karton untuk mengantisipasi tambahan demand
  6. Stok awal 200 karton dan diharapkan stok akhir di Bulan enam juga 200 karton

Tinggalkan excell untuk membuat tabel dan membuat rumus stock awal + produksi – demand = stock akhir. Mari kita berpikir linear programming karena LP (Linear Programming) merupakan tools untuk memecahkan solusi seperti ini. Meskipun hasil yang diperoleh nantinya belum tentu menjadi pilihan bagi manajemen, namun hasil LP pasti merupakan kondisi yang optimum, tergantung kita membuat persamaan matematika dengan benar.

Jadi mari kita selesaikan!

 

Konsep latihan ini adalah minimisasi biaya produksi. Sehingga kita akan meminimalkan biaya produksi dan gudang untuk memenuhi produksi;

Tujuan atau goal yang ingin kita gunakan adalah

Min

200Q1 + 250Q2 + 300Q3 + 300Q4 + 350Q5 + 300Q6 + 20S1 + 20S2 + 20S3 + 20S4 + 20S5 + 20S6

Keterangan : Q1 : produksi bulan satu; Q2 : produksi bulan dua; Q3 : produksi bulan tiga; Q4 : produksi bulan empat; Q5 : produksi bulan lima; Q6 : produksi bulan enam. S1 : saldo akhir bulan satu; S2 : saldo akhir bulan dua; S3 : saldo akhir bulan tiga; S4 : saldo akhir bulan empat; S5 : saldo akhir bulan lima; S6 : saldo akhir bulan enam.

Setelah membuat tujuan, kita mulai mendeskripsikan batasan atau constrain dari linear programming.

  1. Kapasitas produksi tidak boleh melebihi 800. Sehingga nilai Q1<1400; Q2 <1400, Q3 <1400, Q4<1400, Q5<1400, dan Q6<1400
  2. Demand bisa dipenuhi dari produksi sebelumnya. Ini kita buat persamaan di setiap bulannya. Yakni menjadi :
    1. 200 + Q1 = 1200 + S1 (untuk Bulan satu) >> Q1 – S1 = 1000
    2. S1 + Q2 = 800 + S2 (untuk Bulan dua) >> S1 + Q2 – S2 = 800
    3. S2 + Q3 = 1500 + S3 (untuk Bulan tiga) >> S2 + Q3 – S3 = 1500
    4. S3 + Q4 = 1500 + S4 (untuk Bulan empat) >> S3 + Q4 – S4 = 1500
    5. S4 + Q5 = 2000 + S5 (untuk Bulan lima) >> S4 + Q5 – S5 = 2000
    6. S5 + Q6 = 1200 + S6 (untuk Bulan enam) >> S5 + Q6 – S6 = 1200
  3. Kapasitas gudang < 2000, sehingga menjadi >> S1 <2000, S2<2000, S3<2000, S4<2000, S5<2000, S6<2000.
  4. Stok awal selalu diatas 200 >> S1>200, S2>200, S3>200, S4>200, S5>200, S6>200.
  5. Stok akhir diharapkan 200. >> S6=200
Sehingga constrain yang kita peroleh adalah sebagai berikut:
 Q1<1400
 Q2 <1400
 Q3 <1400
 Q4<1400
 Q5<1400
 Q6<1400
 Q1 – S1 = 1000
 S1 + Q2 – S2 = 800
 S2 + Q3 – S3 = 1500
 S3 + Q4 – S4 = 1500
 S4 + Q5 – S5 = 2000
 S5 + Q6 – S6 = 1200
 S1 <2000
 S2<2000
 S3<2000
 S4<2000
 S5<2000
 S6<2000 S1>200
 S2>200
 S3>200
 S4>200
 S5>200
 S6>200
 s6=200
 S6=200

Mari kita running ke Lindo dengan menuliskan perintah di console sebagai berikut:

Min
 200Q1 + 250Q2 + 300Q3 + 300Q4 + 350Q5 + 300Q6 + 20S1 + 20S2 + 20S3 + 20S4 + 20S5 + 20S6
 Subject to
 Q1<1400
 Q2 <1400
 Q3 <1400
 Q4<1400
 Q5<1400
 Q6<1400
 Q1 – S1 = 1000
 S1 + Q2 – S2 = 800
 S2 + Q3 – S3 = 1500
 S3 + Q4 – S4 = 1500
 S4 + Q5 – S5 = 2000
 S5 + Q6 – S6 = 1200
 S1 <2000
 S2<2000
 S3<2000
 S4<2000
 S5<2000
 S6<2000 S1>200
 S2>200
 S3>200
 S4>200
 S5>200
 S6>200
 s6=200
 End

Input di lindo sebagai berikut :

input lindo

input lindo

Dan hasilnya akan kita peroleh sebagai berikut:

rencana produksi dengan linear programming

hasil output Lindo

rencana produksi

output lindo (2)

Jika anda membutuhkan informasi bagaimana input LP di Lindo, Baca kembali artikel saya tentang https://agungbudisantoso.com/2017/07/26/tutorial-linear-programming/, dan cara membaca output Lindo pada artikel saya yang berjudul https://agungbudisantoso.com/2017/08/12/cara-membaca-output-lindo/

Tidak heran jika LP menyarankan anda untuk produksi maksimal di bulan awal karena pada bulan tersebut HPP rendah apalagi dengan nilai resi gudang yang diasumsikan sama setiap bulan.

Pada hasil output lindo tersebut, total biaya yang harus ditanggung oleh perusahan SetelahXbukanY adalah Rp. 2.390.000 dengan memproduksi 1400 karton dari bulan satu hingga bulan lima, dan 1200 karton pada bulan enam.

Sekarang mari kita buka excell dan gunakan rumus penjumlahan dan pengurangan saldo awal, dan menempatkan hasil LP sesuai posisi masing masing. Diperoleh hasil sebagai berikut:

rencana produksi dengan linear programming

hasil lindo dalam bentuk rencana produksi

Nilai saldo tepat sesuai prediksi LP.

Mari kita asumsikan biaya gudang tidak flat, namun berbeda setiap bulannya sebagai berikut:

contoh linear programming

contoh perubahan biaya gudang

Kita ubah tujuan linear programming tanpa mengubah batasan atau constrain sehingga menjadi

Min

200Q1 + 250Q2 + 300Q3 + 300Q4 + 350Q5 + 300Q6 + 45S1 + 40S2 + 35S3 + 30S4 + 25S5 + 20S6

Dan hasilnya adalah sebagai berikut:

linear programming

hasil lindo (3)

Total biaya naik menjadi Rp 2.442.500 tanpa mengubah kombinasi produksi dari bulan satu hingga 5. Hal ini terjadi karena batasan yang ketat dari produksi yang maksimum, sehingga LP tidak memiliki banyak kombinasi.

Timbul pertanyaan ketika saya membuat artikel ini : bagaimana jika kapasitas produksi kita tidak mampu memenuhi permintaan? Maka jawabannya pasti LP tidak bisa memproses problem yang anda masukkan kecuali jika anda menambahkan variabel “produksi tambahan”, dengan variabel yang berbeda dari variabel yang sudah ada diatas. Saya katakan variabel tambahan karena biasanya tambahan produksi memiliki HPP yang berbeda dari HPP yang reguler. Bisa saja adanya tambahan produksi tersebut menambah lembur, atau produksi di tempat lain dengan sistem kontrak. Tentu HPP akan berbeda.

Pada kasus tersebut, anda bisa menambahkan variabel misalnya R1, R2, …dst. Dengan constrain yang sesuai dengan kondisi tambahan produksi tersebut.

Hasil pada linear programming ini tentunya tidak  mutlak dituruti oleh pengambil kebijakan atau misalnya seorang manager dalam perusahaan, tetapi bisa menambah informasi penting tentang kondisi optimum sehingga bisa mengambil tindakan yang efisien tanpa mengurangi tingkat efektivitas.

Terima Kasih telah berkunjung
Selamat Belajar

Penjelasan dan Tutorial Lengkap Regresi Berganda

Regresi Berganda merupakan suatu analisis yang dilakukan terhadap variabel dependen/ variabel terikat dan dua atau lebih variabel bebas atau independen. Berbeda dengan regresi sederhana yang hanya memiliki satu variabel independen dan satu varaibel dependen.

Beberapa artikel telah saya tulis untuk menjelaskan bagaimana cara memproses regresi berganda, namun masih banyak yang bertanya “bagaimana cara meningkatkan r square pada output regresi tersebut?” untuk memuaskan hati pembaca belajar menulis, saya akan menambah satu artikel  yang berisi rangkuman dari beberapa artikel terdahulu agar lebih sitematis dan terarah bagaimana kaitan antara satu artikel dengan yang lainnya.

Membaca hasil output Regresi Berganda Pada SPSS

Sebelum menjawab pada pokok permasalahan meniingkatkan r square, saya akan mengulas singkat bagaimana kita membaca hasil output regresi berganda dengan SPSS atau minitab. Karena  langkah langkah membaca hasil output regresi berganda pun sebenarnya tidak sembarangan. Anda tidak boleh buru – buru melihat r – square. Anda juga tidak boleh langsung melihat konstanta signifikan atau tidak dengan tingkat alpha 5%. Perhatikan step by step, jika step awal tidak memenuhi syarat, maka percuma hasilnya meskipun banyak konstanta yang signifikan dengan nilai p-value dibawah 5%.

regresi berganda

hasil output spss

Model regresi yang baik

Langkah pertama dalam membaca output regresi adalah penilaian model. Penilaian model ini terdiri dari 2 tahap. Tahap pertama melihat nilai signifikan pada f test. Model dikatakan baik apabila nilai p – value pada annova lebih kecil dari 0.05. Tahap kedua yakni melihat r square. R square juga disebut sebagai koefisien determinasi yang menjelaskan seberapa jauh data dependen dapat dijelaskan oleh data independen. R square bernilai antar 0 – 1 dengan ketentuan semakin mendekati angka satu berarti semakin baik. Jika r square bernilai 0.6, berarti 60% sebaran variabel dependen dapat dijelaskan oleh variabel independen. Sisanya 40% tidak dapat dijelaskan oleh variabel independen atau dapat dijelaskan oleh variabel diluar variabel independen (komponen error). Sehingga tidak aneh jika nilai r – square kecil, artinya komponen error yang besar.

Signifikansi pada koefisien

Jika model sudah mendapat prediket baik dan disimpulkan dapat memenuhi syarat untuk mewakili hubungan antara variabel independen dan variabel dependen, barulah kita melangkah kebagian selanjutnya yakni mengetahui variable manakah yang signifikan mempengaruhi variabel dependennya. Hal ini dapat dilihat pada tabel coefficients pada keluaran output spss. Tabel ini berisi konstanta setiap variabel independen (pada kolom B) berikut tingkat standard errornya.

Hal yang paling penting bagi pengguna terapan pada tabel ini adalah nilai t dan signifikan di akhir kolom. Koefisien yang memiliki nilai sig dibawah 0.05 adalah koefisien yang secara nyata mempengaruhi variabel dependen. Adapun arah hubungannya bergantung pada tanda negatif atau positif pada nilai B (nilai koefisien). Jika positif berarti hubungannya searah, jika negatif berarti hubungannya berlawanan arah.

Jenis skala pada variabel independen umunya adalah rasio atau data continue. Namun sangat dimungkinkan apabila satu dari beberapa variabel independen berbentuk skala nominal, anda mengenalnya sebagai variabel dummy dalam regresi. Saya telah membahas dalam artikel mengenal dummy dalam regresi.

Cara meningkatkan nilai R square

Kembali ke topik utama penulisan artikel ini, bagaimana cara meningkatkan nilai r square pada regresi berganda? Sebenarnya pertanyaan meningkatkan nilai r square tidak bisa dijawab dengan satu atau dua paragraf jawaban karena biasanya setiap kasus berbeda permasalahan. Untuk itu, saya memberikan beberapa tips yang dapat membantu anda untuk mengevaluasi lagi data dan analisis yang telah anda lakukan. Berikut beberapa masalah yang mungkin menyebabkan nilai r square rendah

Tidak mengikuti kaidah uji asumsi klasik.

Pada artikel yang berjudul Uji asumsi klasik part 1 dan uji asumsi klasik part 2, saya membahas tentang prasyarat data yang harus dipenuhi sebelum melakukan analisis regresi. Pastikan data anda memenuhi syarat linearitas, multikolinearitas, normalitas, dan heteroskedastisitas.

Ada data pengganggu (data pencilan)

Data pencilan membuat banyak hal yang berbeda. Amati setiap data dalam variabel sehingga anda memiliki data yang siap untuk dianalisis. Metode eliminasi data sudah saya jelaskan pada artikel yang berjudul : Cara eliminasi data responden untuk mendapatkan model regresi yang lebih baik.

Multikolinearitas

Meskipun multikolinearitas sudah saya jelaskan dalam uji asumsi klasik, namun terkadang pasangan – pasangan variabel yang tidak sesuai menyebabkan  r square tidak maksimal. Perlu ada upaya untuk mendapatkan pasangan yang tepat untuk menghindari multikoliner. Artikel : Cara mengeliminasi variabel pada regresi, akan membantu anda membuat beberapa alternatif variabel-varaiabel yang tepat untuk mendeskripsikan nilai variabel dependen.

Data tidak linear

Data yang tidak linear tentu akan sulit diregresi mengingat regresi mengikuti kaidah linear. Ada trik tertentu yang dapat mengubah data yang tidak linear menjadi seolah linear kemudian dianalisis menggunakan regresi. Saya telah membahasnya pada artikel yang berjudul : Tehnik setrika data pada regresi.

Regresi dapat dikembangkan menjadi sebuah elastisitas. Jika regresi hanya mengisyaratkan sebuah perubahan akibat satu satuan perubahan variabel independen, maka elastisitas menjelaskan persentase perubahan variable dependen karena adanya persentase perubahan variabel independen. Elastisitas sangat baik membahas kebijakan karena membahas proporsi, bukan satuan. Saya telah membahasnya di dalam artikel elastisitas pada regresi. Regresi dan elastisitasnya sudah saya terapkan dalam tulisan yang berjudul Elastisitas harga dan pengaruh impor kedelai terhadap produksi dalam negeri dalam bentuk naskah prosiding dan naskah jurnal yang berjudul Pengaruh Luas Lahan dan Pupuk Bersubsidi terhadap produksi padi nasional.

Demikian rangkuman tentang regresi berganda,

Terima kasih telah berkunjung
Selamat Belajar

Membaca Hasil Output Lindo Pada Linear Programming

Pada tutorial sebelumnya saya telah membahas metode dasar Linear programming, beserta contoh dan langkah di aplikasi Lindo. Pada bagian akhir saya rasa belum terlalu detil menjelaskan cara membaca hasil output Lindo. Kali ini saya akan berusaha menjelaskan satu persatu hasil output Lindo tersebut

Reduced Cost

cara membaca output lindo

Cara membaca output Lindo

Objective function value merupakan nilai maksimal atau minimal yang diperoleh dari Linear programming. Variabel dan value merupakan nilai konstanta masing masing variabel untuk memperoleh objective function value tersebut.

Membaca arti nilai reduced cost tergantung pada tujuan LP apakah maksimisasi, ataukah minimisasi. Jika maksimisasi, reduced cost merupakan nilai pengurangan objective function value setiap adanya pengurangan  satu satuan pada variabel. Ingat, bahwa pada kasus maksimisasi adalah upaya untuk meningkatkan semua variabel agar mendapatkan hasil maksimal sesuai batasan – batasan yang ada. Sehingga membaca reduced cost berarti bernilai pengurangan hasil jika kita tidak mampu memenuhi nilai variabel yang telah ditentukan LP.

Sebaliknya pada kasus minimisasi. Reduced cost berarti tambahan biaya yang dihasilkan, atau tambahan objective function value setiap adanya tambahan satu satuan pada variabel. Contoh pada gambar diatas, variabel S4 memiliki nilai 0 dan reduced cost 18.039. artinya jika kita mengganti nilai 0 menjadi 1, maka nilai objective function value akan bertambah senilai 18.039 (asumsi cateris paribus). Ingat, dalam pikiran kita, sedang memikirkan minimisasi biaya!

Lalu bagaimana jika sebaliknya? Jika kita menambah konstanta/value pada proses maksimisasi dan mengurangi pada proses minimisasi, bagaimana membaca reduced cost? Jawabannya : itu tidak akan terjadi. Nilai value yang dikeluarkan oleh LINDO merupakan nilai yang paling maksimum dari batasan yang sudah ada (untuk kasus maksimisasi) dan nilai yang sudah paling minimum dari batasan yang ada (untuk kasus minimisasi). Jadi jika kita menambah value pada varibel di proses maksimisasi, biasanya ada batasan yang dilanggar.

Misal pada maksimisasi : variabel X < 10, dan nilai value yang keluar adalah X = 9. Maka jika kita menambah x menjadi 10, akan ada batasan yang dilanggar yakni X < 10.

Misal pada minimisasi : variabel X > 20, dan nilai value yang keluar adalah x = 21. Maka jika kita mengurangi x menjadi 20, akan ada batasan yang dilanggar yakni x > 10

Slack Or Surplus

Berbeda dengan reduced cost, jika slack or surplus kita melihat dari tanda yang digunakan pada batasan masalah atau subject to. Saya berikan contoh langsung agar tidak bingung.

Misal ada batasan X <= 20, kemudian nilai value yang keluar x = 20, maka dipastikan nilai slack or surplus = 0, karena LP (Linear Programming) mengambil semua nilai batasan. Tidak ada lebih dan tidak ada kurang.

Misal ada batasan X<=20, kemudian nilai value yang keluar x = 15, maka nilai slack or surplus akan bernilai 5. Artinya masih ada sumberdaya yang tersisa atau tidak terpakai dengan solusi yang dikeluarkan oleh LP. Kondisi Slack.

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 30, maka dapat dipastikan Slack or Surplus akan bernilai 0, tidak ada lebih dan tidak ada kurang.

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 35, maka nilai slack or surplus akan bernilai 5. Artinya ada kelebihan dari batasan sumberdaya. Kondisi surplus.

Jelas sampai disini? Silahkan berkomentar jika ada yang belum jelas.

Dual Prices

Dual Price hampir hampir mirip dengan reduced cost. Jika reduced cost menceritakan hubungan objective function value dengan value atau constanta, maka dual price menjelaskan hubungan objective function value dengan constrain atau kendala.

Misalnya perhatikan gambar dibawah ini:

dual price lindo

Dual price Lindo

Dual price merupakan berapa tambahan objective function value jika constrain atau kendala ditambah 1 satuan.

Jika slack or surplus bernilai 0, maka dual price akan memiliki nilai (perhatikan gambar diatas), sebaliknya, jika slack or surplus memiliki nilai, maka dual price akan bernilai 0. Mengapa demikian? Karena pada sos (slackk or surplus) yang bernilai 0, artinya semua batasan dipakai oleh LP. Dan jika kita menambah satu satuan pada batasan, kemungkinan besar LP akan menggunakannya juga dan akan mempengaruhi nilai objective function value.

Contoh:

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 30 (sos = 0 pastinya), jika kita mengganti X>=31, kemungkinan besar nilai value yang keluar juga x = 31, dan tentunya akan mempengaruhi (menambah atau mengurangi) nilai objective function value. Hal ini disebabkan karena batasan tersebut merupakan batasan terdekat dan tidak dipengaruhi oleh batasan yang lain, sehingga LP mengambil secara maksimalnya.

Kebalikannya, jika sos memiliki nilai tertentu, maka biasanya dula price akan bernilai 0. Penjelasannya bahwa LP tidak mengambil penuh batasan variabel, sehingga perubahan satu satuan tidak akan mempengaruhi objective function value

Contoh:

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 35 (sos = 5), maka jika kita menambahkan satu satuan pada batasan menjadi x>=31, kemungkinan besar nilai value yang keluar tetaplah x = 35 dan tidak mempengaruhi (menambah atau mengurangi) objective function value. Hal ini disebabkan karena batasan tersebut bukanlah batasan terdekat atau nilai x juga dibatasi atau tergantung oleh variabel lainnya. Misalnya saja nilai x harus dua kali dari nilai Y, dan sebagainya.

Allowable increase dan Allowable Decrease

Nilai koefisien dan RHS (Righthand side/batasan) juga memiliki range. Pada output Lindo diperkenankan nilai koefisien berubah naik atau diperkenankan turun tanpa mempengaruhi nilai objective function valuenya. Jika kenaikan nilai konstanta melebihi nilai allowable increase, atau penurunan nilai konstanta lebih kecil dari allowable decrease, maka barulah nilai objective function value akan berubah.

Sama seperti konstanta, batasan atau righthand side juga memiliki range. Jika kenaikan nilai batasan melebihi nilai allowable increase, atau penurunan batasan lebih kecil dari allowable decrease, maka barulah nilai objective function value akan berubah.

allowable decrease

Range value pada Lindo

Terima Kasih Telah Berkunjung,
Selamat Belajar!

 

NB:

bila nilai harus genap (integer), maka dalam Lindo, setelah end dituliskan gin, lalu variabel apa yang ingin nilainya tidak pecahan. Misal untuk x y tidak boleh pecahan, maka setelah end, dituliskan : gin x y.

Gin : General Integer

Page 2/22123...510...Last