Seorang manajer produksi kafe menjatuhkan soal yang terdengar sederhana: “Kita punya tiga produk — Espresso, Latte, Cold Brew. Mesin hanya bisa jalan 120 jam sehari, barista 150 jam. Tiap produk punya margin beda dan butuh waktu beda. Berapa unit tiap produk yang harus kami buat supaya laba operasi maksimum?” Anda mencoba menjawab dengan Goal Seek — tetapi Goal Seek hanya bisa mengubah satu sel. Anda mencoba mencoba-coba manual: kombinasikan angka, catat laba, ulangi. Untuk tiga produk dengan dua batasan, ada ratusan kombinasi; untuk masalah nyata di pabrik dengan sepuluh produk dan lima batasan, jumlah kombinasi meledak menjadi miliaran. Manusia tidak bisa mencobanya satu per satu.

Itulah masalah yang dijawab Solver — add-in yang sudah dibundel Excel sejak lama tetapi sering tidak diaktifkan. Solver adalah mesin optimasi: Anda menyebutkan tujuan (maksimumkan laba, minimumkan biaya), variabel keputusan (berapa unit tiap produk), dan batasan (kapasitas mesin, jam kerja, permintaan minimum). Solver mencari kombinasi variabel yang mencapai tujuan sekaligus memenuhi semua batasan — bukan dengan mencoba-coba, melainkan dengan algoritma matematika (Simplex, GRG, Evolutionary) yang menemukan jawaban optimal dalam hitungan detik. Inilah inti Linear Programming (LP), bidang riset operasi yang lahir di Perang Dunia II untuk mengoptimalkan logistik konvoi dan kini menjadi tulang punggung keputusan di pabrik, logistik, portofolio investasi, dan penjadwalan.

Artikel ini menuntun Anda dari nol: mengaktifkan Solver, memahami tiga komponen model, membedakan tiga metode solving, lalu membangun tiga studi kasus praktis — product mix (maksimumkan laba dengan batasan sumber daya), blending (minimumkan biaya dengan batasan mutu), dan transportasi (minimumkan ongkos distribusi multi-pabrik). Semua langkah bisa Anda ikuti langsung dengan berkas latihan yang sudah disediakan.

Apa Itu Solver

Solver adalah add-in Excel yang melakukan optimasi: mencari nilai sel-sel variabel yang menghasilkan nilai terbaik (maksimum atau minimum) pada sel tujuan, dengan mematuhi batasan yang Anda tentukan. Bedanya dengan alat Excel lain: Goal Seek hanya bisa satu input dan satu target, tanpa batasan; What-If Analysis (Data Table, Scenario Manager) menghitung banyak kombinasi tetapi tidak mencari yang terbaik. Solver melangkah lebih jauh — ia memilih kombinasi optimal dari ruang kemungkinan yang luas, dengan batasan aktif yang menjaga solusi tetap realistis.

Tiga komponen yang harus Anda definisikan sebelum membuka dialog Solver:

KomponenDalam dialog SolverSifat selContoh
Objective cellSet ObjectiveSel berisi rumus (target yang dioptimasi)Laba operasi =SUMPRODUCT(CM, Q)
Variable cellsBy Changing Variable CellsSel berisi nilai konstan (angka, bukan rumus)Unit diproduksi per produk
ConstraintsSubject to ConstraintsHubungan ≤, =, ≥ antara sel rumus dan sel batasJam mesin terpakai ≤ kapasitas 120 jam

Inilah inti pemikiran optimasi, dirangkum dalam satu kalimat: “Saya ingin memaksimumkan [objective] dengan mengubah [variabel], selama [batasan] terpenuhi.” Kalimat ini berlaku universal — apapun bidangnya, apapun skalanya, optimasi selalu bisa dipersempit menjadi tiga komponen ini.

Alur proses lima tahap berurutanLima kotak mendatar berurutan dari kiri ke kanan, dihubungkan panah satu arah yang menunjuk maju. Tiap kotak diberi nomor satu sampai lima dan satu label tahap singkat: tahap satu Rencana, tahap dua Kumpul, tahap tiga Olah, tahap empat Tulis, dan tahap lima Tinjau. Urutan mengalir satu arah tanpa cabang maupun perulangan, menandai proses linear dari awal sampai akhir.Alur proses: lima tahap berurutan1Rencana2Kumpul3Olah4Tulis5Tinjausatu arah, tanpa lompat — tiap tahap menyiapkan tahap berikutnyalabel tahap di atas hanya contoh; nama tahap nyata ada di keterangan tiap artikel
Tiga komponen model Solver. (1) Objective cell — sel berisi rumus yang ingin dimaksimumkan (maks) atau diminimumkan (min): laba, biaya, jarak, waktu. (2) Variable cells — sel angka yang Solver ubah-ubah untuk mencapai objective: jumlah unit, kg, alokasi dana. (3) Constraints — batasan realistis dalam bentuk ≤, =, ≥: kapasitas ≤ 120 jam, total = 1.000 kg, variabel ≥ 0. Solver mencari kombinasi variabel yang menghasilkan objective terbaik sekaligus memenuhi semua batasan.

Satu pembedaan penting: Solver membedakan tiga metode solving, dan memilih yang salah menghasilkan error atau jawaban menyesatkan. Simplex LP untuk model linier murni — semua rumus objective dan constraint adalah kombinasi penjumlahan dan perkalian dengan konstanta (=SUMPRODUCT(...), =A1+B1, =5*C12). GRG Nonlinear untuk model dengan pangkat, logaritma, IF, MAX, MIN, atau perkalian dua sel variabel — misalnya laba = harga × kuantitas di mana harga dan kuantitas keduanya variabel. Evolutionary untuk model non-smooth (banyak titik lokal, fungsi tangga) — lebih lambat tetapi lebih tahan terhadap permukaan kasar. Aturan praktis: kalau Anda bisa menyatakan seluruh model sebagai matriks A·x ≤ b, pakai Simplex LP; kalau ada satu pun rumus yang melibatkan kuadrat, log, atau kondisional, pindah ke GRG Nonlinear.

Persiapan: Aktifkan Solver Add-in

Secara default, Solver tidak aktif di Excel segar terpasang — Anda harus mengaktifkannya sekali seumur pakai. Langkahnya:

  1. Buka File → Options → Add-ins. Di bagian bawah jendela, lihat kotak Manage: dengan dropdown bertuliskan “Excel Add-ins”. Klik tombol Go… di sebelahnya.
  2. Muncul dialog “Add-ins” berisi daftar checkbox. Centang Solver Add-in. Klik OK.
  3. Buka tab Data. Di ujung kanan ribbon, sekarang muncul tombol Solver (ikon berbentuk piramida biru dengan angka 1-2-3) di grup Analysis.

Solver tidak muncul? Tiga sebab umum: (1) instalasi Excel “Click-to-Run” minimal tidak menyertakan add-in — jalankan repair dari Control Panel → Programs → Office → Change → Quick Repair; (2) Anda memilih dropdown “COM Add-ins” alih-alih “Excel Add-ins” — Solver adalah Excel Add-in klasik (.xlam), bukan COM; (3) file SOLVER.XLAM di C:\Program Files\Microsoft Office\root\Office16\Library\Solver hilang atau rusak — repair instalasi mengembalikannya.

Setelah Solver aktif, ia menetap — Anda tidak perlu mengaktifkan ulang setiap kali membuka Excel. Tetapi Solver hanya tersedia di desktop Excel (Windows dan Mac), tidak di Excel Online. Untuk optimasi di Excel Online, gunakan add-in pihak ketiga seperti OpenSolver atau pindahkan ke desktop.

Persiapan: Unduh Berkas Latihan

Berkas latihan berikut berisi tiga studi kasus bertahap — masing-masing satu model optimasi dengan parameter siap pakai dan kotak “solusi referensi” untuk pengecekan.

⬇ Unduh solver-latihan.xlsx

Berkas berisi empat lembar:

  • PETUNJUK — ikhtisar isi workbook, legenda warna, dan peta lembar.
  • 01-Product-Mix — model laba kafe dengan 3 produk, batasan jam mesin + jam barista. Tugas: maksimumkan laba operasi.
  • 02-Blend-Solver — blending 1.000 kg biji kopi dari 3 origin dengan batasan mutu (acidity, body, aroma). Tugas: minimumkan biaya total.
  • 03-Transportasi — masalah distribusi 2 pabrik × 3 gudang dengan ongkos per rute berbeda. Tugas: minimumkan ongkos distribusi.

Sel input berwarna biru tua — silakan diubah. Sel oranye adalah objective cell (yang dioptimasi Solver). Sel hijau header dan kuning total adalah sel formula. Buka dialog Solver di tab Data → Solver.


Bagian 1 — Product Mix: Maksimumkan Laba dengan Batasan Sumber Daya

