Skip to content

Instantly share code, notes, and snippets.

@c3budiman
Created November 24, 2025 04:14
Show Gist options
  • Select an option

  • Save c3budiman/36c18285207c479d3d75e0f4fa0e292a to your computer and use it in GitHub Desktop.

Select an option

Save c3budiman/36c18285207c479d3d75e0f4fa0e292a to your computer and use it in GitHub Desktop.

Tentu, berikut adalah terjemahan yang disesuaikan agar bahasanya lebih "manusiawi" dan mudah dipahami oleh orang awam (non-programmer/bisnis):


Cara Kerja Pemilihan Stok Benang Otomatis (Auto Lot)

Ringkasan

Fitur ini berfungsi untuk menghitung berapa banyak benang yang dibutuhkan untuk sebuah pesanan (Sales Order), lalu sistem akan mencarikan stok (Lot/Batch) yang paling pas di gudang untuk memenuhi kebutuhan tersebut.

Cara Kerjanya

1. Menghitung Total Kebutuhan (Sistem Gabungan/Pooled)

Sistem menghitung kebutuhan seolah-olah kita menggunakan banyak mesin sekaligus untuk mengerjakan satu pesanan.

  • Total Jalur Benang (Feeders): Menghitung total jalur benang yang aktif di semua mesin.
    • Rumusnya: Jumlah Feeder per Resep dikali Jumlah Mesin.
  • Putaran Produksi (Runs/Naik): Menghitung berapa kali kita perlu mengganti cones baru (ganti penuh) untuk mencapai target produksi.
  • Butuh Berapa Cones: Menghitung total fisik cones yang diperlukan.
  • Butuh Berapa Dus (Box): Mengonversi jumlah cones menjadi jumlah dus (misalnya: 1 dus isi 24 cones).

2. Strategi Memilih Stok: "Cari yang Paling Pas"

Setelah tahu butuh berapa banyak (dalam dus/cones/kg), sistem akan mencari stok di gudang dengan strategi "Best Fit" agar stok gudang tetap rapi dan efisien.

Prioritas 1: Cari yang Cukup & Paling "Ngepas"

Sistem mencari satu tumpukan stok (Lot) yang bisa memenuhi seluruh pesanan.

  • Jika ada banyak pilihan stok yang cukup, sistem akan memilih stok yang ukurannya paling kecil tapi tetap cukup.
  • Tujuannya: Jangan pakai stok yang terlalu besar untuk pesanan kecil. Stok yang besar ("gajah") disimpan untuk pesanan yang besar juga nanti.

Prioritas 2: Kalau Tidak Ada yang Cukup, Cari yang Terbesar

Jika tidak ada satu pun stok yang cukup untuk memenuhi pesanan 100%:

  • Sistem akan mengambil stok terbesar yang tersedia.
  • Tujuannya: Memenuhi pesanan sebanyak mungkin dalam satu kali pengambilan, supaya tidak perlu terlalu sering gonta-ganti Lot.

Contoh Kasus

Kebutuhan Pesanan:

  • Barang: BENANG-001
  • Butuh: 500 kg

Stok di Gudang:

  1. Lot A: 1000 kg
  2. Lot B: 550 kg
  3. Lot C: 200 kg
  4. Lot D: 50 kg

Proses Pemilihan:

  1. Sistem melihat mana yang cukup (di atas 500kg): Yaitu Lot A (1000kg) dan Lot B (550kg).
  2. Sistem memilih yang paling "ngepas": Lot B (550kg).
    • Alasan: Lot B cukup untuk pesanan ini. Lot A (1000kg) biarkan saja dulu, siapa tahu nanti ada order besar masuk.

Kasus 2 (Kekurangan Stok):

  • Butuh: 2000 kg
  • Stok tersedia cuma: Lot A (1000kg) dan Lot B (550kg).

Proses Pemilihan:

  1. Sistem cari yang cukup: Tidak ada.
  2. Karena tidak ada yang cukup, sistem cari yang paling besar.
  3. Yang Dipilih: Lot A (1000kg).
    • Alasan: Karena ini stok terbesar, jadi bisa menutup kebutuhan paling banyak sekaligus.

Contoh Laporan Data (Output Sistem)

Ini adalah contoh data yang akan dikeluarkan oleh sistem komputer yang berisi info mesin, ringkasan hitungan, dan detail pembagian stok per barang:

{
  "data": {
    "data_mesin": {
      "nomor_so": "SO-2023-001",
      "total_mesin": 4,
      "total_target_kain": 2500
    },
    "ringkasan": {
      "totalMesin": 4,
      "totalJalurBenang": 320,
      "kgPerPutaran": 320,
      "totalPutaran(Runs)": 8,
      "totalDus": 110
    },
    "alokasi_stok": [
      {
        "barang": {
          "kode": "YARN-001",
          "nama": "COTTON COMBED 30S",
          "butuhDus": 10,
          "butuhCones": 240,
          "totalKg": 240
        },
        "stok_terpilih": {
          "nomor_lot": "LOT-2023-X",
          "berat_netto": 250,
          "total_dus": 11
        },
        "info_alokasi": {
          "apakah_cukup": true,  // Artinya stok cukup
          "status": "PENUH",
          "dus_dialokasikan": 10,
          "kg_dialokasikan": 240
        }
      }
    ]
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment