{"id":179263,"date":"2025-12-08T09:54:02","date_gmt":"2025-12-08T02:54:02","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=179263"},"modified":"2026-04-20T17:16:00","modified_gmt":"2026-04-20T10:16:00","slug":"stock-on-hand","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/","title":{"rendered":"Strategi Kelola Stock On Hand &#038; Rumus Akuratnya"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Pernahkah Anda kesulitan mencari stok di gudang, padahal tim <\/span><i><span style=\"font-weight: 400;\">sales<\/span><\/i><span style=\"font-weight: 400;\"> sudah mengonfirmasi barang tersebut siap kirim? Masalah &#8220;stok gaib&#8221; seperti ini biasanya berasal dari data <\/span><i><span style=\"font-weight: 400;\">stock on hand<\/span><\/i><span style=\"font-weight: 400;\"> yang tidak akurat.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Padahal, data SOH yang akurat menjaga kesehatan finansial bisnis dan mencegah penumpukan stok. Data yang meleset seringkali menjadi penyebab hilangnya peluang penjualan. <\/span><a href=\"https:\/\/www.alixpartners.com\/insights\/102jn2w\/retail-viewpoint-unveiling-the-2024-consumer-sentiment-indexidentifying-the-big\/\"><span style=\"font-weight: 400;\">Survei AlixPartners<\/span><\/a><span style=\"font-weight: 400;\"> menemukan bahwa 66% dari responden akan pindah ke <\/span><i><span style=\"font-weight: 400;\">retailer<\/span><\/i><span style=\"font-weight: 400;\"> lain jika barang yang mereka inginkan tidak tersedia. Oleh karena itu, Anda harus mencatat data dengan disiplin dan menghitung<\/span><i><span style=\"font-weight: 400;\"> Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> dengan benar. <\/span><\/p>\n<style>\r\n\t.takeaways-container {\r\n\t\tmargin: 20px 0;\r\n\t\tfont-family: sans-serif;\r\n\t}\r\n\t.box-content {\r\n\t\tbackground-color: #fffacd;\r\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n\t\tborder-radius: 25px;\r\n\t\tpadding: 25px;\r\n\t}\r\n\t.title {\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.title p {\r\n\t\tdisplay: inline-block;\r\n\t\tbackground-color: #8A0E19;\r\n\t\tcolor: #ffffff;\r\n\t\tpadding: 8px 15px;\r\n\t\tborder-radius: 8px;\r\n\t\tfont-size: 22px;\r\n\t\tfont-weight: bold;\r\n\t\tmargin: 0;\r\n\t}\r\n\t.item {\r\n\t\tdisplay: flex;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\t.item .circle {\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tbackground-color: #000000;\r\n\t\tborder-radius: 50%;\r\n\t\tmargin-right: 12px;\r\n\t\tflex-shrink: 0;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\t.item p {\r\n\t\tmargin: 0;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1.6;\r\n\t}\r\n\t.item p a {\r\n\t\tcolor: #8A0E19;\r\n\t\tfont-weight: normal;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.item p a:hover {\r\n\t\ttext-decoration: underline;\r\n\t}\r\n\t.button-wrapper {\r\n\t\tmargin-top: 25px;\r\n\t}\r\n\t.submit-button {\r\n\t\tbackground-color: #8a0e19;\r\n\t\tcolor: #fff !important;\r\n\t\ttransition: all .3s ease;\r\n\t\tpadding: 12px 28px;\r\n\t\tdisplay: inline-block;\r\n\t\tborder-radius: 12px;\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: bold;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.submit-button:hover {\r\n\t\tbackground-color: #991b26;\r\n\t}\r\n\t@media (max-width: 767px) {\r\n\t\t.takeaways-container {\r\n\t\t\theight: auto;\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t\t.box-content {\r\n\t\t\tpadding: 24px;\r\n\t\t}\r\n\t\t.content,\r\n\t\t.main-content,\r\n\t\t.list-item {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<div class=\"takeaways-container\">\r\n\t<div class=\"box-content\">\r\n\t\t<div class=\"content\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t<p>Key Takeaways<\/p>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"main-content\">\r\n\t\t\t\t<div class=\"list-item\">\r\n\t\t\t\t\t<div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#definisi-stock-on-hand\">Stock on Hand<\/a> adalah jumlah produk yang ada secara fisik di gudang Anda.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#manfaat-soh-dalam-mengelola-barang\">SOH bermanfaat untuk<\/a> mengatasi stockout dan overstock, meningkatkan pengelolaan stok barang, membuat perusahaan lebih adaptif, meningkatkan kepuasan pelanggan, dan mengontrol anggaran perusahaan.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p>Gunakan software manajemen dan alat tracking untuk <a href=\"http:\/\/strategi-mengelola-stock-on-hand\">memudahkan pengelolaan SOH<\/a>. Anda juga bisa meningkatkan pengelolaan dengan menetapkan reorder point dan melakukan audit secara berkala.<\/p><\/div>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n<!-- \t\t\t<div class=\"button-wrapper\">\r\n\t\t\t\t<a href=\"https:\/\/www.equiperp.com\/tour-produk-gratis\/?medium=key-takeaways\" class=\"submit-button\">Klik untuk Demo Gratis!<\/a>\r\n\t\t\t<\/div> -->\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\n<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\n<h2><b>Definisi Stock on Hand<\/b><\/h2>\n<p><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> (SOH) adalah total <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/stok-barang\/\"><span style=\"font-weight: 400;\">produk yang ada<\/span><\/a><span style=\"font-weight: 400;\"> secara fisik di gudang perusahaan Anda. <\/span><span style=\"font-weight: 400;\">Ini mencakup persediaan yang siap untuk dijual dan persediaan yang dialokasikan untuk reservasi atau transfer antar gudang.<\/span><span style=\"font-weight: 400;\"> Seperti persediaan pada umumnya, tren permintaan dan kondisi <\/span><i><span style=\"font-weight: 400;\">supply chain<\/span><\/i><span style=\"font-weight: 400;\"> memengaruhi jumlah SOH dalam sebuah perusahaan. Selain itu, <\/span><i><span style=\"font-weight: 400;\">lead time<\/span><\/i><span style=\"font-weight: 400;\"> pemasok dan jenis produknya sendiri juga berpengaruh.<\/span><\/p>\n<h2><b>Manfaat SOH dalam Mengelola Barang<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">SOH memiliki beberapa manfaat dalam mengelola persediaan perusahaan, yaitu:<\/span><\/p>\n<h3><b>1. Mengatasi Stockout dan Overstock<\/b><\/h3>\n<p><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> memastikan jumlah aset tidak melebihi kapasitas gudang atau kurang dari permintaan. Hal ini mencegah penumpukan barang, yang membuang biaya dan meningkatkan risiko kerusakan. SOH juga mencegah kerugian akibat <\/span><i><span style=\"font-weight: 400;\">stockout<\/span><\/i><span style=\"font-weight: 400;\">. Pada dasarnya, Anda menjaga dan mengoptimalkan ketersediaan produk.\u00a0\u00a0<\/span><\/p>\n<h3><b>2. Meningkatkan pengelolaan stok barang<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Tanpa memantau produk di gudang Anda, manajemen Anda akan tidak efektif. Anda hanya akan meningkatkan risiko <\/span><i><span style=\"font-weight: 400;\">stockout<\/span><\/i><span style=\"font-weight: 400;\"> dan persediaan yang usang. Agar ini tidak terjadi, Anda perlu mengelola inventaris sambil mempertimbangkan <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<h3><b>3. Membuat perusahaan lebih adaptif<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Dengan menyimpan <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\">, bisnis Anda dapat beradaptasi dengan perubahan eksternal. Ketika pengiriman tertunda atau pemasok Anda mengalami masalah, Anda masih dapat memproses pesanan dengan SOH. Hal ini juga berlaku untuk permintaan musiman dan perubahan pasar. Anda tidak perlu memesan barang dalam waktu singkat, yang cenderung lebih mahal dari biasanya.\u00a0<\/span><\/p>\n<h3><b>4. Meningkatkan customer satisfaction<\/b><\/h3>\n<p><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> memastikan pesanan pelanggan Anda terpenuhi. Anda dapat mempercepat <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/ketahui-proses-fulfillment\/\"><span style=\"font-weight: 400;\">proses <\/span><i><span style=\"font-weight: 400;\">order fulfillment<\/span><\/i><\/a><span style=\"font-weight: 400;\"> produk Anda. SOH mengurangi <\/span><i><span style=\"font-weight: 400;\">lead time<\/span><\/i><span style=\"font-weight: 400;\">, sehingga mengefisiensikan proses pemrosesan pesanan pelanggan Anda. Melalui ini, <\/span><i><span style=\"font-weight: 400;\">customer satisfaction<\/span><\/i><span style=\"font-weight: 400;\"> dan reputasi bisnis Anda akan meningkat.\u00a0<\/span><\/p>\n<h3><b>5. Mengontrol anggaran bisnis<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">SOH berguna dalam mengendalikan biaya perusahaan. Dengan memantau stok barang yang tersedia, Anda dapat mencegah pemesanan mendadak. Secara menyeluruh, ini menekan pengeluaran terkait penyimpanan barang dan mengoptimalkan penggunaan <\/span><i><span style=\"font-weight: 400;\">budget<\/span><\/i><span style=\"font-weight: 400;\"> perusahaan. <\/span><\/p>\n<h2><b>Cara Hitung Stock on Hand di Lapangan<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-192582 aligncenter\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand.webp\" alt=\"Rumus-stock-on-hand\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand-300x200.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand-768x512.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand-630x420.webp 630w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand-150x100.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand-696x464.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Rumus-Stock-on-Hand-1068x712.webp 1068w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Waktu Anda ingin menghitung jumlah stok fisik di gudang, Anda menggunakan rumus:<\/span><\/p>\n<div style=\"background: linear-gradient(135deg,#fff 0%,#fbeaea 100%); border-left: 6px solid #990000; border-radius: 10px; padding: 20px; margin: 24px 0; text-align: center; box-shadow: 0 6px 14px rgba(0,0,0,.08);\"><span style=\"color: #7a0000; font-family: Nunito Sans, Segoe UI, Arial, sans-serif;\"><span style=\"font-size: 20px;\"><b>stock on hand = stok awal + stok masuk &#8211; stok keluar<\/b><\/span><\/span><\/div>\n<p><span style=\"font-weight: 400;\">Namun, dalam praktiknya, Anda perlu melakukan beberapa hal terlebih dahulu. Anda tidak bisa begitu saja masuk ke dalam gudang, melainkan Anda harus:<\/span><\/p>\n<h3><b>1. Tentukan waktu cut-off<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Sebelum Anda mulai, hentikan semua aktivitas keluar-masuk barang. <\/span><span style=\"font-weight: 400;\">Pastikan tidak ada surat jalan yang belum di-input dan barang di area pengemasan.<\/span><span style=\"font-weight: 400;\"> Hasil Anda tidak akurat jika gudang masih beroperasi selama proses perhitungan.<\/span><\/p>\n<h3><b>2. Cek ulang data<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Periksa kembali catatan inventaris Anda. Identifikasi dan buang barang yang rusak atau kedaluwarsa. Bandingkan jumlah produk fisik dengan jumlah produk yang tercatat dalam sistem. Jangan ada satu pun komponen dalam <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> yang tidak akurat.\u00a0<\/span><\/p>\n<p><b>Catatan<\/b><span style=\"font-weight: 400;\">: Tim Anda sebaiknya menggunakan metode <\/span><i><span style=\"font-weight: 400;\">blind count<\/span><\/i><span style=\"font-weight: 400;\"> untuk menghitung jumlah stok di gudang. Jadi, mereka akan menulis angka sebenarnya.\u00a0<\/span><\/p>\n<h3><b>3. Rekonsiliasi dan investigasi<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Jika Anda menemukan perbedaan antara angka fisik dan data sistem, selidiki penyebabnya di 3 titik ini:<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Log transaksi terakhir<\/b><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">Apakah ada barang yang belum di-<\/span><i><span style=\"font-weight: 400;\">scan<\/span><\/i><span style=\"font-weight: 400;\">?<\/span><\/li>\n<li aria-level=\"1\"><b>Area transit<\/b><span style=\"font-weight: 400;\">: Apakah ada barang yang masih berada di area <\/span><i><span style=\"font-weight: 400;\">packing<\/span><\/i><span style=\"font-weight: 400;\">?<\/span><\/li>\n<li aria-level=\"1\"><b>Double input<\/b><span style=\"font-weight: 400;\">: Apakah admin secara tidak sengaja menginput surat jalan dua kali?<\/span><b><\/b><b><\/b><\/li>\n<\/ul>\n<h3><b>4. Update data<\/b><\/h3>\n<p><b><\/b><span style=\"font-weight: 400;\">Setelah Anda menemukan alasan mengapa <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/inventory-discrepancy\/\"><span style=\"font-weight: 400;\">angka fisik berbeda dari data sistem<\/span><\/a><span style=\"font-weight: 400;\">, perbaikilah. Angka-angka inilah yang menjadi stok masuk dan keluar untuk periode ini, serta stok awal periode berikutnya.<\/span><\/p>\n<h2><b>Contoh Stock on Hand<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Sebagai contoh, bayangkan Anda sedang menghitung SOH kuartal pertama untuk PT XYZ. Mereka memulai periode dengan 630 unit. Sepanjang kuartal tersebut, mereka menerima 412 unit dan menjual 342 unit. Dengan data ini, mereka memasukkannya ke dalam rumus <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p><b>SOH = stok awal + masuk &#8211; keluar<\/b><\/p>\n<p><span style=\"font-weight: 400;\">SOH = 630 unit + 412 unit &#8211; 342 unit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">SOH = 700 unit<\/span><\/p>\n<h2><b>Status Stock yang Wajib Dipisah<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Banyak audit <\/span><i><span style=\"font-weight: 400;\">warehouse<\/span><\/i><span style=\"font-weight: 400;\"> yang gagal karena status barang yang campur-aduk. <\/span><span style=\"font-weight: 400;\">Secara fisik, barang ada di depan mata, tetapi mereka ternyata tidak tersedia untuk dijual<\/span><span style=\"font-weight: 400;\">. Karena itu, menjaga akurasi, Anda wajib membagi stok ke dalam kategori berikut:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Available Stock<\/b><span style=\"font-weight: 400;\">: Stok &#8220;bersih&#8221; yang sudah melewati tim QC dan tidak terikat dengan pesanan apa pun. <\/span><span style=\"font-weight: 400;\">Hanya stok ini yang boleh ditawarkan atau dipajang di marketplace oleh tim sales.<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Reserved Stock<\/b><span style=\"font-weight: 400;\">: Barang yang ada di rak, tetapi sudah ada <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-purchase-order\/\"><span style=\"font-weight: 400;\">pemilik yang PO<\/span><\/a><span style=\"font-weight: 400;\"> atau bayar.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Quarantine Stock<\/b><span style=\"font-weight: 400;\">: Barang yang baru masuk dari <\/span><i><span style=\"font-weight: 400;\">supplier. <\/span><\/i><span style=\"font-weight: 400;\">Gudang harus memisahkan stok ini dari <\/span><i><span style=\"font-weight: 400;\">available stock<\/span><\/i><span style=\"font-weight: 400;\"> sampai tim QC menyetujuinya.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Damaged Stock<\/b><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">Produk yang dikembalikan oleh <\/span><i><span style=\"font-weight: 400;\">client<\/span><\/i><span style=\"font-weight: 400;\">. Ingat, jangan campur barang retur pelanggan dengan barang baru. Stok ini harus memiliki bin khusus agar tidak terpungut (<\/span><i><span style=\"font-weight: 400;\">picking<\/span><\/i><span style=\"font-weight: 400;\">) saat ada pesanan baru yang masuk.\u00a0<\/span><\/li>\n<li aria-level=\"1\"><b>In-Transit Stock<\/b><span style=\"font-weight: 400;\">: Stok yang sudah keluar dari gudang asal, tetapi belum sampai di gudang tujuan (dalam kasus mutasi antar gudang).<\/span><\/li>\n<\/ul>\n<h2><b>Perbedaan SOH, ATP, dan Stock Available<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Kesalahan umum yang sering melumpuhkan operasional perusahaan adalah menganggap barang di rak bisa langsung dijual. Ini karena barang itu mungkin sudah milik orang lain. Agar Anda mengelola aset dengan benar; berikut perbedaan antara <\/span><i><span style=\"font-weight: 400;\">Stock on Hand, Available to Promise<\/span><\/i><span style=\"font-weight: 400;\">, dan\u00a0<em>Stock Available<\/em>:<\/span><i><\/i><\/p>\n<table style=\"border-collapse: collapse; text-align: left;\" border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"8\">\n<thead style=\"background-color: #990000; color: white;\">\n<tr>\n<th style=\"text-align: center;\" width=\"10%\">Aspek<\/th>\n<th style=\"text-align: center;\" width=\"30%\">Stock on Hand<\/th>\n<th style=\"text-align: center;\" width=\"30%\">Available to Promise<\/th>\n<th style=\"text-align: center;\" width=\"30%\">Stock Available<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">Definisi<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Stok yang ada secara fisik di <\/span><i><span style=\"font-weight: 400;\">warehouse<\/span><\/i><span style=\"font-weight: 400;\"> Anda.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Barang yang dapat dijanjikan, di mana saja dan kapan saja.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Produk yang dapat dijual<\/span><span style=\"font-weight: 400;\">.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Komponen<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Stok awal + barang yang masuk ke gudang &#8211; barang yang keluar dari gudang.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Produk yang tersedia + <\/span><i><span style=\"font-weight: 400;\">supply<\/span><\/i><span style=\"font-weight: 400;\"> di masa mendatang &#8211; <\/span><i><span style=\"font-weight: 400;\">order<\/span><\/i><span style=\"font-weight: 400;\"> masa depan.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Produk yang belum dialokasikan<\/span><span style=\"font-weight: 400;\">.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Dampak<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Memastikan ketersediaan barang yang pas.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Meningkatkan <\/span><i><span style=\"font-weight: 400;\">real-time visibility<\/span><\/i><span style=\"font-weight: 400;\"> terhadap stok barang Anda.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Mencegah <\/span><i><span style=\"font-weight: 400;\">overselling<\/span><\/i><span style=\"font-weight: 400;\">.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Apabila perusahaan Anda tidak membedakan <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> dan ATP, tim sales mungkin menjanjikan produk yang sudah dipesan kepada <\/span><i><span style=\"font-weight: 400;\">client<\/span><\/i><span style=\"font-weight: 400;\"> lain<\/span><span style=\"font-weight: 400;\">. Dalam kasus ini, mereka akan terpaksa menelepon pelanggan tersebut untuk membatalkan pesanan secara sepihak.\u00a0<\/span><\/p>\n<h2><b>Strategi Mengelola Stock on Hand<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-192581 aligncenter\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Stock-on-Hand-1.webp\" alt=\"Strategi-mengelola-SOH\" width=\"800\" height=\"400\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Stock-on-Hand-1.webp 800w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Stock-on-Hand-1-300x150.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Stock-on-Hand-1-768x384.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Stock-on-Hand-1-150x75.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/Stock-on-Hand-1-696x348.webp 696w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Waktu mengelola persediaan Anda, ada beberapa strategi untuk meningkatkan SOH, yaitu:<\/span><\/p>\n<h3><b>1. Menggunakan sistem stok barang<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Implementasikan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/aplikasi-stok-barang-terbaik\/\"><span style=\"font-weight: 400;\">sistem manajemen stok barang<\/span><\/a><span style=\"font-weight: 400;\"> dalam persediaan Anda. Aplikasi ini memantau jumlah dan pergerakan aset dalam satu platform. Anda dapat merancang <\/span><i><span style=\"font-weight: 400;\">layout<\/span><\/i> <i><span style=\"font-weight: 400;\">warehouse<\/span><\/i><span style=\"font-weight: 400;\"> yang optimal, sehingga mengefisienkan ruang penyimpanan dan menyederhanakan <\/span><i><span style=\"font-weight: 400;\">workflow<\/span><\/i><span style=\"font-weight: 400;\"> gudang.\u00a0<\/span><\/p>\n<h3><b>2. Memakai barcode dan RFID<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Pasang label inventaris barang untuk memudahkan pengelolaan. Setiap <\/span><i><span style=\"font-weight: 400;\">barcode<\/span><\/i><span style=\"font-weight: 400;\"> dan RFID akan mencatat informasi secara <\/span><i><span style=\"font-weight: 400;\">real-time<\/span><\/i><span style=\"font-weight: 400;\">. Waktu Anda pindai <\/span><i><span style=\"font-weight: 400;\">tag<\/span><\/i><span style=\"font-weight: 400;\">, mereka akan menunjukkan informasi dan lokasi produk. Hal ini meningkatkan visibilitas stok, dan mempercepat proses pelacakan penerimaan barang.\u00a0<\/span><\/p>\n<h3><b>3. Menentukan metode terlebih dahulu<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Pilih metode pencatatan persediaan yang sesuai dengan bisnis Anda. Untuk usaha kecil-menengah, Anda perlu menggunakan metode periodik. Namun, pakai metode perpetual untuk perusahaan dengan volume penjualan tinggi.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tentukan juga metode manajemen stok barang yang sesuai dengan jenis produk Anda. FIFO (<\/span><i><span style=\"font-weight: 400;\">First In, First Out<\/span><\/i><span style=\"font-weight: 400;\">) cocok untuk bisnis yang menjual produk dengan tanggal kedaluwarsa. Sebaliknya, LIFO (<\/span><i><span style=\"font-weight: 400;\">Last In, First Out<\/span><\/i><span style=\"font-weight: 400;\">) pas untuk barang yang tidak memiliki tanggal kedaluwarsa.\u00a0<\/span><\/p>\n<h3><b>4. Menetapkan Reorder Points<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Tentukan tingkat minimum sebagai peringatan untuk pemesanan ulang aset. Kalikan rata-rata permintaan harian dengan <\/span><i><span style=\"font-weight: 400;\">Lead Time<\/span><\/i><span style=\"font-weight: 400;\">, lalu tambahkan <\/span><i><span style=\"font-weight: 400;\">Safety Stock<\/span><\/i><span style=\"font-weight: 400;\">. Ini memastikan perusahaan Anda selalu punya stok yang cukup.\u00a0<\/span><\/p>\n<h3><b>5. Melakukan Stock Count dan Cycle Counting<\/b><\/h3>\n<p><b><\/b><span style=\"font-weight: 400;\">Audit data Anda secara berkala. Anda dapat membandingkan data sistem dengan jumlah fisik lewat metode <\/span><i><span style=\"font-weight: 400;\">Stock Count<\/span><\/i><span style=\"font-weight: 400;\">. Untuk situasi di mana bisnis Anda memiliki banyak SKU dan tidak dapat menghentikan operasi dengan mudah, gunakan <\/span><i><span style=\"font-weight: 400;\">Cycle Counting<\/span><\/i><span style=\"font-weight: 400;\">. Dengan kedua metode ini, Anda akan menghemat waktu dan menjaga keakuratan data<\/span><\/p>\n<h2><b>Jika SOH Berbeda dengan Fisik? Cek 7 Hal berikut<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Apabila angka sistem dan fisik berbeda, Anda dapat menggunakan <\/span><i><span style=\"font-weight: 400;\">checklist<\/span><\/i><span style=\"font-weight: 400;\"> berikut supaya proses auditnya lebih mudah:<\/span><\/p>\n<div id=\"sohChecklist\" class=\"soh-checklist\" data-version=\"ultra-compact\">\n<div class=\"soh-header\">\n<div class=\"soh-title\">\n<p><strong>Jika SOH Berbeda dengan Fisik? Cek 7 Hal berikut<\/strong><\/p>\n<\/div>\n<div class=\"soh-actions\"><button class=\"soh-btn\" type=\"button\" data-action=\"expandAll\" aria-expanded=\"false\">Buka<\/button><br \/>\n<button class=\"soh-btn\" type=\"button\" data-action=\"reset\">Reset<\/button><br \/>\n<button class=\"soh-btn soh-btn-primary\" type=\"button\" data-action=\"print\">Print<\/button><\/div>\n<\/div>\n<div class=\"soh-toolbar\">\n<div class=\"soh-search\"><input type=\"search\" placeholder=\"Cari: receiving, retur, transfer, typo\u2026\" aria-label=\"Cari titik cek\" data-role=\"search\" \/><\/div>\n<\/div>\n<div class=\"soh-list\" data-role=\"list\">\n<p><!-- 1 --><\/p>\n<article class=\"soh-item\" data-id=\"1\" data-tags=\"receiving dock good receipt inbound\">\n<header class=\"soh-item-head\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><br \/>\n<input type=\"checkbox\" data-role=\"check\" \/><\/label><\/label><button class=\"soh-item-toggle\" type=\"button\" data-role=\"toggle\" aria-expanded=\"false\"><br \/>\n<span class=\"soh-item-no\">1<\/span><br \/>\n<span class=\"soh-item-text\"><br \/>\n<span class=\"soh-item-title\">Antrean di Receiving Dock<\/span><br \/>\n<span class=\"soh-item-sub\"><span style=\"font-weight: 400;\">Telusuri apakah ada barang yang sebenarnya sudah di <\/span><i><span style=\"font-weight: 400;\">warehouse<\/span><\/i><span style=\"font-weight: 400;\">, tetapi admin gudang belum memproses <\/span><i><span style=\"font-weight: 400;\">Goods Receipt Note<\/span><\/i><span style=\"font-weight: 400;\"> (GRN)<\/span>.<\/span><br \/>\n<\/span><br \/>\n<span class=\"soh-chevron\" aria-hidden=\"true\">\u2304<\/span><br \/>\n<\/button><\/header>\n<div class=\"soh-item-body\" data-role=\"body\" aria-hidden=\"true\">\n<ul class=\"soh-bullets\">\n<li><strong>Cek cepat:<\/strong> data receiving hari ini vs pallet\/karton yang sudah masuk area gudang.<\/li>\n<li><strong>Indikasi:<\/strong> jumlah fisik lebih banyak daripada sistem.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/article>\n<p><!-- 2 --><\/p>\n<article class=\"soh-item\" data-id=\"2\" data-tags=\"cancel order packing ekspedisi restock\">\n<header class=\"soh-item-head\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><br \/>\n<input type=\"checkbox\" data-role=\"check\" \/><\/label><\/label><button class=\"soh-item-toggle\" type=\"button\" data-role=\"toggle\" aria-expanded=\"false\"><br \/>\n<span class=\"soh-item-no\">2<\/span><br \/>\n<span class=\"soh-item-text\"><br \/>\n<span class=\"soh-item-title\">Barang \u201cBatal Kirim\u201d yang Belum Re-stock<\/span><br \/>\n<span style=\"font-weight: 400;\">Staf gudang Anda sudah mengembalikkan barang ke rak asalnya atau belum?<\/span><br \/>\n<\/span><br \/>\n<span class=\"soh-chevron\" aria-hidden=\"true\">\u2304<\/span><br \/>\n<\/button><\/header>\n<div class=\"soh-item-body\" data-role=\"body\" aria-hidden=\"true\">\n<ul class=\"soh-bullets\">\n<li><strong>Cek cepat:<\/strong> area ekspedisi + surat pembatalan pengiriman.<\/li>\n<li><strong>Indikasi:<\/strong> sistem minus, fisik masih ada.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/article>\n<p><!-- 3 --><\/p>\n<article class=\"soh-item\" data-id=\"3\" data-tags=\"sku varian warna ukuran wrong picking\">\n<header class=\"soh-item-head\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><br \/>\n<input type=\"checkbox\" data-role=\"check\" \/><\/label><\/label><button class=\"soh-item-toggle\" type=\"button\" data-role=\"toggle\" aria-expanded=\"false\"><br \/>\n<span class=\"soh-item-no\">3<\/span><br \/>\n<span class=\"soh-item-text\"><br \/>\n<span class=\"soh-item-title\">Masalah SKU<\/span><br \/>\n<span style=\"font-weight: 400;\">Periksa barang dengan atribut yang mirip (bisa dari warna, ukuran, kemasan, hingga nama). Ada kemungkinan besar karyawan gudang salah ambil produk.<\/span><br \/>\n<\/span><br \/>\n<span class=\"soh-chevron\" aria-hidden=\"true\">\u2304<\/span><br \/>\n<\/button><\/header>\n<div class=\"soh-item-body\" data-role=\"body\" aria-hidden=\"true\">\n<ul class=\"soh-bullets\">\n<li><strong>Cek cepat:<\/strong> SKU lain mirip (dari sisi warna\/ukuran\/kemasan) + top seller.<\/li>\n<li><strong>Indikasi:<\/strong> satu SKU surplus dan satu SKU lain minus.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/article>\n<p><!-- 4 --><\/p>\n<article class=\"soh-item\" data-id=\"4\" data-tags=\"retur sales return qc\">\n<header class=\"soh-item-head\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><br \/>\n<input type=\"checkbox\" data-role=\"check\" \/><\/label><\/label><button class=\"soh-item-toggle\" type=\"button\" data-role=\"toggle\" aria-expanded=\"false\"><br \/>\n<span class=\"soh-item-no\">4<\/span><br \/>\n<span class=\"soh-item-text\"><br \/>\n<span class=\"soh-item-title\">Retur Pelanggan yang \u201cMenggantung\u201d<\/span><br \/>\n<span style=\"font-weight: 400;\">Barang retur ada secara fisik, tetapi tidak terhitung kembali dalam saldo <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> karena admin belum memproses surat retur barang.<\/span><br \/>\n<\/span><br \/>\n<span class=\"soh-chevron\" aria-hidden=\"true\">\u2304<\/span><br \/>\n<\/button><\/header>\n<div class=\"soh-item-body\" data-role=\"body\" aria-hidden=\"true\">\n<ul class=\"soh-bullets\">\n<li><strong>Cek cepat:<\/strong> area retur + status QC.<\/li>\n<li><strong>Indikasi:<\/strong> produk ada secara fisik, tetapi tidak di sistem.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/article>\n<p><!-- 5 --><\/p>\n<article class=\"soh-item\" data-id=\"5\" data-tags=\"transfer in-transit mutasi antar gudang\">\n<header class=\"soh-item-head\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><br \/>\n<input type=\"checkbox\" data-role=\"check\" \/><\/label><\/label><button class=\"soh-item-toggle\" type=\"button\" data-role=\"toggle\" aria-expanded=\"false\"><br \/>\n<span class=\"soh-item-no\">5<\/span><br \/>\n<span class=\"soh-item-text\"><br \/>\n<span class=\"soh-item-title\">Transfer Antar Gudang (In-Transit Lag)<\/span><br \/>\n<span class=\"soh-item-sub\"><span style=\"font-weight: 400;\">Untuk perusahaan dengan banyak cabang, cek status mutasi barang. Hal yang sering terjadi dalam kasus ini adalah barang sudah keluar dari gudang A, tetapi belum masuk ke gudang B<\/span>.<\/span><br \/>\n<\/span><br \/>\n<span class=\"soh-chevron\" aria-hidden=\"true\">\u2304<\/span><br \/>\n<\/button><\/header>\n<div class=\"soh-item-body\" data-role=\"body\" aria-hidden=\"true\">\n<ul class=\"soh-bullets\">\n<li><strong>Cek cepat:<\/strong> daftar transfer in-transit + bukti serah terima.<\/li>\n<li><strong>Indikasi:<\/strong> SOH \u201chilang\u201d di A dan B.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/article>\n<p><!-- 6 --><\/p>\n<article class=\"soh-item\" data-id=\"6\" data-tags=\"waste rusak stock adjustment\">\n<header class=\"soh-item-head\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><br \/>\n<input type=\"checkbox\" data-role=\"check\" \/><\/label><\/label><button class=\"soh-item-toggle\" type=\"button\" data-role=\"toggle\" aria-expanded=\"false\"><br \/>\n<span class=\"soh-item-no\">6<\/span><br \/>\n<span class=\"soh-item-text\"><br \/>\n<span class=\"soh-item-title\">Kerusakan yang Tidak Tercatat (Unrecorded Waste)<\/span><br \/>\n<span style=\"font-weight: 400;\">Ketika staf gudang langsung buang barang rusak tanpa membuat laporan kerusakan stok, sistem akan menganggap produk tersebut ada dan siap jual.<\/span><br \/>\n<\/span><br \/>\n<span class=\"soh-chevron\" aria-hidden=\"true\">\u2304<\/span><br \/>\n<\/button><\/header>\n<div class=\"soh-item-body\" data-role=\"body\" aria-hidden=\"true\">\n<ul class=\"soh-bullets\">\n<li><strong>Cek cepat:<\/strong> area rusak + log kejadian.<\/li>\n<li><strong>Indikasi:<\/strong> Sistem lebih banyak daripada fisik.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/article>\n<p><!-- 7 --><\/p>\n<article class=\"soh-item\" data-id=\"7\" data-tags=\"typo duplikasi input double posting satuan lokasi\">\n<header class=\"soh-item-head\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><label class=\"soh-check\" aria-label=\"Tandai selesai\"><br \/>\n<input type=\"checkbox\" data-role=\"check\" \/><\/label><\/label><button class=\"soh-item-toggle\" type=\"button\" data-role=\"toggle\" aria-expanded=\"false\"><br \/>\n<span class=\"soh-item-no\">7<\/span><br \/>\n<span class=\"soh-item-text\"><br \/>\n<span class=\"soh-item-title\">Duplikasi Input atau Typo Admin<\/span><br \/>\n<span style=\"font-weight: 400;\">Buka riwayat transaksi terakhir. Apakah ada dua surat jalan dengan nomor yang sama? Atau apakah ada kesalahan ketik jumlah?<\/span><br \/>\n<\/span><br \/>\n<span class=\"soh-chevron\" aria-hidden=\"true\">\u2304<\/span><br \/>\n<\/button><\/header>\n<div class=\"soh-item-body\" data-role=\"body\" aria-hidden=\"true\">\n<ul class=\"soh-bullets\">\n<li><strong>Cek cepat:<\/strong> transaksi sama muncul 2x + audit trail user.<\/li>\n<li><strong>Indikasi:<\/strong> saldo loncat tanpa alur fisik.<\/li>\n<\/ul>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<h2><strong>Kesimpulan<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Hal pertama yang harus Anda lakukan setelah menemukan &#8220;stok gaib&#8221; adalah mengaudit data Anda. Kemudian, perbaiki dan <\/span><i><span style=\"font-weight: 400;\">update<\/span><\/i><span style=\"font-weight: 400;\"> data tersebut di sistem Anda. Inilah cara Anda menangani perbedaan antara perhitungan manual dan sistem persediaan gudang.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mengelola <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> memastikan uang Anda tidak terikat pada stok &#8220;mati&#8221; di rak gudang. <\/span><span style=\"font-weight: 400;\">Anda perlu menjaga ketersediaan stok agar produk Anda dapat dibeli tanpa perselisihan<\/span><span style=\"font-weight: 400;\">. Jadi, hitung dan kelola SOH dengan cermat.<\/span><\/p>\n<h2><strong>Pertanyaan Seputar Stock on Hand<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><b>Apakah Stock on Hand sama dengan Inventory?<\/b><\/summary>\n<p><span style=\"font-weight: 400;\">Inventory adalah semua produk yang Anda jual dan bahan bakunya, sedangkan Stock on Hand hanyalah aset yang ada secara fisik di gudang Anda. <\/span><\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Apakah Stock on Hand termasuk aset perusahaan?<\/b><\/summary>\n<p><span style=\"font-weight: 400;\">Ya, SOH adalah aset lancar dalam neraca perusahaan karena memiliki nilai ekonomis dan diharapkan akan dijual dalam waktu dekat<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Apakah lebih baik memiliki Stock on Hand yang banyak atau yang sedikit?<\/b><\/summary>\n<p><span style=\"font-weight: 400;\">Tergantung perusahaan Anda. <\/span><i><span style=\"font-weight: 400;\">Stock on Hand<\/span><\/i><span style=\"font-weight: 400;\"> yang terlalu banyak akan memboros ruang gudang dan biaya operasional. Sebaliknya, jumlah yang terlalu sedikit akan memaksa Anda untuk melakukan pemesanan mendadak.<\/span><\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Seberapa sering perusahaan harus menghitung Stock on Hand?<\/b><\/summary>\n<p><span style=\"font-weight: 400;\">Idealnya, perusahaan melakukan <\/span><i><span style=\"font-weight: 400;\">cycle counting<\/span><\/i><span style=\"font-weight: 400;\"> secara rutin (harian atau mingguan) untuk barang <\/span><i><span style=\"font-weight: 400;\">fast-moving<\/span><\/i><span style=\"font-weight: 400;\"> dan stock opname minimal setahun sekali.<\/span><\/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\": \"Apakah Stock on Hand sama dengan Inventory?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Inventory adalah semua produk yang Anda jual dan bahan bakunya, sedangkan Stock on Hand hanyalah aset yang ada secara fisik di gudang Anda.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah Stock on Hand termasuk aset perusahaan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Ya, SOH adalah aset lancar dalam neraca perusahaan karena memiliki nilai ekonomis dan diharapkan akan dijual dalam waktu dekat.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah lebih baik memiliki Stock on Hand yang banyak atau yang sedikit?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Tergantung perusahaan Anda. Stock on Hand yang terlalu banyak akan memboros ruang gudang dan biaya operasional. Sebaliknya, jumlah yang terlalu sedikit akan memaksa Anda untuk melakukan pemesanan mendadak.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Seberapa sering perusahaan harus menghitung Stock on Hand?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Idealnya, perusahaan melakukan cycle counting secara rutin (harian atau mingguan) untuk barang fast-moving dan stock opname minimal setahun sekali.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pernahkah Anda kesulitan mencari stok di gudang, padahal tim sales sudah mengonfirmasi barang tersebut siap kirim? Masalah &#8220;stok gaib&#8221; seperti ini biasanya berasal dari data stock on hand yang tidak akurat.\u00a0 Padahal, data SOH yang akurat menjaga kesehatan finansial bisnis dan mencegah penumpukan stok. Data yang meleset seringkali menjadi penyebab hilangnya peluang penjualan. Survei AlixPartners [&hellip;]<\/p>\n","protected":false},"author":160,"featured_media":179573,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[88],"tags":[],"class_list":{"0":"post-179263","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-inventory"},"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>Strategi Kelola Stock On Hand &amp; Rumus Akuratnya &#187; HashMicro Indonesia<\/title>\n<meta name=\"description\" content=\"Ketahui pentingnya stock on hand untuk stabilitas finansial bisnis. Pelajari cara akurasi data stok dapat meningkatkan arus kas.\" \/>\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\/stock-on-hand\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Strategi Kelola Stock On Hand &amp; Rumus Akuratnya\" \/>\n<meta property=\"og:description\" content=\"Ketahui pentingnya stock on hand untuk stabilitas finansial bisnis. Pelajari cara akurasi data stok dapat meningkatkan arus kas.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/\" \/>\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-12-08T02:54:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-20T10:16:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/stock-on-hand.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=\"11 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\\\/stock-on-hand\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/\"},\"author\":{\"name\":\"Jessica Wijaya\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/4d83ca1a7056c0a44f813f8721086980\"},\"headline\":\"Strategi Kelola Stock On Hand &#038; Rumus Akuratnya\",\"datePublished\":\"2025-12-08T02:54:02+00:00\",\"dateModified\":\"2026-04-20T10:16:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/\"},\"wordCount\":1838,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/stock-on-hand.webp\",\"articleSection\":[\"Inventory\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/\",\"name\":\"Strategi Kelola Stock On Hand & Rumus Akuratnya &#187; HashMicro Indonesia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/stock-on-hand.webp\",\"datePublished\":\"2025-12-08T02:54:02+00:00\",\"dateModified\":\"2026-04-20T10:16:00+00:00\",\"description\":\"Ketahui pentingnya stock on hand untuk stabilitas finansial bisnis. Pelajari cara akurasi data stok dapat meningkatkan arus kas.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/stock-on-hand.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/stock-on-hand.webp\",\"width\":1200,\"height\":675,\"caption\":\"stock on hand\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/stock-on-hand\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Strategi Kelola Stock On Hand &#038; Rumus Akuratnya\"}]},{\"@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":"Strategi Kelola Stock On Hand & Rumus Akuratnya &#187; HashMicro Indonesia","description":"Ketahui pentingnya stock on hand untuk stabilitas finansial bisnis. Pelajari cara akurasi data stok dapat meningkatkan arus kas.","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\/stock-on-hand\/","og_locale":"id_ID","og_type":"article","og_title":"Strategi Kelola Stock On Hand & Rumus Akuratnya","og_description":"Ketahui pentingnya stock on hand untuk stabilitas finansial bisnis. Pelajari cara akurasi data stok dapat meningkatkan arus kas.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-12-08T02:54:02+00:00","article_modified_time":"2026-04-20T10:16:00+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/stock-on-hand.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":"11 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/"},"author":{"name":"Jessica Wijaya","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980"},"headline":"Strategi Kelola Stock On Hand &#038; Rumus Akuratnya","datePublished":"2025-12-08T02:54:02+00:00","dateModified":"2026-04-20T10:16:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/"},"wordCount":1838,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/stock-on-hand.webp","articleSection":["Inventory"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/","name":"Strategi Kelola Stock On Hand & Rumus Akuratnya &#187; HashMicro Indonesia","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/stock-on-hand.webp","datePublished":"2025-12-08T02:54:02+00:00","dateModified":"2026-04-20T10:16:00+00:00","description":"Ketahui pentingnya stock on hand untuk stabilitas finansial bisnis. Pelajari cara akurasi data stok dapat meningkatkan arus kas.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/stock-on-hand.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/12\/stock-on-hand.webp","width":1200,"height":675,"caption":"stock on hand"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/stock-on-hand\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Strategi Kelola Stock On Hand &#038; Rumus Akuratnya"}]},{"@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":"stock on hand","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/179263","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=179263"}],"version-history":[{"count":10,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/179263\/revisions"}],"predecessor-version":[{"id":192588,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/179263\/revisions\/192588"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/179573"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=179263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=179263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=179263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}