Model paling klasik LP adalah product mix: sebuah pabrik atau kafe memproduksi beberapa produk, tiap produk menghasilkan margin laba tertentu dan mengonsumsi sumber daya tertentu. Kapasitas sumber daya terbatas, sehingga tidak semua produk bisa diproduksi seberapa banyak yang diinginkan. Pertanyaannya: kombinasi berapa unit tiap produk yang memaksimumkan laba total?

Tiga Komponen Model

Di lembar 01-Product-Mix, ada model laba operasi untuk PT Kopi Senja Nusantara yang menjual tiga produk. Strukturnya mengikuti tiga komponen:

KomponenLokasi di lembarIsi
Data inputbaris 7–10Harga jual (P), biaya variabel (V), jam mesin, jam barista per unit tiap produk
Variable cellsC13:E13Unit diproduksi (Q) — tiga sel kosong yang akan diisi Solver
Constraintsbaris 17–18Jam mesin terpakai ≤ 120 jam ; jam barista terpakai ≤ 150 jam
ObjectiveC20Laba operasi =SUMPRODUCT(CM_per_unit, Q)

Contribution margin (CM) per unit dihitung otomatis di baris 11 sebagai =P−V. Penggunaan sumber daya dihitung otomatis di kolom C baris 17–18 dengan SUMPRODUCT. Lihat bagaimana semuanya sudah dirumuskan — tugas Anda hanya membiarkan Solver mencari nilai C13:E13 yang membuat C20 maksimum, selama C17 ≤ D17 dan C18 ≤ D18.

Rumus matematisnya, untuk tiga produk $i \in \{1,2,3\}$:

$$\text{Maximize } Z = \sum_{i} (P_i - V_i) \, Q_i$$$$\text{subject to } \sum_{i} m_i \, Q_i \le 120 \quad \text{(jam mesin)}$$$$\sum_{i} b_i \, Q_i \le 150 \quad \text{(jam barista)}$$$$Q_i \ge 0$$

dengan $m_i$ dan $b_i$ berturut-turut waktu mesin dan barista per unit produk $i$.

Menjalankan Solver

  1. Klik Data → Solver. Dialog besar dengan tiga bagian terbuka.
  2. Set Objective: klik kotaknya, lalu klik sel C20 (laba operasi). Nilai $C$20 muncul otomatis dengan tanda dolar (absolut).
  3. To: pilih Max (radio button) — kita memaksimumkan laba.
  4. By Changing Variable Cells: klik kotaknya, blok C13:E13 di lembar. Nilai $C$13:$E$13 muncul.
  5. Subject to Constraints: klik tombol Add. Muncul dialog tiga kotak.
    • Cell Reference: klik C17. Operator: pilih . Constraint: klik D17. Klik Add (untuk menambah berikutnya tanpa menutup dialog).
    • Ulangi: Cell Reference C18, operator , Constraint D18. Klik Add.
    • Ulangi: Cell Reference C13:E13, operator , Constraint ketik 0 (tidak ada produksi negatif). Klik OK (selesai).
  6. Solving Method: pilih Simplex LP dari dropdown.
  7. Klik Solve.

Dialog berjalan — biasanya kurang dari satu detik untuk model sekecil ini. Muncul kotak Solver Results yang melaporkan “Solver found a solution. All Constraints and optimality conditions are satisfied.” Pilih Keep Solver Solution (radio button) lalu klik OK. Sel variable C13:E13 sekarang berisi solusi optimal: Espresso 2.400 unit, Latte 0, Cold Brew 0 dengan laba operasi Rp 36.000.000.

Mengapa Espresso saja? Bukan karena Espresso paling laris — melainkan karena CM per jam mesin Espresso paling tinggi. Espresso memberi CM Rp 15.000 dari 0,05 jam mesin = Rp 300.000 per jam mesin. Latte hanya Rp 180.000 per 0,10 jam = Rp 180.000/jam. Cold Brew Rp 212.500/jam. Karena jam mesin adalah batasan pertama yang habis (binding), Solver mengalokasikan seluruh 120 jam mesin ke produk paling efisien per jam. Inilah inti berpikir LP: bukan margin absolut, melainkan margin per unit sumber daya langka.

Membaca Laporan Sensitivitas

