Pernah melihat penjualan restoran sudah tercatat di POS, tetapi stok bahan baku tetap tidak cocok dengan hitungan dapur? Fitur pengurangan stok otomatis memang membantu mengurangi pekerjaan manual, namun bukan jaminan semua angka langsung benar.
Di balik satu transaksi terdapat pemetaan menu, recipe atau Bill of Materials (BOM), konversi satuan, serta aturan pencatatan bahan. Artikel ini membahas mekanisme tersebut dan titik kegagalan yang perlu diuji sebelum restoran mengandalkan stok otomatis.
Bagaimana Transaksi POS Mengurangi Stok Bahan Baku?
Stok otomatis bukan berarti POS sekadar mengurangi satu barang setiap kali menu terjual. Sistem harus mengetahui menu apa yang dipesan, berapa porsinya, resep mana yang berlaku, dan bahan apa yang dikonsumsi. Seluruh informasi itu kemudian diterjemahkan menjadi catatan pergerakan persediaan.
Alur dasarnya: Menu terjual → SKU menu → Recipe/BOM → Perhitungan bahan dan konversi satuan → Jurnal pengurangan inventory.
Restoran perlu menentukan kapan pengurangan dicatat, misalnya saat pesanan mulai diproduksi atau ketika transaksi diselesaikan. Pilih satu aturan yang konsisten. Transaksi yang diproses ulang tidak boleh menyebabkan stok terpotong dua kali.
Idealnya, jurnal stok menyimpan ID transaksi, outlet, menu, versi resep, kuantitas bahan, dan waktu pencatatan. Dengan begitu, saat muncul selisih, tim bisa menelusuri bahan yang berkurang sampai ke pesanan asalnya.
Contoh Perubahan Stok dari 10 Menu Terjual
Anggap restoran menjual 10 porsi nasi goreng dengan standar kebutuhan bahan berikut. Seluruh angka adalah simulasi, dan berat beras di sini diasumsikan sebagai berat bahan pada satuan dasar resep, bukan berat nasi matang.
| Bahan baku | Kebutuhan per porsi | Kebutuhan 10 porsi |
| Beras | 150 gram | 1.500 gram (1,5 kg) |
| Telur | 1 butir | 10 butir |
| Ayam | 50 gram | 500 gram |
| Bumbu | 20 gram | 200 gram |
| Minyak | 10 ml | 100 ml |
Jika stok awal beras tercatat 10 kg dan tidak ada pergerakan lain, stok teoritis setelah transaksi adalah 10 − 1,5 = 8,5 kg. Satuan stok dan takaran resep harus dikonversi ke unit dasar yang sama sebelum dikurangkan.
Bagaimana jika dapur sebenarnya memakai 180 gram beras per porsi? Pemakaian aktual menjadi 1,8 kg, bukan 1,5 kg. Selisih 300 gram pada 10 porsi berasal dari standar resep yang tidak sesuai, bukan otomatis dari gangguan sinkronisasi.
Pastikan Kuantitas Resep dan Satuan Bahan Konsisten
Resep bisa menggunakan gram, mililiter, butir, atau porsi; pembelian bisa menggunakan kilogram, liter, dan karton. Sistem perlu menyimpan unit dasar untuk setiap bahan serta aturan konversi yang jelas.
• Berat: 1 kg = 1.000 gram. Jangan mencampur berat bahan mentah dengan berat matang tanpa aturan yield.
• Volume: 1 liter = 1.000 ml. Konversi volume ke berat membutuhkan data khusus bahan, bukan asumsi otomatis 1 ml = 1 gram.
• Jumlah/kemasan: 1 karton berisi 12 botol harus dicatat sebagai 12 unit jika stok dasar disimpan per botol.
Perhatikan juga yield setelah pemotongan atau memasak. Jika 1 kg bahan mentah hanya menghasilkan 800 gram bahan siap pakai, resep dan pembukuan persediaan harus konsisten mengenai tahap mana yang dipakai untuk menghitung pengurangan.
Modifier dan Add-on Harus Memiliki Pemetaan Bahan
Menu dasar belum tentu menggambarkan seluruh bahan yang digunakan. Tambahan telur, ekstra ayam, penggantian susu, atau ukuran minuman lebih besar mengubah pemakaian bahan.
Contohnya, 10 porsi nasi goreng memakai 10 butir telur standar. Jika tiga pesanan menambah masing-masing satu telur, pemakaian yang benar adalah 13 butir, bukan 10. Add-on tersebut harus memiliki SKU atau pemetaan bahan dan takaran tersendiri.
Uji juga modifier yang mengganti bahan, bukan hanya menambahkannya. Jika pelanggan mengganti susu sapi dengan susu oat, sistem seharusnya mengurangi komponen susu sapi dan menambahkan komponen susu oat sesuai aturan resep, bukan mengurangi keduanya.
Produk Setengah Jadi dan Multi-level BOM
Banyak restoran menyiapkan saus, kaldu, adonan, atau bumbu racikan dalam batch. Di sinilah multi-level BOM digunakan: menu akhir memakai produk setengah jadi, sedangkan produk tersebut dibuat dari bahan baku lain.
Misalnya, satu batch saus menghasilkan 1 kg saus siap pakai dari campuran cabai, bawang putih, minyak, gula, serta cairan yang dibutuhkan. Setiap porsi nasi goreng memakai 20 gram saus. Maka 10 porsi menghabiskan 200 gram saus.
Metode stok produk setengah jadi: Saat batch dibuat, sistem mengurangi bahan pembentuk saus dan menambah 1 kg stok saus. Ketika 10 menu terjual, sistem hanya mengurangi 200 gram stok saus. Bahan pembentuknya jangan dikurangi lagi saat penjualan.
Metode pengurangan langsung: Jika restoran tidak mencatat saus sebagai item persediaan tersendiri, BOM dapat meneruskan kebutuhan 200 gram saus ke bahan pembentuknya berdasarkan proporsi resep. Sistem harus memilih mekanisme yang sesuai agar tidak terjadi pengurangan ganda.
Perbedaan hasil batch (yield), sisa produksi, dan pergerakan antargudang juga harus tercatat. Pemetaan menu → saus → komponen bahan merupakan contoh penting penelusuran transaksi hingga bahan baku.
Baca juga: Apa Itu Bill of Material? Pengertian, Jenis, Manfaat, dan Contohnya
Apa yang Terjadi Jika Pesanan Di-void, Dibatalkan, atau Di-refund?
Perubahan pembayaran tidak selalu sama dengan perubahan pemakaian bahan. Karena itu, void, cancel, dan refund perlu memiliki aturan stok berdasarkan status produksi, bukan hanya status uang.
• Batal sebelum produksi: jika stok sudah terpotong, sistem dapat membalik pengurangan secara terkontrol karena bahan belum digunakan.
• Batal setelah dimasak: bahan tetap sudah dipakai. Jika produk tidak bisa dijual, catat sebagai pemakaian atau waste sesuai SOP; jangan otomatis mengembalikan bahan mentah.
• Refund pembayaran: pengembalian dana tidak membuktikan bahwa stok fisik kembali. Tim harus memastikan apakah makanan dibuat, dibuang, atau layak dijual kembali.
Setiap pembalikan dan penyesuaian sebaiknya menyimpan ID transaksi asal, alasan, pengguna yang menyetujui, serta waktu kejadian agar jurnal stok tetap dapat diaudit.
Catat Waste dan Actual Usage di Luar Penjualan
Theoretical usage dihitung dari jumlah menu terjual × resep standar. Namun, bahan dapat habis di luar pesanan, misalnya karena rusak, tumpah, salah produksi, atau digunakan untuk uji rasa.
Contohnya, 10 porsi membutuhkan 200 gram saus. Jika ada 100 gram saus tumpah ketika persiapan, total pengurangan stok saus yang wajar adalah 300 gram: 200 gram karena penjualan dan 100 gram sebagai waste terpisah. Jangan memasukkan kehilangan 100 gram itu ke seluruh resep menu.
Actual usage perlu ditelusuri dari stok awal + barang masuk − stok akhir, setelah memperhitungkan transfer dan penyesuaian. Bandingkan dengan pemakaian teoritis dan waste tercatat untuk melihat selisih yang belum terjelaskan.
Mengapa Theoretical Stock Bisa Berbeda dengan Physical Stock?
Theoretical stock adalah saldo menurut transaksi dan jurnal persediaan. Physical stock adalah jumlah yang benar-benar ditemukan saat penghitungan fisik. Keduanya bisa berbeda walaupun transaksi POS tampak berhasil.
• Data master: takaran resep, versi BOM, konversi satuan, atau yield tidak sesuai praktik dapur.
• Transaksi: pesanan offline belum sinkron, kejadian terproses dua kali, atau modifier tidak terpetakan.
• Pergerakan fisik: waste, penerimaan barang, transfer cabang, dan penyesuaian manual tidak dicatat.
• Waktu pencatatan: POS dan inventory mengakui pengurangan pada tahap yang berbeda, sehingga laporan sementara belum sebanding.
Saat ada selisih, jangan langsung menyamakan angka sistem dengan stok fisik tanpa investigasi. Periksa terlebih dahulu transaksi yang membentuk saldo, lalu dokumentasikan alasan koreksi. Stock opname tetap diperlukan sebagai kontrol independen.
Checklist Sebelum Mengaktifkan Pengurangan Stok Otomatis
Gunakan daftar ini untuk menguji beberapa menu prioritas sebelum menerapkan fitur ke seluruh outlet.
☐ Setiap menu aktif memiliki SKU dan recipe/BOM yang benar serta versi yang berlaku.
☐ Takaran per porsi sudah diverifikasi oleh tim dapur dan pemilik data master.
☐ Unit pembelian, gudang, resep, kemasan, dan yield sudah memiliki aturan konversi.
☐ Semua modifier, add-on, variasi porsi, dan substitusi bahan sudah dipetakan.
☐ Produk setengah jadi memakai alur produksi atau BOM langsung yang tidak menggandakan pengurangan.
☐ Titik pemicu stok dikurangi ditetapkan dan diuji untuk transaksi selesai maupun tertunda.
☐ Aturan void, pembatalan, dan refund dibedakan sebelum dan sesudah produksi.
☐ Waste, transfer, penerimaan, serta penyesuaian manual dicatat sebagai pergerakan tersendiri.
☐ ID pesanan, outlet, SKU, versi BOM, kuantitas, dan waktu tersedia untuk penelusuran.
☐ Transaksi offline, sinkronisasi ulang, dan kesalahan pemrosesan tidak menyebabkan stok hilang atau terpotong dua kali.
☐ Pengujian transaksi dibandingkan dengan hasil hitung fisik sebelum fitur digunakan penuh.
Baca juga: Panduan Inventory Control Bisnis Kuliner: Pengertian, Fungsi, dan Cara Kerjanya
FAQ Seputar Stok Otomatis Berdasarkan Menu Terjual
1. Apakah semua penjualan otomatis mengurangi bahan baku?
Bisa jika menu, resep, dan aturan pemicu stok sudah dikonfigurasi. Tanpa pemetaan bahan yang tepat, transaksi tercatat tetapi pengurangan stok tetap bisa keliru.
2. Bagaimana stok dihitung ketika pelanggan menambah topping?
Sistem perlu membaca modifier dan mengurangi takaran bahan tambahan selain komponen menu dasar. Untuk substitusi, takaran bahan pengganti juga harus diatur.
3. Apakah refund selalu mengembalikan persediaan?
Tidak. Jika makanan sudah dibuat, bahan tetap terpakai walaupun dana dikembalikan. Pembalikan stok hanya dilakukan sesuai kondisi produksi dan SOP.
4. Apa bedanya stok teoritis dan stok fisik?
Stok teoritis berasal dari catatan pembelian, penggunaan, dan pergerakan stok. Stok fisik berasal dari penghitungan aktual. Selisih perlu ditelusuri sebelum disesuaikan.
5. Apakah fitur stok otomatis menggantikan stock opname?
Tidak. Stock opname tetap diperlukan untuk menguji akurasi catatan sistem dan menemukan penggunaan bahan di luar transaksi yang belum dicatat.
Kesimpulan
Fitur stok otomatis yang dapat diandalkan tidak berhenti pada hubungan menu dan stok. Restoran perlu memastikan POS, SKU, versi recipe/BOM, unit bahan, modifier, produk setengah jadi, serta jurnal inventory mengikuti alur yang sama. Kelemahan satu komponen saja dapat membuat stok teoritis berbeda dari kondisi sebenarnya.
Mulailah dengan menguji transaksi contoh, memeriksa riwayat penggunaan bahan, dan membandingkannya dengan hitungan fisik. Ketika jumlah menu dan cabang bertambah, restoran membutuhkan pencatatan terpusat yang dapat menelusuri transaksi sampai ke bahan yang dikurangi, bukan sekadar angka stok akhir.
ESB Core mendukung pengelolaan inventory, resep bertingkat (multi-level BOM), proses produksi, serta jurnal penyesuaian stok. Pengaturan data master dan alur kerja tetap perlu disesuaikan dengan operasional restoran agar manfaat integrasi dapat digunakan secara optimal.
