{"id":163402,"date":"2025-06-12T15:43:55","date_gmt":"2025-06-12T08:43:55","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=163402"},"modified":"2025-12-11T10:17:33","modified_gmt":"2025-12-11T03:17:33","slug":"inventory-restoran","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/","title":{"rendered":"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien"},"content":{"rendered":"<p>Inventory restoran adalah sistem pengelolaan bahan baku yang memastikan setiap kebutuhan dapur terpenuhi dengan efisien. Pengelolaan yang tepat tidak hanya menjaga kualitas makanan, tetapi juga meningkatkan efisiensi operasional dan kepuasan pelanggan.<\/p>\n<p><span style=\"font-weight: 400;\">Sayangnya, masih banyak restoran yang mengalami kerugian akibat bahan baku kedaluwarsa, kelebihan stok, atau kehilangan barang karena kurangnya kontrol. Tanpa strategi yang tepat dan pencatatan yang rapi, pengeluaran bisa membengkak tanpa disadari.<\/span><\/p>\n<p>Itulah mengapa penerapan <a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software\">sistem manajemen inventory<\/a> penting untuk menjaga stabilitas operasional restoran. Sistem ini membantu otomatisasi stok dan menyediakan <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis<\/a> untuk memudahkan pemahaman. Artikel ini akan membahas berbagai strategi pengelolaan inventory yang bisa langsung diterapkan.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li aria-level=\"1\"><a href=\"#a\">Inventory restoran<\/a> adalah proses pengelolaan dan pengawasan terhadap seluruh bahan baku dan perlengkapan yang digunakan dalam operasional restoran.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Inventory yang tertata rapi <a href=\"#b\">membantu<\/a> mencegah pemborosan, menjaga kelancaran operasional, dan mendukung pengambilan keputusan yang lebih akurat.<\/li>\n<li aria-level=\"1\">Pengelolaan <a href=\"#c\">inventory restoran yang efektif memerlukan<\/a> strategi terstruktur, pelatihan staf, dan pemanfaatan sistem digital untuk mencegah pemborosan dan menjaga kelancaran operasional.<\/li>\n<li aria-level=\"1\">Optimalkan pengelolaan stok dan kurangi pemborosan bahan baku dengan HashMicro <a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software\">Sistem Manajemen Inventory Restoran<\/a>.<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><span data-sheets-root=\"1\"><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\"><div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tDaftar Isi:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Daftar Isi<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Fungsi untuk menangani klik pada semua elemen <a> dengan href yang dimulai dengan #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua elemen <a> di toc-list dan list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\n\/\/ document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/   const toc = document.querySelector('#toc');\r\n\/\/   const footer = document.querySelector('.td-footer-template-wrap');\r\n\/\/   const tocParent = toc.parentElement;\r\n\/\/   const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n\/\/   const tocHeight = toc.offsetHeight;\r\n\/\/   const triggerPoint = divTop + tocHeight + 700;\r\n\/\/   const footerHeight = footer.offsetHeight;\r\n\/\/   const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n\/\/   const phtoc = document.querySelector('#placeholder-toc');\r\n\/\/   const headers = document.querySelectorAll('.td-post-content h2');\r\n\/\/   const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\/\/ \tconst panel2 = document.querySelector(\"#toc .list\");\r\n\/\/ \tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n\/\/   let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n\/\/   \/\/ Function to handle scroll and add\/remove .sticky class\r\n\/\/   function handleScroll() {\r\n\/\/     const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\/\/     let currentHeader = '';\r\n\r\n\/\/     \/\/ Highlight user progress as the heading comes\r\n\/\/     headers.forEach(header => {\r\n\/\/ \t\tconst headerTop = header.offsetTop;\r\n\/\/ \t\tconst headerHeight = header.clientHeight;\r\n\/\/ \/\/ \t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \/\/ \t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \/\/ \t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\/\/ \/\/ \t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \/\/ \t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\/\/ \/\/ \t\t\tif(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t\ttocTitle.textContent = 'Daftar Isi';\r\n\/\/ \/\/ \t\t\t}\r\n\/\/ \/\/ \t\t}\r\n\/\/ \t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\ttocTitle.textContent = 'Daftar Isi'; \/\/ Selalu pertahankan judul ini di mobile\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \t\t\t\tcurrentHeader = currentHeaderId;\r\n\/\/ \t\t\t}\r\n\/\/ \t\t}\r\n\/\/ \t});\r\n\r\n\/\/     navLinks.forEach(link => {\r\n\/\/       link.classList.remove('active');\r\n\/\/       if(currentHeader != '') {\r\n\/\/ \t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\/\/ \t\t\t  link.classList.add('active');\r\n\/\/ \t\t  }\r\n\/\/ \t  }\r\n\/\/     });\r\n\/\/ \/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/ \/\/         toc.style.display = 'block';\r\n\/\/ \/\/ \t}else{\r\n\/\/ \/\/         toc.style.display = 'none';\r\n\/\/ \/\/ \t}\r\n\/\/     \/\/ Update TOC title if sticky\r\n\/\/     if (windowTop > triggerPoint) {\r\n\/\/       if (!toc.classList.contains('sticky')) {\r\n\/\/         phtoc.style.display = \"block\";\r\n\/\/         toc.classList.add('sticky');\r\n\/\/         toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/         toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/         toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\tpanel2.style.height = '0px';\r\n\/\/ \t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t  if(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar Isi'; \/\/ Reset title\r\n\/\/        \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\/\/ \t\t  }\r\n\/\/       }\r\n\/\/       if (currentHeader) {\r\n\/\/ \/\/         console.log(\"activeLink:\", activeLink);\r\n\/\/         if (activeLink) {\r\n\/\/ \/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n\/\/           tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n\/\/         }\r\n\/\/       }\r\n\/\/     } else {\r\n\/\/       toc.classList.remove('sticky');\r\n\/\/       phtoc.style.display = \"none\";\r\n\/\/       toc.style.width = 'unset'; \/\/ Reset to original width\r\n\/\/       toc.style.backgroundColor = \"#FFF\";\r\n\/\/       tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\/\/ \t\ticon.style.transform = \"rotate(180deg)\";\r\n\/\/     }\r\n\/\/   }\r\n\r\n\/\/     \/\/ Attach the scroll event listener to the window\r\n\/\/     window.addEventListener('scroll', handleScroll);\r\n\r\n\/\/     \/\/ Initial call to handleScroll to set the correct state on load\r\n\/\/     handleScroll();\r\n\/\/ });\r\n\t\r\n\/\/ \t\/\/ Open toggle TOC\r\n\/\/ \t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/ \t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\/\/ \t\tvar toc = document.querySelector(\"#toc\");\r\n\/\/ \t\tvar icon = document.querySelector(\".toc-icon\");\r\n\/\/ \t\tconst tocTitle = document.querySelector('#toc-title');\r\n\/\/ \t\tconst tocs = document.querySelector('#toc.sticky');\r\n\/\/  \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\/\/ \t\t  tocHeader.addEventListener(\"click\", function() {\r\n\/\/ \t\t\tvar panel = this.nextElementSibling;\r\n\/\/ \t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\/\/ \t\t\t\tif(window.innerWidth > 768){\r\n\/\/ \t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\/\/ \t\t\t} else {\r\n\/\/ \t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '24px';\r\n\/\/ \t\t\t \tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/ \t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t}\r\n\/\/ \t\t  });\r\n\r\n\/\/ \t\t  \/\/ Close TOC when a link inside it is clicked\r\n\/\/ \t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\/\/ \t\t  tocLinks.forEach(function(link) {\r\n\/\/ \t\t\tlink.addEventListener(\"click\", function() {\r\n\/\/ \t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t});\r\n\/\/ \t\t  });\r\n\/\/ \t\t});\r\n\r\n\/\/ START new JS for ToC improvements\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 1750;\r\n\tconsole.log(triggerPoint)\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight*3;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n  \r\n  const panel2 = document.querySelector(\"#toc .list\");\r\n  const icon = document.querySelector(\".toc-icon\");\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n  let activeLink = null;\r\n  let userClosedTOC = false; \/\/ Flag user menutup TOC\r\n\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Update TOC title sesuai header yang terlihat\r\n    headers.forEach(header => {\r\n      const headerTop = header.offsetTop;\r\n      const headerHeight = header.clientHeight;\r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n      } else {\r\n        if (window.scrollY >= (headerTop - headerHeight + 1750)) {\r\n          const currentHeaderId = header.getAttribute('id');\r\n          const currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n          tocTitle.textContent = currentHeaderText;\r\n          currentHeader = currentHeaderId;\r\n        }\r\n      }\r\n    });\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader && link.getAttribute('href').includes(currentHeader)) {\r\n        link.classList.add('active');\r\n      }\r\n    });\r\n\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`;\r\n        toc.style.backgroundColor = \"#FFF\";\r\n        \/\/ Saat sticky, TOC otomatis tertutup\r\n        panel2.style.height = '0px';\r\n        icon.style.transform = \"rotate(180deg)\";\r\n        userClosedTOC = true; \/\/ Set flag supaya tidak terbuka saat scroll\r\n      }\r\n      \r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n        toc.style.width = '150px';\r\n      }\r\n\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset';\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Daftar isi'; \r\n\r\n      \/\/ Kembalikan panel jika user belum menutup manual\r\n      if(!userClosedTOC) {\r\n        panel2.style.height = panel2.scrollHeight + \"px\";\r\n        icon.style.transform = \"rotate(0deg)\";\r\n      }\r\n    }\r\n  }\r\n\r\n  window.addEventListener('scroll', handleScroll);\r\n  handleScroll();\r\n\r\n  \/\/ Toggle TOC saat user klik\r\n  const tocHeader = document.querySelector(\"#toc .header\");\r\n  tocHeader.addEventListener(\"click\", function() {\r\n    const panel = panel2;\r\n    if (panel.style.height !== '0px') {\r\n      panel.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    } else {\r\n      panel.style.height = panel.scrollHeight + \"px\";\r\n      icon.style.transform = \"rotate(0deg)\";\r\n      userClosedTOC = false;\r\n    }\r\n  });\r\n\r\n  \/\/ Close TOC saat link diklik\r\n  document.querySelectorAll(\"#toc .list a\").forEach(link => {\r\n    link.addEventListener(\"click\", function() {\r\n      panel2.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    });\r\n  });\r\n});\r\n\/\/ END new JS for ToC improvements\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } \r\n\t\t  else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        \/\/ Mengambil semua elemen h2 dan h3\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\t\tfunction newFormatId(text) {\r\n\t\t\t\tif(text.toLowerCase() === \"key takeaways\") {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tconst result = text.toLowerCase()\r\n\t\t\t\t.trim()\r\n\t\t\t\t.replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n\t\t\t\t.replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h2\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h3\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Membuat list HTML dari objek headings\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Gunakan ID yang baru dihasilkan\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Tambahkan isi yang telah didapatkan dari 'list_toc' ke ul dengan id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menambahkan offset posisi scroll\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menangani klik pada tautan judul\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua tautan judul\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t\t\r\n\t});\r\n    <\/script> -->\r\n \r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><br \/>\n<span id=\"a\"><\/span><\/p>\n<h2><strong>Apa itu Inventory Restoran?<\/strong><\/h2>\n<p>Inventory restoran adalah proses pengelolaan dan pengawasan terhadap seluruh bahan baku dan perlengkapan yang digunakan dalam operasional restoran. Tujuannya adalah memastikan setiap kebutuhan dapur tersedia dalam jumlah yang tepat, pada waktu yang tepat, tanpa menyebabkan kelebihan atau kekurangan stok.<\/p>\n<p>Pengelolaan inventory membantu restoran mengontrol biaya, menjaga kualitas hidangan, dan meminimalkan pemborosan. Dengan sistem pencatatan yang teratur serta integrasi <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/sistem-pembelian-restoran\/\">sistem pembelian restoran<\/a>, pemilik dapat memantau penggunaan bahan secara real-time dan mengambil keputusan pembelian yang lebih akurat.<br \/>\n<span id=\"b\"><\/span><\/p>\n<h2><b>Mengapa Inventory Restoran Begitu Penting?<\/b><\/h2>\n<p>Pengelolaan inventory restoran merupakan elemen kunci yang menentukan kelancaran operasional dan kualitas layanan. Mengapa manajemen inventory menjadi sangat penting dalam bisnis restoran?<\/p>\n<h3><strong>1. Pengendalian stok yang optimal<\/strong><\/h3>\n<p>Manajemen inventory membantu restoran menjaga ketersediaan bahan baku pada tingkat ideal, sehingga mengurangi risiko kehabisan bahan dan mencegah penumpukan stok yang berpotensi merugikan.<\/p>\n<h3><strong>2. Meminimalkan food waste<\/strong><\/h3>\n<p>Dengan pemantauan stok yang akurat, restoran dapat mengurangi pemborosan bahan makanan dan minuman. Pengelolaan yang lebih presisi ini berkontribusi langsung pada peningkatan keuntungan.<\/p>\n<h3><strong>3. Meningkatkan kepuasan pelanggan<\/strong><\/h3>\n<p>Inventory yang terkelola dengan baik memastikan menu favorit pelanggan selalu tersedia. Konsistensi ini membantu meningkatkan kepuasan pelanggan dan mendorong loyalitas jangka panjang.<\/p>\n<h3><strong>4. Mendukung keputusan berbasis data<\/strong><\/h3>\n<p>Melalui pencatatan data persediaan secara real-time, restoran memperoleh insight yang lebih baik untuk perencanaan menu, pengadaan bahan, serta strategi operasional harian.<\/p>\n<h2><b>Tips Mengelola Inventory Restoran Anda<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-163406\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda.webp\" alt=\"Tips Mengelola Inventory Restoran Anda\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda.webp 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda-300x169.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda-768x432.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda-747x420.webp 747w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda-150x84.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda-696x392.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Tips-Mengelola-Inventory-Restoran-Anda-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Melihat tingginya peran inventory dalam menjaga stabilitas operasional restoran, pengelolaan yang terstruktur dan sistematis menjadi hal yang tidak dapat diabaikan. Tanpa pendekatan yang tepat, potensi kerugian akibat inefisiensi dan pemborosan akan semakin besar.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Oleh karena itu, penting bagi setiap pelaku bisnis kuliner untuk menerapkan strategi manajemen inventory yang efektif, salah satunya dengan memanfaatkan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/rekomendasi-sistem-manajemen-inventory-di-indonesia-yang-wajib-diketahui\/\"><span style=\"font-weight: 400;\">sistem manajemen inventory<\/span><\/a><span style=\"font-weight: 400;\">. Berikut ini adalah sejumlah tips yang dapat membantu Anda mengoptimalkan pengelolaan persediaan di restoran:<\/span><\/p>\n<h3><strong>1. Lakukan stock opname dan pemantauan secara teratur<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Stock opname adalah proses mencocokkan data stok fisik dengan catatan di sistem. Kegiatan ini harus dilakukan secara berkala untuk mendeteksi selisih atau kehilangan stok sejak dini.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pemantauan rutin juga membantu melihat tren penggunaan bahan baku. Dari sana, restoran bisa mengatur pola pembelian agar tetap sesuai kebutuhan operasional.<\/span><\/p>\n<h3><strong>2. Terapkan sistem rotasi stok dan SOP penanganan bahan baku<\/strong><\/h3>\n<p>Sistem rotasi seperti FIFO (First In, First Out) memastikan staf menggunakan bahan lama terlebih dahulu untuk menjaga kesegaran makanan dan mengurangi risiko kedaluwarsa.<\/p>\n<p>SOP penanganan bahan baku juga berperan penting dalam proses penyimpanan, pencucian, hingga penyiapan. Dengan prosedur yang jelas, tim dapat mempertahankan kualitas bahan dan mengurangi potensi food waste.<\/p>\n<h3><strong>3. Tetapkan standar penerimaan dan kategorisasi bahan baku<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Buat kriteria jelas dalam menerima bahan baku dari pemasok. Periksa kualitas, tanggal kedaluwarsa, dan kemasan untuk memastikan semua sesuai standar restoran Anda.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Setelah diterima, bahan perlu langsung dikategorikan berdasarkan jenis, suhu penyimpanan, dan masa simpan. Ini memudahkan pengelolaan dan mempercepat proses kerja di dapur.<\/span><\/p>\n<h3><strong>4. Standarisasi pengukuran dan pembagian bahan baku<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Penggunaan bahan baku harus konsisten agar rasa makanan tidak berubah dan pengeluaran tetap terkontrol. Standarisasi takaran adalah kunci agar tidak terjadi pemborosan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Setiap resep sebaiknya disertai takaran pasti, baik dalam gram, mililiter, atau unit lainnya. Gunakan alat ukur yang sama dan pastikan staf memahami standar ini.<\/span><\/p>\n<h3><strong>5. Lakukan analisis biaya dan kinerja inventory<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Analisis biaya bahan baku membantu Anda mengetahui item mana yang paling banyak menyumbang pengeluaran. Dengan begitu, Anda bisa melakukan evaluasi harga dan supplier.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kinerja inventory juga perlu dievaluasi: seberapa efisien penggunaan bahan, berapa banyak food waste, dan seberapa sering terjadi selisih stok. Data ini penting untuk pengambilan keputusan.<\/span><\/p>\n<h3><strong>6. Bangun hubungan aktif dengan pemasok<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Komunikasi yang baik dengan pemasok mempermudah negosiasi harga, waktu pengiriman, dan kualitas barang. Hubungan yang sehat juga memperkecil risiko keterlambatan pasokan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Anda juga bisa mendapatkan informasi lebih cepat terkait bahan pengganti saat stok tertentu langka. Beberapa pemasok bahkan bersedia menyediakan sistem pembayaran yang lebih fleksibel.<\/span><\/p>\n<h3><strong>7. Perketat kontrol akses dan penanganan barang rusak atau kedaluwarsa<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Tidak semua staf perlu memiliki akses penuh ke gudang atau sistem inventory. Batasi akses hanya untuk staf tertentu guna mencegah kesalahan atau potensi penyalahgunaan stok.<\/span><\/p>\n<p>Catat dan keluarkan barang rusak atau kedaluwarsa segera setelah menemukan kasus tersebut. Dokumentasi yang baik membantu menjaga akurasi data stok serta memudahkan identifikasi penyebab kerusakan.<\/p>\n<h3><strong>8. Berikan pelatihan kepada staf<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Staf yang paham prosedur inventory akan bekerja lebih efisien dan minim kesalahan. Pelatihan bisa mencakup cara mencatat stok, menyimpan bahan, hingga membaca label kadaluarsa.<\/span><\/p>\n<p>Lakukan pelatihan secara rutin, terutama saat restoran menerapkan sistem baru atau memperbarui SOP. Karyawan yang terlatih memegang peran penting dalam kelancaran pengelolaan inventory restoran.<\/p>\n<h3><strong>9. Manfaatkan sistem manajemen inventory<\/strong><\/h3>\n<p>Sistem manajemen inventory membantu restoran mencatat keluar-masuk bahan secara otomatis dan menyajikan data secara real-time dengan akurasi tinggi, sehingga restoran dapat meminimalkan kesalahan pencatatan manual.<\/p>\n<p>Melalui solusi digital seperti sistem manajemen inventory restoran, pemilik bisnis dapat memantau stok minimum, melacak penggunaan bahan, serta mengatur pengingat restock dengan lebih efisien. Fitur-fitur tersebut membantu meningkatkan produktivitas dan menjaga kontrol penuh atas persediaan.<\/p>\n<p>Berikut rangkuman singkat dalam bentuk tabel untuk membantu Anda memahami setiap tips pengelolaan inventory restoran secara lebih jelas dan terstruktur:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"width: 10%; background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>No<\/b><\/td>\n<td style=\"width: 40%; background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>Tips<\/b><\/td>\n<td style=\"width: 50%; background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>Penjelasan<\/b><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">1<\/td>\n<td>Lakukan stock opname dan pemantauan secara teratur<\/td>\n<td>Cocokkan stok fisik dengan catatan sistem untuk mendeteksi selisih dan memantau penggunaan bahan.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">2<\/td>\n<td>Terapkan sistem rotasi stok dan SOP penanganan bahan baku<\/td>\n<td>Gunakan sistem FIFO dan SOP penyimpanan untuk menjaga kualitas serta mengurangi food waste.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">3<\/td>\n<td>Tetapkan standar penerimaan dan kategorisasi bahan baku<\/td>\n<td>Tentukan kriteria penerimaan dan kelompokkan bahan sesuai jenis serta masa simpan.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">4<\/td>\n<td>Standarisasi pengukuran dan pembagian bahan baku<\/td>\n<td>Gunakan takaran dan alat ukur yang konsisten agar rasa stabil dan stok efisien.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">5<\/td>\n<td>Lakukan analisis biaya dan kinerja inventory<\/td>\n<td>Tinjau biaya bahan dan efisiensi penggunaan untuk evaluasi strategi dan supplier.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">6<\/td>\n<td>Bangun hubungan aktif dengan pemasok<\/td>\n<td>Jalin komunikasi baik untuk kelancaran pengiriman dan ketersediaan stok.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">7<\/td>\n<td>Perketat kontrol akses dan penanganan barang rusak atau kedaluwarsa<\/td>\n<td>Batasi akses gudang dan catat barang rusak agar data tetap akurat.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">8<\/td>\n<td>Berikan pelatihan kepada staf<\/td>\n<td>Latih staf secara rutin agar paham prosedur dan penggunaan sistem inventory.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">9<\/td>\n<td>Manfaatkan sistem manajemen inventory<\/td>\n<td>Gunakan sistem digital untuk otomatisasi stok dan pemantauan real-time.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b>Kelola Inventory Restoran dengan Lebih Efisien Bersama HashMicro<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-163408\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/fnb-hashmicro.webp\" alt=\"FNB HashMicro\" width=\"894\" height=\"600\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/fnb-hashmicro.webp 894w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/fnb-hashmicro-300x201.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/fnb-hashmicro-768x515.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/fnb-hashmicro-626x420.webp 626w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/fnb-hashmicro-150x101.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/fnb-hashmicro-696x467.webp 696w\" sizes=\"auto, (max-width: 894px) 100vw, 894px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Dalam industri F&amp;B yang bergerak cepat, efisiensi dan ketepatan dalam pengelolaan inventory menjadi kunci utama. <\/span>Lebih dari 2.000 perusahaan berskala enterprise di Asia Tenggara telah mempercayai HashMicro sebagai solusi sistem manajemen terintegrasi untuk mendukung operasional bisnis mereka.<\/p>\n<p><span style=\"font-weight: 400;\">Melalui fitur pengelolaan inventory yang lengkap, <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software\"><span style=\"font-weight: 400;\">Sistem Manajemen Inventory Restoran<\/span><\/a><span style=\"font-weight: 400;\"> memungkinkan pemantauan stok bahan baku secara real-time, pencatatan pemakaian bahan, serta pengaturan stok minimum dan notifikasi restock. Hal ini mendukung penerapan rotasi stok, SOP penanganan bahan baku, hingga analisis efisiensi biaya.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Anda dapat menyesuaikan fitur-fitur dalam aplikasi F&amp;B HashMicro sesuai dengan kebutuhan bisnis dan vendor yang Anda gunakan. Namun secara umum, sistem ini menyediakan fitur penting yang sangat relevan untuk mendukung kontrol stok bahan baku restoran Anda, seperti:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pengelolaan inventori: <\/b><span style=\"font-weight: 400;\">Mencatat keluar-masuk bahan secara otomatis, memantau stok minimum, dan mengatur pengingat restock.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pengelolaan pesanan pelanggan: <\/b><span style=\"font-weight: 400;\">Integrasi dengan pesanan pelanggan membuat data pemakaian bahan langsung tercatat dan stok ter-update real-time.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Laporan keuangan: <\/b><span style=\"font-weight: 400;\">Membantu menghitung biaya bahan baku dengan akurat dan menampilkan laporan pengeluaran untuk analisis efisiensi.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pengelolaan staf: <\/b><span style=\"font-weight: 400;\">Mengatur akses pengguna dan mencatat aktivitas staf dalam pengelolaan inventory untuk mencegah kesalahan atau penyalahgunaan.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Ingin mulai menerapkan sistem manajemen inventory yang akurat dan efisien? Jadwalkan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/?medium=web-form-header\"><span style=\"font-weight: 400;\">demo gratis<\/span><\/a><span style=\"font-weight: 400;\"> dan temukan bagaimana solusi ini dapat mengoptimalkan bisnis restoran Anda secara menyeluruh.<\/span><\/p>\n<div style=\"border: 1px solid #ddd; border-radius: 8px; overflow: hidden; margin: 30px 0; box-shadow: 0 4px 12px rgba(0,0,0,0.12);\">\n<div style=\"background-color: #990000; color: #fff; padding: 14px 20px; font-size: 18px; font-weight: bold; letter-spacing: 0.5px;\">Expert&#8217;s Review<\/div>\n<div style=\"background-color: #fff; padding: 25px; font-size: 16px; line-height: 1.7; position: relative;\">\n<div style=\"font-size: 40px; color: #990000; font-weight: bold; line-height: 0; position: absolute; top: 15px; left: 20px;\">\u201c<\/div>\n<p style=\"margin: 0 0 15px 40px; font-style: italic; color: #333;\">Sistem HashMicro menciptakan alur operasional yang efisien dan transparan. Banyak restoran kini mengelola bahan baku dengan lebih presisi, sehingga biaya operasional dan kualitas layanan terjaga.<\/p>\n<p style=\"margin: 0 0 0 40px; font-weight: bold; color: #444;\">\u2014 Anandia Denisha, Regional Manager<\/p>\n<\/div>\n<\/div>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p>Manajemen inventory restoran memiliki peran penting dalam memastikan setiap bahan baku tercatat dengan rapi agar operasional berjalan lancar, mencegah pemborosan, dan kualitas sajian tetap konsisten. Dengan strategi yang tepat, restoran dapat meningkatkan efisiensi sekaligus menjaga profitabilitas secara berkelanjutan.<\/p>\n<p><span style=\"font-weight: 400;\">Untuk membantu proses tersebut, <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software\"><span style=\"font-weight: 400;\">Sistem Manajemen Inventory Restoran<\/span><\/a><span style=\"font-weight: 400;\"> dapat menjadi solusi yang efektif. Sistem ini mendukung pengelolaan bahan baku secara akurat dan efisien. Sistem ini memenuhi kebutuhan bisnis kuliner yang dinamis dan memerlukan visibilitas real-time.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jangan biarkan pengelolaan inventory menghambat pertumbuhan bisnis Anda. Coba <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/?medium=web-form-header\"><span style=\"font-weight: 400;\">demo gratis<\/span><\/a><span style=\"font-weight: 400;\"> dan temukan bagaimana HashMicro dapat menyederhanakan operasional restoran Anda secara menyeluruh.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/51-FNB-Technology-Desktop.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/51-FNB-Technology-Desktop.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/51-FNB-Technology-Mobile.webp\" alt=\"HashFBTechnology\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2><strong>Pertanyaan Seputar Inventory Restoran<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa itu inventory restoran?<\/strong><\/summary>\n<p>Inventory restoran adalah seluruh persediaan bahan baku, minuman, dan perlengkapan yang mendukung operasional dapur serta pelayanan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Mengapa pengelolaan inventory penting bagi restoran?<\/strong><\/summary>\n<p>Manajemen inventory yang baik membantu mencegah pemborosan, menjaga kualitas sajian, dan memastikan operasional berjalan lancar.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Seberapa sering sebaiknya restoran melakukan stock opname?<\/strong><\/summary>\n<p>Restoran sebaiknya melakukan pengecekan inventory secara rutin, minimal seminggu sekali atau sesuai dengan volume aktivitasnya.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah restoran kecil perlu menggunakan software inventory?<\/strong><\/summary>\n<p>Ya, software inventory membantu mencatat stok secara akurat dan efisien, bahkan untuk restoran kecil yang ingin tumbuh lebih profesional.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Apa itu inventory restoran?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Inventory restoran adalah seluruh persediaan bahan baku, minuman, dan perlengkapan yang mendukung operasional dapur serta pelayanan.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Mengapa pengelolaan inventory penting bagi restoran?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Manajemen inventory yang baik membantu mencegah pemborosan, menjaga kualitas sajian, dan memastikan operasional berjalan lancar.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Seberapa sering sebaiknya restoran melakukan stock opname?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Restoran sebaiknya melakukan pengecekan inventory secara rutin, minimal seminggu sekali atau sesuai dengan volume aktivitasnya.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah restoran kecil perlu menggunakan software inventory?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Ya, software inventory membantu mencatat stok secara akurat dan efisien, bahkan untuk restoran kecil yang ingin tumbuh lebih profesional.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inventory restoran adalah sistem pengelolaan bahan baku yang memastikan setiap kebutuhan dapur terpenuhi dengan efisien. Pengelolaan yang tepat tidak hanya menjaga kualitas makanan, tetapi juga meningkatkan efisiensi operasional dan kepuasan pelanggan. Sayangnya, masih banyak restoran yang mengalami kerugian akibat bahan baku kedaluwarsa, kelebihan stok, atau kehilangan barang karena kurangnya kontrol. Tanpa strategi yang tepat dan [&hellip;]<\/p>\n","protected":false},"author":160,"featured_media":163409,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4686],"tags":[],"class_list":{"0":"post-163402","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-fb-industry"},"acf":{"post_reviewer":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.1 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien<\/title>\n<meta name=\"description\" content=\"Pelajari tips manajemen inventory restoran yang efektif untuk cegah pemborosan, jaga kualitas bahan baku, dan tingkatkan efisiensi.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien\" \/>\n<meta property=\"og:description\" content=\"Pelajari tips manajemen inventory restoran yang efektif untuk cegah pemborosan, jaga kualitas bahan baku, dan tingkatkan efisiensi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Indonesia\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hashmicro\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-12T08:43:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-11T03:17:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Inventory-Restoran.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jessica Wijaya\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jessica Wijaya\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/\"},\"author\":{\"name\":\"Jessica Wijaya\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/4d83ca1a7056c0a44f813f8721086980\"},\"headline\":\"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien\",\"datePublished\":\"2025-06-12T08:43:55+00:00\",\"dateModified\":\"2025-12-11T03:17:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/\"},\"wordCount\":1594,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Inventory-Restoran.webp\",\"articleSection\":[\"F&amp;B Technology\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/\",\"name\":\"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Inventory-Restoran.webp\",\"datePublished\":\"2025-06-12T08:43:55+00:00\",\"dateModified\":\"2025-12-11T03:17:33+00:00\",\"description\":\"Pelajari tips manajemen inventory restoran yang efektif untuk cegah pemborosan, jaga kualitas bahan baku, dan tingkatkan efisiensi.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Inventory-Restoran.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Inventory-Restoran.webp\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/inventory-restoran\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"name\":\"HashMicro Indonesia\",\"description\":\"Blog Software Manajemen Bisnis Indonesia #1\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\",\"name\":\"HashMicro Indonesia\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"width\":924,\"height\":121,\"caption\":\"HashMicro Indonesia\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hashmicro\",\"https:\\\/\\\/x.com\\\/hashmicro\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/4d83ca1a7056c0a44f813f8721086980\",\"name\":\"Jessica Wijaya\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"caption\":\"Jessica Wijaya\"},\"description\":\"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"Inventory\",\"inventory management\",\"manajemen inventaris\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/jessicawijaya\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien","description":"Pelajari tips manajemen inventory restoran yang efektif untuk cegah pemborosan, jaga kualitas bahan baku, dan tingkatkan efisiensi.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/","og_locale":"id_ID","og_type":"article","og_title":"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien","og_description":"Pelajari tips manajemen inventory restoran yang efektif untuk cegah pemborosan, jaga kualitas bahan baku, dan tingkatkan efisiensi.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-06-12T08:43:55+00:00","article_modified_time":"2025-12-11T03:17:33+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Inventory-Restoran.webp","type":"image\/webp"}],"author":"Jessica Wijaya","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Jessica Wijaya","Estimasi waktu membaca":"10 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/"},"author":{"name":"Jessica Wijaya","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980"},"headline":"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien","datePublished":"2025-06-12T08:43:55+00:00","dateModified":"2025-12-11T03:17:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/"},"wordCount":1594,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Inventory-Restoran.webp","articleSection":["F&amp;B Technology"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/","name":"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Inventory-Restoran.webp","datePublished":"2025-06-12T08:43:55+00:00","dateModified":"2025-12-11T03:17:33+00:00","description":"Pelajari tips manajemen inventory restoran yang efektif untuk cegah pemborosan, jaga kualitas bahan baku, dan tingkatkan efisiensi.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Inventory-Restoran.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Inventory-Restoran.webp","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/inventory-restoran\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"9 Tips Mengelola Inventory Restoran agar Bisnis Lebih Efisien"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website","url":"https:\/\/www.hashmicro.com\/id\/blog\/","name":"HashMicro Indonesia","description":"Blog Software Manajemen Bisnis Indonesia #1","publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization","name":"HashMicro Indonesia","url":"https:\/\/www.hashmicro.com\/id\/blog\/","logo":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","width":924,"height":121,"caption":"HashMicro Indonesia"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hashmicro","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980","name":"Jessica Wijaya","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","caption":"Jessica Wijaya"},"description":"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["Inventory","inventory management","manajemen inventaris"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/jessicawijaya\/"}]}},"focus_keyword":"inventory restoran","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/163402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/users\/160"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=163402"}],"version-history":[{"count":5,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/163402\/revisions"}],"predecessor-version":[{"id":180315,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/163402\/revisions\/180315"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/163409"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=163402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=163402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=163402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}