Sebelum mengklik OK di Solver Results, perhatikan daftar Reports di sisi kanan dialog. Pilih Sensitivity lalu klik OK. Excel membuat sheet baru “Sensitivity Report 1” dengan tabel detail. Dua bagian paling berguna:

  • Final Value dan Reduced Cost per variabel — Reduced Cost menunjukkan berapa CM harus naik sebelum produk itu diproduksi. Untuk Latte dan Cold Brew (yang tidak diproduksi), Reduced Cost positif menandakan kedua produk kalah bersaing.
  • Shadow Price per constraint — menunjukkan berapa objective naik kalau kapasitas batasan ditambah satu unit. Untuk jam mesin, shadow price tinggi (sekitar Rp 300.000/jam) berarti menambah 1 jam mesin menambah laba Rp 300.000. Untuk jam barista, shadow price 0 — karena jam barista masih bersisa (binding = 0), menambah kapasitas tidak menambah laban. Inilah pertanyaan investasi klasik: “Apakah beli mesin baru (tambah jam mesin) layak?” Jawab: ya, kalau biaya tambahan per jam di bawah shadow price.

Sensitivity Report hanya tersedia untuk Simplex LP. Untuk GRG Nonlinear dan Evolutionary, laporan dibatasi.

Bagian 2 — Blending: Minimumkan Biaya dengan Batasan Mutu

Product mix memaksimumkan laba. Tetapi banyak masalah optimasi adalah kebalikannya: minimumkan biaya dengan batasan mutu. Contoh klasik: roastery ingin membuat blended 1.000 kg biji kopi dari tiga origin (Aceh Gayo, Toraja, Flores) — tiap origin punya harga dan skor mutu berbeda. Tujuannya: biaya total seminimum mungkin, selama skor acidity, body, dan aroma blend memenuhi standar.

Mengapa Ini Menantang

Tantangan blending ada di constraint mutu: skor blend adalah weighted average dari skor tiap origin, dengan bobot adalah kilogram. Kalau 1.000 kg blend terdiri dari 300 kg Aceh (acidity 4,0) dan 700 kg Toraja (acidity 5,0), acidity blend = (300×4 + 700×5)/1000 = 4,7. Constraint-nya: acidity blend ≤ 5,5; body blend ≥ 7,5; aroma blend ≥ 7,0.

Di lembar 02-Blend-Solver, weighted average dihitung dengan SUMPRODUCT di kolom C baris 18–20:

SelLabelRumus
C18Acidity blend=IFERROR(SUMPRODUCT(C14:E14,C8:E8)/$F$14,0)
C19Body blend=IFERROR(SUMPRODUCT(C14:E14,C9:E9)/$F$14,0)
C20Aroma blend=IFERROR(SUMPRODUCT(C14:E14,C10:E10)/$F$14,0)

Di mana C14:E14 adalah variabel kg per origin dan F14 adalah total kg. Inilah trik: rata-rata terwaktu tetap linier karena pembagi F14 adalah konstanta 1.000 (dijaga oleh constraint total).

Tiga Jenis Constraint di Model Ini

Model ini menunjukkan tiga jenis batasan yang sering muncul di LP:

  1. Constraint kesetaraan (equality =) — total kg harus tepat 1.000: F14 = 1000. Kalau kurang, blender tidak terisi penuh; kalau lebih, melebihi kapasitas. Equality mengunci variabel ke jumlah eksak.
  2. Constraint batas atas () — acidity maksimum 5,5: C18 ≤ E18. Acidity tinggi = asam terlalu kuat, tidak sesuai standar.
  3. Constraint batas bawah () — body minimum 7,5: C19 ≥ D19. Body rendah = kopi terasa tipis, tidak sesuai standar premium.

Ketiga jenis ini mencakup hampir semua batasan realistis. Equality untuk target eksak (total, alokasi), ≤ untuk kapasitas maksimum, ≥ untuk target minimum.

Menjalankan Solver

  1. Data → Solver.
  2. Set Objective: D22 (total biaya). To: Min.
  3. By Changing Variable Cells: $C$14:$E$14.
  4. Add constraints (urutan bebas):
    • $F$14 = 1000 (total kg)
    • $C$18 ≤ $E$18 (acidity ≤ 5,5)
    • $C$19 ≥ $D$19 (body ≥ 7,5)
    • $C$20 ≥ $D$20 (aroma ≥ 7,0)
    • $C$14:$E$14 ≥ 0 (tidak ada kg negatif)
  5. Solving Method: Simplex LP. Solve.

Solver menemukan solusi: Toraja 1.000 kg, Aceh 0, Flores 0 dengan biaya Rp 48.000.000. Mengapa hanya Toraja? Toraja adalah origin termurah (Rp 48.000/kg vs Aceh Rp 55.000 dan Flores Rp 42.000 — tunggu, Flores lebih murah). Mengapa bukan Flores?

