{"id":172505,"date":"2025-10-20T15:42:23","date_gmt":"2025-10-20T08:42:23","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=172505"},"modified":"2026-02-24T09:18:35","modified_gmt":"2026-02-24T02:18:35","slug":"days-in-inventory","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/","title":{"rendered":"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi"},"content":{"rendered":"<p data-start=\"160\" data-end=\"456\">Dalam lanskap bisnis 2026 yang semakin kompetitif, Days in Inventory (DOI) menjadi indikator penting untuk mengukur seberapa efisien perusahaan mengelola persediaan. Metrik ini membantu bisnis menjaga keseimbangan antara modal kerja, arus kas, dan kemampuan memenuhi permintaan pelanggan.<\/p>\n<p data-start=\"458\" data-end=\"839\">Lebih dari sekadar angka di laporan keuangan, DOI mencerminkan kesehatan operasional perusahaan. Nilai DOI yang terlalu tinggi dapat menahan arus kas, sementara DOI yang terlalu rendah berisiko mengganggu ketersediaan barang. Karena itu, memahami DOI secara menyeluruh membantu bisnis mengubah persediaan yang menumpuk menjadi aset yang lebih likuid, produktif, dan terkendali.<\/p>\n<p data-start=\"841\" data-end=\"1131\">Melalui artikel ini, Anda akan mempelajari rumus Days in Inventory, cara menghitungnya secara tepat, serta strategi optimasi praktis yang relevan di tahun 2026. Dengan pemahaman yang tepat, DOI dapat menjadi <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/rekomendasi-sistem-manajemen-inventory-di-indonesia-yang-wajib-diketahui\/\">alat pengambilan keputusan yang efisien<\/a> dan daya saing bisnis.<\/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 style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#definisi\">DOI adalah<\/a> metrik yang mengukur berapa lama inventaris tersimpan sebelum terjual, menjadi indikator efisiensi manajemen persediaan dan rantai pasok.<\/li>\n<li aria-level=\"1\"><a href=\"#mengapa\">Memantau DOI<\/a> membantu bisnis menyeimbangkan arus kas, mengendalikan biaya penyimpanan, dan menjaga profitabilitas\u00a0jangka\u00a0panjang.<\/li>\n<li aria-level=\"1\"><a href=\"#interpretasi\">Interpretasi DOI<\/a> sangat menentukan kualitas keputusan bisnis. sebab membantu mengambil keputusan persediaan yang lebih akurat dan strategis.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\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 <span id=\"DOI\">\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><span id=\"definisi\">Apa Itu Days in Inventory (DOI)?<\/span><\/strong><\/h2>\n<p><em>Days in Inventory<\/em> (DOI) atau disebut <em>Days Inventory Outstanding<\/em> (DIO) adalah metrik keuangan yang mengukur rata-rata jumlah hari yang dibutuhkan perusahaan untuk mengubah inventarisnya menjadi penjualan.<\/p>\n<p>Sederhananya, angka ini menunjukkan berapa lama barang Anda tersimpan di gudang sebelum akhirnya laku terjual. Metrik ini adalah salah satu indikator kunci untuk menilai efisiensi manajemen rantai pasok dan inventaris sebuah perusahaan.<\/p>\n<p><span id=\"pentingnya-DOI\">Semakin rendah angka DOI, umumnya semakin baik, karena itu berarti perusahaan mampu menjual persediaannya dengan cepat. Hal ini menunjukkan likuiditas inventaris yang tinggi dan manajemen yang efisien.<\/span><\/p>\n<p><span id=\"pentingnya-DOI\">Sebaliknya, angka DOI yang tinggi bisa menjadi sinyal adanya masalah seperti penjualan yang lambat, kelebihan stok (<em>overstocking<\/em>), atau bahkan potensi stok mati (<em>dead stock<\/em>) yang membebani keuangan perusahaan.<\/span><\/p>\n<h2><strong><span id=\"mengapa\">Mengapa Days in Inventory Penting untuk Bisnis Anda?<\/span><\/strong><\/h2>\n<p>Memantau Days in Inventory (DOI) membantu bisnis menjaga arus kas tetap lancar sekaligus meningkatkan profitabilitas. Dengan pengelolaan DOI yang tepat, Dengan pengelolaan DOI yang tepat, perusahaan dapat menerapkan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/mengoptimalkan-manajemen-persediaan\/\">manajemen persediaan yang efisien<\/a> untuk menjaga keseimbangan antara stok dan permintaan pasar.<\/p>\n<p>Berikut manfaat utama DOI bagi bisnis Anda:<\/p>\n<ul>\n<li>Mempercepat perputaran stok, sehingga modal tidak tertahan terlalu lama di gudang.<\/li>\n<li>Menekan biaya penyimpanan, seperti sewa gudang, asuransi, dan risiko barang usang.<\/li>\n<li>Menentukan waktu dan jumlah pembelian stok secara lebih presisi.<\/li>\n<li>Mengidentifikasi produk slow moving, lalu mendorong penjualannya melalui diskon atau bundling.<\/li>\n<li>Mempercepat pengambilan keputusan dengan pemantauan DOI yang konsisten dan terukur.<\/li>\n<\/ul>\n<h2><strong>Rumus Days in Inventory dan Cara Menghitungnya<\/strong><\/h2>\n<p>Menghitung Days in Inventory sebenarnya cukup sederhana jika Anda sudah memiliki data yang diperlukan. Mari kita bedah satu per satu rumus dan cara menghitungnya berikut ini:<\/p>\n<h3><strong>1. Rumus Days in Inventory (DOI)<\/strong><\/h3>\n<p>Rumus dasar DOI memberikan gambaran rata-rata durasi penyimpanan inventaris dalam satuan hari. Rumusnya adalah sebagai berikut:<br \/>\n<span style=\"font-weight: 400;\"><br \/>\nMaka dari itu, rumus atau formula untuk menghitung <\/span><i><span style=\"font-weight: 400;\">days of inventory outstanding<\/span><\/i><br \/>\n<span style=\"font-weight: 400;\"> adalah sebagai berikut:<\/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=\"font-size: 20px; font-weight: 600; color: #7a0000; font-family: 'Nunito Sans','Segoe UI',Arial,sans-serif;\">Days of Inventory Outstanding (DOI) = (Persediaan Rata-rata \/ Harga Pokok Penjualan) \u00d7 365<\/span><\/div>\n<h3><strong>2. Contoh cara menghitung persediaan rata-rata<\/strong><\/h3>\n<p>Sebagai ilustrasi, PT Elektronik Cemerlang, distributor komponen elektronik, memiliki data keuangan berikut selama tahun 2026:<\/p>\n<ul>\n<li>Nilai Persediaan per 1 Januari 2026: Rp400.000.000<\/li>\n<li>Nilai Persediaan per 31 Desember 2026: Rp600.000.000<\/li>\n<li>Harga Pokok Penjualan (HPP) selama 2026: Rp2.500.000.000<\/li>\n<\/ul>\n<h4><strong>Langkah 1: Hitung persediaan rata-rata<\/strong><\/h4>\n<p>Persediaan Rata-rata = (Rp400.000.000 + Rp600.000.000) \/ 2 = Rp500.000.000<\/p>\n<h4><strong>Langkah 2: Masukkan ke Rumus DOI<\/strong><\/h4>\n<p>DOI = (Rp500.000.000 \/ Rp2.500.000.000) x 365<\/p>\n<p>DOI = 0.2 x 365 = 73 hari<\/p>\n<p>Artinya, PT Elektronik Cemerlang membutuhkan rata-rata 73 hari untuk mengubah persediaan menjadi penjualan. Angka ini dapat menjadi acuan awal bagi manajemen untuk menilai efisiensi pengelolaan stok dan menentukan strategi optimasi persediaan selanjutnya.<\/p>\n<h2><strong><span id=\"interpretasi\">Cara Menginterpretasikan Angka Days in Inventory<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-189197 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381.webp\" alt=\"Cara menginterpretasikan DOI\" width=\"1024\" height=\"1436\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381-214x300.webp 214w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381-730x1024.webp 730w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381-768x1077.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381-299x420.webp 299w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381-150x210.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381-300x421.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/cara-menginterpretasikan-DOI-e1771465387381-696x976.webp 696w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Angka Days in Inventory tidak bisa langsung dinilai sebagai \u201cbaik\u201d atau \u201cburuk\u201d tanpa konteks bisnis yang tepat. Interpretasi DOI harus mempertimbangkan karakter produk, industri, dan strategi operasional perusahaan. Berikut panduan membacanya secara tepat.<\/p>\n<h3><strong>1. Angka DOI Rendah: Efisien atau Berisiko?<\/strong><\/h3>\n<p data-start=\"522\" data-end=\"696\">DOI yang rendah umumnya menandakan efisiensi tinggi dalam pengelolaan persediaan. Produk bergerak cepat, modal kerja berputar lebih singkat, dan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/laporan-arus-kas\/\">arus kas menjadi lebih sehat.<\/a><\/p>\n<p data-start=\"698\" data-end=\"965\">Selain itu, perusahaan dapat menekan biaya penyimpanan, mengurangi risiko barang rusak atau usang, serta menunjukkan bahwa permintaan pasar berada pada level yang kuat. Kondisi ini biasanya muncul dari strategi penjualan yang efektif dan manajemen stok yang disiplin.<\/p>\n<p data-start=\"967\" data-end=\"1239\">Namun, DOI yang terlalu rendah juga perlu diwaspadai. Stok yang terlalu tipis meningkatkan risiko kehabisan barang (stockout). Ketika permintaan melonjak atau pengiriman pemasok terlambat, perusahaan bisa kehilangan peluang penjualan dan menurunkan kepuasan pelanggan.<\/p>\n<p data-start=\"1241\" data-end=\"1357\">Karena itu, DOI rendah sebaiknya tetap diimbangi dengan safety stock yang memadai agar operasional tetap stabil.<\/p>\n<h3><strong>2. Angka DOI Tinggi: Aman atau Boros?<\/strong><\/h3>\n<p data-start=\"1413\" data-end=\"1628\">Sebaliknya, DOI yang tinggi menunjukkan bahwa persediaan membutuhkan waktu lebih lama untuk terjual. Kondisi ini sering berkaitan dengan penjualan yang melambat, overstock, atau strategi pembelian yang kurang tepat.<\/p>\n<p data-start=\"1630\" data-end=\"1854\">Dampaknya cukup signifikan. Modal kerja tertahan di gudang, biaya penyimpanan meningkat, dan risiko dead stock atau keusangan barang semakin besar. Jika tidak dikendalikan, kondisi ini bisa menekan profitabilitas bisnis.<\/p>\n<p data-start=\"1856\" data-end=\"2133\">Meski begitu, DOI tinggi tidak selalu berarti buruk. Dalam situasi tertentu, perusahaan sengaja menimbun stok untuk mengantisipasi kenaikan harga bahan baku, gangguan pasokan, atau lonjakan permintaan musiman. Artinya, DOI tinggi bisa menjadi bagian dari strategi yang terukur.<\/p>\n<h3><strong>3. Membandingkan DOI dengan Standar Industri<\/strong><\/h3>\n<p data-start=\"2187\" data-end=\"2378\">Konteks industri memegang peran krusial dalam membaca DOI. Angka DOI 30 hari bisa dianggap ideal untuk bisnis ritel harian, tetapi menjadi tidak wajar untuk industri otomotif atau alat berat.<\/p>\n<p data-start=\"2380\" data-end=\"2575\">Setiap sektor memiliki siklus penjualan, karakter produk, dan rantai pasok yang berbeda. Oleh karena itu, langkah paling relevan adalah membandingkan DOI perusahaan dengan rata-rata industri.<\/p>\n<p>Oleh karena itu, langkah paling penting adalah membandingkan angka DOI Anda dengan rata-rata industri menggunakan data agregat dari penyedia data finansial seperti <a href=\"https:\/\/csimarket.com\/Industry\/industry_ManagementEffectiveness.php?s=1300\" target=\"_blank\" rel=\"noopener noreferrer\">CSI Market<\/a><strong>.<\/strong><\/p>\n<p>Dengan perbandingan ini, Anda bisa menilai apakah kinerja Anda berada di atas, setara, atau di bawah rata-rata pesaing, dan mengambil langkah strategis yang diperlukan.<\/p>\n<style>\r\n.cta-in-article-image .desktop-banner{\r\n    display: none;\r\n    text-align: center;\r\n}\r\n.cta-in-article-image .desktop-mobile{\r\n    display: block;\r\n    text-align: center;\r\n    width: 100%;\r\n}\r\n\t.cta-in-article a {\r\n\t\tfont-size: 0px !important;\r\n\t\tcolor: #fff; \r\n\t\tpadding: 0px !important; \r\n\t\tborder-radius: 0px !important; \r\n\t\tdisplay: block !important; \r\n\t\ttext-decoration: none; \r\n\t}\r\n\t\r\n\t.cta-in-article {\r\n\t\tmargin: 0px !important;\r\n\t\tpadding: 0px !important;\r\n\t\tbox-shadow: none !important;\r\n\t}\r\n\t\r\n@media (min-width: 650px) {\r\n    .cta-in-article-image .desktop-banner {\r\n        display: block!important;\r\n    }\r\n}\r\n@media (min-width: 650px) {\r\n   .cta-in-article-image .desktop-mobile {\r\n        display: none!important;\r\n    }\r\n}\r\n<\/style>\r\n<div class=\"cta-in-article-image\">\r\n\t<a href=\"https:\/\/www.hashmicro.com\/id\/offer\/download-skema-harga-software-erp?blog&utm_source=blog&medium=banner-article\" target=\"_blank\" rel=\"noopener\">\r\n\t\t<div id=\"desktop-banner-container\">\r\n\t\t\t<div class=\"desktop-banner\">\r\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/02.Skema-Harga-web-resized.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<div id=\"mobile-banner-container\">\r\n\t\t\t<div class=\"desktop-mobile\">\r\n\t\t\t\t<img decoding=\"async\" width=\"372\" height=\"465\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/02.-Skema-Harga-Mobile-372px.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/a>\r\n<\/div>\n<h2><strong>Strategi Efektif untuk Mengoptimalkan Days in Inventory<\/strong><\/h2>\n<p>Mengoptimalkan Days in Inventory (DOI) bukan sekadar mengurangi stok, melainkan menyeimbangkan ketersediaan barang, biaya penyimpanan, dan kepuasan pelanggan. Berikut strategi praktis yang terbukti efektif di berbagai jenis bisnis.<\/p>\n<h3><strong>1. Implementasi sistem manajemen inventaris<\/strong><\/h3>\n<p>Fondasi utama optimasi DOI adalah visibilitas data stok yang akurat dan real-time. Tanpa sistem terintegrasi, perusahaan sulit mengetahui pergerakan barang secara menyeluruh. Salah satu contoh suksesnya adalah <a class=\"decorated-link\" href=\"https:\/\/www.hashmicro.com\/id\/blog\/cvcrystal\/\" target=\"_new\" rel=\"noopener\" data-start=\"925\" data-end=\"987\">CV. Crystal<\/a>, distributor FMCG yang berhasil meningkatkan efisiensi dengan mengintegrasikan sistem ERP HashMicro. Sebelumnya, pencatatan berbasis spreadsheet manual sering memicu selisih stok dan keterlambatan laporan.<\/p>\n<p>Implementasi <a href=\"https:\/\/www.hashmicro.com\/id\/inventaris\">sistem manajemen inventaris<\/a> modern memungkinkan Anda melacak pergerakan stok, memantau tingkat persediaan di berbagai lokasi, dan menghasilkan laporan secara otomatis.<\/p>\n<h3><strong>2. Terapkan metode <em>Just-In-Time<\/em> (JIT)<\/strong><\/h3>\n<p><em>Just-In-Time<\/em> (JIT) adalah filosofi manajemen inventaris yang bertujuan untuk meminimalkan stok di gudang dengan cara memesan dan menerima bahan baku hanya saat dibutuhkan untuk proses produksi atau penjualan.<\/p>\n<p>Pendekatan ini secara drastis mengurangi DOI, biaya penyimpanan, dan pemborosan. Namun, implementasi JIT memerlukan koordinasi yang sangat erat dengan pemasok yang andal dan sistem logistik yang efisien.<\/p>\n<h3><strong>3. Lakukan analisis permintaan (<em>demand forecasting<\/em>)<\/strong><\/h3>\n<p>Salah satu penyebab utama DOI yang tinggi adalah ketidakmampuan memprediksi permintaan secara akurat. Dengan menggunakan teknik <em>demand forecasting <\/em>melalui software ERP, Anda dapat menganalisis data penjualan historis, tren pasar, dan faktor musiman untuk memperkirakan permintaan di masa depan dengan lebih baik.<\/p>\n<h3><strong>4. Optimalkan manajemen pemasok<\/strong><\/h3>\n<p>Kinerja pemasok memiliki pengaruh langsung terhadap DOI. Lead time yang panjang atau pengiriman yang tidak konsisten memaksa perusahaan menyimpan stok pengaman lebih besar, yang pada akhirnya menaikkan DOI.<\/p>\n<p>Oleh karena itu, membangun hubungan yang kuat dan kolaboratif dengan pemasok adalah strategi kunci. Negosiasikan waktu pengiriman yang lebih singkat, evaluasi kinerja mereka secara berkala, dan pertimbangkan untuk diversifikasi pemasok guna mengurangi risiko ketergantungan pada satu sumber.<\/p>\n<p><strong>Baca juga:<\/strong> <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/rekomendasi-sistem-manajemen-inventory-di-indonesia-yang-wajib-diketahui\/\">Pilihan Software Inventory Terbaik yang Wajib Dicoba di 2025<\/a><\/p>\n<h2><strong>Keterbatasan Metrik Days in Inventory yang Perlu Diwaspadai<\/strong><\/h2>\n<p>Days in Inventory (DOI) memang membantu menilai efisiensi persediaan, namun metrik ini tidak bisa berdiri sendiri. Agar analisis tidak menyesatkan, Anda perlu memahami batasannya dan cara mengimbanginya:<\/p>\n<ul>\n<li>DOI tidak mencerminkan performa tiap SKU, sehingga produk cepat laku bisa tertutup stok lambat.<\/li>\n<li>Metode akuntansi, seperti FIFO atau LIFO dapat membuat perbandingan antar perusahaan kurang akurat.<\/li>\n<li>Promosi besar atau acara musiman bisa mengurangi hasil jika dihitung di periode pendek.<\/li>\n<li><a href=\"https:\/\/medium.com\/@gdoitwebpvtltd\/mastering-sku-level-data-a-practical-guide-for-ecommerce-experts-f89ef4c5f35e\">Gunakan SKU-level turnover<\/a> dan inventory aging analysis untuk gambaran yang lebih detail.<\/li>\n<li>Gunakan pendekatan berbasis data &amp; teknologi untuk membantu membaca pola, mempercepat keputusan, dan mengubah inventaris menjadi sumber profit, bukan beban biaya.<\/li>\n<\/ul>\n<h2><strong>Kesimpulan<\/strong><\/h2>\n<p>Mengelola Days in Inventory bukan sekadar urusan menghitung berapa lama barang tersimpan di gudang. Lebih dari itu, DOI adalah indikator penting yang menunjukkan seberapa sehat arus kas, operasional, dan kepuasan pelanggan. Melalui pemahaman rumus, contoh perhitungan, dan cara interpretasi, DOI membantu bisnis menilai keseimbangan antara kecepatan perputaran stok dan ketersediaan barang.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/inventaris?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/inventory-definitive.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/inventory-definitive.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/inventory-definitive-m.webp\" alt=\"Inventory_Definisi\" 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>\n<h2><strong>Pertanyaan Umum (FAQ)<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><b>Apa perbedaan antara Days in Inventory dan perputaran persediaan (inventory turnover)?<\/b><\/summary>\n<p>Keduanya adalah metrik yang saling berhubungan untuk mengukur efisiensi inventaris, tetapi dalam format yang berbeda. Days in Inventory (DOI) mengukur efisiensi dalam satuan hari (misalnya, 73 hari), menunjukkan berapa lama barang tersimpan. Sementara itu, perputaran persediaan (inventory turnover) mengukurnya dalam bentuk rasio (misalnya, 5 kali), menunjukkan berapa kali seluruh inventaris terjual dan diganti dalam satu periode. Pada dasarnya, DOI adalah kebalikan dari inventory turnover.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Apakah angka Days in Inventory yang tinggi selalu buruk?<\/b><\/summary>\n<p>Tidak selalu. Meskipun DOI yang tinggi seringkali menandakan inefisiensi, dalam beberapa industri dengan siklus produksi yang panjang (seperti konstruksi kapal) atau sebagai strategi untuk mengantisipasi kelangkaan bahan baku, DOI yang tinggi bisa diterima atau bahkan diperlukan. Kunci utamanya adalah memahami konteks industri dan alasan strategis di balik angka tersebut.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Seberapa sering perusahaan harus menghitung Days in Inventory?<\/b><\/summary>\n<p>Frekuensi perhitungan sangat bergantung pada jenis industri dan kecepatan perputaran produk. Untuk bisnis ritel cepat saji atau FMCG, perhitungan bulanan sangat dianjurkan. Untuk industri manufaktur atau distribusi dengan siklus yang lebih lambat, perhitungan per kuartal mungkin sudah cukup untuk tinjauan strategis. Namun, sistem modern memungkinkan pemantauan secara real-time.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana software ERP dapat membantu menghitung dan mengoptimalkan Days in Inventory secara otomatis?<\/strong><\/summary>\n<p>Software ERP mengotomatiskan seluruh proses ini. Sistem secara otomatis menarik data dari modul penjualan (HPP) dan modul inventaris (nilai stok) untuk menghitung DOI secara real-time tanpa perlu input manual. Selain itu, fitur demand forecasting pada software ERP membantu merencanakan pembelian yang lebih akurat, sementara modul manajemen gudang membantu menerapkan strategi seperti JIT, yang semuanya bertujuan untuk mengoptimalkan angka DOI Anda.<\/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 perbedaan antara Days in Inventory dan perputaran persediaan (inventory turnover)?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Keduanya adalah metrik yang saling berhubungan untuk mengukur efisiensi inventaris, tetapi dalam format yang berbeda. Days in Inventory (DOI) mengukur efisiensi dalam satuan hari (misalnya, 73 hari), menunjukkan berapa lama barang tersimpan. Sementara itu, perputaran persediaan (inventory turnover) mengukurnya dalam bentuk rasio (misalnya, 5 kali), menunjukkan berapa kali seluruh inventaris terjual dan diganti dalam satu periode. Pada dasarnya, DOI adalah kebalikan dari inventory turnover.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah angka Days in Inventory yang tinggi selalu buruk?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Tidak selalu. Meskipun DOI yang tinggi seringkali menandakan inefisiensi, dalam beberapa industri dengan siklus produksi yang panjang (seperti konstruksi kapal) atau sebagai strategi untuk mengantisipasi kelangkaan bahan baku, DOI yang tinggi bisa diterima atau bahkan diperlukan. Kunci utamanya adalah memahami konteks industri dan alasan strategis di balik angka tersebut.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Seberapa sering perusahaan harus menghitung Days in Inventory?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Frekuensi perhitungan sangat bergantung pada jenis industri dan kecepatan perputaran produk. Untuk bisnis ritel cepat saji atau FMCG, perhitungan bulanan sangat dianjurkan. Untuk industri manufaktur atau distribusi dengan siklus yang lebih lambat, perhitungan per kuartal mungkin sudah cukup untuk tinjauan strategis. Namun, sistem modern memungkinkan pemantauan secara real-time.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Bagaimana software ERP dapat membantu menghitung dan mengoptimalkan Days in Inventory secara otomatis?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Software ERP mengotomatiskan seluruh proses ini. Sistem secara otomatis menarik data dari modul penjualan (HPP) dan modul inventaris (nilai stok) untuk menghitung DOI secara real-time tanpa perlu input manual. Selain itu, fitur demand forecasting pada software ERP membantu merencanakan pembelian yang lebih akurat, sementara modul manajemen gudang membantu menerapkan strategi seperti JIT, yang semuanya bertujuan untuk mengoptimalkan angka DOI Anda.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dalam lanskap bisnis 2026 yang semakin kompetitif, Days in Inventory (DOI) menjadi indikator penting untuk mengukur seberapa efisien perusahaan mengelola persediaan. Metrik ini membantu bisnis menjaga keseimbangan antara modal kerja, arus kas, dan kemampuan memenuhi permintaan pelanggan. Lebih dari sekadar angka di laporan keuangan, DOI mencerminkan kesehatan operasional perusahaan. Nilai DOI yang terlalu tinggi dapat [&hellip;]<\/p>\n","protected":false},"author":160,"featured_media":172514,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[88],"tags":[],"class_list":{"0":"post-172505","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 v25.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi<\/title>\n<meta name=\"description\" content=\"Rumus Days in Inventory (DOI) dan cara menghitungnya penting agar bisnis Anda berjalan dengan data pasar yang aktual. Simak di sini!\" \/>\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\/days-in-inventory\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi\" \/>\n<meta property=\"og:description\" content=\"Rumus Days in Inventory (DOI) dan cara menghitungnya penting agar bisnis Anda berjalan dengan data pasar yang aktual. Simak di sini!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/\" \/>\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-10-20T08:42:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-24T02:18:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"338\" \/>\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\/days-in-inventory\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/\"},\"author\":{\"name\":\"Jessica Wijaya\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980\"},\"headline\":\"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi\",\"datePublished\":\"2025-10-20T08:42:23+00:00\",\"dateModified\":\"2026-02-24T02:18:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/\"},\"wordCount\":1671,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp\",\"articleSection\":[\"Inventory\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/\",\"name\":\"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp\",\"datePublished\":\"2025-10-20T08:42:23+00:00\",\"dateModified\":\"2026-02-24T02:18:35+00:00\",\"description\":\"Rumus Days in Inventory (DOI) dan cara menghitungnya penting agar bisnis Anda berjalan dengan data pasar yang aktual. Simak di sini!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp\",\"width\":600,\"height\":338,\"caption\":\"day in inventory\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi\"}]},{\"@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\/#\/schema\/person\/image\/\",\"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":"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi","description":"Rumus Days in Inventory (DOI) dan cara menghitungnya penting agar bisnis Anda berjalan dengan data pasar yang aktual. Simak di sini!","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\/days-in-inventory\/","og_locale":"id_ID","og_type":"article","og_title":"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi","og_description":"Rumus Days in Inventory (DOI) dan cara menghitungnya penting agar bisnis Anda berjalan dengan data pasar yang aktual. Simak di sini!","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-10-20T08:42:23+00:00","article_modified_time":"2026-02-24T02:18:35+00:00","og_image":[{"width":600,"height":338,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.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\/days-in-inventory\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/"},"author":{"name":"Jessica Wijaya","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980"},"headline":"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi","datePublished":"2025-10-20T08:42:23+00:00","dateModified":"2026-02-24T02:18:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/"},"wordCount":1671,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp","articleSection":["Inventory"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/","name":"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp","datePublished":"2025-10-20T08:42:23+00:00","dateModified":"2026-02-24T02:18:35+00:00","description":"Rumus Days in Inventory (DOI) dan cara menghitungnya penting agar bisnis Anda berjalan dengan data pasar yang aktual. Simak di sini!","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/day-in-inventory-hashmicro.webp","width":600,"height":338,"caption":"day in inventory"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/days-in-inventory\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Days in Inventory 2026: Rumus, Cara Hitung, dan Strategi Optimasi"}]},{"@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\/#\/schema\/person\/image\/","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":"days in inventory","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/172505","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=172505"}],"version-history":[{"count":15,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/172505\/revisions"}],"predecessor-version":[{"id":189522,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/172505\/revisions\/189522"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/172514"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=172505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=172505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=172505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}