Karena Flores punya acidity 6,0 yang melanggar batas acidity maksimum 5,5 — sendiri. Flores juga punya body 6,5, di bawah minimum 7,5. Toraja memenuhi ketiga batasan (acidity 5,0 ≤ 5,5; body 7,5 ≥ 7,5; aroma 7,0 ≥ 7,0) dan termurah di antara yang valid. Inilah kekuatan LP: ia tidak hanya mencari termurah, tetapi termurah yang masih layak (feasible).

Trik debugging: ubah satu batasan, lihat apa yang berubah. Coba ubang E18 dari 5,5 ke 6,5 (longgarkan acidity). Jalankan Solver ulang. Sekarang Flores (acidity 6,0 ≤ 6,5) menjadi layak dan karena paling murah, ia menggantikan Toraja. Sensitivitas seperti ini adalah inti analisis “what-if” pada model LP — seberapa besar batasan bisa dilonggarkan sebelum solusi berubah.

Mengapa Body Persis 7,5?

Perhatikan body blend di solusi: persis 7,5, sama dengan batas minimum. Ini bukan kebetulan — itu karakteristik constraint binding. Solver mendorong variabel sampai batas yang paling ketat tercapai, lalu berhenti. Kalau Anda bisa menurunkan minimum body ke 7,0, biaya akan turun karena Toraja yang lebih murah bisa diganti Flores. Tetapi selama 7,5 diwajibkan, solusi terkunci. Dalam analisis sensitivitas, ini disebut range of optimality — rentang nilai batas di mana solusi tidak berubah.

Bagian 3 — Transportasi: Minimumkan Ongkos Distribusi

Masalah transportasi adalah keluarga LP klasik yang lahir di logistik: sejumlah pabrik dengan kapasitas tertentu harus memasok sejumlah gudang dengan permintaan tertentu, dan ongkos per unit berbeda per rute. Tujuannya: alokasikan pengiriman dari tiap pabrik ke tiap gudang sehingga ongkos total minimum, selama kapasitas tidak terlampaui dan permintaan terpenuhi.

Di lembar 03-Transportasi, ada 2 pabrik (Medan dan Jakarta) yang memasok 3 gudang (Jakarta, Bandung, Surabaya). Ada 6 sel variabel — satu per pasangan pabrik-gudang (A→Jakarta, A→Bandung, A→Surabaya, B→Jakarta, B→Bandung, B→Surabaya). Matriks ongkos di baris 7–8, kapasitas pabrik di kolom F, permintaan gudang di baris 9.

Mengapa Transportasi Itu Linier

Ongkos total =SUMPRODUCT(C7:E8, C13:E14) adalah penjumlahan dari ongkos per rute × kuantitas per rute — murni linier. Constraint juga linier: jumlah kiriman per pabrik (baris di variabel) ≤ kapasitas; jumlah diterima per gudang (kolom di variabel) ≥ permintaan. Inilah mengapa transportasi adalah kasus khusus LP yang sangat efisien dipecahkan — algoritma Simplex punya varian khusus (transportation simplex) yang lebih cepat untuk masalah berukuran besar.

Menjalankan Solver

  1. Set Objective: $C$18. To: Min.
  2. By Changing Variable Cells: $C$13:$E$14 (6 sel dalam matriks 2×3).
  3. Add constraints:
    • $F$13 ≤ $F$7 (kapasitas Pabrik A)
    • $F$14 ≤ $F$8 (kapasitas Pabrik B)
    • $C$15 ≥ $C$9 (Jakarta terpenuhi)
    • $D$15 ≥ $D$9 (Bandung terpenuhi)
    • $E$15 ≥ $E$9 (Surabaya terpenuhi)
    • $C$13:$E$14 ≥ 0 (tidak ada pengiriman negatif)
  4. Simplex LP. Solve.

Solusi: A mengirim 550 ke Jakarta + 150 ke Bandung (kapasitas penuh 700); B mengirim 300 ke Bandung + 600 ke Surabaya (kapasitas penuh 900). Ongkos total Rp 1.370.000. Perhatikan Solver memilih rute termurah dulu — B ke Jakarta hanya Rp 600/kg (paling murah) tetapi B hanya punya kapasitas 900 sementara permintaan Jakarta+Surabaya saja 1.150, jadi B fokus ke rute paling efisien per kg.

Balanced vs unbalanced. Di model ini, total kapasitas (700+900=1.600) lebih besar dari total permintaan (550+450+600=1.600) — kebetulan balanced. Kalau kapasitas > permintaan (surplus), beberapa pabrik akan idle. Kalau permintaan > kapasitas (defisit), sebagian gudang tidak terpenuhi sepenuhnya — Anda perlu mengganti constraint dengan = dan menerima model infeasible (lihat Bagian 4). Untuk kasus defisit yang harus melayani semaksimal mungkin, ubah objective ke “maksimumkan total unit terkirim” alih-alih minimumkan biaya.

Bagian 4 — Memilih Metode: Simplex LP vs GRG Nonlinear vs Evolutionary

Tiga metode solving Solver menjawab tiga kelas masalah berbeda. Memilih yang salah memberi jawaban salah atau error.

Simplex LP

Untuk model di mana semua hubungan linier: objective adalah penjumlahan variabel dengan konstanta (seperti =SUMPRODUCT(cm, q)), constraint juga linier (=SUMPRODUCT(waktu, q) <= 120). Solusi yang ditemukan Simplex LP dijamin global optimal — tidak ada kombinasi lain yang lebih baik. Cepat (detik bahkan untuk ribuan variabel) dan menyediakan laporan Sensitivity, Limits, dan Answer.

Cara mengenali model LP: tulis ulang tiap sel rumus sebagai c₁x₁ + c₂x₂ + ... + cₙxₙ. Kalau berhasil tanpa xᵢ × xⱼ, xᵢ², IF, MAX, LOG, EXP, model linier. Kalau ada satu pun, bukan LP.

GRG Nonlinear

Untuk model dengan fungsi non-linier: pangkat (=C12^2), logaritma (=LOG(C12)), perkalian dua variabel (=C12*D12 — misalnya laba = harga × kuantitas di mana harga dan kuantitas keduanya variabel), atau kondisional (=IF(...)). GRG (Generalized Reduced Gradient) bekerja dengan menuruni gradien fungsi menuju minimum/ maksimum lokal.

Risiko GRG: ia menemukan optimum lokal, bukan global. Bayangkan permukaan bergelombang — GRG turun ke lembah terdekat dan berhenti, padahal lembah lebih dalam ada di seberang bukit. Untuk mengurangi risiko: jalankan Solver beberapa kali dari titik awal (sel variabel) berbeda, lalu bandingkan jawaban. Atau pakai Multistart (tombol Options di dialog Solver → centang “Use Multistart”) yang otomatis menjalankan dari banyak titik awal.

Evolutionary

Untuk model non-smooth: banyak titik lokal, fungsi tangga (=IF(...) bertingkat), atau variabel diskrit (integer). Evolutionary memakai algoritma genetika — populasi solusi yang “berevolusi” lewat seleksi, crossover, mutasi. Lambat (menit untuk model besar) tetapi tangguh. Pakai hanya kalau Simplex LP menolak (model non-linier) dan GRG menemukan jawaban berbeda-beda per run (tanda banyak optimum lokal).

Tabel Ringkas

MetodeUntuk modelSolusiKecepatanKapan dipakai
Simplex LPLinier murniGlobal optimal, dijaminCepat (detik)Default untuk product mix, transportasi, blending
GRG NonlinearLinier + fungsi non-linier halusLokal (mungkin bukan global)SedangPortfolio optimasi, kurva permintaan, fungsi kuadrat
EvolutionaryNon-smooth, banyak lokal, integerHeuristik, mendekati globalLambat (menit)Penjadwalan, fungsi IF bertingkat, variabel diskrit kompleks

Cek Pemahaman

1. Anda membangun model product mix dan menjalankan Solver dengan metode Simplex LP. Muncul pesan error: “The linearity conditions required by this LP Solver are not satisfied.” Apa yang terjadi dan bagaimana memperbaikinya?

Lihat jawaban

Ada sel rumus di objective atau constraint yang tidak linier. Simplex LP memeriksa setiap sel — kalau ada satu saja yang melibatkan IF, MAX, MIN, LOG, pangkat, atau perkalian dua sel variabel, ia menolak dengan pesan ini. Cara memperbaiki: telusuri objective dan constraint satu per satu. Misalnya, kalau objective Anda =SUMPRODUCT(cm, q) - IF(SUM(q)>1000, 100, 0) (diskon volume), bagian IF membuatnya non-linier — ganti dengan dua constraint terpisah atau pindahkan diskon ke input tetap. Kalau setelah diperiksa tetap gagal, jalankan ulang dengan GRG Nonlinear sebagai perbandingan. Aturan praktis: tulis ulang tiap rumus sebagai c₁x₁ + c₂x₂ + ...; kalau tidak bisa, bukan LP.

2. Anda menjalankan Solver dan mendapat pesan “Solver could not find a feasible solution.” Namun Anda yakin solusinya ada. Apa dua penyebab paling umum dan cara men-debugnya?

Lihat jawaban

Penyebab 1 — constraint saling bertentangan (infeasible). Misalnya permintaan gudang 1.600 kg tetapi kapasitas pabrik total hanya 1.500 kg — secara matematis tidak mungkin. Cara debug: longgarkan sementara constraint ketat (misal ganti permintaan ke ≥ 0 atau ganti = total ke ) dan jalankan ulang. Kalau Solver sekarang menemukan solusi, berarti constraint yang Anda longgarkan adalah sumber konflik. Penyebab 2 — angka batas salah ketik. Misalnya Anda menulis kapasitas 120 alih-alih 1.200, atau permintaan 60.000 alih-alih 6.000. Verifikasi ulang tiap batasan angka di sel constraint. Untuk debugging sistematis, jalankan Solver dengan satu constraint saja dulu, lalu tambahkan satu per satu sampai muncul infeasible — constraint terakhir yang ditambahkan adalah pelakunya.

3. Model Anda memberi solusi “unbounded” (nilai objective menuju tak terhingga). Apa artinya dan apa yang kurang dari model?

Lihat jawaban

Unbounded berarti Solver bisa meningkatkan (atau menurunkan) objective tanpa batas tanpa melanggar constraint apa pun. Ini selalu menandakan kesalahan model, bukan solusi bisnis nyata. Penyebab hampir selalu: constraint tidak lengkap. Contoh: product mix tanpa batasan kapasitas mesin — Solver memproduksi tak hingga unit karena tiap unit menambah laba tanpa biaya. Cara memperbaiki: identifikasi sumber daya yang membatasi produksi di dunia nyata (waktu, bahan baku, kapasitas gudang, anggaran pemasaran) dan tambahkan sebagai constraint . Aturan praktis: tiap variabel keputusan harus punya minimal satu batasan atas realistis; kalau tidak, model tidak menangkap keterbatasan nyata dan jawabannya tidak masuk akal.

4. Anda ingin model product mix memproduksi hanya dalam unit bulat (tidak bisa 2.400,5 unit). Bagaimana melakukannya di Solver, dan apa konsekuensinya?

Lihat jawaban

Tambahkan constraint integer: di kotak Add Constraint, Cell Reference C13:E13, operator pilih int (bukan , =, ), Constraint otomatis menjadi integer. Klik OK. Sekarang Solver hanya mencari nilai bulat. Konsekuensi 1 — metode. Untuk integer programming, Solver otomatis memakai varian Simplex LP yang disebut branch-and-bound — tetap Simplex LP tetapi lebih lambat. Konsekuensi 2 — solusi bisa sedikit lebih buruk. Solusi kontinu Espresso 2.400 mungkin menjadi 2.399 atau 2.400 (tetap) tetapi untuk model lain, pembulatan ke bawah bisa mengurangi laba sedikit. Konsekuensi 3 — Sensitivity Report tidak tersedia untuk integer programming. Pakai integer hanya kalau benar-benar perlu (produk diskrit, jumlah orang, jumlah truk) — kalau unit bisa pecahan (kg, liter, jam), biarkan kontinu.

Kesalahan Umum

Lupa mengaktifkan Solver Add-in. Gejalanya: tombol Solver tidak ada di tab Data, atau ada tetapi redup. Buka File → Options → Add-ins → Manage: Excel Add-ins → Go… → centang Solver Add-in → OK. Ini cukup sekali per instalasi. Kalau tombol tidak muncul padahal sudah dicentang, repair instalasi Office dari Control Panel.

Salah memilih metode solving. Simplex LP untuk model linier, GRG Nonlinear untuk non-linier halus, Evolutionary untuk non-smooth. Banyak pemula menjalankan model non-linier (yang punya IF atau perkalian variabel) dengan Simplex LP dan mendapat error “linearity conditions not satisfied”. Solusinya bukan menonaktifkan check — solusinya memperbaiki model agar linier atau memindah ke GRG. Sebaliknya, menjalankan model LP dengan GRG juga masuk akal tetapi lebih lambat dan tidak memberi Sensitivity Report.

Tidak memberi constraint non-negativity. Excel modern punya checkbox “Make Unconstrained Variables Non-Negative” di bawah dropdown Solving Method — centang selalu, kecuali Anda benar-benar membolehkan nilai negatif. Tanpa ini, Solver bisa memberi solusi “unit produksi = −500” yang secara matematis valid tetapi tidak masuk akal. Untuk model versi lama tanpa checkbox, tambahkan manual: variabel ≥ 0.

Objective cell berisi nilai, bukan rumus. Set Objective harus sel berisi rumus yang bergantung pada variabel. Kalau Anda mengetik angka di objective, Solver tidak punya hubungan untuk dioptimalkan dan memberi jawaban aneh. Verifikasi dengan Formulas → Trace Dependents dari sel variabel — harus ada panah (langsung atau tidak langsung) ke objective cell.

Variabel cells berisi rumus. By Changing Variable Cells harus sel berisi angka konstan, bukan rumus. Solver mengubah isi sel ini langsung; kalau sel berisi =D5*1.1, Excel tidak bisa menggantinya dan Solver error. Untuk mengonversi: copy sel, Paste Special → Values.

Mengedit hasil Solver tanpa menjalankan ulang. Setelah Solver menemukan solusi dan Anda klik Keep, nilai variabel tertinggal di sel. Tetapi kalau Anda mengubah input data (misal harga jual naik), nilai variabel tidak otomatis berubah — itu adalah solusi lama. Jalankan Solver ulang setiap kali input berubah. Untuk otomatisasi, rekam makro yang memanggil Solver (VBA SolverSolve), tetapi ini menambah kompleksitas dan biasanya tidak sebanding untuk model yang jarang diubah.

Constraint integer yang terlalu ketat. Menandai variabel integer memperlambat Solver dramatis untuk model besar (combinatorial explosion). Pakai integer hanya kalau unit betul-betul diskrit — untuk kg, liter, jam, biarkan kontinu. Kalau harus integer dan Solver lambat, gunakan add-in gratis OpenSolver yang memakai mesin CBC (lebih cepat untuk integer programming).

Dipakai di Praktik

  • Produksi dan operasi. Pabrik memakai product mix untuk menentukan jadwal harian: berapa unit tiap produk diproduksi pada shift tertentu, dengan batasan jam mesin, ketersediaan bahan baku, dan permintaan kontrak minimum. Solver Simplex LP adalah standar untuk penjadwalan linier berukuran menengah.
  • Logistik dan rantai pasok. Masalah transportasi (multi-pabrik ke multi-gudang) adalah LP klasik yang dipakai untuk alokasi armada, penentuan rute distribusi, dan penempatan gudang baru. Untuk skala besar (ribuan rute), perusahaan pindah ke software khusus seperti LINGO atau CPLEX, tetapi prinsipnya sama.
  • Portofolio investasi. Manajer investasi memakai GRG Nonlinear untuk optimasi portofolio Markowitz — minimumkan varians (kuadrat = non-linier) dengan batasan target return dan alokasi total 100%. Solver menangani portofolio hingga puluhan aset; di atas itu, pindah ke Python (cvxpy, scipy.optimize).
  • Blending di industri proses. Kilang minyak memakai blending LP untuk mencampur komponen bensin dengan batasan oktan dan sulfur; pabrik pakan ternak memakainya untuk nutrisi minimum; roastery (seperti contoh artikel ini) memakainya untuk profil rasa. Semua mengikuti pola yang sama: minimumkan biaya dengan batasan weighted average mutu.
  • Anggaran dan alokasi sumber daya. Departemen keuangan memakai LP untuk mengalokasikan anggaran pemasaran lintas saluran dengan batasan ROI minimum per saluran dan total anggaran tetap. Sama seperti product mix, hanya “produk” diganti “saluran” dan “laba” diganti “konversi”.

Lanjutan

  • What-If Analysis — Goal Seek, Data Table, dan Scenario Manager adalah pendahulu Solver: Goal Seek menjawab satu input satu target, Solver menjawab banyak input banyak batasan. Pahami What-If dulu sebelum melompat ke optimasi penuh.
  • Power Query Excel — data untuk model Solver (harga, biaya, permintaan) sering datang dari banyak sumber kotor. Power Query membersihkan dan menyatukannya sebelum dianalisis.
  • Pivot Table Excel — setelah Solver menemukan solusi, Pivot Table meringkas hasil lintas dimensi (produk, periode, lokasi) untuk presentasi.
  • Sensitivity & Scenario Analysis — Shadow Price dan Reduced Cost dari Sensitivity Report Solver adalah analisis sensitivitas formal; artikel ini memperluas ke tornado chart dan Monte Carlo.
  • Macro & VBA Dasar — untuk mengotomatiskan Solver (misal menjalankan optimasi tiap bulan dengan data baru), rekam makro yang memanggil SolverSolve lewat VBA.
  • Data Validation & Protection — sel input model Solver sebaiknya divalidasi (rentang wajar, tipe benar) agar tidak merusak model saat nilai ekstrem dimasukkan sebelum optimasi.